   Д ̔ Ɣ {"files":{"android_checkin.proto":{"size":3109,"integrity":{"algorithm":"SHA256","hash":"016d44c34894dcd759a450a870db06dccc45844b2845c407d323292a1923d198","blockSize":4194304,"blocks":["016d44c34894dcd759a450a870db06dccc45844b2845c407d323292a1923d198"]},"offset":"0"},"checkin.proto":{"size":6265,"integrity":{"algorithm":"SHA256","hash":"6d321fc3d7dfaa635180e2e6263a42adb26c38f2dbe6311ccb9f041ff0ac19a6","blockSize":4194304,"blocks":["6d321fc3d7dfaa635180e2e6263a42adb26c38f2dbe6311ccb9f041ff0ac19a6"]},"offset":"3109"},"find-in-page.html":{"size":7696,"integrity":{"algorithm":"SHA256","hash":"1f6b27a7578af9029d9be38ec8a11377ca1d14c4895d71f9dff3b65a0b9f37c8","blockSize":4194304,"blocks":["1f6b27a7578af9029d9be38ec8a11377ca1d14c4895d71f9dff3b65a0b9f37c8"]},"offset":"9374"},"main.js":{"size":3826397,"integrity":{"algorithm":"SHA256","hash":"a0c6d1f63ac891257ad6783826381ca2a1c3f22ee7edf3d162d05187b93b62f1","blockSize":4194304,"blocks":["a0c6d1f63ac891257ad6783826381ca2a1c3f22ee7edf3d162d05187b93b62f1"]},"offset":"17070"},"mcs.proto":{"size":8265,"integrity":{"algorithm":"SHA256","hash":"1d4827c7e2934225c8111d5b274b30a42b755b40482ebbb79718709817b38fe0","blockSize":4194304,"blocks":["1d4827c7e2934225c8111d5b274b30a42b755b40482ebbb79718709817b38fe0"]},"offset":"3843467"},"package.json":{"size":467,"integrity":{"algorithm":"SHA256","hash":"67449dedec817aa1fb0cf7c562382f36685964019f1a88ff820fac79db994bde","blockSize":4194304,"blocks":["67449dedec817aa1fb0cf7c562382f36685964019f1a88ff820fac79db994bde"]},"offset":"3851732"},"preload.js":{"size":244175,"integrity":{"algorithm":"SHA256","hash":"34c79042964d9c1a67b49b20c0c6d10f5fca590f765456ce3cc2ba23f29bbd2e","blockSize":4194304,"blocks":["34c79042964d9c1a67b49b20c0c6d10f5fca590f765456ce3cc2ba23f29bbd2e"]},"offset":"3852199"},"td-password-form.html":{"size":2128,"integrity":{"algorithm":"SHA256","hash":"d4760f624704589dad3b3489ef7bcbcd3677ec3967a07ff43e789d5ac24fc172","blockSize":4194304,"blocks":["d4760f624704589dad3b3489ef7bcbcd3677ec3967a07ff43e789d5ac24fc172"]},"offset":"4096374"},"todesktop.json":{"size":5943,"integrity":{"algorithm":"SHA256","hash":"c9322e5b07d72a0771318adf06947a86d8bc7a014bf250b720f5ca974da1abe4","blockSize":4194304,"blocks":["c9322e5b07d72a0771318adf06947a86d8bc7a014bf250b720f5ca974da1abe4"]},"offset":"4098502"},"inject":{"files":{"README.md":{"size":282,"integrity":{"algorithm":"SHA256","hash":"24e23d6ffc31b05dbd30abdbb606fcb01439f801d41dca82e791dabd9c6c1f71","blockSize":4194304,"blocks":["24e23d6ffc31b05dbd30abdbb606fcb01439f801d41dca82e791dabd9c6c1f71"]},"offset":"4104445"}}},"icons":{"files":{"README.md":{"size":781,"integrity":{"algorithm":"SHA256","hash":"85c390e122c2942e95b966f489f8f673932da4a931185c2baccac7424ccc7487","blockSize":4194304,"blocks":["85c390e122c2942e95b966f489f8f673932da4a931185c2baccac7424ccc7487"]},"offset":"4104727"},"icon-GQ8Irc5byEbIn4Vl22IJ_-230x0w.png":{"size":1072,"integrity":{"algorithm":"SHA256","hash":"36ee4908a30561ee36454cc2319dbb636d6b0091c8ab46bc440ba25ce47a746c","blockSize":4194304,"blocks":["36ee4908a30561ee36454cc2319dbb636d6b0091c8ab46bc440ba25ce47a746c"]},"offset":"4105508"},"icon-GQ8Irc5byEbIn4Vl22IJ_-230x0w@2x.png":{"size":3126,"integrity":{"algorithm":"SHA256","hash":"36f48612884b9fbeea5d55a5a583c5bc6b3f55a338204c235e79e280c8eb97d9","blockSize":4194304,"blocks":["36f48612884b9fbeea5d55a5a583c5bc6b3f55a338204c235e79e280c8eb97d9"]},"offset":"4106580"},"icon-GQ8Irc5byEbIn4Vl22IJ_-230x0w@3x.png":{"size":5715,"integrity":{"algorithm":"SHA256","hash":"011f8d246dc1cef0c4532d8a6eeb8a7a8959f008bc0d7357eb0172581159971f","blockSize":4194304,"blocks":["011f8d246dc1cef0c4532d8a6eeb8a7a8959f008bc0d7357eb0172581159971f"]},"offset":"4109706"},"iconimage (2).png":{"size":10167,"integrity":{"algorithm":"SHA256","hash":"553ae2c5fecc8a5bab7aedcd07450d89f0220c46695fac488d4aa074330eb3c7","blockSize":4194304,"blocks":["553ae2c5fecc8a5bab7aedcd07450d89f0220c46695fac488d4aa074330eb3c7"]},"offset":"4115421"},"menubarIcon.png":{"size":601,"integrity":{"algorithm":"SHA256","hash":"bf30eef3c162a3dcfb69582741acb85fbd95d76d1d034607e966143f2cdc31ec","blockSize":4194304,"blocks":["bf30eef3c162a3dcfb69582741acb85fbd95d76d1d034607e966143f2cdc31ec"]},"offset":"4125588"},"menubarIcon@2x.png":{"size":1080,"integrity":{"algorithm":"SHA256","hash":"774815c4bb9a055f5d431424917a06e66c95c3be1345c847575f51d6da17ec42","blockSize":4194304,"blocks":["774815c4bb9a055f5d431424917a06e66c95c3be1345c847575f51d6da17ec42"]},"offset":"4126189"},"menubarIcon@3x.png":{"size":1843,"integrity":{"algorithm":"SHA256","hash":"2a5b88d5bc872cd6d07a2c71c7135dc9ec7741f903ab1569341050549635b10f","blockSize":4194304,"blocks":["2a5b88d5bc872cd6d07a2c71c7135dc9ec7741f903ab1569341050549635b10f"]},"offset":"4127269"},"menubarIconTemplate.png":{"size":459,"integrity":{"algorithm":"SHA256","hash":"c6025e8305daf3940f70cd5f221de1528f4126d73cbf3bcccb381ede3e5c1409","blockSize":4194304,"blocks":["c6025e8305daf3940f70cd5f221de1528f4126d73cbf3bcccb381ede3e5c1409"]},"offset":"4129112"},"menubarIconTemplate@2x.png":{"size":653,"integrity":{"algorithm":"SHA256","hash":"6503be96dddaef21d57d1d73f303f2c75c95a0862063c36310e511716890ae00","blockSize":4194304,"blocks":["6503be96dddaef21d57d1d73f303f2c75c95a0862063c36310e511716890ae00"]},"offset":"4129571"},"menubarIconTemplate@3x.png":{"size":840,"integrity":{"algorithm":"SHA256","hash":"8b0a0066309af6320893f6223d6c3bca3d177792c988d54d029e95949ecb7748","blockSize":4194304,"blocks":["8b0a0066309af6320893f6223d6c3bca3d177792c988d54d029e95949ecb7748"]},"offset":"4130224"},"trayIcon.png":{"size":601,"integrity":{"algorithm":"SHA256","hash":"bf30eef3c162a3dcfb69582741acb85fbd95d76d1d034607e966143f2cdc31ec","blockSize":4194304,"blocks":["bf30eef3c162a3dcfb69582741acb85fbd95d76d1d034607e966143f2cdc31ec"]},"offset":"4131064"},"trayIcon@2x.png":{"size":1080,"integrity":{"algorithm":"SHA256","hash":"774815c4bb9a055f5d431424917a06e66c95c3be1345c847575f51d6da17ec42","blockSize":4194304,"blocks":["774815c4bb9a055f5d431424917a06e66c95c3be1345c847575f51d6da17ec42"]},"offset":"4131665"},"trayIcon@3x.png":{"size":1843,"integrity":{"algorithm":"SHA256","hash":"2a5b88d5bc872cd6d07a2c71c7135dc9ec7741f903ab1569341050549635b10f","blockSize":4194304,"blocks":["2a5b88d5bc872cd6d07a2c71c7135dc9ec7741f903ab1569341050549635b10f"]},"offset":"4132745"}}},"builderStaticFiles":{"files":{"README.md":{"size":173,"integrity":{"algorithm":"SHA256","hash":"a37cd36eaf13e18760576d2dbf44044229f8f02028e24ff76d957490916d1adb","blockSize":4194304,"blocks":["a37cd36eaf13e18760576d2dbf44044229f8f02028e24ff76d957490916d1adb"]},"offset":"4134588"},"entitlements.mac.plist":{"size":772,"integrity":{"algorithm":"SHA256","hash":"b29d46801472e02e3d9ee5cf6d2130fca0fab5a32dc3b1d202524d3765733a12","blockSize":4194304,"blocks":["b29d46801472e02e3d9ee5cf6d2130fca0fab5a32dc3b1d202524d3765733a12"]},"offset":"4134761"}}},"node_modules":{"files":{"@nodelib":{"files":{"fs.scandir":{"files":{"LICENSE":{"size":1079,"integrity":{"algorithm":"SHA256","hash":"9363d160bf41d46d83901a5d24fc3fe2094c2afc17b4a2378914b273977ee2de","blockSize":4194304,"blocks":["9363d160bf41d46d83901a5d24fc3fe2094c2afc17b4a2378914b273977ee2de"]},"offset":"4135533"},"package.json":{"size":605,"integrity":{"algorithm":"SHA256","hash":"0198026e11a9571249538503dc341d977801cbac549e1ac79ec6cb69e6f17365","blockSize":4194304,"blocks":["0198026e11a9571249538503dc341d977801cbac549e1ac79ec6cb69e6f17365"]},"offset":"4136612"},"out":{"files":{"constants.js":{"size":990,"integrity":{"algorithm":"SHA256","hash":"aff8749c230a74d0334907472b971f7f62b1775b8e9a520324599a1e71c9c3f0","blockSize":4194304,"blocks":["aff8749c230a74d0334907472b971f7f62b1775b8e9a520324599a1e71c9c3f0"]},"offset":"4137217"},"index.js":{"size":1009,"integrity":{"algorithm":"SHA256","hash":"7c1029d95a78da23d59c93b5104ba4e6f91c037d0803feaac9314aa9a3bd404b","blockSize":4194304,"blocks":["7c1029d95a78da23d59c93b5104ba4e6f91c037d0803feaac9314aa9a3bd404b"]},"offset":"4138207"},"settings.js":{"size":1076,"integrity":{"algorithm":"SHA256","hash":"ffcf2817ce621641abc4d3ecf350dbe86d0443bb32811f1c6c0f61be2e8c106e","blockSize":4194304,"blocks":["ffcf2817ce621641abc4d3ecf350dbe86d0443bb32811f1c6c0f61be2e8c106e"]},"offset":"4139216"},"utils":{"files":{"fs.js":{"size":756,"integrity":{"algorithm":"SHA256","hash":"10fcd66d19070a64fe2eb45a133047c574b045c5cabb860e04472e32341bb1ec","blockSize":4194304,"blocks":["10fcd66d19070a64fe2eb45a133047c574b045c5cabb860e04472e32341bb1ec"]},"offset":"4140292"},"index.js":{"size":143,"integrity":{"algorithm":"SHA256","hash":"4f83f86fbd0df815f8c6e8ae876ec085b055ed57ec78ed93326dd7a9411a51a5","blockSize":4194304,"blocks":["4f83f86fbd0df815f8c6e8ae876ec085b055ed57ec78ed93326dd7a9411a51a5"]},"offset":"4141048"}}},"types":{"files":{"index.js":{"size":77,"integrity":{"algorithm":"SHA256","hash":"d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230","blockSize":4194304,"blocks":["d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230"]},"offset":"4141191"}}},"providers":{"files":{"async.js":{"size":3686,"integrity":{"algorithm":"SHA256","hash":"12268cf178785ce6fc7170e12593f3fa4831f61d82b71c55b75664b32403eec6","blockSize":4194304,"blocks":["12268cf178785ce6fc7170e12593f3fa4831f61d82b71c55b75664b32403eec6"]},"offset":"4141268"},"common.js":{"size":419,"integrity":{"algorithm":"SHA256","hash":"7230a1152039713fe53b69e4a2dccde87a0704ed3a6545fb9f2bd809e97a1d9b","blockSize":4194304,"blocks":["7230a1152039713fe53b69e4a2dccde87a0704ed3a6545fb9f2bd809e97a1d9b"]},"offset":"4144954"},"sync.js":{"size":1990,"integrity":{"algorithm":"SHA256","hash":"19642bbec8499717c896fa5ca9d58e12b40b54ff91da0d4d8f168141b681fa15","blockSize":4194304,"blocks":["19642bbec8499717c896fa5ca9d58e12b40b54ff91da0d4d8f168141b681fa15"]},"offset":"4145373"}}},"adapters":{"files":{"fs.js":{"size":640,"integrity":{"algorithm":"SHA256","hash":"9e5aa25d62ba9c654454bdc8c694a7a1cf8229cd5dd2dc2f97f3f40025a882c5","blockSize":4194304,"blocks":["9e5aa25d62ba9c654454bdc8c694a7a1cf8229cd5dd2dc2f97f3f40025a882c5"]},"offset":"4147363"}}}}}}},"fs.stat":{"files":{"LICENSE":{"size":1079,"integrity":{"algorithm":"SHA256","hash":"9363d160bf41d46d83901a5d24fc3fe2094c2afc17b4a2378914b273977ee2de","blockSize":4194304,"blocks":["9363d160bf41d46d83901a5d24fc3fe2094c2afc17b4a2378914b273977ee2de"]},"offset":"4148003"},"package.json":{"size":461,"integrity":{"algorithm":"SHA256","hash":"c63132eab0b03854b37b115e683932c01057ff751a0c97f301923a2461f33ff2","blockSize":4194304,"blocks":["c63132eab0b03854b37b115e683932c01057ff751a0c97f301923a2461f33ff2"]},"offset":"4149082"},"out":{"files":{"index.js":{"size":985,"integrity":{"algorithm":"SHA256","hash":"7a19f0f3cb5fda9fd9f398003b226c638370898af403f89ddfa4276b5777d9ea","blockSize":4194304,"blocks":["7a19f0f3cb5fda9fd9f398003b226c638370898af403f89ddfa4276b5777d9ea"]},"offset":"4149543"},"settings.js":{"size":696,"integrity":{"algorithm":"SHA256","hash":"11ab7580176e2390e9d27d2217f330979a41ca5f1bde9c27fd2af0cf78956094","blockSize":4194304,"blocks":["11ab7580176e2390e9d27d2217f330979a41ca5f1bde9c27fd2af0cf78956094"]},"offset":"4150528"},"types":{"files":{"index.js":{"size":77,"integrity":{"algorithm":"SHA256","hash":"d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230","blockSize":4194304,"blocks":["d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230"]},"offset":"4151224"}}},"providers":{"files":{"async.js":{"size":1172,"integrity":{"algorithm":"SHA256","hash":"df7fc1fe9ccebb214a2d3c5cff744302fec0164421a7bd58c541709862092cfd","blockSize":4194304,"blocks":["df7fc1fe9ccebb214a2d3c5cff744302fec0164421a7bd58c541709862092cfd"]},"offset":"4151301"},"sync.js":{"size":619,"integrity":{"algorithm":"SHA256","hash":"e3b0e28d1b151bbabca4cae3dbf8dd1add9ed2524265bbd8fc827fb21c599fc6","blockSize":4194304,"blocks":["e3b0e28d1b151bbabca4cae3dbf8dd1add9ed2524265bbd8fc827fb21c599fc6"]},"offset":"4152473"}}},"adapters":{"files":{"fs.js":{"size":582,"integrity":{"algorithm":"SHA256","hash":"fe08e8266cfd2c4fc9c59c48993b82f894181e93e3d1bb4527d7079091c9fa51","blockSize":4194304,"blocks":["fe08e8266cfd2c4fc9c59c48993b82f894181e93e3d1bb4527d7079091c9fa51"]},"offset":"4153092"}}}}}}},"fs.walk":{"files":{"LICENSE":{"size":1079,"integrity":{"algorithm":"SHA256","hash":"9363d160bf41d46d83901a5d24fc3fe2094c2afc17b4a2378914b273977ee2de","blockSize":4194304,"blocks":["9363d160bf41d46d83901a5d24fc3fe2094c2afc17b4a2378914b273977ee2de"]},"offset":"4153674"},"package.json":{"size":582,"integrity":{"algorithm":"SHA256","hash":"a80b5cc8708dce859800478269e888401133aa7d2734928d76bd6b81849673ee","blockSize":4194304,"blocks":["a80b5cc8708dce859800478269e888401133aa7d2734928d76bd6b81849673ee"]},"offset":"4154753"},"out":{"files":{"index.js":{"size":1390,"integrity":{"algorithm":"SHA256","hash":"f4a7ff687aaf6223ad0e549030d11834103469e40898de922fd0a60cef12ad21","blockSize":4194304,"blocks":["f4a7ff687aaf6223ad0e549030d11834103469e40898de922fd0a60cef12ad21"]},"offset":"4155335"},"settings.js":{"size":1250,"integrity":{"algorithm":"SHA256","hash":"2ad9e3bd36d3e551349196809bcf9a8685d37a9fa321b07cdbef0ce8ee29115e","blockSize":4194304,"blocks":["2ad9e3bd36d3e551349196809bcf9a8685d37a9fa321b07cdbef0ce8ee29115e"]},"offset":"4156725"},"types":{"files":{"index.js":{"size":77,"integrity":{"algorithm":"SHA256","hash":"d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230","blockSize":4194304,"blocks":["d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230"]},"offset":"4157975"}}},"readers":{"files":{"async.js":{"size":3157,"integrity":{"algorithm":"SHA256","hash":"71831647fe7b5f2e077646b799a621d0b9c41b0fccf64b3dd41a772c314c4d1d","blockSize":4194304,"blocks":["71831647fe7b5f2e077646b799a621d0b9c41b0fccf64b3dd41a772c314c4d1d"]},"offset":"4158052"},"common.js":{"size":1052,"integrity":{"algorithm":"SHA256","hash":"68b6026e669d1977a40d63c2463acf11a8ea3daffe0f5f026fd3bab07950da59","blockSize":4194304,"blocks":["68b6026e669d1977a40d63c2463acf11a8ea3daffe0f5f026fd3bab07950da59"]},"offset":"4161209"},"reader.js":{"size":358,"integrity":{"algorithm":"SHA256","hash":"ad0139c61b7a4811ce1b7d1d70e9ef46d8812347a1c44436a254207420824bc0","blockSize":4194304,"blocks":["ad0139c61b7a4811ce1b7d1d70e9ef46d8812347a1c44436a254207420824bc0"]},"offset":"4162261"},"sync.js":{"size":1911,"integrity":{"algorithm":"SHA256","hash":"5296d2103bbaea6e3ec5c07e1233f77b3868757ce3ed9f3ff9d51a1a2ad8675d","blockSize":4194304,"blocks":["5296d2103bbaea6e3ec5c07e1233f77b3868757ce3ed9f3ff9d51a1a2ad8675d"]},"offset":"4162619"}}},"providers":{"files":{"async.js":{"size":895,"integrity":{"algorithm":"SHA256","hash":"ae9c48210be7b276c8df7fc7bf16a04bce517635d33d07d92d620b8f8fed3629","blockSize":4194304,"blocks":["ae9c48210be7b276c8df7fc7bf16a04bce517635d33d07d92d620b8f8fed3629"]},"offset":"4164530"},"index.js":{"size":388,"integrity":{"algorithm":"SHA256","hash":"2f24ab6abd2978d99098ebc18a8801eb9b4d32c9a697d9d44874046ddda54b27","blockSize":4194304,"blocks":["2f24ab6abd2978d99098ebc18a8801eb9b4d32c9a697d9d44874046ddda54b27"]},"offset":"4165425"},"stream.js":{"size":1021,"integrity":{"algorithm":"SHA256","hash":"cbf46228291fc4a8dee090db411c8db430c8c0066580f4fe056b2ed24ba95bc7","blockSize":4194304,"blocks":["cbf46228291fc4a8dee090db411c8db430c8c0066580f4fe056b2ed24ba95bc7"]},"offset":"4165813"},"sync.js":{"size":407,"integrity":{"algorithm":"SHA256","hash":"e06d608e9b575819fdd239dc0f0ab0038fd5c297df4cbd523f801e467d13009a","blockSize":4194304,"blocks":["e06d608e9b575819fdd239dc0f0ab0038fd5c297df4cbd523f801e467d13009a"]},"offset":"4166834"}}}}}}}}},"@todesktop":{"files":{"plugin-ipc":{"files":{"package.json":{"size":628,"integrity":{"algorithm":"SHA256","hash":"94cdb17981787d9126b91134649d57cd01957124836da6d7f180d197d7196db2","blockSize":4194304,"blocks":["94cdb17981787d9126b91134649d57cd01957124836da6d7f180d197d7196db2"]},"offset":"4167241"},"tsconfig.json":{"size":179,"integrity":{"algorithm":"SHA256","hash":"ef0bebf019c955db83517b461f795972749c21af5cb95e99f1e45f3595909562","blockSize":4194304,"blocks":["ef0bebf019c955db83517b461f795972749c21af5cb95e99f1e45f3595909562"]},"offset":"4167869"},"src":{"files":{"index.ts":{"size":225,"integrity":{"algorithm":"SHA256","hash":"e690ebf19ed00397efa066be949d251df35c8f80530a3675ec3bfe2160f0ce84","blockSize":4194304,"blocks":["e690ebf19ed00397efa066be949d251df35c8f80530a3675ec3bfe2160f0ce84"]},"offset":"4168048"},"main.ts":{"size":2357,"integrity":{"algorithm":"SHA256","hash":"1ba4060be32debc64c75745890c5114edba4dd2ea655288e4e12d55907cb5424","blockSize":4194304,"blocks":["1ba4060be32debc64c75745890c5114edba4dd2ea655288e4e12d55907cb5424"]},"offset":"4168273"},"preload.ts":{"size":1305,"integrity":{"algorithm":"SHA256","hash":"574bcfe5966fa87cbc79a5b7a7aa4b9d0b520a4feb2b9c2ced47adc7ca189890","blockSize":4194304,"blocks":["574bcfe5966fa87cbc79a5b7a7aa4b9d0b520a4feb2b9c2ced47adc7ca189890"]},"offset":"4170630"},"types.ts":{"size":779,"integrity":{"algorithm":"SHA256","hash":"fee4df2428dc7972644fa284cf1ae11dad445670fe1c9e6b5e380ed64bf3bca4","blockSize":4194304,"blocks":["fee4df2428dc7972644fa284cf1ae11dad445670fe1c9e6b5e380ed64bf3bca4"]},"offset":"4171935"}}},"dist":{"files":{"index.js":{"size":292,"integrity":{"algorithm":"SHA256","hash":"fb989ee092afce716a3df21845894c9b2cc60d4aee1cc1891d1c3cd0d36e63d5","blockSize":4194304,"blocks":["fb989ee092afce716a3df21845894c9b2cc60d4aee1cc1891d1c3cd0d36e63d5"]},"offset":"4172714"},"main.js":{"size":2565,"integrity":{"algorithm":"SHA256","hash":"a7ffec5feca6fedd759ee05730f07a9477ba8230cb2a9e03363677c800a947aa","blockSize":4194304,"blocks":["a7ffec5feca6fedd759ee05730f07a9477ba8230cb2a9e03363677c800a947aa"]},"offset":"4173006"},"preload.js":{"size":5853,"integrity":{"algorithm":"SHA256","hash":"2aadd22b405408146a300bd31197d5a29d84ba41911cf69985048c0e2e1f0889","blockSize":4194304,"blocks":["2aadd22b405408146a300bd31197d5a29d84ba41911cf69985048c0e2e1f0889"]},"offset":"4175571"}}}}},"runtime":{"files":{"LICENSE":{"size":1066,"integrity":{"algorithm":"SHA256","hash":"d02cf303b2ff2754a74881847eb51e8b3c5c9d622d67aeca121d61284512a43e","blockSize":4194304,"blocks":["d02cf303b2ff2754a74881847eb51e8b3c5c9d622d67aeca121d61284512a43e"]},"offset":"4181424"},"package.json":{"size":1893,"integrity":{"algorithm":"SHA256","hash":"1dd60ca4ed5991be8c14dcb1f1f997528e1f92150d3214f0bf4cce215a01b327","blockSize":4194304,"blocks":["1dd60ca4ed5991be8c14dcb1f1f997528e1f92150d3214f0bf4cce215a01b327"]},"offset":"4182490"},"static":{"files":{"README.md":{"size":39,"integrity":{"algorithm":"SHA256","hash":"d58026f96864e0e94288c60a589ef9b04c030e60fa2b82b91a5611d3a6d5e839","blockSize":4194304,"blocks":["d58026f96864e0e94288c60a589ef9b04c030e60fa2b82b91a5611d3a6d5e839"]},"offset":"4184383"},"index.html":{"size":0,"integrity":{"algorithm":"SHA256","hash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","blockSize":4194304,"blocks":[]},"offset":"4184422"}}},"dist":{"files":{"Logger.js":{"size":2285,"integrity":{"algorithm":"SHA256","hash":"9775fdf33048a9283f2c56b7b50d768f055c195482e9a52976264dc48410593f","blockSize":4194304,"blocks":["9775fdf33048a9283f2c56b7b50d768f055c195482e9a52976264dc48410593f"]},"offset":"4184422"},"Notifier.js":{"size":7200,"integrity":{"algorithm":"SHA256","hash":"3373cd2a940c89b92dc84e12e91c5601ed8b16dae4f5af0f63676e1be7605452","blockSize":4194304,"blocks":["3373cd2a940c89b92dc84e12e91c5601ed8b16dae4f5af0f63676e1be7605452"]},"offset":"4186707"},"alwaysResolve.js":{"size":1786,"integrity":{"algorithm":"SHA256","hash":"87d9e522a48dab2080f2fa31f308bfa2d3a887494c84cc66a740000f79b6bb1e","blockSize":4194304,"blocks":["87d9e522a48dab2080f2fa31f308bfa2d3a887494c84cc66a740000f79b6bb1e"]},"offset":"4193907"},"cache.js":{"size":233,"integrity":{"algorithm":"SHA256","hash":"b436e0ffde649ac70d989fae864819e57c39e81389df3915834024f9cfd8beeb","blockSize":4194304,"blocks":["b436e0ffde649ac70d989fae864819e57c39e81389df3915834024f9cfd8beeb"]},"offset":"4195693"},"getConfig.js":{"size":807,"integrity":{"algorithm":"SHA256","hash":"676892670a5beadb85c436b43191af409c83ceefc08beb96eea04b777f620376","blockSize":4194304,"blocks":["676892670a5beadb85c436b43191af409c83ceefc08beb96eea04b777f620376"]},"offset":"4195926"},"getPackageJson.js":{"size":332,"integrity":{"algorithm":"SHA256","hash":"f3a50052c9e8f1be9b977aace50a15b0d47405565885e090bfaa261100e1deb7","blockSize":4194304,"blocks":["f3a50052c9e8f1be9b977aace50a15b0d47405565885e090bfaa261100e1deb7"]},"offset":"4196733"},"index.js":{"size":3153,"integrity":{"algorithm":"SHA256","hash":"897e19b5d3636a161e56282420aa46f95bf55dba71b8c8035ea84f9640d7fd2f","blockSize":4194304,"blocks":["897e19b5d3636a161e56282420aa46f95bf55dba71b8c8035ea84f9640d7fd2f"]},"offset":"4197065"},"initSmokeTest.js":{"size":7306,"integrity":{"algorithm":"SHA256","hash":"8ed28b483e60166d9d96cfa49b7f2ea7f46552f7ae05af4355c408f2515c2dac","blockSize":4194304,"blocks":["8ed28b483e60166d9d96cfa49b7f2ea7f46552f7ae05af4355c408f2515c2dac"]},"offset":"4200218"},"setTimeout.js":{"size":479,"integrity":{"algorithm":"SHA256","hash":"1ed14da2452ff6f1ed35e18d7ad3678846bed11648fabcf281056c5c97a34a02","blockSize":4194304,"blocks":["1ed14da2452ff6f1ed35e18d7ad3678846bed11648fabcf281056c5c97a34a02"]},"offset":"4207524"},"types.js":{"size":427,"integrity":{"algorithm":"SHA256","hash":"2f94aa8cce22182255d8f2ba9c93473475c0eee878a9f768103579b0705b0b7e","blockSize":4194304,"blocks":["2f94aa8cce22182255d8f2ba9c93473475c0eee878a9f768103579b0705b0b7e"]},"offset":"4208003"},"version.js":{"size":144,"integrity":{"algorithm":"SHA256","hash":"c109988b99bb499e88f5f94487d8439bccdff6645747dfe26074df9ca4c482c8","blockSize":4194304,"blocks":["c109988b99bb499e88f5f94487d8439bccdff6645747dfe26074df9ca4c482c8"]},"offset":"4208430"},"targets":{"files":{"msi.js":{"size":620,"integrity":{"algorithm":"SHA256","hash":"d4a6bce1d9d4d97c519bf579037695c9fc3aad96de46dae43a9213aa16e50a8e","blockSize":4194304,"blocks":["d4a6bce1d9d4d97c519bf579037695c9fc3aad96de46dae43a9213aa16e50a8e"]},"offset":"4208574"}}},"autoUpdater":{"files":{"AsyncEventEmitter.js":{"size":452,"integrity":{"algorithm":"SHA256","hash":"cded4b6ce1681b8eddcaf3564326a199d2f9ab29f21158d8767ff377c4d78de6","blockSize":4194304,"blocks":["cded4b6ce1681b8eddcaf3564326a199d2f9ab29f21158d8767ff377c4d78de6"]},"offset":"4209194"},"AutoUpdater.js":{"size":15161,"integrity":{"algorithm":"SHA256","hash":"42e1b7e29e51dc70cd0f652793f84d817b7a8a566415f2e575fe71d06f1c54fe","blockSize":4194304,"blocks":["42e1b7e29e51dc70cd0f652793f84d817b7a8a566415f2e575fe71d06f1c54fe"]},"offset":"4209646"},"BaseAutoUpdater.js":{"size":1329,"integrity":{"algorithm":"SHA256","hash":"5b1067ab45d3662cbfc2a4087da111d084d7cb7fae59e379fbc0928412929e0f","blockSize":4194304,"blocks":["5b1067ab45d3662cbfc2a4087da111d084d7cb7fae59e379fbc0928412929e0f"]},"offset":"4224807"},"MockedAutoUpdater.js":{"size":1995,"integrity":{"algorithm":"SHA256","hash":"6e8983f1aa9932e37845515714f2a10308f07f3d458d374a1fac5002ed2e355c","blockSize":4194304,"blocks":["6e8983f1aa9932e37845515714f2a10308f07f3d458d374a1fac5002ed2e355c"]},"offset":"4226136"},"SimulatedAutoUpdater.js":{"size":6274,"integrity":{"algorithm":"SHA256","hash":"35b891469305aa5bd030411e2c238e5d74f125007ef7f1a5a36c45f524b87557","blockSize":4194304,"blocks":["35b891469305aa5bd030411e2c238e5d74f125007ef7f1a5a36c45f524b87557"]},"offset":"4228131"},"getReleaseStatus.js":{"size":3972,"integrity":{"algorithm":"SHA256","hash":"5b772af04d01129e2b96de838d53998dabc3d1170fde72ca8492750b7716ad03","blockSize":4194304,"blocks":["5b772af04d01129e2b96de838d53998dabc3d1170fde72ca8492750b7716ad03"]},"offset":"4234405"},"updaterAgents.js":{"size":12234,"integrity":{"algorithm":"SHA256","hash":"4d30e92a1ea0336766c6d5da6e2fb4c004bc51153e190aaadec73b6a4784f21a","blockSize":4194304,"blocks":["4d30e92a1ea0336766c6d5da6e2fb4c004bc51153e190aaadec73b6a4784f21a"]},"offset":"4238377"}}}}}}}}},"aggregate-error":{"files":{"index.js":{"size":1252,"integrity":{"algorithm":"SHA256","hash":"84c72b3601fccebd43285959f9085ad3e4af0d5683613dd125ce8e56b7aa8185","blockSize":4194304,"blocks":["84c72b3601fccebd43285959f9085ad3e4af0d5683613dd125ce8e56b7aa8185"]},"offset":"4250611"},"license":{"size":1109,"integrity":{"algorithm":"SHA256","hash":"48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0","blockSize":4194304,"blocks":["48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0"]},"offset":"4251863"},"package.json":{"size":558,"integrity":{"algorithm":"SHA256","hash":"6537ad957da2b03c82499f6df6174f81df3b5c83f9fac3a2c818a6e99a9ba737","blockSize":4194304,"blocks":["6537ad957da2b03c82499f6df6174f81df3b5c83f9fac3a2c818a6e99a9ba737"]},"offset":"4252972"}}},"argparse":{"files":{"LICENSE":{"size":12775,"integrity":{"algorithm":"SHA256","hash":"de4d1f2d2ad5ad0cfd1657a106476b31cb5db5ef9d1ff842b237c0c81f0c8a23","blockSize":4194304,"blocks":["de4d1f2d2ad5ad0cfd1657a106476b31cb5db5ef9d1ff842b237c0c81f0c8a23"]},"offset":"4253530"},"argparse.js":{"size":129714,"integrity":{"algorithm":"SHA256","hash":"2e73e7a3167ba840dbcf41feeafc3544a3e2b39220b5e997133c519861febf16","blockSize":4194304,"blocks":["2e73e7a3167ba840dbcf41feeafc3544a3e2b39220b5e997133c519861febf16"]},"offset":"4266305"},"package.json":{"size":448,"integrity":{"algorithm":"SHA256","hash":"800e809f5cdb0a7dec1834e1d2c0a165b1b63c2d6d7b2a97034b8c668de24a8f","blockSize":4194304,"blocks":["800e809f5cdb0a7dec1834e1d2c0a165b1b63c2d6d7b2a97034b8c668de24a8f"]},"offset":"4396019"},"lib":{"files":{"sub.js":{"size":2252,"integrity":{"algorithm":"SHA256","hash":"2bc4ef9e87c47f1a4e0cfcb3706d886e0d73edce88149e300d2364066f396ed6","blockSize":4194304,"blocks":["2bc4ef9e87c47f1a4e0cfcb3706d886e0d73edce88149e300d2364066f396ed6"]},"offset":"4396467"},"textwrap.js":{"size":17391,"integrity":{"algorithm":"SHA256","hash":"2550466c9a0425fa583a70e25bb93e190fe09b61f7de4861ea8ec54b7b899db0","blockSize":4194304,"blocks":["2550466c9a0425fa583a70e25bb93e190fe09b61f7de4861ea8ec54b7b899db0"]},"offset":"4398719"}}}}},"array-union":{"files":{"index.js":{"size":104,"integrity":{"algorithm":"SHA256","hash":"3f61bf9d59d79b08e038d7d2f84518175a3e53693bf5724aecae4985c9897cd3","blockSize":4194304,"blocks":["3f61bf9d59d79b08e038d7d2f84518175a3e53693bf5724aecae4985c9897cd3"]},"offset":"4416110"},"license":{"size":1109,"integrity":{"algorithm":"SHA256","hash":"48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0","blockSize":4194304,"blocks":["48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0"]},"offset":"4416214"},"package.json":{"size":495,"integrity":{"algorithm":"SHA256","hash":"07ed63c1ff3babb6c034956e16a672ef75701e7e80e76405532687669e06de60","blockSize":4194304,"blocks":["07ed63c1ff3babb6c034956e16a672ef75701e7e80e76405532687669e06de60"]},"offset":"4417323"}}},"balanced-match":{"files":{"LICENSE.md":{"size":1096,"integrity":{"algorithm":"SHA256","hash":"a1bd5deadb6a06dd74efa852c1b8b23f63b67f2214fbe9c8bd591da51da69268","blockSize":4194304,"blocks":["a1bd5deadb6a06dd74efa852c1b8b23f63b67f2214fbe9c8bd591da51da69268"]},"offset":"4417818"},"index.js":{"size":1219,"integrity":{"algorithm":"SHA256","hash":"06e4d0037715251cb3be2b2db063662f555b3538d9e30a9c517a54374d941cbc","blockSize":4194304,"blocks":["06e4d0037715251cb3be2b2db063662f555b3538d9e30a9c517a54374d941cbc"]},"offset":"4418914"},"package.json":{"size":891,"integrity":{"algorithm":"SHA256","hash":"b4cfa3b375d23e8e979227e68db4d4ea1e810328458c78390886f2fd1df5740e","blockSize":4194304,"blocks":["b4cfa3b375d23e8e979227e68db4d4ea1e810328458c78390886f2fd1df5740e"]},"offset":"4420133"}}},"brace-expansion":{"files":{"LICENSE":{"size":1096,"integrity":{"algorithm":"SHA256","hash":"68f12f6e2c33688699249c01d8f9623c534da20aa71989c57b061b7bc1676d14","blockSize":4194304,"blocks":["68f12f6e2c33688699249c01d8f9623c534da20aa71989c57b061b7bc1676d14"]},"offset":"4421024"},"index.js":{"size":4797,"integrity":{"algorithm":"SHA256","hash":"894ea32e7bb2ff8a0d11ce250533505cfd781579c0243d9ea5ae5c3558d51a83","blockSize":4194304,"blocks":["894ea32e7bb2ff8a0d11ce250533505cfd781579c0243d9ea5ae5c3558d51a83"]},"offset":"4422120"},"package.json":{"size":1006,"integrity":{"algorithm":"SHA256","hash":"16f18a372d88fd0fb3bb3784a16026426715b04a1c2c342e0122792c78376cce","blockSize":4194304,"blocks":["16f18a372d88fd0fb3bb3784a16026426715b04a1c2c342e0122792c78376cce"]},"offset":"4426917"}}},"braces":{"files":{"LICENSE":{"size":1091,"integrity":{"algorithm":"SHA256","hash":"35bdd8a44339719441900fb50fbefc5e2dca1ca662cbaed7a687de842c8b70f2","blockSize":4194304,"blocks":["35bdd8a44339719441900fb50fbefc5e2dca1ca662cbaed7a687de842c8b70f2"]},"offset":"4427923"},"index.js":{"size":4380,"integrity":{"algorithm":"SHA256","hash":"332ea07c7b006361aad12aa994ca75dc1db8e8382b884909e2f38f10b85c88a4","blockSize":4194304,"blocks":["332ea07c7b006361aad12aa994ca75dc1db8e8382b884909e2f38f10b85c88a4"]},"offset":"4429014"},"package.json":{"size":902,"integrity":{"algorithm":"SHA256","hash":"95424b3985f3bfbd1175dd1cbf4c0b155001fd824b60cbc03ee4389c5d6ebc26","blockSize":4194304,"blocks":["95424b3985f3bfbd1175dd1cbf4c0b155001fd824b60cbc03ee4389c5d6ebc26"]},"offset":"4433394"},"lib":{"files":{"compile.js":{"size":1501,"integrity":{"algorithm":"SHA256","hash":"dc98f22eee3d511785d92a00758d5f0d48efed5f5813bdecc2de430c529b5c9f","blockSize":4194304,"blocks":["dc98f22eee3d511785d92a00758d5f0d48efed5f5813bdecc2de430c529b5c9f"]},"offset":"4434296"},"constants.js":{"size":1589,"integrity":{"algorithm":"SHA256","hash":"c18ac5adb57308f1ce42a28552da3a31f5d83709743ebd9a636336813a744d4b","blockSize":4194304,"blocks":["c18ac5adb57308f1ce42a28552da3a31f5d83709743ebd9a636336813a744d4b"]},"offset":"4435797"},"expand.js":{"size":2797,"integrity":{"algorithm":"SHA256","hash":"41ccc196ebfa7b7781a634e721eb744e4e7bcb54cba427a7e3d6806a1b9e58f7","blockSize":4194304,"blocks":["41ccc196ebfa7b7781a634e721eb744e4e7bcb54cba427a7e3d6806a1b9e58f7"]},"offset":"4437386"},"parse.js":{"size":6899,"integrity":{"algorithm":"SHA256","hash":"e572166565f15fa6ad9865ae49d678218e32aabfd1b3720f6d0d43d39800d310","blockSize":4194304,"blocks":["e572166565f15fa6ad9865ae49d678218e32aabfd1b3720f6d0d43d39800d310"]},"offset":"4440183"},"stringify.js":{"size":708,"integrity":{"algorithm":"SHA256","hash":"379f22d77bfa1478341ccd49c5e4267464aabcbba03558bab332aac23fc6f23a","blockSize":4194304,"blocks":["379f22d77bfa1478341ccd49c5e4267464aabcbba03558bab332aac23fc6f23a"]},"offset":"4447082"},"utils.js":{"size":2518,"integrity":{"algorithm":"SHA256","hash":"b5a7596aa67730412b3c029ef09e84e6b67b8e445cffd35d1d295549c89066c7","blockSize":4194304,"blocks":["b5a7596aa67730412b3c029ef09e84e6b67b8e445cffd35d1d295549c89066c7"]},"offset":"4447790"}}}}},"builder-util-runtime":{"files":{"LICENSE":{"size":1084,"integrity":{"algorithm":"SHA256","hash":"bed8d0ab3e6031817f775a641ff37313b0f5591bc8ba0ed79b978dafbd4231ce","blockSize":4194304,"blocks":["bed8d0ab3e6031817f775a641ff37313b0f5591bc8ba0ed79b978dafbd4231ce"]},"offset":"4450308"},"package.json":{"size":630,"integrity":{"algorithm":"SHA256","hash":"bd4785fbfd1732f4a6405813e47a7a0cd9a824f0e98046c55c188d45310fe8d3","blockSize":4194304,"blocks":["bd4785fbfd1732f4a6405813e47a7a0cd9a824f0e98046c55c188d45310fe8d3"]},"offset":"4451392"},"out":{"files":{"CancellationToken.js":{"size":3154,"integrity":{"algorithm":"SHA256","hash":"beb6e488f51bcd90d6593900c0a7afdfa3edaf4060456a6a2ad1f28b35ab3bf0","blockSize":4194304,"blocks":["beb6e488f51bcd90d6593900c0a7afdfa3edaf4060456a6a2ad1f28b35ab3bf0"]},"offset":"4452022"},"CancellationToken.js.map":{"size":5648,"integrity":{"algorithm":"SHA256","hash":"9fdf32eccac29b57c7703a23cd1201ca6a04c1b81b349900177ec1b948317c89","blockSize":4194304,"blocks":["9fdf32eccac29b57c7703a23cd1201ca6a04c1b81b349900177ec1b948317c89"]},"offset":"4455176"},"MemoLazy.js":{"size":1468,"integrity":{"algorithm":"SHA256","hash":"dbfa932bf78dfd0a606b231ee3d43155e4d84e4049448e22623e813f0a5834a6","blockSize":4194304,"blocks":["dbfa932bf78dfd0a606b231ee3d43155e4d84e4049448e22623e813f0a5834a6"]},"offset":"4460824"},"MemoLazy.js.map":{"size":2756,"integrity":{"algorithm":"SHA256","hash":"1603666315d0de55b5553b7223abfba2fdc113fc765f61c5e74d60ed4c3c7a9b","blockSize":4194304,"blocks":["1603666315d0de55b5553b7223abfba2fdc113fc765f61c5e74d60ed4c3c7a9b"]},"offset":"4462292"},"ProgressCallbackTransform.js":{"size":1896,"integrity":{"algorithm":"SHA256","hash":"a589668dd6dc6329163a7db1a8c400eef3436f9622517f21a09aa7604d758fb6","blockSize":4194304,"blocks":["a589668dd6dc6329163a7db1a8c400eef3436f9622517f21a09aa7604d758fb6"]},"offset":"4465048"},"ProgressCallbackTransform.js.map":{"size":3693,"integrity":{"algorithm":"SHA256","hash":"7e42abdec49293ecbd388e36213ccf743a0b12a018af5045dd23cd0ed495c7ff","blockSize":4194304,"blocks":["7e42abdec49293ecbd388e36213ccf743a0b12a018af5045dd23cd0ed495c7ff"]},"offset":"4466944"},"blockMapApi.js":{"size":77,"integrity":{"algorithm":"SHA256","hash":"d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230","blockSize":4194304,"blocks":["d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230"]},"offset":"4470637"},"blockMapApi.js.map":{"size":403,"integrity":{"algorithm":"SHA256","hash":"cbc5bfdd044fd2f70dd6edaf55449890497bdf67a05686e847da71ac96b94a33","blockSize":4194304,"blocks":["cbc5bfdd044fd2f70dd6edaf55449890497bdf67a05686e847da71ac96b94a33"]},"offset":"4470714"},"error.js":{"size":222,"integrity":{"algorithm":"SHA256","hash":"67d8d23af2975a0cb36410eaf1181fa4646cd14d825e8af02245c19a331c7eb1","blockSize":4194304,"blocks":["67d8d23af2975a0cb36410eaf1181fa4646cd14d825e8af02245c19a331c7eb1"]},"offset":"4471117"},"error.js.map":{"size":454,"integrity":{"algorithm":"SHA256","hash":"64580cca1bb760bd55809c02ee1b3789dd6bd3499bee30e82ed8986e3413ef95","blockSize":4194304,"blocks":["64580cca1bb760bd55809c02ee1b3789dd6bd3499bee30e82ed8986e3413ef95"]},"offset":"4471339"},"httpExecutor.js":{"size":17386,"integrity":{"algorithm":"SHA256","hash":"d5225d17c89d1a9933591a2b0f395cfc603d80761aed1157535e9039175c4398","blockSize":4194304,"blocks":["d5225d17c89d1a9933591a2b0f395cfc603d80761aed1157535e9039175c4398"]},"offset":"4471793"},"httpExecutor.js.map":{"size":33728,"integrity":{"algorithm":"SHA256","hash":"ceff7e299612d5ecdeb7d521e41f31efc5cba906fbaf3c48b58950f9dbe088a9","blockSize":4194304,"blocks":["ceff7e299612d5ecdeb7d521e41f31efc5cba906fbaf3c48b58950f9dbe088a9"]},"offset":"4489179"},"index.js":{"size":4363,"integrity":{"algorithm":"SHA256","hash":"ba4d06281d781446fb0e5317f211bc6dfb46daea22c7b4f039ed09baaa6c3960","blockSize":4194304,"blocks":["ba4d06281d781446fb0e5317f211bc6dfb46daea22c7b4f039ed09baaa6c3960"]},"offset":"4522907"},"index.js.map":{"size":2657,"integrity":{"algorithm":"SHA256","hash":"5afa84d10d80dbb09711ddcc6c419fbaa9708e0caa0a835d0cd0f7384f661837","blockSize":4194304,"blocks":["5afa84d10d80dbb09711ddcc6c419fbaa9708e0caa0a835d0cd0f7384f661837"]},"offset":"4527270"},"publishOptions.js":{"size":2171,"integrity":{"algorithm":"SHA256","hash":"081867fa37b9533f87f7a2a64f1ef959f33851318b50afb462f70a4e28c67ffa","blockSize":4194304,"blocks":["081867fa37b9533f87f7a2a64f1ef959f33851318b50afb462f70a4e28c67ffa"]},"offset":"4529927"},"publishOptions.js.map":{"size":14910,"integrity":{"algorithm":"SHA256","hash":"911ba0652004fdbf73d4406eeb63f53134975a0e431db5d87922634959c39660","blockSize":4194304,"blocks":["911ba0652004fdbf73d4406eeb63f53134975a0e431db5d87922634959c39660"]},"offset":"4532098"},"retry.js":{"size":851,"integrity":{"algorithm":"SHA256","hash":"c6526f8085e93d1f4047b5943cf480e9ec51075e1ee807084d7b56e8159a83b1","blockSize":4194304,"blocks":["c6526f8085e93d1f4047b5943cf480e9ec51075e1ee807084d7b56e8159a83b1"]},"offset":"4547008"},"retry.js.map":{"size":1468,"integrity":{"algorithm":"SHA256","hash":"ae2a495c96ca32b476f9e856ba0add35bebf6925166d7be2c94f84fc2ff4ebd8","blockSize":4194304,"blocks":["ae2a495c96ca32b476f9e856ba0add35bebf6925166d7be2c94f84fc2ff4ebd8"]},"offset":"4547859"},"rfc2253Parser.js":{"size":2223,"integrity":{"algorithm":"SHA256","hash":"db008300260f8053940f5e947851d3d0e96f396fb67df46d4cd8e1234c3eccc0","blockSize":4194304,"blocks":["db008300260f8053940f5e947851d3d0e96f396fb67df46d4cd8e1234c3eccc0"]},"offset":"4549327"},"rfc2253Parser.js.map":{"size":4168,"integrity":{"algorithm":"SHA256","hash":"8bcf678951773404906d4b9ceb1e6afead0c6db8a15c73b6f273f1f135b176b6","blockSize":4194304,"blocks":["8bcf678951773404906d4b9ceb1e6afead0c6db8a15c73b6f273f1f135b176b6"]},"offset":"4551550"},"updateInfo.js":{"size":77,"integrity":{"algorithm":"SHA256","hash":"d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230","blockSize":4194304,"blocks":["d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230"]},"offset":"4555718"},"updateInfo.js.map":{"size":2316,"integrity":{"algorithm":"SHA256","hash":"120aabe1a0e0af390b242d63084b4dcdafba31c8c4d1888780bba5fe49e98f99","blockSize":4194304,"blocks":["120aabe1a0e0af390b242d63084b4dcdafba31c8c4d1888780bba5fe49e98f99"]},"offset":"4555795"},"uuid.js":{"size":6361,"integrity":{"algorithm":"SHA256","hash":"5f2f98308871430fd910fbbe2584bd08745deaf8d2022efd7972edb528ac2328","blockSize":4194304,"blocks":["5f2f98308871430fd910fbbe2584bd08745deaf8d2022efd7972edb528ac2328"]},"offset":"4558111"},"uuid.js.map":{"size":12236,"integrity":{"algorithm":"SHA256","hash":"3f8dc910c8f65bcd60d13787829931ec270933c7009ee667c854a0911e84d338","blockSize":4194304,"blocks":["3f8dc910c8f65bcd60d13787829931ec270933c7009ee667c854a0911e84d338"]},"offset":"4564472"},"xml.js":{"size":3518,"integrity":{"algorithm":"SHA256","hash":"500e620afdbe8e7d6c8e710d4d868e5229f1311a135a323b547ffa65c8b0ac85","blockSize":4194304,"blocks":["500e620afdbe8e7d6c8e710d4d868e5229f1311a135a323b547ffa65c8b0ac85"]},"offset":"4576708"},"xml.js.map":{"size":6987,"integrity":{"algorithm":"SHA256","hash":"405331ede8c0bfb52033a9829b6ae9ca7f87c36b1c663c220309dad6fc8f0ca1","blockSize":4194304,"blocks":["405331ede8c0bfb52033a9829b6ae9ca7f87c36b1c663c220309dad6fc8f0ca1"]},"offset":"4580226"}}}}},"clean-stack":{"files":{"index.js":{"size":1055,"integrity":{"algorithm":"SHA256","hash":"e813cf7271df893727ba03028926b2b6c2b45e3357dc99d0688a0074a62f4cee","blockSize":4194304,"blocks":["e813cf7271df893727ba03028926b2b6c2b45e3357dc99d0688a0074a62f4cee"]},"offset":"4587213"},"license":{"size":1109,"integrity":{"algorithm":"SHA256","hash":"48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0","blockSize":4194304,"blocks":["48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0"]},"offset":"4588268"},"package.json":{"size":493,"integrity":{"algorithm":"SHA256","hash":"29074d617f8ab718255dc0e3ba2270b72296f779f27153d5a873dbb2f1b2961d","blockSize":4194304,"blocks":["29074d617f8ab718255dc0e3ba2270b72296f779f27153d5a873dbb2f1b2961d"]},"offset":"4589377"}}},"concat-map":{"files":{"LICENSE":{"size":1073,"integrity":{"algorithm":"SHA256","hash":"435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b","blockSize":4194304,"blocks":["435a6722c786b0a56fbe7387028f1d9d3f3a2d0fb615bb8fee118727c3f59b7b"]},"offset":"4589870"},"README.markdown":{"size":1165,"integrity":{"algorithm":"SHA256","hash":"2bc76dd6de6869fb5335e04c066edd5ab9d99a2cf7958a25e3c7c8c48768b5b4","blockSize":4194304,"blocks":["2bc76dd6de6869fb5335e04c066edd5ab9d99a2cf7958a25e3c7c8c48768b5b4"]},"offset":"4590943"},"index.js":{"size":345,"integrity":{"algorithm":"SHA256","hash":"091b65d778337599d0140b35d53c038603d1732d27c33bfe39e03871a96926b2","blockSize":4194304,"blocks":["091b65d778337599d0140b35d53c038603d1732d27c33bfe39e03871a96926b2"]},"offset":"4592108"},"package.json":{"size":791,"integrity":{"algorithm":"SHA256","hash":"dbcb8dbd0e1a9f16f63b686d3ece232494dd891708de821840deed5f3717f31f","blockSize":4194304,"blocks":["dbcb8dbd0e1a9f16f63b686d3ece232494dd891708de821840deed5f3717f31f"]},"offset":"4592453"}}},"cross-spawn":{"files":{"LICENSE":{"size":1105,"integrity":{"algorithm":"SHA256","hash":"aaa78451b6fecd1b9c4594c796c133c0e90cad100372ff8bc6de615e9ef9adf1","blockSize":4194304,"blocks":["aaa78451b6fecd1b9c4594c796c133c0e90cad100372ff8bc6de615e9ef9adf1"]},"offset":"4593244"},"index.js":{"size":1192,"integrity":{"algorithm":"SHA256","hash":"b8e01cb18ba87ee1b0e5eb2eb1ce6cbb25a2bdd229f9e08671f8a10ed7e3ad35","blockSize":4194304,"blocks":["b8e01cb18ba87ee1b0e5eb2eb1ce6cbb25a2bdd229f9e08671f8a10ed7e3ad35"]},"offset":"4594349"},"package.json":{"size":1275,"integrity":{"algorithm":"SHA256","hash":"ace296bdfdbd60c072885c0128dedb7c8b6bed19c4041c954784bc8946436eb3","blockSize":4194304,"blocks":["ace296bdfdbd60c072885c0128dedb7c8b6bed19c4041c954784bc8946436eb3"]},"offset":"4595541"},"lib":{"files":{"enoent.js":{"size":1471,"integrity":{"algorithm":"SHA256","hash":"0f9aab5c708991cf01d3fda557318c4600a46071138742ee8596244f7fd73ef5","blockSize":4194304,"blocks":["0f9aab5c708991cf01d3fda557318c4600a46071138742ee8596244f7fd73ef5"]},"offset":"4596816"},"parse.js":{"size":3065,"integrity":{"algorithm":"SHA256","hash":"0a67601365a3ae413653c8c9d3c6bff2202861e1eb8b5d28bf46d4812a4465ea","blockSize":4194304,"blocks":["0a67601365a3ae413653c8c9d3c6bff2202861e1eb8b5d28bf46d4812a4465ea"]},"offset":"4598287"},"util":{"files":{"escape.js":{"size":1383,"integrity":{"algorithm":"SHA256","hash":"5d61b2829e0e7912874e1e664146554d0cd02fd5524abf4ea59a879f0fc30675","blockSize":4194304,"blocks":["5d61b2829e0e7912874e1e664146554d0cd02fd5524abf4ea59a879f0fc30675"]},"offset":"4601352"},"readShebang.js":{"size":549,"integrity":{"algorithm":"SHA256","hash":"b05ba732e167fcf9a4fd67ebb4a5c28cca4712a36376c0b0f2e4e1d37e7f18d2","blockSize":4194304,"blocks":["b05ba732e167fcf9a4fd67ebb4a5c28cca4712a36376c0b0f2e4e1d37e7f18d2"]},"offset":"4602735"},"resolveCommand.js":{"size":1557,"integrity":{"algorithm":"SHA256","hash":"e525fe739aba01cf5eee6473df449cdda93df6266effa8eae0fcfb9a4e6c5de6","blockSize":4194304,"blocks":["e525fe739aba01cf5eee6473df449cdda93df6266effa8eae0fcfb9a4e6c5de6"]},"offset":"4603284"}}}}}}},"debug":{"files":{"LICENSE":{"size":1139,"integrity":{"algorithm":"SHA256","hash":"3a61c6c96caf5c1d9b623fb9b04c822b783dfcb78aa7e49c76a3f643e6ed7f95","blockSize":4194304,"blocks":["3a61c6c96caf5c1d9b623fb9b04c822b783dfcb78aa7e49c76a3f643e6ed7f95"]},"offset":"4604841"},"package.json":{"size":935,"integrity":{"algorithm":"SHA256","hash":"f444bacce4b9028caf4a1e10fd66b507dd55a7675a62913218a08194d0b2354a","blockSize":4194304,"blocks":["f444bacce4b9028caf4a1e10fd66b507dd55a7675a62913218a08194d0b2354a"]},"offset":"4605980"},"src":{"files":{"browser.js":{"size":6020,"integrity":{"algorithm":"SHA256","hash":"4afa722281f0817504bb7a9d060eea7e8ab2eae342611b525aff9b9204b9c9af","blockSize":4194304,"blocks":["4afa722281f0817504bb7a9d060eea7e8ab2eae342611b525aff9b9204b9c9af"]},"offset":"4606915"},"common.js":{"size":6289,"integrity":{"algorithm":"SHA256","hash":"c65bff44c189188e0c45afdbd9b02c427ff5c6e54b94da53c102fbb7a53f0e37","blockSize":4194304,"blocks":["c65bff44c189188e0c45afdbd9b02c427ff5c6e54b94da53c102fbb7a53f0e37"]},"offset":"4612935"},"index.js":{"size":314,"integrity":{"algorithm":"SHA256","hash":"aa127ff1752b7d9c7415c5c7bb6994d9aa722b81bcbcab4bd48316b013d23bf3","blockSize":4194304,"blocks":["aa127ff1752b7d9c7415c5c7bb6994d9aa722b81bcbcab4bd48316b013d23bf3"]},"offset":"4619224"},"node.js":{"size":4728,"integrity":{"algorithm":"SHA256","hash":"d7b26d7c92f8ea7794b77ce11f3c11cd18c9084df7c357e3c7025344fa28aac6","blockSize":4194304,"blocks":["d7b26d7c92f8ea7794b77ce11f3c11cd18c9084df7c357e3c7025344fa28aac6"]},"offset":"4619538"}}}}},"del":{"files":{"index.js":{"size":3021,"integrity":{"algorithm":"SHA256","hash":"04e820c86f88eb014531345ab22c2ba215c5431342b99409e4b4611d53dfd48a","blockSize":4194304,"blocks":["04e820c86f88eb014531345ab22c2ba215c5431342b99409e4b4611d53dfd48a"]},"offset":"4624266"},"license":{"size":1117,"integrity":{"algorithm":"SHA256","hash":"5c932d88256b4ab958f64a856fa48e8bd1f55bc1d96b8149c65689e0c61789d3","blockSize":4194304,"blocks":["5c932d88256b4ab958f64a856fa48e8bd1f55bc1d96b8149c65689e0c61789d3"]},"offset":"4627287"},"package.json":{"size":819,"integrity":{"algorithm":"SHA256","hash":"141ad2dbf77bd277056abe6c09fec802de535f363a3bd3b01694852e298c3c6a","blockSize":4194304,"blocks":["141ad2dbf77bd277056abe6c09fec802de535f363a3bd3b01694852e298c3c6a"]},"offset":"4628404"}}},"dir-glob":{"files":{"index.js":{"size":2304,"integrity":{"algorithm":"SHA256","hash":"e56e7a81ccfc1bfa5beafb4e0a13c1dd37e5040d682682494eb0af293d4f129f","blockSize":4194304,"blocks":["e56e7a81ccfc1bfa5beafb4e0a13c1dd37e5040d682682494eb0af293d4f129f"]},"offset":"4629223"},"license":{"size":1116,"integrity":{"algorithm":"SHA256","hash":"69dee148a2cc470554dfa7142e830662062394d0fe67cddd379aba90dc60d6b3","blockSize":4194304,"blocks":["69dee148a2cc470554dfa7142e830662062394d0fe67cddd379aba90dc60d6b3"]},"offset":"4631527"},"package.json":{"size":553,"integrity":{"algorithm":"SHA256","hash":"d1f561b68d7baa9da03f7cf1d0df3b2e108c6093a52f4a3ae01a537c0676bf74","blockSize":4194304,"blocks":["d1f561b68d7baa9da03f7cf1d0df3b2e108c6093a52f4a3ae01a537c0676bf74"]},"offset":"4632643"}}},"electron-updater":{"files":{"LICENSE":{"size":1084,"integrity":{"algorithm":"SHA256","hash":"bed8d0ab3e6031817f775a641ff37313b0f5591bc8ba0ed79b978dafbd4231ce","blockSize":4194304,"blocks":["bed8d0ab3e6031817f775a641ff37313b0f5591bc8ba0ed79b978dafbd4231ce"]},"offset":"4633196"},"package.json":{"size":1040,"integrity":{"algorithm":"SHA256","hash":"6f6633a142dbb92cea4099650112ac3d162dc841e6fd55c0cab2020bb5f51230","blockSize":4194304,"blocks":["6f6633a142dbb92cea4099650112ac3d162dc841e6fd55c0cab2020bb5f51230"]},"offset":"4634280"},"out":{"files":{"AppAdapter.js":{"size":702,"integrity":{"algorithm":"SHA256","hash":"c77c225c2a0138fadf8dbfca99c239025651149a1256025ecd7eb914316d5a65","blockSize":4194304,"blocks":["c77c225c2a0138fadf8dbfca99c239025651149a1256025ecd7eb914316d5a65"]},"offset":"4635320"},"AppAdapter.js.map":{"size":1814,"integrity":{"algorithm":"SHA256","hash":"8e3dbb32bcedad41e5b863d6a21eb2f858d84a82185b5006ac259b3a688c5529","blockSize":4194304,"blocks":["8e3dbb32bcedad41e5b863d6a21eb2f858d84a82185b5006ac259b3a688c5529"]},"offset":"4636022"},"AppImageUpdater.js":{"size":5359,"integrity":{"algorithm":"SHA256","hash":"1612114929ff44750c93bd162c1dfca9988a70974f5a21afc6d97c92bfd88c7d","blockSize":4194304,"blocks":["1612114929ff44750c93bd162c1dfca9988a70974f5a21afc6d97c92bfd88c7d"]},"offset":"4637836"},"AppImageUpdater.js.map":{"size":8831,"integrity":{"algorithm":"SHA256","hash":"ac62de127f9e40e28cf9bb7d3517377056df73884781b7a00cd201419c46621b","blockSize":4194304,"blocks":["ac62de127f9e40e28cf9bb7d3517377056df73884781b7a00cd201419c46621b"]},"offset":"4643195"},"AppUpdater.js":{"size":29811,"integrity":{"algorithm":"SHA256","hash":"8c69a1c4605021b65700a44ff10bd979f593e6a377fc74c016662a6139069133","blockSize":4194304,"blocks":["8c69a1c4605021b65700a44ff10bd979f593e6a377fc74c016662a6139069133"]},"offset":"4652026"},"AppUpdater.js.map":{"size":52226,"integrity":{"algorithm":"SHA256","hash":"7e71638e315dd0bd35b3c235a9eaedf3124152129b3ae6b98510ba92688efd65","blockSize":4194304,"blocks":["7e71638e315dd0bd35b3c235a9eaedf3124152129b3ae6b98510ba92688efd65"]},"offset":"4681837"},"BaseUpdater.js":{"size":6079,"integrity":{"algorithm":"SHA256","hash":"675d50418391bcf77745ce588983f6a51bf25a969802a18b8cee1fda1be857e0","blockSize":4194304,"blocks":["675d50418391bcf77745ce588983f6a51bf25a969802a18b8cee1fda1be857e0"]},"offset":"4734063"},"BaseUpdater.js.map":{"size":10883,"integrity":{"algorithm":"SHA256","hash":"8b7ea5834d5c20a6f2786166118482fd644c4e05031b4adff29d9db4212cc907","blockSize":4194304,"blocks":["8b7ea5834d5c20a6f2786166118482fd644c4e05031b4adff29d9db4212cc907"]},"offset":"4740142"},"DebUpdater.js":{"size":2112,"integrity":{"algorithm":"SHA256","hash":"58fe5ba696eeec61243ce2597422f39aaaa97e08e159c11391b123c3b7b1e2bb","blockSize":4194304,"blocks":["58fe5ba696eeec61243ce2597422f39aaaa97e08e159c11391b123c3b7b1e2bb"]},"offset":"4751025"},"DebUpdater.js.map":{"size":3862,"integrity":{"algorithm":"SHA256","hash":"fea9a0754cd700aad640cbca0ce03af236b7f475cb48fcd44eba7fe82e8f27ec","blockSize":4194304,"blocks":["fea9a0754cd700aad640cbca0ce03af236b7f475cb48fcd44eba7fe82e8f27ec"]},"offset":"4753137"},"DownloadedUpdateHelper.js":{"size":6857,"integrity":{"algorithm":"SHA256","hash":"7e400545b5fbcb55fceba5bfb7443d9c91ca928cffddc6aecfa464854572aeaa","blockSize":4194304,"blocks":["7e400545b5fbcb55fceba5bfb7443d9c91ca928cffddc6aecfa464854572aeaa"]},"offset":"4756999"},"DownloadedUpdateHelper.js.map":{"size":12251,"integrity":{"algorithm":"SHA256","hash":"cef2750982fd63ef843c4a274938682a1f8e2abd1eac794f1b612fdb496b1d00","blockSize":4194304,"blocks":["cef2750982fd63ef843c4a274938682a1f8e2abd1eac794f1b612fdb496b1d00"]},"offset":"4763856"},"ElectronAppAdapter.js":{"size":1134,"integrity":{"algorithm":"SHA256","hash":"f3a050556f9717d6052818c2d97ba57279674efb6ce4a033d71de83d34bfdec5","blockSize":4194304,"blocks":["f3a050556f9717d6052818c2d97ba57279674efb6ce4a033d71de83d34bfdec5"]},"offset":"4776107"},"ElectronAppAdapter.js.map":{"size":2289,"integrity":{"algorithm":"SHA256","hash":"f5b740ccc773315579ac1cc893db314f1bf589d4c499073755c625e8cdfa99a0","blockSize":4194304,"blocks":["f5b740ccc773315579ac1cc893db314f1bf589d4c499073755c625e8cdfa99a0"]},"offset":"4777241"},"MacUpdater.js":{"size":12525,"integrity":{"algorithm":"SHA256","hash":"40b522ac2ecf35d19edea8ee1144351e35377eabe52ce5f19eaf776bbe38b398","blockSize":4194304,"blocks":["40b522ac2ecf35d19edea8ee1144351e35377eabe52ce5f19eaf776bbe38b398"]},"offset":"4779530"},"MacUpdater.js.map":{"size":20681,"integrity":{"algorithm":"SHA256","hash":"ab43aea96ac27f9ad62b2389d2a8dd00efaaf4cd50dad0f97143a88fb864fa44","blockSize":4194304,"blocks":["ab43aea96ac27f9ad62b2389d2a8dd00efaaf4cd50dad0f97143a88fb864fa44"]},"offset":"4792055"},"NsisUpdater.js":{"size":9375,"integrity":{"algorithm":"SHA256","hash":"876fcd0b2692cc8a66a646f40fe3f5b3aedc33c95a0e514c65252e34a671e29e","blockSize":4194304,"blocks":["876fcd0b2692cc8a66a646f40fe3f5b3aedc33c95a0e514c65252e34a671e29e"]},"offset":"4812736"},"NsisUpdater.js.map":{"size":15022,"integrity":{"algorithm":"SHA256","hash":"003ba3291c267b0446229b5c4be2bff521468f10b091637d7ea0fd76f814a0d3","blockSize":4194304,"blocks":["003ba3291c267b0446229b5c4be2bff521468f10b091637d7ea0fd76f814a0d3"]},"offset":"4822111"},"PacmanUpdater.js":{"size":2104,"integrity":{"algorithm":"SHA256","hash":"8d99d95483565e249590f95644f07364c5d41330262b22e1108146b92f0b5a38","blockSize":4194304,"blocks":["8d99d95483565e249590f95644f07364c5d41330262b22e1108146b92f0b5a38"]},"offset":"4837133"},"PacmanUpdater.js.map":{"size":3803,"integrity":{"algorithm":"SHA256","hash":"e20f9645cb4aa45630bca74e7e46cbc622be3d19b2677b4c65fcc1b2f644d58a","blockSize":4194304,"blocks":["e20f9645cb4aa45630bca74e7e46cbc622be3d19b2677b4c65fcc1b2f644d58a"]},"offset":"4839237"},"RpmUpdater.js":{"size":2432,"integrity":{"algorithm":"SHA256","hash":"1a33b396ce7fda888e49264788edbf2d5deb8f6bc81dd5ef39f3c483e44834b8","blockSize":4194304,"blocks":["1a33b396ce7fda888e49264788edbf2d5deb8f6bc81dd5ef39f3c483e44834b8"]},"offset":"4843040"},"RpmUpdater.js.map":{"size":4406,"integrity":{"algorithm":"SHA256","hash":"cc780941edcf41757d417c87495cf4365a28f8e020d074103c8100e1d0332213","blockSize":4194304,"blocks":["cc780941edcf41757d417c87495cf4365a28f8e020d074103c8100e1d0332213"]},"offset":"4845472"},"electronHttpExecutor.js":{"size":3210,"integrity":{"algorithm":"SHA256","hash":"2701e686fc5123bef489aa0d57894257fe8a7337ba537d042e18bb6ea6e22569","blockSize":4194304,"blocks":["2701e686fc5123bef489aa0d57894257fe8a7337ba537d042e18bb6ea6e22569"]},"offset":"4849878"},"electronHttpExecutor.js.map":{"size":5547,"integrity":{"algorithm":"SHA256","hash":"3e6eafc704edaa106700ef5ce03e621a33c86a974e5499d3a3551a18e4851e8a","blockSize":4194304,"blocks":["3e6eafc704edaa106700ef5ce03e621a33c86a974e5499d3a3551a18e4851e8a"]},"offset":"4853088"},"main.js":{"size":4611,"integrity":{"algorithm":"SHA256","hash":"efbb328ba02f2b8411ec68eeb205b623903e63ad8292828fbefd0941e92b8b7e","blockSize":4194304,"blocks":["efbb328ba02f2b8411ec68eeb205b623903e63ad8292828fbefd0941e92b8b7e"]},"offset":"4858635"},"main.js.map":{"size":4664,"integrity":{"algorithm":"SHA256","hash":"5827cab243bd07f6b9f00336022d701f06beb0702f0b04c87deee3ba80da8bb1","blockSize":4194304,"blocks":["5827cab243bd07f6b9f00336022d701f06beb0702f0b04c87deee3ba80da8bb1"]},"offset":"4863246"},"providerFactory.js":{"size":3146,"integrity":{"algorithm":"SHA256","hash":"464d191275e3765bef208c1dc755de2a376997e9334441a8f291825da1101e06","blockSize":4194304,"blocks":["464d191275e3765bef208c1dc755de2a376997e9334441a8f291825da1101e06"]},"offset":"4867910"},"providerFactory.js.map":{"size":5173,"integrity":{"algorithm":"SHA256","hash":"4f5d44d7a18af8cd813c488b853384ce413919a71de19c3a253d26717d6b6218","blockSize":4194304,"blocks":["4f5d44d7a18af8cd813c488b853384ce413919a71de19c3a253d26717d6b6218"]},"offset":"4871056"},"types.js":{"size":1518,"integrity":{"algorithm":"SHA256","hash":"d7d097e4c8007d74ed41cac412b4dc9fa124b1d5e57a6801f31b19a7380e7232","blockSize":4194304,"blocks":["d7d097e4c8007d74ed41cac412b4dc9fa124b1d5e57a6801f31b19a7380e7232"]},"offset":"4876229"},"types.js.map":{"size":3619,"integrity":{"algorithm":"SHA256","hash":"3f31519e9ef41568d2308ccb5a2a7c08e54bffcd43c7547610727235babd2b3e","blockSize":4194304,"blocks":["3f31519e9ef41568d2308ccb5a2a7c08e54bffcd43c7547610727235babd2b3e"]},"offset":"4877747"},"util.js":{"size":1688,"integrity":{"algorithm":"SHA256","hash":"528aeee8aadfe84d85e0cfcba4b6e499f626d22799d0ed3e9b9fc5146bc4f859","blockSize":4194304,"blocks":["528aeee8aadfe84d85e0cfcba4b6e499f626d22799d0ed3e9b9fc5146bc4f859"]},"offset":"4881366"},"util.js.map":{"size":2847,"integrity":{"algorithm":"SHA256","hash":"ab32b0289461ad969ae6a6620d853aedae969d9e88fa116363ff4ba069ffac85","blockSize":4194304,"blocks":["ab32b0289461ad969ae6a6620d853aedae969d9e88fa116363ff4ba069ffac85"]},"offset":"4883054"},"windowsExecutableCodeSignatureVerifier.js":{"size":7369,"integrity":{"algorithm":"SHA256","hash":"fd03ea4261542fdbc4201c8b76e64d0dcee26e8fc81a9e767685065a46d8b0ec","blockSize":4194304,"blocks":["fd03ea4261542fdbc4201c8b76e64d0dcee26e8fc81a9e767685065a46d8b0ec"]},"offset":"4885901"},"windowsExecutableCodeSignatureVerifier.js.map":{"size":11200,"integrity":{"algorithm":"SHA256","hash":"84250ef52a2cf6c833b558edda04a9fec0f02d75a5bbf8c1c5f71d7babe684a9","blockSize":4194304,"blocks":["84250ef52a2cf6c833b558edda04a9fec0f02d75a5bbf8c1c5f71d7babe684a9"]},"offset":"4893270"},"providers":{"files":{"BitbucketProvider.js":{"size":1924,"integrity":{"algorithm":"SHA256","hash":"fb71a11e5684cf4530810b3ab58cc0b4fdb83a39408c856ecf0011f809673372","blockSize":4194304,"blocks":["fb71a11e5684cf4530810b3ab58cc0b4fdb83a39408c856ecf0011f809673372"]},"offset":"4904470"},"BitbucketProvider.js.map":{"size":3454,"integrity":{"algorithm":"SHA256","hash":"bf4e8f4f4efbf1c89aa4cb4979d10e4b329cffee9726a12795bb1c5cf324703a","blockSize":4194304,"blocks":["bf4e8f4f4efbf1c89aa4cb4979d10e4b329cffee9726a12795bb1c5cf324703a"]},"offset":"4906394"},"GenericProvider.js":{"size":2209,"integrity":{"algorithm":"SHA256","hash":"fa62fceab26d139655336fb4523ea015dd570c7a0db725465d02ebbf30b4f311","blockSize":4194304,"blocks":["fa62fceab26d139655336fb4523ea015dd570c7a0db725465d02ebbf30b4f311"]},"offset":"4909848"},"GenericProvider.js.map":{"size":3777,"integrity":{"algorithm":"SHA256","hash":"32687ae2a040a8a153135d9aced2afbffe42d1ad337ce8ca53f2e899a6900640","blockSize":4194304,"blocks":["32687ae2a040a8a153135d9aced2afbffe42d1ad337ce8ca53f2e899a6900640"]},"offset":"4912057"},"GitHubProvider.js":{"size":9851,"integrity":{"algorithm":"SHA256","hash":"14c079bee28f92141357c1581b265defce87062860708d8d109ded7b2e940215","blockSize":4194304,"blocks":["14c079bee28f92141357c1581b265defce87062860708d8d109ded7b2e940215"]},"offset":"4915834"},"GitHubProvider.js.map":{"size":16996,"integrity":{"algorithm":"SHA256","hash":"cbd02d3d648eb3067cddca24de4622ab2ef85ed7951128674be2201e940930b5","blockSize":4194304,"blocks":["cbd02d3d648eb3067cddca24de4622ab2ef85ed7951128674be2201e940930b5"]},"offset":"4925685"},"KeygenProvider.js":{"size":2163,"integrity":{"algorithm":"SHA256","hash":"8f952fcdb4aafcc6375220b0711fff14a64f75e64530a8bfb2b845213ec0e5a9","blockSize":4194304,"blocks":["8f952fcdb4aafcc6375220b0711fff14a64f75e64530a8bfb2b845213ec0e5a9"]},"offset":"4942681"},"KeygenProvider.js.map":{"size":3892,"integrity":{"algorithm":"SHA256","hash":"a5082b0cd3893d9e77fbbb62cdc8a2ffa3f701c9f65c3b7ab1279eea662b3bb5","blockSize":4194304,"blocks":["a5082b0cd3893d9e77fbbb62cdc8a2ffa3f701c9f65c3b7ab1279eea662b3bb5"]},"offset":"4944844"},"PrivateGitHubProvider.js":{"size":4103,"integrity":{"algorithm":"SHA256","hash":"2f0ed276ca157930fd7944bee784edbdfc132448c2bde87e9c575456252fae68","blockSize":4194304,"blocks":["2f0ed276ca157930fd7944bee784edbdfc132448c2bde87e9c575456252fae68"]},"offset":"4948736"},"PrivateGitHubProvider.js.map":{"size":7789,"integrity":{"algorithm":"SHA256","hash":"5e34535e67fb3177740fcc6b848e4929752b752021b10dfd14e9139e33dc7ff6","blockSize":4194304,"blocks":["5e34535e67fb3177740fcc6b848e4929752b752021b10dfd14e9139e33dc7ff6"]},"offset":"4952839"},"Provider.js":{"size":5007,"integrity":{"algorithm":"SHA256","hash":"05fb2d485d43cc6de9b85ab2714037873bde2dbb081fdb15dd7677210f8aaaf4","blockSize":4194304,"blocks":["05fb2d485d43cc6de9b85ab2714037873bde2dbb081fdb15dd7677210f8aaaf4"]},"offset":"4960628"},"Provider.js.map":{"size":10016,"integrity":{"algorithm":"SHA256","hash":"3b206ce108475ebaea3e6b46855c221d9bfdddab4a5b9c8bcf1ad3cd50df4aa5","blockSize":4194304,"blocks":["3b206ce108475ebaea3e6b46855c221d9bfdddab4a5b9c8bcf1ad3cd50df4aa5"]},"offset":"4965635"}}},"differentialDownloader":{"files":{"DataSplitter.js":{"size":7941,"integrity":{"algorithm":"SHA256","hash":"fba380f1291ed21e545bde470c73350ae1a07517c5bb71996682fc845b7565a0","blockSize":4194304,"blocks":["fba380f1291ed21e545bde470c73350ae1a07517c5bb71996682fc845b7565a0"]},"offset":"4975651"},"DataSplitter.js.map":{"size":14197,"integrity":{"algorithm":"SHA256","hash":"0817663359a5a6daa235684203aefd5c915b0f3c46e32ab88f71616df6e70695","blockSize":4194304,"blocks":["0817663359a5a6daa235684203aefd5c915b0f3c46e32ab88f71616df6e70695"]},"offset":"4983592"},"DifferentialDownloader.js":{"size":12557,"integrity":{"algorithm":"SHA256","hash":"963b75f2e98705cdcf7cbece78e1bb1f405962e92ccb21b87e520be5d835226e","blockSize":4194304,"blocks":["963b75f2e98705cdcf7cbece78e1bb1f405962e92ccb21b87e520be5d835226e"]},"offset":"4997789"},"DifferentialDownloader.js.map":{"size":21465,"integrity":{"algorithm":"SHA256","hash":"ad64b36901677b514770bef76e30afb45ae0beada57d2b364ef06cdde2191a93","blockSize":4194304,"blocks":["ad64b36901677b514770bef76e30afb45ae0beada57d2b364ef06cdde2191a93"]},"offset":"5010346"},"FileWithEmbeddedBlockMapDifferentialDownloader.js":{"size":1787,"integrity":{"algorithm":"SHA256","hash":"58c77166d6752dd7c7ea2c6f43ed8181cad31b366838626b3d3f20dfe04c2502","blockSize":4194304,"blocks":["58c77166d6752dd7c7ea2c6f43ed8181cad31b366838626b3d3f20dfe04c2502"]},"offset":"5031811"},"FileWithEmbeddedBlockMapDifferentialDownloader.js.map":{"size":3213,"integrity":{"algorithm":"SHA256","hash":"f21cdffe96e592998d830c9cf3d62cb1c209cc5aa0697dbff1e5e7b3dc7156f4","blockSize":4194304,"blocks":["f21cdffe96e592998d830c9cf3d62cb1c209cc5aa0697dbff1e5e7b3dc7156f4"]},"offset":"5033598"},"GenericDifferentialDownloader.js":{"size":467,"integrity":{"algorithm":"SHA256","hash":"d7aeb6e82dfe4830cfb4eeeebad515b9a4a2055ae5bb3c46e03a2804c524a3a2","blockSize":4194304,"blocks":["d7aeb6e82dfe4830cfb4eeeebad515b9a4a2055ae5bb3c46e03a2804c524a3a2"]},"offset":"5036811"},"GenericDifferentialDownloader.js.map":{"size":709,"integrity":{"algorithm":"SHA256","hash":"37a09dab5af73258527d65396a02363f10df71c1d4c60555b4492ee5c847aada","blockSize":4194304,"blocks":["37a09dab5af73258527d65396a02363f10df71c1d4c60555b4492ee5c847aada"]},"offset":"5037278"},"ProgressDifferentialDownloadCallbackTransform.js":{"size":3751,"integrity":{"algorithm":"SHA256","hash":"77c2aebd326d57a854b9834a4a59c8bb28bb80166309f7d0bb45924819f7f774","blockSize":4194304,"blocks":["77c2aebd326d57a854b9834a4a59c8bb28bb80166309f7d0bb45924819f7f774"]},"offset":"5037987"},"ProgressDifferentialDownloadCallbackTransform.js.map":{"size":6590,"integrity":{"algorithm":"SHA256","hash":"c7d2540b01b43b9a8ffde20eecd5a20d0343265d95ce3dc8cb0a32ecfcb6b304","blockSize":4194304,"blocks":["c7d2540b01b43b9a8ffde20eecd5a20d0343265d95ce3dc8cb0a32ecfcb6b304"]},"offset":"5041738"},"downloadPlanBuilder.js":{"size":5470,"integrity":{"algorithm":"SHA256","hash":"9bcd210c05b67bf4a16df3eb94f84e795fcce2010ae8fd044b70de05c570e23f","blockSize":4194304,"blocks":["9bcd210c05b67bf4a16df3eb94f84e795fcce2010ae8fd044b70de05c570e23f"]},"offset":"5048328"},"downloadPlanBuilder.js.map":{"size":10248,"integrity":{"algorithm":"SHA256","hash":"f05e73a087686a5d06a1a2ce77f539ee1250653fd192949e3dd466b328fc4898","blockSize":4194304,"blocks":["f05e73a087686a5d06a1a2ce77f539ee1250653fd192949e3dd466b328fc4898"]},"offset":"5053798"},"multipleRangeDownloader.js":{"size":4821,"integrity":{"algorithm":"SHA256","hash":"4e738d912ca9c05e4cbc1e9db16054af75484d939a170501456d2d67d124322f","blockSize":4194304,"blocks":["4e738d912ca9c05e4cbc1e9db16054af75484d939a170501456d2d67d124322f"]},"offset":"5064046"},"multipleRangeDownloader.js.map":{"size":8881,"integrity":{"algorithm":"SHA256","hash":"54471e9a9a0c968396fbd16199b86dd9b638bc6eb0b5976f36b4a4de6ff812e2","blockSize":4194304,"blocks":["54471e9a9a0c968396fbd16199b86dd9b638bc6eb0b5976f36b4a4de6ff812e2"]},"offset":"5068867"}}}}},"node_modules":{"files":{"fs-extra":{"files":{"LICENSE":{"size":1084,"integrity":{"algorithm":"SHA256","hash":"1e76029602ae9b21cc4e612db2496d92febed882ba13ba745f8b3309e85f9d39","blockSize":4194304,"blocks":["1e76029602ae9b21cc4e612db2496d92febed882ba13ba745f8b3309e85f9d39"]},"offset":"6201758"},"package.json":{"size":950,"integrity":{"algorithm":"SHA256","hash":"8625f8d6674f3dacbdd5ed9fc553d9583234a6403ef90b1612f786b8fad17711","blockSize":4194304,"blocks":["8625f8d6674f3dacbdd5ed9fc553d9583234a6403ef90b1612f786b8fad17711"]},"offset":"6202842"},"lib":{"files":{"index.js":{"size":358,"integrity":{"algorithm":"SHA256","hash":"4967e903b3dc290f2b401b81bfcad8b2d94fd68c1bf4563df63ac082af0e1dae","blockSize":4194304,"blocks":["4967e903b3dc290f2b401b81bfcad8b2d94fd68c1bf4563df63ac082af0e1dae"]},"offset":"6203792"},"util":{"files":{"stat.js":{"size":5226,"integrity":{"algorithm":"SHA256","hash":"fe33d6c739866764c937e8aaeb518bbda7a36b0f3c006855b26c5bdd846081c3","blockSize":4194304,"blocks":["fe33d6c739866764c937e8aaeb518bbda7a36b0f3c006855b26c5bdd846081c3"]},"offset":"6204150"},"utimes.js":{"size":615,"integrity":{"algorithm":"SHA256","hash":"4a049bcd580984957b8690fb05f7a6bf5c7e59bfc78d6817882945c35f3a44d4","blockSize":4194304,"blocks":["4a049bcd580984957b8690fb05f7a6bf5c7e59bfc78d6817882945c35f3a44d4"]},"offset":"6209376"}}},"remove":{"files":{"index.js":{"size":489,"integrity":{"algorithm":"SHA256","hash":"ad79431e3d1cae731565d3e7403f619aee21f3b276d3541fe794ec7fd59ab0da","blockSize":4194304,"blocks":["ad79431e3d1cae731565d3e7403f619aee21f3b276d3541fe794ec7fd59ab0da"]},"offset":"6209991"},"rimraf.js":{"size":7443,"integrity":{"algorithm":"SHA256","hash":"931cd85d1564a59db583841196cf2773940e7eee30830514b448d2d4919cc534","blockSize":4194304,"blocks":["931cd85d1564a59db583841196cf2773940e7eee30830514b448d2d4919cc534"]},"offset":"6210480"}}},"path-exists":{"files":{"index.js":{"size":263,"integrity":{"algorithm":"SHA256","hash":"5ce096c95daec0259817248921b39a9e0df4d342db171138ccb62440cc7a0cbe","blockSize":4194304,"blocks":["5ce096c95daec0259817248921b39a9e0df4d342db171138ccb62440cc7a0cbe"]},"offset":"6217923"}}},"output-file":{"files":{"index.js":{"size":947,"integrity":{"algorithm":"SHA256","hash":"a27d1a72ed1ecddffc57e70187a4b72467ed0dd34092b7e3d2817b9f4359ab5d","blockSize":4194304,"blocks":["a27d1a72ed1ecddffc57e70187a4b72467ed0dd34092b7e3d2817b9f4359ab5d"]},"offset":"6218186"}}},"move":{"files":{"index.js":{"size":147,"integrity":{"algorithm":"SHA256","hash":"274f9fd31ac65cdc7dd9a6c568fb1163c2b043f6d5fcad30d5177961e9e3e240","blockSize":4194304,"blocks":["274f9fd31ac65cdc7dd9a6c568fb1163c2b043f6d5fcad30d5177961e9e3e240"]},"offset":"6219133"},"move-sync.js":{"size":1485,"integrity":{"algorithm":"SHA256","hash":"10c9f85215adcbc49661e5629d81ab4a5dbae552dd59032836d28cb2836d1cce","blockSize":4194304,"blocks":["10c9f85215adcbc49661e5629d81ab4a5dbae552dd59032836d28cb2836d1cce"]},"offset":"6219280"},"move.js":{"size":2010,"integrity":{"algorithm":"SHA256","hash":"5487cd460cb8af3e0b2ed0055d61185e56bea35d08c01972b7f1a87e0433aabe","blockSize":4194304,"blocks":["5487cd460cb8af3e0b2ed0055d61185e56bea35d08c01972b7f1a87e0433aabe"]},"offset":"6220765"}}},"mkdirs":{"files":{"index.js":{"size":328,"integrity":{"algorithm":"SHA256","hash":"adcd576e2e3868b94adb1bad6d1e3cf2312ffdfa71e49a57fe6247e116e75ecf","blockSize":4194304,"blocks":["adcd576e2e3868b94adb1bad6d1e3cf2312ffdfa71e49a57fe6247e116e75ecf"]},"offset":"6222775"},"make-dir.js":{"size":545,"integrity":{"algorithm":"SHA256","hash":"23c7ce8a3d6b39d1c7cf5d16ba6447c1690a6fdaa8c5f41e6b76526b7afe96f3","blockSize":4194304,"blocks":["23c7ce8a3d6b39d1c7cf5d16ba6447c1690a6fdaa8c5f41e6b76526b7afe96f3"]},"offset":"6223103"},"utils.js":{"size":1655,"integrity":{"algorithm":"SHA256","hash":"5372a36f4b2c5023788c23dbc6639155cb016a1b111e8fc1d6bf97cbaf11b1f8","blockSize":4194304,"blocks":["5372a36f4b2c5023788c23dbc6639155cb016a1b111e8fc1d6bf97cbaf11b1f8"]},"offset":"6223648"}}},"json":{"files":{"index.js":{"size":508,"integrity":{"algorithm":"SHA256","hash":"c5ac6a8005308e5bb36619fed225c987872300d356fa95d0d56878029ebbdc45","blockSize":4194304,"blocks":["c5ac6a8005308e5bb36619fed225c987872300d356fa95d0d56878029ebbdc45"]},"offset":"6225303"},"jsonfile.js":{"size":238,"integrity":{"algorithm":"SHA256","hash":"a986ad3c13166f3bf8f30b18140bfc8ea1754760ab3802aa7c8c3780d54f07ba","blockSize":4194304,"blocks":["a986ad3c13166f3bf8f30b18140bfc8ea1754760ab3802aa7c8c3780d54f07ba"]},"offset":"6225811"},"output-json-sync.js":{"size":276,"integrity":{"algorithm":"SHA256","hash":"a68fde22ad1a194755de03e90861805248f883342e05bd685258e76a90e7a6ab","blockSize":4194304,"blocks":["a68fde22ad1a194755de03e90861805248f883342e05bd685258e76a90e7a6ab"]},"offset":"6226049"},"output-json.js":{"size":277,"integrity":{"algorithm":"SHA256","hash":"b738aaf8ff9aae265b0512cb2554e1f8ce8605d21dc6230189a9be6980079fc8","blockSize":4194304,"blocks":["b738aaf8ff9aae265b0512cb2554e1f8ce8605d21dc6230189a9be6980079fc8"]},"offset":"6226325"}}},"fs":{"files":{"index.js":{"size":3373,"integrity":{"algorithm":"SHA256","hash":"620b6e703880fd6718c354c5359a5c37a2379054c037269dbcf7afd2503e4a6f","blockSize":4194304,"blocks":["620b6e703880fd6718c354c5359a5c37a2379054c037269dbcf7afd2503e4a6f"]},"offset":"6226602"}}},"ensure":{"files":{"file.js":{"size":1709,"integrity":{"algorithm":"SHA256","hash":"a104ff42c9aefd0e34556b9df2e4b5c9cd15315b0b0f70b07938901428b3c608","blockSize":4194304,"blocks":["a104ff42c9aefd0e34556b9df2e4b5c9cd15315b0b0f70b07938901428b3c608"]},"offset":"6229975"},"index.js":{"size":542,"integrity":{"algorithm":"SHA256","hash":"77ccb9b4d1eab607ce7ba8d3d5bed59b0cb9cc4748d02aa896a2413b71dbfe60","blockSize":4194304,"blocks":["77ccb9b4d1eab607ce7ba8d3d5bed59b0cb9cc4748d02aa896a2413b71dbfe60"]},"offset":"6231684"},"link.js":{"size":1652,"integrity":{"algorithm":"SHA256","hash":"339ce737e858367c65f79c0960bc6d1d617638aae07d396ac8ae5c8670b500c3","blockSize":4194304,"blocks":["339ce737e858367c65f79c0960bc6d1d617638aae07d396ac8ae5c8670b500c3"]},"offset":"6232226"},"symlink-paths.js":{"size":3374,"integrity":{"algorithm":"SHA256","hash":"5595b764059fb90ce4a13f5cdf43988da97e636521d3c599ce5260681d75bdfc","blockSize":4194304,"blocks":["5595b764059fb90ce4a13f5cdf43988da97e636521d3c599ce5260681d75bdfc"]},"offset":"6233878"},"symlink-type.js":{"size":694,"integrity":{"algorithm":"SHA256","hash":"17abe9590176305dd04316b2ac5c972dcf54cea32d279f955fbcf25098743dc8","blockSize":4194304,"blocks":["17abe9590176305dd04316b2ac5c972dcf54cea32d279f955fbcf25098743dc8"]},"offset":"6237252"},"symlink.js":{"size":2522,"integrity":{"algorithm":"SHA256","hash":"8b1fa73e5b5554380b710ccfbb4fe23764e53f0e5ce046689741310a82a19e21","blockSize":4194304,"blocks":["8b1fa73e5b5554380b710ccfbb4fe23764e53f0e5ce046689741310a82a19e21"]},"offset":"6237946"}}},"empty":{"files":{"index.js":{"size":747,"integrity":{"algorithm":"SHA256","hash":"1096edcb5ec0ed015b36914beff0826f6cd5d7ce2645ee9dee60c0b272e57856","blockSize":4194304,"blocks":["1096edcb5ec0ed015b36914beff0826f6cd5d7ce2645ee9dee60c0b272e57856"]},"offset":"6240468"}}},"copy":{"files":{"copy-sync.js":{"size":5776,"integrity":{"algorithm":"SHA256","hash":"a50856fe7fab3d1d22e8fbf5f32543d46342257cad5e31df8f2a7409fdf19c97","blockSize":4194304,"blocks":["a50856fe7fab3d1d22e8fbf5f32543d46342257cad5e31df8f2a7409fdf19c97"]},"offset":"6241215"},"copy.js":{"size":7756,"integrity":{"algorithm":"SHA256","hash":"b1ef00cadd368ea903c9a86927e40636cd832d8fa64344637c96e0e223faf876","blockSize":4194304,"blocks":["b1ef00cadd368ea903c9a86927e40636cd832d8fa64344637c96e0e223faf876"]},"offset":"6246991"},"index.js":{"size":147,"integrity":{"algorithm":"SHA256","hash":"f94ad0b8c5f5131a682be2d0427189c260e49fa748fb6f6bcc1f78678354e5d2","blockSize":4194304,"blocks":["f94ad0b8c5f5131a682be2d0427189c260e49fa748fb6f6bcc1f78678354e5d2"]},"offset":"6254747"}}}}}}},"jsonfile":{"files":{"LICENSE":{"size":1110,"integrity":{"algorithm":"SHA256","hash":"a9801fb52ba22ef808682a094da8a7a480584b7ed0dfd0d888ab543616335031","blockSize":4194304,"blocks":["a9801fb52ba22ef808682a094da8a7a480584b7ed0dfd0d888ab543616335031"]},"offset":"6254894"},"index.js":{"size":1900,"integrity":{"algorithm":"SHA256","hash":"2cdf22ffb5a170ad2cf10cbdf647e2a9366b6afa11e9b4c2370d0cf5b1f700b1","blockSize":4194304,"blocks":["2cdf22ffb5a170ad2cf10cbdf647e2a9366b6afa11e9b4c2370d0cf5b1f700b1"]},"offset":"6256004"},"package.json":{"size":558,"integrity":{"algorithm":"SHA256","hash":"97dd73da7fecf4b16cf7bb766cbfee7d55de9c7e2b864b982a0936247310eac8","blockSize":4194304,"blocks":["97dd73da7fecf4b16cf7bb766cbfee7d55de9c7e2b864b982a0936247310eac8"]},"offset":"6257904"},"utils.js":{"size":498,"integrity":{"algorithm":"SHA256","hash":"b0c188696676561411f3c5784d7de61bf21927f9c334e0cfb9136a8b7c82be5d","blockSize":4194304,"blocks":["b0c188696676561411f3c5784d7de61bf21927f9c334e0cfb9136a8b7c82be5d"]},"offset":"6258462"}}},"universalify":{"files":{"LICENSE":{"size":1100,"integrity":{"algorithm":"SHA256","hash":"3fda5977c0904e226190b4e21d64340c1731e2142d6fe5f3dee0090a216b8b63","blockSize":4194304,"blocks":["3fda5977c0904e226190b4e21d64340c1731e2142d6fe5f3dee0090a216b8b63"]},"offset":"6258960"},"index.js":{"size":706,"integrity":{"algorithm":"SHA256","hash":"83b02adb3872f6c482db4e57c300fa39b5cad65e317fc2f70b9de7d305c035a1","blockSize":4194304,"blocks":["83b02adb3872f6c482db4e57c300fa39b5cad65e317fc2f70b9de7d305c035a1"]},"offset":"6260060"},"package.json":{"size":618,"integrity":{"algorithm":"SHA256","hash":"5b39e9c6305a5ba27c76caf4817244dd1a308b68c7559dfe15471173466cf06e","blockSize":4194304,"blocks":["5b39e9c6305a5ba27c76caf4817244dd1a308b68c7559dfe15471173466cf06e"]},"offset":"6260766"}}}}}}},"eventemitter2":{"files":{"LICENSE.txt":{"size":1137,"integrity":{"algorithm":"SHA256","hash":"64b1ec6e8404ad099bab35c8e0f3dbbe8f92e31d93db5a5e8e192836fb4ae376","blockSize":4194304,"blocks":["64b1ec6e8404ad099bab35c8e0f3dbbe8f92e31d93db5a5e8e192836fb4ae376"]},"offset":"5077748"},"index.js":{"size":49,"integrity":{"algorithm":"SHA256","hash":"853cacb1694f371a1817ce0edfa6d9d96a3d8d52ceb9e0cff471ecedea5263f1","blockSize":4194304,"blocks":["853cacb1694f371a1817ce0edfa6d9d96a3d8d52ceb9e0cff471ecedea5263f1"]},"offset":"5078885"},"package.json":{"size":744,"integrity":{"algorithm":"SHA256","hash":"f03fc43e3233805ea36265662bce94b36a274407a5d4394b1c48c3351b3abc21","blockSize":4194304,"blocks":["f03fc43e3233805ea36265662bce94b36a274407a5d4394b1c48c3351b3abc21"]},"offset":"5078934"},"lib":{"files":{"eventemitter2.js":{"size":44463,"integrity":{"algorithm":"SHA256","hash":"b0e0c6cdb134ea3269012be8270ccf93fed47e357138cd328641ee2b489d5a54","blockSize":4194304,"blocks":["b0e0c6cdb134ea3269012be8270ccf93fed47e357138cd328641ee2b489d5a54"]},"offset":"5079678"}}}}},"execa":{"files":{"index.js":{"size":6516,"integrity":{"algorithm":"SHA256","hash":"fb539673c9689a0613bbf0fa7c864857fd40462692d6addc15b420b7605b6770","blockSize":4194304,"blocks":["fb539673c9689a0613bbf0fa7c864857fd40462692d6addc15b420b7605b6770"]},"offset":"5124141"},"license":{"size":1117,"integrity":{"algorithm":"SHA256","hash":"5c932d88256b4ab958f64a856fa48e8bd1f55bc1d96b8149c65689e0c61789d3","blockSize":4194304,"blocks":["5c932d88256b4ab958f64a856fa48e8bd1f55bc1d96b8149c65689e0c61789d3"]},"offset":"5130657"},"package.json":{"size":981,"integrity":{"algorithm":"SHA256","hash":"dd5548b9da8de50030e1bbdab4a8de0625a91eb56885d6aabe20319b21601e55","blockSize":4194304,"blocks":["dd5548b9da8de50030e1bbdab4a8de0625a91eb56885d6aabe20319b21601e55"]},"offset":"5131774"},"lib":{"files":{"command.js":{"size":1189,"integrity":{"algorithm":"SHA256","hash":"b13060ad8e7262a9656edb57f894a57f039b86bd706466d8aecf315e0d9888ef","blockSize":4194304,"blocks":["b13060ad8e7262a9656edb57f894a57f039b86bd706466d8aecf315e0d9888ef"]},"offset":"5132755"},"error.js":{"size":2169,"integrity":{"algorithm":"SHA256","hash":"7c0ef8a52066d45f9ad2b8e43ff1f8d06955cd2fe4dec3ec1ddad7fb49205454","blockSize":4194304,"blocks":["7c0ef8a52066d45f9ad2b8e43ff1f8d06955cd2fe4dec3ec1ddad7fb49205454"]},"offset":"5133944"},"kill.js":{"size":3095,"integrity":{"algorithm":"SHA256","hash":"6984ac704c67dd84fe5e6a86441d3902d94b44842aa7a2037279a01b95d678ed","blockSize":4194304,"blocks":["6984ac704c67dd84fe5e6a86441d3902d94b44842aa7a2037279a01b95d678ed"]},"offset":"5136113"},"promise.js":{"size":1150,"integrity":{"algorithm":"SHA256","hash":"13c171151f5c3ce102bc711841bc12ff09058134f7f414d144cf0c766da15e1e","blockSize":4194304,"blocks":["13c171151f5c3ce102bc711841bc12ff09058134f7f414d144cf0c766da15e1e"]},"offset":"5139208"},"stdio.js":{"size":1186,"integrity":{"algorithm":"SHA256","hash":"adae66bc15a0e364688c5baa8a3ebe55056d62f33d5b0cad17b5e3b61af0cf0d","blockSize":4194304,"blocks":["adae66bc15a0e364688c5baa8a3ebe55056d62f33d5b0cad17b5e3b61af0cf0d"]},"offset":"5140358"},"stream.js":{"size":2400,"integrity":{"algorithm":"SHA256","hash":"b2ba44c25beb717ca5de07ed5c19508b4f2ce46d90b45c441ddca0592d286847","blockSize":4194304,"blocks":["b2ba44c25beb717ca5de07ed5c19508b4f2ce46d90b45c441ddca0592d286847"]},"offset":"5141544"}}},"node_modules":{"files":{"get-stream":{"files":{"buffer-stream.js":{"size":894,"integrity":{"algorithm":"SHA256","hash":"74502372f3e457ae4d05546c47b4fd88c8df6ed8eb6166b6feb8bec1798ec6dc","blockSize":4194304,"blocks":["74502372f3e457ae4d05546c47b4fd88c8df6ed8eb6166b6feb8bec1798ec6dc"]},"offset":"6261384"},"index.js":{"size":1489,"integrity":{"algorithm":"SHA256","hash":"3f17a6bc0f9f1f0d93f5b9d3eee80168a638280a10a1588bfad14a118b846c7d","blockSize":4194304,"blocks":["3f17a6bc0f9f1f0d93f5b9d3eee80168a638280a10a1588bfad14a118b846c7d"]},"offset":"6262278"},"license":{"size":1117,"integrity":{"algorithm":"SHA256","hash":"5c932d88256b4ab958f64a856fa48e8bd1f55bc1d96b8149c65689e0c61789d3","blockSize":4194304,"blocks":["5c932d88256b4ab958f64a856fa48e8bd1f55bc1d96b8149c65689e0c61789d3"]},"offset":"6263767"},"package.json":{"size":621,"integrity":{"algorithm":"SHA256","hash":"249069150ea6785dec79308bea4d7e7da7eea5f8ed3d2f98d5620b8708aaf567","blockSize":4194304,"blocks":["249069150ea6785dec79308bea4d7e7da7eea5f8ed3d2f98d5620b8708aaf567"]},"offset":"6264884"}}}}}}},"fast-glob":{"files":{"LICENSE":{"size":1079,"integrity":{"algorithm":"SHA256","hash":"9363d160bf41d46d83901a5d24fc3fe2094c2afc17b4a2378914b273977ee2de","blockSize":4194304,"blocks":["9363d160bf41d46d83901a5d24fc3fe2094c2afc17b4a2378914b273977ee2de"]},"offset":"5143944"},"package.json":{"size":1511,"integrity":{"algorithm":"SHA256","hash":"02910526201438f0555b13464185795ebc6878e3be36511235dbf8ba52a9fb2c","blockSize":4194304,"blocks":["02910526201438f0555b13464185795ebc6878e3be36511235dbf8ba52a9fb2c"]},"offset":"5145023"},"out":{"files":{"index.js":{"size":2864,"integrity":{"algorithm":"SHA256","hash":"3a2e17c7514bc8a7bf2607c540f381e98cd94a4148b422ded8d1e843ec13bed5","blockSize":4194304,"blocks":["3a2e17c7514bc8a7bf2607c540f381e98cd94a4148b422ded8d1e843ec13bed5"]},"offset":"5146534"},"settings.js":{"size":2737,"integrity":{"algorithm":"SHA256","hash":"f291e20b28f645efbf0ed2ae2facc3dfef1868f1f7f2f4a7489b9f5f152cbde1","blockSize":4194304,"blocks":["f291e20b28f645efbf0ed2ae2facc3dfef1868f1f7f2f4a7489b9f5f152cbde1"]},"offset":"5149398"},"utils":{"files":{"array.js":{"size":608,"integrity":{"algorithm":"SHA256","hash":"432791ee8fa960a16a5f3864fbfd9fc906078bf6aa44a12eee79049288276854","blockSize":4194304,"blocks":["432791ee8fa960a16a5f3864fbfd9fc906078bf6aa44a12eee79049288276854"]},"offset":"5152135"},"errno.js":{"size":234,"integrity":{"algorithm":"SHA256","hash":"1586402affdb743e636de83b34b05417583fe90ae6ebf3415941cc65be84739c","blockSize":4194304,"blocks":["1586402affdb743e636de83b34b05417583fe90ae6ebf3415941cc65be84739c"]},"offset":"5152743"},"fs.js":{"size":756,"integrity":{"algorithm":"SHA256","hash":"10fcd66d19070a64fe2eb45a133047c574b045c5cabb860e04472e32341bb1ec","blockSize":4194304,"blocks":["10fcd66d19070a64fe2eb45a133047c574b045c5cabb860e04472e32341bb1ec"]},"offset":"5152977"},"index.js":{"size":596,"integrity":{"algorithm":"SHA256","hash":"8693771308fbb864423813ca7b34158277268b1e19b8c5634a7e9f60910355c4","blockSize":4194304,"blocks":["8693771308fbb864423813ca7b34158277268b1e19b8c5634a7e9f60910355c4"]},"offset":"5153733"},"path.js":{"size":1288,"integrity":{"algorithm":"SHA256","hash":"9f7878869a09d4612503b8757a2456d764d2687d058b1e9f23e47dd310aa9897","blockSize":4194304,"blocks":["9f7878869a09d4612503b8757a2456d764d2687d058b1e9f23e47dd310aa9897"]},"offset":"5154329"},"pattern.js":{"size":6921,"integrity":{"algorithm":"SHA256","hash":"00488a3a998585c1d6a635c6d4c827048037765a12ce33ded71e96e0d397206e","blockSize":4194304,"blocks":["00488a3a998585c1d6a635c6d4c827048037765a12ce33ded71e96e0d397206e"]},"offset":"5155617"},"stream.js":{"size":629,"integrity":{"algorithm":"SHA256","hash":"fb76a333f0e41061ef1184c0efc6b8efcec8752e7822ef98e2b51bc232b27bef","blockSize":4194304,"blocks":["fb76a333f0e41061ef1184c0efc6b8efcec8752e7822ef98e2b51bc232b27bef"]},"offset":"5162538"},"string.js":{"size":298,"integrity":{"algorithm":"SHA256","hash":"202e1032fd5cb468710caabf4b1aa18d2e0024aeef1be36750153579ba9a6aa4","blockSize":4194304,"blocks":["202e1032fd5cb468710caabf4b1aa18d2e0024aeef1be36750153579ba9a6aa4"]},"offset":"5163167"}}},"types":{"files":{"index.js":{"size":77,"integrity":{"algorithm":"SHA256","hash":"d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230","blockSize":4194304,"blocks":["d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230"]},"offset":"5163465"}}},"readers":{"files":{"reader.js":{"size":1063,"integrity":{"algorithm":"SHA256","hash":"a7bdcaf433b5ab696cdc4750ac7916894405c41f3a51ca5f9fac8fb17a00bbec","blockSize":4194304,"blocks":["a7bdcaf433b5ab696cdc4750ac7916894405c41f3a51ca5f9fac8fb17a00bbec"]},"offset":"5163542"},"stream.js":{"size":1870,"integrity":{"algorithm":"SHA256","hash":"193806523a3889f3faa6e311aeed3044e0fdeab939bb208a3213fe3bff037360","blockSize":4194304,"blocks":["193806523a3889f3faa6e311aeed3044e0fdeab939bb208a3213fe3bff037360"]},"offset":"5164605"},"sync.js":{"size":1330,"integrity":{"algorithm":"SHA256","hash":"9538670791926ec8f7f22e87d13e68cd56d7e35cef0b6f51a9016b9295d01aa3","blockSize":4194304,"blocks":["9538670791926ec8f7f22e87d13e68cd56d7e35cef0b6f51a9016b9295d01aa3"]},"offset":"5166475"}}},"providers":{"files":{"async.js":{"size":1013,"integrity":{"algorithm":"SHA256","hash":"35113d383f17df13cb829948d3d56ee9f8b81af970faf59625bdc739115122dc","blockSize":4194304,"blocks":["35113d383f17df13cb829948d3d56ee9f8b81af970faf59625bdc739115122dc"]},"offset":"5167805"},"provider.js":{"size":2000,"integrity":{"algorithm":"SHA256","hash":"205c99df95c8c2756d54b5d447e758cba1106b43aa2435dda13c7949ce17c62c","blockSize":4194304,"blocks":["205c99df95c8c2756d54b5d447e758cba1106b43aa2435dda13c7949ce17c62c"]},"offset":"5168818"},"stream.js":{"size":1198,"integrity":{"algorithm":"SHA256","hash":"1483b0b5867ec5abdd0ad5bb70c0fa1045014a75be25249a9f2d3d4a19d3e030","blockSize":4194304,"blocks":["1483b0b5867ec5abdd0ad5bb70c0fa1045014a75be25249a9f2d3d4a19d3e030"]},"offset":"5170818"},"sync.js":{"size":779,"integrity":{"algorithm":"SHA256","hash":"8bfa1b27aeb4810937d921b7ee26b4a434315efbbbffcebde2540947de0885c2","blockSize":4194304,"blocks":["8bfa1b27aeb4810937d921b7ee26b4a434315efbbbffcebde2540947de0885c2"]},"offset":"5172016"},"transformers":{"files":{"entry.js":{"size":845,"integrity":{"algorithm":"SHA256","hash":"0d7cd318379269c3ed6c6aaaf84cdc461bd9fc1ed4a4554f4454de8ab291cf03","blockSize":4194304,"blocks":["0d7cd318379269c3ed6c6aaaf84cdc461bd9fc1ed4a4554f4454de8ab291cf03"]},"offset":"5172795"}}},"matchers":{"files":{"matcher.js":{"size":1880,"integrity":{"algorithm":"SHA256","hash":"d4a9959fd1a8c911c4e1e2de39cc254cf9ed22750fadbf4f8e22b2f8a1ec9f78","blockSize":4194304,"blocks":["d4a9959fd1a8c911c4e1e2de39cc254cf9ed22750fadbf4f8e22b2f8a1ec9f78"]},"offset":"5173640"},"partial.js":{"size":1421,"integrity":{"algorithm":"SHA256","hash":"5ce00745b96a769556407a282c1fbf303e18421084ee6adac88c4a2715dc50b4","blockSize":4194304,"blocks":["5ce00745b96a769556407a282c1fbf303e18421084ee6adac88c4a2715dc50b4"]},"offset":"5175520"}}},"filters":{"files":{"deep.js":{"size":2466,"integrity":{"algorithm":"SHA256","hash":"a928ab99904b45ee1eb02ecccaf44ee82ff459df1e1ab7a6e70272ee7e3612eb","blockSize":4194304,"blocks":["a928ab99904b45ee1eb02ecccaf44ee82ff459df1e1ab7a6e70272ee7e3612eb"]},"offset":"5176941"},"entry.js":{"size":2436,"integrity":{"algorithm":"SHA256","hash":"f138c70b4e2b630c640d81bb7dac5c1d65acdc6388a7c33752643b786d6c01a4","blockSize":4194304,"blocks":["f138c70b4e2b630c640d81bb7dac5c1d65acdc6388a7c33752643b786d6c01a4"]},"offset":"5179407"},"error.js":{"size":441,"integrity":{"algorithm":"SHA256","hash":"3cef3a07527bd8ee61655eac1463b5a9af89aa69133e7a3b40c82b401953562e","blockSize":4194304,"blocks":["3cef3a07527bd8ee61655eac1463b5a9af89aa69133e7a3b40c82b401953562e"]},"offset":"5181843"}}}}},"managers":{"files":{"patterns.js":{"size":959,"integrity":{"algorithm":"SHA256","hash":"e55d6c81322e412b46f73715ece071f85b760a238cc17c5664d4c8edce2bf42f","blockSize":4194304,"blocks":["e55d6c81322e412b46f73715ece071f85b760a238cc17c5664d4c8edce2bf42f"]},"offset":"5182284"},"tasks.js":{"size":4034,"integrity":{"algorithm":"SHA256","hash":"607730b785048b63dab1cc86db0a492c7ed4a639d52f647b430ff6856516f41a","blockSize":4194304,"blocks":["607730b785048b63dab1cc86db0a492c7ed4a639d52f647b430ff6856516f41a"]},"offset":"5183243"}}}}}}},"fastq":{"files":{"LICENSE":{"size":765,"integrity":{"algorithm":"SHA256","hash":"c3367f6d01a79d368fc4fbb41b3615fcd92f243d6597ab96742f6f976f9325af","blockSize":4194304,"blocks":["c3367f6d01a79d368fc4fbb41b3615fcd92f243d6597ab96742f6f976f9325af"]},"offset":"5187277"},"bench.js":{"size":1195,"integrity":{"algorithm":"SHA256","hash":"0e5d43863154edd92c136e8054c503782b49779130baa3dd59840ec42959bb56","blockSize":4194304,"blocks":["0e5d43863154edd92c136e8054c503782b49779130baa3dd59840ec42959bb56"]},"offset":"5188042"},"example.js":{"size":238,"integrity":{"algorithm":"SHA256","hash":"417b88a3f41af145d6e77abb198eac1db57f71b652e141821c96c0bbf479981d","blockSize":4194304,"blocks":["417b88a3f41af145d6e77abb198eac1db57f71b652e141821c96c0bbf479981d"]},"offset":"5189237"},"example.mjs":{"size":221,"integrity":{"algorithm":"SHA256","hash":"e9def2f2bfbb7d744a861a2839774cd2df463fecce235f1bdd2c779e99a3ef99","blockSize":4194304,"blocks":["e9def2f2bfbb7d744a861a2839774cd2df463fecce235f1bdd2c779e99a3ef99"]},"offset":"5189475"},"package.json":{"size":718,"integrity":{"algorithm":"SHA256","hash":"01db5e5a86af150a5ee182a9981a7e6f62f626e05b5357a341cd1b2369fc2a0d","blockSize":4194304,"blocks":["01db5e5a86af150a5ee182a9981a7e6f62f626e05b5357a341cd1b2369fc2a0d"]},"offset":"5189696"},"queue.js":{"size":5513,"integrity":{"algorithm":"SHA256","hash":"5d69c817546fd11c8eefc34080284a8bfbbd26aa72a0bed3fd0ae17b2670fb8a","blockSize":4194304,"blocks":["5d69c817546fd11c8eefc34080284a8bfbbd26aa72a0bed3fd0ae17b2670fb8a"]},"offset":"5190414"}}},"fill-range":{"files":{"LICENSE":{"size":1091,"integrity":{"algorithm":"SHA256","hash":"35bdd8a44339719441900fb50fbefc5e2dca1ca662cbaed7a687de842c8b70f2","blockSize":4194304,"blocks":["35bdd8a44339719441900fb50fbefc5e2dca1ca662cbaed7a687de842c8b70f2"]},"offset":"5195927"},"index.js":{"size":6406,"integrity":{"algorithm":"SHA256","hash":"ca6199f79a117e4d68be02c6bcd974e2f18f358e711a0aba497bffaf1ccadd4e","blockSize":4194304,"blocks":["ca6199f79a117e4d68be02c6bcd974e2f18f358e711a0aba497bffaf1ccadd4e"]},"offset":"5197018"},"package.json":{"size":845,"integrity":{"algorithm":"SHA256","hash":"e098e21ff7e905a3ea687bc149cd87db6d485bfce5f5600f6e2d08a3ab15414a","blockSize":4194304,"blocks":["e098e21ff7e905a3ea687bc149cd87db6d485bfce5f5600f6e2d08a3ab15414a"]},"offset":"5203424"}}},"fs.realpath":{"files":{"LICENSE":{"size":2125,"integrity":{"algorithm":"SHA256","hash":"8465b04b67f473341171b5c9c8b2c741a4a395b3f6ed58339b3a4f4db3db7472","blockSize":4194304,"blocks":["8465b04b67f473341171b5c9c8b2c741a4a395b3f6ed58339b3a4f4db3db7472"]},"offset":"5204269"},"index.js":{"size":1308,"integrity":{"algorithm":"SHA256","hash":"2e334ba43cd4852f7a3ed68159029167c05d7fa6af536e6ef177eb868ccd1bb8","blockSize":4194304,"blocks":["2e334ba43cd4852f7a3ed68159029167c05d7fa6af536e6ef177eb868ccd1bb8"]},"offset":"5206394"},"old.js":{"size":8542,"integrity":{"algorithm":"SHA256","hash":"07245a82717f9bfa2a63b9784284a1b7fc43ff5fcb4af2a94bce5f83611d4a2f","blockSize":4194304,"blocks":["07245a82717f9bfa2a63b9784284a1b7fc43ff5fcb4af2a94bce5f83611d4a2f"]},"offset":"5207702"},"package.json":{"size":460,"integrity":{"algorithm":"SHA256","hash":"2b978f9b3f8dc8d1bb3eb75ee93431cab107e1df550fe033f103a45a734becb2","blockSize":4194304,"blocks":["2b978f9b3f8dc8d1bb3eb75ee93431cab107e1df550fe033f103a45a734becb2"]},"offset":"5216244"}}},"glob":{"files":{"LICENSE":{"size":976,"integrity":{"algorithm":"SHA256","hash":"6236fa0b88a4a0cce3dda0367979491b2052b3c8d6b1c10b3668de083e86a7f0","blockSize":4194304,"blocks":["6236fa0b88a4a0cce3dda0367979491b2052b3c8d6b1c10b3668de083e86a7f0"]},"offset":"5216704"},"common.js":{"size":6048,"integrity":{"algorithm":"SHA256","hash":"c9572a167aa1ecaf2b988f0fc06c3b33df6b4104d4e8f22600ee55d799e95499","blockSize":4194304,"blocks":["c9572a167aa1ecaf2b988f0fc06c3b33df6b4104d4e8f22600ee55d799e95499"]},"offset":"5217680"},"glob.js":{"size":19362,"integrity":{"algorithm":"SHA256","hash":"e716714abb1408f64ab58d14b99525f6b5404caef94a763d48f5acb7effe2618","blockSize":4194304,"blocks":["e716714abb1408f64ab58d14b99525f6b5404caef94a763d48f5acb7effe2618"]},"offset":"5223728"},"package.json":{"size":866,"integrity":{"algorithm":"SHA256","hash":"32b3f153c4f3326e8f38a02edad6e83e16d670a14531a3bc6ab6c3b5aecc39a0","blockSize":4194304,"blocks":["32b3f153c4f3326e8f38a02edad6e83e16d670a14531a3bc6ab6c3b5aecc39a0"]},"offset":"5243090"},"sync.js":{"size":11931,"integrity":{"algorithm":"SHA256","hash":"b42e20579ae6d33f35d7baf9e9c85f6da1bb3dafd689e956764c5dd7b36784a7","blockSize":4194304,"blocks":["b42e20579ae6d33f35d7baf9e9c85f6da1bb3dafd689e956764c5dd7b36784a7"]},"offset":"5243956"}}},"glob-parent":{"files":{"LICENSE":{"size":753,"integrity":{"algorithm":"SHA256","hash":"2c46f1325bd3822a33c1e2c1e49c18d13127ac00f9c8b3b79196c7a126f73cd9","blockSize":4194304,"blocks":["2c46f1325bd3822a33c1e2c1e49c18d13127ac00f9c8b3b79196c7a126f73cd9"]},"offset":"5255887"},"index.js":{"size":1120,"integrity":{"algorithm":"SHA256","hash":"8e482c70067850425183ae785f19614bb9c788cf22226db62243119e507384c4","blockSize":4194304,"blocks":["8e482c70067850425183ae785f19614bb9c788cf22226db62243119e507384c4"]},"offset":"5256640"},"package.json":{"size":590,"integrity":{"algorithm":"SHA256","hash":"c6608d022ce6fd29a8f75ca20767c5d60965a43b682d97d3f653c6bd54b84b5c","blockSize":4194304,"blocks":["c6608d022ce6fd29a8f75ca20767c5d60965a43b682d97d3f653c6bd54b84b5c"]},"offset":"5257760"}}},"globby":{"files":{"gitignore.js":{"size":2608,"integrity":{"algorithm":"SHA256","hash":"db2091a0a6cbe70d460a7d1fcd49fe08f747cd4d3bb0fad565113ec0a784b0b0","blockSize":4194304,"blocks":["db2091a0a6cbe70d460a7d1fcd49fe08f747cd4d3bb0fad565113ec0a784b0b0"]},"offset":"5258350"},"index.js":{"size":4473,"integrity":{"algorithm":"SHA256","hash":"722fac01de2213c362907eb4ba293dcde9ee87930b3d8736eaa894671dfee90e","blockSize":4194304,"blocks":["722fac01de2213c362907eb4ba293dcde9ee87930b3d8736eaa894671dfee90e"]},"offset":"5260958"},"license":{"size":1109,"integrity":{"algorithm":"SHA256","hash":"48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0","blockSize":4194304,"blocks":["48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0"]},"offset":"5265431"},"package.json":{"size":883,"integrity":{"algorithm":"SHA256","hash":"7432ee9132cce8bd54c27d3a0ef49ed6a2ae579ad5126627fdc2f40fc6659a46","blockSize":4194304,"blocks":["7432ee9132cce8bd54c27d3a0ef49ed6a2ae579ad5126627fdc2f40fc6659a46"]},"offset":"5266540"},"stream-utils.js":{"size":677,"integrity":{"algorithm":"SHA256","hash":"ce03f946827805d3f6d7f67b06191a386a8a5774d33909b01f2583809ebeaf50","blockSize":4194304,"blocks":["ce03f946827805d3f6d7f67b06191a386a8a5774d33909b01f2583809ebeaf50"]},"offset":"5267423"},"node_modules":{"files":{"ignore":{"files":{"LICENSE-MIT":{"size":1095,"integrity":{"algorithm":"SHA256","hash":"9c94db23dc4b1e9aaee5d195668b916afc71efed54af226b66cf0ccc4389c1c0","blockSize":4194304,"blocks":["9c94db23dc4b1e9aaee5d195668b916afc71efed54af226b66cf0ccc4389c1c0"]},"offset":"6265505"},"index.js":{"size":15448,"integrity":{"algorithm":"SHA256","hash":"e23c528f18ec7b96de76dcb6c8cfefac3a6f37771e34f400d2b0261c9123ab9c","blockSize":4194304,"blocks":["e23c528f18ec7b96de76dcb6c8cfefac3a6f37771e34f400d2b0261c9123ab9c"]},"offset":"6266600"},"legacy.js":{"size":17193,"integrity":{"algorithm":"SHA256","hash":"d3a22b9fe9a5c8b10ff0f04d3f764938ae642fe5eba456d81ac471acc7d1fb17","blockSize":4194304,"blocks":["d3a22b9fe9a5c8b10ff0f04d3f764938ae642fe5eba456d81ac471acc7d1fb17"]},"offset":"6282048"},"package.json":{"size":867,"integrity":{"algorithm":"SHA256","hash":"c6ee5a70342d4b67f06f9ab14975b0c26e12472146d36ab395a1de99493cd7cc","blockSize":4194304,"blocks":["c6ee5a70342d4b67f06f9ab14975b0c26e12472146d36ab395a1de99493cd7cc"]},"offset":"6299241"}}}}}}},"graceful-fs":{"files":{"LICENSE":{"size":791,"integrity":{"algorithm":"SHA256","hash":"f65c5d9f22a317b2a10803bd1868461ce6499c2ed7217bc80c0cc772a748789c","blockSize":4194304,"blocks":["f65c5d9f22a317b2a10803bd1868461ce6499c2ed7217bc80c0cc772a748789c"]},"offset":"5268100"},"clone.js":{"size":496,"integrity":{"algorithm":"SHA256","hash":"7258eca52e65d69845759503f9fdd66c252f40e5eafb76db5d481172e31ac9ed","blockSize":4194304,"blocks":["7258eca52e65d69845759503f9fdd66c252f40e5eafb76db5d481172e31ac9ed"]},"offset":"5268891"},"graceful-fs.js":{"size":12680,"integrity":{"algorithm":"SHA256","hash":"7da35669b6b6b0e4aafee31674c033f2cebb0c8f9ae010f709dcc185d3f17786","blockSize":4194304,"blocks":["7da35669b6b6b0e4aafee31674c033f2cebb0c8f9ae010f709dcc185d3f17786"]},"offset":"5269387"},"legacy-streams.js":{"size":2655,"integrity":{"algorithm":"SHA256","hash":"60a6a7ecf7c3e55a3ffaae13433b6cff388b7205bba6daf393c863f77a949e36","blockSize":4194304,"blocks":["60a6a7ecf7c3e55a3ffaae13433b6cff388b7205bba6daf393c863f77a949e36"]},"offset":"5282067"},"package.json":{"size":600,"integrity":{"algorithm":"SHA256","hash":"5f558a45ee1f8ea431e950ab3864f842b9de5325e30a31ba1bd68f6f768457ed","blockSize":4194304,"blocks":["5f558a45ee1f8ea431e950ab3864f842b9de5325e30a31ba1bd68f6f768457ed"]},"offset":"5284722"},"polyfills.js":{"size":10141,"integrity":{"algorithm":"SHA256","hash":"66ea1687ed5edf39d67296d26edccc8da695d9a869303a78d0e580cd770aca27","blockSize":4194304,"blocks":["66ea1687ed5edf39d67296d26edccc8da695d9a869303a78d0e580cd770aca27"]},"offset":"5285322"}}},"human-signals":{"files":{"LICENSE":{"size":11357,"integrity":{"algorithm":"SHA256","hash":"0f2c1c521a08ca2e202316a29c57cba39077ebe2618cf10f23df410f4047f60a","blockSize":4194304,"blocks":["0f2c1c521a08ca2e202316a29c57cba39077ebe2618cf10f23df410f4047f60a"]},"offset":"5295463"},"package.json":{"size":772,"integrity":{"algorithm":"SHA256","hash":"367a453b2aa023d4f44b4e0e960bd7689004b2b153215dcf430c166830585c26","blockSize":4194304,"blocks":["367a453b2aa023d4f44b4e0e960bd7689004b2b153215dcf430c166830585c26"]},"offset":"5306820"},"build":{"files":{"src":{"files":{"core.js":{"size":4236,"integrity":{"algorithm":"SHA256","hash":"04ab9727f880932907b411089534898301edaa43cd2ffc59b8d15190d8d400b2","blockSize":4194304,"blocks":["04ab9727f880932907b411089534898301edaa43cd2ffc59b8d15190d8d400b2"]},"offset":"5307592"},"core.js.map":{"size":10551,"integrity":{"algorithm":"SHA256","hash":"dc950dfe1d46ffdaec497746392c8946f472f4a6c5386a91fa39f045bcd51bed","blockSize":4194304,"blocks":["dc950dfe1d46ffdaec497746392c8946f472f4a6c5386a91fa39f045bcd51bed"]},"offset":"5311828"},"main.js":{"size":1496,"integrity":{"algorithm":"SHA256","hash":"5b836db460484d2c4ab7ede2d1748223d10d4bc3ee8b301b631f8eec4b102e5b","blockSize":4194304,"blocks":["5b836db460484d2c4ab7ede2d1748223d10d4bc3ee8b301b631f8eec4b102e5b"]},"offset":"5322379"},"main.js.map":{"size":4047,"integrity":{"algorithm":"SHA256","hash":"c8e454f9559578abcd421b0cbba94f1d7652f65a3fde4022781880e9a21851cf","blockSize":4194304,"blocks":["c8e454f9559578abcd421b0cbba94f1d7652f65a3fde4022781880e9a21851cf"]},"offset":"5323875"},"realtime.js":{"size":554,"integrity":{"algorithm":"SHA256","hash":"e9113653cd39d30a1af227c94c78f705e4d9c06b5179d7bfb87255950a755ff8","blockSize":4194304,"blocks":["e9113653cd39d30a1af227c94c78f705e4d9c06b5179d7bfb87255950a755ff8"]},"offset":"5327922"},"realtime.js.map":{"size":1245,"integrity":{"algorithm":"SHA256","hash":"c501d5d355e3565fb3abce740b4f306064a80efd3a04c55ad588f7aebb2b22d5","blockSize":4194304,"blocks":["c501d5d355e3565fb3abce740b4f306064a80efd3a04c55ad588f7aebb2b22d5"]},"offset":"5328476"},"signals.js":{"size":743,"integrity":{"algorithm":"SHA256","hash":"1749fbf31be94e11179e102ef2e3c5a300fbd30aa3b1c467e98234671c0588a2","blockSize":4194304,"blocks":["1749fbf31be94e11179e102ef2e3c5a300fbd30aa3b1c467e98234671c0588a2"]},"offset":"5329721"},"signals.js.map":{"size":2054,"integrity":{"algorithm":"SHA256","hash":"c8ebe50c73163daf6a3daec70295cdf66ed6056bbf3612580de4a2e38bd3207f","blockSize":4194304,"blocks":["c8ebe50c73163daf6a3daec70295cdf66ed6056bbf3612580de4a2e38bd3207f"]},"offset":"5330464"}}}}}}},"indent-string":{"files":{"index.js":{"size":743,"integrity":{"algorithm":"SHA256","hash":"06fc10fb7018bd156b34b1443d67d0e1ff1986e534878b493ef6095d675ebf33","blockSize":4194304,"blocks":["06fc10fb7018bd156b34b1443d67d0e1ff1986e534878b493ef6095d675ebf33"]},"offset":"5332518"},"license":{"size":1109,"integrity":{"algorithm":"SHA256","hash":"48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0","blockSize":4194304,"blocks":["48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0"]},"offset":"5333261"},"package.json":{"size":462,"integrity":{"algorithm":"SHA256","hash":"731a6648754f0aeb9b9077fab25fe99e9944bc03536439295b47f415330f342d","blockSize":4194304,"blocks":["731a6648754f0aeb9b9077fab25fe99e9944bc03536439295b47f415330f342d"]},"offset":"5334370"}}},"inflight":{"files":{"LICENSE":{"size":748,"integrity":{"algorithm":"SHA256","hash":"05dc4d785ac3a488676d3ed10e901b75ad89dafcc63f8e66610fd4a39cc5c7e8","blockSize":4194304,"blocks":["05dc4d785ac3a488676d3ed10e901b75ad89dafcc63f8e66610fd4a39cc5c7e8"]},"offset":"5334832"},"inflight.js":{"size":1365,"integrity":{"algorithm":"SHA256","hash":"e33ea098a91d2c41be886fbbcecacb9799fe183d8a446f138a4786cb3d809802","blockSize":4194304,"blocks":["e33ea098a91d2c41be886fbbcecacb9799fe183d8a446f138a4786cb3d809802"]},"offset":"5335580"},"package.json":{"size":533,"integrity":{"algorithm":"SHA256","hash":"ba37fd69b7a4c58ef5c6ad3cc32b3717adda6fb7f12a0dfdf2e5eb6421c6052b","blockSize":4194304,"blocks":["ba37fd69b7a4c58ef5c6ad3cc32b3717adda6fb7f12a0dfdf2e5eb6421c6052b"]},"offset":"5336945"}}},"inherits":{"files":{"LICENSE":{"size":749,"integrity":{"algorithm":"SHA256","hash":"5ffe28e7ade7d8f10d85d5337a73fd793dac5c462fb9a28fbf8c5046c7fbca3b","blockSize":4194304,"blocks":["5ffe28e7ade7d8f10d85d5337a73fd793dac5c462fb9a28fbf8c5046c7fbca3b"]},"offset":"5337478"},"inherits.js":{"size":250,"integrity":{"algorithm":"SHA256","hash":"bb380f32bef5feb18678f0f45f88073fed5d7a0069a309132cb2080cd553d5c7","blockSize":4194304,"blocks":["bb380f32bef5feb18678f0f45f88073fed5d7a0069a309132cb2080cd553d5c7"]},"offset":"5338227"},"inherits_browser.js":{"size":753,"integrity":{"algorithm":"SHA256","hash":"ad322a7b1dec60f3d2ebda2091816469efb55b567d241cf3cf0fa4c5a4afe500","blockSize":4194304,"blocks":["ad322a7b1dec60f3d2ebda2091816469efb55b567d241cf3cf0fa4c5a4afe500"]},"offset":"5338477"},"package.json":{"size":394,"integrity":{"algorithm":"SHA256","hash":"8bde8d8aeedbe677961a91d01b8f6df07253d95b0e03c178e748e44969a8885d","blockSize":4194304,"blocks":["8bde8d8aeedbe677961a91d01b8f6df07253d95b0e03c178e748e44969a8885d"]},"offset":"5339230"}}},"is-extglob":{"files":{"LICENSE":{"size":1087,"integrity":{"algorithm":"SHA256","hash":"73b5283588baa142c5baaef5f56d3e8fdea7a30b214e8c5737e87640f882453a","blockSize":4194304,"blocks":["73b5283588baa142c5baaef5f56d3e8fdea7a30b214e8c5737e87640f882453a"]},"offset":"5339624"},"index.js":{"size":441,"integrity":{"algorithm":"SHA256","hash":"68be041dd0379d295d89550d1f6f2e8c29645bdd92d14b427fe2e140b3c8f2f8","blockSize":4194304,"blocks":["68be041dd0379d295d89550d1f6f2e8c29645bdd92d14b427fe2e140b3c8f2f8"]},"offset":"5340711"},"package.json":{"size":843,"integrity":{"algorithm":"SHA256","hash":"e001b77bb9eb96803a8713aa02a309cb95bf2b8dd86e0e982057a94acb014a3e","blockSize":4194304,"blocks":["e001b77bb9eb96803a8713aa02a309cb95bf2b8dd86e0e982057a94acb014a3e"]},"offset":"5341152"}}},"is-glob":{"files":{"LICENSE":{"size":1088,"integrity":{"algorithm":"SHA256","hash":"4cd903859549d4b20b571041f96dfae1136ed079c476126268f9d7cc1b611150","blockSize":4194304,"blocks":["4cd903859549d4b20b571041f96dfae1136ed079c476126268f9d7cc1b611150"]},"offset":"5341995"},"index.js":{"size":3628,"integrity":{"algorithm":"SHA256","hash":"3d6b458efdfc6c26e196b907ca56f14ee015e7272d46e179e5b6fccfb7b99a39","blockSize":4194304,"blocks":["3d6b458efdfc6c26e196b907ca56f14ee015e7272d46e179e5b6fccfb7b99a39"]},"offset":"5343083"},"package.json":{"size":1180,"integrity":{"algorithm":"SHA256","hash":"ca7b46d9618059a3cd127a6060741ea8fadc29ac2650962d660c3601059b5a59","blockSize":4194304,"blocks":["ca7b46d9618059a3cd127a6060741ea8fadc29ac2650962d660c3601059b5a59"]},"offset":"5346711"}}},"is-number":{"files":{"LICENSE":{"size":1091,"integrity":{"algorithm":"SHA256","hash":"35bdd8a44339719441900fb50fbefc5e2dca1ca662cbaed7a687de842c8b70f2","blockSize":4194304,"blocks":["35bdd8a44339719441900fb50fbefc5e2dca1ca662cbaed7a687de842c8b70f2"]},"offset":"5347891"},"index.js":{"size":411,"integrity":{"algorithm":"SHA256","hash":"04255e482e181687823a95b207802ddd32e746c65dce4c95a5176fc192735960","blockSize":4194304,"blocks":["04255e482e181687823a95b207802ddd32e746c65dce4c95a5176fc192735960"]},"offset":"5348982"},"package.json":{"size":921,"integrity":{"algorithm":"SHA256","hash":"1561fe7db24cfd2524607911c6048f43f2eeefdb54f5c261440b7fd28629a684","blockSize":4194304,"blocks":["1561fe7db24cfd2524607911c6048f43f2eeefdb54f5c261440b7fd28629a684"]},"offset":"5349393"}}},"is-path-cwd":{"files":{"index.js":{"size":256,"integrity":{"algorithm":"SHA256","hash":"c8058c12ab74e360b052520ad3a7609da6ab45928d013403a67e1bfb4fcac0e9","blockSize":4194304,"blocks":["c8058c12ab74e360b052520ad3a7609da6ab45928d013403a67e1bfb4fcac0e9"]},"offset":"5350314"},"license":{"size":1109,"integrity":{"algorithm":"SHA256","hash":"48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0","blockSize":4194304,"blocks":["48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0"]},"offset":"5350570"},"package.json":{"size":478,"integrity":{"algorithm":"SHA256","hash":"cd50e682e5a8b9268d40641ee217102846b770b218ff3f04101903e26986d545","blockSize":4194304,"blocks":["cd50e682e5a8b9268d40641ee217102846b770b218ff3f04101903e26986d545"]},"offset":"5351679"}}},"is-path-inside":{"files":{"index.js":{"size":290,"integrity":{"algorithm":"SHA256","hash":"c9a6405598cd76831faf2d5e258bd53750bd0d375d6336fede7d927ee28db156","blockSize":4194304,"blocks":["c9a6405598cd76831faf2d5e258bd53750bd0d375d6336fede7d927ee28db156"]},"offset":"5352157"},"license":{"size":1109,"integrity":{"algorithm":"SHA256","hash":"48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0","blockSize":4194304,"blocks":["48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0"]},"offset":"5352447"},"package.json":{"size":474,"integrity":{"algorithm":"SHA256","hash":"fa7c39667ac6825792b008dd57cdcc1afed955f60838b9af1ddfcb8596b07a0e","blockSize":4194304,"blocks":["fa7c39667ac6825792b008dd57cdcc1afed955f60838b9af1ddfcb8596b07a0e"]},"offset":"5353556"}}},"is-stream":{"files":{"index.js":{"size":677,"integrity":{"algorithm":"SHA256","hash":"14cddb2ce9959337b9f9f018ee57171ec8c4eacf1b27de9d5b5c268a2167288c","blockSize":4194304,"blocks":["14cddb2ce9959337b9f9f018ee57171ec8c4eacf1b27de9d5b5c268a2167288c"]},"offset":"5354030"},"license":{"size":1117,"integrity":{"algorithm":"SHA256","hash":"5c932d88256b4ab958f64a856fa48e8bd1f55bc1d96b8149c65689e0c61789d3","blockSize":4194304,"blocks":["5c932d88256b4ab958f64a856fa48e8bd1f55bc1d96b8149c65689e0c61789d3"]},"offset":"5354707"},"package.json":{"size":583,"integrity":{"algorithm":"SHA256","hash":"48c10734d2f3d5a33b48701f0236b68a9c9ff8087c7d70402372b6d10381ca52","blockSize":4194304,"blocks":["48c10734d2f3d5a33b48701f0236b68a9c9ff8087c7d70402372b6d10381ca52"]},"offset":"5355824"}}},"isexe":{"files":{"LICENSE":{"size":765,"integrity":{"algorithm":"SHA256","hash":"4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b","blockSize":4194304,"blocks":["4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b"]},"offset":"5356407"},"index.js":{"size":1192,"integrity":{"algorithm":"SHA256","hash":"7af7a68708317ab2b8743b44591d98ca6f5ca787e89e7c289154471fd2f67331","blockSize":4194304,"blocks":["7af7a68708317ab2b8743b44591d98ca6f5ca787e89e7c289154471fd2f67331"]},"offset":"5357172"},"mode.js":{"size":909,"integrity":{"algorithm":"SHA256","hash":"0381513485dd6d0799b160a5c0bf7b4a79d1ece5c32182de44aa73f756a7ac54","blockSize":4194304,"blocks":["0381513485dd6d0799b160a5c0bf7b4a79d1ece5c32182de44aa73f756a7ac54"]},"offset":"5358364"},"package.json":{"size":512,"integrity":{"algorithm":"SHA256","hash":"8a4bbdcc3391ffc88bdbba977ebdae17eedc5dbb0a176a66c30da6d6fa14daba","blockSize":4194304,"blocks":["8a4bbdcc3391ffc88bdbba977ebdae17eedc5dbb0a176a66c30da6d6fa14daba"]},"offset":"5359273"},"windows.js":{"size":890,"integrity":{"algorithm":"SHA256","hash":"b422b8fbb7815542dfbd1b3adaec5700249a1934c44a1d994654329c06fc1018","blockSize":4194304,"blocks":["b422b8fbb7815542dfbd1b3adaec5700249a1934c44a1d994654329c06fc1018"]},"offset":"5359785"}}},"js-yaml":{"files":{"LICENSE":{"size":1084,"integrity":{"algorithm":"SHA256","hash":"a07bc24468b9654ce76a547d47a2db282d07733b715db4c73a98bd63961f9550","blockSize":4194304,"blocks":["a07bc24468b9654ce76a547d47a2db282d07733b715db4c73a98bd63961f9550"]},"offset":"5360675"},"index.js":{"size":1793,"integrity":{"algorithm":"SHA256","hash":"7d1ebc0d9929b9124997b439d1a1fd9aff8feb6bb0a1b59e977ea638944f34ba","blockSize":4194304,"blocks":["7d1ebc0d9929b9124997b439d1a1fd9aff8feb6bb0a1b59e977ea638944f34ba"]},"offset":"5361759"},"package.json":{"size":1075,"integrity":{"algorithm":"SHA256","hash":"85aba0e672f9202b2fc0571326c721c67bc22d1cadcb358d9ab103d29e836242","blockSize":4194304,"blocks":["85aba0e672f9202b2fc0571326c721c67bc22d1cadcb358d9ab103d29e836242"]},"offset":"5363552"},"lib":{"files":{"common.js":{"size":1177,"integrity":{"algorithm":"SHA256","hash":"9211491f8e0058a419a4664e36bb4ec6509655aabe6bd537eddf941fdf34e734","blockSize":4194304,"blocks":["9211491f8e0058a419a4664e36bb4ec6509655aabe6bd537eddf941fdf34e734"]},"offset":"5364627"},"dumper.js":{"size":31893,"integrity":{"algorithm":"SHA256","hash":"1a0c7fc01df0e950caf526c2a96b1e9fbac1dbc5dc125e83657f7b723a505ca3","blockSize":4194304,"blocks":["1a0c7fc01df0e950caf526c2a96b1e9fbac1dbc5dc125e83657f7b723a505ca3"]},"offset":"5365804"},"exception.js":{"size":1299,"integrity":{"algorithm":"SHA256","hash":"3dcd70e20270a93b8769204174a1949a133a41afbc8f1a74a9c6ab73fd60a179","blockSize":4194304,"blocks":["3dcd70e20270a93b8769204174a1949a133a41afbc8f1a74a9c6ab73fd60a179"]},"offset":"5397697"},"loader.js":{"size":47142,"integrity":{"algorithm":"SHA256","hash":"dd1053d4a607cc29dd2020ac77afa283002c8fd1d9b0d7042a7fc763c883f794","blockSize":4194304,"blocks":["dd1053d4a607cc29dd2020ac77afa283002c8fd1d9b0d7042a7fc763c883f794"]},"offset":"5398996"},"schema.js":{"size":3384,"integrity":{"algorithm":"SHA256","hash":"be14297ea2917dcb9ee11a7deb5b3a871f57ad978e5368c62407c83cd4dd18bf","blockSize":4194304,"blocks":["be14297ea2917dcb9ee11a7deb5b3a871f57ad978e5368c62407c83cd4dd18bf"]},"offset":"5446138"},"snippet.js":{"size":3088,"integrity":{"algorithm":"SHA256","hash":"1658b8ec688ebdd2e2dffc93fffc9cba0e9a93ad2a9a1d39b08ed5a1df5afade","blockSize":4194304,"blocks":["1658b8ec688ebdd2e2dffc93fffc9cba0e9a93ad2a9a1d39b08ed5a1df5afade"]},"offset":"5449522"},"type.js":{"size":1849,"integrity":{"algorithm":"SHA256","hash":"11d7ff8e46ecc9ef8b5334aa491973ee95a5f43841afa27e14a0594cca464170","blockSize":4194304,"blocks":["11d7ff8e46ecc9ef8b5334aa491973ee95a5f43841afa27e14a0594cca464170"]},"offset":"5452610"},"type":{"files":{"binary.js":{"size":2912,"integrity":{"algorithm":"SHA256","hash":"245745c866e306704407d6738e1a77776ce41e79e4cc3b2f418ae475bd00c3c9","blockSize":4194304,"blocks":["245745c866e306704407d6738e1a77776ce41e79e4cc3b2f418ae475bd00c3c9"]},"offset":"5454459"},"bool.js":{"size":971,"integrity":{"algorithm":"SHA256","hash":"634b7821ceb0877b5320a17b3b0fc3fb60ac3092b86c9d069722f18e2421c1db","blockSize":4194304,"blocks":["634b7821ceb0877b5320a17b3b0fc3fb60ac3092b86c9d069722f18e2421c1db"]},"offset":"5457371"},"float.js":{"size":2467,"integrity":{"algorithm":"SHA256","hash":"2d762d35ad3e06d96f512fb5ece8f7172e2543bb19c551f64c5e4005a66bbca2","blockSize":4194304,"blocks":["2d762d35ad3e06d96f512fb5ece8f7172e2543bb19c551f64c5e4005a66bbca2"]},"offset":"5458342"},"int.js":{"size":3691,"integrity":{"algorithm":"SHA256","hash":"0dac842d32923113f2a6a153a280f6120f6ccc2da9024ba01fd4d99065d29fcf","blockSize":4194304,"blocks":["0dac842d32923113f2a6a153a280f6120f6ccc2da9024ba01fd4d99065d29fcf"]},"offset":"5460809"},"map.js":{"size":190,"integrity":{"algorithm":"SHA256","hash":"b9bf146012164a0a59ea8c5f6576052706d330a1e41ab8092e11a67d6b9ccf2c","blockSize":4194304,"blocks":["b9bf146012164a0a59ea8c5f6576052706d330a1e41ab8092e11a67d6b9ccf2c"]},"offset":"5464500"},"merge.js":{"size":230,"integrity":{"algorithm":"SHA256","hash":"bf34d9da7bb1158c5bdd8ae4474d11645c824440f68de79813c384cd77c4791b","blockSize":4194304,"blocks":["bf34d9da7bb1158c5bdd8ae4474d11645c824440f68de79813c384cd77c4791b"]},"offset":"5464690"},"null.js":{"size":808,"integrity":{"algorithm":"SHA256","hash":"8f3abf27966dfc51e80ea72b363ca74b6d3bca0b15695f61e93bfee2858531f1","blockSize":4194304,"blocks":["8f3abf27966dfc51e80ea72b363ca74b6d3bca0b15695f61e93bfee2858531f1"]},"offset":"5464920"},"omap.js":{"size":1023,"integrity":{"algorithm":"SHA256","hash":"a4fa54ca0343665eb199503d772a4fe4aab792e4e08bee682e70c0d4a5ada043","blockSize":4194304,"blocks":["a4fa54ca0343665eb199503d772a4fe4aab792e4e08bee682e70c0d4a5ada043"]},"offset":"5465728"},"pairs.js":{"size":1084,"integrity":{"algorithm":"SHA256","hash":"faebb6d8a9d1b0cd755f92113e49464711d87060f17d1e807695924866f89a4a","blockSize":4194304,"blocks":["faebb6d8a9d1b0cd755f92113e49464711d87060f17d1e807695924866f89a4a"]},"offset":"5466751"},"seq.js":{"size":191,"integrity":{"algorithm":"SHA256","hash":"f3d76a1db2a6772a51ac32059dcc18b6666ae9c5a60a649467b5853a2fbaf425","blockSize":4194304,"blocks":["f3d76a1db2a6772a51ac32059dcc18b6666ae9c5a60a649467b5853a2fbaf425"]},"offset":"5467835"},"set.js":{"size":547,"integrity":{"algorithm":"SHA256","hash":"60d13edc50b58b037a6ef561d2f751c601826e455c011acf48c830baa1412107","blockSize":4194304,"blocks":["60d13edc50b58b037a6ef561d2f751c601826e455c011acf48c830baa1412107"]},"offset":"5468026"},"str.js":{"size":189,"integrity":{"algorithm":"SHA256","hash":"41e56af5fad426839bfe41c9a3f489de6efec71447490124a69f8f4785c46ab9","blockSize":4194304,"blocks":["41e56af5fad426839bfe41c9a3f489de6efec71447490124a69f8f4785c46ab9"]},"offset":"5468573"},"timestamp.js":{"size":2571,"integrity":{"algorithm":"SHA256","hash":"9e4f77c8d504a3a8319108343d6d6b2b6ed95ba6e96f4fe9b204208d04cfd691","blockSize":4194304,"blocks":["9e4f77c8d504a3a8319108343d6d6b2b6ed95ba6e96f4fe9b204208d04cfd691"]},"offset":"5468762"}}},"schema":{"files":{"core.js":{"size":288,"integrity":{"algorithm":"SHA256","hash":"d736e58b5a947a5b86056bf4b881c8002314b6534ab1a697a67cc47e1b2dc2a0","blockSize":4194304,"blocks":["d736e58b5a947a5b86056bf4b881c8002314b6534ab1a697a67cc47e1b2dc2a0"]},"offset":"5471333"},"default.js":{"size":538,"integrity":{"algorithm":"SHA256","hash":"aa09d88b4be7c51d8b6cb0b533c51ae17f534deed476c576b8d4cd3ce1bf165a","blockSize":4194304,"blocks":["aa09d88b4be7c51d8b6cb0b533c51ae17f534deed476c576b8d4cd3ce1bf165a"]},"offset":"5471621"},"failsafe.js":{"size":278,"integrity":{"algorithm":"SHA256","hash":"96d4b5b129b966f49d8028fc752a54cb9ca0c80cc4d076240766b946a2b329c5","blockSize":4194304,"blocks":["96d4b5b129b966f49d8028fc752a54cb9ca0c80cc4d076240766b946a2b329c5"]},"offset":"5472159"},"json.js":{"size":523,"integrity":{"algorithm":"SHA256","hash":"aa53e414f077035b4d477d19095ac01e60d9df73af716a188fd2772314041f92","blockSize":4194304,"blocks":["aa53e414f077035b4d477d19095ac01e60d9df73af716a188fd2772314041f92"]},"offset":"5472437"}}}}},"dist":{"files":{"js-yaml.js":{"size":114359,"integrity":{"algorithm":"SHA256","hash":"c738b0020702aa631abd8de23a902a3079d99d3060e44166955cb51f570881c4","blockSize":4194304,"blocks":["c738b0020702aa631abd8de23a902a3079d99d3060e44166955cb51f570881c4"]},"offset":"5472960"},"js-yaml.min.js":{"size":39430,"integrity":{"algorithm":"SHA256","hash":"45dc3dd03dc07a06705a2c2989b8c7f709013f04bd5386e3279d4e447f07ebd7","blockSize":4194304,"blocks":["45dc3dd03dc07a06705a2c2989b8c7f709013f04bd5386e3279d4e447f07ebd7"]},"offset":"5587319"},"js-yaml.mjs":{"size":107533,"integrity":{"algorithm":"SHA256","hash":"16f210b939b359b6ec8dde581eb62c157185711dc7b719b33779c43db5c31a91","blockSize":4194304,"blocks":["16f210b939b359b6ec8dde581eb62c157185711dc7b719b33779c43db5c31a91"]},"offset":"5626749"}}},"bin":{"files":{"js-yaml.js":{"size":2736,"integrity":{"algorithm":"SHA256","hash":"6d7749dfd8019095970f4366cd09ec3abef9deaa3f870709dffecb027e58902d","blockSize":4194304,"blocks":["6d7749dfd8019095970f4366cd09ec3abef9deaa3f870709dffecb027e58902d"]},"offset":"5734282"}}}}},"lazy-val":{"files":{"package.json":{"size":330,"integrity":{"algorithm":"SHA256","hash":"a6f4140d0187f32d95545835aca38684e18d0fcfbecb51709b0aaa54decd3c0b","blockSize":4194304,"blocks":["a6f4140d0187f32d95545835aca38684e18d0fcfbecb51709b0aaa54decd3c0b"]},"offset":"5737018"},"out":{"files":{"main.js":{"size":573,"integrity":{"algorithm":"SHA256","hash":"883653cd697a48385a0c5cac73e5c0c466622dec300e7f08a39876dee8c8595b","blockSize":4194304,"blocks":["883653cd697a48385a0c5cac73e5c0c466622dec300e7f08a39876dee8c8595b"]},"offset":"5737348"},"main.js.map":{"size":1156,"integrity":{"algorithm":"SHA256","hash":"aa3e70f08a0ce115832e5324c4b96aa1475a3b8b36728f50091ebd22aa0f6646","blockSize":4194304,"blocks":["aa3e70f08a0ce115832e5324c4b96aa1475a3b8b36728f50091ebd22aa0f6646"]},"offset":"5737921"}}}}},"lodash.escaperegexp":{"files":{"LICENSE":{"size":1951,"integrity":{"algorithm":"SHA256","hash":"ffd8b33b354585f4ce119f19c53728281e48a97b074491eb6bf6d5c5ff305272","blockSize":4194304,"blocks":["ffd8b33b354585f4ce119f19c53728281e48a97b074491eb6bf6d5c5ff305272"]},"offset":"5739077"},"index.js":{"size":4398,"integrity":{"algorithm":"SHA256","hash":"584de6ec78e35344eaef8291338a671f223ec225c4df4220b6f91d8f0c004d8d","blockSize":4194304,"blocks":["584de6ec78e35344eaef8291338a671f223ec225c4df4220b6f91d8f0c004d8d"]},"offset":"5741028"},"package.json":{"size":356,"integrity":{"algorithm":"SHA256","hash":"c71b659d3f3f5dfab55d736b6bd17d97f822b13bcf9b1edbce479f8e691e7892","blockSize":4194304,"blocks":["c71b659d3f3f5dfab55d736b6bd17d97f822b13bcf9b1edbce479f8e691e7892"]},"offset":"5745426"}}},"lodash.isequal":{"files":{"LICENSE":{"size":1950,"integrity":{"algorithm":"SHA256","hash":"e159c6d48c989185448658f276375bfb2300362ec6d4ae5525a2d49c4bcb947d","blockSize":4194304,"blocks":["e159c6d48c989185448658f276375bfb2300362ec6d4ae5525a2d49c4bcb947d"]},"offset":"5745782"},"index.js":{"size":49598,"integrity":{"algorithm":"SHA256","hash":"e552928a511748303101cfd03826a777cfa359eade6a4a60f92c923edbf9184c","blockSize":4194304,"blocks":["e552928a511748303101cfd03826a777cfa359eade6a4a60f92c923edbf9184c"]},"offset":"5747732"},"package.json":{"size":346,"integrity":{"algorithm":"SHA256","hash":"6e84ac44b54c17317d096a280e9d0bd72d736e0a0245095cc7c5d72657890406","blockSize":4194304,"blocks":["6e84ac44b54c17317d096a280e9d0bd72d736e0a0245095cc7c5d72657890406"]},"offset":"5797330"}}},"lodash.once":{"files":{"LICENSE":{"size":1951,"integrity":{"algorithm":"SHA256","hash":"ffd8b33b354585f4ce119f19c53728281e48a97b074491eb6bf6d5c5ff305272","blockSize":4194304,"blocks":["ffd8b33b354585f4ce119f19c53728281e48a97b074491eb6bf6d5c5ff305272"]},"offset":"5797676"},"index.js":{"size":7094,"integrity":{"algorithm":"SHA256","hash":"0424069c17cc702b439db9bc25302bf0aa7c9037f3bfe2adc78ebeec66af4dc5","blockSize":4194304,"blocks":["0424069c17cc702b439db9bc25302bf0aa7c9037f3bfe2adc78ebeec66af4dc5"]},"offset":"5799627"},"package.json":{"size":340,"integrity":{"algorithm":"SHA256","hash":"22f9be61f892c1b6f61b0a3423f44bfd56e0566114bd7426a37630869719c3a9","blockSize":4194304,"blocks":["22f9be61f892c1b6f61b0a3423f44bfd56e0566114bd7426a37630869719c3a9"]},"offset":"5806721"}}},"merge-stream":{"files":{"LICENSE":{"size":1119,"integrity":{"algorithm":"SHA256","hash":"2cee71bf4612fc2efe1c6261e3f2b21f3c7259ef8a4f3593b095ae7a7bd65ad9","blockSize":4194304,"blocks":["2cee71bf4612fc2efe1c6261e3f2b21f3c7259ef8a4f3593b095ae7a7bd65ad9"]},"offset":"5807061"},"index.js":{"size":885,"integrity":{"algorithm":"SHA256","hash":"79a8881e309ecd45a9193d02fdf79bc2e623effbcdba49c41b2a35e09319ef19","blockSize":4194304,"blocks":["79a8881e309ecd45a9193d02fdf79bc2e623effbcdba49c41b2a35e09319ef19"]},"offset":"5808180"},"package.json":{"size":375,"integrity":{"algorithm":"SHA256","hash":"58f5df5e290dfbce4e6ee0073d7147a05d8d824b6052476e3e06f674cd7cba0a","blockSize":4194304,"blocks":["58f5df5e290dfbce4e6ee0073d7147a05d8d824b6052476e3e06f674cd7cba0a"]},"offset":"5809065"}}},"merge2":{"files":{"LICENSE":{"size":1082,"integrity":{"algorithm":"SHA256","hash":"b2590e53ea6e050512c3993bfc746c394bbba9242fd6909245201bdc1dc6862a","blockSize":4194304,"blocks":["b2590e53ea6e050512c3993bfc746c394bbba9242fd6909245201bdc1dc6862a"]},"offset":"5809440"},"index.js":{"size":3241,"integrity":{"algorithm":"SHA256","hash":"15a54c244f6591f3a744ea3e26f3484fd3ecd0975734639aa535b5af9a3edade","blockSize":4194304,"blocks":["15a54c244f6591f3a744ea3e26f3484fd3ecd0975734639aa535b5af9a3edade"]},"offset":"5810522"},"package.json":{"size":637,"integrity":{"algorithm":"SHA256","hash":"202129ba22e9acef65008e10e6ed11c2e55e1ba2badb14edcc5c8ace6991f744","blockSize":4194304,"blocks":["202129ba22e9acef65008e10e6ed11c2e55e1ba2badb14edcc5c8ace6991f744"]},"offset":"5813763"}}},"micromatch":{"files":{"LICENSE":{"size":1091,"integrity":{"algorithm":"SHA256","hash":"35bdd8a44339719441900fb50fbefc5e2dca1ca662cbaed7a687de842c8b70f2","blockSize":4194304,"blocks":["35bdd8a44339719441900fb50fbefc5e2dca1ca662cbaed7a687de842c8b70f2"]},"offset":"5814400"},"index.js":{"size":13898,"integrity":{"algorithm":"SHA256","hash":"6a56366fcf3ae8e678e574900a0acb2ea6f118ea030d09bcc1b1053ccab916bb","blockSize":4194304,"blocks":["6a56366fcf3ae8e678e574900a0acb2ea6f118ea030d09bcc1b1053ccab916bb"]},"offset":"5815491"},"package.json":{"size":1190,"integrity":{"algorithm":"SHA256","hash":"18224fbe75c09386bba45141b66fc31293d381e843dce28a9727754b1247f7c2","blockSize":4194304,"blocks":["18224fbe75c09386bba45141b66fc31293d381e843dce28a9727754b1247f7c2"]},"offset":"5829389"}}},"mimic-fn":{"files":{"index.js":{"size":300,"integrity":{"algorithm":"SHA256","hash":"9ca2b409cdf1718ce957292dc479c83516e4ea369f4b2cb3510066d4e50074e2","blockSize":4194304,"blocks":["9ca2b409cdf1718ce957292dc479c83516e4ea369f4b2cb3510066d4e50074e2"]},"offset":"5830579"},"license":{"size":1109,"integrity":{"algorithm":"SHA256","hash":"48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0","blockSize":4194304,"blocks":["48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0"]},"offset":"5830879"},"package.json":{"size":457,"integrity":{"algorithm":"SHA256","hash":"98daad7a76353462b42f4d89a340f54caae220bd83d6b46aaf181f77e28cd13f","blockSize":4194304,"blocks":["98daad7a76353462b42f4d89a340f54caae220bd83d6b46aaf181f77e28cd13f"]},"offset":"5831988"}}},"minimatch":{"files":{"LICENSE":{"size":765,"integrity":{"algorithm":"SHA256","hash":"4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b","blockSize":4194304,"blocks":["4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b"]},"offset":"5832445"},"minimatch.js":{"size":26266,"integrity":{"algorithm":"SHA256","hash":"ebae64a212004e293fd7b536f33a2ca830452f71377f4b51fa0a0e9885ee6a93","blockSize":4194304,"blocks":["ebae64a212004e293fd7b536f33a2ca830452f71377f4b51fa0a0e9885ee6a93"]},"offset":"5833210"},"package.json":{"size":529,"integrity":{"algorithm":"SHA256","hash":"4ee611480bf3df3cac69baa516cac250f813aca003bc10259db7c25b01d671ec","blockSize":4194304,"blocks":["4ee611480bf3df3cac69baa516cac250f813aca003bc10259db7c25b01d671ec"]},"offset":"5859476"}}},"ms":{"files":{"index.js":{"size":3023,"integrity":{"algorithm":"SHA256","hash":"55986972f5f3c9446f876c576e1cd30fd4f04cd26527efbb5ad834637c740e4c","blockSize":4194304,"blocks":["55986972f5f3c9446f876c576e1cd30fd4f04cd26527efbb5ad834637c740e4c"]},"offset":"5860005"},"license.md":{"size":1077,"integrity":{"algorithm":"SHA256","hash":"6652830c2607c722b66f1b57de15877ab8fc5dca406cc5b335afeb365d0f32c1","blockSize":4194304,"blocks":["6652830c2607c722b66f1b57de15877ab8fc5dca406cc5b335afeb365d0f32c1"]},"offset":"5863028"},"package.json":{"size":470,"integrity":{"algorithm":"SHA256","hash":"d5ba1dc0ec7c9f0ea73ab392c1424b067a349df6d77b71322c08ef9062664188","blockSize":4194304,"blocks":["d5ba1dc0ec7c9f0ea73ab392c1424b067a349df6d77b71322c08ef9062664188"]},"offset":"5864105"}}},"npm-run-path":{"files":{"index.js":{"size":1013,"integrity":{"algorithm":"SHA256","hash":"51a998b34bd7ff983b316f77f9de24370f53158e1c7b8dc3ee021a08628ecfc1","blockSize":4194304,"blocks":["51a998b34bd7ff983b316f77f9de24370f53158e1c7b8dc3ee021a08628ecfc1"]},"offset":"5864575"},"license":{"size":1109,"integrity":{"algorithm":"SHA256","hash":"48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0","blockSize":4194304,"blocks":["48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0"]},"offset":"5865588"},"package.json":{"size":537,"integrity":{"algorithm":"SHA256","hash":"ebfba2ab1b6e1d1f0e585ff1d05b379816bdcba3616c06d046898d9ff264e294","blockSize":4194304,"blocks":["ebfba2ab1b6e1d1f0e585ff1d05b379816bdcba3616c06d046898d9ff264e294"]},"offset":"5866697"}}},"once":{"files":{"LICENSE":{"size":765,"integrity":{"algorithm":"SHA256","hash":"4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b","blockSize":4194304,"blocks":["4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b"]},"offset":"5867234"},"once.js":{"size":935,"integrity":{"algorithm":"SHA256","hash":"3db73e347ecbdbafdf8d0db85145c877e133f5372e767360ef90c09f70ac5103","blockSize":4194304,"blocks":["3db73e347ecbdbafdf8d0db85145c877e133f5372e767360ef90c09f70ac5103"]},"offset":"5867999"},"package.json":{"size":452,"integrity":{"algorithm":"SHA256","hash":"fa72703fdfef576c9de9d444f92ee28fc4143580569a1272f4baa55f95c7154c","blockSize":4194304,"blocks":["fa72703fdfef576c9de9d444f92ee28fc4143580569a1272f4baa55f95c7154c"]},"offset":"5868934"}}},"onetime":{"files":{"index.js":{"size":1120,"integrity":{"algorithm":"SHA256","hash":"59a0b25379fff19195343d47759339397c689e8ab93270adcab2d106a80e1625","blockSize":4194304,"blocks":["59a0b25379fff19195343d47759339397c689e8ab93270adcab2d106a80e1625"]},"offset":"5869386"},"license":{"size":1117,"integrity":{"algorithm":"SHA256","hash":"5c932d88256b4ab958f64a856fa48e8bd1f55bc1d96b8149c65689e0c61789d3","blockSize":4194304,"blocks":["5c932d88256b4ab958f64a856fa48e8bd1f55bc1d96b8149c65689e0c61789d3"]},"offset":"5870506"},"package.json":{"size":574,"integrity":{"algorithm":"SHA256","hash":"b155b599abc77980f0bb4835f6326d419de175e9c085198ed292199844dc1917","blockSize":4194304,"blocks":["b155b599abc77980f0bb4835f6326d419de175e9c085198ed292199844dc1917"]},"offset":"5871623"}}},"p-map":{"files":{"index.js":{"size":1640,"integrity":{"algorithm":"SHA256","hash":"0948a5674610f016c9fc9cb00e966c30e4b569ecaf6c59ceb59da956c831e208","blockSize":4194304,"blocks":["0948a5674610f016c9fc9cb00e966c30e4b569ecaf6c59ceb59da956c831e208"]},"offset":"5872197"},"license":{"size":1117,"integrity":{"algorithm":"SHA256","hash":"5c932d88256b4ab958f64a856fa48e8bd1f55bc1d96b8149c65689e0c61789d3","blockSize":4194304,"blocks":["5c932d88256b4ab958f64a856fa48e8bd1f55bc1d96b8149c65689e0c61789d3"]},"offset":"5873837"},"package.json":{"size":675,"integrity":{"algorithm":"SHA256","hash":"9be702e7ed1811e100ee62b991ce4846443522d5cbba2eb136acf355c0df79d4","blockSize":4194304,"blocks":["9be702e7ed1811e100ee62b991ce4846443522d5cbba2eb136acf355c0df79d4"]},"offset":"5874954"}}},"path-is-absolute":{"files":{"index.js":{"size":611,"integrity":{"algorithm":"SHA256","hash":"4eb1119c3eeccc4d8e8841b77d062abaf4572b332801f5b16175bc3311b5d8f1","blockSize":4194304,"blocks":["4eb1119c3eeccc4d8e8841b77d062abaf4572b332801f5b16175bc3311b5d8f1"]},"offset":"5875629"},"license":{"size":1119,"integrity":{"algorithm":"SHA256","hash":"6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c","blockSize":4194304,"blocks":["6fb9754611c20f6649f68805e8c990e83261f29316e29de9e6cedae607b8634c"]},"offset":"5876240"},"package.json":{"size":424,"integrity":{"algorithm":"SHA256","hash":"1d0ad40ecaa004d97b4db97bc3462e3c7751aa144bcd161151ea08e4feedfa18","blockSize":4194304,"blocks":["1d0ad40ecaa004d97b4db97bc3462e3c7751aa144bcd161151ea08e4feedfa18"]},"offset":"5877359"}}},"path-key":{"files":{"index.js":{"size":415,"integrity":{"algorithm":"SHA256","hash":"fdbafdc163f668fe325333d62387365c9b074e01253e32824a4dbf5cc552705d","blockSize":4194304,"blocks":["fdbafdc163f668fe325333d62387365c9b074e01253e32824a4dbf5cc552705d"]},"offset":"5877783"},"license":{"size":1109,"integrity":{"algorithm":"SHA256","hash":"48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0","blockSize":4194304,"blocks":["48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0"]},"offset":"5878198"},"package.json":{"size":507,"integrity":{"algorithm":"SHA256","hash":"df30f58dca250806aea5061805689e7afa3e1660069726e5f23f375a45de84ee","blockSize":4194304,"blocks":["df30f58dca250806aea5061805689e7afa3e1660069726e5f23f375a45de84ee"]},"offset":"5879307"}}},"path-type":{"files":{"index.js":{"size":1176,"integrity":{"algorithm":"SHA256","hash":"995b4c8344dbf99195dcad24eadd33eba54196528451d8cdd7019a099c76c07f","blockSize":4194304,"blocks":["995b4c8344dbf99195dcad24eadd33eba54196528451d8cdd7019a099c76c07f"]},"offset":"5879814"},"license":{"size":1109,"integrity":{"algorithm":"SHA256","hash":"48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0","blockSize":4194304,"blocks":["48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0"]},"offset":"5880990"},"package.json":{"size":502,"integrity":{"algorithm":"SHA256","hash":"5a4d496b75445937881e184d855015fc744f5cd400e58c22e04d1235297f804d","blockSize":4194304,"blocks":["5a4d496b75445937881e184d855015fc744f5cd400e58c22e04d1235297f804d"]},"offset":"5882099"}}},"picomatch":{"files":{"LICENSE":{"size":1091,"integrity":{"algorithm":"SHA256","hash":"d0cd141b0c322fded5dfad1d4645bb2fedfc05b7321fe1009469638190d59ef9","blockSize":4194304,"blocks":["d0cd141b0c322fded5dfad1d4645bb2fedfc05b7321fe1009469638190d59ef9"]},"offset":"5882601"},"index.js":{"size":60,"integrity":{"algorithm":"SHA256","hash":"5695ff5dfcd5a338a40630bd506056f2950bcb08fe1cc068519cbbfe60add480","blockSize":4194304,"blocks":["5695ff5dfcd5a338a40630bd506056f2950bcb08fe1cc068519cbbfe60add480"]},"offset":"5883692"},"package.json":{"size":1364,"integrity":{"algorithm":"SHA256","hash":"3e05e5921850e9f73dd44178fe2024eecdfed6454ba00b91dea4979e8fc0f470","blockSize":4194304,"blocks":["3e05e5921850e9f73dd44178fe2024eecdfed6454ba00b91dea4979e8fc0f470"]},"offset":"5883752"},"lib":{"files":{"constants.js":{"size":4448,"integrity":{"algorithm":"SHA256","hash":"62e99d2d2b35b08df788f855f735c70eed58722f43059b50b97dfb950aafdfce","blockSize":4194304,"blocks":["62e99d2d2b35b08df788f855f735c70eed58722f43059b50b97dfb950aafdfce"]},"offset":"5885116"},"parse.js":{"size":27763,"integrity":{"algorithm":"SHA256","hash":"def9662f49cd241d7f0f22c295aa5d7ac6541fc983a9394eb45d57b486de2f39","blockSize":4194304,"blocks":["def9662f49cd241d7f0f22c295aa5d7ac6541fc983a9394eb45d57b486de2f39"]},"offset":"5889564"},"picomatch.js":{"size":9956,"integrity":{"algorithm":"SHA256","hash":"2cb169cbe17d356036c5f62a377318b85e30817877e59797842aec9d8b15f54b","blockSize":4194304,"blocks":["2cb169cbe17d356036c5f62a377318b85e30817877e59797842aec9d8b15f54b"]},"offset":"5917327"},"scan.js":{"size":9189,"integrity":{"algorithm":"SHA256","hash":"227fcc994a477ea95c5a0435d32783566334c6bd0dcc4a103029735ad8c9c535","blockSize":4194304,"blocks":["227fcc994a477ea95c5a0435d32783566334c6bd0dcc4a103029735ad8c9c535"]},"offset":"5927283"},"utils.js":{"size":1885,"integrity":{"algorithm":"SHA256","hash":"809fc29cf35ab0aa76b99cad29182f62c0ae598902481d10f9868eaef71981ee","blockSize":4194304,"blocks":["809fc29cf35ab0aa76b99cad29182f62c0ae598902481d10f9868eaef71981ee"]},"offset":"5936472"}}}}},"queue-microtask":{"files":{"LICENSE":{"size":1081,"integrity":{"algorithm":"SHA256","hash":"d4c2065e2b936e62a4eb400efb4576edec9ca1388a9f78aa288e147275e7bc8b","blockSize":4194304,"blocks":["d4c2065e2b936e62a4eb400efb4576edec9ca1388a9f78aa288e147275e7bc8b"]},"offset":"5938357"},"index.js":{"size":402,"integrity":{"algorithm":"SHA256","hash":"e56672f1cf34e0be38f3c28c164810c878a243918d19bd0ac82d701209b5b9a2","blockSize":4194304,"blocks":["e56672f1cf34e0be38f3c28c164810c878a243918d19bd0ac82d701209b5b9a2"]},"offset":"5939438"},"package.json":{"size":788,"integrity":{"algorithm":"SHA256","hash":"5e248d1fec574866af678b1e47e7a6068e79c457cf130ac88046abfa40585bf1","blockSize":4194304,"blocks":["5e248d1fec574866af678b1e47e7a6068e79c457cf130ac88046abfa40585bf1"]},"offset":"5939840"}}},"reusify":{"files":{"LICENSE":{"size":1082,"integrity":{"algorithm":"SHA256","hash":"db0054e6418412e4a265236c94d1d8935057c67f367240b01bb2b0b2f9091812","blockSize":4194304,"blocks":["db0054e6418412e4a265236c94d1d8935057c67f367240b01bb2b0b2f9091812"]},"offset":"5940628"},"package.json":{"size":656,"integrity":{"algorithm":"SHA256","hash":"6985a038bf7f6787d5d3fbd226fafec7e34a68e3adcc6fa8d2bc7966b4e06c66","blockSize":4194304,"blocks":["6985a038bf7f6787d5d3fbd226fafec7e34a68e3adcc6fa8d2bc7966b4e06c66"]},"offset":"5941710"},"reusify.js":{"size":454,"integrity":{"algorithm":"SHA256","hash":"00894a3dd7016e3751560569cc791c15c2e0607c35a91bd3398dab675026fcf3","blockSize":4194304,"blocks":["00894a3dd7016e3751560569cc791c15c2e0607c35a91bd3398dab675026fcf3"]},"offset":"5942366"},"test.js":{"size":1440,"integrity":{"algorithm":"SHA256","hash":"3ea47b07caf2b1cdfbbaf5244b343755bd0eb1d6ed2e0efd7a1506fc5eb99ff7","blockSize":4194304,"blocks":["3ea47b07caf2b1cdfbbaf5244b343755bd0eb1d6ed2e0efd7a1506fc5eb99ff7"]},"offset":"5942820"},"benchmarks":{"files":{"createNoCodeFunction.js":{"size":590,"integrity":{"algorithm":"SHA256","hash":"970ce8755038592027209ac3b94c71f70c7640ca43372de4748b9332d278ac07","blockSize":4194304,"blocks":["970ce8755038592027209ac3b94c71f70c7640ca43372de4748b9332d278ac07"]},"offset":"5944260"},"fib.js":{"size":177,"integrity":{"algorithm":"SHA256","hash":"efe22b4adfc705e416cf42df734009d8a8792723ef2b1462edad0f21bdf0c285","blockSize":4194304,"blocks":["efe22b4adfc705e416cf42df734009d8a8792723ef2b1462edad0f21bdf0c285"]},"offset":"5944850"},"reuseNoCodeFunction.js":{"size":713,"integrity":{"algorithm":"SHA256","hash":"1a04480ba58a36764cbf746b63dea403a3a978efeea1cfd6ad301f3508884e0c","blockSize":4194304,"blocks":["1a04480ba58a36764cbf746b63dea403a3a978efeea1cfd6ad301f3508884e0c"]},"offset":"5945027"}}}}},"rimraf":{"files":{"LICENSE":{"size":765,"integrity":{"algorithm":"SHA256","hash":"4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b","blockSize":4194304,"blocks":["4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b"]},"offset":"5945740"},"bin.js":{"size":1878,"integrity":{"algorithm":"SHA256","hash":"31a25b2763aa83ea17f4191982c863681739bed548a910f547257fd495641495","blockSize":4194304,"blocks":["31a25b2763aa83ea17f4191982c863681739bed548a910f547257fd495641495"]},"offset":"5946505"},"package.json":{"size":564,"integrity":{"algorithm":"SHA256","hash":"a8487f35c9b0900130c598f6d98cc988b1a5de5c9f14977c1245391f8ca5d861","blockSize":4194304,"blocks":["a8487f35c9b0900130c598f6d98cc988b1a5de5c9f14977c1245391f8ca5d861"]},"offset":"5948383"},"rimraf.js":{"size":8866,"integrity":{"algorithm":"SHA256","hash":"c9db3ffef2ac43cd93b4284147cdd4bfb264eec0ad1a3e69109bc0371b128ee7","blockSize":4194304,"blocks":["c9db3ffef2ac43cd93b4284147cdd4bfb264eec0ad1a3e69109bc0371b128ee7"]},"offset":"5948947"}}},"run-parallel":{"files":{"LICENSE":{"size":1081,"integrity":{"algorithm":"SHA256","hash":"d4c2065e2b936e62a4eb400efb4576edec9ca1388a9f78aa288e147275e7bc8b","blockSize":4194304,"blocks":["d4c2065e2b936e62a4eb400efb4576edec9ca1388a9f78aa288e147275e7bc8b"]},"offset":"5957813"},"index.js":{"size":1034,"integrity":{"algorithm":"SHA256","hash":"acbc9a16809467da8f06757d4600be6466b20bf4a05e55c157fa04830fb186b7","blockSize":4194304,"blocks":["acbc9a16809467da8f06757d4600be6466b20bf4a05e55c157fa04830fb186b7"]},"offset":"5958894"},"package.json":{"size":846,"integrity":{"algorithm":"SHA256","hash":"9dd2a6f55a0aff6470d039f68ccad4859b426a0f163a990d8f1d4a2a67a758e6","blockSize":4194304,"blocks":["9dd2a6f55a0aff6470d039f68ccad4859b426a0f163a990d8f1d4a2a67a758e6"]},"offset":"5959928"}}},"sax":{"files":{"LICENSE":{"size":2031,"integrity":{"algorithm":"SHA256","hash":"e8bf477df410baa41d44132e676d16a5372cf1798599fac2823376dc95e94eee","blockSize":4194304,"blocks":["e8bf477df410baa41d44132e676d16a5372cf1798599fac2823376dc95e94eee"]},"offset":"5960774"},"package.json":{"size":483,"integrity":{"algorithm":"SHA256","hash":"97adb7c524eb2900a54a31f535b543e24aea848e3ff2e4af20810dfef8aeffd0","blockSize":4194304,"blocks":["97adb7c524eb2900a54a31f535b543e24aea848e3ff2e4af20810dfef8aeffd0"]},"offset":"5962805"},"lib":{"files":{"sax.js":{"size":44774,"integrity":{"algorithm":"SHA256","hash":"e221d28f41ed2b3d7122cf5962772cffe43ae976d8c060cc116470d5cedf54c0","blockSize":4194304,"blocks":["e221d28f41ed2b3d7122cf5962772cffe43ae976d8c060cc116470d5cedf54c0"]},"offset":"5963288"}}}}},"semver":{"files":{"LICENSE":{"size":765,"integrity":{"algorithm":"SHA256","hash":"4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b","blockSize":4194304,"blocks":["4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b"]},"offset":"6008062"},"index.js":{"size":2630,"integrity":{"algorithm":"SHA256","hash":"646e0b707f56dca7cb90cebc6fe687278bcc1a16fdcc83756dbe23083ff15e06","blockSize":4194304,"blocks":["646e0b707f56dca7cb90cebc6fe687278bcc1a16fdcc83756dbe23083ff15e06"]},"offset":"6008827"},"package.json":{"size":1350,"integrity":{"algorithm":"SHA256","hash":"0212be47828b9ec4a81221c7b1193d20727f4988b5bb0632e5dc97c1f02cd5d5","blockSize":4194304,"blocks":["0212be47828b9ec4a81221c7b1193d20727f4988b5bb0632e5dc97c1f02cd5d5"]},"offset":"6011457"},"preload.js":{"size":83,"integrity":{"algorithm":"SHA256","hash":"edb6808911bebcb324b2df57e5c9935149e56984ff083b74c6cfe215f5b710ba","blockSize":4194304,"blocks":["edb6808911bebcb324b2df57e5c9935149e56984ff083b74c6cfe215f5b710ba"]},"offset":"6012807"},"range.bnf":{"size":619,"integrity":{"algorithm":"SHA256","hash":"ed628fdaff64be366d07f6cc4559eae4de109826f743ea7f5e1588c370bca49a","blockSize":4194304,"blocks":["ed628fdaff64be366d07f6cc4559eae4de109826f743ea7f5e1588c370bca49a"]},"offset":"6012890"},"ranges":{"files":{"gtr.js":{"size":231,"integrity":{"algorithm":"SHA256","hash":"8fadad28e36d28e93d498ac7ac20badba2a407312845eabc18e82e90a0732b19","blockSize":4194304,"blocks":["8fadad28e36d28e93d498ac7ac20badba2a407312845eabc18e82e90a0732b19"]},"offset":"6013509"},"intersects.js":{"size":224,"integrity":{"algorithm":"SHA256","hash":"fe87ac5d3020010ad3ec00636dadbf0c669ff07d0f57e0a8165a8264f79a676f","blockSize":4194304,"blocks":["fe87ac5d3020010ad3ec00636dadbf0c669ff07d0f57e0a8165a8264f79a676f"]},"offset":"6013740"},"ltr.js":{"size":227,"integrity":{"algorithm":"SHA256","hash":"e5186fcc03018acf9be6d968755d4c49727aeb0d981d179eb568ae5fbe983038","blockSize":4194304,"blocks":["e5186fcc03018acf9be6d968755d4c49727aeb0d981d179eb568ae5fbe983038"]},"offset":"6013964"},"max-satisfying.js":{"size":593,"integrity":{"algorithm":"SHA256","hash":"e1a2c0d6144cc772cd20bbc8ecb9e8a3a4074e9172a3d8e794838b591cdeb416","blockSize":4194304,"blocks":["e1a2c0d6144cc772cd20bbc8ecb9e8a3a4074e9172a3d8e794838b591cdeb416"]},"offset":"6014191"},"min-satisfying.js":{"size":591,"integrity":{"algorithm":"SHA256","hash":"2681abf54098aa670f12826b76a6ec77a2441186ae4243afde3be8ae4908f7ca","blockSize":4194304,"blocks":["2681abf54098aa670f12826b76a6ec77a2441186ae4243afde3be8ae4908f7ca"]},"offset":"6014784"},"min-version.js":{"size":1514,"integrity":{"algorithm":"SHA256","hash":"fefba0a88c2bf74d5cede504b5ae50a8dc3edfd69cf0174a491e2cf3e442614b","blockSize":4194304,"blocks":["fefba0a88c2bf74d5cede504b5ae50a8dc3edfd69cf0174a491e2cf3e442614b"]},"offset":"6015375"},"outside.js":{"size":2204,"integrity":{"algorithm":"SHA256","hash":"3a2b0b23593d2f49419c06af2af75450cab103b0c25d665d48fe5bca495a21ca","blockSize":4194304,"blocks":["3a2b0b23593d2f49419c06af2af75450cab103b0c25d665d48fe5bca495a21ca"]},"offset":"6016889"},"simplify.js":{"size":1355,"integrity":{"algorithm":"SHA256","hash":"7b78581c13322bc68ece2088685386b2a9b51c15b94d0a2063bdf2546bd41934","blockSize":4194304,"blocks":["7b78581c13322bc68ece2088685386b2a9b51c15b94d0a2063bdf2546bd41934"]},"offset":"6019093"},"subset.js":{"size":7524,"integrity":{"algorithm":"SHA256","hash":"299abae66d0bcf7ac4f4bdf593fcf14e6c94964ffdd7c72b844357925693d3c2","blockSize":4194304,"blocks":["299abae66d0bcf7ac4f4bdf593fcf14e6c94964ffdd7c72b844357925693d3c2"]},"offset":"6020448"},"to-comparators.js":{"size":282,"integrity":{"algorithm":"SHA256","hash":"6c5e966210cff270fa2850668aaf8460fac7759f8d99f282521ef7a78f4564e9","blockSize":4194304,"blocks":["6c5e966210cff270fa2850668aaf8460fac7759f8d99f282521ef7a78f4564e9"]},"offset":"6027972"},"valid.js":{"size":326,"integrity":{"algorithm":"SHA256","hash":"5ef6f995af801868925940cf8df5735d565ebabb090b068695cae65218bcd3ac","blockSize":4194304,"blocks":["5ef6f995af801868925940cf8df5735d565ebabb090b068695cae65218bcd3ac"]},"offset":"6028254"}}},"internal":{"files":{"constants.js":{"size":873,"integrity":{"algorithm":"SHA256","hash":"38a112baf27ceca0260082ff26ac2fd7a9861cab1af12dd65e720277f68e6ce9","blockSize":4194304,"blocks":["38a112baf27ceca0260082ff26ac2fd7a9861cab1af12dd65e720277f68e6ce9"]},"offset":"6028580"},"debug.js":{"size":240,"integrity":{"algorithm":"SHA256","hash":"8a9f420572260f3cf944463b5090d62a60f0730589dc23a7ec4ca25e2ee41bb3","blockSize":4194304,"blocks":["8a9f420572260f3cf944463b5090d62a60f0730589dc23a7ec4ca25e2ee41bb3"]},"offset":"6029453"},"identifiers.js":{"size":424,"integrity":{"algorithm":"SHA256","hash":"2cde4269bc837c84d122af71148ba5d146fc4dc4b326b3ae803a9e9c0d87f251","blockSize":4194304,"blocks":["2cde4269bc837c84d122af71148ba5d146fc4dc4b326b3ae803a9e9c0d87f251"]},"offset":"6029693"},"lrucache.js":{"size":802,"integrity":{"algorithm":"SHA256","hash":"14d087c87da87b6f5c36fc4cdd7d2d14077874b14a68e20fce5b6138fa2ca34f","blockSize":4194304,"blocks":["14d087c87da87b6f5c36fc4cdd7d2d14077874b14a68e20fce5b6138fa2ca34f"]},"offset":"6030117"},"parse-options.js":{"size":338,"integrity":{"algorithm":"SHA256","hash":"fdf51d0de8d5442c35a997ef58cd530d239ce206f961d14c5121354451b01d01","blockSize":4194304,"blocks":["fdf51d0de8d5442c35a997ef58cd530d239ce206f961d14c5121354451b01d01"]},"offset":"6030919"},"re.js":{"size":8141,"integrity":{"algorithm":"SHA256","hash":"016655766a1381078a83ba04cd6ba39afc6e64c3e5a95789ad82c3672ae87a94","blockSize":4194304,"blocks":["016655766a1381078a83ba04cd6ba39afc6e64c3e5a95789ad82c3672ae87a94"]},"offset":"6031257"}}},"functions":{"files":{"clean.js":{"size":205,"integrity":{"algorithm":"SHA256","hash":"4eadb0892844cf3ae295121a86163a66c73f89acd1b7f0b114ec115b4539512f","blockSize":4194304,"blocks":["4eadb0892844cf3ae295121a86163a66c73f89acd1b7f0b114ec115b4539512f"]},"offset":"6039398"},"cmp.js":{"size":961,"integrity":{"algorithm":"SHA256","hash":"a63d74e87b73788e78e9ce0a4892b5333d6b809c0de88b31e4ed76cbf17f94b3","blockSize":4194304,"blocks":["a63d74e87b73788e78e9ce0a4892b5333d6b809c0de88b31e4ed76cbf17f94b3"]},"offset":"6039603"},"coerce.js":{"size":2004,"integrity":{"algorithm":"SHA256","hash":"28a251c5ab210ddf9e97551b9f37a53329fcce91f0c3943dcbc02de1a1de915a","blockSize":4194304,"blocks":["28a251c5ab210ddf9e97551b9f37a53329fcce91f0c3943dcbc02de1a1de915a"]},"offset":"6040564"},"compare-build.js":{"size":281,"integrity":{"algorithm":"SHA256","hash":"5ab651d5b40af289bd85c645a92b6d8cfe1a986dc413c797cfcc8d623d7c844c","blockSize":4194304,"blocks":["5ab651d5b40af289bd85c645a92b6d8cfe1a986dc413c797cfcc8d623d7c844c"]},"offset":"6042568"},"compare-loose.js":{"size":132,"integrity":{"algorithm":"SHA256","hash":"07b6a3a1db0a5210ceb784c1708bd4679f3a94fc73a9c9eb349349e7070a6f78","blockSize":4194304,"blocks":["07b6a3a1db0a5210ceb784c1708bd4679f3a94fc73a9c9eb349349e7070a6f78"]},"offset":"6042849"},"compare.js":{"size":170,"integrity":{"algorithm":"SHA256","hash":"d404b5aa48aaddc8a654c5da8fb7d4443404b7948589b21ac4b045d1cee4e34c","blockSize":4194304,"blocks":["d404b5aa48aaddc8a654c5da8fb7d4443404b7948589b21ac4b045d1cee4e34c"]},"offset":"6042981"},"diff.js":{"size":1421,"integrity":{"algorithm":"SHA256","hash":"ea876a3256d09f1301d33a95cd6451b6312c055328abfc8fc49b5f27fe6d2afe","blockSize":4194304,"blocks":["ea876a3256d09f1301d33a95cd6451b6312c055328abfc8fc49b5f27fe6d2afe"]},"offset":"6043151"},"eq.js":{"size":126,"integrity":{"algorithm":"SHA256","hash":"b6e30a7168e52723216fc163d300e2bbabf92ec0251f9ac5438bb6ccf57c8936","blockSize":4194304,"blocks":["b6e30a7168e52723216fc163d300e2bbabf92ec0251f9ac5438bb6ccf57c8936"]},"offset":"6044572"},"gt.js":{"size":124,"integrity":{"algorithm":"SHA256","hash":"135523704aa48cd98834dd170ee9f74f0e68043b379f32d021db11e6304c5c93","blockSize":4194304,"blocks":["135523704aa48cd98834dd170ee9f74f0e68043b379f32d021db11e6304c5c93"]},"offset":"6044698"},"gte.js":{"size":127,"integrity":{"algorithm":"SHA256","hash":"991c5bbe48ecb210a562646872f05862ad9fc0d42186d85aa60bdc6fa323eb9d","blockSize":4194304,"blocks":["991c5bbe48ecb210a562646872f05862ad9fc0d42186d85aa60bdc6fa323eb9d"]},"offset":"6044822"},"inc.js":{"size":478,"integrity":{"algorithm":"SHA256","hash":"952069fc8690b7d3af0fe9d55f7c54fe2ac067b48c5e74f6a54f9ce19a334493","blockSize":4194304,"blocks":["952069fc8690b7d3af0fe9d55f7c54fe2ac067b48c5e74f6a54f9ce19a334493"]},"offset":"6044949"},"lt.js":{"size":124,"integrity":{"algorithm":"SHA256","hash":"1c897a9bc849320e2e9dc0f6c09555c01ee3ddf30734515d717b88ad7740ea25","blockSize":4194304,"blocks":["1c897a9bc849320e2e9dc0f6c09555c01ee3ddf30734515d717b88ad7740ea25"]},"offset":"6045427"},"lte.js":{"size":127,"integrity":{"algorithm":"SHA256","hash":"3a8d0b1d00423f60cc7cb810b36ab77b61330831ad237dbe73eb5cecfa412800","blockSize":4194304,"blocks":["3a8d0b1d00423f60cc7cb810b36ab77b61330831ad237dbe73eb5cecfa412800"]},"offset":"6045551"},"major.js":{"size":136,"integrity":{"algorithm":"SHA256","hash":"5c678480d882f511200fed2c16ec3847dfedb08a1d70328dc2f031d35d825276","blockSize":4194304,"blocks":["5c678480d882f511200fed2c16ec3847dfedb08a1d70328dc2f031d35d825276"]},"offset":"6045678"},"minor.js":{"size":136,"integrity":{"algorithm":"SHA256","hash":"1b051794f1713adec2a236517196691687c35f82e0b596ff3316a78b3cc10ae6","blockSize":4194304,"blocks":["1b051794f1713adec2a236517196691687c35f82e0b596ff3316a78b3cc10ae6"]},"offset":"6045814"},"neq.js":{"size":128,"integrity":{"algorithm":"SHA256","hash":"a662883751918822c162183b46b9e20d09489132f82686c92ab78bee67f3a127","blockSize":4194304,"blocks":["a662883751918822c162183b46b9e20d09489132f82686c92ab78bee67f3a127"]},"offset":"6045950"},"parse.js":{"size":331,"integrity":{"algorithm":"SHA256","hash":"29a69e15b6d02fe381d573f861881a89590e9d0f0f0ca740c5f85eaf0234c4ad","blockSize":4194304,"blocks":["29a69e15b6d02fe381d573f861881a89590e9d0f0f0ca740c5f85eaf0234c4ad"]},"offset":"6046078"},"patch.js":{"size":136,"integrity":{"algorithm":"SHA256","hash":"f02d3c1b059fe3d96ce124886f7eef321d381a95638fd3c4a8d5ccd8e76ffadd","blockSize":4194304,"blocks":["f02d3c1b059fe3d96ce124886f7eef321d381a95638fd3c4a8d5ccd8e76ffadd"]},"offset":"6046409"},"prerelease.js":{"size":234,"integrity":{"algorithm":"SHA256","hash":"baedbf503d5610ad041bfb56071efa48feb331ca278295c399537d35d3ffb593","blockSize":4194304,"blocks":["baedbf503d5610ad041bfb56071efa48feb331ca278295c399537d35d3ffb593"]},"offset":"6046545"},"rcompare.js":{"size":132,"integrity":{"algorithm":"SHA256","hash":"84fa5e88adf08d15c993cac8cdec6d1a65045b7e95a9c55184230a7f807f4dc0","blockSize":4194304,"blocks":["84fa5e88adf08d15c993cac8cdec6d1a65045b7e95a9c55184230a7f807f4dc0"]},"offset":"6046779"},"rsort.js":{"size":163,"integrity":{"algorithm":"SHA256","hash":"6ec659ce3b6c2b173c719286caab04409adba046c0917874ec3b5e36ddfbc7e3","blockSize":4194304,"blocks":["6ec659ce3b6c2b173c719286caab04409adba046c0917874ec3b5e36ddfbc7e3"]},"offset":"6046911"},"satisfies.js":{"size":247,"integrity":{"algorithm":"SHA256","hash":"8cf5e122b757251671ed6c9d9680904b71cd375845853f05312e608cf2cc2946","blockSize":4194304,"blocks":["8cf5e122b757251671ed6c9d9680904b71cd375845853f05312e608cf2cc2946"]},"offset":"6047074"},"sort.js":{"size":161,"integrity":{"algorithm":"SHA256","hash":"c2fe2d3ed0be8a4e9de8f02abdfd5d9c0d3bcc510d88e87af84185592882c4b8","blockSize":4194304,"blocks":["c2fe2d3ed0be8a4e9de8f02abdfd5d9c0d3bcc510d88e87af84185592882c4b8"]},"offset":"6047321"},"valid.js":{"size":176,"integrity":{"algorithm":"SHA256","hash":"0de7ea736cb7807179d46dfac09c830a9338e02b6a07db12d7040cde2def6025","blockSize":4194304,"blocks":["0de7ea736cb7807179d46dfac09c830a9338e02b6a07db12d7040cde2def6025"]},"offset":"6047482"}}},"classes":{"files":{"comparator.js":{"size":3631,"integrity":{"algorithm":"SHA256","hash":"054202956430d63d5ff4599fae09760ce465b489e4f0b5ef5ce7cc7ac21157ac","blockSize":4194304,"blocks":["054202956430d63d5ff4599fae09760ce465b489e4f0b5ef5ce7cc7ac21157ac"]},"offset":"6047658"},"index.js":{"size":143,"integrity":{"algorithm":"SHA256","hash":"3bb69280c2a788d0eb16f915bb9df4dbe812075182024c753dca2283bcea1b17","blockSize":4194304,"blocks":["3bb69280c2a788d0eb16f915bb9df4dbe812075182024c753dca2283bcea1b17"]},"offset":"6051289"},"range.js":{"size":14938,"integrity":{"algorithm":"SHA256","hash":"1e5679e4b710388c808013f1fd4eac5fe504567d0608bd15c0d962141966a280","blockSize":4194304,"blocks":["1e5679e4b710388c808013f1fd4eac5fe504567d0608bd15c0d962141966a280"]},"offset":"6051432"},"semver.js":{"size":9297,"integrity":{"algorithm":"SHA256","hash":"b10e8b120f7f313089b41914d0ced81c9c9b97d9339fdb96b690f18e04fb3a62","blockSize":4194304,"blocks":["b10e8b120f7f313089b41914d0ced81c9c9b97d9339fdb96b690f18e04fb3a62"]},"offset":"6066370"}}},"bin":{"files":{"semver.js":{"size":4739,"integrity":{"algorithm":"SHA256","hash":"ad25dc10977d5f51e783a48f8721fcc8f0f2284f1a99614d14eb1428b959ce47","blockSize":4194304,"blocks":["ad25dc10977d5f51e783a48f8721fcc8f0f2284f1a99614d14eb1428b959ce47"]},"offset":"6075667"}}}}},"shebang-command":{"files":{"index.js":{"size":387,"integrity":{"algorithm":"SHA256","hash":"d98c3aa373c72016e990a723e919af495423bc4ac1daa0736c5f45fac0418d7f","blockSize":4194304,"blocks":["d98c3aa373c72016e990a723e919af495423bc4ac1daa0736c5f45fac0418d7f"]},"offset":"6080406"},"license":{"size":1116,"integrity":{"algorithm":"SHA256","hash":"69dee148a2cc470554dfa7142e830662062394d0fe67cddd379aba90dc60d6b3","blockSize":4194304,"blocks":["69dee148a2cc470554dfa7142e830662062394d0fe67cddd379aba90dc60d6b3"]},"offset":"6080793"},"package.json":{"size":484,"integrity":{"algorithm":"SHA256","hash":"b0b0d1ec94eee472c1e8ec3a5475c7efbcffc94138ff1846650c170684edda05","blockSize":4194304,"blocks":["b0b0d1ec94eee472c1e8ec3a5475c7efbcffc94138ff1846650c170684edda05"]},"offset":"6081909"}}},"shebang-regex":{"files":{"index.js":{"size":42,"integrity":{"algorithm":"SHA256","hash":"e91e547bad596a389841fd7938bfcbd22af82f44a01f794e86878e4ff0274250","blockSize":4194304,"blocks":["e91e547bad596a389841fd7938bfcbd22af82f44a01f794e86878e4ff0274250"]},"offset":"6082393"},"license":{"size":1109,"integrity":{"algorithm":"SHA256","hash":"48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0","blockSize":4194304,"blocks":["48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0"]},"offset":"6082435"},"package.json":{"size":480,"integrity":{"algorithm":"SHA256","hash":"9fd9190cf1a53e616621c3485bb2cea834ab5e5d82dbe5d451034733f29a2ac3","blockSize":4194304,"blocks":["9fd9190cf1a53e616621c3485bb2cea834ab5e5d82dbe5d451034733f29a2ac3"]},"offset":"6083544"}}},"signal-exit":{"files":{"LICENSE.txt":{"size":748,"integrity":{"algorithm":"SHA256","hash":"e05b1eaf5b5f99b7ad75cd1f38858ff9a311780b97715ead67936d60bf96aa7e","blockSize":4194304,"blocks":["e05b1eaf5b5f99b7ad75cd1f38858ff9a311780b97715ead67936d60bf96aa7e"]},"offset":"6084024"},"index.js":{"size":5708,"integrity":{"algorithm":"SHA256","hash":"7cc6f6a1e14dec79dc23f6afd7caca1319189747144e1a33af77616c21d9e9de","blockSize":4194304,"blocks":["7cc6f6a1e14dec79dc23f6afd7caca1319189747144e1a33af77616c21d9e9de"]},"offset":"6084772"},"package.json":{"size":567,"integrity":{"algorithm":"SHA256","hash":"9f575e41b23ac725fd86ee2e23650e84d687314e592e75f695baf542cf7c8c70","blockSize":4194304,"blocks":["9f575e41b23ac725fd86ee2e23650e84d687314e592e75f695baf542cf7c8c70"]},"offset":"6090480"},"signals.js":{"size":1295,"integrity":{"algorithm":"SHA256","hash":"ae538fdae683d6fa2e14579da06df10fb7a66378cfa50971956fb68c2c86c727","blockSize":4194304,"blocks":["ae538fdae683d6fa2e14579da06df10fb7a66378cfa50971956fb68c2c86c727"]},"offset":"6091047"}}},"slash":{"files":{"index.js":{"size":289,"integrity":{"algorithm":"SHA256","hash":"15a1a6b9f2a2d6d85f5de10ad3d6eb25fe4ca0db0397bc8e2dd89361780a1925","blockSize":4194304,"blocks":["15a1a6b9f2a2d6d85f5de10ad3d6eb25fe4ca0db0397bc8e2dd89361780a1925"]},"offset":"6092342"},"license":{"size":1109,"integrity":{"algorithm":"SHA256","hash":"48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0","blockSize":4194304,"blocks":["48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0"]},"offset":"6092631"},"package.json":{"size":464,"integrity":{"algorithm":"SHA256","hash":"4b00f9d18aee553c2245671317160496bf2eaa49fb4a73792e6fd94fd81bc9fd","blockSize":4194304,"blocks":["4b00f9d18aee553c2245671317160496bf2eaa49fb4a73792e6fd94fd81bc9fd"]},"offset":"6093740"}}},"strip-final-newline":{"files":{"index.js":{"size":368,"integrity":{"algorithm":"SHA256","hash":"f338131e750ebd9dcfbf7350f22baee11b90af95ee3e484951e9a3eb7e4a63c4","blockSize":4194304,"blocks":["f338131e750ebd9dcfbf7350f22baee11b90af95ee3e484951e9a3eb7e4a63c4"]},"offset":"6094204"},"license":{"size":1109,"integrity":{"algorithm":"SHA256","hash":"48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0","blockSize":4194304,"blocks":["48da2f39e100d4085767e94966b43f4fa95ff6a0698fba57ed460914e35f94a0"]},"offset":"6094572"},"package.json":{"size":462,"integrity":{"algorithm":"SHA256","hash":"0f8603475d00b81dcf6129c9ac57a4e18dc682e9ae42f4ff042354e170460184","blockSize":4194304,"blocks":["0f8603475d00b81dcf6129c9ac57a4e18dc682e9ae42f4ff042354e170460184"]},"offset":"6095681"}}},"tiny-typed-emitter":{"files":{"LICENSE":{"size":1104,"integrity":{"algorithm":"SHA256","hash":"4b3faf884ee71eec3df920b66c98fc6618af28e824cf3a32ef3d8774048cc76d","blockSize":4194304,"blocks":["4b3faf884ee71eec3df920b66c98fc6618af28e824cf3a32ef3d8774048cc76d"]},"offset":"6096143"},"package.json":{"size":395,"integrity":{"algorithm":"SHA256","hash":"eb7f51a4a5a7f41baf54271c726724a047f60d45762d650dc00439a10c37645b","blockSize":4194304,"blocks":["eb7f51a4a5a7f41baf54271c726724a047f60d45762d650dc00439a10c37645b"]},"offset":"6097247"},"lib":{"files":{"index.js":{"size":132,"integrity":{"algorithm":"SHA256","hash":"1401fdda105ed67f365bd775397aedb2f5f9e43ace031288f0f6868f9ab041be","blockSize":4194304,"blocks":["1401fdda105ed67f365bd775397aedb2f5f9e43ace031288f0f6868f9ab041be"]},"offset":"6097642"}}}}},"to-regex-range":{"files":{"LICENSE":{"size":1091,"integrity":{"algorithm":"SHA256","hash":"e7d1fee7347ffddccc5fd03327ffdb50f8c112be0d5016d62388a92c4ae6e7a9","blockSize":4194304,"blocks":["e7d1fee7347ffddccc5fd03327ffdb50f8c112be0d5016d62388a92c4ae6e7a9"]},"offset":"6097774"},"index.js":{"size":6481,"integrity":{"algorithm":"SHA256","hash":"e32199271f92372a2deb70a3a57f7c0f7f558d04152a905eb97104867870c404","blockSize":4194304,"blocks":["e32199271f92372a2deb70a3a57f7c0f7f558d04152a905eb97104867870c404"]},"offset":"6098865"},"package.json":{"size":1148,"integrity":{"algorithm":"SHA256","hash":"ae904af36111eabcde5ed16e34aff1ad6daadb98ad8555ac189f4634ba5efd7f","blockSize":4194304,"blocks":["ae904af36111eabcde5ed16e34aff1ad6daadb98ad8555ac189f4634ba5efd7f"]},"offset":"6105346"}}},"universalify":{"files":{"LICENSE":{"size":1100,"integrity":{"algorithm":"SHA256","hash":"3fda5977c0904e226190b4e21d64340c1731e2142d6fe5f3dee0090a216b8b63","blockSize":4194304,"blocks":["3fda5977c0904e226190b4e21d64340c1731e2142d6fe5f3dee0090a216b8b63"]},"offset":"6106494"},"index.js":{"size":777,"integrity":{"algorithm":"SHA256","hash":"d3411ff41b782d91b9cf61daf5a36fa9f2a0383da19be846aa4463f00226e929","blockSize":4194304,"blocks":["d3411ff41b782d91b9cf61daf5a36fa9f2a0383da19be846aa4463f00226e929"]},"offset":"6107594"},"package.json":{"size":617,"integrity":{"algorithm":"SHA256","hash":"039ab77eb273350d1dcec82dee33f474468767728aa53cc472a4ff227b361175","blockSize":4194304,"blocks":["039ab77eb273350d1dcec82dee33f474468767728aa53cc472a4ff227b361175"]},"offset":"6108371"}}},"uuid":{"files":{"CONTRIBUTING.md":{"size":513,"integrity":{"algorithm":"SHA256","hash":"99b5cc0a56af12be90a669fdffc9f5a721236d2ede0d92e1171bb7097dd9fdd7","blockSize":4194304,"blocks":["99b5cc0a56af12be90a669fdffc9f5a721236d2ede0d92e1171bb7097dd9fdd7"]},"offset":"6108988"},"LICENSE.md":{"size":1109,"integrity":{"algorithm":"SHA256","hash":"beaa6b04fb82e41dd2ad679e19e27953afb5999b1abbb455b6564e78ebfeb332","blockSize":4194304,"blocks":["beaa6b04fb82e41dd2ad679e19e27953afb5999b1abbb455b6564e78ebfeb332"]},"offset":"6109501"},"package.json":{"size":2601,"integrity":{"algorithm":"SHA256","hash":"c33d17ad3546ea553db5df68edb1ac9a794e2e57fc99f838a9d78434ae009abc","blockSize":4194304,"blocks":["c33d17ad3546ea553db5df68edb1ac9a794e2e57fc99f838a9d78434ae009abc"]},"offset":"6110610"},"wrapper.mjs":{"size":323,"integrity":{"algorithm":"SHA256","hash":"f6835608d7c4b422bb11ab4689bcf91e166ecbbd63aa3fa2b83c448835cd80a5","blockSize":4194304,"blocks":["f6835608d7c4b422bb11ab4689bcf91e166ecbbd63aa3fa2b83c448835cd80a5"]},"offset":"6113211"},"dist":{"files":{"index.js":{"size":1765,"integrity":{"algorithm":"SHA256","hash":"069a2230d395723583c8e45a7c0fee2622af2fbd08dc35f81e4d57836122e59f","blockSize":4194304,"blocks":["069a2230d395723583c8e45a7c0fee2622af2fbd08dc35f81e4d57836122e59f"]},"offset":"6113534"},"md5-browser.js":{"size":7015,"integrity":{"algorithm":"SHA256","hash":"21a4e167b7ae498e8f3778bac8d7330929099006afca6adfe76b626e0e41d795","blockSize":4194304,"blocks":["21a4e167b7ae498e8f3778bac8d7330929099006afca6adfe76b626e0e41d795"]},"offset":"6115299"},"md5.js":{"size":550,"integrity":{"algorithm":"SHA256","hash":"6ca6276ff35f19ea462bb8c9d6d290994fa9980fc775deb741811ef947196ced","blockSize":4194304,"blocks":["6ca6276ff35f19ea462bb8c9d6d290994fa9980fc775deb741811ef947196ced"]},"offset":"6122314"},"nil.js":{"size":188,"integrity":{"algorithm":"SHA256","hash":"7395bd919bd1309bcbced245a59dfc6b077f97992a482af2537343e558795b1f","blockSize":4194304,"blocks":["7395bd919bd1309bcbced245a59dfc6b077f97992a482af2537343e558795b1f"]},"offset":"6122864"},"parse.js":{"size":1380,"integrity":{"algorithm":"SHA256","hash":"1a87ed6a6bb0a3edbe266ca55aaf1c5af8e963ee9486f74b59cfd615280b21b4","blockSize":4194304,"blocks":["1a87ed6a6bb0a3edbe266ca55aaf1c5af8e963ee9486f74b59cfd615280b21b4"]},"offset":"6123052"},"regex.js":{"size":267,"integrity":{"algorithm":"SHA256","hash":"acc4c54d987f100093097f4f156ff245394c39d1332eb2114d7e40db00bd6ddd","blockSize":4194304,"blocks":["acc4c54d987f100093097f4f156ff245394c39d1332eb2114d7e40db00bd6ddd"]},"offset":"6124432"},"rng-browser.js":{"size":1131,"integrity":{"algorithm":"SHA256","hash":"4c88edf4fd7fae3bf84bad34750a55f706c8e522a924af6c6ad22839e3718dd6","blockSize":4194304,"blocks":["4c88edf4fd7fae3bf84bad34750a55f706c8e522a924af6c6ad22839e3718dd6"]},"offset":"6124699"},"rng.js":{"size":549,"integrity":{"algorithm":"SHA256","hash":"fdde4350fc69c07bfed4178eedf6121a56264744207d9f5c8f3e5b1b913dbb06","blockSize":4194304,"blocks":["fdde4350fc69c07bfed4178eedf6121a56264744207d9f5c8f3e5b1b913dbb06"]},"offset":"6125830"},"sha1-browser.js":{"size":2609,"integrity":{"algorithm":"SHA256","hash":"32982388b377b06298f59db97c98077f06e6b4f29fe284d427195a358a72f19e","blockSize":4194304,"blocks":["32982388b377b06298f59db97c98077f06e6b4f29fe284d427195a358a72f19e"]},"offset":"6126379"},"sha1.js":{"size":553,"integrity":{"algorithm":"SHA256","hash":"a9eda407444a3f68a0a4db0373346df18f583abbde2c4bf2b3fbc6d73be2c75e","blockSize":4194304,"blocks":["a9eda407444a3f68a0a4db0373346df18f583abbde2c4bf2b3fbc6d73be2c75e"]},"offset":"6128988"},"stringify.js":{"size":1667,"integrity":{"algorithm":"SHA256","hash":"85a70b8982f37ddb434816dcda7628b0319e5a90d46ac6bc9b08d4d15d6a7650","blockSize":4194304,"blocks":["85a70b8982f37ddb434816dcda7628b0319e5a90d46ac6bc9b08d4d15d6a7650"]},"offset":"6129541"},"uuid-bin.js":{"size":2030,"integrity":{"algorithm":"SHA256","hash":"7c60635cf5a963da72e35292bcbfa7f7221b08374d69d75103fa82da9d950102","blockSize":4194304,"blocks":["7c60635cf5a963da72e35292bcbfa7f7221b08374d69d75103fa82da9d950102"]},"offset":"6131208"},"v1.js":{"size":3618,"integrity":{"algorithm":"SHA256","hash":"6dad9c2e6565ad6b478fba7b2ace95350df56a15a72920e72ac64c3a2691d665","blockSize":4194304,"blocks":["6dad9c2e6565ad6b478fba7b2ace95350df56a15a72920e72ac64c3a2691d665"]},"offset":"6133238"},"v3.js":{"size":414,"integrity":{"algorithm":"SHA256","hash":"95e0c6fa204355c6ef7dbac5720a3ef5239454ed6820674dfcc143a55ea6c459","blockSize":4194304,"blocks":["95e0c6fa204355c6ef7dbac5720a3ef5239454ed6820674dfcc143a55ea6c459"]},"offset":"6136856"},"v35.js":{"size":2008,"integrity":{"algorithm":"SHA256","hash":"ababd96e6f8b1fca9bb58f43220473f7bd59fbc81b3acb212df924813544283f","blockSize":4194304,"blocks":["ababd96e6f8b1fca9bb58f43220473f7bd59fbc81b3acb212df924813544283f"]},"offset":"6137270"},"v4.js":{"size":860,"integrity":{"algorithm":"SHA256","hash":"a9e30e8692dde9dec39a3ef716ef8e650e321813fa9d137f16d27666b9ad96ef","blockSize":4194304,"blocks":["a9e30e8692dde9dec39a3ef716ef8e650e321813fa9d137f16d27666b9ad96ef"]},"offset":"6139278"},"v5.js":{"size":417,"integrity":{"algorithm":"SHA256","hash":"d15c31975f31b9abf6a195e70a3dca0843a9257cb51b49214cf7a9f4ed30fc5a","blockSize":4194304,"blocks":["d15c31975f31b9abf6a195e70a3dca0843a9257cb51b49214cf7a9f4ed30fc5a"]},"offset":"6140138"},"validate.js":{"size":410,"integrity":{"algorithm":"SHA256","hash":"5497d9adffd73474cf379d3e1b76b28698e408124a0726d54e88282500378502","blockSize":4194304,"blocks":["5497d9adffd73474cf379d3e1b76b28698e408124a0726d54e88282500378502"]},"offset":"6140555"},"version.js":{"size":474,"integrity":{"algorithm":"SHA256","hash":"cad5f0ecd518983e310856cafd54d4d0de0b9db3c8e3bd97ec8e773ef63de6e8","blockSize":4194304,"blocks":["cad5f0ecd518983e310856cafd54d4d0de0b9db3c8e3bd97ec8e773ef63de6e8"]},"offset":"6140965"},"umd":{"files":{"uuid.min.js":{"size":8160,"integrity":{"algorithm":"SHA256","hash":"c5df6d9704bdada96df0770523058f395192ee9d1fe13880eb1d57dfe6417533","blockSize":4194304,"blocks":["c5df6d9704bdada96df0770523058f395192ee9d1fe13880eb1d57dfe6417533"]},"offset":"6141439"},"uuidNIL.min.js":{"size":280,"integrity":{"algorithm":"SHA256","hash":"18c98395b8a11f83924c22af88573b8bbe3a5cf4fe7864364e6902e49ac3d7fd","blockSize":4194304,"blocks":["18c98395b8a11f83924c22af88573b8bbe3a5cf4fe7864364e6902e49ac3d7fd"]},"offset":"6149599"},"uuidParse.min.js":{"size":883,"integrity":{"algorithm":"SHA256","hash":"555a6f1b1f49532a96c4235ab4de7c1e5fec9b8724bcf1a1247ba4eb33116af2","blockSize":4194304,"blocks":["555a6f1b1f49532a96c4235ab4de7c1e5fec9b8724bcf1a1247ba4eb33116af2"]},"offset":"6149879"},"uuidStringify.min.js":{"size":829,"integrity":{"algorithm":"SHA256","hash":"9b6db819fecb2f40d9fa5ac8c892218004b3a633a1ec29d7a873801a7eade28f","blockSize":4194304,"blocks":["9b6db819fecb2f40d9fa5ac8c892218004b3a633a1ec29d7a873801a7eade28f"]},"offset":"6150762"},"uuidValidate.min.js":{"size":420,"integrity":{"algorithm":"SHA256","hash":"45a1c7d7618c149522c8f8085675e6707381f6106ca414c294b3e6169065cf21","blockSize":4194304,"blocks":["45a1c7d7618c149522c8f8085675e6707381f6106ca414c294b3e6169065cf21"]},"offset":"6151591"},"uuidVersion.min.js":{"size":506,"integrity":{"algorithm":"SHA256","hash":"c0a99b310a43528b5e4f59c87dcc489732bf8c4dd3a367c34cf882a88a3cecca","blockSize":4194304,"blocks":["c0a99b310a43528b5e4f59c87dcc489732bf8c4dd3a367c34cf882a88a3cecca"]},"offset":"6152011"},"uuidv1.min.js":{"size":2020,"integrity":{"algorithm":"SHA256","hash":"9963a427c7b05e1ea3c923cfed992cfea294e980e42d754ba593cec66d285a07","blockSize":4194304,"blocks":["9963a427c7b05e1ea3c923cfed992cfea294e980e42d754ba593cec66d285a07"]},"offset":"6152517"},"uuidv3.min.js":{"size":5145,"integrity":{"algorithm":"SHA256","hash":"2d31a5a7ef824371df6f91ad677cd137ca9b51a529be40873f9b60009c550932","blockSize":4194304,"blocks":["2d31a5a7ef824371df6f91ad677cd137ca9b51a529be40873f9b60009c550932"]},"offset":"6154537"},"uuidv4.min.js":{"size":1366,"integrity":{"algorithm":"SHA256","hash":"4bbb806e743e21bc9f97b62fc0564e0889b7f31ee9d48c3f2b85d4e00fe629cc","blockSize":4194304,"blocks":["4bbb806e743e21bc9f97b62fc0564e0889b7f31ee9d48c3f2b85d4e00fe629cc"]},"offset":"6159682"},"uuidv5.min.js":{"size":3267,"integrity":{"algorithm":"SHA256","hash":"1a444d14f3a6f8952bfc827be5c52dc7367c99e5bf30a5e5102f0b4ad420df76","blockSize":4194304,"blocks":["1a444d14f3a6f8952bfc827be5c52dc7367c99e5bf30a5e5102f0b4ad420df76"]},"offset":"6161048"}}},"esm-node":{"files":{"index.js":{"size":412,"integrity":{"algorithm":"SHA256","hash":"3efb8df8c64379c5acbaf0b70ce1a1906375f4b53901b7e90a26863ead50fc30","blockSize":4194304,"blocks":["3efb8df8c64379c5acbaf0b70ce1a1906375f4b53901b7e90a26863ead50fc30"]},"offset":"6164315"},"md5.js":{"size":281,"integrity":{"algorithm":"SHA256","hash":"2313329bf3ada8cd17046afeefa761bd7daa3821e140fc55d8c2b94ee7760ed4","blockSize":4194304,"blocks":["2313329bf3ada8cd17046afeefa761bd7daa3821e140fc55d8c2b94ee7760ed4"]},"offset":"6164727"},"nil.js":{"size":54,"integrity":{"algorithm":"SHA256","hash":"40036d4ffe78154827eedb9c1b3f59f660722907389725842bbc178ba28d2241","blockSize":4194304,"blocks":["40036d4ffe78154827eedb9c1b3f59f660722907389725842bbc178ba28d2241"]},"offset":"6165008"},"parse.js":{"size":1106,"integrity":{"algorithm":"SHA256","hash":"2743e5b696fb15df389cf3b1a242e56780f7941bbefc23465529d30e851b80f5","blockSize":4194304,"blocks":["2743e5b696fb15df389cf3b1a242e56780f7941bbefc23465529d30e851b80f5"]},"offset":"6165062"},"regex.js":{"size":133,"integrity":{"algorithm":"SHA256","hash":"9a546763c108d7eeb7283ce26c7a6845a44bd67132005eb32fd1feeca49d1b3f","blockSize":4194304,"blocks":["9a546763c108d7eeb7283ce26c7a6845a44bd67132005eb32fd1feeca49d1b3f"]},"offset":"6166168"},"rng.js":{"size":323,"integrity":{"algorithm":"SHA256","hash":"ff667aff9367a48cc713d36764cea05bd30e8ba05392430571c54734fc9fde03","blockSize":4194304,"blocks":["ff667aff9367a48cc713d36764cea05bd30e8ba05392430571c54734fc9fde03"]},"offset":"6166301"},"sha1.js":{"size":284,"integrity":{"algorithm":"SHA256","hash":"6094b056716c8a37b9f2da365d6c8a17f754543d966411d01dfebd762c94547e","blockSize":4194304,"blocks":["6094b056716c8a37b9f2da365d6c8a17f754543d966411d01dfebd762c94547e"]},"offset":"6166624"},"stringify.js":{"size":1393,"integrity":{"algorithm":"SHA256","hash":"224279f45e9b30fca5de4fcf8620aa00ac3c8bef89fc073bfb36b83272bd1556","blockSize":4194304,"blocks":["224279f45e9b30fca5de4fcf8620aa00ac3c8bef89fc073bfb36b83272bd1556"]},"offset":"6166908"},"v1.js":{"size":3306,"integrity":{"algorithm":"SHA256","hash":"4cbdb6e889c57896cc8dd35f299aa05a00ff7a43b875a187f87c95e7bb2c3f0f","blockSize":4194304,"blocks":["4cbdb6e889c57896cc8dd35f299aa05a00ff7a43b875a187f87c95e7bb2c3f0f"]},"offset":"6168301"},"v3.js":{"size":107,"integrity":{"algorithm":"SHA256","hash":"65b963f24922d433fdc592aa4e2764d10fad59351015bbe5fce0830fe389794a","blockSize":4194304,"blocks":["65b963f24922d433fdc592aa4e2764d10fad59351015bbe5fce0830fe389794a"]},"offset":"6171607"},"v35.js":{"size":1663,"integrity":{"algorithm":"SHA256","hash":"56a358587ded91ef272d54a4937e6f59193cd11b51710503859083feb8d6f20f","blockSize":4194304,"blocks":["56a358587ded91ef272d54a4937e6f59193cd11b51710503859083feb8d6f20f"]},"offset":"6171714"},"v4.js":{"size":546,"integrity":{"algorithm":"SHA256","hash":"44d2fedb301801c7c60e45934eaa13435614e3d65aedf8759775890de75bed69","blockSize":4194304,"blocks":["44d2fedb301801c7c60e45934eaa13435614e3d65aedf8759775890de75bed69"]},"offset":"6173377"},"v5.js":{"size":110,"integrity":{"algorithm":"SHA256","hash":"e9e8d82440c23fc3de56f8acd5a15b1ca2daad6bf6d2e7c4a4b39d04384206d3","blockSize":4194304,"blocks":["e9e8d82440c23fc3de56f8acd5a15b1ca2daad6bf6d2e7c4a4b39d04384206d3"]},"offset":"6173923"},"validate.js":{"size":141,"integrity":{"algorithm":"SHA256","hash":"4a782f41298704c0029c245203430b3e4511365bf05a3addacdbae59d9c664fa","blockSize":4194304,"blocks":["4a782f41298704c0029c245203430b3e4511365bf05a3addacdbae59d9c664fa"]},"offset":"6174033"},"version.js":{"size":200,"integrity":{"algorithm":"SHA256","hash":"84d1c2f759c39dbf8b26a359b0d68ba9fcc68bf8c3612b8b1bb0df31dfb2e693","blockSize":4194304,"blocks":["84d1c2f759c39dbf8b26a359b0d68ba9fcc68bf8c3612b8b1bb0df31dfb2e693"]},"offset":"6174174"}}},"esm-browser":{"files":{"index.js":{"size":412,"integrity":{"algorithm":"SHA256","hash":"3efb8df8c64379c5acbaf0b70ce1a1906375f4b53901b7e90a26863ead50fc30","blockSize":4194304,"blocks":["3efb8df8c64379c5acbaf0b70ce1a1906375f4b53901b7e90a26863ead50fc30"]},"offset":"6174374"},"md5.js":{"size":6852,"integrity":{"algorithm":"SHA256","hash":"705eb0feeda58a88a5b887cf580e38bb9979dec642dd663b63c9dc485e956728","blockSize":4194304,"blocks":["705eb0feeda58a88a5b887cf580e38bb9979dec642dd663b63c9dc485e956728"]},"offset":"6174786"},"nil.js":{"size":54,"integrity":{"algorithm":"SHA256","hash":"40036d4ffe78154827eedb9c1b3f59f660722907389725842bbc178ba28d2241","blockSize":4194304,"blocks":["40036d4ffe78154827eedb9c1b3f59f660722907389725842bbc178ba28d2241"]},"offset":"6181638"},"parse.js":{"size":1104,"integrity":{"algorithm":"SHA256","hash":"1efd0e1dd5d7d205a3405f5aee39029ea60bece8a893b2bf742a16c6a51246a6","blockSize":4194304,"blocks":["1efd0e1dd5d7d205a3405f5aee39029ea60bece8a893b2bf742a16c6a51246a6"]},"offset":"6181692"},"regex.js":{"size":133,"integrity":{"algorithm":"SHA256","hash":"9a546763c108d7eeb7283ce26c7a6845a44bd67132005eb32fd1feeca49d1b3f","blockSize":4194304,"blocks":["9a546763c108d7eeb7283ce26c7a6845a44bd67132005eb32fd1feeca49d1b3f"]},"offset":"6182796"},"rng.js":{"size":1040,"integrity":{"algorithm":"SHA256","hash":"0e1abdc73fa79ff64006ec6675b06a193f55eac039595cc3867e6567e46f2dd7","blockSize":4194304,"blocks":["0e1abdc73fa79ff64006ec6675b06a193f55eac039595cc3867e6567e46f2dd7"]},"offset":"6182929"},"sha1.js":{"size":2488,"integrity":{"algorithm":"SHA256","hash":"0b777c8796a7e0954a47bc5b7d612f89d7cd9218106881a9b4931f8f882fd056","blockSize":4194304,"blocks":["0b777c8796a7e0954a47bc5b7d612f89d7cd9218106881a9b4931f8f882fd056"]},"offset":"6183969"},"stringify.js":{"size":1463,"integrity":{"algorithm":"SHA256","hash":"b3e05d40408725c571660f7f1bfdb1b20fde769c5142f23273a95815b2ca5d01","blockSize":4194304,"blocks":["b3e05d40408725c571660f7f1bfdb1b20fde769c5142f23273a95815b2ca5d01"]},"offset":"6186457"},"v1.js":{"size":3296,"integrity":{"algorithm":"SHA256","hash":"746184938af3d1e32fb432711c135d95305f839d94a5e90dd23438435a8342b6","blockSize":4194304,"blocks":["746184938af3d1e32fb432711c135d95305f839d94a5e90dd23438435a8342b6"]},"offset":"6187920"},"v3.js":{"size":105,"integrity":{"algorithm":"SHA256","hash":"337d2b9ef80229c44c240e4218aa324b129d792701432061946ee4154e30080a","blockSize":4194304,"blocks":["337d2b9ef80229c44c240e4218aa324b129d792701432061946ee4154e30080a"]},"offset":"6191216"},"v35.js":{"size":1657,"integrity":{"algorithm":"SHA256","hash":"c418ede8cd4d61f12ae553adac55b1afa2cbd8c8659c31dd657c1decbb36314b","blockSize":4194304,"blocks":["c418ede8cd4d61f12ae553adac55b1afa2cbd8c8659c31dd657c1decbb36314b"]},"offset":"6191321"},"v4.js":{"size":544,"integrity":{"algorithm":"SHA256","hash":"971f818a59ef77ee2c213dfea32dc4494823f9b8bd45be19fd81cf49b09f44e5","blockSize":4194304,"blocks":["971f818a59ef77ee2c213dfea32dc4494823f9b8bd45be19fd81cf49b09f44e5"]},"offset":"6192978"},"v5.js":{"size":108,"integrity":{"algorithm":"SHA256","hash":"07e6d11989b44edbe92ccb697febb65225ebad32fb2f9c91c5b571a6f5a3c4df","blockSize":4194304,"blocks":["07e6d11989b44edbe92ccb697febb65225ebad32fb2f9c91c5b571a6f5a3c4df"]},"offset":"6193522"},"validate.js":{"size":141,"integrity":{"algorithm":"SHA256","hash":"4a782f41298704c0029c245203430b3e4511365bf05a3addacdbae59d9c664fa","blockSize":4194304,"blocks":["4a782f41298704c0029c245203430b3e4511365bf05a3addacdbae59d9c664fa"]},"offset":"6193630"},"version.js":{"size":200,"integrity":{"algorithm":"SHA256","hash":"84d1c2f759c39dbf8b26a359b0d68ba9fcc68bf8c3612b8b1bb0df31dfb2e693","blockSize":4194304,"blocks":["84d1c2f759c39dbf8b26a359b0d68ba9fcc68bf8c3612b8b1bb0df31dfb2e693"]},"offset":"6193771"}}},"bin":{"files":{"uuid":{"size":44,"integrity":{"algorithm":"SHA256","hash":"30b5422b6c95ccdc402effd7d3354ca6a6bce621cf21d0379749ddf1f96c1ad7","blockSize":4194304,"blocks":["30b5422b6c95ccdc402effd7d3354ca6a6bce621cf21d0379749ddf1f96c1ad7"]},"offset":"6193971"}}}}}}},"which":{"files":{"LICENSE":{"size":765,"integrity":{"algorithm":"SHA256","hash":"4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b","blockSize":4194304,"blocks":["4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b"]},"offset":"6194015"},"package.json":{"size":681,"integrity":{"algorithm":"SHA256","hash":"2e6138fb27d6ede860f361a0906d97e273f1f9f8efece31ed6416773ba9794e5","blockSize":4194304,"blocks":["2e6138fb27d6ede860f361a0906d97e273f1f9f8efece31ed6416773ba9794e5"]},"offset":"6194780"},"which.js":{"size":3163,"integrity":{"algorithm":"SHA256","hash":"76845e1fe7851267fb7ee72b18f2d916996d330150e31e48f4657a79e9b46b5b","blockSize":4194304,"blocks":["76845e1fe7851267fb7ee72b18f2d916996d330150e31e48f4657a79e9b46b5b"]},"offset":"6195461"},"bin":{"files":{"node-which":{"size":985,"integrity":{"algorithm":"SHA256","hash":"055f0ac4eed1a1591d033d59462972968bf3483b4cc07e163589569c0fb999f0","blockSize":4194304,"blocks":["055f0ac4eed1a1591d033d59462972968bf3483b4cc07e163589569c0fb999f0"]},"offset":"6198624"}}}}},"wrappy":{"files":{"LICENSE":{"size":765,"integrity":{"algorithm":"SHA256","hash":"4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b","blockSize":4194304,"blocks":["4ec3d4c66cd87f5c8d8ad911b10f99bf27cb00cdfcff82621956e379186b016b"]},"offset":"6199609"},"package.json":{"size":479,"integrity":{"algorithm":"SHA256","hash":"21738eaf963f20de6b530101eb1880d537b9a33025eec7dd9f9168dc4ccfef0e","blockSize":4194304,"blocks":["21738eaf963f20de6b530101eb1880d537b9a33025eec7dd9f9168dc4ccfef0e"]},"offset":"6200374"},"wrappy.js":{"size":905,"integrity":{"algorithm":"SHA256","hash":"153453c4d84a3c2f13589c37055a7daff61d48475dcce554f7eedad15fc7b3e5","blockSize":4194304,"blocks":["153453c4d84a3c2f13589c37055a7daff61d48475dcce554f7eedad15fc7b3e5"]},"offset":"6200853"}}}}}}}  // Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Logging information for Android "checkin" events (automatic, periodic
// requests made by Android devices to the server).

syntax = "proto2";

option optimize_for = LITE_RUNTIME;
package checkin_proto;

// Build characteristics unique to the Chrome browser, and Chrome OS
message ChromeBuildProto {
  enum Platform {
    PLATFORM_WIN = 1;
    PLATFORM_MAC = 2;
    PLATFORM_LINUX = 3;
    PLATFORM_CROS = 4;
    PLATFORM_IOS = 5;
    // Just a placeholder. Likely don't need it due to the presence of the
    // Android GCM on phone/tablet devices.
    PLATFORM_ANDROID = 6;
  }

  enum Channel {
    CHANNEL_STABLE = 1;
    CHANNEL_BETA = 2;
    CHANNEL_DEV = 3;
    CHANNEL_CANARY = 4;
    CHANNEL_UNKNOWN = 5;  // for tip of tree or custom builds
  }

  // The platform of the device.
  optional Platform platform = 1;

  // The Chrome instance's version.
  optional string chrome_version = 2;

  // The Channel (build type) of Chrome.
  optional Channel channel = 3;
}

// Information sent by the device in a "checkin" request.
message AndroidCheckinProto {
  // Miliseconds since the Unix epoch of the device's last successful checkin.
  optional int64 last_checkin_msec = 2;

  // The current MCC+MNC of the mobile device's current cell.
  optional string cell_operator = 6;

  // The MCC+MNC of the SIM card (different from operator if the
  // device is roaming, for instance).
  optional string sim_operator = 7;

  // The device's current roaming state (reported starting in eclair builds).
  // Currently one of "{,not}mobile-{,not}roaming", if it is present at all.
  optional string roaming = 8;

  // For devices supporting multiple user profiles (which may be
  // supported starting in jellybean), the ordinal number of the
  // profile that is checking in.  This is 0 for the primary profile
  // (which can't be changed without wiping the device), and 1,2,3,...
  // for additional profiles (which can be added and deleted freely).
  optional int32 user_number = 9;

  // Class of device.  Indicates the type of build proto
  // (IosBuildProto/ChromeBuildProto/AndroidBuildProto)
  // That is included in this proto
  optional DeviceType type = 12 [default = DEVICE_ANDROID_OS];

  // For devices running MCS on Chrome, build-specific characteristics
  // of the browser.  There are no hardware aspects (except for ChromeOS).
  // This will only be populated for Chrome builds/ChromeOS devices
  optional checkin_proto.ChromeBuildProto chrome_build = 13;

  // Note: Some of the Android specific optional fields were skipped to limit
  // the protobuf definition.
  // Next 14
}

// enum values correspond to the type of device.
// Used in the AndroidCheckinProto and Device proto.
enum DeviceType {
  // Android Device
  DEVICE_ANDROID_OS = 1;

  // Apple IOS device
  DEVICE_IOS_OS = 2;

  // Chrome browser - Not Chrome OS.  No hardware records.
  DEVICE_CHROME_BROWSER = 3;

  // Chrome OS
  DEVICE_CHROME_OS = 4;
}
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Request and reply to the "checkin server" devices poll every few hours.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package checkin_proto;

import "android_checkin.proto";

// A concrete name/value pair sent to the device's Gservices database.
message GservicesSetting {
  required bytes name = 1;
  required bytes value = 2;
}

// Devices send this every few hours to tell us how they're doing.
message AndroidCheckinRequest {
  // IMEI (used by GSM phones) is sent and stored as 15 decimal
  // digits; the 15th is a check digit.
  optional string imei = 1;       // IMEI, reported but not logged.

  // MEID (used by CDMA phones) is sent and stored as 14 hexadecimal
  // digits (no check digit).
  optional string meid = 10;      // MEID, reported but not logged.

  // MAC address (used by non-phone devices).  12 hexadecimal digits;
  // no separators (eg "0016E6513AC2", not "00:16:E6:51:3A:C2").
  repeated string mac_addr = 9;   // MAC address, reported but not logged.

  // An array parallel to mac_addr, describing the type of interface.
  // Currently accepted values: "wifi", "ethernet", "bluetooth".  If
  // not present, "wifi" is assumed.
  repeated string mac_addr_type = 19;

  // Serial number (a manufacturer-defined unique hardware
  // identifier).  Alphanumeric, case-insensitive.
  optional string serial_number = 16;

  // Older CDMA networks use an ESN (8 hex digits) instead of an MEID.
  optional string esn = 17;       // ESN, reported but not logged

  optional int64 id = 2;          // Android device ID, not logged
  optional int64 logging_id = 7;  // Pseudonymous logging ID for Sawmill
  optional string digest = 3;     // Digest of device provisioning, not logged.
  optional string locale = 6;     // Current locale in standard (xx_XX) format
  required AndroidCheckinProto checkin = 4;

  // DEPRECATED, see AndroidCheckinProto.requested_group
  optional string desired_build = 5;

  // Blob of data from the Market app to be passed to Market API server
  optional string market_checkin = 8;

  // SID cookies of any google accounts stored on the phone.  Not logged.
  repeated string account_cookie = 11;

  // Time zone.  Not currently logged.
  optional string time_zone = 12;

  // Security token used to validate the checkin request.
  // Required for android IDs issued to Froyo+ devices, not for legacy IDs.
  optional fixed64 security_token = 13;

  // Version of checkin protocol.
  //
  // There are currently two versions:
  //
  // - version field missing: android IDs are assigned based on
  //   hardware identifiers.  unsecured in the sense that you can
  //   "unregister" someone's phone by sending a registration request
  //   with their IMEI/MEID/MAC.
  //
  // - version=2: android IDs are assigned randomly.  The device is
  //   sent a security token that must be included in all future
  //   checkins for that android id.
  //
  // - version=3: same as version 2, but the 'fragment' field is
  //   provided, and the device understands incremental updates to the
  //   gservices table (ie, only returning the keys whose values have
  //   changed.)
  //
  // (version=1 was skipped to avoid confusion with the "missing"
  // version field that is effectively version 1.)
  optional int32 version = 14;

  // OTA certs accepted by device (base-64 SHA-1 of cert files).  Not
  // logged.
  repeated string ota_cert = 15;

  // Honeycomb and newer devices send configuration data with their checkin.
  // optional DeviceConfigurationProto device_configuration = 18;

  // A single CheckinTask on the device may lead to multiple checkin
  // requests if there is too much log data to upload in a single
  // request.  For version 3 and up, this field will be filled in with
  // the number of the request, starting with 0.
  optional int32 fragment = 20;

  // For devices supporting multiple users, the name of the current
  // profile (they all check in independently, just as if they were
  // multiple physical devices).  This may not be set, even if the
  // device is using multiuser.  (checkin.user_number should be set to
  // the ordinal of the user.)
  optional string user_name = 21;

  // For devices supporting multiple user profiles, the serial number
  // for the user checking in.  Not logged.  May not be set, even if
  // the device supportes multiuser.  checkin.user_number is the
  // ordinal of the user (0, 1, 2, ...), which may be reused if users
  // are deleted and re-created.  user_serial_number is never reused
  // (unless the device is wiped).
  optional int32 user_serial_number = 22;

  // NEXT TAG: 23
}

// The response to the device.
message AndroidCheckinResponse {
  required bool stats_ok = 1;    // Whether statistics were recorded properly.
  optional int64 time_msec = 3;  // Time of day from server (Java epoch).
  // repeated AndroidIntentProto intent = 2;

  // Provisioning is sent if the request included an obsolete digest.
  //
  // For version <= 2, 'digest' contains the digest that should be
  // sent back to the server on the next checkin, and 'setting'
  // contains the entire gservices table (which replaces the entire
  // current table on the device).
  //
  // for version >= 3, 'digest' will be absent.  If 'settings_diff'
  // is false, then 'setting' contains the entire table, as in version
  // 2.  If 'settings_diff' is true, then 'delete_setting' contains
  // the keys to delete, and 'setting' contains only keys to be added
  // or for which the value has changed.  All other keys in the
  // current table should be left untouched.  If 'settings_diff' is
  // absent, don't touch the existing gservices table.
  //
  optional string digest = 4;
  optional bool settings_diff = 9;
  repeated string delete_setting = 10;
  repeated GservicesSetting setting = 5;

  optional bool market_ok = 6;   // If Market got the market_checkin data OK.

  optional fixed64 android_id = 7;      // From the request, or newly assigned
  optional fixed64 security_token = 8;  // The associated security token

  optional string version_info = 11;
  // NEXT TAG: 12
}
<!doctype html>
<html lang="en">
  <body>
    <style>
      body {
        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
          Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
        font-size: 13px;
        padding: 0;
        margin: 0;
        -webkit-app-region: no-drag;
        user-select: none;
      }
      ::-webkit-scrollbar {
        display: none;
      }
      .container {
        margin: 6px;
        background: #fff;
        box-shadow: rgba(0, 0, 0, 0.2) 0 0 6px;
        border: 1px rgba(0, 0, 0, 0.2) solid;
        padding: 12px;
        border-radius: 6px;
        display: flex;
        justify-content: space-between;
        vertical-align: middle;
        transition: 125ms transform;
      }

      .container.top {
        transform: translate(0, -60px);
      }

      .container.bottom {
        transform: translate(0, 60px);
      }

      @media (prefers-color-scheme: dark) {
        .container {
          background: #1e1e1e;
          box-shadow: rgba(0, 0, 0, 0.4) 0 0 6px;
          border: 1px rgba(0, 0, 0, 0.4) solid;
        }
      }
      .container.active {
        transform: translate(0, 0);
      }
      button {
        background-color: transparent;
        border: 0;
        padding: 0;
        border-radius: 100%;
        height: 22px;
        width: 22px;
        line-height: 22px;
        text-align: center;
      }
      button[disabled] {
        opacity: 0.3;
        background-color: transparent !important;
      }
      button:hover {
        background-color: rgba(0, 0, 0, 0.1);
      }
      button:active {
        background-color: rgba(0, 0, 0, 0.2);
      }
      button:focus {
        outline: 0;
      }
      button svg {
        vertical-align: -5px;
      }
      button#stop svg {
        vertical-align: -4px;
      }
      button svg {
        fill: rgba(0, 0, 0, 0.7);
      }
      @media (prefers-color-scheme: dark) {
        button svg {
          fill: rgba(255, 255, 255, 0.7);
        }
      }
      input[type='text'] {
        border: 0;
        height: 22px;
        background-color: transparent;
      }
      @media (prefers-color-scheme: dark) {
        input[type='text'] {
          color: rgba(255, 255, 255, 0.9);
        }
      }
      input[type='text']:focus {
        outline: 0;
      }
      .count {
        padding: 0 10px;
        vertical-align: middle;
        border-right: 1px rgba(0, 0, 0, 0.2) solid;
        line-height: 22px;
        color: rgba(0, 0, 0, 0.7);
        width: 45px;
        overflow: hidden;
        text-align: center;
      }
      @media (prefers-color-scheme: dark) {
        .count {
          border-right: 1px rgba(255, 255, 255, 0.2) solid;
          color: rgba(255, 255, 255, 0.7);
        }
      }
      .buttons {
        padding: 0 0 0 10px;
      }
    </style>
    <div class="container">
      <div class="input">
        <input type="text" id="searchBox" autofocus />
      </div>
      <div class="count">
        <span id="activeMatchOrdinal">0</span>/<span id="matches">0</span>
      </div>
      <div class="buttons">
        <button id="prev" disabled title="Previous">
          <svg height="18px" viewBox="0 0 24 24" width="18px">
            <path d="M0 0h24v24H0V0z" fill="none" />
            <path d="M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14l-6-6z" />
          </svg>
        </button>
        <button id="next" disabled title="Next">
          <svg height="18px" viewBox="0 0 24 24" width="18px">
            <path d="M24 24H0V0h24v24z" fill="none" />
            <path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6-1.41-1.41z" />
          </svg>
        </button>
        <button id="stop" title="Close find bar">
          <svg height="16px" viewBox="0 0 24 24" width="16px">
            <path d="M0 0h24v24H0V0z" fill="none" />
            <path
              d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"
            />
          </svg>
        </button>
      </div>
    </div>
    <script>
      const container = document.querySelector('.container');
      const search = document.getElementById('searchBox');
      const stopBtn = document.getElementById('stop');
      const prevBtn = document.getElementById('prev');
      const nextBtn = document.getElementById('next');

      const placement = new URLSearchParams(location.search).get('placement');
      if (placement) container.classList.add(placement);

      let findNext = false;

      function updateFindMetadata(activeMatchOrdinal, matches) {
        document.getElementById('activeMatchOrdinal').innerText =
          activeMatchOrdinal;
        document.getElementById('matches').innerText = matches;
        prevBtn.disabled = matches === 0;
        nextBtn.disabled = matches === 0;
        findNext = activeMatchOrdinal === 1;
      }

      function close() {
        container.classList.remove('active');
        window.todesktop.contents.findInPage.stop();
        setTimeout(() => {
          window.todesktop.views.remove();
        }, 100);
      }

      function visibilityChange() {
        if (document.hidden === false) {
          container.classList.add('active');
          search.focus();
          search.select();
          findNext = true;
        }
      }
      visibilityChange();
      document.addEventListener('visibilitychange', visibilityChange, false);

      search.addEventListener('input', ({ target }) => {
        const { value } = target;
        if (value && value.length) {
          window.todesktop.contents.findInPage.find(value, {
            findNext: true,
          });
        } else {
          window.todesktop.contents.findInPage.stop();
          updateFindMetadata(0, 0);
        }
      });

      search.addEventListener('keydown', (e) => {
        const isMac = /Mac OS/.test(navigator.userAgent);
        const modifierKey = isMac ? e.metaKey : e.ctrlKey;
        if (e.key === 'Enter') {
          window.todesktop.contents.findInPage.find(search.value, {
            forward: !e.shiftKey,
            findNext,
          });
        } else if (e.key.toLowerCase() === 'g' && modifierKey) {
          window.todesktop.contents.findInPage.find(search.value, {
            forward: !e.shiftKey,
            findNext,
          });
        } else if (e.key === 'Escape') {
          close();
        }
      });

      search.addEventListener('blur', (e) => {
        search.focus();
      });

      stopBtn.addEventListener('click', close);

      prevBtn.addEventListener('click', () => {
        window.todesktop.contents.findInPage.find(search.value, {
          forward: false,
          findNext,
        });
      });

      nextBtn.addEventListener('click', () => {
        window.todesktop.contents.findInPage.find(search.value, {
          forward: true,
          findNext,
        });
      });

      window.todesktop.on('find-in-page-close', close);
      window.todesktop.on(
        'found-in-page',
        (e, { activeMatchOrdinal, matches }) => {
          updateFindMetadata(activeMatchOrdinal, matches);
        }
      );

      window.addEventListener('keydown', (e) => {
        // disable zooming
        if (
          (e.code == 'Minus' || e.code == 'Equal') &&
          (e.ctrlKey || e.metaKey)
        ) {
          e.preventDefault();
        }
      });
    </script>
  </body>
</html>
"use strict";var Obt=Object.create;var aD=Object.defineProperty;var Dbt=Object.getOwnPropertyDescriptor;var Cbt=Object.getOwnPropertyNames;var Pbt=Object.getPrototypeOf,Ibt=Object.prototype.hasOwnProperty;var ns=(e,t)=>()=>(e&&(t=e(e=0)),t);var b=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),g2=(e,t)=>{for(var r in t)aD(e,r,{get:t[r],enumerable:!0})},Ibe=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Cbt(t))!Ibt.call(e,i)&&i!==r&&aD(e,i,{get:()=>t[i],enumerable:!(n=Dbt(t,i))||n.enumerable});return e};var dt=(e,t,r)=>(r=e!=null?Obt(Pbt(e)):{},Ibe(t||!e||!e.__esModule?aD(r,"default",{value:e,enumerable:!0}):r,e)),_n=e=>Ibe(aD({},"__esModule",{value:!0}),e);var hc=b(cY=>{"use strict";cY.fromCallback=function(e){return Object.defineProperty(function(...t){if(typeof t[t.length-1]=="function")e.apply(this,t);else return new Promise((r,n)=>{t.push((i,a)=>i!=null?n(i):r(a)),e.apply(this,t)})},"name",{value:e.name})};cY.fromPromise=function(e){return Object.defineProperty(function(...t){let r=t[t.length-1];if(typeof r!="function")return e.apply(this,t);t.pop(),e.apply(this,t).then(n=>r(null,n),r)},"name",{value:e.name})}});var Fbe=b((BFr,Rbe)=>{var y0=require("constants"),Rbt=process.cwd,sD=null,Fbt=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return sD||(sD=Rbt.call(process)),sD};try{process.cwd()}catch{}typeof process.chdir=="function"&&(lY=process.chdir,process.chdir=function(e){sD=null,lY.call(process,e)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,lY));var lY;Rbe.exports=jbt;function jbt(e){y0.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&t(e),e.lutimes||r(e),e.chown=a(e.chown),e.fchown=a(e.fchown),e.lchown=a(e.lchown),e.chmod=n(e.chmod),e.fchmod=n(e.fchmod),e.lchmod=n(e.lchmod),e.chownSync=s(e.chownSync),e.fchownSync=s(e.fchownSync),e.lchownSync=s(e.lchownSync),e.chmodSync=i(e.chmodSync),e.fchmodSync=i(e.fchmodSync),e.lchmodSync=i(e.lchmodSync),e.stat=o(e.stat),e.fstat=o(e.fstat),e.lstat=o(e.lstat),e.statSync=c(e.statSync),e.fstatSync=c(e.fstatSync),e.lstatSync=c(e.lstatSync),e.chmod&&!e.lchmod&&(e.lchmod=function(f,d,h){h&&process.nextTick(h)},e.lchmodSync=function(){}),e.chown&&!e.lchown&&(e.lchown=function(f,d,h,g){g&&process.nextTick(g)},e.lchownSync=function(){}),Fbt==="win32"&&(e.rename=typeof e.rename!="function"?e.rename:function(f){function d(h,g,v){var y=Date.now(),_=0;f(h,g,function x(A){if(A&&(A.code==="EACCES"||A.code==="EPERM"||A.code==="EBUSY")&&Date.now()-y<6e4){setTimeout(function(){e.stat(g,function(D,j){D&&D.code==="ENOENT"?f(h,g,x):v(A)})},_),_<100&&(_+=10);return}v&&v(A)})}return Object.setPrototypeOf&&Object.setPrototypeOf(d,f),d}(e.rename)),e.read=typeof e.read!="function"?e.read:function(f){function d(h,g,v,y,_,x){var A;if(x&&typeof x=="function"){var D=0;A=function(j,H,F){if(j&&j.code==="EAGAIN"&&D<10)return D++,f.call(e,h,g,v,y,_,A);x.apply(this,arguments)}}return f.call(e,h,g,v,y,_,A)}return Object.setPrototypeOf&&Object.setPrototypeOf(d,f),d}(e.read),e.readSync=typeof e.readSync!="function"?e.readSync:function(f){return function(d,h,g,v,y){for(var _=0;;)try{return f.call(e,d,h,g,v,y)}catch(x){if(x.code==="EAGAIN"&&_<10){_++;continue}throw x}}}(e.readSync);function t(f){f.lchmod=function(d,h,g){f.open(d,y0.O_WRONLY|y0.O_SYMLINK,h,function(v,y){if(v){g&&g(v);return}f.fchmod(y,h,function(_){f.close(y,function(x){g&&g(_||x)})})})},f.lchmodSync=function(d,h){var g=f.openSync(d,y0.O_WRONLY|y0.O_SYMLINK,h),v=!0,y;try{y=f.fchmodSync(g,h),v=!1}finally{if(v)try{f.closeSync(g)}catch{}else f.closeSync(g)}return y}}function r(f){y0.hasOwnProperty("O_SYMLINK")&&f.futimes?(f.lutimes=function(d,h,g,v){f.open(d,y0.O_SYMLINK,function(y,_){if(y){v&&v(y);return}f.futimes(_,h,g,function(x){f.close(_,function(A){v&&v(x||A)})})})},f.lutimesSync=function(d,h,g){var v=f.openSync(d,y0.O_SYMLINK),y,_=!0;try{y=f.futimesSync(v,h,g),_=!1}finally{if(_)try{f.closeSync(v)}catch{}else f.closeSync(v)}return y}):f.futimes&&(f.lutimes=function(d,h,g,v){v&&process.nextTick(v)},f.lutimesSync=function(){})}function n(f){return f&&function(d,h,g){return f.call(e,d,h,function(v){p(v)&&(v=null),g&&g.apply(this,arguments)})}}function i(f){return f&&function(d,h){try{return f.call(e,d,h)}catch(g){if(!p(g))throw g}}}function a(f){return f&&function(d,h,g,v){return f.call(e,d,h,g,function(y){p(y)&&(y=null),v&&v.apply(this,arguments)})}}function s(f){return f&&function(d,h,g){try{return f.call(e,d,h,g)}catch(v){if(!p(v))throw v}}}function o(f){return f&&function(d,h,g){typeof h=="function"&&(g=h,h=null);function v(y,_){_&&(_.uid<0&&(_.uid+=4294967296),_.gid<0&&(_.gid+=4294967296)),g&&g.apply(this,arguments)}return h?f.call(e,d,h,v):f.call(e,d,v)}}function c(f){return f&&function(d,h){var g=h?f.call(e,d,h):f.call(e,d);return g&&(g.uid<0&&(g.uid+=4294967296),g.gid<0&&(g.gid+=4294967296)),g}}function p(f){if(!f||f.code==="ENOSYS")return!0;var d=!process.getuid||process.getuid()!==0;return!!(d&&(f.code==="EINVAL"||f.code==="EPERM"))}}});var qbe=b((MFr,Nbe)=>{var jbe=require("stream").Stream;Nbe.exports=Nbt;function Nbt(e){return{ReadStream:t,WriteStream:r};function t(n,i){if(!(this instanceof t))return new t(n,i);jbe.call(this);var a=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,i=i||{};for(var s=Object.keys(i),o=0,c=s.length;o<c;o++){var p=s[o];this[p]=i[p]}if(this.encoding&&this.setEncoding(this.encoding),this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.end===void 0)this.end=1/0;else if(typeof this.end!="number")throw TypeError("end must be a Number");if(this.start>this.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){a._read()});return}e.open(this.path,this.flags,this.mode,function(f,d){if(f){a.emit("error",f),a.readable=!1;return}a.fd=d,a.emit("open",d),a._read()})}function r(n,i){if(!(this instanceof r))return new r(n,i);jbe.call(this),this.path=n,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,i=i||{};for(var a=Object.keys(i),s=0,o=a.length;s<o;s++){var c=a[s];this[c]=i[c]}if(this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.start<0)throw new Error("start must be >= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var $be=b((UFr,Lbe)=>{"use strict";Lbe.exports=Lbt;var qbt=Object.getPrototypeOf||function(e){return e.__proto__};function Lbt(e){if(e===null||typeof e!="object")return e;if(e instanceof Object)var t={__proto__:qbt(e)};else var t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}});var Zs=b((zFr,dY)=>{var Pa=require("fs"),$bt=Fbe(),Bbt=qbe(),Mbt=$be(),oD=require("util"),Io,cD;typeof Symbol=="function"&&typeof Symbol.for=="function"?(Io=Symbol.for("graceful-fs.queue"),cD=Symbol.for("graceful-fs.previous")):(Io="___graceful-fs.queue",cD="___graceful-fs.previous");function Ubt(){}function Ube(e,t){Object.defineProperty(e,Io,{get:function(){return t}})}var v2=Ubt;oD.debuglog?v2=oD.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(v2=function(){var e=oD.format.apply(oD,arguments);e="GFS4: "+e.split(/\n/).join(`
GFS4: `),console.error(e)});Pa[Io]||(Bbe=global[Io]||[],Ube(Pa,Bbe),Pa.close=function(e){function t(r,n){return e.call(Pa,r,function(i){i||Mbe(),typeof n=="function"&&n.apply(this,arguments)})}return Object.defineProperty(t,cD,{value:e}),t}(Pa.close),Pa.closeSync=function(e){function t(r){e.apply(Pa,arguments),Mbe()}return Object.defineProperty(t,cD,{value:e}),t}(Pa.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){v2(Pa[Io]),require("assert").equal(Pa[Io].length,0)}));var Bbe;global[Io]||Ube(global,Pa[Io]);dY.exports=pY(Mbt(Pa));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!Pa.__patched&&(dY.exports=pY(Pa),Pa.__patched=!0);function pY(e){$bt(e),e.gracefulify=pY,e.createReadStream=H,e.createWriteStream=F;var t=e.readFile;e.readFile=r;function r(M,K,L){return typeof K=="function"&&(L=K,K=null),ve(M,K,L);function ve(U,N,re,ue){return t(U,N,function(Q){Q&&(Q.code==="EMFILE"||Q.code==="ENFILE")?__([ve,[U,N,re],Q,ue||Date.now(),Date.now()]):typeof re=="function"&&re.apply(this,arguments)})}}var n=e.writeFile;e.writeFile=i;function i(M,K,L,ve){return typeof L=="function"&&(ve=L,L=null),U(M,K,L,ve);function U(N,re,ue,Q,ne){return n(N,re,ue,function(G){G&&(G.code==="EMFILE"||G.code==="ENFILE")?__([U,[N,re,ue,Q],G,ne||Date.now(),Date.now()]):typeof Q=="function"&&Q.apply(this,arguments)})}}var a=e.appendFile;a&&(e.appendFile=s);function s(M,K,L,ve){return typeof L=="function"&&(ve=L,L=null),U(M,K,L,ve);function U(N,re,ue,Q,ne){return a(N,re,ue,function(G){G&&(G.code==="EMFILE"||G.code==="ENFILE")?__([U,[N,re,ue,Q],G,ne||Date.now(),Date.now()]):typeof Q=="function"&&Q.apply(this,arguments)})}}var o=e.copyFile;o&&(e.copyFile=c);function c(M,K,L,ve){return typeof L=="function"&&(ve=L,L=0),U(M,K,L,ve);function U(N,re,ue,Q,ne){return o(N,re,ue,function(G){G&&(G.code==="EMFILE"||G.code==="ENFILE")?__([U,[N,re,ue,Q],G,ne||Date.now(),Date.now()]):typeof Q=="function"&&Q.apply(this,arguments)})}}var p=e.readdir;e.readdir=d;var f=/^v[0-5]\./;function d(M,K,L){typeof K=="function"&&(L=K,K=null);var ve=f.test(process.version)?function(re,ue,Q,ne){return p(re,U(re,ue,Q,ne))}:function(re,ue,Q,ne){return p(re,ue,U(re,ue,Q,ne))};return ve(M,K,L);function U(N,re,ue,Q){return function(ne,G){ne&&(ne.code==="EMFILE"||ne.code==="ENFILE")?__([ve,[N,re,ue],ne,Q||Date.now(),Date.now()]):(G&&G.sort&&G.sort(),typeof ue=="function"&&ue.call(this,ne,G))}}}if(process.version.substr(0,4)==="v0.8"){var h=Bbt(e);x=h.ReadStream,D=h.WriteStream}var g=e.ReadStream;g&&(x.prototype=Object.create(g.prototype),x.prototype.open=A);var v=e.WriteStream;v&&(D.prototype=Object.create(v.prototype),D.prototype.open=j),Object.defineProperty(e,"ReadStream",{get:function(){return x},set:function(M){x=M},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return D},set:function(M){D=M},enumerable:!0,configurable:!0});var y=x;Object.defineProperty(e,"FileReadStream",{get:function(){return y},set:function(M){y=M},enumerable:!0,configurable:!0});var _=D;Object.defineProperty(e,"FileWriteStream",{get:function(){return _},set:function(M){_=M},enumerable:!0,configurable:!0});function x(M,K){return this instanceof x?(g.apply(this,arguments),this):x.apply(Object.create(x.prototype),arguments)}function A(){var M=this;P(M.path,M.flags,M.mode,function(K,L){K?(M.autoClose&&M.destroy(),M.emit("error",K)):(M.fd=L,M.emit("open",L),M.read())})}function D(M,K){return this instanceof D?(v.apply(this,arguments),this):D.apply(Object.create(D.prototype),arguments)}function j(){var M=this;P(M.path,M.flags,M.mode,function(K,L){K?(M.destroy(),M.emit("error",K)):(M.fd=L,M.emit("open",L))})}function H(M,K){return new e.ReadStream(M,K)}function F(M,K){return new e.WriteStream(M,K)}var z=e.open;e.open=P;function P(M,K,L,ve){return typeof L=="function"&&(ve=L,L=null),U(M,K,L,ve);function U(N,re,ue,Q,ne){return z(N,re,ue,function(G,de){G&&(G.code==="EMFILE"||G.code==="ENFILE")?__([U,[N,re,ue,Q],G,ne||Date.now(),Date.now()]):typeof Q=="function"&&Q.apply(this,arguments)})}}return e}function __(e){v2("ENQUEUE",e[0].name,e[1]),Pa[Io].push(e),fY()}var uD;function Mbe(){for(var e=Date.now(),t=0;t<Pa[Io].length;++t)Pa[Io][t].length>2&&(Pa[Io][t][3]=e,Pa[Io][t][4]=e);fY()}function fY(){if(clearTimeout(uD),uD=void 0,Pa[Io].length!==0){var e=Pa[Io].shift(),t=e[0],r=e[1],n=e[2],i=e[3],a=e[4];if(i===void 0)v2("RETRY",t.name,r),t.apply(null,r);else if(Date.now()-i>=6e4){v2("TIMEOUT",t.name,r);var s=r.pop();typeof s=="function"&&s.call(null,n)}else{var o=Date.now()-a,c=Math.max(a-i,1),p=Math.min(c*1.2,100);o>=p?(v2("RETRY",t.name,r),t.apply(null,r.concat([i]))):Pa[Io].push(e)}uD===void 0&&(uD=setTimeout(fY,0))}}});var y2=b(b0=>{"use strict";var zbe=hc().fromCallback,mc=Zs(),zbt=["access","appendFile","chmod","chown","close","copyFile","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","lchmod","lchown","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"].filter(e=>typeof mc[e]=="function");Object.assign(b0,mc);zbt.forEach(e=>{b0[e]=zbe(mc[e])});b0.exists=function(e,t){return typeof t=="function"?mc.exists(e,t):new Promise(r=>mc.exists(e,r))};b0.read=function(e,t,r,n,i,a){return typeof a=="function"?mc.read(e,t,r,n,i,a):new Promise((s,o)=>{mc.read(e,t,r,n,i,(c,p,f)=>{if(c)return o(c);s({bytesRead:p,buffer:f})})})};b0.write=function(e,t,...r){return typeof r[r.length-1]=="function"?mc.write(e,t,...r):new Promise((n,i)=>{mc.write(e,t,...r,(a,s,o)=>{if(a)return i(a);n({bytesWritten:s,buffer:o})})})};typeof mc.writev=="function"&&(b0.writev=function(e,t,...r){return typeof r[r.length-1]=="function"?mc.writev(e,t,...r):new Promise((n,i)=>{mc.writev(e,t,...r,(a,s,o)=>{if(a)return i(a);n({bytesWritten:s,buffers:o})})})});typeof mc.realpath.native=="function"?b0.realpath.native=zbe(mc.realpath.native):process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?","Warning","fs-extra-WARN0003")});var Vbe=b((VFr,Hbe)=>{"use strict";var Hbt=require("path");Hbe.exports.checkPath=function(t){if(process.platform==="win32"&&/[<>:"|?*]/.test(t.replace(Hbt.parse(t).root,""))){let n=new Error(`Path contains invalid characters: ${t}`);throw n.code="EINVAL",n}}});var Ybe=b((GFr,hY)=>{"use strict";var Gbe=y2(),{checkPath:Wbe}=Vbe(),Kbe=e=>{let t={mode:511};return typeof e=="number"?e:{...t,...e}.mode};hY.exports.makeDir=async(e,t)=>(Wbe(e),Gbe.mkdir(e,{mode:Kbe(t),recursive:!0}));hY.exports.makeDirSync=(e,t)=>(Wbe(e),Gbe.mkdirSync(e,{mode:Kbe(t),recursive:!0}))});var sf=b((WFr,Jbe)=>{"use strict";var Vbt=hc().fromPromise,{makeDir:Gbt,makeDirSync:mY}=Ybe(),gY=Vbt(Gbt);Jbe.exports={mkdirs:gY,mkdirsSync:mY,mkdirp:gY,mkdirpSync:mY,ensureDir:gY,ensureDirSync:mY}});var w0=b((KFr,Qbe)=>{"use strict";var Wbt=hc().fromPromise,Xbe=y2();function Kbt(e){return Xbe.access(e).then(()=>!0).catch(()=>!1)}Qbe.exports={pathExists:Wbt(Kbt),pathExistsSync:Xbe.existsSync}});var vY=b((YFr,Zbe)=>{"use strict";var x_=Zs();function Ybt(e,t,r,n){x_.open(e,"r+",(i,a)=>{if(i)return n(i);x_.futimes(a,t,r,s=>{x_.close(a,o=>{n&&n(s||o)})})})}function Jbt(e,t,r){let n=x_.openSync(e,"r+");return x_.futimesSync(n,t,r),x_.closeSync(n)}Zbe.exports={utimesMillis:Ybt,utimesMillisSync:Jbt}});var b2=b((JFr,rwe)=>{"use strict";var E_=y2(),eo=require("path"),Xbt=require("util");function Qbt(e,t,r){let n=r.dereference?i=>E_.stat(i,{bigint:!0}):i=>E_.lstat(i,{bigint:!0});return Promise.all([n(e),n(t).catch(i=>{if(i.code==="ENOENT")return null;throw i})]).then(([i,a])=>({srcStat:i,destStat:a}))}function Zbt(e,t,r){let n,i=r.dereference?s=>E_.statSync(s,{bigint:!0}):s=>E_.lstatSync(s,{bigint:!0}),a=i(e);try{n=i(t)}catch(s){if(s.code==="ENOENT")return{srcStat:a,destStat:null};throw s}return{srcStat:a,destStat:n}}function ewt(e,t,r,n,i){Xbt.callbackify(Qbt)(e,t,n,(a,s)=>{if(a)return i(a);let{srcStat:o,destStat:c}=s;if(c){if(W5(o,c)){let p=eo.basename(e),f=eo.basename(t);return r==="move"&&p!==f&&p.toLowerCase()===f.toLowerCase()?i(null,{srcStat:o,destStat:c,isChangingCase:!0}):i(new Error("Source and destination must not be the same."))}if(o.isDirectory()&&!c.isDirectory())return i(new Error(`Cannot overwrite non-directory '${t}' with directory '${e}'.`));if(!o.isDirectory()&&c.isDirectory())return i(new Error(`Cannot overwrite directory '${t}' with non-directory '${e}'.`))}return o.isDirectory()&&yY(e,t)?i(new Error(lD(e,t,r))):i(null,{srcStat:o,destStat:c})})}function twt(e,t,r,n){let{srcStat:i,destStat:a}=Zbt(e,t,n);if(a){if(W5(i,a)){let s=eo.basename(e),o=eo.basename(t);if(r==="move"&&s!==o&&s.toLowerCase()===o.toLowerCase())return{srcStat:i,destStat:a,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(i.isDirectory()&&!a.isDirectory())throw new Error(`Cannot overwrite non-directory '${t}' with directory '${e}'.`);if(!i.isDirectory()&&a.isDirectory())throw new Error(`Cannot overwrite directory '${t}' with non-directory '${e}'.`)}if(i.isDirectory()&&yY(e,t))throw new Error(lD(e,t,r));return{srcStat:i,destStat:a}}function ewe(e,t,r,n,i){let a=eo.resolve(eo.dirname(e)),s=eo.resolve(eo.dirname(r));if(s===a||s===eo.parse(s).root)return i();E_.stat(s,{bigint:!0},(o,c)=>o?o.code==="ENOENT"?i():i(o):W5(t,c)?i(new Error(lD(e,r,n))):ewe(e,t,s,n,i))}function twe(e,t,r,n){let i=eo.resolve(eo.dirname(e)),a=eo.resolve(eo.dirname(r));if(a===i||a===eo.parse(a).root)return;let s;try{s=E_.statSync(a,{bigint:!0})}catch(o){if(o.code==="ENOENT")return;throw o}if(W5(t,s))throw new Error(lD(e,r,n));return twe(e,t,a,n)}function W5(e,t){return t.ino&&t.dev&&t.ino===e.ino&&t.dev===e.dev}function yY(e,t){let r=eo.resolve(e).split(eo.sep).filter(i=>i),n=eo.resolve(t).split(eo.sep).filter(i=>i);return r.reduce((i,a,s)=>i&&n[s]===a,!0)}function lD(e,t,r){return`Cannot ${r} '${e}' to a subdirectory of itself, '${t}'.`}rwe.exports={checkPaths:ewt,checkPathsSync:twt,checkParentPaths:ewe,checkParentPathsSync:twe,isSrcSubdir:yY,areIdentical:W5}});var lwe=b((XFr,cwe)=>{"use strict";var gc=Zs(),K5=require("path"),rwt=sf().mkdirs,nwt=w0().pathExists,iwt=vY().utimesMillis,Y5=b2();function awt(e,t,r,n){typeof r=="function"&&!n?(n=r,r={}):typeof r=="function"&&(r={filter:r}),n=n||function(){},r=r||{},r.clobber="clobber"in r?!!r.clobber:!0,r.overwrite="overwrite"in r?!!r.overwrite:r.clobber,r.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended;

	see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0001"),Y5.checkPaths(e,t,"copy",r,(i,a)=>{if(i)return n(i);let{srcStat:s,destStat:o}=a;Y5.checkParentPaths(e,s,t,"copy",c=>c?n(c):r.filter?awe(nwe,o,e,t,r,n):nwe(o,e,t,r,n))})}function nwe(e,t,r,n,i){let a=K5.dirname(r);nwt(a,(s,o)=>{if(s)return i(s);if(o)return pD(e,t,r,n,i);rwt(a,c=>c?i(c):pD(e,t,r,n,i))})}function awe(e,t,r,n,i,a){Promise.resolve(i.filter(r,n)).then(s=>s?e(t,r,n,i,a):a(),s=>a(s))}function swt(e,t,r,n,i){return n.filter?awe(pD,e,t,r,n,i):pD(e,t,r,n,i)}function pD(e,t,r,n,i){(n.dereference?gc.stat:gc.lstat)(t,(s,o)=>s?i(s):o.isDirectory()?dwt(o,e,t,r,n,i):o.isFile()||o.isCharacterDevice()||o.isBlockDevice()?owt(o,e,t,r,n,i):o.isSymbolicLink()?gwt(e,t,r,n,i):o.isSocket()?i(new Error(`Cannot copy a socket file: ${t}`)):o.isFIFO()?i(new Error(`Cannot copy a FIFO pipe: ${t}`)):i(new Error(`Unknown file: ${t}`)))}function owt(e,t,r,n,i,a){return t?uwt(e,r,n,i,a):swe(e,r,n,i,a)}function uwt(e,t,r,n,i){if(n.overwrite)gc.unlink(r,a=>a?i(a):swe(e,t,r,n,i));else return n.errorOnExist?i(new Error(`'${r}' already exists`)):i()}function swe(e,t,r,n,i){gc.copyFile(t,r,a=>a?i(a):n.preserveTimestamps?cwt(e.mode,t,r,i):fD(r,e.mode,i))}function cwt(e,t,r,n){return lwt(e)?pwt(r,e,i=>i?n(i):iwe(e,t,r,n)):iwe(e,t,r,n)}function lwt(e){return(e&128)===0}function pwt(e,t,r){return fD(e,t|128,r)}function iwe(e,t,r,n){fwt(t,r,i=>i?n(i):fD(r,e,n))}function fD(e,t,r){return gc.chmod(e,t,r)}function fwt(e,t,r){gc.stat(e,(n,i)=>n?r(n):iwt(t,i.atime,i.mtime,r))}function dwt(e,t,r,n,i,a){return t?owe(r,n,i,a):hwt(e.mode,r,n,i,a)}function hwt(e,t,r,n,i){gc.mkdir(r,a=>{if(a)return i(a);owe(t,r,n,s=>s?i(s):fD(r,e,i))})}function owe(e,t,r,n){gc.readdir(e,(i,a)=>i?n(i):uwe(a,e,t,r,n))}function uwe(e,t,r,n,i){let a=e.pop();return a?mwt(e,a,t,r,n,i):i()}function mwt(e,t,r,n,i,a){let s=K5.join(r,t),o=K5.join(n,t);Y5.checkPaths(s,o,"copy",i,(c,p)=>{if(c)return a(c);let{destStat:f}=p;swt(f,s,o,i,d=>d?a(d):uwe(e,r,n,i,a))})}function gwt(e,t,r,n,i){gc.readlink(t,(a,s)=>{if(a)return i(a);if(n.dereference&&(s=K5.resolve(process.cwd(),s)),e)gc.readlink(r,(o,c)=>o?o.code==="EINVAL"||o.code==="UNKNOWN"?gc.symlink(s,r,i):i(o):(n.dereference&&(c=K5.resolve(process.cwd(),c)),Y5.isSrcSubdir(s,c)?i(new Error(`Cannot copy '${s}' to a subdirectory of itself, '${c}'.`)):e.isDirectory()&&Y5.isSrcSubdir(c,s)?i(new Error(`Cannot overwrite '${c}' with '${s}'.`)):vwt(s,r,i)));else return gc.symlink(s,r,i)})}function vwt(e,t,r){gc.unlink(t,n=>n?r(n):gc.symlink(e,t,r))}cwe.exports=awt});var mwe=b((QFr,hwe)=>{"use strict";var tu=Zs(),J5=require("path"),ywt=sf().mkdirsSync,bwt=vY().utimesMillisSync,X5=b2();function wwt(e,t,r){typeof r=="function"&&(r={filter:r}),r=r||{},r.clobber="clobber"in r?!!r.clobber:!0,r.overwrite="overwrite"in r?!!r.overwrite:r.clobber,r.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended;

	see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0002");let{srcStat:n,destStat:i}=X5.checkPathsSync(e,t,"copy",r);return X5.checkParentPathsSync(e,n,t,"copy"),_wt(i,e,t,r)}function _wt(e,t,r,n){if(n.filter&&!n.filter(t,r))return;let i=J5.dirname(r);return tu.existsSync(i)||ywt(i),pwe(e,t,r,n)}function xwt(e,t,r,n){if(!(n.filter&&!n.filter(t,r)))return pwe(e,t,r,n)}function pwe(e,t,r,n){let a=(n.dereference?tu.statSync:tu.lstatSync)(t);if(a.isDirectory())return Dwt(a,e,t,r,n);if(a.isFile()||a.isCharacterDevice()||a.isBlockDevice())return Ewt(a,e,t,r,n);if(a.isSymbolicLink())return Iwt(e,t,r,n);throw a.isSocket()?new Error(`Cannot copy a socket file: ${t}`):a.isFIFO()?new Error(`Cannot copy a FIFO pipe: ${t}`):new Error(`Unknown file: ${t}`)}function Ewt(e,t,r,n,i){return t?Swt(e,r,n,i):fwe(e,r,n,i)}function Swt(e,t,r,n){if(n.overwrite)return tu.unlinkSync(r),fwe(e,t,r,n);if(n.errorOnExist)throw new Error(`'${r}' already exists`)}function fwe(e,t,r,n){return tu.copyFileSync(t,r),n.preserveTimestamps&&kwt(e.mode,t,r),bY(r,e.mode)}function kwt(e,t,r){return Awt(e)&&Twt(r,e),Owt(t,r)}function Awt(e){return(e&128)===0}function Twt(e,t){return bY(e,t|128)}function bY(e,t){return tu.chmodSync(e,t)}function Owt(e,t){let r=tu.statSync(e);return bwt(t,r.atime,r.mtime)}function Dwt(e,t,r,n,i){return t?dwe(r,n,i):Cwt(e.mode,r,n,i)}function Cwt(e,t,r,n){return tu.mkdirSync(r),dwe(t,r,n),bY(r,e)}function dwe(e,t,r){tu.readdirSync(e).forEach(n=>Pwt(n,e,t,r))}function Pwt(e,t,r,n){let i=J5.join(t,e),a=J5.join(r,e),{destStat:s}=X5.checkPathsSync(i,a,"copy",n);return xwt(s,i,a,n)}function Iwt(e,t,r,n){let i=tu.readlinkSync(t);if(n.dereference&&(i=J5.resolve(process.cwd(),i)),e){let a;try{a=tu.readlinkSync(r)}catch(s){if(s.code==="EINVAL"||s.code==="UNKNOWN")return tu.symlinkSync(i,r);throw s}if(n.dereference&&(a=J5.resolve(process.cwd(),a)),X5.isSrcSubdir(i,a))throw new Error(`Cannot copy '${i}' to a subdirectory of itself, '${a}'.`);if(tu.statSync(r).isDirectory()&&X5.isSrcSubdir(a,i))throw new Error(`Cannot overwrite '${a}' with '${i}'.`);return Rwt(i,r)}else return tu.symlinkSync(i,r)}function Rwt(e,t){return tu.unlinkSync(t),tu.symlinkSync(e,t)}hwe.exports=wwt});var dD=b((ZFr,gwe)=>{"use strict";var Fwt=hc().fromCallback;gwe.exports={copy:Fwt(lwe()),copySync:mwe()}});var kwe=b((ejr,Swe)=>{"use strict";var vwe=Zs(),_we=require("path"),Ri=require("assert"),Q5=process.platform==="win32";function xwe(e){["unlink","chmod","stat","lstat","rmdir","readdir"].forEach(r=>{e[r]=e[r]||vwe[r],r=r+"Sync",e[r]=e[r]||vwe[r]}),e.maxBusyTries=e.maxBusyTries||3}function wY(e,t,r){let n=0;typeof t=="function"&&(r=t,t={}),Ri(e,"rimraf: missing path"),Ri.strictEqual(typeof e,"string","rimraf: path should be a string"),Ri.strictEqual(typeof r,"function","rimraf: callback function required"),Ri(t,"rimraf: invalid options argument provided"),Ri.strictEqual(typeof t,"object","rimraf: options should be object"),xwe(t),ywe(e,t,function i(a){if(a){if((a.code==="EBUSY"||a.code==="ENOTEMPTY"||a.code==="EPERM")&&n<t.maxBusyTries){n++;let s=n*100;return setTimeout(()=>ywe(e,t,i),s)}a.code==="ENOENT"&&(a=null)}r(a)})}function ywe(e,t,r){Ri(e),Ri(t),Ri(typeof r=="function"),t.lstat(e,(n,i)=>{if(n&&n.code==="ENOENT")return r(null);if(n&&n.code==="EPERM"&&Q5)return bwe(e,t,n,r);if(i&&i.isDirectory())return hD(e,t,n,r);t.unlink(e,a=>{if(a){if(a.code==="ENOENT")return r(null);if(a.code==="EPERM")return Q5?bwe(e,t,a,r):hD(e,t,a,r);if(a.code==="EISDIR")return hD(e,t,a,r)}return r(a)})})}function bwe(e,t,r,n){Ri(e),Ri(t),Ri(typeof n=="function"),t.chmod(e,438,i=>{i?n(i.code==="ENOENT"?null:r):t.stat(e,(a,s)=>{a?n(a.code==="ENOENT"?null:r):s.isDirectory()?hD(e,t,r,n):t.unlink(e,n)})})}function wwe(e,t,r){let n;Ri(e),Ri(t);try{t.chmodSync(e,438)}catch(i){if(i.code==="ENOENT")return;throw r}try{n=t.statSync(e)}catch(i){if(i.code==="ENOENT")return;throw r}n.isDirectory()?mD(e,t,r):t.unlinkSync(e)}function hD(e,t,r,n){Ri(e),Ri(t),Ri(typeof n=="function"),t.rmdir(e,i=>{i&&(i.code==="ENOTEMPTY"||i.code==="EEXIST"||i.code==="EPERM")?jwt(e,t,n):i&&i.code==="ENOTDIR"?n(r):n(i)})}function jwt(e,t,r){Ri(e),Ri(t),Ri(typeof r=="function"),t.readdir(e,(n,i)=>{if(n)return r(n);let a=i.length,s;if(a===0)return t.rmdir(e,r);i.forEach(o=>{wY(_we.join(e,o),t,c=>{if(!s){if(c)return r(s=c);--a===0&&t.rmdir(e,r)}})})})}function Ewe(e,t){let r;t=t||{},xwe(t),Ri(e,"rimraf: missing path"),Ri.strictEqual(typeof e,"string","rimraf: path should be a string"),Ri(t,"rimraf: missing options"),Ri.strictEqual(typeof t,"object","rimraf: options should be object");try{r=t.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;n.code==="EPERM"&&Q5&&wwe(e,t,n)}try{r&&r.isDirectory()?mD(e,t,null):t.unlinkSync(e)}catch(n){if(n.code==="ENOENT")return;if(n.code==="EPERM")return Q5?wwe(e,t,n):mD(e,t,n);if(n.code!=="EISDIR")throw n;mD(e,t,n)}}function mD(e,t,r){Ri(e),Ri(t);try{t.rmdirSync(e)}catch(n){if(n.code==="ENOTDIR")throw r;if(n.code==="ENOTEMPTY"||n.code==="EEXIST"||n.code==="EPERM")Nwt(e,t);else if(n.code!=="ENOENT")throw n}}function Nwt(e,t){if(Ri(e),Ri(t),t.readdirSync(e).forEach(r=>Ewe(_we.join(e,r),t)),Q5){let r=Date.now();do try{return t.rmdirSync(e,t)}catch{}while(Date.now()-r<500)}else return t.rmdirSync(e,t)}Swe.exports=wY;wY.sync=Ewe});var Z5=b((tjr,Twe)=>{"use strict";var gD=Zs(),qwt=hc().fromCallback,Awe=kwe();function Lwt(e,t){if(gD.rm)return gD.rm(e,{recursive:!0,force:!0},t);Awe(e,t)}function $wt(e){if(gD.rmSync)return gD.rmSync(e,{recursive:!0,force:!0});Awe.sync(e)}Twe.exports={remove:qwt(Lwt),removeSync:$wt}});var jwe=b((rjr,Fwe)=>{"use strict";var Bwt=hc().fromPromise,Cwe=y2(),Pwe=require("path"),Iwe=sf(),Rwe=Z5(),Owe=Bwt(async function(t){let r;try{r=await Cwe.readdir(t)}catch{return Iwe.mkdirs(t)}return Promise.all(r.map(n=>Rwe.remove(Pwe.join(t,n))))});function Dwe(e){let t;try{t=Cwe.readdirSync(e)}catch{return Iwe.mkdirsSync(e)}t.forEach(r=>{r=Pwe.join(e,r),Rwe.removeSync(r)})}Fwe.exports={emptyDirSync:Dwe,emptydirSync:Dwe,emptyDir:Owe,emptydir:Owe}});var $we=b((njr,Lwe)=>{"use strict";var Mwt=hc().fromCallback,Nwe=require("path"),_0=Zs(),qwe=sf();function Uwt(e,t){function r(){_0.writeFile(e,"",n=>{if(n)return t(n);t()})}_0.stat(e,(n,i)=>{if(!n&&i.isFile())return t();let a=Nwe.dirname(e);_0.stat(a,(s,o)=>{if(s)return s.code==="ENOENT"?qwe.mkdirs(a,c=>{if(c)return t(c);r()}):t(s);o.isDirectory()?r():_0.readdir(a,c=>{if(c)return t(c)})})})}function zwt(e){let t;try{t=_0.statSync(e)}catch{}if(t&&t.isFile())return;let r=Nwe.dirname(e);try{_0.statSync(r).isDirectory()||_0.readdirSync(r)}catch(n){if(n&&n.code==="ENOENT")qwe.mkdirsSync(r);else throw n}_0.writeFileSync(e,"")}Lwe.exports={createFile:Mwt(Uwt),createFileSync:zwt}});var Hwe=b((ijr,zwe)=>{"use strict";var Hwt=hc().fromCallback,Bwe=require("path"),x0=Zs(),Mwe=sf(),Vwt=w0().pathExists,{areIdentical:Uwe}=b2();function Gwt(e,t,r){function n(i,a){x0.link(i,a,s=>{if(s)return r(s);r(null)})}x0.lstat(t,(i,a)=>{x0.lstat(e,(s,o)=>{if(s)return s.message=s.message.replace("lstat","ensureLink"),r(s);if(a&&Uwe(o,a))return r(null);let c=Bwe.dirname(t);Vwt(c,(p,f)=>{if(p)return r(p);if(f)return n(e,t);Mwe.mkdirs(c,d=>{if(d)return r(d);n(e,t)})})})})}function Wwt(e,t){let r;try{r=x0.lstatSync(t)}catch{}try{let a=x0.lstatSync(e);if(r&&Uwe(a,r))return}catch(a){throw a.message=a.message.replace("lstat","ensureLink"),a}let n=Bwe.dirname(t);return x0.existsSync(n)||Mwe.mkdirsSync(n),x0.linkSync(e,t)}zwe.exports={createLink:Hwt(Gwt),createLinkSync:Wwt}});var Gwe=b((ajr,Vwe)=>{"use strict";var E0=require("path"),e9=Zs(),Kwt=w0().pathExists;function Ywt(e,t,r){if(E0.isAbsolute(e))return e9.lstat(e,n=>n?(n.message=n.message.replace("lstat","ensureSymlink"),r(n)):r(null,{toCwd:e,toDst:e}));{let n=E0.dirname(t),i=E0.join(n,e);return Kwt(i,(a,s)=>a?r(a):s?r(null,{toCwd:i,toDst:e}):e9.lstat(e,o=>o?(o.message=o.message.replace("lstat","ensureSymlink"),r(o)):r(null,{toCwd:e,toDst:E0.relative(n,e)})))}}function Jwt(e,t){let r;if(E0.isAbsolute(e)){if(r=e9.existsSync(e),!r)throw new Error("absolute srcpath does not exist");return{toCwd:e,toDst:e}}else{let n=E0.dirname(t),i=E0.join(n,e);if(r=e9.existsSync(i),r)return{toCwd:i,toDst:e};if(r=e9.existsSync(e),!r)throw new Error("relative srcpath does not exist");return{toCwd:e,toDst:E0.relative(n,e)}}}Vwe.exports={symlinkPaths:Ywt,symlinkPathsSync:Jwt}});var Ywe=b((sjr,Kwe)=>{"use strict";var Wwe=Zs();function Xwt(e,t,r){if(r=typeof t=="function"?t:r,t=typeof t=="function"?!1:t,t)return r(null,t);Wwe.lstat(e,(n,i)=>{if(n)return r(null,"file");t=i&&i.isDirectory()?"dir":"file",r(null,t)})}function Qwt(e,t){let r;if(t)return t;try{r=Wwe.lstatSync(e)}catch{return"file"}return r&&r.isDirectory()?"dir":"file"}Kwe.exports={symlinkType:Xwt,symlinkTypeSync:Qwt}});var n_e=b((ojr,r_e)=>{"use strict";var Zwt=hc().fromCallback,Xwe=require("path"),of=y2(),Qwe=sf(),e_t=Qwe.mkdirs,t_t=Qwe.mkdirsSync,Zwe=Gwe(),r_t=Zwe.symlinkPaths,n_t=Zwe.symlinkPathsSync,e_e=Ywe(),i_t=e_e.symlinkType,a_t=e_e.symlinkTypeSync,s_t=w0().pathExists,{areIdentical:t_e}=b2();function o_t(e,t,r,n){n=typeof r=="function"?r:n,r=typeof r=="function"?!1:r,of.lstat(t,(i,a)=>{!i&&a.isSymbolicLink()?Promise.all([of.stat(e),of.stat(t)]).then(([s,o])=>{if(t_e(s,o))return n(null);Jwe(e,t,r,n)}):Jwe(e,t,r,n)})}function Jwe(e,t,r,n){r_t(e,t,(i,a)=>{if(i)return n(i);e=a.toDst,i_t(a.toCwd,r,(s,o)=>{if(s)return n(s);let c=Xwe.dirname(t);s_t(c,(p,f)=>{if(p)return n(p);if(f)return of.symlink(e,t,o,n);e_t(c,d=>{if(d)return n(d);of.symlink(e,t,o,n)})})})})}function u_t(e,t,r){let n;try{n=of.lstatSync(t)}catch{}if(n&&n.isSymbolicLink()){let o=of.statSync(e),c=of.statSync(t);if(t_e(o,c))return}let i=n_t(e,t);e=i.toDst,r=a_t(i.toCwd,r);let a=Xwe.dirname(t);return of.existsSync(a)||t_t(a),of.symlinkSync(e,t,r)}r_e.exports={createSymlink:Zwt(o_t),createSymlinkSync:u_t}});var p_e=b((ujr,l_e)=>{"use strict";var{createFile:i_e,createFileSync:a_e}=$we(),{createLink:s_e,createLinkSync:o_e}=Hwe(),{createSymlink:u_e,createSymlinkSync:c_e}=n_e();l_e.exports={createFile:i_e,createFileSync:a_e,ensureFile:i_e,ensureFileSync:a_e,createLink:s_e,createLinkSync:o_e,ensureLink:s_e,ensureLinkSync:o_e,createSymlink:u_e,createSymlinkSync:c_e,ensureSymlink:u_e,ensureSymlinkSync:c_e}});var vD=b((cjr,f_e)=>{function c_t(e,{EOL:t=`
`,finalEOL:r=!0,replacer:n=null,spaces:i}={}){let a=r?t:"";return JSON.stringify(e,n,i).replace(/\n/g,t)+a}function l_t(e){return Buffer.isBuffer(e)&&(e=e.toString("utf8")),e.replace(/^\uFEFF/,"")}f_e.exports={stringify:c_t,stripBom:l_t}});var g_e=b((ljr,m_e)=>{var S_;try{S_=Zs()}catch{S_=require("fs")}var yD=hc(),{stringify:d_e,stripBom:h_e}=vD();async function p_t(e,t={}){typeof t=="string"&&(t={encoding:t});let r=t.fs||S_,n="throws"in t?t.throws:!0,i=await yD.fromCallback(r.readFile)(e,t);i=h_e(i);let a;try{a=JSON.parse(i,t?t.reviver:null)}catch(s){if(n)throw s.message=`${e}: ${s.message}`,s;return null}return a}var f_t=yD.fromPromise(p_t);function d_t(e,t={}){typeof t=="string"&&(t={encoding:t});let r=t.fs||S_,n="throws"in t?t.throws:!0;try{let i=r.readFileSync(e,t);return i=h_e(i),JSON.parse(i,t.reviver)}catch(i){if(n)throw i.message=`${e}: ${i.message}`,i;return null}}async function h_t(e,t,r={}){let n=r.fs||S_,i=d_e(t,r);await yD.fromCallback(n.writeFile)(e,i,r)}var m_t=yD.fromPromise(h_t);function g_t(e,t,r={}){let n=r.fs||S_,i=d_e(t,r);return n.writeFileSync(e,i,r)}var v_t={readFile:f_t,readFileSync:d_t,writeFile:m_t,writeFileSync:g_t};m_e.exports=v_t});var y_e=b((pjr,v_e)=>{"use strict";var bD=g_e();v_e.exports={readJson:bD.readFile,readJsonSync:bD.readFileSync,writeJson:bD.writeFile,writeJsonSync:bD.writeFileSync}});var wD=b((fjr,x_e)=>{"use strict";var y_t=hc().fromCallback,t9=Zs(),b_e=require("path"),w_e=sf(),b_t=w0().pathExists;function w_t(e,t,r,n){typeof r=="function"&&(n=r,r="utf8");let i=b_e.dirname(e);b_t(i,(a,s)=>{if(a)return n(a);if(s)return t9.writeFile(e,t,r,n);w_e.mkdirs(i,o=>{if(o)return n(o);t9.writeFile(e,t,r,n)})})}function __t(e,...t){let r=b_e.dirname(e);if(t9.existsSync(r))return t9.writeFileSync(e,...t);w_e.mkdirsSync(r),t9.writeFileSync(e,...t)}x_e.exports={outputFile:y_t(w_t),outputFileSync:__t}});var S_e=b((djr,E_e)=>{"use strict";var{stringify:x_t}=vD(),{outputFile:E_t}=wD();async function S_t(e,t,r={}){let n=x_t(t,r);await E_t(e,n,r)}E_e.exports=S_t});var A_e=b((hjr,k_e)=>{"use strict";var{stringify:k_t}=vD(),{outputFileSync:A_t}=wD();function T_t(e,t,r){let n=k_t(t,r);A_t(e,n,r)}k_e.exports=T_t});var O_e=b((mjr,T_e)=>{"use strict";var O_t=hc().fromPromise,Bu=y_e();Bu.outputJson=O_t(S_e());Bu.outputJsonSync=A_e();Bu.outputJSON=Bu.outputJson;Bu.outputJSONSync=Bu.outputJsonSync;Bu.writeJSON=Bu.writeJson;Bu.writeJSONSync=Bu.writeJsonSync;Bu.readJSON=Bu.readJson;Bu.readJSONSync=Bu.readJsonSync;T_e.exports=Bu});var R_e=b((gjr,I_e)=>{"use strict";var D_t=Zs(),xY=require("path"),C_t=dD().copy,P_e=Z5().remove,P_t=sf().mkdirp,I_t=w0().pathExists,D_e=b2();function R_t(e,t,r,n){typeof r=="function"&&(n=r,r={}),r=r||{};let i=r.overwrite||r.clobber||!1;D_e.checkPaths(e,t,"move",r,(a,s)=>{if(a)return n(a);let{srcStat:o,isChangingCase:c=!1}=s;D_e.checkParentPaths(e,o,t,"move",p=>{if(p)return n(p);if(F_t(t))return C_e(e,t,i,c,n);P_t(xY.dirname(t),f=>f?n(f):C_e(e,t,i,c,n))})})}function F_t(e){let t=xY.dirname(e);return xY.parse(t).root===t}function C_e(e,t,r,n,i){if(n)return _Y(e,t,r,i);if(r)return P_e(t,a=>a?i(a):_Y(e,t,r,i));I_t(t,(a,s)=>a?i(a):s?i(new Error("dest already exists.")):_Y(e,t,r,i))}function _Y(e,t,r,n){D_t.rename(e,t,i=>i?i.code!=="EXDEV"?n(i):j_t(e,t,r,n):n())}function j_t(e,t,r,n){C_t(e,t,{overwrite:r,errorOnExist:!0},a=>a?n(a):P_e(e,n))}I_e.exports=R_t});var L_e=b((vjr,q_e)=>{"use strict";var j_e=Zs(),SY=require("path"),N_t=dD().copySync,N_e=Z5().removeSync,q_t=sf().mkdirpSync,F_e=b2();function L_t(e,t,r){r=r||{};let n=r.overwrite||r.clobber||!1,{srcStat:i,isChangingCase:a=!1}=F_e.checkPathsSync(e,t,"move",r);return F_e.checkParentPathsSync(e,i,t,"move"),$_t(t)||q_t(SY.dirname(t)),B_t(e,t,n,a)}function $_t(e){let t=SY.dirname(e);return SY.parse(t).root===t}function B_t(e,t,r,n){if(n)return EY(e,t,r);if(r)return N_e(t),EY(e,t,r);if(j_e.existsSync(t))throw new Error("dest already exists.");return EY(e,t,r)}function EY(e,t,r){try{j_e.renameSync(e,t)}catch(n){if(n.code!=="EXDEV")throw n;return M_t(e,t,r)}}function M_t(e,t,r){return N_t(e,t,{overwrite:r,errorOnExist:!0}),N_e(e)}q_e.exports=L_t});var B_e=b((yjr,$_e)=>{"use strict";var U_t=hc().fromCallback;$_e.exports={move:U_t(R_e()),moveSync:L_e()}});var Bm=b((bjr,M_e)=>{"use strict";M_e.exports={...y2(),...dD(),...jwe(),...p_e(),...O_e(),...sf(),...B_e(),...wD(),...w0(),...Z5()}});var _D=b(k_=>{"use strict";Object.defineProperty(k_,"__esModule",{value:!0});k_.CancellationError=k_.CancellationToken=void 0;var z_t=require("events"),kY=class extends z_t.EventEmitter{get cancelled(){return this._cancelled||this._parent!=null&&this._parent.cancelled}set parent(t){this.removeParentCancelHandler(),this._parent=t,this.parentCancelHandler=()=>this.cancel(),this._parent.onCancel(this.parentCancelHandler)}constructor(t){super(),this.parentCancelHandler=null,this._parent=null,this._cancelled=!1,t!=null&&(this.parent=t)}cancel(){this._cancelled=!0,this.emit("cancel")}onCancel(t){this.cancelled?t():this.once("cancel",t)}createPromise(t){if(this.cancelled)return Promise.reject(new r9);let r=()=>{if(n!=null)try{this.removeListener("cancel",n),n=null}catch{}},n=null;return new Promise((i,a)=>{let s=null;if(n=()=>{try{s!=null&&(s(),s=null)}finally{a(new r9)}},this.cancelled){n();return}this.onCancel(n),t(i,a,o=>{s=o})}).then(i=>(r(),i)).catch(i=>{throw r(),i})}removeParentCancelHandler(){let t=this._parent;t!=null&&this.parentCancelHandler!=null&&(t.removeListener("cancel",this.parentCancelHandler),this.parentCancelHandler=null)}dispose(){try{this.removeParentCancelHandler()}finally{this.removeAllListeners(),this._parent=null}}};k_.CancellationToken=kY;var r9=class extends Error{constructor(){super("cancelled")}};k_.CancellationError=r9});var n9=b(AY=>{"use strict";Object.defineProperty(AY,"__esModule",{value:!0});AY.newError=H_t;function H_t(e,t){let r=new Error(e);return r.code=t,r}});var z_e=b((xjr,U_e)=>{var A_=1e3,T_=A_*60,O_=T_*60,w2=O_*24,V_t=w2*7,G_t=w2*365.25;U_e.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return W_t(e);if(r==="number"&&isFinite(e))return t.long?Y_t(e):K_t(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function W_t(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*G_t;case"weeks":case"week":case"w":return r*V_t;case"days":case"day":case"d":return r*w2;case"hours":case"hour":case"hrs":case"hr":case"h":return r*O_;case"minutes":case"minute":case"mins":case"min":case"m":return r*T_;case"seconds":case"second":case"secs":case"sec":case"s":return r*A_;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function K_t(e){var t=Math.abs(e);return t>=w2?Math.round(e/w2)+"d":t>=O_?Math.round(e/O_)+"h":t>=T_?Math.round(e/T_)+"m":t>=A_?Math.round(e/A_)+"s":e+"ms"}function Y_t(e){var t=Math.abs(e);return t>=w2?xD(e,t,w2,"day"):t>=O_?xD(e,t,O_,"hour"):t>=T_?xD(e,t,T_,"minute"):t>=A_?xD(e,t,A_,"second"):e+" ms"}function xD(e,t,r,n){var i=t>=r*1.5;return Math.round(e/r)+" "+n+(i?"s":"")}});var TY=b((Ejr,H_e)=>{function J_t(e){r.debug=r,r.default=r,r.coerce=c,r.disable=a,r.enable=i,r.enabled=s,r.humanize=z_e(),r.destroy=p,Object.keys(e).forEach(f=>{r[f]=e[f]}),r.names=[],r.skips=[],r.formatters={};function t(f){let d=0;for(let h=0;h<f.length;h++)d=(d<<5)-d+f.charCodeAt(h),d|=0;return r.colors[Math.abs(d)%r.colors.length]}r.selectColor=t;function r(f){let d,h=null,g,v;function y(..._){if(!y.enabled)return;let x=y,A=Number(new Date),D=A-(d||A);x.diff=D,x.prev=d,x.curr=A,d=A,_[0]=r.coerce(_[0]),typeof _[0]!="string"&&_.unshift("%O");let j=0;_[0]=_[0].replace(/%([a-zA-Z%])/g,(F,z)=>{if(F==="%%")return"%";j++;let P=r.formatters[z];if(typeof P=="function"){let M=_[j];F=P.call(x,M),_.splice(j,1),j--}return F}),r.formatArgs.call(x,_),(x.log||r.log).apply(x,_)}return y.namespace=f,y.useColors=r.useColors(),y.color=r.selectColor(f),y.extend=n,y.destroy=r.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(g!==r.namespaces&&(g=r.namespaces,v=r.enabled(f)),v),set:_=>{h=_}}),typeof r.init=="function"&&r.init(y),y}function n(f,d){let h=r(this.namespace+(typeof d>"u"?":":d)+f);return h.log=this.log,h}function i(f){r.save(f),r.namespaces=f,r.names=[],r.skips=[];let d,h=(typeof f=="string"?f:"").split(/[\s,]+/),g=h.length;for(d=0;d<g;d++)h[d]&&(f=h[d].replace(/\*/g,".*?"),f[0]==="-"?r.skips.push(new RegExp("^"+f.slice(1)+"$")):r.names.push(new RegExp("^"+f+"$")))}function a(){let f=[...r.names.map(o),...r.skips.map(o).map(d=>"-"+d)].join(",");return r.enable(""),f}function s(f){if(f[f.length-1]==="*")return!0;let d,h;for(d=0,h=r.skips.length;d<h;d++)if(r.skips[d].test(f))return!1;for(d=0,h=r.names.length;d<h;d++)if(r.names[d].test(f))return!0;return!1}function o(f){return f.toString().substring(2,f.toString().length-2).replace(/\.\*\?$/,"*")}function c(f){return f instanceof Error?f.stack||f.message:f}function p(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}H_e.exports=J_t});var V_e=b((ul,ED)=>{ul.formatArgs=Q_t;ul.save=Z_t;ul.load=e6t;ul.useColors=X_t;ul.storage=t6t();ul.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();ul.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function X_t(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Q_t(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+ED.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),e.splice(n,0,t)}ul.log=console.debug||console.log||(()=>{});function Z_t(e){try{e?ul.storage.setItem("debug",e):ul.storage.removeItem("debug")}catch{}}function e6t(){let e;try{e=ul.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function t6t(){try{return localStorage}catch{}}ED.exports=TY()(ul);var{formatters:r6t}=ED.exports;r6t.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var W_e=b((Sjr,G_e)=>{"use strict";G_e.exports=(e,t=process.argv)=>{let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),i=t.indexOf("--");return n!==-1&&(i===-1||n<i)}});var J_e=b((kjr,Y_e)=>{"use strict";var n6t=require("os"),K_e=require("tty"),Fl=W_e(),{env:to}=process,S0;Fl("no-color")||Fl("no-colors")||Fl("color=false")||Fl("color=never")?S0=0:(Fl("color")||Fl("colors")||Fl("color=true")||Fl("color=always"))&&(S0=1);"FORCE_COLOR"in to&&(to.FORCE_COLOR==="true"?S0=1:to.FORCE_COLOR==="false"?S0=0:S0=to.FORCE_COLOR.length===0?1:Math.min(parseInt(to.FORCE_COLOR,10),3));function OY(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function DY(e,t){if(S0===0)return 0;if(Fl("color=16m")||Fl("color=full")||Fl("color=truecolor"))return 3;if(Fl("color=256"))return 2;if(e&&!t&&S0===void 0)return 0;let r=S0||0;if(to.TERM==="dumb")return r;if(process.platform==="win32"){let n=n6t.release().split(".");return Number(n[0])>=10&&Number(n[2])>=10586?Number(n[2])>=14931?3:2:1}if("CI"in to)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(n=>n in to)||to.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in to)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(to.TEAMCITY_VERSION)?1:0;if(to.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in to){let n=parseInt((to.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(to.TERM_PROGRAM){case"iTerm.app":return n>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(to.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(to.TERM)||"COLORTERM"in to?1:r}function i6t(e){let t=DY(e,e&&e.isTTY);return OY(t)}Y_e.exports={supportsColor:i6t,stdout:OY(DY(!0,K_e.isatty(1))),stderr:OY(DY(!0,K_e.isatty(2)))}});var Q_e=b((ro,kD)=>{var a6t=require("tty"),SD=require("util");ro.init=f6t;ro.log=c6t;ro.formatArgs=o6t;ro.save=l6t;ro.load=p6t;ro.useColors=s6t;ro.destroy=SD.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");ro.colors=[6,2,3,4,5,1];try{let e=J_e();e&&(e.stderr||e).level>=2&&(ro.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}ro.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let r=t.substring(6).toLowerCase().replace(/_([a-z])/g,(i,a)=>a.toUpperCase()),n=process.env[t];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),e[r]=n,e},{});function s6t(){return"colors"in ro.inspectOpts?!!ro.inspectOpts.colors:a6t.isatty(process.stderr.fd)}function o6t(e){let{namespace:t,useColors:r}=this;if(r){let n=this.color,i="\x1B[3"+(n<8?n:"8;5;"+n),a=`  ${i};1m${t} \x1B[0m`;e[0]=a+e[0].split(`
`).join(`
`+a),e.push(i+"m+"+kD.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=u6t()+t+" "+e[0]}function u6t(){return ro.inspectOpts.hideDate?"":new Date().toISOString()+" "}function c6t(...e){return process.stderr.write(SD.formatWithOptions(ro.inspectOpts,...e)+`
`)}function l6t(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function p6t(){return process.env.DEBUG}function f6t(e){e.inspectOpts={};let t=Object.keys(ro.inspectOpts);for(let r=0;r<t.length;r++)e.inspectOpts[t[r]]=ro.inspectOpts[t[r]]}kD.exports=TY()(ro);var{formatters:X_e}=kD.exports;X_e.o=function(e){return this.inspectOpts.colors=this.useColors,SD.inspect(e,this.inspectOpts).split(`
`).map(t=>t.trim()).join(" ")};X_e.O=function(e){return this.inspectOpts.colors=this.useColors,SD.inspect(e,this.inspectOpts)}});var _2=b((Ajr,CY)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?CY.exports=V_e():CY.exports=Q_e()});var IY=b(AD=>{"use strict";Object.defineProperty(AD,"__esModule",{value:!0});AD.ProgressCallbackTransform=void 0;var d6t=require("stream"),PY=class extends d6t.Transform{constructor(t,r,n){super(),this.total=t,this.cancellationToken=r,this.onProgress=n,this.start=Date.now(),this.transferred=0,this.delta=0,this.nextUpdate=this.start+1e3}_transform(t,r,n){if(this.cancellationToken.cancelled){n(new Error("cancelled"),null);return}this.transferred+=t.length,this.delta+=t.length;let i=Date.now();i>=this.nextUpdate&&this.transferred!==this.total&&(this.nextUpdate=i+1e3,this.onProgress({total:this.total,delta:this.delta,transferred:this.transferred,percent:this.transferred/this.total*100,bytesPerSecond:Math.round(this.transferred/((i-this.start)/1e3))}),this.delta=0),n(null,t)}_flush(t){if(this.cancellationToken.cancelled){t(new Error("cancelled"));return}this.onProgress({total:this.total,delta:this.delta,transferred:this.total,percent:100,bytesPerSecond:Math.round(this.transferred/((Date.now()-this.start)/1e3))}),this.delta=0,t(null)}};AD.ProgressCallbackTransform=PY});var r6e=b(Mu=>{"use strict";Object.defineProperty(Mu,"__esModule",{value:!0});Mu.DigestTransform=Mu.HttpExecutor=Mu.HttpError=void 0;Mu.createHttpError=RY;Mu.parseJson=_6t;Mu.configureRequestOptionsFromUrl=t6e;Mu.configureRequestUrl=jY;Mu.safeGetHeader=D_;Mu.configureRequestOptions=TD;Mu.safeStringifyJson=OD;var h6t=require("crypto"),m6t=_2(),g6t=require("fs"),v6t=require("stream"),e6e=require("url"),y6t=_D(),Z_e=n9(),b6t=IY(),i9=(0,m6t.default)("electron-builder");function RY(e,t=null){return new a9(e.statusCode||-1,`${e.statusCode} ${e.statusMessage}`+(t==null?"":`
`+JSON.stringify(t,null,"  "))+`
Headers: `+OD(e.headers),t)}var w6t=new Map([[429,"Too many requests"],[400,"Bad request"],[403,"Forbidden"],[404,"Not found"],[405,"Method not allowed"],[406,"Not acceptable"],[408,"Request timeout"],[413,"Request entity too large"],[500,"Internal server error"],[502,"Bad gateway"],[503,"Service unavailable"],[504,"Gateway timeout"],[505,"HTTP version not supported"]]),a9=class extends Error{constructor(t,r=`HTTP error: ${w6t.get(t)||t}`,n=null){super(r),this.statusCode=t,this.description=n,this.name="HttpError",this.code=`HTTP_ERROR_${t}`}isServerError(){return this.statusCode>=500&&this.statusCode<=599}};Mu.HttpError=a9;function _6t(e){return e.then(t=>t==null||t.length===0?null:JSON.parse(t))}var FY=class e{constructor(){this.maxRedirects=10}request(t,r=new y6t.CancellationToken,n){TD(t);let i=n==null?void 0:JSON.stringify(n),a=i?Buffer.from(i):void 0;if(a!=null){i9(i);let{headers:s,...o}=t;t={method:"post",headers:{"Content-Type":"application/json","Content-Length":a.length,...s},...o}}return this.doApiRequest(t,r,s=>s.end(a))}doApiRequest(t,r,n,i=0){return i9.enabled&&i9(`Request: ${OD(t)}`),r.createPromise((a,s,o)=>{let c=this.createRequest(t,p=>{try{this.handleResponse(p,t,r,a,s,i,n)}catch(f){s(f)}});this.addErrorAndTimeoutHandlers(c,s,t.timeout),this.addRedirectHandlers(c,t,s,i,p=>{this.doApiRequest(p,r,n,i).then(a).catch(s)}),n(c,s),o(()=>c.abort())})}addRedirectHandlers(t,r,n,i,a){}addErrorAndTimeoutHandlers(t,r,n=60*1e3){this.addTimeOutHandler(t,r,n),t.on("error",r),t.on("aborted",()=>{r(new Error("Request has been aborted by the server"))})}handleResponse(t,r,n,i,a,s,o){var c;if(i9.enabled&&i9(`Response: ${t.statusCode} ${t.statusMessage}, request options: ${OD(r)}`),t.statusCode===404){a(RY(t,`method: ${r.method||"GET"} url: ${r.protocol||"https:"}//${r.hostname}${r.port?`:${r.port}`:""}${r.path}

Please double check that your authentication token is correct. Due to security reasons, actual status maybe not reported, but 404.
`));return}else if(t.statusCode===204){i();return}let p=(c=t.statusCode)!==null&&c!==void 0?c:0,f=p>=300&&p<400,d=D_(t,"location");if(f&&d!=null){if(s>this.maxRedirects){a(this.createMaxRedirectError());return}this.doApiRequest(e.prepareRedirectUrlOptions(d,r),n,o,s).then(i).catch(a);return}t.setEncoding("utf8");let h="";t.on("error",a),t.on("data",g=>h+=g),t.on("end",()=>{try{if(t.statusCode!=null&&t.statusCode>=400){let g=D_(t,"content-type"),v=g!=null&&(Array.isArray(g)?g.find(y=>y.includes("json"))!=null:g.includes("json"));a(RY(t,`method: ${r.method||"GET"} url: ${r.protocol||"https:"}//${r.hostname}${r.port?`:${r.port}`:""}${r.path}

          Data:
          ${v?JSON.stringify(JSON.parse(h)):h}
          `))}else i(h.length===0?null:h)}catch(g){a(g)}})}async downloadToBuffer(t,r){return await r.cancellationToken.createPromise((n,i,a)=>{let s=[],o={headers:r.headers||void 0,redirect:"manual"};jY(t,o),TD(o),this.doDownload(o,{destination:null,options:r,onCancel:a,callback:c=>{c==null?n(Buffer.concat(s)):i(c)},responseHandler:(c,p)=>{let f=0;c.on("data",d=>{if(f+=d.length,f>524288e3){p(new Error("Maximum allowed size is 500 MB"));return}s.push(d)}),c.on("end",()=>{p(null)})}},0)})}doDownload(t,r,n){let i=this.createRequest(t,a=>{if(a.statusCode>=400){r.callback(new Error(`Cannot download "${t.protocol||"https:"}//${t.hostname}${t.path}", status ${a.statusCode}: ${a.statusMessage}`));return}a.on("error",r.callback);let s=D_(a,"location");if(s!=null){n<this.maxRedirects?this.doDownload(e.prepareRedirectUrlOptions(s,t),r,n++):r.callback(this.createMaxRedirectError());return}r.responseHandler==null?E6t(r,a):r.responseHandler(a,r.callback)});this.addErrorAndTimeoutHandlers(i,r.callback,t.timeout),this.addRedirectHandlers(i,t,r.callback,n,a=>{this.doDownload(a,r,n++)}),i.end()}createMaxRedirectError(){return new Error(`Too many redirects (> ${this.maxRedirects})`)}addTimeOutHandler(t,r,n){t.on("socket",i=>{i.setTimeout(n,()=>{t.abort(),r(new Error("Request timed out"))})})}static prepareRedirectUrlOptions(t,r){let n=t6e(t,{...r}),i=n.headers;if(i?.authorization){let a=new e6e.URL(t);(a.hostname.endsWith(".amazonaws.com")||a.searchParams.has("X-Amz-Credential"))&&delete i.authorization}return n}static retryOnServerError(t,r=3){for(let n=0;;n++)try{return t()}catch(i){if(n<r&&(i instanceof a9&&i.isServerError()||i.code==="EPIPE"))continue;throw i}}};Mu.HttpExecutor=FY;function t6e(e,t){let r=TD(t);return jY(new e6e.URL(e),r),r}function jY(e,t){t.protocol=e.protocol,t.hostname=e.hostname,e.port?t.port=e.port:t.port&&delete t.port,t.path=e.pathname+e.search}var s9=class extends v6t.Transform{get actual(){return this._actual}constructor(t,r="sha512",n="base64"){super(),this.expected=t,this.algorithm=r,this.encoding=n,this._actual=null,this.isValidateOnEnd=!0,this.digester=(0,h6t.createHash)(r)}_transform(t,r,n){this.digester.update(t),n(null,t)}_flush(t){if(this._actual=this.digester.digest(this.encoding),this.isValidateOnEnd)try{this.validate()}catch(r){t(r);return}t(null)}validate(){if(this._actual==null)throw(0,Z_e.newError)("Not finished yet","ERR_STREAM_NOT_FINISHED");if(this._actual!==this.expected)throw(0,Z_e.newError)(`${this.algorithm} checksum mismatch, expected ${this.expected}, got ${this._actual}`,"ERR_CHECKSUM_MISMATCH");return null}};Mu.DigestTransform=s9;function x6t(e,t,r){return e!=null&&t!=null&&e!==t?(r(new Error(`checksum mismatch: expected ${t} but got ${e} (X-Checksum-Sha2 header)`)),!1):!0}function D_(e,t){let r=e.headers[t];return r==null?null:Array.isArray(r)?r.length===0?null:r[r.length-1]:r}function E6t(e,t){if(!x6t(D_(t,"X-Checksum-Sha2"),e.options.sha2,e.callback))return;let r=[];if(e.options.onProgress!=null){let s=D_(t,"content-length");s!=null&&r.push(new b6t.ProgressCallbackTransform(parseInt(s,10),e.options.cancellationToken,e.options.onProgress))}let n=e.options.sha512;n!=null?r.push(new s9(n,"sha512",n.length===128&&!n.includes("+")&&!n.includes("Z")&&!n.includes("=")?"hex":"base64")):e.options.sha2!=null&&r.push(new s9(e.options.sha2,"sha256","hex"));let i=(0,g6t.createWriteStream)(e.destination);r.push(i);let a=t;for(let s of r)s.on("error",o=>{i.close(),e.options.cancellationToken.cancelled||e.callback(o)}),a=a.pipe(s);i.on("finish",()=>{i.close(e.callback)})}function TD(e,t,r){r!=null&&(e.method=r),e.headers={...e.headers};let n=e.headers;return t!=null&&(n.authorization=t.startsWith("Basic")||t.startsWith("Bearer")?t:`token ${t}`),n["User-Agent"]==null&&(n["User-Agent"]="electron-builder"),(r==null||r==="GET"||n["Cache-Control"]==null)&&(n["Cache-Control"]="no-cache"),e.protocol==null&&process.versions.electron!=null&&(e.protocol="https:"),e}function OD(e,t){return JSON.stringify(e,(r,n)=>r.endsWith("Authorization")||r.endsWith("authorization")||r.endsWith("Password")||r.endsWith("PASSWORD")||r.endsWith("Token")||r.includes("password")||r.includes("token")||t!=null&&t.has(r)?"<stripped sensitive data>":n,2)}});var i6e=b(DD=>{"use strict";Object.defineProperty(DD,"__esModule",{value:!0});DD.MemoLazy=void 0;var NY=class{constructor(t,r){this.selector=t,this.creator=r,this.selected=void 0,this._value=void 0}get hasValue(){return this._value!==void 0}get value(){let t=this.selector();if(this._value!==void 0&&n6e(this.selected,t))return this._value;this.selected=t;let r=this.creator(t);return this.value=r,r}set value(t){this._value=t}};DD.MemoLazy=NY;function n6e(e,t){if(typeof e=="object"&&e!==null&&(typeof t=="object"&&t!==null)){let i=Object.keys(e),a=Object.keys(t);return i.length===a.length&&i.every(s=>n6e(e[s],t[s]))}return e===t}});var s6e=b(CD=>{"use strict";Object.defineProperty(CD,"__esModule",{value:!0});CD.githubUrl=S6t;CD.getS3LikeProviderBaseUrl=k6t;function S6t(e,t="github.com"){return`${e.protocol||"https"}://${e.host||t}`}function k6t(e){let t=e.provider;if(t==="s3")return A6t(e);if(t==="spaces")return T6t(e);throw new Error(`Not supported provider: ${t}`)}function A6t(e){let t;if(e.accelerate==!0)t=`https://${e.bucket}.s3-accelerate.amazonaws.com`;else if(e.endpoint!=null)t=`${e.endpoint}/${e.bucket}`;else if(e.bucket.includes(".")){if(e.region==null)throw new Error(`Bucket name "${e.bucket}" includes a dot, but S3 region is missing`);e.region==="us-east-1"?t=`https://s3.amazonaws.com/${e.bucket}`:t=`https://s3-${e.region}.amazonaws.com/${e.bucket}`}else e.region==="cn-north-1"?t=`https://${e.bucket}.s3.${e.region}.amazonaws.com.cn`:t=`https://${e.bucket}.s3.amazonaws.com`;return a6e(t,e.path)}function a6e(e,t){return t!=null&&t.length>0&&(t.startsWith("/")||(e+="/"),e+=t),e}function T6t(e){if(e.name==null)throw new Error("name is missing");if(e.region==null)throw new Error("region is missing");return a6e(`https://${e.name}.${e.region}.digitaloceanspaces.com`,e.path)}});var u6e=b(qY=>{"use strict";Object.defineProperty(qY,"__esModule",{value:!0});qY.retry=o6e;var O6t=_D();async function o6e(e,t,r,n=0,i=0,a){var s;let o=new O6t.CancellationToken;try{return await e()}catch(c){if((!((s=a?.(c))!==null&&s!==void 0)||s)&&t>0&&!o.cancelled)return await new Promise(p=>setTimeout(p,r+n*i)),await o6e(e,t-1,r,n,i+1,a);throw c}}});var c6e=b(LY=>{"use strict";Object.defineProperty(LY,"__esModule",{value:!0});LY.parseDn=D6t;function D6t(e){let t=!1,r=null,n="",i=0;e=e.trim();let a=new Map;for(let s=0;s<=e.length;s++){if(s===e.length){r!==null&&a.set(r,n);break}let o=e[s];if(t){if(o==='"'){t=!1;continue}}else{if(o==='"'){t=!0;continue}if(o==="\\"){s++;let c=parseInt(e.slice(s,s+2),16);Number.isNaN(c)?n+=e[s]:(s++,n+=String.fromCharCode(c));continue}if(r===null&&o==="="){r=n,n="";continue}if(o===","||o===";"||o==="+"){r!==null&&a.set(r,n),r=null,n="";continue}}if(o===" "&&!t){if(n.length===0)continue;if(s>i){let c=s;for(;e[c]===" ";)c++;i=c}if(i>=e.length||e[i]===","||e[i]===";"||r===null&&e[i]==="="||r!==null&&e[i]==="+"){s=i-1;continue}}n+=o}return a}});var h6e=b(C_=>{"use strict";Object.defineProperty(C_,"__esModule",{value:!0});C_.nil=C_.UUID=void 0;var f6e=require("crypto"),d6e=n9(),C6t="options.name must be either a string or a Buffer",l6e=(0,f6e.randomBytes)(16);l6e[0]=l6e[0]|1;var PD={},qn=[];for(let e=0;e<256;e++){let t=(e+256).toString(16).substr(1);PD[t]=e,qn[e]=t}var x2=class e{constructor(t){this.ascii=null,this.binary=null;let r=e.check(t);if(!r)throw new Error("not a UUID");this.version=r.version,r.format==="ascii"?this.ascii=t:this.binary=t}static v5(t,r){return P6t(t,"sha1",80,r)}toString(){return this.ascii==null&&(this.ascii=I6t(this.binary)),this.ascii}inspect(){return`UUID v${this.version} ${this.toString()}`}static check(t,r=0){if(typeof t=="string")return t=t.toLowerCase(),/^[a-f0-9]{8}(-[a-f0-9]{4}){3}-([a-f0-9]{12})$/.test(t)?t==="00000000-0000-0000-0000-000000000000"?{version:void 0,variant:"nil",format:"ascii"}:{version:(PD[t[14]+t[15]]&240)>>4,variant:p6e((PD[t[19]+t[20]]&224)>>5),format:"ascii"}:!1;if(Buffer.isBuffer(t)){if(t.length<r+16)return!1;let n=0;for(;n<16&&t[r+n]===0;n++);return n===16?{version:void 0,variant:"nil",format:"binary"}:{version:(t[r+6]&240)>>4,variant:p6e((t[r+8]&224)>>5),format:"binary"}}throw(0,d6e.newError)("Unknown type of uuid","ERR_UNKNOWN_UUID_TYPE")}static parse(t){let r=Buffer.allocUnsafe(16),n=0;for(let i=0;i<16;i++)r[i]=PD[t[n++]+t[n++]],(i===3||i===5||i===7||i===9)&&(n+=1);return r}};C_.UUID=x2;x2.OID=x2.parse("6ba7b812-9dad-11d1-80b4-00c04fd430c8");function p6e(e){switch(e){case 0:case 1:case 3:return"ncs";case 4:case 5:return"rfc4122";case 6:return"microsoft";default:return"future"}}var o9;(function(e){e[e.ASCII=0]="ASCII",e[e.BINARY=1]="BINARY",e[e.OBJECT=2]="OBJECT"})(o9||(o9={}));function P6t(e,t,r,n,i=o9.ASCII){let a=(0,f6e.createHash)(t);if(typeof e!="string"&&!Buffer.isBuffer(e))throw(0,d6e.newError)(C6t,"ERR_INVALID_UUID_NAME");a.update(n),a.update(e);let o=a.digest(),c;switch(i){case o9.BINARY:o[6]=o[6]&15|r,o[8]=o[8]&63|128,c=o;break;case o9.OBJECT:o[6]=o[6]&15|r,o[8]=o[8]&63|128,c=new x2(o);break;default:c=qn[o[0]]+qn[o[1]]+qn[o[2]]+qn[o[3]]+"-"+qn[o[4]]+qn[o[5]]+"-"+qn[o[6]&15|r]+qn[o[7]]+"-"+qn[o[8]&63|128]+qn[o[9]]+"-"+qn[o[10]]+qn[o[11]]+qn[o[12]]+qn[o[13]]+qn[o[14]]+qn[o[15]];break}return c}function I6t(e){return qn[e[0]]+qn[e[1]]+qn[e[2]]+qn[e[3]]+"-"+qn[e[4]]+qn[e[5]]+"-"+qn[e[6]]+qn[e[7]]+"-"+qn[e[8]]+qn[e[9]]+"-"+qn[e[10]]+qn[e[11]]+qn[e[12]]+qn[e[13]]+qn[e[14]]+qn[e[15]]}C_.nil=new x2("00000000-0000-0000-0000-000000000000")});var m6e=b(ID=>{(function(e){e.parser=function(R,$){return new r(R,$)},e.SAXParser=r,e.SAXStream=p,e.createStream=c,e.MAX_BUFFER_LENGTH=64*1024;var t=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];e.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"];function r(R,$){if(!(this instanceof r))return new r(R,$);var ke=this;i(ke),ke.q=ke.c="",ke.bufferCheckPosition=e.MAX_BUFFER_LENGTH,ke.opt=$||{},ke.opt.lowercase=ke.opt.lowercase||ke.opt.lowercasetags,ke.looseCase=ke.opt.lowercase?"toLowerCase":"toUpperCase",ke.tags=[],ke.closed=ke.closedRoot=ke.sawRoot=!1,ke.tag=ke.error=null,ke.strict=!!R,ke.noscript=!!(R||ke.opt.noscript),ke.state=P.BEGIN,ke.strictEntities=ke.opt.strictEntities,ke.ENTITIES=ke.strictEntities?Object.create(e.XML_ENTITIES):Object.create(e.ENTITIES),ke.attribList=[],ke.opt.xmlns&&(ke.ns=Object.create(v)),ke.opt.unquotedAttributeValues===void 0&&(ke.opt.unquotedAttributeValues=!R),ke.trackPosition=ke.opt.position!==!1,ke.trackPosition&&(ke.position=ke.line=ke.column=0),K(ke,"onready")}Object.create||(Object.create=function(R){function $(){}$.prototype=R;var ke=new $;return ke}),Object.keys||(Object.keys=function(R){var $=[];for(var ke in R)R.hasOwnProperty(ke)&&$.push(ke);return $});function n(R){for(var $=Math.max(e.MAX_BUFFER_LENGTH,10),ke=0,S=0,I=t.length;S<I;S++){var B=R[t[S]].length;if(B>$)switch(t[S]){case"textNode":ve(R);break;case"cdata":L(R,"oncdata",R.cdata),R.cdata="";break;case"script":L(R,"onscript",R.script),R.script="";break;default:N(R,"Max buffer length exceeded: "+t[S])}ke=Math.max(ke,B)}var se=e.MAX_BUFFER_LENGTH-ke;R.bufferCheckPosition=se+R.position}function i(R){for(var $=0,ke=t.length;$<ke;$++)R[t[$]]=""}function a(R){ve(R),R.cdata!==""&&(L(R,"oncdata",R.cdata),R.cdata=""),R.script!==""&&(L(R,"onscript",R.script),R.script="")}r.prototype={end:function(){re(this)},write:ye,resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){a(this)}};var s;try{s=require("stream").Stream}catch{s=function(){}}s||(s=function(){});var o=e.EVENTS.filter(function(R){return R!=="error"&&R!=="end"});function c(R,$){return new p(R,$)}function p(R,$){if(!(this instanceof p))return new p(R,$);s.apply(this),this._parser=new r(R,$),this.writable=!0,this.readable=!0;var ke=this;this._parser.onend=function(){ke.emit("end")},this._parser.onerror=function(S){ke.emit("error",S),ke._parser.error=null},this._decoder=null,o.forEach(function(S){Object.defineProperty(ke,"on"+S,{get:function(){return ke._parser["on"+S]},set:function(I){if(!I)return ke.removeAllListeners(S),ke._parser["on"+S]=I,I;ke.on(S,I)},enumerable:!0,configurable:!1})})}p.prototype=Object.create(s.prototype,{constructor:{value:p}}),p.prototype.write=function(R){if(typeof Buffer=="function"&&typeof Buffer.isBuffer=="function"&&Buffer.isBuffer(R)){if(!this._decoder){var $=require("string_decoder").StringDecoder;this._decoder=new $("utf8")}R=this._decoder.write(R)}return this._parser.write(R.toString()),this.emit("data",R),!0},p.prototype.end=function(R){return R&&R.length&&this.write(R),this._parser.end(),!0},p.prototype.on=function(R,$){var ke=this;return!ke._parser["on"+R]&&o.indexOf(R)!==-1&&(ke._parser["on"+R]=function(){var S=arguments.length===1?[arguments[0]]:Array.apply(null,arguments);S.splice(0,0,R),ke.emit.apply(ke,S)}),s.prototype.on.call(ke,R,$)};var f="[CDATA[",d="DOCTYPE",h="http://www.w3.org/XML/1998/namespace",g="http://www.w3.org/2000/xmlns/",v={xml:h,xmlns:g},y=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,_=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,x=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,A=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function D(R){return R===" "||R===`
`||R==="\r"||R==="	"}function j(R){return R==='"'||R==="'"}function H(R){return R===">"||D(R)}function F(R,$){return R.test($)}function z(R,$){return!F(R,$)}var P=0;e.STATE={BEGIN:P++,BEGIN_WHITESPACE:P++,TEXT:P++,TEXT_ENTITY:P++,OPEN_WAKA:P++,SGML_DECL:P++,SGML_DECL_QUOTED:P++,DOCTYPE:P++,DOCTYPE_QUOTED:P++,DOCTYPE_DTD:P++,DOCTYPE_DTD_QUOTED:P++,COMMENT_STARTING:P++,COMMENT:P++,COMMENT_ENDING:P++,COMMENT_ENDED:P++,CDATA:P++,CDATA_ENDING:P++,CDATA_ENDING_2:P++,PROC_INST:P++,PROC_INST_BODY:P++,PROC_INST_ENDING:P++,OPEN_TAG:P++,OPEN_TAG_SLASH:P++,ATTRIB:P++,ATTRIB_NAME:P++,ATTRIB_NAME_SAW_WHITE:P++,ATTRIB_VALUE:P++,ATTRIB_VALUE_QUOTED:P++,ATTRIB_VALUE_CLOSED:P++,ATTRIB_VALUE_UNQUOTED:P++,ATTRIB_VALUE_ENTITY_Q:P++,ATTRIB_VALUE_ENTITY_U:P++,CLOSE_TAG:P++,CLOSE_TAG_SAW_WHITE:P++,SCRIPT:P++,SCRIPT_ENDING:P++},e.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},e.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(e.ENTITIES).forEach(function(R){var $=e.ENTITIES[R],ke=typeof $=="number"?String.fromCharCode($):$;e.ENTITIES[R]=ke});for(var M in e.STATE)e.STATE[e.STATE[M]]=M;P=e.STATE;function K(R,$,ke){R[$]&&R[$](ke)}function L(R,$,ke){R.textNode&&ve(R),K(R,$,ke)}function ve(R){R.textNode=U(R.opt,R.textNode),R.textNode&&K(R,"ontext",R.textNode),R.textNode=""}function U(R,$){return R.trim&&($=$.trim()),R.normalize&&($=$.replace(/\s+/g," ")),$}function N(R,$){return ve(R),R.trackPosition&&($+=`
Line: `+R.line+`
Column: `+R.column+`
Char: `+R.c),$=new Error($),R.error=$,K(R,"onerror",$),R}function re(R){return R.sawRoot&&!R.closedRoot&&ue(R,"Unclosed root tag"),R.state!==P.BEGIN&&R.state!==P.BEGIN_WHITESPACE&&R.state!==P.TEXT&&N(R,"Unexpected end"),ve(R),R.c="",R.closed=!0,K(R,"onend"),r.call(R,R.strict,R.opt),R}function ue(R,$){if(typeof R!="object"||!(R instanceof r))throw new Error("bad call to strictFail");R.strict&&N(R,$)}function Q(R){R.strict||(R.tagName=R.tagName[R.looseCase]());var $=R.tags[R.tags.length-1]||R,ke=R.tag={name:R.tagName,attributes:{}};R.opt.xmlns&&(ke.ns=$.ns),R.attribList.length=0,L(R,"onopentagstart",ke)}function ne(R,$){var ke=R.indexOf(":"),S=ke<0?["",R]:R.split(":"),I=S[0],B=S[1];return $&&R==="xmlns"&&(I="xmlns",B=""),{prefix:I,local:B}}function G(R){if(R.strict||(R.attribName=R.attribName[R.looseCase]()),R.attribList.indexOf(R.attribName)!==-1||R.tag.attributes.hasOwnProperty(R.attribName)){R.attribName=R.attribValue="";return}if(R.opt.xmlns){var $=ne(R.attribName,!0),ke=$.prefix,S=$.local;if(ke==="xmlns")if(S==="xml"&&R.attribValue!==h)ue(R,"xml: prefix must be bound to "+h+`
Actual: `+R.attribValue);else if(S==="xmlns"&&R.attribValue!==g)ue(R,"xmlns: prefix must be bound to "+g+`
Actual: `+R.attribValue);else{var I=R.tag,B=R.tags[R.tags.length-1]||R;I.ns===B.ns&&(I.ns=Object.create(B.ns)),I.ns[S]=R.attribValue}R.attribList.push([R.attribName,R.attribValue])}else R.tag.attributes[R.attribName]=R.attribValue,L(R,"onattribute",{name:R.attribName,value:R.attribValue});R.attribName=R.attribValue=""}function de(R,$){if(R.opt.xmlns){var ke=R.tag,S=ne(R.tagName);ke.prefix=S.prefix,ke.local=S.local,ke.uri=ke.ns[S.prefix]||"",ke.prefix&&!ke.uri&&(ue(R,"Unbound namespace prefix: "+JSON.stringify(R.tagName)),ke.uri=S.prefix);var I=R.tags[R.tags.length-1]||R;ke.ns&&I.ns!==ke.ns&&Object.keys(ke.ns).forEach(function(kt){L(R,"onopennamespace",{prefix:kt,uri:ke.ns[kt]})});for(var B=0,se=R.attribList.length;B<se;B++){var ae=R.attribList[B],me=ae[0],Se=ae[1],Ee=ne(me,!0),De=Ee.prefix,Le=Ee.local,Ne=De===""?"":ke.ns[De]||"",Ve={name:me,value:Se,prefix:De,local:Le,uri:Ne};De&&De!=="xmlns"&&!Ne&&(ue(R,"Unbound namespace prefix: "+JSON.stringify(De)),Ve.uri=De),R.tag.attributes[me]=Ve,L(R,"onattribute",Ve)}R.attribList.length=0}R.tag.isSelfClosing=!!$,R.sawRoot=!0,R.tags.push(R.tag),L(R,"onopentag",R.tag),$||(!R.noscript&&R.tagName.toLowerCase()==="script"?R.state=P.SCRIPT:R.state=P.TEXT,R.tag=null,R.tagName=""),R.attribName=R.attribValue="",R.attribList.length=0}function xe(R){if(!R.tagName){ue(R,"Weird empty close tag."),R.textNode+="</>",R.state=P.TEXT;return}if(R.script){if(R.tagName!=="script"){R.script+="</"+R.tagName+">",R.tagName="",R.state=P.SCRIPT;return}L(R,"onscript",R.script),R.script=""}var $=R.tags.length,ke=R.tagName;R.strict||(ke=ke[R.looseCase]());for(var S=ke;$--;){var I=R.tags[$];if(I.name!==S)ue(R,"Unexpected close tag");else break}if($<0){ue(R,"Unmatched closing tag: "+R.tagName),R.textNode+="</"+R.tagName+">",R.state=P.TEXT;return}R.tagName=ke;for(var B=R.tags.length;B-- >$;){var se=R.tag=R.tags.pop();R.tagName=R.tag.name,L(R,"onclosetag",R.tagName);var ae={};for(var me in se.ns)ae[me]=se.ns[me];var Se=R.tags[R.tags.length-1]||R;R.opt.xmlns&&se.ns!==Se.ns&&Object.keys(se.ns).forEach(function(Ee){var De=se.ns[Ee];L(R,"onclosenamespace",{prefix:Ee,uri:De})})}$===0&&(R.closedRoot=!0),R.tagName=R.attribValue=R.attribName="",R.attribList.length=0,R.state=P.TEXT}function ge(R){var $=R.entity,ke=$.toLowerCase(),S,I="";return R.ENTITIES[$]?R.ENTITIES[$]:R.ENTITIES[ke]?R.ENTITIES[ke]:($=ke,$.charAt(0)==="#"&&($.charAt(1)==="x"?($=$.slice(2),S=parseInt($,16),I=S.toString(16)):($=$.slice(1),S=parseInt($,10),I=S.toString(10))),$=$.replace(/^0+/,""),isNaN(S)||I.toLowerCase()!==$?(ue(R,"Invalid character entity"),"&"+R.entity+";"):String.fromCodePoint(S))}function V(R,$){$==="<"?(R.state=P.OPEN_WAKA,R.startTagPosition=R.position):D($)||(ue(R,"Non-whitespace before first tag."),R.textNode=$,R.state=P.TEXT)}function ce(R,$){var ke="";return $<R.length&&(ke=R.charAt($)),ke}function ye(R){var $=this;if(this.error)throw this.error;if($.closed)return N($,"Cannot write after close. Assign an onready handler.");if(R===null)return re($);typeof R=="object"&&(R=R.toString());for(var ke=0,S="";S=ce(R,ke++),$.c=S,!!S;)switch($.trackPosition&&($.position++,S===`
`?($.line++,$.column=0):$.column++),$.state){case P.BEGIN:if($.state=P.BEGIN_WHITESPACE,S==="\uFEFF")continue;V($,S);continue;case P.BEGIN_WHITESPACE:V($,S);continue;case P.TEXT:if($.sawRoot&&!$.closedRoot){for(var I=ke-1;S&&S!=="<"&&S!=="&";)S=ce(R,ke++),S&&$.trackPosition&&($.position++,S===`
`?($.line++,$.column=0):$.column++);$.textNode+=R.substring(I,ke-1)}S==="<"&&!($.sawRoot&&$.closedRoot&&!$.strict)?($.state=P.OPEN_WAKA,$.startTagPosition=$.position):(!D(S)&&(!$.sawRoot||$.closedRoot)&&ue($,"Text data outside of root node."),S==="&"?$.state=P.TEXT_ENTITY:$.textNode+=S);continue;case P.SCRIPT:S==="<"?$.state=P.SCRIPT_ENDING:$.script+=S;continue;case P.SCRIPT_ENDING:S==="/"?$.state=P.CLOSE_TAG:($.script+="<"+S,$.state=P.SCRIPT);continue;case P.OPEN_WAKA:if(S==="!")$.state=P.SGML_DECL,$.sgmlDecl="";else if(!D(S))if(F(y,S))$.state=P.OPEN_TAG,$.tagName=S;else if(S==="/")$.state=P.CLOSE_TAG,$.tagName="";else if(S==="?")$.state=P.PROC_INST,$.procInstName=$.procInstBody="";else{if(ue($,"Unencoded <"),$.startTagPosition+1<$.position){var B=$.position-$.startTagPosition;S=new Array(B).join(" ")+S}$.textNode+="<"+S,$.state=P.TEXT}continue;case P.SGML_DECL:if($.sgmlDecl+S==="--"){$.state=P.COMMENT,$.comment="",$.sgmlDecl="";continue}$.doctype&&$.doctype!==!0&&$.sgmlDecl?($.state=P.DOCTYPE_DTD,$.doctype+="<!"+$.sgmlDecl+S,$.sgmlDecl=""):($.sgmlDecl+S).toUpperCase()===f?(L($,"onopencdata"),$.state=P.CDATA,$.sgmlDecl="",$.cdata=""):($.sgmlDecl+S).toUpperCase()===d?($.state=P.DOCTYPE,($.doctype||$.sawRoot)&&ue($,"Inappropriately located doctype declaration"),$.doctype="",$.sgmlDecl=""):S===">"?(L($,"onsgmldeclaration",$.sgmlDecl),$.sgmlDecl="",$.state=P.TEXT):(j(S)&&($.state=P.SGML_DECL_QUOTED),$.sgmlDecl+=S);continue;case P.SGML_DECL_QUOTED:S===$.q&&($.state=P.SGML_DECL,$.q=""),$.sgmlDecl+=S;continue;case P.DOCTYPE:S===">"?($.state=P.TEXT,L($,"ondoctype",$.doctype),$.doctype=!0):($.doctype+=S,S==="["?$.state=P.DOCTYPE_DTD:j(S)&&($.state=P.DOCTYPE_QUOTED,$.q=S));continue;case P.DOCTYPE_QUOTED:$.doctype+=S,S===$.q&&($.q="",$.state=P.DOCTYPE);continue;case P.DOCTYPE_DTD:S==="]"?($.doctype+=S,$.state=P.DOCTYPE):S==="<"?($.state=P.OPEN_WAKA,$.startTagPosition=$.position):j(S)?($.doctype+=S,$.state=P.DOCTYPE_DTD_QUOTED,$.q=S):$.doctype+=S;continue;case P.DOCTYPE_DTD_QUOTED:$.doctype+=S,S===$.q&&($.state=P.DOCTYPE_DTD,$.q="");continue;case P.COMMENT:S==="-"?$.state=P.COMMENT_ENDING:$.comment+=S;continue;case P.COMMENT_ENDING:S==="-"?($.state=P.COMMENT_ENDED,$.comment=U($.opt,$.comment),$.comment&&L($,"oncomment",$.comment),$.comment=""):($.comment+="-"+S,$.state=P.COMMENT);continue;case P.COMMENT_ENDED:S!==">"?(ue($,"Malformed comment"),$.comment+="--"+S,$.state=P.COMMENT):$.doctype&&$.doctype!==!0?$.state=P.DOCTYPE_DTD:$.state=P.TEXT;continue;case P.CDATA:S==="]"?$.state=P.CDATA_ENDING:$.cdata+=S;continue;case P.CDATA_ENDING:S==="]"?$.state=P.CDATA_ENDING_2:($.cdata+="]"+S,$.state=P.CDATA);continue;case P.CDATA_ENDING_2:S===">"?($.cdata&&L($,"oncdata",$.cdata),L($,"onclosecdata"),$.cdata="",$.state=P.TEXT):S==="]"?$.cdata+="]":($.cdata+="]]"+S,$.state=P.CDATA);continue;case P.PROC_INST:S==="?"?$.state=P.PROC_INST_ENDING:D(S)?$.state=P.PROC_INST_BODY:$.procInstName+=S;continue;case P.PROC_INST_BODY:if(!$.procInstBody&&D(S))continue;S==="?"?$.state=P.PROC_INST_ENDING:$.procInstBody+=S;continue;case P.PROC_INST_ENDING:S===">"?(L($,"onprocessinginstruction",{name:$.procInstName,body:$.procInstBody}),$.procInstName=$.procInstBody="",$.state=P.TEXT):($.procInstBody+="?"+S,$.state=P.PROC_INST_BODY);continue;case P.OPEN_TAG:F(_,S)?$.tagName+=S:(Q($),S===">"?de($):S==="/"?$.state=P.OPEN_TAG_SLASH:(D(S)||ue($,"Invalid character in tag name"),$.state=P.ATTRIB));continue;case P.OPEN_TAG_SLASH:S===">"?(de($,!0),xe($)):(ue($,"Forward-slash in opening tag not followed by >"),$.state=P.ATTRIB);continue;case P.ATTRIB:if(D(S))continue;S===">"?de($):S==="/"?$.state=P.OPEN_TAG_SLASH:F(y,S)?($.attribName=S,$.attribValue="",$.state=P.ATTRIB_NAME):ue($,"Invalid attribute name");continue;case P.ATTRIB_NAME:S==="="?$.state=P.ATTRIB_VALUE:S===">"?(ue($,"Attribute without value"),$.attribValue=$.attribName,G($),de($)):D(S)?$.state=P.ATTRIB_NAME_SAW_WHITE:F(_,S)?$.attribName+=S:ue($,"Invalid attribute name");continue;case P.ATTRIB_NAME_SAW_WHITE:if(S==="=")$.state=P.ATTRIB_VALUE;else{if(D(S))continue;ue($,"Attribute without value"),$.tag.attributes[$.attribName]="",$.attribValue="",L($,"onattribute",{name:$.attribName,value:""}),$.attribName="",S===">"?de($):F(y,S)?($.attribName=S,$.state=P.ATTRIB_NAME):(ue($,"Invalid attribute name"),$.state=P.ATTRIB)}continue;case P.ATTRIB_VALUE:if(D(S))continue;j(S)?($.q=S,$.state=P.ATTRIB_VALUE_QUOTED):($.opt.unquotedAttributeValues||N($,"Unquoted attribute value"),$.state=P.ATTRIB_VALUE_UNQUOTED,$.attribValue=S);continue;case P.ATTRIB_VALUE_QUOTED:if(S!==$.q){S==="&"?$.state=P.ATTRIB_VALUE_ENTITY_Q:$.attribValue+=S;continue}G($),$.q="",$.state=P.ATTRIB_VALUE_CLOSED;continue;case P.ATTRIB_VALUE_CLOSED:D(S)?$.state=P.ATTRIB:S===">"?de($):S==="/"?$.state=P.OPEN_TAG_SLASH:F(y,S)?(ue($,"No whitespace between attributes"),$.attribName=S,$.attribValue="",$.state=P.ATTRIB_NAME):ue($,"Invalid attribute name");continue;case P.ATTRIB_VALUE_UNQUOTED:if(!H(S)){S==="&"?$.state=P.ATTRIB_VALUE_ENTITY_U:$.attribValue+=S;continue}G($),S===">"?de($):$.state=P.ATTRIB;continue;case P.CLOSE_TAG:if($.tagName)S===">"?xe($):F(_,S)?$.tagName+=S:$.script?($.script+="</"+$.tagName,$.tagName="",$.state=P.SCRIPT):(D(S)||ue($,"Invalid tagname in closing tag"),$.state=P.CLOSE_TAG_SAW_WHITE);else{if(D(S))continue;z(y,S)?$.script?($.script+="</"+S,$.state=P.SCRIPT):ue($,"Invalid tagname in closing tag."):$.tagName=S}continue;case P.CLOSE_TAG_SAW_WHITE:if(D(S))continue;S===">"?xe($):ue($,"Invalid characters in closing tag");continue;case P.TEXT_ENTITY:case P.ATTRIB_VALUE_ENTITY_Q:case P.ATTRIB_VALUE_ENTITY_U:var se,ae;switch($.state){case P.TEXT_ENTITY:se=P.TEXT,ae="textNode";break;case P.ATTRIB_VALUE_ENTITY_Q:se=P.ATTRIB_VALUE_QUOTED,ae="attribValue";break;case P.ATTRIB_VALUE_ENTITY_U:se=P.ATTRIB_VALUE_UNQUOTED,ae="attribValue";break}if(S===";"){var me=ge($);$.opt.unparsedEntities&&!Object.values(e.XML_ENTITIES).includes(me)?($.entity="",$.state=se,$.write(me)):($[ae]+=me,$.entity="",$.state=se)}else F($.entity.length?A:x,S)?$.entity+=S:(ue($,"Invalid character in entity name"),$[ae]+="&"+$.entity+S,$.entity="",$.state=se);continue;default:throw new Error($,"Unknown state: "+$.state)}return $.position>=$.bufferCheckPosition&&n($),$}String.fromCodePoint||function(){var R=String.fromCharCode,$=Math.floor,ke=function(){var S=16384,I=[],B,se,ae=-1,me=arguments.length;if(!me)return"";for(var Se="";++ae<me;){var Ee=Number(arguments[ae]);if(!isFinite(Ee)||Ee<0||Ee>1114111||$(Ee)!==Ee)throw RangeError("Invalid code point: "+Ee);Ee<=65535?I.push(Ee):(Ee-=65536,B=(Ee>>10)+55296,se=Ee%1024+56320,I.push(B,se)),(ae+1===me||I.length>S)&&(Se+=R.apply(null,I),I.length=0)}return Se};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:ke,configurable:!0,writable:!0}):String.fromCodePoint=ke}()})(typeof ID>"u"?ID.sax={}:ID)});var v6e=b(u9=>{"use strict";Object.defineProperty(u9,"__esModule",{value:!0});u9.XElement=void 0;u9.parseXml=N6t;var R6t=m6e(),RD=n9(),FD=class{constructor(t){if(this.name=t,this.value="",this.attributes=null,this.isCData=!1,this.elements=null,!t)throw(0,RD.newError)("Element name cannot be empty","ERR_XML_ELEMENT_NAME_EMPTY");if(!j6t(t))throw(0,RD.newError)(`Invalid element name: ${t}`,"ERR_XML_ELEMENT_INVALID_NAME")}attribute(t){let r=this.attributes===null?null:this.attributes[t];if(r==null)throw(0,RD.newError)(`No attribute "${t}"`,"ERR_XML_MISSED_ATTRIBUTE");return r}removeAttribute(t){this.attributes!==null&&delete this.attributes[t]}element(t,r=!1,n=null){let i=this.elementOrNull(t,r);if(i===null)throw(0,RD.newError)(n||`No element "${t}"`,"ERR_XML_MISSED_ELEMENT");return i}elementOrNull(t,r=!1){if(this.elements===null)return null;for(let n of this.elements)if(g6e(n,t,r))return n;return null}getElements(t,r=!1){return this.elements===null?[]:this.elements.filter(n=>g6e(n,t,r))}elementValueOrEmpty(t,r=!1){let n=this.elementOrNull(t,r);return n===null?"":n.value}};u9.XElement=FD;var F6t=new RegExp(/^[A-Za-z_][:A-Za-z0-9_-]*$/i);function j6t(e){return F6t.test(e)}function g6e(e,t,r){let n=e.name;return n===t||r===!0&&n.length===t.length&&n.toLowerCase()===t.toLowerCase()}function N6t(e){let t=null,r=R6t.parser(!0,{}),n=[];return r.onopentag=i=>{let a=new FD(i.name);if(a.attributes=i.attributes,t===null)t=a;else{let s=n[n.length-1];s.elements==null&&(s.elements=[]),s.elements.push(a)}n.push(a)},r.onclosetag=()=>{n.pop()},r.ontext=i=>{n.length>0&&(n[n.length-1].value=i)},r.oncdata=i=>{let a=n[n.length-1];a.value=i,a.isCData=!0},r.onerror=i=>{throw i},r.write(e),t}});var no=b(Cr=>{"use strict";Object.defineProperty(Cr,"__esModule",{value:!0});Cr.CURRENT_APP_PACKAGE_FILE_NAME=Cr.CURRENT_APP_INSTALLER_FILE_NAME=Cr.XElement=Cr.parseXml=Cr.UUID=Cr.parseDn=Cr.retry=Cr.githubUrl=Cr.getS3LikeProviderBaseUrl=Cr.ProgressCallbackTransform=Cr.MemoLazy=Cr.safeStringifyJson=Cr.safeGetHeader=Cr.parseJson=Cr.HttpExecutor=Cr.HttpError=Cr.DigestTransform=Cr.createHttpError=Cr.configureRequestUrl=Cr.configureRequestOptionsFromUrl=Cr.configureRequestOptions=Cr.newError=Cr.CancellationToken=Cr.CancellationError=void 0;Cr.asArray=z6t;var y6e=_D();Object.defineProperty(Cr,"CancellationError",{enumerable:!0,get:function(){return y6e.CancellationError}});Object.defineProperty(Cr,"CancellationToken",{enumerable:!0,get:function(){return y6e.CancellationToken}});var q6t=n9();Object.defineProperty(Cr,"newError",{enumerable:!0,get:function(){return q6t.newError}});var yd=r6e();Object.defineProperty(Cr,"configureRequestOptions",{enumerable:!0,get:function(){return yd.configureRequestOptions}});Object.defineProperty(Cr,"configureRequestOptionsFromUrl",{enumerable:!0,get:function(){return yd.configureRequestOptionsFromUrl}});Object.defineProperty(Cr,"configureRequestUrl",{enumerable:!0,get:function(){return yd.configureRequestUrl}});Object.defineProperty(Cr,"createHttpError",{enumerable:!0,get:function(){return yd.createHttpError}});Object.defineProperty(Cr,"DigestTransform",{enumerable:!0,get:function(){return yd.DigestTransform}});Object.defineProperty(Cr,"HttpError",{enumerable:!0,get:function(){return yd.HttpError}});Object.defineProperty(Cr,"HttpExecutor",{enumerable:!0,get:function(){return yd.HttpExecutor}});Object.defineProperty(Cr,"parseJson",{enumerable:!0,get:function(){return yd.parseJson}});Object.defineProperty(Cr,"safeGetHeader",{enumerable:!0,get:function(){return yd.safeGetHeader}});Object.defineProperty(Cr,"safeStringifyJson",{enumerable:!0,get:function(){return yd.safeStringifyJson}});var L6t=i6e();Object.defineProperty(Cr,"MemoLazy",{enumerable:!0,get:function(){return L6t.MemoLazy}});var $6t=IY();Object.defineProperty(Cr,"ProgressCallbackTransform",{enumerable:!0,get:function(){return $6t.ProgressCallbackTransform}});var b6e=s6e();Object.defineProperty(Cr,"getS3LikeProviderBaseUrl",{enumerable:!0,get:function(){return b6e.getS3LikeProviderBaseUrl}});Object.defineProperty(Cr,"githubUrl",{enumerable:!0,get:function(){return b6e.githubUrl}});var B6t=u6e();Object.defineProperty(Cr,"retry",{enumerable:!0,get:function(){return B6t.retry}});var M6t=c6e();Object.defineProperty(Cr,"parseDn",{enumerable:!0,get:function(){return M6t.parseDn}});var U6t=h6e();Object.defineProperty(Cr,"UUID",{enumerable:!0,get:function(){return U6t.UUID}});var w6e=v6e();Object.defineProperty(Cr,"parseXml",{enumerable:!0,get:function(){return w6e.parseXml}});Object.defineProperty(Cr,"XElement",{enumerable:!0,get:function(){return w6e.XElement}});Cr.CURRENT_APP_INSTALLER_FILE_NAME="installer.exe";Cr.CURRENT_APP_PACKAGE_FILE_NAME="package.7z";function z6t(e){return e==null?[]:Array.isArray(e)?e:[e]}});var P_=b((qjr,E2)=>{"use strict";function _6e(e){return typeof e>"u"||e===null}function H6t(e){return typeof e=="object"&&e!==null}function V6t(e){return Array.isArray(e)?e:_6e(e)?[]:[e]}function G6t(e,t){var r,n,i,a;if(t)for(a=Object.keys(t),r=0,n=a.length;r<n;r+=1)i=a[r],e[i]=t[i];return e}function W6t(e,t){var r="",n;for(n=0;n<t;n+=1)r+=e;return r}function K6t(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}E2.exports.isNothing=_6e;E2.exports.isObject=H6t;E2.exports.toArray=V6t;E2.exports.repeat=W6t;E2.exports.isNegativeZero=K6t;E2.exports.extend=G6t});var I_=b((Ljr,E6e)=>{"use strict";function x6e(e,t){var r="",n=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(r+='in "'+e.mark.name+'" '),r+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!t&&e.mark.snippet&&(r+=`

`+e.mark.snippet),n+" "+r):n}function c9(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=x6e(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}c9.prototype=Object.create(Error.prototype);c9.prototype.constructor=c9;c9.prototype.toString=function(t){return this.name+": "+x6e(this,t)};E6e.exports=c9});var k6e=b(($jr,S6e)=>{"use strict";var l9=P_();function $Y(e,t,r,n,i){var a="",s="",o=Math.floor(i/2)-1;return n-t>o&&(a=" ... ",t=n-o+a.length),r-n>o&&(s=" ...",r=n+o-s.length),{str:a+e.slice(t,r).replace(/\t/g,"\u2192")+s,pos:n-t+a.length}}function BY(e,t){return l9.repeat(" ",t-e.length)+e}function Y6t(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),typeof t.indent!="number"&&(t.indent=1),typeof t.linesBefore!="number"&&(t.linesBefore=3),typeof t.linesAfter!="number"&&(t.linesAfter=2);for(var r=/\r?\n|\r|\0/g,n=[0],i=[],a,s=-1;a=r.exec(e.buffer);)i.push(a.index),n.push(a.index+a[0].length),e.position<=a.index&&s<0&&(s=n.length-2);s<0&&(s=n.length-1);var o="",c,p,f=Math.min(e.line+t.linesAfter,i.length).toString().length,d=t.maxLength-(t.indent+f+3);for(c=1;c<=t.linesBefore&&!(s-c<0);c++)p=$Y(e.buffer,n[s-c],i[s-c],e.position-(n[s]-n[s-c]),d),o=l9.repeat(" ",t.indent)+BY((e.line-c+1).toString(),f)+" | "+p.str+`
`+o;for(p=$Y(e.buffer,n[s],i[s],e.position,d),o+=l9.repeat(" ",t.indent)+BY((e.line+1).toString(),f)+" | "+p.str+`
`,o+=l9.repeat("-",t.indent+f+3+p.pos)+`^
`,c=1;c<=t.linesAfter&&!(s+c>=i.length);c++)p=$Y(e.buffer,n[s+c],i[s+c],e.position-(n[s]-n[s+c]),d),o+=l9.repeat(" ",t.indent)+BY((e.line+c+1).toString(),f)+" | "+p.str+`
`;return o.replace(/\n$/,"")}S6e.exports=Y6t});var ru=b((Bjr,T6e)=>{"use strict";var A6e=I_(),J6t=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],X6t=["scalar","sequence","mapping"];function Q6t(e){var t={};return e!==null&&Object.keys(e).forEach(function(r){e[r].forEach(function(n){t[String(n)]=r})}),t}function Z6t(e,t){if(t=t||{},Object.keys(t).forEach(function(r){if(J6t.indexOf(r)===-1)throw new A6e('Unknown option "'+r+'" is met in definition of "'+e+'" YAML type.')}),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(r){return r},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=Q6t(t.styleAliases||null),X6t.indexOf(this.kind)===-1)throw new A6e('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}T6e.exports=Z6t});var zY=b((Mjr,D6e)=>{"use strict";var p9=I_(),MY=ru();function O6e(e,t){var r=[];return e[t].forEach(function(n){var i=r.length;r.forEach(function(a,s){a.tag===n.tag&&a.kind===n.kind&&a.multi===n.multi&&(i=s)}),r[i]=n}),r}function e4t(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},t,r;function n(i){i.multi?(e.multi[i.kind].push(i),e.multi.fallback.push(i)):e[i.kind][i.tag]=e.fallback[i.tag]=i}for(t=0,r=arguments.length;t<r;t+=1)arguments[t].forEach(n);return e}function UY(e){return this.extend(e)}UY.prototype.extend=function(t){var r=[],n=[];if(t instanceof MY)n.push(t);else if(Array.isArray(t))n=n.concat(t);else if(t&&(Array.isArray(t.implicit)||Array.isArray(t.explicit)))t.implicit&&(r=r.concat(t.implicit)),t.explicit&&(n=n.concat(t.explicit));else throw new p9("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");r.forEach(function(a){if(!(a instanceof MY))throw new p9("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(a.loadKind&&a.loadKind!=="scalar")throw new p9("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(a.multi)throw new p9("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),n.forEach(function(a){if(!(a instanceof MY))throw new p9("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var i=Object.create(UY.prototype);return i.implicit=(this.implicit||[]).concat(r),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=O6e(i,"implicit"),i.compiledExplicit=O6e(i,"explicit"),i.compiledTypeMap=e4t(i.compiledImplicit,i.compiledExplicit),i};D6e.exports=UY});var HY=b((Ujr,C6e)=>{"use strict";var t4t=ru();C6e.exports=new t4t("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})});var VY=b((zjr,P6e)=>{"use strict";var r4t=ru();P6e.exports=new r4t("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})});var GY=b((Hjr,I6e)=>{"use strict";var n4t=ru();I6e.exports=new n4t("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})});var WY=b((Vjr,R6e)=>{"use strict";var i4t=zY();R6e.exports=new i4t({explicit:[HY(),VY(),GY()]})});var KY=b((Gjr,F6e)=>{"use strict";var a4t=ru();function s4t(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function o4t(){return null}function u4t(e){return e===null}F6e.exports=new a4t("tag:yaml.org,2002:null",{kind:"scalar",resolve:s4t,construct:o4t,predicate:u4t,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"})});var YY=b((Wjr,j6e)=>{"use strict";var c4t=ru();function l4t(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function p4t(e){return e==="true"||e==="True"||e==="TRUE"}function f4t(e){return Object.prototype.toString.call(e)==="[object Boolean]"}j6e.exports=new c4t("tag:yaml.org,2002:bool",{kind:"scalar",resolve:l4t,construct:p4t,predicate:f4t,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})});var JY=b((Kjr,N6e)=>{"use strict";var d4t=P_(),h4t=ru();function m4t(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function g4t(e){return 48<=e&&e<=55}function v4t(e){return 48<=e&&e<=57}function y4t(e){if(e===null)return!1;var t=e.length,r=0,n=!1,i;if(!t)return!1;if(i=e[r],(i==="-"||i==="+")&&(i=e[++r]),i==="0"){if(r+1===t)return!0;if(i=e[++r],i==="b"){for(r++;r<t;r++)if(i=e[r],i!=="_"){if(i!=="0"&&i!=="1")return!1;n=!0}return n&&i!=="_"}if(i==="x"){for(r++;r<t;r++)if(i=e[r],i!=="_"){if(!m4t(e.charCodeAt(r)))return!1;n=!0}return n&&i!=="_"}if(i==="o"){for(r++;r<t;r++)if(i=e[r],i!=="_"){if(!g4t(e.charCodeAt(r)))return!1;n=!0}return n&&i!=="_"}}if(i==="_")return!1;for(;r<t;r++)if(i=e[r],i!=="_"){if(!v4t(e.charCodeAt(r)))return!1;n=!0}return!(!n||i==="_")}function b4t(e){var t=e,r=1,n;if(t.indexOf("_")!==-1&&(t=t.replace(/_/g,"")),n=t[0],(n==="-"||n==="+")&&(n==="-"&&(r=-1),t=t.slice(1),n=t[0]),t==="0")return 0;if(n==="0"){if(t[1]==="b")return r*parseInt(t.slice(2),2);if(t[1]==="x")return r*parseInt(t.slice(2),16);if(t[1]==="o")return r*parseInt(t.slice(2),8)}return r*parseInt(t,10)}function w4t(e){return Object.prototype.toString.call(e)==="[object Number]"&&e%1===0&&!d4t.isNegativeZero(e)}N6e.exports=new h4t("tag:yaml.org,2002:int",{kind:"scalar",resolve:y4t,construct:b4t,predicate:w4t,represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var XY=b((Yjr,L6e)=>{"use strict";var q6e=P_(),_4t=ru(),x4t=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function E4t(e){return!(e===null||!x4t.test(e)||e[e.length-1]==="_")}function S4t(e){var t,r;return t=e.replace(/_/g,"").toLowerCase(),r=t[0]==="-"?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:r*parseFloat(t,10)}var k4t=/^[-+]?[0-9]+e/;function A4t(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(q6e.isNegativeZero(e))return"-0.0";return r=e.toString(10),k4t.test(r)?r.replace("e",".e"):r}function T4t(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||q6e.isNegativeZero(e))}L6e.exports=new _4t("tag:yaml.org,2002:float",{kind:"scalar",resolve:E4t,construct:S4t,predicate:T4t,represent:A4t,defaultStyle:"lowercase"})});var QY=b((Jjr,$6e)=>{"use strict";$6e.exports=WY().extend({implicit:[KY(),YY(),JY(),XY()]})});var ZY=b((Xjr,B6e)=>{"use strict";B6e.exports=QY()});var eJ=b((Qjr,z6e)=>{"use strict";var O4t=ru(),M6e=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),U6e=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function D4t(e){return e===null?!1:M6e.exec(e)!==null||U6e.exec(e)!==null}function C4t(e){var t,r,n,i,a,s,o,c=0,p=null,f,d,h;if(t=M6e.exec(e),t===null&&(t=U6e.exec(e)),t===null)throw new Error("Date resolve error");if(r=+t[1],n=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(r,n,i));if(a=+t[4],s=+t[5],o=+t[6],t[7]){for(c=t[7].slice(0,3);c.length<3;)c+="0";c=+c}return t[9]&&(f=+t[10],d=+(t[11]||0),p=(f*60+d)*6e4,t[9]==="-"&&(p=-p)),h=new Date(Date.UTC(r,n,i,a,s,o,c)),p&&h.setTime(h.getTime()-p),h}function P4t(e){return e.toISOString()}z6e.exports=new O4t("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:D4t,construct:C4t,instanceOf:Date,represent:P4t})});var tJ=b((Zjr,H6e)=>{"use strict";var I4t=ru();function R4t(e){return e==="<<"||e===null}H6e.exports=new I4t("tag:yaml.org,2002:merge",{kind:"scalar",resolve:R4t})});var nJ=b((eNr,V6e)=>{"use strict";var F4t=ru(),rJ=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
\r`;function j4t(e){if(e===null)return!1;var t,r,n=0,i=e.length,a=rJ;for(r=0;r<i;r++)if(t=a.indexOf(e.charAt(r)),!(t>64)){if(t<0)return!1;n+=6}return n%8===0}function N4t(e){var t,r,n=e.replace(/[\r\n=]/g,""),i=n.length,a=rJ,s=0,o=[];for(t=0;t<i;t++)t%4===0&&t&&(o.push(s>>16&255),o.push(s>>8&255),o.push(s&255)),s=s<<6|a.indexOf(n.charAt(t));return r=i%4*6,r===0?(o.push(s>>16&255),o.push(s>>8&255),o.push(s&255)):r===18?(o.push(s>>10&255),o.push(s>>2&255)):r===12&&o.push(s>>4&255),new Uint8Array(o)}function q4t(e){var t="",r=0,n,i,a=e.length,s=rJ;for(n=0;n<a;n++)n%3===0&&n&&(t+=s[r>>18&63],t+=s[r>>12&63],t+=s[r>>6&63],t+=s[r&63]),r=(r<<8)+e[n];return i=a%3,i===0?(t+=s[r>>18&63],t+=s[r>>12&63],t+=s[r>>6&63],t+=s[r&63]):i===2?(t+=s[r>>10&63],t+=s[r>>4&63],t+=s[r<<2&63],t+=s[64]):i===1&&(t+=s[r>>2&63],t+=s[r<<4&63],t+=s[64],t+=s[64]),t}function L4t(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}V6e.exports=new F4t("tag:yaml.org,2002:binary",{kind:"scalar",resolve:j4t,construct:N4t,predicate:L4t,represent:q4t})});var iJ=b((tNr,G6e)=>{"use strict";var $4t=ru(),B4t=Object.prototype.hasOwnProperty,M4t=Object.prototype.toString;function U4t(e){if(e===null)return!0;var t=[],r,n,i,a,s,o=e;for(r=0,n=o.length;r<n;r+=1){if(i=o[r],s=!1,M4t.call(i)!=="[object Object]")return!1;for(a in i)if(B4t.call(i,a))if(!s)s=!0;else return!1;if(!s)return!1;if(t.indexOf(a)===-1)t.push(a);else return!1}return!0}function z4t(e){return e!==null?e:[]}G6e.exports=new $4t("tag:yaml.org,2002:omap",{kind:"sequence",resolve:U4t,construct:z4t})});var aJ=b((rNr,W6e)=>{"use strict";var H4t=ru(),V4t=Object.prototype.toString;function G4t(e){if(e===null)return!0;var t,r,n,i,a,s=e;for(a=new Array(s.length),t=0,r=s.length;t<r;t+=1){if(n=s[t],V4t.call(n)!=="[object Object]"||(i=Object.keys(n),i.length!==1))return!1;a[t]=[i[0],n[i[0]]]}return!0}function W4t(e){if(e===null)return[];var t,r,n,i,a,s=e;for(a=new Array(s.length),t=0,r=s.length;t<r;t+=1)n=s[t],i=Object.keys(n),a[t]=[i[0],n[i[0]]];return a}W6e.exports=new H4t("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:G4t,construct:W4t})});var sJ=b((nNr,K6e)=>{"use strict";var K4t=ru(),Y4t=Object.prototype.hasOwnProperty;function J4t(e){if(e===null)return!0;var t,r=e;for(t in r)if(Y4t.call(r,t)&&r[t]!==null)return!1;return!0}function X4t(e){return e!==null?e:{}}K6e.exports=new K4t("tag:yaml.org,2002:set",{kind:"mapping",resolve:J4t,construct:X4t})});var jD=b((iNr,Y6e)=>{"use strict";Y6e.exports=ZY().extend({implicit:[eJ(),tJ()],explicit:[nJ(),iJ(),aJ(),sJ()]})});var p4e=b((aNr,lJ)=>{"use strict";var k2=P_(),r4e=I_(),Q4t=k6e(),Z4t=jD(),A0=Object.prototype.hasOwnProperty,ND=1,n4e=2,i4e=3,qD=4,oJ=1,e3t=2,J6e=3,t3t=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,r3t=/[\x85\u2028\u2029]/,n3t=/[,\[\]\{\}]/,a4e=/^(?:!|!!|![a-z\-]+!)$/i,s4e=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function X6e(e){return Object.prototype.toString.call(e)}function bd(e){return e===10||e===13}function A2(e){return e===9||e===32}function vc(e){return e===9||e===32||e===10||e===13}function R_(e){return e===44||e===91||e===93||e===123||e===125}function i3t(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function a3t(e){return e===120?2:e===117?4:e===85?8:0}function s3t(e){return 48<=e&&e<=57?e-48:-1}function Q6e(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?"	":e===110?`
`:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"\x85":e===95?"\xA0":e===76?"\u2028":e===80?"\u2029":""}function o3t(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}var o4e=new Array(256),u4e=new Array(256);for(S2=0;S2<256;S2++)o4e[S2]=Q6e(S2)?1:0,u4e[S2]=Q6e(S2);var S2;function u3t(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Z4t,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function c4e(e,t){var r={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return r.snippet=Q4t(r),new r4e(t,r)}function Er(e,t){throw c4e(e,t)}function LD(e,t){e.onWarning&&e.onWarning.call(null,c4e(e,t))}var Z6e={YAML:function(t,r,n){var i,a,s;t.version!==null&&Er(t,"duplication of %YAML directive"),n.length!==1&&Er(t,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),i===null&&Er(t,"ill-formed argument of the YAML directive"),a=parseInt(i[1],10),s=parseInt(i[2],10),a!==1&&Er(t,"unacceptable YAML version of the document"),t.version=n[0],t.checkLineBreaks=s<2,s!==1&&s!==2&&LD(t,"unsupported YAML version of the document")},TAG:function(t,r,n){var i,a;n.length!==2&&Er(t,"TAG directive accepts exactly two arguments"),i=n[0],a=n[1],a4e.test(i)||Er(t,"ill-formed tag handle (first argument) of the TAG directive"),A0.call(t.tagMap,i)&&Er(t,'there is a previously declared suffix for "'+i+'" tag handle'),s4e.test(a)||Er(t,"ill-formed tag prefix (second argument) of the TAG directive");try{a=decodeURIComponent(a)}catch{Er(t,"tag prefix is malformed: "+a)}t.tagMap[i]=a}};function k0(e,t,r,n){var i,a,s,o;if(t<r){if(o=e.input.slice(t,r),n)for(i=0,a=o.length;i<a;i+=1)s=o.charCodeAt(i),s===9||32<=s&&s<=1114111||Er(e,"expected valid JSON character");else t3t.test(o)&&Er(e,"the stream contains non-printable characters");e.result+=o}}function e4e(e,t,r,n){var i,a,s,o;for(k2.isObject(r)||Er(e,"cannot merge mappings; the provided source object is unacceptable"),i=Object.keys(r),s=0,o=i.length;s<o;s+=1)a=i[s],A0.call(t,a)||(t[a]=r[a],n[a]=!0)}function F_(e,t,r,n,i,a,s,o,c){var p,f;if(Array.isArray(i))for(i=Array.prototype.slice.call(i),p=0,f=i.length;p<f;p+=1)Array.isArray(i[p])&&Er(e,"nested arrays are not supported inside keys"),typeof i=="object"&&X6e(i[p])==="[object Object]"&&(i[p]="[object Object]");if(typeof i=="object"&&X6e(i)==="[object Object]"&&(i="[object Object]"),i=String(i),t===null&&(t={}),n==="tag:yaml.org,2002:merge")if(Array.isArray(a))for(p=0,f=a.length;p<f;p+=1)e4e(e,t,a[p],r);else e4e(e,t,a,r);else!e.json&&!A0.call(r,i)&&A0.call(t,i)&&(e.line=s||e.line,e.lineStart=o||e.lineStart,e.position=c||e.position,Er(e,"duplicated mapping key")),i==="__proto__"?Object.defineProperty(t,i,{configurable:!0,enumerable:!0,writable:!0,value:a}):t[i]=a,delete r[i];return t}function uJ(e){var t;t=e.input.charCodeAt(e.position),t===10?e.position++:t===13?(e.position++,e.input.charCodeAt(e.position)===10&&e.position++):Er(e,"a line break is expected"),e.line+=1,e.lineStart=e.position,e.firstTabInLine=-1}function Es(e,t,r){for(var n=0,i=e.input.charCodeAt(e.position);i!==0;){for(;A2(i);)i===9&&e.firstTabInLine===-1&&(e.firstTabInLine=e.position),i=e.input.charCodeAt(++e.position);if(t&&i===35)do i=e.input.charCodeAt(++e.position);while(i!==10&&i!==13&&i!==0);if(bd(i))for(uJ(e),i=e.input.charCodeAt(e.position),n++,e.lineIndent=0;i===32;)e.lineIndent++,i=e.input.charCodeAt(++e.position);else break}return r!==-1&&n!==0&&e.lineIndent<r&&LD(e,"deficient indentation"),n}function $D(e){var t=e.position,r;return r=e.input.charCodeAt(t),!!((r===45||r===46)&&r===e.input.charCodeAt(t+1)&&r===e.input.charCodeAt(t+2)&&(t+=3,r=e.input.charCodeAt(t),r===0||vc(r)))}function cJ(e,t){t===1?e.result+=" ":t>1&&(e.result+=k2.repeat(`
`,t-1))}function c3t(e,t,r){var n,i,a,s,o,c,p,f,d=e.kind,h=e.result,g;if(g=e.input.charCodeAt(e.position),vc(g)||R_(g)||g===35||g===38||g===42||g===33||g===124||g===62||g===39||g===34||g===37||g===64||g===96||(g===63||g===45)&&(i=e.input.charCodeAt(e.position+1),vc(i)||r&&R_(i)))return!1;for(e.kind="scalar",e.result="",a=s=e.position,o=!1;g!==0;){if(g===58){if(i=e.input.charCodeAt(e.position+1),vc(i)||r&&R_(i))break}else if(g===35){if(n=e.input.charCodeAt(e.position-1),vc(n))break}else{if(e.position===e.lineStart&&$D(e)||r&&R_(g))break;if(bd(g))if(c=e.line,p=e.lineStart,f=e.lineIndent,Es(e,!1,-1),e.lineIndent>=t){o=!0,g=e.input.charCodeAt(e.position);continue}else{e.position=s,e.line=c,e.lineStart=p,e.lineIndent=f;break}}o&&(k0(e,a,s,!1),cJ(e,e.line-c),a=s=e.position,o=!1),A2(g)||(s=e.position+1),g=e.input.charCodeAt(++e.position)}return k0(e,a,s,!1),e.result?!0:(e.kind=d,e.result=h,!1)}function l3t(e,t){var r,n,i;if(r=e.input.charCodeAt(e.position),r!==39)return!1;for(e.kind="scalar",e.result="",e.position++,n=i=e.position;(r=e.input.charCodeAt(e.position))!==0;)if(r===39)if(k0(e,n,e.position,!0),r=e.input.charCodeAt(++e.position),r===39)n=e.position,e.position++,i=e.position;else return!0;else bd(r)?(k0(e,n,i,!0),cJ(e,Es(e,!1,t)),n=i=e.position):e.position===e.lineStart&&$D(e)?Er(e,"unexpected end of the document within a single quoted scalar"):(e.position++,i=e.position);Er(e,"unexpected end of the stream within a single quoted scalar")}function p3t(e,t){var r,n,i,a,s,o;if(o=e.input.charCodeAt(e.position),o!==34)return!1;for(e.kind="scalar",e.result="",e.position++,r=n=e.position;(o=e.input.charCodeAt(e.position))!==0;){if(o===34)return k0(e,r,e.position,!0),e.position++,!0;if(o===92){if(k0(e,r,e.position,!0),o=e.input.charCodeAt(++e.position),bd(o))Es(e,!1,t);else if(o<256&&o4e[o])e.result+=u4e[o],e.position++;else if((s=a3t(o))>0){for(i=s,a=0;i>0;i--)o=e.input.charCodeAt(++e.position),(s=i3t(o))>=0?a=(a<<4)+s:Er(e,"expected hexadecimal character");e.result+=o3t(a),e.position++}else Er(e,"unknown escape sequence");r=n=e.position}else bd(o)?(k0(e,r,n,!0),cJ(e,Es(e,!1,t)),r=n=e.position):e.position===e.lineStart&&$D(e)?Er(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}Er(e,"unexpected end of the stream within a double quoted scalar")}function f3t(e,t){var r=!0,n,i,a,s=e.tag,o,c=e.anchor,p,f,d,h,g,v=Object.create(null),y,_,x,A;if(A=e.input.charCodeAt(e.position),A===91)f=93,g=!1,o=[];else if(A===123)f=125,g=!0,o={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=o),A=e.input.charCodeAt(++e.position);A!==0;){if(Es(e,!0,t),A=e.input.charCodeAt(e.position),A===f)return e.position++,e.tag=s,e.anchor=c,e.kind=g?"mapping":"sequence",e.result=o,!0;r?A===44&&Er(e,"expected the node content, but found ','"):Er(e,"missed comma between flow collection entries"),_=y=x=null,d=h=!1,A===63&&(p=e.input.charCodeAt(e.position+1),vc(p)&&(d=h=!0,e.position++,Es(e,!0,t))),n=e.line,i=e.lineStart,a=e.position,j_(e,t,ND,!1,!0),_=e.tag,y=e.result,Es(e,!0,t),A=e.input.charCodeAt(e.position),(h||e.line===n)&&A===58&&(d=!0,A=e.input.charCodeAt(++e.position),Es(e,!0,t),j_(e,t,ND,!1,!0),x=e.result),g?F_(e,o,v,_,y,x,n,i,a):d?o.push(F_(e,null,v,_,y,x,n,i,a)):o.push(y),Es(e,!0,t),A=e.input.charCodeAt(e.position),A===44?(r=!0,A=e.input.charCodeAt(++e.position)):r=!1}Er(e,"unexpected end of the stream within a flow collection")}function d3t(e,t){var r,n,i=oJ,a=!1,s=!1,o=t,c=0,p=!1,f,d;if(d=e.input.charCodeAt(e.position),d===124)n=!1;else if(d===62)n=!0;else return!1;for(e.kind="scalar",e.result="";d!==0;)if(d=e.input.charCodeAt(++e.position),d===43||d===45)oJ===i?i=d===43?J6e:e3t:Er(e,"repeat of a chomping mode identifier");else if((f=s3t(d))>=0)f===0?Er(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?Er(e,"repeat of an indentation width identifier"):(o=t+f-1,s=!0);else break;if(A2(d)){do d=e.input.charCodeAt(++e.position);while(A2(d));if(d===35)do d=e.input.charCodeAt(++e.position);while(!bd(d)&&d!==0)}for(;d!==0;){for(uJ(e),e.lineIndent=0,d=e.input.charCodeAt(e.position);(!s||e.lineIndent<o)&&d===32;)e.lineIndent++,d=e.input.charCodeAt(++e.position);if(!s&&e.lineIndent>o&&(o=e.lineIndent),bd(d)){c++;continue}if(e.lineIndent<o){i===J6e?e.result+=k2.repeat(`
`,a?1+c:c):i===oJ&&a&&(e.result+=`
`);break}for(n?A2(d)?(p=!0,e.result+=k2.repeat(`
`,a?1+c:c)):p?(p=!1,e.result+=k2.repeat(`
`,c+1)):c===0?a&&(e.result+=" "):e.result+=k2.repeat(`
`,c):e.result+=k2.repeat(`
`,a?1+c:c),a=!0,s=!0,c=0,r=e.position;!bd(d)&&d!==0;)d=e.input.charCodeAt(++e.position);k0(e,r,e.position,!1)}return!0}function t4e(e,t){var r,n=e.tag,i=e.anchor,a=[],s,o=!1,c;if(e.firstTabInLine!==-1)return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=a),c=e.input.charCodeAt(e.position);c!==0&&(e.firstTabInLine!==-1&&(e.position=e.firstTabInLine,Er(e,"tab characters must not be used in indentation")),!(c!==45||(s=e.input.charCodeAt(e.position+1),!vc(s))));){if(o=!0,e.position++,Es(e,!0,-1)&&e.lineIndent<=t){a.push(null),c=e.input.charCodeAt(e.position);continue}if(r=e.line,j_(e,t,i4e,!1,!0),a.push(e.result),Es(e,!0,-1),c=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&c!==0)Er(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break}return o?(e.tag=n,e.anchor=i,e.kind="sequence",e.result=a,!0):!1}function h3t(e,t,r){var n,i,a,s,o,c,p=e.tag,f=e.anchor,d={},h=Object.create(null),g=null,v=null,y=null,_=!1,x=!1,A;if(e.firstTabInLine!==-1)return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=d),A=e.input.charCodeAt(e.position);A!==0;){if(!_&&e.firstTabInLine!==-1&&(e.position=e.firstTabInLine,Er(e,"tab characters must not be used in indentation")),n=e.input.charCodeAt(e.position+1),a=e.line,(A===63||A===58)&&vc(n))A===63?(_&&(F_(e,d,h,g,v,null,s,o,c),g=v=y=null),x=!0,_=!0,i=!0):_?(_=!1,i=!0):Er(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,A=n;else{if(s=e.line,o=e.lineStart,c=e.position,!j_(e,r,n4e,!1,!0))break;if(e.line===a){for(A=e.input.charCodeAt(e.position);A2(A);)A=e.input.charCodeAt(++e.position);if(A===58)A=e.input.charCodeAt(++e.position),vc(A)||Er(e,"a whitespace character is expected after the key-value separator within a block mapping"),_&&(F_(e,d,h,g,v,null,s,o,c),g=v=y=null),x=!0,_=!1,i=!1,g=e.tag,v=e.result;else if(x)Er(e,"can not read an implicit mapping pair; a colon is missed");else return e.tag=p,e.anchor=f,!0}else if(x)Er(e,"can not read a block mapping entry; a multiline key may not be an implicit key");else return e.tag=p,e.anchor=f,!0}if((e.line===a||e.lineIndent>t)&&(_&&(s=e.line,o=e.lineStart,c=e.position),j_(e,t,qD,!0,i)&&(_?v=e.result:y=e.result),_||(F_(e,d,h,g,v,y,s,o,c),g=v=y=null),Es(e,!0,-1),A=e.input.charCodeAt(e.position)),(e.line===a||e.lineIndent>t)&&A!==0)Er(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return _&&F_(e,d,h,g,v,null,s,o,c),x&&(e.tag=p,e.anchor=f,e.kind="mapping",e.result=d),x}function m3t(e){var t,r=!1,n=!1,i,a,s;if(s=e.input.charCodeAt(e.position),s!==33)return!1;if(e.tag!==null&&Er(e,"duplication of a tag property"),s=e.input.charCodeAt(++e.position),s===60?(r=!0,s=e.input.charCodeAt(++e.position)):s===33?(n=!0,i="!!",s=e.input.charCodeAt(++e.position)):i="!",t=e.position,r){do s=e.input.charCodeAt(++e.position);while(s!==0&&s!==62);e.position<e.length?(a=e.input.slice(t,e.position),s=e.input.charCodeAt(++e.position)):Er(e,"unexpected end of the stream within a verbatim tag")}else{for(;s!==0&&!vc(s);)s===33&&(n?Er(e,"tag suffix cannot contain exclamation marks"):(i=e.input.slice(t-1,e.position+1),a4e.test(i)||Er(e,"named tag handle cannot contain such characters"),n=!0,t=e.position+1)),s=e.input.charCodeAt(++e.position);a=e.input.slice(t,e.position),n3t.test(a)&&Er(e,"tag suffix cannot contain flow indicator characters")}a&&!s4e.test(a)&&Er(e,"tag name cannot contain such characters: "+a);try{a=decodeURIComponent(a)}catch{Er(e,"tag name is malformed: "+a)}return r?e.tag=a:A0.call(e.tagMap,i)?e.tag=e.tagMap[i]+a:i==="!"?e.tag="!"+a:i==="!!"?e.tag="tag:yaml.org,2002:"+a:Er(e,'undeclared tag handle "'+i+'"'),!0}function g3t(e){var t,r;if(r=e.input.charCodeAt(e.position),r!==38)return!1;for(e.anchor!==null&&Er(e,"duplication of an anchor property"),r=e.input.charCodeAt(++e.position),t=e.position;r!==0&&!vc(r)&&!R_(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&Er(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function v3t(e){var t,r,n;if(n=e.input.charCodeAt(e.position),n!==42)return!1;for(n=e.input.charCodeAt(++e.position),t=e.position;n!==0&&!vc(n)&&!R_(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&Er(e,"name of an alias node must contain at least one character"),r=e.input.slice(t,e.position),A0.call(e.anchorMap,r)||Er(e,'unidentified alias "'+r+'"'),e.result=e.anchorMap[r],Es(e,!0,-1),!0}function j_(e,t,r,n,i){var a,s,o,c=1,p=!1,f=!1,d,h,g,v,y,_;if(e.listener!==null&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,a=s=o=qD===r||i4e===r,n&&Es(e,!0,-1)&&(p=!0,e.lineIndent>t?c=1:e.lineIndent===t?c=0:e.lineIndent<t&&(c=-1)),c===1)for(;m3t(e)||g3t(e);)Es(e,!0,-1)?(p=!0,o=a,e.lineIndent>t?c=1:e.lineIndent===t?c=0:e.lineIndent<t&&(c=-1)):o=!1;if(o&&(o=p||i),(c===1||qD===r)&&(ND===r||n4e===r?y=t:y=t+1,_=e.position-e.lineStart,c===1?o&&(t4e(e,_)||h3t(e,_,y))||f3t(e,y)?f=!0:(s&&d3t(e,y)||l3t(e,y)||p3t(e,y)?f=!0:v3t(e)?(f=!0,(e.tag!==null||e.anchor!==null)&&Er(e,"alias node should not have any properties")):c3t(e,y,ND===r)&&(f=!0,e.tag===null&&(e.tag="?")),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):c===0&&(f=o&&t4e(e,_))),e.tag===null)e.anchor!==null&&(e.anchorMap[e.anchor]=e.result);else if(e.tag==="?"){for(e.result!==null&&e.kind!=="scalar"&&Er(e,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+e.kind+'"'),d=0,h=e.implicitTypes.length;d<h;d+=1)if(v=e.implicitTypes[d],v.resolve(e.result)){e.result=v.construct(e.result),e.tag=v.tag,e.anchor!==null&&(e.anchorMap[e.anchor]=e.result);break}}else if(e.tag!=="!"){if(A0.call(e.typeMap[e.kind||"fallback"],e.tag))v=e.typeMap[e.kind||"fallback"][e.tag];else for(v=null,g=e.typeMap.multi[e.kind||"fallback"],d=0,h=g.length;d<h;d+=1)if(e.tag.slice(0,g[d].tag.length)===g[d].tag){v=g[d];break}v||Er(e,"unknown tag !<"+e.tag+">"),e.result!==null&&v.kind!==e.kind&&Er(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+v.kind+'", not "'+e.kind+'"'),v.resolve(e.result,e.tag)?(e.result=v.construct(e.result,e.tag),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):Er(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||f}function y3t(e){var t=e.position,r,n,i,a=!1,s;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(s=e.input.charCodeAt(e.position))!==0&&(Es(e,!0,-1),s=e.input.charCodeAt(e.position),!(e.lineIndent>0||s!==37));){for(a=!0,s=e.input.charCodeAt(++e.position),r=e.position;s!==0&&!vc(s);)s=e.input.charCodeAt(++e.position);for(n=e.input.slice(r,e.position),i=[],n.length<1&&Er(e,"directive name must not be less than one character in length");s!==0;){for(;A2(s);)s=e.input.charCodeAt(++e.position);if(s===35){do s=e.input.charCodeAt(++e.position);while(s!==0&&!bd(s));break}if(bd(s))break;for(r=e.position;s!==0&&!vc(s);)s=e.input.charCodeAt(++e.position);i.push(e.input.slice(r,e.position))}s!==0&&uJ(e),A0.call(Z6e,n)?Z6e[n](e,n,i):LD(e,'unknown document directive "'+n+'"')}if(Es(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,Es(e,!0,-1)):a&&Er(e,"directives end mark is expected"),j_(e,e.lineIndent-1,qD,!1,!0),Es(e,!0,-1),e.checkLineBreaks&&r3t.test(e.input.slice(t,e.position))&&LD(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&$D(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,Es(e,!0,-1));return}if(e.position<e.length-1)Er(e,"end of the stream or a document separator is expected");else return}function l4e(e,t){e=String(e),t=t||{},e.length!==0&&(e.charCodeAt(e.length-1)!==10&&e.charCodeAt(e.length-1)!==13&&(e+=`
`),e.charCodeAt(0)===65279&&(e=e.slice(1)));var r=new u3t(e,t),n=e.indexOf("\0");for(n!==-1&&(r.position=n,Er(r,"null byte is not allowed in input")),r.input+="\0";r.input.charCodeAt(r.position)===32;)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)y3t(r);return r.documents}function b3t(e,t,r){t!==null&&typeof t=="object"&&typeof r>"u"&&(r=t,t=null);var n=l4e(e,r);if(typeof t!="function")return n;for(var i=0,a=n.length;i<a;i+=1)t(n[i])}function w3t(e,t){var r=l4e(e,t);if(r.length!==0){if(r.length===1)return r[0];throw new r4e("expected a single document in the stream, but found more")}}lJ.exports.loadAll=b3t;lJ.exports.load=w3t});var I4e=b((sNr,P4e)=>{"use strict";var UD=P_(),g9=I_(),_3t=jD(),w4e=Object.prototype.toString,_4e=Object.prototype.hasOwnProperty,mJ=65279,x3t=9,d9=10,E3t=13,S3t=32,k3t=33,A3t=34,pJ=35,T3t=37,O3t=38,D3t=39,C3t=42,x4e=44,P3t=45,BD=58,I3t=61,R3t=62,F3t=63,j3t=64,E4e=91,S4e=93,N3t=96,k4e=123,q3t=124,A4e=125,nu={};nu[0]="\\0";nu[7]="\\a";nu[8]="\\b";nu[9]="\\t";nu[10]="\\n";nu[11]="\\v";nu[12]="\\f";nu[13]="\\r";nu[27]="\\e";nu[34]='\\"';nu[92]="\\\\";nu[133]="\\N";nu[160]="\\_";nu[8232]="\\L";nu[8233]="\\P";var L3t=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],$3t=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function B3t(e,t){var r,n,i,a,s,o,c;if(t===null)return{};for(r={},n=Object.keys(t),i=0,a=n.length;i<a;i+=1)s=n[i],o=String(t[s]),s.slice(0,2)==="!!"&&(s="tag:yaml.org,2002:"+s.slice(2)),c=e.compiledTypeMap.fallback[s],c&&_4e.call(c.styleAliases,o)&&(o=c.styleAliases[o]),r[s]=o;return r}function M3t(e){var t,r,n;if(t=e.toString(16).toUpperCase(),e<=255)r="x",n=2;else if(e<=65535)r="u",n=4;else if(e<=4294967295)r="U",n=8;else throw new g9("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+r+UD.repeat("0",n-t.length)+t}var U3t=1,h9=2;function z3t(e){this.schema=e.schema||_3t,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=UD.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=B3t(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.quotingType=e.quotingType==='"'?h9:U3t,this.forceQuotes=e.forceQuotes||!1,this.replacer=typeof e.replacer=="function"?e.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function f4e(e,t){for(var r=UD.repeat(" ",t),n=0,i=-1,a="",s,o=e.length;n<o;)i=e.indexOf(`
`,n),i===-1?(s=e.slice(n),n=o):(s=e.slice(n,i+1),n=i+1),s.length&&s!==`
`&&(a+=r),a+=s;return a}function fJ(e,t){return`
`+UD.repeat(" ",e.indent*t)}function H3t(e,t){var r,n,i;for(r=0,n=e.implicitTypes.length;r<n;r+=1)if(i=e.implicitTypes[r],i.resolve(t))return!0;return!1}function MD(e){return e===S3t||e===x3t}function m9(e){return 32<=e&&e<=126||161<=e&&e<=55295&&e!==8232&&e!==8233||57344<=e&&e<=65533&&e!==mJ||65536<=e&&e<=1114111}function d4e(e){return m9(e)&&e!==mJ&&e!==E3t&&e!==d9}function h4e(e,t,r){var n=d4e(e),i=n&&!MD(e);return(r?n:n&&e!==x4e&&e!==E4e&&e!==S4e&&e!==k4e&&e!==A4e)&&e!==pJ&&!(t===BD&&!i)||d4e(t)&&!MD(t)&&e===pJ||t===BD&&i}function V3t(e){return m9(e)&&e!==mJ&&!MD(e)&&e!==P3t&&e!==F3t&&e!==BD&&e!==x4e&&e!==E4e&&e!==S4e&&e!==k4e&&e!==A4e&&e!==pJ&&e!==O3t&&e!==C3t&&e!==k3t&&e!==q3t&&e!==I3t&&e!==R3t&&e!==D3t&&e!==A3t&&e!==T3t&&e!==j3t&&e!==N3t}function G3t(e){return!MD(e)&&e!==BD}function f9(e,t){var r=e.charCodeAt(t),n;return r>=55296&&r<=56319&&t+1<e.length&&(n=e.charCodeAt(t+1),n>=56320&&n<=57343)?(r-55296)*1024+n-56320+65536:r}function T4e(e){var t=/^\n* /;return t.test(e)}var O4e=1,dJ=2,D4e=3,C4e=4,N_=5;function W3t(e,t,r,n,i,a,s,o){var c,p=0,f=null,d=!1,h=!1,g=n!==-1,v=-1,y=V3t(f9(e,0))&&G3t(f9(e,e.length-1));if(t||s)for(c=0;c<e.length;p>=65536?c+=2:c++){if(p=f9(e,c),!m9(p))return N_;y=y&&h4e(p,f,o),f=p}else{for(c=0;c<e.length;p>=65536?c+=2:c++){if(p=f9(e,c),p===d9)d=!0,g&&(h=h||c-v-1>n&&e[v+1]!==" ",v=c);else if(!m9(p))return N_;y=y&&h4e(p,f,o),f=p}h=h||g&&c-v-1>n&&e[v+1]!==" "}return!d&&!h?y&&!s&&!i(e)?O4e:a===h9?N_:dJ:r>9&&T4e(e)?N_:s?a===h9?N_:dJ:h?C4e:D4e}function K3t(e,t,r,n,i){e.dump=function(){if(t.length===0)return e.quotingType===h9?'""':"''";if(!e.noCompatMode&&(L3t.indexOf(t)!==-1||$3t.test(t)))return e.quotingType===h9?'"'+t+'"':"'"+t+"'";var a=e.indent*Math.max(1,r),s=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a),o=n||e.flowLevel>-1&&r>=e.flowLevel;function c(p){return H3t(e,p)}switch(W3t(t,o,e.indent,s,c,e.quotingType,e.forceQuotes&&!n,i)){case O4e:return t;case dJ:return"'"+t.replace(/'/g,"''")+"'";case D4e:return"|"+m4e(t,e.indent)+g4e(f4e(t,a));case C4e:return">"+m4e(t,e.indent)+g4e(f4e(Y3t(t,s),a));case N_:return'"'+J3t(t,s)+'"';default:throw new g9("impossible error: invalid scalar style")}}()}function m4e(e,t){var r=T4e(e)?String(t):"",n=e[e.length-1]===`
`,i=n&&(e[e.length-2]===`
`||e===`
`),a=i?"+":n?"":"-";return r+a+`
`}function g4e(e){return e[e.length-1]===`
`?e.slice(0,-1):e}function Y3t(e,t){for(var r=/(\n+)([^\n]*)/g,n=function(){var p=e.indexOf(`
`);return p=p!==-1?p:e.length,r.lastIndex=p,v4e(e.slice(0,p),t)}(),i=e[0]===`
`||e[0]===" ",a,s;s=r.exec(e);){var o=s[1],c=s[2];a=c[0]===" ",n+=o+(!i&&!a&&c!==""?`
`:"")+v4e(c,t),i=a}return n}function v4e(e,t){if(e===""||e[0]===" ")return e;for(var r=/ [^ ]/g,n,i=0,a,s=0,o=0,c="";n=r.exec(e);)o=n.index,o-i>t&&(a=s>i?s:o,c+=`
`+e.slice(i,a),i=a+1),s=o;return c+=`
`,e.length-i>t&&s>i?c+=e.slice(i,s)+`
`+e.slice(s+1):c+=e.slice(i),c.slice(1)}function J3t(e){for(var t="",r=0,n,i=0;i<e.length;r>=65536?i+=2:i++)r=f9(e,i),n=nu[r],!n&&m9(r)?(t+=e[i],r>=65536&&(t+=e[i+1])):t+=n||M3t(r);return t}function X3t(e,t,r){var n="",i=e.tag,a,s,o;for(a=0,s=r.length;a<s;a+=1)o=r[a],e.replacer&&(o=e.replacer.call(r,String(a),o)),(Mm(e,t,o,!1,!1)||typeof o>"u"&&Mm(e,t,null,!1,!1))&&(n!==""&&(n+=","+(e.condenseFlow?"":" ")),n+=e.dump);e.tag=i,e.dump="["+n+"]"}function y4e(e,t,r,n){var i="",a=e.tag,s,o,c;for(s=0,o=r.length;s<o;s+=1)c=r[s],e.replacer&&(c=e.replacer.call(r,String(s),c)),(Mm(e,t+1,c,!0,!0,!1,!0)||typeof c>"u"&&Mm(e,t+1,null,!0,!0,!1,!0))&&((!n||i!=="")&&(i+=fJ(e,t)),e.dump&&d9===e.dump.charCodeAt(0)?i+="-":i+="- ",i+=e.dump);e.tag=a,e.dump=i||"[]"}function Q3t(e,t,r){var n="",i=e.tag,a=Object.keys(r),s,o,c,p,f;for(s=0,o=a.length;s<o;s+=1)f="",n!==""&&(f+=", "),e.condenseFlow&&(f+='"'),c=a[s],p=r[c],e.replacer&&(p=e.replacer.call(r,c,p)),Mm(e,t,c,!1,!1)&&(e.dump.length>1024&&(f+="? "),f+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Mm(e,t,p,!1,!1)&&(f+=e.dump,n+=f));e.tag=i,e.dump="{"+n+"}"}function Z3t(e,t,r,n){var i="",a=e.tag,s=Object.keys(r),o,c,p,f,d,h;if(e.sortKeys===!0)s.sort();else if(typeof e.sortKeys=="function")s.sort(e.sortKeys);else if(e.sortKeys)throw new g9("sortKeys must be a boolean or a function");for(o=0,c=s.length;o<c;o+=1)h="",(!n||i!=="")&&(h+=fJ(e,t)),p=s[o],f=r[p],e.replacer&&(f=e.replacer.call(r,p,f)),Mm(e,t+1,p,!0,!0,!0)&&(d=e.tag!==null&&e.tag!=="?"||e.dump&&e.dump.length>1024,d&&(e.dump&&d9===e.dump.charCodeAt(0)?h+="?":h+="? "),h+=e.dump,d&&(h+=fJ(e,t)),Mm(e,t+1,f,!0,d)&&(e.dump&&d9===e.dump.charCodeAt(0)?h+=":":h+=": ",h+=e.dump,i+=h));e.tag=a,e.dump=i||"{}"}function b4e(e,t,r){var n,i,a,s,o,c;for(i=r?e.explicitTypes:e.implicitTypes,a=0,s=i.length;a<s;a+=1)if(o=i[a],(o.instanceOf||o.predicate)&&(!o.instanceOf||typeof t=="object"&&t instanceof o.instanceOf)&&(!o.predicate||o.predicate(t))){if(r?o.multi&&o.representName?e.tag=o.representName(t):e.tag=o.tag:e.tag="?",o.represent){if(c=e.styleMap[o.tag]||o.defaultStyle,w4e.call(o.represent)==="[object Function]")n=o.represent(t,c);else if(_4e.call(o.represent,c))n=o.represent[c](t,c);else throw new g9("!<"+o.tag+'> tag resolver accepts not "'+c+'" style');e.dump=n}return!0}return!1}function Mm(e,t,r,n,i,a,s){e.tag=null,e.dump=r,b4e(e,r,!1)||b4e(e,r,!0);var o=w4e.call(e.dump),c=n,p;n&&(n=e.flowLevel<0||e.flowLevel>t);var f=o==="[object Object]"||o==="[object Array]",d,h;if(f&&(d=e.duplicates.indexOf(r),h=d!==-1),(e.tag!==null&&e.tag!=="?"||h||e.indent!==2&&t>0)&&(i=!1),h&&e.usedDuplicates[d])e.dump="*ref_"+d;else{if(f&&h&&!e.usedDuplicates[d]&&(e.usedDuplicates[d]=!0),o==="[object Object]")n&&Object.keys(e.dump).length!==0?(Z3t(e,t,e.dump,i),h&&(e.dump="&ref_"+d+e.dump)):(Q3t(e,t,e.dump),h&&(e.dump="&ref_"+d+" "+e.dump));else if(o==="[object Array]")n&&e.dump.length!==0?(e.noArrayIndent&&!s&&t>0?y4e(e,t-1,e.dump,i):y4e(e,t,e.dump,i),h&&(e.dump="&ref_"+d+e.dump)):(X3t(e,t,e.dump),h&&(e.dump="&ref_"+d+" "+e.dump));else if(o==="[object String]")e.tag!=="?"&&K3t(e,e.dump,t,a,c);else{if(o==="[object Undefined]")return!1;if(e.skipInvalid)return!1;throw new g9("unacceptable kind of an object to dump "+o)}e.tag!==null&&e.tag!=="?"&&(p=encodeURI(e.tag[0]==="!"?e.tag.slice(1):e.tag).replace(/!/g,"%21"),e.tag[0]==="!"?p="!"+p:p.slice(0,18)==="tag:yaml.org,2002:"?p="!!"+p.slice(18):p="!<"+p+">",e.dump=p+" "+e.dump)}return!0}function e8t(e,t){var r=[],n=[],i,a;for(hJ(e,r,n),i=0,a=n.length;i<a;i+=1)t.duplicates.push(r[n[i]]);t.usedDuplicates=new Array(a)}function hJ(e,t,r){var n,i,a;if(e!==null&&typeof e=="object")if(i=t.indexOf(e),i!==-1)r.indexOf(i)===-1&&r.push(i);else if(t.push(e),Array.isArray(e))for(i=0,a=e.length;i<a;i+=1)hJ(e[i],t,r);else for(n=Object.keys(e),i=0,a=n.length;i<a;i+=1)hJ(e[n[i]],t,r)}function t8t(e,t){t=t||{};var r=new z3t(t);r.noRefs||e8t(e,r);var n=e;return r.replacer&&(n=r.replacer.call({"":n},"",n)),Mm(r,0,n,!0,!0)?r.dump+`
`:""}P4e.exports.dump=t8t});var zD=b((oNr,Uu)=>{"use strict";var R4e=p4e(),r8t=I4e();function gJ(e,t){return function(){throw new Error("Function yaml."+e+" is removed in js-yaml 4. Use yaml."+t+" instead, which is now safe by default.")}}Uu.exports.Type=ru();Uu.exports.Schema=zY();Uu.exports.FAILSAFE_SCHEMA=WY();Uu.exports.JSON_SCHEMA=QY();Uu.exports.CORE_SCHEMA=ZY();Uu.exports.DEFAULT_SCHEMA=jD();Uu.exports.load=R4e.load;Uu.exports.loadAll=R4e.loadAll;Uu.exports.dump=r8t.dump;Uu.exports.YAMLException=I_();Uu.exports.types={binary:nJ(),float:XY(),map:GY(),null:KY(),pairs:aJ(),set:sJ(),timestamp:eJ(),bool:YY(),int:JY(),merge:tJ(),omap:iJ(),seq:VY(),str:HY()};Uu.exports.safeLoad=gJ("safeLoad","load");Uu.exports.safeLoadAll=gJ("safeLoadAll","loadAll");Uu.exports.safeDump=gJ("safeDump","dump")});var F4e=b(HD=>{"use strict";Object.defineProperty(HD,"__esModule",{value:!0});HD.Lazy=void 0;var vJ=class{constructor(t){this._value=null,this.creator=t}get hasValue(){return this.creator==null}get value(){if(this.creator==null)return this._value;let t=this.creator();return this.value=t,t}set value(t){this._value=t,this.creator=null}};HD.Lazy=vJ});var v9=b((cNr,j4e)=>{"use strict";var n8t="2.0.0",i8t=Number.MAX_SAFE_INTEGER||9007199254740991,a8t=16,s8t=256-6,o8t=["major","premajor","minor","preminor","patch","prepatch","prerelease"];j4e.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:a8t,MAX_SAFE_BUILD_LENGTH:s8t,MAX_SAFE_INTEGER:i8t,RELEASE_TYPES:o8t,SEMVER_SPEC_VERSION:n8t,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var y9=b((lNr,N4e)=>{"use strict";var u8t=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};N4e.exports=u8t});var q_=b((wd,q4e)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:yJ,MAX_SAFE_BUILD_LENGTH:c8t,MAX_LENGTH:l8t}=v9(),p8t=y9();wd=q4e.exports={};var f8t=wd.re=[],d8t=wd.safeRe=[],nr=wd.src=[],h8t=wd.safeSrc=[],ir=wd.t={},m8t=0,bJ="[a-zA-Z0-9-]",g8t=[["\\s",1],["\\d",l8t],[bJ,c8t]],v8t=e=>{for(let[t,r]of g8t)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e},Xr=(e,t,r)=>{let n=v8t(t),i=m8t++;p8t(e,i,t),ir[e]=i,nr[i]=t,h8t[i]=n,f8t[i]=new RegExp(t,r?"g":void 0),d8t[i]=new RegExp(n,r?"g":void 0)};Xr("NUMERICIDENTIFIER","0|[1-9]\\d*");Xr("NUMERICIDENTIFIERLOOSE","\\d+");Xr("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${bJ}*`);Xr("MAINVERSION",`(${nr[ir.NUMERICIDENTIFIER]})\\.(${nr[ir.NUMERICIDENTIFIER]})\\.(${nr[ir.NUMERICIDENTIFIER]})`);Xr("MAINVERSIONLOOSE",`(${nr[ir.NUMERICIDENTIFIERLOOSE]})\\.(${nr[ir.NUMERICIDENTIFIERLOOSE]})\\.(${nr[ir.NUMERICIDENTIFIERLOOSE]})`);Xr("PRERELEASEIDENTIFIER",`(?:${nr[ir.NONNUMERICIDENTIFIER]}|${nr[ir.NUMERICIDENTIFIER]})`);Xr("PRERELEASEIDENTIFIERLOOSE",`(?:${nr[ir.NONNUMERICIDENTIFIER]}|${nr[ir.NUMERICIDENTIFIERLOOSE]})`);Xr("PRERELEASE",`(?:-(${nr[ir.PRERELEASEIDENTIFIER]}(?:\\.${nr[ir.PRERELEASEIDENTIFIER]})*))`);Xr("PRERELEASELOOSE",`(?:-?(${nr[ir.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${nr[ir.PRERELEASEIDENTIFIERLOOSE]})*))`);Xr("BUILDIDENTIFIER",`${bJ}+`);Xr("BUILD",`(?:\\+(${nr[ir.BUILDIDENTIFIER]}(?:\\.${nr[ir.BUILDIDENTIFIER]})*))`);Xr("FULLPLAIN",`v?${nr[ir.MAINVERSION]}${nr[ir.PRERELEASE]}?${nr[ir.BUILD]}?`);Xr("FULL",`^${nr[ir.FULLPLAIN]}$`);Xr("LOOSEPLAIN",`[v=\\s]*${nr[ir.MAINVERSIONLOOSE]}${nr[ir.PRERELEASELOOSE]}?${nr[ir.BUILD]}?`);Xr("LOOSE",`^${nr[ir.LOOSEPLAIN]}$`);Xr("GTLT","((?:<|>)?=?)");Xr("XRANGEIDENTIFIERLOOSE",`${nr[ir.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Xr("XRANGEIDENTIFIER",`${nr[ir.NUMERICIDENTIFIER]}|x|X|\\*`);Xr("XRANGEPLAIN",`[v=\\s]*(${nr[ir.XRANGEIDENTIFIER]})(?:\\.(${nr[ir.XRANGEIDENTIFIER]})(?:\\.(${nr[ir.XRANGEIDENTIFIER]})(?:${nr[ir.PRERELEASE]})?${nr[ir.BUILD]}?)?)?`);Xr("XRANGEPLAINLOOSE",`[v=\\s]*(${nr[ir.XRANGEIDENTIFIERLOOSE]})(?:\\.(${nr[ir.XRANGEIDENTIFIERLOOSE]})(?:\\.(${nr[ir.XRANGEIDENTIFIERLOOSE]})(?:${nr[ir.PRERELEASELOOSE]})?${nr[ir.BUILD]}?)?)?`);Xr("XRANGE",`^${nr[ir.GTLT]}\\s*${nr[ir.XRANGEPLAIN]}$`);Xr("XRANGELOOSE",`^${nr[ir.GTLT]}\\s*${nr[ir.XRANGEPLAINLOOSE]}$`);Xr("COERCEPLAIN",`(^|[^\\d])(\\d{1,${yJ}})(?:\\.(\\d{1,${yJ}}))?(?:\\.(\\d{1,${yJ}}))?`);Xr("COERCE",`${nr[ir.COERCEPLAIN]}(?:$|[^\\d])`);Xr("COERCEFULL",nr[ir.COERCEPLAIN]+`(?:${nr[ir.PRERELEASE]})?(?:${nr[ir.BUILD]})?(?:$|[^\\d])`);Xr("COERCERTL",nr[ir.COERCE],!0);Xr("COERCERTLFULL",nr[ir.COERCEFULL],!0);Xr("LONETILDE","(?:~>?)");Xr("TILDETRIM",`(\\s*)${nr[ir.LONETILDE]}\\s+`,!0);wd.tildeTrimReplace="$1~";Xr("TILDE",`^${nr[ir.LONETILDE]}${nr[ir.XRANGEPLAIN]}$`);Xr("TILDELOOSE",`^${nr[ir.LONETILDE]}${nr[ir.XRANGEPLAINLOOSE]}$`);Xr("LONECARET","(?:\\^)");Xr("CARETTRIM",`(\\s*)${nr[ir.LONECARET]}\\s+`,!0);wd.caretTrimReplace="$1^";Xr("CARET",`^${nr[ir.LONECARET]}${nr[ir.XRANGEPLAIN]}$`);Xr("CARETLOOSE",`^${nr[ir.LONECARET]}${nr[ir.XRANGEPLAINLOOSE]}$`);Xr("COMPARATORLOOSE",`^${nr[ir.GTLT]}\\s*(${nr[ir.LOOSEPLAIN]})$|^$`);Xr("COMPARATOR",`^${nr[ir.GTLT]}\\s*(${nr[ir.FULLPLAIN]})$|^$`);Xr("COMPARATORTRIM",`(\\s*)${nr[ir.GTLT]}\\s*(${nr[ir.LOOSEPLAIN]}|${nr[ir.XRANGEPLAIN]})`,!0);wd.comparatorTrimReplace="$1$2$3";Xr("HYPHENRANGE",`^\\s*(${nr[ir.XRANGEPLAIN]})\\s+-\\s+(${nr[ir.XRANGEPLAIN]})\\s*$`);Xr("HYPHENRANGELOOSE",`^\\s*(${nr[ir.XRANGEPLAINLOOSE]})\\s+-\\s+(${nr[ir.XRANGEPLAINLOOSE]})\\s*$`);Xr("STAR","(<|>)?=?\\s*\\*");Xr("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");Xr("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var VD=b((pNr,L4e)=>{"use strict";var y8t=Object.freeze({loose:!0}),b8t=Object.freeze({}),w8t=e=>e?typeof e!="object"?y8t:e:b8t;L4e.exports=w8t});var wJ=b((fNr,M4e)=>{"use strict";var $4e=/^[0-9]+$/,B4e=(e,t)=>{let r=$4e.test(e),n=$4e.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e<t?-1:1},_8t=(e,t)=>B4e(t,e);M4e.exports={compareIdentifiers:B4e,rcompareIdentifiers:_8t}});var iu=b((dNr,z4e)=>{"use strict";var GD=y9(),{MAX_LENGTH:U4e,MAX_SAFE_INTEGER:WD}=v9(),{safeRe:KD,t:YD}=q_(),x8t=VD(),{compareIdentifiers:L_}=wJ(),_J=class e{constructor(t,r){if(r=x8t(r),t instanceof e){if(t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>U4e)throw new TypeError(`version is longer than ${U4e} characters`);GD("SemVer",t,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=t.trim().match(r.loose?KD[YD.LOOSE]:KD[YD.FULL]);if(!n)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>WD||this.major<0)throw new TypeError("Invalid major version");if(this.minor>WD||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>WD||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let a=+i;if(a>=0&&a<WD)return a}return i}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(GD("SemVer.compare",this.version,this.options,t),!(t instanceof e)){if(typeof t=="string"&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),L_(this.major,t.major)||L_(this.minor,t.minor)||L_(this.patch,t.patch)}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let n=this.prerelease[r],i=t.prerelease[r];if(GD("prerelease compare",r,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return L_(n,i)}while(++r)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let r=0;do{let n=this.build[r],i=t.build[r];if(GD("build compare",r,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return L_(n,i)}while(++r)}inc(t,r,n){if(t.startsWith("pre")){if(!r&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(r){let i=`-${r}`.match(this.options.loose?KD[YD.PRERELEASELOOSE]:KD[YD.PRERELEASE]);if(!i||i[1]!==r)throw new Error(`invalid identifier: ${r}`)}}switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,n),this.inc("pre",r,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,n),this.inc("pre",r,n);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let i=Number(n)?1:0;if(this.prerelease.length===0)this.prerelease=[i];else{let a=this.prerelease.length;for(;--a>=0;)typeof this.prerelease[a]=="number"&&(this.prerelease[a]++,a=-2);if(a===-1){if(r===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(r){let a=[r,i];n===!1&&(a=[r]),L_(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=a):this.prerelease=a}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};z4e.exports=_J});var T2=b((hNr,V4e)=>{"use strict";var H4e=iu(),E8t=(e,t,r=!1)=>{if(e instanceof H4e)return e;try{return new H4e(e,t)}catch(n){if(!r)return null;throw n}};V4e.exports=E8t});var W4e=b((mNr,G4e)=>{"use strict";var S8t=T2(),k8t=(e,t)=>{let r=S8t(e,t);return r?r.version:null};G4e.exports=k8t});var Y4e=b((gNr,K4e)=>{"use strict";var A8t=T2(),T8t=(e,t)=>{let r=A8t(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};K4e.exports=T8t});var Q4e=b((vNr,X4e)=>{"use strict";var J4e=iu(),O8t=(e,t,r,n,i)=>{typeof r=="string"&&(i=n,n=r,r=void 0);try{return new J4e(e instanceof J4e?e.version:e,r).inc(t,n,i).version}catch{return null}};X4e.exports=O8t});var t3e=b((yNr,e3e)=>{"use strict";var Z4e=T2(),D8t=(e,t)=>{let r=Z4e(e,null,!0),n=Z4e(t,null,!0),i=r.compare(n);if(i===0)return null;let a=i>0,s=a?r:n,o=a?n:r,c=!!s.prerelease.length;if(!!o.prerelease.length&&!c){if(!o.patch&&!o.minor)return"major";if(o.compareMain(s)===0)return o.minor&&!o.patch?"minor":"patch"}let f=c?"pre":"";return r.major!==n.major?f+"major":r.minor!==n.minor?f+"minor":r.patch!==n.patch?f+"patch":"prerelease"};e3e.exports=D8t});var n3e=b((bNr,r3e)=>{"use strict";var C8t=iu(),P8t=(e,t)=>new C8t(e,t).major;r3e.exports=P8t});var a3e=b((wNr,i3e)=>{"use strict";var I8t=iu(),R8t=(e,t)=>new I8t(e,t).minor;i3e.exports=R8t});var o3e=b((_Nr,s3e)=>{"use strict";var F8t=iu(),j8t=(e,t)=>new F8t(e,t).patch;s3e.exports=j8t});var c3e=b((xNr,u3e)=>{"use strict";var N8t=T2(),q8t=(e,t)=>{let r=N8t(e,t);return r&&r.prerelease.length?r.prerelease:null};u3e.exports=q8t});var jl=b((ENr,p3e)=>{"use strict";var l3e=iu(),L8t=(e,t,r)=>new l3e(e,r).compare(new l3e(t,r));p3e.exports=L8t});var d3e=b((SNr,f3e)=>{"use strict";var $8t=jl(),B8t=(e,t,r)=>$8t(t,e,r);f3e.exports=B8t});var m3e=b((kNr,h3e)=>{"use strict";var M8t=jl(),U8t=(e,t)=>M8t(e,t,!0);h3e.exports=U8t});var JD=b((ANr,v3e)=>{"use strict";var g3e=iu(),z8t=(e,t,r)=>{let n=new g3e(e,r),i=new g3e(t,r);return n.compare(i)||n.compareBuild(i)};v3e.exports=z8t});var b3e=b((TNr,y3e)=>{"use strict";var H8t=JD(),V8t=(e,t)=>e.sort((r,n)=>H8t(r,n,t));y3e.exports=V8t});var _3e=b((ONr,w3e)=>{"use strict";var G8t=JD(),W8t=(e,t)=>e.sort((r,n)=>G8t(n,r,t));w3e.exports=W8t});var b9=b((DNr,x3e)=>{"use strict";var K8t=jl(),Y8t=(e,t,r)=>K8t(e,t,r)>0;x3e.exports=Y8t});var XD=b((CNr,E3e)=>{"use strict";var J8t=jl(),X8t=(e,t,r)=>J8t(e,t,r)<0;E3e.exports=X8t});var xJ=b((PNr,S3e)=>{"use strict";var Q8t=jl(),Z8t=(e,t,r)=>Q8t(e,t,r)===0;S3e.exports=Z8t});var EJ=b((INr,k3e)=>{"use strict";var ext=jl(),txt=(e,t,r)=>ext(e,t,r)!==0;k3e.exports=txt});var QD=b((RNr,A3e)=>{"use strict";var rxt=jl(),nxt=(e,t,r)=>rxt(e,t,r)>=0;A3e.exports=nxt});var ZD=b((FNr,T3e)=>{"use strict";var ixt=jl(),axt=(e,t,r)=>ixt(e,t,r)<=0;T3e.exports=axt});var SJ=b((jNr,O3e)=>{"use strict";var sxt=xJ(),oxt=EJ(),uxt=b9(),cxt=QD(),lxt=XD(),pxt=ZD(),fxt=(e,t,r,n)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e===r;case"!==":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e!==r;case"":case"=":case"==":return sxt(e,r,n);case"!=":return oxt(e,r,n);case">":return uxt(e,r,n);case">=":return cxt(e,r,n);case"<":return lxt(e,r,n);case"<=":return pxt(e,r,n);default:throw new TypeError(`Invalid operator: ${t}`)}};O3e.exports=fxt});var C3e=b((NNr,D3e)=>{"use strict";var dxt=iu(),hxt=T2(),{safeRe:eC,t:tC}=q_(),mxt=(e,t)=>{if(e instanceof dxt)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let r=null;if(!t.rtl)r=e.match(t.includePrerelease?eC[tC.COERCEFULL]:eC[tC.COERCE]);else{let c=t.includePrerelease?eC[tC.COERCERTLFULL]:eC[tC.COERCERTL],p;for(;(p=c.exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||p.index+p[0].length!==r.index+r[0].length)&&(r=p),c.lastIndex=p.index+p[1].length+p[2].length;c.lastIndex=-1}if(r===null)return null;let n=r[2],i=r[3]||"0",a=r[4]||"0",s=t.includePrerelease&&r[5]?`-${r[5]}`:"",o=t.includePrerelease&&r[6]?`+${r[6]}`:"";return hxt(`${n}.${i}.${a}${s}${o}`,t)};D3e.exports=mxt});var I3e=b((qNr,P3e)=>{"use strict";var kJ=class{constructor(){this.max=1e3,this.map=new Map}get(t){let r=this.map.get(t);if(r!==void 0)return this.map.delete(t),this.map.set(t,r),r}delete(t){return this.map.delete(t)}set(t,r){if(!this.delete(t)&&r!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(t,r)}return this}};P3e.exports=kJ});var Nl=b((LNr,N3e)=>{"use strict";var gxt=/\s+/g,AJ=class e{constructor(t,r){if(r=yxt(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof TJ)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().replace(gxt," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(i=>!F3e(i[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&kxt(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let t=0;t<this.set.length;t++){t>0&&(this.formatted+="||");let r=this.set[t];for(let n=0;n<r.length;n++)n>0&&(this.formatted+=" "),this.formatted+=r[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(t){let n=((this.options.includePrerelease&&Ext)|(this.options.loose&&Sxt))+":"+t,i=R3e.get(n);if(i)return i;let a=this.options.loose,s=a?yc[zu.HYPHENRANGELOOSE]:yc[zu.HYPHENRANGE];t=t.replace(s,jxt(this.options.includePrerelease)),ca("hyphen replace",t),t=t.replace(yc[zu.COMPARATORTRIM],wxt),ca("comparator trim",t),t=t.replace(yc[zu.TILDETRIM],_xt),ca("tilde trim",t),t=t.replace(yc[zu.CARETTRIM],xxt),ca("caret trim",t);let o=t.split(" ").map(d=>Axt(d,this.options)).join(" ").split(/\s+/).map(d=>Fxt(d,this.options));a&&(o=o.filter(d=>(ca("loose invalid filter",d,this.options),!!d.match(yc[zu.COMPARATORLOOSE])))),ca("range list",o);let c=new Map,p=o.map(d=>new TJ(d,this.options));for(let d of p){if(F3e(d))return[d];c.set(d.value,d)}c.size>1&&c.has("")&&c.delete("");let f=[...c.values()];return R3e.set(n,f),f}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(n=>j3e(n,r)&&t.set.some(i=>j3e(i,r)&&n.every(a=>i.every(s=>a.intersects(s,r)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new bxt(t,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(Nxt(this.set[r],t,this.options))return!0;return!1}};N3e.exports=AJ;var vxt=I3e(),R3e=new vxt,yxt=VD(),TJ=w9(),ca=y9(),bxt=iu(),{safeRe:yc,t:zu,comparatorTrimReplace:wxt,tildeTrimReplace:_xt,caretTrimReplace:xxt}=q_(),{FLAG_INCLUDE_PRERELEASE:Ext,FLAG_LOOSE:Sxt}=v9(),F3e=e=>e.value==="<0.0.0-0",kxt=e=>e.value==="",j3e=(e,t)=>{let r=!0,n=e.slice(),i=n.pop();for(;r&&n.length;)r=n.every(a=>i.intersects(a,t)),i=n.pop();return r},Axt=(e,t)=>(ca("comp",e,t),e=Dxt(e,t),ca("caret",e),e=Txt(e,t),ca("tildes",e),e=Pxt(e,t),ca("xrange",e),e=Rxt(e,t),ca("stars",e),e),Hu=e=>!e||e.toLowerCase()==="x"||e==="*",Txt=(e,t)=>e.trim().split(/\s+/).map(r=>Oxt(r,t)).join(" "),Oxt=(e,t)=>{let r=t.loose?yc[zu.TILDELOOSE]:yc[zu.TILDE];return e.replace(r,(n,i,a,s,o)=>{ca("tilde",e,n,i,a,s,o);let c;return Hu(i)?c="":Hu(a)?c=`>=${i}.0.0 <${+i+1}.0.0-0`:Hu(s)?c=`>=${i}.${a}.0 <${i}.${+a+1}.0-0`:o?(ca("replaceTilde pr",o),c=`>=${i}.${a}.${s}-${o} <${i}.${+a+1}.0-0`):c=`>=${i}.${a}.${s} <${i}.${+a+1}.0-0`,ca("tilde return",c),c})},Dxt=(e,t)=>e.trim().split(/\s+/).map(r=>Cxt(r,t)).join(" "),Cxt=(e,t)=>{ca("caret",e,t);let r=t.loose?yc[zu.CARETLOOSE]:yc[zu.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(i,a,s,o,c)=>{ca("caret",e,i,a,s,o,c);let p;return Hu(a)?p="":Hu(s)?p=`>=${a}.0.0${n} <${+a+1}.0.0-0`:Hu(o)?a==="0"?p=`>=${a}.${s}.0${n} <${a}.${+s+1}.0-0`:p=`>=${a}.${s}.0${n} <${+a+1}.0.0-0`:c?(ca("replaceCaret pr",c),a==="0"?s==="0"?p=`>=${a}.${s}.${o}-${c} <${a}.${s}.${+o+1}-0`:p=`>=${a}.${s}.${o}-${c} <${a}.${+s+1}.0-0`:p=`>=${a}.${s}.${o}-${c} <${+a+1}.0.0-0`):(ca("no pr"),a==="0"?s==="0"?p=`>=${a}.${s}.${o}${n} <${a}.${s}.${+o+1}-0`:p=`>=${a}.${s}.${o}${n} <${a}.${+s+1}.0-0`:p=`>=${a}.${s}.${o} <${+a+1}.0.0-0`),ca("caret return",p),p})},Pxt=(e,t)=>(ca("replaceXRanges",e,t),e.split(/\s+/).map(r=>Ixt(r,t)).join(" ")),Ixt=(e,t)=>{e=e.trim();let r=t.loose?yc[zu.XRANGELOOSE]:yc[zu.XRANGE];return e.replace(r,(n,i,a,s,o,c)=>{ca("xRange",e,n,i,a,s,o,c);let p=Hu(a),f=p||Hu(s),d=f||Hu(o),h=d;return i==="="&&h&&(i=""),c=t.includePrerelease?"-0":"",p?i===">"||i==="<"?n="<0.0.0-0":n="*":i&&h?(f&&(s=0),o=0,i===">"?(i=">=",f?(a=+a+1,s=0,o=0):(s=+s+1,o=0)):i==="<="&&(i="<",f?a=+a+1:s=+s+1),i==="<"&&(c="-0"),n=`${i+a}.${s}.${o}${c}`):f?n=`>=${a}.0.0${c} <${+a+1}.0.0-0`:d&&(n=`>=${a}.${s}.0${c} <${a}.${+s+1}.0-0`),ca("xRange return",n),n})},Rxt=(e,t)=>(ca("replaceStars",e,t),e.trim().replace(yc[zu.STAR],"")),Fxt=(e,t)=>(ca("replaceGTE0",e,t),e.trim().replace(yc[t.includePrerelease?zu.GTE0PRE:zu.GTE0],"")),jxt=e=>(t,r,n,i,a,s,o,c,p,f,d,h)=>(Hu(n)?r="":Hu(i)?r=`>=${n}.0.0${e?"-0":""}`:Hu(a)?r=`>=${n}.${i}.0${e?"-0":""}`:s?r=`>=${r}`:r=`>=${r}${e?"-0":""}`,Hu(p)?c="":Hu(f)?c=`<${+p+1}.0.0-0`:Hu(d)?c=`<${p}.${+f+1}.0-0`:h?c=`<=${p}.${f}.${d}-${h}`:e?c=`<${p}.${f}.${+d+1}-0`:c=`<=${c}`,`${r} ${c}`.trim()),Nxt=(e,t,r)=>{for(let n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!r.includePrerelease){for(let n=0;n<e.length;n++)if(ca(e[n].semver),e[n].semver!==TJ.ANY&&e[n].semver.prerelease.length>0){let i=e[n].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0}return!1}return!0}});var w9=b(($Nr,U3e)=>{"use strict";var _9=Symbol("SemVer ANY"),CJ=class e{static get ANY(){return _9}constructor(t,r){if(r=q3e(r),t instanceof e){if(t.loose===!!r.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),DJ("comparator",t,r),this.options=r,this.loose=!!r.loose,this.parse(t),this.semver===_9?this.value="":this.value=this.operator+this.semver.version,DJ("comp",this)}parse(t){let r=this.options.loose?L3e[$3e.COMPARATORLOOSE]:L3e[$3e.COMPARATOR],n=t.match(r);if(!n)throw new TypeError(`Invalid comparator: ${t}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new B3e(n[2],this.options.loose):this.semver=_9}toString(){return this.value}test(t){if(DJ("Comparator.test",t,this.options.loose),this.semver===_9||t===_9)return!0;if(typeof t=="string")try{t=new B3e(t,this.options)}catch{return!1}return OJ(t,this.operator,this.semver,this.options)}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new M3e(t.value,r).test(this.value):t.operator===""?t.value===""?!0:new M3e(this.value,r).test(t.semver):(r=q3e(r),r.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||OJ(this.semver,"<",t.semver,r)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||OJ(this.semver,">",t.semver,r)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};U3e.exports=CJ;var q3e=VD(),{safeRe:L3e,t:$3e}=q_(),OJ=SJ(),DJ=y9(),B3e=iu(),M3e=Nl()});var x9=b((BNr,z3e)=>{"use strict";var qxt=Nl(),Lxt=(e,t,r)=>{try{t=new qxt(t,r)}catch{return!1}return t.test(e)};z3e.exports=Lxt});var V3e=b((MNr,H3e)=>{"use strict";var $xt=Nl(),Bxt=(e,t)=>new $xt(e,t).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));H3e.exports=Bxt});var W3e=b((UNr,G3e)=>{"use strict";var Mxt=iu(),Uxt=Nl(),zxt=(e,t,r)=>{let n=null,i=null,a=null;try{a=new Uxt(t,r)}catch{return null}return e.forEach(s=>{a.test(s)&&(!n||i.compare(s)===-1)&&(n=s,i=new Mxt(n,r))}),n};G3e.exports=zxt});var Y3e=b((zNr,K3e)=>{"use strict";var Hxt=iu(),Vxt=Nl(),Gxt=(e,t,r)=>{let n=null,i=null,a=null;try{a=new Vxt(t,r)}catch{return null}return e.forEach(s=>{a.test(s)&&(!n||i.compare(s)===1)&&(n=s,i=new Hxt(n,r))}),n};K3e.exports=Gxt});var Q3e=b((HNr,X3e)=>{"use strict";var PJ=iu(),Wxt=Nl(),J3e=b9(),Kxt=(e,t)=>{e=new Wxt(e,t);let r=new PJ("0.0.0");if(e.test(r)||(r=new PJ("0.0.0-0"),e.test(r)))return r;r=null;for(let n=0;n<e.set.length;++n){let i=e.set[n],a=null;i.forEach(s=>{let o=new PJ(s.semver.version);switch(s.operator){case">":o.prerelease.length===0?o.patch++:o.prerelease.push(0),o.raw=o.format();case"":case">=":(!a||J3e(o,a))&&(a=o);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${s.operator}`)}}),a&&(!r||J3e(r,a))&&(r=a)}return r&&e.test(r)?r:null};X3e.exports=Kxt});var e8e=b((VNr,Z3e)=>{"use strict";var Yxt=Nl(),Jxt=(e,t)=>{try{return new Yxt(e,t).range||"*"}catch{return null}};Z3e.exports=Jxt});var rC=b((GNr,i8e)=>{"use strict";var Xxt=iu(),n8e=w9(),{ANY:Qxt}=n8e,Zxt=Nl(),eEt=x9(),t8e=b9(),r8e=XD(),tEt=ZD(),rEt=QD(),nEt=(e,t,r,n)=>{e=new Xxt(e,n),t=new Zxt(t,n);let i,a,s,o,c;switch(r){case">":i=t8e,a=tEt,s=r8e,o=">",c=">=";break;case"<":i=r8e,a=rEt,s=t8e,o="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(eEt(e,t,n))return!1;for(let p=0;p<t.set.length;++p){let f=t.set[p],d=null,h=null;if(f.forEach(g=>{g.semver===Qxt&&(g=new n8e(">=0.0.0")),d=d||g,h=h||g,i(g.semver,d.semver,n)?d=g:s(g.semver,h.semver,n)&&(h=g)}),d.operator===o||d.operator===c||(!h.operator||h.operator===o)&&a(e,h.semver))return!1;if(h.operator===c&&s(e,h.semver))return!1}return!0};i8e.exports=nEt});var s8e=b((WNr,a8e)=>{"use strict";var iEt=rC(),aEt=(e,t,r)=>iEt(e,t,">",r);a8e.exports=aEt});var u8e=b((KNr,o8e)=>{"use strict";var sEt=rC(),oEt=(e,t,r)=>sEt(e,t,"<",r);o8e.exports=oEt});var p8e=b((YNr,l8e)=>{"use strict";var c8e=Nl(),uEt=(e,t,r)=>(e=new c8e(e,r),t=new c8e(t,r),e.intersects(t,r));l8e.exports=uEt});var d8e=b((JNr,f8e)=>{"use strict";var cEt=x9(),lEt=jl();f8e.exports=(e,t,r)=>{let n=[],i=null,a=null,s=e.sort((f,d)=>lEt(f,d,r));for(let f of s)cEt(f,t,r)?(a=f,i||(i=f)):(a&&n.push([i,a]),a=null,i=null);i&&n.push([i,null]);let o=[];for(let[f,d]of n)f===d?o.push(f):!d&&f===s[0]?o.push("*"):d?f===s[0]?o.push(`<=${d}`):o.push(`${f} - ${d}`):o.push(`>=${f}`);let c=o.join(" || "),p=typeof t.raw=="string"?t.raw:String(t);return c.length<p.length?c:t}});var b8e=b((XNr,y8e)=>{"use strict";var h8e=Nl(),RJ=w9(),{ANY:IJ}=RJ,E9=x9(),FJ=jl(),pEt=(e,t,r={})=>{if(e===t)return!0;e=new h8e(e,r),t=new h8e(t,r);let n=!1;e:for(let i of e.set){for(let a of t.set){let s=dEt(i,a,r);if(n=n||s!==null,s)continue e}if(n)return!1}return!0},fEt=[new RJ(">=0.0.0-0")],m8e=[new RJ(">=0.0.0")],dEt=(e,t,r)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===IJ){if(t.length===1&&t[0].semver===IJ)return!0;r.includePrerelease?e=fEt:e=m8e}if(t.length===1&&t[0].semver===IJ){if(r.includePrerelease)return!0;t=m8e}let n=new Set,i,a;for(let g of e)g.operator===">"||g.operator===">="?i=g8e(i,g,r):g.operator==="<"||g.operator==="<="?a=v8e(a,g,r):n.add(g.semver);if(n.size>1)return null;let s;if(i&&a){if(s=FJ(i.semver,a.semver,r),s>0)return null;if(s===0&&(i.operator!==">="||a.operator!=="<="))return null}for(let g of n){if(i&&!E9(g,String(i),r)||a&&!E9(g,String(a),r))return null;for(let v of t)if(!E9(g,String(v),r))return!1;return!0}let o,c,p,f,d=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1,h=i&&!r.includePrerelease&&i.semver.prerelease.length?i.semver:!1;d&&d.prerelease.length===1&&a.operator==="<"&&d.prerelease[0]===0&&(d=!1);for(let g of t){if(f=f||g.operator===">"||g.operator===">=",p=p||g.operator==="<"||g.operator==="<=",i){if(h&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===h.major&&g.semver.minor===h.minor&&g.semver.patch===h.patch&&(h=!1),g.operator===">"||g.operator===">="){if(o=g8e(i,g,r),o===g&&o!==i)return!1}else if(i.operator===">="&&!E9(i.semver,String(g),r))return!1}if(a){if(d&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===d.major&&g.semver.minor===d.minor&&g.semver.patch===d.patch&&(d=!1),g.operator==="<"||g.operator==="<="){if(c=v8e(a,g,r),c===g&&c!==a)return!1}else if(a.operator==="<="&&!E9(a.semver,String(g),r))return!1}if(!g.operator&&(a||i)&&s!==0)return!1}return!(i&&p&&!a&&s!==0||a&&f&&!i&&s!==0||h||d)},g8e=(e,t,r)=>{if(!e)return t;let n=FJ(e.semver,t.semver,r);return n>0?e:n<0||t.operator===">"&&e.operator===">="?t:e},v8e=(e,t,r)=>{if(!e)return t;let n=FJ(e.semver,t.semver,r);return n<0?e:n>0||t.operator==="<"&&e.operator==="<="?t:e};y8e.exports=pEt});var $_=b((QNr,x8e)=>{"use strict";var jJ=q_(),w8e=v9(),hEt=iu(),_8e=wJ(),mEt=T2(),gEt=W4e(),vEt=Y4e(),yEt=Q4e(),bEt=t3e(),wEt=n3e(),_Et=a3e(),xEt=o3e(),EEt=c3e(),SEt=jl(),kEt=d3e(),AEt=m3e(),TEt=JD(),OEt=b3e(),DEt=_3e(),CEt=b9(),PEt=XD(),IEt=xJ(),REt=EJ(),FEt=QD(),jEt=ZD(),NEt=SJ(),qEt=C3e(),LEt=w9(),$Et=Nl(),BEt=x9(),MEt=V3e(),UEt=W3e(),zEt=Y3e(),HEt=Q3e(),VEt=e8e(),GEt=rC(),WEt=s8e(),KEt=u8e(),YEt=p8e(),JEt=d8e(),XEt=b8e();x8e.exports={parse:mEt,valid:gEt,clean:vEt,inc:yEt,diff:bEt,major:wEt,minor:_Et,patch:xEt,prerelease:EEt,compare:SEt,rcompare:kEt,compareLoose:AEt,compareBuild:TEt,sort:OEt,rsort:DEt,gt:CEt,lt:PEt,eq:IEt,neq:REt,gte:FEt,lte:jEt,cmp:NEt,coerce:qEt,Comparator:LEt,Range:$Et,satisfies:BEt,toComparators:MEt,maxSatisfying:UEt,minSatisfying:zEt,minVersion:HEt,validRange:VEt,outside:GEt,gtr:WEt,ltr:KEt,intersects:YEt,simplifyRange:JEt,subset:XEt,SemVer:hEt,re:jJ.re,src:jJ.src,tokens:jJ.t,SEMVER_SPEC_VERSION:w8e.SEMVER_SPEC_VERSION,RELEASE_TYPES:w8e.RELEASE_TYPES,compareIdentifiers:_8e.compareIdentifiers,rcompareIdentifiers:_8e.rcompareIdentifiers}});var nxe=b((S9,M_)=>{var QEt=200,GJ="__lodash_hash_undefined__",lC=1,F8e=2,j8e=9007199254740991,nC="[object Arguments]",$J="[object Array]",ZEt="[object AsyncFunction]",N8e="[object Boolean]",q8e="[object Date]",L8e="[object Error]",$8e="[object Function]",e5t="[object GeneratorFunction]",iC="[object Map]",B8e="[object Number]",t5t="[object Null]",B_="[object Object]",E8e="[object Promise]",r5t="[object Proxy]",M8e="[object RegExp]",aC="[object Set]",U8e="[object String]",n5t="[object Symbol]",i5t="[object Undefined]",BJ="[object WeakMap]",z8e="[object ArrayBuffer]",sC="[object DataView]",a5t="[object Float32Array]",s5t="[object Float64Array]",o5t="[object Int8Array]",u5t="[object Int16Array]",c5t="[object Int32Array]",l5t="[object Uint8Array]",p5t="[object Uint8ClampedArray]",f5t="[object Uint16Array]",d5t="[object Uint32Array]",h5t=/[\\^$.*+?()[\]{}|]/g,m5t=/^\[object .+?Constructor\]$/,g5t=/^(?:0|[1-9]\d*)$/,la={};la[a5t]=la[s5t]=la[o5t]=la[u5t]=la[c5t]=la[l5t]=la[p5t]=la[f5t]=la[d5t]=!0;la[nC]=la[$J]=la[z8e]=la[N8e]=la[sC]=la[q8e]=la[L8e]=la[$8e]=la[iC]=la[B8e]=la[B_]=la[M8e]=la[aC]=la[U8e]=la[BJ]=!1;var H8e=typeof global=="object"&&global&&global.Object===Object&&global,v5t=typeof self=="object"&&self&&self.Object===Object&&self,Um=H8e||v5t||Function("return this")(),V8e=typeof S9=="object"&&S9&&!S9.nodeType&&S9,S8e=V8e&&typeof M_=="object"&&M_&&!M_.nodeType&&M_,G8e=S8e&&S8e.exports===V8e,NJ=G8e&&H8e.process,k8e=function(){try{return NJ&&NJ.binding&&NJ.binding("util")}catch{}}(),A8e=k8e&&k8e.isTypedArray;function y5t(e,t){for(var r=-1,n=e==null?0:e.length,i=0,a=[];++r<n;){var s=e[r];t(s,r,e)&&(a[i++]=s)}return a}function b5t(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}function w5t(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}function _5t(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}function x5t(e){return function(t){return e(t)}}function E5t(e,t){return e.has(t)}function S5t(e,t){return e?.[t]}function k5t(e){var t=-1,r=Array(e.size);return e.forEach(function(n,i){r[++t]=[i,n]}),r}function A5t(e,t){return function(r){return e(t(r))}}function T5t(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}var O5t=Array.prototype,D5t=Function.prototype,pC=Object.prototype,qJ=Um["__core-js_shared__"],W8e=D5t.toString,_d=pC.hasOwnProperty,T8e=function(){var e=/[^.]+$/.exec(qJ&&qJ.keys&&qJ.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),K8e=pC.toString,C5t=RegExp("^"+W8e.call(_d).replace(h5t,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),O8e=G8e?Um.Buffer:void 0,oC=Um.Symbol,D8e=Um.Uint8Array,Y8e=pC.propertyIsEnumerable,P5t=O5t.splice,O2=oC?oC.toStringTag:void 0,C8e=Object.getOwnPropertySymbols,I5t=O8e?O8e.isBuffer:void 0,R5t=A5t(Object.keys,Object),MJ=U_(Um,"DataView"),k9=U_(Um,"Map"),UJ=U_(Um,"Promise"),zJ=U_(Um,"Set"),HJ=U_(Um,"WeakMap"),A9=U_(Object,"create"),F5t=P2(MJ),j5t=P2(k9),N5t=P2(UJ),q5t=P2(zJ),L5t=P2(HJ),P8e=oC?oC.prototype:void 0,LJ=P8e?P8e.valueOf:void 0;function D2(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function $5t(){this.__data__=A9?A9(null):{},this.size=0}function B5t(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function M5t(e){var t=this.__data__;if(A9){var r=t[e];return r===GJ?void 0:r}return _d.call(t,e)?t[e]:void 0}function U5t(e){var t=this.__data__;return A9?t[e]!==void 0:_d.call(t,e)}function z5t(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=A9&&t===void 0?GJ:t,this}D2.prototype.clear=$5t;D2.prototype.delete=B5t;D2.prototype.get=M5t;D2.prototype.has=U5t;D2.prototype.set=z5t;function zm(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function H5t(){this.__data__=[],this.size=0}function V5t(e){var t=this.__data__,r=fC(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():P5t.call(t,r,1),--this.size,!0}function G5t(e){var t=this.__data__,r=fC(t,e);return r<0?void 0:t[r][1]}function W5t(e){return fC(this.__data__,e)>-1}function K5t(e,t){var r=this.__data__,n=fC(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}zm.prototype.clear=H5t;zm.prototype.delete=V5t;zm.prototype.get=G5t;zm.prototype.has=W5t;zm.prototype.set=K5t;function C2(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Y5t(){this.size=0,this.__data__={hash:new D2,map:new(k9||zm),string:new D2}}function J5t(e){var t=dC(this,e).delete(e);return this.size-=t?1:0,t}function X5t(e){return dC(this,e).get(e)}function Q5t(e){return dC(this,e).has(e)}function Z5t(e,t){var r=dC(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}C2.prototype.clear=Y5t;C2.prototype.delete=J5t;C2.prototype.get=X5t;C2.prototype.has=Q5t;C2.prototype.set=Z5t;function uC(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new C2;++t<r;)this.add(e[t])}function e9t(e){return this.__data__.set(e,GJ),this}function t9t(e){return this.__data__.has(e)}uC.prototype.add=uC.prototype.push=e9t;uC.prototype.has=t9t;function O0(e){var t=this.__data__=new zm(e);this.size=t.size}function r9t(){this.__data__=new zm,this.size=0}function n9t(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function i9t(e){return this.__data__.get(e)}function a9t(e){return this.__data__.has(e)}function s9t(e,t){var r=this.__data__;if(r instanceof zm){var n=r.__data__;if(!k9||n.length<QEt-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new C2(n)}return r.set(e,t),this.size=r.size,this}O0.prototype.clear=r9t;O0.prototype.delete=n9t;O0.prototype.get=i9t;O0.prototype.has=a9t;O0.prototype.set=s9t;function o9t(e,t){var r=cC(e),n=!r&&x9t(e),i=!r&&!n&&VJ(e),a=!r&&!n&&!i&&rxe(e),s=r||n||i||a,o=s?_5t(e.length,String):[],c=o.length;for(var p in e)(t||_d.call(e,p))&&!(s&&(p=="length"||i&&(p=="offset"||p=="parent")||a&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||v9t(p,c)))&&o.push(p);return o}function fC(e,t){for(var r=e.length;r--;)if(Q8e(e[r][0],t))return r;return-1}function u9t(e,t,r){var n=t(e);return cC(e)?n:b5t(n,r(e))}function O9(e){return e==null?e===void 0?i5t:t5t:O2&&O2 in Object(e)?m9t(e):_9t(e)}function I8e(e){return T9(e)&&O9(e)==nC}function J8e(e,t,r,n,i){return e===t?!0:e==null||t==null||!T9(e)&&!T9(t)?e!==e&&t!==t:c9t(e,t,r,n,J8e,i)}function c9t(e,t,r,n,i,a){var s=cC(e),o=cC(t),c=s?$J:T0(e),p=o?$J:T0(t);c=c==nC?B_:c,p=p==nC?B_:p;var f=c==B_,d=p==B_,h=c==p;if(h&&VJ(e)){if(!VJ(t))return!1;s=!0,f=!1}if(h&&!f)return a||(a=new O0),s||rxe(e)?X8e(e,t,r,n,i,a):d9t(e,t,c,r,n,i,a);if(!(r&lC)){var g=f&&_d.call(e,"__wrapped__"),v=d&&_d.call(t,"__wrapped__");if(g||v){var y=g?e.value():e,_=v?t.value():t;return a||(a=new O0),i(y,_,r,n,a)}}return h?(a||(a=new O0),h9t(e,t,r,n,i,a)):!1}function l9t(e){if(!txe(e)||b9t(e))return!1;var t=Z8e(e)?C5t:m5t;return t.test(P2(e))}function p9t(e){return T9(e)&&exe(e.length)&&!!la[O9(e)]}function f9t(e){if(!w9t(e))return R5t(e);var t=[];for(var r in Object(e))_d.call(e,r)&&r!="constructor"&&t.push(r);return t}function X8e(e,t,r,n,i,a){var s=r&lC,o=e.length,c=t.length;if(o!=c&&!(s&&c>o))return!1;var p=a.get(e);if(p&&a.get(t))return p==t;var f=-1,d=!0,h=r&F8e?new uC:void 0;for(a.set(e,t),a.set(t,e);++f<o;){var g=e[f],v=t[f];if(n)var y=s?n(v,g,f,t,e,a):n(g,v,f,e,t,a);if(y!==void 0){if(y)continue;d=!1;break}if(h){if(!w5t(t,function(_,x){if(!E5t(h,x)&&(g===_||i(g,_,r,n,a)))return h.push(x)})){d=!1;break}}else if(!(g===v||i(g,v,r,n,a))){d=!1;break}}return a.delete(e),a.delete(t),d}function d9t(e,t,r,n,i,a,s){switch(r){case sC:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case z8e:return!(e.byteLength!=t.byteLength||!a(new D8e(e),new D8e(t)));case N8e:case q8e:case B8e:return Q8e(+e,+t);case L8e:return e.name==t.name&&e.message==t.message;case M8e:case U8e:return e==t+"";case iC:var o=k5t;case aC:var c=n&lC;if(o||(o=T5t),e.size!=t.size&&!c)return!1;var p=s.get(e);if(p)return p==t;n|=F8e,s.set(e,t);var f=X8e(o(e),o(t),n,i,a,s);return s.delete(e),f;case n5t:if(LJ)return LJ.call(e)==LJ.call(t)}return!1}function h9t(e,t,r,n,i,a){var s=r&lC,o=R8e(e),c=o.length,p=R8e(t),f=p.length;if(c!=f&&!s)return!1;for(var d=c;d--;){var h=o[d];if(!(s?h in t:_d.call(t,h)))return!1}var g=a.get(e);if(g&&a.get(t))return g==t;var v=!0;a.set(e,t),a.set(t,e);for(var y=s;++d<c;){h=o[d];var _=e[h],x=t[h];if(n)var A=s?n(x,_,h,t,e,a):n(_,x,h,e,t,a);if(!(A===void 0?_===x||i(_,x,r,n,a):A)){v=!1;break}y||(y=h=="constructor")}if(v&&!y){var D=e.constructor,j=t.constructor;D!=j&&"constructor"in e&&"constructor"in t&&!(typeof D=="function"&&D instanceof D&&typeof j=="function"&&j instanceof j)&&(v=!1)}return a.delete(e),a.delete(t),v}function R8e(e){return u9t(e,k9t,g9t)}function dC(e,t){var r=e.__data__;return y9t(t)?r[typeof t=="string"?"string":"hash"]:r.map}function U_(e,t){var r=S5t(e,t);return l9t(r)?r:void 0}function m9t(e){var t=_d.call(e,O2),r=e[O2];try{e[O2]=void 0;var n=!0}catch{}var i=K8e.call(e);return n&&(t?e[O2]=r:delete e[O2]),i}var g9t=C8e?function(e){return e==null?[]:(e=Object(e),y5t(C8e(e),function(t){return Y8e.call(e,t)}))}:A9t,T0=O9;(MJ&&T0(new MJ(new ArrayBuffer(1)))!=sC||k9&&T0(new k9)!=iC||UJ&&T0(UJ.resolve())!=E8e||zJ&&T0(new zJ)!=aC||HJ&&T0(new HJ)!=BJ)&&(T0=function(e){var t=O9(e),r=t==B_?e.constructor:void 0,n=r?P2(r):"";if(n)switch(n){case F5t:return sC;case j5t:return iC;case N5t:return E8e;case q5t:return aC;case L5t:return BJ}return t});function v9t(e,t){return t=t??j8e,!!t&&(typeof e=="number"||g5t.test(e))&&e>-1&&e%1==0&&e<t}function y9t(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function b9t(e){return!!T8e&&T8e in e}function w9t(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||pC;return e===r}function _9t(e){return K8e.call(e)}function P2(e){if(e!=null){try{return W8e.call(e)}catch{}try{return e+""}catch{}}return""}function Q8e(e,t){return e===t||e!==e&&t!==t}var x9t=I8e(function(){return arguments}())?I8e:function(e){return T9(e)&&_d.call(e,"callee")&&!Y8e.call(e,"callee")},cC=Array.isArray;function E9t(e){return e!=null&&exe(e.length)&&!Z8e(e)}var VJ=I5t||T9t;function S9t(e,t){return J8e(e,t)}function Z8e(e){if(!txe(e))return!1;var t=O9(e);return t==$8e||t==e5t||t==ZEt||t==r5t}function exe(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=j8e}function txe(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function T9(e){return e!=null&&typeof e=="object"}var rxe=A8e?x5t(A8e):p9t;function k9t(e){return E9t(e)?o9t(e):f9t(e)}function A9t(){return[]}function T9t(){return!1}M_.exports=S9t});var axe=b(C9=>{"use strict";Object.defineProperty(C9,"__esModule",{value:!0});C9.DownloadedUpdateHelper=void 0;C9.createTempUpdateFile=P9t;var O9t=require("crypto"),D9t=require("fs"),ixe=nxe(),I2=Bm(),D9=require("path"),WJ=class{constructor(t){this.cacheDir=t,this._file=null,this._packageFile=null,this.versionInfo=null,this.fileInfo=null,this._downloadedFileInfo=null}get downloadedFileInfo(){return this._downloadedFileInfo}get file(){return this._file}get packageFile(){return this._packageFile}get cacheDirForPendingUpdate(){return D9.join(this.cacheDir,"pending")}async validateDownloadedPath(t,r,n,i){if(this.versionInfo!=null&&this.file===t&&this.fileInfo!=null)return ixe(this.versionInfo,r)&&ixe(this.fileInfo.info,n.info)&&await(0,I2.pathExists)(t)?t:null;let a=await this.getValidCachedUpdateFile(n,i);return a===null?null:(i.info(`Update has already been downloaded to ${t}).`),this._file=a,a)}async setDownloadedFile(t,r,n,i,a,s){this._file=t,this._packageFile=r,this.versionInfo=n,this.fileInfo=i,this._downloadedFileInfo={fileName:a,sha512:i.info.sha512,isAdminRightsRequired:i.info.isAdminRightsRequired===!0},s&&await(0,I2.outputJson)(this.getUpdateInfoFile(),this._downloadedFileInfo)}async clear(){this._file=null,this._packageFile=null,this.versionInfo=null,this.fileInfo=null,await this.cleanCacheDirForPendingUpdate()}async cleanCacheDirForPendingUpdate(){try{await(0,I2.emptyDir)(this.cacheDirForPendingUpdate)}catch{}}async getValidCachedUpdateFile(t,r){let n=this.getUpdateInfoFile();if(!await(0,I2.pathExists)(n))return null;let a;try{a=await(0,I2.readJson)(n)}catch(p){let f="No cached update info available";return p.code!=="ENOENT"&&(await this.cleanCacheDirForPendingUpdate(),f+=` (error on read: ${p.message})`),r.info(f),null}if(!(a?.fileName!==null))return r.warn("Cached update info is corrupted: no fileName, directory for cached update will be cleaned"),await this.cleanCacheDirForPendingUpdate(),null;if(t.info.sha512!==a.sha512)return r.info(`Cached update sha512 checksum doesn't match the latest available update. New update must be downloaded. Cached: ${a.sha512}, expected: ${t.info.sha512}. Directory for cached update will be cleaned`),await this.cleanCacheDirForPendingUpdate(),null;let o=D9.join(this.cacheDirForPendingUpdate,a.fileName);if(!await(0,I2.pathExists)(o))return r.info("Cached update file doesn't exist"),null;let c=await C9t(o);return t.info.sha512!==c?(r.warn(`Sha512 checksum doesn't match the latest available update. New update must be downloaded. Cached: ${c}, expected: ${t.info.sha512}`),await this.cleanCacheDirForPendingUpdate(),null):(this._downloadedFileInfo=a,o)}getUpdateInfoFile(){return D9.join(this.cacheDirForPendingUpdate,"update-info.json")}};C9.DownloadedUpdateHelper=WJ;function C9t(e,t="sha512",r="base64",n){return new Promise((i,a)=>{let s=(0,O9t.createHash)(t);s.on("error",a).setEncoding(r),(0,D9t.createReadStream)(e,{...n,highWaterMark:1024*1024}).on("error",a).on("end",()=>{s.end(),i(s.read())}).pipe(s,{end:!1})})}async function P9t(e,t,r){let n=0,i=D9.join(t,e);for(let a=0;a<3;a++)try{return await(0,I2.unlink)(i),i}catch(s){if(s.code==="ENOENT")return i;r.warn(`Error on remove temp update file: ${s}`),i=D9.join(t,`${n++}-${e}`)}return i}});var sxe=b(YJ=>{"use strict";Object.defineProperty(YJ,"__esModule",{value:!0});YJ.getAppCacheDir=R9t;var KJ=require("path"),I9t=require("os");function R9t(){let e=(0,I9t.homedir)(),t;return process.platform==="win32"?t=process.env.LOCALAPPDATA||KJ.join(e,"AppData","Local"):process.platform==="darwin"?t=KJ.join(e,"Library","Caches"):t=process.env.XDG_CACHE_HOME||KJ.join(e,".cache"),t}});var uxe=b(hC=>{"use strict";Object.defineProperty(hC,"__esModule",{value:!0});hC.ElectronAppAdapter=void 0;var oxe=require("path"),F9t=sxe(),JJ=class{constructor(t=require("electron").app){this.app=t}whenReady(){return this.app.whenReady()}get version(){return this.app.getVersion()}get name(){return this.app.getName()}get isPackaged(){return this.app.isPackaged===!0}get appUpdateConfigPath(){return this.isPackaged?oxe.join(process.resourcesPath,"app-update.yml"):oxe.join(this.app.getAppPath(),"dev-app-update.yml")}get userDataPath(){return this.app.getPath("userData")}get baseCachePath(){return(0,F9t.getAppCacheDir)()}quit(){this.app.quit()}relaunch(){this.app.relaunch()}onQuit(t){this.app.once("quit",(r,n)=>t(n))}};hC.ElectronAppAdapter=JJ});var lxe=b(D0=>{"use strict";Object.defineProperty(D0,"__esModule",{value:!0});D0.ElectronHttpExecutor=D0.NET_SESSION_NAME=void 0;D0.getNetSession=cxe;var mC=no();D0.NET_SESSION_NAME="electron-updater";function cxe(){return require("electron").session.fromPartition(D0.NET_SESSION_NAME,{cache:!1})}var XJ=class extends mC.HttpExecutor{constructor(t){super(),this.proxyLoginCallback=t,this.cachedSession=null}async download(t,r,n){return await n.cancellationToken.createPromise((i,a,s)=>{let o={headers:n.headers||void 0,redirect:"manual"};(0,mC.configureRequestUrl)(t,o),(0,mC.configureRequestOptions)(o),this.doDownload(o,{destination:r,options:n,onCancel:s,callback:c=>{c==null?i(r):a(c)},responseHandler:null},0)})}createRequest(t,r){t.headers&&t.headers.Host&&(t.host=t.headers.Host,delete t.headers.Host),this.cachedSession==null&&(this.cachedSession=cxe());let n=require("electron").net.request({...t,session:this.cachedSession});return n.on("response",r),this.proxyLoginCallback!=null&&n.on("login",this.proxyLoginCallback),n}addRedirectHandlers(t,r,n,i,a){t.on("redirect",(s,o,c)=>{t.abort(),i>this.maxRedirects?n(this.createMaxRedirectError()):a(mC.HttpExecutor.prepareRedirectUrlOptions(c,r))})}};D0.ElectronHttpExecutor=XJ});var gxe=b((nqr,mxe)=>{var j9t=1/0,N9t="[object Symbol]",hxe=/[\\^$.*+?()[\]{}|]/g,q9t=RegExp(hxe.source),L9t=typeof global=="object"&&global&&global.Object===Object&&global,$9t=typeof self=="object"&&self&&self.Object===Object&&self,B9t=L9t||$9t||Function("return this")(),M9t=Object.prototype,U9t=M9t.toString,pxe=B9t.Symbol,fxe=pxe?pxe.prototype:void 0,dxe=fxe?fxe.toString:void 0;function z9t(e){if(typeof e=="string")return e;if(V9t(e))return dxe?dxe.call(e):"";var t=e+"";return t=="0"&&1/e==-j9t?"-0":t}function H9t(e){return!!e&&typeof e=="object"}function V9t(e){return typeof e=="symbol"||H9t(e)&&U9t.call(e)==N9t}function G9t(e){return e==null?"":z9t(e)}function W9t(e){return e=G9t(e),e&&q9t.test(e)?e.replace(hxe,"\\$&"):e}mxe.exports=W9t});var C0=b(z_=>{"use strict";Object.defineProperty(z_,"__esModule",{value:!0});z_.newBaseUrl=Y9t;z_.newUrlFromBase=QJ;z_.getChannelFilename=J9t;z_.blockmapFiles=X9t;var vxe=require("url"),K9t=gxe();function Y9t(e){let t=new vxe.URL(e);return t.pathname.endsWith("/")||(t.pathname+="/"),t}function QJ(e,t,r=!1){let n=new vxe.URL(e,t),i=t.search;return i!=null&&i.length!==0?n.search=i:r&&(n.search=`noCache=${Date.now().toString(32)}`),n}function J9t(e){return`${e}.yml`}function X9t(e,t,r){let n=QJ(`${e.pathname}.blockmap`,e);return[QJ(`${e.pathname.replace(new RegExp(K9t(r),"g"),t)}.blockmap`,e),n]}});var cl=b(I0=>{"use strict";Object.defineProperty(I0,"__esModule",{value:!0});I0.Provider=void 0;I0.findFile=Z9t;I0.parseUpdateInfo=eSt;I0.getFileList=bxe;I0.resolveFiles=tSt;var P0=no(),Q9t=zD(),yxe=C0(),ZJ=class{constructor(t){this.runtimeOptions=t,this.requestHeaders=null,this.executor=t.executor}get isUseMultipleRangeRequest(){return this.runtimeOptions.isUseMultipleRangeRequest!==!1}getChannelFilePrefix(){if(this.runtimeOptions.platform==="linux"){let t=process.env.TEST_UPDATER_ARCH||process.arch;return"-linux"+(t==="x64"?"":`-${t}`)}else return this.runtimeOptions.platform==="darwin"?"-mac":""}getDefaultChannelName(){return this.getCustomChannelName("latest")}getCustomChannelName(t){return`${t}${this.getChannelFilePrefix()}`}get fileExtraDownloadHeaders(){return null}setRequestHeaders(t){this.requestHeaders=t}httpRequest(t,r,n){return this.executor.request(this.createRequestOptions(t,r),n)}createRequestOptions(t,r){let n={};return this.requestHeaders==null?r!=null&&(n.headers=r):n.headers=r==null?this.requestHeaders:{...this.requestHeaders,...r},(0,P0.configureRequestUrl)(t,n),n}};I0.Provider=ZJ;function Z9t(e,t,r){if(e.length===0)throw(0,P0.newError)("No files provided","ERR_UPDATER_NO_FILES_PROVIDED");let n=e.find(i=>i.url.pathname.toLowerCase().endsWith(`.${t}`));return n??(r==null?e[0]:e.find(i=>!r.some(a=>i.url.pathname.toLowerCase().endsWith(`.${a}`))))}function eSt(e,t,r){if(e==null)throw(0,P0.newError)(`Cannot parse update info from ${t} in the latest release artifacts (${r}): rawData: null`,"ERR_UPDATER_INVALID_UPDATE_INFO");let n;try{n=(0,Q9t.load)(e)}catch(i){throw(0,P0.newError)(`Cannot parse update info from ${t} in the latest release artifacts (${r}): ${i.stack||i.message}, rawData: ${e}`,"ERR_UPDATER_INVALID_UPDATE_INFO")}return n}function bxe(e){let t=e.files;if(t!=null&&t.length>0)return t;if(e.path!=null)return[{url:e.path,sha2:e.sha2,sha512:e.sha512}];throw(0,P0.newError)(`No files provided: ${(0,P0.safeStringifyJson)(e)}`,"ERR_UPDATER_NO_FILES_PROVIDED")}function tSt(e,t,r=n=>n){let i=bxe(e).map(o=>{if(o.sha2==null&&o.sha512==null)throw(0,P0.newError)(`Update info doesn't contain nor sha256 neither sha512 checksum: ${(0,P0.safeStringifyJson)(o)}`,"ERR_UPDATER_NO_CHECKSUM");return{url:(0,yxe.newUrlFromBase)(r(o.url),t),info:o}}),a=e.packages,s=a==null?null:a[process.arch]||a.ia32;return s!=null&&(i[0].packageInfo={...s,path:(0,yxe.newUrlFromBase)(r(s.path),t).href}),i}});var nX=b(gC=>{"use strict";Object.defineProperty(gC,"__esModule",{value:!0});gC.GenericProvider=void 0;var wxe=no(),eX=C0(),tX=cl(),rX=class extends tX.Provider{constructor(t,r,n){super(n),this.configuration=t,this.updater=r,this.baseUrl=(0,eX.newBaseUrl)(this.configuration.url)}get channel(){let t=this.updater.channel||this.configuration.channel;return t==null?this.getDefaultChannelName():this.getCustomChannelName(t)}async getLatestVersion(){let t=(0,eX.getChannelFilename)(this.channel),r=(0,eX.newUrlFromBase)(t,this.baseUrl,this.updater.isAddNoCacheQuery);for(let n=0;;n++)try{return(0,tX.parseUpdateInfo)(await this.httpRequest(r),t,r)}catch(i){if(i instanceof wxe.HttpError&&i.statusCode===404)throw(0,wxe.newError)(`Cannot find channel "${t}" update info: ${i.stack||i.message}`,"ERR_UPDATER_CHANNEL_FILE_NOT_FOUND");if(i.code==="ECONNREFUSED"&&n<3){await new Promise((a,s)=>{try{setTimeout(a,1e3*n)}catch(o){s(o)}});continue}throw i}}resolveFiles(t){return(0,tX.resolveFiles)(t,this.baseUrl)}};gC.GenericProvider=rX});var xxe=b(vC=>{"use strict";Object.defineProperty(vC,"__esModule",{value:!0});vC.BitbucketProvider=void 0;var _xe=no(),iX=C0(),aX=cl(),sX=class extends aX.Provider{constructor(t,r,n){super({...n,isUseMultipleRangeRequest:!1}),this.configuration=t,this.updater=r;let{owner:i,slug:a}=t;this.baseUrl=(0,iX.newBaseUrl)(`https://api.bitbucket.org/2.0/repositories/${i}/${a}/downloads`)}get channel(){return this.updater.channel||this.configuration.channel||"latest"}async getLatestVersion(){let t=new _xe.CancellationToken,r=(0,iX.getChannelFilename)(this.getCustomChannelName(this.channel)),n=(0,iX.newUrlFromBase)(r,this.baseUrl,this.updater.isAddNoCacheQuery);try{let i=await this.httpRequest(n,void 0,t);return(0,aX.parseUpdateInfo)(i,r,n)}catch(i){throw(0,_xe.newError)(`Unable to find latest version on ${this.toString()}, please ensure release exists: ${i.stack||i.message}`,"ERR_UPDATER_LATEST_VERSION_NOT_FOUND")}}resolveFiles(t){return(0,aX.resolveFiles)(t,this.baseUrl)}toString(){let{owner:t,slug:r}=this.configuration;return`Bitbucket (owner: ${t}, slug: ${r}, channel: ${this.channel})`}};vC.BitbucketProvider=sX});var lX=b(R2=>{"use strict";Object.defineProperty(R2,"__esModule",{value:!0});R2.GitHubProvider=R2.BaseGitHubProvider=void 0;R2.computeReleaseNotes=Sxe;var Hm=no(),H_=$_(),rSt=require("url"),V_=C0(),uX=cl(),oX=/\/tag\/([^/]+)$/,yC=class extends uX.Provider{constructor(t,r,n){super({...n,isUseMultipleRangeRequest:!1}),this.options=t,this.baseUrl=(0,V_.newBaseUrl)((0,Hm.githubUrl)(t,r));let i=r==="github.com"?"api.github.com":r;this.baseApiUrl=(0,V_.newBaseUrl)((0,Hm.githubUrl)(t,i))}computeGithubBasePath(t){let r=this.options.host;return r&&!["github.com","api.github.com"].includes(r)?`/api/v3${t}`:t}};R2.BaseGitHubProvider=yC;var cX=class extends yC{constructor(t,r,n){super(t,"github.com",n),this.options=t,this.updater=r}get channel(){let t=this.updater.channel||this.options.channel;return t==null?this.getDefaultChannelName():this.getCustomChannelName(t)}async getLatestVersion(){var t,r,n,i,a;let s=new Hm.CancellationToken,o=await this.httpRequest((0,V_.newUrlFromBase)(`${this.basePath}.atom`,this.baseUrl),{accept:"application/xml, application/atom+xml, text/xml, */*"},s),c=(0,Hm.parseXml)(o),p=c.element("entry",!1,"No published versions on GitHub"),f=null;try{if(this.updater.allowPrerelease){let _=((t=this.updater)===null||t===void 0?void 0:t.channel)||((r=H_.prerelease(this.updater.currentVersion))===null||r===void 0?void 0:r[0])||null;if(_===null)f=oX.exec(p.element("link").attribute("href"))[1];else for(let x of c.getElements("entry")){let A=oX.exec(x.element("link").attribute("href"));if(A===null)continue;let D=A[1],j=((n=H_.prerelease(D))===null||n===void 0?void 0:n[0])||null,H=!_||["alpha","beta"].includes(_),F=j!==null&&!["alpha","beta"].includes(String(j));if(H&&!F&&!(_==="beta"&&j==="alpha")){f=D;break}if(j&&j===_){f=D;break}}}else{f=await this.getLatestTagName(s);for(let _ of c.getElements("entry"))if(oX.exec(_.element("link").attribute("href"))[1]===f){p=_;break}}}catch(_){throw(0,Hm.newError)(`Cannot parse releases feed: ${_.stack||_.message},
XML:
${o}`,"ERR_UPDATER_INVALID_RELEASE_FEED")}if(f==null)throw(0,Hm.newError)("No published versions on GitHub","ERR_UPDATER_NO_PUBLISHED_VERSIONS");let d,h="",g="",v=async _=>{h=(0,V_.getChannelFilename)(_),g=(0,V_.newUrlFromBase)(this.getBaseDownloadPath(String(f),h),this.baseUrl);let x=this.createRequestOptions(g);try{return await this.executor.request(x,s)}catch(A){throw A instanceof Hm.HttpError&&A.statusCode===404?(0,Hm.newError)(`Cannot find ${h} in the latest release artifacts (${g}): ${A.stack||A.message}`,"ERR_UPDATER_CHANNEL_FILE_NOT_FOUND"):A}};try{let _=this.channel;this.updater.allowPrerelease&&(!((i=H_.prerelease(f))===null||i===void 0)&&i[0])&&(_=this.getCustomChannelName(String((a=H_.prerelease(f))===null||a===void 0?void 0:a[0]))),d=await v(_)}catch(_){if(this.updater.allowPrerelease)d=await v(this.getDefaultChannelName());else throw _}let y=(0,uX.parseUpdateInfo)(d,h,g);return y.releaseName==null&&(y.releaseName=p.elementValueOrEmpty("title")),y.releaseNotes==null&&(y.releaseNotes=Sxe(this.updater.currentVersion,this.updater.fullChangelog,c,p)),{tag:f,...y}}async getLatestTagName(t){let r=this.options,n=r.host==null||r.host==="github.com"?(0,V_.newUrlFromBase)(`${this.basePath}/latest`,this.baseUrl):new rSt.URL(`${this.computeGithubBasePath(`/repos/${r.owner}/${r.repo}/releases`)}/latest`,this.baseApiUrl);try{let i=await this.httpRequest(n,{Accept:"application/json"},t);return i==null?null:JSON.parse(i).tag_name}catch(i){throw(0,Hm.newError)(`Unable to find latest version on GitHub (${n}), please ensure a production release exists: ${i.stack||i.message}`,"ERR_UPDATER_LATEST_VERSION_NOT_FOUND")}}get basePath(){return`/${this.options.owner}/${this.options.repo}/releases`}resolveFiles(t){return(0,uX.resolveFiles)(t,this.baseUrl,r=>this.getBaseDownloadPath(t.tag,r.replace(/ /g,"-")))}getBaseDownloadPath(t,r){return`${this.basePath}/download/${t}/${r}`}};R2.GitHubProvider=cX;function Exe(e){let t=e.elementValueOrEmpty("content");return t==="No content."?"":t}function Sxe(e,t,r,n){if(!t)return Exe(n);let i=[];for(let a of r.getElements("entry")){let s=/\/tag\/v?([^/]+)$/.exec(a.element("link").attribute("href"))[1];H_.lt(e,s)&&i.push({version:s,note:Exe(a)})}return i.sort((a,s)=>H_.rcompare(a.version,s.version))}});var Axe=b(bC=>{"use strict";Object.defineProperty(bC,"__esModule",{value:!0});bC.KeygenProvider=void 0;var kxe=no(),pX=C0(),fX=cl(),dX=class extends fX.Provider{constructor(t,r,n){super({...n,isUseMultipleRangeRequest:!1}),this.configuration=t,this.updater=r,this.defaultHostname="api.keygen.sh";let i=this.configuration.host||this.defaultHostname;this.baseUrl=(0,pX.newBaseUrl)(`https://${i}/v1/accounts/${this.configuration.account}/artifacts?product=${this.configuration.product}`)}get channel(){return this.updater.channel||this.configuration.channel||"stable"}async getLatestVersion(){let t=new kxe.CancellationToken,r=(0,pX.getChannelFilename)(this.getCustomChannelName(this.channel)),n=(0,pX.newUrlFromBase)(r,this.baseUrl,this.updater.isAddNoCacheQuery);try{let i=await this.httpRequest(n,{Accept:"application/vnd.api+json","Keygen-Version":"1.1"},t);return(0,fX.parseUpdateInfo)(i,r,n)}catch(i){throw(0,kxe.newError)(`Unable to find latest version on ${this.toString()}, please ensure release exists: ${i.stack||i.message}`,"ERR_UPDATER_LATEST_VERSION_NOT_FOUND")}}resolveFiles(t){return(0,fX.resolveFiles)(t,this.baseUrl)}toString(){let{account:t,product:r,platform:n}=this.configuration;return`Keygen (account: ${t}, product: ${r}, platform: ${n}, channel: ${this.channel})`}};bC.KeygenProvider=dX});var Dxe=b(wC=>{"use strict";Object.defineProperty(wC,"__esModule",{value:!0});wC.PrivateGitHubProvider=void 0;var G_=no(),nSt=zD(),iSt=require("path"),Txe=require("url"),Oxe=C0(),aSt=lX(),sSt=cl(),hX=class extends aSt.BaseGitHubProvider{constructor(t,r,n,i){super(t,"api.github.com",i),this.updater=r,this.token=n}createRequestOptions(t,r){let n=super.createRequestOptions(t,r);return n.redirect="manual",n}async getLatestVersion(){let t=new G_.CancellationToken,r=(0,Oxe.getChannelFilename)(this.getDefaultChannelName()),n=await this.getLatestVersionInfo(t),i=n.assets.find(o=>o.name===r);if(i==null)throw(0,G_.newError)(`Cannot find ${r} in the release ${n.html_url||n.name}`,"ERR_UPDATER_CHANNEL_FILE_NOT_FOUND");let a=new Txe.URL(i.url),s;try{s=(0,nSt.load)(await this.httpRequest(a,this.configureHeaders("application/octet-stream"),t))}catch(o){throw o instanceof G_.HttpError&&o.statusCode===404?(0,G_.newError)(`Cannot find ${r} in the latest release artifacts (${a}): ${o.stack||o.message}`,"ERR_UPDATER_CHANNEL_FILE_NOT_FOUND"):o}return s.assets=n.assets,s}get fileExtraDownloadHeaders(){return this.configureHeaders("application/octet-stream")}configureHeaders(t){return{accept:t,authorization:`token ${this.token}`}}async getLatestVersionInfo(t){let r=this.updater.allowPrerelease,n=this.basePath;r||(n=`${n}/latest`);let i=(0,Oxe.newUrlFromBase)(n,this.baseUrl);try{let a=JSON.parse(await this.httpRequest(i,this.configureHeaders("application/vnd.github.v3+json"),t));return r?a.find(s=>s.prerelease)||a[0]:a}catch(a){throw(0,G_.newError)(`Unable to find latest version on GitHub (${i}), please ensure a production release exists: ${a.stack||a.message}`,"ERR_UPDATER_LATEST_VERSION_NOT_FOUND")}}get basePath(){return this.computeGithubBasePath(`/repos/${this.options.owner}/${this.options.repo}/releases`)}resolveFiles(t){return(0,sSt.getFileList)(t).map(r=>{let n=iSt.posix.basename(r.url).replace(/ /g,"-"),i=t.assets.find(a=>a!=null&&a.name===n);if(i==null)throw(0,G_.newError)(`Cannot find asset "${n}" in: ${JSON.stringify(t.assets,null,2)}`,"ERR_UPDATER_ASSET_NOT_FOUND");return{url:new Txe.URL(i.url),info:r}})}};wC.PrivateGitHubProvider=hX});var Ixe=b(xC=>{"use strict";Object.defineProperty(xC,"__esModule",{value:!0});xC.isUrlProbablySupportMultiRangeRequests=Pxe;xC.createClient=pSt;var _C=no(),oSt=xxe(),Cxe=nX(),uSt=lX(),cSt=Axe(),lSt=Dxe();function Pxe(e){return!e.includes("s3.amazonaws.com")}function pSt(e,t,r){if(typeof e=="string")throw(0,_C.newError)("Please pass PublishConfiguration object","ERR_UPDATER_INVALID_PROVIDER_CONFIGURATION");let n=e.provider;switch(n){case"github":{let i=e,a=(i.private?process.env.GH_TOKEN||process.env.GITHUB_TOKEN:null)||i.token;return a==null?new uSt.GitHubProvider(i,t,r):new lSt.PrivateGitHubProvider(i,t,a,r)}case"bitbucket":return new oSt.BitbucketProvider(e,t,r);case"keygen":return new cSt.KeygenProvider(e,t,r);case"s3":case"spaces":return new Cxe.GenericProvider({provider:"generic",url:(0,_C.getS3LikeProviderBaseUrl)(e),channel:e.channel||null},t,{...r,isUseMultipleRangeRequest:!1});case"generic":{let i=e;return new Cxe.GenericProvider(i,t,{...r,isUseMultipleRangeRequest:i.useMultipleRangeRequest!==!1&&Pxe(i.url)})}case"custom":{let i=e,a=i.updateProvider;if(!a)throw(0,_C.newError)("Custom provider not specified","ERR_UPDATER_INVALID_PROVIDER_CONFIGURATION");return new a(i,t,r)}default:throw(0,_C.newError)(`Unsupported provider: ${n}`,"ERR_UPDATER_UNSUPPORTED_PROVIDER")}}});var EC=b(P9=>{"use strict";Object.defineProperty(P9,"__esModule",{value:!0});P9.OperationKind=void 0;P9.computeOperations=fSt;var F2;(function(e){e[e.COPY=0]="COPY",e[e.DOWNLOAD=1]="DOWNLOAD"})(F2||(P9.OperationKind=F2={}));function fSt(e,t,r){let n=Fxe(e.files),i=Fxe(t.files),a=null,s=t.files[0],o=[],c=s.name,p=n.get(c);if(p==null)throw new Error(`no file ${c} in old blockmap`);let f=i.get(c),d=0,{checksumToOffset:h,checksumToOldSize:g}=hSt(n.get(c),p.offset,r),v=s.offset;for(let y=0;y<f.checksums.length;v+=f.sizes[y],y++){let _=f.sizes[y],x=f.checksums[y],A=h.get(x);A!=null&&g.get(x)!==_&&(r.warn(`Checksum ("${x}") matches, but size differs (old: ${g.get(x)}, new: ${_})`),A=void 0),A===void 0?(d++,a!=null&&a.kind===F2.DOWNLOAD&&a.end===v?a.end+=_:(a={kind:F2.DOWNLOAD,start:v,end:v+_},Rxe(a,o,x,y))):a!=null&&a.kind===F2.COPY&&a.end===A?a.end+=_:(a={kind:F2.COPY,start:A,end:A+_},Rxe(a,o,x,y))}return d>0&&r.info(`File${s.name==="file"?"":" "+s.name} has ${d} changed blocks`),o}var dSt=process.env.DIFFERENTIAL_DOWNLOAD_PLAN_BUILDER_VALIDATE_RANGES==="true";function Rxe(e,t,r,n){if(dSt&&t.length!==0){let i=t[t.length-1];if(i.kind===e.kind&&e.start<i.end&&e.start>i.start){let a=[i.start,i.end,e.start,e.end].reduce((s,o)=>s<o?s:o);throw new Error(`operation (block index: ${n}, checksum: ${r}, kind: ${F2[e.kind]}) overlaps previous operation (checksum: ${r}):
abs: ${i.start} until ${i.end} and ${e.start} until ${e.end}
rel: ${i.start-a} until ${i.end-a} and ${e.start-a} until ${e.end-a}`)}}t.push(e)}function hSt(e,t,r){let n=new Map,i=new Map,a=t;for(let s=0;s<e.checksums.length;s++){let o=e.checksums[s],c=e.sizes[s],p=i.get(o);if(p===void 0)n.set(o,a),i.set(o,c);else if(r.debug!=null){let f=p===c?"(same size)":`(size: ${p}, this size: ${c})`;r.debug(`${o} duplicated in blockmap ${f}, it doesn't lead to broken differential downloader, just corresponding block will be skipped)`)}a+=c}return{checksumToOffset:n,checksumToOldSize:i}}function Fxe(e){let t=new Map;for(let r of e)t.set(r.name,r);return t}});var gX=b(I9=>{"use strict";Object.defineProperty(I9,"__esModule",{value:!0});I9.DataSplitter=void 0;I9.copyData=Nxe;var SC=no(),mSt=require("fs"),gSt=require("stream"),vSt=EC(),jxe=Buffer.from(`\r
\r
`),R0;(function(e){e[e.INIT=0]="INIT",e[e.HEADER=1]="HEADER",e[e.BODY=2]="BODY"})(R0||(R0={}));function Nxe(e,t,r,n,i){let a=(0,mSt.createReadStream)("",{fd:r,autoClose:!1,start:e.start,end:e.end-1});a.on("error",n),a.once("end",i),a.pipe(t,{end:!1})}var mX=class extends gSt.Writable{constructor(t,r,n,i,a,s){super(),this.out=t,this.options=r,this.partIndexToTaskIndex=n,this.partIndexToLength=a,this.finishHandler=s,this.partIndex=-1,this.headerListBuffer=null,this.readState=R0.INIT,this.ignoreByteCount=0,this.remainingPartDataCount=0,this.actualPartLength=0,this.boundaryLength=i.length+4,this.ignoreByteCount=this.boundaryLength-2}get isFinished(){return this.partIndex===this.partIndexToLength.length}_write(t,r,n){if(this.isFinished){console.error(`Trailing ignored data: ${t.length} bytes`);return}this.handleData(t).then(n).catch(n)}async handleData(t){let r=0;if(this.ignoreByteCount!==0&&this.remainingPartDataCount!==0)throw(0,SC.newError)("Internal error","ERR_DATA_SPLITTER_BYTE_COUNT_MISMATCH");if(this.ignoreByteCount>0){let n=Math.min(this.ignoreByteCount,t.length);this.ignoreByteCount-=n,r=n}else if(this.remainingPartDataCount>0){let n=Math.min(this.remainingPartDataCount,t.length);this.remainingPartDataCount-=n,await this.processPartData(t,0,n),r=n}if(r!==t.length){if(this.readState===R0.HEADER){let n=this.searchHeaderListEnd(t,r);if(n===-1)return;r=n,this.readState=R0.BODY,this.headerListBuffer=null}for(;;){if(this.readState===R0.BODY)this.readState=R0.INIT;else{this.partIndex++;let s=this.partIndexToTaskIndex.get(this.partIndex);if(s==null)if(this.isFinished)s=this.options.end;else throw(0,SC.newError)("taskIndex is null","ERR_DATA_SPLITTER_TASK_INDEX_IS_NULL");let o=this.partIndex===0?this.options.start:this.partIndexToTaskIndex.get(this.partIndex-1)+1;if(o<s)await this.copyExistingData(o,s);else if(o>s)throw(0,SC.newError)("prevTaskIndex must be < taskIndex","ERR_DATA_SPLITTER_TASK_INDEX_ASSERT_FAILED");if(this.isFinished){this.onPartEnd(),this.finishHandler();return}if(r=this.searchHeaderListEnd(t,r),r===-1){this.readState=R0.HEADER;return}}let n=this.partIndexToLength[this.partIndex],i=r+n,a=Math.min(i,t.length);if(await this.processPartStarted(t,r,a),this.remainingPartDataCount=n-(a-r),this.remainingPartDataCount>0)return;if(r=i+this.boundaryLength,r>=t.length){this.ignoreByteCount=this.boundaryLength-(t.length-i);return}}}}copyExistingData(t,r){return new Promise((n,i)=>{let a=()=>{if(t===r){n();return}let s=this.options.tasks[t];if(s.kind!==vSt.OperationKind.COPY){i(new Error("Task kind must be COPY"));return}Nxe(s,this.out,this.options.oldFileFd,i,()=>{t++,a()})};a()})}searchHeaderListEnd(t,r){let n=t.indexOf(jxe,r);if(n!==-1)return n+jxe.length;let i=r===0?t:t.slice(r);return this.headerListBuffer==null?this.headerListBuffer=i:this.headerListBuffer=Buffer.concat([this.headerListBuffer,i]),-1}onPartEnd(){let t=this.partIndexToLength[this.partIndex-1];if(this.actualPartLength!==t)throw(0,SC.newError)(`Expected length: ${t} differs from actual: ${this.actualPartLength}`,"ERR_DATA_SPLITTER_LENGTH_MISMATCH");this.actualPartLength=0}processPartStarted(t,r,n){return this.partIndex!==0&&this.onPartEnd(),this.processPartData(t,r,n)}processPartData(t,r,n){this.actualPartLength+=n-r;let i=this.out;return i.write(r===0&&t.length===n?t:t.slice(r,n))?Promise.resolve():new Promise((a,s)=>{i.on("error",s),i.once("drain",()=>{i.removeListener("error",s),a()})})}};I9.DataSplitter=mX});var $xe=b(kC=>{"use strict";Object.defineProperty(kC,"__esModule",{value:!0});kC.executeTasksUsingMultipleRangeRequests=ySt;kC.checkIsRangesSupported=yX;var vX=no(),qxe=gX(),Lxe=EC();function ySt(e,t,r,n,i){let a=s=>{if(s>=t.length){e.fileMetadataBuffer!=null&&r.write(e.fileMetadataBuffer),r.end();return}let o=s+1e3;bSt(e,{tasks:t,start:s,end:Math.min(t.length,o),oldFileFd:n},r,()=>a(o),i)};return a}function bSt(e,t,r,n,i){let a="bytes=",s=0,o=new Map,c=[];for(let d=t.start;d<t.end;d++){let h=t.tasks[d];h.kind===Lxe.OperationKind.DOWNLOAD&&(a+=`${h.start}-${h.end-1}, `,o.set(s,d),s++,c.push(h.end-h.start))}if(s<=1){let d=h=>{if(h>=t.end){n();return}let g=t.tasks[h++];if(g.kind===Lxe.OperationKind.COPY)(0,qxe.copyData)(g,r,t.oldFileFd,i,()=>d(h));else{let v=e.createRequestOptions();v.headers.Range=`bytes=${g.start}-${g.end-1}`;let y=e.httpExecutor.createRequest(v,_=>{yX(_,i)&&(_.pipe(r,{end:!1}),_.once("end",()=>d(h)))});e.httpExecutor.addErrorAndTimeoutHandlers(y,i),y.end()}};d(t.start);return}let p=e.createRequestOptions();p.headers.Range=a.substring(0,a.length-2);let f=e.httpExecutor.createRequest(p,d=>{if(!yX(d,i))return;let h=(0,vX.safeGetHeader)(d,"content-type"),g=/^multipart\/.+?(?:; boundary=(?:(?:"(.+)")|(?:([^\s]+))))$/i.exec(h);if(g==null){i(new Error(`Content-Type "multipart/byteranges" is expected, but got "${h}"`));return}let v=new qxe.DataSplitter(r,t,o,g[1]||g[2],c,n);v.on("error",i),d.pipe(v),d.on("end",()=>{setTimeout(()=>{f.abort(),i(new Error("Response ends without calling any handlers"))},1e4)})});e.httpExecutor.addErrorAndTimeoutHandlers(f,i),f.end()}function yX(e,t){if(e.statusCode>=400)return t((0,vX.createHttpError)(e)),!1;if(e.statusCode!==206){let r=(0,vX.safeGetHeader)(e,"accept-ranges");if(r==null||r==="none")return t(new Error(`Server doesn't support Accept-Ranges (response code ${e.statusCode})`)),!1}return!0}});var Bxe=b(AC=>{"use strict";Object.defineProperty(AC,"__esModule",{value:!0});AC.ProgressDifferentialDownloadCallbackTransform=void 0;var wSt=require("stream"),W_;(function(e){e[e.COPY=0]="COPY",e[e.DOWNLOAD=1]="DOWNLOAD"})(W_||(W_={}));var bX=class extends wSt.Transform{constructor(t,r,n){super(),this.progressDifferentialDownloadInfo=t,this.cancellationToken=r,this.onProgress=n,this.start=Date.now(),this.transferred=0,this.delta=0,this.expectedBytes=0,this.index=0,this.operationType=W_.COPY,this.nextUpdate=this.start+1e3}_transform(t,r,n){if(this.cancellationToken.cancelled){n(new Error("cancelled"),null);return}if(this.operationType==W_.COPY){n(null,t);return}this.transferred+=t.length,this.delta+=t.length;let i=Date.now();i>=this.nextUpdate&&this.transferred!==this.expectedBytes&&this.transferred!==this.progressDifferentialDownloadInfo.grandTotal&&(this.nextUpdate=i+1e3,this.onProgress({total:this.progressDifferentialDownloadInfo.grandTotal,delta:this.delta,transferred:this.transferred,percent:this.transferred/this.progressDifferentialDownloadInfo.grandTotal*100,bytesPerSecond:Math.round(this.transferred/((i-this.start)/1e3))}),this.delta=0),n(null,t)}beginFileCopy(){this.operationType=W_.COPY}beginRangeDownload(){this.operationType=W_.DOWNLOAD,this.expectedBytes+=this.progressDifferentialDownloadInfo.expectedByteCounts[this.index++]}endRangeDownload(){this.transferred!==this.progressDifferentialDownloadInfo.grandTotal&&this.onProgress({total:this.progressDifferentialDownloadInfo.grandTotal,delta:this.delta,transferred:this.transferred,percent:this.transferred/this.progressDifferentialDownloadInfo.grandTotal*100,bytesPerSecond:Math.round(this.transferred/((Date.now()-this.start)/1e3))})}_flush(t){if(this.cancellationToken.cancelled){t(new Error("cancelled"));return}this.onProgress({total:this.progressDifferentialDownloadInfo.grandTotal,delta:this.delta,transferred:this.transferred,percent:100,bytesPerSecond:Math.round(this.transferred/((Date.now()-this.start)/1e3))}),this.delta=0,this.transferred=0,t(null)}};AC.ProgressDifferentialDownloadCallbackTransform=bX});var xX=b(OC=>{"use strict";Object.defineProperty(OC,"__esModule",{value:!0});OC.DifferentialDownloader=void 0;var R9=no(),wX=Bm(),_St=require("fs"),xSt=gX(),ESt=require("url"),TC=EC(),Mxe=$xe(),SSt=Bxe(),_X=class{constructor(t,r,n){this.blockAwareFileInfo=t,this.httpExecutor=r,this.options=n,this.fileMetadataBuffer=null,this.logger=n.logger}createRequestOptions(){let t={headers:{...this.options.requestHeaders,accept:"*/*"}};return(0,R9.configureRequestUrl)(this.options.newUrl,t),(0,R9.configureRequestOptions)(t),t}doDownload(t,r){if(t.version!==r.version)throw new Error(`version is different (${t.version} - ${r.version}), full download is required`);let n=this.logger,i=(0,TC.computeOperations)(t,r,n);n.debug!=null&&n.debug(JSON.stringify(i,null,2));let a=0,s=0;for(let c of i){let p=c.end-c.start;c.kind===TC.OperationKind.DOWNLOAD?a+=p:s+=p}let o=this.blockAwareFileInfo.size;if(a+s+(this.fileMetadataBuffer==null?0:this.fileMetadataBuffer.length)!==o)throw new Error(`Internal error, size mismatch: downloadSize: ${a}, copySize: ${s}, newSize: ${o}`);return n.info(`Full: ${Uxe(o)}, To download: ${Uxe(a)} (${Math.round(a/(o/100))}%)`),this.downloadFile(i)}downloadFile(t){let r=[],n=()=>Promise.all(r.map(i=>(0,wX.close)(i.descriptor).catch(a=>{this.logger.error(`cannot close file "${i.path}": ${a}`)})));return this.doDownloadFile(t,r).then(n).catch(i=>n().catch(a=>{try{this.logger.error(`cannot close files: ${a}`)}catch(s){try{console.error(s)}catch{}}throw i}).then(()=>{throw i}))}async doDownloadFile(t,r){let n=await(0,wX.open)(this.options.oldFile,"r");r.push({descriptor:n,path:this.options.oldFile});let i=await(0,wX.open)(this.options.newFile,"w");r.push({descriptor:i,path:this.options.newFile});let a=(0,_St.createWriteStream)(this.options.newFile,{fd:i});await new Promise((s,o)=>{let c=[],p;if(!this.options.isUseMultipleRangeRequest&&this.options.onProgress){let x=[],A=0;for(let j of t)j.kind===TC.OperationKind.DOWNLOAD&&(x.push(j.end-j.start),A+=j.end-j.start);let D={expectedByteCounts:x,grandTotal:A};p=new SSt.ProgressDifferentialDownloadCallbackTransform(D,this.options.cancellationToken,this.options.onProgress),c.push(p)}let f=new R9.DigestTransform(this.blockAwareFileInfo.sha512);f.isValidateOnEnd=!1,c.push(f),a.on("finish",()=>{a.close(()=>{r.splice(1,1);try{f.validate()}catch(x){o(x);return}s(void 0)})}),c.push(a);let d=null;for(let x of c)x.on("error",o),d==null?d=x:d=d.pipe(x);let h=c[0],g;if(this.options.isUseMultipleRangeRequest){g=(0,Mxe.executeTasksUsingMultipleRangeRequests)(this,t,h,n,o),g(0);return}let v=0,y=null;this.logger.info(`Differential download: ${this.options.newUrl}`);let _=this.createRequestOptions();_.redirect="manual",g=x=>{var A,D;if(x>=t.length){this.fileMetadataBuffer!=null&&h.write(this.fileMetadataBuffer),h.end();return}let j=t[x++];if(j.kind===TC.OperationKind.COPY){p&&p.beginFileCopy(),(0,xSt.copyData)(j,h,n,o,()=>g(x));return}let H=`bytes=${j.start}-${j.end-1}`;_.headers.range=H,(D=(A=this.logger)===null||A===void 0?void 0:A.debug)===null||D===void 0||D.call(A,`download range: ${H}`),p&&p.beginRangeDownload();let F=this.httpExecutor.createRequest(_,z=>{z.on("error",o),z.on("aborted",()=>{o(new Error("response has been aborted by the server"))}),z.statusCode>=400&&o((0,R9.createHttpError)(z)),z.pipe(h,{end:!1}),z.once("end",()=>{p&&p.endRangeDownload(),++v===100?(v=0,setTimeout(()=>g(x),1e3)):g(x)})});F.on("redirect",(z,P,M)=>{this.logger.info(`Redirect to ${kSt(M)}`),y=M,(0,R9.configureRequestUrl)(new ESt.URL(y),_),F.followRedirect()}),this.httpExecutor.addErrorAndTimeoutHandlers(F,o),F.end()},g(0)})}async readRemoteBytes(t,r){let n=Buffer.allocUnsafe(r+1-t),i=this.createRequestOptions();i.headers.range=`bytes=${t}-${r}`;let a=0;if(await this.request(i,s=>{s.copy(n,a),a+=s.length}),a!==n.length)throw new Error(`Received data length ${a} is not equal to expected ${n.length}`);return n}request(t,r){return new Promise((n,i)=>{let a=this.httpExecutor.createRequest(t,s=>{(0,Mxe.checkIsRangesSupported)(s,i)&&(s.on("error",i),s.on("aborted",()=>{i(new Error("response has been aborted by the server"))}),s.on("data",r),s.on("end",()=>n()))});this.httpExecutor.addErrorAndTimeoutHandlers(a,i),a.end()})}};OC.DifferentialDownloader=_X;function Uxe(e,t=" KB"){return new Intl.NumberFormat("en").format((e/1024).toFixed(2))+t}function kSt(e){let t=e.indexOf("?");return t<0?e:e.substring(0,t)}});var zxe=b(DC=>{"use strict";Object.defineProperty(DC,"__esModule",{value:!0});DC.GenericDifferentialDownloader=void 0;var ASt=xX(),EX=class extends ASt.DifferentialDownloader{download(t,r){return this.doDownload(t,r)}};DC.GenericDifferentialDownloader=EX});var F0=b(ll=>{"use strict";Object.defineProperty(ll,"__esModule",{value:!0});ll.UpdaterSignal=ll.UPDATE_DOWNLOADED=ll.DOWNLOAD_PROGRESS=ll.CancellationToken=void 0;ll.addHandler=F9;var TSt=no();Object.defineProperty(ll,"CancellationToken",{enumerable:!0,get:function(){return TSt.CancellationToken}});ll.DOWNLOAD_PROGRESS="download-progress";ll.UPDATE_DOWNLOADED="update-downloaded";var SX=class{constructor(t){this.emitter=t}login(t){F9(this.emitter,"login",t)}progress(t){F9(this.emitter,ll.DOWNLOAD_PROGRESS,t)}updateDownloaded(t){F9(this.emitter,ll.UPDATE_DOWNLOADED,t)}updateCancelled(t){F9(this.emitter,"update-cancelled",t)}};ll.UpdaterSignal=SX;var OSt=!1;function F9(e,t,r){OSt?e.on(t,(...n)=>{console.log("%s %s",t,n),r(...n)}):e.on(t,r)}});var PC=b(J_=>{"use strict";Object.defineProperty(J_,"__esModule",{value:!0});J_.NoOpLogger=J_.AppUpdater=void 0;var Vu=no(),DSt=require("crypto"),CSt=require("os"),PSt=require("events"),K_=Bm(),ISt=zD(),kX=F4e(),j2=require("path"),N2=$_(),Hxe=axe(),RSt=uxe(),Vxe=lxe(),FSt=nX(),AX=Ixe(),jSt=require("zlib"),NSt=C0(),qSt=zxe(),Y_=F0(),TX=class e extends PSt.EventEmitter{get channel(){return this._channel}set channel(t){if(this._channel!=null){if(typeof t!="string")throw(0,Vu.newError)(`Channel must be a string, but got: ${t}`,"ERR_UPDATER_INVALID_CHANNEL");if(t.length===0)throw(0,Vu.newError)("Channel must be not an empty string","ERR_UPDATER_INVALID_CHANNEL")}this._channel=t,this.allowDowngrade=!0}addAuthHeader(t){this.requestHeaders=Object.assign({},this.requestHeaders,{authorization:t})}get netSession(){return(0,Vxe.getNetSession)()}get logger(){return this._logger}set logger(t){this._logger=t??new CC}set updateConfigPath(t){this.clientPromise=null,this._appUpdateConfigPath=t,this.configOnDisk=new kX.Lazy(()=>this.loadUpdateConfig())}get isUpdateSupported(){return this._isUpdateSupported}set isUpdateSupported(t){t&&(this._isUpdateSupported=t)}constructor(t,r){super(),this.autoDownload=!0,this.autoInstallOnAppQuit=!0,this.autoRunAppAfterInstall=!0,this.allowPrerelease=!1,this.fullChangelog=!1,this.allowDowngrade=!1,this.disableWebInstaller=!1,this.disableDifferentialDownload=!1,this.forceDevUpdateConfig=!1,this._channel=null,this.downloadedUpdateHelper=null,this.requestHeaders=null,this._logger=console,this.signals=new Y_.UpdaterSignal(this),this._appUpdateConfigPath=null,this._isUpdateSupported=a=>this.checkIfUpdateSupported(a),this.clientPromise=null,this.stagingUserIdPromise=new kX.Lazy(()=>this.getOrCreateStagingUserId()),this.configOnDisk=new kX.Lazy(()=>this.loadUpdateConfig()),this.checkForUpdatesPromise=null,this.downloadPromise=null,this.updateInfoAndProvider=null,this._testOnlyOptions=null,this.on("error",a=>{this._logger.error(`Error: ${a.stack||a.message}`)}),r==null?(this.app=new RSt.ElectronAppAdapter,this.httpExecutor=new Vxe.ElectronHttpExecutor((a,s)=>this.emit("login",a,s))):(this.app=r,this.httpExecutor=null);let n=this.app.version,i=(0,N2.parse)(n);if(i==null)throw(0,Vu.newError)(`App version is not a valid semver version: "${n}"`,"ERR_UPDATER_INVALID_VERSION");this.currentVersion=i,this.allowPrerelease=LSt(i),t!=null&&(this.setFeedURL(t),typeof t!="string"&&t.requestHeaders&&(this.requestHeaders=t.requestHeaders))}getFeedURL(){return"Deprecated. Do not use it."}setFeedURL(t){let r=this.createProviderRuntimeOptions(),n;typeof t=="string"?n=new FSt.GenericProvider({provider:"generic",url:t},this,{...r,isUseMultipleRangeRequest:(0,AX.isUrlProbablySupportMultiRangeRequests)(t)}):n=(0,AX.createClient)(t,this,r),this.clientPromise=Promise.resolve(n)}checkForUpdates(){if(!this.isUpdaterActive())return Promise.resolve(null);let t=this.checkForUpdatesPromise;if(t!=null)return this._logger.info("Checking for update (already in progress)"),t;let r=()=>this.checkForUpdatesPromise=null;return this._logger.info("Checking for update"),t=this.doCheckForUpdates().then(n=>(r(),n)).catch(n=>{throw r(),this.emit("error",n,`Cannot check for updates: ${(n.stack||n).toString()}`),n}),this.checkForUpdatesPromise=t,t}isUpdaterActive(){return this.app.isPackaged||this.forceDevUpdateConfig?!0:(this._logger.info("Skip checkForUpdates because application is not packed and dev update config is not forced"),!1)}checkForUpdatesAndNotify(t){return this.checkForUpdates().then(r=>r?.downloadPromise?(r.downloadPromise.then(()=>{let n=e.formatDownloadNotification(r.updateInfo.version,this.app.name,t);new(require("electron")).Notification(n).show()}),r):(this._logger.debug!=null&&this._logger.debug("checkForUpdatesAndNotify called, downloadPromise is null"),r))}static formatDownloadNotification(t,r,n){return n==null&&(n={title:"A new update is ready to install",body:"{appName} version {version} has been downloaded and will be automatically installed on exit"}),n={title:n.title.replace("{appName}",r).replace("{version}",t),body:n.body.replace("{appName}",r).replace("{version}",t)},n}async isStagingMatch(t){let r=t.stagingPercentage,n=r;if(n==null)return!0;if(n=parseInt(n,10),isNaN(n))return this._logger.warn(`Staging percentage is NaN: ${r}`),!0;n=n/100;let i=await this.stagingUserIdPromise.value,s=Vu.UUID.parse(i).readUInt32BE(12)/4294967295;return this._logger.info(`Staging percentage: ${n}, percentage: ${s}, user id: ${i}`),s<n}computeFinalHeaders(t){return this.requestHeaders!=null&&Object.assign(t,this.requestHeaders),t}async isUpdateAvailable(t){let r=(0,N2.parse)(t.version);if(r==null)throw(0,Vu.newError)(`This file could not be downloaded, or the latest version (from update server) does not have a valid semver version: "${t.version}"`,"ERR_UPDATER_INVALID_VERSION");let n=this.currentVersion;if((0,N2.eq)(r,n)||!await Promise.resolve(this.isUpdateSupported(t))||!await this.isStagingMatch(t))return!1;let a=(0,N2.gt)(r,n),s=(0,N2.lt)(r,n);return a?!0:this.allowDowngrade&&s}checkIfUpdateSupported(t){let r=t?.minimumSystemVersion,n=(0,CSt.release)();if(r)try{if((0,N2.lt)(n,r))return this._logger.info(`Current OS version ${n} is less than the minimum OS version required ${r} for version ${n}`),!1}catch(i){this._logger.warn(`Failed to compare current OS version(${n}) with minimum OS version(${r}): ${(i.message||i).toString()}`)}return!0}async getUpdateInfoAndProvider(){await this.app.whenReady(),this.clientPromise==null&&(this.clientPromise=this.configOnDisk.value.then(n=>(0,AX.createClient)(n,this,this.createProviderRuntimeOptions())));let t=await this.clientPromise,r=await this.stagingUserIdPromise.value;return t.setRequestHeaders(this.computeFinalHeaders({"x-user-staging-id":r})),{info:await t.getLatestVersion(),provider:t}}createProviderRuntimeOptions(){return{isUseMultipleRangeRequest:!0,platform:this._testOnlyOptions==null?process.platform:this._testOnlyOptions.platform,executor:this.httpExecutor}}async doCheckForUpdates(){this.emit("checking-for-update");let t=await this.getUpdateInfoAndProvider(),r=t.info;if(!await this.isUpdateAvailable(r))return this._logger.info(`Update for version ${this.currentVersion.format()} is not available (latest version: ${r.version}, downgrade is ${this.allowDowngrade?"allowed":"disallowed"}).`),this.emit("update-not-available",r),{isUpdateAvailable:!1,versionInfo:r,updateInfo:r};this.updateInfoAndProvider=t,this.onUpdateAvailable(r);let n=new Vu.CancellationToken;return{isUpdateAvailable:!0,versionInfo:r,updateInfo:r,cancellationToken:n,downloadPromise:this.autoDownload?this.downloadUpdate(n):null}}onUpdateAvailable(t){this._logger.info(`Found version ${t.version} (url: ${(0,Vu.asArray)(t.files).map(r=>r.url).join(", ")})`),this.emit("update-available",t)}downloadUpdate(t=new Vu.CancellationToken){let r=this.updateInfoAndProvider;if(r==null){let i=new Error("Please check update first");return this.dispatchError(i),Promise.reject(i)}if(this.downloadPromise!=null)return this._logger.info("Downloading update (already in progress)"),this.downloadPromise;this._logger.info(`Downloading update from ${(0,Vu.asArray)(r.info.files).map(i=>i.url).join(", ")}`);let n=i=>{if(!(i instanceof Vu.CancellationError))try{this.dispatchError(i)}catch(a){this._logger.warn(`Cannot dispatch error event: ${a.stack||a}`)}return i};return this.downloadPromise=this.doDownloadUpdate({updateInfoAndProvider:r,requestHeaders:this.computeRequestHeaders(r.provider),cancellationToken:t,disableWebInstaller:this.disableWebInstaller,disableDifferentialDownload:this.disableDifferentialDownload}).catch(i=>{throw n(i)}).finally(()=>{this.downloadPromise=null}),this.downloadPromise}dispatchError(t){this.emit("error",t,(t.stack||t).toString())}dispatchUpdateDownloaded(t){this.emit(Y_.UPDATE_DOWNLOADED,t)}async loadUpdateConfig(){return this._appUpdateConfigPath==null&&(this._appUpdateConfigPath=this.app.appUpdateConfigPath),(0,ISt.load)(await(0,K_.readFile)(this._appUpdateConfigPath,"utf-8"))}computeRequestHeaders(t){let r=t.fileExtraDownloadHeaders;if(r!=null){let n=this.requestHeaders;return n==null?r:{...r,...n}}return this.computeFinalHeaders({accept:"*/*"})}async getOrCreateStagingUserId(){let t=j2.join(this.app.userDataPath,".updaterId");try{let n=await(0,K_.readFile)(t,"utf-8");if(Vu.UUID.check(n))return n;this._logger.warn(`Staging user id file exists, but content was invalid: ${n}`)}catch(n){n.code!=="ENOENT"&&this._logger.warn(`Couldn't read staging user ID, creating a blank one: ${n}`)}let r=Vu.UUID.v5((0,DSt.randomBytes)(4096),Vu.UUID.OID);this._logger.info(`Generated new staging user ID: ${r}`);try{await(0,K_.outputFile)(t,r)}catch(n){this._logger.warn(`Couldn't write out staging user ID: ${n}`)}return r}get isAddNoCacheQuery(){let t=this.requestHeaders;if(t==null)return!0;for(let r of Object.keys(t)){let n=r.toLowerCase();if(n==="authorization"||n==="private-token")return!1}return!0}async getOrCreateDownloadHelper(){let t=this.downloadedUpdateHelper;if(t==null){let r=(await this.configOnDisk.value).updaterCacheDirName,n=this._logger;r==null&&n.error("updaterCacheDirName is not specified in app-update.yml Was app build using at least electron-builder 20.34.0?");let i=j2.join(this.app.baseCachePath,r||this.app.name);n.debug!=null&&n.debug(`updater cache dir: ${i}`),t=new Hxe.DownloadedUpdateHelper(i),this.downloadedUpdateHelper=t}return t}async executeDownload(t){let r=t.fileInfo,n={headers:t.downloadUpdateOptions.requestHeaders,cancellationToken:t.downloadUpdateOptions.cancellationToken,sha2:r.info.sha2,sha512:r.info.sha512};this.listenerCount(Y_.DOWNLOAD_PROGRESS)>0&&(n.onProgress=A=>this.emit(Y_.DOWNLOAD_PROGRESS,A));let i=t.downloadUpdateOptions.updateInfoAndProvider.info,a=i.version,s=r.packageInfo;function o(){let A=decodeURIComponent(t.fileInfo.url.pathname);return A.endsWith(`.${t.fileExtension}`)?j2.basename(A):t.fileInfo.info.url}let c=await this.getOrCreateDownloadHelper(),p=c.cacheDirForPendingUpdate;await(0,K_.mkdir)(p,{recursive:!0});let f=o(),d=j2.join(p,f),h=s==null?null:j2.join(p,`package-${a}${j2.extname(s.path)||".7z"}`),g=async A=>(await c.setDownloadedFile(d,h,i,r,f,A),await t.done({...i,downloadedFile:d}),h==null?[d]:[d,h]),v=this._logger,y=await c.validateDownloadedPath(d,i,r,v);if(y!=null)return d=y,await g(!1);let _=async()=>(await c.clear().catch(()=>{}),await(0,K_.unlink)(d).catch(()=>{})),x=await(0,Hxe.createTempUpdateFile)(`temp-${f}`,p,v);try{await t.task(x,n,h,_),await(0,Vu.retry)(()=>(0,K_.rename)(x,d),60,500,0,0,A=>A instanceof Error&&/^EBUSY:/.test(A.message))}catch(A){throw await _(),A instanceof Vu.CancellationError&&(v.info("cancelled"),this.emit("update-cancelled",i)),A}return v.info(`New version ${a} has been downloaded to ${d}`),await g(!0)}async differentialDownloadInstaller(t,r,n,i,a){try{if(this._testOnlyOptions!=null&&!this._testOnlyOptions.isUseDifferentialDownload)return!0;let s=(0,NSt.blockmapFiles)(t.url,this.app.version,r.updateInfoAndProvider.info.version);this._logger.info(`Download block maps (old: "${s[0]}", new: ${s[1]})`);let o=async f=>{let d=await this.httpExecutor.downloadToBuffer(f,{headers:r.requestHeaders,cancellationToken:r.cancellationToken});if(d==null||d.length===0)throw new Error(`Blockmap "${f.href}" is empty`);try{return JSON.parse((0,jSt.gunzipSync)(d).toString())}catch(h){throw new Error(`Cannot parse blockmap "${f.href}", error: ${h}`)}},c={newUrl:t.url,oldFile:j2.join(this.downloadedUpdateHelper.cacheDir,a),logger:this._logger,newFile:n,isUseMultipleRangeRequest:i.isUseMultipleRangeRequest,requestHeaders:r.requestHeaders,cancellationToken:r.cancellationToken};this.listenerCount(Y_.DOWNLOAD_PROGRESS)>0&&(c.onProgress=f=>this.emit(Y_.DOWNLOAD_PROGRESS,f));let p=await Promise.all(s.map(f=>o(f)));return await new qSt.GenericDifferentialDownloader(t.info,this.httpExecutor,c).download(p[0],p[1]),!1}catch(s){if(this._logger.error(`Cannot download differentially, fallback to full download: ${s.stack||s}`),this._testOnlyOptions!=null)throw s;return!0}}};J_.AppUpdater=TX;function LSt(e){let t=(0,N2.prerelease)(e);return t!=null&&t.length>0}var CC=class{info(t){}warn(t){}error(t){}};J_.NoOpLogger=CC});var q2=b(IC=>{"use strict";Object.defineProperty(IC,"__esModule",{value:!0});IC.BaseUpdater=void 0;var Gxe=require("child_process"),$St=PC(),OX=class extends $St.AppUpdater{constructor(t,r){super(t,r),this.quitAndInstallCalled=!1,this.quitHandlerAdded=!1}quitAndInstall(t=!1,r=!1){this._logger.info("Install on explicit quitAndInstall"),this.install(t,t?r:this.autoRunAppAfterInstall)?setImmediate(()=>{require("electron").autoUpdater.emit("before-quit-for-update"),this.app.quit()}):this.quitAndInstallCalled=!1}executeDownload(t){return super.executeDownload({...t,done:r=>(this.dispatchUpdateDownloaded(r),this.addQuitHandler(),Promise.resolve())})}get installerPath(){return this.downloadedUpdateHelper==null?null:this.downloadedUpdateHelper.file}install(t=!1,r=!1){if(this.quitAndInstallCalled)return this._logger.warn("install call ignored: quitAndInstallCalled is set to true"),!1;let n=this.downloadedUpdateHelper,i=this.installerPath,a=n==null?null:n.downloadedFileInfo;if(i==null||a==null)return this.dispatchError(new Error("No valid update available, can't quit and install")),!1;this.quitAndInstallCalled=!0;try{return this._logger.info(`Install: isSilent: ${t}, isForceRunAfter: ${r}`),this.doInstall({isSilent:t,isForceRunAfter:r,isAdminRightsRequired:a.isAdminRightsRequired})}catch(s){return this.dispatchError(s),!1}}addQuitHandler(){this.quitHandlerAdded||!this.autoInstallOnAppQuit||(this.quitHandlerAdded=!0,this.app.onQuit(t=>{if(this.quitAndInstallCalled){this._logger.info("Update installer has already been triggered. Quitting application.");return}if(!this.autoInstallOnAppQuit){this._logger.info("Update will not be installed on quit because autoInstallOnAppQuit is set to false.");return}if(t!==0){this._logger.info(`Update will be not installed on quit because application is quitting with exit code ${t}`);return}this._logger.info("Auto install update on quit"),this.install(!0,!1)}))}wrapSudo(){let{name:t}=this.app,r=`"${t} would like to update"`,n=this.spawnSyncLog("which gksudo || which kdesudo || which pkexec || which beesu"),i=[n];return/kdesudo/i.test(n)?(i.push("--comment",r),i.push("-c")):/gksudo/i.test(n)?i.push("--message",r):/pkexec/i.test(n)&&i.push("--disable-internal-agent"),i.join(" ")}spawnSyncLog(t,r=[],n={}){this._logger.info(`Executing: ${t} with args: ${r}`);let i=(0,Gxe.spawnSync)(t,r,{env:{...process.env,...n},encoding:"utf-8",shell:!0}),{error:a,status:s,stdout:o,stderr:c}=i;if(a!=null)throw this._logger.error(c),a;if(s!=null&&s!==0)throw this._logger.error(c),new Error(`Command ${t} exited with code ${s}`);return o.trim()}async spawnLog(t,r=[],n=void 0,i="ignore"){return this._logger.info(`Executing: ${t} with args: ${r}`),new Promise((a,s)=>{try{let o={stdio:i,env:n,detached:!0},c=(0,Gxe.spawn)(t,r,o);c.on("error",p=>{s(p)}),c.unref(),c.pid!==void 0&&a(!0)}catch(o){s(o)}})}};IC.BaseUpdater=OX});var CX=b(RC=>{"use strict";Object.defineProperty(RC,"__esModule",{value:!0});RC.FileWithEmbeddedBlockMapDifferentialDownloader=void 0;var X_=Bm(),BSt=xX(),MSt=require("zlib"),DX=class extends BSt.DifferentialDownloader{async download(){let t=this.blockAwareFileInfo,r=t.size,n=r-(t.blockMapSize+4);this.fileMetadataBuffer=await this.readRemoteBytes(n,r-1);let i=Wxe(this.fileMetadataBuffer.slice(0,this.fileMetadataBuffer.length-4));await this.doDownload(await USt(this.options.oldFile),i)}};RC.FileWithEmbeddedBlockMapDifferentialDownloader=DX;function Wxe(e){return JSON.parse((0,MSt.inflateRawSync)(e).toString())}async function USt(e){let t=await(0,X_.open)(e,"r");try{let r=(await(0,X_.fstat)(t)).size,n=Buffer.allocUnsafe(4);await(0,X_.read)(t,n,0,n.length,r-n.length);let i=Buffer.allocUnsafe(n.readUInt32BE(0));return await(0,X_.read)(t,i,0,i.length,r-n.length-i.length),await(0,X_.close)(t),Wxe(i)}catch(r){throw await(0,X_.close)(t),r}}});var IX=b(FC=>{"use strict";Object.defineProperty(FC,"__esModule",{value:!0});FC.AppImageUpdater=void 0;var Kxe=no(),Yxe=require("child_process"),zSt=Bm(),HSt=require("fs"),j9=require("path"),VSt=q2(),GSt=CX(),WSt=cl(),Jxe=F0(),PX=class extends VSt.BaseUpdater{constructor(t,r){super(t,r)}isUpdaterActive(){return process.env.APPIMAGE==null?(process.env.SNAP==null?this._logger.warn("APPIMAGE env is not defined, current application is not an AppImage"):this._logger.info("SNAP env is defined, updater is disabled"),!1):super.isUpdaterActive()}doDownloadUpdate(t){let r=t.updateInfoAndProvider.provider,n=(0,WSt.findFile)(r.resolveFiles(t.updateInfoAndProvider.info),"AppImage",["rpm","deb","pacman"]);return this.executeDownload({fileExtension:"AppImage",fileInfo:n,downloadUpdateOptions:t,task:async(i,a)=>{let s=process.env.APPIMAGE;if(s==null)throw(0,Kxe.newError)("APPIMAGE env is not defined","ERR_UPDATER_OLD_FILE_NOT_FOUND");(t.disableDifferentialDownload||await this.downloadDifferential(n,s,i,r,t))&&await this.httpExecutor.download(n.url,i,a),await(0,zSt.chmod)(i,493)}})}async downloadDifferential(t,r,n,i,a){try{let s={newUrl:t.url,oldFile:r,logger:this._logger,newFile:n,isUseMultipleRangeRequest:i.isUseMultipleRangeRequest,requestHeaders:a.requestHeaders,cancellationToken:a.cancellationToken};return this.listenerCount(Jxe.DOWNLOAD_PROGRESS)>0&&(s.onProgress=o=>this.emit(Jxe.DOWNLOAD_PROGRESS,o)),await new GSt.FileWithEmbeddedBlockMapDifferentialDownloader(t.info,this.httpExecutor,s).download(),!1}catch(s){return this._logger.error(`Cannot download differentially, fallback to full download: ${s.stack||s}`),process.platform==="linux"}}doInstall(t){let r=process.env.APPIMAGE;if(r==null)throw(0,Kxe.newError)("APPIMAGE env is not defined","ERR_UPDATER_OLD_FILE_NOT_FOUND");(0,HSt.unlinkSync)(r);let n,i=j9.basename(r),a=this.installerPath;if(a==null)return this.dispatchError(new Error("No valid update available, can't quit and install")),!1;j9.basename(a)===i||!/\d+\.\d+\.\d+/.test(i)?n=r:n=j9.join(j9.dirname(r),j9.basename(a)),(0,Yxe.execFileSync)("mv",["-f",a,n]),n!==r&&this.emit("appimage-filename-updated",n);let s={...process.env,APPIMAGE_SILENT_INSTALL:"true"};return t.isForceRunAfter?this.spawnLog(n,[],s):(s.APPIMAGE_EXIT_AFTER_INSTALL="true",(0,Yxe.execFileSync)(n,[],{env:s})),!0}};FC.AppImageUpdater=PX});var FX=b(jC=>{"use strict";Object.defineProperty(jC,"__esModule",{value:!0});jC.DebUpdater=void 0;var KSt=q2(),YSt=cl(),Xxe=F0(),RX=class extends KSt.BaseUpdater{constructor(t,r){super(t,r)}doDownloadUpdate(t){let r=t.updateInfoAndProvider.provider,n=(0,YSt.findFile)(r.resolveFiles(t.updateInfoAndProvider.info),"deb",["AppImage","rpm","pacman"]);return this.executeDownload({fileExtension:"deb",fileInfo:n,downloadUpdateOptions:t,task:async(i,a)=>{this.listenerCount(Xxe.DOWNLOAD_PROGRESS)>0&&(a.onProgress=s=>this.emit(Xxe.DOWNLOAD_PROGRESS,s)),await this.httpExecutor.download(n.url,i,a)}})}get installerPath(){var t,r;return(r=(t=super.installerPath)===null||t===void 0?void 0:t.replace(/ /g,"\\ "))!==null&&r!==void 0?r:null}doInstall(t){let r=this.wrapSudo(),n=/pkexec/i.test(r)?"":'"',i=this.installerPath;if(i==null)return this.dispatchError(new Error("No valid update available, can't quit and install")),!1;let a=["dpkg","-i",i,"||","apt-get","install","-f","-y"];return this.spawnSyncLog(r,[`${n}/bin/bash`,"-c",`'${a.join(" ")}'${n}`]),t.isForceRunAfter&&this.app.relaunch(),!0}};jC.DebUpdater=RX});var NX=b(NC=>{"use strict";Object.defineProperty(NC,"__esModule",{value:!0});NC.PacmanUpdater=void 0;var JSt=q2(),Qxe=F0(),XSt=cl(),jX=class extends JSt.BaseUpdater{constructor(t,r){super(t,r)}doDownloadUpdate(t){let r=t.updateInfoAndProvider.provider,n=(0,XSt.findFile)(r.resolveFiles(t.updateInfoAndProvider.info),"pacman",["AppImage","deb","rpm"]);return this.executeDownload({fileExtension:"pacman",fileInfo:n,downloadUpdateOptions:t,task:async(i,a)=>{this.listenerCount(Qxe.DOWNLOAD_PROGRESS)>0&&(a.onProgress=s=>this.emit(Qxe.DOWNLOAD_PROGRESS,s)),await this.httpExecutor.download(n.url,i,a)}})}get installerPath(){var t,r;return(r=(t=super.installerPath)===null||t===void 0?void 0:t.replace(/ /g,"\\ "))!==null&&r!==void 0?r:null}doInstall(t){let r=this.wrapSudo(),n=/pkexec/i.test(r)?"":'"',i=this.installerPath;if(i==null)return this.dispatchError(new Error("No valid update available, can't quit and install")),!1;let a=["pacman","-U","--noconfirm",i];return this.spawnSyncLog(r,[`${n}/bin/bash`,"-c",`'${a.join(" ")}'${n}`]),t.isForceRunAfter&&this.app.relaunch(),!0}};NC.PacmanUpdater=jX});var LX=b(qC=>{"use strict";Object.defineProperty(qC,"__esModule",{value:!0});qC.RpmUpdater=void 0;var QSt=q2(),Zxe=F0(),ZSt=cl(),qX=class extends QSt.BaseUpdater{constructor(t,r){super(t,r)}doDownloadUpdate(t){let r=t.updateInfoAndProvider.provider,n=(0,ZSt.findFile)(r.resolveFiles(t.updateInfoAndProvider.info),"rpm",["AppImage","deb","pacman"]);return this.executeDownload({fileExtension:"rpm",fileInfo:n,downloadUpdateOptions:t,task:async(i,a)=>{this.listenerCount(Zxe.DOWNLOAD_PROGRESS)>0&&(a.onProgress=s=>this.emit(Zxe.DOWNLOAD_PROGRESS,s)),await this.httpExecutor.download(n.url,i,a)}})}get installerPath(){var t,r;return(r=(t=super.installerPath)===null||t===void 0?void 0:t.replace(/ /g,"\\ "))!==null&&r!==void 0?r:null}doInstall(t){let r=this.wrapSudo(),n=/pkexec/i.test(r)?"":'"',i=this.spawnSyncLog("which zypper"),a=this.installerPath;if(a==null)return this.dispatchError(new Error("No valid update available, can't quit and install")),!1;let s;return i?s=[i,"--no-refresh","install","--allow-unsigned-rpm","-y","-f",a]:s=[this.spawnSyncLog("which dnf || which yum"),"-y","install",a],this.spawnSyncLog(r,[`${n}/bin/bash`,"-c",`'${s.join(" ")}'${n}`]),t.isForceRunAfter&&this.app.relaunch(),!0}};qC.RpmUpdater=qX});var MX=b(LC=>{"use strict";Object.defineProperty(LC,"__esModule",{value:!0});LC.MacUpdater=void 0;var eEe=no(),$X=Bm(),e7t=require("fs"),tEe=require("path"),t7t=require("http"),r7t=PC(),n7t=cl(),rEe=require("child_process"),nEe=require("crypto"),BX=class extends r7t.AppUpdater{constructor(t,r){super(t,r),this.nativeUpdater=require("electron").autoUpdater,this.squirrelDownloadedUpdate=!1,this.nativeUpdater.on("error",n=>{this._logger.warn(n),this.emit("error",n)}),this.nativeUpdater.on("update-downloaded",()=>{this.squirrelDownloadedUpdate=!0,this.debug("nativeUpdater.update-downloaded")})}debug(t){this._logger.debug!=null&&this._logger.debug(t)}closeServerIfExists(){this.server&&(this.debug("Closing proxy server"),this.server.close(t=>{t&&this.debug("proxy server wasn't already open, probably attempted closing again as a safety check before quit")}))}async doDownloadUpdate(t){let r=t.updateInfoAndProvider.provider.resolveFiles(t.updateInfoAndProvider.info),n=this._logger,i="sysctl.proc_translated",a=!1;try{this.debug("Checking for macOS Rosetta environment"),a=(0,rEe.execFileSync)("sysctl",[i],{encoding:"utf8"}).includes(`${i}: 1`),n.info(`Checked for macOS Rosetta environment (isRosetta=${a})`)}catch(d){n.warn(`sysctl shell command to check for macOS Rosetta environment failed: ${d}`)}let s=!1;try{this.debug("Checking for arm64 in uname");let h=(0,rEe.execFileSync)("uname",["-a"],{encoding:"utf8"}).includes("ARM");n.info(`Checked 'uname -a': arm64=${h}`),s=s||h}catch(d){n.warn(`uname shell command to check for arm64 failed: ${d}`)}s=s||process.arch==="arm64"||a;let o=d=>{var h;return d.url.pathname.includes("arm64")||((h=d.info.url)===null||h===void 0?void 0:h.includes("arm64"))};s&&r.some(o)?r=r.filter(d=>s===o(d)):r=r.filter(d=>!o(d));let c=(0,n7t.findFile)(r,"zip",["pkg","dmg"]);if(c==null)throw(0,eEe.newError)(`ZIP file not provided: ${(0,eEe.safeStringifyJson)(r)}`,"ERR_UPDATER_ZIP_FILE_NOT_FOUND");let p=t.updateInfoAndProvider.provider,f="update.zip";return this.executeDownload({fileExtension:"zip",fileInfo:c,downloadUpdateOptions:t,task:async(d,h)=>{let g=tEe.join(this.downloadedUpdateHelper.cacheDir,f),v=()=>(0,$X.pathExistsSync)(g)?!t.disableDifferentialDownload:(n.info("Unable to locate previous update.zip for differential download (is this first install?), falling back to full download"),!1),y=!0;v()&&(y=await this.differentialDownloadInstaller(c,t,d,p,f)),y&&await this.httpExecutor.download(c.url,d,h)},done:async d=>{if(!t.disableDifferentialDownload)try{let h=tEe.join(this.downloadedUpdateHelper.cacheDir,f);await(0,$X.copyFile)(d.downloadedFile,h)}catch(h){this._logger.warn(`Unable to copy file for caching for future differential downloads: ${h.message}`)}return this.updateDownloaded(c,d)}})}async updateDownloaded(t,r){var n;let i=r.downloadedFile,a=(n=t.info.size)!==null&&n!==void 0?n:(await(0,$X.stat)(i)).size,s=this._logger,o=`fileToProxy=${t.url.href}`;this.closeServerIfExists(),this.debug(`Creating proxy server for native Squirrel.Mac (${o})`),this.server=(0,t7t.createServer)(),this.debug(`Proxy server for native Squirrel.Mac is created (${o})`),this.server.on("close",()=>{s.info(`Proxy server for native Squirrel.Mac is closed (${o})`)});let c=p=>{let f=p.address();return typeof f=="string"?f:`http://127.0.0.1:${f?.port}`};return await new Promise((p,f)=>{let d=(0,nEe.randomBytes)(64).toString("base64").replace(/\//g,"_").replace(/\+/g,"-"),h=Buffer.from(`autoupdater:${d}`,"ascii"),g=`/${(0,nEe.randomBytes)(64).toString("hex")}.zip`;this.server.on("request",(v,y)=>{let _=v.url;if(s.info(`${_} requested`),_==="/"){if(!v.headers.authorization||v.headers.authorization.indexOf("Basic ")===-1){y.statusCode=401,y.statusMessage="Invalid Authentication Credentials",y.end(),s.warn("No authenthication info");return}let D=v.headers.authorization.split(" ")[1],j=Buffer.from(D,"base64").toString("ascii"),[H,F]=j.split(":");if(H!=="autoupdater"||F!==d){y.statusCode=401,y.statusMessage="Invalid Authentication Credentials",y.end(),s.warn("Invalid authenthication credentials");return}let z=Buffer.from(`{ "url": "${c(this.server)}${g}" }`);y.writeHead(200,{"Content-Type":"application/json","Content-Length":z.length}),y.end(z);return}if(!_.startsWith(g)){s.warn(`${_} requested, but not supported`),y.writeHead(404),y.end();return}s.info(`${g} requested by Squirrel.Mac, pipe ${i}`);let x=!1;y.on("finish",()=>{x||(this.nativeUpdater.removeListener("error",f),p([]))});let A=(0,e7t.createReadStream)(i);A.on("error",D=>{try{y.end()}catch(j){s.warn(`cannot end response: ${j}`)}x=!0,this.nativeUpdater.removeListener("error",f),f(new Error(`Cannot pipe "${i}": ${D}`))}),y.writeHead(200,{"Content-Type":"application/zip","Content-Length":a}),A.pipe(y)}),this.debug(`Proxy server for native Squirrel.Mac is starting to listen (${o})`),this.server.listen(0,"127.0.0.1",()=>{this.debug(`Proxy server for native Squirrel.Mac is listening (address=${c(this.server)}, ${o})`),this.nativeUpdater.setFeedURL({url:c(this.server),headers:{"Cache-Control":"no-cache",Authorization:`Basic ${h.toString("base64")}`}}),this.dispatchUpdateDownloaded(r),this.autoInstallOnAppQuit?(this.nativeUpdater.once("error",f),this.nativeUpdater.checkForUpdates()):p([])})})}handleUpdateDownloaded(){this.autoRunAppAfterInstall?this.nativeUpdater.quitAndInstall():this.app.quit(),this.closeServerIfExists()}quitAndInstall(){this.squirrelDownloadedUpdate?this.handleUpdateDownloaded():(this.nativeUpdater.on("update-downloaded",()=>this.handleUpdateDownloaded()),this.autoInstallOnAppQuit||this.nativeUpdater.checkForUpdates())}};LC.MacUpdater=BX});var oEe=b(zX=>{"use strict";Object.defineProperty(zX,"__esModule",{value:!0});zX.verifySignature=a7t;var iEe=no(),sEe=require("child_process"),i7t=require("os"),aEe=require("path");function a7t(e,t,r){return new Promise((n,i)=>{let a=t.replace(/'/g,"''");r.info(`Verifying signature ${a}`),(0,sEe.execFile)('set "PSModulePath=" & chcp 65001 >NUL & powershell.exe',["-NoProfile","-NonInteractive","-InputFormat","None","-Command",`"Get-AuthenticodeSignature -LiteralPath '${a}' | ConvertTo-Json -Compress"`],{shell:!0,timeout:20*1e3},(s,o,c)=>{var p;try{if(s!=null||c){UX(r,s,c,i),n(null);return}let f=s7t(o);if(f.Status===0){try{let v=aEe.normalize(f.Path),y=aEe.normalize(t);if(r.info(`LiteralPath: ${v}. Update Path: ${y}`),v!==y){UX(r,new Error(`LiteralPath of ${v} is different than ${y}`),c,i),n(null);return}}catch(v){r.warn(`Unable to verify LiteralPath of update asset due to missing data.Path. Skipping this step of validation. Message: ${(p=v.message)!==null&&p!==void 0?p:v.stack}`)}let h=(0,iEe.parseDn)(f.SignerCertificate.Subject),g=!1;for(let v of e){let y=(0,iEe.parseDn)(v);if(y.size?g=Array.from(y.keys()).every(x=>y.get(x)===h.get(x)):v===h.get("CN")&&(r.warn(`Signature validated using only CN ${v}. Please add your full Distinguished Name (DN) to publisherNames configuration`),g=!0),g){n(null);return}}}let d=`publisherNames: ${e.join(" | ")}, raw info: `+JSON.stringify(f,(h,g)=>h==="RawData"?void 0:g,2);r.warn(`Sign verification failed, installer signed with incorrect certificate: ${d}`),n(d)}catch(f){UX(r,f,null,i),n(null);return}})})}function s7t(e){let t=JSON.parse(e);delete t.PrivateKey,delete t.IsOSBinary,delete t.SignatureType;let r=t.SignerCertificate;return r!=null&&(delete r.Archived,delete r.Extensions,delete r.Handle,delete r.HasPrivateKey,delete r.SubjectName),t}function UX(e,t,r,n){if(o7t()){e.warn(`Cannot execute Get-AuthenticodeSignature: ${t||r}. Ignoring signature validation due to unsupported powershell version. Please upgrade to powershell 3 or higher.`);return}try{(0,sEe.execFileSync)("powershell.exe",["-NoProfile","-NonInteractive","-Command","ConvertTo-Json test"],{timeout:10*1e3})}catch(i){e.warn(`Cannot execute ConvertTo-Json: ${i.message}. Ignoring signature validation due to unsupported powershell version. Please upgrade to powershell 3 or higher.`);return}t!=null&&n(t),r&&n(new Error(`Cannot execute Get-AuthenticodeSignature, stderr: ${r}. Failing signature validation due to unknown stderr.`))}function o7t(){let e=i7t.release();return e.startsWith("6.")&&!e.startsWith("6.3")}});var VX=b(BC=>{"use strict";Object.defineProperty(BC,"__esModule",{value:!0});BC.NsisUpdater=void 0;var $C=no(),uEe=require("path"),u7t=q2(),c7t=CX(),cEe=F0(),l7t=cl(),p7t=Bm(),f7t=oEe(),lEe=require("url"),HX=class extends u7t.BaseUpdater{constructor(t,r){super(t,r),this._verifyUpdateCodeSignature=(n,i)=>(0,f7t.verifySignature)(n,i,this._logger)}get verifyUpdateCodeSignature(){return this._verifyUpdateCodeSignature}set verifyUpdateCodeSignature(t){t&&(this._verifyUpdateCodeSignature=t)}doDownloadUpdate(t){let r=t.updateInfoAndProvider.provider,n=(0,l7t.findFile)(r.resolveFiles(t.updateInfoAndProvider.info),"exe");return this.executeDownload({fileExtension:"exe",downloadUpdateOptions:t,fileInfo:n,task:async(i,a,s,o)=>{let c=n.packageInfo,p=c!=null&&s!=null;if(p&&t.disableWebInstaller)throw(0,$C.newError)(`Unable to download new version ${t.updateInfoAndProvider.info.version}. Web Installers are disabled`,"ERR_UPDATER_WEB_INSTALLER_DISABLED");!p&&!t.disableWebInstaller&&this._logger.warn("disableWebInstaller is set to false, you should set it to true if you do not plan on using a web installer. This will default to true in a future version."),(p||t.disableDifferentialDownload||await this.differentialDownloadInstaller(n,t,i,r,$C.CURRENT_APP_INSTALLER_FILE_NAME))&&await this.httpExecutor.download(n.url,i,a);let f=await this.verifySignature(i);if(f!=null)throw await o(),(0,$C.newError)(`New version ${t.updateInfoAndProvider.info.version} is not signed by the application owner: ${f}`,"ERR_UPDATER_INVALID_SIGNATURE");if(p&&await this.differentialDownloadWebPackage(t,c,s,r))try{await this.httpExecutor.download(new lEe.URL(c.path),s,{headers:t.requestHeaders,cancellationToken:t.cancellationToken,sha512:c.sha512})}catch(d){try{await(0,p7t.unlink)(s)}catch{}throw d}}})}async verifySignature(t){let r;try{if(r=(await this.configOnDisk.value).publisherName,r==null)return null}catch(n){if(n.code==="ENOENT")return null;throw n}return await this._verifyUpdateCodeSignature(Array.isArray(r)?r:[r],t)}doInstall(t){let r=this.installerPath;if(r==null)return this.dispatchError(new Error("No valid update available, can't quit and install")),!1;let n=["--updated"];t.isSilent&&n.push("/S"),t.isForceRunAfter&&n.push("--force-run"),this.installDirectory&&n.push(`/D=${this.installDirectory}`);let i=this.downloadedUpdateHelper==null?null:this.downloadedUpdateHelper.packageFile;i!=null&&n.push(`--package-file=${i}`);let a=()=>{this.spawnLog(uEe.join(process.resourcesPath,"elevate.exe"),[r].concat(n)).catch(s=>this.dispatchError(s))};return t.isAdminRightsRequired?(this._logger.info("isAdminRightsRequired is set to true, run installer using elevate.exe"),a(),!0):(this.spawnLog(r,n).catch(s=>{let o=s.code;this._logger.info(`Cannot run installer: error code: ${o}, error message: "${s.message}", will be executed again using elevate if EACCES, and will try to use electron.shell.openItem if ENOENT`),o==="UNKNOWN"||o==="EACCES"?a():o==="ENOENT"?require("electron").shell.openPath(r).catch(c=>this.dispatchError(c)):this.dispatchError(s)}),!0)}async differentialDownloadWebPackage(t,r,n,i){if(r.blockMapSize==null)return!0;try{let a={newUrl:new lEe.URL(r.path),oldFile:uEe.join(this.downloadedUpdateHelper.cacheDir,$C.CURRENT_APP_PACKAGE_FILE_NAME),logger:this._logger,newFile:n,requestHeaders:this.requestHeaders,isUseMultipleRangeRequest:i.isUseMultipleRangeRequest,cancellationToken:t.cancellationToken};this.listenerCount(cEe.DOWNLOAD_PROGRESS)>0&&(a.onProgress=s=>this.emit(cEe.DOWNLOAD_PROGRESS,s)),await new c7t.FileWithEmbeddedBlockMapDifferentialDownloader(r,this.httpExecutor,a).download()}catch(a){return this._logger.error(`Cannot download differentially, fallback to full download: ${a.stack||a}`),process.platform==="win32"}return!1}};BC.NsisUpdater=HX});var MC=b(yi=>{"use strict";var d7t=yi&&yi.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),h7t=yi&&yi.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&d7t(t,e,r)};Object.defineProperty(yi,"__esModule",{value:!0});yi.NsisUpdater=yi.MacUpdater=yi.RpmUpdater=yi.PacmanUpdater=yi.DebUpdater=yi.AppImageUpdater=yi.Provider=yi.NoOpLogger=yi.AppUpdater=yi.BaseUpdater=void 0;var pEe=Bm(),m7t=require("path"),g7t=q2();Object.defineProperty(yi,"BaseUpdater",{enumerable:!0,get:function(){return g7t.BaseUpdater}});var fEe=PC();Object.defineProperty(yi,"AppUpdater",{enumerable:!0,get:function(){return fEe.AppUpdater}});Object.defineProperty(yi,"NoOpLogger",{enumerable:!0,get:function(){return fEe.NoOpLogger}});var v7t=cl();Object.defineProperty(yi,"Provider",{enumerable:!0,get:function(){return v7t.Provider}});var y7t=IX();Object.defineProperty(yi,"AppImageUpdater",{enumerable:!0,get:function(){return y7t.AppImageUpdater}});var b7t=FX();Object.defineProperty(yi,"DebUpdater",{enumerable:!0,get:function(){return b7t.DebUpdater}});var w7t=NX();Object.defineProperty(yi,"PacmanUpdater",{enumerable:!0,get:function(){return w7t.PacmanUpdater}});var _7t=LX();Object.defineProperty(yi,"RpmUpdater",{enumerable:!0,get:function(){return _7t.RpmUpdater}});var x7t=MX();Object.defineProperty(yi,"MacUpdater",{enumerable:!0,get:function(){return x7t.MacUpdater}});var E7t=VX();Object.defineProperty(yi,"NsisUpdater",{enumerable:!0,get:function(){return E7t.NsisUpdater}});h7t(F0(),yi);var Vm;function S7t(){if(process.platform==="win32")Vm=new(VX()).NsisUpdater;else if(process.platform==="darwin")Vm=new(MX()).MacUpdater;else{Vm=new(IX()).AppImageUpdater;try{let e=m7t.join(process.resourcesPath,"package-type");if(!(0,pEe.existsSync)(e))return Vm;console.info("Checking for beta autoupdate feature for deb/rpm distributions");let t=(0,pEe.readFileSync)(e).toString().trim();switch(console.info("Found package-type:",t),t){case"deb":Vm=new(FX()).DebUpdater;break;case"rpm":Vm=new(LX()).RpmUpdater;break;case"pacman":Vm=new(NX()).PacmanUpdater;break;default:break}}catch(e){console.warn("Unable to detect 'package-type' for autoUpdater (beta rpm/deb support). If you'd like to expand support, please consider contributing to electron-builder",e.message)}}return Vm}Object.defineProperty(yi,"autoUpdater",{enumerable:!0,get:()=>Vm||S7t()})});var dEe=b(N9=>{"use strict";var k7t=N9&&N9.__awaiter||function(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{p(n.next(f))}catch(d){s(d)}}function c(f){try{p(n.throw(f))}catch(d){s(d)}}function p(f){f.done?a(f.value):i(f.value).then(o,c)}p((n=n.apply(e,t||[])).next())})};Object.defineProperty(N9,"__esModule",{value:!0});function A7t(e){return k7t(this,arguments,void 0,function*(t,{logger:r,defaultResult:n=void 0,timeout:i=3e4}={}){let a;return Promise.race([Promise.resolve(t).catch(s=>(r?.error("alwaysResolve: Promise is rejected with",s),n)).finally(()=>clearTimeout(a)),new Promise(s=>{a=setTimeout(()=>{s(n),r?.error(`alwaysResolve: Promise timed out after ${i}ms`)},i)})])})}N9.default=A7t});var zC=b(GX=>{"use strict";Object.defineProperty(GX,"__esModule",{value:!0});var hEe=require("fs"),T7t=require("path"),UC;GX.default=()=>{if(UC)return UC;let e=T7t.join(process.resourcesPath,"todesktop-runtime-config.json");if(!(0,hEe.existsSync)(e))throw new Error(`ToDesktop runtime config doesn't exist (${e})`);try{return UC=JSON.parse((0,hEe.readFileSync)(e,{encoding:"utf-8"})),UC}catch{throw new Error(`Cannot read ToDesktop runtime config (${e})`)}}});var mEe=b(WX=>{"use strict";Object.defineProperty(WX,"__esModule",{value:!0});WX.default=(e,t)=>{if(!(process.env.AVA_PATH&&typeof setTimeout>"u"))return setTimeout(e,t)}});var YX=b(KX=>{"use strict";Object.defineProperty(KX,"__esModule",{value:!0});var O7t=require("path"),D7t=require("fs");KX.default=()=>JSON.parse((0,D7t.readFileSync)(O7t.join(process.resourcesPath,"app.asar","package.json"),{encoding:"utf-8"}))});var vEe=b(q9=>{"use strict";var JX=q9&&q9.__awaiter||function(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{p(n.next(f))}catch(d){s(d)}}function c(f){try{p(n.throw(f))}catch(d){s(d)}}function p(f){f.done?a(f.value):i(f.value).then(o,c)}p((n=n.apply(e,t||[])).next())})};Object.defineProperty(q9,"__esModule",{value:!0});var gEe=require("electron"),C7t=require("fs"),P7t=require("path"),I7t=zC(),R7t=YX();function F7t(e){return JX(this,void 0,void 0,function*(){try{let{id:t}=(0,I7t.default)(),r=(0,R7t.default)().tdBuildId,n;try{let s=P7t.join(process.resourcesPath,"app-update.yml"),c=(yield N7t(s)).url||"";n=c.includes("todesktop-builds-dev.")||c.includes("dl-dev.")}catch{n=!1}return n&&e.debug("Running in dev mode, use api-dev server"),{isReleased:(yield j7t(`${n?"https://api-dev.todesktop.cloud":"https://api.todesktop.com"}/v1/getReleaseStatus?buildId=${r}&appId=${t}`)).isReleased!==!1}}catch(t){return e.error("Failed to get the release status, consider the build released",t),{isReleased:!0}}})}q9.default=F7t;function j7t(e){return JX(this,void 0,void 0,function*(){return yield gEe.app.whenReady(),new Promise((t,r)=>{gEe.net.request(e).on("response",i=>{if(i.statusCode!==200){r(new Error(`GET ${e}: Response status is ${i.statusCode}`));return}let a=[];i.on("data",s=>a.push(s)).on("end",()=>{try{t(JSON.parse(Buffer.concat(a).toString()))}catch(s){r(s)}})}).on("error",i=>r(i)).end()})})}function N7t(e){return JX(this,void 0,void 0,function*(){let t={};try{let n=(yield C7t.promises.readFile(e,"utf8")).split(`
`).filter(i=>i.match(/^\w/i));for(let i of n){let[a,...s]=i.split(":").map(o=>o.trim());t[a]=s.join(":")}}catch{}return t})}});var bEe=b((jqr,yEe)=>{"use strict";yEe.exports=(...e)=>[...new Set([].concat(...e))]});var XX=b((Nqr,xEe)=>{"use strict";var q7t=require("stream"),wEe=q7t.PassThrough,L7t=Array.prototype.slice;xEe.exports=$7t;function $7t(){let e=[],t=L7t.call(arguments),r=!1,n=t[t.length-1];n&&!Array.isArray(n)&&n.pipe==null?t.pop():n={};let i=n.end!==!1,a=n.pipeError===!0;n.objectMode==null&&(n.objectMode=!0),n.highWaterMark==null&&(n.highWaterMark=64*1024);let s=wEe(n);function o(){for(let f=0,d=arguments.length;f<d;f++)e.push(_Ee(arguments[f],n));return c(),this}function c(){if(r)return;r=!0;let f=e.shift();if(!f){process.nextTick(p);return}Array.isArray(f)||(f=[f]);let d=f.length+1;function h(){--d>0||(r=!1,c())}function g(v){function y(){v.removeListener("merge2UnpipeEnd",y),v.removeListener("end",y),a&&v.removeListener("error",_),h()}function _(x){s.emit("error",x)}if(v._readableState.endEmitted)return h();v.on("merge2UnpipeEnd",y),v.on("end",y),a&&v.on("error",_),v.pipe(s,{end:!1}),v.resume()}for(let v=0;v<f.length;v++)g(f[v]);h()}function p(){r=!1,s.emit("queueDrain"),i&&s.end()}return s.setMaxListeners(0),s.add=o,s.on("unpipe",function(f){f.emit("merge2UnpipeEnd")}),t.length&&o.apply(null,t),s}function _Ee(e,t){if(Array.isArray(e))for(let r=0,n=e.length;r<n;r++)e[r]=_Ee(e[r],t);else{if(!e._readableState&&e.pipe&&(e=e.pipe(wEe(t))),!e._readableState||!e.pause||!e.pipe)throw new Error("Only readable stream can be merged.");e.pause()}return e}});var EEe=b(Q_=>{"use strict";Object.defineProperty(Q_,"__esModule",{value:!0});Q_.splitWhen=Q_.flatten=void 0;function B7t(e){return e.reduce((t,r)=>[].concat(t,r),[])}Q_.flatten=B7t;function M7t(e,t){let r=[[]],n=0;for(let i of e)t(i)?(n++,r[n]=[]):r[n].push(i);return r}Q_.splitWhen=M7t});var SEe=b(HC=>{"use strict";Object.defineProperty(HC,"__esModule",{value:!0});HC.isEnoentCodeError=void 0;function U7t(e){return e.code==="ENOENT"}HC.isEnoentCodeError=U7t});var kEe=b(VC=>{"use strict";Object.defineProperty(VC,"__esModule",{value:!0});VC.createDirentFromStats=void 0;var QX=class{constructor(t,r){this.name=t,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function z7t(e,t){return new QX(e,t)}VC.createDirentFromStats=z7t});var AEe=b(xd=>{"use strict";Object.defineProperty(xd,"__esModule",{value:!0});xd.removeLeadingDotSegment=xd.escape=xd.makeAbsolute=xd.unixify=void 0;var H7t=require("path"),V7t=2,G7t=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function W7t(e){return e.replace(/\\/g,"/")}xd.unixify=W7t;function K7t(e,t){return H7t.resolve(e,t)}xd.makeAbsolute=K7t;function Y7t(e){return e.replace(G7t,"\\$2")}xd.escape=Y7t;function J7t(e){if(e.charAt(0)==="."){let t=e.charAt(1);if(t==="/"||t==="\\")return e.slice(V7t)}return e}xd.removeLeadingDotSegment=J7t});var OEe=b((Mqr,TEe)=>{TEe.exports=function(t){if(typeof t!="string"||t==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(t);){if(r[2])return!0;t=t.slice(r.index+r[0].length)}return!1}});var ZX=b((Uqr,CEe)=>{var X7t=OEe(),DEe={"{":"}","(":")","[":"]"},Q7t=function(e){if(e[0]==="!")return!0;for(var t=0,r=-2,n=-2,i=-2,a=-2,s=-2;t<e.length;){if(e[t]==="*"||e[t+1]==="?"&&/[\].+)]/.test(e[t])||n!==-1&&e[t]==="["&&e[t+1]!=="]"&&(n<t&&(n=e.indexOf("]",t)),n>t&&(s===-1||s>n||(s=e.indexOf("\\",t),s===-1||s>n)))||i!==-1&&e[t]==="{"&&e[t+1]!=="}"&&(i=e.indexOf("}",t),i>t&&(s=e.indexOf("\\",t),s===-1||s>i))||a!==-1&&e[t]==="("&&e[t+1]==="?"&&/[:!=]/.test(e[t+2])&&e[t+3]!==")"&&(a=e.indexOf(")",t),a>t&&(s=e.indexOf("\\",t),s===-1||s>a))||r!==-1&&e[t]==="("&&e[t+1]!=="|"&&(r<t&&(r=e.indexOf("|",t)),r!==-1&&e[r+1]!==")"&&(a=e.indexOf(")",r),a>r&&(s=e.indexOf("\\",r),s===-1||s>a))))return!0;if(e[t]==="\\"){var o=e[t+1];t+=2;var c=DEe[o];if(c){var p=e.indexOf(c,t);p!==-1&&(t=p+1)}if(e[t]==="!")return!0}else t++}return!1},Z7t=function(e){if(e[0]==="!")return!0;for(var t=0;t<e.length;){if(/[*?{}()[\]]/.test(e[t]))return!0;if(e[t]==="\\"){var r=e[t+1];t+=2;var n=DEe[r];if(n){var i=e.indexOf(n,t);i!==-1&&(t=i+1)}if(e[t]==="!")return!0}else t++}return!1};CEe.exports=function(t,r){if(typeof t!="string"||t==="")return!1;if(X7t(t))return!0;var n=Q7t;return r&&r.strict===!1&&(n=Z7t),n(t)}});var IEe=b((zqr,PEe)=>{"use strict";var ekt=ZX(),tkt=require("path").posix.dirname,rkt=require("os").platform()==="win32",eQ="/",nkt=/\\/g,ikt=/[\{\[].*[\}\]]$/,akt=/(^|[^\\])([\{\[]|\([^\)]+$)/,skt=/\\([\!\*\?\|\[\]\(\)\{\}])/g;PEe.exports=function(t,r){var n=Object.assign({flipBackslashes:!0},r);n.flipBackslashes&&rkt&&t.indexOf(eQ)<0&&(t=t.replace(nkt,eQ)),ikt.test(t)&&(t+=eQ),t+="a";do t=tkt(t);while(ekt(t)||akt.test(t));return t.replace(skt,"$1")}});var GC=b(ql=>{"use strict";ql.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;ql.find=(e,t)=>e.nodes.find(r=>r.type===t);ql.exceedsLimit=(e,t,r=1,n)=>n===!1||!ql.isInteger(e)||!ql.isInteger(t)?!1:(Number(t)-Number(e))/Number(r)>=n;ql.escapeNode=(e,t=0,r)=>{let n=e.nodes[t];n&&(r&&n.type===r||n.type==="open"||n.type==="close")&&n.escaped!==!0&&(n.value="\\"+n.value,n.escaped=!0)};ql.encloseBrace=e=>e.type!=="brace"||e.commas>>0+e.ranges>>0?!1:(e.invalid=!0,!0);ql.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:!(e.commas>>0+e.ranges>>0)||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;ql.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;ql.reduce=e=>e.reduce((t,r)=>(r.type==="text"&&t.push(r.value),r.type==="range"&&(r.type="text"),t),[]);ql.flatten=(...e)=>{let t=[],r=n=>{for(let i=0;i<n.length;i++){let a=n[i];if(Array.isArray(a)){r(a);continue}a!==void 0&&t.push(a)}return t};return r(e),t}});var WC=b((Vqr,FEe)=>{"use strict";var REe=GC();FEe.exports=(e,t={})=>{let r=(n,i={})=>{let a=t.escapeInvalid&&REe.isInvalidBrace(i),s=n.invalid===!0&&t.escapeInvalid===!0,o="";if(n.value)return(a||s)&&REe.isOpenOrClose(n)?"\\"+n.value:n.value;if(n.value)return n.value;if(n.nodes)for(let c of n.nodes)o+=r(c);return o};return r(e)}});var NEe=b((Gqr,jEe)=>{"use strict";jEe.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var VEe=b((Wqr,HEe)=>{"use strict";var qEe=NEe(),L2=(e,t,r)=>{if(qEe(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(qEe(t)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let n={relaxZeros:!0,...r};typeof n.strictZeros=="boolean"&&(n.relaxZeros=n.strictZeros===!1);let i=String(n.relaxZeros),a=String(n.shorthand),s=String(n.capture),o=String(n.wrap),c=e+":"+t+"="+i+a+s+o;if(L2.cache.hasOwnProperty(c))return L2.cache[c].result;let p=Math.min(e,t),f=Math.max(e,t);if(Math.abs(p-f)===1){let y=e+"|"+t;return n.capture?`(${y})`:n.wrap===!1?y:`(?:${y})`}let d=zEe(e)||zEe(t),h={min:e,max:t,a:p,b:f},g=[],v=[];if(d&&(h.isPadded=d,h.maxLen=String(h.max).length),p<0){let y=f<0?Math.abs(f):1;v=LEe(y,Math.abs(p),h,n),p=h.a=0}return f>=0&&(g=LEe(p,f,h,n)),h.negatives=v,h.positives=g,h.result=okt(v,g,n),n.capture===!0?h.result=`(${h.result})`:n.wrap!==!1&&g.length+v.length>1&&(h.result=`(?:${h.result})`),L2.cache[c]=h,h.result};function okt(e,t,r){let n=tQ(e,t,"-",!1,r)||[],i=tQ(t,e,"",!1,r)||[],a=tQ(e,t,"-?",!0,r)||[];return n.concat(a).concat(i).join("|")}function ukt(e,t){let r=1,n=1,i=BEe(e,r),a=new Set([t]);for(;e<=i&&i<=t;)a.add(i),r+=1,i=BEe(e,r);for(i=MEe(t+1,n)-1;e<i&&i<=t;)a.add(i),n+=1,i=MEe(t+1,n)-1;return a=[...a],a.sort(pkt),a}function ckt(e,t,r){if(e===t)return{pattern:e,count:[],digits:0};let n=lkt(e,t),i=n.length,a="",s=0;for(let o=0;o<i;o++){let[c,p]=n[o];c===p?a+=c:c!=="0"||p!=="9"?a+=fkt(c,p,r):s++}return s&&(a+=r.shorthand===!0?"\\d":"[0-9]"),{pattern:a,count:[s],digits:i}}function LEe(e,t,r,n){let i=ukt(e,t),a=[],s=e,o;for(let c=0;c<i.length;c++){let p=i[c],f=ckt(String(s),String(p),n),d="";if(!r.isPadded&&o&&o.pattern===f.pattern){o.count.length>1&&o.count.pop(),o.count.push(f.count[0]),o.string=o.pattern+UEe(o.count),s=p+1;continue}r.isPadded&&(d=dkt(p,r,n)),f.string=d+f.pattern+UEe(f.count),a.push(f),s=p+1,o=f}return a}function tQ(e,t,r,n,i){let a=[];for(let s of e){let{string:o}=s;!n&&!$Ee(t,"string",o)&&a.push(r+o),n&&$Ee(t,"string",o)&&a.push(r+o)}return a}function lkt(e,t){let r=[];for(let n=0;n<e.length;n++)r.push([e[n],t[n]]);return r}function pkt(e,t){return e>t?1:t>e?-1:0}function $Ee(e,t,r){return e.some(n=>n[t]===r)}function BEe(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function MEe(e,t){return e-e%Math.pow(10,t)}function UEe(e){let[t=0,r=""]=e;return r||t>1?`{${t+(r?","+r:"")}}`:""}function fkt(e,t,r){return`[${e}${t-e===1?"":"-"}${t}]`}function zEe(e){return/^-?(0+)\d/.test(e)}function dkt(e,t,r){if(!t.isPadded)return e;let n=Math.abs(t.maxLen-String(e).length),i=r.relaxZeros!==!1;switch(n){case 0:return"";case 1:return i?"0?":"0";case 2:return i?"0{0,2}":"00";default:return i?`0{0,${n}}`:`0{${n}}`}}L2.cache={};L2.clearCache=()=>L2.cache={};HEe.exports=L2});var iQ=b((Kqr,QEe)=>{"use strict";var hkt=require("util"),WEe=VEe(),GEe=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),mkt=e=>t=>e===!0?Number(t):String(t),rQ=e=>typeof e=="number"||typeof e=="string"&&e!=="",L9=e=>Number.isInteger(+e),nQ=e=>{let t=`${e}`,r=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++r]==="0";);return r>0},gkt=(e,t,r)=>typeof e=="string"||typeof t=="string"?!0:r.stringify===!0,vkt=(e,t,r)=>{if(t>0){let n=e[0]==="-"?"-":"";n&&(e=e.slice(1)),e=n+e.padStart(n?t-1:t,"0")}return r===!1?String(e):e},YC=(e,t)=>{let r=e[0]==="-"?"-":"";for(r&&(e=e.slice(1),t--);e.length<t;)e="0"+e;return r?"-"+e:e},ykt=(e,t,r)=>{e.negatives.sort((o,c)=>o<c?-1:o>c?1:0),e.positives.sort((o,c)=>o<c?-1:o>c?1:0);let n=t.capture?"":"?:",i="",a="",s;return e.positives.length&&(i=e.positives.map(o=>YC(String(o),r)).join("|")),e.negatives.length&&(a=`-(${n}${e.negatives.map(o=>YC(String(o),r)).join("|")})`),i&&a?s=`${i}|${a}`:s=i||a,t.wrap?`(${n}${s})`:s},KEe=(e,t,r,n)=>{if(r)return WEe(e,t,{wrap:!1,...n});let i=String.fromCharCode(e);if(e===t)return i;let a=String.fromCharCode(t);return`[${i}-${a}]`},YEe=(e,t,r)=>{if(Array.isArray(e)){let n=r.wrap===!0,i=r.capture?"":"?:";return n?`(${i}${e.join("|")})`:e.join("|")}return WEe(e,t,r)},JEe=(...e)=>new RangeError("Invalid range arguments: "+hkt.inspect(...e)),XEe=(e,t,r)=>{if(r.strictRanges===!0)throw JEe([e,t]);return[]},bkt=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},wkt=(e,t,r=1,n={})=>{let i=Number(e),a=Number(t);if(!Number.isInteger(i)||!Number.isInteger(a)){if(n.strictRanges===!0)throw JEe([e,t]);return[]}i===0&&(i=0),a===0&&(a=0);let s=i>a,o=String(e),c=String(t),p=String(r);r=Math.max(Math.abs(r),1);let f=nQ(o)||nQ(c)||nQ(p),d=f?Math.max(o.length,c.length,p.length):0,h=f===!1&&gkt(e,t,n)===!1,g=n.transform||mkt(h);if(n.toRegex&&r===1)return KEe(YC(e,d),YC(t,d),!0,n);let v={negatives:[],positives:[]},y=A=>v[A<0?"negatives":"positives"].push(Math.abs(A)),_=[],x=0;for(;s?i>=a:i<=a;)n.toRegex===!0&&r>1?y(i):_.push(vkt(g(i,x),d,h)),i=s?i-r:i+r,x++;return n.toRegex===!0?r>1?ykt(v,n,d):YEe(_,null,{wrap:!1,...n}):_},_kt=(e,t,r=1,n={})=>{if(!L9(e)&&e.length>1||!L9(t)&&t.length>1)return XEe(e,t,n);let i=n.transform||(h=>String.fromCharCode(h)),a=`${e}`.charCodeAt(0),s=`${t}`.charCodeAt(0),o=a>s,c=Math.min(a,s),p=Math.max(a,s);if(n.toRegex&&r===1)return KEe(c,p,!1,n);let f=[],d=0;for(;o?a>=s:a<=s;)f.push(i(a,d)),a=o?a-r:a+r,d++;return n.toRegex===!0?YEe(f,null,{wrap:!1,options:n}):f},KC=(e,t,r,n={})=>{if(t==null&&rQ(e))return[e];if(!rQ(e)||!rQ(t))return XEe(e,t,n);if(typeof r=="function")return KC(e,t,1,{transform:r});if(GEe(r))return KC(e,t,0,r);let i={...n};return i.capture===!0&&(i.wrap=!0),r=r||i.step||1,L9(r)?L9(e)&&L9(t)?wkt(e,t,r,i):_kt(e,t,Math.max(Math.abs(r),1),i):r!=null&&!GEe(r)?bkt(r,i):KC(e,t,1,r)};QEe.exports=KC});var t5e=b((Yqr,e5e)=>{"use strict";var xkt=iQ(),ZEe=GC(),Ekt=(e,t={})=>{let r=(n,i={})=>{let a=ZEe.isInvalidBrace(i),s=n.invalid===!0&&t.escapeInvalid===!0,o=a===!0||s===!0,c=t.escapeInvalid===!0?"\\":"",p="";if(n.isOpen===!0)return c+n.value;if(n.isClose===!0)return console.log("node.isClose",c,n.value),c+n.value;if(n.type==="open")return o?c+n.value:"(";if(n.type==="close")return o?c+n.value:")";if(n.type==="comma")return n.prev.type==="comma"?"":o?n.value:"|";if(n.value)return n.value;if(n.nodes&&n.ranges>0){let f=ZEe.reduce(n.nodes),d=xkt(...f,{...t,wrap:!1,toRegex:!0,strictZeros:!0});if(d.length!==0)return f.length>1&&d.length>1?`(${d})`:d}if(n.nodes)for(let f of n.nodes)p+=r(f,n);return p};return r(e)};e5e.exports=Ekt});var i5e=b((Jqr,n5e)=>{"use strict";var Skt=iQ(),r5e=WC(),Z_=GC(),$2=(e="",t="",r=!1)=>{let n=[];if(e=[].concat(e),t=[].concat(t),!t.length)return e;if(!e.length)return r?Z_.flatten(t).map(i=>`{${i}}`):t;for(let i of e)if(Array.isArray(i))for(let a of i)n.push($2(a,t,r));else for(let a of t)r===!0&&typeof a=="string"&&(a=`{${a}}`),n.push(Array.isArray(a)?$2(i,a,r):i+a);return Z_.flatten(n)},kkt=(e,t={})=>{let r=t.rangeLimit===void 0?1e3:t.rangeLimit,n=(i,a={})=>{i.queue=[];let s=a,o=a.queue;for(;s.type!=="brace"&&s.type!=="root"&&s.parent;)s=s.parent,o=s.queue;if(i.invalid||i.dollar){o.push($2(o.pop(),r5e(i,t)));return}if(i.type==="brace"&&i.invalid!==!0&&i.nodes.length===2){o.push($2(o.pop(),["{}"]));return}if(i.nodes&&i.ranges>0){let d=Z_.reduce(i.nodes);if(Z_.exceedsLimit(...d,t.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let h=Skt(...d,t);h.length===0&&(h=r5e(i,t)),o.push($2(o.pop(),h)),i.nodes=[];return}let c=Z_.encloseBrace(i),p=i.queue,f=i;for(;f.type!=="brace"&&f.type!=="root"&&f.parent;)f=f.parent,p=f.queue;for(let d=0;d<i.nodes.length;d++){let h=i.nodes[d];if(h.type==="comma"&&i.type==="brace"){d===1&&p.push(""),p.push("");continue}if(h.type==="close"){o.push($2(o.pop(),p,c));continue}if(h.value&&h.type!=="open"){p.push($2(p.pop(),h.value));continue}h.nodes&&n(h,i)}return p};return Z_.flatten(n(e))};n5e.exports=kkt});var s5e=b((Xqr,a5e)=>{"use strict";a5e.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:`
`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:"	",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var p5e=b((Qqr,l5e)=>{"use strict";var Akt=WC(),{MAX_LENGTH:o5e,CHAR_BACKSLASH:aQ,CHAR_BACKTICK:Tkt,CHAR_COMMA:Okt,CHAR_DOT:Dkt,CHAR_LEFT_PARENTHESES:Ckt,CHAR_RIGHT_PARENTHESES:Pkt,CHAR_LEFT_CURLY_BRACE:Ikt,CHAR_RIGHT_CURLY_BRACE:Rkt,CHAR_LEFT_SQUARE_BRACKET:u5e,CHAR_RIGHT_SQUARE_BRACKET:c5e,CHAR_DOUBLE_QUOTE:Fkt,CHAR_SINGLE_QUOTE:jkt,CHAR_NO_BREAK_SPACE:Nkt,CHAR_ZERO_WIDTH_NOBREAK_SPACE:qkt}=s5e(),Lkt=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let r=t||{},n=typeof r.maxLength=="number"?Math.min(o5e,r.maxLength):o5e;if(e.length>n)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${n})`);let i={type:"root",input:e,nodes:[]},a=[i],s=i,o=i,c=0,p=e.length,f=0,d=0,h,g=()=>e[f++],v=y=>{if(y.type==="text"&&o.type==="dot"&&(o.type="text"),o&&o.type==="text"&&y.type==="text"){o.value+=y.value;return}return s.nodes.push(y),y.parent=s,y.prev=o,o=y,y};for(v({type:"bos"});f<p;)if(s=a[a.length-1],h=g(),!(h===qkt||h===Nkt)){if(h===aQ){v({type:"text",value:(t.keepEscaping?h:"")+g()});continue}if(h===c5e){v({type:"text",value:"\\"+h});continue}if(h===u5e){c++;let y;for(;f<p&&(y=g());){if(h+=y,y===u5e){c++;continue}if(y===aQ){h+=g();continue}if(y===c5e&&(c--,c===0))break}v({type:"text",value:h});continue}if(h===Ckt){s=v({type:"paren",nodes:[]}),a.push(s),v({type:"text",value:h});continue}if(h===Pkt){if(s.type!=="paren"){v({type:"text",value:h});continue}s=a.pop(),v({type:"text",value:h}),s=a[a.length-1];continue}if(h===Fkt||h===jkt||h===Tkt){let y=h,_;for(t.keepQuotes!==!0&&(h="");f<p&&(_=g());){if(_===aQ){h+=_+g();continue}if(_===y){t.keepQuotes===!0&&(h+=_);break}h+=_}v({type:"text",value:h});continue}if(h===Ikt){d++;let _={type:"brace",open:!0,close:!1,dollar:o.value&&o.value.slice(-1)==="$"||s.dollar===!0,depth:d,commas:0,ranges:0,nodes:[]};s=v(_),a.push(s),v({type:"open",value:h});continue}if(h===Rkt){if(s.type!=="brace"){v({type:"text",value:h});continue}let y="close";s=a.pop(),s.close=!0,v({type:y,value:h}),d--,s=a[a.length-1];continue}if(h===Okt&&d>0){if(s.ranges>0){s.ranges=0;let y=s.nodes.shift();s.nodes=[y,{type:"text",value:Akt(s)}]}v({type:"comma",value:h}),s.commas++;continue}if(h===Dkt&&d>0&&s.commas===0){let y=s.nodes;if(d===0||y.length===0){v({type:"text",value:h});continue}if(o.type==="dot"){if(s.range=[],o.value+=h,o.type="range",s.nodes.length!==3&&s.nodes.length!==5){s.invalid=!0,s.ranges=0,o.type="text";continue}s.ranges++,s.args=[];continue}if(o.type==="range"){y.pop();let _=y[y.length-1];_.value+=o.value+h,o=_,s.ranges--;continue}v({type:"dot",value:h});continue}v({type:"text",value:h})}do if(s=a.pop(),s.type!=="root"){s.nodes.forEach(x=>{x.nodes||(x.type==="open"&&(x.isOpen=!0),x.type==="close"&&(x.isClose=!0),x.nodes||(x.type="text"),x.invalid=!0)});let y=a[a.length-1],_=y.nodes.indexOf(s);y.nodes.splice(_,1,...s.nodes)}while(a.length>0);return v({type:"eos"}),i};l5e.exports=Lkt});var h5e=b((Zqr,d5e)=>{"use strict";var f5e=WC(),$kt=t5e(),Bkt=i5e(),Mkt=p5e(),pl=(e,t={})=>{let r=[];if(Array.isArray(e))for(let n of e){let i=pl.create(n,t);Array.isArray(i)?r.push(...i):r.push(i)}else r=[].concat(pl.create(e,t));return t&&t.expand===!0&&t.nodupes===!0&&(r=[...new Set(r)]),r};pl.parse=(e,t={})=>Mkt(e,t);pl.stringify=(e,t={})=>f5e(typeof e=="string"?pl.parse(e,t):e,t);pl.compile=(e,t={})=>(typeof e=="string"&&(e=pl.parse(e,t)),$kt(e,t));pl.expand=(e,t={})=>{typeof e=="string"&&(e=pl.parse(e,t));let r=Bkt(e,t);return t.noempty===!0&&(r=r.filter(Boolean)),t.nodupes===!0&&(r=[...new Set(r)]),r};pl.create=(e,t={})=>e===""||e.length<3?[e]:t.expand!==!0?pl.compile(e,t):pl.expand(e,t);d5e.exports=pl});var $9=b((eLr,b5e)=>{"use strict";var Ukt=require("path"),Ed="\\\\/",m5e=`[^${Ed}]`,Gm="\\.",zkt="\\+",Hkt="\\?",JC="\\/",Vkt="(?=.)",g5e="[^/]",sQ=`(?:${JC}|$)`,v5e=`(?:^|${JC})`,oQ=`${Gm}{1,2}${sQ}`,Gkt=`(?!${Gm})`,Wkt=`(?!${v5e}${oQ})`,Kkt=`(?!${Gm}{0,1}${sQ})`,Ykt=`(?!${oQ})`,Jkt=`[^.${JC}]`,Xkt=`${g5e}*?`,y5e={DOT_LITERAL:Gm,PLUS_LITERAL:zkt,QMARK_LITERAL:Hkt,SLASH_LITERAL:JC,ONE_CHAR:Vkt,QMARK:g5e,END_ANCHOR:sQ,DOTS_SLASH:oQ,NO_DOT:Gkt,NO_DOTS:Wkt,NO_DOT_SLASH:Kkt,NO_DOTS_SLASH:Ykt,QMARK_NO_DOT:Jkt,STAR:Xkt,START_ANCHOR:v5e},Qkt={...y5e,SLASH_LITERAL:`[${Ed}]`,QMARK:m5e,STAR:`${m5e}*?`,DOTS_SLASH:`${Gm}{1,2}(?:[${Ed}]|$)`,NO_DOT:`(?!${Gm})`,NO_DOTS:`(?!(?:^|[${Ed}])${Gm}{1,2}(?:[${Ed}]|$))`,NO_DOT_SLASH:`(?!${Gm}{0,1}(?:[${Ed}]|$))`,NO_DOTS_SLASH:`(?!${Gm}{1,2}(?:[${Ed}]|$))`,QMARK_NO_DOT:`[^.${Ed}]`,START_ANCHOR:`(?:^|[${Ed}])`,END_ANCHOR:`(?:[${Ed}]|$)`},Zkt={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};b5e.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:Zkt,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:Ukt.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?Qkt:y5e}}});var B9=b(bc=>{"use strict";var eAt=require("path"),tAt=process.platform==="win32",{REGEX_BACKSLASH:rAt,REGEX_REMOVE_BACKSLASH:nAt,REGEX_SPECIAL_CHARS:iAt,REGEX_SPECIAL_CHARS_GLOBAL:aAt}=$9();bc.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);bc.hasRegexChars=e=>iAt.test(e);bc.isRegexChar=e=>e.length===1&&bc.hasRegexChars(e);bc.escapeRegex=e=>e.replace(aAt,"\\$1");bc.toPosixSlashes=e=>e.replace(rAt,"/");bc.removeBackslashes=e=>e.replace(nAt,t=>t==="\\"?"":t);bc.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};bc.isWindows=e=>e&&typeof e.windows=="boolean"?e.windows:tAt===!0||eAt.sep==="\\";bc.escapeLast=(e,t,r)=>{let n=e.lastIndexOf(t,r);return n===-1?e:e[n-1]==="\\"?bc.escapeLast(e,t,n-1):`${e.slice(0,n)}\\${e.slice(n)}`};bc.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r};bc.wrapOutput=(e,t={},r={})=>{let n=r.contains?"":"^",i=r.contains?"":"$",a=`${n}(?:${e})${i}`;return t.negated===!0&&(a=`(?:^(?!${a}).*$)`),a}});var T5e=b((rLr,A5e)=>{"use strict";var w5e=B9(),{CHAR_ASTERISK:uQ,CHAR_AT:sAt,CHAR_BACKWARD_SLASH:M9,CHAR_COMMA:oAt,CHAR_DOT:cQ,CHAR_EXCLAMATION_MARK:lQ,CHAR_FORWARD_SLASH:k5e,CHAR_LEFT_CURLY_BRACE:pQ,CHAR_LEFT_PARENTHESES:fQ,CHAR_LEFT_SQUARE_BRACKET:uAt,CHAR_PLUS:cAt,CHAR_QUESTION_MARK:_5e,CHAR_RIGHT_CURLY_BRACE:lAt,CHAR_RIGHT_PARENTHESES:x5e,CHAR_RIGHT_SQUARE_BRACKET:pAt}=$9(),E5e=e=>e===k5e||e===M9,S5e=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},fAt=(e,t)=>{let r=t||{},n=e.length-1,i=r.parts===!0||r.scanToEnd===!0,a=[],s=[],o=[],c=e,p=-1,f=0,d=0,h=!1,g=!1,v=!1,y=!1,_=!1,x=!1,A=!1,D=!1,j=!1,H=!1,F=0,z,P,M={value:"",depth:0,isGlob:!1},K=()=>p>=n,L=()=>c.charCodeAt(p+1),ve=()=>(z=P,c.charCodeAt(++p));for(;p<n;){P=ve();let Q;if(P===M9){A=M.backslashes=!0,P=ve(),P===pQ&&(x=!0);continue}if(x===!0||P===pQ){for(F++;K()!==!0&&(P=ve());){if(P===M9){A=M.backslashes=!0,ve();continue}if(P===pQ){F++;continue}if(x!==!0&&P===cQ&&(P=ve())===cQ){if(h=M.isBrace=!0,v=M.isGlob=!0,H=!0,i===!0)continue;break}if(x!==!0&&P===oAt){if(h=M.isBrace=!0,v=M.isGlob=!0,H=!0,i===!0)continue;break}if(P===lAt&&(F--,F===0)){x=!1,h=M.isBrace=!0,H=!0;break}}if(i===!0)continue;break}if(P===k5e){if(a.push(p),s.push(M),M={value:"",depth:0,isGlob:!1},H===!0)continue;if(z===cQ&&p===f+1){f+=2;continue}d=p+1;continue}if(r.noext!==!0&&(P===cAt||P===sAt||P===uQ||P===_5e||P===lQ)===!0&&L()===fQ){if(v=M.isGlob=!0,y=M.isExtglob=!0,H=!0,P===lQ&&p===f&&(j=!0),i===!0){for(;K()!==!0&&(P=ve());){if(P===M9){A=M.backslashes=!0,P=ve();continue}if(P===x5e){v=M.isGlob=!0,H=!0;break}}continue}break}if(P===uQ){if(z===uQ&&(_=M.isGlobstar=!0),v=M.isGlob=!0,H=!0,i===!0)continue;break}if(P===_5e){if(v=M.isGlob=!0,H=!0,i===!0)continue;break}if(P===uAt){for(;K()!==!0&&(Q=ve());){if(Q===M9){A=M.backslashes=!0,ve();continue}if(Q===pAt){g=M.isBracket=!0,v=M.isGlob=!0,H=!0;break}}if(i===!0)continue;break}if(r.nonegate!==!0&&P===lQ&&p===f){D=M.negated=!0,f++;continue}if(r.noparen!==!0&&P===fQ){if(v=M.isGlob=!0,i===!0){for(;K()!==!0&&(P=ve());){if(P===fQ){A=M.backslashes=!0,P=ve();continue}if(P===x5e){H=!0;break}}continue}break}if(v===!0){if(H=!0,i===!0)continue;break}}r.noext===!0&&(y=!1,v=!1);let U=c,N="",re="";f>0&&(N=c.slice(0,f),c=c.slice(f),d-=f),U&&v===!0&&d>0?(U=c.slice(0,d),re=c.slice(d)):v===!0?(U="",re=c):U=c,U&&U!==""&&U!=="/"&&U!==c&&E5e(U.charCodeAt(U.length-1))&&(U=U.slice(0,-1)),r.unescape===!0&&(re&&(re=w5e.removeBackslashes(re)),U&&A===!0&&(U=w5e.removeBackslashes(U)));let ue={prefix:N,input:e,start:f,base:U,glob:re,isBrace:h,isBracket:g,isGlob:v,isExtglob:y,isGlobstar:_,negated:D,negatedExtglob:j};if(r.tokens===!0&&(ue.maxDepth=0,E5e(P)||s.push(M),ue.tokens=s),r.parts===!0||r.tokens===!0){let Q;for(let ne=0;ne<a.length;ne++){let G=Q?Q+1:f,de=a[ne],xe=e.slice(G,de);r.tokens&&(ne===0&&f!==0?(s[ne].isPrefix=!0,s[ne].value=N):s[ne].value=xe,S5e(s[ne]),ue.maxDepth+=s[ne].depth),(ne!==0||xe!=="")&&o.push(xe),Q=de}if(Q&&Q+1<e.length){let ne=e.slice(Q+1);o.push(ne),r.tokens&&(s[s.length-1].value=ne,S5e(s[s.length-1]),ue.maxDepth+=s[s.length-1].depth)}ue.slashes=a,ue.parts=o}return ue};A5e.exports=fAt});var C5e=b((nLr,D5e)=>{"use strict";var XC=$9(),fl=B9(),{MAX_LENGTH:QC,POSIX_REGEX_SOURCE:dAt,REGEX_NON_SPECIAL_CHARS:hAt,REGEX_SPECIAL_CHARS_BACKREF:mAt,REPLACEMENTS:O5e}=XC,gAt=(e,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...e,t);e.sort();let r=`[${e.join("-")}]`;try{new RegExp(r)}catch{return e.map(i=>fl.escapeRegex(i)).join("..")}return r},e6=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,dQ=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=O5e[e]||e;let r={...t},n=typeof r.maxLength=="number"?Math.min(QC,r.maxLength):QC,i=e.length;if(i>n)throw new SyntaxError(`Input length: ${i}, exceeds maximum allowed length: ${n}`);let a={type:"bos",value:"",output:r.prepend||""},s=[a],o=r.capture?"":"?:",c=fl.isWindows(t),p=XC.globChars(c),f=XC.extglobChars(p),{DOT_LITERAL:d,PLUS_LITERAL:h,SLASH_LITERAL:g,ONE_CHAR:v,DOTS_SLASH:y,NO_DOT:_,NO_DOT_SLASH:x,NO_DOTS_SLASH:A,QMARK:D,QMARK_NO_DOT:j,STAR:H,START_ANCHOR:F}=p,z=S=>`(${o}(?:(?!${F}${S.dot?y:d}).)*?)`,P=r.dot?"":_,M=r.dot?D:j,K=r.bash===!0?z(r):H;r.capture&&(K=`(${K})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let L={input:e,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:s};e=fl.removePrefix(e,L),i=e.length;let ve=[],U=[],N=[],re=a,ue,Q=()=>L.index===i-1,ne=L.peek=(S=1)=>e[L.index+S],G=L.advance=()=>e[++L.index]||"",de=()=>e.slice(L.index+1),xe=(S="",I=0)=>{L.consumed+=S,L.index+=I},ge=S=>{L.output+=S.output!=null?S.output:S.value,xe(S.value)},V=()=>{let S=1;for(;ne()==="!"&&(ne(2)!=="("||ne(3)==="?");)G(),L.start++,S++;return S%2===0?!1:(L.negated=!0,L.start++,!0)},ce=S=>{L[S]++,N.push(S)},ye=S=>{L[S]--,N.pop()},R=S=>{if(re.type==="globstar"){let I=L.braces>0&&(S.type==="comma"||S.type==="brace"),B=S.extglob===!0||ve.length&&(S.type==="pipe"||S.type==="paren");S.type!=="slash"&&S.type!=="paren"&&!I&&!B&&(L.output=L.output.slice(0,-re.output.length),re.type="star",re.value="*",re.output=K,L.output+=re.output)}if(ve.length&&S.type!=="paren"&&(ve[ve.length-1].inner+=S.value),(S.value||S.output)&&ge(S),re&&re.type==="text"&&S.type==="text"){re.value+=S.value,re.output=(re.output||"")+S.value;return}S.prev=re,s.push(S),re=S},$=(S,I)=>{let B={...f[I],conditions:1,inner:""};B.prev=re,B.parens=L.parens,B.output=L.output;let se=(r.capture?"(":"")+B.open;ce("parens"),R({type:S,value:I,output:L.output?"":v}),R({type:"paren",extglob:!0,value:G(),output:se}),ve.push(B)},ke=S=>{let I=S.close+(r.capture?")":""),B;if(S.type==="negate"){let se=K;if(S.inner&&S.inner.length>1&&S.inner.includes("/")&&(se=z(r)),(se!==K||Q()||/^\)+$/.test(de()))&&(I=S.close=`)$))${se}`),S.inner.includes("*")&&(B=de())&&/^\.[^\\/.]+$/.test(B)){let ae=dQ(B,{...t,fastpaths:!1}).output;I=S.close=`)${ae})${se})`}S.prev.type==="bos"&&(L.negatedExtglob=!0)}R({type:"paren",extglob:!0,value:ue,output:I}),ye("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let S=!1,I=e.replace(mAt,(B,se,ae,me,Se,Ee)=>me==="\\"?(S=!0,B):me==="?"?se?se+me+(Se?D.repeat(Se.length):""):Ee===0?M+(Se?D.repeat(Se.length):""):D.repeat(ae.length):me==="."?d.repeat(ae.length):me==="*"?se?se+me+(Se?K:""):K:se?B:`\\${B}`);return S===!0&&(r.unescape===!0?I=I.replace(/\\/g,""):I=I.replace(/\\+/g,B=>B.length%2===0?"\\\\":B?"\\":"")),I===e&&r.contains===!0?(L.output=e,L):(L.output=fl.wrapOutput(I,L,t),L)}for(;!Q();){if(ue=G(),ue==="\0")continue;if(ue==="\\"){let B=ne();if(B==="/"&&r.bash!==!0||B==="."||B===";")continue;if(!B){ue+="\\",R({type:"text",value:ue});continue}let se=/^\\+/.exec(de()),ae=0;if(se&&se[0].length>2&&(ae=se[0].length,L.index+=ae,ae%2!==0&&(ue+="\\")),r.unescape===!0?ue=G():ue+=G(),L.brackets===0){R({type:"text",value:ue});continue}}if(L.brackets>0&&(ue!=="]"||re.value==="["||re.value==="[^")){if(r.posix!==!1&&ue===":"){let B=re.value.slice(1);if(B.includes("[")&&(re.posix=!0,B.includes(":"))){let se=re.value.lastIndexOf("["),ae=re.value.slice(0,se),me=re.value.slice(se+2),Se=dAt[me];if(Se){re.value=ae+Se,L.backtrack=!0,G(),!a.output&&s.indexOf(re)===1&&(a.output=v);continue}}}(ue==="["&&ne()!==":"||ue==="-"&&ne()==="]")&&(ue=`\\${ue}`),ue==="]"&&(re.value==="["||re.value==="[^")&&(ue=`\\${ue}`),r.posix===!0&&ue==="!"&&re.value==="["&&(ue="^"),re.value+=ue,ge({value:ue});continue}if(L.quotes===1&&ue!=='"'){ue=fl.escapeRegex(ue),re.value+=ue,ge({value:ue});continue}if(ue==='"'){L.quotes=L.quotes===1?0:1,r.keepQuotes===!0&&R({type:"text",value:ue});continue}if(ue==="("){ce("parens"),R({type:"paren",value:ue});continue}if(ue===")"){if(L.parens===0&&r.strictBrackets===!0)throw new SyntaxError(e6("opening","("));let B=ve[ve.length-1];if(B&&L.parens===B.parens+1){ke(ve.pop());continue}R({type:"paren",value:ue,output:L.parens?")":"\\)"}),ye("parens");continue}if(ue==="["){if(r.nobracket===!0||!de().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(e6("closing","]"));ue=`\\${ue}`}else ce("brackets");R({type:"bracket",value:ue});continue}if(ue==="]"){if(r.nobracket===!0||re&&re.type==="bracket"&&re.value.length===1){R({type:"text",value:ue,output:`\\${ue}`});continue}if(L.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(e6("opening","["));R({type:"text",value:ue,output:`\\${ue}`});continue}ye("brackets");let B=re.value.slice(1);if(re.posix!==!0&&B[0]==="^"&&!B.includes("/")&&(ue=`/${ue}`),re.value+=ue,ge({value:ue}),r.literalBrackets===!1||fl.hasRegexChars(B))continue;let se=fl.escapeRegex(re.value);if(L.output=L.output.slice(0,-re.value.length),r.literalBrackets===!0){L.output+=se,re.value=se;continue}re.value=`(${o}${se}|${re.value})`,L.output+=re.value;continue}if(ue==="{"&&r.nobrace!==!0){ce("braces");let B={type:"brace",value:ue,output:"(",outputIndex:L.output.length,tokensIndex:L.tokens.length};U.push(B),R(B);continue}if(ue==="}"){let B=U[U.length-1];if(r.nobrace===!0||!B){R({type:"text",value:ue,output:ue});continue}let se=")";if(B.dots===!0){let ae=s.slice(),me=[];for(let Se=ae.length-1;Se>=0&&(s.pop(),ae[Se].type!=="brace");Se--)ae[Se].type!=="dots"&&me.unshift(ae[Se].value);se=gAt(me,r),L.backtrack=!0}if(B.comma!==!0&&B.dots!==!0){let ae=L.output.slice(0,B.outputIndex),me=L.tokens.slice(B.tokensIndex);B.value=B.output="\\{",ue=se="\\}",L.output=ae;for(let Se of me)L.output+=Se.output||Se.value}R({type:"brace",value:ue,output:se}),ye("braces"),U.pop();continue}if(ue==="|"){ve.length>0&&ve[ve.length-1].conditions++,R({type:"text",value:ue});continue}if(ue===","){let B=ue,se=U[U.length-1];se&&N[N.length-1]==="braces"&&(se.comma=!0,B="|"),R({type:"comma",value:ue,output:B});continue}if(ue==="/"){if(re.type==="dot"&&L.index===L.start+1){L.start=L.index+1,L.consumed="",L.output="",s.pop(),re=a;continue}R({type:"slash",value:ue,output:g});continue}if(ue==="."){if(L.braces>0&&re.type==="dot"){re.value==="."&&(re.output=d);let B=U[U.length-1];re.type="dots",re.output+=ue,re.value+=ue,B.dots=!0;continue}if(L.braces+L.parens===0&&re.type!=="bos"&&re.type!=="slash"){R({type:"text",value:ue,output:d});continue}R({type:"dot",value:ue,output:d});continue}if(ue==="?"){if(!(re&&re.value==="(")&&r.noextglob!==!0&&ne()==="("&&ne(2)!=="?"){$("qmark",ue);continue}if(re&&re.type==="paren"){let se=ne(),ae=ue;if(se==="<"&&!fl.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(re.value==="("&&!/[!=<:]/.test(se)||se==="<"&&!/<([!=]|\w+>)/.test(de()))&&(ae=`\\${ue}`),R({type:"text",value:ue,output:ae});continue}if(r.dot!==!0&&(re.type==="slash"||re.type==="bos")){R({type:"qmark",value:ue,output:j});continue}R({type:"qmark",value:ue,output:D});continue}if(ue==="!"){if(r.noextglob!==!0&&ne()==="("&&(ne(2)!=="?"||!/[!=<:]/.test(ne(3)))){$("negate",ue);continue}if(r.nonegate!==!0&&L.index===0){V();continue}}if(ue==="+"){if(r.noextglob!==!0&&ne()==="("&&ne(2)!=="?"){$("plus",ue);continue}if(re&&re.value==="("||r.regex===!1){R({type:"plus",value:ue,output:h});continue}if(re&&(re.type==="bracket"||re.type==="paren"||re.type==="brace")||L.parens>0){R({type:"plus",value:ue});continue}R({type:"plus",value:h});continue}if(ue==="@"){if(r.noextglob!==!0&&ne()==="("&&ne(2)!=="?"){R({type:"at",extglob:!0,value:ue,output:""});continue}R({type:"text",value:ue});continue}if(ue!=="*"){(ue==="$"||ue==="^")&&(ue=`\\${ue}`);let B=hAt.exec(de());B&&(ue+=B[0],L.index+=B[0].length),R({type:"text",value:ue});continue}if(re&&(re.type==="globstar"||re.star===!0)){re.type="star",re.star=!0,re.value+=ue,re.output=K,L.backtrack=!0,L.globstar=!0,xe(ue);continue}let S=de();if(r.noextglob!==!0&&/^\([^?]/.test(S)){$("star",ue);continue}if(re.type==="star"){if(r.noglobstar===!0){xe(ue);continue}let B=re.prev,se=B.prev,ae=B.type==="slash"||B.type==="bos",me=se&&(se.type==="star"||se.type==="globstar");if(r.bash===!0&&(!ae||S[0]&&S[0]!=="/")){R({type:"star",value:ue,output:""});continue}let Se=L.braces>0&&(B.type==="comma"||B.type==="brace"),Ee=ve.length&&(B.type==="pipe"||B.type==="paren");if(!ae&&B.type!=="paren"&&!Se&&!Ee){R({type:"star",value:ue,output:""});continue}for(;S.slice(0,3)==="/**";){let De=e[L.index+4];if(De&&De!=="/")break;S=S.slice(3),xe("/**",3)}if(B.type==="bos"&&Q()){re.type="globstar",re.value+=ue,re.output=z(r),L.output=re.output,L.globstar=!0,xe(ue);continue}if(B.type==="slash"&&B.prev.type!=="bos"&&!me&&Q()){L.output=L.output.slice(0,-(B.output+re.output).length),B.output=`(?:${B.output}`,re.type="globstar",re.output=z(r)+(r.strictSlashes?")":"|$)"),re.value+=ue,L.globstar=!0,L.output+=B.output+re.output,xe(ue);continue}if(B.type==="slash"&&B.prev.type!=="bos"&&S[0]==="/"){let De=S[1]!==void 0?"|$":"";L.output=L.output.slice(0,-(B.output+re.output).length),B.output=`(?:${B.output}`,re.type="globstar",re.output=`${z(r)}${g}|${g}${De})`,re.value+=ue,L.output+=B.output+re.output,L.globstar=!0,xe(ue+G()),R({type:"slash",value:"/",output:""});continue}if(B.type==="bos"&&S[0]==="/"){re.type="globstar",re.value+=ue,re.output=`(?:^|${g}|${z(r)}${g})`,L.output=re.output,L.globstar=!0,xe(ue+G()),R({type:"slash",value:"/",output:""});continue}L.output=L.output.slice(0,-re.output.length),re.type="globstar",re.output=z(r),re.value+=ue,L.output+=re.output,L.globstar=!0,xe(ue);continue}let I={type:"star",value:ue,output:K};if(r.bash===!0){I.output=".*?",(re.type==="bos"||re.type==="slash")&&(I.output=P+I.output),R(I);continue}if(re&&(re.type==="bracket"||re.type==="paren")&&r.regex===!0){I.output=ue,R(I);continue}(L.index===L.start||re.type==="slash"||re.type==="dot")&&(re.type==="dot"?(L.output+=x,re.output+=x):r.dot===!0?(L.output+=A,re.output+=A):(L.output+=P,re.output+=P),ne()!=="*"&&(L.output+=v,re.output+=v)),R(I)}for(;L.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(e6("closing","]"));L.output=fl.escapeLast(L.output,"["),ye("brackets")}for(;L.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(e6("closing",")"));L.output=fl.escapeLast(L.output,"("),ye("parens")}for(;L.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(e6("closing","}"));L.output=fl.escapeLast(L.output,"{"),ye("braces")}if(r.strictSlashes!==!0&&(re.type==="star"||re.type==="bracket")&&R({type:"maybe_slash",value:"",output:`${g}?`}),L.backtrack===!0){L.output="";for(let S of L.tokens)L.output+=S.output!=null?S.output:S.value,S.suffix&&(L.output+=S.suffix)}return L};dQ.fastpaths=(e,t)=>{let r={...t},n=typeof r.maxLength=="number"?Math.min(QC,r.maxLength):QC,i=e.length;if(i>n)throw new SyntaxError(`Input length: ${i}, exceeds maximum allowed length: ${n}`);e=O5e[e]||e;let a=fl.isWindows(t),{DOT_LITERAL:s,SLASH_LITERAL:o,ONE_CHAR:c,DOTS_SLASH:p,NO_DOT:f,NO_DOTS:d,NO_DOTS_SLASH:h,STAR:g,START_ANCHOR:v}=XC.globChars(a),y=r.dot?d:f,_=r.dot?h:f,x=r.capture?"":"?:",A={negated:!1,prefix:""},D=r.bash===!0?".*?":g;r.capture&&(D=`(${D})`);let j=P=>P.noglobstar===!0?D:`(${x}(?:(?!${v}${P.dot?p:s}).)*?)`,H=P=>{switch(P){case"*":return`${y}${c}${D}`;case".*":return`${s}${c}${D}`;case"*.*":return`${y}${D}${s}${c}${D}`;case"*/*":return`${y}${D}${o}${c}${_}${D}`;case"**":return y+j(r);case"**/*":return`(?:${y}${j(r)}${o})?${_}${c}${D}`;case"**/*.*":return`(?:${y}${j(r)}${o})?${_}${D}${s}${c}${D}`;case"**/.*":return`(?:${y}${j(r)}${o})?${s}${c}${D}`;default:{let M=/^(.*?)\.(\w+)$/.exec(P);if(!M)return;let K=H(M[1]);return K?K+s+M[2]:void 0}}},F=fl.removePrefix(e,A),z=H(F);return z&&r.strictSlashes!==!0&&(z+=`${o}?`),z};D5e.exports=dQ});var I5e=b((iLr,P5e)=>{"use strict";var vAt=require("path"),yAt=T5e(),hQ=C5e(),mQ=B9(),bAt=$9(),wAt=e=>e&&typeof e=="object"&&!Array.isArray(e),is=(e,t,r=!1)=>{if(Array.isArray(e)){let f=e.map(h=>is(h,t,r));return h=>{for(let g of f){let v=g(h);if(v)return v}return!1}}let n=wAt(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!n)throw new TypeError("Expected pattern to be a non-empty string");let i=t||{},a=mQ.isWindows(t),s=n?is.compileRe(e,t):is.makeRe(e,t,!1,!0),o=s.state;delete s.state;let c=()=>!1;if(i.ignore){let f={...t,ignore:null,onMatch:null,onResult:null};c=is(i.ignore,f,r)}let p=(f,d=!1)=>{let{isMatch:h,match:g,output:v}=is.test(f,s,t,{glob:e,posix:a}),y={glob:e,state:o,regex:s,posix:a,input:f,output:v,match:g,isMatch:h};return typeof i.onResult=="function"&&i.onResult(y),h===!1?(y.isMatch=!1,d?y:!1):c(f)?(typeof i.onIgnore=="function"&&i.onIgnore(y),y.isMatch=!1,d?y:!1):(typeof i.onMatch=="function"&&i.onMatch(y),d?y:!0)};return r&&(p.state=o),p};is.test=(e,t,r,{glob:n,posix:i}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let a=r||{},s=a.format||(i?mQ.toPosixSlashes:null),o=e===n,c=o&&s?s(e):e;return o===!1&&(c=s?s(e):e,o=c===n),(o===!1||a.capture===!0)&&(a.matchBase===!0||a.basename===!0?o=is.matchBase(e,t,r,i):o=t.exec(c)),{isMatch:!!o,match:o,output:c}};is.matchBase=(e,t,r,n=mQ.isWindows(r))=>(t instanceof RegExp?t:is.makeRe(t,r)).test(vAt.basename(e));is.isMatch=(e,t,r)=>is(t,r)(e);is.parse=(e,t)=>Array.isArray(e)?e.map(r=>is.parse(r,t)):hQ(e,{...t,fastpaths:!1});is.scan=(e,t)=>yAt(e,t);is.compileRe=(e,t,r=!1,n=!1)=>{if(r===!0)return e.output;let i=t||{},a=i.contains?"":"^",s=i.contains?"":"$",o=`${a}(?:${e.output})${s}`;e&&e.negated===!0&&(o=`^(?!${o}).*$`);let c=is.toRegex(o,t);return n===!0&&(c.state=e),c};is.makeRe=(e,t={},r=!1,n=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let i={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(i.output=hQ.fastpaths(e,t)),i.output||(i=hQ(e,t)),is.compileRe(i,t,r,n)};is.toRegex=(e,t)=>{try{let r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(r){if(t&&t.debug===!0)throw r;return/$^/}};is.constants=bAt;P5e.exports=is});var F5e=b((aLr,R5e)=>{"use strict";R5e.exports=I5e()});var B5e=b((sLr,$5e)=>{"use strict";var N5e=require("util"),q5e=h5e(),Sd=F5e(),gQ=B9(),j5e=e=>e===""||e==="./",L5e=e=>{let t=e.indexOf("{");return t>-1&&e.indexOf("}",t)>-1},pa=(e,t,r)=>{t=[].concat(t),e=[].concat(e);let n=new Set,i=new Set,a=new Set,s=0,o=f=>{a.add(f.output),r&&r.onResult&&r.onResult(f)};for(let f=0;f<t.length;f++){let d=Sd(String(t[f]),{...r,onResult:o},!0),h=d.state.negated||d.state.negatedExtglob;h&&s++;for(let g of e){let v=d(g,!0);(h?!v.isMatch:v.isMatch)&&(h?n.add(v.output):(n.delete(v.output),i.add(v.output)))}}let p=(s===t.length?[...a]:[...i]).filter(f=>!n.has(f));if(r&&p.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${t.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?t.map(f=>f.replace(/\\/g,"")):t}return p};pa.match=pa;pa.matcher=(e,t)=>Sd(e,t);pa.isMatch=(e,t,r)=>Sd(t,r)(e);pa.any=pa.isMatch;pa.not=(e,t,r={})=>{t=[].concat(t).map(String);let n=new Set,i=[],a=o=>{r.onResult&&r.onResult(o),i.push(o.output)},s=new Set(pa(e,t,{...r,onResult:a}));for(let o of i)s.has(o)||n.add(o);return[...n]};pa.contains=(e,t,r)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${N5e.inspect(e)}"`);if(Array.isArray(t))return t.some(n=>pa.contains(e,n,r));if(typeof t=="string"){if(j5e(e)||j5e(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return pa.isMatch(e,t,{...r,contains:!0})};pa.matchKeys=(e,t,r)=>{if(!gQ.isObject(e))throw new TypeError("Expected the first argument to be an object");let n=pa(Object.keys(e),t,r),i={};for(let a of n)i[a]=e[a];return i};pa.some=(e,t,r)=>{let n=[].concat(e);for(let i of[].concat(t)){let a=Sd(String(i),r);if(n.some(s=>a(s)))return!0}return!1};pa.every=(e,t,r)=>{let n=[].concat(e);for(let i of[].concat(t)){let a=Sd(String(i),r);if(!n.every(s=>a(s)))return!1}return!0};pa.all=(e,t,r)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${N5e.inspect(e)}"`);return[].concat(t).every(n=>Sd(n,r)(e))};pa.capture=(e,t,r)=>{let n=gQ.isWindows(r),a=Sd.makeRe(String(e),{...r,capture:!0}).exec(n?gQ.toPosixSlashes(t):t);if(a)return a.slice(1).map(s=>s===void 0?"":s)};pa.makeRe=(...e)=>Sd.makeRe(...e);pa.scan=(...e)=>Sd.scan(...e);pa.parse=(e,t)=>{let r=[];for(let n of[].concat(e||[]))for(let i of q5e(String(n),t))r.push(Sd.parse(i,t));return r};pa.braces=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return t&&t.nobrace===!0||!L5e(e)?[e]:q5e(e,t)};pa.braceExpand=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return pa.braces(e,{...t,expand:!0})};pa.hasBraces=L5e;$5e.exports=pa});var K5e=b(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.matchAny=Wr.convertPatternsToRe=Wr.makeRe=Wr.getPatternParts=Wr.expandBraceExpansion=Wr.expandPatternsWithBraceExpansion=Wr.isAffectDepthOfReadingPattern=Wr.endsWithSlashGlobStar=Wr.hasGlobStar=Wr.getBaseDirectory=Wr.isPatternRelatedToParentDirectory=Wr.getPatternsOutsideCurrentDirectory=Wr.getPatternsInsideCurrentDirectory=Wr.getPositivePatterns=Wr.getNegativePatterns=Wr.isPositivePattern=Wr.isNegativePattern=Wr.convertToNegativePattern=Wr.convertToPositivePattern=Wr.isDynamicPattern=Wr.isStaticPattern=void 0;var _At=require("path"),xAt=IEe(),vQ=B5e(),M5e="**",EAt="\\",SAt=/[*?]|^!/,kAt=/\[[^[]*]/,AAt=/(?:^|[^!*+?@])\([^(]*\|[^|]*\)/,TAt=/[!*+?@]\([^(]*\)/,OAt=/,|\.\./;function U5e(e,t={}){return!z5e(e,t)}Wr.isStaticPattern=U5e;function z5e(e,t={}){return e===""?!1:!!(t.caseSensitiveMatch===!1||e.includes(EAt)||SAt.test(e)||kAt.test(e)||AAt.test(e)||t.extglob!==!1&&TAt.test(e)||t.braceExpansion!==!1&&DAt(e))}Wr.isDynamicPattern=z5e;function DAt(e){let t=e.indexOf("{");if(t===-1)return!1;let r=e.indexOf("}",t+1);if(r===-1)return!1;let n=e.slice(t,r);return OAt.test(n)}function CAt(e){return ZC(e)?e.slice(1):e}Wr.convertToPositivePattern=CAt;function PAt(e){return"!"+e}Wr.convertToNegativePattern=PAt;function ZC(e){return e.startsWith("!")&&e[1]!=="("}Wr.isNegativePattern=ZC;function H5e(e){return!ZC(e)}Wr.isPositivePattern=H5e;function IAt(e){return e.filter(ZC)}Wr.getNegativePatterns=IAt;function RAt(e){return e.filter(H5e)}Wr.getPositivePatterns=RAt;function FAt(e){return e.filter(t=>!yQ(t))}Wr.getPatternsInsideCurrentDirectory=FAt;function jAt(e){return e.filter(yQ)}Wr.getPatternsOutsideCurrentDirectory=jAt;function yQ(e){return e.startsWith("..")||e.startsWith("./..")}Wr.isPatternRelatedToParentDirectory=yQ;function NAt(e){return xAt(e,{flipBackslashes:!1})}Wr.getBaseDirectory=NAt;function qAt(e){return e.includes(M5e)}Wr.hasGlobStar=qAt;function V5e(e){return e.endsWith("/"+M5e)}Wr.endsWithSlashGlobStar=V5e;function LAt(e){let t=_At.basename(e);return V5e(e)||U5e(t)}Wr.isAffectDepthOfReadingPattern=LAt;function $At(e){return e.reduce((t,r)=>t.concat(G5e(r)),[])}Wr.expandPatternsWithBraceExpansion=$At;function G5e(e){return vQ.braces(e,{expand:!0,nodupes:!0})}Wr.expandBraceExpansion=G5e;function BAt(e,t){let{parts:r}=vQ.scan(e,Object.assign(Object.assign({},t),{parts:!0}));return r.length===0&&(r=[e]),r[0].startsWith("/")&&(r[0]=r[0].slice(1),r.unshift("")),r}Wr.getPatternParts=BAt;function W5e(e,t){return vQ.makeRe(e,t)}Wr.makeRe=W5e;function MAt(e,t){return e.map(r=>W5e(r,t))}Wr.convertPatternsToRe=MAt;function UAt(e,t){return t.some(r=>r.test(e))}Wr.matchAny=UAt});var J5e=b(eP=>{"use strict";Object.defineProperty(eP,"__esModule",{value:!0});eP.merge=void 0;var zAt=XX();function HAt(e){let t=zAt(e);return e.forEach(r=>{r.once("error",n=>t.emit("error",n))}),t.once("close",()=>Y5e(e)),t.once("end",()=>Y5e(e)),t}eP.merge=HAt;function Y5e(e){e.forEach(t=>t.emit("close"))}});var X5e=b(t6=>{"use strict";Object.defineProperty(t6,"__esModule",{value:!0});t6.isEmpty=t6.isString=void 0;function VAt(e){return typeof e=="string"}t6.isString=VAt;function GAt(e){return e===""}t6.isEmpty=GAt});var Wm=b(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.string=au.stream=au.pattern=au.path=au.fs=au.errno=au.array=void 0;var WAt=EEe();au.array=WAt;var KAt=SEe();au.errno=KAt;var YAt=kEe();au.fs=YAt;var JAt=AEe();au.path=JAt;var XAt=K5e();au.pattern=XAt;var QAt=J5e();au.stream=QAt;var ZAt=X5e();au.string=ZAt});var e9e=b(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.convertPatternGroupToTask=su.convertPatternGroupsToTasks=su.groupPatternsByBaseDirectory=su.getNegativePatternsAsPositive=su.getPositivePatterns=su.convertPatternsToTasks=su.generate=void 0;var Km=Wm();function eTt(e,t){let r=Q5e(e),n=Z5e(e,t.ignore),i=r.filter(c=>Km.pattern.isStaticPattern(c,t)),a=r.filter(c=>Km.pattern.isDynamicPattern(c,t)),s=bQ(i,n,!1),o=bQ(a,n,!0);return s.concat(o)}su.generate=eTt;function bQ(e,t,r){let n=[],i=Km.pattern.getPatternsOutsideCurrentDirectory(e),a=Km.pattern.getPatternsInsideCurrentDirectory(e),s=wQ(i),o=wQ(a);return n.push(..._Q(s,t,r)),"."in o?n.push(xQ(".",a,t,r)):n.push(..._Q(o,t,r)),n}su.convertPatternsToTasks=bQ;function Q5e(e){return Km.pattern.getPositivePatterns(e)}su.getPositivePatterns=Q5e;function Z5e(e,t){return Km.pattern.getNegativePatterns(e).concat(t).map(Km.pattern.convertToPositivePattern)}su.getNegativePatternsAsPositive=Z5e;function wQ(e){let t={};return e.reduce((r,n)=>{let i=Km.pattern.getBaseDirectory(n);return i in r?r[i].push(n):r[i]=[n],r},t)}su.groupPatternsByBaseDirectory=wQ;function _Q(e,t,r){return Object.keys(e).map(n=>xQ(n,e[n],t,r))}su.convertPatternGroupsToTasks=_Q;function xQ(e,t,r,n){return{dynamic:n,positive:t,negative:r,base:e,patterns:[].concat(t,r.map(Km.pattern.convertToNegativePattern))}}su.convertPatternGroupToTask=xQ});var r9e=b(r6=>{"use strict";Object.defineProperty(r6,"__esModule",{value:!0});r6.removeDuplicateSlashes=r6.transform=void 0;var tTt=/(?!^)\/{2,}/g;function rTt(e){return e.map(t=>t9e(t))}r6.transform=rTt;function t9e(e){return e.replace(tTt,"/")}r6.removeDuplicateSlashes=t9e});var i9e=b(tP=>{"use strict";Object.defineProperty(tP,"__esModule",{value:!0});tP.read=void 0;function nTt(e,t,r){t.fs.lstat(e,(n,i)=>{if(n!==null){n9e(r,n);return}if(!i.isSymbolicLink()||!t.followSymbolicLink){EQ(r,i);return}t.fs.stat(e,(a,s)=>{if(a!==null){if(t.throwErrorOnBrokenSymbolicLink){n9e(r,a);return}EQ(r,i);return}t.markSymbolicLink&&(s.isSymbolicLink=()=>!0),EQ(r,s)})})}tP.read=nTt;function n9e(e,t){e(t)}function EQ(e,t){e(null,t)}});var a9e=b(rP=>{"use strict";Object.defineProperty(rP,"__esModule",{value:!0});rP.read=void 0;function iTt(e,t){let r=t.fs.lstatSync(e);if(!r.isSymbolicLink()||!t.followSymbolicLink)return r;try{let n=t.fs.statSync(e);return t.markSymbolicLink&&(n.isSymbolicLink=()=>!0),n}catch(n){if(!t.throwErrorOnBrokenSymbolicLink)return r;throw n}}rP.read=iTt});var s9e=b(j0=>{"use strict";Object.defineProperty(j0,"__esModule",{value:!0});j0.createFileSystemAdapter=j0.FILE_SYSTEM_ADAPTER=void 0;var nP=require("fs");j0.FILE_SYSTEM_ADAPTER={lstat:nP.lstat,stat:nP.stat,lstatSync:nP.lstatSync,statSync:nP.statSync};function aTt(e){return e===void 0?j0.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},j0.FILE_SYSTEM_ADAPTER),e)}j0.createFileSystemAdapter=aTt});var o9e=b(kQ=>{"use strict";Object.defineProperty(kQ,"__esModule",{value:!0});var sTt=s9e(),SQ=class{constructor(t={}){this._options=t,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=sTt.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(t,r){return t??r}};kQ.default=SQ});var B2=b(N0=>{"use strict";Object.defineProperty(N0,"__esModule",{value:!0});N0.statSync=N0.stat=N0.Settings=void 0;var u9e=i9e(),oTt=a9e(),AQ=o9e();N0.Settings=AQ.default;function uTt(e,t,r){if(typeof t=="function"){u9e.read(e,TQ(),t);return}u9e.read(e,TQ(t),r)}N0.stat=uTt;function cTt(e,t){let r=TQ(t);return oTt.read(e,r)}N0.statSync=cTt;function TQ(e={}){return e instanceof AQ.default?e:new AQ.default(e)}});var p9e=b((yLr,l9e)=>{var c9e;l9e.exports=typeof queueMicrotask=="function"?queueMicrotask.bind(typeof window<"u"?window:global):e=>(c9e||(c9e=Promise.resolve())).then(e).catch(t=>setTimeout(()=>{throw t},0))});var d9e=b((bLr,f9e)=>{f9e.exports=pTt;var lTt=p9e();function pTt(e,t){let r,n,i,a=!0;Array.isArray(e)?(r=[],n=e.length):(i=Object.keys(e),r={},n=i.length);function s(c){function p(){t&&t(c,r),t=null}a?lTt(p):p()}function o(c,p,f){r[c]=f,(--n===0||p)&&s(p)}n?i?i.forEach(function(c){e[c](function(p,f){o(c,p,f)})}):e.forEach(function(c,p){c(function(f,d){o(p,f,d)})}):s(null),a=!1}});var OQ=b(aP=>{"use strict";Object.defineProperty(aP,"__esModule",{value:!0});aP.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var iP=process.versions.node.split(".");if(iP[0]===void 0||iP[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var h9e=Number.parseInt(iP[0],10),fTt=Number.parseInt(iP[1],10),m9e=10,dTt=10,hTt=h9e>m9e,mTt=h9e===m9e&&fTt>=dTt;aP.IS_SUPPORT_READDIR_WITH_FILE_TYPES=hTt||mTt});var g9e=b(sP=>{"use strict";Object.defineProperty(sP,"__esModule",{value:!0});sP.createDirentFromStats=void 0;var DQ=class{constructor(t,r){this.name=t,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function gTt(e,t){return new DQ(e,t)}sP.createDirentFromStats=gTt});var CQ=b(oP=>{"use strict";Object.defineProperty(oP,"__esModule",{value:!0});oP.fs=void 0;var vTt=g9e();oP.fs=vTt});var PQ=b(uP=>{"use strict";Object.defineProperty(uP,"__esModule",{value:!0});uP.joinPathSegments=void 0;function yTt(e,t,r){return e.endsWith(r)?e+t:e+r+t}uP.joinPathSegments=yTt});var x9e=b(q0=>{"use strict";Object.defineProperty(q0,"__esModule",{value:!0});q0.readdir=q0.readdirWithFileTypes=q0.read=void 0;var bTt=B2(),v9e=d9e(),wTt=OQ(),y9e=CQ(),b9e=PQ();function _Tt(e,t,r){if(!t.stats&&wTt.IS_SUPPORT_READDIR_WITH_FILE_TYPES){w9e(e,t,r);return}_9e(e,t,r)}q0.read=_Tt;function w9e(e,t,r){t.fs.readdir(e,{withFileTypes:!0},(n,i)=>{if(n!==null){cP(r,n);return}let a=i.map(o=>({dirent:o,name:o.name,path:b9e.joinPathSegments(e,o.name,t.pathSegmentSeparator)}));if(!t.followSymbolicLinks){IQ(r,a);return}let s=a.map(o=>xTt(o,t));v9e(s,(o,c)=>{if(o!==null){cP(r,o);return}IQ(r,c)})})}q0.readdirWithFileTypes=w9e;function xTt(e,t){return r=>{if(!e.dirent.isSymbolicLink()){r(null,e);return}t.fs.stat(e.path,(n,i)=>{if(n!==null){if(t.throwErrorOnBrokenSymbolicLink){r(n);return}r(null,e);return}e.dirent=y9e.fs.createDirentFromStats(e.name,i),r(null,e)})}}function _9e(e,t,r){t.fs.readdir(e,(n,i)=>{if(n!==null){cP(r,n);return}let a=i.map(s=>{let o=b9e.joinPathSegments(e,s,t.pathSegmentSeparator);return c=>{bTt.stat(o,t.fsStatSettings,(p,f)=>{if(p!==null){c(p);return}let d={name:s,path:o,dirent:y9e.fs.createDirentFromStats(s,f)};t.stats&&(d.stats=f),c(null,d)})}});v9e(a,(s,o)=>{if(s!==null){cP(r,s);return}IQ(r,o)})})}q0.readdir=_9e;function cP(e,t){e(t)}function IQ(e,t){e(null,t)}});var T9e=b(L0=>{"use strict";Object.defineProperty(L0,"__esModule",{value:!0});L0.readdir=L0.readdirWithFileTypes=L0.read=void 0;var ETt=B2(),STt=OQ(),E9e=CQ(),S9e=PQ();function kTt(e,t){return!t.stats&&STt.IS_SUPPORT_READDIR_WITH_FILE_TYPES?k9e(e,t):A9e(e,t)}L0.read=kTt;function k9e(e,t){return t.fs.readdirSync(e,{withFileTypes:!0}).map(n=>{let i={dirent:n,name:n.name,path:S9e.joinPathSegments(e,n.name,t.pathSegmentSeparator)};if(i.dirent.isSymbolicLink()&&t.followSymbolicLinks)try{let a=t.fs.statSync(i.path);i.dirent=E9e.fs.createDirentFromStats(i.name,a)}catch(a){if(t.throwErrorOnBrokenSymbolicLink)throw a}return i})}L0.readdirWithFileTypes=k9e;function A9e(e,t){return t.fs.readdirSync(e).map(n=>{let i=S9e.joinPathSegments(e,n,t.pathSegmentSeparator),a=ETt.statSync(i,t.fsStatSettings),s={name:n,path:i,dirent:E9e.fs.createDirentFromStats(n,a)};return t.stats&&(s.stats=a),s})}L0.readdir=A9e});var O9e=b($0=>{"use strict";Object.defineProperty($0,"__esModule",{value:!0});$0.createFileSystemAdapter=$0.FILE_SYSTEM_ADAPTER=void 0;var n6=require("fs");$0.FILE_SYSTEM_ADAPTER={lstat:n6.lstat,stat:n6.stat,lstatSync:n6.lstatSync,statSync:n6.statSync,readdir:n6.readdir,readdirSync:n6.readdirSync};function ATt(e){return e===void 0?$0.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},$0.FILE_SYSTEM_ADAPTER),e)}$0.createFileSystemAdapter=ATt});var D9e=b(FQ=>{"use strict";Object.defineProperty(FQ,"__esModule",{value:!0});var TTt=require("path"),OTt=B2(),DTt=O9e(),RQ=class{constructor(t={}){this._options=t,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=DTt.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,TTt.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new OTt.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(t,r){return t??r}};FQ.default=RQ});var lP=b(B0=>{"use strict";Object.defineProperty(B0,"__esModule",{value:!0});B0.Settings=B0.scandirSync=B0.scandir=void 0;var C9e=x9e(),CTt=T9e(),jQ=D9e();B0.Settings=jQ.default;function PTt(e,t,r){if(typeof t=="function"){C9e.read(e,NQ(),t);return}C9e.read(e,NQ(t),r)}B0.scandir=PTt;function ITt(e,t){let r=NQ(t);return CTt.read(e,r)}B0.scandirSync=ITt;function NQ(e={}){return e instanceof jQ.default?e:new jQ.default(e)}});var I9e=b((DLr,P9e)=>{"use strict";function RTt(e){var t=new e,r=t;function n(){var a=t;return a.next?t=a.next:(t=new e,r=t),a.next=null,a}function i(a){r.next=a,r=a}return{get:n,release:i}}P9e.exports=RTt});var F9e=b((CLr,qQ)=>{"use strict";var FTt=I9e();function R9e(e,t,r){if(typeof e=="function"&&(r=t,t=e,e=null),r<1)throw new Error("fastqueue concurrency must be greater than 1");var n=FTt(jTt),i=null,a=null,s=0,o=null,c={push:y,drain:Ll,saturated:Ll,pause:f,paused:!1,concurrency:r,running:p,resume:g,idle:v,length:d,getQueue:h,unshift:_,empty:Ll,kill:A,killAndDrain:D,error:j};return c;function p(){return s}function f(){c.paused=!0}function d(){for(var H=i,F=0;H;)H=H.next,F++;return F}function h(){for(var H=i,F=[];H;)F.push(H.value),H=H.next;return F}function g(){if(c.paused){c.paused=!1;for(var H=0;H<c.concurrency;H++)s++,x()}}function v(){return s===0&&c.length()===0}function y(H,F){var z=n.get();z.context=e,z.release=x,z.value=H,z.callback=F||Ll,z.errorHandler=o,s===c.concurrency||c.paused?a?(a.next=z,a=z):(i=z,a=z,c.saturated()):(s++,t.call(e,z.value,z.worked))}function _(H,F){var z=n.get();z.context=e,z.release=x,z.value=H,z.callback=F||Ll,s===c.concurrency||c.paused?i?(z.next=i,i=z):(i=z,a=z,c.saturated()):(s++,t.call(e,z.value,z.worked))}function x(H){H&&n.release(H);var F=i;F?c.paused?s--:(a===i&&(a=null),i=F.next,F.next=null,t.call(e,F.value,F.worked),a===null&&c.empty()):--s===0&&c.drain()}function A(){i=null,a=null,c.drain=Ll}function D(){i=null,a=null,c.drain(),c.drain=Ll}function j(H){o=H}}function Ll(){}function jTt(){this.value=null,this.callback=Ll,this.next=null,this.release=Ll,this.context=null,this.errorHandler=null;var e=this;this.worked=function(r,n){var i=e.callback,a=e.errorHandler,s=e.value;e.value=null,e.callback=Ll,e.errorHandler&&a(r,s),i.call(e.context,r,n),e.release(e)}}function NTt(e,t,r){typeof e=="function"&&(r=t,t=e,e=null);function n(f,d){t.call(this,f).then(function(h){d(null,h)},d)}var i=R9e(e,n,r),a=i.push,s=i.unshift;return i.push=o,i.unshift=c,i.drained=p,i;function o(f){var d=new Promise(function(h,g){a(f,function(v,y){if(v){g(v);return}h(y)})});return d.catch(Ll),d}function c(f){var d=new Promise(function(h,g){s(f,function(v,y){if(v){g(v);return}h(y)})});return d.catch(Ll),d}function p(){var f=i.drain,d=new Promise(function(h){i.drain=function(){f(),h()}});return d}}qQ.exports=R9e;qQ.exports.promise=NTt});var pP=b(kd=>{"use strict";Object.defineProperty(kd,"__esModule",{value:!0});kd.joinPathSegments=kd.replacePathSegmentSeparator=kd.isAppliedFilter=kd.isFatalError=void 0;function qTt(e,t){return e.errorFilter===null?!0:!e.errorFilter(t)}kd.isFatalError=qTt;function LTt(e,t){return e===null||e(t)}kd.isAppliedFilter=LTt;function $Tt(e,t){return e.split(/[/\\]/).join(t)}kd.replacePathSegmentSeparator=$Tt;function BTt(e,t,r){return e===""?t:e.endsWith(r)?e+t:e+r+t}kd.joinPathSegments=BTt});var BQ=b($Q=>{"use strict";Object.defineProperty($Q,"__esModule",{value:!0});var MTt=pP(),LQ=class{constructor(t,r){this._root=t,this._settings=r,this._root=MTt.replacePathSegmentSeparator(t,r.pathSegmentSeparator)}};$Q.default=LQ});var zQ=b(UQ=>{"use strict";Object.defineProperty(UQ,"__esModule",{value:!0});var UTt=require("events"),zTt=lP(),HTt=F9e(),fP=pP(),VTt=BQ(),MQ=class extends VTt.default{constructor(t,r){super(t,r),this._settings=r,this._scandir=zTt.scandir,this._emitter=new UTt.EventEmitter,this._queue=HTt(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(t){this._emitter.on("entry",t)}onError(t){this._emitter.once("error",t)}onEnd(t){this._emitter.once("end",t)}_pushToQueue(t,r){let n={directory:t,base:r};this._queue.push(n,i=>{i!==null&&this._handleError(i)})}_worker(t,r){this._scandir(t.directory,this._settings.fsScandirSettings,(n,i)=>{if(n!==null){r(n,void 0);return}for(let a of i)this._handleEntry(a,t.base);r(null,void 0)})}_handleError(t){this._isDestroyed||!fP.isFatalError(this._settings,t)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",t))}_handleEntry(t,r){if(this._isDestroyed||this._isFatalError)return;let n=t.path;r!==void 0&&(t.path=fP.joinPathSegments(r,t.name,this._settings.pathSegmentSeparator)),fP.isAppliedFilter(this._settings.entryFilter,t)&&this._emitEntry(t),t.dirent.isDirectory()&&fP.isAppliedFilter(this._settings.deepFilter,t)&&this._pushToQueue(n,r===void 0?void 0:t.path)}_emitEntry(t){this._emitter.emit("entry",t)}};UQ.default=MQ});var j9e=b(VQ=>{"use strict";Object.defineProperty(VQ,"__esModule",{value:!0});var GTt=zQ(),HQ=class{constructor(t,r){this._root=t,this._settings=r,this._reader=new GTt.default(this._root,this._settings),this._storage=[]}read(t){this._reader.onError(r=>{WTt(t,r)}),this._reader.onEntry(r=>{this._storage.push(r)}),this._reader.onEnd(()=>{KTt(t,this._storage)}),this._reader.read()}};VQ.default=HQ;function WTt(e,t){e(t)}function KTt(e,t){e(null,t)}});var N9e=b(WQ=>{"use strict";Object.defineProperty(WQ,"__esModule",{value:!0});var YTt=require("stream"),JTt=zQ(),GQ=class{constructor(t,r){this._root=t,this._settings=r,this._reader=new JTt.default(this._root,this._settings),this._stream=new YTt.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(t=>{this._stream.emit("error",t)}),this._reader.onEntry(t=>{this._stream.push(t)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};WQ.default=GQ});var q9e=b(YQ=>{"use strict";Object.defineProperty(YQ,"__esModule",{value:!0});var XTt=lP(),dP=pP(),QTt=BQ(),KQ=class extends QTt.default{constructor(){super(...arguments),this._scandir=XTt.scandirSync,this._storage=[],this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),this._storage}_pushToQueue(t,r){this._queue.add({directory:t,base:r})}_handleQueue(){for(let t of this._queue.values())this._handleDirectory(t.directory,t.base)}_handleDirectory(t,r){try{let n=this._scandir(t,this._settings.fsScandirSettings);for(let i of n)this._handleEntry(i,r)}catch(n){this._handleError(n)}}_handleError(t){if(dP.isFatalError(this._settings,t))throw t}_handleEntry(t,r){let n=t.path;r!==void 0&&(t.path=dP.joinPathSegments(r,t.name,this._settings.pathSegmentSeparator)),dP.isAppliedFilter(this._settings.entryFilter,t)&&this._pushToStorage(t),t.dirent.isDirectory()&&dP.isAppliedFilter(this._settings.deepFilter,t)&&this._pushToQueue(n,r===void 0?void 0:t.path)}_pushToStorage(t){this._storage.push(t)}};YQ.default=KQ});var L9e=b(XQ=>{"use strict";Object.defineProperty(XQ,"__esModule",{value:!0});var ZTt=q9e(),JQ=class{constructor(t,r){this._root=t,this._settings=r,this._reader=new ZTt.default(this._root,this._settings)}read(){return this._reader.read()}};XQ.default=JQ});var $9e=b(ZQ=>{"use strict";Object.defineProperty(ZQ,"__esModule",{value:!0});var eOt=require("path"),tOt=lP(),QQ=class{constructor(t={}){this._options=t,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,eOt.sep),this.fsScandirSettings=new tOt.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(t,r){return t??r}};ZQ.default=QQ});var tZ=b(Ad=>{"use strict";Object.defineProperty(Ad,"__esModule",{value:!0});Ad.Settings=Ad.walkStream=Ad.walkSync=Ad.walk=void 0;var B9e=j9e(),rOt=N9e(),nOt=L9e(),eZ=$9e();Ad.Settings=eZ.default;function iOt(e,t,r){if(typeof t=="function"){new B9e.default(e,hP()).read(t);return}new B9e.default(e,hP(t)).read(r)}Ad.walk=iOt;function aOt(e,t){let r=hP(t);return new nOt.default(e,r).read()}Ad.walkSync=aOt;function sOt(e,t){let r=hP(t);return new rOt.default(e,r).read()}Ad.walkStream=sOt;function hP(e={}){return e instanceof eZ.default?e:new eZ.default(e)}});var iZ=b(nZ=>{"use strict";Object.defineProperty(nZ,"__esModule",{value:!0});var oOt=require("path"),uOt=B2(),M9e=Wm(),rZ=class{constructor(t){this._settings=t,this._fsStatSettings=new uOt.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(t){return oOt.resolve(this._settings.cwd,t)}_makeEntry(t,r){let n={name:r,path:r,dirent:M9e.fs.createDirentFromStats(r,t)};return this._settings.stats&&(n.stats=t),n}_isFatalError(t){return!M9e.errno.isEnoentCodeError(t)&&!this._settings.suppressErrors}};nZ.default=rZ});var oZ=b(sZ=>{"use strict";Object.defineProperty(sZ,"__esModule",{value:!0});var cOt=require("stream"),lOt=B2(),pOt=tZ(),fOt=iZ(),aZ=class extends fOt.default{constructor(){super(...arguments),this._walkStream=pOt.walkStream,this._stat=lOt.stat}dynamic(t,r){return this._walkStream(t,r)}static(t,r){let n=t.map(this._getFullEntryPath,this),i=new cOt.PassThrough({objectMode:!0});i._write=(a,s,o)=>this._getEntry(n[a],t[a],r).then(c=>{c!==null&&r.entryFilter(c)&&i.push(c),a===n.length-1&&i.end(),o()}).catch(o);for(let a=0;a<n.length;a++)i.write(a);return i}_getEntry(t,r,n){return this._getStat(t).then(i=>this._makeEntry(i,r)).catch(i=>{if(n.errorFilter(i))return null;throw i})}_getStat(t){return new Promise((r,n)=>{this._stat(t,this._fsStatSettings,(i,a)=>i===null?r(a):n(i))})}};sZ.default=aZ});var U9e=b(cZ=>{"use strict";Object.defineProperty(cZ,"__esModule",{value:!0});var i6=Wm(),uZ=class{constructor(t,r,n){this._patterns=t,this._settings=r,this._micromatchOptions=n,this._storage=[],this._fillStorage()}_fillStorage(){let t=i6.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let r of t){let n=this._getPatternSegments(r),i=this._splitSegmentsIntoSections(n);this._storage.push({complete:i.length<=1,pattern:r,segments:n,sections:i})}}_getPatternSegments(t){return i6.pattern.getPatternParts(t,this._micromatchOptions).map(n=>i6.pattern.isDynamicPattern(n,this._settings)?{dynamic:!0,pattern:n,patternRe:i6.pattern.makeRe(n,this._micromatchOptions)}:{dynamic:!1,pattern:n})}_splitSegmentsIntoSections(t){return i6.array.splitWhen(t,r=>r.dynamic&&i6.pattern.hasGlobStar(r.pattern))}};cZ.default=uZ});var z9e=b(pZ=>{"use strict";Object.defineProperty(pZ,"__esModule",{value:!0});var dOt=U9e(),lZ=class extends dOt.default{match(t){let r=t.split("/"),n=r.length,i=this._storage.filter(a=>!a.complete||a.segments.length>n);for(let a of i){let s=a.sections[0];if(!a.complete&&n>s.length||r.every((c,p)=>{let f=a.segments[p];return!!(f.dynamic&&f.patternRe.test(c)||!f.dynamic&&f.pattern===c)}))return!0}return!1}};pZ.default=lZ});var H9e=b(dZ=>{"use strict";Object.defineProperty(dZ,"__esModule",{value:!0});var mP=Wm(),hOt=z9e(),fZ=class{constructor(t,r){this._settings=t,this._micromatchOptions=r}getFilter(t,r,n){let i=this._getMatcher(r),a=this._getNegativePatternsRe(n);return s=>this._filter(t,s,i,a)}_getMatcher(t){return new hOt.default(t,this._settings,this._micromatchOptions)}_getNegativePatternsRe(t){let r=t.filter(mP.pattern.isAffectDepthOfReadingPattern);return mP.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(t,r,n,i){if(this._isSkippedByDeep(t,r.path)||this._isSkippedSymbolicLink(r))return!1;let a=mP.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(a,n)?!1:this._isSkippedByNegativePatterns(a,i)}_isSkippedByDeep(t,r){return this._settings.deep===1/0?!1:this._getEntryLevel(t,r)>=this._settings.deep}_getEntryLevel(t,r){let n=r.split("/").length;if(t==="")return n;let i=t.split("/").length;return n-i}_isSkippedSymbolicLink(t){return!this._settings.followSymbolicLinks&&t.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(t,r){return!this._settings.baseNameMatch&&!r.match(t)}_isSkippedByNegativePatterns(t,r){return!mP.pattern.matchAny(t,r)}};dZ.default=fZ});var V9e=b(mZ=>{"use strict";Object.defineProperty(mZ,"__esModule",{value:!0});var M2=Wm(),hZ=class{constructor(t,r){this._settings=t,this._micromatchOptions=r,this.index=new Map}getFilter(t,r){let n=M2.pattern.convertPatternsToRe(t,this._micromatchOptions),i=M2.pattern.convertPatternsToRe(r,this._micromatchOptions);return a=>this._filter(a,n,i)}_filter(t,r,n){if(this._settings.unique&&this._isDuplicateEntry(t)||this._onlyFileFilter(t)||this._onlyDirectoryFilter(t)||this._isSkippedByAbsoluteNegativePatterns(t.path,n))return!1;let i=this._settings.baseNameMatch?t.name:t.path,a=this._isMatchToPatterns(i,r)&&!this._isMatchToPatterns(t.path,n);return this._settings.unique&&a&&this._createIndexRecord(t),a}_isDuplicateEntry(t){return this.index.has(t.path)}_createIndexRecord(t){this.index.set(t.path,void 0)}_onlyFileFilter(t){return this._settings.onlyFiles&&!t.dirent.isFile()}_onlyDirectoryFilter(t){return this._settings.onlyDirectories&&!t.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(t,r){if(!this._settings.absolute)return!1;let n=M2.path.makeAbsolute(this._settings.cwd,t);return M2.pattern.matchAny(n,r)}_isMatchToPatterns(t,r){let n=M2.path.removeLeadingDotSegment(t);return M2.pattern.matchAny(n,r)||M2.pattern.matchAny(n+"/",r)}};mZ.default=hZ});var G9e=b(vZ=>{"use strict";Object.defineProperty(vZ,"__esModule",{value:!0});var mOt=Wm(),gZ=class{constructor(t){this._settings=t}getFilter(){return t=>this._isNonFatalError(t)}_isNonFatalError(t){return mOt.errno.isEnoentCodeError(t)||this._settings.suppressErrors}};vZ.default=gZ});var K9e=b(bZ=>{"use strict";Object.defineProperty(bZ,"__esModule",{value:!0});var W9e=Wm(),yZ=class{constructor(t){this._settings=t}getTransformer(){return t=>this._transform(t)}_transform(t){let r=t.path;return this._settings.absolute&&(r=W9e.path.makeAbsolute(this._settings.cwd,r),r=W9e.path.unixify(r)),this._settings.markDirectories&&t.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},t),{path:r}):r}};bZ.default=yZ});var gP=b(_Z=>{"use strict";Object.defineProperty(_Z,"__esModule",{value:!0});var gOt=require("path"),vOt=H9e(),yOt=V9e(),bOt=G9e(),wOt=K9e(),wZ=class{constructor(t){this._settings=t,this.errorFilter=new bOt.default(this._settings),this.entryFilter=new yOt.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new vOt.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new wOt.default(this._settings)}_getRootDirectory(t){return gOt.resolve(this._settings.cwd,t.base)}_getReaderOptions(t){let r=t.base==="."?"":t.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,t.positive,t.negative),entryFilter:this.entryFilter.getFilter(t.positive,t.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};_Z.default=wZ});var Y9e=b(EZ=>{"use strict";Object.defineProperty(EZ,"__esModule",{value:!0});var _Ot=oZ(),xOt=gP(),xZ=class extends xOt.default{constructor(){super(...arguments),this._reader=new _Ot.default(this._settings)}read(t){let r=this._getRootDirectory(t),n=this._getReaderOptions(t),i=[];return new Promise((a,s)=>{let o=this.api(r,t,n);o.once("error",s),o.on("data",c=>i.push(n.transform(c))),o.once("end",()=>a(i))})}api(t,r,n){return r.dynamic?this._reader.dynamic(t,n):this._reader.static(r.patterns,n)}};EZ.default=xZ});var J9e=b(kZ=>{"use strict";Object.defineProperty(kZ,"__esModule",{value:!0});var EOt=require("stream"),SOt=oZ(),kOt=gP(),SZ=class extends kOt.default{constructor(){super(...arguments),this._reader=new SOt.default(this._settings)}read(t){let r=this._getRootDirectory(t),n=this._getReaderOptions(t),i=this.api(r,t,n),a=new EOt.Readable({objectMode:!0,read:()=>{}});return i.once("error",s=>a.emit("error",s)).on("data",s=>a.emit("data",n.transform(s))).once("end",()=>a.emit("end")),a.once("close",()=>i.destroy()),a}api(t,r,n){return r.dynamic?this._reader.dynamic(t,n):this._reader.static(r.patterns,n)}};kZ.default=SZ});var X9e=b(TZ=>{"use strict";Object.defineProperty(TZ,"__esModule",{value:!0});var AOt=B2(),TOt=tZ(),OOt=iZ(),AZ=class extends OOt.default{constructor(){super(...arguments),this._walkSync=TOt.walkSync,this._statSync=AOt.statSync}dynamic(t,r){return this._walkSync(t,r)}static(t,r){let n=[];for(let i of t){let a=this._getFullEntryPath(i),s=this._getEntry(a,i,r);s===null||!r.entryFilter(s)||n.push(s)}return n}_getEntry(t,r,n){try{let i=this._getStat(t);return this._makeEntry(i,r)}catch(i){if(n.errorFilter(i))return null;throw i}}_getStat(t){return this._statSync(t,this._fsStatSettings)}};TZ.default=AZ});var Q9e=b(DZ=>{"use strict";Object.defineProperty(DZ,"__esModule",{value:!0});var DOt=X9e(),COt=gP(),OZ=class extends COt.default{constructor(){super(...arguments),this._reader=new DOt.default(this._settings)}read(t){let r=this._getRootDirectory(t),n=this._getReaderOptions(t);return this.api(r,t,n).map(n.transform)}api(t,r,n){return r.dynamic?this._reader.dynamic(t,n):this._reader.static(r.patterns,n)}};DZ.default=OZ});var Z9e=b(s6=>{"use strict";Object.defineProperty(s6,"__esModule",{value:!0});s6.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;var a6=require("fs"),POt=require("os"),IOt=Math.max(POt.cpus().length,1);s6.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:a6.lstat,lstatSync:a6.lstatSync,stat:a6.stat,statSync:a6.statSync,readdir:a6.readdir,readdirSync:a6.readdirSync};var CZ=class{constructor(t={}){this._options=t,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,IOt),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(t,r){return t===void 0?r:t}_getFileSystemMethods(t={}){return Object.assign(Object.assign({},s6.DEFAULT_FILE_SYSTEM_ADAPTER),t)}};s6.default=CZ});var FZ=b((e$r,rSe)=>{"use strict";var eSe=e9e(),tSe=r9e(),ROt=Y9e(),FOt=J9e(),jOt=Q9e(),PZ=Z9e(),U2=Wm();async function IZ(e,t){o6(e);let r=RZ(e,ROt.default,t),n=await Promise.all(r);return U2.array.flatten(n)}(function(e){function t(s,o){o6(s);let c=RZ(s,jOt.default,o);return U2.array.flatten(c)}e.sync=t;function r(s,o){o6(s);let c=RZ(s,FOt.default,o);return U2.stream.merge(c)}e.stream=r;function n(s,o){o6(s);let c=tSe.transform([].concat(s)),p=new PZ.default(o);return eSe.generate(c,p)}e.generateTasks=n;function i(s,o){o6(s);let c=new PZ.default(o);return U2.pattern.isDynamicPattern(s,c)}e.isDynamicPattern=i;function a(s){return o6(s),U2.path.escape(s)}e.escapePath=a})(IZ||(IZ={}));function RZ(e,t,r){let n=tSe.transform([].concat(e)),i=new PZ.default(r),a=eSe.generate(n,i),s=new t(i);return a.map(s.read,s)}function o6(e){if(![].concat(e).every(n=>U2.string.isString(n)&&!U2.string.isEmpty(n)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}rSe.exports=IZ});var iSe=b(z2=>{"use strict";var{promisify:NOt}=require("util"),nSe=require("fs");async function jZ(e,t,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return(await NOt(nSe[e])(r))[t]()}catch(n){if(n.code==="ENOENT")return!1;throw n}}function NZ(e,t,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return nSe[e](r)[t]()}catch(n){if(n.code==="ENOENT")return!1;throw n}}z2.isFile=jZ.bind(null,"stat","isFile");z2.isDirectory=jZ.bind(null,"stat","isDirectory");z2.isSymlink=jZ.bind(null,"lstat","isSymbolicLink");z2.isFileSync=NZ.bind(null,"statSync","isFile");z2.isDirectorySync=NZ.bind(null,"statSync","isDirectory");z2.isSymlinkSync=NZ.bind(null,"lstatSync","isSymbolicLink")});var cSe=b((r$r,qZ)=>{"use strict";var H2=require("path"),aSe=iSe(),sSe=e=>e.length>1?`{${e.join(",")}}`:e[0],oSe=(e,t)=>{let r=e[0]==="!"?e.slice(1):e;return H2.isAbsolute(r)?r:H2.join(t,r)},qOt=(e,t)=>H2.extname(e)?`**/${e}`:`**/${e}.${sSe(t)}`,uSe=(e,t)=>{if(t.files&&!Array.isArray(t.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof t.files}\``);if(t.extensions&&!Array.isArray(t.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof t.extensions}\``);return t.files&&t.extensions?t.files.map(r=>H2.posix.join(e,qOt(r,t.extensions))):t.files?t.files.map(r=>H2.posix.join(e,`**/${r}`)):t.extensions?[H2.posix.join(e,`**/*.${sSe(t.extensions)}`)]:[H2.posix.join(e,"**")]};qZ.exports=async(e,t)=>{if(t={cwd:process.cwd(),...t},typeof t.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);let r=await Promise.all([].concat(e).map(async n=>await aSe.isDirectory(oSe(n,t.cwd))?uSe(n,t):n));return[].concat.apply([],r)};qZ.exports.sync=(e,t)=>{if(t={cwd:process.cwd(),...t},typeof t.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);let r=[].concat(e).map(n=>aSe.isDirectorySync(oSe(n,t.cwd))?uSe(n,t):n);return[].concat.apply([],r)}});var ySe=b((n$r,vSe)=>{function lSe(e){return Array.isArray(e)?e:[e]}var hSe="",pSe=" ",LZ="\\",LOt=/^\s+$/,$Ot=/^\\!/,BOt=/^\\#/,MOt=/\r?\n/g,UOt=/^\.*\/|^\.+$/,$Z="/",fSe=typeof Symbol<"u"?Symbol.for("node-ignore"):"node-ignore",zOt=(e,t,r)=>Object.defineProperty(e,t,{value:r}),HOt=/([0-z])-([0-z])/g,mSe=()=>!1,VOt=e=>e.replace(HOt,(t,r,n)=>r.charCodeAt(0)<=n.charCodeAt(0)?t:hSe),GOt=e=>{let{length:t}=e;return e.slice(0,t-t%2)},WOt=[[/\\?\s+$/,e=>e.indexOf("\\")===0?pSe:hSe],[/\\\s/g,()=>pSe],[/[\\$.|*+(){^]/g,e=>`\\${e}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,r)=>t+6<r.length?"(?:\\/[^\\/]+)*":"\\/.+"],[/(^|[^\\]+)\\\*(?=.+)/g,(e,t)=>`${t}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>LZ],[/\\\\/g,()=>LZ],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(e,t,r,n,i)=>t===LZ?`\\[${r}${GOt(n)}${i}`:i==="]"&&n.length%2===0?`[${VOt(r)}${n}]`:"[]"],[/(?:[^*])$/,e=>/\/$/.test(e)?`${e}$`:`${e}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(e,t)=>`${t?`${t}[^/]+`:"[^/]*"}(?=$|\\/$)`]],dSe=Object.create(null),KOt=(e,t)=>{let r=dSe[e];return r||(r=WOt.reduce((n,i)=>n.replace(i[0],i[1].bind(e)),e),dSe[e]=r),t?new RegExp(r,"i"):new RegExp(r)},UZ=e=>typeof e=="string",YOt=e=>e&&UZ(e)&&!LOt.test(e)&&e.indexOf("#")!==0,JOt=e=>e.split(MOt),BZ=class{constructor(t,r,n,i){this.origin=t,this.pattern=r,this.negative=n,this.regex=i}},XOt=(e,t)=>{let r=e,n=!1;e.indexOf("!")===0&&(n=!0,e=e.substr(1)),e=e.replace($Ot,"!").replace(BOt,"#");let i=KOt(e,t);return new BZ(r,e,n,i)},QOt=(e,t)=>{throw new t(e)},Ym=(e,t,r)=>UZ(e)?e?Ym.isNotRelative(e)?r(`path should be a \`path.relative()\`d string, but got "${t}"`,RangeError):!0:r("path must not be empty",TypeError):r(`path must be a string, but got \`${t}\``,TypeError),gSe=e=>UOt.test(e);Ym.isNotRelative=gSe;Ym.convert=e=>e;var MZ=class{constructor({ignorecase:t=!0,ignoreCase:r=t,allowRelativePaths:n=!1}={}){zOt(this,fSe,!0),this._rules=[],this._ignoreCase=r,this._allowRelativePaths=n,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(t){if(t&&t[fSe]){this._rules=this._rules.concat(t._rules),this._added=!0;return}if(YOt(t)){let r=XOt(t,this._ignoreCase);this._added=!0,this._rules.push(r)}}add(t){return this._added=!1,lSe(UZ(t)?JOt(t):t).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(t){return this.add(t)}_testOne(t,r){let n=!1,i=!1;return this._rules.forEach(a=>{let{negative:s}=a;if(i===s&&n!==i||s&&!n&&!i&&!r)return;a.regex.test(t)&&(n=!s,i=s)}),{ignored:n,unignored:i}}_test(t,r,n,i){let a=t&&Ym.convert(t);return Ym(a,t,this._allowRelativePaths?mSe:QOt),this._t(a,r,n,i)}_t(t,r,n,i){if(t in r)return r[t];if(i||(i=t.split($Z)),i.pop(),!i.length)return r[t]=this._testOne(t,n);let a=this._t(i.join($Z)+$Z,r,n,i);return r[t]=a.ignored?a:this._testOne(t,n)}ignores(t){return this._test(t,this._ignoreCache,!1).ignored}createFilter(){return t=>!this.ignores(t)}filter(t){return lSe(t).filter(this.createFilter())}test(t){return this._test(t,this._testCache,!0)}},vP=e=>new MZ(e),ZOt=e=>Ym(e&&Ym.convert(e),e,mSe);vP.isPathValid=ZOt;vP.default=vP;vSe.exports=vP;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let e=r=>/^\\\\\?\\/.test(r)||/["<>|\u0000-\u001F]+/u.test(r)?r:r.replace(/\\/g,"/");Ym.convert=e;let t=/^[a-z]:\//i;Ym.isNotRelative=r=>t.test(r)||gSe(r)}});var zZ=b((i$r,bSe)=>{"use strict";bSe.exports=e=>{let t=/^\\\\\?\\/.test(e),r=/[^\u0000-\u0080]+/.test(e);return t||r?e:e.replace(/\\/g,"/")}});var ASe=b((a$r,HZ)=>{"use strict";var{promisify:eDt}=require("util"),wSe=require("fs"),Jm=require("path"),_Se=FZ(),tDt=ySe(),U9=zZ(),xSe=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],rDt=eDt(wSe.readFile),nDt=e=>t=>t.startsWith("!")?"!"+Jm.posix.join(e,t.slice(1)):Jm.posix.join(e,t),iDt=(e,t)=>{let r=U9(Jm.relative(t.cwd,Jm.dirname(t.fileName)));return e.split(/\r?\n/).filter(Boolean).filter(n=>!n.startsWith("#")).map(nDt(r))},ESe=e=>{let t=tDt();for(let r of e)t.add(iDt(r.content,{cwd:r.cwd,fileName:r.filePath}));return t},aDt=(e,t)=>{if(e=U9(e),Jm.isAbsolute(t)){if(U9(t).startsWith(e))return t;throw new Error(`Path ${t} is not in cwd ${e}`)}return Jm.join(e,t)},SSe=(e,t)=>r=>e.ignores(U9(Jm.relative(t,aDt(t,r.path||r)))),sDt=async(e,t)=>{let r=Jm.join(t,e),n=await rDt(r,"utf8");return{cwd:t,filePath:r,content:n}},oDt=(e,t)=>{let r=Jm.join(t,e),n=wSe.readFileSync(r,"utf8");return{cwd:t,filePath:r,content:n}},kSe=({ignore:e=[],cwd:t=U9(process.cwd())}={})=>({ignore:e,cwd:t});HZ.exports=async e=>{e=kSe(e);let t=await _Se("**/.gitignore",{ignore:xSe.concat(e.ignore),cwd:e.cwd}),r=await Promise.all(t.map(i=>sDt(i,e.cwd))),n=ESe(r);return SSe(n,e.cwd)};HZ.exports.sync=e=>{e=kSe(e);let r=_Se.sync("**/.gitignore",{ignore:xSe.concat(e.ignore),cwd:e.cwd}).map(i=>oDt(i,e.cwd)),n=ESe(r);return SSe(n,e.cwd)}});var OSe=b((s$r,TSe)=>{"use strict";var{Transform:uDt}=require("stream"),yP=class extends uDt{constructor(){super({objectMode:!0})}},VZ=class extends yP{constructor(t){super(),this._filter=t}_transform(t,r,n){this._filter(t)&&this.push(t),n()}},GZ=class extends yP{constructor(){super(),this._pushed=new Set}_transform(t,r,n){this._pushed.has(t)||(this.push(t),this._pushed.add(t)),n()}};TSe.exports={FilterStream:VZ,UniqueStream:GZ}});var RSe=b((o$r,V2)=>{"use strict";var CSe=require("fs"),bP=bEe(),cDt=XX(),wP=FZ(),_P=cSe(),WZ=ASe(),{FilterStream:lDt,UniqueStream:pDt}=OSe(),PSe=()=>!1,DSe=e=>e[0]==="!",fDt=e=>{if(!e.every(t=>typeof t=="string"))throw new TypeError("Patterns must be a string or an array of strings")},dDt=(e={})=>{if(!e.cwd)return;let t;try{t=CSe.statSync(e.cwd)}catch{return}if(!t.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},hDt=e=>e.stats instanceof CSe.Stats?e.path:e,xP=(e,t)=>{e=bP([].concat(e)),fDt(e),dDt(t);let r=[];t={ignore:[],expandDirectories:!0,...t};for(let[n,i]of e.entries()){if(DSe(i))continue;let a=e.slice(n).filter(o=>DSe(o)).map(o=>o.slice(1)),s={...t,ignore:t.ignore.concat(a)};r.push({pattern:i,options:s})}return r},mDt=(e,t)=>{let r={};return e.options.cwd&&(r.cwd=e.options.cwd),Array.isArray(e.options.expandDirectories)?r={...r,files:e.options.expandDirectories}:typeof e.options.expandDirectories=="object"&&(r={...r,...e.options.expandDirectories}),t(e.pattern,r)},KZ=(e,t)=>e.options.expandDirectories?mDt(e,t):[e.pattern],ISe=e=>e&&e.gitignore?WZ.sync({cwd:e.cwd,ignore:e.ignore}):PSe,YZ=e=>t=>{let{options:r}=e;return r.ignore&&Array.isArray(r.ignore)&&r.expandDirectories&&(r.ignore=_P.sync(r.ignore)),{pattern:t,options:r}};V2.exports=async(e,t)=>{let r=xP(e,t),n=async()=>t&&t.gitignore?WZ({cwd:t.cwd,ignore:t.ignore}):PSe,i=async()=>{let c=await Promise.all(r.map(async p=>{let f=await KZ(p,_P);return Promise.all(f.map(YZ(p)))}));return bP(...c)},[a,s]=await Promise.all([n(),i()]),o=await Promise.all(s.map(c=>wP(c.pattern,c.options)));return bP(...o).filter(c=>!a(hDt(c)))};V2.exports.sync=(e,t)=>{let r=xP(e,t),n=[];for(let s of r){let o=KZ(s,_P.sync).map(YZ(s));n.push(...o)}let i=ISe(t),a=[];for(let s of n)a=bP(a,wP.sync(s.pattern,s.options));return a.filter(s=>!i(s))};V2.exports.stream=(e,t)=>{let r=xP(e,t),n=[];for(let o of r){let c=KZ(o,_P.sync).map(YZ(o));n.push(...c)}let i=ISe(t),a=new lDt(o=>!i(o)),s=new pDt;return cDt(n.map(o=>wP.stream(o.pattern,o.options))).pipe(a).pipe(s)};V2.exports.generateGlobTasks=xP;V2.exports.hasMagic=(e,t)=>[].concat(e).some(r=>wP.isDynamicPattern(r,t));V2.exports.gitignore=WZ});var jSe=b((u$r,FSe)=>{"use strict";var gDt=require("path");FSe.exports=e=>{let t=process.cwd();return e=gDt.resolve(e),process.platform==="win32"&&(t=t.toLowerCase(),e=e.toLowerCase()),e===t}});var qSe=b((c$r,NSe)=>{"use strict";var JZ=require("path");NSe.exports=(e,t)=>{let r=JZ.relative(t,e);return!!(r&&r!==".."&&!r.startsWith(`..${JZ.sep}`)&&r!==JZ.resolve(e))}});var LSe=b(XZ=>{var G2=require("path"),U0=process.platform==="win32",M0=require("fs"),vDt=process.env.NODE_DEBUG&&/fs/.test(process.env.NODE_DEBUG);function yDt(){var e;if(vDt){var t=new Error;e=r}else e=n;return e;function r(i){i&&(t.message=i.message,i=t,n(i))}function n(i){if(i){if(process.throwDeprecation)throw i;if(!process.noDeprecation){var a="fs: missing callback "+(i.stack||i.message);process.traceDeprecation?console.trace(a):console.error(a)}}}}function bDt(e){return typeof e=="function"?e:yDt()}var l$r=G2.normalize;U0?Xm=/(.*?)(?:[\/\\]+|$)/g:Xm=/(.*?)(?:[\/]+|$)/g;var Xm;U0?z9=/^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/:z9=/^[\/]*/;var z9;XZ.realpathSync=function(t,r){if(t=G2.resolve(t),r&&Object.prototype.hasOwnProperty.call(r,t))return r[t];var n=t,i={},a={},s,o,c,p;f();function f(){var _=z9.exec(t);s=_[0].length,o=_[0],c=_[0],p="",U0&&!a[c]&&(M0.lstatSync(c),a[c]=!0)}for(;s<t.length;){Xm.lastIndex=s;var d=Xm.exec(t);if(p=o,o+=d[0],c=p+d[1],s=Xm.lastIndex,!(a[c]||r&&r[c]===c)){var h;if(r&&Object.prototype.hasOwnProperty.call(r,c))h=r[c];else{var g=M0.lstatSync(c);if(!g.isSymbolicLink()){a[c]=!0,r&&(r[c]=c);continue}var v=null;if(!U0){var y=g.dev.toString(32)+":"+g.ino.toString(32);i.hasOwnProperty(y)&&(v=i[y])}v===null&&(M0.statSync(c),v=M0.readlinkSync(c)),h=G2.resolve(p,v),r&&(r[c]=h),U0||(i[y]=v)}t=G2.resolve(h,t.slice(s)),f()}}return r&&(r[n]=t),t};XZ.realpath=function(t,r,n){if(typeof n!="function"&&(n=bDt(r),r=null),t=G2.resolve(t),r&&Object.prototype.hasOwnProperty.call(r,t))return process.nextTick(n.bind(null,null,r[t]));var i=t,a={},s={},o,c,p,f;d();function d(){var _=z9.exec(t);o=_[0].length,c=_[0],p=_[0],f="",U0&&!s[p]?M0.lstat(p,function(x){if(x)return n(x);s[p]=!0,h()}):process.nextTick(h)}function h(){if(o>=t.length)return r&&(r[i]=t),n(null,t);Xm.lastIndex=o;var _=Xm.exec(t);return f=c,c+=_[0],p=f+_[1],o=Xm.lastIndex,s[p]||r&&r[p]===p?process.nextTick(h):r&&Object.prototype.hasOwnProperty.call(r,p)?y(r[p]):M0.lstat(p,g)}function g(_,x){if(_)return n(_);if(!x.isSymbolicLink())return s[p]=!0,r&&(r[p]=p),process.nextTick(h);if(!U0){var A=x.dev.toString(32)+":"+x.ino.toString(32);if(a.hasOwnProperty(A))return v(null,a[A],p)}M0.stat(p,function(D){if(D)return n(D);M0.readlink(p,function(j,H){U0||(a[A]=H),v(j,H)})})}function v(_,x,A){if(_)return n(_);var D=G2.resolve(f,x);r&&(r[A]=D),y(D)}function y(_){t=G2.resolve(_,t.slice(o)),d()}}});var tee=b((f$r,USe)=>{USe.exports=z0;z0.realpath=z0;z0.sync=eee;z0.realpathSync=eee;z0.monkeypatch=_Dt;z0.unmonkeypatch=xDt;var u6=require("fs"),QZ=u6.realpath,ZZ=u6.realpathSync,wDt=process.version,$Se=/^v[0-5]\./.test(wDt),BSe=LSe();function MSe(e){return e&&e.syscall==="realpath"&&(e.code==="ELOOP"||e.code==="ENOMEM"||e.code==="ENAMETOOLONG")}function z0(e,t,r){if($Se)return QZ(e,t,r);typeof t=="function"&&(r=t,t=null),QZ(e,t,function(n,i){MSe(n)?BSe.realpath(e,t,r):r(n,i)})}function eee(e,t){if($Se)return ZZ(e,t);try{return ZZ(e,t)}catch(r){if(MSe(r))return BSe.realpathSync(e,t);throw r}}function _Dt(){u6.realpath=z0,u6.realpathSync=eee}function xDt(){u6.realpath=QZ,u6.realpathSync=ZZ}});var HSe=b((d$r,zSe)=>{zSe.exports=function(e,t){for(var r=[],n=0;n<e.length;n++){var i=t(e[n],n);EDt(i)?r.push.apply(r,i):r.push(i)}return r};var EDt=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"}});var YSe=b((h$r,KSe)=>{"use strict";KSe.exports=GSe;function GSe(e,t,r){e instanceof RegExp&&(e=VSe(e,r)),t instanceof RegExp&&(t=VSe(t,r));var n=WSe(e,t,r);return n&&{start:n[0],end:n[1],pre:r.slice(0,n[0]),body:r.slice(n[0]+e.length,n[1]),post:r.slice(n[1]+t.length)}}function VSe(e,t){var r=t.match(e);return r?r[0]:null}GSe.range=WSe;function WSe(e,t,r){var n,i,a,s,o,c=r.indexOf(e),p=r.indexOf(t,c+1),f=c;if(c>=0&&p>0){if(e===t)return[c,p];for(n=[],a=r.length;f>=0&&!o;)f==c?(n.push(f),c=r.indexOf(e,f+1)):n.length==1?o=[n.pop(),p]:(i=n.pop(),i<a&&(a=i,s=p),p=r.indexOf(t,f+1)),f=c<p&&c>=0?c:p;n.length&&(o=[a,s])}return o}});var n7e=b((m$r,r7e)=>{var SDt=HSe(),JSe=YSe();r7e.exports=TDt;var XSe="\0SLASH"+Math.random()+"\0",QSe="\0OPEN"+Math.random()+"\0",nee="\0CLOSE"+Math.random()+"\0",ZSe="\0COMMA"+Math.random()+"\0",e7e="\0PERIOD"+Math.random()+"\0";function ree(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function kDt(e){return e.split("\\\\").join(XSe).split("\\{").join(QSe).split("\\}").join(nee).split("\\,").join(ZSe).split("\\.").join(e7e)}function ADt(e){return e.split(XSe).join("\\").split(QSe).join("{").split(nee).join("}").split(ZSe).join(",").split(e7e).join(".")}function t7e(e){if(!e)return[""];var t=[],r=JSe("{","}",e);if(!r)return e.split(",");var n=r.pre,i=r.body,a=r.post,s=n.split(",");s[s.length-1]+="{"+i+"}";var o=t7e(a);return a.length&&(s[s.length-1]+=o.shift(),s.push.apply(s,o)),t.push.apply(t,s),t}function TDt(e){return e?(e.substr(0,2)==="{}"&&(e="\\{\\}"+e.substr(2)),c6(kDt(e),!0).map(ADt)):[]}function ODt(e){return"{"+e+"}"}function DDt(e){return/^-?0\d/.test(e)}function CDt(e,t){return e<=t}function PDt(e,t){return e>=t}function c6(e,t){var r=[],n=JSe("{","}",e);if(!n||/\$$/.test(n.pre))return[e];var i=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(n.body),a=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(n.body),s=i||a,o=n.body.indexOf(",")>=0;if(!s&&!o)return n.post.match(/,(?!,).*\}/)?(e=n.pre+"{"+n.body+nee+n.post,c6(e)):[e];var c;if(s)c=n.body.split(/\.\./);else if(c=t7e(n.body),c.length===1&&(c=c6(c[0],!1).map(ODt),c.length===1)){var f=n.post.length?c6(n.post,!1):[""];return f.map(function(L){return n.pre+c[0]+L})}var p=n.pre,f=n.post.length?c6(n.post,!1):[""],d;if(s){var h=ree(c[0]),g=ree(c[1]),v=Math.max(c[0].length,c[1].length),y=c.length==3?Math.abs(ree(c[2])):1,_=CDt,x=g<h;x&&(y*=-1,_=PDt);var A=c.some(DDt);d=[];for(var D=h;_(D,g);D+=y){var j;if(a)j=String.fromCharCode(D),j==="\\"&&(j="");else if(j=String(D),A){var H=v-j.length;if(H>0){var F=new Array(H+1).join("0");D<0?j="-"+F+j.slice(1):j=F+j}}d.push(j)}}else d=SDt(c,function(K){return c6(K,!1)});for(var z=0;z<d.length;z++)for(var P=0;P<f.length;P++){var M=p+d[z]+f[P];(!t||s||M)&&r.push(M)}return r}});var kP=b((g$r,u7e)=>{u7e.exports=dl;dl.Minimatch=Ro;var H9=function(){try{return require("path")}catch{}}()||{sep:"/"};dl.sep=H9.sep;var see=dl.GLOBSTAR=Ro.GLOBSTAR={},IDt=n7e(),i7e={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},iee="[^/]",aee=iee+"*?",RDt="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",FDt="(?:(?!(?:\\/|^)\\.).)*?",a7e=jDt("().*{}+?[]^$\\!");function jDt(e){return e.split("").reduce(function(t,r){return t[r]=!0,t},{})}var s7e=/\/+/;dl.filter=NDt;function NDt(e,t){return t=t||{},function(r,n,i){return dl(r,e,t)}}function H0(e,t){t=t||{};var r={};return Object.keys(e).forEach(function(n){r[n]=e[n]}),Object.keys(t).forEach(function(n){r[n]=t[n]}),r}dl.defaults=function(e){if(!e||typeof e!="object"||!Object.keys(e).length)return dl;var t=dl,r=function(i,a,s){return t(i,a,H0(e,s))};return r.Minimatch=function(i,a){return new t.Minimatch(i,H0(e,a))},r.Minimatch.defaults=function(i){return t.defaults(H0(e,i)).Minimatch},r.filter=function(i,a){return t.filter(i,H0(e,a))},r.defaults=function(i){return t.defaults(H0(e,i))},r.makeRe=function(i,a){return t.makeRe(i,H0(e,a))},r.braceExpand=function(i,a){return t.braceExpand(i,H0(e,a))},r.match=function(n,i,a){return t.match(n,i,H0(e,a))},r};Ro.defaults=function(e){return dl.defaults(e).Minimatch};function dl(e,t,r){return SP(t),r||(r={}),!r.nocomment&&t.charAt(0)==="#"?!1:new Ro(t,r).match(e)}function Ro(e,t){if(!(this instanceof Ro))return new Ro(e,t);SP(e),t||(t={}),e=e.trim(),!t.allowWindowsEscape&&H9.sep!=="/"&&(e=e.split(H9.sep).join("/")),this.options=t,this.set=[],this.pattern=e,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.partial=!!t.partial,this.make()}Ro.prototype.debug=function(){};Ro.prototype.make=qDt;function qDt(){var e=this.pattern,t=this.options;if(!t.nocomment&&e.charAt(0)==="#"){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate();var r=this.globSet=this.braceExpand();t.debug&&(this.debug=function(){console.error.apply(console,arguments)}),this.debug(this.pattern,r),r=this.globParts=r.map(function(n){return n.split(s7e)}),this.debug(this.pattern,r),r=r.map(function(n,i,a){return n.map(this.parse,this)},this),this.debug(this.pattern,r),r=r.filter(function(n){return n.indexOf(!1)===-1}),this.debug(this.pattern,r),this.set=r}Ro.prototype.parseNegate=LDt;function LDt(){var e=this.pattern,t=!1,r=this.options,n=0;if(!r.nonegate){for(var i=0,a=e.length;i<a&&e.charAt(i)==="!";i++)t=!t,n++;n&&(this.pattern=e.substr(n)),this.negate=t}}dl.braceExpand=function(e,t){return o7e(e,t)};Ro.prototype.braceExpand=o7e;function o7e(e,t){return t||(this instanceof Ro?t=this.options:t={}),e=typeof e>"u"?this.pattern:e,SP(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:IDt(e)}var $Dt=1024*64,SP=function(e){if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>$Dt)throw new TypeError("pattern is too long")};Ro.prototype.parse=BDt;var EP={};function BDt(e,t){SP(e);var r=this.options;if(e==="**")if(r.noglobstar)e="*";else return see;if(e==="")return"";var n="",i=!!r.nocase,a=!1,s=[],o=[],c,p=!1,f=-1,d=-1,h=e.charAt(0)==="."?"":r.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",g=this;function v(){if(c){switch(c){case"*":n+=aee,i=!0;break;case"?":n+=iee,i=!0;break;default:n+="\\"+c;break}g.debug("clearStateChar %j %j",c,n),c=!1}}for(var y=0,_=e.length,x;y<_&&(x=e.charAt(y));y++){if(this.debug("%s	%s %s %j",e,y,n,x),a&&a7e[x]){n+="\\"+x,a=!1;continue}switch(x){case"/":return!1;case"\\":v(),a=!0;continue;case"?":case"*":case"+":case"@":case"!":if(this.debug("%s	%s %s %j <-- stateChar",e,y,n,x),p){this.debug("  in class"),x==="!"&&y===d+1&&(x="^"),n+=x;continue}g.debug("call clearStateChar %j",c),v(),c=x,r.noext&&v();continue;case"(":if(p){n+="(";continue}if(!c){n+="\\(";continue}s.push({type:c,start:y-1,reStart:n.length,open:i7e[c].open,close:i7e[c].close}),n+=c==="!"?"(?:(?!(?:":"(?:",this.debug("plType %j %j",c,n),c=!1;continue;case")":if(p||!s.length){n+="\\)";continue}v(),i=!0;var A=s.pop();n+=A.close,A.type==="!"&&o.push(A),A.reEnd=n.length;continue;case"|":if(p||!s.length||a){n+="\\|",a=!1;continue}v(),n+="|";continue;case"[":if(v(),p){n+="\\"+x;continue}p=!0,d=y,f=n.length,n+=x;continue;case"]":if(y===d+1||!p){n+="\\"+x,a=!1;continue}var D=e.substring(d+1,y);try{RegExp("["+D+"]")}catch{var j=this.parse(D,EP);n=n.substr(0,f)+"\\["+j[0]+"\\]",i=i||j[1],p=!1;continue}i=!0,p=!1,n+=x;continue;default:v(),a?a=!1:a7e[x]&&!(x==="^"&&p)&&(n+="\\"),n+=x}}for(p&&(D=e.substr(d+1),j=this.parse(D,EP),n=n.substr(0,f)+"\\["+j[0],i=i||j[1]),A=s.pop();A;A=s.pop()){var H=n.slice(A.reStart+A.open.length);this.debug("setting tail",n,A),H=H.replace(/((?:\\{2}){0,64})(\\?)\|/g,function(de,xe,ge){return ge||(ge="\\"),xe+xe+ge+"|"}),this.debug(`tail=%j
   %s`,H,H,A,n);var F=A.type==="*"?aee:A.type==="?"?iee:"\\"+A.type;i=!0,n=n.slice(0,A.reStart)+F+"\\("+H}v(),a&&(n+="\\\\");var z=!1;switch(n.charAt(0)){case"[":case".":case"(":z=!0}for(var P=o.length-1;P>-1;P--){var M=o[P],K=n.slice(0,M.reStart),L=n.slice(M.reStart,M.reEnd-8),ve=n.slice(M.reEnd-8,M.reEnd),U=n.slice(M.reEnd);ve+=U;var N=K.split("(").length-1,re=U;for(y=0;y<N;y++)re=re.replace(/\)[+*?]?/,"");U=re;var ue="";U===""&&t!==EP&&(ue="$");var Q=K+L+U+ue+ve;n=Q}if(n!==""&&i&&(n="(?=.)"+n),z&&(n=h+n),t===EP)return[n,i];if(!i)return UDt(e);var ne=r.nocase?"i":"";try{var G=new RegExp("^"+n+"$",ne)}catch{return new RegExp("$.")}return G._glob=e,G._src=n,G}dl.makeRe=function(e,t){return new Ro(e,t||{}).makeRe()};Ro.prototype.makeRe=MDt;function MDt(){if(this.regexp||this.regexp===!1)return this.regexp;var e=this.set;if(!e.length)return this.regexp=!1,this.regexp;var t=this.options,r=t.noglobstar?aee:t.dot?RDt:FDt,n=t.nocase?"i":"",i=e.map(function(a){return a.map(function(s){return s===see?r:typeof s=="string"?zDt(s):s._src}).join("\\/")}).join("|");i="^(?:"+i+")$",this.negate&&(i="^(?!"+i+").*$");try{this.regexp=new RegExp(i,n)}catch{this.regexp=!1}return this.regexp}dl.match=function(e,t,r){r=r||{};var n=new Ro(t,r);return e=e.filter(function(i){return n.match(i)}),n.options.nonull&&!e.length&&e.push(t),e};Ro.prototype.match=function(t,r){if(typeof r>"u"&&(r=this.partial),this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&r)return!0;var n=this.options;H9.sep!=="/"&&(t=t.split(H9.sep).join("/")),t=t.split(s7e),this.debug(this.pattern,"split",t);var i=this.set;this.debug(this.pattern,"set",i);var a,s;for(s=t.length-1;s>=0&&(a=t[s],!a);s--);for(s=0;s<i.length;s++){var o=i[s],c=t;n.matchBase&&o.length===1&&(c=[a]);var p=this.matchOne(c,o,r);if(p)return n.flipNegate?!0:!this.negate}return n.flipNegate?!1:this.negate};Ro.prototype.matchOne=function(e,t,r){var n=this.options;this.debug("matchOne",{this:this,file:e,pattern:t}),this.debug("matchOne",e.length,t.length);for(var i=0,a=0,s=e.length,o=t.length;i<s&&a<o;i++,a++){this.debug("matchOne loop");var c=t[a],p=e[i];if(this.debug(t,c,p),c===!1)return!1;if(c===see){this.debug("GLOBSTAR",[t,c,p]);var f=i,d=a+1;if(d===o){for(this.debug("** at the end");i<s;i++)if(e[i]==="."||e[i]===".."||!n.dot&&e[i].charAt(0)===".")return!1;return!0}for(;f<s;){var h=e[f];if(this.debug(`
globstar while`,e,f,t,d,h),this.matchOne(e.slice(f),t.slice(d),r))return this.debug("globstar found match!",f,s,h),!0;if(h==="."||h===".."||!n.dot&&h.charAt(0)==="."){this.debug("dot detected!",e,f,t,d);break}this.debug("globstar swallow a segment, and continue"),f++}return!!(r&&(this.debug(`
>>> no match, partial?`,e,f,t,d),f===s))}var g;if(typeof c=="string"?(g=p===c,this.debug("string match",c,p,g)):(g=p.match(c),this.debug("pattern match",c,p,g)),!g)return!1}if(i===s&&a===o)return!0;if(i===s)return r;if(a===o)return i===s-1&&e[i]==="";throw new Error("wtf?")};function UDt(e){return e.replace(/\\(.)/g,"$1")}function zDt(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}});var c7e=b((v$r,oee)=>{typeof Object.create=="function"?oee.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:oee.exports=function(t,r){if(r){t.super_=r;var n=function(){};n.prototype=r.prototype,t.prototype=new n,t.prototype.constructor=t}}});var l7e=b((y$r,cee)=>{try{if(uee=require("util"),typeof uee.inherits!="function")throw"";cee.exports=uee.inherits}catch{cee.exports=c7e()}var uee});var TP=b((b$r,AP)=>{"use strict";function p7e(e){return e.charAt(0)==="/"}function f7e(e){var t=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/,r=t.exec(e),n=r[1]||"",i=!!(n&&n.charAt(1)!==":");return!!(r[2]||i)}AP.exports=process.platform==="win32"?f7e:p7e;AP.exports.posix=p7e;AP.exports.win32=f7e});var pee=b(V0=>{V0.setopts=YDt;V0.ownProp=d7e;V0.makeAbs=V9;V0.finish=JDt;V0.mark=XDt;V0.isIgnored=m7e;V0.childrenIgnored=QDt;function d7e(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var HDt=require("fs"),l6=require("path"),VDt=kP(),h7e=TP(),lee=VDt.Minimatch;function GDt(e,t){return e.localeCompare(t,"en")}function WDt(e,t){e.ignore=t.ignore||[],Array.isArray(e.ignore)||(e.ignore=[e.ignore]),e.ignore.length&&(e.ignore=e.ignore.map(KDt))}function KDt(e){var t=null;if(e.slice(-3)==="/**"){var r=e.replace(/(\/\*\*)+$/,"");t=new lee(r,{dot:!0})}return{matcher:new lee(e,{dot:!0}),gmatcher:t}}function YDt(e,t,r){if(r||(r={}),r.matchBase&&t.indexOf("/")===-1){if(r.noglobstar)throw new Error("base matching requires globstar");t="**/"+t}e.silent=!!r.silent,e.pattern=t,e.strict=r.strict!==!1,e.realpath=!!r.realpath,e.realpathCache=r.realpathCache||Object.create(null),e.follow=!!r.follow,e.dot=!!r.dot,e.mark=!!r.mark,e.nodir=!!r.nodir,e.nodir&&(e.mark=!0),e.sync=!!r.sync,e.nounique=!!r.nounique,e.nonull=!!r.nonull,e.nosort=!!r.nosort,e.nocase=!!r.nocase,e.stat=!!r.stat,e.noprocess=!!r.noprocess,e.absolute=!!r.absolute,e.fs=r.fs||HDt,e.maxLength=r.maxLength||1/0,e.cache=r.cache||Object.create(null),e.statCache=r.statCache||Object.create(null),e.symlinks=r.symlinks||Object.create(null),WDt(e,r),e.changedCwd=!1;var n=process.cwd();d7e(r,"cwd")?(e.cwd=l6.resolve(r.cwd),e.changedCwd=e.cwd!==n):e.cwd=n,e.root=r.root||l6.resolve(e.cwd,"/"),e.root=l6.resolve(e.root),process.platform==="win32"&&(e.root=e.root.replace(/\\/g,"/")),e.cwdAbs=h7e(e.cwd)?e.cwd:V9(e,e.cwd),process.platform==="win32"&&(e.cwdAbs=e.cwdAbs.replace(/\\/g,"/")),e.nomount=!!r.nomount,r.nonegate=!0,r.nocomment=!0,e.minimatch=new lee(t,r),e.options=e.minimatch.options}function JDt(e){for(var t=e.nounique,r=t?[]:Object.create(null),n=0,i=e.matches.length;n<i;n++){var a=e.matches[n];if(!a||Object.keys(a).length===0){if(e.nonull){var s=e.minimatch.globSet[n];t?r.push(s):r[s]=!0}}else{var o=Object.keys(a);t?r.push.apply(r,o):o.forEach(function(c){r[c]=!0})}}if(t||(r=Object.keys(r)),e.nosort||(r=r.sort(GDt)),e.mark){for(var n=0;n<r.length;n++)r[n]=e._mark(r[n]);e.nodir&&(r=r.filter(function(c){var p=!/\/$/.test(c),f=e.cache[c]||e.cache[V9(e,c)];return p&&f&&(p=f!=="DIR"&&!Array.isArray(f)),p}))}e.ignore.length&&(r=r.filter(function(c){return!m7e(e,c)})),e.found=r}function XDt(e,t){var r=V9(e,t),n=e.cache[r],i=t;if(n){var a=n==="DIR"||Array.isArray(n),s=t.slice(-1)==="/";if(a&&!s?i+="/":!a&&s&&(i=i.slice(0,-1)),i!==t){var o=V9(e,i);e.statCache[o]=e.statCache[r],e.cache[o]=e.cache[r]}}return i}function V9(e,t){var r=t;return t.charAt(0)==="/"?r=l6.join(e.root,t):h7e(t)||t===""?r=t:e.changedCwd?r=l6.resolve(e.cwd,t):r=l6.resolve(t),process.platform==="win32"&&(r=r.replace(/\\/g,"/")),r}function m7e(e,t){return e.ignore.length?e.ignore.some(function(r){return r.matcher.match(t)||!!(r.gmatcher&&r.gmatcher.match(t))}):!1}function QDt(e,t){return e.ignore.length?e.ignore.some(function(r){return!!(r.gmatcher&&r.gmatcher.match(t))}):!1}});var w7e=b((S$r,b7e)=>{b7e.exports=y7e;y7e.GlobSync=zs;var ZDt=tee(),g7e=kP(),_$r=g7e.Minimatch,x$r=hee().Glob,E$r=require("util"),fee=require("path"),v7e=require("assert"),OP=TP(),W2=pee(),eCt=W2.setopts,dee=W2.ownProp,tCt=W2.childrenIgnored,rCt=W2.isIgnored;function y7e(e,t){if(typeof t=="function"||arguments.length===3)throw new TypeError(`callback provided to sync glob
See: https://github.com/isaacs/node-glob/issues/167`);return new zs(e,t).found}function zs(e,t){if(!e)throw new Error("must provide pattern");if(typeof t=="function"||arguments.length===3)throw new TypeError(`callback provided to sync glob
See: https://github.com/isaacs/node-glob/issues/167`);if(!(this instanceof zs))return new zs(e,t);if(eCt(this,e,t),this.noprocess)return this;var r=this.minimatch.set.length;this.matches=new Array(r);for(var n=0;n<r;n++)this._process(this.minimatch.set[n],n,!1);this._finish()}zs.prototype._finish=function(){if(v7e(this instanceof zs),this.realpath){var e=this;this.matches.forEach(function(t,r){var n=e.matches[r]=Object.create(null);for(var i in t)try{i=e._makeAbs(i);var a=ZDt.realpathSync(i,e.realpathCache);n[a]=!0}catch(s){if(s.syscall==="stat")n[e._makeAbs(i)]=!0;else throw s}})}W2.finish(this)};zs.prototype._process=function(e,t,r){v7e(this instanceof zs);for(var n=0;typeof e[n]=="string";)n++;var i;switch(n){case e.length:this._processSimple(e.join("/"),t);return;case 0:i=null;break;default:i=e.slice(0,n).join("/");break}var a=e.slice(n),s;i===null?s=".":((OP(i)||OP(e.join("/")))&&(!i||!OP(i))&&(i="/"+i),s=i);var o=this._makeAbs(s);if(!tCt(this,s)){var c=a[0]===g7e.GLOBSTAR;c?this._processGlobStar(i,s,o,a,t,r):this._processReaddir(i,s,o,a,t,r)}};zs.prototype._processReaddir=function(e,t,r,n,i,a){var s=this._readdir(r,a);if(s){for(var o=n[0],c=!!this.minimatch.negate,p=o._glob,f=this.dot||p.charAt(0)===".",d=[],h=0;h<s.length;h++){var g=s[h];if(g.charAt(0)!=="."||f){var v;c&&!e?v=!g.match(o):v=g.match(o),v&&d.push(g)}}var y=d.length;if(y!==0){if(n.length===1&&!this.mark&&!this.stat){this.matches[i]||(this.matches[i]=Object.create(null));for(var h=0;h<y;h++){var g=d[h];e&&(e.slice(-1)!=="/"?g=e+"/"+g:g=e+g),g.charAt(0)==="/"&&!this.nomount&&(g=fee.join(this.root,g)),this._emitMatch(i,g)}return}n.shift();for(var h=0;h<y;h++){var g=d[h],_;e?_=[e,g]:_=[g],this._process(_.concat(n),i,a)}}}};zs.prototype._emitMatch=function(e,t){if(!rCt(this,t)){var r=this._makeAbs(t);if(this.mark&&(t=this._mark(t)),this.absolute&&(t=r),!this.matches[e][t]){if(this.nodir){var n=this.cache[r];if(n==="DIR"||Array.isArray(n))return}this.matches[e][t]=!0,this.stat&&this._stat(t)}}};zs.prototype._readdirInGlobStar=function(e){if(this.follow)return this._readdir(e,!1);var t,r,n;try{r=this.fs.lstatSync(e)}catch(a){if(a.code==="ENOENT")return null}var i=r&&r.isSymbolicLink();return this.symlinks[e]=i,!i&&r&&!r.isDirectory()?this.cache[e]="FILE":t=this._readdir(e,!1),t};zs.prototype._readdir=function(e,t){var r;if(t&&!dee(this.symlinks,e))return this._readdirInGlobStar(e);if(dee(this.cache,e)){var n=this.cache[e];if(!n||n==="FILE")return null;if(Array.isArray(n))return n}try{return this._readdirEntries(e,this.fs.readdirSync(e))}catch(i){return this._readdirError(e,i),null}};zs.prototype._readdirEntries=function(e,t){if(!this.mark&&!this.stat)for(var r=0;r<t.length;r++){var n=t[r];e==="/"?n=e+n:n=e+"/"+n,this.cache[n]=!0}return this.cache[e]=t,t};zs.prototype._readdirError=function(e,t){switch(t.code){case"ENOTSUP":case"ENOTDIR":var r=this._makeAbs(e);if(this.cache[r]="FILE",r===this.cwdAbs){var n=new Error(t.code+" invalid cwd "+this.cwd);throw n.path=this.cwd,n.code=t.code,n}break;case"ENOENT":case"ELOOP":case"ENAMETOOLONG":case"UNKNOWN":this.cache[this._makeAbs(e)]=!1;break;default:if(this.cache[this._makeAbs(e)]=!1,this.strict)throw t;this.silent||console.error("glob error",t);break}};zs.prototype._processGlobStar=function(e,t,r,n,i,a){var s=this._readdir(r,a);if(s){var o=n.slice(1),c=e?[e]:[],p=c.concat(o);this._process(p,i,!1);var f=s.length,d=this.symlinks[r];if(!(d&&a))for(var h=0;h<f;h++){var g=s[h];if(!(g.charAt(0)==="."&&!this.dot)){var v=c.concat(s[h],o);this._process(v,i,!0);var y=c.concat(s[h],n);this._process(y,i,!0)}}}};zs.prototype._processSimple=function(e,t){var r=this._stat(e);if(this.matches[t]||(this.matches[t]=Object.create(null)),!!r){if(e&&OP(e)&&!this.nomount){var n=/[\/\\]$/.test(e);e.charAt(0)==="/"?e=fee.join(this.root,e):(e=fee.resolve(this.root,e),n&&(e+="/"))}process.platform==="win32"&&(e=e.replace(/\\/g,"/")),this._emitMatch(t,e)}};zs.prototype._stat=function(e){var t=this._makeAbs(e),r=e.slice(-1)==="/";if(e.length>this.maxLength)return!1;if(!this.stat&&dee(this.cache,t)){var s=this.cache[t];if(Array.isArray(s)&&(s="DIR"),!r||s==="DIR")return s;if(r&&s==="FILE")return!1}var n,i=this.statCache[t];if(!i){var a;try{a=this.fs.lstatSync(t)}catch(o){if(o&&(o.code==="ENOENT"||o.code==="ENOTDIR"))return this.statCache[t]=!1,!1}if(a&&a.isSymbolicLink())try{i=this.fs.statSync(t)}catch{i=a}else i=a}this.statCache[t]=i;var s=!0;return i&&(s=i.isDirectory()?"DIR":"FILE"),this.cache[t]=this.cache[t]||s,r&&s==="FILE"?!1:s};zs.prototype._mark=function(e){return W2.mark(this,e)};zs.prototype._makeAbs=function(e){return W2.makeAbs(this,e)}});var mee=b((k$r,x7e)=>{x7e.exports=_7e;function _7e(e,t){if(e&&t)return _7e(e)(t);if(typeof e!="function")throw new TypeError("need wrapper function");return Object.keys(e).forEach(function(n){r[n]=e[n]}),r;function r(){for(var n=new Array(arguments.length),i=0;i<n.length;i++)n[i]=arguments[i];var a=e.apply(this,n),s=n[n.length-1];return typeof a=="function"&&a!==s&&Object.keys(s).forEach(function(o){a[o]=s[o]}),a}}});var G9=b((A$r,gee)=>{var E7e=mee();gee.exports=E7e(DP);gee.exports.strict=E7e(S7e);DP.proto=DP(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return DP(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return S7e(this)},configurable:!0})});function DP(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function S7e(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},r=e.name||"Function wrapped with `once`";return t.onceError=r+" shouldn't be called more than once",t.called=!1,t}});var A7e=b((T$r,k7e)=>{var nCt=mee(),W9=Object.create(null),iCt=G9();k7e.exports=nCt(aCt);function aCt(e,t){return W9[e]?(W9[e].push(t),null):(W9[e]=[t],sCt(e))}function sCt(e){return iCt(function t(){var r=W9[e],n=r.length,i=oCt(arguments);try{for(var a=0;a<n;a++)r[a].apply(null,i)}finally{r.length>n?(r.splice(0,n),process.nextTick(function(){t.apply(null,i)})):delete W9[e]}})}function oCt(e){for(var t=e.length,r=[],n=0;n<t;n++)r[n]=e[n];return r}});var hee=b((C$r,O7e)=>{O7e.exports=K2;var uCt=tee(),T7e=kP(),O$r=T7e.Minimatch,cCt=l7e(),lCt=require("events").EventEmitter,vee=require("path"),yee=require("assert"),K9=TP(),wee=w7e(),Y2=pee(),pCt=Y2.setopts,bee=Y2.ownProp,_ee=A7e(),D$r=require("util"),fCt=Y2.childrenIgnored,dCt=Y2.isIgnored,hCt=G9();function K2(e,t,r){if(typeof t=="function"&&(r=t,t={}),t||(t={}),t.sync){if(r)throw new TypeError("callback provided to sync glob");return wee(e,t)}return new ei(e,t,r)}K2.sync=wee;var mCt=K2.GlobSync=wee.GlobSync;K2.glob=K2;function gCt(e,t){if(t===null||typeof t!="object")return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}K2.hasMagic=function(e,t){var r=gCt({},t);r.noprocess=!0;var n=new ei(e,r),i=n.minimatch.set;if(!e)return!1;if(i.length>1)return!0;for(var a=0;a<i[0].length;a++)if(typeof i[0][a]!="string")return!0;return!1};K2.Glob=ei;cCt(ei,lCt);function ei(e,t,r){if(typeof t=="function"&&(r=t,t=null),t&&t.sync){if(r)throw new TypeError("callback provided to sync glob");return new mCt(e,t)}if(!(this instanceof ei))return new ei(e,t,r);pCt(this,e,t),this._didRealPath=!1;var n=this.minimatch.set.length;this.matches=new Array(n),typeof r=="function"&&(r=hCt(r),this.on("error",r),this.on("end",function(c){r(null,c)}));var i=this;if(this._processing=0,this._emitQueue=[],this._processQueue=[],this.paused=!1,this.noprocess)return this;if(n===0)return o();for(var a=!0,s=0;s<n;s++)this._process(this.minimatch.set[s],s,!1,o);a=!1;function o(){--i._processing,i._processing<=0&&(a?process.nextTick(function(){i._finish()}):i._finish())}}ei.prototype._finish=function(){if(yee(this instanceof ei),!this.aborted){if(this.realpath&&!this._didRealpath)return this._realpath();Y2.finish(this),this.emit("end",this.found)}};ei.prototype._realpath=function(){if(this._didRealpath)return;this._didRealpath=!0;var e=this.matches.length;if(e===0)return this._finish();for(var t=this,r=0;r<this.matches.length;r++)this._realpathSet(r,n);function n(){--e===0&&t._finish()}};ei.prototype._realpathSet=function(e,t){var r=this.matches[e];if(!r)return t();var n=Object.keys(r),i=this,a=n.length;if(a===0)return t();var s=this.matches[e]=Object.create(null);n.forEach(function(o,c){o=i._makeAbs(o),uCt.realpath(o,i.realpathCache,function(p,f){p?p.syscall==="stat"?s[o]=!0:i.emit("error",p):s[f]=!0,--a===0&&(i.matches[e]=s,t())})})};ei.prototype._mark=function(e){return Y2.mark(this,e)};ei.prototype._makeAbs=function(e){return Y2.makeAbs(this,e)};ei.prototype.abort=function(){this.aborted=!0,this.emit("abort")};ei.prototype.pause=function(){this.paused||(this.paused=!0,this.emit("pause"))};ei.prototype.resume=function(){if(this.paused){if(this.emit("resume"),this.paused=!1,this._emitQueue.length){var e=this._emitQueue.slice(0);this._emitQueue.length=0;for(var t=0;t<e.length;t++){var r=e[t];this._emitMatch(r[0],r[1])}}if(this._processQueue.length){var n=this._processQueue.slice(0);this._processQueue.length=0;for(var t=0;t<n.length;t++){var i=n[t];this._processing--,this._process(i[0],i[1],i[2],i[3])}}}};ei.prototype._process=function(e,t,r,n){if(yee(this instanceof ei),yee(typeof n=="function"),!this.aborted){if(this._processing++,this.paused){this._processQueue.push([e,t,r,n]);return}for(var i=0;typeof e[i]=="string";)i++;var a;switch(i){case e.length:this._processSimple(e.join("/"),t,n);return;case 0:a=null;break;default:a=e.slice(0,i).join("/");break}var s=e.slice(i),o;a===null?o=".":((K9(a)||K9(e.join("/")))&&(!a||!K9(a))&&(a="/"+a),o=a);var c=this._makeAbs(o);if(fCt(this,o))return n();var p=s[0]===T7e.GLOBSTAR;p?this._processGlobStar(a,o,c,s,t,r,n):this._processReaddir(a,o,c,s,t,r,n)}};ei.prototype._processReaddir=function(e,t,r,n,i,a,s){var o=this;this._readdir(r,a,function(c,p){return o._processReaddir2(e,t,r,n,i,a,p,s)})};ei.prototype._processReaddir2=function(e,t,r,n,i,a,s,o){if(!s)return o();for(var c=n[0],p=!!this.minimatch.negate,f=c._glob,d=this.dot||f.charAt(0)===".",h=[],g=0;g<s.length;g++){var v=s[g];if(v.charAt(0)!=="."||d){var y;p&&!e?y=!v.match(c):y=v.match(c),y&&h.push(v)}}var _=h.length;if(_===0)return o();if(n.length===1&&!this.mark&&!this.stat){this.matches[i]||(this.matches[i]=Object.create(null));for(var g=0;g<_;g++){var v=h[g];e&&(e!=="/"?v=e+"/"+v:v=e+v),v.charAt(0)==="/"&&!this.nomount&&(v=vee.join(this.root,v)),this._emitMatch(i,v)}return o()}n.shift();for(var g=0;g<_;g++){var v=h[g],x;e&&(e!=="/"?v=e+"/"+v:v=e+v),this._process([v].concat(n),i,a,o)}o()};ei.prototype._emitMatch=function(e,t){if(!this.aborted&&!dCt(this,t)){if(this.paused){this._emitQueue.push([e,t]);return}var r=K9(t)?t:this._makeAbs(t);if(this.mark&&(t=this._mark(t)),this.absolute&&(t=r),!this.matches[e][t]){if(this.nodir){var n=this.cache[r];if(n==="DIR"||Array.isArray(n))return}this.matches[e][t]=!0;var i=this.statCache[r];i&&this.emit("stat",t,i),this.emit("match",t)}}};ei.prototype._readdirInGlobStar=function(e,t){if(this.aborted)return;if(this.follow)return this._readdir(e,!1,t);var r="lstat\0"+e,n=this,i=_ee(r,a);i&&n.fs.lstat(e,i);function a(s,o){if(s&&s.code==="ENOENT")return t();var c=o&&o.isSymbolicLink();n.symlinks[e]=c,!c&&o&&!o.isDirectory()?(n.cache[e]="FILE",t()):n._readdir(e,!1,t)}};ei.prototype._readdir=function(e,t,r){if(!this.aborted&&(r=_ee("readdir\0"+e+"\0"+t,r),!!r)){if(t&&!bee(this.symlinks,e))return this._readdirInGlobStar(e,r);if(bee(this.cache,e)){var n=this.cache[e];if(!n||n==="FILE")return r();if(Array.isArray(n))return r(null,n)}var i=this;i.fs.readdir(e,vCt(this,e,r))}};function vCt(e,t,r){return function(n,i){n?e._readdirError(t,n,r):e._readdirEntries(t,i,r)}}ei.prototype._readdirEntries=function(e,t,r){if(!this.aborted){if(!this.mark&&!this.stat)for(var n=0;n<t.length;n++){var i=t[n];e==="/"?i=e+i:i=e+"/"+i,this.cache[i]=!0}return this.cache[e]=t,r(null,t)}};ei.prototype._readdirError=function(e,t,r){if(!this.aborted){switch(t.code){case"ENOTSUP":case"ENOTDIR":var n=this._makeAbs(e);if(this.cache[n]="FILE",n===this.cwdAbs){var i=new Error(t.code+" invalid cwd "+this.cwd);i.path=this.cwd,i.code=t.code,this.emit("error",i),this.abort()}break;case"ENOENT":case"ELOOP":case"ENAMETOOLONG":case"UNKNOWN":this.cache[this._makeAbs(e)]=!1;break;default:this.cache[this._makeAbs(e)]=!1,this.strict&&(this.emit("error",t),this.abort()),this.silent||console.error("glob error",t);break}return r()}};ei.prototype._processGlobStar=function(e,t,r,n,i,a,s){var o=this;this._readdir(r,a,function(c,p){o._processGlobStar2(e,t,r,n,i,a,p,s)})};ei.prototype._processGlobStar2=function(e,t,r,n,i,a,s,o){if(!s)return o();var c=n.slice(1),p=e?[e]:[],f=p.concat(c);this._process(f,i,!1,o);var d=this.symlinks[r],h=s.length;if(d&&a)return o();for(var g=0;g<h;g++){var v=s[g];if(!(v.charAt(0)==="."&&!this.dot)){var y=p.concat(s[g],c);this._process(y,i,!0,o);var _=p.concat(s[g],n);this._process(_,i,!0,o)}}o()};ei.prototype._processSimple=function(e,t,r){var n=this;this._stat(e,function(i,a){n._processSimple2(e,t,i,a,r)})};ei.prototype._processSimple2=function(e,t,r,n,i){if(this.matches[t]||(this.matches[t]=Object.create(null)),!n)return i();if(e&&K9(e)&&!this.nomount){var a=/[\/\\]$/.test(e);e.charAt(0)==="/"?e=vee.join(this.root,e):(e=vee.resolve(this.root,e),a&&(e+="/"))}process.platform==="win32"&&(e=e.replace(/\\/g,"/")),this._emitMatch(t,e),i()};ei.prototype._stat=function(e,t){var r=this._makeAbs(e),n=e.slice(-1)==="/";if(e.length>this.maxLength)return t();if(!this.stat&&bee(this.cache,r)){var i=this.cache[r];if(Array.isArray(i)&&(i="DIR"),!n||i==="DIR")return t(null,i);if(n&&i==="FILE")return t()}var a,s=this.statCache[r];if(s!==void 0){if(s===!1)return t(null,s);var o=s.isDirectory()?"DIR":"FILE";return n&&o==="FILE"?t():t(null,o,s)}var c=this,p=_ee("stat\0"+r,f);p&&c.fs.lstat(r,p);function f(d,h){if(h&&h.isSymbolicLink())return c.fs.stat(r,function(g,v){g?c._stat2(e,r,null,h,t):c._stat2(e,r,g,v,t)});c._stat2(e,r,d,h,t)}};ei.prototype._stat2=function(e,t,r,n,i){if(r&&(r.code==="ENOENT"||r.code==="ENOTDIR"))return this.statCache[t]=!1,i();var a=e.slice(-1)==="/";if(this.statCache[t]=n,t.slice(-1)==="/"&&n&&!n.isDirectory())return i(null,!1,n);var s=!0;return n&&(s=n.isDirectory()?"DIR":"FILE"),this.cache[t]=this.cache[t]||s,a&&s==="FILE"?i():i(null,s,n)}});var N7e=b((P$r,j7e)=>{var Fi=require("assert"),I7e=require("path"),D7e=require("fs"),p6;try{p6=hee()}catch{}var yCt={nosort:!0,silent:!0},xee=0,Y9=process.platform==="win32",R7e=e=>{if(["unlink","chmod","stat","lstat","rmdir","readdir"].forEach(r=>{e[r]=e[r]||D7e[r],r=r+"Sync",e[r]=e[r]||D7e[r]}),e.maxBusyTries=e.maxBusyTries||3,e.emfileWait=e.emfileWait||1e3,e.glob===!1&&(e.disableGlob=!0),e.disableGlob!==!0&&p6===void 0)throw Error("glob dependency not found, set `options.disableGlob = true` if intentional");e.disableGlob=e.disableGlob||!1,e.glob=e.glob||yCt},See=(e,t,r)=>{typeof t=="function"&&(r=t,t={}),Fi(e,"rimraf: missing path"),Fi.equal(typeof e,"string","rimraf: path should be a string"),Fi.equal(typeof r,"function","rimraf: callback function required"),Fi(t,"rimraf: invalid options argument provided"),Fi.equal(typeof t,"object","rimraf: options should be object"),R7e(t);let n=0,i=null,a=0,s=c=>{i=i||c,--a===0&&r(i)},o=(c,p)=>{if(c)return r(c);if(a=p.length,a===0)return r();p.forEach(f=>{let d=h=>{if(h){if((h.code==="EBUSY"||h.code==="ENOTEMPTY"||h.code==="EPERM")&&n<t.maxBusyTries)return n++,setTimeout(()=>Eee(f,t,d),n*100);if(h.code==="EMFILE"&&xee<t.emfileWait)return setTimeout(()=>Eee(f,t,d),xee++);h.code==="ENOENT"&&(h=null)}xee=0,s(h)};Eee(f,t,d)})};if(t.disableGlob||!p6.hasMagic(e))return o(null,[e]);t.lstat(e,(c,p)=>{if(!c)return o(null,[e]);p6(e,t.glob,o)})},Eee=(e,t,r)=>{Fi(e),Fi(t),Fi(typeof r=="function"),t.lstat(e,(n,i)=>{if(n&&n.code==="ENOENT")return r(null);if(n&&n.code==="EPERM"&&Y9&&C7e(e,t,n,r),i&&i.isDirectory())return CP(e,t,n,r);t.unlink(e,a=>{if(a){if(a.code==="ENOENT")return r(null);if(a.code==="EPERM")return Y9?C7e(e,t,a,r):CP(e,t,a,r);if(a.code==="EISDIR")return CP(e,t,a,r)}return r(a)})})},C7e=(e,t,r,n)=>{Fi(e),Fi(t),Fi(typeof n=="function"),t.chmod(e,438,i=>{i?n(i.code==="ENOENT"?null:r):t.stat(e,(a,s)=>{a?n(a.code==="ENOENT"?null:r):s.isDirectory()?CP(e,t,r,n):t.unlink(e,n)})})},P7e=(e,t,r)=>{Fi(e),Fi(t);try{t.chmodSync(e,438)}catch(i){if(i.code==="ENOENT")return;throw r}let n;try{n=t.statSync(e)}catch(i){if(i.code==="ENOENT")return;throw r}n.isDirectory()?PP(e,t,r):t.unlinkSync(e)},CP=(e,t,r,n)=>{Fi(e),Fi(t),Fi(typeof n=="function"),t.rmdir(e,i=>{i&&(i.code==="ENOTEMPTY"||i.code==="EEXIST"||i.code==="EPERM")?bCt(e,t,n):i&&i.code==="ENOTDIR"?n(r):n(i)})},bCt=(e,t,r)=>{Fi(e),Fi(t),Fi(typeof r=="function"),t.readdir(e,(n,i)=>{if(n)return r(n);let a=i.length;if(a===0)return t.rmdir(e,r);let s;i.forEach(o=>{See(I7e.join(e,o),t,c=>{if(!s){if(c)return r(s=c);--a===0&&t.rmdir(e,r)}})})})},F7e=(e,t)=>{t=t||{},R7e(t),Fi(e,"rimraf: missing path"),Fi.equal(typeof e,"string","rimraf: path should be a string"),Fi(t,"rimraf: missing options"),Fi.equal(typeof t,"object","rimraf: options should be object");let r;if(t.disableGlob||!p6.hasMagic(e))r=[e];else try{t.lstatSync(e),r=[e]}catch{r=p6.sync(e,t.glob)}if(r.length)for(let n=0;n<r.length;n++){let i=r[n],a;try{a=t.lstatSync(i)}catch(s){if(s.code==="ENOENT")return;s.code==="EPERM"&&Y9&&P7e(i,t,s)}try{a&&a.isDirectory()?PP(i,t,null):t.unlinkSync(i)}catch(s){if(s.code==="ENOENT")return;if(s.code==="EPERM")return Y9?P7e(i,t,s):PP(i,t,s);if(s.code!=="EISDIR")throw s;PP(i,t,s)}}},PP=(e,t,r)=>{Fi(e),Fi(t);try{t.rmdirSync(e)}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR")throw r;(n.code==="ENOTEMPTY"||n.code==="EEXIST"||n.code==="EPERM")&&wCt(e,t)}},wCt=(e,t)=>{Fi(e),Fi(t),t.readdirSync(e).forEach(i=>F7e(I7e.join(e,i),t));let r=Y9?100:1,n=0;do{let i=!0;try{let a=t.rmdirSync(e,t);return i=!1,a}finally{if(++n<r&&i)continue}}while(!0)};j7e.exports=See;See.sync=F7e});var L7e=b((I$r,q7e)=>{"use strict";q7e.exports=(e,t=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof t!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var U7e=b((R$r,M7e)=>{"use strict";var $7e=require("os"),B7e=/\s+at.*(?:\(|\s)(.*)\)?/,_Ct=/^(?:(?:(?:node|(?:internal\/[\w/]*|.*node_modules\/(?:babel-polyfill|pirates)\/.*)?\w+)\.js:\d+:\d+)|native)/,xCt=typeof $7e.homedir>"u"?"":$7e.homedir();M7e.exports=(e,t)=>(t=Object.assign({pretty:!1},t),e.replace(/\\/g,"/").split(`
`).filter(r=>{let n=r.match(B7e);if(n===null||!n[1])return!0;let i=n[1];return i.includes(".app/Contents/Resources/electron.asar")||i.includes(".app/Contents/Resources/default_app.asar")?!1:!_Ct.test(i)}).filter(r=>r.trim()!=="").map(r=>t.pretty?r.replace(B7e,(n,i)=>n.replace(i,i.replace(xCt,"~"))):r).join(`
`))});var Aee=b((F$r,z7e)=>{"use strict";var ECt=L7e(),SCt=U7e(),kCt=e=>e.replace(/\s+at .*aggregate-error\/index.js:\d+:\d+\)?/g,""),kee=class extends Error{constructor(t){if(!Array.isArray(t))throw new TypeError(`Expected input to be an Array, got ${typeof t}`);t=[...t].map(n=>n instanceof Error?n:n!==null&&typeof n=="object"?Object.assign(new Error(n.message),n):new Error(n));let r=t.map(n=>typeof n.stack=="string"?kCt(SCt(n.stack)):String(n)).join(`
`);r=`
`+ECt(r,4),super(r),this.name="AggregateError",Object.defineProperty(this,"_errors",{value:t})}*[Symbol.iterator](){for(let t of this._errors)yield t}};z7e.exports=kee});var V7e=b((j$r,H7e)=>{"use strict";var ACt=Aee();H7e.exports=async(e,t,{concurrency:r=1/0,stopOnError:n=!0}={})=>new Promise((i,a)=>{if(typeof t!="function")throw new TypeError("Mapper function is required");if(!((Number.isSafeInteger(r)||r===1/0)&&r>=1))throw new TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${r}\` (${typeof r})`);let s=[],o=[],c=e[Symbol.iterator](),p=!1,f=!1,d=0,h=0,g=()=>{if(p)return;let v=c.next(),y=h;if(h++,v.done){f=!0,d===0&&(!n&&o.length!==0?a(new ACt(o)):i(s));return}d++,(async()=>{try{let _=await v.value;s[y]=await t(_,y),d--,g()}catch(_){n?(p=!0,a(_)):(o.push(_),d--,g())}})()};for(let v=0;v<r&&(g(),!f);v++);})});var Q7e=b((N$r,Tee)=>{"use strict";var{promisify:TCt}=require("util"),G7e=require("path"),W7e=RSe(),OCt=ZX(),DCt=zZ(),$l=Zs(),CCt=jSe(),PCt=qSe(),K7e=N7e(),ICt=V7e(),RCt=TCt(K7e),Y7e={glob:!1,unlink:$l.unlink,unlinkSync:$l.unlinkSync,chmod:$l.chmod,chmodSync:$l.chmodSync,stat:$l.stat,statSync:$l.statSync,lstat:$l.lstat,lstatSync:$l.lstatSync,rmdir:$l.rmdir,rmdirSync:$l.rmdirSync,readdir:$l.readdir,readdirSync:$l.readdirSync};function J7e(e,t){if(CCt(e))throw new Error("Cannot delete the current working directory. Can be overridden with the `force` option.");if(!PCt(e,t))throw new Error("Cannot delete files/directories outside the current working directory. Can be overridden with the `force` option.")}function X7e(e){return e=Array.isArray(e)?e:[e],e=e.map(t=>process.platform==="win32"&&OCt(t)===!1?DCt(t):t),e}Tee.exports=async(e,{force:t,dryRun:r,cwd:n=process.cwd(),onProgress:i=()=>{},...a}={})=>{a={expandDirectories:!1,onlyFiles:!1,followSymbolicLinks:!1,cwd:n,...a},e=X7e(e);let s=(await W7e(e,a)).sort((f,d)=>d.localeCompare(f));s.length===0&&i({totalCount:0,deletedCount:0,percent:1});let o=0,p=await ICt(s,async f=>(f=G7e.resolve(n,f),t||J7e(f,n),r||await RCt(f,Y7e),o+=1,i({totalCount:s.length,deletedCount:o,percent:o/s.length}),f),a);return p.sort((f,d)=>f.localeCompare(d)),p};Tee.exports.sync=(e,{force:t,dryRun:r,cwd:n=process.cwd(),...i}={})=>{i={expandDirectories:!1,onlyFiles:!1,followSymbolicLinks:!1,cwd:n,...i},e=X7e(e);let s=W7e.sync(e,i).sort((o,c)=>c.localeCompare(o)).map(o=>(o=G7e.resolve(n,o),t||J7e(o,n),r||K7e.sync(o,Y7e),o));return s.sort((o,c)=>o.localeCompare(c)),s}});var nke=b((q$r,rke)=>{rke.exports=tke;tke.sync=jCt;var Z7e=require("fs");function FCt(e,t){var r=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n<r.length;n++){var i=r[n].toLowerCase();if(i&&e.substr(-i.length).toLowerCase()===i)return!0}return!1}function eke(e,t,r){return!e.isSymbolicLink()&&!e.isFile()?!1:FCt(t,r)}function tke(e,t,r){Z7e.stat(e,function(n,i){r(n,n?!1:eke(i,e,t))})}function jCt(e,t){return eke(Z7e.statSync(e),e,t)}});var uke=b((L$r,oke)=>{oke.exports=ake;ake.sync=NCt;var ike=require("fs");function ake(e,t,r){ike.stat(e,function(n,i){r(n,n?!1:ske(i,t))})}function NCt(e,t){return ske(ike.statSync(e),t)}function ske(e,t){return e.isFile()&&qCt(e,t)}function qCt(e,t){var r=e.mode,n=e.uid,i=e.gid,a=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),s=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),o=parseInt("100",8),c=parseInt("010",8),p=parseInt("001",8),f=o|c,d=r&p||r&c&&i===s||r&o&&n===a||r&f&&a===0;return d}});var lke=b((B$r,cke)=>{var $$r=require("fs"),IP;process.platform==="win32"||global.TESTING_WINDOWS?IP=nke():IP=uke();cke.exports=Oee;Oee.sync=LCt;function Oee(e,t,r){if(typeof t=="function"&&(r=t,t={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,i){Oee(e,t||{},function(a,s){a?i(a):n(s)})})}IP(e,t||{},function(n,i){n&&(n.code==="EACCES"||t&&t.ignoreErrors)&&(n=null,i=!1),r(n,i)})}function LCt(e,t){try{return IP.sync(e,t||{})}catch(r){if(t&&t.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var vke=b((M$r,gke)=>{var f6=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",pke=require("path"),$Ct=f6?";":":",fke=lke(),dke=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),hke=(e,t)=>{let r=t.colon||$Ct,n=e.match(/\//)||f6&&e.match(/\\/)?[""]:[...f6?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],i=f6?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",a=f6?i.split(r):[""];return f6&&e.indexOf(".")!==-1&&a[0]!==""&&a.unshift(""),{pathEnv:n,pathExt:a,pathExtExe:i}},mke=(e,t,r)=>{typeof t=="function"&&(r=t,t={}),t||(t={});let{pathEnv:n,pathExt:i,pathExtExe:a}=hke(e,t),s=[],o=p=>new Promise((f,d)=>{if(p===n.length)return t.all&&s.length?f(s):d(dke(e));let h=n[p],g=/^".*"$/.test(h)?h.slice(1,-1):h,v=pke.join(g,e),y=!g&&/^\.[\\\/]/.test(e)?e.slice(0,2)+v:v;f(c(y,p,0))}),c=(p,f,d)=>new Promise((h,g)=>{if(d===i.length)return h(o(f+1));let v=i[d];fke(p+v,{pathExt:a},(y,_)=>{if(!y&&_)if(t.all)s.push(p+v);else return h(p+v);return h(c(p,f,d+1))})});return r?o(0).then(p=>r(null,p),r):o(0)},BCt=(e,t)=>{t=t||{};let{pathEnv:r,pathExt:n,pathExtExe:i}=hke(e,t),a=[];for(let s=0;s<r.length;s++){let o=r[s],c=/^".*"$/.test(o)?o.slice(1,-1):o,p=pke.join(c,e),f=!c&&/^\.[\\\/]/.test(e)?e.slice(0,2)+p:p;for(let d=0;d<n.length;d++){let h=f+n[d];try{if(fke.sync(h,{pathExt:i}))if(t.all)a.push(h);else return h}catch{}}}if(t.all&&a.length)return a;if(t.nothrow)return null;throw dke(e)};gke.exports=mke;mke.sync=BCt});var Cee=b((U$r,Dee)=>{"use strict";var yke=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Dee.exports=yke;Dee.exports.default=yke});var xke=b((z$r,_ke)=>{"use strict";var bke=require("path"),MCt=vke(),UCt=Cee();function wke(e,t){let r=e.options.env||process.env,n=process.cwd(),i=e.options.cwd!=null,a=i&&process.chdir!==void 0&&!process.chdir.disabled;if(a)try{process.chdir(e.options.cwd)}catch{}let s;try{s=MCt.sync(e.command,{path:r[UCt({env:r})],pathExt:t?bke.delimiter:void 0})}catch{}finally{a&&process.chdir(n)}return s&&(s=bke.resolve(i?e.options.cwd:"",s)),s}function zCt(e){return wke(e)||wke(e,!0)}_ke.exports=zCt});var Eke=b((H$r,Iee)=>{"use strict";var Pee=/([()\][%!^"`<>&|;, *?])/g;function HCt(e){return e=e.replace(Pee,"^$1"),e}function VCt(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(Pee,"^$1"),t&&(e=e.replace(Pee,"^$1")),e}Iee.exports.command=HCt;Iee.exports.argument=VCt});var kke=b((V$r,Ske)=>{"use strict";Ske.exports=/^#!(.*)/});var Tke=b((G$r,Ake)=>{"use strict";var GCt=kke();Ake.exports=(e="")=>{let t=e.match(GCt);if(!t)return null;let[r,n]=t[0].replace(/#! ?/,"").split(" "),i=r.split("/").pop();return i==="env"?n:n?`${i} ${n}`:i}});var Dke=b((W$r,Oke)=>{"use strict";var Ree=require("fs"),WCt=Tke();function KCt(e){let r=Buffer.alloc(150),n;try{n=Ree.openSync(e,"r"),Ree.readSync(n,r,0,150,0),Ree.closeSync(n)}catch{}return WCt(r.toString())}Oke.exports=KCt});var Rke=b((K$r,Ike)=>{"use strict";var YCt=require("path"),Cke=xke(),Pke=Eke(),JCt=Dke(),XCt=process.platform==="win32",QCt=/\.(?:com|exe)$/i,ZCt=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function ePt(e){e.file=Cke(e);let t=e.file&&JCt(e.file);return t?(e.args.unshift(e.file),e.command=t,Cke(e)):e.file}function tPt(e){if(!XCt)return e;let t=ePt(e),r=!QCt.test(t);if(e.options.forceShell||r){let n=ZCt.test(t);e.command=YCt.normalize(e.command),e.command=Pke.command(e.command),e.args=e.args.map(a=>Pke.argument(a,n));let i=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${i}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function rPt(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null),t=t?t.slice(0):[],r=Object.assign({},r);let n={command:e,args:t,options:r,file:void 0,original:{command:e,args:t}};return r.shell?n:tPt(n)}Ike.exports=rPt});var Nke=b((Y$r,jke)=>{"use strict";var Fee=process.platform==="win32";function jee(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function nPt(e,t){if(!Fee)return;let r=e.emit;e.emit=function(n,i){if(n==="exit"){let a=Fke(i,t);if(a)return r.call(e,"error",a)}return r.apply(e,arguments)}}function Fke(e,t){return Fee&&e===1&&!t.file?jee(t.original,"spawn"):null}function iPt(e,t){return Fee&&e===1&&!t.file?jee(t.original,"spawnSync"):null}jke.exports={hookChildProcess:nPt,verifyENOENT:Fke,verifyENOENTSync:iPt,notFoundError:jee}});var $ke=b((J$r,d6)=>{"use strict";var qke=require("child_process"),Nee=Rke(),qee=Nke();function Lke(e,t,r){let n=Nee(e,t,r),i=qke.spawn(n.command,n.args,n.options);return qee.hookChildProcess(i,n),i}function aPt(e,t,r){let n=Nee(e,t,r),i=qke.spawnSync(n.command,n.args,n.options);return i.error=i.error||qee.verifyENOENTSync(i.status,n),i}d6.exports=Lke;d6.exports.spawn=Lke;d6.exports.sync=aPt;d6.exports._parse=Nee;d6.exports._enoent=qee});var Mke=b((X$r,Bke)=>{"use strict";Bke.exports=e=>{let t=typeof e=="string"?`
`:`
`.charCodeAt(),r=typeof e=="string"?"\r":"\r".charCodeAt();return e[e.length-1]===t&&(e=e.slice(0,e.length-1)),e[e.length-1]===r&&(e=e.slice(0,e.length-1)),e}});var Hke=b((Q$r,X9)=>{"use strict";var J9=require("path"),Uke=Cee(),zke=e=>{e={cwd:process.cwd(),path:process.env[Uke()],execPath:process.execPath,...e};let t,r=J9.resolve(e.cwd),n=[];for(;t!==r;)n.push(J9.join(r,"node_modules/.bin")),t=r,r=J9.resolve(r,"..");let i=J9.resolve(e.cwd,e.execPath,"..");return n.push(i),n.concat(e.path).join(J9.delimiter)};X9.exports=zke;X9.exports.default=zke;X9.exports.env=e=>{e={env:process.env,...e};let t={...e.env},r=Uke({env:t});return e.path=t[r],t[r]=X9.exports(e),t}});var $ee=b((Z$r,Lee)=>{"use strict";var Vke=(e,t)=>{for(let r of Reflect.ownKeys(t))Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));return e};Lee.exports=Vke;Lee.exports.default=Vke});var jP=b((eBr,FP)=>{"use strict";var sPt=$ee(),RP=new WeakMap,Gke=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let r,n=0,i=e.displayName||e.name||"<anonymous>",a=function(...s){if(RP.set(a,++n),n===1)r=e.apply(this,s),e=null;else if(t.throw===!0)throw new Error(`Function \`${i}\` can only be called once`);return r};return sPt(a,e),RP.set(a,n),a};FP.exports=Gke;FP.exports.default=Gke;FP.exports.callCount=e=>{if(!RP.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return RP.get(e)}});var Wke=b(NP=>{"use strict";Object.defineProperty(NP,"__esModule",{value:!0});NP.SIGNALS=void 0;var oPt=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}];NP.SIGNALS=oPt});var Bee=b(h6=>{"use strict";Object.defineProperty(h6,"__esModule",{value:!0});h6.SIGRTMAX=h6.getRealtimeSignals=void 0;var uPt=function(){let e=Yke-Kke+1;return Array.from({length:e},cPt)};h6.getRealtimeSignals=uPt;var cPt=function(e,t){return{name:`SIGRT${t+1}`,number:Kke+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}},Kke=34,Yke=64;h6.SIGRTMAX=Yke});var Jke=b(qP=>{"use strict";Object.defineProperty(qP,"__esModule",{value:!0});qP.getSignals=void 0;var lPt=require("os"),pPt=Wke(),fPt=Bee(),dPt=function(){let e=(0,fPt.getRealtimeSignals)();return[...pPt.SIGNALS,...e].map(hPt)};qP.getSignals=dPt;var hPt=function({name:e,number:t,description:r,action:n,forced:i=!1,standard:a}){let{signals:{[e]:s}}=lPt.constants,o=s!==void 0;return{name:e,number:o?s:t,description:r,supported:o,action:n,forced:i,standard:a}}});var Qke=b(m6=>{"use strict";Object.defineProperty(m6,"__esModule",{value:!0});m6.signalsByNumber=m6.signalsByName=void 0;var mPt=require("os"),Xke=Jke(),gPt=Bee(),vPt=function(){return(0,Xke.getSignals)().reduce(yPt,{})},yPt=function(e,{name:t,number:r,description:n,supported:i,action:a,forced:s,standard:o}){return{...e,[t]:{name:t,number:r,description:n,supported:i,action:a,forced:s,standard:o}}},bPt=vPt();m6.signalsByName=bPt;var wPt=function(){let e=(0,Xke.getSignals)(),t=gPt.SIGRTMAX+1,r=Array.from({length:t},(n,i)=>_Pt(i,e));return Object.assign({},...r)},_Pt=function(e,t){let r=xPt(e,t);if(r===void 0)return{};let{name:n,description:i,supported:a,action:s,forced:o,standard:c}=r;return{[e]:{name:n,number:e,description:i,supported:a,action:s,forced:o,standard:c}}},xPt=function(e,t){let r=t.find(({name:n})=>mPt.constants.signals[n]===e);return r!==void 0?r:t.find(n=>n.number===e)},EPt=wPt();m6.signalsByNumber=EPt});var eAe=b((aBr,Zke)=>{"use strict";var{signalsByName:SPt}=Qke(),kPt=({timedOut:e,timeout:t,errorCode:r,signal:n,signalDescription:i,exitCode:a,isCanceled:s})=>e?`timed out after ${t} milliseconds`:s?"was canceled":r!==void 0?`failed with ${r}`:n!==void 0?`was killed with ${n} (${i})`:a!==void 0?`failed with exit code ${a}`:"failed",APt=({stdout:e,stderr:t,all:r,error:n,signal:i,exitCode:a,command:s,escapedCommand:o,timedOut:c,isCanceled:p,killed:f,parsed:{options:{timeout:d}}})=>{a=a===null?void 0:a,i=i===null?void 0:i;let h=i===void 0?void 0:SPt[i].description,g=n&&n.code,y=`Command ${kPt({timedOut:c,timeout:d,errorCode:g,signal:i,signalDescription:h,exitCode:a,isCanceled:p})}: ${s}`,_=Object.prototype.toString.call(n)==="[object Error]",x=_?`${y}
${n.message}`:y,A=[x,t,e].filter(Boolean).join(`
`);return _?(n.originalMessage=n.message,n.message=A):n=new Error(A),n.shortMessage=x,n.command=s,n.escapedCommand=o,n.exitCode=a,n.signal=i,n.signalDescription=h,n.stdout=e,n.stderr=t,r!==void 0&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!c,n.isCanceled=p,n.killed=f&&!c,n};Zke.exports=APt});var rAe=b((sBr,Mee)=>{"use strict";var LP=["stdin","stdout","stderr"],TPt=e=>LP.some(t=>e[t]!==void 0),tAe=e=>{if(!e)return;let{stdio:t}=e;if(t===void 0)return LP.map(n=>e[n]);if(TPt(e))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${LP.map(n=>`\`${n}\``).join(", ")}`);if(typeof t=="string")return t;if(!Array.isArray(t))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);let r=Math.max(t.length,LP.length);return Array.from({length:r},(n,i)=>t[i])};Mee.exports=tAe;Mee.exports.node=e=>{let t=tAe(e);return t==="ipc"?"ipc":t===void 0||typeof t=="string"?[t,t,t,"ipc"]:t.includes("ipc")?t:[...t,"ipc"]}});var nAe=b((oBr,$P)=>{$P.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&$P.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&$P.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var zP=b((uBr,y6)=>{var _a=global.process,J2=function(e){return e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function"};J2(_a)?(iAe=require("assert"),g6=nAe(),aAe=/^win/i.test(_a.platform),Q9=require("events"),typeof Q9!="function"&&(Q9=Q9.EventEmitter),_a.__signal_exit_emitter__?io=_a.__signal_exit_emitter__:(io=_a.__signal_exit_emitter__=new Q9,io.count=0,io.emitted={}),io.infinite||(io.setMaxListeners(1/0),io.infinite=!0),y6.exports=function(e,t){if(!J2(global.process))return function(){};iAe.equal(typeof e,"function","a callback must be provided for exit handler"),v6===!1&&Uee();var r="exit";t&&t.alwaysLast&&(r="afterexit");var n=function(){io.removeListener(r,e),io.listeners("exit").length===0&&io.listeners("afterexit").length===0&&BP()};return io.on(r,e),n},BP=function(){!v6||!J2(global.process)||(v6=!1,g6.forEach(function(t){try{_a.removeListener(t,MP[t])}catch{}}),_a.emit=UP,_a.reallyExit=zee,io.count-=1)},y6.exports.unload=BP,X2=function(t,r,n){io.emitted[t]||(io.emitted[t]=!0,io.emit(t,r,n))},MP={},g6.forEach(function(e){MP[e]=function(){if(J2(global.process)){var r=_a.listeners(e);r.length===io.count&&(BP(),X2("exit",null,e),X2("afterexit",null,e),aAe&&e==="SIGHUP"&&(e="SIGINT"),_a.kill(_a.pid,e))}}}),y6.exports.signals=function(){return g6},v6=!1,Uee=function(){v6||!J2(global.process)||(v6=!0,io.count+=1,g6=g6.filter(function(t){try{return _a.on(t,MP[t]),!0}catch{return!1}}),_a.emit=oAe,_a.reallyExit=sAe)},y6.exports.load=Uee,zee=_a.reallyExit,sAe=function(t){J2(global.process)&&(_a.exitCode=t||0,X2("exit",_a.exitCode,null),X2("afterexit",_a.exitCode,null),zee.call(_a,_a.exitCode))},UP=_a.emit,oAe=function(t,r){if(t==="exit"&&J2(global.process)){r!==void 0&&(_a.exitCode=r);var n=UP.apply(this,arguments);return X2("exit",_a.exitCode,null),X2("afterexit",_a.exitCode,null),n}else return UP.apply(this,arguments)}):y6.exports=function(){return function(){}};var iAe,g6,aAe,Q9,io,BP,X2,MP,v6,Uee,zee,sAe,UP,oAe});var cAe=b((cBr,uAe)=>{"use strict";var OPt=require("os"),DPt=zP(),CPt=1e3*5,PPt=(e,t="SIGTERM",r={})=>{let n=e(t);return IPt(e,t,r,n),n},IPt=(e,t,r,n)=>{if(!RPt(t,r,n))return;let i=jPt(r),a=setTimeout(()=>{e("SIGKILL")},i);a.unref&&a.unref()},RPt=(e,{forceKillAfterTimeout:t},r)=>FPt(e)&&t!==!1&&r,FPt=e=>e===OPt.constants.signals.SIGTERM||typeof e=="string"&&e.toUpperCase()==="SIGTERM",jPt=({forceKillAfterTimeout:e=!0})=>{if(e===!0)return CPt;if(!Number.isFinite(e)||e<0)throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e},NPt=(e,t)=>{e.kill()&&(t.isCanceled=!0)},qPt=(e,t,r)=>{e.kill(t),r(Object.assign(new Error("Timed out"),{timedOut:!0,signal:t}))},LPt=(e,{timeout:t,killSignal:r="SIGTERM"},n)=>{if(t===0||t===void 0)return n;let i,a=new Promise((o,c)=>{i=setTimeout(()=>{qPt(e,r,c)},t)}),s=n.finally(()=>{clearTimeout(i)});return Promise.race([a,s])},$Pt=({timeout:e})=>{if(e!==void 0&&(!Number.isFinite(e)||e<0))throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`)},BPt=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let i=DPt(()=>{e.kill()});return n.finally(()=>{i()})};uAe.exports={spawnedKill:PPt,spawnedCancel:NPt,setupTimeout:LPt,validateTimeout:$Pt,setExitHandler:BPt}});var Hee=b((lBr,lAe)=>{"use strict";var Td=e=>e!==null&&typeof e=="object"&&typeof e.pipe=="function";Td.writable=e=>Td(e)&&e.writable!==!1&&typeof e._write=="function"&&typeof e._writableState=="object";Td.readable=e=>Td(e)&&e.readable!==!1&&typeof e._read=="function"&&typeof e._readableState=="object";Td.duplex=e=>Td.writable(e)&&Td.readable(e);Td.transform=e=>Td.duplex(e)&&typeof e._transform=="function";lAe.exports=Td});var fAe=b((pBr,pAe)=>{"use strict";var{PassThrough:MPt}=require("stream");pAe.exports=e=>{e={...e};let{array:t}=e,{encoding:r}=e,n=r==="buffer",i=!1;t?i=!(r||n):r=r||"utf8",n&&(r=null);let a=new MPt({objectMode:i});r&&a.setEncoding(r);let s=0,o=[];return a.on("data",c=>{o.push(c),i?s=o.length:s+=c.length}),a.getBufferedValue=()=>t?o:n?Buffer.concat(o,s):o.join(""),a.getBufferedLength=()=>s,a}});var dAe=b((fBr,Z9)=>{"use strict";var{constants:UPt}=require("buffer"),zPt=require("stream"),{promisify:HPt}=require("util"),VPt=fAe(),GPt=HPt(zPt.pipeline),HP=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Vee(e,t){if(!e)throw new Error("Expected a stream");t={maxBuffer:1/0,...t};let{maxBuffer:r}=t,n=VPt(t);return await new Promise((i,a)=>{let s=o=>{o&&n.getBufferedLength()<=UPt.MAX_LENGTH&&(o.bufferedData=n.getBufferedValue()),a(o)};(async()=>{try{await GPt(e,n),i()}catch(o){s(o)}})(),n.on("data",()=>{n.getBufferedLength()>r&&s(new HP)})}),n.getBufferedValue()}Z9.exports=Vee;Z9.exports.buffer=(e,t)=>Vee(e,{...t,encoding:"buffer"});Z9.exports.array=(e,t)=>Vee(e,{...t,array:!0});Z9.exports.MaxBufferError=HP});var mAe=b((dBr,hAe)=>{"use strict";var{PassThrough:WPt}=require("stream");hAe.exports=function(){var e=[],t=new WPt({objectMode:!0});return t.setMaxListeners(0),t.add=r,t.isEmpty=n,t.on("unpipe",i),Array.prototype.slice.call(arguments).forEach(r),t;function r(a){return Array.isArray(a)?(a.forEach(r),this):(e.push(a),a.once("end",i.bind(null,a)),a.once("error",t.emit.bind(t,"error")),a.pipe(t,{end:!1}),this)}function n(){return e.length==0}function i(a){e=e.filter(function(s){return s!==a}),!e.length&&t.readable&&t.end()}}});var bAe=b((hBr,yAe)=>{"use strict";var vAe=Hee(),gAe=dAe(),KPt=mAe(),YPt=(e,t)=>{t===void 0||e.stdin===void 0||(vAe(t)?t.pipe(e.stdin):e.stdin.end(t))},JPt=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let r=KPt();return e.stdout&&r.add(e.stdout),e.stderr&&r.add(e.stderr),r},Gee=async(e,t)=>{if(e){e.destroy();try{return await t}catch(r){return r.bufferedData}}},Wee=(e,{encoding:t,buffer:r,maxBuffer:n})=>{if(!(!e||!r))return t?gAe(e,{encoding:t,maxBuffer:n}):gAe.buffer(e,{maxBuffer:n})},XPt=async({stdout:e,stderr:t,all:r},{encoding:n,buffer:i,maxBuffer:a},s)=>{let o=Wee(e,{encoding:n,buffer:i,maxBuffer:a}),c=Wee(t,{encoding:n,buffer:i,maxBuffer:a}),p=Wee(r,{encoding:n,buffer:i,maxBuffer:a*2});try{return await Promise.all([s,o,c,p])}catch(f){return Promise.all([{error:f,signal:f.signal,timedOut:f.timedOut},Gee(e,o),Gee(t,c),Gee(r,p)])}},QPt=({input:e})=>{if(vAe(e))throw new TypeError("The `input` option cannot be a stream in sync mode")};yAe.exports={handleInput:YPt,makeAllStream:JPt,getSpawnedResult:XPt,validateInputSync:QPt}});var _Ae=b((mBr,wAe)=>{"use strict";var ZPt=(async()=>{})().constructor.prototype,eIt=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(ZPt,e)]),tIt=(e,t)=>{for(let[r,n]of eIt){let i=typeof t=="function"?(...a)=>Reflect.apply(n.value,t(),a):n.value.bind(t);Reflect.defineProperty(e,r,{...n,value:i})}return e},rIt=e=>new Promise((t,r)=>{e.on("exit",(n,i)=>{t({exitCode:n,signal:i})}),e.on("error",n=>{r(n)}),e.stdin&&e.stdin.on("error",n=>{r(n)})});wAe.exports={mergePromise:tIt,getSpawnedPromise:rIt}});var SAe=b((gBr,EAe)=>{"use strict";var xAe=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],nIt=/^[\w.-]+$/,iIt=/"/g,aIt=e=>typeof e!="string"||nIt.test(e)?e:`"${e.replace(iIt,'\\"')}"`,sIt=(e,t)=>xAe(e,t).join(" "),oIt=(e,t)=>xAe(e,t).map(r=>aIt(r)).join(" "),uIt=/ +/g,cIt=e=>{let t=[];for(let r of e.trim().split(uIt)){let n=t[t.length-1];n&&n.endsWith("\\")?t[t.length-1]=`${n.slice(0,-1)} ${r}`:t.push(r)}return t};EAe.exports={joinCommand:sIt,getEscapedCommand:oIt,parseCommand:cIt}});var PAe=b((vBr,b6)=>{"use strict";var lIt=require("path"),Kee=require("child_process"),pIt=$ke(),fIt=Mke(),dIt=Hke(),hIt=jP(),VP=eAe(),AAe=rAe(),{spawnedKill:mIt,spawnedCancel:gIt,setupTimeout:vIt,validateTimeout:yIt,setExitHandler:bIt}=cAe(),{handleInput:wIt,getSpawnedResult:_It,makeAllStream:xIt,validateInputSync:EIt}=bAe(),{mergePromise:kAe,getSpawnedPromise:SIt}=_Ae(),{joinCommand:TAe,parseCommand:OAe,getEscapedCommand:DAe}=SAe(),kIt=1e3*1e3*100,AIt=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:i})=>{let a=t?{...process.env,...e}:e;return r?dIt.env({env:a,cwd:n,execPath:i}):a},CAe=(e,t,r={})=>{let n=pIt._parse(e,t,r);return e=n.command,t=n.args,r=n.options,r={maxBuffer:kIt,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:r.cwd||process.cwd(),execPath:process.execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,...r},r.env=AIt(r),r.stdio=AAe(r),process.platform==="win32"&&lIt.basename(e,".exe")==="cmd"&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n}},eS=(e,t,r)=>typeof t!="string"&&!Buffer.isBuffer(t)?r===void 0?void 0:"":e.stripFinalNewline?fIt(t):t,GP=(e,t,r)=>{let n=CAe(e,t,r),i=TAe(e,t),a=DAe(e,t);yIt(n.options);let s;try{s=Kee.spawn(n.file,n.args,n.options)}catch(g){let v=new Kee.ChildProcess,y=Promise.reject(VP({error:g,stdout:"",stderr:"",all:"",command:i,escapedCommand:a,parsed:n,timedOut:!1,isCanceled:!1,killed:!1}));return kAe(v,y)}let o=SIt(s),c=vIt(s,n.options,o),p=bIt(s,n.options,c),f={isCanceled:!1};s.kill=mIt.bind(null,s.kill.bind(s)),s.cancel=gIt.bind(null,s,f);let h=hIt(async()=>{let[{error:g,exitCode:v,signal:y,timedOut:_},x,A,D]=await _It(s,n.options,p),j=eS(n.options,x),H=eS(n.options,A),F=eS(n.options,D);if(g||v!==0||y!==null){let z=VP({error:g,exitCode:v,signal:y,stdout:j,stderr:H,all:F,command:i,escapedCommand:a,parsed:n,timedOut:_,isCanceled:f.isCanceled,killed:s.killed});if(!n.options.reject)return z;throw z}return{command:i,escapedCommand:a,exitCode:0,stdout:j,stderr:H,all:F,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}});return wIt(s,n.options.input),s.all=xIt(s,n.options),kAe(s,h)};b6.exports=GP;b6.exports.sync=(e,t,r)=>{let n=CAe(e,t,r),i=TAe(e,t),a=DAe(e,t);EIt(n.options);let s;try{s=Kee.spawnSync(n.file,n.args,n.options)}catch(p){throw VP({error:p,stdout:"",stderr:"",all:"",command:i,escapedCommand:a,parsed:n,timedOut:!1,isCanceled:!1,killed:!1})}let o=eS(n.options,s.stdout,s.error),c=eS(n.options,s.stderr,s.error);if(s.error||s.status!==0||s.signal!==null){let p=VP({stdout:o,stderr:c,error:s.error,signal:s.signal,exitCode:s.status,command:i,escapedCommand:a,parsed:n,timedOut:s.error&&s.error.code==="ETIMEDOUT",isCanceled:!1,killed:s.signal!==null});if(!n.options.reject)return p;throw p}return{command:i,escapedCommand:a,exitCode:0,stdout:o,stderr:c,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}};b6.exports.command=(e,t)=>{let[r,...n]=OAe(e);return GP(r,n,t)};b6.exports.commandSync=(e,t)=>{let[r,...n]=OAe(e);return GP.sync(r,n,t)};b6.exports.node=(e,t,r={})=>{t&&!Array.isArray(t)&&typeof t=="object"&&(r=t,t=[]);let n=AAe.node(r),i=process.execArgv.filter(o=>!o.startsWith("--inspect")),{nodePath:a=process.execPath,nodeOptions:s=i}=r;return GP(a,[...s,e,...Array.isArray(t)?t:[]],{...r,stdin:void 0,stdout:void 0,stderr:void 0,stdio:n,shell:!1})}});var NAe=b((yBr,jAe)=>{var TIt="Expected a function",IAe=1/0,OIt=17976931348623157e292,RAe=0/0,DIt="[object Symbol]",CIt=/^\s+|\s+$/g,PIt=/^[-+]0x[0-9a-f]+$/i,IIt=/^0b[01]+$/i,RIt=/^0o[0-7]+$/i,FIt=parseInt,jIt=Object.prototype,NIt=jIt.toString;function qIt(e,t){var r;if(typeof t!="function")throw new TypeError(TIt);return e=UIt(e),function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=void 0),r}}function LIt(e){return qIt(2,e)}function FAe(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function $It(e){return!!e&&typeof e=="object"}function BIt(e){return typeof e=="symbol"||$It(e)&&NIt.call(e)==DIt}function MIt(e){if(!e)return e===0?e:0;if(e=zIt(e),e===IAe||e===-IAe){var t=e<0?-1:1;return t*OIt}return e===e?e:0}function UIt(e){var t=MIt(e),r=t%1;return t===t?r?t-r:t:0}function zIt(e){if(typeof e=="number")return e;if(BIt(e))return RAe;if(FAe(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=FAe(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(CIt,"");var r=IIt.test(e);return r||RIt.test(e)?FIt(e.slice(2),r?2:8):PIt.test(e)?RAe:+e}jAe.exports=LIt});var LAe=b(W0=>{"use strict";var Jee=W0&&W0.__awaiter||function(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{p(n.next(f))}catch(d){s(d)}}function c(f){try{p(n.throw(f))}catch(d){s(d)}}function p(f){f.done?a(f.value):i(f.value).then(o,c)}p((n=n.apply(e,t||[])).next())})};Object.defineProperty(W0,"__esModule",{value:!0});W0.SquirrelWindowsUpdaterAgent=W0.UpdaterAgent=void 0;var HIt=Q7e(),wc=require("electron"),G0=MC(),VIt=PAe(),GIt=require("fs"),WIt=NAe(),KIt=require("os"),Yee=require("path"),YIt=$_(),qAe=zC(),JIt=YX(),Xee=class{constructor({log:t,logger:r}){this.currentTDUpdateInfo=null,this._log=(i,...a)=>t(i,"UpdaterAgent:",...a),G0.autoUpdater.logger=r,G0.autoUpdater.allowDowngrade=!0;let n=(0,qAe.default)();process.platform==="darwin"&&!n.wasBuiltByUs&&G0.autoUpdater.setFeedURL(`https://download.todesktop.com/${n.id}`),process.platform==="win32"&&n.wasBuiltByUs&&this._uninstallSquirrelWindowsAppIfItExists()}checkAndDownload(){return Jee(this,void 0,void 0,function*(){var t;try{G0.autoUpdater.autoDownload=!1;let r=yield G0.autoUpdater.checkForUpdates();if(!r||!r.updateInfo)return null;let n=wc.app.getVersion(),i=r.updateInfo.version,a=(t=this.currentTDUpdateInfo)===null||t===void 0?void 0:t.version;return this._log("debug","Analysing autoUpdater.checkForUpdates result",{currentVersion:n,latestVersion:i,currentlyDownloadedVersion:a,updateInfo:r.updateInfo}),a===i?this.currentTDUpdateInfo:r.cancellationToken?(yield G0.autoUpdater.downloadUpdate(r.cancellationToken),this.currentTDUpdateInfo=this._convertToTDUpdateInfo(r),this.currentTDUpdateInfo):this.currentTDUpdateInfo}catch(r){throw r instanceof Error&&r.name==="CancellationError"?new Error("Update check cancelled"):r}})}restartAndInstall(t,r){G0.autoUpdater.quitAndInstall(t,r)}setFeedURL(t){this._log("debug","_setFeedURL()",t),G0.autoUpdater.setFeedURL(t)}_convertToTDUpdateInfo(t){return{releaseDate:t.updateInfo.releaseDate,version:t.updateInfo.version}}_uninstallSquirrelWindowsAppIfItExists(){return Jee(this,void 0,void 0,function*(){this._log("debug","_uninstallSquirrelWindowsAppIfItExists()");try{let t=Yee.join(KIt.homedir(),"AppData","Local",(0,JIt.default)().name),r=Yee.join(t,".shouldUninstall"),n=GIt.existsSync(r);this._log("debug","Does Squirrel.Windows uninstall marker exist?",n,r),n&&(yield VIt(Yee.join(t,"Update.exe"),["--uninstall","-s"]),yield HIt(t,{force:!0}),this._log("info","Successfully removed Squirrel.Windows app"))}catch(t){this._log("debug","Failed to remove Squirrel.Windows app"),this._log("debug",t)}})}};W0.UpdaterAgent=Xee;var Qee=class{constructor({log:t,logger:r}){if(this._log=(a,...s)=>t(a,"SquirrelWindowsUpdaterAgent:",...s),process.platform!=="win32")throw new Error("Only Windows is supported");let n=(0,qAe.default)();if(n.wasBuiltByUs)throw new Error("App was built by us, this is unsupported");let i=new URLSearchParams({arch:process.arch,currentVersion:wc.app.getVersion(),platform:"windows"});["before-quit-for-update","checking-for-update","error","update-available","update-downloaded","update-not-available"].forEach(a=>{wc.autoUpdater.on(a,(...s)=>this._log("debug",`autoUpdater event: ${a}`,...s))}),wc.autoUpdater.setFeedURL({url:`https://dl.todesktop.com/${n.id}/squirrel?${i}`})}checkAndDownload(){return Jee(this,void 0,void 0,function*(){return new Promise((t,r)=>{let n=o=>{s(),r(o)},i=(o,c,p,f,d)=>{s();let h=this._getVersionFromNupkgUrl(d)||YIt.inc(wc.app.getVersion(),"patch");t({releaseDate:f.toString(),version:h})},a=()=>{s(),t(null)},s=WIt(()=>{wc.autoUpdater.off("error",n),wc.autoUpdater.off("update-downloaded",i),wc.autoUpdater.off("update-not-available",a)});wc.autoUpdater.once("error",n),wc.autoUpdater.once("update-downloaded",i),wc.autoUpdater.once("update-not-available",a);try{wc.autoUpdater.checkForUpdates()}catch(o){n(o)}})})}restartAndInstall(){wc.autoUpdater.quitAndInstall()}setFeedURL(t){wc.autoUpdater.setFeedURL(t)}_getVersionFromNupkgUrl(t){let n=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/.source.replace(/^\^/,"").replace(/\$$/,""),i=t.match(new RegExp(`(${n})-full\\.nupkg$`));if(i)return i[1]}};W0.SquirrelWindowsUpdaterAgent=Qee});var Zee=b(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});WP.CLIENT_VERSION=void 0;WP.CLIENT_VERSION="2.1.2"});var ete=b(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});KP.BuiltInSources=void 0;var $Ae;(function(e){e.autoCheckOnLaunch="auto-check-on-launch",e.autoCheckOnInterval="auto-check-on-interval",e.programmaticCall="programmatic-call"})($Ae||(KP.BuiltInSources=$Ae={}))});var UAe=b((BAe,MAe)=>{(function(e){var t=Object.hasOwnProperty,r=Array.isArray?Array.isArray:function(ne){return Object.prototype.toString.call(ne)==="[object Array]"},n=10,i=typeof process=="object"&&typeof process.nextTick=="function",a=typeof Symbol=="function",s=typeof Reflect=="object",o=typeof setImmediate=="function",c=o?setImmediate:setTimeout,p=a?s&&typeof Reflect.ownKeys=="function"?Reflect.ownKeys:function(Q){var ne=Object.getOwnPropertyNames(Q);return ne.push.apply(ne,Object.getOwnPropertySymbols(Q)),ne}:Object.keys;function f(){this._events={},this._conf&&d.call(this,this._conf)}function d(Q){Q&&(this._conf=Q,Q.delimiter&&(this.delimiter=Q.delimiter),Q.maxListeners!==e&&(this._maxListeners=Q.maxListeners),Q.wildcard&&(this.wildcard=Q.wildcard),Q.newListener&&(this._newListener=Q.newListener),Q.removeListener&&(this._removeListener=Q.removeListener),Q.verboseMemoryLeak&&(this.verboseMemoryLeak=Q.verboseMemoryLeak),Q.ignoreErrors&&(this.ignoreErrors=Q.ignoreErrors),this.wildcard&&(this.listenerTree={}))}function h(Q,ne){var G="(node) warning: possible EventEmitter memory leak detected. "+Q+" listeners added. Use emitter.setMaxListeners() to increase limit.";if(this.verboseMemoryLeak&&(G+=" Event name: "+ne+"."),typeof process<"u"&&process.emitWarning){var de=new Error(G);de.name="MaxListenersExceededWarning",de.emitter=this,de.count=Q,process.emitWarning(de)}else console.error(G),console.trace&&console.trace()}var g=function(Q,ne,G){var de=arguments.length;switch(de){case 0:return[];case 1:return[Q];case 2:return[Q,ne];case 3:return[Q,ne,G];default:for(var xe=new Array(de);de--;)xe[de]=arguments[de];return xe}};function v(Q,ne){for(var G={},de,xe=Q.length,ge=ne?ne.length:0,V=0;V<xe;V++)de=Q[V],G[de]=V<ge?ne[V]:e;return G}function y(Q,ne,G){this._emitter=Q,this._target=ne,this._listeners={},this._listenersCount=0;var de,xe;if((G.on||G.off)&&(de=G.on,xe=G.off),ne.addEventListener?(de=ne.addEventListener,xe=ne.removeEventListener):ne.addListener?(de=ne.addListener,xe=ne.removeListener):ne.on&&(de=ne.on,xe=ne.off),!de&&!xe)throw Error("target does not implement any known event API");if(typeof de!="function")throw TypeError("on method must be a function");if(typeof xe!="function")throw TypeError("off method must be a function");this._on=de,this._off=xe;var ge=Q._observers;ge?ge.push(this):Q._observers=[this]}Object.assign(y.prototype,{subscribe:function(Q,ne,G){var de=this,xe=this._target,ge=this._emitter,V=this._listeners,ce=function(){var ye=g.apply(null,arguments),R={data:ye,name:ne,original:Q};if(G){var $=G.call(xe,R);$!==!1&&ge.emit.apply(ge,[R.name].concat(ye));return}ge.emit.apply(ge,[ne].concat(ye))};if(V[Q])throw Error("Event '"+Q+"' is already listening");this._listenersCount++,ge._newListener&&ge._removeListener&&!de._onNewListener?(this._onNewListener=function(ye){ye===ne&&V[Q]===null&&(V[Q]=ce,de._on.call(xe,Q,ce))},ge.on("newListener",this._onNewListener),this._onRemoveListener=function(ye){ye===ne&&!ge.hasListeners(ye)&&V[Q]&&(V[Q]=null,de._off.call(xe,Q,ce))},V[Q]=null,ge.on("removeListener",this._onRemoveListener)):(V[Q]=ce,de._on.call(xe,Q,ce))},unsubscribe:function(Q){var ne=this,G=this._listeners,de=this._emitter,xe,ge,V=this._off,ce=this._target,ye;if(Q&&typeof Q!="string")throw TypeError("event must be a string");function R(){ne._onNewListener&&(de.off("newListener",ne._onNewListener),de.off("removeListener",ne._onRemoveListener),ne._onNewListener=null,ne._onRemoveListener=null);var $=F.call(de,ne);de._observers.splice($,1)}if(Q){if(xe=G[Q],!xe)return;V.call(ce,Q,xe),delete G[Q],--this._listenersCount||R()}else{for(ge=p(G),ye=ge.length;ye-- >0;)Q=ge[ye],V.call(ce,Q,G[Q]);this._listeners={},this._listenersCount=0,R()}}});function _(Q,ne,G,de){var xe=Object.assign({},ne);if(!Q)return xe;if(typeof Q!="object")throw TypeError("options must be an object");var ge=Object.keys(Q),V=ge.length,ce,ye,R;function $(S){throw Error('Invalid "'+ce+'" option value'+(S?". Reason: "+S:""))}for(var ke=0;ke<V;ke++){if(ce=ge[ke],!de&&!t.call(ne,ce))throw Error('Unknown "'+ce+'" option');ye=Q[ce],ye!==e&&(R=G[ce],xe[ce]=R?R(ye,$):ye)}return xe}function x(Q,ne){return(typeof Q!="function"||!Q.hasOwnProperty("prototype"))&&ne("value must be a constructor"),Q}function A(Q){var ne="value must be type of "+Q.join("|"),G=Q.length,de=Q[0],xe=Q[1];return G===1?function(ge,V){if(typeof ge===de)return ge;V(ne)}:G===2?function(ge,V){var ce=typeof ge;if(ce===de||ce===xe)return ge;V(ne)}:function(ge,V){for(var ce=typeof ge,ye=G;ye-- >0;)if(ce===Q[ye])return ge;V(ne)}}var D=A(["function"]),j=A(["object","function"]);function H(Q,ne,G){var de,xe,ge=0,V,ce=new Q(function(ye,R,$){G=_(G,{timeout:0,overload:!1},{timeout:function(B,se){return B*=1,(typeof B!="number"||B<0||!Number.isFinite(B))&&se("timeout must be a positive number"),B}}),de=!G.overload&&typeof Q.prototype.cancel=="function"&&typeof $=="function";function ke(){xe&&(xe=null),ge&&(clearTimeout(ge),ge=0)}var S=function(B){ke(),ye(B)},I=function(B){ke(),R(B)};de?ne(S,I,$):(xe=[function(B){I(B||Error("canceled"))}],ne(S,I,function(B){if(V)throw Error("Unable to subscribe on cancel event asynchronously");if(typeof B!="function")throw TypeError("onCancel callback must be a function");xe.push(B)}),V=!0),G.timeout>0&&(ge=setTimeout(function(){var B=Error("timeout");B.code="ETIMEDOUT",ge=0,ce.cancel(B),R(B)},G.timeout))});return de||(ce.cancel=function(ye){if(xe){for(var R=xe.length,$=1;$<R;$++)xe[$](ye);xe[0](ye),xe=null}}),ce}function F(Q){var ne=this._observers;if(!ne)return-1;for(var G=ne.length,de=0;de<G;de++)if(ne[de]._target===Q)return de;return-1}function z(Q,ne,G,de,xe){if(!G)return null;if(de===0){var ge=typeof ne;if(ge==="string"){var V,ce,ye=0,R=0,$=this.delimiter,ke=$.length;if((ce=ne.indexOf($))!==-1){V=new Array(5);do V[ye++]=ne.slice(R,ce),R=ce+ke;while((ce=ne.indexOf($,R))!==-1);V[ye++]=ne.slice(R),ne=V,xe=ye}else ne=[ne],xe=1}else ge==="object"?xe=ne.length:(ne=[ne],xe=1)}var S=null,I,B,se,ae,me,Se=ne[de],Ee=ne[de+1],De,Le;if(de===xe)G._listeners&&(typeof G._listeners=="function"?(Q&&Q.push(G._listeners),S=[G]):(Q&&Q.push.apply(Q,G._listeners),S=[G]));else if(Se==="*"){for(De=p(G),ce=De.length;ce-- >0;)I=De[ce],I!=="_listeners"&&(Le=z(Q,ne,G[I],de+1,xe),Le&&(S?S.push.apply(S,Le):S=Le));return S}else if(Se==="**"){for(me=de+1===xe||de+2===xe&&Ee==="*",me&&G._listeners&&(S=z(Q,ne,G,xe,xe)),De=p(G),ce=De.length;ce-- >0;)I=De[ce],I!=="_listeners"&&(I==="*"||I==="**"?(G[I]._listeners&&!me&&(Le=z(Q,ne,G[I],xe,xe),Le&&(S?S.push.apply(S,Le):S=Le)),Le=z(Q,ne,G[I],de,xe)):I===Ee?Le=z(Q,ne,G[I],de+2,xe):Le=z(Q,ne,G[I],de,xe),Le&&(S?S.push.apply(S,Le):S=Le));return S}else G[Se]&&(S=z(Q,ne,G[Se],de+1,xe));if(B=G["*"],B&&z(Q,ne,B,de+1,xe),se=G["**"],se)if(de<xe)for(se._listeners&&z(Q,ne,se,xe,xe),De=p(se),ce=De.length;ce-- >0;)I=De[ce],I!=="_listeners"&&(I===Ee?z(Q,ne,se[I],de+2,xe):I===Se?z(Q,ne,se[I],de+1,xe):(ae={},ae[I]=se[I],z(Q,ne,{"**":ae},de+1,xe)));else se._listeners?z(Q,ne,se,xe,xe):se["*"]&&se["*"]._listeners&&z(Q,ne,se["*"],xe,xe);return S}function P(Q,ne,G){var de=0,xe=0,ge,V=this.delimiter,ce=V.length,ye;if(typeof Q=="string")if((ge=Q.indexOf(V))!==-1){ye=new Array(5);do ye[de++]=Q.slice(xe,ge),xe=ge+ce;while((ge=Q.indexOf(V,xe))!==-1);ye[de++]=Q.slice(xe)}else ye=[Q],de=1;else ye=Q,de=Q.length;if(de>1){for(ge=0;ge+1<de;ge++)if(ye[ge]==="**"&&ye[ge+1]==="**")return}var R=this.listenerTree,$;for(ge=0;ge<de;ge++)if($=ye[ge],R=R[$]||(R[$]={}),ge===de-1)return R._listeners?(typeof R._listeners=="function"&&(R._listeners=[R._listeners]),G?R._listeners.unshift(ne):R._listeners.push(ne),!R._listeners.warned&&this._maxListeners>0&&R._listeners.length>this._maxListeners&&(R._listeners.warned=!0,h.call(this,R._listeners.length,$))):R._listeners=ne,!0;return!0}function M(Q,ne,G,de){for(var xe=p(Q),ge=xe.length,V,ce,ye,R=Q._listeners,$;ge-- >0;)ce=xe[ge],V=Q[ce],ce==="_listeners"?ye=G:ye=G?G.concat(ce):[ce],$=de||typeof ce=="symbol",R&&ne.push($?ye:ye.join(this.delimiter)),typeof V=="object"&&M.call(this,V,ne,ye,$);return ne}function K(Q){for(var ne=p(Q),G=ne.length,de,xe,ge;G-- >0;)xe=ne[G],de=Q[xe],de&&(ge=!0,xe!=="_listeners"&&!K(de)&&delete Q[xe]);return ge}function L(Q,ne,G){this.emitter=Q,this.event=ne,this.listener=G}L.prototype.off=function(){return this.emitter.off(this.event,this.listener),this};function ve(Q,ne,G){if(G===!0)xe=!0;else if(G===!1)de=!0;else{if(!G||typeof G!="object")throw TypeError("options should be an object or true");var de=G.async,xe=G.promisify,ge=G.nextTick,V=G.objectify}if(de||ge||xe){var ce=ne,ye=ne._origin||ne;if(ge&&!i)throw Error("process.nextTick is not supported");xe===e&&(xe=ne.constructor.name==="AsyncFunction"),ne=function(){var R=arguments,$=this,ke=this.event;return xe?ge?Promise.resolve():new Promise(function(S){c(S)}).then(function(){return $.event=ke,ce.apply($,R)}):(ge?process.nextTick:c)(function(){$.event=ke,ce.apply($,R)})},ne._async=!0,ne._origin=ye}return[ne,V?new L(this,Q,ne):this]}function U(Q){this._events={},this._newListener=!1,this._removeListener=!1,this.verboseMemoryLeak=!1,d.call(this,Q)}U.EventEmitter2=U,U.prototype.listenTo=function(Q,ne,G){if(typeof Q!="object")throw TypeError("target musts be an object");var de=this;G=_(G,{on:e,off:e,reducers:e},{on:D,off:D,reducers:j});function xe(ge){if(typeof ge!="object")throw TypeError("events must be an object");var V=G.reducers,ce=F.call(de,Q),ye;ce===-1?ye=new y(de,Q,G):ye=de._observers[ce];for(var R=p(ge),$=R.length,ke,S=typeof V=="function",I=0;I<$;I++)ke=R[I],ye.subscribe(ke,ge[ke]||ke,S?V:V&&V[ke])}return r(ne)?xe(v(ne)):xe(typeof ne=="string"?v(ne.split(/\s+/)):ne),this},U.prototype.stopListeningTo=function(Q,ne){var G=this._observers;if(!G)return!1;var de=G.length,xe,ge=!1;if(Q&&typeof Q!="object")throw TypeError("target should be an object");for(;de-- >0;)xe=G[de],(!Q||xe._target===Q)&&(xe.unsubscribe(ne),ge=!0);return ge},U.prototype.delimiter=".",U.prototype.setMaxListeners=function(Q){Q!==e&&(this._maxListeners=Q,this._conf||(this._conf={}),this._conf.maxListeners=Q)},U.prototype.getMaxListeners=function(){return this._maxListeners},U.prototype.event="",U.prototype.once=function(Q,ne,G){return this._once(Q,ne,!1,G)},U.prototype.prependOnceListener=function(Q,ne,G){return this._once(Q,ne,!0,G)},U.prototype._once=function(Q,ne,G,de){return this._many(Q,1,ne,G,de)},U.prototype.many=function(Q,ne,G,de){return this._many(Q,ne,G,!1,de)},U.prototype.prependMany=function(Q,ne,G,de){return this._many(Q,ne,G,!0,de)},U.prototype._many=function(Q,ne,G,de,xe){var ge=this;if(typeof G!="function")throw new Error("many only accepts instances of Function");function V(){return--ne===0&&ge.off(Q,V),G.apply(this,arguments)}return V._origin=G,this._on(Q,V,de,xe)},U.prototype.emit=function(){if(!this._events&&!this._all)return!1;this._events||f.call(this);var Q=arguments[0],ne,G=this.wildcard,de,xe,ge,V,ce;if(Q==="newListener"&&!this._newListener&&!this._events.newListener)return!1;if(G&&(ne=Q,Q!=="newListener"&&Q!=="removeListener"&&typeof Q=="object")){if(xe=Q.length,a){for(ge=0;ge<xe;ge++)if(typeof Q[ge]=="symbol"){ce=!0;break}}ce||(Q=Q.join(this.delimiter))}var ye=arguments.length,R;if(this._all&&this._all.length)for(R=this._all.slice(),ge=0,xe=R.length;ge<xe;ge++)switch(this.event=Q,ye){case 1:R[ge].call(this,Q);break;case 2:R[ge].call(this,Q,arguments[1]);break;case 3:R[ge].call(this,Q,arguments[1],arguments[2]);break;default:R[ge].apply(this,arguments)}if(G)R=[],z.call(this,R,ne,this.listenerTree,0,xe);else if(R=this._events[Q],typeof R=="function"){switch(this.event=Q,ye){case 1:R.call(this);break;case 2:R.call(this,arguments[1]);break;case 3:R.call(this,arguments[1],arguments[2]);break;default:for(de=new Array(ye-1),V=1;V<ye;V++)de[V-1]=arguments[V];R.apply(this,de)}return!0}else R&&(R=R.slice());if(R&&R.length){if(ye>3)for(de=new Array(ye-1),V=1;V<ye;V++)de[V-1]=arguments[V];for(ge=0,xe=R.length;ge<xe;ge++)switch(this.event=Q,ye){case 1:R[ge].call(this);break;case 2:R[ge].call(this,arguments[1]);break;case 3:R[ge].call(this,arguments[1],arguments[2]);break;default:R[ge].apply(this,de)}return!0}else if(!this.ignoreErrors&&!this._all&&Q==="error")throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");return!!this._all},U.prototype.emitAsync=function(){if(!this._events&&!this._all)return!1;this._events||f.call(this);var Q=arguments[0],ne=this.wildcard,G,de,xe,ge,V,ce;if(Q==="newListener"&&!this._newListener&&!this._events.newListener)return Promise.resolve([!1]);if(ne&&(G=Q,Q!=="newListener"&&Q!=="removeListener"&&typeof Q=="object")){if(ge=Q.length,a){for(V=0;V<ge;V++)if(typeof Q[V]=="symbol"){de=!0;break}}de||(Q=Q.join(this.delimiter))}var ye=[],R=arguments.length,$;if(this._all)for(V=0,ge=this._all.length;V<ge;V++)switch(this.event=Q,R){case 1:ye.push(this._all[V].call(this,Q));break;case 2:ye.push(this._all[V].call(this,Q,arguments[1]));break;case 3:ye.push(this._all[V].call(this,Q,arguments[1],arguments[2]));break;default:ye.push(this._all[V].apply(this,arguments))}if(ne?($=[],z.call(this,$,G,this.listenerTree,0)):$=this._events[Q],typeof $=="function")switch(this.event=Q,R){case 1:ye.push($.call(this));break;case 2:ye.push($.call(this,arguments[1]));break;case 3:ye.push($.call(this,arguments[1],arguments[2]));break;default:for(xe=new Array(R-1),ce=1;ce<R;ce++)xe[ce-1]=arguments[ce];ye.push($.apply(this,xe))}else if($&&$.length){if($=$.slice(),R>3)for(xe=new Array(R-1),ce=1;ce<R;ce++)xe[ce-1]=arguments[ce];for(V=0,ge=$.length;V<ge;V++)switch(this.event=Q,R){case 1:ye.push($[V].call(this));break;case 2:ye.push($[V].call(this,arguments[1]));break;case 3:ye.push($[V].call(this,arguments[1],arguments[2]));break;default:ye.push($[V].apply(this,xe))}}else if(!this.ignoreErrors&&!this._all&&Q==="error")return arguments[1]instanceof Error?Promise.reject(arguments[1]):Promise.reject("Uncaught, unspecified 'error' event.");return Promise.all(ye)},U.prototype.on=function(Q,ne,G){return this._on(Q,ne,!1,G)},U.prototype.prependListener=function(Q,ne,G){return this._on(Q,ne,!0,G)},U.prototype.onAny=function(Q){return this._onAny(Q,!1)},U.prototype.prependAny=function(Q){return this._onAny(Q,!0)},U.prototype.addListener=U.prototype.on,U.prototype._onAny=function(Q,ne){if(typeof Q!="function")throw new Error("onAny only accepts instances of Function");return this._all||(this._all=[]),ne?this._all.unshift(Q):this._all.push(Q),this},U.prototype._on=function(Q,ne,G,de){if(typeof Q=="function")return this._onAny(Q,ne),this;if(typeof ne!="function")throw new Error("on only accepts instances of Function");this._events||f.call(this);var xe=this,ge;return de!==e&&(ge=ve.call(this,Q,ne,de),ne=ge[0],xe=ge[1]),this._newListener&&this.emit("newListener",Q,ne),this.wildcard?(P.call(this,Q,ne,G),xe):(this._events[Q]?(typeof this._events[Q]=="function"&&(this._events[Q]=[this._events[Q]]),G?this._events[Q].unshift(ne):this._events[Q].push(ne),!this._events[Q].warned&&this._maxListeners>0&&this._events[Q].length>this._maxListeners&&(this._events[Q].warned=!0,h.call(this,this._events[Q].length,Q))):this._events[Q]=ne,xe)},U.prototype.off=function(Q,ne){if(typeof ne!="function")throw new Error("removeListener only takes instances of Function");var G,de=[];if(this.wildcard){var xe=typeof Q=="string"?Q.split(this.delimiter):Q.slice();if(de=z.call(this,null,xe,this.listenerTree,0),!de)return this}else{if(!this._events[Q])return this;G=this._events[Q],de.push({_listeners:G})}for(var ge=0;ge<de.length;ge++){var V=de[ge];if(G=V._listeners,r(G)){for(var ce=-1,ye=0,R=G.length;ye<R;ye++)if(G[ye]===ne||G[ye].listener&&G[ye].listener===ne||G[ye]._origin&&G[ye]._origin===ne){ce=ye;break}if(ce<0)continue;return this.wildcard?V._listeners.splice(ce,1):this._events[Q].splice(ce,1),G.length===0&&(this.wildcard?delete V._listeners:delete this._events[Q]),this._removeListener&&this.emit("removeListener",Q,ne),this}else(G===ne||G.listener&&G.listener===ne||G._origin&&G._origin===ne)&&(this.wildcard?delete V._listeners:delete this._events[Q],this._removeListener&&this.emit("removeListener",Q,ne))}return this.listenerTree&&K(this.listenerTree),this},U.prototype.offAny=function(Q){var ne=0,G=0,de;if(Q&&this._all&&this._all.length>0){for(de=this._all,ne=0,G=de.length;ne<G;ne++)if(Q===de[ne])return de.splice(ne,1),this._removeListener&&this.emit("removeListenerAny",Q),this}else{if(de=this._all,this._removeListener)for(ne=0,G=de.length;ne<G;ne++)this.emit("removeListenerAny",de[ne]);this._all=[]}return this},U.prototype.removeListener=U.prototype.off,U.prototype.removeAllListeners=function(Q){if(Q===e)return!this._events||f.call(this),this;if(this.wildcard){var ne=z.call(this,null,Q,this.listenerTree,0),G,de;if(!ne)return this;for(de=0;de<ne.length;de++)G=ne[de],G._listeners=null;this.listenerTree&&K(this.listenerTree)}else this._events&&(this._events[Q]=null);return this},U.prototype.listeners=function(Q){var ne=this._events,G,de,xe,ge,V;if(Q===e){if(this.wildcard)throw Error("event name required for wildcard emitter");if(!ne)return[];for(G=p(ne),ge=G.length,xe=[];ge-- >0;)de=ne[G[ge]],typeof de=="function"?xe.push(de):xe.push.apply(xe,de);return xe}else{if(this.wildcard){if(V=this.listenerTree,!V)return[];var ce=[],ye=typeof Q=="string"?Q.split(this.delimiter):Q.slice();return z.call(this,ce,ye,V,0),ce}return ne?(de=ne[Q],de?typeof de=="function"?[de]:de:[]):[]}},U.prototype.eventNames=function(Q){var ne=this._events;return this.wildcard?M.call(this,this.listenerTree,[],null,Q):ne?p(ne):[]},U.prototype.listenerCount=function(Q){return this.listeners(Q).length},U.prototype.hasListeners=function(Q){if(this.wildcard){var ne=[],G=typeof Q=="string"?Q.split(this.delimiter):Q.slice();return z.call(this,ne,G,this.listenerTree,0),ne.length>0}var de=this._events,xe=this._all;return!!(xe&&xe.length||de&&(Q===e?p(de).length:de[Q]))},U.prototype.listenersAny=function(){return this._all?this._all:[]},U.prototype.waitFor=function(Q,ne){var G=this,de=typeof ne;return de==="number"?ne={timeout:ne}:de==="function"&&(ne={filter:ne}),ne=_(ne,{timeout:0,filter:e,handleError:!1,Promise,overload:!1},{filter:D,Promise:x}),H(ne.Promise,function(xe,ge,V){function ce(){var ye=ne.filter;if(!(ye&&!ye.apply(G,arguments)))if(G.off(Q,ce),ne.handleError){var R=arguments[0];R?ge(R):xe(g.apply(null,arguments).slice(1))}else xe(g.apply(null,arguments))}V(function(){G.off(Q,ce)}),G._on(Q,ce,!1)},{timeout:ne.timeout,overload:ne.overload})};function N(Q,ne,G){G=_(G,{Promise,timeout:0,overload:!1},{Promise:x});var de=G.Promise;return H(de,function(xe,ge,V){var ce;if(typeof Q.addEventListener=="function"){ce=function(){xe(g.apply(null,arguments))},V(function(){Q.removeEventListener(ne,ce)}),Q.addEventListener(ne,ce,{once:!0});return}var ye=function(){R&&Q.removeListener("error",R),xe(g.apply(null,arguments))},R;ne!=="error"&&(R=function($){Q.removeListener(ne,ye),ge($)},Q.once("error",R)),V(function(){R&&Q.removeListener("error",R),Q.removeListener(ne,ye)}),Q.once(ne,ye)},{timeout:G.timeout,overload:G.overload})}var re=U.prototype;if(Object.defineProperties(U,{defaultMaxListeners:{get:function(){return re._maxListeners},set:function(Q){if(typeof Q!="number"||Q<0||Number.isNaN(Q))throw TypeError("n must be a non-negative number");re._maxListeners=Q},enumerable:!0},once:{value:N,writable:!0,configurable:!0}}),Object.defineProperties(re,{_maxListeners:{value:n,writable:!0,configurable:!0},_observers:{value:null,writable:!0,configurable:!0}}),typeof define=="function"&&define.amd)define(function(){return U});else if(typeof BAe=="object")MAe.exports=U;else{var ue=new Function("","return this")();ue.EventEmitter2=U}})()});var zAe=b(rte=>{"use strict";Object.defineProperty(rte,"__esModule",{value:!0});var XIt=UAe(),QIt=XIt.EventEmitter2,tte=class extends QIt{};rte.default=tte});var YP=b(w6=>{"use strict";var HAe=w6&&w6.__awaiter||function(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{p(n.next(f))}catch(d){s(d)}}function c(f){try{p(n.throw(f))}catch(d){s(d)}}function p(f){f.done?a(f.value):i(f.value).then(o,c)}p((n=n.apply(e,t||[])).next())})};Object.defineProperty(w6,"__esModule",{value:!0});w6.BaseAutoUpdater=void 0;var ZIt=zAe(),nte=class extends ZIt.default{constructor(){super()}checkForUpdates(t){return HAe(this,void 0,void 0,function*(){return{updateInfo:null}})}restartAndInstall(t){}setFeedURL(t){}setBuildId(t){}_init(){return HAe(this,void 0,void 0,function*(){})}};w6.BaseAutoUpdater=nte});var GAe=b(tS=>{"use strict";var _6=tS&&tS.__awaiter||function(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{p(n.next(f))}catch(d){s(d)}}function c(f){try{p(n.throw(f))}catch(d){s(d)}}function p(f){f.done?a(f.value):i(f.value).then(o,c)}p((n=n.apply(e,t||[])).next())})};Object.defineProperty(tS,"__esModule",{value:!0});var x6=require("electron"),Q2=MC(),eRt=require("fs"),tRt=require("path"),ite=dEe(),rRt=zC(),nRt=mEe(),iRt=vEe(),VAe=LAe(),aRt=Zee(),ate=ete(),sRt=YP(),ste=class extends sRt.BaseAutoUpdater{constructor({autoCheckInterval:t=10*60*1e3,logger:r,shouldAutoCheckOnLaunch:n=!0,buildId:i}){super(),this._createdAt=Date.now(),this._hasUpdateReadyToInstall=!1,this._isActive=!0,this._pendingCheckSources=[],this._whenInitializedResolve=()=>{},this._autoCheckInterval=t,this._logger=r,this._shouldAutoCheckOnLaunch=n,i&&(this.buildId=i),this._whenInitialized=new Promise(a=>{this._whenInitializedResolve=a}),this._subscribeToElectronEvents()}_init(){return _6(this,arguments,void 0,function*({getReleaseStatusFn:t=iRt.default}={}){let r=this._logger,n="";if(x6.app.isPackaged||(n="application is not packaged"),process.platform==="linux"&&!process.env.APPIMAGE&&(n="application is not in AppImage"),yield(0,ite.default)(this._appFinishedLaunchingPromise,{logger:r}),n===""&&!this.buildId){let{isReleased:i}=yield(0,ite.default)(t(r),{logger:r,defaultResult:{isReleased:!0}});i||(n="the build isn't released")}if(n!==""){this._isActive=!1;let i=`@todesktop/runtime: skipping autoUpdater initialization because ${n}.`;console.info(i),this._log("info",i),this._whenInitializedResolve();return}this._initializeUpdaterAgent(),this._autoCheckInterval>0&&this._autoCheckOnInterval(this._autoCheckInterval),this._shouldAutoCheckOnLaunch&&this._autoCheckOnLaunch().catch(i=>r.error(i)),this._whenInitializedResolve()})}checkForUpdates(){return _6(this,arguments,void 0,function*({source:t=ate.BuiltInSources.programmaticCall,disableUpdateReadyAction:r=!1}={}){return this._log("info",".checkForUpdates called"),yield(0,ite.default)(this._whenInitialized),this._isActive?yield this._check({source:t,disableUpdateReadyAction:r}):{updateInfo:null}})}restartAndInstall({isSilent:t=!1}={}){var r,n;if(this._log("info",".restartAndInstall called, isSilent: "+!!t),!this._hasUpdateReadyToInstall){let i=new Error("Cannot restart and install. There is no update downloaded");throw this._log("error",i),i}this._log("debug","Calling electron-updater's .quitAndInstall, isSilent: "+!!t),t?(r=this._updaterAgent)===null||r===void 0||r.restartAndInstall(!0,!0):(n=this._updaterAgent)===null||n===void 0||n.restartAndInstall()}setFeedURL(t){var r;(r=this._updaterAgent)===null||r===void 0||r.setFeedURL(t)}setBuildId(t){this._log("info",".setBuildId called with buildId:",t),this.buildId=t}get buildId(){return this._buildId}set buildId(t){this._buildId=t,typeof t=="string"?(Q2.autoUpdater.channel=`latest-build-${t}`,this._log("debug","Updater channel set to latest-build-"+t)):t===null&&(Q2.autoUpdater.channel="latest",this._log("debug","Updater channel set to latest"))}_actuallyPerformCheck(){return _6(this,arguments,void 0,function*({disableUpdateReadyAction:t}={}){if(this._log("debug","_actuallyPerformCheck called"),!this._updaterAgent)return{updateInfo:null};let r=yield this._updaterAgent.checkAndDownload(),n=[...this._pendingCheckSources];if(this._pendingCheckSources=[],!r)return this._log("debug","No update available"),this._hasUpdateReadyToInstall=!1,{updateInfo:r};this._log("debug","Update available",r),this._hasUpdateReadyToInstall=!0;let i={sources:n,updateInfo:r,disableUpdateReadyAction:!!t};return this._log("debug","Emitting update-downloaded event"),Promise.race([this.emitAsync("update-downloaded",i),new Promise(a=>{this._log("debug","before notify call in setTimeout"),setTimeout(a,500)})]).then(a=>{(!Array.isArray(a)||!a.includes(!1))&&(this._log("debug","calling notify after event listener Promise settled"),this.emit("notify-after-update-downloaded",i))}).catch(a=>{this._log("debug","Error occurred in update-downloaded handler",a),this.emit("notify-after-update-downloaded",i)}),this._pendingCheckSources=[],{updateInfo:r}})}_autoCheckOnInterval(t){let r=()=>{this._log("debug","checking for update on interval"),(0,nRt.default)(()=>_6(this,void 0,void 0,function*(){try{yield this._check({source:ate.BuiltInSources.autoCheckOnInterval,disableUpdateReadyAction:!1}),r()}catch(n){this._log("error",n),r()}}),t)};r()}_autoCheckOnLaunch(){return _6(this,void 0,void 0,function*(){this._log("debug","checking for update on launch");try{yield this._check({source:ate.BuiltInSources.autoCheckOnLaunch,disableUpdateReadyAction:!1})}catch(t){this._log("error",t)}})}_check(t){return _6(this,arguments,void 0,function*({source:r,disableUpdateReadyAction:n}){if(this._pendingCheckSources.push(r),this._log("debug","_check called",{source:r,pendingCheckSources:this._pendingCheckSources}),this._pendingUpdateCheckPromise)return this._pendingUpdateCheckPromise;let i=()=>{this._pendingUpdateCheckPromise=void 0};return this._pendingUpdateCheckPromise=this._actuallyPerformCheck({disableUpdateReadyAction:n}).then(a=>(i(),a)).catch(a=>{throw i(),a}),this._pendingUpdateCheckPromise})}_initializeUpdaterAgent(){if(process.platform==="win32"&&!(0,rRt.default)().wasBuiltByUs&&eRt.existsSync(tRt.join(x6.app.getAppPath(),"../Update.exe"))){this._log("debug","Setting up SquirrelWindowsUpdaterAgent"),this._updaterAgent=new VAe.SquirrelWindowsUpdaterAgent({log:(t,...r)=>{this._log(t,"SquirrelWindowsUpdaterAgent:",...r)},logger:this._logger});return}this._log("debug","Setting up UpdaterAgent"),this._updaterAgent=new VAe.UpdaterAgent({log:(t,...r)=>{this._log(t,"UpdaterAgent:",...r)},logger:this._logger})}_log(t,...r){let n;if(process.env.AVA_PATH){let i;try{i=` (${Date.now()-this._createdAt}ms)`}catch{i=""}n=`AutoUpdater (${x6.app.name})${i}:`}else n="AutoUpdater:";this._logger[t](n,...r)}_subscribeToElectronEvents(){this._appFinishedLaunchingPromise=new Promise(t=>{x6.app.on("will-finish-launching",()=>{this._log("debug","electron will-finish-launching event emitted",{appVersion:x6.app.getVersion(),runtimeVersion:aRt.CLIENT_VERSION}),t()})}),x6.autoUpdater.on("before-quit-for-update",(...t)=>{this._log("info","before-quit-for-update"),this.emit("before-quit-for-update",...t)}),Q2.autoUpdater.on("error",(t,r)=>{this._log("info","error"),this.emit("error",t,r)}),Q2.autoUpdater.on("checking-for-update",()=>{this._log("info","checking-for-update"),this.emit("checking-for-update")}),Q2.autoUpdater.on("update-not-available",t=>{this._log("info","update-not-available",t),this.emit("update-not-available",t)}),Q2.autoUpdater.on("update-available",t=>{this._log("info","update-available",t),this.emit("update-available",t)}),Q2.autoUpdater.on("download-progress",t=>{this._log("info","download-progress",t),this.emit("download-progress",t)})}};tS.default=ste});var WAe=b(ute=>{"use strict";Object.defineProperty(ute,"__esModule",{value:!0});var ote;ute.default={clear:()=>{ote=null},get:()=>ote,set:e=>{ote=e}}});var KAe=b(lte=>{"use strict";Object.defineProperty(lte,"__esModule",{value:!0});var cte=class{constructor(t){this._customLogger=t}debug(...t){this._log("debug",...t)}error(...t){this._log("error",...t)}info(...t){this._log("info",...t)}warn(...t){this._log("warn",...t)}_log(t,...r){let n=["@todesktop/runtime:",...r];process.env.DEBUG&&process.env.DEBUG.includes("@todesktop/runtime")&&console[t](...n),this._diskLogger&&this._diskLogger[t](...n),this._customLogger&&this._customLogger[t]&&this._customLogger[t](...n)}};lte.default=cte});var YAe=b(K0=>{"use strict";var oRt=K0&&K0.__awaiter||function(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{p(n.next(f))}catch(d){s(d)}}function c(f){try{p(n.throw(f))}catch(d){s(d)}}function p(f){f.done?a(f.value):i(f.value).then(o,c)}p((n=n.apply(e,t||[])).next())})};Object.defineProperty(K0,"__esModule",{value:!0});K0.createMockedAutoUpdater=K0.MockedAutoUpdater=void 0;var uRt=YP(),JP=class extends uRt.BaseAutoUpdater{constructor(t=console.info){super(),this.logFn=t}setRealAutoUpdater(t){t.onAny((r,...n)=>{this.emit(r,...n)})}checkForUpdates(...t){return oRt(this,void 0,void 0,function*(){return this.logCall("checkForUpdates()",t),{updateInfo:null}})}restartAndInstall(...t){this.logCall("restartAndInstall()",t)}setFeedURL(...t){this.logCall("setFeedURL()",t)}logCall(t,r=[]){let n=new Date().toISOString().slice(11,23);this.logFn(n,`MockedAutoUpdater.${t} called with args`,r)}};K0.MockedAutoUpdater=JP;function cRt(){return new JP}K0.createMockedAutoUpdater=cRt});var JAe=b(Z2=>{"use strict";var XP=Z2&&Z2.__awaiter||function(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{p(n.next(f))}catch(d){s(d)}}function c(f){try{p(n.throw(f))}catch(d){s(d)}}function p(f){f.done?a(f.value):i(f.value).then(o,c)}p((n=n.apply(e,t||[])).next())})},lRt=Z2&&Z2.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]]);return r};Object.defineProperty(Z2,"__esModule",{value:!0});var E6=require("electron"),pte=class{getAppName(){return(E6.app===null||E6.app===void 0?void 0:E6.app.name)||"this application"}isAppInForeground(){return!!E6.BrowserWindow.getFocusedWindow()}showMessageBox(t){return XP(this,void 0,void 0,function*(){return E6.dialog.showMessageBox(t)})}showNotification(t){let r=new E6.Notification(t);return r.show(),r}},fte=class{constructor({autoUpdater:t,electronApi:r=new pte,updateReadyAction:n}){if(this._lastUpdate={isProcessing:!1,version:""},this._onNotifyAfterUpdateDownloaded=this._onNotifyAfterUpdateDownloaded.bind(this),this._autoUpdater=t,this._electronApi=r,this._updateReadyAction=Object.assign({showInstallAndRestartPrompt:"never",showNotification:"always"},n),typeof t?.on!="function")throw new Error("Invalid autoUpdater instance");t.on("notify-after-update-downloaded",this._onNotifyAfterUpdateDownloaded)}_onNotifyAfterUpdateDownloaded(t){return XP(this,void 0,void 0,function*(){if(!(t.disableUpdateReadyAction||!t.updateInfo)&&!(this._lastUpdate.isProcessing||this._lastUpdate.version===t.updateInfo.version)){this._lastUpdate={isProcessing:!0,version:t.updateInfo.version};try{yield this._showNotification(t),yield this._showInstallAndRestartPrompt(t),this._lastUpdate.isProcessing=!1}catch{this._lastUpdate.isProcessing=!1}}})}_showInstallAndRestartPrompt(t){return XP(this,void 0,void 0,function*(){let r=this._updateReadyAction.showInstallAndRestartPrompt,n=this._electronApi.getAppName();if(r==="never")return;let i=this._electronApi.isAppInForeground();if(r==="whenInForeground"&&!i)return;let a=typeof r=="function"?yield r(Object.assign(Object.assign({},t),{appIsInForeground:i})):void 0;if(typeof a=="function")yield a({showInstallAndRestartPrompt:(...s)=>this._electronApi.showMessageBox(...s),restartAndInstall:(...s)=>this._autoUpdater.restartAndInstall(...s)});else if(a){let{installOnNextLaunchButton:s,restartAndInstallButton:o}=a,c=lRt(a,["installOnNextLaunchButton","restartAndInstallButton"]),{response:p}=yield this._electronApi.showMessageBox(Object.assign(Object.assign({},c),{buttons:[s,o]}));p===1&&this._autoUpdater.restartAndInstall()}else if(r==="whenInForeground"||r==="always"){let{response:s}=yield this._electronApi.showMessageBox({message:"Update Available",detail:`A new version of ${n} is ready to be installed.`,buttons:["Install on next launch",`Install now and restart ${n}`]});s===1&&this._autoUpdater.restartAndInstall()}})}_showNotification(t){return XP(this,void 0,void 0,function*(){let r=this._updateReadyAction.showNotification,n=this._electronApi.getAppName();if(r==="never"||!t.updateInfo)return;let i=this._electronApi.isAppInForeground();if(r==="whenInBackground"&&i)return;let a=typeof r=="function"?yield r(Object.assign(Object.assign({},t),{appIsInForeground:i})):void 0;typeof a=="function"?yield a({showNotification:(...s)=>this._electronApi.showNotification(...s)}):a?this._electronApi.showNotification(a):(r==="whenInBackground"||r==="always")&&this._electronApi.showNotification({title:"A new update is ready to install",body:`${n} version ${t.updateInfo.version} has been downloaded and will be automatically installed on exit`})})}};Z2.default=fte});var QAe=b(uf=>{"use strict";var XAe=uf&&uf.__awaiter||function(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{p(n.next(f))}catch(d){s(d)}}function c(f){try{p(n.throw(f))}catch(d){s(d)}}function p(f){f.done?a(f.value):i(f.value).then(o,c)}p((n=n.apply(e,t||[])).next())})};Object.defineProperty(uf,"__esModule",{value:!0});uf.SimulatedAutoUpdater=uf.parseSimulateUpdatesFlag=uf.SimulateUpdatesFlag=void 0;var QP=require("electron"),dte=ete(),pRt=YP();function hte(e){return new Promise(t=>setTimeout(t,e))}var Y0;(function(e){e.UpdateAvailable="update-available",e.UpdateNotAvailable="update-not-available"})(Y0||(uf.SimulateUpdatesFlag=Y0={}));var fRt=()=>{let e=process.argv.find(r=>r.includes("--runtime-simulate-updates"));if(!e)return null;let t=e.split("=")[1];if(!Object.values(Y0).includes(t))throw new Error(`--runtime-simulate-updates expects a mode value of "${Y0.UpdateAvailable}" or "${Y0.UpdateNotAvailable}". Received "${t}"`);return t};uf.parseSimulateUpdatesFlag=fRt;var mte=class extends pRt.BaseAutoUpdater{constructor({autoCheckInterval:t=10*60*1e3,logger:r,shouldAutoCheckOnLaunch:n=!0}){super(),this.simulateUpdatesFlag=(0,uf.parseSimulateUpdatesFlag)(),this.hasUpdateReadyToInstall=!1,this.checkForUpdates=(...i)=>XAe(this,[...i],void 0,function*({source:a=dte.BuiltInSources.programmaticCall,disableUpdateReadyAction:s=!1}={}){this.logger.info("checkForUpdates()",{source:a});let o={releaseDate:new Date().toISOString(),version:`${QP.app.getVersion()}-simulated`},c=Object.assign(Object.assign({},o),{files:[],path:"",sha512:""});if(this.emit("checking-for-update"),yield hte(1e3),this.simulateUpdatesFlag===Y0.UpdateNotAvailable)return this.emit("update-not-available",c),{updateInfo:null};{this.emit("update-available",c);let p=d=>XAe(this,void 0,void 0,function*(){return{total:1e6,percent:d,transferred:d/100*1e6,delta:1e6/10,bytesPerSecond:1e6/5}});for(let d of[10,20,30,40,50,60,70,80,90,100])yield hte(500),this.emit("download-progress",yield p(d));this.hasUpdateReadyToInstall=!0;let f={sources:[a],updateInfo:c,disableUpdateReadyAction:s};return this.emit("update-downloaded",f),this.emit("notify-after-update-downloaded",f),{updateInfo:o}}}),this.restartAndInstall=({isSilent:i=!1}={})=>{if(this.logger.info("restartAndInstall()",{isSilent:i}),!this.hasUpdateReadyToInstall){let a=new Error("Cannot restart and install. There is no update downloaded");throw this.logger.error("error",a),a}this.emit("before-quit-for-update"),hte(1e3).then(()=>{QP.app.relaunch({args:[`--runtime-simulate-updates=${Y0.UpdateNotAvailable}`]}),QP.app.quit()})},this.setFeedURL=(...i)=>{this.logger.info("setFeedURL()",i),this.logger.warn("setFeedURL() doesn't do anything in simulated mode.")},this.logger=r,QP.app.on("will-finish-launching",()=>{if(t>0){let i=setInterval(()=>{this.checkForUpdates({source:dte.BuiltInSources.autoCheckOnInterval}),this.simulateUpdatesFlag===Y0.UpdateAvailable&&clearInterval(i)},t)}n&&this.checkForUpdates({source:dte.BuiltInSources.autoCheckOnLaunch})})}};uf.SimulatedAutoUpdater=mte});var tTe=b(ZP=>{"use strict";Object.defineProperty(ZP,"__esModule",{value:!0});ZP.isInstalledUsingMSI=void 0;var dRt=require("electron"),ZAe=require("fs"),eTe=require("path"),rS=null;function hRt(){if(rS!==null)return rS;try{(0,ZAe.accessSync)(eTe.join(eTe.dirname(dRt.app.getPath("exe")),"installed_using_msi.txt"),ZAe.constants.R_OK),rS=!0}catch{rS=!1}return rS}ZP.isInstalledUsingMSI=hRt});var aTe=b(nS=>{"use strict";var mRt=nS&&nS.__awaiter||function(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{p(n.next(f))}catch(d){s(d)}}function c(f){try{p(n.throw(f))}catch(d){s(d)}}function p(f){f.done?a(f.value):i(f.value).then(o,c)}p((n=n.apply(e,t||[])).next())})};Object.defineProperty(nS,"__esModule",{value:!0});var gRt=require("crypto"),eb=require("electron"),vRt=require("http"),yRt=Zee();function rTe(){return new Error().stack.split(`
`).map(t=>t.trim().replace(/^at /," - ")).slice(3).join(`
`)}function nTe(e,t){eb.webContents.getAllWebContents().forEach(r=>{r.isLoading()?r.once(e,t):t()}),eb.app.once("web-contents-created",(r,n)=>{n.once(e,t)})}function bRt(e,t){return mRt(this,void 0,void 0,function*(){return new Promise((r,n)=>{let i=vRt.request(e,{method:"POST",headers:{"Content-Type":"application/json"}},a=>{if(a.statusCode===200){let s=[];a.on("data",o=>s.push(o)),a.on("error",n),a.on("end",()=>{r(JSON.parse(Buffer.concat(s).toString("utf8")))})}else n(new Error(`POST ${e} returns status code ${a.statusCode}`))});i.on("error",n),i.write(JSON.stringify(t)),i.end()})})}function iTe(e,t){let r=e.write.bind(e);e.write=(n,...i)=>(n&&t(typeof n=="string"?n:n.toString("utf8")),r(n,...i))}function wRt(e){let t=typeof e=="string"?e:"";return gRt.createHash("sha256").update(t).digest("hex")}function _Rt(e){var t,r;let n="f9963eac07c447dfd6dad6c52dbd3d7afd546060992f301d9fd3637c9833450d",i;try{i=JSON.parse(process.env.TODESKTOP_SMOKE_TEST_CONFIG||"{}")}catch{i={}}let a=Object.assign({apiUrl:process.env.TODESKTOP_SMOKE_TEST_API_URL||"",autoRestart:!0,enabled:!!process.env.TODESKTOP_SMOKE_TEST,feedUrl:process.env.TODESKTOP_SMOKE_TEST_FEED_URL||"",initOptions:{},secret:process.env.TODESKTOP_SMOKE_TEST_SECRET||"",startedAtMs:Date.now()},i);function s(h,g={}){bRt(a.apiUrl,Object.assign({event:h,pid:process.pid},g)).catch(v=>{console.error("Smoke Test API:",v)})}let o={};function c(h={}){o=Object.assign(Object.assign(Object.assign({},o),h),{appStartedAtMs:process.getCreationTime(),cpuUsage:process.cpuUsage(),memoryUsage:process.memoryUsage(),metrics:eb.app.getAppMetrics(),smokeTestRuntimeStartedAtMs:a.startedAtMs}),s("performance",o)}if(!a.enabled||!a.apiUrl||wRt(a.secret)!==n)return;let p=e._init(Object.assign(Object.assign({},a.initOptions),{customLogger:new Proxy(console,{get(h,g){return(v,...y)=>{let _=new Date().toISOString().slice(11,23);h[g](v,_,...y)}}}),getReleaseStatusFn:()=>({isReleased:!0})}));(r=(t=e.autoUpdater)===null||t===void 0?void 0:t.setRealAutoUpdater)===null||r===void 0||r.call(t,p),p._whenInitialized.then(()=>{a.feedUrl&&p.setFeedURL(a.feedUrl)}),p.on("update-downloaded",h=>{s("updateDownloaded",{payload:h}),a.autoRestart&&p.restartAndInstall({isSilent:!0})}).on("before-quit-for-update",h=>{s("beforeQuitForUpdate",{payload:h})}),process.on("uncaughtException",h=>{s("uncaughtException",{stack:h.stack})}).on("unhandledRejection",h=>{s("unhandledRejection",{reason:h})}),eb.app.on("ready",()=>{c({appReadyTimeMs:Date.now()}),nTe("dom-ready",()=>{c({webContentsDomReadyAtMs:Date.now()})}),nTe("did-finish-load",()=>{c({webContentsFinishLoadAtMs:Date.now()})})});let f=process.exit;process.exit=function(g=0){return s("processExit",{code:g,stack:rTe()}),f(g)};let d=eb.app.quit;eb.app.quit=function(){s("appQuit",{stack:rTe()}),d()},iTe(process.stdout,h=>{s("stdout",{content:h})}),iTe(process.stderr,h=>{s("stderr",{content:h})}),s("connect",{appVersion:eb.app.getVersion(),runtimeVersion:yRt.CLIENT_VERSION}),setInterval(()=>{s("timer",{fromStartMs:Date.now()-a.startedAtMs}),c()},1e3)}nS.default=_Rt});var uTe=b((yte,oTe)=>{"use strict";var xRt=yte&&yte.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]]);return r},ERt=GAe(),gte=WAe(),SRt=KAe(),kRt=YAe(),ARt=JAe(),sTe=QAe(),TRt=tTe(),vte=class{constructor(){this.isSmokeTestMode=!!process.env.TODESKTOP_SMOKE_TEST}init(t={}){this.isSmokeTestMode?this.autoUpdater=(0,kRt.createMockedAutoUpdater)():this.autoUpdater=this._init(t)}_init(t={}){var{autoCheckInterval:r,autoUpdater:n=!0,customLogger:i,shouldAutoCheckOnLaunch:a,updateReadyAction:s,buildId:o}=t,c=xRt(t,["autoCheckInterval","autoUpdater","customLogger","shouldAutoCheckOnLaunch","updateReadyAction","buildId"]);let p=new SRt.default(i),f=(0,sTe.parseSimulateUpdatesFlag)()?sTe.SimulatedAutoUpdater:ERt.default,d;return n?(d=new f({logger:p,autoCheckInterval:r,shouldAutoCheckOnLaunch:a,buildId:o}),new ARt.default({autoUpdater:d,updateReadyAction:s})):d=new f({autoCheckInterval:0,logger:p,shouldAutoCheckOnLaunch:!1}),d._init(c).catch(h=>p.error(h)),d}get runtime(){return{isInstalledUsingWindowsMSI:()=>(0,TRt.isInstalledUsingMSI)()}}},S6;gte.default.get()?S6=gte.default.get():(S6=new vte,gte.default.set(S6));S6.isSmokeTestMode&&Promise.resolve().then(()=>aTe()).then(({default:e})=>e(S6)).catch(()=>{});oTe.exports=S6});var cTe=b((IBr,ORt)=>{ORt.exports={name:"@todesktop/shared",version:"7.189.12",description:"",main:"./lib/index.js",types:"./lib/index.d.ts",scripts:{test:'echo "Error: no test specified" && exit 1',build:"rm -f ./lib/* && tsc",lint:"npm run lint:types && npm run lint:styles","lint:types":"tsc --noEmit","lint:styles":"prettier --check . && eslint src",prepublishOnly:"npm run build",bump:"npm version minor && git push && npm publish",dev:"tsc"},author:"Dave Jeffery <dave@davejeffery.com>",license:"UNLICENSED",dependencies:{"@todesktop/client-electron-types":"^28.0.0","@types/debug":"^4.1.1","@types/node":"^16.4.12","is-regex":"^1.0.4",semver:"^7.3.5",yup:"^1.4.0"},devDependencies:{"@eslint/eslintrc":"^3.1.0","@eslint/js":"^9.9.1","@types/semver":"^7.3.9","@typescript-eslint/eslint-plugin":"^8.4.0","@typescript-eslint/parser":"^8.4.0","app-builder-lib":"^25.1.8",eslint:"^9.9.1","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^4.2.1",globals:"^15.9.0",prettier:"^2.8.8",typescript:"^5.5.4"}}});var pTe=b(lTe=>{"use strict";Object.defineProperty(lTe,"__esModule",{value:!0})});var gTe=b(Hi=>{"use strict";Object.defineProperty(Hi,"__esModule",{value:!0});Hi.isBuildCancellable=Hi.isBuildRunning=Hi.isCiBuildRunning=Hi.isPlatformBuildRunning=Hi.hasBuildKickedOff=Hi.ManifestCategory=Hi.AnalysisStatus=Hi.BuildStatus=Hi.PackageManager=Hi.PlatformName=void 0;var fTe;(function(e){e.linux="linux",e.mac="mac",e.windows="windows"})(fTe||(Hi.PlatformName=fTe={}));var dTe;(function(e){e.npm="npm",e.yarn="yarn",e.pnpm="pnpm"})(dTe||(Hi.PackageManager=dTe={}));var bte;(function(e){e.queued="queued",e.failed="failed",e.building="building",e.preparation="preparation",e.succeeded="succeeded",e.cancelled="cancelled"})(bte||(Hi.BuildStatus=bte={}));var hTe;(function(e){e.notStarted="notStarted",e.initializing="initializing",e.downloading="downloading",e.extracting="extracting",e.analyzing="analyzing",e.done="done",e.error="error"})(hTe||(Hi.AnalysisStatus=hTe={}));var mTe;(function(e){e.primary="primary",e.buildStamped="build-stamped",e.versioned="versioned"})(mTe||(Hi.ManifestCategory=mTe={}));var DRt=e=>e?e.status&&e.status!==bte.preparation:!1;Hi.hasBuildKickedOff=DRt;var CRt=e=>e?!e.shouldSkip&&!["cancelled","succeeded"].includes(e.status)&&(e.status!=="failed"||e.numberOfAttemptedBuilds<2):!1;Hi.isPlatformBuildRunning=CRt;var PRt=e=>e?e.status==="building"||e.status==="failed"&&["linux","mac","windows"].some(t=>e.status==="building"||e.status==="failed"&&(0,Hi.isPlatformBuildRunning)(e[t])):!1;Hi.isCiBuildRunning=PRt;var IRt=e=>e?!["cancelled","succeeded"].includes(e.status)&&["linux","mac","windows"].some(t=>(0,Hi.isPlatformBuildRunning)(e[t])):!1;Hi.isBuildRunning=IRt;var RRt=e=>(0,Hi.hasBuildKickedOff)(e)&&(0,Hi.isBuildRunning)(e);Hi.isBuildCancellable=RRt});var xTe=b((jBr,_Te)=>{"use strict";function tb(e){this._maxSize=e,this.clear()}tb.prototype.clear=function(){this._size=0,this._values=Object.create(null)};tb.prototype.get=function(e){return this._values[e]};tb.prototype.set=function(e,t){return this._size>=this._maxSize&&this.clear(),e in this._values||this._size++,this._values[e]=t};var FRt=/[^.^\]^[]+|(?=\[\]|\.\.)/g,wTe=/^\d+$/,jRt=/^\d/,NRt=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,qRt=/^\s*(['"]?)(.*?)(\1)\s*$/,xte=512,vTe=new tb(xte),yTe=new tb(xte),bTe=new tb(xte);_Te.exports={Cache:tb,split:_te,normalizePath:wte,setter:function(e){var t=wte(e);return yTe.get(e)||yTe.set(e,function(n,i){for(var a=0,s=t.length,o=n;a<s-1;){var c=t[a];if(c==="__proto__"||c==="constructor"||c==="prototype")return n;o=o[t[a++]]}o[t[a]]=i})},getter:function(e,t){var r=wte(e);return bTe.get(e)||bTe.set(e,function(i){for(var a=0,s=r.length;a<s;)if(i!=null||!t)i=i[r[a++]];else return;return i})},join:function(e){return e.reduce(function(t,r){return t+(Ete(r)||wTe.test(r)?"["+r+"]":(t?".":"")+r)},"")},forEach:function(e,t,r){LRt(Array.isArray(e)?e:_te(e),t,r)}};function wte(e){return vTe.get(e)||vTe.set(e,_te(e).map(function(t){return t.replace(qRt,"$2")}))}function _te(e){return e.match(FRt)||[""]}function LRt(e,t,r){var n=e.length,i,a,s,o;for(a=0;a<n;a++)i=e[a],i&&(MRt(i)&&(i='"'+i+'"'),o=Ete(i),s=!o&&/^\d+$/.test(i),t.call(r,i,o,s,a,e))}function Ete(e){return typeof e=="string"&&e&&["'",'"'].indexOf(e.charAt(0))!==-1}function $Rt(e){return e.match(jRt)&&!e.match(wTe)}function BRt(e){return NRt.test(e)}function MRt(e){return!Ete(e)&&($Rt(e)||BRt(e))}});var kTe=b((NBr,STe)=>{var URt=/[A-Z\xc0-\xd6\xd8-\xde]?[a-z\xdf-\xf6\xf8-\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\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]|[A-Z\xc0-\xd6\xd8-\xde]|$)|(?:[A-Z\xc0-\xd6\xd8-\xde]|[^\ud800-\udfff\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\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\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]|[A-Z\xc0-\xd6\xd8-\xde](?:[a-z\xdf-\xf6\xf8-\xff]|[^\ud800-\udfff\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\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])|$)|[A-Z\xc0-\xd6\xd8-\xde]?(?:[a-z\xdf-\xf6\xf8-\xff]|[^\ud800-\udfff\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\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\xc0-\xd6\xd8-\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\d*(?:1ST|2ND|3RD|(?![123])\dTH)(?=\b|[a-z_])|\d*(?:1st|2nd|3rd|(?![123])\dth)(?=\b|[A-Z_])|\d+|(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff]|\ud83c[\udffb-\udfff])?(?:\u200d(?:[^\ud800-\udfff]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff]|\ud83c[\udffb-\udfff])?)*/g,eI=e=>e.match(URt)||[],tI=e=>e[0].toUpperCase()+e.slice(1),Ste=(e,t)=>eI(e).join(t).toLowerCase(),ETe=e=>eI(e).reduce((t,r)=>`${t}${t?r[0].toUpperCase()+r.slice(1).toLowerCase():r.toLowerCase()}`,""),zRt=e=>tI(ETe(e)),HRt=e=>Ste(e,"_"),VRt=e=>Ste(e,"-"),GRt=e=>tI(Ste(e," ")),WRt=e=>eI(e).map(tI).join(" ");STe.exports={words:eI,upperFirst:tI,camelCase:ETe,pascalCase:zRt,snakeCase:HRt,kebabCase:VRt,sentenceCase:GRt,titleCase:WRt}});var TTe=b((qBr,kte)=>{kte.exports=function(e){return ATe(KRt(e),e)};kte.exports.array=ATe;function ATe(e,t){var r=e.length,n=new Array(r),i={},a=r,s=YRt(t),o=JRt(e);for(t.forEach(function(p){if(!o.has(p[0])||!o.has(p[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});a--;)i[a]||c(e[a],a,new Set);return n;function c(p,f,d){if(d.has(p)){var h;try{h=", node was:"+JSON.stringify(p)}catch{h=""}throw new Error("Cyclic dependency"+h)}if(!o.has(p))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(p));if(!i[f]){i[f]=!0;var g=s.get(p)||new Set;if(g=Array.from(g),f=g.length){d.add(p);do{var v=g[--f];c(v,o.get(v),d)}while(f);d.delete(p)}n[--r]=p}}}function KRt(e){for(var t=new Set,r=0,n=e.length;r<n;r++){var i=e[r];t.add(i[0]),t.add(i[1])}return Array.from(t)}function YRt(e){for(var t=new Map,r=0,n=e.length;r<n;r++){var i=e[r];t.has(i[0])||t.set(i[0],new Set),t.has(i[1])||t.set(i[1],new Set),t.get(i[0]).add(i[1])}return t}function JRt(e){for(var t=new Map,r=0,n=e.length;r<n;r++)t.set(e[r],r);return t}});var GTe=b(ti=>{"use strict";Object.defineProperty(ti,"__esModule",{value:!0});var rb=xTe(),Ate=kTe(),XRt=TTe();function QRt(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var ZRt=QRt(XRt),eFt=Object.prototype.toString,tFt=Error.prototype.toString,rFt=RegExp.prototype.toString,nFt=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",iFt=/^Symbol\((.*)\)(.*)$/;function aFt(e){return e!=+e?"NaN":e===0&&1/e<0?"-0":""+e}function OTe(e,t=!1){if(e==null||e===!0||e===!1)return""+e;let r=typeof e;if(r==="number")return aFt(e);if(r==="string")return t?`"${e}"`:e;if(r==="function")return"[Function "+(e.name||"anonymous")+"]";if(r==="symbol")return nFt.call(e).replace(iFt,"Symbol($1)");let n=eFt.call(e).slice(8,-1);return n==="Date"?isNaN(e.getTime())?""+e:e.toISOString(e):n==="Error"||e instanceof Error?"["+tFt.call(e)+"]":n==="RegExp"?rFt.call(e):null}function Dd(e,t){let r=OTe(e,t);return r!==null?r:JSON.stringify(e,function(n,i){let a=OTe(this[n],t);return a!==null?a:i},2)}function PTe(e){return e==null?[]:[].concat(e)}var ITe,RTe,FTe,sFt=/\$\{\s*(\w+)\s*\}/g;ITe=Symbol.toStringTag;var aI=class{constructor(t,r,n,i){this.name=void 0,this.message=void 0,this.value=void 0,this.path=void 0,this.type=void 0,this.params=void 0,this.errors=void 0,this.inner=void 0,this[ITe]="Error",this.name="ValidationError",this.value=r,this.path=n,this.type=i,this.errors=[],this.inner=[],PTe(t).forEach(a=>{if(Gu.isError(a)){this.errors.push(...a.errors);let s=a.inner.length?a.inner:[a];this.inner.push(...s)}else this.errors.push(a)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0]}};RTe=Symbol.hasInstance;FTe=Symbol.toStringTag;var Gu=class e extends Error{static formatError(t,r){let n=r.label||r.path||"this";return n!==r.path&&(r=Object.assign({},r,{path:n})),typeof t=="string"?t.replace(sFt,(i,a)=>Dd(r[a])):typeof t=="function"?t(r):t}static isError(t){return t&&t.name==="ValidationError"}constructor(t,r,n,i,a){let s=new aI(t,r,n,i);if(a)return s;super(),this.value=void 0,this.path=void 0,this.type=void 0,this.params=void 0,this.errors=[],this.inner=[],this[FTe]="Error",this.name=s.name,this.message=s.message,this.type=s.type,this.value=s.value,this.path=s.path,this.errors=s.errors,this.inner=s.inner,Error.captureStackTrace&&Error.captureStackTrace(this,e)}static[RTe](t){return aI[Symbol.hasInstance](t)||super[Symbol.hasInstance](t)}},Od={default:"${path} is invalid",required:"${path} is a required field",defined:"${path} must be defined",notNull:"${path} cannot be null",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:e,type:t,value:r,originalValue:n})=>{let i=n!=null&&n!==r?` (cast from the value \`${Dd(n,!0)}\`).`:".";return t!=="mixed"?`${e} must be a \`${t}\` type, but the final value was: \`${Dd(r,!0)}\``+i:`${e} must match the configured type. The validated value was: \`${Dd(r,!0)}\``+i}},_c={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",datetime:"${path} must be a valid ISO date-time",datetime_precision:"${path} must be a valid ISO date-time with a sub-second precision of exactly ${precision} digits",datetime_offset:'${path} must be a valid ISO date-time with UTC "Z" timezone',trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"},J0={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"},Tte={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"},Ote={isValue:"${path} field must be ${value}"},Dte={noUnknown:"${path} field has unspecified keys: ${unknown}"},nI={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must have ${length} items"},jTe={notType:e=>{let{path:t,value:r,spec:n}=e,i=n.types.length;if(Array.isArray(r)){if(r.length<i)return`${t} tuple value has too few items, expected a length of ${i} but got ${r.length} for value: \`${Dd(r,!0)}\``;if(r.length>i)return`${t} tuple value has too many items, expected a length of ${i} but got ${r.length} for value: \`${Dd(r,!0)}\``}return Gu.formatError(Od.notType,e)}},NTe=Object.assign(Object.create(null),{mixed:Od,string:_c,number:J0,date:Tte,object:Dte,array:nI,boolean:Ote,tuple:jTe}),nb=e=>e&&e.__isYupSchema__,sI=class e{static fromOptions(t,r){if(!r.then&&!r.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:n,then:i,otherwise:a}=r,s=typeof n=="function"?n:(...o)=>o.every(c=>c===n);return new e(t,(o,c)=>{var p;let f=s(...o)?i:a;return(p=f?.(c))!=null?p:c})}constructor(t,r){this.fn=void 0,this.refs=t,this.refs=t,this.fn=r}resolve(t,r){let n=this.refs.map(a=>a.getValue(r?.value,r?.parent,r?.context)),i=this.fn(n,t,r);if(i===void 0||i===t)return t;if(!nb(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},rI={context:"$",value:"."};function oFt(e,t){return new Cd(e,t)}var Cd=class{constructor(t,r={}){if(this.key=void 0,this.isContext=void 0,this.isValue=void 0,this.isSibling=void 0,this.path=void 0,this.getter=void 0,this.map=void 0,typeof t!="string")throw new TypeError("ref must be a string, got: "+t);if(this.key=t.trim(),t==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===rI.context,this.isValue=this.key[0]===rI.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?rI.context:this.isValue?rI.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&rb.getter(this.path,!0),this.map=r.map}getValue(t,r,n){let i=this.isContext?n:this.isValue?t:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(t,r){return this.getValue(t,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(t){return t&&t.__isYupRef}};Cd.prototype.__isYupRef=!0;var cf=e=>e==null;function k6(e){function t({value:r,path:n="",options:i,originalValue:a,schema:s},o,c){let{name:p,test:f,params:d,message:h,skipAbsent:g}=e,{parent:v,context:y,abortEarly:_=s.spec.abortEarly,disableStackTrace:x=s.spec.disableStackTrace}=i;function A(L){return Cd.isRef(L)?L.getValue(r,v,y):L}function D(L={}){let ve=Object.assign({value:r,originalValue:a,label:s.spec.label,path:L.path||n,spec:s.spec,disableStackTrace:L.disableStackTrace||x},d,L.params);for(let N of Object.keys(ve))ve[N]=A(ve[N]);let U=new Gu(Gu.formatError(L.message||h,ve),r,ve.path,L.type||p,ve.disableStackTrace);return U.params=ve,U}let j=_?o:c,H={path:n,parent:v,type:p,from:i.from,createError:D,resolve:A,options:i,originalValue:a,schema:s},F=L=>{Gu.isError(L)?j(L):L?c(null):j(D())},z=L=>{Gu.isError(L)?j(L):o(L)};if(g&&cf(r))return F(!0);let M;try{var K;if(M=f.call(H,r,H),typeof((K=M)==null?void 0:K.then)=="function"){if(i.sync)throw new Error(`Validation test of type: "${H.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`);return Promise.resolve(M).then(F,z)}}catch(L){z(L);return}F(M)}return t.OPTIONS=e,t}function Ite(e,t,r,n=r){let i,a,s;return t?(rb.forEach(t,(o,c,p)=>{let f=c?o.slice(1,o.length-1):o;e=e.resolve({context:n,parent:i,value:r});let d=e.type==="tuple",h=p?parseInt(f,10):0;if(e.innerType||d){if(d&&!p)throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part "${s}" must contain an index to the tuple element, e.g. "${s}[0]"`);if(r&&h>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${o}, in the path: ${t}. because there is no value at that index. `);i=r,r=r&&r[h],e=d?e.spec.types[h]:e.innerType}if(!p){if(!e.fields||!e.fields[f])throw new Error(`The schema does not contain the path: ${t}. (failed at: ${s} which is a type: "${e.type}")`);i=r,r=r&&r[f],e=e.fields[f]}a=f,s=c?"["+o+"]":"."+o}),{schema:e,parent:i,parentPath:a}):{parent:i,parentPath:t,schema:e}}function uFt(e,t,r,n){return Ite(e,t,r,n).schema}var oI=class e extends Set{describe(){let t=[];for(let r of this.values())t.push(Cd.isRef(r)?r.describe():r);return t}resolveAll(t){let r=[];for(let n of this.values())r.push(t(n));return r}clone(){return new e(this.values())}merge(t,r){let n=this.clone();return t.forEach(i=>n.add(i)),r.forEach(i=>n.delete(i)),n}};function A6(e,t=new Map){if(nb(e)||!e||typeof e!="object")return e;if(t.has(e))return t.get(e);let r;if(e instanceof Date)r=new Date(e.getTime()),t.set(e,r);else if(e instanceof RegExp)r=new RegExp(e),t.set(e,r);else if(Array.isArray(e)){r=new Array(e.length),t.set(e,r);for(let n=0;n<e.length;n++)r[n]=A6(e[n],t)}else if(e instanceof Map){r=new Map,t.set(e,r);for(let[n,i]of e.entries())r.set(n,A6(i,t))}else if(e instanceof Set){r=new Set,t.set(e,r);for(let n of e)r.add(A6(n,t))}else if(e instanceof Object){r={},t.set(e,r);for(let[n,i]of Object.entries(e))r[n]=A6(i,t)}else throw Error(`Unable to clone ${e}`);return r}var ao=class{constructor(t){this.type=void 0,this.deps=[],this.tests=void 0,this.transforms=void 0,this.conditions=[],this._mutate=void 0,this.internalTests={},this._whitelist=new oI,this._blacklist=new oI,this.exclusiveTests=Object.create(null),this._typeCheck=void 0,this.spec=void 0,this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Od.notType)}),this.type=t.type,this._typeCheck=t.check,this.spec=Object.assign({strip:!1,strict:!1,abortEarly:!0,recursive:!0,disableStackTrace:!1,nullable:!1,optional:!0,coerce:!0},t?.spec),this.withMutation(r=>{r.nonNullable()})}get _type(){return this.type}clone(t){if(this._mutate)return t&&Object.assign(this.spec,t),this;let r=Object.create(Object.getPrototypeOf(this));return r.type=this.type,r._typeCheck=this._typeCheck,r._whitelist=this._whitelist.clone(),r._blacklist=this._blacklist.clone(),r.internalTests=Object.assign({},this.internalTests),r.exclusiveTests=Object.assign({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=A6(Object.assign({},this.spec,t)),r}label(t){let r=this.clone();return r.spec.label=t,r}meta(...t){if(t.length===0)return this.spec.meta;let r=this.clone();return r.spec.meta=Object.assign(r.spec.meta||{},t[0]),r}withMutation(t){let r=this._mutate;this._mutate=!0;let n=t(this);return this._mutate=r,n}concat(t){if(!t||t===this)return this;if(t.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${t.type}`);let r=this,n=t.clone(),i=Object.assign({},r.spec,n.spec);return n.spec=i,n.internalTests=Object.assign({},r.internalTests,n.internalTests),n._whitelist=r._whitelist.merge(t._whitelist,t._blacklist),n._blacklist=r._blacklist.merge(t._blacklist,t._whitelist),n.tests=r.tests,n.exclusiveTests=r.exclusiveTests,n.withMutation(a=>{t.tests.forEach(s=>{a.test(s.OPTIONS)})}),n.transforms=[...r.transforms,...n.transforms],n}isType(t){return t==null?!!(this.spec.nullable&&t===null||this.spec.optional&&t===void 0):this._typeCheck(t)}resolve(t){let r=this;if(r.conditions.length){let n=r.conditions;r=r.clone(),r.conditions=[],r=n.reduce((i,a)=>a.resolve(i,t),r),r=r.resolve(t)}return r}resolveOptions(t){var r,n,i,a;return Object.assign({},t,{from:t.from||[],strict:(r=t.strict)!=null?r:this.spec.strict,abortEarly:(n=t.abortEarly)!=null?n:this.spec.abortEarly,recursive:(i=t.recursive)!=null?i:this.spec.recursive,disableStackTrace:(a=t.disableStackTrace)!=null?a:this.spec.disableStackTrace})}cast(t,r={}){let n=this.resolve(Object.assign({value:t},r)),i=r.assert==="ignore-optionality",a=n._cast(t,r);if(r.assert!==!1&&!n.isType(a)){if(i&&cf(a))return a;let s=Dd(t),o=Dd(a);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${n.type}". 

attempted value: ${s} 
`+(o!==s?`result of cast: ${o}`:""))}return a}_cast(t,r){let n=t===void 0?t:this.transforms.reduce((i,a)=>a.call(this,i,t,this),t);return n===void 0&&(n=this.getDefault(r)),n}_validate(t,r={},n,i){let{path:a,originalValue:s=t,strict:o=this.spec.strict}=r,c=t;o||(c=this._cast(c,Object.assign({assert:!1},r)));let p=[];for(let f of Object.values(this.internalTests))f&&p.push(f);this.runTests({path:a,value:c,originalValue:s,options:r,tests:p},n,f=>{if(f.length)return i(f,c);this.runTests({path:a,value:c,originalValue:s,options:r,tests:this.tests},n,i)})}runTests(t,r,n){let i=!1,{tests:a,value:s,originalValue:o,path:c,options:p}=t,f=y=>{i||(i=!0,r(y,s))},d=y=>{i||(i=!0,n(y,s))},h=a.length,g=[];if(!h)return d([]);let v={value:s,originalValue:o,path:c,options:p,schema:this};for(let y=0;y<a.length;y++){let _=a[y];_(v,f,function(A){A&&(Array.isArray(A)?g.push(...A):g.push(A)),--h<=0&&d(g)})}}asNestedTest({key:t,index:r,parent:n,parentPath:i,originalParent:a,options:s}){let o=t??r;if(o==null)throw TypeError("Must include `key` or `index` for nested validations");let c=typeof o=="number",p=n[o],f=Object.assign({},s,{strict:!0,parent:n,value:p,originalValue:a[o],key:void 0,[c?"index":"key"]:o,path:c||o.includes(".")?`${i||""}[${c?o:`"${o}"`}]`:(i?`${i}.`:"")+t});return(d,h,g)=>this.resolve(f)._validate(p,f,h,g)}validate(t,r){var n;let i=this.resolve(Object.assign({},r,{value:t})),a=(n=r?.disableStackTrace)!=null?n:i.spec.disableStackTrace;return new Promise((s,o)=>i._validate(t,r,(c,p)=>{Gu.isError(c)&&(c.value=p),o(c)},(c,p)=>{c.length?o(new Gu(c,p,void 0,void 0,a)):s(p)}))}validateSync(t,r){var n;let i=this.resolve(Object.assign({},r,{value:t})),a,s=(n=r?.disableStackTrace)!=null?n:i.spec.disableStackTrace;return i._validate(t,Object.assign({},r,{sync:!0}),(o,c)=>{throw Gu.isError(o)&&(o.value=c),o},(o,c)=>{if(o.length)throw new Gu(o,t,void 0,void 0,s);a=c}),a}isValid(t,r){return this.validate(t,r).then(()=>!0,n=>{if(Gu.isError(n))return!1;throw n})}isValidSync(t,r){try{return this.validateSync(t,r),!0}catch(n){if(Gu.isError(n))return!1;throw n}}_getDefault(t){let r=this.spec.default;return r==null?r:typeof r=="function"?r.call(this,t):A6(r)}getDefault(t){return this.resolve(t||{})._getDefault(t)}default(t){return arguments.length===0?this._getDefault():this.clone({default:t})}strict(t=!0){return this.clone({strict:t})}nullability(t,r){let n=this.clone({nullable:t});return n.internalTests.nullable=k6({message:r,name:"nullable",test(i){return i===null?this.schema.spec.nullable:!0}}),n}optionality(t,r){let n=this.clone({optional:t});return n.internalTests.optionality=k6({message:r,name:"optionality",test(i){return i===void 0?this.schema.spec.optional:!0}}),n}optional(){return this.optionality(!0)}defined(t=Od.defined){return this.optionality(!1,t)}nullable(){return this.nullability(!0)}nonNullable(t=Od.notNull){return this.nullability(!1,t)}required(t=Od.required){return this.clone().withMutation(r=>r.nonNullable(t).defined(t))}notRequired(){return this.clone().withMutation(t=>t.nullable().optional())}transform(t){let r=this.clone();return r.transforms.push(t),r}test(...t){let r;if(t.length===1?typeof t[0]=="function"?r={test:t[0]}:r=t[0]:t.length===2?r={name:t[0],test:t[1]}:r={name:t[0],message:t[1],test:t[2]},r.message===void 0&&(r.message=Od.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=k6(r),a=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(s=>!(s.OPTIONS.name===r.name&&(a||s.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(t,r){!Array.isArray(t)&&typeof t!="string"&&(r=t,t=".");let n=this.clone(),i=PTe(t).map(a=>new Cd(a));return i.forEach(a=>{a.isSibling&&n.deps.push(a.key)}),n.conditions.push(typeof r=="function"?new sI(i,r):sI.fromOptions(i,r)),n}typeError(t){let r=this.clone();return r.internalTests.typeError=k6({message:t,name:"typeError",skipAbsent:!0,test(n){return this.schema._typeCheck(n)?!0:this.createError({params:{type:this.schema.type}})}}),r}oneOf(t,r=Od.oneOf){let n=this.clone();return t.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n.internalTests.whiteList=k6({message:r,name:"oneOf",skipAbsent:!0,test(i){let a=this.schema._whitelist,s=a.resolveAll(this.resolve);return s.includes(i)?!0:this.createError({params:{values:Array.from(a).join(", "),resolved:s}})}}),n}notOneOf(t,r=Od.notOneOf){let n=this.clone();return t.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n.internalTests.blacklist=k6({message:r,name:"notOneOf",test(i){let a=this.schema._blacklist,s=a.resolveAll(this.resolve);return s.includes(i)?this.createError({params:{values:Array.from(a).join(", "),resolved:s}}):!0}}),n}strip(t=!0){let r=this.clone();return r.spec.strip=t,r}describe(t){let r=(t?this.resolve(t):this).clone(),{label:n,meta:i,optional:a,nullable:s}=r.spec;return{meta:i,label:n,optional:a,nullable:s,default:r.getDefault(t),type:r.type,oneOf:r._whitelist.describe(),notOneOf:r._blacklist.describe(),tests:r.tests.map(c=>({name:c.OPTIONS.name,params:c.OPTIONS.params})).filter((c,p,f)=>f.findIndex(d=>d.name===c.name)===p)}}};ao.prototype.__isYupSchema__=!0;for(let e of["validate","validateSync"])ao.prototype[`${e}At`]=function(t,r,n={}){let{parent:i,parentPath:a,schema:s}=Ite(this,t,r,n.context);return s[e](i&&i[a],Object.assign({},n,{parent:i,path:t}))};for(let e of["equals","is"])ao.prototype[e]=ao.prototype.oneOf;for(let e of["not","nope"])ao.prototype[e]=ao.prototype.notOneOf;var cFt=()=>!0;function qTe(e){return new iS(e)}var iS=class extends ao{constructor(t){super(typeof t=="function"?{type:"mixed",check:t}:Object.assign({type:"mixed",check:cFt},t))}};qTe.prototype=iS.prototype;function Rte(){return new aS}var aS=class extends ao{constructor(){super({type:"boolean",check(t){return t instanceof Boolean&&(t=t.valueOf()),typeof t=="boolean"}}),this.withMutation(()=>{this.transform((t,r,n)=>{if(n.spec.coerce&&!n.isType(t)){if(/^(true|1)$/i.test(String(t)))return!0;if(/^(false|0)$/i.test(String(t)))return!1}return t})})}isTrue(t=Ote.isValue){return this.test({message:t,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return cf(r)||r===!0}})}isFalse(t=Ote.isValue){return this.test({message:t,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return cf(r)||r===!1}})}default(t){return super.default(t)}defined(t){return super.defined(t)}optional(){return super.optional()}required(t){return super.required(t)}notRequired(){return super.notRequired()}nullable(){return super.nullable()}nonNullable(t){return super.nonNullable(t)}strip(t){return super.strip(t)}};Rte.prototype=aS.prototype;var lFt=/^(\d{4}|[+-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,.](\d{1,}))?)?(?:(Z)|([+-])(\d{2})(?::?(\d{2}))?)?)?$/;function pFt(e){let t=Cte(e);if(!t)return Date.parse?Date.parse(e):Number.NaN;if(t.z===void 0&&t.plusMinus===void 0)return new Date(t.year,t.month,t.day,t.hour,t.minute,t.second,t.millisecond).valueOf();let r=0;return t.z!=="Z"&&t.plusMinus!==void 0&&(r=t.hourOffset*60+t.minuteOffset,t.plusMinus==="+"&&(r=0-r)),Date.UTC(t.year,t.month,t.day,t.hour,t.minute+r,t.second,t.millisecond)}function Cte(e){var t,r;let n=lFt.exec(e);return n?{year:Qm(n[1]),month:Qm(n[2],1)-1,day:Qm(n[3],1),hour:Qm(n[4]),minute:Qm(n[5]),second:Qm(n[6]),millisecond:n[7]?Qm(n[7].substring(0,3)):0,precision:(t=(r=n[7])==null?void 0:r.length)!=null?t:void 0,z:n[8]||void 0,plusMinus:n[9]||void 0,hourOffset:Qm(n[10]),minuteOffset:Qm(n[11])}:null}function Qm(e,t=0){return Number(e)||t}var fFt=/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,dFt=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,hFt=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,mFt="^\\d{4}-\\d{2}-\\d{2}",gFt="\\d{2}:\\d{2}:\\d{2}",vFt="(([+-]\\d{2}(:?\\d{2})?)|Z)",yFt=new RegExp(`${mFt}T${gFt}(\\.\\d+)?${vFt}$`),bFt=e=>cf(e)||e===e.trim(),wFt={}.toString();function LTe(){return new sS}var sS=class extends ao{constructor(){super({type:"string",check(t){return t instanceof String&&(t=t.valueOf()),typeof t=="string"}}),this.withMutation(()=>{this.transform((t,r,n)=>{if(!n.spec.coerce||n.isType(t)||Array.isArray(t))return t;let i=t!=null&&t.toString?t.toString():t;return i===wFt?t:i})})}required(t){return super.required(t).withMutation(r=>r.test({message:t||Od.required,name:"required",skipAbsent:!0,test:n=>!!n.length}))}notRequired(){return super.notRequired().withMutation(t=>(t.tests=t.tests.filter(r=>r.OPTIONS.name!=="required"),t))}length(t,r=_c.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:t},skipAbsent:!0,test(n){return n.length===this.resolve(t)}})}min(t,r=_c.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:t},skipAbsent:!0,test(n){return n.length>=this.resolve(t)}})}max(t,r=_c.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:t},skipAbsent:!0,test(n){return n.length<=this.resolve(t)}})}matches(t,r){let n=!1,i,a;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:a}=r:i=r),this.test({name:a||"matches",message:i||_c.matches,params:{regex:t},skipAbsent:!0,test:s=>s===""&&n||s.search(t)!==-1})}email(t=_c.email){return this.matches(fFt,{name:"email",message:t,excludeEmptyString:!0})}url(t=_c.url){return this.matches(dFt,{name:"url",message:t,excludeEmptyString:!0})}uuid(t=_c.uuid){return this.matches(hFt,{name:"uuid",message:t,excludeEmptyString:!1})}datetime(t){let r="",n,i;return t&&(typeof t=="object"?{message:r="",allowOffset:n=!1,precision:i=void 0}=t:r=t),this.matches(yFt,{name:"datetime",message:r||_c.datetime,excludeEmptyString:!0}).test({name:"datetime_offset",message:r||_c.datetime_offset,params:{allowOffset:n},skipAbsent:!0,test:a=>{if(!a||n)return!0;let s=Cte(a);return s?!!s.z:!1}}).test({name:"datetime_precision",message:r||_c.datetime_precision,params:{precision:i},skipAbsent:!0,test:a=>{if(!a||i==null)return!0;let s=Cte(a);return s?s.precision===i:!1}})}ensure(){return this.default("").transform(t=>t===null?"":t)}trim(t=_c.trim){return this.transform(r=>r!=null?r.trim():r).test({message:t,name:"trim",test:bFt})}lowercase(t=_c.lowercase){return this.transform(r=>cf(r)?r:r.toLowerCase()).test({message:t,name:"string_case",exclusive:!0,skipAbsent:!0,test:r=>cf(r)||r===r.toLowerCase()})}uppercase(t=_c.uppercase){return this.transform(r=>cf(r)?r:r.toUpperCase()).test({message:t,name:"string_case",exclusive:!0,skipAbsent:!0,test:r=>cf(r)||r===r.toUpperCase()})}};LTe.prototype=sS.prototype;var _Ft=e=>e!=+e;function $Te(){return new oS}var oS=class extends ao{constructor(){super({type:"number",check(t){return t instanceof Number&&(t=t.valueOf()),typeof t=="number"&&!_Ft(t)}}),this.withMutation(()=>{this.transform((t,r,n)=>{if(!n.spec.coerce)return t;let i=t;if(typeof i=="string"){if(i=i.replace(/\s/g,""),i==="")return NaN;i=+i}return n.isType(i)||i===null?i:parseFloat(i)})})}min(t,r=J0.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:t},skipAbsent:!0,test(n){return n>=this.resolve(t)}})}max(t,r=J0.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:t},skipAbsent:!0,test(n){return n<=this.resolve(t)}})}lessThan(t,r=J0.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:t},skipAbsent:!0,test(n){return n<this.resolve(t)}})}moreThan(t,r=J0.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:t},skipAbsent:!0,test(n){return n>this.resolve(t)}})}positive(t=J0.positive){return this.moreThan(0,t)}negative(t=J0.negative){return this.lessThan(0,t)}integer(t=J0.integer){return this.test({name:"integer",message:t,skipAbsent:!0,test:r=>Number.isInteger(r)})}truncate(){return this.transform(t=>cf(t)?t:t|0)}round(t){var r;let n=["ceil","floor","round","trunc"];if(t=((r=t)==null?void 0:r.toLowerCase())||"round",t==="trunc")return this.truncate();if(n.indexOf(t.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(i=>cf(i)?i:Math[t](i))}};$Te.prototype=oS.prototype;var BTe=new Date(""),xFt=e=>Object.prototype.toString.call(e)==="[object Date]";function Fte(){return new T6}var T6=class e extends ao{constructor(){super({type:"date",check(t){return xFt(t)&&!isNaN(t.getTime())}}),this.withMutation(()=>{this.transform((t,r,n)=>!n.spec.coerce||n.isType(t)||t===null?t:(t=pFt(t),isNaN(t)?e.INVALID_DATE:new Date(t)))})}prepareParam(t,r){let n;if(Cd.isRef(t))n=t;else{let i=this.cast(t);if(!this._typeCheck(i))throw new TypeError(`\`${r}\` must be a Date or a value that can be \`cast()\` to a Date`);n=i}return n}min(t,r=Tte.min){let n=this.prepareParam(t,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:t},skipAbsent:!0,test(i){return i>=this.resolve(n)}})}max(t,r=Tte.max){let n=this.prepareParam(t,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:t},skipAbsent:!0,test(i){return i<=this.resolve(n)}})}};T6.INVALID_DATE=BTe;Fte.prototype=T6.prototype;Fte.INVALID_DATE=BTe;function EFt(e,t=[]){let r=[],n=new Set,i=new Set(t.map(([s,o])=>`${s}-${o}`));function a(s,o){let c=rb.split(s)[0];n.add(c),i.has(`${o}-${c}`)||r.push([o,c])}for(let s of Object.keys(e)){let o=e[s];n.add(s),Cd.isRef(o)&&o.isSibling?a(o.path,s):nb(o)&&"deps"in o&&o.deps.forEach(c=>a(c,s))}return ZRt.default.array(Array.from(n),r).reverse()}function DTe(e,t){let r=1/0;return e.some((n,i)=>{var a;if((a=t.path)!=null&&a.includes(n))return r=i,!0}),r}function MTe(e){return(t,r)=>DTe(e,t)-DTe(e,r)}var UTe=(e,t,r)=>{if(typeof e!="string")return e;let n=e;try{n=JSON.parse(e)}catch{}return r.isType(n)?n:e};function iI(e){if("fields"in e){let t={};for(let[r,n]of Object.entries(e.fields))t[r]=iI(n);return e.setFields(t)}if(e.type==="array"){let t=e.optional();return t.innerType&&(t.innerType=iI(t.innerType)),t}return e.type==="tuple"?e.optional().clone({types:e.spec.types.map(iI)}):"optional"in e?e.optional():e}var SFt=(e,t)=>{let r=[...rb.normalizePath(t)];if(r.length===1)return r[0]in e;let n=r.pop(),i=rb.getter(rb.join(r),!0)(e);return!!(i&&n in i)},CTe=e=>Object.prototype.toString.call(e)==="[object Object]";function kFt(e,t){let r=Object.keys(e.fields);return Object.keys(t).filter(n=>r.indexOf(n)===-1)}var AFt=MTe([]);function zTe(e){return new uS(e)}var uS=class extends ao{constructor(t){super({type:"object",check(r){return CTe(r)||typeof r=="function"}}),this.fields=Object.create(null),this._sortErrors=AFt,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{t&&this.shape(t)})}_cast(t,r={}){var n;let i=super._cast(t,r);if(i===void 0)return this.getDefault(r);if(!this._typeCheck(i))return i;let a=this.fields,s=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,o=[].concat(this._nodes,Object.keys(i).filter(d=>!this._nodes.includes(d))),c={},p=Object.assign({},r,{parent:c,__validating:r.__validating||!1}),f=!1;for(let d of o){let h=a[d],g=d in i;if(h){let v,y=i[d];p.path=(r.path?`${r.path}.`:"")+d,h=h.resolve({value:y,context:r.context,parent:c});let _=h instanceof ao?h.spec:void 0,x=_?.strict;if(_!=null&&_.strip){f=f||d in i;continue}v=!r.__validating||!x?h.cast(i[d],p):i[d],v!==void 0&&(c[d]=v)}else g&&!s&&(c[d]=i[d]);(g!==d in c||c[d]!==i[d])&&(f=!0)}return f?c:i}_validate(t,r={},n,i){let{from:a=[],originalValue:s=t,recursive:o=this.spec.recursive}=r;r.from=[{schema:this,value:s},...a],r.__validating=!0,r.originalValue=s,super._validate(t,r,n,(c,p)=>{if(!o||!CTe(p)){i(c,p);return}s=s||p;let f=[];for(let d of this._nodes){let h=this.fields[d];!h||Cd.isRef(h)||f.push(h.asNestedTest({options:r,key:d,parent:p,parentPath:r.path,originalParent:s}))}this.runTests({tests:f,value:p,originalValue:s,options:r},n,d=>{i(d.sort(this._sortErrors).concat(c),p)})})}clone(t){let r=super.clone(t);return r.fields=Object.assign({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(t){let r=super.concat(t),n=r.fields;for(let[i,a]of Object.entries(this.fields)){let s=n[i];n[i]=s===void 0?a:s}return r.withMutation(i=>i.setFields(n,[...this._excludedEdges,...t._excludedEdges]))}_getDefault(t){if("default"in this.spec)return super._getDefault(t);if(!this._nodes.length)return;let r={};return this._nodes.forEach(n=>{var i;let a=this.fields[n],s=t;(i=s)!=null&&i.value&&(s=Object.assign({},s,{parent:s.value,value:s.value[n]})),r[n]=a&&"getDefault"in a?a.getDefault(s):void 0}),r}setFields(t,r){let n=this.clone();return n.fields=t,n._nodes=EFt(t,r),n._sortErrors=MTe(Object.keys(t)),r&&(n._excludedEdges=r),n}shape(t,r=[]){return this.clone().withMutation(n=>{let i=n._excludedEdges;return r.length&&(Array.isArray(r[0])||(r=[r]),i=[...n._excludedEdges,...r]),n.setFields(Object.assign(n.fields,t),i)})}partial(){let t={};for(let[r,n]of Object.entries(this.fields))t[r]="optional"in n&&n.optional instanceof Function?n.optional():n;return this.setFields(t)}deepPartial(){return iI(this)}pick(t){let r={};for(let n of t)this.fields[n]&&(r[n]=this.fields[n]);return this.setFields(r,this._excludedEdges.filter(([n,i])=>t.includes(n)&&t.includes(i)))}omit(t){let r=[];for(let n of Object.keys(this.fields))t.includes(n)||r.push(n);return this.pick(r)}from(t,r,n){let i=rb.getter(t,!0);return this.transform(a=>{if(!a)return a;let s=a;return SFt(a,t)&&(s=Object.assign({},a),n||delete s[t],s[r]=i(a)),s})}json(){return this.transform(UTe)}noUnknown(t=!0,r=Dte.noUnknown){typeof t!="boolean"&&(r=t,t=!0);let n=this.test({name:"noUnknown",exclusive:!0,message:r,test(i){if(i==null)return!0;let a=kFt(this.schema,i);return!t||a.length===0||this.createError({params:{unknown:a.join(", ")}})}});return n.spec.noUnknown=t,n}unknown(t=!0,r=Dte.noUnknown){return this.noUnknown(!t,r)}transformKeys(t){return this.transform(r=>{if(!r)return r;let n={};for(let i of Object.keys(r))n[t(i)]=r[i];return n})}camelCase(){return this.transformKeys(Ate.camelCase)}snakeCase(){return this.transformKeys(Ate.snakeCase)}constantCase(){return this.transformKeys(t=>Ate.snakeCase(t).toUpperCase())}describe(t){let r=(t?this.resolve(t):this).clone(),n=super.describe(t);n.fields={};for(let[a,s]of Object.entries(r.fields)){var i;let o=t;(i=o)!=null&&i.value&&(o=Object.assign({},o,{parent:o.value,value:o.value[a]})),n.fields[a]=s.describe(o)}return n}};zTe.prototype=uS.prototype;function HTe(e){return new cS(e)}var cS=class extends ao{constructor(t){super({type:"array",spec:{types:t},check(r){return Array.isArray(r)}}),this.innerType=void 0,this.innerType=t}_cast(t,r){let n=super._cast(t,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,a=n.map((s,o)=>{let c=this.innerType.cast(s,Object.assign({},r,{path:`${r.path||""}[${o}]`}));return c!==s&&(i=!0),c});return i?a:n}_validate(t,r={},n,i){var a;let s=this.innerType,o=(a=r.recursive)!=null?a:this.spec.recursive;r.originalValue!=null&&r.originalValue,super._validate(t,r,n,(c,p)=>{var f;if(!o||!s||!this._typeCheck(p)){i(c,p);return}let d=new Array(p.length);for(let g=0;g<p.length;g++){var h;d[g]=s.asNestedTest({options:r,index:g,parent:p,parentPath:r.path,originalParent:(h=r.originalValue)!=null?h:t})}this.runTests({value:p,tests:d,originalValue:(f=r.originalValue)!=null?f:t,options:r},n,g=>i(g.concat(c),p))})}clone(t){let r=super.clone(t);return r.innerType=this.innerType,r}json(){return this.transform(UTe)}concat(t){let r=super.concat(t);return r.innerType=this.innerType,t.innerType&&(r.innerType=r.innerType?r.innerType.concat(t.innerType):t.innerType),r}of(t){let r=this.clone();if(!nb(t))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+Dd(t));return r.innerType=t,r.spec=Object.assign({},r.spec,{types:t}),r}length(t,r=nI.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:t},skipAbsent:!0,test(n){return n.length===this.resolve(t)}})}min(t,r){return r=r||nI.min,this.test({message:r,name:"min",exclusive:!0,params:{min:t},skipAbsent:!0,test(n){return n.length>=this.resolve(t)}})}max(t,r){return r=r||nI.max,this.test({message:r,name:"max",exclusive:!0,params:{max:t},skipAbsent:!0,test(n){return n.length<=this.resolve(t)}})}ensure(){return this.default(()=>[]).transform((t,r)=>this._typeCheck(t)?t:r==null?[]:[].concat(r))}compact(t){let r=t?(n,i,a)=>!t(n,i,a):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(t){let r=(t?this.resolve(t):this).clone(),n=super.describe(t);if(r.innerType){var i;let a=t;(i=a)!=null&&i.value&&(a=Object.assign({},a,{parent:a.value,value:a.value[0]})),n.innerType=r.innerType.describe(a)}return n}};HTe.prototype=cS.prototype;function VTe(e){return new lS(e)}var lS=class extends ao{constructor(t){super({type:"tuple",spec:{types:t},check(r){let n=this.spec.types;return Array.isArray(r)&&r.length===n.length}}),this.withMutation(()=>{this.typeError(jTe.notType)})}_cast(t,r){let{types:n}=this.spec,i=super._cast(t,r);if(!this._typeCheck(i))return i;let a=!1,s=n.map((o,c)=>{let p=o.cast(i[c],Object.assign({},r,{path:`${r.path||""}[${c}]`}));return p!==i[c]&&(a=!0),p});return a?s:i}_validate(t,r={},n,i){let a=this.spec.types;super._validate(t,r,n,(s,o)=>{var c;if(!this._typeCheck(o)){i(s,o);return}let p=[];for(let[d,h]of a.entries()){var f;p[d]=h.asNestedTest({options:r,index:d,parent:o,parentPath:r.path,originalParent:(f=r.originalValue)!=null?f:t})}this.runTests({value:o,tests:p,originalValue:(c=r.originalValue)!=null?c:t,options:r},n,d=>i(d.concat(s),o))})}describe(t){let r=(t?this.resolve(t):this).clone(),n=super.describe(t);return n.innerType=r.spec.types.map((i,a)=>{var s;let o=t;return(s=o)!=null&&s.value&&(o=Object.assign({},o,{parent:o.value,value:o.value[a]})),i.describe(o)}),n}};VTe.prototype=lS.prototype;function TFt(e){return new Pte(e)}var Pte=class e{constructor(t){this.type="lazy",this.__isYupSchema__=!0,this.spec=void 0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!nb(i))throw new TypeError("lazy() functions must return a valid schema");return this.spec.optional&&(i=i.optional()),i.resolve(n)},this.builder=t,this.spec={meta:void 0,optional:!1}}clone(t){let r=new e(this.builder);return r.spec=Object.assign({},this.spec,t),r}optionality(t){return this.clone({optional:t})}optional(){return this.optionality(!0)}resolve(t){return this._resolve(t.value,t)}cast(t,r){return this._resolve(t,r).cast(t,r)}asNestedTest(t){let{key:r,index:n,parent:i,options:a}=t,s=i[n??r];return this._resolve(s,Object.assign({},a,{value:s,parent:i})).asNestedTest(t)}validate(t,r){return this._resolve(t,r).validate(t,r)}validateSync(t,r){return this._resolve(t,r).validateSync(t,r)}validateAt(t,r,n){return this._resolve(r,n).validateAt(t,r,n)}validateSyncAt(t,r,n){return this._resolve(r,n).validateSyncAt(t,r,n)}isValid(t,r){return this._resolve(t,r).isValid(t,r)}isValidSync(t,r){return this._resolve(t,r).isValidSync(t,r)}describe(t){return t?this.resolve(t).describe(t):{type:"lazy",meta:this.spec.meta,label:void 0}}meta(...t){if(t.length===0)return this.spec.meta;let r=this.clone();return r.spec.meta=Object.assign(r.spec.meta||{},t[0]),r}};function OFt(e){Object.keys(e).forEach(t=>{Object.keys(e[t]).forEach(r=>{NTe[t][r]=e[t][r]})})}function DFt(e,t,r){if(!e||!nb(e.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof t!="string")throw new TypeError("A Method name must be provided");if(typeof r!="function")throw new TypeError("Method function must be provided");e.prototype[t]=r}ti.ArraySchema=cS;ti.BooleanSchema=aS;ti.DateSchema=T6;ti.MixedSchema=iS;ti.NumberSchema=oS;ti.ObjectSchema=uS;ti.Schema=ao;ti.StringSchema=sS;ti.TupleSchema=lS;ti.ValidationError=Gu;ti.addMethod=DFt;ti.array=HTe;ti.bool=Rte;ti.boolean=Rte;ti.date=Fte;ti.defaultLocale=NTe;ti.getIn=Ite;ti.isSchema=nb;ti.lazy=TFt;ti.mixed=qTe;ti.number=$Te;ti.object=zTe;ti.printValue=Dd;ti.reach=uFt;ti.ref=oFt;ti.setLocale=OFt;ti.string=LTe;ti.tuple=VTe});var pS=b(($Br,WTe)=>{var CFt="2.0.0",PFt=Number.MAX_SAFE_INTEGER||9007199254740991,IFt=16,RFt=256-6,FFt=["major","premajor","minor","preminor","patch","prepatch","prerelease"];WTe.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:IFt,MAX_SAFE_BUILD_LENGTH:RFt,MAX_SAFE_INTEGER:PFt,RELEASE_TYPES:FFt,SEMVER_SPEC_VERSION:CFt,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var fS=b((BBr,KTe)=>{var jFt=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};KTe.exports=jFt});var O6=b((Zm,YTe)=>{var{MAX_SAFE_COMPONENT_LENGTH:jte,MAX_SAFE_BUILD_LENGTH:NFt,MAX_LENGTH:qFt}=pS(),LFt=fS();Zm=YTe.exports={};var $Ft=Zm.re=[],BFt=Zm.safeRe=[],ar=Zm.src=[],sr=Zm.t={},MFt=0,Nte="[a-zA-Z0-9-]",UFt=[["\\s",1],["\\d",qFt],[Nte,NFt]],zFt=e=>{for(let[t,r]of UFt)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e},Qr=(e,t,r)=>{let n=zFt(t),i=MFt++;LFt(e,i,t),sr[e]=i,ar[i]=t,$Ft[i]=new RegExp(t,r?"g":void 0),BFt[i]=new RegExp(n,r?"g":void 0)};Qr("NUMERICIDENTIFIER","0|[1-9]\\d*");Qr("NUMERICIDENTIFIERLOOSE","\\d+");Qr("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Nte}*`);Qr("MAINVERSION",`(${ar[sr.NUMERICIDENTIFIER]})\\.(${ar[sr.NUMERICIDENTIFIER]})\\.(${ar[sr.NUMERICIDENTIFIER]})`);Qr("MAINVERSIONLOOSE",`(${ar[sr.NUMERICIDENTIFIERLOOSE]})\\.(${ar[sr.NUMERICIDENTIFIERLOOSE]})\\.(${ar[sr.NUMERICIDENTIFIERLOOSE]})`);Qr("PRERELEASEIDENTIFIER",`(?:${ar[sr.NUMERICIDENTIFIER]}|${ar[sr.NONNUMERICIDENTIFIER]})`);Qr("PRERELEASEIDENTIFIERLOOSE",`(?:${ar[sr.NUMERICIDENTIFIERLOOSE]}|${ar[sr.NONNUMERICIDENTIFIER]})`);Qr("PRERELEASE",`(?:-(${ar[sr.PRERELEASEIDENTIFIER]}(?:\\.${ar[sr.PRERELEASEIDENTIFIER]})*))`);Qr("PRERELEASELOOSE",`(?:-?(${ar[sr.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${ar[sr.PRERELEASEIDENTIFIERLOOSE]})*))`);Qr("BUILDIDENTIFIER",`${Nte}+`);Qr("BUILD",`(?:\\+(${ar[sr.BUILDIDENTIFIER]}(?:\\.${ar[sr.BUILDIDENTIFIER]})*))`);Qr("FULLPLAIN",`v?${ar[sr.MAINVERSION]}${ar[sr.PRERELEASE]}?${ar[sr.BUILD]}?`);Qr("FULL",`^${ar[sr.FULLPLAIN]}$`);Qr("LOOSEPLAIN",`[v=\\s]*${ar[sr.MAINVERSIONLOOSE]}${ar[sr.PRERELEASELOOSE]}?${ar[sr.BUILD]}?`);Qr("LOOSE",`^${ar[sr.LOOSEPLAIN]}$`);Qr("GTLT","((?:<|>)?=?)");Qr("XRANGEIDENTIFIERLOOSE",`${ar[sr.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Qr("XRANGEIDENTIFIER",`${ar[sr.NUMERICIDENTIFIER]}|x|X|\\*`);Qr("XRANGEPLAIN",`[v=\\s]*(${ar[sr.XRANGEIDENTIFIER]})(?:\\.(${ar[sr.XRANGEIDENTIFIER]})(?:\\.(${ar[sr.XRANGEIDENTIFIER]})(?:${ar[sr.PRERELEASE]})?${ar[sr.BUILD]}?)?)?`);Qr("XRANGEPLAINLOOSE",`[v=\\s]*(${ar[sr.XRANGEIDENTIFIERLOOSE]})(?:\\.(${ar[sr.XRANGEIDENTIFIERLOOSE]})(?:\\.(${ar[sr.XRANGEIDENTIFIERLOOSE]})(?:${ar[sr.PRERELEASELOOSE]})?${ar[sr.BUILD]}?)?)?`);Qr("XRANGE",`^${ar[sr.GTLT]}\\s*${ar[sr.XRANGEPLAIN]}$`);Qr("XRANGELOOSE",`^${ar[sr.GTLT]}\\s*${ar[sr.XRANGEPLAINLOOSE]}$`);Qr("COERCEPLAIN",`(^|[^\\d])(\\d{1,${jte}})(?:\\.(\\d{1,${jte}}))?(?:\\.(\\d{1,${jte}}))?`);Qr("COERCE",`${ar[sr.COERCEPLAIN]}(?:$|[^\\d])`);Qr("COERCEFULL",ar[sr.COERCEPLAIN]+`(?:${ar[sr.PRERELEASE]})?(?:${ar[sr.BUILD]})?(?:$|[^\\d])`);Qr("COERCERTL",ar[sr.COERCE],!0);Qr("COERCERTLFULL",ar[sr.COERCEFULL],!0);Qr("LONETILDE","(?:~>?)");Qr("TILDETRIM",`(\\s*)${ar[sr.LONETILDE]}\\s+`,!0);Zm.tildeTrimReplace="$1~";Qr("TILDE",`^${ar[sr.LONETILDE]}${ar[sr.XRANGEPLAIN]}$`);Qr("TILDELOOSE",`^${ar[sr.LONETILDE]}${ar[sr.XRANGEPLAINLOOSE]}$`);Qr("LONECARET","(?:\\^)");Qr("CARETTRIM",`(\\s*)${ar[sr.LONECARET]}\\s+`,!0);Zm.caretTrimReplace="$1^";Qr("CARET",`^${ar[sr.LONECARET]}${ar[sr.XRANGEPLAIN]}$`);Qr("CARETLOOSE",`^${ar[sr.LONECARET]}${ar[sr.XRANGEPLAINLOOSE]}$`);Qr("COMPARATORLOOSE",`^${ar[sr.GTLT]}\\s*(${ar[sr.LOOSEPLAIN]})$|^$`);Qr("COMPARATOR",`^${ar[sr.GTLT]}\\s*(${ar[sr.FULLPLAIN]})$|^$`);Qr("COMPARATORTRIM",`(\\s*)${ar[sr.GTLT]}\\s*(${ar[sr.LOOSEPLAIN]}|${ar[sr.XRANGEPLAIN]})`,!0);Zm.comparatorTrimReplace="$1$2$3";Qr("HYPHENRANGE",`^\\s*(${ar[sr.XRANGEPLAIN]})\\s+-\\s+(${ar[sr.XRANGEPLAIN]})\\s*$`);Qr("HYPHENRANGELOOSE",`^\\s*(${ar[sr.XRANGEPLAINLOOSE]})\\s+-\\s+(${ar[sr.XRANGEPLAINLOOSE]})\\s*$`);Qr("STAR","(<|>)?=?\\s*\\*");Qr("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");Qr("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var uI=b((MBr,JTe)=>{var HFt=Object.freeze({loose:!0}),VFt=Object.freeze({}),GFt=e=>e?typeof e!="object"?HFt:e:VFt;JTe.exports=GFt});var qte=b((UBr,ZTe)=>{var XTe=/^[0-9]+$/,QTe=(e,t)=>{let r=XTe.test(e),n=XTe.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e<t?-1:1},WFt=(e,t)=>QTe(t,e);ZTe.exports={compareIdentifiers:QTe,rcompareIdentifiers:WFt}});var ou=b((zBr,tOe)=>{var cI=fS(),{MAX_LENGTH:eOe,MAX_SAFE_INTEGER:lI}=pS(),{safeRe:pI,t:fI}=O6(),KFt=uI(),{compareIdentifiers:D6}=qte(),Lte=class e{constructor(t,r){if(r=KFt(r),t instanceof e){if(t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>eOe)throw new TypeError(`version is longer than ${eOe} characters`);cI("SemVer",t,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=t.trim().match(r.loose?pI[fI.LOOSE]:pI[fI.FULL]);if(!n)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>lI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>lI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>lI||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let a=+i;if(a>=0&&a<lI)return a}return i}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(cI("SemVer.compare",this.version,this.options,t),!(t instanceof e)){if(typeof t=="string"&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),D6(this.major,t.major)||D6(this.minor,t.minor)||D6(this.patch,t.patch)}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let n=this.prerelease[r],i=t.prerelease[r];if(cI("prerelease compare",r,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return D6(n,i)}while(++r)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let r=0;do{let n=this.build[r],i=t.build[r];if(cI("build compare",r,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return D6(n,i)}while(++r)}inc(t,r,n){if(t.startsWith("pre")){if(!r&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(r){let i=`-${r}`.match(this.options.loose?pI[fI.PRERELEASELOOSE]:pI[fI.PRERELEASE]);if(!i||i[1]!==r)throw new Error(`invalid identifier: ${r}`)}}switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,n),this.inc("pre",r,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,n),this.inc("pre",r,n);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let i=Number(n)?1:0;if(this.prerelease.length===0)this.prerelease=[i];else{let a=this.prerelease.length;for(;--a>=0;)typeof this.prerelease[a]=="number"&&(this.prerelease[a]++,a=-2);if(a===-1){if(r===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(r){let a=[r,i];n===!1&&(a=[r]),D6(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=a):this.prerelease=a}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};tOe.exports=Lte});var ib=b((HBr,nOe)=>{var rOe=ou(),YFt=(e,t,r=!1)=>{if(e instanceof rOe)return e;try{return new rOe(e,t)}catch(n){if(!r)return null;throw n}};nOe.exports=YFt});var aOe=b((VBr,iOe)=>{var JFt=ib(),XFt=(e,t)=>{let r=JFt(e,t);return r?r.version:null};iOe.exports=XFt});var oOe=b((GBr,sOe)=>{var QFt=ib(),ZFt=(e,t)=>{let r=QFt(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};sOe.exports=ZFt});var lOe=b((WBr,cOe)=>{var uOe=ou(),ejt=(e,t,r,n,i)=>{typeof r=="string"&&(i=n,n=r,r=void 0);try{return new uOe(e instanceof uOe?e.version:e,r).inc(t,n,i).version}catch{return null}};cOe.exports=ejt});var dOe=b((KBr,fOe)=>{var pOe=ib(),tjt=(e,t)=>{let r=pOe(e,null,!0),n=pOe(t,null,!0),i=r.compare(n);if(i===0)return null;let a=i>0,s=a?r:n,o=a?n:r,c=!!s.prerelease.length;if(!!o.prerelease.length&&!c){if(!o.patch&&!o.minor)return"major";if(o.compareMain(s)===0)return o.minor&&!o.patch?"minor":"patch"}let f=c?"pre":"";return r.major!==n.major?f+"major":r.minor!==n.minor?f+"minor":r.patch!==n.patch?f+"patch":"prerelease"};fOe.exports=tjt});var mOe=b((YBr,hOe)=>{var rjt=ou(),njt=(e,t)=>new rjt(e,t).major;hOe.exports=njt});var vOe=b((JBr,gOe)=>{var ijt=ou(),ajt=(e,t)=>new ijt(e,t).minor;gOe.exports=ajt});var bOe=b((XBr,yOe)=>{var sjt=ou(),ojt=(e,t)=>new sjt(e,t).patch;yOe.exports=ojt});var _Oe=b((QBr,wOe)=>{var ujt=ib(),cjt=(e,t)=>{let r=ujt(e,t);return r&&r.prerelease.length?r.prerelease:null};wOe.exports=cjt});var Bl=b((ZBr,EOe)=>{var xOe=ou(),ljt=(e,t,r)=>new xOe(e,r).compare(new xOe(t,r));EOe.exports=ljt});var kOe=b((eMr,SOe)=>{var pjt=Bl(),fjt=(e,t,r)=>pjt(t,e,r);SOe.exports=fjt});var TOe=b((tMr,AOe)=>{var djt=Bl(),hjt=(e,t)=>djt(e,t,!0);AOe.exports=hjt});var dI=b((rMr,DOe)=>{var OOe=ou(),mjt=(e,t,r)=>{let n=new OOe(e,r),i=new OOe(t,r);return n.compare(i)||n.compareBuild(i)};DOe.exports=mjt});var POe=b((nMr,COe)=>{var gjt=dI(),vjt=(e,t)=>e.sort((r,n)=>gjt(r,n,t));COe.exports=vjt});var ROe=b((iMr,IOe)=>{var yjt=dI(),bjt=(e,t)=>e.sort((r,n)=>yjt(n,r,t));IOe.exports=bjt});var dS=b((aMr,FOe)=>{var wjt=Bl(),_jt=(e,t,r)=>wjt(e,t,r)>0;FOe.exports=_jt});var hI=b((sMr,jOe)=>{var xjt=Bl(),Ejt=(e,t,r)=>xjt(e,t,r)<0;jOe.exports=Ejt});var $te=b((oMr,NOe)=>{var Sjt=Bl(),kjt=(e,t,r)=>Sjt(e,t,r)===0;NOe.exports=kjt});var Bte=b((uMr,qOe)=>{var Ajt=Bl(),Tjt=(e,t,r)=>Ajt(e,t,r)!==0;qOe.exports=Tjt});var mI=b((cMr,LOe)=>{var Ojt=Bl(),Djt=(e,t,r)=>Ojt(e,t,r)>=0;LOe.exports=Djt});var gI=b((lMr,$Oe)=>{var Cjt=Bl(),Pjt=(e,t,r)=>Cjt(e,t,r)<=0;$Oe.exports=Pjt});var Mte=b((pMr,BOe)=>{var Ijt=$te(),Rjt=Bte(),Fjt=dS(),jjt=mI(),Njt=hI(),qjt=gI(),Ljt=(e,t,r,n)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e===r;case"!==":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e!==r;case"":case"=":case"==":return Ijt(e,r,n);case"!=":return Rjt(e,r,n);case">":return Fjt(e,r,n);case">=":return jjt(e,r,n);case"<":return Njt(e,r,n);case"<=":return qjt(e,r,n);default:throw new TypeError(`Invalid operator: ${t}`)}};BOe.exports=Ljt});var UOe=b((fMr,MOe)=>{var $jt=ou(),Bjt=ib(),{safeRe:vI,t:yI}=O6(),Mjt=(e,t)=>{if(e instanceof $jt)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let r=null;if(!t.rtl)r=e.match(t.includePrerelease?vI[yI.COERCEFULL]:vI[yI.COERCE]);else{let c=t.includePrerelease?vI[yI.COERCERTLFULL]:vI[yI.COERCERTL],p;for(;(p=c.exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||p.index+p[0].length!==r.index+r[0].length)&&(r=p),c.lastIndex=p.index+p[1].length+p[2].length;c.lastIndex=-1}if(r===null)return null;let n=r[2],i=r[3]||"0",a=r[4]||"0",s=t.includePrerelease&&r[5]?`-${r[5]}`:"",o=t.includePrerelease&&r[6]?`+${r[6]}`:"";return Bjt(`${n}.${i}.${a}${s}${o}`,t)};MOe.exports=Mjt});var HOe=b((dMr,zOe)=>{var Ute=class{constructor(){this.max=1e3,this.map=new Map}get(t){let r=this.map.get(t);if(r!==void 0)return this.map.delete(t),this.map.set(t,r),r}delete(t){return this.map.delete(t)}set(t,r){if(!this.delete(t)&&r!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(t,r)}return this}};zOe.exports=Ute});var Ml=b((hMr,KOe)=>{var Ujt=/\s+/g,zte=class e{constructor(t,r){if(r=Hjt(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof Hte)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().replace(Ujt," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(i=>!GOe(i[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&Xjt(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let t=0;t<this.set.length;t++){t>0&&(this.formatted+="||");let r=this.set[t];for(let n=0;n<r.length;n++)n>0&&(this.formatted+=" "),this.formatted+=r[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(t){let n=((this.options.includePrerelease&&Yjt)|(this.options.loose&&Jjt))+":"+t,i=VOe.get(n);if(i)return i;let a=this.options.loose,s=a?xc[Wu.HYPHENRANGELOOSE]:xc[Wu.HYPHENRANGE];t=t.replace(s,oNt(this.options.includePrerelease)),fa("hyphen replace",t),t=t.replace(xc[Wu.COMPARATORTRIM],Gjt),fa("comparator trim",t),t=t.replace(xc[Wu.TILDETRIM],Wjt),fa("tilde trim",t),t=t.replace(xc[Wu.CARETTRIM],Kjt),fa("caret trim",t);let o=t.split(" ").map(d=>Qjt(d,this.options)).join(" ").split(/\s+/).map(d=>sNt(d,this.options));a&&(o=o.filter(d=>(fa("loose invalid filter",d,this.options),!!d.match(xc[Wu.COMPARATORLOOSE])))),fa("range list",o);let c=new Map,p=o.map(d=>new Hte(d,this.options));for(let d of p){if(GOe(d))return[d];c.set(d.value,d)}c.size>1&&c.has("")&&c.delete("");let f=[...c.values()];return VOe.set(n,f),f}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(n=>WOe(n,r)&&t.set.some(i=>WOe(i,r)&&n.every(a=>i.every(s=>a.intersects(s,r)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new Vjt(t,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(uNt(this.set[r],t,this.options))return!0;return!1}};KOe.exports=zte;var zjt=HOe(),VOe=new zjt,Hjt=uI(),Hte=hS(),fa=fS(),Vjt=ou(),{safeRe:xc,t:Wu,comparatorTrimReplace:Gjt,tildeTrimReplace:Wjt,caretTrimReplace:Kjt}=O6(),{FLAG_INCLUDE_PRERELEASE:Yjt,FLAG_LOOSE:Jjt}=pS(),GOe=e=>e.value==="<0.0.0-0",Xjt=e=>e.value==="",WOe=(e,t)=>{let r=!0,n=e.slice(),i=n.pop();for(;r&&n.length;)r=n.every(a=>i.intersects(a,t)),i=n.pop();return r},Qjt=(e,t)=>(fa("comp",e,t),e=tNt(e,t),fa("caret",e),e=Zjt(e,t),fa("tildes",e),e=nNt(e,t),fa("xrange",e),e=aNt(e,t),fa("stars",e),e),Ku=e=>!e||e.toLowerCase()==="x"||e==="*",Zjt=(e,t)=>e.trim().split(/\s+/).map(r=>eNt(r,t)).join(" "),eNt=(e,t)=>{let r=t.loose?xc[Wu.TILDELOOSE]:xc[Wu.TILDE];return e.replace(r,(n,i,a,s,o)=>{fa("tilde",e,n,i,a,s,o);let c;return Ku(i)?c="":Ku(a)?c=`>=${i}.0.0 <${+i+1}.0.0-0`:Ku(s)?c=`>=${i}.${a}.0 <${i}.${+a+1}.0-0`:o?(fa("replaceTilde pr",o),c=`>=${i}.${a}.${s}-${o} <${i}.${+a+1}.0-0`):c=`>=${i}.${a}.${s} <${i}.${+a+1}.0-0`,fa("tilde return",c),c})},tNt=(e,t)=>e.trim().split(/\s+/).map(r=>rNt(r,t)).join(" "),rNt=(e,t)=>{fa("caret",e,t);let r=t.loose?xc[Wu.CARETLOOSE]:xc[Wu.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(i,a,s,o,c)=>{fa("caret",e,i,a,s,o,c);let p;return Ku(a)?p="":Ku(s)?p=`>=${a}.0.0${n} <${+a+1}.0.0-0`:Ku(o)?a==="0"?p=`>=${a}.${s}.0${n} <${a}.${+s+1}.0-0`:p=`>=${a}.${s}.0${n} <${+a+1}.0.0-0`:c?(fa("replaceCaret pr",c),a==="0"?s==="0"?p=`>=${a}.${s}.${o}-${c} <${a}.${s}.${+o+1}-0`:p=`>=${a}.${s}.${o}-${c} <${a}.${+s+1}.0-0`:p=`>=${a}.${s}.${o}-${c} <${+a+1}.0.0-0`):(fa("no pr"),a==="0"?s==="0"?p=`>=${a}.${s}.${o}${n} <${a}.${s}.${+o+1}-0`:p=`>=${a}.${s}.${o}${n} <${a}.${+s+1}.0-0`:p=`>=${a}.${s}.${o} <${+a+1}.0.0-0`),fa("caret return",p),p})},nNt=(e,t)=>(fa("replaceXRanges",e,t),e.split(/\s+/).map(r=>iNt(r,t)).join(" ")),iNt=(e,t)=>{e=e.trim();let r=t.loose?xc[Wu.XRANGELOOSE]:xc[Wu.XRANGE];return e.replace(r,(n,i,a,s,o,c)=>{fa("xRange",e,n,i,a,s,o,c);let p=Ku(a),f=p||Ku(s),d=f||Ku(o),h=d;return i==="="&&h&&(i=""),c=t.includePrerelease?"-0":"",p?i===">"||i==="<"?n="<0.0.0-0":n="*":i&&h?(f&&(s=0),o=0,i===">"?(i=">=",f?(a=+a+1,s=0,o=0):(s=+s+1,o=0)):i==="<="&&(i="<",f?a=+a+1:s=+s+1),i==="<"&&(c="-0"),n=`${i+a}.${s}.${o}${c}`):f?n=`>=${a}.0.0${c} <${+a+1}.0.0-0`:d&&(n=`>=${a}.${s}.0${c} <${a}.${+s+1}.0-0`),fa("xRange return",n),n})},aNt=(e,t)=>(fa("replaceStars",e,t),e.trim().replace(xc[Wu.STAR],"")),sNt=(e,t)=>(fa("replaceGTE0",e,t),e.trim().replace(xc[t.includePrerelease?Wu.GTE0PRE:Wu.GTE0],"")),oNt=e=>(t,r,n,i,a,s,o,c,p,f,d,h)=>(Ku(n)?r="":Ku(i)?r=`>=${n}.0.0${e?"-0":""}`:Ku(a)?r=`>=${n}.${i}.0${e?"-0":""}`:s?r=`>=${r}`:r=`>=${r}${e?"-0":""}`,Ku(p)?c="":Ku(f)?c=`<${+p+1}.0.0-0`:Ku(d)?c=`<${p}.${+f+1}.0-0`:h?c=`<=${p}.${f}.${d}-${h}`:e?c=`<${p}.${f}.${+d+1}-0`:c=`<=${c}`,`${r} ${c}`.trim()),uNt=(e,t,r)=>{for(let n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!r.includePrerelease){for(let n=0;n<e.length;n++)if(fa(e[n].semver),e[n].semver!==Hte.ANY&&e[n].semver.prerelease.length>0){let i=e[n].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0}return!1}return!0}});var hS=b((mMr,eDe)=>{var mS=Symbol("SemVer ANY"),Wte=class e{static get ANY(){return mS}constructor(t,r){if(r=YOe(r),t instanceof e){if(t.loose===!!r.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),Gte("comparator",t,r),this.options=r,this.loose=!!r.loose,this.parse(t),this.semver===mS?this.value="":this.value=this.operator+this.semver.version,Gte("comp",this)}parse(t){let r=this.options.loose?JOe[XOe.COMPARATORLOOSE]:JOe[XOe.COMPARATOR],n=t.match(r);if(!n)throw new TypeError(`Invalid comparator: ${t}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new QOe(n[2],this.options.loose):this.semver=mS}toString(){return this.value}test(t){if(Gte("Comparator.test",t,this.options.loose),this.semver===mS||t===mS)return!0;if(typeof t=="string")try{t=new QOe(t,this.options)}catch{return!1}return Vte(t,this.operator,this.semver,this.options)}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new ZOe(t.value,r).test(this.value):t.operator===""?t.value===""?!0:new ZOe(this.value,r).test(t.semver):(r=YOe(r),r.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||Vte(this.semver,"<",t.semver,r)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||Vte(this.semver,">",t.semver,r)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};eDe.exports=Wte;var YOe=uI(),{safeRe:JOe,t:XOe}=O6(),Vte=Mte(),Gte=fS(),QOe=ou(),ZOe=Ml()});var gS=b((gMr,tDe)=>{var cNt=Ml(),lNt=(e,t,r)=>{try{t=new cNt(t,r)}catch{return!1}return t.test(e)};tDe.exports=lNt});var nDe=b((vMr,rDe)=>{var pNt=Ml(),fNt=(e,t)=>new pNt(e,t).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));rDe.exports=fNt});var aDe=b((yMr,iDe)=>{var dNt=ou(),hNt=Ml(),mNt=(e,t,r)=>{let n=null,i=null,a=null;try{a=new hNt(t,r)}catch{return null}return e.forEach(s=>{a.test(s)&&(!n||i.compare(s)===-1)&&(n=s,i=new dNt(n,r))}),n};iDe.exports=mNt});var oDe=b((bMr,sDe)=>{var gNt=ou(),vNt=Ml(),yNt=(e,t,r)=>{let n=null,i=null,a=null;try{a=new vNt(t,r)}catch{return null}return e.forEach(s=>{a.test(s)&&(!n||i.compare(s)===1)&&(n=s,i=new gNt(n,r))}),n};sDe.exports=yNt});var lDe=b((wMr,cDe)=>{var Kte=ou(),bNt=Ml(),uDe=dS(),wNt=(e,t)=>{e=new bNt(e,t);let r=new Kte("0.0.0");if(e.test(r)||(r=new Kte("0.0.0-0"),e.test(r)))return r;r=null;for(let n=0;n<e.set.length;++n){let i=e.set[n],a=null;i.forEach(s=>{let o=new Kte(s.semver.version);switch(s.operator){case">":o.prerelease.length===0?o.patch++:o.prerelease.push(0),o.raw=o.format();case"":case">=":(!a||uDe(o,a))&&(a=o);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${s.operator}`)}}),a&&(!r||uDe(r,a))&&(r=a)}return r&&e.test(r)?r:null};cDe.exports=wNt});var fDe=b((_Mr,pDe)=>{var _Nt=Ml(),xNt=(e,t)=>{try{return new _Nt(e,t).range||"*"}catch{return null}};pDe.exports=xNt});var bI=b((xMr,gDe)=>{var ENt=ou(),mDe=hS(),{ANY:SNt}=mDe,kNt=Ml(),ANt=gS(),dDe=dS(),hDe=hI(),TNt=gI(),ONt=mI(),DNt=(e,t,r,n)=>{e=new ENt(e,n),t=new kNt(t,n);let i,a,s,o,c;switch(r){case">":i=dDe,a=TNt,s=hDe,o=">",c=">=";break;case"<":i=hDe,a=ONt,s=dDe,o="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(ANt(e,t,n))return!1;for(let p=0;p<t.set.length;++p){let f=t.set[p],d=null,h=null;if(f.forEach(g=>{g.semver===SNt&&(g=new mDe(">=0.0.0")),d=d||g,h=h||g,i(g.semver,d.semver,n)?d=g:s(g.semver,h.semver,n)&&(h=g)}),d.operator===o||d.operator===c||(!h.operator||h.operator===o)&&a(e,h.semver))return!1;if(h.operator===c&&s(e,h.semver))return!1}return!0};gDe.exports=DNt});var yDe=b((EMr,vDe)=>{var CNt=bI(),PNt=(e,t,r)=>CNt(e,t,">",r);vDe.exports=PNt});var wDe=b((SMr,bDe)=>{var INt=bI(),RNt=(e,t,r)=>INt(e,t,"<",r);bDe.exports=RNt});var EDe=b((kMr,xDe)=>{var _De=Ml(),FNt=(e,t,r)=>(e=new _De(e,r),t=new _De(t,r),e.intersects(t,r));xDe.exports=FNt});var kDe=b((AMr,SDe)=>{var jNt=gS(),NNt=Bl();SDe.exports=(e,t,r)=>{let n=[],i=null,a=null,s=e.sort((f,d)=>NNt(f,d,r));for(let f of s)jNt(f,t,r)?(a=f,i||(i=f)):(a&&n.push([i,a]),a=null,i=null);i&&n.push([i,null]);let o=[];for(let[f,d]of n)f===d?o.push(f):!d&&f===s[0]?o.push("*"):d?f===s[0]?o.push(`<=${d}`):o.push(`${f} - ${d}`):o.push(`>=${f}`);let c=o.join(" || "),p=typeof t.raw=="string"?t.raw:String(t);return c.length<p.length?c:t}});var PDe=b((TMr,CDe)=>{var ADe=Ml(),Jte=hS(),{ANY:Yte}=Jte,vS=gS(),Xte=Bl(),qNt=(e,t,r={})=>{if(e===t)return!0;e=new ADe(e,r),t=new ADe(t,r);let n=!1;e:for(let i of e.set){for(let a of t.set){let s=$Nt(i,a,r);if(n=n||s!==null,s)continue e}if(n)return!1}return!0},LNt=[new Jte(">=0.0.0-0")],TDe=[new Jte(">=0.0.0")],$Nt=(e,t,r)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===Yte){if(t.length===1&&t[0].semver===Yte)return!0;r.includePrerelease?e=LNt:e=TDe}if(t.length===1&&t[0].semver===Yte){if(r.includePrerelease)return!0;t=TDe}let n=new Set,i,a;for(let g of e)g.operator===">"||g.operator===">="?i=ODe(i,g,r):g.operator==="<"||g.operator==="<="?a=DDe(a,g,r):n.add(g.semver);if(n.size>1)return null;let s;if(i&&a){if(s=Xte(i.semver,a.semver,r),s>0)return null;if(s===0&&(i.operator!==">="||a.operator!=="<="))return null}for(let g of n){if(i&&!vS(g,String(i),r)||a&&!vS(g,String(a),r))return null;for(let v of t)if(!vS(g,String(v),r))return!1;return!0}let o,c,p,f,d=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1,h=i&&!r.includePrerelease&&i.semver.prerelease.length?i.semver:!1;d&&d.prerelease.length===1&&a.operator==="<"&&d.prerelease[0]===0&&(d=!1);for(let g of t){if(f=f||g.operator===">"||g.operator===">=",p=p||g.operator==="<"||g.operator==="<=",i){if(h&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===h.major&&g.semver.minor===h.minor&&g.semver.patch===h.patch&&(h=!1),g.operator===">"||g.operator===">="){if(o=ODe(i,g,r),o===g&&o!==i)return!1}else if(i.operator===">="&&!vS(i.semver,String(g),r))return!1}if(a){if(d&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===d.major&&g.semver.minor===d.minor&&g.semver.patch===d.patch&&(d=!1),g.operator==="<"||g.operator==="<="){if(c=DDe(a,g,r),c===g&&c!==a)return!1}else if(a.operator==="<="&&!vS(a.semver,String(g),r))return!1}if(!g.operator&&(a||i)&&s!==0)return!1}return!(i&&p&&!a&&s!==0||a&&f&&!i&&s!==0||h||d)},ODe=(e,t,r)=>{if(!e)return t;let n=Xte(e.semver,t.semver,r);return n>0?e:n<0||t.operator===">"&&e.operator===">="?t:e},DDe=(e,t,r)=>{if(!e)return t;let n=Xte(e.semver,t.semver,r);return n<0?e:n>0||t.operator==="<"&&e.operator==="<="?t:e};CDe.exports=qNt});var jDe=b((OMr,FDe)=>{var Qte=O6(),IDe=pS(),BNt=ou(),RDe=qte(),MNt=ib(),UNt=aOe(),zNt=oOe(),HNt=lOe(),VNt=dOe(),GNt=mOe(),WNt=vOe(),KNt=bOe(),YNt=_Oe(),JNt=Bl(),XNt=kOe(),QNt=TOe(),ZNt=dI(),eqt=POe(),tqt=ROe(),rqt=dS(),nqt=hI(),iqt=$te(),aqt=Bte(),sqt=mI(),oqt=gI(),uqt=Mte(),cqt=UOe(),lqt=hS(),pqt=Ml(),fqt=gS(),dqt=nDe(),hqt=aDe(),mqt=oDe(),gqt=lDe(),vqt=fDe(),yqt=bI(),bqt=yDe(),wqt=wDe(),_qt=EDe(),xqt=kDe(),Eqt=PDe();FDe.exports={parse:MNt,valid:UNt,clean:zNt,inc:HNt,diff:VNt,major:GNt,minor:WNt,patch:KNt,prerelease:YNt,compare:JNt,rcompare:XNt,compareLoose:QNt,compareBuild:ZNt,sort:eqt,rsort:tqt,gt:rqt,lt:nqt,eq:iqt,neq:aqt,gte:sqt,lte:oqt,cmp:uqt,coerce:cqt,Comparator:lqt,Range:pqt,satisfies:fqt,toComparators:dqt,maxSatisfying:hqt,minSatisfying:mqt,minVersion:gqt,validRange:vqt,outside:yqt,gtr:bqt,ltr:wqt,intersects:_qt,simplifyRange:xqt,subset:Eqt,SemVer:BNt,re:Qte.re,src:Qte.src,tokens:Qte.t,SEMVER_SPEC_VERSION:IDe.SEMVER_SPEC_VERSION,RELEASE_TYPES:IDe.RELEASE_TYPES,compareIdentifiers:RDe.compareIdentifiers,rcompareIdentifiers:RDe.rcompareIdentifiers}});var qDe=b((DMr,NDe)=>{"use strict";NDe.exports=Error});var $De=b((CMr,LDe)=>{"use strict";LDe.exports=EvalError});var MDe=b((PMr,BDe)=>{"use strict";BDe.exports=RangeError});var zDe=b((IMr,UDe)=>{"use strict";UDe.exports=ReferenceError});var Zte=b((RMr,HDe)=>{"use strict";HDe.exports=SyntaxError});var yS=b((FMr,VDe)=>{"use strict";VDe.exports=TypeError});var WDe=b((jMr,GDe)=>{"use strict";GDe.exports=URIError});var ere=b((NMr,KDe)=>{"use strict";KDe.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var i=42;t[r]=i;for(r in t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var a=Object.getOwnPropertySymbols(t);if(a.length!==1||a[0]!==r||!Object.prototype.propertyIsEnumerable.call(t,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var s=Object.getOwnPropertyDescriptor(t,r);if(s.value!==i||s.enumerable!==!0)return!1}return!0}});var XDe=b((qMr,JDe)=>{"use strict";var YDe=typeof Symbol<"u"&&Symbol,Sqt=ere();JDe.exports=function(){return typeof YDe!="function"||typeof Symbol!="function"||typeof YDe("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:Sqt()}});var ZDe=b((LMr,QDe)=>{"use strict";var tre={__proto__:null,foo:{}},kqt=Object;QDe.exports=function(){return{__proto__:tre}.foo===tre.foo&&!(tre instanceof kqt)}});var rCe=b(($Mr,tCe)=>{"use strict";var Aqt="Function.prototype.bind called on incompatible ",Tqt=Object.prototype.toString,Oqt=Math.max,Dqt="[object Function]",eCe=function(t,r){for(var n=[],i=0;i<t.length;i+=1)n[i]=t[i];for(var a=0;a<r.length;a+=1)n[a+t.length]=r[a];return n},Cqt=function(t,r){for(var n=[],i=r||0,a=0;i<t.length;i+=1,a+=1)n[a]=t[i];return n},Pqt=function(e,t){for(var r="",n=0;n<e.length;n+=1)r+=e[n],n+1<e.length&&(r+=t);return r};tCe.exports=function(t){var r=this;if(typeof r!="function"||Tqt.apply(r)!==Dqt)throw new TypeError(Aqt+r);for(var n=Cqt(arguments,1),i,a=function(){if(this instanceof i){var f=r.apply(this,eCe(n,arguments));return Object(f)===f?f:this}return r.apply(t,eCe(n,arguments))},s=Oqt(0,r.length-n.length),o=[],c=0;c<s;c++)o[c]="$"+c;if(i=Function("binder","return function ("+Pqt(o,",")+"){ return binder.apply(this,arguments); }")(a),r.prototype){var p=function(){};p.prototype=r.prototype,i.prototype=new p,p.prototype=null}return i}});var wI=b((BMr,nCe)=>{"use strict";var Iqt=rCe();nCe.exports=Function.prototype.bind||Iqt});var aCe=b((MMr,iCe)=>{"use strict";var Rqt=Function.prototype.call,Fqt=Object.prototype.hasOwnProperty,jqt=wI();iCe.exports=jqt.call(Rqt,Fqt)});var F6=b((UMr,lCe)=>{"use strict";var xn,Nqt=qDe(),qqt=$De(),Lqt=MDe(),$qt=zDe(),R6=Zte(),I6=yS(),Bqt=WDe(),cCe=Function,rre=function(e){try{return cCe('"use strict"; return ('+e+").constructor;")()}catch{}},ab=Object.getOwnPropertyDescriptor;if(ab)try{ab({},"")}catch{ab=null}var nre=function(){throw new I6},Mqt=ab?function(){try{return arguments.callee,nre}catch{try{return ab(arguments,"callee").get}catch{return nre}}}():nre,C6=XDe()(),Uqt=ZDe()(),so=Object.getPrototypeOf||(Uqt?function(e){return e.__proto__}:null),P6={},zqt=typeof Uint8Array>"u"||!so?xn:so(Uint8Array),sb={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?xn:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?xn:ArrayBuffer,"%ArrayIteratorPrototype%":C6&&so?so([][Symbol.iterator]()):xn,"%AsyncFromSyncIteratorPrototype%":xn,"%AsyncFunction%":P6,"%AsyncGenerator%":P6,"%AsyncGeneratorFunction%":P6,"%AsyncIteratorPrototype%":P6,"%Atomics%":typeof Atomics>"u"?xn:Atomics,"%BigInt%":typeof BigInt>"u"?xn:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?xn:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?xn:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?xn:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Nqt,"%eval%":eval,"%EvalError%":qqt,"%Float32Array%":typeof Float32Array>"u"?xn:Float32Array,"%Float64Array%":typeof Float64Array>"u"?xn:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?xn:FinalizationRegistry,"%Function%":cCe,"%GeneratorFunction%":P6,"%Int8Array%":typeof Int8Array>"u"?xn:Int8Array,"%Int16Array%":typeof Int16Array>"u"?xn:Int16Array,"%Int32Array%":typeof Int32Array>"u"?xn:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":C6&&so?so(so([][Symbol.iterator]())):xn,"%JSON%":typeof JSON=="object"?JSON:xn,"%Map%":typeof Map>"u"?xn:Map,"%MapIteratorPrototype%":typeof Map>"u"||!C6||!so?xn:so(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?xn:Promise,"%Proxy%":typeof Proxy>"u"?xn:Proxy,"%RangeError%":Lqt,"%ReferenceError%":$qt,"%Reflect%":typeof Reflect>"u"?xn:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?xn:Set,"%SetIteratorPrototype%":typeof Set>"u"||!C6||!so?xn:so(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?xn:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":C6&&so?so(""[Symbol.iterator]()):xn,"%Symbol%":C6?Symbol:xn,"%SyntaxError%":R6,"%ThrowTypeError%":Mqt,"%TypedArray%":zqt,"%TypeError%":I6,"%Uint8Array%":typeof Uint8Array>"u"?xn:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?xn:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?xn:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?xn:Uint32Array,"%URIError%":Bqt,"%WeakMap%":typeof WeakMap>"u"?xn:WeakMap,"%WeakRef%":typeof WeakRef>"u"?xn:WeakRef,"%WeakSet%":typeof WeakSet>"u"?xn:WeakSet};if(so)try{null.error}catch(e){sCe=so(so(e)),sb["%Error.prototype%"]=sCe}var sCe,Hqt=function e(t){var r;if(t==="%AsyncFunction%")r=rre("async function () {}");else if(t==="%GeneratorFunction%")r=rre("function* () {}");else if(t==="%AsyncGeneratorFunction%")r=rre("async function* () {}");else if(t==="%AsyncGenerator%"){var n=e("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(t==="%AsyncIteratorPrototype%"){var i=e("%AsyncGenerator%");i&&so&&(r=so(i.prototype))}return sb[t]=r,r},oCe={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},bS=wI(),_I=aCe(),Vqt=bS.call(Function.call,Array.prototype.concat),Gqt=bS.call(Function.apply,Array.prototype.splice),uCe=bS.call(Function.call,String.prototype.replace),xI=bS.call(Function.call,String.prototype.slice),Wqt=bS.call(Function.call,RegExp.prototype.exec),Kqt=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,Yqt=/\\(\\)?/g,Jqt=function(t){var r=xI(t,0,1),n=xI(t,-1);if(r==="%"&&n!=="%")throw new R6("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new R6("invalid intrinsic syntax, expected opening `%`");var i=[];return uCe(t,Kqt,function(a,s,o,c){i[i.length]=o?uCe(c,Yqt,"$1"):s||a}),i},Xqt=function(t,r){var n=t,i;if(_I(oCe,n)&&(i=oCe[n],n="%"+i[0]+"%"),_I(sb,n)){var a=sb[n];if(a===P6&&(a=Hqt(n)),typeof a>"u"&&!r)throw new I6("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:i,name:n,value:a}}throw new R6("intrinsic "+t+" does not exist!")};lCe.exports=function(t,r){if(typeof t!="string"||t.length===0)throw new I6("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new I6('"allowMissing" argument must be a boolean');if(Wqt(/^%?[^%]*%?$/,t)===null)throw new R6("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=Jqt(t),i=n.length>0?n[0]:"",a=Xqt("%"+i+"%",r),s=a.name,o=a.value,c=!1,p=a.alias;p&&(i=p[0],Gqt(n,Vqt([0,1],p)));for(var f=1,d=!0;f<n.length;f+=1){var h=n[f],g=xI(h,0,1),v=xI(h,-1);if((g==='"'||g==="'"||g==="`"||v==='"'||v==="'"||v==="`")&&g!==v)throw new R6("property names with quotes must have matching quotes");if((h==="constructor"||!d)&&(c=!0),i+="."+h,s="%"+i+"%",_I(sb,s))o=sb[s];else if(o!=null){if(!(h in o)){if(!r)throw new I6("base intrinsic for "+t+" exists, but the property is not available.");return}if(ab&&f+1>=n.length){var y=ab(o,h);d=!!y,d&&"get"in y&&!("originalValue"in y.get)?o=y.get:o=o[h]}else d=_I(o,h),o=o[h];d&&!c&&(sb[s]=o)}}return o}});var SI=b((zMr,pCe)=>{"use strict";var Qqt=F6(),EI=Qqt("%Object.defineProperty%",!0)||!1;if(EI)try{EI({},"a",{value:1})}catch{EI=!1}pCe.exports=EI});var ire=b((HMr,fCe)=>{"use strict";var Zqt=F6(),kI=Zqt("%Object.getOwnPropertyDescriptor%",!0);if(kI)try{kI([],"length")}catch{kI=null}fCe.exports=kI});var gCe=b((VMr,mCe)=>{"use strict";var dCe=SI(),eLt=Zte(),j6=yS(),hCe=ire();mCe.exports=function(t,r,n){if(!t||typeof t!="object"&&typeof t!="function")throw new j6("`obj` must be an object or a function`");if(typeof r!="string"&&typeof r!="symbol")throw new j6("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new j6("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new j6("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new j6("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new j6("`loose`, if provided, must be a boolean");var i=arguments.length>3?arguments[3]:null,a=arguments.length>4?arguments[4]:null,s=arguments.length>5?arguments[5]:null,o=arguments.length>6?arguments[6]:!1,c=!!hCe&&hCe(t,r);if(dCe)dCe(t,r,{configurable:s===null&&c?c.configurable:!s,enumerable:i===null&&c?c.enumerable:!i,value:n,writable:a===null&&c?c.writable:!a});else if(o||!i&&!a&&!s)t[r]=n;else throw new eLt("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")}});var bCe=b((GMr,yCe)=>{"use strict";var are=SI(),vCe=function(){return!!are};vCe.hasArrayLengthDefineBug=function(){if(!are)return null;try{return are([],"length",{value:1}).length!==1}catch{return!0}};yCe.exports=vCe});var SCe=b((WMr,ECe)=>{"use strict";var tLt=F6(),wCe=gCe(),rLt=bCe()(),_Ce=ire(),xCe=yS(),nLt=tLt("%Math.floor%");ECe.exports=function(t,r){if(typeof t!="function")throw new xCe("`fn` is not a function");if(typeof r!="number"||r<0||r>4294967295||nLt(r)!==r)throw new xCe("`length` must be a positive 32-bit integer");var n=arguments.length>2&&!!arguments[2],i=!0,a=!0;if("length"in t&&_Ce){var s=_Ce(t,"length");s&&!s.configurable&&(i=!1),s&&!s.writable&&(a=!1)}return(i||a||!n)&&(rLt?wCe(t,"length",r,!0,!0):wCe(t,"length",r)),t}});var CCe=b((KMr,AI)=>{"use strict";var sre=wI(),TI=F6(),iLt=SCe(),aLt=yS(),TCe=TI("%Function.prototype.apply%"),OCe=TI("%Function.prototype.call%"),DCe=TI("%Reflect.apply%",!0)||sre.call(OCe,TCe),kCe=SI(),sLt=TI("%Math.max%");AI.exports=function(t){if(typeof t!="function")throw new aLt("a function is required");var r=DCe(sre,OCe,arguments);return iLt(r,1+sLt(0,t.length-(arguments.length-1)),!0)};var ACe=function(){return DCe(sre,TCe,arguments)};kCe?kCe(AI.exports,"apply",{value:ACe}):AI.exports.apply=ACe});var FCe=b((YMr,RCe)=>{"use strict";var PCe=F6(),ICe=CCe(),oLt=ICe(PCe("String.prototype.indexOf"));RCe.exports=function(t,r){var n=PCe(t,!!r);return typeof n=="function"&&oLt(t,".prototype.")>-1?ICe(n):n}});var NCe=b((JMr,jCe)=>{"use strict";var uLt=ere();jCe.exports=function(){return uLt()&&!!Symbol.toStringTag}});var MCe=b((XMr,BCe)=>{"use strict";var ore=FCe(),qCe=NCe()(),LCe,$Ce,ure,cre;qCe&&(LCe=ore("Object.prototype.hasOwnProperty"),$Ce=ore("RegExp.prototype.exec"),ure={},OI=function(){throw ure},cre={toString:OI,valueOf:OI},typeof Symbol.toPrimitive=="symbol"&&(cre[Symbol.toPrimitive]=OI));var OI,cLt=ore("Object.prototype.toString"),lLt=Object.getOwnPropertyDescriptor,pLt="[object RegExp]";BCe.exports=qCe?function(t){if(!t||typeof t!="object")return!1;var r=lLt(t,"lastIndex"),n=r&&LCe(r,"value");if(!n)return!1;try{$Ce(t,cre)}catch(i){return i===ure}}:function(t){return!t||typeof t!="object"&&typeof t!="function"?!1:cLt(t)===pLt}});var zCe=b(bi=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});bi.shouldMinimizeToTrayIsActive=bi.appConfigValidation=bi.appProtocolValidation=bi.internalAppRegexValidation=bi.widthValidation=bi.heightValidation=bi.urlValidationForm=bi.urlValidation=bi.iconValidation=bi.forceVersionValidation=bi.appTitleValidation=void 0;var Hr=GTe(),UCe=jDe(),fLt=MCe();bi.appTitleValidation=Hr.string().label("App title").max(26).matches(/^[\w\-\s]+$/,"App title may contain letters, numbers, spaces and dashes only").matches(/^[^\s]+(\s+[^\s]+)*$/,"App title may not begin or end with space").required();function dLt(e){return typeof e!="string"?!1:!isNaN(Number(e))&&!isNaN(parseFloat(e))}function hLt(e){return!(!UCe.valid(e)||!e.split(".").every(t=>dLt(t)))}bi.forceVersionValidation=Hr.string().label("App version").required().when("$currentVersion",([e],t)=>t.test("semantic-version","App version must follow a numeric SemVer versioning scheme (e.g. 1.0.0) and be greater than prior version.",r=>hLt(r)&&UCe.gt(r,e)));bi.iconValidation=Hr.string().label("Icon").url().required("You must upload an icon for your app");bi.urlValidation=Hr.string().matches(/^(?:([a-z0-9+.-]+):\/\/)(?:\S+(?::\S*)?@)?(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*\.?)(?::\d{2,5})?(?:[/?#]\S*)?$/,{message:"Invalid URL. Don't forget to include the protocol (e.g.. https://).",excludeEmptyString:!0}).label("Website URL").required();bi.urlValidationForm=Hr.object().shape({url:bi.urlValidation});bi.heightValidation=Hr.number().label("Height").moreThan(1).lessThan(2e3).required();bi.widthValidation=Hr.number().label("Width").moreThan(1).lessThan(3e3).required();bi.internalAppRegexValidation=Hr.string().required().label("Internal URLs").test("escape-forward-slash","a forward-slash ('/') must be escaped with a back-slash ('\\')",e=>{if(e.includes("/")){let t=e.split("").map(n=>n==="/").filter(n=>n).length,r=((e||"").match(/(?=\\\/)/g)||[]).length;return t===r}return!0}).test("is-regex","${path} must be valid regular expression",e=>fLt(RegExp(e)));bi.appProtocolValidation=Hr.string().required().label("App Protocol").test("ends-with-protocol","Protocols must end with `://`",e=>e.endsWith("://")).test("is-lowercase","Protocols must be lowercase",e=>e===e.toLowerCase()).matches(/^[a-zA-Z-.]+:\/\/$/,"Protocols contain letters, dots (.) and dashes (-) only").min(5);bi.appConfigValidation=Hr.object({id:Hr.string().required(),name:bi.appTitleValidation,url:bi.urlValidation,isFrameBlocked:Hr.boolean().required(),iconUrl:bi.iconValidation,disableDevTools:Hr.boolean().required(),singleInstance:Hr.boolean().required(),customUserAgent:Hr.string().required(),internalURLs:Hr.string().required(),secret:Hr.string().required(),windowOptions:Hr.object({startInFullscreenMode:Hr.boolean().required(),isResizable:Hr.boolean().required(),width:Hr.number().required(),height:Hr.number().required(),hasMinWidth:Hr.boolean().required(),hasMinHeight:Hr.boolean().required(),hasMaxWidth:Hr.boolean().required(),hasMaxHeight:Hr.boolean().required(),minWidth:Hr.number().required(),minHeight:Hr.number().required(),maxWidth:Hr.number().required(),maxHeight:Hr.number().required(),isMaximizable:Hr.boolean().required(),isMinimizable:Hr.boolean().required(),isFullscreenable:Hr.boolean().required(),transparentTitlebar:Hr.boolean().required(),alwaysOnTop:Hr.boolean().required(),transparentInsetTitlebar:Hr.boolean().required(),autoHideMenuBar:Hr.boolean().required()}).required(),meta:Hr.object({schemaVersion:Hr.number().required(),hasAppChanged:Hr.boolean().required(),appIterations:Hr.number().required(),publishedVersions:Hr.object({electron:Hr.string().notRequired(),desktopify:Hr.string().notRequired(),version:Hr.string().notRequired()})}).required()});var mLt=e=>e.trays.some(t=>t.leftClick.role==="toggleMenu"||t.rightClick.role==="toggleMenu");bi.shouldMinimizeToTrayIsActive=mLt});var VCe=b(HCe=>{"use strict";Object.defineProperty(HCe,"__esModule",{value:!0})});var GCe=b(Cn=>{"use strict";Object.defineProperty(Cn,"__esModule",{value:!0});Cn.LegacyProductRecord=Cn.getPlan=Cn.hasPlan=Cn.hasActiveSub=Cn.configurations=Cn.scalePlan=Cn.proPlan=Cn.legacyProPlan=Cn.basicPlan=Cn.products=Cn.PortalConfigKey=void 0;var Pd;(function(e){e.CLIUpdateDev="cli_update_dev",e.CLIUpdateProd="cli_update_prod",e.CLIUpgradeDev="cli_upgrade_dev",e.CLIUpgradeProd="cli_upgrade_prod",e.BuilderUpdateDev="builder_update_dev",e.BuilderUpdateProd="builder_update_prod",e.BuilderUpgradeDev="builder_upgrade_dev",e.BuilderUpgradeProd="builder_upgrade_prod"})(Pd||(Cn.PortalConfigKey=Pd={}));var gr=(e,t)=>Object.assign({id:e},t),wi=(e,t)=>({id:e,prices:t}),DI=(e,t)=>{let r={basic:{label:"Basic",tiers:["basic","legacy_pro","pro","scale"]},legacy_pro:{label:"Pro",tiers:["legacy_pro","pro","scale"]},pro:{label:"Pro",tiers:["pro","scale"]},scale:{label:"Scale",tiers:["scale"]}},{label:n,tiers:i}=r[e];return{tier:e,label:n,eligiblePlanTiers:i,products:{dev:t.dev,prod:t.prod}}},gLt=1,X0=(e,t)=>({default_return_url:"https://app.todesktop.com",business_profile:{headline:"ToDesktop Billing Portal",privacy_policy_url:"https://www.todesktop.com/privacy-policy",terms_of_service_url:"https://www.todesktop.com/terms"},metadata:{key:e,version:gLt},features:{payment_method_update:{enabled:!0},subscription_update:{enabled:!0,default_allowed_updates:["price"],products:t.map(r=>({product:r.id,prices:Object.values(r.prices).filter(n=>n.status==="active").map(n=>n.id)}))}}});Cn.products={dev:{builder:{essential:wi("prod_MoR1S4o0nLv00y",{monthly_99:gr("price_1M4o9XIewCKA2h0IVfGrid8E",{status:"inactive",amount:99,period:"monthly"}),monthly_125:gr("price_1PuuAqIewCKA2h0Iw4judQNj",{status:"active",amount:125,period:"monthly"}),yearly_1200:gr("price_1PuvdgIewCKA2h0IisTKqjFN",{status:"active",amount:1200,period:"yearly"})}),professional:wi("prod_MoR1SchsRDAIgY",{monthly_199:gr("price_1M4o9vIewCKA2h0IHREokdD8",{status:"inactive",amount:199,period:"monthly"}),monthly_240:gr("price_1M4o9vIewCKA2h0IHREokdD8",{status:"inactive",amount:240,period:"monthly"}),monthly_300:gr("price_1PuuHrIewCKA2h0IQfEZ4Wog",{status:"active",amount:300,period:"monthly"}),yearly_2880:gr("price_1PuuJAIewCKA2h0IibpUIhf9",{status:"active",amount:2880,period:"yearly"})})},cli:{founder30:wi("prod_GsL6LaRo4NFD5n",{monthly_30:gr("plan_GsL7NZskOY0TC9",{status:"active",amount:30,period:"monthly"})}),founder50:wi("prod_GsL5O1PdbxOrxJ",{monthly_50:gr("plan_GsL6VYAshfh7c4",{status:"active",amount:50,period:"monthly"}),monthly_90:gr("plan_GsL6VYAshfh7c4",{status:"inactive",amount:90,period:"monthly"})}),founder:wi("prod_Gq0E8nbTYHtkPl",{monthly_100:gr("plan_Gq0FzdmoTJshQL",{status:"inactive",amount:100,period:"monthly"}),monthly_125:gr("price_1PuuMRIewCKA2h0IrggfwCwA",{status:"active",amount:125,period:"monthly"}),yearly_1200:gr("price_1PuuMkIewCKA2h0IRxhkDpmk",{status:"active",amount:1200,period:"yearly"})}),performance:wi("prod_LphQku6BNkzCga",{monthly_300:gr("price_1L821UIewCKA2h0IUwRhicyo",{status:"inactive",amount:300,period:"monthly"}),monthly_375:gr("price_1PuuO7IewCKA2h0IOK9ivzS0",{status:"active",amount:375,period:"monthly"}),yearly_3600:gr("price_1PuuOKIewCKA2h0IrcVvJkgG",{status:"active",amount:3600,period:"yearly"})}),scale:wi("prod_LphQxNgfUIxVfA",{monthly_1200:gr("price_1L821wIewCKA2h0IMLUmjulL",{status:"inactive",amount:1200,period:"monthly"}),monthly_1500:gr("price_1PuuPFIewCKA2h0IbPmKdsJr",{status:"active",amount:1500,period:"monthly"}),yearly_14400:gr("price_1PuuPaIewCKA2h0IhLfSlRFj",{status:"active",amount:14400,period:"yearly"})})},legacy:{essential:wi("prod_FplN7CkqFRH0ye",{monthly_58:gr("plan_FpljxNuZtNFFbm",{status:"active",amount:58,period:"monthly"})}),essentialNew:wi("prod_GYXm5X66hM1Ywj",{monthly_58:gr("plan_GYXmTA3EdfCv4q",{status:"active",amount:58,period:"monthly"}),yearly_580:gr("plan_GYXmTA3EdfCv4q",{status:"active",amount:580,period:"yearly"})}),professional:wi("prod_GYXo54YK5kga12",{monthly_199:gr("plan_GYXoIkvwVKyfF2",{status:"active",amount:199,period:"monthly"}),yearly_1990:gr("price_1KHU70IewCKA2h0IR87yXOQ2",{status:"inactive",amount:1990,period:"yearly"}),yearly_2388:gr("price_1KHU70IewCKA2h0IR87yXOQ2",{status:"active",amount:2388,period:"yearly"})}),startup:wi("prod_Fe8BTslXbdylxV",{monthly_49:gr("plan_Fe8BzLp7k71eGD",{status:"active",amount:49,period:"monthly"}),yearly_200:gr("plan_Fe8BzLp7k71eGD",{status:"active",amount:200,period:"yearly"})}),growth:wi("prod_FplOSDbBmxba94",{monthly_199:gr("plan_FplOshrr1w3Mvu",{status:"active",amount:199,period:"monthly"})}),business:wi("prod_Fe8CbCE2wGJIWr",{monthly_199:gr("plan_Fe8CUkZfXasFtB",{status:"active",amount:199,period:"monthly"})}),enterprise:wi("prod_Hc9PMnHUmHvOlw",{monthly_700:gr("price_1H2v6JIewCKA2h0IgUwsuctb",{status:"active",amount:700,period:"monthly"})})}},prod:{builder:{essential:wi("prod_MoR2Ldm5PJpJZJ",{monthly_99:gr("price_1M4oA4IewCKA2h0IWgfbSJBe",{status:"inactive",amount:99,period:"monthly"}),monthly_125:gr("price_1PuuU1IewCKA2h0IUSAcuUUb",{status:"active",amount:125,period:"monthly"}),yearly_1200:gr("price_1PuuUZIewCKA2h0IDMNwNqQl",{status:"active",amount:1200,period:"yearly"})}),professional:wi("prod_MoR2h0Nf16hhgb",{monthly_199:gr("price_1M4oABIewCKA2h0INkbaCbIS",{status:"inactive",amount:199,period:"monthly"}),monthly_240:gr("price_1MIDxtIewCKA2h0IvWi5weJL",{status:"inactive",amount:240,period:"monthly"}),monthly_300:gr("price_1PuuVSIewCKA2h0IETsLUwF9",{status:"active",amount:300,period:"monthly"}),yearly_2880:gr("price_1PuuVmIewCKA2h0I37dMpqI5",{status:"active",amount:2880,period:"yearly"})})},cli:{founder30:wi("prod_GrHtZKuUDvLZOF",{monthly_30:gr("plan_GrHuyGjzYN0XN2",{status:"active",amount:30,period:"monthly"})}),founder50:wi("prod_GsL0ntimYpTTwD",{monthly_50:gr("plan_GsL1IRUwpj5CIF",{status:"active",amount:50,period:"monthly"}),monthly_90:gr("price_1JMHNnIewCKA2h0II5RGjVtk",{status:"inactive",amount:90,period:"monthly"})}),founder:wi("prod_GpzVRVsBgluoef",{monthly_100:gr("plan_GpzWZLfsOzjrvI",{status:"inactive",amount:100,period:"monthly"}),monthly_125:gr("price_1PuuXFIewCKA2h0IVHSyfFsd",{status:"active",amount:125,period:"monthly"}),yearly_1200:gr("price_1PuuXYIewCKA2h0IAsygBajd",{status:"active",amount:1200,period:"yearly"})}),performance:wi("prod_LphRn5Rfuq3CMh",{monthly_300:gr("price_1L822LIewCKA2h0I5JYyOG1p",{status:"inactive",amount:300,period:"monthly"}),monthly_375:gr("price_1PuuYKIewCKA2h0IWBJ4cyRQ",{status:"active",amount:375,period:"monthly"}),yearly_3600:gr("price_1PuuYcIewCKA2h0IzeU1xWbQ",{status:"active",amount:3600,period:"yearly"})}),scale:wi("prod_LphRKSuMLjQriP",{monthly_1200:gr("price_1L822RIewCKA2h0IPt9f2nZM",{status:"inactive",amount:1200,period:"monthly"}),monthly_1500:gr("price_1PuuarIewCKA2h0IEONPcFU5",{status:"active",amount:1500,period:"monthly"}),yearly_14400:gr("price_1Puub5IewCKA2h0IMJ3CQ58r",{status:"active",amount:14400,period:"yearly"})})},legacy:{essential:wi("prod_FohIP5aSMWWGyY",{monthly_58:gr("plan_FohJzCujA6vvt4",{status:"active",amount:58,period:"monthly"})}),essentialNew:wi("prod_GYXn73zcoJKsF8",{monthly_58:gr("plan_GYXn2cnPl5dy7j",{status:"active",amount:58,period:"monthly"}),yearly_580:gr("price_1Gqb24IewCKA2h0ILP5rxTnT",{status:"active",amount:580,period:"yearly"})}),professional:wi("prod_GYXouE5K7vuitU",{monthly_199:gr("plan_GYXoKsa2j0yURg",{status:"active",amount:199,period:"monthly"}),yearly_1990:gr("price_1KHTgaIewCKA2h0I81TVg85r",{status:"inactive",amount:1990,period:"yearly"}),yearly_2388:gr("price_1KLT32IewCKA2h0IFeJOAgG5",{status:"active",amount:2388,period:"yearly"})}),startup:wi("prod_FdmCGcrX2IETUH",{monthly_49:gr("plan_FdmDAUN7JGD8pR",{status:"active",amount:49,period:"monthly"}),yearly_200:gr("plan_Ft8qvk401twwrW",{status:"active",amount:200,period:"yearly"})}),growth:wi("prod_FohKfjLOlJNm1W",{monthly_199:gr("plan_FohKGuWis5ocsi",{status:"active",amount:199,period:"monthly"})}),business:wi("prod_FdmEvAgT7ZtVEw",{monthly_199:gr("plan_FdmE8akq9ukxiY",{status:"active",amount:199,period:"monthly"})}),enterprise:wi("prod_GuGGWeMQ3SCuE9",{monthly_700:gr("plan_GuGICX6nRtDthN",{status:"active",amount:700,period:"monthly"})})}}};var{dev:qr,prod:Lr}=Cn.products;Cn.basicPlan=DI("basic",{dev:[qr.builder.essential,qr.cli.founder30,qr.cli.founder50,qr.cli.founder,qr.legacy.essential,qr.legacy.essentialNew,qr.legacy.startup],prod:[Lr.builder.essential,Lr.cli.founder30,Lr.cli.founder50,Lr.cli.founder,Lr.legacy.essential,Lr.legacy.essentialNew,Lr.legacy.startup]});Cn.legacyProPlan=DI("legacy_pro",{dev:[qr.builder.professional,qr.cli.founder,qr.cli.founder30,qr.cli.founder50,qr.cli.performance,qr.cli.scale,qr.legacy.professional,qr.legacy.growth,qr.legacy.business],prod:[Lr.builder.professional,Lr.cli.founder,Lr.cli.founder30,Lr.cli.founder50,Lr.cli.performance,Lr.cli.scale,Lr.legacy.professional,Lr.legacy.growth,Lr.legacy.business]});Cn.proPlan=DI("pro",{dev:[qr.builder.professional,qr.cli.performance,qr.legacy.professional,qr.legacy.growth,qr.legacy.business],prod:[Lr.builder.professional,Lr.cli.performance,Lr.legacy.professional,Lr.legacy.growth,Lr.legacy.business]});Cn.scalePlan=DI("scale",{dev:[qr.cli.scale,qr.legacy.enterprise],prod:[Lr.cli.scale,Lr.legacy.enterprise]});Cn.configurations={dev:{builder:{update:X0(Pd.BuilderUpdateDev,[qr.builder.essential,qr.builder.professional]),upgrade:X0(Pd.BuilderUpgradeDev,[qr.builder.professional])},cli:{update:X0(Pd.CLIUpdateDev,[qr.cli.founder,qr.cli.performance,qr.cli.scale]),upgrade:X0(Pd.CLIUpgradeDev,[qr.cli.performance,qr.cli.scale])}},prod:{builder:{update:X0(Pd.BuilderUpdateProd,[Lr.builder.essential,Lr.builder.professional]),upgrade:X0(Pd.BuilderUpgradeProd,[Lr.builder.professional])},cli:{update:X0(Pd.CLIUpdateProd,[Lr.cli.founder,Lr.cli.performance,Lr.cli.scale]),upgrade:X0(Pd.CLIUpgradeProd,[Lr.cli.performance,Lr.cli.scale])}}};var vLt=e=>!!(e&&(e.status==="active"||e.status==="trialing"));Cn.hasActiveSub=vLt;var yLt=(e,t)=>{if(!t||!(0,Cn.hasActiveSub)(t))return!1;let n=[Cn.basicPlan,Cn.legacyProPlan,Cn.proPlan,Cn.scalePlan].filter(i=>e.eligiblePlanTiers.includes(i.tier));for(let{products:i}of n)for(let{id:a,prices:s}of[...i.dev,...i.prod]){if(t?.productId&&t?.productId===a)return!0;if(Object.values(s).some(o=>o.id===t?.planId))return!0}return!1};Cn.hasPlan=yLt;var bLt=e=>{let t=[Cn.basicPlan,Cn.legacyProPlan,Cn.proPlan,Cn.scalePlan];for(let r of t){let{products:n}=r;for(let{id:i,prices:a}of[...n.dev,...n.prod]){if(e?.productId&&e?.productId===i)return r;if(Object.values(a).some(s=>s.id===e?.planId))return r}}return null};Cn.getPlan=bLt;Cn.LegacyProductRecord={startup:{dev:qr.legacy.startup,prod:Lr.legacy.startup},business:{dev:qr.legacy.business,prod:Lr.legacy.business},essential:{dev:qr.legacy.essential,prod:Lr.legacy.essential},growth:{dev:qr.legacy.growth,prod:Lr.legacy.growth},essential_new:{dev:qr.legacy.essentialNew,prod:Lr.legacy.essentialNew},professional:{dev:qr.legacy.professional,prod:Lr.legacy.professional},professional_annual:{dev:qr.legacy.professional,prod:Lr.legacy.professional},professional_annual_full_price:{dev:qr.legacy.professional,prod:Lr.legacy.professional},cli_founder:{dev:qr.cli.founder,prod:Lr.cli.founder},cli_founder_30:{dev:qr.cli.founder30,prod:Lr.cli.founder30},cli_founder_50:{dev:qr.cli.founder50,prod:Lr.cli.founder50},cli_performance:{dev:qr.cli.performance,prod:Lr.cli.performance},cli_scale:{dev:qr.cli.scale,prod:Lr.cli.scale},builder_essential:{dev:qr.builder.essential,prod:Lr.builder.essential},builder_professional:{dev:qr.builder.professional,prod:Lr.builder.professional},enterprise:{dev:qr.legacy.enterprise,prod:Lr.legacy.enterprise}}});var JCe=b(Q0=>{"use strict";Object.defineProperty(Q0,"__esModule",{value:!0});Q0.WindowsHSMCertType=Q0.WindowsEVOnboardingProvider=Q0.WindowsEVOnboardingSteps=void 0;var WCe;(function(e){e.hasChosenProvider="hasChosenProvider",e.hasOrderedCert="hasOrderedCert",e.hasBeenVerified="hasBeenVerified",e.hasGeneratedCert="hasGeneratedCert",e.hasUploadedCert="hasUploadedCert"})(WCe||(Q0.WindowsEVOnboardingSteps=WCe={}));var KCe;(function(e){e.globalsign="globalsign",e.other="other"})(KCe||(Q0.WindowsEVOnboardingProvider=KCe={}));var YCe;(function(e){e.ev="ev",e.file="file"})(YCe||(Q0.WindowsHSMCertType=YCe={}))});var QCe=b(XCe=>{"use strict";Object.defineProperty(XCe,"__esModule",{value:!0})});var ePe=b(Z0=>{"use strict";Object.defineProperty(Z0,"__esModule",{value:!0});Z0.getAPIKeyNameFromHSM=Z0.getCertificateNameFromHSM=void 0;Z0.isMacTarget=lre;Z0.isWindowsTarget=ZCe;function lre(e){return["mac","mac-installer","mas","mas-installer","mas-dev"].includes(e)}function ZCe(e){return["windows"].includes(e)}var wLt=(e,t)=>{if(!lre(t)&&!ZCe(t))throw new Error(`Invalid target '${t}'. Only windows or mac certs are supported`);return`todesktop-${e}-${t}-cert`};Z0.getCertificateNameFromHSM=wLt;var _Lt=(e,t)=>{if(!lre(t))throw new Error(`Invalid target '${t}'. Only mac certs are supported`);return`todesktop-${e}-${t}-api-key`};Z0.getAPIKeyNameFromHSM=_Lt});var tPe=b(N6=>{"use strict";Object.defineProperty(N6,"__esModule",{value:!0});N6.allowedWebPreferencesOptions=N6.allowedBrowserWindowConstructorOptions=void 0;N6.allowedBrowserWindowConstructorOptions=["width","height","useContentSize","center","minWidth","minHeight","maxWidth","maxHeight","resizable","movable","minimizable","maximizable","closable","focusable","alwaysOnTop","fullscreen","fullscreenable","simpleFullscreen","skipTaskbar","kiosk","icon","paintWhenInitiallyHidden","frame","acceptFirstMouse","disableAutoHideCursor","autoHideMenuBar","enableLargerThanScreen","backgroundColor","hasShadow","opacity","darkTheme","transparent","visualEffectState","titleBarStyle","trafficLightPosition","thickFrame","type","vibrancy","zoomToPageWidth","tabbingIdentifier","webPreferences","titleBarOverlay"];N6.allowedWebPreferencesOptions=["devTools","zoomFactor","textAreasAreResizable","scrollBounce","defaultFontFamily","defaultFontSize","defaultMonospaceFontSize","minimumFontSize","defaultEncoding","backgroundThrottling","offscreen","safeDialogs","safeDialogsMessage","navigateOnDragDrop","autoplayPolicy","disableHtmlFullscreenWindowResize","accessibleTitle","spellcheck"]});var rPe=b(Fo=>{"use strict";var xLt=Fo&&Fo.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),e1=Fo&&Fo.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&xLt(t,e,r)};Object.defineProperty(Fo,"__esModule",{value:!0});Fo.schemaVersion=void 0;var ELt=cTe();e1(pTe(),Fo);e1(gTe(),Fo);e1(zCe(),Fo);e1(VCe(),Fo);e1(GCe(),Fo);e1(JCe(),Fo);e1(QCe(),Fo);e1(ePe(),Fo);e1(tPe(),Fo);var SLt=ELt.version;Fo.schemaVersion=SLt});var xS=b((q6,_S)=>{(function(){var e,t="4.17.21",r=200,n="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",i="Expected a function",a="Invalid `variable` option passed into `_.template`",s="__lodash_hash_undefined__",o=500,c="__lodash_placeholder__",p=1,f=2,d=4,h=1,g=2,v=1,y=2,_=4,x=8,A=16,D=32,j=64,H=128,F=256,z=512,P=30,M="...",K=800,L=16,ve=1,U=2,N=3,re=1/0,ue=9007199254740991,Q=17976931348623157e292,ne=0/0,G=4294967295,de=G-1,xe=G>>>1,ge=[["ary",H],["bind",v],["bindKey",y],["curry",x],["curryRight",A],["flip",z],["partial",D],["partialRight",j],["rearg",F]],V="[object Arguments]",ce="[object Array]",ye="[object AsyncFunction]",R="[object Boolean]",$="[object Date]",ke="[object DOMException]",S="[object Error]",I="[object Function]",B="[object GeneratorFunction]",se="[object Map]",ae="[object Number]",me="[object Null]",Se="[object Object]",Ee="[object Promise]",De="[object Proxy]",Le="[object RegExp]",Ne="[object Set]",Ve="[object String]",kt="[object Symbol]",Ft="[object Undefined]",rr="[object WeakMap]",Or="[object WeakSet]",kr="[object ArrayBuffer]",dr="[object DataView]",$t="[object Float32Array]",$e="[object Float64Array]",Ue="[object Int8Array]",ct="[object Int16Array]",ut="[object Int32Array]",Dt="[object Uint8Array]",Zt="[object Uint8ClampedArray]",hr="[object Uint16Array]",Bt="[object Uint32Array]",pr=/\b__p \+= '';/g,wn=/\b(__p \+=) '' \+/g,Ai=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ui=/&(?:amp|lt|gt|quot|#39);/g,Xa=/[&<>"']/g,ws=RegExp(Ui.source),Pl=RegExp(Xa.source),Is=/<%-([\s\S]+?)%>/g,_s=/<%([\s\S]+?)%>/g,Rs=/<%=([\s\S]+?)%>/g,Yc=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,fc=/^\w*$/,Il=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Zo=/[\\^$.*+?()[\]{}|]/g,Fe=RegExp(Zo.source),_e=/^\s+/,O=/\s/,Y=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,W=/\{\n\/\* \[wrapped with (.+)\] \*/,k=/,? & /,pe=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,je=/[()=,{}\[\]\/\s]/,Be=/\\(\\)?/g,Je=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,nt=/\w*$/,St=/^[-+]0x[0-9a-f]+$/i,_t=/^0b[01]+$/i,or=/^\[object .+?Constructor\]$/,gt=/^0o[0-7]+$/i,Ht=/^(?:0|[1-9]\d*)$/,Nt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,er=/($^)/,ur=/['\n\r\u2028\u2029\\]/g,Jt="\\ud800-\\udfff",Mt="\\u0300-\\u036f",tr="\\ufe20-\\ufe2f",Tt="\\u20d0-\\u20ff",Vt=Mt+tr+Tt,At="\\u2700-\\u27bf",jt="a-z\\xdf-\\xf6\\xf8-\\xff",Gt="\\xac\\xb1\\xd7\\xf7",bt="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Ge="\\u2000-\\u206f",He=" \\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",lt="A-Z\\xc0-\\xd6\\xd8-\\xde",it="\\ufe0e\\ufe0f",Xe=Gt+bt+Ge+He,Z="['\u2019]",we="["+Jt+"]",he="["+Xe+"]",Ae="["+Vt+"]",Re="\\d+",ee="["+At+"]",ze="["+jt+"]",Qe="[^"+Jt+Xe+Re+At+jt+lt+"]",Ye="\\ud83c[\\udffb-\\udfff]",et="(?:"+Ae+"|"+Ye+")",ot="[^"+Jt+"]",vt="(?:\\ud83c[\\udde6-\\uddff]){2}",zt="[\\ud800-\\udbff][\\udc00-\\udfff]",It="["+lt+"]",X="\\u200d",te="(?:"+ze+"|"+Qe+")",le="(?:"+It+"|"+Qe+")",Pe="(?:"+Z+"(?:d|ll|m|re|s|t|ve))?",Ke="(?:"+Z+"(?:D|LL|M|RE|S|T|VE))?",st=et+"?",wt="["+it+"]?",Kt="(?:"+X+"(?:"+[ot,vt,zt].join("|")+")"+wt+st+")*",Gn="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",zi="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Qa=wt+st+Kt,Za="(?:"+[ee,vt,zt].join("|")+")"+Qa,dc="(?:"+[ot+Ae+"?",Ae,vt,zt,we].join("|")+")",Zh=RegExp(Z,"g"),eu=RegExp(Ae,"g"),xs=RegExp(Ye+"(?="+Ye+")|"+dc+Qa,"g"),em=RegExp([It+"?"+ze+"+"+Pe+"(?="+[he,It,"$"].join("|")+")",le+"+"+Ke+"(?="+[he,It+te,"$"].join("|")+")",It+"?"+te+"+"+Pe,It+"+"+Ke,zi,Gn,Re,Za].join("|"),"g"),Rl=RegExp("["+X+Jt+Vt+it+"]"),ly=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,EU=["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"],SU=-1,Dr={};Dr[$t]=Dr[$e]=Dr[Ue]=Dr[ct]=Dr[ut]=Dr[Dt]=Dr[Zt]=Dr[hr]=Dr[Bt]=!0,Dr[V]=Dr[ce]=Dr[kr]=Dr[R]=Dr[dr]=Dr[$]=Dr[S]=Dr[I]=Dr[se]=Dr[ae]=Dr[Se]=Dr[Le]=Dr[Ne]=Dr[Ve]=Dr[rr]=!1;var Ar={};Ar[V]=Ar[ce]=Ar[kr]=Ar[dr]=Ar[R]=Ar[$]=Ar[$t]=Ar[$e]=Ar[Ue]=Ar[ct]=Ar[ut]=Ar[se]=Ar[ae]=Ar[Se]=Ar[Le]=Ar[Ne]=Ar[Ve]=Ar[kt]=Ar[Dt]=Ar[Zt]=Ar[hr]=Ar[Bt]=!0,Ar[S]=Ar[I]=Ar[rr]=!1;var kU={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},AU={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},TU={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},OU={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},DU=parseFloat,CU=parseInt,Bx=typeof global=="object"&&global&&global.Object===Object&&global,PU=typeof self=="object"&&self&&self.Object===Object&&self,gn=Bx||PU||Function("return this")(),py=typeof q6=="object"&&q6&&!q6.nodeType&&q6,Pu=py&&typeof _S=="object"&&_S&&!_S.nodeType&&_S,Mx=Pu&&Pu.exports===py,fy=Mx&&Bx.process,ta=function(){try{var oe=Pu&&Pu.require&&Pu.require("util").types;return oe||fy&&fy.binding&&fy.binding("util")}catch{}}(),Ux=ta&&ta.isArrayBuffer,zx=ta&&ta.isDate,Hx=ta&&ta.isMap,Vx=ta&&ta.isRegExp,Gx=ta&&ta.isSet,Wx=ta&&ta.isTypedArray;function Ti(oe,Te,be){switch(be.length){case 0:return oe.call(Te);case 1:return oe.call(Te,be[0]);case 2:return oe.call(Te,be[0],be[1]);case 3:return oe.call(Te,be[0],be[1],be[2])}return oe.apply(Te,be)}function IU(oe,Te,be,at){for(var Ot=-1,fr=oe==null?0:oe.length;++Ot<fr;){var on=oe[Ot];Te(at,on,be(on),oe)}return at}function ra(oe,Te){for(var be=-1,at=oe==null?0:oe.length;++be<at&&Te(oe[be],be,oe)!==!1;);return oe}function RU(oe,Te){for(var be=oe==null?0:oe.length;be--&&Te(oe[be],be,oe)!==!1;);return oe}function Kx(oe,Te){for(var be=-1,at=oe==null?0:oe.length;++be<at;)if(!Te(oe[be],be,oe))return!1;return!0}function xo(oe,Te){for(var be=-1,at=oe==null?0:oe.length,Ot=0,fr=[];++be<at;){var on=oe[be];Te(on,be,oe)&&(fr[Ot++]=on)}return fr}function tm(oe,Te){var be=oe==null?0:oe.length;return!!be&&Jc(oe,Te,0)>-1}function dy(oe,Te,be){for(var at=-1,Ot=oe==null?0:oe.length;++at<Ot;)if(be(Te,oe[at]))return!0;return!1}function Rr(oe,Te){for(var be=-1,at=oe==null?0:oe.length,Ot=Array(at);++be<at;)Ot[be]=Te(oe[be],be,oe);return Ot}function Eo(oe,Te){for(var be=-1,at=Te.length,Ot=oe.length;++be<at;)oe[Ot+be]=Te[be];return oe}function hy(oe,Te,be,at){var Ot=-1,fr=oe==null?0:oe.length;for(at&&fr&&(be=oe[++Ot]);++Ot<fr;)be=Te(be,oe[Ot],Ot,oe);return be}function FU(oe,Te,be,at){var Ot=oe==null?0:oe.length;for(at&&Ot&&(be=oe[--Ot]);Ot--;)be=Te(be,oe[Ot],Ot,oe);return be}function my(oe,Te){for(var be=-1,at=oe==null?0:oe.length;++be<at;)if(Te(oe[be],be,oe))return!0;return!1}var jU=gy("length");function NU(oe){return oe.split("")}function qU(oe){return oe.match(pe)||[]}function Yx(oe,Te,be){var at;return be(oe,function(Ot,fr,on){if(Te(Ot,fr,on))return at=fr,!1}),at}function rm(oe,Te,be,at){for(var Ot=oe.length,fr=be+(at?1:-1);at?fr--:++fr<Ot;)if(Te(oe[fr],fr,oe))return fr;return-1}function Jc(oe,Te,be){return Te===Te?YU(oe,Te,be):rm(oe,Jx,be)}function LU(oe,Te,be,at){for(var Ot=be-1,fr=oe.length;++Ot<fr;)if(at(oe[Ot],Te))return Ot;return-1}function Jx(oe){return oe!==oe}function Xx(oe,Te){var be=oe==null?0:oe.length;return be?yy(oe,Te)/be:ne}function gy(oe){return function(Te){return Te==null?e:Te[oe]}}function vy(oe){return function(Te){return oe==null?e:oe[Te]}}function Qx(oe,Te,be,at,Ot){return Ot(oe,function(fr,on,Sr){be=at?(at=!1,fr):Te(be,fr,on,Sr)}),be}function $U(oe,Te){var be=oe.length;for(oe.sort(Te);be--;)oe[be]=oe[be].value;return oe}function yy(oe,Te){for(var be,at=-1,Ot=oe.length;++at<Ot;){var fr=Te(oe[at]);fr!==e&&(be=be===e?fr:be+fr)}return be}function by(oe,Te){for(var be=-1,at=Array(oe);++be<oe;)at[be]=Te(be);return at}function BU(oe,Te){return Rr(Te,function(be){return[be,oe[be]]})}function Zx(oe){return oe&&oe.slice(0,nE(oe)+1).replace(_e,"")}function Oi(oe){return function(Te){return oe(Te)}}function wy(oe,Te){return Rr(Te,function(be){return oe[be]})}function Hp(oe,Te){return oe.has(Te)}function eE(oe,Te){for(var be=-1,at=oe.length;++be<at&&Jc(Te,oe[be],0)>-1;);return be}function tE(oe,Te){for(var be=oe.length;be--&&Jc(Te,oe[be],0)>-1;);return be}function MU(oe,Te){for(var be=oe.length,at=0;be--;)oe[be]===Te&&++at;return at}var UU=vy(kU),zU=vy(AU);function HU(oe){return"\\"+OU[oe]}function VU(oe,Te){return oe==null?e:oe[Te]}function Xc(oe){return Rl.test(oe)}function GU(oe){return ly.test(oe)}function WU(oe){for(var Te,be=[];!(Te=oe.next()).done;)be.push(Te.value);return be}function _y(oe){var Te=-1,be=Array(oe.size);return oe.forEach(function(at,Ot){be[++Te]=[Ot,at]}),be}function rE(oe,Te){return function(be){return oe(Te(be))}}function So(oe,Te){for(var be=-1,at=oe.length,Ot=0,fr=[];++be<at;){var on=oe[be];(on===Te||on===c)&&(oe[be]=c,fr[Ot++]=be)}return fr}function nm(oe){var Te=-1,be=Array(oe.size);return oe.forEach(function(at){be[++Te]=at}),be}function KU(oe){var Te=-1,be=Array(oe.size);return oe.forEach(function(at){be[++Te]=[at,at]}),be}function YU(oe,Te,be){for(var at=be-1,Ot=oe.length;++at<Ot;)if(oe[at]===Te)return at;return-1}function JU(oe,Te,be){for(var at=be+1;at--;)if(oe[at]===Te)return at;return at}function Qc(oe){return Xc(oe)?QU(oe):jU(oe)}function Ta(oe){return Xc(oe)?ZU(oe):NU(oe)}function nE(oe){for(var Te=oe.length;Te--&&O.test(oe.charAt(Te)););return Te}var XU=vy(TU);function QU(oe){for(var Te=xs.lastIndex=0;xs.test(oe);)++Te;return Te}function ZU(oe){return oe.match(xs)||[]}function ez(oe){return oe.match(em)||[]}var tz=function oe(Te){Te=Te==null?gn:ko.defaults(gn.Object(),Te,ko.pick(gn,EU));var be=Te.Array,at=Te.Date,Ot=Te.Error,fr=Te.Function,on=Te.Math,Sr=Te.Object,xy=Te.RegExp,rz=Te.String,na=Te.TypeError,im=be.prototype,nz=fr.prototype,Zc=Sr.prototype,am=Te["__core-js_shared__"],sm=nz.toString,vr=Zc.hasOwnProperty,iz=0,iE=function(){var u=/[^.]+$/.exec(am&&am.keys&&am.keys.IE_PROTO||"");return u?"Symbol(src)_1."+u:""}(),om=Zc.toString,az=sm.call(Sr),sz=gn._,oz=xy("^"+sm.call(vr).replace(Zo,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),um=Mx?Te.Buffer:e,Ao=Te.Symbol,cm=Te.Uint8Array,aE=um?um.allocUnsafe:e,lm=rE(Sr.getPrototypeOf,Sr),sE=Sr.create,oE=Zc.propertyIsEnumerable,pm=im.splice,uE=Ao?Ao.isConcatSpreadable:e,Vp=Ao?Ao.iterator:e,Iu=Ao?Ao.toStringTag:e,fm=function(){try{var u=qu(Sr,"defineProperty");return u({},"",{}),u}catch{}}(),uz=Te.clearTimeout!==gn.clearTimeout&&Te.clearTimeout,cz=at&&at.now!==gn.Date.now&&at.now,lz=Te.setTimeout!==gn.setTimeout&&Te.setTimeout,dm=on.ceil,hm=on.floor,Ey=Sr.getOwnPropertySymbols,pz=um?um.isBuffer:e,cE=Te.isFinite,fz=im.join,dz=rE(Sr.keys,Sr),un=on.max,jn=on.min,hz=at.now,mz=Te.parseInt,lE=on.random,gz=im.reverse,Sy=qu(Te,"DataView"),Gp=qu(Te,"Map"),ky=qu(Te,"Promise"),el=qu(Te,"Set"),Wp=qu(Te,"WeakMap"),Kp=qu(Sr,"create"),mm=Wp&&new Wp,tl={},vz=Lu(Sy),yz=Lu(Gp),bz=Lu(ky),wz=Lu(el),_z=Lu(Wp),gm=Ao?Ao.prototype:e,Yp=gm?gm.valueOf:e,pE=gm?gm.toString:e;function T(u){if(zr(u)&&!Ct(u)&&!(u instanceof Xt)){if(u instanceof ia)return u;if(vr.call(u,"__wrapped__"))return f5(u)}return new ia(u)}var rl=function(){function u(){}return function(l){if(!Nr(l))return{};if(sE)return sE(l);u.prototype=l;var m=new u;return u.prototype=e,m}}();function vm(){}function ia(u,l){this.__wrapped__=u,this.__actions__=[],this.__chain__=!!l,this.__index__=0,this.__values__=e}T.templateSettings={escape:Is,evaluate:_s,interpolate:Rs,variable:"",imports:{_:T}},T.prototype=vm.prototype,T.prototype.constructor=T,ia.prototype=rl(vm.prototype),ia.prototype.constructor=ia;function Xt(u){this.__wrapped__=u,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=G,this.__views__=[]}function xz(){var u=new Xt(this.__wrapped__);return u.__actions__=fi(this.__actions__),u.__dir__=this.__dir__,u.__filtered__=this.__filtered__,u.__iteratees__=fi(this.__iteratees__),u.__takeCount__=this.__takeCount__,u.__views__=fi(this.__views__),u}function Ez(){if(this.__filtered__){var u=new Xt(this);u.__dir__=-1,u.__filtered__=!0}else u=this.clone(),u.__dir__*=-1;return u}function Sz(){var u=this.__wrapped__.value(),l=this.__dir__,m=Ct(u),w=l<0,E=m?u.length:0,C=NH(0,E,this.__views__),J=C.start,ie=C.end,fe=ie-J,Ce=w?ie:J-1,Ie=this.__iteratees__,qe=Ie.length,We=0,pt=jn(fe,this.__takeCount__);if(!m||!w&&E==fe&&pt==fe)return jE(u,this.__actions__);var xt=[];e:for(;fe--&&We<pt;){Ce+=l;for(var Ut=-1,Et=u[Ce];++Ut<qe;){var Yt=Ie[Ut],Qt=Yt.iteratee,Pi=Yt.type,Zn=Qt(Et);if(Pi==U)Et=Zn;else if(!Zn){if(Pi==ve)continue e;break e}}xt[We++]=Et}return xt}Xt.prototype=rl(vm.prototype),Xt.prototype.constructor=Xt;function Ru(u){var l=-1,m=u==null?0:u.length;for(this.clear();++l<m;){var w=u[l];this.set(w[0],w[1])}}function kz(){this.__data__=Kp?Kp(null):{},this.size=0}function Az(u){var l=this.has(u)&&delete this.__data__[u];return this.size-=l?1:0,l}function Tz(u){var l=this.__data__;if(Kp){var m=l[u];return m===s?e:m}return vr.call(l,u)?l[u]:e}function Oz(u){var l=this.__data__;return Kp?l[u]!==e:vr.call(l,u)}function Dz(u,l){var m=this.__data__;return this.size+=this.has(u)?0:1,m[u]=Kp&&l===e?s:l,this}Ru.prototype.clear=kz,Ru.prototype.delete=Az,Ru.prototype.get=Tz,Ru.prototype.has=Oz,Ru.prototype.set=Dz;function Fs(u){var l=-1,m=u==null?0:u.length;for(this.clear();++l<m;){var w=u[l];this.set(w[0],w[1])}}function Cz(){this.__data__=[],this.size=0}function Pz(u){var l=this.__data__,m=ym(l,u);if(m<0)return!1;var w=l.length-1;return m==w?l.pop():pm.call(l,m,1),--this.size,!0}function Iz(u){var l=this.__data__,m=ym(l,u);return m<0?e:l[m][1]}function Rz(u){return ym(this.__data__,u)>-1}function Fz(u,l){var m=this.__data__,w=ym(m,u);return w<0?(++this.size,m.push([u,l])):m[w][1]=l,this}Fs.prototype.clear=Cz,Fs.prototype.delete=Pz,Fs.prototype.get=Iz,Fs.prototype.has=Rz,Fs.prototype.set=Fz;function js(u){var l=-1,m=u==null?0:u.length;for(this.clear();++l<m;){var w=u[l];this.set(w[0],w[1])}}function jz(){this.size=0,this.__data__={hash:new Ru,map:new(Gp||Fs),string:new Ru}}function Nz(u){var l=Cm(this,u).delete(u);return this.size-=l?1:0,l}function qz(u){return Cm(this,u).get(u)}function Lz(u){return Cm(this,u).has(u)}function $z(u,l){var m=Cm(this,u),w=m.size;return m.set(u,l),this.size+=m.size==w?0:1,this}js.prototype.clear=jz,js.prototype.delete=Nz,js.prototype.get=qz,js.prototype.has=Lz,js.prototype.set=$z;function Fu(u){var l=-1,m=u==null?0:u.length;for(this.__data__=new js;++l<m;)this.add(u[l])}function Bz(u){return this.__data__.set(u,s),this}function Mz(u){return this.__data__.has(u)}Fu.prototype.add=Fu.prototype.push=Bz,Fu.prototype.has=Mz;function Oa(u){var l=this.__data__=new Fs(u);this.size=l.size}function Uz(){this.__data__=new Fs,this.size=0}function zz(u){var l=this.__data__,m=l.delete(u);return this.size=l.size,m}function Hz(u){return this.__data__.get(u)}function Vz(u){return this.__data__.has(u)}function Gz(u,l){var m=this.__data__;if(m instanceof Fs){var w=m.__data__;if(!Gp||w.length<r-1)return w.push([u,l]),this.size=++m.size,this;m=this.__data__=new js(w)}return m.set(u,l),this.size=m.size,this}Oa.prototype.clear=Uz,Oa.prototype.delete=zz,Oa.prototype.get=Hz,Oa.prototype.has=Vz,Oa.prototype.set=Gz;function fE(u,l){var m=Ct(u),w=!m&&$u(u),E=!m&&!w&&Po(u),C=!m&&!w&&!E&&sl(u),J=m||w||E||C,ie=J?by(u.length,rz):[],fe=ie.length;for(var Ce in u)(l||vr.call(u,Ce))&&!(J&&(Ce=="length"||E&&(Ce=="offset"||Ce=="parent")||C&&(Ce=="buffer"||Ce=="byteLength"||Ce=="byteOffset")||$s(Ce,fe)))&&ie.push(Ce);return ie}function dE(u){var l=u.length;return l?u[Ny(0,l-1)]:e}function Wz(u,l){return Pm(fi(u),ju(l,0,u.length))}function Kz(u){return Pm(fi(u))}function Ay(u,l,m){(m!==e&&!Da(u[l],m)||m===e&&!(l in u))&&Ns(u,l,m)}function Jp(u,l,m){var w=u[l];(!(vr.call(u,l)&&Da(w,m))||m===e&&!(l in u))&&Ns(u,l,m)}function ym(u,l){for(var m=u.length;m--;)if(Da(u[m][0],l))return m;return-1}function Yz(u,l,m,w){return To(u,function(E,C,J){l(w,E,m(E),J)}),w}function hE(u,l){return u&&ts(l,vn(l),u)}function Jz(u,l){return u&&ts(l,hi(l),u)}function Ns(u,l,m){l=="__proto__"&&fm?fm(u,l,{configurable:!0,enumerable:!0,value:m,writable:!0}):u[l]=m}function Ty(u,l){for(var m=-1,w=l.length,E=be(w),C=u==null;++m<w;)E[m]=C?e:o2(u,l[m]);return E}function ju(u,l,m){return u===u&&(m!==e&&(u=u<=m?u:m),l!==e&&(u=u>=l?u:l)),u}function aa(u,l,m,w,E,C){var J,ie=l&p,fe=l&f,Ce=l&d;if(m&&(J=E?m(u,w,E,C):m(u)),J!==e)return J;if(!Nr(u))return u;var Ie=Ct(u);if(Ie){if(J=LH(u),!ie)return fi(u,J)}else{var qe=Nn(u),We=qe==I||qe==B;if(Po(u))return LE(u,ie);if(qe==Se||qe==V||We&&!E){if(J=fe||We?{}:n5(u),!ie)return fe?TH(u,Jz(J,u)):AH(u,hE(J,u))}else{if(!Ar[qe])return E?u:{};J=$H(u,qe,ie)}}C||(C=new Oa);var pt=C.get(u);if(pt)return pt;C.set(u,J),I5(u)?u.forEach(function(Et){J.add(aa(Et,l,m,Et,u,C))}):C5(u)&&u.forEach(function(Et,Yt){J.set(Yt,aa(Et,l,m,Yt,u,C))});var xt=Ce?fe?Wy:Gy:fe?hi:vn,Ut=Ie?e:xt(u);return ra(Ut||u,function(Et,Yt){Ut&&(Yt=Et,Et=u[Yt]),Jp(J,Yt,aa(Et,l,m,Yt,u,C))}),J}function Xz(u){var l=vn(u);return function(m){return mE(m,u,l)}}function mE(u,l,m){var w=m.length;if(u==null)return!w;for(u=Sr(u);w--;){var E=m[w],C=l[E],J=u[E];if(J===e&&!(E in u)||!C(J))return!1}return!0}function gE(u,l,m){if(typeof u!="function")throw new na(i);return nf(function(){u.apply(e,m)},l)}function Xp(u,l,m,w){var E=-1,C=tm,J=!0,ie=u.length,fe=[],Ce=l.length;if(!ie)return fe;m&&(l=Rr(l,Oi(m))),w?(C=dy,J=!1):l.length>=r&&(C=Hp,J=!1,l=new Fu(l));e:for(;++E<ie;){var Ie=u[E],qe=m==null?Ie:m(Ie);if(Ie=w||Ie!==0?Ie:0,J&&qe===qe){for(var We=Ce;We--;)if(l[We]===qe)continue e;fe.push(Ie)}else C(l,qe,w)||fe.push(Ie)}return fe}var To=zE(es),vE=zE(Dy,!0);function Qz(u,l){var m=!0;return To(u,function(w,E,C){return m=!!l(w,E,C),m}),m}function bm(u,l,m){for(var w=-1,E=u.length;++w<E;){var C=u[w],J=l(C);if(J!=null&&(ie===e?J===J&&!Ci(J):m(J,ie)))var ie=J,fe=C}return fe}function Zz(u,l,m,w){var E=u.length;for(m=qt(m),m<0&&(m=-m>E?0:E+m),w=w===e||w>E?E:qt(w),w<0&&(w+=E),w=m>w?0:F5(w);m<w;)u[m++]=l;return u}function yE(u,l){var m=[];return To(u,function(w,E,C){l(w,E,C)&&m.push(w)}),m}function An(u,l,m,w,E){var C=-1,J=u.length;for(m||(m=MH),E||(E=[]);++C<J;){var ie=u[C];l>0&&m(ie)?l>1?An(ie,l-1,m,w,E):Eo(E,ie):w||(E[E.length]=ie)}return E}var Oy=HE(),bE=HE(!0);function es(u,l){return u&&Oy(u,l,vn)}function Dy(u,l){return u&&bE(u,l,vn)}function wm(u,l){return xo(l,function(m){return Bs(u[m])})}function Nu(u,l){l=Do(l,u);for(var m=0,w=l.length;u!=null&&m<w;)u=u[rs(l[m++])];return m&&m==w?u:e}function wE(u,l,m){var w=l(u);return Ct(u)?w:Eo(w,m(u))}function Xn(u){return u==null?u===e?Ft:me:Iu&&Iu in Sr(u)?jH(u):KH(u)}function Cy(u,l){return u>l}function eH(u,l){return u!=null&&vr.call(u,l)}function tH(u,l){return u!=null&&l in Sr(u)}function rH(u,l,m){return u>=jn(l,m)&&u<un(l,m)}function Py(u,l,m){for(var w=m?dy:tm,E=u[0].length,C=u.length,J=C,ie=be(C),fe=1/0,Ce=[];J--;){var Ie=u[J];J&&l&&(Ie=Rr(Ie,Oi(l))),fe=jn(Ie.length,fe),ie[J]=!m&&(l||E>=120&&Ie.length>=120)?new Fu(J&&Ie):e}Ie=u[0];var qe=-1,We=ie[0];e:for(;++qe<E&&Ce.length<fe;){var pt=Ie[qe],xt=l?l(pt):pt;if(pt=m||pt!==0?pt:0,!(We?Hp(We,xt):w(Ce,xt,m))){for(J=C;--J;){var Ut=ie[J];if(!(Ut?Hp(Ut,xt):w(u[J],xt,m)))continue e}We&&We.push(xt),Ce.push(pt)}}return Ce}function nH(u,l,m,w){return es(u,function(E,C,J){l(w,m(E),C,J)}),w}function Qp(u,l,m){l=Do(l,u),u=o5(u,l);var w=u==null?u:u[rs(oa(l))];return w==null?e:Ti(w,u,m)}function _E(u){return zr(u)&&Xn(u)==V}function iH(u){return zr(u)&&Xn(u)==kr}function aH(u){return zr(u)&&Xn(u)==$}function Zp(u,l,m,w,E){return u===l?!0:u==null||l==null||!zr(u)&&!zr(l)?u!==u&&l!==l:sH(u,l,m,w,Zp,E)}function sH(u,l,m,w,E,C){var J=Ct(u),ie=Ct(l),fe=J?ce:Nn(u),Ce=ie?ce:Nn(l);fe=fe==V?Se:fe,Ce=Ce==V?Se:Ce;var Ie=fe==Se,qe=Ce==Se,We=fe==Ce;if(We&&Po(u)){if(!Po(l))return!1;J=!0,Ie=!1}if(We&&!Ie)return C||(C=new Oa),J||sl(u)?e5(u,l,m,w,E,C):RH(u,l,fe,m,w,E,C);if(!(m&h)){var pt=Ie&&vr.call(u,"__wrapped__"),xt=qe&&vr.call(l,"__wrapped__");if(pt||xt){var Ut=pt?u.value():u,Et=xt?l.value():l;return C||(C=new Oa),E(Ut,Et,m,w,C)}}return We?(C||(C=new Oa),FH(u,l,m,w,E,C)):!1}function oH(u){return zr(u)&&Nn(u)==se}function Iy(u,l,m,w){var E=m.length,C=E,J=!w;if(u==null)return!C;for(u=Sr(u);E--;){var ie=m[E];if(J&&ie[2]?ie[1]!==u[ie[0]]:!(ie[0]in u))return!1}for(;++E<C;){ie=m[E];var fe=ie[0],Ce=u[fe],Ie=ie[1];if(J&&ie[2]){if(Ce===e&&!(fe in u))return!1}else{var qe=new Oa;if(w)var We=w(Ce,Ie,fe,u,l,qe);if(!(We===e?Zp(Ie,Ce,h|g,w,qe):We))return!1}}return!0}function xE(u){if(!Nr(u)||zH(u))return!1;var l=Bs(u)?oz:or;return l.test(Lu(u))}function uH(u){return zr(u)&&Xn(u)==Le}function cH(u){return zr(u)&&Nn(u)==Ne}function lH(u){return zr(u)&&qm(u.length)&&!!Dr[Xn(u)]}function EE(u){return typeof u=="function"?u:u==null?mi:typeof u=="object"?Ct(u)?AE(u[0],u[1]):kE(u):V5(u)}function Ry(u){if(!rf(u))return dz(u);var l=[];for(var m in Sr(u))vr.call(u,m)&&m!="constructor"&&l.push(m);return l}function pH(u){if(!Nr(u))return WH(u);var l=rf(u),m=[];for(var w in u)w=="constructor"&&(l||!vr.call(u,w))||m.push(w);return m}function Fy(u,l){return u<l}function SE(u,l){var m=-1,w=di(u)?be(u.length):[];return To(u,function(E,C,J){w[++m]=l(E,C,J)}),w}function kE(u){var l=Yy(u);return l.length==1&&l[0][2]?a5(l[0][0],l[0][1]):function(m){return m===u||Iy(m,u,l)}}function AE(u,l){return Xy(u)&&i5(l)?a5(rs(u),l):function(m){var w=o2(m,u);return w===e&&w===l?u2(m,u):Zp(l,w,h|g)}}function _m(u,l,m,w,E){u!==l&&Oy(l,function(C,J){if(E||(E=new Oa),Nr(C))fH(u,l,J,m,_m,w,E);else{var ie=w?w(Zy(u,J),C,J+"",u,l,E):e;ie===e&&(ie=C),Ay(u,J,ie)}},hi)}function fH(u,l,m,w,E,C,J){var ie=Zy(u,m),fe=Zy(l,m),Ce=J.get(fe);if(Ce){Ay(u,m,Ce);return}var Ie=C?C(ie,fe,m+"",u,l,J):e,qe=Ie===e;if(qe){var We=Ct(fe),pt=!We&&Po(fe),xt=!We&&!pt&&sl(fe);Ie=fe,We||pt||xt?Ct(ie)?Ie=ie:Yr(ie)?Ie=fi(ie):pt?(qe=!1,Ie=LE(fe,!0)):xt?(qe=!1,Ie=$E(fe,!0)):Ie=[]:af(fe)||$u(fe)?(Ie=ie,$u(ie)?Ie=j5(ie):(!Nr(ie)||Bs(ie))&&(Ie=n5(fe))):qe=!1}qe&&(J.set(fe,Ie),E(Ie,fe,w,C,J),J.delete(fe)),Ay(u,m,Ie)}function TE(u,l){var m=u.length;if(m)return l+=l<0?m:0,$s(l,m)?u[l]:e}function OE(u,l,m){l.length?l=Rr(l,function(C){return Ct(C)?function(J){return Nu(J,C.length===1?C[0]:C)}:C}):l=[mi];var w=-1;l=Rr(l,Oi(yt()));var E=SE(u,function(C,J,ie){var fe=Rr(l,function(Ce){return Ce(C)});return{criteria:fe,index:++w,value:C}});return $U(E,function(C,J){return kH(C,J,m)})}function dH(u,l){return DE(u,l,function(m,w){return u2(u,w)})}function DE(u,l,m){for(var w=-1,E=l.length,C={};++w<E;){var J=l[w],ie=Nu(u,J);m(ie,J)&&ef(C,Do(J,u),ie)}return C}function hH(u){return function(l){return Nu(l,u)}}function jy(u,l,m,w){var E=w?LU:Jc,C=-1,J=l.length,ie=u;for(u===l&&(l=fi(l)),m&&(ie=Rr(u,Oi(m)));++C<J;)for(var fe=0,Ce=l[C],Ie=m?m(Ce):Ce;(fe=E(ie,Ie,fe,w))>-1;)ie!==u&&pm.call(ie,fe,1),pm.call(u,fe,1);return u}function CE(u,l){for(var m=u?l.length:0,w=m-1;m--;){var E=l[m];if(m==w||E!==C){var C=E;$s(E)?pm.call(u,E,1):$y(u,E)}}return u}function Ny(u,l){return u+hm(lE()*(l-u+1))}function mH(u,l,m,w){for(var E=-1,C=un(dm((l-u)/(m||1)),0),J=be(C);C--;)J[w?C:++E]=u,u+=m;return J}function qy(u,l){var m="";if(!u||l<1||l>ue)return m;do l%2&&(m+=u),l=hm(l/2),l&&(u+=u);while(l);return m}function Wt(u,l){return e2(s5(u,l,mi),u+"")}function gH(u){return dE(ol(u))}function vH(u,l){var m=ol(u);return Pm(m,ju(l,0,m.length))}function ef(u,l,m,w){if(!Nr(u))return u;l=Do(l,u);for(var E=-1,C=l.length,J=C-1,ie=u;ie!=null&&++E<C;){var fe=rs(l[E]),Ce=m;if(fe==="__proto__"||fe==="constructor"||fe==="prototype")return u;if(E!=J){var Ie=ie[fe];Ce=w?w(Ie,fe,ie):e,Ce===e&&(Ce=Nr(Ie)?Ie:$s(l[E+1])?[]:{})}Jp(ie,fe,Ce),ie=ie[fe]}return u}var PE=mm?function(u,l){return mm.set(u,l),u}:mi,yH=fm?function(u,l){return fm(u,"toString",{configurable:!0,enumerable:!1,value:l2(l),writable:!0})}:mi;function bH(u){return Pm(ol(u))}function sa(u,l,m){var w=-1,E=u.length;l<0&&(l=-l>E?0:E+l),m=m>E?E:m,m<0&&(m+=E),E=l>m?0:m-l>>>0,l>>>=0;for(var C=be(E);++w<E;)C[w]=u[w+l];return C}function wH(u,l){var m;return To(u,function(w,E,C){return m=l(w,E,C),!m}),!!m}function xm(u,l,m){var w=0,E=u==null?w:u.length;if(typeof l=="number"&&l===l&&E<=xe){for(;w<E;){var C=w+E>>>1,J=u[C];J!==null&&!Ci(J)&&(m?J<=l:J<l)?w=C+1:E=C}return E}return Ly(u,l,mi,m)}function Ly(u,l,m,w){var E=0,C=u==null?0:u.length;if(C===0)return 0;l=m(l);for(var J=l!==l,ie=l===null,fe=Ci(l),Ce=l===e;E<C;){var Ie=hm((E+C)/2),qe=m(u[Ie]),We=qe!==e,pt=qe===null,xt=qe===qe,Ut=Ci(qe);if(J)var Et=w||xt;else Ce?Et=xt&&(w||We):ie?Et=xt&&We&&(w||!pt):fe?Et=xt&&We&&!pt&&(w||!Ut):pt||Ut?Et=!1:Et=w?qe<=l:qe<l;Et?E=Ie+1:C=Ie}return jn(C,de)}function IE(u,l){for(var m=-1,w=u.length,E=0,C=[];++m<w;){var J=u[m],ie=l?l(J):J;if(!m||!Da(ie,fe)){var fe=ie;C[E++]=J===0?0:J}}return C}function RE(u){return typeof u=="number"?u:Ci(u)?ne:+u}function Di(u){if(typeof u=="string")return u;if(Ct(u))return Rr(u,Di)+"";if(Ci(u))return pE?pE.call(u):"";var l=u+"";return l=="0"&&1/u==-re?"-0":l}function Oo(u,l,m){var w=-1,E=tm,C=u.length,J=!0,ie=[],fe=ie;if(m)J=!1,E=dy;else if(C>=r){var Ce=l?null:PH(u);if(Ce)return nm(Ce);J=!1,E=Hp,fe=new Fu}else fe=l?[]:ie;e:for(;++w<C;){var Ie=u[w],qe=l?l(Ie):Ie;if(Ie=m||Ie!==0?Ie:0,J&&qe===qe){for(var We=fe.length;We--;)if(fe[We]===qe)continue e;l&&fe.push(qe),ie.push(Ie)}else E(fe,qe,m)||(fe!==ie&&fe.push(qe),ie.push(Ie))}return ie}function $y(u,l){return l=Do(l,u),u=o5(u,l),u==null||delete u[rs(oa(l))]}function FE(u,l,m,w){return ef(u,l,m(Nu(u,l)),w)}function Em(u,l,m,w){for(var E=u.length,C=w?E:-1;(w?C--:++C<E)&&l(u[C],C,u););return m?sa(u,w?0:C,w?C+1:E):sa(u,w?C+1:0,w?E:C)}function jE(u,l){var m=u;return m instanceof Xt&&(m=m.value()),hy(l,function(w,E){return E.func.apply(E.thisArg,Eo([w],E.args))},m)}function By(u,l,m){var w=u.length;if(w<2)return w?Oo(u[0]):[];for(var E=-1,C=be(w);++E<w;)for(var J=u[E],ie=-1;++ie<w;)ie!=E&&(C[E]=Xp(C[E]||J,u[ie],l,m));return Oo(An(C,1),l,m)}function NE(u,l,m){for(var w=-1,E=u.length,C=l.length,J={};++w<E;){var ie=w<C?l[w]:e;m(J,u[w],ie)}return J}function My(u){return Yr(u)?u:[]}function Uy(u){return typeof u=="function"?u:mi}function Do(u,l){return Ct(u)?u:Xy(u,l)?[u]:p5(mr(u))}var _H=Wt;function Co(u,l,m){var w=u.length;return m=m===e?w:m,!l&&m>=w?u:sa(u,l,m)}var qE=uz||function(u){return gn.clearTimeout(u)};function LE(u,l){if(l)return u.slice();var m=u.length,w=aE?aE(m):new u.constructor(m);return u.copy(w),w}function zy(u){var l=new u.constructor(u.byteLength);return new cm(l).set(new cm(u)),l}function xH(u,l){var m=l?zy(u.buffer):u.buffer;return new u.constructor(m,u.byteOffset,u.byteLength)}function EH(u){var l=new u.constructor(u.source,nt.exec(u));return l.lastIndex=u.lastIndex,l}function SH(u){return Yp?Sr(Yp.call(u)):{}}function $E(u,l){var m=l?zy(u.buffer):u.buffer;return new u.constructor(m,u.byteOffset,u.length)}function BE(u,l){if(u!==l){var m=u!==e,w=u===null,E=u===u,C=Ci(u),J=l!==e,ie=l===null,fe=l===l,Ce=Ci(l);if(!ie&&!Ce&&!C&&u>l||C&&J&&fe&&!ie&&!Ce||w&&J&&fe||!m&&fe||!E)return 1;if(!w&&!C&&!Ce&&u<l||Ce&&m&&E&&!w&&!C||ie&&m&&E||!J&&E||!fe)return-1}return 0}function kH(u,l,m){for(var w=-1,E=u.criteria,C=l.criteria,J=E.length,ie=m.length;++w<J;){var fe=BE(E[w],C[w]);if(fe){if(w>=ie)return fe;var Ce=m[w];return fe*(Ce=="desc"?-1:1)}}return u.index-l.index}function ME(u,l,m,w){for(var E=-1,C=u.length,J=m.length,ie=-1,fe=l.length,Ce=un(C-J,0),Ie=be(fe+Ce),qe=!w;++ie<fe;)Ie[ie]=l[ie];for(;++E<J;)(qe||E<C)&&(Ie[m[E]]=u[E]);for(;Ce--;)Ie[ie++]=u[E++];return Ie}function UE(u,l,m,w){for(var E=-1,C=u.length,J=-1,ie=m.length,fe=-1,Ce=l.length,Ie=un(C-ie,0),qe=be(Ie+Ce),We=!w;++E<Ie;)qe[E]=u[E];for(var pt=E;++fe<Ce;)qe[pt+fe]=l[fe];for(;++J<ie;)(We||E<C)&&(qe[pt+m[J]]=u[E++]);return qe}function fi(u,l){var m=-1,w=u.length;for(l||(l=be(w));++m<w;)l[m]=u[m];return l}function ts(u,l,m,w){var E=!m;m||(m={});for(var C=-1,J=l.length;++C<J;){var ie=l[C],fe=w?w(m[ie],u[ie],ie,m,u):e;fe===e&&(fe=u[ie]),E?Ns(m,ie,fe):Jp(m,ie,fe)}return m}function AH(u,l){return ts(u,Jy(u),l)}function TH(u,l){return ts(u,t5(u),l)}function Sm(u,l){return function(m,w){var E=Ct(m)?IU:Yz,C=l?l():{};return E(m,u,yt(w,2),C)}}function nl(u){return Wt(function(l,m){var w=-1,E=m.length,C=E>1?m[E-1]:e,J=E>2?m[2]:e;for(C=u.length>3&&typeof C=="function"?(E--,C):e,J&&Qn(m[0],m[1],J)&&(C=E<3?e:C,E=1),l=Sr(l);++w<E;){var ie=m[w];ie&&u(l,ie,w,C)}return l})}function zE(u,l){return function(m,w){if(m==null)return m;if(!di(m))return u(m,w);for(var E=m.length,C=l?E:-1,J=Sr(m);(l?C--:++C<E)&&w(J[C],C,J)!==!1;);return m}}function HE(u){return function(l,m,w){for(var E=-1,C=Sr(l),J=w(l),ie=J.length;ie--;){var fe=J[u?ie:++E];if(m(C[fe],fe,C)===!1)break}return l}}function OH(u,l,m){var w=l&v,E=tf(u);function C(){var J=this&&this!==gn&&this instanceof C?E:u;return J.apply(w?m:this,arguments)}return C}function VE(u){return function(l){l=mr(l);var m=Xc(l)?Ta(l):e,w=m?m[0]:l.charAt(0),E=m?Co(m,1).join(""):l.slice(1);return w[u]()+E}}function il(u){return function(l){return hy(z5(U5(l).replace(Zh,"")),u,"")}}function tf(u){return function(){var l=arguments;switch(l.length){case 0:return new u;case 1:return new u(l[0]);case 2:return new u(l[0],l[1]);case 3:return new u(l[0],l[1],l[2]);case 4:return new u(l[0],l[1],l[2],l[3]);case 5:return new u(l[0],l[1],l[2],l[3],l[4]);case 6:return new u(l[0],l[1],l[2],l[3],l[4],l[5]);case 7:return new u(l[0],l[1],l[2],l[3],l[4],l[5],l[6])}var m=rl(u.prototype),w=u.apply(m,l);return Nr(w)?w:m}}function DH(u,l,m){var w=tf(u);function E(){for(var C=arguments.length,J=be(C),ie=C,fe=al(E);ie--;)J[ie]=arguments[ie];var Ce=C<3&&J[0]!==fe&&J[C-1]!==fe?[]:So(J,fe);if(C-=Ce.length,C<m)return JE(u,l,km,E.placeholder,e,J,Ce,e,e,m-C);var Ie=this&&this!==gn&&this instanceof E?w:u;return Ti(Ie,this,J)}return E}function GE(u){return function(l,m,w){var E=Sr(l);if(!di(l)){var C=yt(m,3);l=vn(l),m=function(ie){return C(E[ie],ie,E)}}var J=u(l,m,w);return J>-1?E[C?l[J]:J]:e}}function WE(u){return Ls(function(l){var m=l.length,w=m,E=ia.prototype.thru;for(u&&l.reverse();w--;){var C=l[w];if(typeof C!="function")throw new na(i);if(E&&!J&&Dm(C)=="wrapper")var J=new ia([],!0)}for(w=J?w:m;++w<m;){C=l[w];var ie=Dm(C),fe=ie=="wrapper"?Ky(C):e;fe&&Qy(fe[0])&&fe[1]==(H|x|D|F)&&!fe[4].length&&fe[9]==1?J=J[Dm(fe[0])].apply(J,fe[3]):J=C.length==1&&Qy(C)?J[ie]():J.thru(C)}return function(){var Ce=arguments,Ie=Ce[0];if(J&&Ce.length==1&&Ct(Ie))return J.plant(Ie).value();for(var qe=0,We=m?l[qe].apply(this,Ce):Ie;++qe<m;)We=l[qe].call(this,We);return We}})}function km(u,l,m,w,E,C,J,ie,fe,Ce){var Ie=l&H,qe=l&v,We=l&y,pt=l&(x|A),xt=l&z,Ut=We?e:tf(u);function Et(){for(var Yt=arguments.length,Qt=be(Yt),Pi=Yt;Pi--;)Qt[Pi]=arguments[Pi];if(pt)var Zn=al(Et),Ii=MU(Qt,Zn);if(w&&(Qt=ME(Qt,w,E,pt)),C&&(Qt=UE(Qt,C,J,pt)),Yt-=Ii,pt&&Yt<Ce){var Jr=So(Qt,Zn);return JE(u,l,km,Et.placeholder,m,Qt,Jr,ie,fe,Ce-Yt)}var Ca=qe?m:this,Us=We?Ca[u]:u;return Yt=Qt.length,ie?Qt=YH(Qt,ie):xt&&Yt>1&&Qt.reverse(),Ie&&fe<Yt&&(Qt.length=fe),this&&this!==gn&&this instanceof Et&&(Us=Ut||tf(Us)),Us.apply(Ca,Qt)}return Et}function KE(u,l){return function(m,w){return nH(m,u,l(w),{})}}function Am(u,l){return function(m,w){var E;if(m===e&&w===e)return l;if(m!==e&&(E=m),w!==e){if(E===e)return w;typeof m=="string"||typeof w=="string"?(m=Di(m),w=Di(w)):(m=RE(m),w=RE(w)),E=u(m,w)}return E}}function Hy(u){return Ls(function(l){return l=Rr(l,Oi(yt())),Wt(function(m){var w=this;return u(l,function(E){return Ti(E,w,m)})})})}function Tm(u,l){l=l===e?" ":Di(l);var m=l.length;if(m<2)return m?qy(l,u):l;var w=qy(l,dm(u/Qc(l)));return Xc(l)?Co(Ta(w),0,u).join(""):w.slice(0,u)}function CH(u,l,m,w){var E=l&v,C=tf(u);function J(){for(var ie=-1,fe=arguments.length,Ce=-1,Ie=w.length,qe=be(Ie+fe),We=this&&this!==gn&&this instanceof J?C:u;++Ce<Ie;)qe[Ce]=w[Ce];for(;fe--;)qe[Ce++]=arguments[++ie];return Ti(We,E?m:this,qe)}return J}function YE(u){return function(l,m,w){return w&&typeof w!="number"&&Qn(l,m,w)&&(m=w=e),l=Ms(l),m===e?(m=l,l=0):m=Ms(m),w=w===e?l<m?1:-1:Ms(w),mH(l,m,w,u)}}function Om(u){return function(l,m){return typeof l=="string"&&typeof m=="string"||(l=ua(l),m=ua(m)),u(l,m)}}function JE(u,l,m,w,E,C,J,ie,fe,Ce){var Ie=l&x,qe=Ie?J:e,We=Ie?e:J,pt=Ie?C:e,xt=Ie?e:C;l|=Ie?D:j,l&=~(Ie?j:D),l&_||(l&=~(v|y));var Ut=[u,l,E,pt,qe,xt,We,ie,fe,Ce],Et=m.apply(e,Ut);return Qy(u)&&u5(Et,Ut),Et.placeholder=w,c5(Et,u,l)}function Vy(u){var l=on[u];return function(m,w){if(m=ua(m),w=w==null?0:jn(qt(w),292),w&&cE(m)){var E=(mr(m)+"e").split("e"),C=l(E[0]+"e"+(+E[1]+w));return E=(mr(C)+"e").split("e"),+(E[0]+"e"+(+E[1]-w))}return l(m)}}var PH=el&&1/nm(new el([,-0]))[1]==re?function(u){return new el(u)}:d2;function XE(u){return function(l){var m=Nn(l);return m==se?_y(l):m==Ne?KU(l):BU(l,u(l))}}function qs(u,l,m,w,E,C,J,ie){var fe=l&y;if(!fe&&typeof u!="function")throw new na(i);var Ce=w?w.length:0;if(Ce||(l&=~(D|j),w=E=e),J=J===e?J:un(qt(J),0),ie=ie===e?ie:qt(ie),Ce-=E?E.length:0,l&j){var Ie=w,qe=E;w=E=e}var We=fe?e:Ky(u),pt=[u,l,m,w,E,Ie,qe,C,J,ie];if(We&&GH(pt,We),u=pt[0],l=pt[1],m=pt[2],w=pt[3],E=pt[4],ie=pt[9]=pt[9]===e?fe?0:u.length:un(pt[9]-Ce,0),!ie&&l&(x|A)&&(l&=~(x|A)),!l||l==v)var xt=OH(u,l,m);else l==x||l==A?xt=DH(u,l,ie):(l==D||l==(v|D))&&!E.length?xt=CH(u,l,m,w):xt=km.apply(e,pt);var Ut=We?PE:u5;return c5(Ut(xt,pt),u,l)}function QE(u,l,m,w){return u===e||Da(u,Zc[m])&&!vr.call(w,m)?l:u}function ZE(u,l,m,w,E,C){return Nr(u)&&Nr(l)&&(C.set(l,u),_m(u,l,e,ZE,C),C.delete(l)),u}function IH(u){return af(u)?e:u}function e5(u,l,m,w,E,C){var J=m&h,ie=u.length,fe=l.length;if(ie!=fe&&!(J&&fe>ie))return!1;var Ce=C.get(u),Ie=C.get(l);if(Ce&&Ie)return Ce==l&&Ie==u;var qe=-1,We=!0,pt=m&g?new Fu:e;for(C.set(u,l),C.set(l,u);++qe<ie;){var xt=u[qe],Ut=l[qe];if(w)var Et=J?w(Ut,xt,qe,l,u,C):w(xt,Ut,qe,u,l,C);if(Et!==e){if(Et)continue;We=!1;break}if(pt){if(!my(l,function(Yt,Qt){if(!Hp(pt,Qt)&&(xt===Yt||E(xt,Yt,m,w,C)))return pt.push(Qt)})){We=!1;break}}else if(!(xt===Ut||E(xt,Ut,m,w,C))){We=!1;break}}return C.delete(u),C.delete(l),We}function RH(u,l,m,w,E,C,J){switch(m){case dr:if(u.byteLength!=l.byteLength||u.byteOffset!=l.byteOffset)return!1;u=u.buffer,l=l.buffer;case kr:return!(u.byteLength!=l.byteLength||!C(new cm(u),new cm(l)));case R:case $:case ae:return Da(+u,+l);case S:return u.name==l.name&&u.message==l.message;case Le:case Ve:return u==l+"";case se:var ie=_y;case Ne:var fe=w&h;if(ie||(ie=nm),u.size!=l.size&&!fe)return!1;var Ce=J.get(u);if(Ce)return Ce==l;w|=g,J.set(u,l);var Ie=e5(ie(u),ie(l),w,E,C,J);return J.delete(u),Ie;case kt:if(Yp)return Yp.call(u)==Yp.call(l)}return!1}function FH(u,l,m,w,E,C){var J=m&h,ie=Gy(u),fe=ie.length,Ce=Gy(l),Ie=Ce.length;if(fe!=Ie&&!J)return!1;for(var qe=fe;qe--;){var We=ie[qe];if(!(J?We in l:vr.call(l,We)))return!1}var pt=C.get(u),xt=C.get(l);if(pt&&xt)return pt==l&&xt==u;var Ut=!0;C.set(u,l),C.set(l,u);for(var Et=J;++qe<fe;){We=ie[qe];var Yt=u[We],Qt=l[We];if(w)var Pi=J?w(Qt,Yt,We,l,u,C):w(Yt,Qt,We,u,l,C);if(!(Pi===e?Yt===Qt||E(Yt,Qt,m,w,C):Pi)){Ut=!1;break}Et||(Et=We=="constructor")}if(Ut&&!Et){var Zn=u.constructor,Ii=l.constructor;Zn!=Ii&&"constructor"in u&&"constructor"in l&&!(typeof Zn=="function"&&Zn instanceof Zn&&typeof Ii=="function"&&Ii instanceof Ii)&&(Ut=!1)}return C.delete(u),C.delete(l),Ut}function Ls(u){return e2(s5(u,e,m5),u+"")}function Gy(u){return wE(u,vn,Jy)}function Wy(u){return wE(u,hi,t5)}var Ky=mm?function(u){return mm.get(u)}:d2;function Dm(u){for(var l=u.name+"",m=tl[l],w=vr.call(tl,l)?m.length:0;w--;){var E=m[w],C=E.func;if(C==null||C==u)return E.name}return l}function al(u){var l=vr.call(T,"placeholder")?T:u;return l.placeholder}function yt(){var u=T.iteratee||p2;return u=u===p2?EE:u,arguments.length?u(arguments[0],arguments[1]):u}function Cm(u,l){var m=u.__data__;return UH(l)?m[typeof l=="string"?"string":"hash"]:m.map}function Yy(u){for(var l=vn(u),m=l.length;m--;){var w=l[m],E=u[w];l[m]=[w,E,i5(E)]}return l}function qu(u,l){var m=VU(u,l);return xE(m)?m:e}function jH(u){var l=vr.call(u,Iu),m=u[Iu];try{u[Iu]=e;var w=!0}catch{}var E=om.call(u);return w&&(l?u[Iu]=m:delete u[Iu]),E}var Jy=Ey?function(u){return u==null?[]:(u=Sr(u),xo(Ey(u),function(l){return oE.call(u,l)}))}:h2,t5=Ey?function(u){for(var l=[];u;)Eo(l,Jy(u)),u=lm(u);return l}:h2,Nn=Xn;(Sy&&Nn(new Sy(new ArrayBuffer(1)))!=dr||Gp&&Nn(new Gp)!=se||ky&&Nn(ky.resolve())!=Ee||el&&Nn(new el)!=Ne||Wp&&Nn(new Wp)!=rr)&&(Nn=function(u){var l=Xn(u),m=l==Se?u.constructor:e,w=m?Lu(m):"";if(w)switch(w){case vz:return dr;case yz:return se;case bz:return Ee;case wz:return Ne;case _z:return rr}return l});function NH(u,l,m){for(var w=-1,E=m.length;++w<E;){var C=m[w],J=C.size;switch(C.type){case"drop":u+=J;break;case"dropRight":l-=J;break;case"take":l=jn(l,u+J);break;case"takeRight":u=un(u,l-J);break}}return{start:u,end:l}}function qH(u){var l=u.match(W);return l?l[1].split(k):[]}function r5(u,l,m){l=Do(l,u);for(var w=-1,E=l.length,C=!1;++w<E;){var J=rs(l[w]);if(!(C=u!=null&&m(u,J)))break;u=u[J]}return C||++w!=E?C:(E=u==null?0:u.length,!!E&&qm(E)&&$s(J,E)&&(Ct(u)||$u(u)))}function LH(u){var l=u.length,m=new u.constructor(l);return l&&typeof u[0]=="string"&&vr.call(u,"index")&&(m.index=u.index,m.input=u.input),m}function n5(u){return typeof u.constructor=="function"&&!rf(u)?rl(lm(u)):{}}function $H(u,l,m){var w=u.constructor;switch(l){case kr:return zy(u);case R:case $:return new w(+u);case dr:return xH(u,m);case $t:case $e:case Ue:case ct:case ut:case Dt:case Zt:case hr:case Bt:return $E(u,m);case se:return new w;case ae:case Ve:return new w(u);case Le:return EH(u);case Ne:return new w;case kt:return SH(u)}}function BH(u,l){var m=l.length;if(!m)return u;var w=m-1;return l[w]=(m>1?"& ":"")+l[w],l=l.join(m>2?", ":" "),u.replace(Y,`{
/* [wrapped with `+l+`] */
`)}function MH(u){return Ct(u)||$u(u)||!!(uE&&u&&u[uE])}function $s(u,l){var m=typeof u;return l=l??ue,!!l&&(m=="number"||m!="symbol"&&Ht.test(u))&&u>-1&&u%1==0&&u<l}function Qn(u,l,m){if(!Nr(m))return!1;var w=typeof l;return(w=="number"?di(m)&&$s(l,m.length):w=="string"&&l in m)?Da(m[l],u):!1}function Xy(u,l){if(Ct(u))return!1;var m=typeof u;return m=="number"||m=="symbol"||m=="boolean"||u==null||Ci(u)?!0:fc.test(u)||!Yc.test(u)||l!=null&&u in Sr(l)}function UH(u){var l=typeof u;return l=="string"||l=="number"||l=="symbol"||l=="boolean"?u!=="__proto__":u===null}function Qy(u){var l=Dm(u),m=T[l];if(typeof m!="function"||!(l in Xt.prototype))return!1;if(u===m)return!0;var w=Ky(m);return!!w&&u===w[0]}function zH(u){return!!iE&&iE in u}var HH=am?Bs:m2;function rf(u){var l=u&&u.constructor,m=typeof l=="function"&&l.prototype||Zc;return u===m}function i5(u){return u===u&&!Nr(u)}function a5(u,l){return function(m){return m==null?!1:m[u]===l&&(l!==e||u in Sr(m))}}function VH(u){var l=jm(u,function(w){return m.size===o&&m.clear(),w}),m=l.cache;return l}function GH(u,l){var m=u[1],w=l[1],E=m|w,C=E<(v|y|H),J=w==H&&m==x||w==H&&m==F&&u[7].length<=l[8]||w==(H|F)&&l[7].length<=l[8]&&m==x;if(!(C||J))return u;w&v&&(u[2]=l[2],E|=m&v?0:_);var ie=l[3];if(ie){var fe=u[3];u[3]=fe?ME(fe,ie,l[4]):ie,u[4]=fe?So(u[3],c):l[4]}return ie=l[5],ie&&(fe=u[5],u[5]=fe?UE(fe,ie,l[6]):ie,u[6]=fe?So(u[5],c):l[6]),ie=l[7],ie&&(u[7]=ie),w&H&&(u[8]=u[8]==null?l[8]:jn(u[8],l[8])),u[9]==null&&(u[9]=l[9]),u[0]=l[0],u[1]=E,u}function WH(u){var l=[];if(u!=null)for(var m in Sr(u))l.push(m);return l}function KH(u){return om.call(u)}function s5(u,l,m){return l=un(l===e?u.length-1:l,0),function(){for(var w=arguments,E=-1,C=un(w.length-l,0),J=be(C);++E<C;)J[E]=w[l+E];E=-1;for(var ie=be(l+1);++E<l;)ie[E]=w[E];return ie[l]=m(J),Ti(u,this,ie)}}function o5(u,l){return l.length<2?u:Nu(u,sa(l,0,-1))}function YH(u,l){for(var m=u.length,w=jn(l.length,m),E=fi(u);w--;){var C=l[w];u[w]=$s(C,m)?E[C]:e}return u}function Zy(u,l){if(!(l==="constructor"&&typeof u[l]=="function")&&l!="__proto__")return u[l]}var u5=l5(PE),nf=lz||function(u,l){return gn.setTimeout(u,l)},e2=l5(yH);function c5(u,l,m){var w=l+"";return e2(u,BH(w,JH(qH(w),m)))}function l5(u){var l=0,m=0;return function(){var w=hz(),E=L-(w-m);if(m=w,E>0){if(++l>=K)return arguments[0]}else l=0;return u.apply(e,arguments)}}function Pm(u,l){var m=-1,w=u.length,E=w-1;for(l=l===e?w:l;++m<l;){var C=Ny(m,E),J=u[C];u[C]=u[m],u[m]=J}return u.length=l,u}var p5=VH(function(u){var l=[];return u.charCodeAt(0)===46&&l.push(""),u.replace(Il,function(m,w,E,C){l.push(E?C.replace(Be,"$1"):w||m)}),l});function rs(u){if(typeof u=="string"||Ci(u))return u;var l=u+"";return l=="0"&&1/u==-re?"-0":l}function Lu(u){if(u!=null){try{return sm.call(u)}catch{}try{return u+""}catch{}}return""}function JH(u,l){return ra(ge,function(m){var w="_."+m[0];l&m[1]&&!tm(u,w)&&u.push(w)}),u.sort()}function f5(u){if(u instanceof Xt)return u.clone();var l=new ia(u.__wrapped__,u.__chain__);return l.__actions__=fi(u.__actions__),l.__index__=u.__index__,l.__values__=u.__values__,l}function XH(u,l,m){(m?Qn(u,l,m):l===e)?l=1:l=un(qt(l),0);var w=u==null?0:u.length;if(!w||l<1)return[];for(var E=0,C=0,J=be(dm(w/l));E<w;)J[C++]=sa(u,E,E+=l);return J}function QH(u){for(var l=-1,m=u==null?0:u.length,w=0,E=[];++l<m;){var C=u[l];C&&(E[w++]=C)}return E}function ZH(){var u=arguments.length;if(!u)return[];for(var l=be(u-1),m=arguments[0],w=u;w--;)l[w-1]=arguments[w];return Eo(Ct(m)?fi(m):[m],An(l,1))}var eV=Wt(function(u,l){return Yr(u)?Xp(u,An(l,1,Yr,!0)):[]}),tV=Wt(function(u,l){var m=oa(l);return Yr(m)&&(m=e),Yr(u)?Xp(u,An(l,1,Yr,!0),yt(m,2)):[]}),rV=Wt(function(u,l){var m=oa(l);return Yr(m)&&(m=e),Yr(u)?Xp(u,An(l,1,Yr,!0),e,m):[]});function nV(u,l,m){var w=u==null?0:u.length;return w?(l=m||l===e?1:qt(l),sa(u,l<0?0:l,w)):[]}function iV(u,l,m){var w=u==null?0:u.length;return w?(l=m||l===e?1:qt(l),l=w-l,sa(u,0,l<0?0:l)):[]}function aV(u,l){return u&&u.length?Em(u,yt(l,3),!0,!0):[]}function sV(u,l){return u&&u.length?Em(u,yt(l,3),!0):[]}function oV(u,l,m,w){var E=u==null?0:u.length;return E?(m&&typeof m!="number"&&Qn(u,l,m)&&(m=0,w=E),Zz(u,l,m,w)):[]}function d5(u,l,m){var w=u==null?0:u.length;if(!w)return-1;var E=m==null?0:qt(m);return E<0&&(E=un(w+E,0)),rm(u,yt(l,3),E)}function h5(u,l,m){var w=u==null?0:u.length;if(!w)return-1;var E=w-1;return m!==e&&(E=qt(m),E=m<0?un(w+E,0):jn(E,w-1)),rm(u,yt(l,3),E,!0)}function m5(u){var l=u==null?0:u.length;return l?An(u,1):[]}function uV(u){var l=u==null?0:u.length;return l?An(u,re):[]}function cV(u,l){var m=u==null?0:u.length;return m?(l=l===e?1:qt(l),An(u,l)):[]}function lV(u){for(var l=-1,m=u==null?0:u.length,w={};++l<m;){var E=u[l];w[E[0]]=E[1]}return w}function g5(u){return u&&u.length?u[0]:e}function pV(u,l,m){var w=u==null?0:u.length;if(!w)return-1;var E=m==null?0:qt(m);return E<0&&(E=un(w+E,0)),Jc(u,l,E)}function fV(u){var l=u==null?0:u.length;return l?sa(u,0,-1):[]}var dV=Wt(function(u){var l=Rr(u,My);return l.length&&l[0]===u[0]?Py(l):[]}),hV=Wt(function(u){var l=oa(u),m=Rr(u,My);return l===oa(m)?l=e:m.pop(),m.length&&m[0]===u[0]?Py(m,yt(l,2)):[]}),mV=Wt(function(u){var l=oa(u),m=Rr(u,My);return l=typeof l=="function"?l:e,l&&m.pop(),m.length&&m[0]===u[0]?Py(m,e,l):[]});function gV(u,l){return u==null?"":fz.call(u,l)}function oa(u){var l=u==null?0:u.length;return l?u[l-1]:e}function vV(u,l,m){var w=u==null?0:u.length;if(!w)return-1;var E=w;return m!==e&&(E=qt(m),E=E<0?un(w+E,0):jn(E,w-1)),l===l?JU(u,l,E):rm(u,Jx,E,!0)}function yV(u,l){return u&&u.length?TE(u,qt(l)):e}var bV=Wt(v5);function v5(u,l){return u&&u.length&&l&&l.length?jy(u,l):u}function wV(u,l,m){return u&&u.length&&l&&l.length?jy(u,l,yt(m,2)):u}function _V(u,l,m){return u&&u.length&&l&&l.length?jy(u,l,e,m):u}var xV=Ls(function(u,l){var m=u==null?0:u.length,w=Ty(u,l);return CE(u,Rr(l,function(E){return $s(E,m)?+E:E}).sort(BE)),w});function EV(u,l){var m=[];if(!(u&&u.length))return m;var w=-1,E=[],C=u.length;for(l=yt(l,3);++w<C;){var J=u[w];l(J,w,u)&&(m.push(J),E.push(w))}return CE(u,E),m}function t2(u){return u==null?u:gz.call(u)}function SV(u,l,m){var w=u==null?0:u.length;return w?(m&&typeof m!="number"&&Qn(u,l,m)?(l=0,m=w):(l=l==null?0:qt(l),m=m===e?w:qt(m)),sa(u,l,m)):[]}function kV(u,l){return xm(u,l)}function AV(u,l,m){return Ly(u,l,yt(m,2))}function TV(u,l){var m=u==null?0:u.length;if(m){var w=xm(u,l);if(w<m&&Da(u[w],l))return w}return-1}function OV(u,l){return xm(u,l,!0)}function DV(u,l,m){return Ly(u,l,yt(m,2),!0)}function CV(u,l){var m=u==null?0:u.length;if(m){var w=xm(u,l,!0)-1;if(Da(u[w],l))return w}return-1}function PV(u){return u&&u.length?IE(u):[]}function IV(u,l){return u&&u.length?IE(u,yt(l,2)):[]}function RV(u){var l=u==null?0:u.length;return l?sa(u,1,l):[]}function FV(u,l,m){return u&&u.length?(l=m||l===e?1:qt(l),sa(u,0,l<0?0:l)):[]}function jV(u,l,m){var w=u==null?0:u.length;return w?(l=m||l===e?1:qt(l),l=w-l,sa(u,l<0?0:l,w)):[]}function NV(u,l){return u&&u.length?Em(u,yt(l,3),!1,!0):[]}function qV(u,l){return u&&u.length?Em(u,yt(l,3)):[]}var LV=Wt(function(u){return Oo(An(u,1,Yr,!0))}),$V=Wt(function(u){var l=oa(u);return Yr(l)&&(l=e),Oo(An(u,1,Yr,!0),yt(l,2))}),BV=Wt(function(u){var l=oa(u);return l=typeof l=="function"?l:e,Oo(An(u,1,Yr,!0),e,l)});function MV(u){return u&&u.length?Oo(u):[]}function UV(u,l){return u&&u.length?Oo(u,yt(l,2)):[]}function zV(u,l){return l=typeof l=="function"?l:e,u&&u.length?Oo(u,e,l):[]}function r2(u){if(!(u&&u.length))return[];var l=0;return u=xo(u,function(m){if(Yr(m))return l=un(m.length,l),!0}),by(l,function(m){return Rr(u,gy(m))})}function y5(u,l){if(!(u&&u.length))return[];var m=r2(u);return l==null?m:Rr(m,function(w){return Ti(l,e,w)})}var HV=Wt(function(u,l){return Yr(u)?Xp(u,l):[]}),VV=Wt(function(u){return By(xo(u,Yr))}),GV=Wt(function(u){var l=oa(u);return Yr(l)&&(l=e),By(xo(u,Yr),yt(l,2))}),WV=Wt(function(u){var l=oa(u);return l=typeof l=="function"?l:e,By(xo(u,Yr),e,l)}),KV=Wt(r2);function YV(u,l){return NE(u||[],l||[],Jp)}function JV(u,l){return NE(u||[],l||[],ef)}var XV=Wt(function(u){var l=u.length,m=l>1?u[l-1]:e;return m=typeof m=="function"?(u.pop(),m):e,y5(u,m)});function b5(u){var l=T(u);return l.__chain__=!0,l}function QV(u,l){return l(u),u}function Im(u,l){return l(u)}var ZV=Ls(function(u){var l=u.length,m=l?u[0]:0,w=this.__wrapped__,E=function(C){return Ty(C,u)};return l>1||this.__actions__.length||!(w instanceof Xt)||!$s(m)?this.thru(E):(w=w.slice(m,+m+(l?1:0)),w.__actions__.push({func:Im,args:[E],thisArg:e}),new ia(w,this.__chain__).thru(function(C){return l&&!C.length&&C.push(e),C}))});function eG(){return b5(this)}function tG(){return new ia(this.value(),this.__chain__)}function rG(){this.__values__===e&&(this.__values__=R5(this.value()));var u=this.__index__>=this.__values__.length,l=u?e:this.__values__[this.__index__++];return{done:u,value:l}}function nG(){return this}function iG(u){for(var l,m=this;m instanceof vm;){var w=f5(m);w.__index__=0,w.__values__=e,l?E.__wrapped__=w:l=w;var E=w;m=m.__wrapped__}return E.__wrapped__=u,l}function aG(){var u=this.__wrapped__;if(u instanceof Xt){var l=u;return this.__actions__.length&&(l=new Xt(this)),l=l.reverse(),l.__actions__.push({func:Im,args:[t2],thisArg:e}),new ia(l,this.__chain__)}return this.thru(t2)}function sG(){return jE(this.__wrapped__,this.__actions__)}var oG=Sm(function(u,l,m){vr.call(u,m)?++u[m]:Ns(u,m,1)});function uG(u,l,m){var w=Ct(u)?Kx:Qz;return m&&Qn(u,l,m)&&(l=e),w(u,yt(l,3))}function cG(u,l){var m=Ct(u)?xo:yE;return m(u,yt(l,3))}var lG=GE(d5),pG=GE(h5);function fG(u,l){return An(Rm(u,l),1)}function dG(u,l){return An(Rm(u,l),re)}function hG(u,l,m){return m=m===e?1:qt(m),An(Rm(u,l),m)}function w5(u,l){var m=Ct(u)?ra:To;return m(u,yt(l,3))}function _5(u,l){var m=Ct(u)?RU:vE;return m(u,yt(l,3))}var mG=Sm(function(u,l,m){vr.call(u,m)?u[m].push(l):Ns(u,m,[l])});function gG(u,l,m,w){u=di(u)?u:ol(u),m=m&&!w?qt(m):0;var E=u.length;return m<0&&(m=un(E+m,0)),Lm(u)?m<=E&&u.indexOf(l,m)>-1:!!E&&Jc(u,l,m)>-1}var vG=Wt(function(u,l,m){var w=-1,E=typeof l=="function",C=di(u)?be(u.length):[];return To(u,function(J){C[++w]=E?Ti(l,J,m):Qp(J,l,m)}),C}),yG=Sm(function(u,l,m){Ns(u,m,l)});function Rm(u,l){var m=Ct(u)?Rr:SE;return m(u,yt(l,3))}function bG(u,l,m,w){return u==null?[]:(Ct(l)||(l=l==null?[]:[l]),m=w?e:m,Ct(m)||(m=m==null?[]:[m]),OE(u,l,m))}var wG=Sm(function(u,l,m){u[m?0:1].push(l)},function(){return[[],[]]});function _G(u,l,m){var w=Ct(u)?hy:Qx,E=arguments.length<3;return w(u,yt(l,4),m,E,To)}function xG(u,l,m){var w=Ct(u)?FU:Qx,E=arguments.length<3;return w(u,yt(l,4),m,E,vE)}function EG(u,l){var m=Ct(u)?xo:yE;return m(u,Nm(yt(l,3)))}function SG(u){var l=Ct(u)?dE:gH;return l(u)}function kG(u,l,m){(m?Qn(u,l,m):l===e)?l=1:l=qt(l);var w=Ct(u)?Wz:vH;return w(u,l)}function AG(u){var l=Ct(u)?Kz:bH;return l(u)}function TG(u){if(u==null)return 0;if(di(u))return Lm(u)?Qc(u):u.length;var l=Nn(u);return l==se||l==Ne?u.size:Ry(u).length}function OG(u,l,m){var w=Ct(u)?my:wH;return m&&Qn(u,l,m)&&(l=e),w(u,yt(l,3))}var DG=Wt(function(u,l){if(u==null)return[];var m=l.length;return m>1&&Qn(u,l[0],l[1])?l=[]:m>2&&Qn(l[0],l[1],l[2])&&(l=[l[0]]),OE(u,An(l,1),[])}),Fm=cz||function(){return gn.Date.now()};function CG(u,l){if(typeof l!="function")throw new na(i);return u=qt(u),function(){if(--u<1)return l.apply(this,arguments)}}function x5(u,l,m){return l=m?e:l,l=u&&l==null?u.length:l,qs(u,H,e,e,e,e,l)}function E5(u,l){var m;if(typeof l!="function")throw new na(i);return u=qt(u),function(){return--u>0&&(m=l.apply(this,arguments)),u<=1&&(l=e),m}}var n2=Wt(function(u,l,m){var w=v;if(m.length){var E=So(m,al(n2));w|=D}return qs(u,w,l,m,E)}),S5=Wt(function(u,l,m){var w=v|y;if(m.length){var E=So(m,al(S5));w|=D}return qs(l,w,u,m,E)});function k5(u,l,m){l=m?e:l;var w=qs(u,x,e,e,e,e,e,l);return w.placeholder=k5.placeholder,w}function A5(u,l,m){l=m?e:l;var w=qs(u,A,e,e,e,e,e,l);return w.placeholder=A5.placeholder,w}function T5(u,l,m){var w,E,C,J,ie,fe,Ce=0,Ie=!1,qe=!1,We=!0;if(typeof u!="function")throw new na(i);l=ua(l)||0,Nr(m)&&(Ie=!!m.leading,qe="maxWait"in m,C=qe?un(ua(m.maxWait)||0,l):C,We="trailing"in m?!!m.trailing:We);function pt(Jr){var Ca=w,Us=E;return w=E=e,Ce=Jr,J=u.apply(Us,Ca),J}function xt(Jr){return Ce=Jr,ie=nf(Yt,l),Ie?pt(Jr):J}function Ut(Jr){var Ca=Jr-fe,Us=Jr-Ce,G5=l-Ca;return qe?jn(G5,C-Us):G5}function Et(Jr){var Ca=Jr-fe,Us=Jr-Ce;return fe===e||Ca>=l||Ca<0||qe&&Us>=C}function Yt(){var Jr=Fm();if(Et(Jr))return Qt(Jr);ie=nf(Yt,Ut(Jr))}function Qt(Jr){return ie=e,We&&w?pt(Jr):(w=E=e,J)}function Pi(){ie!==e&&qE(ie),Ce=0,w=fe=E=ie=e}function Zn(){return ie===e?J:Qt(Fm())}function Ii(){var Jr=Fm(),Ca=Et(Jr);if(w=arguments,E=this,fe=Jr,Ca){if(ie===e)return xt(fe);if(qe)return qE(ie),ie=nf(Yt,l),pt(fe)}return ie===e&&(ie=nf(Yt,l)),J}return Ii.cancel=Pi,Ii.flush=Zn,Ii}var PG=Wt(function(u,l){return gE(u,1,l)}),IG=Wt(function(u,l,m){return gE(u,ua(l)||0,m)});function RG(u){return qs(u,z)}function jm(u,l){if(typeof u!="function"||l!=null&&typeof l!="function")throw new na(i);var m=function(){var w=arguments,E=l?l.apply(this,w):w[0],C=m.cache;if(C.has(E))return C.get(E);var J=u.apply(this,w);return m.cache=C.set(E,J)||C,J};return m.cache=new(jm.Cache||js),m}jm.Cache=js;function Nm(u){if(typeof u!="function")throw new na(i);return function(){var l=arguments;switch(l.length){case 0:return!u.call(this);case 1:return!u.call(this,l[0]);case 2:return!u.call(this,l[0],l[1]);case 3:return!u.call(this,l[0],l[1],l[2])}return!u.apply(this,l)}}function FG(u){return E5(2,u)}var jG=_H(function(u,l){l=l.length==1&&Ct(l[0])?Rr(l[0],Oi(yt())):Rr(An(l,1),Oi(yt()));var m=l.length;return Wt(function(w){for(var E=-1,C=jn(w.length,m);++E<C;)w[E]=l[E].call(this,w[E]);return Ti(u,this,w)})}),i2=Wt(function(u,l){var m=So(l,al(i2));return qs(u,D,e,l,m)}),O5=Wt(function(u,l){var m=So(l,al(O5));return qs(u,j,e,l,m)}),NG=Ls(function(u,l){return qs(u,F,e,e,e,l)});function qG(u,l){if(typeof u!="function")throw new na(i);return l=l===e?l:qt(l),Wt(u,l)}function LG(u,l){if(typeof u!="function")throw new na(i);return l=l==null?0:un(qt(l),0),Wt(function(m){var w=m[l],E=Co(m,0,l);return w&&Eo(E,w),Ti(u,this,E)})}function $G(u,l,m){var w=!0,E=!0;if(typeof u!="function")throw new na(i);return Nr(m)&&(w="leading"in m?!!m.leading:w,E="trailing"in m?!!m.trailing:E),T5(u,l,{leading:w,maxWait:l,trailing:E})}function BG(u){return x5(u,1)}function MG(u,l){return i2(Uy(l),u)}function UG(){if(!arguments.length)return[];var u=arguments[0];return Ct(u)?u:[u]}function zG(u){return aa(u,d)}function HG(u,l){return l=typeof l=="function"?l:e,aa(u,d,l)}function VG(u){return aa(u,p|d)}function GG(u,l){return l=typeof l=="function"?l:e,aa(u,p|d,l)}function WG(u,l){return l==null||mE(u,l,vn(l))}function Da(u,l){return u===l||u!==u&&l!==l}var KG=Om(Cy),YG=Om(function(u,l){return u>=l}),$u=_E(function(){return arguments}())?_E:function(u){return zr(u)&&vr.call(u,"callee")&&!oE.call(u,"callee")},Ct=be.isArray,JG=Ux?Oi(Ux):iH;function di(u){return u!=null&&qm(u.length)&&!Bs(u)}function Yr(u){return zr(u)&&di(u)}function XG(u){return u===!0||u===!1||zr(u)&&Xn(u)==R}var Po=pz||m2,QG=zx?Oi(zx):aH;function ZG(u){return zr(u)&&u.nodeType===1&&!af(u)}function eW(u){if(u==null)return!0;if(di(u)&&(Ct(u)||typeof u=="string"||typeof u.splice=="function"||Po(u)||sl(u)||$u(u)))return!u.length;var l=Nn(u);if(l==se||l==Ne)return!u.size;if(rf(u))return!Ry(u).length;for(var m in u)if(vr.call(u,m))return!1;return!0}function tW(u,l){return Zp(u,l)}function rW(u,l,m){m=typeof m=="function"?m:e;var w=m?m(u,l):e;return w===e?Zp(u,l,e,m):!!w}function a2(u){if(!zr(u))return!1;var l=Xn(u);return l==S||l==ke||typeof u.message=="string"&&typeof u.name=="string"&&!af(u)}function nW(u){return typeof u=="number"&&cE(u)}function Bs(u){if(!Nr(u))return!1;var l=Xn(u);return l==I||l==B||l==ye||l==De}function D5(u){return typeof u=="number"&&u==qt(u)}function qm(u){return typeof u=="number"&&u>-1&&u%1==0&&u<=ue}function Nr(u){var l=typeof u;return u!=null&&(l=="object"||l=="function")}function zr(u){return u!=null&&typeof u=="object"}var C5=Hx?Oi(Hx):oH;function iW(u,l){return u===l||Iy(u,l,Yy(l))}function aW(u,l,m){return m=typeof m=="function"?m:e,Iy(u,l,Yy(l),m)}function sW(u){return P5(u)&&u!=+u}function oW(u){if(HH(u))throw new Ot(n);return xE(u)}function uW(u){return u===null}function cW(u){return u==null}function P5(u){return typeof u=="number"||zr(u)&&Xn(u)==ae}function af(u){if(!zr(u)||Xn(u)!=Se)return!1;var l=lm(u);if(l===null)return!0;var m=vr.call(l,"constructor")&&l.constructor;return typeof m=="function"&&m instanceof m&&sm.call(m)==az}var s2=Vx?Oi(Vx):uH;function lW(u){return D5(u)&&u>=-ue&&u<=ue}var I5=Gx?Oi(Gx):cH;function Lm(u){return typeof u=="string"||!Ct(u)&&zr(u)&&Xn(u)==Ve}function Ci(u){return typeof u=="symbol"||zr(u)&&Xn(u)==kt}var sl=Wx?Oi(Wx):lH;function pW(u){return u===e}function fW(u){return zr(u)&&Nn(u)==rr}function dW(u){return zr(u)&&Xn(u)==Or}var hW=Om(Fy),mW=Om(function(u,l){return u<=l});function R5(u){if(!u)return[];if(di(u))return Lm(u)?Ta(u):fi(u);if(Vp&&u[Vp])return WU(u[Vp]());var l=Nn(u),m=l==se?_y:l==Ne?nm:ol;return m(u)}function Ms(u){if(!u)return u===0?u:0;if(u=ua(u),u===re||u===-re){var l=u<0?-1:1;return l*Q}return u===u?u:0}function qt(u){var l=Ms(u),m=l%1;return l===l?m?l-m:l:0}function F5(u){return u?ju(qt(u),0,G):0}function ua(u){if(typeof u=="number")return u;if(Ci(u))return ne;if(Nr(u)){var l=typeof u.valueOf=="function"?u.valueOf():u;u=Nr(l)?l+"":l}if(typeof u!="string")return u===0?u:+u;u=Zx(u);var m=_t.test(u);return m||gt.test(u)?CU(u.slice(2),m?2:8):St.test(u)?ne:+u}function j5(u){return ts(u,hi(u))}function gW(u){return u?ju(qt(u),-ue,ue):u===0?u:0}function mr(u){return u==null?"":Di(u)}var vW=nl(function(u,l){if(rf(l)||di(l)){ts(l,vn(l),u);return}for(var m in l)vr.call(l,m)&&Jp(u,m,l[m])}),N5=nl(function(u,l){ts(l,hi(l),u)}),$m=nl(function(u,l,m,w){ts(l,hi(l),u,w)}),yW=nl(function(u,l,m,w){ts(l,vn(l),u,w)}),bW=Ls(Ty);function wW(u,l){var m=rl(u);return l==null?m:hE(m,l)}var _W=Wt(function(u,l){u=Sr(u);var m=-1,w=l.length,E=w>2?l[2]:e;for(E&&Qn(l[0],l[1],E)&&(w=1);++m<w;)for(var C=l[m],J=hi(C),ie=-1,fe=J.length;++ie<fe;){var Ce=J[ie],Ie=u[Ce];(Ie===e||Da(Ie,Zc[Ce])&&!vr.call(u,Ce))&&(u[Ce]=C[Ce])}return u}),xW=Wt(function(u){return u.push(e,ZE),Ti(q5,e,u)});function EW(u,l){return Yx(u,yt(l,3),es)}function SW(u,l){return Yx(u,yt(l,3),Dy)}function kW(u,l){return u==null?u:Oy(u,yt(l,3),hi)}function AW(u,l){return u==null?u:bE(u,yt(l,3),hi)}function TW(u,l){return u&&es(u,yt(l,3))}function OW(u,l){return u&&Dy(u,yt(l,3))}function DW(u){return u==null?[]:wm(u,vn(u))}function CW(u){return u==null?[]:wm(u,hi(u))}function o2(u,l,m){var w=u==null?e:Nu(u,l);return w===e?m:w}function PW(u,l){return u!=null&&r5(u,l,eH)}function u2(u,l){return u!=null&&r5(u,l,tH)}var IW=KE(function(u,l,m){l!=null&&typeof l.toString!="function"&&(l=om.call(l)),u[l]=m},l2(mi)),RW=KE(function(u,l,m){l!=null&&typeof l.toString!="function"&&(l=om.call(l)),vr.call(u,l)?u[l].push(m):u[l]=[m]},yt),FW=Wt(Qp);function vn(u){return di(u)?fE(u):Ry(u)}function hi(u){return di(u)?fE(u,!0):pH(u)}function jW(u,l){var m={};return l=yt(l,3),es(u,function(w,E,C){Ns(m,l(w,E,C),w)}),m}function NW(u,l){var m={};return l=yt(l,3),es(u,function(w,E,C){Ns(m,E,l(w,E,C))}),m}var qW=nl(function(u,l,m){_m(u,l,m)}),q5=nl(function(u,l,m,w){_m(u,l,m,w)}),LW=Ls(function(u,l){var m={};if(u==null)return m;var w=!1;l=Rr(l,function(C){return C=Do(C,u),w||(w=C.length>1),C}),ts(u,Wy(u),m),w&&(m=aa(m,p|f|d,IH));for(var E=l.length;E--;)$y(m,l[E]);return m});function $W(u,l){return L5(u,Nm(yt(l)))}var BW=Ls(function(u,l){return u==null?{}:dH(u,l)});function L5(u,l){if(u==null)return{};var m=Rr(Wy(u),function(w){return[w]});return l=yt(l),DE(u,m,function(w,E){return l(w,E[0])})}function MW(u,l,m){l=Do(l,u);var w=-1,E=l.length;for(E||(E=1,u=e);++w<E;){var C=u==null?e:u[rs(l[w])];C===e&&(w=E,C=m),u=Bs(C)?C.call(u):C}return u}function UW(u,l,m){return u==null?u:ef(u,l,m)}function zW(u,l,m,w){return w=typeof w=="function"?w:e,u==null?u:ef(u,l,m,w)}var $5=XE(vn),B5=XE(hi);function HW(u,l,m){var w=Ct(u),E=w||Po(u)||sl(u);if(l=yt(l,4),m==null){var C=u&&u.constructor;E?m=w?new C:[]:Nr(u)?m=Bs(C)?rl(lm(u)):{}:m={}}return(E?ra:es)(u,function(J,ie,fe){return l(m,J,ie,fe)}),m}function VW(u,l){return u==null?!0:$y(u,l)}function GW(u,l,m){return u==null?u:FE(u,l,Uy(m))}function WW(u,l,m,w){return w=typeof w=="function"?w:e,u==null?u:FE(u,l,Uy(m),w)}function ol(u){return u==null?[]:wy(u,vn(u))}function KW(u){return u==null?[]:wy(u,hi(u))}function YW(u,l,m){return m===e&&(m=l,l=e),m!==e&&(m=ua(m),m=m===m?m:0),l!==e&&(l=ua(l),l=l===l?l:0),ju(ua(u),l,m)}function JW(u,l,m){return l=Ms(l),m===e?(m=l,l=0):m=Ms(m),u=ua(u),rH(u,l,m)}function XW(u,l,m){if(m&&typeof m!="boolean"&&Qn(u,l,m)&&(l=m=e),m===e&&(typeof l=="boolean"?(m=l,l=e):typeof u=="boolean"&&(m=u,u=e)),u===e&&l===e?(u=0,l=1):(u=Ms(u),l===e?(l=u,u=0):l=Ms(l)),u>l){var w=u;u=l,l=w}if(m||u%1||l%1){var E=lE();return jn(u+E*(l-u+DU("1e-"+((E+"").length-1))),l)}return Ny(u,l)}var QW=il(function(u,l,m){return l=l.toLowerCase(),u+(m?M5(l):l)});function M5(u){return c2(mr(u).toLowerCase())}function U5(u){return u=mr(u),u&&u.replace(Nt,UU).replace(eu,"")}function ZW(u,l,m){u=mr(u),l=Di(l);var w=u.length;m=m===e?w:ju(qt(m),0,w);var E=m;return m-=l.length,m>=0&&u.slice(m,E)==l}function eK(u){return u=mr(u),u&&Pl.test(u)?u.replace(Xa,zU):u}function tK(u){return u=mr(u),u&&Fe.test(u)?u.replace(Zo,"\\$&"):u}var rK=il(function(u,l,m){return u+(m?"-":"")+l.toLowerCase()}),nK=il(function(u,l,m){return u+(m?" ":"")+l.toLowerCase()}),iK=VE("toLowerCase");function aK(u,l,m){u=mr(u),l=qt(l);var w=l?Qc(u):0;if(!l||w>=l)return u;var E=(l-w)/2;return Tm(hm(E),m)+u+Tm(dm(E),m)}function sK(u,l,m){u=mr(u),l=qt(l);var w=l?Qc(u):0;return l&&w<l?u+Tm(l-w,m):u}function oK(u,l,m){u=mr(u),l=qt(l);var w=l?Qc(u):0;return l&&w<l?Tm(l-w,m)+u:u}function uK(u,l,m){return m||l==null?l=0:l&&(l=+l),mz(mr(u).replace(_e,""),l||0)}function cK(u,l,m){return(m?Qn(u,l,m):l===e)?l=1:l=qt(l),qy(mr(u),l)}function lK(){var u=arguments,l=mr(u[0]);return u.length<3?l:l.replace(u[1],u[2])}var pK=il(function(u,l,m){return u+(m?"_":"")+l.toLowerCase()});function fK(u,l,m){return m&&typeof m!="number"&&Qn(u,l,m)&&(l=m=e),m=m===e?G:m>>>0,m?(u=mr(u),u&&(typeof l=="string"||l!=null&&!s2(l))&&(l=Di(l),!l&&Xc(u))?Co(Ta(u),0,m):u.split(l,m)):[]}var dK=il(function(u,l,m){return u+(m?" ":"")+c2(l)});function hK(u,l,m){return u=mr(u),m=m==null?0:ju(qt(m),0,u.length),l=Di(l),u.slice(m,m+l.length)==l}function mK(u,l,m){var w=T.templateSettings;m&&Qn(u,l,m)&&(l=e),u=mr(u),l=$m({},l,w,QE);var E=$m({},l.imports,w.imports,QE),C=vn(E),J=wy(E,C),ie,fe,Ce=0,Ie=l.interpolate||er,qe="__p += '",We=xy((l.escape||er).source+"|"+Ie.source+"|"+(Ie===Rs?Je:er).source+"|"+(l.evaluate||er).source+"|$","g"),pt="//# sourceURL="+(vr.call(l,"sourceURL")?(l.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++SU+"]")+`
`;u.replace(We,function(Et,Yt,Qt,Pi,Zn,Ii){return Qt||(Qt=Pi),qe+=u.slice(Ce,Ii).replace(ur,HU),Yt&&(ie=!0,qe+=`' +
__e(`+Yt+`) +
'`),Zn&&(fe=!0,qe+=`';
`+Zn+`;
__p += '`),Qt&&(qe+=`' +
((__t = (`+Qt+`)) == null ? '' : __t) +
'`),Ce=Ii+Et.length,Et}),qe+=`';
`;var xt=vr.call(l,"variable")&&l.variable;if(!xt)qe=`with (obj) {
`+qe+`
}
`;else if(je.test(xt))throw new Ot(a);qe=(fe?qe.replace(pr,""):qe).replace(wn,"$1").replace(Ai,"$1;"),qe="function("+(xt||"obj")+`) {
`+(xt?"":`obj || (obj = {});
`)+"var __t, __p = ''"+(ie?", __e = _.escape":"")+(fe?`, __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
`:`;
`)+qe+`return __p
}`;var Ut=H5(function(){return fr(C,pt+"return "+qe).apply(e,J)});if(Ut.source=qe,a2(Ut))throw Ut;return Ut}function gK(u){return mr(u).toLowerCase()}function vK(u){return mr(u).toUpperCase()}function yK(u,l,m){if(u=mr(u),u&&(m||l===e))return Zx(u);if(!u||!(l=Di(l)))return u;var w=Ta(u),E=Ta(l),C=eE(w,E),J=tE(w,E)+1;return Co(w,C,J).join("")}function bK(u,l,m){if(u=mr(u),u&&(m||l===e))return u.slice(0,nE(u)+1);if(!u||!(l=Di(l)))return u;var w=Ta(u),E=tE(w,Ta(l))+1;return Co(w,0,E).join("")}function wK(u,l,m){if(u=mr(u),u&&(m||l===e))return u.replace(_e,"");if(!u||!(l=Di(l)))return u;var w=Ta(u),E=eE(w,Ta(l));return Co(w,E).join("")}function _K(u,l){var m=P,w=M;if(Nr(l)){var E="separator"in l?l.separator:E;m="length"in l?qt(l.length):m,w="omission"in l?Di(l.omission):w}u=mr(u);var C=u.length;if(Xc(u)){var J=Ta(u);C=J.length}if(m>=C)return u;var ie=m-Qc(w);if(ie<1)return w;var fe=J?Co(J,0,ie).join(""):u.slice(0,ie);if(E===e)return fe+w;if(J&&(ie+=fe.length-ie),s2(E)){if(u.slice(ie).search(E)){var Ce,Ie=fe;for(E.global||(E=xy(E.source,mr(nt.exec(E))+"g")),E.lastIndex=0;Ce=E.exec(Ie);)var qe=Ce.index;fe=fe.slice(0,qe===e?ie:qe)}}else if(u.indexOf(Di(E),ie)!=ie){var We=fe.lastIndexOf(E);We>-1&&(fe=fe.slice(0,We))}return fe+w}function xK(u){return u=mr(u),u&&ws.test(u)?u.replace(Ui,XU):u}var EK=il(function(u,l,m){return u+(m?" ":"")+l.toUpperCase()}),c2=VE("toUpperCase");function z5(u,l,m){return u=mr(u),l=m?e:l,l===e?GU(u)?ez(u):qU(u):u.match(l)||[]}var H5=Wt(function(u,l){try{return Ti(u,e,l)}catch(m){return a2(m)?m:new Ot(m)}}),SK=Ls(function(u,l){return ra(l,function(m){m=rs(m),Ns(u,m,n2(u[m],u))}),u});function kK(u){var l=u==null?0:u.length,m=yt();return u=l?Rr(u,function(w){if(typeof w[1]!="function")throw new na(i);return[m(w[0]),w[1]]}):[],Wt(function(w){for(var E=-1;++E<l;){var C=u[E];if(Ti(C[0],this,w))return Ti(C[1],this,w)}})}function AK(u){return Xz(aa(u,p))}function l2(u){return function(){return u}}function TK(u,l){return u==null||u!==u?l:u}var OK=WE(),DK=WE(!0);function mi(u){return u}function p2(u){return EE(typeof u=="function"?u:aa(u,p))}function CK(u){return kE(aa(u,p))}function PK(u,l){return AE(u,aa(l,p))}var IK=Wt(function(u,l){return function(m){return Qp(m,u,l)}}),RK=Wt(function(u,l){return function(m){return Qp(u,m,l)}});function f2(u,l,m){var w=vn(l),E=wm(l,w);m==null&&!(Nr(l)&&(E.length||!w.length))&&(m=l,l=u,u=this,E=wm(l,vn(l)));var C=!(Nr(m)&&"chain"in m)||!!m.chain,J=Bs(u);return ra(E,function(ie){var fe=l[ie];u[ie]=fe,J&&(u.prototype[ie]=function(){var Ce=this.__chain__;if(C||Ce){var Ie=u(this.__wrapped__),qe=Ie.__actions__=fi(this.__actions__);return qe.push({func:fe,args:arguments,thisArg:u}),Ie.__chain__=Ce,Ie}return fe.apply(u,Eo([this.value()],arguments))})}),u}function FK(){return gn._===this&&(gn._=sz),this}function d2(){}function jK(u){return u=qt(u),Wt(function(l){return TE(l,u)})}var NK=Hy(Rr),qK=Hy(Kx),LK=Hy(my);function V5(u){return Xy(u)?gy(rs(u)):hH(u)}function $K(u){return function(l){return u==null?e:Nu(u,l)}}var BK=YE(),MK=YE(!0);function h2(){return[]}function m2(){return!1}function UK(){return{}}function zK(){return""}function HK(){return!0}function VK(u,l){if(u=qt(u),u<1||u>ue)return[];var m=G,w=jn(u,G);l=yt(l),u-=G;for(var E=by(w,l);++m<u;)l(m);return E}function GK(u){return Ct(u)?Rr(u,rs):Ci(u)?[u]:fi(p5(mr(u)))}function WK(u){var l=++iz;return mr(u)+l}var KK=Am(function(u,l){return u+l},0),YK=Vy("ceil"),JK=Am(function(u,l){return u/l},1),XK=Vy("floor");function QK(u){return u&&u.length?bm(u,mi,Cy):e}function ZK(u,l){return u&&u.length?bm(u,yt(l,2),Cy):e}function eY(u){return Xx(u,mi)}function tY(u,l){return Xx(u,yt(l,2))}function rY(u){return u&&u.length?bm(u,mi,Fy):e}function nY(u,l){return u&&u.length?bm(u,yt(l,2),Fy):e}var iY=Am(function(u,l){return u*l},1),aY=Vy("round"),sY=Am(function(u,l){return u-l},0);function oY(u){return u&&u.length?yy(u,mi):0}function uY(u,l){return u&&u.length?yy(u,yt(l,2)):0}return T.after=CG,T.ary=x5,T.assign=vW,T.assignIn=N5,T.assignInWith=$m,T.assignWith=yW,T.at=bW,T.before=E5,T.bind=n2,T.bindAll=SK,T.bindKey=S5,T.castArray=UG,T.chain=b5,T.chunk=XH,T.compact=QH,T.concat=ZH,T.cond=kK,T.conforms=AK,T.constant=l2,T.countBy=oG,T.create=wW,T.curry=k5,T.curryRight=A5,T.debounce=T5,T.defaults=_W,T.defaultsDeep=xW,T.defer=PG,T.delay=IG,T.difference=eV,T.differenceBy=tV,T.differenceWith=rV,T.drop=nV,T.dropRight=iV,T.dropRightWhile=aV,T.dropWhile=sV,T.fill=oV,T.filter=cG,T.flatMap=fG,T.flatMapDeep=dG,T.flatMapDepth=hG,T.flatten=m5,T.flattenDeep=uV,T.flattenDepth=cV,T.flip=RG,T.flow=OK,T.flowRight=DK,T.fromPairs=lV,T.functions=DW,T.functionsIn=CW,T.groupBy=mG,T.initial=fV,T.intersection=dV,T.intersectionBy=hV,T.intersectionWith=mV,T.invert=IW,T.invertBy=RW,T.invokeMap=vG,T.iteratee=p2,T.keyBy=yG,T.keys=vn,T.keysIn=hi,T.map=Rm,T.mapKeys=jW,T.mapValues=NW,T.matches=CK,T.matchesProperty=PK,T.memoize=jm,T.merge=qW,T.mergeWith=q5,T.method=IK,T.methodOf=RK,T.mixin=f2,T.negate=Nm,T.nthArg=jK,T.omit=LW,T.omitBy=$W,T.once=FG,T.orderBy=bG,T.over=NK,T.overArgs=jG,T.overEvery=qK,T.overSome=LK,T.partial=i2,T.partialRight=O5,T.partition=wG,T.pick=BW,T.pickBy=L5,T.property=V5,T.propertyOf=$K,T.pull=bV,T.pullAll=v5,T.pullAllBy=wV,T.pullAllWith=_V,T.pullAt=xV,T.range=BK,T.rangeRight=MK,T.rearg=NG,T.reject=EG,T.remove=EV,T.rest=qG,T.reverse=t2,T.sampleSize=kG,T.set=UW,T.setWith=zW,T.shuffle=AG,T.slice=SV,T.sortBy=DG,T.sortedUniq=PV,T.sortedUniqBy=IV,T.split=fK,T.spread=LG,T.tail=RV,T.take=FV,T.takeRight=jV,T.takeRightWhile=NV,T.takeWhile=qV,T.tap=QV,T.throttle=$G,T.thru=Im,T.toArray=R5,T.toPairs=$5,T.toPairsIn=B5,T.toPath=GK,T.toPlainObject=j5,T.transform=HW,T.unary=BG,T.union=LV,T.unionBy=$V,T.unionWith=BV,T.uniq=MV,T.uniqBy=UV,T.uniqWith=zV,T.unset=VW,T.unzip=r2,T.unzipWith=y5,T.update=GW,T.updateWith=WW,T.values=ol,T.valuesIn=KW,T.without=HV,T.words=z5,T.wrap=MG,T.xor=VV,T.xorBy=GV,T.xorWith=WV,T.zip=KV,T.zipObject=YV,T.zipObjectDeep=JV,T.zipWith=XV,T.entries=$5,T.entriesIn=B5,T.extend=N5,T.extendWith=$m,f2(T,T),T.add=KK,T.attempt=H5,T.camelCase=QW,T.capitalize=M5,T.ceil=YK,T.clamp=YW,T.clone=zG,T.cloneDeep=VG,T.cloneDeepWith=GG,T.cloneWith=HG,T.conformsTo=WG,T.deburr=U5,T.defaultTo=TK,T.divide=JK,T.endsWith=ZW,T.eq=Da,T.escape=eK,T.escapeRegExp=tK,T.every=uG,T.find=lG,T.findIndex=d5,T.findKey=EW,T.findLast=pG,T.findLastIndex=h5,T.findLastKey=SW,T.floor=XK,T.forEach=w5,T.forEachRight=_5,T.forIn=kW,T.forInRight=AW,T.forOwn=TW,T.forOwnRight=OW,T.get=o2,T.gt=KG,T.gte=YG,T.has=PW,T.hasIn=u2,T.head=g5,T.identity=mi,T.includes=gG,T.indexOf=pV,T.inRange=JW,T.invoke=FW,T.isArguments=$u,T.isArray=Ct,T.isArrayBuffer=JG,T.isArrayLike=di,T.isArrayLikeObject=Yr,T.isBoolean=XG,T.isBuffer=Po,T.isDate=QG,T.isElement=ZG,T.isEmpty=eW,T.isEqual=tW,T.isEqualWith=rW,T.isError=a2,T.isFinite=nW,T.isFunction=Bs,T.isInteger=D5,T.isLength=qm,T.isMap=C5,T.isMatch=iW,T.isMatchWith=aW,T.isNaN=sW,T.isNative=oW,T.isNil=cW,T.isNull=uW,T.isNumber=P5,T.isObject=Nr,T.isObjectLike=zr,T.isPlainObject=af,T.isRegExp=s2,T.isSafeInteger=lW,T.isSet=I5,T.isString=Lm,T.isSymbol=Ci,T.isTypedArray=sl,T.isUndefined=pW,T.isWeakMap=fW,T.isWeakSet=dW,T.join=gV,T.kebabCase=rK,T.last=oa,T.lastIndexOf=vV,T.lowerCase=nK,T.lowerFirst=iK,T.lt=hW,T.lte=mW,T.max=QK,T.maxBy=ZK,T.mean=eY,T.meanBy=tY,T.min=rY,T.minBy=nY,T.stubArray=h2,T.stubFalse=m2,T.stubObject=UK,T.stubString=zK,T.stubTrue=HK,T.multiply=iY,T.nth=yV,T.noConflict=FK,T.noop=d2,T.now=Fm,T.pad=aK,T.padEnd=sK,T.padStart=oK,T.parseInt=uK,T.random=XW,T.reduce=_G,T.reduceRight=xG,T.repeat=cK,T.replace=lK,T.result=MW,T.round=aY,T.runInContext=oe,T.sample=SG,T.size=TG,T.snakeCase=pK,T.some=OG,T.sortedIndex=kV,T.sortedIndexBy=AV,T.sortedIndexOf=TV,T.sortedLastIndex=OV,T.sortedLastIndexBy=DV,T.sortedLastIndexOf=CV,T.startCase=dK,T.startsWith=hK,T.subtract=sY,T.sum=oY,T.sumBy=uY,T.template=mK,T.times=VK,T.toFinite=Ms,T.toInteger=qt,T.toLength=F5,T.toLower=gK,T.toNumber=ua,T.toSafeInteger=gW,T.toString=mr,T.toUpper=vK,T.trim=yK,T.trimEnd=bK,T.trimStart=wK,T.truncate=_K,T.unescape=xK,T.uniqueId=WK,T.upperCase=EK,T.upperFirst=c2,T.each=w5,T.eachRight=_5,T.first=g5,f2(T,function(){var u={};return es(T,function(l,m){vr.call(T.prototype,m)||(u[m]=l)}),u}(),{chain:!1}),T.VERSION=t,ra(["bind","bindKey","curry","curryRight","partial","partialRight"],function(u){T[u].placeholder=T}),ra(["drop","take"],function(u,l){Xt.prototype[u]=function(m){m=m===e?1:un(qt(m),0);var w=this.__filtered__&&!l?new Xt(this):this.clone();return w.__filtered__?w.__takeCount__=jn(m,w.__takeCount__):w.__views__.push({size:jn(m,G),type:u+(w.__dir__<0?"Right":"")}),w},Xt.prototype[u+"Right"]=function(m){return this.reverse()[u](m).reverse()}}),ra(["filter","map","takeWhile"],function(u,l){var m=l+1,w=m==ve||m==N;Xt.prototype[u]=function(E){var C=this.clone();return C.__iteratees__.push({iteratee:yt(E,3),type:m}),C.__filtered__=C.__filtered__||w,C}}),ra(["head","last"],function(u,l){var m="take"+(l?"Right":"");Xt.prototype[u]=function(){return this[m](1).value()[0]}}),ra(["initial","tail"],function(u,l){var m="drop"+(l?"":"Right");Xt.prototype[u]=function(){return this.__filtered__?new Xt(this):this[m](1)}}),Xt.prototype.compact=function(){return this.filter(mi)},Xt.prototype.find=function(u){return this.filter(u).head()},Xt.prototype.findLast=function(u){return this.reverse().find(u)},Xt.prototype.invokeMap=Wt(function(u,l){return typeof u=="function"?new Xt(this):this.map(function(m){return Qp(m,u,l)})}),Xt.prototype.reject=function(u){return this.filter(Nm(yt(u)))},Xt.prototype.slice=function(u,l){u=qt(u);var m=this;return m.__filtered__&&(u>0||l<0)?new Xt(m):(u<0?m=m.takeRight(-u):u&&(m=m.drop(u)),l!==e&&(l=qt(l),m=l<0?m.dropRight(-l):m.take(l-u)),m)},Xt.prototype.takeRightWhile=function(u){return this.reverse().takeWhile(u).reverse()},Xt.prototype.toArray=function(){return this.take(G)},es(Xt.prototype,function(u,l){var m=/^(?:filter|find|map|reject)|While$/.test(l),w=/^(?:head|last)$/.test(l),E=T[w?"take"+(l=="last"?"Right":""):l],C=w||/^find/.test(l);E&&(T.prototype[l]=function(){var J=this.__wrapped__,ie=w?[1]:arguments,fe=J instanceof Xt,Ce=ie[0],Ie=fe||Ct(J),qe=function(Yt){var Qt=E.apply(T,Eo([Yt],ie));return w&&We?Qt[0]:Qt};Ie&&m&&typeof Ce=="function"&&Ce.length!=1&&(fe=Ie=!1);var We=this.__chain__,pt=!!this.__actions__.length,xt=C&&!We,Ut=fe&&!pt;if(!C&&Ie){J=Ut?J:new Xt(this);var Et=u.apply(J,ie);return Et.__actions__.push({func:Im,args:[qe],thisArg:e}),new ia(Et,We)}return xt&&Ut?u.apply(this,ie):(Et=this.thru(qe),xt?w?Et.value()[0]:Et.value():Et)})}),ra(["pop","push","shift","sort","splice","unshift"],function(u){var l=im[u],m=/^(?:push|sort|unshift)$/.test(u)?"tap":"thru",w=/^(?:pop|shift)$/.test(u);T.prototype[u]=function(){var E=arguments;if(w&&!this.__chain__){var C=this.value();return l.apply(Ct(C)?C:[],E)}return this[m](function(J){return l.apply(Ct(J)?J:[],E)})}}),es(Xt.prototype,function(u,l){var m=T[l];if(m){var w=m.name+"";vr.call(tl,w)||(tl[w]=[]),tl[w].push({name:l,func:m})}}),tl[km(e,y).name]=[{name:"wrapper",func:e}],Xt.prototype.clone=xz,Xt.prototype.reverse=Ez,Xt.prototype.value=Sz,T.prototype.at=ZV,T.prototype.chain=eG,T.prototype.commit=tG,T.prototype.next=rG,T.prototype.plant=iG,T.prototype.reverse=aG,T.prototype.toJSON=T.prototype.valueOf=T.prototype.value=sG,T.prototype.first=T.prototype.head,Vp&&(T.prototype[Vp]=nG),T},ko=tz();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(gn._=ko,define(function(){return ko})):Pu?((Pu.exports=ko)._=ko,py._=ko):gn._=ko}).call(q6)});var gre=b((dUr,mre)=>{"use strict";var hre={};try{hre=require("electron")}catch{}hre.ipcRenderer&&cPe(hre);typeof mre=="object"&&(mre.exports=cPe);function cPe({contextBridge:e,ipcRenderer:t}){if(!t)return;t.on("__ELECTRON_LOG_IPC__",(n,i)=>{window.postMessage({cmd:"message",...i})}),t.invoke("__ELECTRON_LOG__",{cmd:"getOptions"}).catch(n=>console.error(new Error(`electron-log isn't initialized in the main process. Please call log.initialize() before. ${n.message}`)));let r={sendToMain(n){try{t.send("__ELECTRON_LOG__",n)}catch(i){console.error("electronLog.sendToMain ",i,"data:",n),t.send("__ELECTRON_LOG__",{cmd:"errorHandler",error:{message:i?.message,stack:i?.stack},errorName:"sendToMain"})}},log(...n){r.sendToMain({data:n,level:"info"})}};for(let n of["error","warn","info","verbose","debug","silly"])r[n]=(...i)=>r.sendToMain({data:i,level:n});if(e&&process.contextIsolated)try{e.exposeInMainWorld("__electronLog",r)}catch{}typeof window=="object"?window.__electronLog=r:__electronLog=r}});var pPe=b((hUr,lPe)=>{"use strict";lPe.exports=kLt;function kLt(e){return Object.defineProperties(t,{defaultLabel:{value:"",writable:!0},labelPadding:{value:!0,writable:!0},maxLabelLength:{value:0,writable:!0},labelLength:{get(){switch(typeof t.labelPadding){case"boolean":return t.labelPadding?t.maxLabelLength:0;case"number":return t.labelPadding;default:return 0}}}});function t(r){t.maxLabelLength=Math.max(t.maxLabelLength,r.length);let n={};for(let i of[...e.levels,"log"])n[i]=(...a)=>e.logData(a,{level:i,scope:r});return n}}});var yre=b((mUr,fPe)=>{"use strict";var ALt=pPe(),vre=class e{static instances={};functions={};hooks=[];isDev=!1;levels=null;logId=null;scope=null;transports={};variables={};constructor({allowUnknownLevel:t=!1,errorHandler:r,initializeFn:n,isDev:i=!1,levels:a=["error","warn","info","verbose","debug","silly"],logId:s,transportFactories:o={},variables:c}={}){this.addLevel=this.addLevel.bind(this),this.create=this.create.bind(this),this.logData=this.logData.bind(this),this.processMessage=this.processMessage.bind(this),this.allowUnknownLevel=t,this.initializeFn=n,this.isDev=i,this.levels=a,this.logId=s,this.transportFactories=o,this.variables=c||{},this.scope=ALt(this),this.addLevel("log",!1);for(let p of this.levels)this.addLevel(p,!1);this.errorHandler=r,r?.setOptions({logFn:(...p)=>this.error(...p)});for(let[p,f]of Object.entries(o))this.transports[p]=f(this);e.instances[s]=this}static getInstance({logId:t}){return this.instances[t]||this.instances.default}addLevel(t,r=this.levels.length){r!==!1&&this.levels.splice(r,0,t),this[t]=(...n)=>this.logData(n,{level:t}),this.functions[t]=this[t]}catchErrors(t){return this.processMessage({data:["log.catchErrors is deprecated. Use log.errorHandler instead"],level:"warn"},{transports:["console"]}),this.errorHandler.startCatching(t)}create(t){return typeof t=="string"&&(t={logId:t}),new e({...t,errorHandler:this.errorHandler,initializeFn:this.initializeFn,isDev:this.isDev,transportFactories:this.transportFactories,variables:{...this.variables}})}compareLevels(t,r,n=this.levels){let i=n.indexOf(t),a=n.indexOf(r);return a===-1||i===-1?!0:a<=i}initialize({preload:t=!0,spyRendererConsole:r=!1}={}){this.initializeFn({logger:this,preload:t,spyRendererConsole:r})}logData(t,r={}){this.processMessage({data:t,...r})}processMessage(t,{transports:r=this.transports}={}){if(t.cmd==="errorHandler"){this.errorHandler.handle(t.error,{errorName:t.errorName,processType:"renderer",showDialog:!!t.showDialog});return}let n=t.level;this.allowUnknownLevel||(n=this.levels.includes(t.level)?t.level:"info");let i={date:new Date,...t,level:n,variables:{...this.variables,...t.variables}};for(let[a,s]of this.transportEntries(r))if(!(typeof s!="function"||s.level===!1)&&this.compareLevels(s.level,t.level))try{let o=this.hooks.reduce((c,p)=>c&&p(c,s,a),i);o&&s({...o,data:[...o.data]})}catch(o){this.processInternalErrorFn(o)}}processInternalErrorFn(t){}transportEntries(t=this.transports){return(Array.isArray(t)?t:Object.entries(t)).map(n=>{switch(typeof n){case"string":return this.transports[n]?[n,this.transports[n]]:null;case"function":return[n.name,n];default:return Array.isArray(n)?n:null}}).filter(Boolean)}};fPe.exports=vre});var hPe=b((gUr,dPe)=>{"use strict";var TLt=console.error,bre=class{logFn=null;onError=null;showDialog=!1;constructor({logFn:t=null}={}){this.handleError=this.handleError.bind(this),this.handleRejection=this.handleRejection.bind(this),this.startCatching=this.startCatching.bind(this),this.logFn=t}handle(t,{logFn:r=this.logFn,errorName:n="",onError:i=this.onError,showDialog:a=this.showDialog}={}){try{i?.({error:t})!==!1&&r({error:t,errorName:n,showDialog:a})}catch{TLt(t)}}setOptions({logFn:t,onError:r,showDialog:n}){typeof t=="function"&&(this.logFn=t),typeof r=="function"&&(this.onError=r),typeof n=="boolean"&&(this.showDialog=n)}startCatching({onError:t,showDialog:r}={}){this.isActive||(this.isActive=!0,this.setOptions({onError:t,showDialog:r}),window.addEventListener("error",n=>{n.preventDefault?.(),this.handleError(n.error||n)}),window.addEventListener("unhandledrejection",n=>{n.preventDefault?.(),this.handleRejection(n.reason||n)}))}handleError(t){this.handle(t,{errorName:"Unhandled"})}handleRejection(t){let r=t instanceof Error?t:new Error(JSON.stringify(t));this.handle(r,{errorName:"Unhandled rejection"})}};dPe.exports=bre});var vPe=b((vUr,gPe)=>{"use strict";gPe.exports=OLt;var mPe={error:console.error,warn:console.warn,info:console.info,verbose:console.info,debug:console.debug,silly:console.debug,log:console.log};function OLt(e){return Object.assign(t,{format:"{h}:{i}:{s}.{ms}{scope} \u203A {text}",formatDataFn({data:r=[],date:n=new Date,format:i=t.format,logId:a=e.logId,scope:s=e.scopeName,...o}){return typeof i=="function"?i({...o,data:r,date:n,logId:a,scope:s}):(typeof i!="string"||(r.unshift(i),typeof r[1]=="string"&&r[1].match(/%[1cdfiOos]/)&&(r=[`${r[0]} ${r[1]}`,...r.slice(2)]),r[0]=r[0].replace(/\{(\w+)}/g,(c,p)=>{switch(p){case"level":return o.level;case"logId":return a;case"scope":return s?` (${s})`:"";case"text":return"";case"y":return n.getFullYear().toString(10);case"m":return(n.getMonth()+1).toString(10).padStart(2,"0");case"d":return n.getDate().toString(10).padStart(2,"0");case"h":return n.getHours().toString(10).padStart(2,"0");case"i":return n.getMinutes().toString(10).padStart(2,"0");case"s":return n.getSeconds().toString(10).padStart(2,"0");case"ms":return n.getMilliseconds().toString(10).padStart(3,"0");case"iso":return n.toISOString();default:return o.variables?.[p]||c}}).trim()),r)},writeFn({level:r,data:n}){let i=mPe[r]||mPe.info;setTimeout(()=>i(...n))}});function t(r){t.writeFn({...r,data:t.formatDataFn(r)})}}});var bPe=b((yUr,yPe)=>{"use strict";yPe.exports=CLt;var DLt=new Set([Promise,WeakMap,WeakSet]);function CLt(e){return Object.assign(t,{depth:5,serializeFn(r,{depth:n=5,seen:i=new WeakSet}={}){return n<1?`[${typeof r}]`:i.has(r)?r:["function","symbol"].includes(typeof r)?r.toString():Object(r)!==r?r:DLt.has(r.constructor)?`[${r.constructor.name}]`:Array.isArray(r)?r.map(a=>t.serializeFn(a,{level:n-1,seen:i})):r instanceof Error?r.stack:r instanceof Map?new Map(Array.from(r).map(([a,s])=>[t.serializeFn(a,{level:n-1,seen:i}),t.serializeFn(s,{level:n-1,seen:i})])):r instanceof Set?new Set(Array.from(r).map(a=>t.serializeFn(a,{level:n-1,seen:i}))):(i.add(r),Object.fromEntries(Object.entries(r).map(([a,s])=>[a,t.serializeFn(s,{level:n-1,seen:i})])))}});function t(r){if(!window.__electronLog){e.processMessage({data:["electron-log: logger isn't initialized in the main process"],level:"error"},{transports:["console"]});return}try{__electronLog.sendToMain(t.serializeFn(r,{depth:t.depth}))}catch(n){e.transports.console({data:["electronLog.transports.ipc",n,"data:",r.data],level:"error"})}}}});var wPe=b((bUr,AS)=>{"use strict";var wre=yre(),PLt=hPe(),ILt=vPe(),RLt=bPe();AS.exports=FLt();AS.exports.Logger=wre;AS.exports.default=AS.exports;function FLt(){let e=new wre({allowUnknownLevel:!0,errorHandler:new PLt,initializeFn:()=>{},logId:"default",transportFactories:{console:ILt,ipc:RLt},variables:{processType:"renderer"}});return e.errorHandler.setOptions({logFn({error:t,errorName:r,showDialog:n}){e.transports.console({data:[r,t].filter(Boolean),level:"error"}),e.transports.ipc({cmd:"errorHandler",error:{cause:t?.cause,code:t?.code,name:t?.name,message:t?.message,stack:t?.stack},errorName:r,logId:e.logId,showDialog:n})}}),typeof window=="object"&&window.addEventListener("message",t=>{let{cmd:r,logId:n,...i}=t.data||{},a=wre.getInstance({logId:n});r==="message"&&a.processMessage(i,{transports:["console"]})}),new Proxy(e,{get(t,r){return typeof t[r]<"u"?t[r]:(...n)=>e.logData(n,{level:r})}})}});var TS=b((wUr,SPe)=>{"use strict";var _re=require("os"),jLt=require("path"),hl;try{hl=require("electron")}catch{hl=null}SPe.exports={getAppUserDataPath(){return EPe("userData")},getName:_Pe,getPath:EPe,getVersion:xPe,getVersions(){return{app:`${_Pe()} ${xPe()}`,electron:`Electron ${process.versions.electron}`,os:NLt()}},isDev(){let e=RI();return e?.isPackaged!==void 0?!e.isPackaged:typeof process.execPath=="string"?jLt.basename(process.execPath).toLowerCase().startsWith("electron"):process.env.NODE_ENV==="development"||process.env.ELECTRON_IS_DEV==="1"},isElectron(){return!!process.versions.electron},onEveryWebContentsEvent(e,t){hl?.WebContents?.getAllWebContents().forEach(r=>{r.on(e,t)}),hl?.app?.on("web-contents-created",(r,n)=>{n.on(e,t)})},onIpc(e,t){Ere()?.on(e,t)},onIpcInvoke(e,t){Ere()?.handle?.(e,t)},openUrl(e,t=console.error){xre("shell")?.openExternal(e).catch(t)},setPreloadFileForSessions({filePath:e,includeFutureSession:t=!0,sessions:r=[hl?.session?.defaultSession]}){for(let i of r.filter(Boolean))n(i);t&&hl?.app?.on("session-created",i=>{n(i)});function n(i){i.setPreloads([...i.getPreloads(),e])}},sendIpc(e,t){process.type==="browser"?$Lt(e,t):process.type==="renderer"&&LLt(e,t)},showErrorBox(e,t){let r=xre("dialog");r&&r.showErrorBox(e,t)},whenAppReady(){return hl?.app?.whenReady()||Promise.resolve()}};function RI(){return xre("app")}function _Pe(){let e=RI();return e?"name"in e?e.name:e.getName():null}function xre(e){return hl?.[e]||null}function Ere(){return process.type==="browser"&&hl?.ipcMain?hl.ipcMain:process.type==="renderer"&&hl?.ipcRenderer?hl.ipcRenderer:null}function xPe(){let e=RI();return e?"version"in e?e.version:e.getVersion():null}function NLt(){let e=_re.type().replace("_"," "),t=_re.release();return e==="Darwin"&&(e="macOS",t=qLt()),`${e} ${t}`}function qLt(){let e=Number(_re.release().split(".")[0]);return e<=19?`10.${e-4}`:e-9}function EPe(e){let t=RI();if(!t)return null;try{return t.getPath(e)}catch{return null}}function LLt(e,t){Ere()?.send(e,t)}function $Lt(e,t){hl?.BrowserWindow?.getAllWindows().forEach(r=>{r.webContents?.isDestroyed()===!1&&r.webContents.send(e,t)})}});var OPe=b((_Ur,TPe)=>{"use strict";var kPe=require("fs"),BLt=require("os"),APe=require("path"),FI=TS(),MLt=gre();TPe.exports={initialize({logger:e,preload:t=!0,spyRendererConsole:r=!1}){FI.whenAppReady().then(()=>{t&&ULt(t),r&&zLt(e)}).catch(e.warn)}};function ULt(e){let t=typeof e=="string"?e:APe.resolve(__dirname,"../renderer/electron-log-preload.js");if(!kPe.existsSync(t)){t=APe.join(FI.getAppUserDataPath()||BLt.tmpdir(),"electron-log-preload.js");let r=`
      try {
        (${MLt.toString()})(require('electron'));
      } catch(e) {
        console.error(e);
      }
    `;kPe.writeFileSync(t,r,"utf8")}FI.setPreloadFileForSessions({filePath:t})}function zLt(e){let t=["verbose","info","warning","error"];FI.onEveryWebContentsEvent("console-message",(r,n,i)=>{e.processMessage({data:[i],level:t[n]})})}});var OS=b((xUr,DPe)=>{"use strict";DPe.exports={transform:HLt};function HLt({logger:e,message:t,transport:r,initialData:n=t?.data||[],transforms:i=r?.transforms}){return i.reduce((a,s)=>typeof s=="function"?s({data:a,logger:e,message:t,transport:r}):a,n)}});var Sre=b((EUr,FPe)=>{"use strict";var{transform:VLt}=OS();FPe.exports={concatFirstStringElements:GLt,formatScope:CPe,formatText:IPe,formatVariables:PPe,timeZoneFromOffset:RPe,format({message:e,logger:t,transport:r,data:n=e?.data}){switch(typeof r.format){case"string":return VLt({message:e,logger:t,transforms:[PPe,CPe,IPe],transport:r,initialData:[r.format,...n]});case"function":return r.format({data:n,level:e?.level||"info",logger:t,message:e,transport:r});default:return n}}};function GLt({data:e}){return typeof e[0]!="string"||typeof e[1]!="string"||e[0].match(/%[1cdfiOos]/)?e:[`${e[0]} ${e[1]}`,...e.slice(2)]}function RPe(e){let t=Math.abs(e),r=e>=0?"-":"+",n=Math.floor(t/60).toString().padStart(2,"0"),i=(t%60).toString().padStart(2,"0");return`${r}${n}:${i}`}function CPe({data:e,logger:t,message:r}){let{defaultLabel:n,labelLength:i}=t?.scope||{},a=e[0],s=r.scope;s||(s=n);let o;return s===""?o=i>0?"".padEnd(i+3):"":typeof s=="string"?o=` (${s})`.padEnd(i+3):o="",e[0]=a.replace("{scope}",o),e}function PPe({data:e,message:t}){let r=e[0];if(typeof r!="string")return e;r=r.replace("{level}]",`${t.level}]`.padEnd(6," "));let n=t.date||new Date;return e[0]=r.replace(/\{(\w+)}/g,(i,a)=>{switch(a){case"level":return t.level||"info";case"logId":return t.logId;case"y":return n.getFullYear().toString(10);case"m":return(n.getMonth()+1).toString(10).padStart(2,"0");case"d":return n.getDate().toString(10).padStart(2,"0");case"h":return n.getHours().toString(10).padStart(2,"0");case"i":return n.getMinutes().toString(10).padStart(2,"0");case"s":return n.getSeconds().toString(10).padStart(2,"0");case"ms":return n.getMilliseconds().toString(10).padStart(3,"0");case"z":return RPe(n.getTimezoneOffset());case"iso":return n.toISOString();default:return t.variables?.[a]||i}}).trim(),e}function IPe({data:e}){let t=e[0];if(typeof t!="string")return e;if(t.lastIndexOf("{text}")===t.length-6)return e[0]=t.replace(/\s?{text}/,""),e[0]===""&&e.shift(),e;let n=t.split("{text}"),i=[];return n[0]!==""&&i.push(n[0]),i=i.concat(e.slice(1)),n[1]!==""&&i.push(n[1]),i}});var NI=b((SUr,jI)=>{"use strict";var WLt=require("util");jI.exports={serialize:NPe,maxDepth({data:e,transport:t,depth:r=t?.depth??6}){if(!e)return e;if(r<1)return Array.isArray(e)?"[array]":typeof e=="object"&&e?"[object]":e;if(Array.isArray(e))return e.map(i=>jI.exports.maxDepth({data:i,depth:r-1}));if(typeof e!="object"||e&&typeof e.toISOString=="function")return e;if(e===null)return null;if(e instanceof Error)return e;let n={};for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=jI.exports.maxDepth({data:e[i],depth:r-1}));return n},toJSON({data:e}){return JSON.parse(JSON.stringify(e,jPe()))},toString({data:e,transport:t}){let r=t?.inspectOptions||{},n=e.map(i=>{if(i!==void 0)try{let a=JSON.stringify(i,jPe(),"  ");return a===void 0?void 0:JSON.parse(a)}catch{return i}});return WLt.formatWithOptions(r,...n)}};function jPe(e={}){let t=new WeakSet;return function(r,n){if(typeof n=="object"&&n!==null){if(t.has(n))return;t.add(n)}return NPe(r,n,e)}}function NPe(e,t,r={}){let n=r?.serializeMapAndSet!==!1;return t instanceof Error?t.stack:t&&(typeof t=="function"?`[function] ${t.toString()}`:n&&t instanceof Map&&Object.fromEntries?Object.fromEntries(t):n&&t instanceof Set&&Array.from?Array.from(t):t)}});var qI=b((kUr,LPe)=>{"use strict";LPe.exports={transformStyles:kre,applyAnsiStyles({data:e}){return kre(e,KLt,YLt)},removeStyles({data:e}){return kre(e,()=>"")}};var qPe={unset:"\x1B[0m",black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m"};function KLt(e){let t=e.replace(/color:\s*(\w+).*/,"$1").toLowerCase();return qPe[t]||""}function YLt(e){return e+qPe.unset}function kre(e,t,r){let n={};return e.reduce((i,a,s,o)=>{if(n[s])return i;if(typeof a=="string"){let c=s,p=!1;a=a.replace(/%[1cdfiOos]/g,f=>{if(c+=1,f!=="%c")return f;let d=o[c];return typeof d=="string"?(n[c]=!0,p=!0,t(d,a)):f}),p&&r&&(a=r(a))}return i.push(a),i},[])}});var UPe=b((AUr,MPe)=>{"use strict";var{concatFirstStringElements:JLt,format:XLt}=Sre(),{maxDepth:QLt,toJSON:ZLt}=NI(),{applyAnsiStyles:e$t,removeStyles:t$t}=qI(),{transform:r$t}=OS(),$Pe={error:console.error,warn:console.warn,info:console.info,verbose:console.info,debug:console.debug,silly:console.debug,log:console.log};MPe.exports=BPe;var n$t=process.platform==="win32"?">":"\u203A",Are=`%c{h}:{i}:{s}.{ms}{scope}%c ${n$t} {text}`;Object.assign(BPe,{DEFAULT_FORMAT:Are});function BPe(e){return Object.assign(t,{format:Are,level:"silly",transforms:[i$t,XLt,s$t,JLt,QLt,ZLt],useStyles:process.env.FORCE_STYLES,writeFn({message:r}){($Pe[r.level]||$Pe.info)(...r.data)}});function t(r){let n=r$t({logger:e,message:r,transport:t});t.writeFn({message:{...r,data:n}})}}function i$t({data:e,message:t,transport:r}){return r.format!==Are?e:[`color:${o$t(t.level)}`,"color:unset",...e]}function a$t(e,t){if(typeof e=="boolean")return e;let n=t==="error"||t==="warn"?process.stderr:process.stdout;return n&&n.isTTY}function s$t(e){let{message:t,transport:r}=e;return(a$t(r.useStyles,t.level)?e$t:t$t)(e)}function o$t(e){let t={error:"red",warn:"yellow",info:"cyan",default:"unset"};return t[e]||t.default}});var Ore=b((TUr,HPe)=>{"use strict";var u$t=require("events"),rg=require("fs"),zPe=require("os"),Tre=class extends u$t{asyncWriteQueue=[];bytesWritten=0;hasActiveAsyncWriting=!1;path=null;initialSize=void 0;writeOptions=null;writeAsync=!1;constructor({path:t,writeOptions:r={encoding:"utf8",flag:"a",mode:438},writeAsync:n=!1}){super(),this.path=t,this.writeOptions=r,this.writeAsync=n}get size(){return this.getSize()}clear(){try{return rg.writeFileSync(this.path,"",{mode:this.writeOptions.mode,flag:"w"}),this.reset(),!0}catch(t){return t.code==="ENOENT"?!0:(this.emit("error",t,this),!1)}}crop(t){try{let r=c$t(this.path,t||4096);this.clear(),this.writeLine(`[log cropped]${zPe.EOL}${r}`)}catch(r){this.emit("error",new Error(`Couldn't crop file ${this.path}. ${r.message}`),this)}}getSize(){if(this.initialSize===void 0)try{let t=rg.statSync(this.path);this.initialSize=t.size}catch{this.initialSize=0}return this.initialSize+this.bytesWritten}increaseBytesWrittenCounter(t){this.bytesWritten+=Buffer.byteLength(t,this.writeOptions.encoding)}isNull(){return!1}nextAsyncWrite(){let t=this;if(this.hasActiveAsyncWriting||this.asyncWriteQueue.length===0)return;let r=this.asyncWriteQueue.join("");this.asyncWriteQueue=[],this.hasActiveAsyncWriting=!0,rg.writeFile(this.path,r,this.writeOptions,n=>{t.hasActiveAsyncWriting=!1,n?t.emit("error",new Error(`Couldn't write to ${t.path}. ${n.message}`),this):t.increaseBytesWrittenCounter(r),t.nextAsyncWrite()})}reset(){this.initialSize=void 0,this.bytesWritten=0}toString(){return this.path}writeLine(t){if(t+=zPe.EOL,this.writeAsync){this.asyncWriteQueue.push(t),this.nextAsyncWrite();return}try{rg.writeFileSync(this.path,t,this.writeOptions),this.increaseBytesWrittenCounter(t)}catch(r){this.emit("error",new Error(`Couldn't write to ${this.path}. ${r.message}`),this)}}};HPe.exports=Tre;function c$t(e,t){let r=Buffer.alloc(t),n=rg.statSync(e),i=Math.min(n.size,t),a=Math.max(0,n.size-t),s=rg.openSync(e,"r"),o=rg.readSync(s,r,0,i,a);return rg.closeSync(s),r.toString("utf8",0,o)}});var GPe=b((OUr,VPe)=>{"use strict";var l$t=Ore(),Dre=class extends l$t{clear(){}crop(){}getSize(){return 0}isNull(){return!0}writeLine(){}};VPe.exports=Dre});var JPe=b((DUr,YPe)=>{"use strict";var p$t=require("events"),WPe=require("fs"),KPe=require("path"),f$t=Ore(),d$t=GPe(),Cre=class extends p$t{store={};constructor(){super(),this.emitError=this.emitError.bind(this)}provide({filePath:t,writeOptions:r,writeAsync:n=!1}){let i;try{if(t=KPe.resolve(t),this.store[t])return this.store[t];i=this.createFile({filePath:t,writeOptions:r,writeAsync:n})}catch(a){i=new d$t({path:t}),this.emitError(a,i)}return i.on("error",this.emitError),this.store[t]=i,i}createFile({filePath:t,writeOptions:r,writeAsync:n}){return this.testFileWriting(t),new f$t({path:t,writeOptions:r,writeAsync:n})}emitError(t,r){this.emit("error",t,r)}testFileWriting(t){WPe.mkdirSync(KPe.dirname(t),{recursive:!0}),WPe.writeFileSync(t,"",{flag:"a"})}};YPe.exports=Cre});var ZPe=b((CUr,QPe)=>{"use strict";var XPe=require("fs"),DS=require("path");QPe.exports={readPackageJson:h$t,tryReadJsonAt:$6};function h$t(){return $6(require.main&&require.main.filename)||$6(g$t())||$6(process.resourcesPath,"app.asar")||$6(process.resourcesPath,"app")||$6(process.cwd())||{name:null,version:null}}function $6(...e){if(!e[0])return null;try{let t=DS.join(...e),r=m$t("package.json",t);if(!r)return null;let n=JSON.parse(XPe.readFileSync(r,"utf8")),i=n.productName||n.name;if(!i||i.toLowerCase()==="electron")return null;if(n.productName||n.name)return{name:i,version:n.version}}catch{return null}}function m$t(e,t){let r=t;for(;;){let n=DS.parse(r),i=n.root,a=n.dir;if(XPe.existsSync(DS.join(r,e)))return DS.resolve(DS.join(r,e));if(r===i)return null;r=a}}function g$t(){let e=process.argv.filter(r=>r.indexOf("--user-data-dir=")===0);return e.length===0||typeof e[0]!="string"?null:e[0].replace("--user-data-dir=","")}});var iIe=b((PUr,nIe)=>{"use strict";var Pre=require("os"),r1=require("path"),ub=TS(),v$t=ZPe();nIe.exports={getAppData:CS,getLibraryDefaultDir:eIe,getLibraryTemplate:tIe,getNameAndVersion:rIe,getPathVariables:y$t,getUserData:Ire};function CS(e){let t=ub.getPath("appData");if(t)return t;let r=LI();switch(e){case"darwin":return r1.join(r,"Library/Application Support");case"win32":return process.env.APPDATA||r1.join(r,"AppData/Roaming");default:return process.env.XDG_CONFIG_HOME||r1.join(r,".config")}}function LI(){return Pre.homedir?Pre.homedir():process.env.HOME}function eIe(e,t){return e==="darwin"?r1.join(LI(),"Library/Logs",t):r1.join(Ire(e,t),"logs")}function tIe(e){return e==="darwin"?r1.join(LI(),"Library/Logs","{appName}"):r1.join(CS(e),"{appName}","logs")}function rIe(){let e=ub.getName()||"",t=ub.getVersion();if(e.toLowerCase()==="electron"&&(e="",t=""),e&&t)return{name:e,version:t};let r=v$t.readPackageJson();return e||(e=r.name),t||(t=r.version),e||(e="Electron"),{name:e,version:t}}function y$t(e){let t=rIe(),r=t.name,n=t.version;return{appData:CS(e),appName:r,appVersion:n,electronDefaultDir:ub.getPath("logs"),home:LI(),libraryDefaultDir:eIe(e,r),libraryTemplate:tIe(e),temp:ub.getPath("temp")||Pre.tmpdir(),userData:Ire(e,r)}}function Ire(e,t){return ub.getName()!==t?r1.join(CS(e),t):ub.getPath("userData")||r1.join(CS(e),t)}});var sIe=b((IUr,aIe)=>{"use strict";var Rre=require("fs"),PS=require("path"),b$t=require("os"),w$t=JPe(),_$t=iIe(),{transform:x$t}=OS(),{removeStyles:E$t}=qI(),{format:S$t}=Sre(),{toString:k$t}=NI();aIe.exports=T$t;var A$t=new w$t;function T$t(e,t=A$t){let r;return t.listenerCount("error")<1&&t.on("error",(c,p)=>{a(`Can't write to ${p}`,c)}),Object.assign(n,{fileName:O$t(e.variables.processType),format:"[{y}-{m}-{d} {h}:{i}:{s}.{ms}] [{level}]{scope} {text}",getFile:s,inspectOptions:{depth:5},level:"silly",maxSize:1024**2,readAllLogs:o,sync:!0,transforms:[E$t,S$t,k$t],writeOptions:{flag:"a",mode:438,encoding:"utf8"},archiveLogFn(c){let p=c.toString(),f=PS.parse(p);try{Rre.renameSync(p,PS.join(f.dir,`${f.name}.old${f.ext}`))}catch(d){a("Could not rotate log",d);let h=Math.round(n.maxSize/4);c.crop(Math.min(h,256*1024))}},resolvePathFn(c){return PS.join(c.libraryDefaultDir,c.fileName)}});function n(c){i();let p=s(c);n.maxSize>0&&p.size>n.maxSize&&(n.archiveLogFn(p),p.reset());let d=x$t({logger:e,message:c,transport:n});p.writeLine(d)}function i(){r||(r=_$t.getPathVariables(process.platform),typeof n.archiveLog=="function"&&(n.archiveLogFn=n.archiveLog,a("archiveLog is deprecated. Use archiveLogFn instead")),typeof n.resolvePath=="function"&&(n.resolvePathFn=n.resolvePath,a("resolvePath is deprecated. Use resolvePathFn instead")))}function a(c,p=null,f="error"){let d=[`electron-log.transports.file: ${c}`];p&&d.push(p),e.transports.console({data:d,date:new Date,level:f})}function s(c){let p={...r,fileName:n.fileName},f=n.resolvePathFn(p,c);return t.provide({filePath:f,writeAsync:!n.sync,writeOptions:n.writeOptions})}function o({fileFilter:c=p=>p.endsWith(".log")}={}){let p={...r,fileName:n.fileName},f=PS.dirname(n.resolvePathFn(p));return Rre.readdirSync(f).map(d=>PS.join(f,d)).filter(c).map(d=>{try{return{path:d,lines:Rre.readFileSync(d,"utf8").split(b$t.EOL)}}catch{return null}}).filter(Boolean)}}function O$t(e=process.type){switch(e){case"renderer":return"renderer.log";case"worker":return"worker.log";default:return"main.log"}}});var uIe=b((RUr,oIe)=>{"use strict";var D$t=require("http"),C$t=require("https"),{transform:P$t}=OS(),{removeStyles:I$t}=qI(),{toJSON:R$t,maxDepth:F$t}=NI();oIe.exports=j$t;function j$t(e){return Object.assign(t,{client:{name:"electron-application"},depth:6,level:!1,requestOptions:{},transforms:[I$t,R$t,F$t],makeBodyFn({message:r}){return JSON.stringify({client:t.client,data:r.data,date:r.date.getTime(),level:r.level,scope:r.scope,variables:r.variables})},processErrorFn({error:r}){e.processMessage({data:[`electron-log: can't POST ${t.url}`,r],level:"warn"},{transports:["console","file"]})},sendRequestFn({serverUrl:r,requestOptions:n,body:i}){let s=(r.startsWith("https:")?C$t:D$t).request(r,{method:"POST",...n,headers:{"Content-Type":"application/json","Content-Length":i.length,...n.headers}});return s.write(i),s.end(),s}});function t(r){if(!t.url)return;let n=t.makeBodyFn({logger:e,message:{...r,data:P$t({logger:e,message:r,transport:t})},transport:t}),i=t.sendRequestFn({serverUrl:t.url,requestOptions:t.requestOptions,body:Buffer.from(n,"utf8")});i.on("error",a=>t.processErrorFn({error:a,logger:e,message:r,request:i,transport:t}))}}});var lIe=b((FUr,cIe)=>{"use strict";var Fre=TS(),jre=class{isActive=!1;logFn=null;onError=null;showDialog=!0;constructor({logFn:t=null,onError:r=null,showDialog:n=!0}={}){this.createIssue=this.createIssue.bind(this),this.handleError=this.handleError.bind(this),this.handleRejection=this.handleRejection.bind(this),this.setOptions({logFn:t,onError:r,showDialog:n}),this.startCatching=this.startCatching.bind(this),this.stopCatching=this.stopCatching.bind(this)}handle(t,{logFn:r=this.logFn,onError:n=this.onError,processType:i="browser",showDialog:a=this.showDialog,errorName:s=""}={}){t=N$t(t);try{if(typeof n=="function"){let o=Fre.getVersions(),c=this.createIssue;if(n({createIssue:c,error:t,errorName:s,processType:i,versions:o})===!1)return}s?r(s,t):r(t),a&&!s.includes("rejection")&&Fre.showErrorBox(`A JavaScript error occurred in the ${i} process`,t.stack)}catch{console.error(t)}}setOptions({logFn:t,onError:r,showDialog:n}){typeof t=="function"&&(this.logFn=t),typeof r=="function"&&(this.onError=r),typeof n=="boolean"&&(this.showDialog=n)}startCatching({onError:t,showDialog:r}={}){this.isActive||(this.isActive=!0,this.setOptions({onError:t,showDialog:r}),process.on("uncaughtException",this.handleError),process.on("unhandledRejection",this.handleRejection))}stopCatching(){this.isActive=!1,process.removeListener("uncaughtException",this.handleError),process.removeListener("unhandledRejection",this.handleRejection)}createIssue(t,r){Fre.openUrl(`${t}?${new URLSearchParams(r).toString()}`)}handleError(t){this.handle(t,{errorName:"Unhandled"})}handleRejection(t){let r=t instanceof Error?t:new Error(JSON.stringify(t));this.handle(r,{errorName:"Unhandled rejection"})}};function N$t(e){if(e instanceof Error)return e;if(e&&typeof e=="object"){if(e.message)return Object.assign(new Error(e.message),e);try{return new Error(JSON.stringify(e))}catch(t){return new Error(`Couldn't normalize error ${String(e)}: ${t}`)}}return new Error(`Can't normalize error ${String(e)}`)}cIe.exports=jre});var fIe=b((jUr,IS)=>{"use strict";var qre=TS(),{initialize:q$t}=OPe(),L$t=UPe(),$$t=sIe(),B$t=uIe(),RS=yre(),M$t=lIe(),Nre=new RS({errorHandler:new M$t,initializeFn:q$t,isDev:qre.isDev(),logId:"default",transportFactories:{console:L$t,file:$$t,remote:B$t},variables:{processType:"main"}});Nre.processInternalErrorFn=e=>{Nre.transports.console.writeFn({data:["Unhandled electron-log error",e],level:"error"})};IS.exports=Nre;IS.exports.Logger=RS;IS.exports.default=IS.exports;qre.onIpc("__ELECTRON_LOG__",(e,t)=>{t.scope&&RS.getInstance(t).scope(t.scope);let r=new Date(t.date);pIe({...t,date:r.getTime()?r:new Date})});qre.onIpcInvoke("__ELECTRON_LOG__",(e,{cmd:t="",logId:r})=>{switch(t){case"getOptions":return{levels:RS.getInstance({logId:r}).levels,logId:r};default:return pIe({data:[`Unknown cmd '${t}'`],level:"error"}),{}}});function pIe(e){RS.getInstance(e)?.processMessage(e)}});var dIe=b((NUr,Lre)=>{"use strict";var U$t=typeof process>"u"||process.type==="renderer"||process.type==="worker";U$t?(gre(),Lre.exports=wPe()):Lre.exports=fIe()});var vIe=b((jS,$re)=>{(function(e,t){typeof jS=="object"&&typeof $re=="object"?$re.exports=t(require("child_process"),require("crypto")):typeof define=="function"&&define.amd?define(["child_process","crypto"],t):typeof jS=="object"?jS["electron-machine-id"]=t(require("child_process"),require("crypto")):e["electron-machine-id"]=t(e.child_process,e.crypto)})(jS,function(e,t){return function(r){function n(a){if(i[a])return i[a].exports;var s=i[a]={exports:{},id:a,loaded:!1};return r[a].call(s.exports,s,s.exports,n),s.loaded=!0,s.exports}var i={};return n.m=r,n.c=i,n.p="",n(0)}([function(r,n,i){r.exports=i(34)},function(r,n,i){var a=i(29)("wks"),s=i(33),o=i(2).Symbol,c=typeof o=="function",p=r.exports=function(f){return a[f]||(a[f]=c&&o[f]||(c?o:s)("Symbol."+f))};p.store=a},function(r,n){var i=r.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=i)},function(r,n,i){var a=i(9);r.exports=function(s){if(!a(s))throw TypeError(s+" is not an object!");return s}},function(r,n,i){r.exports=!i(24)(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7})},function(r,n,i){var a=i(12),s=i(17);r.exports=i(4)?function(o,c,p){return a.f(o,c,s(1,p))}:function(o,c,p){return o[c]=p,o}},function(r,n){var i=r.exports={version:"2.4.0"};typeof __e=="number"&&(__e=i)},function(r,n,i){var a=i(14);r.exports=function(s,o,c){if(a(s),o===void 0)return s;switch(c){case 1:return function(p){return s.call(o,p)};case 2:return function(p,f){return s.call(o,p,f)};case 3:return function(p,f,d){return s.call(o,p,f,d)}}return function(){return s.apply(o,arguments)}}},function(r,n){var i={}.hasOwnProperty;r.exports=function(a,s){return i.call(a,s)}},function(r,n){r.exports=function(i){return typeof i=="object"?i!==null:typeof i=="function"}},function(r,n){r.exports={}},function(r,n){var i={}.toString;r.exports=function(a){return i.call(a).slice(8,-1)}},function(r,n,i){var a=i(3),s=i(26),o=i(32),c=Object.defineProperty;n.f=i(4)?Object.defineProperty:function(p,f,d){if(a(p),f=o(f,!0),a(d),s)try{return c(p,f,d)}catch{}if("get"in d||"set"in d)throw TypeError("Accessors not supported!");return"value"in d&&(p[f]=d.value),p}},function(r,n,i){var a=i(42),s=i(15);r.exports=function(o){return a(s(o))}},function(r,n){r.exports=function(i){if(typeof i!="function")throw TypeError(i+" is not a function!");return i}},function(r,n){r.exports=function(i){if(i==null)throw TypeError("Can't call method on  "+i);return i}},function(r,n,i){var a=i(9),s=i(2).document,o=a(s)&&a(s.createElement);r.exports=function(c){return o?s.createElement(c):{}}},function(r,n){r.exports=function(i,a){return{enumerable:!(1&i),configurable:!(2&i),writable:!(4&i),value:a}}},function(r,n,i){var a=i(12).f,s=i(8),o=i(1)("toStringTag");r.exports=function(c,p,f){c&&!s(c=f?c:c.prototype,o)&&a(c,o,{configurable:!0,value:p})}},function(r,n,i){var a=i(29)("keys"),s=i(33);r.exports=function(o){return a[o]||(a[o]=s(o))}},function(r,n){var i=Math.ceil,a=Math.floor;r.exports=function(s){return isNaN(s=+s)?0:(s>0?a:i)(s)}},function(r,n,i){var a=i(11),s=i(1)("toStringTag"),o=a(function(){return arguments}())=="Arguments",c=function(p,f){try{return p[f]}catch{}};r.exports=function(p){var f,d,h;return p===void 0?"Undefined":p===null?"Null":typeof(d=c(f=Object(p),s))=="string"?d:o?a(f):(h=a(f))=="Object"&&typeof f.callee=="function"?"Arguments":h}},function(r,n){r.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(r,n,i){var a=i(2),s=i(6),o=i(7),c=i(5),p="prototype",f=function(d,h,g){var v,y,_,x=d&f.F,A=d&f.G,D=d&f.S,j=d&f.P,H=d&f.B,F=d&f.W,z=A?s:s[h]||(s[h]={}),P=z[p],M=A?a:D?a[h]:(a[h]||{})[p];A&&(g=h);for(v in g)y=!x&&M&&M[v]!==void 0,y&&v in z||(_=y?M[v]:g[v],z[v]=A&&typeof M[v]!="function"?g[v]:H&&y?o(_,a):F&&M[v]==_?function(K){var L=function(ve,U,N){if(this instanceof K){switch(arguments.length){case 0:return new K;case 1:return new K(ve);case 2:return new K(ve,U)}return new K(ve,U,N)}return K.apply(this,arguments)};return L[p]=K[p],L}(_):j&&typeof _=="function"?o(Function.call,_):_,j&&((z.virtual||(z.virtual={}))[v]=_,d&f.R&&P&&!P[v]&&c(P,v,_)))};f.F=1,f.G=2,f.S=4,f.P=8,f.B=16,f.W=32,f.U=64,f.R=128,r.exports=f},function(r,n){r.exports=function(i){try{return!!i()}catch{return!0}}},function(r,n,i){r.exports=i(2).document&&document.documentElement},function(r,n,i){r.exports=!i(4)&&!i(24)(function(){return Object.defineProperty(i(16)("div"),"a",{get:function(){return 7}}).a!=7})},function(r,n,i){"use strict";var a=i(28),s=i(23),o=i(57),c=i(5),p=i(8),f=i(10),d=i(45),h=i(18),g=i(52),v=i(1)("iterator"),y=!([].keys&&"next"in[].keys()),_="@@iterator",x="keys",A="values",D=function(){return this};r.exports=function(j,H,F,z,P,M,K){d(F,H,z);var L,ve,U,N=function(V){if(!y&&V in ne)return ne[V];switch(V){case x:return function(){return new F(this,V)};case A:return function(){return new F(this,V)}}return function(){return new F(this,V)}},re=H+" Iterator",ue=P==A,Q=!1,ne=j.prototype,G=ne[v]||ne[_]||P&&ne[P],de=G||N(P),xe=P?ue?N("entries"):de:void 0,ge=H=="Array"&&ne.entries||G;if(ge&&(U=g(ge.call(new j)),U!==Object.prototype&&(h(U,re,!0),a||p(U,v)||c(U,v,D))),ue&&G&&G.name!==A&&(Q=!0,de=function(){return G.call(this)}),a&&!K||!y&&!Q&&ne[v]||c(ne,v,de),f[H]=de,f[re]=D,P)if(L={values:ue?de:N(A),keys:M?de:N(x),entries:xe},K)for(ve in L)ve in ne||o(ne,ve,L[ve]);else s(s.P+s.F*(y||Q),H,L);return L}},function(r,n){r.exports=!0},function(r,n,i){var a=i(2),s="__core-js_shared__",o=a[s]||(a[s]={});r.exports=function(c){return o[c]||(o[c]={})}},function(r,n,i){var a,s,o,c=i(7),p=i(41),f=i(25),d=i(16),h=i(2),g=h.process,v=h.setImmediate,y=h.clearImmediate,_=h.MessageChannel,x=0,A={},D="onreadystatechange",j=function(){var F=+this;if(A.hasOwnProperty(F)){var z=A[F];delete A[F],z()}},H=function(F){j.call(F.data)};v&&y||(v=function(F){for(var z=[],P=1;arguments.length>P;)z.push(arguments[P++]);return A[++x]=function(){p(typeof F=="function"?F:Function(F),z)},a(x),x},y=function(F){delete A[F]},i(11)(g)=="process"?a=function(F){g.nextTick(c(j,F,1))}:_?(s=new _,o=s.port2,s.port1.onmessage=H,a=c(o.postMessage,o,1)):h.addEventListener&&typeof postMessage=="function"&&!h.importScripts?(a=function(F){h.postMessage(F+"","*")},h.addEventListener("message",H,!1)):a=D in d("script")?function(F){f.appendChild(d("script"))[D]=function(){f.removeChild(this),j.call(F)}}:function(F){setTimeout(c(j,F,1),0)}),r.exports={set:v,clear:y}},function(r,n,i){var a=i(20),s=Math.min;r.exports=function(o){return o>0?s(a(o),9007199254740991):0}},function(r,n,i){var a=i(9);r.exports=function(s,o){if(!a(s))return s;var c,p;if(o&&typeof(c=s.toString)=="function"&&!a(p=c.call(s))||typeof(c=s.valueOf)=="function"&&!a(p=c.call(s))||!o&&typeof(c=s.toString)=="function"&&!a(p=c.call(s)))return p;throw TypeError("Can't convert object to primitive value")}},function(r,n){var i=0,a=Math.random();r.exports=function(s){return"Symbol(".concat(s===void 0?"":s,")_",(++i+a).toString(36))}},function(r,n,i){"use strict";function a(D){return D&&D.__esModule?D:{default:D}}function s(){return process.platform!=="win32"?"":process.arch==="ia32"&&process.env.hasOwnProperty("PROCESSOR_ARCHITEW6432")?"mixed":"native"}function o(D){return(0,v.createHash)("sha256").update(D).digest("hex")}function c(D){switch(_){case"darwin":return D.split("IOPlatformUUID")[1].split(`
`)[0].replace(/\=|\s+|\"/gi,"").toLowerCase();case"win32":return D.toString().split("REG_SZ")[1].replace(/\r+|\n+|\s+/gi,"").toLowerCase();case"linux":return D.toString().replace(/\r+|\n+|\s+/gi,"").toLowerCase();case"freebsd":return D.toString().replace(/\r+|\n+|\s+/gi,"").toLowerCase();default:throw new Error("Unsupported platform: "+process.platform)}}function p(D){var j=c((0,g.execSync)(A[_]).toString());return D?j:o(j)}function f(D){return new h.default(function(j,H){return(0,g.exec)(A[_],{},function(F,z,P){if(F)return H(new Error("Error while obtaining machine id: "+F.stack));var M=c(z.toString());return j(D?M:o(M))})})}Object.defineProperty(n,"__esModule",{value:!0});var d=i(35),h=a(d);n.machineIdSync=p,n.machineId=f;var g=i(70),v=i(71),y=process,_=y.platform,x={native:"%windir%\\System32",mixed:"%windir%\\sysnative\\cmd.exe /c %windir%\\System32"},A={darwin:"ioreg -rd1 -c IOPlatformExpertDevice",win32:x[s()]+"\\REG.exe QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",linux:"( cat /var/lib/dbus/machine-id /etc/machine-id 2> /dev/null || hostname ) | head -n 1 || :",freebsd:"kenv -q smbios.system.uuid || sysctl -n kern.hostuuid"}},function(r,n,i){r.exports={default:i(36),__esModule:!0}},function(r,n,i){i(66),i(68),i(69),i(67),r.exports=i(6).Promise},function(r,n){r.exports=function(){}},function(r,n){r.exports=function(i,a,s,o){if(!(i instanceof a)||o!==void 0&&o in i)throw TypeError(s+": incorrect invocation!");return i}},function(r,n,i){var a=i(13),s=i(31),o=i(62);r.exports=function(c){return function(p,f,d){var h,g=a(p),v=s(g.length),y=o(d,v);if(c&&f!=f){for(;v>y;)if(h=g[y++],h!=h)return!0}else for(;v>y;y++)if((c||y in g)&&g[y]===f)return c||y||0;return!c&&-1}}},function(r,g,i){var a=i(7),s=i(44),o=i(43),c=i(3),p=i(31),f=i(64),d={},h={},g=r.exports=function(v,y,_,x,A){var D,j,H,F,z=A?function(){return v}:f(v),P=a(_,x,y?2:1),M=0;if(typeof z!="function")throw TypeError(v+" is not iterable!");if(o(z)){for(D=p(v.length);D>M;M++)if(F=y?P(c(j=v[M])[0],j[1]):P(v[M]),F===d||F===h)return F}else for(H=z.call(v);!(j=H.next()).done;)if(F=s(H,P,j.value,y),F===d||F===h)return F};g.BREAK=d,g.RETURN=h},function(r,n){r.exports=function(i,a,s){var o=s===void 0;switch(a.length){case 0:return o?i():i.call(s);case 1:return o?i(a[0]):i.call(s,a[0]);case 2:return o?i(a[0],a[1]):i.call(s,a[0],a[1]);case 3:return o?i(a[0],a[1],a[2]):i.call(s,a[0],a[1],a[2]);case 4:return o?i(a[0],a[1],a[2],a[3]):i.call(s,a[0],a[1],a[2],a[3])}return i.apply(s,a)}},function(r,n,i){var a=i(11);r.exports=Object("z").propertyIsEnumerable(0)?Object:function(s){return a(s)=="String"?s.split(""):Object(s)}},function(r,n,i){var a=i(10),s=i(1)("iterator"),o=Array.prototype;r.exports=function(c){return c!==void 0&&(a.Array===c||o[s]===c)}},function(r,n,i){var a=i(3);r.exports=function(s,o,c,p){try{return p?o(a(c)[0],c[1]):o(c)}catch(d){var f=s.return;throw f!==void 0&&a(f.call(s)),d}}},function(r,n,i){"use strict";var a=i(49),s=i(17),o=i(18),c={};i(5)(c,i(1)("iterator"),function(){return this}),r.exports=function(p,f,d){p.prototype=a(c,{next:s(1,d)}),o(p,f+" Iterator")}},function(r,n,i){var a=i(1)("iterator"),s=!1;try{var o=[7][a]();o.return=function(){s=!0},Array.from(o,function(){throw 2})}catch{}r.exports=function(c,p){if(!p&&!s)return!1;var f=!1;try{var d=[7],h=d[a]();h.next=function(){return{done:f=!0}},d[a]=function(){return h},c(d)}catch{}return f}},function(r,n){r.exports=function(i,a){return{value:a,done:!!i}}},function(r,n,i){var a=i(2),s=i(30).set,o=a.MutationObserver||a.WebKitMutationObserver,c=a.process,p=a.Promise,f=i(11)(c)=="process";r.exports=function(){var d,h,g,v=function(){var A,D;for(f&&(A=c.domain)&&A.exit();d;){D=d.fn,d=d.next;try{D()}catch(j){throw d?g():h=void 0,j}}h=void 0,A&&A.enter()};if(f)g=function(){c.nextTick(v)};else if(o){var y=!0,_=document.createTextNode("");new o(v).observe(_,{characterData:!0}),g=function(){_.data=y=!y}}else if(p&&p.resolve){var x=p.resolve();g=function(){x.then(v)}}else g=function(){s.call(a,v)};return function(A){var D={fn:A,next:void 0};h&&(h.next=D),d||(d=D,g()),h=D}}},function(r,n,i){var a=i(3),s=i(50),o=i(22),c=i(19)("IE_PROTO"),p=function(){},f="prototype",d=function(){var h,g=i(16)("iframe"),v=o.length,y=">";for(g.style.display="none",i(25).appendChild(g),g.src="javascript:",h=g.contentWindow.document,h.open(),h.write("<script>document.F=Object</script"+y),h.close(),d=h.F;v--;)delete d[f][o[v]];return d()};r.exports=Object.create||function(h,g){var v;return h!==null?(p[f]=a(h),v=new p,p[f]=null,v[c]=h):v=d(),g===void 0?v:s(v,g)}},function(r,n,i){var a=i(12),s=i(3),o=i(54);r.exports=i(4)?Object.defineProperties:function(c,p){s(c);for(var f,d=o(p),h=d.length,g=0;h>g;)a.f(c,f=d[g++],p[f]);return c}},function(r,n,i){var a=i(55),s=i(17),o=i(13),c=i(32),p=i(8),f=i(26),d=Object.getOwnPropertyDescriptor;n.f=i(4)?d:function(h,g){if(h=o(h),g=c(g,!0),f)try{return d(h,g)}catch{}if(p(h,g))return s(!a.f.call(h,g),h[g])}},function(r,n,i){var a=i(8),s=i(63),o=i(19)("IE_PROTO"),c=Object.prototype;r.exports=Object.getPrototypeOf||function(p){return p=s(p),a(p,o)?p[o]:typeof p.constructor=="function"&&p instanceof p.constructor?p.constructor.prototype:p instanceof Object?c:null}},function(r,n,i){var a=i(8),s=i(13),o=i(39)(!1),c=i(19)("IE_PROTO");r.exports=function(p,f){var d,h=s(p),g=0,v=[];for(d in h)d!=c&&a(h,d)&&v.push(d);for(;f.length>g;)a(h,d=f[g++])&&(~o(v,d)||v.push(d));return v}},function(r,n,i){var a=i(53),s=i(22);r.exports=Object.keys||function(o){return a(o,s)}},function(r,n){n.f={}.propertyIsEnumerable},function(r,n,i){var a=i(5);r.exports=function(s,o,c){for(var p in o)c&&s[p]?s[p]=o[p]:a(s,p,o[p]);return s}},function(r,n,i){r.exports=i(5)},function(r,n,i){var a=i(9),s=i(3),o=function(c,p){if(s(c),!a(p)&&p!==null)throw TypeError(p+": can't set as prototype!")};r.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(c,p,f){try{f=i(7)(Function.call,i(51).f(Object.prototype,"__proto__").set,2),f(c,[]),p=!(c instanceof Array)}catch{p=!0}return function(d,h){return o(d,h),p?d.__proto__=h:f(d,h),d}}({},!1):void 0),check:o}},function(r,n,i){"use strict";var a=i(2),s=i(6),o=i(12),c=i(4),p=i(1)("species");r.exports=function(f){var d=typeof s[f]=="function"?s[f]:a[f];c&&d&&!d[p]&&o.f(d,p,{configurable:!0,get:function(){return this}})}},function(r,n,i){var a=i(3),s=i(14),o=i(1)("species");r.exports=function(c,p){var f,d=a(c).constructor;return d===void 0||(f=a(d)[o])==null?p:s(f)}},function(r,n,i){var a=i(20),s=i(15);r.exports=function(o){return function(c,p){var f,d,h=String(s(c)),g=a(p),v=h.length;return g<0||g>=v?o?"":void 0:(f=h.charCodeAt(g),f<55296||f>56319||g+1===v||(d=h.charCodeAt(g+1))<56320||d>57343?o?h.charAt(g):f:o?h.slice(g,g+2):(f-55296<<10)+(d-56320)+65536)}}},function(r,n,i){var a=i(20),s=Math.max,o=Math.min;r.exports=function(c,p){return c=a(c),c<0?s(c+p,0):o(c,p)}},function(r,n,i){var a=i(15);r.exports=function(s){return Object(a(s))}},function(r,n,i){var a=i(21),s=i(1)("iterator"),o=i(10);r.exports=i(6).getIteratorMethod=function(c){if(c!=null)return c[s]||c["@@iterator"]||o[a(c)]}},function(r,n,i){"use strict";var a=i(37),s=i(47),o=i(10),c=i(13);r.exports=i(27)(Array,"Array",function(p,f){this._t=c(p),this._i=0,this._k=f},function(){var p=this._t,f=this._k,d=this._i++;return!p||d>=p.length?(this._t=void 0,s(1)):f=="keys"?s(0,d):f=="values"?s(0,p[d]):s(0,[d,p[d]])},"values"),o.Arguments=o.Array,a("keys"),a("values"),a("entries")},function(r,n){},function(r,n,i){"use strict";var a,s,o,c=i(28),p=i(2),f=i(7),d=i(21),h=i(23),g=i(9),v=(i(3),i(14)),y=i(38),_=i(40),x=(i(58).set,i(60)),A=i(30).set,D=i(48)(),j="Promise",H=p.TypeError,z=p.process,F=p[j],z=p.process,P=d(z)=="process",M=function(){},K=!!function(){try{var ge=F.resolve(1),V=(ge.constructor={})[i(1)("species")]=function(ce){ce(M,M)};return(P||typeof PromiseRejectionEvent=="function")&&ge.then(M)instanceof V}catch{}}(),L=function(ge,V){return ge===V||ge===F&&V===o},ve=function(ge){var V;return!(!g(ge)||typeof(V=ge.then)!="function")&&V},U=function(ge){return L(F,ge)?new N(ge):new s(ge)},N=s=function(ge){var V,ce;this.promise=new ge(function(ye,R){if(V!==void 0||ce!==void 0)throw H("Bad Promise constructor");V=ye,ce=R}),this.resolve=v(V),this.reject=v(ce)},re=function(ge){try{ge()}catch(V){return{error:V}}},ue=function(ge,V){if(!ge._n){ge._n=!0;var ce=ge._c;D(function(){for(var ye=ge._v,R=ge._s==1,$=0,ke=function(S){var I,B,se=R?S.ok:S.fail,ae=S.resolve,me=S.reject,Se=S.domain;try{se?(R||(ge._h==2&&G(ge),ge._h=1),se===!0?I=ye:(Se&&Se.enter(),I=se(ye),Se&&Se.exit()),I===S.promise?me(H("Promise-chain cycle")):(B=ve(I))?B.call(I,ae,me):ae(I)):me(ye)}catch(Ee){me(Ee)}};ce.length>$;)ke(ce[$++]);ge._c=[],ge._n=!1,V&&!ge._h&&Q(ge)})}},Q=function(ge){A.call(p,function(){var V,ce,ye,R=ge._v;if(ne(ge)&&(V=re(function(){P?z.emit("unhandledRejection",R,ge):(ce=p.onunhandledrejection)?ce({promise:ge,reason:R}):(ye=p.console)&&ye.error&&ye.error("Unhandled promise rejection",R)}),ge._h=P||ne(ge)?2:1),ge._a=void 0,V)throw V.error})},ne=function(ge){if(ge._h==1)return!1;for(var V,ce=ge._a||ge._c,ye=0;ce.length>ye;)if(V=ce[ye++],V.fail||!ne(V.promise))return!1;return!0},G=function(ge){A.call(p,function(){var V;P?z.emit("rejectionHandled",ge):(V=p.onrejectionhandled)&&V({promise:ge,reason:ge._v})})},de=function(ge){var V=this;V._d||(V._d=!0,V=V._w||V,V._v=ge,V._s=2,V._a||(V._a=V._c.slice()),ue(V,!0))},xe=function(ge){var V,ce=this;if(!ce._d){ce._d=!0,ce=ce._w||ce;try{if(ce===ge)throw H("Promise can't be resolved itself");(V=ve(ge))?D(function(){var ye={_w:ce,_d:!1};try{V.call(ge,f(xe,ye,1),f(de,ye,1))}catch(R){de.call(ye,R)}}):(ce._v=ge,ce._s=1,ue(ce,!1))}catch(ye){de.call({_w:ce,_d:!1},ye)}}};K||(F=function(ge){y(this,F,j,"_h"),v(ge),a.call(this);try{ge(f(xe,this,1),f(de,this,1))}catch(V){de.call(this,V)}},a=function(ge){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},a.prototype=i(56)(F.prototype,{then:function(ge,V){var ce=U(x(this,F));return ce.ok=typeof ge!="function"||ge,ce.fail=typeof V=="function"&&V,ce.domain=P?z.domain:void 0,this._c.push(ce),this._a&&this._a.push(ce),this._s&&ue(this,!1),ce.promise},catch:function(ge){return this.then(void 0,ge)}}),N=function(){var ge=new a;this.promise=ge,this.resolve=f(xe,ge,1),this.reject=f(de,ge,1)}),h(h.G+h.W+h.F*!K,{Promise:F}),i(18)(F,j),i(59)(j),o=i(6)[j],h(h.S+h.F*!K,j,{reject:function(ge){var V=U(this),ce=V.reject;return ce(ge),V.promise}}),h(h.S+h.F*(c||!K),j,{resolve:function(ge){if(ge instanceof F&&L(ge.constructor,this))return ge;var V=U(this),ce=V.resolve;return ce(ge),V.promise}}),h(h.S+h.F*!(K&&i(46)(function(ge){F.all(ge).catch(M)})),j,{all:function(ge){var V=this,ce=U(V),ye=ce.resolve,R=ce.reject,$=re(function(){var ke=[],S=0,I=1;_(ge,!1,function(B){var se=S++,ae=!1;ke.push(void 0),I++,V.resolve(B).then(function(me){ae||(ae=!0,ke[se]=me,--I||ye(ke))},R)}),--I||ye(ke)});return $&&R($.error),ce.promise},race:function(ge){var V=this,ce=U(V),ye=ce.reject,R=re(function(){_(ge,!1,function($){V.resolve($).then(ce.resolve,ye)})});return R&&ye(R.error),ce.promise}})},function(r,n,i){"use strict";var a=i(61)(!0);i(27)(String,"String",function(s){this._t=String(s),this._i=0},function(){var s,o=this._t,c=this._i;return c>=o.length?{value:void 0,done:!0}:(s=a(o,c),this._i+=s.length,{value:s,done:!1})})},function(r,n,i){i(65);for(var a=i(2),s=i(5),o=i(10),c=i(1)("toStringTag"),p=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],f=0;f<5;f++){var d=p[f],h=a[d],g=h&&h.prototype;g&&!g[c]&&s(g,c,d),o[d]=o.Array}},function(r,n){r.exports=require("child_process")},function(r,n){r.exports=require("crypto")}])})});var Mre=b(Bre=>{Object.defineProperty(Bre,"__esModule",{value:!0});function H$t(){return typeof __SENTRY_BROWSER_BUNDLE__<"u"&&!!__SENTRY_BROWSER_BUNDLE__}Bre.isBrowserBundle=H$t});var UI=b((NS,MI)=>{Object.defineProperty(NS,"__esModule",{value:!0});var V$t=Mre();function G$t(){return!V$t.isBrowserBundle()&&Object.prototype.toString.call(typeof process<"u"?process:0)==="[object process]"}function BI(e,t){return e.require(t)}function W$t(e){let t;try{t=BI(MI,e)}catch{}try{let{cwd:r}=BI(MI,"process");t=BI(MI,`${r()}/node_modules/${e}`)}catch{}return t}NS.dynamicRequire=BI;NS.isNodeEnv=G$t;NS.loadModule=W$t});var ng=b(zI=>{Object.defineProperty(zI,"__esModule",{value:!0});var K$t=UI(),Y$t={};function yIe(){return K$t.isNodeEnv()?global:typeof window<"u"?window:typeof self<"u"?self:Y$t}function J$t(e,t,r){var n=r||yIe(),i=n.__SENTRY__=n.__SENTRY__||{},a=i[e]||(i[e]=t());return a}zI.getGlobalObject=yIe;zI.getGlobalSingleton=J$t});var ig=b(uu=>{Object.defineProperty(uu,"__esModule",{value:!0});var bIe=Object.prototype.toString;function X$t(e){switch(bIe.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return HI(e,Error)}}function B6(e,t){return bIe.call(e)===`[object ${t}]`}function Q$t(e){return B6(e,"ErrorEvent")}function Z$t(e){return B6(e,"DOMError")}function eBt(e){return B6(e,"DOMException")}function tBt(e){return B6(e,"String")}function rBt(e){return e===null||typeof e!="object"&&typeof e!="function"}function wIe(e){return B6(e,"Object")}function nBt(e){return typeof Event<"u"&&HI(e,Event)}function iBt(e){return typeof Element<"u"&&HI(e,Element)}function aBt(e){return B6(e,"RegExp")}function sBt(e){return!!(e&&e.then&&typeof e.then=="function")}function oBt(e){return wIe(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e}function uBt(e){return typeof e=="number"&&e!==e}function HI(e,t){try{return e instanceof t}catch{return!1}}uu.isDOMError=Z$t;uu.isDOMException=eBt;uu.isElement=iBt;uu.isError=X$t;uu.isErrorEvent=Q$t;uu.isEvent=nBt;uu.isInstanceOf=HI;uu.isNaN=uBt;uu.isPlainObject=wIe;uu.isPrimitive=rBt;uu.isRegExp=aBt;uu.isString=tBt;uu.isSyntheticEvent=oBt;uu.isThenable=sBt});var Ure=b(VI=>{Object.defineProperty(VI,"__esModule",{value:!0});var cBt=ng(),lBt=ig();function pBt(e,t){try{let o=e;var r=5,n=80,i=[];let c=0,p=0;var a=" > ",s=a.length;let f;for(;o&&c++<r&&(f=fBt(o,t),!(f==="html"||c>1&&p+i.length*s+f.length>=n));)i.push(f),p+=f.length,o=o.parentNode;return i.reverse().join(a)}catch{return"<unknown>"}}function fBt(e,t){var r=e,n=[];let i,a,s,o,c;if(!r||!r.tagName)return"";n.push(r.tagName.toLowerCase());var p=t&&t.length?t.filter(d=>r.getAttribute(d)).map(d=>[d,r.getAttribute(d)]):null;if(p&&p.length)p.forEach(d=>{n.push(`[${d[0]}="${d[1]}"]`)});else if(r.id&&n.push(`#${r.id}`),i=r.className,i&&lBt.isString(i))for(a=i.split(/\s+/),c=0;c<a.length;c++)n.push(`.${a[c]}`);var f=["type","name","title","alt"];for(c=0;c<f.length;c++)s=f[c],o=r.getAttribute(s),o&&n.push(`[${s}="${o}"]`);return n.join("")}function dBt(){var e=cBt.getGlobalObject();try{return e.document.location.href}catch{return""}}VI.getLocationHref=dBt;VI.htmlTreeAsString=pBt});var GI=b(Hre=>{Object.defineProperty(Hre,"__esModule",{value:!0});var zre=class extends Error{constructor(t){super(t),this.message=t,this.name=new.target.prototype.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Hre.SentryError=zre});var SIe=b(LS=>{Object.defineProperty(LS,"__esModule",{value:!0});var qS=GI(),hBt=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+))?@)([\w.-]+)(?::(\d+))?\/(.+)/;function mBt(e){return e==="http"||e==="https"}function _Ie(e,t=!1){let{host:r,path:n,pass:i,port:a,projectId:s,protocol:o,publicKey:c}=e;return`${o}://${c}${t&&i?`:${i}`:""}@${r}${a?`:${a}`:""}/${n&&`${n}/`}${s}`}function xIe(e){var t=hBt.exec(e);if(!t)throw new qS.SentryError(`Invalid Sentry Dsn: ${e}`);let[r,n,i="",a,s="",o]=t.slice(1),c="",p=o;var f=p.split("/");if(f.length>1&&(c=f.slice(0,-1).join("/"),p=f.pop()),p){var d=p.match(/^\d+/);d&&(p=d[0])}return EIe({host:a,pass:i,path:c,projectId:p,port:s,protocol:r,publicKey:n})}function EIe(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function gBt(e){if(!(typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__))return;let{port:t,projectId:r,protocol:n}=e;var i=["protocol","publicKey","host","projectId"];if(i.forEach(a=>{if(!e[a])throw new qS.SentryError(`Invalid Sentry Dsn: ${a} missing`)}),!r.match(/^\d+$/))throw new qS.SentryError(`Invalid Sentry Dsn: Invalid projectId ${r}`);if(!mBt(n))throw new qS.SentryError(`Invalid Sentry Dsn: Invalid protocol ${n}`);if(t&&isNaN(parseInt(t,10)))throw new qS.SentryError(`Invalid Sentry Dsn: Invalid port ${t}`);return!0}function vBt(e){var t=typeof e=="string"?xIe(e):EIe(e);return gBt(t),t}function yBt(e){if(e!==void 0){var t=xIe(e);return t.host="localhost",t.port="3000",t.protocol="http",_Ie(t)}}LS.dsnToString=_Ie;LS.extensionRelayDSN=yBt;LS.makeDsn=vBt});var $S=b(cb=>{Object.defineProperty(cb,"__esModule",{value:!0});var Vre=ng(),bBt=Vre.getGlobalObject(),wBt="Sentry Logger ",WI=["debug","info","warn","error","log","assert"];function AIe(e){var t=Vre.getGlobalObject();if(!("console"in t))return e();var r=t.console,n={};WI.forEach(i=>{var a=r[i]&&r[i].__sentry_original__;i in t.console&&a&&(n[i]=r[i],r[i]=a)});try{return e()}finally{Object.keys(n).forEach(i=>{r[i]=n[i]})}}function kIe(){let e=!1;var t={enable:()=>{e=!0},disable:()=>{e=!1}};return typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__?WI.forEach(r=>{t[r]=(...n)=>{e&&AIe(()=>{bBt.console[r](`${wBt}[${r}]:`,...n)})}}):WI.forEach(r=>{t[r]=()=>{}}),t}cb.logger=void 0;typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__?cb.logger=Vre.getGlobalSingleton("logger",kIe):cb.logger=kIe();cb.CONSOLE_LEVELS=WI;cb.consoleSandbox=AIe});var KI=b(lb=>{Object.defineProperty(lb,"__esModule",{value:!0});var TIe=ig();function _Bt(e,t=0){return typeof e!="string"||t===0||e.length<=t?e:`${e.substr(0,t)}...`}function xBt(e,t){let r=e;var n=r.length;if(n<=150)return r;t>n&&(t=n);let i=Math.max(t-60,0);i<5&&(i=0);let a=Math.min(i+140,n);return a>n-5&&(a=n),a===n&&(i=Math.max(a-140,0)),r=r.slice(i,a),i>0&&(r=`'{snip} ${r}`),a<n&&(r+=" {snip}"),r}function EBt(e,t){if(!Array.isArray(e))return"";var r=[];for(let i=0;i<e.length;i++){var n=e[i];try{r.push(String(n))}catch{r.push("[value cannot be serialized]")}}return r.join(t)}function SBt(e,t){return TIe.isString(e)?TIe.isRegExp(t)?t.test(e):typeof t=="string"?e.indexOf(t)!==-1:!1:!1}function kBt(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}lb.escapeStringForRegex=kBt;lb.isMatchingPattern=SBt;lb.safeJoin=EBt;lb.snipLine=xBt;lb.truncate=_Bt});var U6=b(pf=>{Object.defineProperty(pf,"__esModule",{value:!0});var ABt=Ure(),M6=ig(),OIe=KI();function TBt(e,t,r){if(t in e){var n=e[t],i=r(n);if(typeof i=="function")try{IIe(i,n)}catch{}e[t]=i}}function PIe(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,configurable:!0})}function IIe(e,t){var r=t.prototype||{};e.prototype=t.prototype=r,PIe(e,"__sentry_original__",t)}function OBt(e){return e.__sentry_original__}function DBt(e){return Object.keys(e).map(t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`).join("&")}function RIe(e){if(M6.isError(e))return{message:e.message,name:e.name,stack:e.stack,...CIe(e)};if(M6.isEvent(e)){var t={type:e.type,target:DIe(e.target),currentTarget:DIe(e.currentTarget),...CIe(e)};return typeof CustomEvent<"u"&&M6.isInstanceOf(e,CustomEvent)&&(t.detail=e.detail),t}else return e}function DIe(e){try{return M6.isElement(e)?ABt.htmlTreeAsString(e):Object.prototype.toString.call(e)}catch{return"<unknown>"}}function CIe(e){if(typeof e=="object"&&e!==null){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}else return{}}function CBt(e,t=40){var r=Object.keys(RIe(e));if(r.sort(),!r.length)return"[object has no keys]";if(r[0].length>=t)return OIe.truncate(r[0],t);for(let i=r.length;i>0;i--){var n=r.slice(0,i).join(", ");if(!(n.length>t))return i===r.length?n:OIe.truncate(n,t)}return""}function PBt(e){var t=new Map;return Gre(e,t)}function Gre(e,t){if(M6.isPlainObject(e)){var r=t.get(e);if(r!==void 0)return r;var n={};t.set(e,n);for(var i of Object.keys(e))typeof e[i]<"u"&&(n[i]=Gre(e[i],t));return n}if(Array.isArray(e)){var r=t.get(e);if(r!==void 0)return r;var n=[];return t.set(e,n),e.forEach(o=>{n.push(Gre(o,t))}),n}return e}function IBt(e){let t;switch(!0){case e==null:t=new String(e);break;case(typeof e=="symbol"||typeof e=="bigint"):t=Object(e);break;case M6.isPrimitive(e):t=new e.constructor(e);break;default:t=e;break}return t}pf.addNonEnumerableProperty=PIe;pf.convertToPlainObject=RIe;pf.dropUndefinedKeys=PBt;pf.extractExceptionKeysForMessage=CBt;pf.fill=TBt;pf.getOriginalFunction=OBt;pf.markFunctionWrapped=IIe;pf.objectify=IBt;pf.urlEncode=DBt});var YI=b(z6=>{Object.defineProperty(z6,"__esModule",{value:!0});var RBt=50;function FIe(...e){var t=e.sort((r,n)=>r[0]-n[0]).map(r=>r[1]);return(r,n=0)=>{var i=[];for(var a of r.split(`
`).slice(n))for(var s of t){var o=s(a);if(o){i.push(o);break}}return jIe(i)}}function FBt(e){return Array.isArray(e)?FIe(...e):e}function jIe(e){if(!e.length)return[];let t=e;var r=t[0].function||"",n=t[t.length-1].function||"";return(r.indexOf("captureMessage")!==-1||r.indexOf("captureException")!==-1)&&(t=t.slice(1)),n.indexOf("sentryWrapped")!==-1&&(t=t.slice(0,-1)),t.slice(0,RBt).map(i=>({...i,filename:i.filename||t[0].filename,function:i.function||"?"})).reverse()}var Wre="<anonymous>";function jBt(e){try{return!e||typeof e!="function"?Wre:e.name||Wre}catch{return Wre}}z6.createStackParser=FIe;z6.getFunctionName=jBt;z6.stackParserFromStackParserOptions=FBt;z6.stripSentryFramesAndReverse=jIe});var Jre=b(ff=>{Object.defineProperty(ff,"__esModule",{value:!0});var JI=ng(),NBt=$S();function qBt(){try{return new ErrorEvent(""),!0}catch{return!1}}function LBt(){try{return new DOMError(""),!0}catch{return!1}}function $Bt(){try{return new DOMException(""),!0}catch{return!1}}function Yre(){if(!("fetch"in JI.getGlobalObject()))return!1;try{return new Headers,new Request(""),new Response,!0}catch{return!1}}function Kre(e){return e&&/^function fetch\(\)\s+\{\s+\[native code\]\s+\}$/.test(e.toString())}function BBt(){if(!Yre())return!1;var e=JI.getGlobalObject();if(Kre(e.fetch))return!0;let t=!1;var r=e.document;if(r&&typeof r.createElement=="function")try{var n=r.createElement("iframe");n.hidden=!0,r.head.appendChild(n),n.contentWindow&&n.contentWindow.fetch&&(t=Kre(n.contentWindow.fetch)),r.head.removeChild(n)}catch(i){(typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__)&&NBt.logger.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",i)}return t}function MBt(){return"ReportingObserver"in JI.getGlobalObject()}function UBt(){if(!Yre())return!1;try{return new Request("_",{referrerPolicy:"origin"}),!0}catch{return!1}}function zBt(){var e=JI.getGlobalObject(),t=e.chrome,r=t&&t.app&&t.app.runtime,n="history"in e&&!!e.history.pushState&&!!e.history.replaceState;return!r&&n}ff.isNativeFetch=Kre;ff.supportsDOMError=LBt;ff.supportsDOMException=$Bt;ff.supportsErrorEvent=qBt;ff.supportsFetch=Yre;ff.supportsHistory=zBt;ff.supportsNativeFetch=BBt;ff.supportsReferrerPolicy=UBt;ff.supportsReportingObserver=MBt});var $Ie=b(ene=>{Object.defineProperty(ene,"__esModule",{value:!0});var HBt=ng(),eR=ig(),Zre=$S(),n1=U6(),VBt=YI(),LIe=Jre(),xa=HBt.getGlobalObject(),BS={},NIe={};function GBt(e){if(!NIe[e])switch(NIe[e]=!0,e){case"console":KBt();break;case"dom":nMt();break;case"xhr":QBt();break;case"fetch":YBt();break;case"history":ZBt();break;case"error":iMt();break;case"unhandledrejection":aMt();break;default:(typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__)&&Zre.logger.warn("unknown instrumentation type:",e);return}}function WBt(e,t){BS[e]=BS[e]||[],BS[e].push(t),GBt(e)}function df(e,t){if(!(!e||!BS[e]))for(var r of BS[e]||[])try{r(t)}catch(n){(typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__)&&Zre.logger.error(`Error while triggering instrumentation handler.
Type: ${e}
Name: ${VBt.getFunctionName(r)}
Error:`,n)}}function KBt(){"console"in xa&&Zre.CONSOLE_LEVELS.forEach(function(e){e in xa.console&&n1.fill(xa.console,e,function(t){return function(...r){df("console",{args:r,level:e}),t&&t.apply(xa.console,r)}})})}function YBt(){LIe.supportsNativeFetch()&&n1.fill(xa,"fetch",function(e){return function(...t){var r={args:t,fetchData:{method:JBt(t),url:XBt(t)},startTimestamp:Date.now()};return df("fetch",{...r}),e.apply(xa,t).then(n=>(df("fetch",{...r,endTimestamp:Date.now(),response:n}),n),n=>{throw df("fetch",{...r,endTimestamp:Date.now(),error:n}),n})}})}function JBt(e=[]){return"Request"in xa&&eR.isInstanceOf(e[0],Request)&&e[0].method?String(e[0].method).toUpperCase():e[1]&&e[1].method?String(e[1].method).toUpperCase():"GET"}function XBt(e=[]){return typeof e[0]=="string"?e[0]:"Request"in xa&&eR.isInstanceOf(e[0],Request)?e[0].url:String(e[0])}function QBt(){if("XMLHttpRequest"in xa){var e=XMLHttpRequest.prototype;n1.fill(e,"open",function(t){return function(...r){var n=this,i=r[1],a=n.__sentry_xhr__={method:eR.isString(r[0])?r[0].toUpperCase():r[0],url:r[1]};eR.isString(i)&&a.method==="POST"&&i.match(/sentry_key/)&&(n.__sentry_own_request__=!0);var s=function(){if(n.readyState===4){try{a.status_code=n.status}catch{}df("xhr",{args:r,endTimestamp:Date.now(),startTimestamp:Date.now(),xhr:n})}};return"onreadystatechange"in n&&typeof n.onreadystatechange=="function"?n1.fill(n,"onreadystatechange",function(o){return function(...c){return s(),o.apply(n,c)}}):n.addEventListener("readystatechange",s),t.apply(n,r)}}),n1.fill(e,"send",function(t){return function(...r){return this.__sentry_xhr__&&r[0]!==void 0&&(this.__sentry_xhr__.body=r[0]),df("xhr",{args:r,startTimestamp:Date.now(),xhr:this}),t.apply(this,r)}})}}var XI;function ZBt(){if(!LIe.supportsHistory())return;var e=xa.onpopstate;xa.onpopstate=function(...r){var n=xa.location.href,i=XI;if(XI=n,df("history",{from:i,to:n}),e)try{return e.apply(this,r)}catch{}};function t(r){return function(...n){var i=n.length>2?n[2]:void 0;if(i){var a=XI,s=String(i);XI=s,df("history",{from:a,to:s})}return r.apply(this,n)}}n1.fill(xa.history,"pushState",t),n1.fill(xa.history,"replaceState",t)}var eMt=1e3,QI,ZI;function tMt(e,t){if(!e||e.type!==t.type)return!0;try{if(e.target!==t.target)return!0}catch{}return!1}function rMt(e){if(e.type!=="keypress")return!1;try{var t=e.target;if(!t||!t.tagName)return!0;if(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable)return!1}catch{}return!0}function qIe(e,t=!1){return r=>{if(!(!r||ZI===r)&&!rMt(r)){var n=r.type==="keypress"?"input":r.type;QI===void 0?(e({event:r,name:n,global:t}),ZI=r):tMt(ZI,r)&&(e({event:r,name:n,global:t}),ZI=r),clearTimeout(QI),QI=xa.setTimeout(()=>{QI=void 0},eMt)}}}function nMt(){if("document"in xa){var e=df.bind(null,"dom"),t=qIe(e,!0);xa.document.addEventListener("click",t,!1),xa.document.addEventListener("keypress",t,!1),["EventTarget","Node"].forEach(r=>{var n=xa[r]&&xa[r].prototype;!n||!n.hasOwnProperty||!n.hasOwnProperty("addEventListener")||(n1.fill(n,"addEventListener",function(i){return function(a,s,o){if(a==="click"||a=="keypress")try{var c=this,p=c.__sentry_instrumentation_handlers__=c.__sentry_instrumentation_handlers__||{},f=p[a]=p[a]||{refCount:0};if(!f.handler){var d=qIe(e);f.handler=d,i.call(this,a,d,o)}f.refCount+=1}catch{}return i.call(this,a,s,o)}}),n1.fill(n,"removeEventListener",function(i){return function(a,s,o){if(a==="click"||a=="keypress")try{var c=this,p=c.__sentry_instrumentation_handlers__||{},f=p[a];f&&(f.refCount-=1,f.refCount<=0&&(i.call(this,a,f.handler,o),f.handler=void 0,delete p[a]),Object.keys(p).length===0&&delete c.__sentry_instrumentation_handlers__)}catch{}return i.call(this,a,s,o)}}))})}}var Xre=null;function iMt(){Xre=xa.onerror,xa.onerror=function(e,t,r,n,i){return df("error",{column:n,error:i,line:r,msg:e,url:t}),Xre?Xre.apply(this,arguments):!1}}var Qre=null;function aMt(){Qre=xa.onunhandledrejection,xa.onunhandledrejection=function(e){return df("unhandledrejection",e),Qre?Qre.apply(this,arguments):!0}}ene.addInstrumentationHandler=WBt});var rne=b(tne=>{Object.defineProperty(tne,"__esModule",{value:!0});function sMt(){var e=typeof WeakSet=="function",t=e?new WeakSet:[];function r(i){if(e)return t.has(i)?!0:(t.add(i),!1);for(let s=0;s<t.length;s++){var a=t[s];if(a===i)return!0}return t.push(i),!1}function n(i){if(e)t.delete(i);else for(let a=0;a<t.length;a++)if(t[a]===i){t.splice(a,1);break}}return[r,n]}tne.memoBuilder=sMt});var MIe=b(hf=>{Object.defineProperty(hf,"__esModule",{value:!0});var oMt=ng(),uMt=U6(),nne=KI();function cMt(){var e=oMt.getGlobalObject(),t=e.crypto||e.msCrypto;if(t!==void 0&&t.getRandomValues){var r=new Uint16Array(8);t.getRandomValues(r),r[3]=r[3]&4095|16384,r[4]=r[4]&16383|32768;var n=i=>{let a=i.toString(16);for(;a.length<4;)a=`0${a}`;return a};return n(r[0])+n(r[1])+n(r[2])+n(r[3])+n(r[4])+n(r[5])+n(r[6])+n(r[7])}return"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g,i=>{var a=Math.random()*16|0,s=i==="x"?a:a&3|8;return s.toString(16)})}function lMt(e){if(!e)return{};var t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};var r=t[6]||"",n=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],relative:t[5]+r+n}}function BIe(e){return e.exception&&e.exception.values?e.exception.values[0]:void 0}function pMt(e){let{message:t,event_id:r}=e;if(t)return t;var n=BIe(e);return n?n.type&&n.value?`${n.type}: ${n.value}`:n.type||n.value||r||"<unknown>":r||"<unknown>"}function fMt(e,t,r){var n=e.exception=e.exception||{},i=n.values=n.values||[],a=i[0]=i[0]||{};a.value||(a.value=t||""),a.type||(a.type=r||"Error")}function dMt(e,t){var r=BIe(e);if(r){var n={type:"generic",handled:!0},i=r.mechanism;if(r.mechanism={...n,...i,...t},t&&"data"in t){var a={...i&&i.data,...t.data};r.mechanism.data=a}}}var hMt=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;function mMt(e){var t=e.match(hMt)||[],r=parseInt(t[1],10),n=parseInt(t[2],10),i=parseInt(t[3],10);return{buildmetadata:t[5],major:isNaN(r)?void 0:r,minor:isNaN(n)?void 0:n,patch:isNaN(i)?void 0:i,prerelease:t[4]}}function gMt(e,t,r=5){var n=t.lineno||0,i=e.length,a=Math.max(Math.min(i,n-1),0);t.pre_context=e.slice(Math.max(0,a-r),a).map(s=>nne.snipLine(s,0)),t.context_line=nne.snipLine(e[Math.min(i-1,a)],t.colno||0),t.post_context=e.slice(Math.min(a+1,i),a+1+r).map(s=>nne.snipLine(s,0))}function vMt(e){return e.split(/[\?#]/,1)[0]}function yMt(e){if(e&&e.__sentry_captured__)return!0;try{uMt.addNonEnumerableProperty(e,"__sentry_captured__",!0)}catch{}return!1}hf.addContextToFrame=gMt;hf.addExceptionMechanism=dMt;hf.addExceptionTypeValue=fMt;hf.checkOrSetAlreadyCaught=yMt;hf.getEventDescription=pMt;hf.parseSemver=mMt;hf.parseUrl=lMt;hf.stripUrlQueryAndFragment=vMt;hf.uuid4=cMt});var VIe=b(MS=>{Object.defineProperty(MS,"__esModule",{value:!0});var UIe=ig(),bMt=rne(),wMt=U6(),_Mt=YI();function zIe(e,t=1/0,r=1/0){try{return ine("",e,t,r)}catch(n){return{ERROR:`**non-serializable** (${n})`}}}function HIe(e,t=3,r=100*1024){var n=zIe(e,t);return SMt(n)>r?HIe(e,t-1,r):n}function ine(e,t,r=1/0,n=1/0,i=bMt.memoBuilder()){let[a,s]=i;var o=t;if(o&&typeof o.toJSON=="function")try{return o.toJSON()}catch{}if(t===null||["number","boolean","string"].includes(typeof t)&&!UIe.isNaN(t))return t;var c=xMt(e,t);if(!c.startsWith("[object "))return c;if(t.__sentry_skip_normalization__)return t;if(r===0)return c.replace("object ","");if(a(t))return"[Circular ~]";var p=Array.isArray(t)?[]:{};let f=0;var d=wMt.convertToPlainObject(t);for(var h in d)if(Object.prototype.hasOwnProperty.call(d,h)){if(f>=n){p[h]="[MaxProperties ~]";break}var g=d[h];p[h]=ine(h,g,r-1,n,i),f+=1}return s(t),p}function xMt(e,t){try{return e==="domain"&&t&&typeof t=="object"&&t._events?"[Domain]":e==="domainEmitter"?"[DomainEmitter]":typeof global<"u"&&t===global?"[Global]":typeof window<"u"&&t===window?"[Window]":typeof document<"u"&&t===document?"[Document]":UIe.isSyntheticEvent(t)?"[SyntheticEvent]":typeof t=="number"&&t!==t?"[NaN]":t===void 0?"[undefined]":typeof t=="function"?`[Function: ${_Mt.getFunctionName(t)}]`:typeof t=="symbol"?`[${String(t)}]`:typeof t=="bigint"?`[BigInt: ${String(t)}]`:`[object ${Object.getPrototypeOf(t).constructor.name}]`}catch(r){return`**non-serializable** (${r})`}}function EMt(e){return~-encodeURI(e).split(/%..|./).length}function SMt(e){return EMt(JSON.stringify(e))}MS.normalize=zIe;MS.normalizeToSize=HIe;MS.walk=ine});var XIe=b(i1=>{Object.defineProperty(i1,"__esModule",{value:!0});function WIe(e,t){let r=0;for(let i=e.length-1;i>=0;i--){var n=e[i];n==="."?e.splice(i,1):n===".."?(e.splice(i,1),r++):r&&(e.splice(i,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}var kMt=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^/]+?|)(\.[^./]*|))(?:[/]*)$/;function KIe(e){var t=kMt.exec(e);return t?t.slice(1):[]}function ane(...e){let t="",r=!1;for(let i=e.length-1;i>=-1&&!r;i--){var n=i>=0?e[i]:"/";n&&(t=`${n}/${t}`,r=n.charAt(0)==="/")}return t=WIe(t.split("/").filter(i=>!!i),!r).join("/"),(r?"/":"")+t||"."}function GIe(e){let t=0;for(;t<e.length&&e[t]==="";t++);let r=e.length-1;for(;r>=0&&e[r]==="";r--);return t>r?[]:e.slice(t,r-t+1)}function AMt(e,t){e=ane(e).substr(1),t=ane(t).substr(1);var r=GIe(e.split("/")),n=GIe(t.split("/")),i=Math.min(r.length,n.length);let a=i;for(let o=0;o<i;o++)if(r[o]!==n[o]){a=o;break}let s=[];for(let o=a;o<r.length;o++)s.push("..");return s=s.concat(n.slice(a)),s.join("/")}function YIe(e){var t=JIe(e),r=e.substr(-1)==="/";let n=WIe(e.split("/").filter(i=>!!i),!t).join("/");return!n&&!t&&(n="."),n&&r&&(n+="/"),(t?"/":"")+n}function JIe(e){return e.charAt(0)==="/"}function TMt(...e){return YIe(e.join("/"))}function OMt(e){var t=KIe(e),r=t[0];let n=t[1];return!r&&!n?".":(n&&(n=n.substr(0,n.length-1)),r+n)}function DMt(e,t){let r=KIe(e)[2];return t&&r.substr(t.length*-1)===t&&(r=r.substr(0,r.length-t.length)),r}i1.basename=DMt;i1.dirname=OMt;i1.isAbsolute=JIe;i1.join=TMt;i1.normalizePath=YIe;i1.relative=AMt;i1.resolve=ane});var sne=b(zS=>{Object.defineProperty(zS,"__esModule",{value:!0});var CMt=ig(),a1;(function(e){var t=0;e[e.PENDING=t]="PENDING";var r=1;e[e.RESOLVED=r]="RESOLVED";var n=2;e[e.REJECTED=n]="REJECTED"})(a1||(a1={}));function PMt(e){return new US(t=>{t(e)})}function IMt(e){return new US((t,r)=>{r(e)})}var US=class e{__init(){this._state=a1.PENDING}__init2(){this._handlers=[]}constructor(t){e.prototype.__init.call(this),e.prototype.__init2.call(this),e.prototype.__init3.call(this),e.prototype.__init4.call(this),e.prototype.__init5.call(this),e.prototype.__init6.call(this);try{t(this._resolve,this._reject)}catch(r){this._reject(r)}}then(t,r){return new e((n,i)=>{this._handlers.push([!1,a=>{if(!t)n(a);else try{n(t(a))}catch(s){i(s)}},a=>{if(!r)i(a);else try{n(r(a))}catch(s){i(s)}}]),this._executeHandlers()})}catch(t){return this.then(r=>r,t)}finally(t){return new e((r,n)=>{let i,a;return this.then(s=>{a=!1,i=s,t&&t()},s=>{a=!0,i=s,t&&t()}).then(()=>{if(a){n(i);return}r(i)})})}__init3(){this._resolve=t=>{this._setResult(a1.RESOLVED,t)}}__init4(){this._reject=t=>{this._setResult(a1.REJECTED,t)}}__init5(){this._setResult=(t,r)=>{if(this._state===a1.PENDING){if(CMt.isThenable(r)){r.then(this._resolve,this._reject);return}this._state=t,this._value=r,this._executeHandlers()}}}__init6(){this._executeHandlers=()=>{if(this._state!==a1.PENDING){var t=this._handlers.slice();this._handlers=[],t.forEach(r=>{r[0]||(this._state===a1.RESOLVED&&r[1](this._value),this._state===a1.REJECTED&&r[2](this._value),r[0]=!0)})}}}};zS.SyncPromise=US;zS.rejectedSyncPromise=IMt;zS.resolvedSyncPromise=PMt});var QIe=b(une=>{Object.defineProperty(une,"__esModule",{value:!0});var RMt=GI(),one=sne();function FMt(e){var t=[];function r(){return e===void 0||t.length<e}function n(s){return t.splice(t.indexOf(s),1)[0]}function i(s){if(!r())return one.rejectedSyncPromise(new RMt.SentryError("Not adding Promise due to buffer limit reached."));var o=s();return t.indexOf(o)===-1&&t.push(o),o.then(()=>n(o)).then(null,()=>n(o).then(null,()=>{})),o}function a(s){return new one.SyncPromise((o,c)=>{let p=t.length;if(!p)return o(!0);var f=setTimeout(()=>{s&&s>0&&o(!1)},s);t.forEach(d=>{one.resolvedSyncPromise(d).then(()=>{--p||(clearTimeout(f),o(!0))},c)})})}return{$:t,add:i,drain:a}}une.makePromiseBuffer=FMt});var tRe=b(HS=>{Object.defineProperty(HS,"__esModule",{value:!0});var ZIe=["fatal","error","warning","log","info","debug"];function jMt(e){return eRe(e)}function eRe(e){return e==="warn"?"warning":ZIe.includes(e)?e:"log"}HS.severityFromString=jMt;HS.severityLevelFromString=eRe;HS.validSeverityLevels=ZIe});var lne=b((Ul,sRe)=>{Object.defineProperty(Ul,"__esModule",{value:!0});var nRe=ng(),iRe=UI(),cne={nowSeconds:()=>Date.now()/1e3};function NMt(){let{performance:e}=nRe.getGlobalObject();if(!(!e||!e.now)){var t=Date.now()-e.now();return{now:()=>e.now(),timeOrigin:t}}}function qMt(){try{var e=iRe.dynamicRequire(sRe,"perf_hooks");return e.performance}catch{return}}var tR=iRe.isNodeEnv()?qMt():NMt(),rRe=tR===void 0?cne:{nowSeconds:()=>(tR.timeOrigin+tR.now())/1e3},LMt=cne.nowSeconds.bind(cne),aRe=rRe.nowSeconds.bind(rRe),$Mt=aRe,BMt=tR!==void 0;Ul._browserPerformanceTimeOriginMode=void 0;var MMt=(()=>{let{performance:e}=nRe.getGlobalObject();if(!e||!e.now){Ul._browserPerformanceTimeOriginMode="none";return}var t=3600*1e3,r=e.now(),n=Date.now(),i=e.timeOrigin?Math.abs(e.timeOrigin+r-n):t,a=i<t,s=e.timing&&e.timing.navigationStart,o=typeof s=="number",c=o?Math.abs(s+r-n):t,p=c<t;return a||p?i<=c?(Ul._browserPerformanceTimeOriginMode="timeOrigin",e.timeOrigin):(Ul._browserPerformanceTimeOriginMode="navigationStart",s):(Ul._browserPerformanceTimeOriginMode="dateNow",n)})();Ul.browserPerformanceTimeOrigin=MMt;Ul.dateTimestampInSeconds=LMt;Ul.timestampInSeconds=aRe;Ul.timestampWithMs=$Mt;Ul.usingPerformanceAPI=BMt});var uRe=b(rR=>{Object.defineProperty(rR,"__esModule",{value:!0});var oRe=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$");function UMt(e){var t=e.match(oRe);if(t){let r;return t[3]==="1"?r=!0:t[3]==="0"&&(r=!1),{traceId:t[1],parentSampled:r,parentSpanId:t[2]}}}rR.TRACEPARENT_REGEXP=oRe;rR.extractTraceparentData=UMt});var fne=b(ag=>{Object.defineProperty(ag,"__esModule",{value:!0});var zMt=U6();function HMt(e,t=[]){return[e,t]}function VMt(e,t){let[r,n]=e;return[r,[...n,t]]}function GMt(e,t){var r=e[1];r.forEach(n=>{var i=n[0].type;t(n,i)})}function pne(e,t){var r=t||new TextEncoder;return r.encode(e)}function WMt(e,t){let[r,n]=e,i=JSON.stringify(r);function a(o){typeof i=="string"?i=typeof o=="string"?i+o:[pne(i,t),o]:i.push(typeof o=="string"?pne(o,t):o)}for(var s of n){let[o,c]=s;a(`
${JSON.stringify(o)}
`),a(typeof c=="string"||c instanceof Uint8Array?c:JSON.stringify(c))}return typeof i=="string"?i:KMt(i)}function KMt(e){var t=e.reduce((a,s)=>a+s.length,0),r=new Uint8Array(t);let n=0;for(var i of e)r.set(i,n),n+=i.length;return r}function YMt(e,t){var r=typeof e.data=="string"?pne(e.data,t):e.data;return[zMt.dropUndefinedKeys({type:"attachment",length:r.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType}),r]}var JMt={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default"};function XMt(e){return JMt[e]}ag.addItemToEnvelope=VMt;ag.createAttachmentEnvelopeItem=YMt;ag.createEnvelope=HMt;ag.envelopeItemTypeToDataCategory=XMt;ag.forEachEnvelopeItem=GMt;ag.serializeEnvelope=WMt});var cRe=b(dne=>{Object.defineProperty(dne,"__esModule",{value:!0});var QMt=fne(),ZMt=lne();function eUt(e,t,r){var n=[{type:"client_report"},{timestamp:r||ZMt.dateTimestampInSeconds(),discarded_events:e}];return QMt.createEnvelope(t?{dsn:t}:{},[n])}dne.createClientReportEnvelope=eUt});var dRe=b(pb=>{Object.defineProperty(pb,"__esModule",{value:!0});var lRe=60*1e3;function pRe(e,t=Date.now()){var r=parseInt(`${e}`,10);if(!isNaN(r))return r*1e3;var n=Date.parse(`${e}`);return isNaN(n)?lRe:n-t}function fRe(e,t){return e[t]||e.all||0}function tUt(e,t,r=Date.now()){return fRe(e,t)>r}function rUt(e,{statusCode:t,headers:r},n=Date.now()){var i={...e},a=r&&r["x-sentry-rate-limits"],s=r&&r["retry-after"];if(a)for(var o of a.trim().split(",")){let[d,h]=o.split(":",2);var c=parseInt(d,10),p=(isNaN(c)?60:c)*1e3;if(!h)i.all=n+p;else for(var f of h.split(";"))i[f]=n+p}else s?i.all=n+pRe(s,n):t===429&&(i.all=n+60*1e3);return i}pb.DEFAULT_RETRY_AFTER=lRe;pb.disabledUntil=fRe;pb.isRateLimited=tUt;pb.parseRetryAfterHeader=pRe;pb.updateRateLimits=rUt});var _Re=b(cu=>{Object.defineProperty(cu,"__esModule",{value:!0});var nUt=$S(),iUt="baggage",hRe="sentry-",mRe=/^sentry-/,gRe=8192;function vRe(e,t=""){return[{...e},t]}function aUt(e,t){return e[0][t]}function sUt(e,t,r){e[0][t]=r}function yRe(e){return Object.keys(e[0]).length===0}function oUt(e){var t=hne(e);return yRe(e)&&(t==null||t.length===0)}function uUt(e){return e[0]}function hne(e){return e[1]}function bRe(e){return Object.keys(e[0]).reduce((t,r)=>{var n=e[0][r],i=`${hRe}${encodeURIComponent(r)}=${encodeURIComponent(n)}`,a=t===""?i:`${t},${i}`;return a.length>gRe?((typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__)&&nUt.logger.warn(`Not adding key: ${r} with val: ${n} to baggage due to exceeding baggage size limits.`),t):a},e[1])}function wRe(e){return e.split(",").reduce(([t,r],n)=>{let[i,a]=n.split("=");if(mRe.test(i)){var s=decodeURIComponent(i.split("-")[1]);return[{...t,[s]:decodeURIComponent(a)},r]}else return[t,r===""?n:`${r},${n}`]},[{},""])}function cUt(e,t){if(!e&&!t)return"";var r=t&&wRe(t)||void 0,n=r&&hne(r),i=vRe(e&&e[0]||{},n||e&&e[1]||"");return bRe(i)}cu.BAGGAGE_HEADER_NAME=iUt;cu.MAX_BAGGAGE_STRING_LENGTH=gRe;cu.SENTRY_BAGGAGE_KEY_PREFIX=hRe;cu.SENTRY_BAGGAGE_KEY_PREFIX_REGEX=mRe;cu.createBaggage=vRe;cu.getBaggageValue=aUt;cu.getSentryBaggageItems=uUt;cu.getThirdPartyBaggage=hne;cu.isBaggageEmpty=oUt;cu.isSentryBaggageEmpty=yRe;cu.mergeAndSerializeBaggage=cUt;cu.parseBaggageString=wRe;cu.serializeBaggage=bRe;cu.setBaggageValue=sUt});var sg=b(ft=>{Object.defineProperty(ft,"__esModule",{value:!0});var xRe=Ure(),mne=SIe(),lUt=GI(),ERe=ng(),pUt=$Ie(),Ec=ig(),gne=$S(),fUt=rne(),s1=MIe(),vne=UI(),yne=VIe(),o1=U6(),fb=XIe(),dUt=QIe(),bne=tRe(),nR=YI(),VS=KI(),u1=Jre(),wne=sne(),H6=lne(),SRe=uRe(),hUt=Mre(),V6=fne(),mUt=cRe(),GS=dRe(),Sc=_Re();ft.getLocationHref=xRe.getLocationHref;ft.htmlTreeAsString=xRe.htmlTreeAsString;ft.dsnToString=mne.dsnToString;ft.extensionRelayDSN=mne.extensionRelayDSN;ft.makeDsn=mne.makeDsn;ft.SentryError=lUt.SentryError;ft.getGlobalObject=ERe.getGlobalObject;ft.getGlobalSingleton=ERe.getGlobalSingleton;ft.addInstrumentationHandler=pUt.addInstrumentationHandler;ft.isDOMError=Ec.isDOMError;ft.isDOMException=Ec.isDOMException;ft.isElement=Ec.isElement;ft.isError=Ec.isError;ft.isErrorEvent=Ec.isErrorEvent;ft.isEvent=Ec.isEvent;ft.isInstanceOf=Ec.isInstanceOf;ft.isNaN=Ec.isNaN;ft.isPlainObject=Ec.isPlainObject;ft.isPrimitive=Ec.isPrimitive;ft.isRegExp=Ec.isRegExp;ft.isString=Ec.isString;ft.isSyntheticEvent=Ec.isSyntheticEvent;ft.isThenable=Ec.isThenable;ft.CONSOLE_LEVELS=gne.CONSOLE_LEVELS;ft.consoleSandbox=gne.consoleSandbox;Object.defineProperty(ft,"logger",{enumerable:!0,get:()=>gne.logger});ft.memoBuilder=fUt.memoBuilder;ft.addContextToFrame=s1.addContextToFrame;ft.addExceptionMechanism=s1.addExceptionMechanism;ft.addExceptionTypeValue=s1.addExceptionTypeValue;ft.checkOrSetAlreadyCaught=s1.checkOrSetAlreadyCaught;ft.getEventDescription=s1.getEventDescription;ft.parseSemver=s1.parseSemver;ft.parseUrl=s1.parseUrl;ft.stripUrlQueryAndFragment=s1.stripUrlQueryAndFragment;ft.uuid4=s1.uuid4;ft.dynamicRequire=vne.dynamicRequire;ft.isNodeEnv=vne.isNodeEnv;ft.loadModule=vne.loadModule;ft.normalize=yne.normalize;ft.normalizeToSize=yne.normalizeToSize;ft.walk=yne.walk;ft.addNonEnumerableProperty=o1.addNonEnumerableProperty;ft.convertToPlainObject=o1.convertToPlainObject;ft.dropUndefinedKeys=o1.dropUndefinedKeys;ft.extractExceptionKeysForMessage=o1.extractExceptionKeysForMessage;ft.fill=o1.fill;ft.getOriginalFunction=o1.getOriginalFunction;ft.markFunctionWrapped=o1.markFunctionWrapped;ft.objectify=o1.objectify;ft.urlEncode=o1.urlEncode;ft.basename=fb.basename;ft.dirname=fb.dirname;ft.isAbsolute=fb.isAbsolute;ft.join=fb.join;ft.normalizePath=fb.normalizePath;ft.relative=fb.relative;ft.resolve=fb.resolve;ft.makePromiseBuffer=dUt.makePromiseBuffer;ft.severityFromString=bne.severityFromString;ft.severityLevelFromString=bne.severityLevelFromString;ft.validSeverityLevels=bne.validSeverityLevels;ft.createStackParser=nR.createStackParser;ft.getFunctionName=nR.getFunctionName;ft.stackParserFromStackParserOptions=nR.stackParserFromStackParserOptions;ft.stripSentryFramesAndReverse=nR.stripSentryFramesAndReverse;ft.escapeStringForRegex=VS.escapeStringForRegex;ft.isMatchingPattern=VS.isMatchingPattern;ft.safeJoin=VS.safeJoin;ft.snipLine=VS.snipLine;ft.truncate=VS.truncate;ft.isNativeFetch=u1.isNativeFetch;ft.supportsDOMError=u1.supportsDOMError;ft.supportsDOMException=u1.supportsDOMException;ft.supportsErrorEvent=u1.supportsErrorEvent;ft.supportsFetch=u1.supportsFetch;ft.supportsHistory=u1.supportsHistory;ft.supportsNativeFetch=u1.supportsNativeFetch;ft.supportsReferrerPolicy=u1.supportsReferrerPolicy;ft.supportsReportingObserver=u1.supportsReportingObserver;ft.SyncPromise=wne.SyncPromise;ft.rejectedSyncPromise=wne.rejectedSyncPromise;ft.resolvedSyncPromise=wne.resolvedSyncPromise;Object.defineProperty(ft,"_browserPerformanceTimeOriginMode",{enumerable:!0,get:()=>H6._browserPerformanceTimeOriginMode});ft.browserPerformanceTimeOrigin=H6.browserPerformanceTimeOrigin;ft.dateTimestampInSeconds=H6.dateTimestampInSeconds;ft.timestampInSeconds=H6.timestampInSeconds;ft.timestampWithMs=H6.timestampWithMs;ft.usingPerformanceAPI=H6.usingPerformanceAPI;ft.TRACEPARENT_REGEXP=SRe.TRACEPARENT_REGEXP;ft.extractTraceparentData=SRe.extractTraceparentData;ft.isBrowserBundle=hUt.isBrowserBundle;ft.addItemToEnvelope=V6.addItemToEnvelope;ft.createAttachmentEnvelopeItem=V6.createAttachmentEnvelopeItem;ft.createEnvelope=V6.createEnvelope;ft.envelopeItemTypeToDataCategory=V6.envelopeItemTypeToDataCategory;ft.forEachEnvelopeItem=V6.forEachEnvelopeItem;ft.serializeEnvelope=V6.serializeEnvelope;ft.createClientReportEnvelope=mUt.createClientReportEnvelope;ft.DEFAULT_RETRY_AFTER=GS.DEFAULT_RETRY_AFTER;ft.disabledUntil=GS.disabledUntil;ft.isRateLimited=GS.isRateLimited;ft.parseRetryAfterHeader=GS.parseRetryAfterHeader;ft.updateRateLimits=GS.updateRateLimits;ft.BAGGAGE_HEADER_NAME=Sc.BAGGAGE_HEADER_NAME;ft.MAX_BAGGAGE_STRING_LENGTH=Sc.MAX_BAGGAGE_STRING_LENGTH;ft.SENTRY_BAGGAGE_KEY_PREFIX=Sc.SENTRY_BAGGAGE_KEY_PREFIX;ft.SENTRY_BAGGAGE_KEY_PREFIX_REGEX=Sc.SENTRY_BAGGAGE_KEY_PREFIX_REGEX;ft.createBaggage=Sc.createBaggage;ft.getBaggageValue=Sc.getBaggageValue;ft.getSentryBaggageItems=Sc.getSentryBaggageItems;ft.getThirdPartyBaggage=Sc.getThirdPartyBaggage;ft.isBaggageEmpty=Sc.isBaggageEmpty;ft.isSentryBaggageEmpty=Sc.isSentryBaggageEmpty;ft.mergeAndSerializeBaggage=Sc.mergeAndSerializeBaggage;ft.parseBaggageString=Sc.parseBaggageString;ft.serializeBaggage=Sc.serializeBaggage;ft.setBaggageValue=Sc.setBaggageValue});var kRe=b(_ne=>{Object.defineProperty(_ne,"__esModule",{value:!0});var G6=sg(),iR=G6.getGlobalObject(),aR=class e{static __initStatic(){this.id="CaptureConsole"}__init(){this.name=e.id}__init2(){this._levels=G6.CONSOLE_LEVELS}constructor(t={}){e.prototype.__init.call(this),e.prototype.__init2.call(this),t.levels&&(this._levels=t.levels)}setupOnce(t,r){"console"in iR&&this._levels.forEach(n=>{n in iR.console&&G6.fill(iR.console,n,i=>(...a)=>{var s=r();s.getIntegration(e)&&s.withScope(o=>{o.setLevel(G6.severityLevelFromString(n)),o.setExtra("arguments",a),o.addEventProcessor(p=>(p.logger="console",p));let c=G6.safeJoin(a," ");n==="assert"?a[0]===!1&&(c=`Assertion failed: ${G6.safeJoin(a.slice(1)," ")||"console.assert"}`,o.setExtra("arguments",a.slice(1)),s.captureMessage(c)):n==="error"&&a[0]instanceof Error?s.captureException(a[0]):s.captureMessage(c)}),i&&i.apply(iR.console,a)})})}};aR.__initStatic();_ne.CaptureConsole=aR});var ARe=b(xne=>{Object.defineProperty(xne,"__esModule",{value:!0});var gUt=sg(),sR=class e{static __initStatic(){this.id="Debug"}__init(){this.name=e.id}constructor(t){e.prototype.__init.call(this),this._options={debugger:!1,stringify:!1,...t}}setupOnce(t,r){t((n,i)=>{var a=r().getIntegration(e);if(a){if(a._options.debugger)debugger;gUt.consoleSandbox(()=>{a._options.stringify?(console.log(JSON.stringify(n,null,2)),Object.keys(i).length&&console.log(JSON.stringify(i,null,2))):(console.log(n),Object.keys(i).length&&console.log(i))})}return n})}};sR.__initStatic();xne.Debug=sR});var IRe=b(uR=>{Object.defineProperty(uR,"__esModule",{value:!0});var vUt=sg(),oR=class e{constructor(){e.prototype.__init.call(this)}static __initStatic(){this.id="Dedupe"}__init(){this.name=e.id}setupOnce(t,r){var n=i=>{var a=r().getIntegration(e);if(a){try{if(DRe(i,a._previousEvent))return(typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__)&&vUt.logger.warn("Event dropped due to being a duplicate of previously captured event."),null}catch{return a._previousEvent=i}return a._previousEvent=i}return i};n.id=this.name,t(n)}};oR.__initStatic();function DRe(e,t){return t?!!(yUt(e,t)||bUt(e,t)):!1}function yUt(e,t){var r=e.message,n=t.message;return!(!r&&!n||r&&!n||!r&&n||r!==n||!PRe(e,t)||!CRe(e,t))}function bUt(e,t){var r=TRe(t),n=TRe(e);return!(!r||!n||r.type!==n.type||r.value!==n.value||!PRe(e,t)||!CRe(e,t))}function CRe(e,t){let r=ORe(e),n=ORe(t);if(!r&&!n)return!0;if(r&&!n||!r&&n||(r=r,n=n,n.length!==r.length))return!1;for(let s=0;s<n.length;s++){var i=n[s],a=r[s];if(i.filename!==a.filename||i.lineno!==a.lineno||i.colno!==a.colno||i.function!==a.function)return!1}return!0}function PRe(e,t){let r=e.fingerprint,n=t.fingerprint;if(!r&&!n)return!0;if(r&&!n||!r&&n)return!1;r=r,n=n;try{return r.join("")===n.join("")}catch{return!1}}function TRe(e){return e.exception&&e.exception.values&&e.exception.values[0]}function ORe(e){var t=e.exception;if(t)try{return t.values[0].stacktrace.frames}catch{return}}uR.Dedupe=oR;uR._shouldDropEvent=DRe});var RRe=b(Ene=>{Object.defineProperty(Ene,"__esModule",{value:!0});var db=sg(),cR=class e{static __initStatic(){this.id="ExtraErrorData"}__init(){this.name=e.id}constructor(t){e.prototype.__init.call(this),this._options={depth:3,...t}}setupOnce(t,r){t((n,i)=>{var a=r().getIntegration(e);return a?a.enhanceEventWithErrorData(n,i):n})}enhanceEventWithErrorData(t,r={}){if(!r.originalException||!db.isError(r.originalException))return t;var n=r.originalException.name||r.originalException.constructor.name,i=this._extractErrorData(r.originalException);if(i){var a={...t.contexts},s=db.normalize(i,this._options.depth);return db.isPlainObject(s)&&(db.addNonEnumerableProperty(s,"__sentry_skip_normalization__",!0),a[n]=s),{...t,contexts:a}}return t}_extractErrorData(t){try{var r=["name","message","stack","line","column","fileName","lineNumber","columnNumber","toJSON"],n={};for(var i of Object.keys(t))if(r.indexOf(i)===-1){var a=t[i];n[i]=db.isError(a)?a.toString():a}if(typeof t.toJSON=="function"){var s=t.toJSON();for(var i of Object.keys(s)){var a=s[i];n[i]=db.isError(a)?a.toString():a}}return n}catch(o){(typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__)&&db.logger.error("Unable to extract extra data from the Error object:",o)}return null}};cR.__initStatic();Ene.ExtraErrorData=cR});var jRe=b((FRe,Sne)=>{(function(e){if(typeof FRe=="object"&&typeof Sne<"u")Sne.exports=e();else if(typeof define=="function"&&define.amd)define([],e);else{var t;typeof window<"u"?t=window:typeof global<"u"?t=global:typeof self<"u"?t=self:t=this,t.localforage=e()}})(function(){var e,t,r;return function n(i,a,s){function o(f,d){if(!a[f]){if(!i[f]){var h=typeof require=="function"&&require;if(!d&&h)return h(f,!0);if(c)return c(f,!0);var g=new Error("Cannot find module '"+f+"'");throw g.code="MODULE_NOT_FOUND",g}var v=a[f]={exports:{}};i[f][0].call(v.exports,function(y){var _=i[f][1][y];return o(_||y)},v,v.exports,n,i,a,s)}return a[f].exports}for(var c=typeof require=="function"&&require,p=0;p<s.length;p++)o(s[p]);return o}({1:[function(n,i,a){(function(s){"use strict";var o=s.MutationObserver||s.WebKitMutationObserver,c;if(o){var p=0,f=new o(y),d=s.document.createTextNode("");f.observe(d,{characterData:!0}),c=function(){d.data=p=++p%2}}else if(!s.setImmediate&&typeof s.MessageChannel<"u"){var h=new s.MessageChannel;h.port1.onmessage=y,c=function(){h.port2.postMessage(0)}}else"document"in s&&"onreadystatechange"in s.document.createElement("script")?c=function(){var x=s.document.createElement("script");x.onreadystatechange=function(){y(),x.onreadystatechange=null,x.parentNode.removeChild(x),x=null},s.document.documentElement.appendChild(x)}:c=function(){setTimeout(y,0)};var g,v=[];function y(){g=!0;for(var x,A,D=v.length;D;){for(A=v,v=[],x=-1;++x<D;)A[x]();D=v.length}g=!1}i.exports=_;function _(x){v.push(x)===1&&!g&&c()}}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{}],2:[function(n,i,a){"use strict";var s=n(1);function o(){}var c={},p=["REJECTED"],f=["FULFILLED"],d=["PENDING"];i.exports=h;function h(F){if(typeof F!="function")throw new TypeError("resolver must be a function");this.state=d,this.queue=[],this.outcome=void 0,F!==o&&_(this,F)}h.prototype.catch=function(F){return this.then(null,F)},h.prototype.then=function(F,z){if(typeof F!="function"&&this.state===f||typeof z!="function"&&this.state===p)return this;var P=new this.constructor(o);if(this.state!==d){var M=this.state===f?F:z;v(P,M,this.outcome)}else this.queue.push(new g(P,F,z));return P};function g(F,z,P){this.promise=F,typeof z=="function"&&(this.onFulfilled=z,this.callFulfilled=this.otherCallFulfilled),typeof P=="function"&&(this.onRejected=P,this.callRejected=this.otherCallRejected)}g.prototype.callFulfilled=function(F){c.resolve(this.promise,F)},g.prototype.otherCallFulfilled=function(F){v(this.promise,this.onFulfilled,F)},g.prototype.callRejected=function(F){c.reject(this.promise,F)},g.prototype.otherCallRejected=function(F){v(this.promise,this.onRejected,F)};function v(F,z,P){s(function(){var M;try{M=z(P)}catch(K){return c.reject(F,K)}M===F?c.reject(F,new TypeError("Cannot resolve promise with itself")):c.resolve(F,M)})}c.resolve=function(F,z){var P=x(y,z);if(P.status==="error")return c.reject(F,P.value);var M=P.value;if(M)_(F,M);else{F.state=f,F.outcome=z;for(var K=-1,L=F.queue.length;++K<L;)F.queue[K].callFulfilled(z)}return F},c.reject=function(F,z){F.state=p,F.outcome=z;for(var P=-1,M=F.queue.length;++P<M;)F.queue[P].callRejected(z);return F};function y(F){var z=F&&F.then;if(F&&(typeof F=="object"||typeof F=="function")&&typeof z=="function")return function(){z.apply(F,arguments)}}function _(F,z){var P=!1;function M(U){P||(P=!0,c.reject(F,U))}function K(U){P||(P=!0,c.resolve(F,U))}function L(){z(K,M)}var ve=x(L);ve.status==="error"&&M(ve.value)}function x(F,z){var P={};try{P.value=F(z),P.status="success"}catch(M){P.status="error",P.value=M}return P}h.resolve=A;function A(F){return F instanceof this?F:c.resolve(new this(o),F)}h.reject=D;function D(F){var z=new this(o);return c.reject(z,F)}h.all=j;function j(F){var z=this;if(Object.prototype.toString.call(F)!=="[object Array]")return this.reject(new TypeError("must be an array"));var P=F.length,M=!1;if(!P)return this.resolve([]);for(var K=new Array(P),L=0,ve=-1,U=new this(o);++ve<P;)N(F[ve],ve);return U;function N(re,ue){z.resolve(re).then(Q,function(ne){M||(M=!0,c.reject(U,ne))});function Q(ne){K[ue]=ne,++L===P&&!M&&(M=!0,c.resolve(U,K))}}}h.race=H;function H(F){var z=this;if(Object.prototype.toString.call(F)!=="[object Array]")return this.reject(new TypeError("must be an array"));var P=F.length,M=!1;if(!P)return this.resolve([]);for(var K=-1,L=new this(o);++K<P;)ve(F[K]);return L;function ve(U){z.resolve(U).then(function(N){M||(M=!0,c.resolve(L,N))},function(N){M||(M=!0,c.reject(L,N))})}}},{1:1}],3:[function(n,i,a){(function(s){"use strict";typeof s.Promise!="function"&&(s.Promise=n(2))}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{2:2}],4:[function(n,i,a){"use strict";var s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Z){return typeof Z}:function(Z){return Z&&typeof Symbol=="function"&&Z.constructor===Symbol&&Z!==Symbol.prototype?"symbol":typeof Z};function o(Z,we){if(!(Z instanceof we))throw new TypeError("Cannot call a class as a function")}function c(){try{if(typeof indexedDB<"u")return indexedDB;if(typeof webkitIndexedDB<"u")return webkitIndexedDB;if(typeof mozIndexedDB<"u")return mozIndexedDB;if(typeof OIndexedDB<"u")return OIndexedDB;if(typeof msIndexedDB<"u")return msIndexedDB}catch{return}}var p=c();function f(){try{if(!p||!p.open)return!1;var Z=typeof openDatabase<"u"&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),we=typeof fetch=="function"&&fetch.toString().indexOf("[native code")!==-1;return(!Z||we)&&typeof indexedDB<"u"&&typeof IDBKeyRange<"u"}catch{return!1}}function d(Z,we){Z=Z||[],we=we||{};try{return new Blob(Z,we)}catch(ee){if(ee.name!=="TypeError")throw ee;for(var he=typeof BlobBuilder<"u"?BlobBuilder:typeof MSBlobBuilder<"u"?MSBlobBuilder:typeof MozBlobBuilder<"u"?MozBlobBuilder:WebKitBlobBuilder,Ae=new he,Re=0;Re<Z.length;Re+=1)Ae.append(Z[Re]);return Ae.getBlob(we.type)}}typeof Promise>"u"&&n(3);var h=Promise;function g(Z,we){we&&Z.then(function(he){we(null,he)},function(he){we(he)})}function v(Z,we,he){typeof we=="function"&&Z.then(we),typeof he=="function"&&Z.catch(he)}function y(Z){return typeof Z!="string"&&(console.warn(Z+" used as a key, but it is not a string."),Z=String(Z)),Z}function _(){if(arguments.length&&typeof arguments[arguments.length-1]=="function")return arguments[arguments.length-1]}var x="local-forage-detect-blob-support",A=void 0,D={},j=Object.prototype.toString,H="readonly",F="readwrite";function z(Z){for(var we=Z.length,he=new ArrayBuffer(we),Ae=new Uint8Array(he),Re=0;Re<we;Re++)Ae[Re]=Z.charCodeAt(Re);return he}function P(Z){return new h(function(we){var he=Z.transaction(x,F),Ae=d([""]);he.objectStore(x).put(Ae,"key"),he.onabort=function(Re){Re.preventDefault(),Re.stopPropagation(),we(!1)},he.oncomplete=function(){var Re=navigator.userAgent.match(/Chrome\/(\d+)/),ee=navigator.userAgent.match(/Edge\//);we(ee||!Re||parseInt(Re[1],10)>=43)}}).catch(function(){return!1})}function M(Z){return typeof A=="boolean"?h.resolve(A):P(Z).then(function(we){return A=we,A})}function K(Z){var we=D[Z.name],he={};he.promise=new h(function(Ae,Re){he.resolve=Ae,he.reject=Re}),we.deferredOperations.push(he),we.dbReady?we.dbReady=we.dbReady.then(function(){return he.promise}):we.dbReady=he.promise}function L(Z){var we=D[Z.name],he=we.deferredOperations.pop();if(he)return he.resolve(),he.promise}function ve(Z,we){var he=D[Z.name],Ae=he.deferredOperations.pop();if(Ae)return Ae.reject(we),Ae.promise}function U(Z,we){return new h(function(he,Ae){if(D[Z.name]=D[Z.name]||V(),Z.db)if(we)K(Z),Z.db.close();else return he(Z.db);var Re=[Z.name];we&&Re.push(Z.version);var ee=p.open.apply(p,Re);we&&(ee.onupgradeneeded=function(ze){var Qe=ee.result;try{Qe.createObjectStore(Z.storeName),ze.oldVersion<=1&&Qe.createObjectStore(x)}catch(Ye){if(Ye.name==="ConstraintError")console.warn('The database "'+Z.name+'" has been upgraded from version '+ze.oldVersion+" to version "+ze.newVersion+', but the storage "'+Z.storeName+'" already exists.');else throw Ye}}),ee.onerror=function(ze){ze.preventDefault(),Ae(ee.error)},ee.onsuccess=function(){he(ee.result),L(Z)}})}function N(Z){return U(Z,!1)}function re(Z){return U(Z,!0)}function ue(Z,we){if(!Z.db)return!0;var he=!Z.db.objectStoreNames.contains(Z.storeName),Ae=Z.version<Z.db.version,Re=Z.version>Z.db.version;if(Ae&&(Z.version!==we&&console.warn('The database "'+Z.name+`" can't be downgraded from version `+Z.db.version+" to version "+Z.version+"."),Z.version=Z.db.version),Re||he){if(he){var ee=Z.db.version+1;ee>Z.version&&(Z.version=ee)}return!0}return!1}function Q(Z){return new h(function(we,he){var Ae=new FileReader;Ae.onerror=he,Ae.onloadend=function(Re){var ee=btoa(Re.target.result||"");we({__local_forage_encoded_blob:!0,data:ee,type:Z.type})},Ae.readAsBinaryString(Z)})}function ne(Z){var we=z(atob(Z.data));return d([we],{type:Z.type})}function G(Z){return Z&&Z.__local_forage_encoded_blob}function de(Z){var we=this,he=we._initReady().then(function(){var Ae=D[we._dbInfo.name];if(Ae&&Ae.dbReady)return Ae.dbReady});return v(he,Z,Z),he}function xe(Z){K(Z);for(var we=D[Z.name],he=we.forages,Ae=0;Ae<he.length;Ae++){var Re=he[Ae];Re._dbInfo.db&&(Re._dbInfo.db.close(),Re._dbInfo.db=null)}return Z.db=null,N(Z).then(function(ee){return Z.db=ee,ue(Z)?re(Z):ee}).then(function(ee){Z.db=we.db=ee;for(var ze=0;ze<he.length;ze++)he[ze]._dbInfo.db=ee}).catch(function(ee){throw ve(Z,ee),ee})}function ge(Z,we,he,Ae){Ae===void 0&&(Ae=1);try{var Re=Z.db.transaction(Z.storeName,we);he(null,Re)}catch(ee){if(Ae>0&&(!Z.db||ee.name==="InvalidStateError"||ee.name==="NotFoundError"))return h.resolve().then(function(){if(!Z.db||ee.name==="NotFoundError"&&!Z.db.objectStoreNames.contains(Z.storeName)&&Z.version<=Z.db.version)return Z.db&&(Z.version=Z.db.version+1),re(Z)}).then(function(){return xe(Z).then(function(){ge(Z,we,he,Ae-1)})}).catch(he);he(ee)}}function V(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function ce(Z){var we=this,he={db:null};if(Z)for(var Ae in Z)he[Ae]=Z[Ae];var Re=D[he.name];Re||(Re=V(),D[he.name]=Re),Re.forages.push(we),we._initReady||(we._initReady=we.ready,we.ready=de);var ee=[];function ze(){return h.resolve()}for(var Qe=0;Qe<Re.forages.length;Qe++){var Ye=Re.forages[Qe];Ye!==we&&ee.push(Ye._initReady().catch(ze))}var et=Re.forages.slice(0);return h.all(ee).then(function(){return he.db=Re.db,N(he)}).then(function(ot){return he.db=ot,ue(he,we._defaultConfig.version)?re(he):ot}).then(function(ot){he.db=Re.db=ot,we._dbInfo=he;for(var vt=0;vt<et.length;vt++){var zt=et[vt];zt!==we&&(zt._dbInfo.db=he.db,zt._dbInfo.version=he.version)}})}function ye(Z,we){var he=this;Z=y(Z);var Ae=new h(function(Re,ee){he.ready().then(function(){ge(he._dbInfo,H,function(ze,Qe){if(ze)return ee(ze);try{var Ye=Qe.objectStore(he._dbInfo.storeName),et=Ye.get(Z);et.onsuccess=function(){var ot=et.result;ot===void 0&&(ot=null),G(ot)&&(ot=ne(ot)),Re(ot)},et.onerror=function(){ee(et.error)}}catch(ot){ee(ot)}})}).catch(ee)});return g(Ae,we),Ae}function R(Z,we){var he=this,Ae=new h(function(Re,ee){he.ready().then(function(){ge(he._dbInfo,H,function(ze,Qe){if(ze)return ee(ze);try{var Ye=Qe.objectStore(he._dbInfo.storeName),et=Ye.openCursor(),ot=1;et.onsuccess=function(){var vt=et.result;if(vt){var zt=vt.value;G(zt)&&(zt=ne(zt));var It=Z(zt,vt.key,ot++);It!==void 0?Re(It):vt.continue()}else Re()},et.onerror=function(){ee(et.error)}}catch(vt){ee(vt)}})}).catch(ee)});return g(Ae,we),Ae}function $(Z,we,he){var Ae=this;Z=y(Z);var Re=new h(function(ee,ze){var Qe;Ae.ready().then(function(){return Qe=Ae._dbInfo,j.call(we)==="[object Blob]"?M(Qe.db).then(function(Ye){return Ye?we:Q(we)}):we}).then(function(Ye){ge(Ae._dbInfo,F,function(et,ot){if(et)return ze(et);try{var vt=ot.objectStore(Ae._dbInfo.storeName);Ye===null&&(Ye=void 0);var zt=vt.put(Ye,Z);ot.oncomplete=function(){Ye===void 0&&(Ye=null),ee(Ye)},ot.onabort=ot.onerror=function(){var It=zt.error?zt.error:zt.transaction.error;ze(It)}}catch(It){ze(It)}})}).catch(ze)});return g(Re,he),Re}function ke(Z,we){var he=this;Z=y(Z);var Ae=new h(function(Re,ee){he.ready().then(function(){ge(he._dbInfo,F,function(ze,Qe){if(ze)return ee(ze);try{var Ye=Qe.objectStore(he._dbInfo.storeName),et=Ye.delete(Z);Qe.oncomplete=function(){Re()},Qe.onerror=function(){ee(et.error)},Qe.onabort=function(){var ot=et.error?et.error:et.transaction.error;ee(ot)}}catch(ot){ee(ot)}})}).catch(ee)});return g(Ae,we),Ae}function S(Z){var we=this,he=new h(function(Ae,Re){we.ready().then(function(){ge(we._dbInfo,F,function(ee,ze){if(ee)return Re(ee);try{var Qe=ze.objectStore(we._dbInfo.storeName),Ye=Qe.clear();ze.oncomplete=function(){Ae()},ze.onabort=ze.onerror=function(){var et=Ye.error?Ye.error:Ye.transaction.error;Re(et)}}catch(et){Re(et)}})}).catch(Re)});return g(he,Z),he}function I(Z){var we=this,he=new h(function(Ae,Re){we.ready().then(function(){ge(we._dbInfo,H,function(ee,ze){if(ee)return Re(ee);try{var Qe=ze.objectStore(we._dbInfo.storeName),Ye=Qe.count();Ye.onsuccess=function(){Ae(Ye.result)},Ye.onerror=function(){Re(Ye.error)}}catch(et){Re(et)}})}).catch(Re)});return g(he,Z),he}function B(Z,we){var he=this,Ae=new h(function(Re,ee){if(Z<0){Re(null);return}he.ready().then(function(){ge(he._dbInfo,H,function(ze,Qe){if(ze)return ee(ze);try{var Ye=Qe.objectStore(he._dbInfo.storeName),et=!1,ot=Ye.openKeyCursor();ot.onsuccess=function(){var vt=ot.result;if(!vt){Re(null);return}Z===0||et?Re(vt.key):(et=!0,vt.advance(Z))},ot.onerror=function(){ee(ot.error)}}catch(vt){ee(vt)}})}).catch(ee)});return g(Ae,we),Ae}function se(Z){var we=this,he=new h(function(Ae,Re){we.ready().then(function(){ge(we._dbInfo,H,function(ee,ze){if(ee)return Re(ee);try{var Qe=ze.objectStore(we._dbInfo.storeName),Ye=Qe.openKeyCursor(),et=[];Ye.onsuccess=function(){var ot=Ye.result;if(!ot){Ae(et);return}et.push(ot.key),ot.continue()},Ye.onerror=function(){Re(Ye.error)}}catch(ot){Re(ot)}})}).catch(Re)});return g(he,Z),he}function ae(Z,we){we=_.apply(this,arguments);var he=this.config();Z=typeof Z!="function"&&Z||{},Z.name||(Z.name=Z.name||he.name,Z.storeName=Z.storeName||he.storeName);var Ae=this,Re;if(!Z.name)Re=h.reject("Invalid arguments");else{var ee=Z.name===he.name&&Ae._dbInfo.db,ze=ee?h.resolve(Ae._dbInfo.db):N(Z).then(function(Qe){var Ye=D[Z.name],et=Ye.forages;Ye.db=Qe;for(var ot=0;ot<et.length;ot++)et[ot]._dbInfo.db=Qe;return Qe});Z.storeName?Re=ze.then(function(Qe){if(Qe.objectStoreNames.contains(Z.storeName)){var Ye=Qe.version+1;K(Z);var et=D[Z.name],ot=et.forages;Qe.close();for(var vt=0;vt<ot.length;vt++){var zt=ot[vt];zt._dbInfo.db=null,zt._dbInfo.version=Ye}var It=new h(function(X,te){var le=p.open(Z.name,Ye);le.onerror=function(Pe){var Ke=le.result;Ke.close(),te(Pe)},le.onupgradeneeded=function(){var Pe=le.result;Pe.deleteObjectStore(Z.storeName)},le.onsuccess=function(){var Pe=le.result;Pe.close(),X(Pe)}});return It.then(function(X){et.db=X;for(var te=0;te<ot.length;te++){var le=ot[te];le._dbInfo.db=X,L(le._dbInfo)}}).catch(function(X){throw(ve(Z,X)||h.resolve()).catch(function(){}),X})}}):Re=ze.then(function(Qe){K(Z);var Ye=D[Z.name],et=Ye.forages;Qe.close();for(var ot=0;ot<et.length;ot++){var vt=et[ot];vt._dbInfo.db=null}var zt=new h(function(It,X){var te=p.deleteDatabase(Z.name);te.onerror=te.onblocked=function(le){var Pe=te.result;Pe&&Pe.close(),X(le)},te.onsuccess=function(){var le=te.result;le&&le.close(),It(le)}});return zt.then(function(It){Ye.db=It;for(var X=0;X<et.length;X++){var te=et[X];L(te._dbInfo)}}).catch(function(It){throw(ve(Z,It)||h.resolve()).catch(function(){}),It})})}return g(Re,we),Re}var me={_driver:"asyncStorage",_initStorage:ce,_support:f(),iterate:R,getItem:ye,setItem:$,removeItem:ke,clear:S,length:I,key:B,keys:se,dropInstance:ae};function Se(){return typeof openDatabase=="function"}var Ee="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",De="~~local_forage_type~",Le=/^~~local_forage_type~([^~]+)~/,Ne="__lfsc__:",Ve=Ne.length,kt="arbf",Ft="blob",rr="si08",Or="ui08",kr="uic8",dr="si16",$t="si32",$e="ur16",Ue="ui32",ct="fl32",ut="fl64",Dt=Ve+kt.length,Zt=Object.prototype.toString;function hr(Z){var we=Z.length*.75,he=Z.length,Ae,Re=0,ee,ze,Qe,Ye;Z[Z.length-1]==="="&&(we--,Z[Z.length-2]==="="&&we--);var et=new ArrayBuffer(we),ot=new Uint8Array(et);for(Ae=0;Ae<he;Ae+=4)ee=Ee.indexOf(Z[Ae]),ze=Ee.indexOf(Z[Ae+1]),Qe=Ee.indexOf(Z[Ae+2]),Ye=Ee.indexOf(Z[Ae+3]),ot[Re++]=ee<<2|ze>>4,ot[Re++]=(ze&15)<<4|Qe>>2,ot[Re++]=(Qe&3)<<6|Ye&63;return et}function Bt(Z){var we=new Uint8Array(Z),he="",Ae;for(Ae=0;Ae<we.length;Ae+=3)he+=Ee[we[Ae]>>2],he+=Ee[(we[Ae]&3)<<4|we[Ae+1]>>4],he+=Ee[(we[Ae+1]&15)<<2|we[Ae+2]>>6],he+=Ee[we[Ae+2]&63];return we.length%3===2?he=he.substring(0,he.length-1)+"=":we.length%3===1&&(he=he.substring(0,he.length-2)+"=="),he}function pr(Z,we){var he="";if(Z&&(he=Zt.call(Z)),Z&&(he==="[object ArrayBuffer]"||Z.buffer&&Zt.call(Z.buffer)==="[object ArrayBuffer]")){var Ae,Re=Ne;Z instanceof ArrayBuffer?(Ae=Z,Re+=kt):(Ae=Z.buffer,he==="[object Int8Array]"?Re+=rr:he==="[object Uint8Array]"?Re+=Or:he==="[object Uint8ClampedArray]"?Re+=kr:he==="[object Int16Array]"?Re+=dr:he==="[object Uint16Array]"?Re+=$e:he==="[object Int32Array]"?Re+=$t:he==="[object Uint32Array]"?Re+=Ue:he==="[object Float32Array]"?Re+=ct:he==="[object Float64Array]"?Re+=ut:we(new Error("Failed to get type for BinaryArray"))),we(Re+Bt(Ae))}else if(he==="[object Blob]"){var ee=new FileReader;ee.onload=function(){var ze=De+Z.type+"~"+Bt(this.result);we(Ne+Ft+ze)},ee.readAsArrayBuffer(Z)}else try{we(JSON.stringify(Z))}catch(ze){console.error("Couldn't convert value into a JSON string: ",Z),we(null,ze)}}function wn(Z){if(Z.substring(0,Ve)!==Ne)return JSON.parse(Z);var we=Z.substring(Dt),he=Z.substring(Ve,Dt),Ae;if(he===Ft&&Le.test(we)){var Re=we.match(Le);Ae=Re[1],we=we.substring(Re[0].length)}var ee=hr(we);switch(he){case kt:return ee;case Ft:return d([ee],{type:Ae});case rr:return new Int8Array(ee);case Or:return new Uint8Array(ee);case kr:return new Uint8ClampedArray(ee);case dr:return new Int16Array(ee);case $e:return new Uint16Array(ee);case $t:return new Int32Array(ee);case Ue:return new Uint32Array(ee);case ct:return new Float32Array(ee);case ut:return new Float64Array(ee);default:throw new Error("Unkown type: "+he)}}var Ai={serialize:pr,deserialize:wn,stringToBuffer:hr,bufferToString:Bt};function Ui(Z,we,he,Ae){Z.executeSql("CREATE TABLE IF NOT EXISTS "+we.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],he,Ae)}function Xa(Z){var we=this,he={db:null};if(Z)for(var Ae in Z)he[Ae]=typeof Z[Ae]!="string"?Z[Ae].toString():Z[Ae];var Re=new h(function(ee,ze){try{he.db=openDatabase(he.name,String(he.version),he.description,he.size)}catch(Qe){return ze(Qe)}he.db.transaction(function(Qe){Ui(Qe,he,function(){we._dbInfo=he,ee()},function(Ye,et){ze(et)})},ze)});return he.serializer=Ai,Re}function ws(Z,we,he,Ae,Re,ee){Z.executeSql(he,Ae,Re,function(ze,Qe){Qe.code===Qe.SYNTAX_ERR?ze.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[we.storeName],function(Ye,et){et.rows.length?ee(Ye,Qe):Ui(Ye,we,function(){Ye.executeSql(he,Ae,Re,ee)},ee)},ee):ee(ze,Qe)},ee)}function Pl(Z,we){var he=this;Z=y(Z);var Ae=new h(function(Re,ee){he.ready().then(function(){var ze=he._dbInfo;ze.db.transaction(function(Qe){ws(Qe,ze,"SELECT * FROM "+ze.storeName+" WHERE key = ? LIMIT 1",[Z],function(Ye,et){var ot=et.rows.length?et.rows.item(0).value:null;ot&&(ot=ze.serializer.deserialize(ot)),Re(ot)},function(Ye,et){ee(et)})})}).catch(ee)});return g(Ae,we),Ae}function Is(Z,we){var he=this,Ae=new h(function(Re,ee){he.ready().then(function(){var ze=he._dbInfo;ze.db.transaction(function(Qe){ws(Qe,ze,"SELECT * FROM "+ze.storeName,[],function(Ye,et){for(var ot=et.rows,vt=ot.length,zt=0;zt<vt;zt++){var It=ot.item(zt),X=It.value;if(X&&(X=ze.serializer.deserialize(X)),X=Z(X,It.key,zt+1),X!==void 0){Re(X);return}}Re()},function(Ye,et){ee(et)})})}).catch(ee)});return g(Ae,we),Ae}function _s(Z,we,he,Ae){var Re=this;Z=y(Z);var ee=new h(function(ze,Qe){Re.ready().then(function(){we===void 0&&(we=null);var Ye=we,et=Re._dbInfo;et.serializer.serialize(we,function(ot,vt){vt?Qe(vt):et.db.transaction(function(zt){ws(zt,et,"INSERT OR REPLACE INTO "+et.storeName+" (key, value) VALUES (?, ?)",[Z,ot],function(){ze(Ye)},function(It,X){Qe(X)})},function(zt){if(zt.code===zt.QUOTA_ERR){if(Ae>0){ze(_s.apply(Re,[Z,Ye,he,Ae-1]));return}Qe(zt)}})})}).catch(Qe)});return g(ee,he),ee}function Rs(Z,we,he){return _s.apply(this,[Z,we,he,1])}function Yc(Z,we){var he=this;Z=y(Z);var Ae=new h(function(Re,ee){he.ready().then(function(){var ze=he._dbInfo;ze.db.transaction(function(Qe){ws(Qe,ze,"DELETE FROM "+ze.storeName+" WHERE key = ?",[Z],function(){Re()},function(Ye,et){ee(et)})})}).catch(ee)});return g(Ae,we),Ae}function fc(Z){var we=this,he=new h(function(Ae,Re){we.ready().then(function(){var ee=we._dbInfo;ee.db.transaction(function(ze){ws(ze,ee,"DELETE FROM "+ee.storeName,[],function(){Ae()},function(Qe,Ye){Re(Ye)})})}).catch(Re)});return g(he,Z),he}function Il(Z){var we=this,he=new h(function(Ae,Re){we.ready().then(function(){var ee=we._dbInfo;ee.db.transaction(function(ze){ws(ze,ee,"SELECT COUNT(key) as c FROM "+ee.storeName,[],function(Qe,Ye){var et=Ye.rows.item(0).c;Ae(et)},function(Qe,Ye){Re(Ye)})})}).catch(Re)});return g(he,Z),he}function Zo(Z,we){var he=this,Ae=new h(function(Re,ee){he.ready().then(function(){var ze=he._dbInfo;ze.db.transaction(function(Qe){ws(Qe,ze,"SELECT key FROM "+ze.storeName+" WHERE id = ? LIMIT 1",[Z+1],function(Ye,et){var ot=et.rows.length?et.rows.item(0).key:null;Re(ot)},function(Ye,et){ee(et)})})}).catch(ee)});return g(Ae,we),Ae}function Fe(Z){var we=this,he=new h(function(Ae,Re){we.ready().then(function(){var ee=we._dbInfo;ee.db.transaction(function(ze){ws(ze,ee,"SELECT key FROM "+ee.storeName,[],function(Qe,Ye){for(var et=[],ot=0;ot<Ye.rows.length;ot++)et.push(Ye.rows.item(ot).key);Ae(et)},function(Qe,Ye){Re(Ye)})})}).catch(Re)});return g(he,Z),he}function _e(Z){return new h(function(we,he){Z.transaction(function(Ae){Ae.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],function(Re,ee){for(var ze=[],Qe=0;Qe<ee.rows.length;Qe++)ze.push(ee.rows.item(Qe).name);we({db:Z,storeNames:ze})},function(Re,ee){he(ee)})},function(Ae){he(Ae)})})}function O(Z,we){we=_.apply(this,arguments);var he=this.config();Z=typeof Z!="function"&&Z||{},Z.name||(Z.name=Z.name||he.name,Z.storeName=Z.storeName||he.storeName);var Ae=this,Re;return Z.name?Re=new h(function(ee){var ze;Z.name===he.name?ze=Ae._dbInfo.db:ze=openDatabase(Z.name,"","",0),Z.storeName?ee({db:ze,storeNames:[Z.storeName]}):ee(_e(ze))}).then(function(ee){return new h(function(ze,Qe){ee.db.transaction(function(Ye){function et(It){return new h(function(X,te){Ye.executeSql("DROP TABLE IF EXISTS "+It,[],function(){X()},function(le,Pe){te(Pe)})})}for(var ot=[],vt=0,zt=ee.storeNames.length;vt<zt;vt++)ot.push(et(ee.storeNames[vt]));h.all(ot).then(function(){ze()}).catch(function(It){Qe(It)})},function(Ye){Qe(Ye)})})}):Re=h.reject("Invalid arguments"),g(Re,we),Re}var Y={_driver:"webSQLStorage",_initStorage:Xa,_support:Se(),iterate:Is,getItem:Pl,setItem:Rs,removeItem:Yc,clear:fc,length:Il,key:Zo,keys:Fe,dropInstance:O};function W(){try{return typeof localStorage<"u"&&"setItem"in localStorage&&!!localStorage.setItem}catch{return!1}}function k(Z,we){var he=Z.name+"/";return Z.storeName!==we.storeName&&(he+=Z.storeName+"/"),he}function pe(){var Z="_localforage_support_test";try{return localStorage.setItem(Z,!0),localStorage.removeItem(Z),!1}catch{return!0}}function je(){return!pe()||localStorage.length>0}function Be(Z){var we=this,he={};if(Z)for(var Ae in Z)he[Ae]=Z[Ae];return he.keyPrefix=k(Z,we._defaultConfig),je()?(we._dbInfo=he,he.serializer=Ai,h.resolve()):h.reject()}function Je(Z){var we=this,he=we.ready().then(function(){for(var Ae=we._dbInfo.keyPrefix,Re=localStorage.length-1;Re>=0;Re--){var ee=localStorage.key(Re);ee.indexOf(Ae)===0&&localStorage.removeItem(ee)}});return g(he,Z),he}function nt(Z,we){var he=this;Z=y(Z);var Ae=he.ready().then(function(){var Re=he._dbInfo,ee=localStorage.getItem(Re.keyPrefix+Z);return ee&&(ee=Re.serializer.deserialize(ee)),ee});return g(Ae,we),Ae}function St(Z,we){var he=this,Ae=he.ready().then(function(){for(var Re=he._dbInfo,ee=Re.keyPrefix,ze=ee.length,Qe=localStorage.length,Ye=1,et=0;et<Qe;et++){var ot=localStorage.key(et);if(ot.indexOf(ee)===0){var vt=localStorage.getItem(ot);if(vt&&(vt=Re.serializer.deserialize(vt)),vt=Z(vt,ot.substring(ze),Ye++),vt!==void 0)return vt}}});return g(Ae,we),Ae}function _t(Z,we){var he=this,Ae=he.ready().then(function(){var Re=he._dbInfo,ee;try{ee=localStorage.key(Z)}catch{ee=null}return ee&&(ee=ee.substring(Re.keyPrefix.length)),ee});return g(Ae,we),Ae}function or(Z){var we=this,he=we.ready().then(function(){for(var Ae=we._dbInfo,Re=localStorage.length,ee=[],ze=0;ze<Re;ze++){var Qe=localStorage.key(ze);Qe.indexOf(Ae.keyPrefix)===0&&ee.push(Qe.substring(Ae.keyPrefix.length))}return ee});return g(he,Z),he}function gt(Z){var we=this,he=we.keys().then(function(Ae){return Ae.length});return g(he,Z),he}function Ht(Z,we){var he=this;Z=y(Z);var Ae=he.ready().then(function(){var Re=he._dbInfo;localStorage.removeItem(Re.keyPrefix+Z)});return g(Ae,we),Ae}function Nt(Z,we,he){var Ae=this;Z=y(Z);var Re=Ae.ready().then(function(){we===void 0&&(we=null);var ee=we;return new h(function(ze,Qe){var Ye=Ae._dbInfo;Ye.serializer.serialize(we,function(et,ot){if(ot)Qe(ot);else try{localStorage.setItem(Ye.keyPrefix+Z,et),ze(ee)}catch(vt){(vt.name==="QuotaExceededError"||vt.name==="NS_ERROR_DOM_QUOTA_REACHED")&&Qe(vt),Qe(vt)}})})});return g(Re,he),Re}function er(Z,we){if(we=_.apply(this,arguments),Z=typeof Z!="function"&&Z||{},!Z.name){var he=this.config();Z.name=Z.name||he.name,Z.storeName=Z.storeName||he.storeName}var Ae=this,Re;return Z.name?Re=new h(function(ee){Z.storeName?ee(k(Z,Ae._defaultConfig)):ee(Z.name+"/")}).then(function(ee){for(var ze=localStorage.length-1;ze>=0;ze--){var Qe=localStorage.key(ze);Qe.indexOf(ee)===0&&localStorage.removeItem(Qe)}}):Re=h.reject("Invalid arguments"),g(Re,we),Re}var ur={_driver:"localStorageWrapper",_initStorage:Be,_support:W(),iterate:St,getItem:nt,setItem:Nt,removeItem:Ht,clear:Je,length:gt,key:_t,keys:or,dropInstance:er},Jt=function(we,he){return we===he||typeof we=="number"&&typeof he=="number"&&isNaN(we)&&isNaN(he)},Mt=function(we,he){for(var Ae=we.length,Re=0;Re<Ae;){if(Jt(we[Re],he))return!0;Re++}return!1},tr=Array.isArray||function(Z){return Object.prototype.toString.call(Z)==="[object Array]"},Tt={},Vt={},At={INDEXEDDB:me,WEBSQL:Y,LOCALSTORAGE:ur},jt=[At.INDEXEDDB._driver,At.WEBSQL._driver,At.LOCALSTORAGE._driver],Gt=["dropInstance"],bt=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(Gt),Ge={description:"",driver:jt.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function He(Z,we){Z[we]=function(){var he=arguments;return Z.ready().then(function(){return Z[we].apply(Z,he)})}}function lt(){for(var Z=1;Z<arguments.length;Z++){var we=arguments[Z];if(we)for(var he in we)we.hasOwnProperty(he)&&(tr(we[he])?arguments[0][he]=we[he].slice():arguments[0][he]=we[he])}return arguments[0]}var it=function(){function Z(we){o(this,Z);for(var he in At)if(At.hasOwnProperty(he)){var Ae=At[he],Re=Ae._driver;this[he]=Re,Tt[Re]||this.defineDriver(Ae)}this._defaultConfig=lt({},Ge),this._config=lt({},this._defaultConfig,we),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch(function(){})}return Z.prototype.config=function(he){if((typeof he>"u"?"undefined":s(he))==="object"){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var Ae in he){if(Ae==="storeName"&&(he[Ae]=he[Ae].replace(/\W/g,"_")),Ae==="version"&&typeof he[Ae]!="number")return new Error("Database version must be a number.");this._config[Ae]=he[Ae]}return"driver"in he&&he.driver?this.setDriver(this._config.driver):!0}else return typeof he=="string"?this._config[he]:this._config},Z.prototype.defineDriver=function(he,Ae,Re){var ee=new h(function(ze,Qe){try{var Ye=he._driver,et=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!he._driver){Qe(et);return}for(var ot=bt.concat("_initStorage"),vt=0,zt=ot.length;vt<zt;vt++){var It=ot[vt],X=!Mt(Gt,It);if((X||he[It])&&typeof he[It]!="function"){Qe(et);return}}var te=function(){for(var Ke=function(zi){return function(){var Qa=new Error("Method "+zi+" is not implemented by the current driver"),Za=h.reject(Qa);return g(Za,arguments[arguments.length-1]),Za}},st=0,wt=Gt.length;st<wt;st++){var Kt=Gt[st];he[Kt]||(he[Kt]=Ke(Kt))}};te();var le=function(Ke){Tt[Ye]&&console.info("Redefining LocalForage driver: "+Ye),Tt[Ye]=he,Vt[Ye]=Ke,ze()};"_support"in he?he._support&&typeof he._support=="function"?he._support().then(le,Qe):le(!!he._support):le(!0)}catch(Pe){Qe(Pe)}});return v(ee,Ae,Re),ee},Z.prototype.driver=function(){return this._driver||null},Z.prototype.getDriver=function(he,Ae,Re){var ee=Tt[he]?h.resolve(Tt[he]):h.reject(new Error("Driver not found."));return v(ee,Ae,Re),ee},Z.prototype.getSerializer=function(he){var Ae=h.resolve(Ai);return v(Ae,he),Ae},Z.prototype.ready=function(he){var Ae=this,Re=Ae._driverSet.then(function(){return Ae._ready===null&&(Ae._ready=Ae._initDriver()),Ae._ready});return v(Re,he,he),Re},Z.prototype.setDriver=function(he,Ae,Re){var ee=this;tr(he)||(he=[he]);var ze=this._getSupportedDrivers(he);function Qe(){ee._config.driver=ee.driver()}function Ye(vt){return ee._extend(vt),Qe(),ee._ready=ee._initStorage(ee._config),ee._ready}function et(vt){return function(){var zt=0;function It(){for(;zt<vt.length;){var X=vt[zt];return zt++,ee._dbInfo=null,ee._ready=null,ee.getDriver(X).then(Ye).catch(It)}Qe();var te=new Error("No available storage method found.");return ee._driverSet=h.reject(te),ee._driverSet}return It()}}var ot=this._driverSet!==null?this._driverSet.catch(function(){return h.resolve()}):h.resolve();return this._driverSet=ot.then(function(){var vt=ze[0];return ee._dbInfo=null,ee._ready=null,ee.getDriver(vt).then(function(zt){ee._driver=zt._driver,Qe(),ee._wrapLibraryMethodsWithReady(),ee._initDriver=et(ze)})}).catch(function(){Qe();var vt=new Error("No available storage method found.");return ee._driverSet=h.reject(vt),ee._driverSet}),v(this._driverSet,Ae,Re),this._driverSet},Z.prototype.supports=function(he){return!!Vt[he]},Z.prototype._extend=function(he){lt(this,he)},Z.prototype._getSupportedDrivers=function(he){for(var Ae=[],Re=0,ee=he.length;Re<ee;Re++){var ze=he[Re];this.supports(ze)&&Ae.push(ze)}return Ae},Z.prototype._wrapLibraryMethodsWithReady=function(){for(var he=0,Ae=bt.length;he<Ae;he++)He(this,bt[he])},Z.prototype.createInstance=function(he){return new Z(he)},Z}(),Xe=new it;i.exports=Xe},{3:3}]},{},[4])(4)})});var NRe=b(kne=>{Object.defineProperty(kne,"__esModule",{value:!0});var Rd=sg(),wUt=jRe(),lR=class e{static __initStatic(){this.id="Offline"}__init(){this.name=e.id}constructor(t={}){e.prototype.__init.call(this),this.global=Rd.getGlobalObject(),this.maxStoredEvents=t.maxStoredEvents||30,this.offlineEventStore=wUt.default.createInstance({name:"sentry/offlineEventStore"})}setupOnce(t,r){this.hub=r(),"addEventListener"in this.global&&this.global.addEventListener("online",()=>{this._sendEvents().catch(()=>{(typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__)&&Rd.logger.warn("could not send cached events")})});var n=i=>this.hub&&this.hub.getIntegration(e)&&"navigator"in this.global&&"onLine"in this.global.navigator&&!this.global.navigator.onLine?((typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__)&&Rd.logger.log("Event dropped due to being a offline - caching instead"),this._cacheEvent(i).then(a=>this._enforceMaxEvents()).catch(a=>{(typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__)&&Rd.logger.warn("could not cache event while offline")}),null):i;n.id=this.name,t(n),"navigator"in this.global&&"onLine"in this.global.navigator&&this.global.navigator.onLine&&this._sendEvents().catch(()=>{(typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__)&&Rd.logger.warn("could not send cached events")})}async _cacheEvent(t){return this.offlineEventStore.setItem(Rd.uuid4(),Rd.normalize(t))}async _enforceMaxEvents(){var t=[];return this.offlineEventStore.iterate((r,n,i)=>{t.push({cacheKey:n,event:r})}).then(()=>this._purgeEvents(t.sort((r,n)=>(n.event.timestamp||0)-(r.event.timestamp||0)).slice(this.maxStoredEvents<t.length?this.maxStoredEvents:t.length).map(r=>r.cacheKey))).catch(r=>{(typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__)&&Rd.logger.warn("could not enforce max events")})}async _purgeEvent(t){return this.offlineEventStore.removeItem(t)}async _purgeEvents(t){return Promise.all(t.map(r=>this._purgeEvent(r))).then()}async _sendEvents(){return this.offlineEventStore.iterate((t,r,n)=>{this.hub?(this.hub.captureEvent(t),this._purgeEvent(r).catch(i=>{(typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__)&&Rd.logger.warn("could not purge event from cache")})):(typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__)&&Rd.logger.warn("no hub found - could not send cached event")})}};lR.__initStatic();kne.Offline=lR});var LRe=b(Ane=>{Object.defineProperty(Ane,"__esModule",{value:!0});var qRe=sg(),pR=class e{static __initStatic(){this.id="ReportingObserver"}__init(){this.name=e.id}constructor(t={types:["crash","deprecation","intervention"]}){this._options=t,e.prototype.__init.call(this)}setupOnce(t,r){if(qRe.supportsReportingObserver()){this._getCurrentHub=r;var n=new(qRe.getGlobalObject()).ReportingObserver(this.handler.bind(this),{buffered:!0,types:this._options.types});n.observe()}}handler(t){var r=this._getCurrentHub&&this._getCurrentHub();if(!(!r||!r.getIntegration(e)))for(var n of t)r.withScope(i=>{i.setExtra("url",n.url);var a=`ReportingObserver [${n.type}]`;let s="No details available";if(n.body){var o={};for(var c in n.body)o[c]=n.body[c];if(i.setExtra("body",o),n.type==="crash"){var p=n.body;s=[p.crashId||"",p.reason||""].join(" ").trim()||s}else{var p=n.body;s=p.message||s}}r.captureMessage(`${a}: ${s}`)})}};pR.__initStatic();Ane.ReportingObserver=pR});var BRe=b(Tne=>{Object.defineProperty(Tne,"__esModule",{value:!0});var $Re=sg(),fR=class e{static __initStatic(){this.id="RewriteFrames"}__init(){this.name=e.id}__init2(){this._prefix="app:///"}constructor(t={}){e.prototype.__init.call(this),e.prototype.__init2.call(this),e.prototype.__init3.call(this),t.root&&(this._root=t.root),t.prefix&&(this._prefix=t.prefix),t.iteratee&&(this._iteratee=t.iteratee)}setupOnce(t,r){t(n=>{var i=r().getIntegration(e);return i?i.process(n):n})}process(t){let r=t;return t.exception&&Array.isArray(t.exception.values)&&(r=this._processExceptionsEvent(r)),r}__init3(){this._iteratee=t=>{if(!t.filename)return t;var r=/^[A-Z]:\\/.test(t.filename),n=/^\//.test(t.filename);if(r||n){var i=r?t.filename.replace(/^[A-Z]:/,"").replace(/\\/g,"/"):t.filename,a=this._root?$Re.relative(this._root,i):$Re.basename(i);t.filename=`${this._prefix}${a}`}return t}}_processExceptionsEvent(t){try{return{...t,exception:{...t.exception,values:t.exception.values.map(r=>({...r,stacktrace:this._processStacktrace(r.stacktrace)}))}}}catch{return t}}_processStacktrace(t){return{...t,frames:t&&t.frames&&t.frames.map(r=>this._iteratee(r))}}};fR.__initStatic();Tne.RewriteFrames=fR});var MRe=b(One=>{Object.defineProperty(One,"__esModule",{value:!0});var dR=class e{constructor(){e.prototype.__init.call(this),e.prototype.__init2.call(this)}static __initStatic(){this.id="SessionTiming"}__init(){this.name=e.id}__init2(){this._startTime=Date.now()}setupOnce(t,r){t(n=>{var i=r().getIntegration(e);return i?i.process(n):n})}process(t){var r=Date.now();return{...t,extra:{...t.extra,"session:start":this._startTime,"session:duration":r-this._startTime,"session:end":r}}}};dR.__initStatic();One.SessionTiming=dR});var URe=b(Dne=>{Object.defineProperty(Dne,"__esModule",{value:!0});var hR=class e{constructor(){e.prototype.__init.call(this)}static __initStatic(){this.id="Transaction"}__init(){this.name=e.id}setupOnce(t,r){t(n=>{var i=r().getIntegration(e);return i?i.process(n):n})}process(t){var r=this._getFramesFromEvent(t);for(let i=r.length-1;i>=0;i--){var n=r[i];if(n.in_app===!0){t.transaction=this._getTransaction(n);break}}return t}_getFramesFromEvent(t){var r=t.exception&&t.exception.values&&t.exception.values[0];return r&&r.stacktrace&&r.stacktrace.frames||[]}_getTransaction(t){return t.module||t.function?`${t.module||"?"}/${t.function||"?"}`:"<unknown>"}};hR.__initStatic();Dne.Transaction=hR});var zRe=b(mf=>{Object.defineProperty(mf,"__esModule",{value:!0});var _Ut=kRe(),xUt=ARe(),EUt=IRe(),SUt=RRe(),kUt=NRe(),AUt=LRe(),TUt=BRe(),OUt=MRe(),DUt=URe();mf.CaptureConsole=_Ut.CaptureConsole;mf.Debug=xUt.Debug;mf.Dedupe=EUt.Dedupe;mf.ExtraErrorData=SUt.ExtraErrorData;mf.Offline=kUt.Offline;mf.ReportingObserver=AUt.ReportingObserver;mf.RewriteFrames=TUt.RewriteFrames;mf.SessionTiming=OUt.SessionTiming;mf.Transaction=DUt.Transaction});var WRe=b((Azr,GRe)=>{"use strict";var PUt=function(t){return IUt(t)&&!RUt(t)};function IUt(e){return!!e&&typeof e=="object"}function RUt(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||NUt(e)}var FUt=typeof Symbol=="function"&&Symbol.for,jUt=FUt?Symbol.for("react.element"):60103;function NUt(e){return e.$$typeof===jUt}function qUt(e){return Array.isArray(e)?[]:{}}function YS(e,t){return t.clone!==!1&&t.isMergeableObject(e)?W6(qUt(e),e,t):e}function LUt(e,t,r){return e.concat(t).map(function(n){return YS(n,r)})}function $Ut(e,t){if(!t.customMerge)return W6;var r=t.customMerge(e);return typeof r=="function"?r:W6}function BUt(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return e.propertyIsEnumerable(t)}):[]}function HRe(e){return Object.keys(e).concat(BUt(e))}function VRe(e,t){try{return t in e}catch{return!1}}function MUt(e,t){return VRe(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function UUt(e,t,r){var n={};return r.isMergeableObject(e)&&HRe(e).forEach(function(i){n[i]=YS(e[i],r)}),HRe(t).forEach(function(i){MUt(e,i)||(VRe(e,i)&&r.isMergeableObject(t[i])?n[i]=$Ut(i,r)(e[i],t[i],r):n[i]=YS(t[i],r))}),n}function W6(e,t,r){r=r||{},r.arrayMerge=r.arrayMerge||LUt,r.isMergeableObject=r.isMergeableObject||PUt,r.cloneUnlessOtherwiseSpecified=YS;var n=Array.isArray(t),i=Array.isArray(e),a=n===i;return a?n?r.arrayMerge(e,t,r):UUt(e,t,r):YS(t,r)}W6.all=function(t,r){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(n,i){return W6(n,i,r)},{})};var zUt=W6;GRe.exports=zUt});var No={};g2(No,{__assign:()=>Pne,__asyncDelegator:()=>nzt,__asyncGenerator:()=>rzt,__asyncValues:()=>izt,__await:()=>JS,__awaiter:()=>JUt,__classPrivateFieldGet:()=>uzt,__classPrivateFieldSet:()=>czt,__createBinding:()=>QUt,__decorate:()=>WUt,__exportStar:()=>ZUt,__extends:()=>VUt,__generator:()=>XUt,__importDefault:()=>ozt,__importStar:()=>szt,__makeTemplateObject:()=>azt,__metadata:()=>YUt,__param:()=>KUt,__read:()=>YRe,__rest:()=>GUt,__spread:()=>ezt,__spreadArrays:()=>tzt,__values:()=>Ine});function VUt(e,t){Cne(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}function GUt(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]]);return r}function WUt(e,t,r,n){var i=arguments.length,a=i<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,r):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(e,t,r,n);else for(var o=e.length-1;o>=0;o--)(s=e[o])&&(a=(i<3?s(a):i>3?s(t,r,a):s(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a}function KUt(e,t){return function(r,n){t(r,n,e)}}function YUt(e,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(e,t)}function JUt(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{p(n.next(f))}catch(d){s(d)}}function c(f){try{p(n.throw(f))}catch(d){s(d)}}function p(f){f.done?a(f.value):i(f.value).then(o,c)}p((n=n.apply(e,t||[])).next())})}function XUt(e,t){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(p){return function(f){return c([p,f])}}function c(p){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(a=p[0]&2?i.return:p[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,p[1])).done)return a;switch(i=0,a&&(p=[p[0]&2,a.value]),p[0]){case 0:case 1:a=p;break;case 4:return r.label++,{value:p[1],done:!1};case 5:r.label++,i=p[1],p=[0];continue;case 7:p=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(p[0]===6||p[0]===2)){r=0;continue}if(p[0]===3&&(!a||p[1]>a[0]&&p[1]<a[3])){r.label=p[1];break}if(p[0]===6&&r.label<a[1]){r.label=a[1],a=p;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(p);break}a[2]&&r.ops.pop(),r.trys.pop();continue}p=t.call(e,r)}catch(f){p=[6,f],i=0}finally{n=a=0}if(p[0]&5)throw p[1];return{value:p[0]?p[1]:void 0,done:!0}}}function QUt(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}function ZUt(e,t){for(var r in e)r!=="default"&&!t.hasOwnProperty(r)&&(t[r]=e[r])}function Ine(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function YRe(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),i,a=[],s;try{for(;(t===void 0||t-- >0)&&!(i=n.next()).done;)a.push(i.value)}catch(o){s={error:o}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(s)throw s.error}}return a}function ezt(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(YRe(arguments[t]));return e}function tzt(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;for(var n=Array(e),i=0,t=0;t<r;t++)for(var a=arguments[t],s=0,o=a.length;s<o;s++,i++)n[i]=a[s];return n}function JS(e){return this instanceof JS?(this.v=e,this):new JS(e)}function rzt(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=r.apply(e,t||[]),i,a=[];return i={},s("next"),s("throw"),s("return"),i[Symbol.asyncIterator]=function(){return this},i;function s(h){n[h]&&(i[h]=function(g){return new Promise(function(v,y){a.push([h,g,v,y])>1||o(h,g)})})}function o(h,g){try{c(n[h](g))}catch(v){d(a[0][3],v)}}function c(h){h.value instanceof JS?Promise.resolve(h.value.v).then(p,f):d(a[0][2],h)}function p(h){o("next",h)}function f(h){o("throw",h)}function d(h,g){h(g),a.shift(),a.length&&o(a[0][0],a[0][1])}}function nzt(e){var t,r;return t={},n("next"),n("throw",function(i){throw i}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(i,a){t[i]=e[i]?function(s){return(r=!r)?{value:JS(e[i](s)),done:i==="return"}:a?a(s):s}:a}}function izt(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof Ine=="function"?Ine(e):e[Symbol.iterator](),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(a){r[a]=e[a]&&function(s){return new Promise(function(o,c){s=e[a](s),i(o,c,s.done,s.value)})}}function i(a,s,o,c){Promise.resolve(c).then(function(p){a({value:p,done:o})},s)}}function azt(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function szt(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function ozt(e){return e&&e.__esModule?e:{default:e}}function uzt(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)}function czt(e,t,r){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,r),r}var Cne,Pne,qo=ns(()=>{Cne=function(e,t){return Cne=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)n.hasOwnProperty(i)&&(r[i]=n[i])},Cne(e,t)};Pne=function(){return Pne=Object.assign||function(t){for(var r,n=1,i=arguments.length;n<i;n++){r=arguments[n];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(t[a]=r[a])}return t},Pne.apply(this,arguments)}});var Rne=b(XS=>{Object.defineProperty(XS,"__esModule",{value:!0});var lzt;(function(e){e.Fatal="fatal",e.Error="error",e.Warning="warning",e.Log="log",e.Info="info",e.Debug="debug",e.Critical="critical"})(lzt=XS.Severity||(XS.Severity={}));XS.SeverityLevels=["fatal","error","warning","log","info","debug","critical"]});var Fd=b(vR=>{Object.defineProperty(vR,"__esModule",{value:!0});var pzt=Rne();vR.Severity=pzt.Severity;var fzt=Rne();vR.SeverityLevels=fzt.SeverityLevels});var XRe={};g2(XRe,{__assign:()=>jne,__asyncDelegator:()=>kzt,__asyncGenerator:()=>Szt,__asyncValues:()=>Azt,__await:()=>QS,__awaiter:()=>yzt,__classPrivateFieldGet:()=>Czt,__classPrivateFieldSet:()=>Pzt,__createBinding:()=>wzt,__decorate:()=>mzt,__exportStar:()=>_zt,__extends:()=>dzt,__generator:()=>bzt,__importDefault:()=>Dzt,__importStar:()=>Ozt,__makeTemplateObject:()=>Tzt,__metadata:()=>vzt,__param:()=>gzt,__read:()=>JRe,__rest:()=>hzt,__spread:()=>xzt,__spreadArrays:()=>Ezt,__values:()=>Nne});function dzt(e,t){Fne(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}function hzt(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]]);return r}function mzt(e,t,r,n){var i=arguments.length,a=i<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,r):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(e,t,r,n);else for(var o=e.length-1;o>=0;o--)(s=e[o])&&(a=(i<3?s(a):i>3?s(t,r,a):s(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a}function gzt(e,t){return function(r,n){t(r,n,e)}}function vzt(e,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(e,t)}function yzt(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{p(n.next(f))}catch(d){s(d)}}function c(f){try{p(n.throw(f))}catch(d){s(d)}}function p(f){f.done?a(f.value):i(f.value).then(o,c)}p((n=n.apply(e,t||[])).next())})}function bzt(e,t){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(p){return function(f){return c([p,f])}}function c(p){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(a=p[0]&2?i.return:p[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,p[1])).done)return a;switch(i=0,a&&(p=[p[0]&2,a.value]),p[0]){case 0:case 1:a=p;break;case 4:return r.label++,{value:p[1],done:!1};case 5:r.label++,i=p[1],p=[0];continue;case 7:p=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(p[0]===6||p[0]===2)){r=0;continue}if(p[0]===3&&(!a||p[1]>a[0]&&p[1]<a[3])){r.label=p[1];break}if(p[0]===6&&r.label<a[1]){r.label=a[1],a=p;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(p);break}a[2]&&r.ops.pop(),r.trys.pop();continue}p=t.call(e,r)}catch(f){p=[6,f],i=0}finally{n=a=0}if(p[0]&5)throw p[1];return{value:p[0]?p[1]:void 0,done:!0}}}function wzt(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}function _zt(e,t){for(var r in e)r!=="default"&&!t.hasOwnProperty(r)&&(t[r]=e[r])}function Nne(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function JRe(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),i,a=[],s;try{for(;(t===void 0||t-- >0)&&!(i=n.next()).done;)a.push(i.value)}catch(o){s={error:o}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(s)throw s.error}}return a}function xzt(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(JRe(arguments[t]));return e}function Ezt(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;for(var n=Array(e),i=0,t=0;t<r;t++)for(var a=arguments[t],s=0,o=a.length;s<o;s++,i++)n[i]=a[s];return n}function QS(e){return this instanceof QS?(this.v=e,this):new QS(e)}function Szt(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=r.apply(e,t||[]),i,a=[];return i={},s("next"),s("throw"),s("return"),i[Symbol.asyncIterator]=function(){return this},i;function s(h){n[h]&&(i[h]=function(g){return new Promise(function(v,y){a.push([h,g,v,y])>1||o(h,g)})})}function o(h,g){try{c(n[h](g))}catch(v){d(a[0][3],v)}}function c(h){h.value instanceof QS?Promise.resolve(h.value.v).then(p,f):d(a[0][2],h)}function p(h){o("next",h)}function f(h){o("throw",h)}function d(h,g){h(g),a.shift(),a.length&&o(a[0][0],a[0][1])}}function kzt(e){var t,r;return t={},n("next"),n("throw",function(i){throw i}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(i,a){t[i]=e[i]?function(s){return(r=!r)?{value:QS(e[i](s)),done:i==="return"}:a?a(s):s}:a}}function Azt(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof Nne=="function"?Nne(e):e[Symbol.iterator](),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(a){r[a]=e[a]&&function(s){return new Promise(function(o,c){s=e[a](s),i(o,c,s.done,s.value)})}}function i(a,s,o,c){Promise.resolve(c).then(function(p){a({value:p,done:o})},s)}}function Tzt(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function Ozt(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function Dzt(e){return e&&e.__esModule?e:{default:e}}function Czt(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)}function Pzt(e,t,r){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,r),r}var Fne,jne,QRe=ns(()=>{Fne=function(e,t){return Fne=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)n.hasOwnProperty(i)&&(r[i]=n[i])},Fne(e,t)};jne=function(){return jne=Object.assign||function(t){for(var r,n=1,i=arguments.length;n<i;n++){r=arguments[n];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(t[a]=r[a])}return t},jne.apply(this,arguments)}});var Bne={};g2(Bne,{__assign:()=>Lne,__asyncDelegator:()=>Hzt,__asyncGenerator:()=>zzt,__asyncValues:()=>Vzt,__await:()=>ZS,__awaiter:()=>qzt,__classPrivateFieldGet:()=>Yzt,__classPrivateFieldSet:()=>Jzt,__createBinding:()=>$zt,__decorate:()=>Fzt,__exportStar:()=>Bzt,__extends:()=>Izt,__generator:()=>Lzt,__importDefault:()=>Kzt,__importStar:()=>Wzt,__makeTemplateObject:()=>Gzt,__metadata:()=>Nzt,__param:()=>jzt,__read:()=>ZRe,__rest:()=>Rzt,__spread:()=>Mzt,__spreadArrays:()=>Uzt,__values:()=>$ne});function Izt(e,t){qne(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}function Rzt(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]]);return r}function Fzt(e,t,r,n){var i=arguments.length,a=i<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,r):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(e,t,r,n);else for(var o=e.length-1;o>=0;o--)(s=e[o])&&(a=(i<3?s(a):i>3?s(t,r,a):s(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a}function jzt(e,t){return function(r,n){t(r,n,e)}}function Nzt(e,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(e,t)}function qzt(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{p(n.next(f))}catch(d){s(d)}}function c(f){try{p(n.throw(f))}catch(d){s(d)}}function p(f){f.done?a(f.value):i(f.value).then(o,c)}p((n=n.apply(e,t||[])).next())})}function Lzt(e,t){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(p){return function(f){return c([p,f])}}function c(p){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(a=p[0]&2?i.return:p[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,p[1])).done)return a;switch(i=0,a&&(p=[p[0]&2,a.value]),p[0]){case 0:case 1:a=p;break;case 4:return r.label++,{value:p[1],done:!1};case 5:r.label++,i=p[1],p=[0];continue;case 7:p=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(p[0]===6||p[0]===2)){r=0;continue}if(p[0]===3&&(!a||p[1]>a[0]&&p[1]<a[3])){r.label=p[1];break}if(p[0]===6&&r.label<a[1]){r.label=a[1],a=p;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(p);break}a[2]&&r.ops.pop(),r.trys.pop();continue}p=t.call(e,r)}catch(f){p=[6,f],i=0}finally{n=a=0}if(p[0]&5)throw p[1];return{value:p[0]?p[1]:void 0,done:!0}}}function $zt(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}function Bzt(e,t){for(var r in e)r!=="default"&&!t.hasOwnProperty(r)&&(t[r]=e[r])}function $ne(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function ZRe(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),i,a=[],s;try{for(;(t===void 0||t-- >0)&&!(i=n.next()).done;)a.push(i.value)}catch(o){s={error:o}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(s)throw s.error}}return a}function Mzt(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(ZRe(arguments[t]));return e}function Uzt(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;for(var n=Array(e),i=0,t=0;t<r;t++)for(var a=arguments[t],s=0,o=a.length;s<o;s++,i++)n[i]=a[s];return n}function ZS(e){return this instanceof ZS?(this.v=e,this):new ZS(e)}function zzt(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=r.apply(e,t||[]),i,a=[];return i={},s("next"),s("throw"),s("return"),i[Symbol.asyncIterator]=function(){return this},i;function s(h){n[h]&&(i[h]=function(g){return new Promise(function(v,y){a.push([h,g,v,y])>1||o(h,g)})})}function o(h,g){try{c(n[h](g))}catch(v){d(a[0][3],v)}}function c(h){h.value instanceof ZS?Promise.resolve(h.value.v).then(p,f):d(a[0][2],h)}function p(h){o("next",h)}function f(h){o("throw",h)}function d(h,g){h(g),a.shift(),a.length&&o(a[0][0],a[0][1])}}function Hzt(e){var t,r;return t={},n("next"),n("throw",function(i){throw i}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(i,a){t[i]=e[i]?function(s){return(r=!r)?{value:ZS(e[i](s)),done:i==="return"}:a?a(s):s}:a}}function Vzt(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof $ne=="function"?$ne(e):e[Symbol.iterator](),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(a){r[a]=e[a]&&function(s){return new Promise(function(o,c){s=e[a](s),i(o,c,s.done,s.value)})}}function i(a,s,o,c){Promise.resolve(c).then(function(p){a({value:p,done:o})},s)}}function Gzt(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function Wzt(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function Kzt(e){return e&&e.__esModule?e:{default:e}}function Yzt(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)}function Jzt(e,t,r){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,r),r}var qne,Lne,Mne=ns(()=>{qne=function(e,t){return qne=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)n.hasOwnProperty(i)&&(r[i]=n[i])},qne(e,t)};Lne=function(){return Lne=Object.assign||function(t){for(var r,n=1,i=arguments.length;n<i;n++){r=arguments[n];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(t[a]=r[a])}return t},Lne.apply(this,arguments)}});var zl={};g2(zl,{__assign:()=>zne,__asyncDelegator:()=>cHt,__asyncGenerator:()=>uHt,__asyncValues:()=>lHt,__await:()=>e7,__awaiter:()=>rHt,__classPrivateFieldGet:()=>hHt,__classPrivateFieldSet:()=>mHt,__createBinding:()=>iHt,__decorate:()=>Zzt,__exportStar:()=>aHt,__extends:()=>Xzt,__generator:()=>nHt,__importDefault:()=>dHt,__importStar:()=>fHt,__makeTemplateObject:()=>pHt,__metadata:()=>tHt,__param:()=>eHt,__read:()=>eFe,__rest:()=>Qzt,__spread:()=>sHt,__spreadArrays:()=>oHt,__values:()=>Hne});function Xzt(e,t){Une(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}function Qzt(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]]);return r}function Zzt(e,t,r,n){var i=arguments.length,a=i<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,r):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(e,t,r,n);else for(var o=e.length-1;o>=0;o--)(s=e[o])&&(a=(i<3?s(a):i>3?s(t,r,a):s(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a}function eHt(e,t){return function(r,n){t(r,n,e)}}function tHt(e,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(e,t)}function rHt(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{p(n.next(f))}catch(d){s(d)}}function c(f){try{p(n.throw(f))}catch(d){s(d)}}function p(f){f.done?a(f.value):i(f.value).then(o,c)}p((n=n.apply(e,t||[])).next())})}function nHt(e,t){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(p){return function(f){return c([p,f])}}function c(p){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(a=p[0]&2?i.return:p[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,p[1])).done)return a;switch(i=0,a&&(p=[p[0]&2,a.value]),p[0]){case 0:case 1:a=p;break;case 4:return r.label++,{value:p[1],done:!1};case 5:r.label++,i=p[1],p=[0];continue;case 7:p=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(p[0]===6||p[0]===2)){r=0;continue}if(p[0]===3&&(!a||p[1]>a[0]&&p[1]<a[3])){r.label=p[1];break}if(p[0]===6&&r.label<a[1]){r.label=a[1],a=p;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(p);break}a[2]&&r.ops.pop(),r.trys.pop();continue}p=t.call(e,r)}catch(f){p=[6,f],i=0}finally{n=a=0}if(p[0]&5)throw p[1];return{value:p[0]?p[1]:void 0,done:!0}}}function iHt(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}function aHt(e,t){for(var r in e)r!=="default"&&!t.hasOwnProperty(r)&&(t[r]=e[r])}function Hne(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function eFe(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),i,a=[],s;try{for(;(t===void 0||t-- >0)&&!(i=n.next()).done;)a.push(i.value)}catch(o){s={error:o}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(s)throw s.error}}return a}function sHt(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(eFe(arguments[t]));return e}function oHt(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;for(var n=Array(e),i=0,t=0;t<r;t++)for(var a=arguments[t],s=0,o=a.length;s<o;s++,i++)n[i]=a[s];return n}function e7(e){return this instanceof e7?(this.v=e,this):new e7(e)}function uHt(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=r.apply(e,t||[]),i,a=[];return i={},s("next"),s("throw"),s("return"),i[Symbol.asyncIterator]=function(){return this},i;function s(h){n[h]&&(i[h]=function(g){return new Promise(function(v,y){a.push([h,g,v,y])>1||o(h,g)})})}function o(h,g){try{c(n[h](g))}catch(v){d(a[0][3],v)}}function c(h){h.value instanceof e7?Promise.resolve(h.value.v).then(p,f):d(a[0][2],h)}function p(h){o("next",h)}function f(h){o("throw",h)}function d(h,g){h(g),a.shift(),a.length&&o(a[0][0],a[0][1])}}function cHt(e){var t,r;return t={},n("next"),n("throw",function(i){throw i}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(i,a){t[i]=e[i]?function(s){return(r=!r)?{value:e7(e[i](s)),done:i==="return"}:a?a(s):s}:a}}function lHt(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof Hne=="function"?Hne(e):e[Symbol.iterator](),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(a){r[a]=e[a]&&function(s){return new Promise(function(o,c){s=e[a](s),i(o,c,s.done,s.value)})}}function i(a,s,o,c){Promise.resolve(c).then(function(p){a({value:p,done:o})},s)}}function pHt(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function fHt(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function dHt(e){return e&&e.__esModule?e:{default:e}}function hHt(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)}function mHt(e,t,r){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,r),r}var Une,zne,Hl=ns(()=>{Une=function(e,t){return Une=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)n.hasOwnProperty(i)&&(r[i]=n[i])},Une(e,t)};zne=function(){return zne=Object.assign||function(t){for(var r,n=1,i=arguments.length;n<i;n++){r=arguments[n];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(t[a]=r[a])}return t},zne.apply(this,arguments)}});var tFe=b(Vne=>{Object.defineProperty(Vne,"__esModule",{value:!0});function gHt(e){e.then(null,function(t){console.error(t)})}Vne.forget=gHt});var mb=b(yR=>{Object.defineProperty(yR,"__esModule",{value:!0});var vHt=!0;function yHt(){return vHt}yR.isDebugBuild=yHt;function bHt(){return typeof __SENTRY_BROWSER_BUNDLE__<"u"&&!!__SENTRY_BROWSER_BUNDLE__}yR.isBrowserBundle=bHt});var _R=b((t7,wR)=>{Object.defineProperty(t7,"__esModule",{value:!0});var wHt=mb();function _Ht(){return!wHt.isBrowserBundle()&&Object.prototype.toString.call(typeof process<"u"?process:0)==="[object process]"}t7.isNodeEnv=_Ht;function bR(e,t){return e.require(t)}t7.dynamicRequire=bR;function xHt(e){var t;try{t=bR(wR,e)}catch{}try{var r=bR(wR,"process").cwd;t=bR(wR,r()+"/node_modules/"+e)}catch{}return t}t7.loadModule=xHt});var og=b(Gne=>{Object.defineProperty(Gne,"__esModule",{value:!0});var EHt=_R(),SHt={};function kHt(){return EHt.isNodeEnv()?global:typeof window<"u"?window:typeof self<"u"?self:SHt}Gne.getGlobalObject=kHt});var c1=b(lu=>{Object.defineProperty(lu,"__esModule",{value:!0});var rFe=Object.prototype.toString;function AHt(e){switch(rFe.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return xR(e,Error)}}lu.isError=AHt;function K6(e,t){return rFe.call(e)==="[object "+t+"]"}function THt(e){return K6(e,"ErrorEvent")}lu.isErrorEvent=THt;function OHt(e){return K6(e,"DOMError")}lu.isDOMError=OHt;function DHt(e){return K6(e,"DOMException")}lu.isDOMException=DHt;function CHt(e){return K6(e,"String")}lu.isString=CHt;function PHt(e){return e===null||typeof e!="object"&&typeof e!="function"}lu.isPrimitive=PHt;function nFe(e){return K6(e,"Object")}lu.isPlainObject=nFe;function IHt(e){return typeof Event<"u"&&xR(e,Event)}lu.isEvent=IHt;function RHt(e){return typeof Element<"u"&&xR(e,Element)}lu.isElement=RHt;function FHt(e){return K6(e,"RegExp")}lu.isRegExp=FHt;function jHt(e){return!!(e&&e.then&&typeof e.then=="function")}lu.isThenable=jHt;function NHt(e){return nFe(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e}lu.isSyntheticEvent=NHt;function qHt(e){return typeof e=="number"&&e!==e}lu.isNaN=qHt;function xR(e,t){try{return e instanceof t}catch{return!1}}lu.isInstanceOf=xR});var Wne=b(ER=>{Object.defineProperty(ER,"__esModule",{value:!0});var LHt=og(),$Ht=c1();function BHt(e,t){try{for(var r=e,n=5,i=80,a=[],s=0,o=0,c=" > ",p=c.length,f=void 0;r&&s++<n&&(f=MHt(r,t),!(f==="html"||s>1&&o+a.length*p+f.length>=i));)a.push(f),o+=f.length,r=r.parentNode;return a.reverse().join(c)}catch{return"<unknown>"}}ER.htmlTreeAsString=BHt;function MHt(e,t){var r=e,n=[],i,a,s,o,c;if(!r||!r.tagName)return"";n.push(r.tagName.toLowerCase());var p=t&&t.length?t.filter(function(d){return r.getAttribute(d)}).map(function(d){return[d,r.getAttribute(d)]}):null;if(p&&p.length)p.forEach(function(d){n.push("["+d[0]+'="'+d[1]+'"]')});else if(r.id&&n.push("#"+r.id),i=r.className,i&&$Ht.isString(i))for(a=i.split(/\s+/),c=0;c<a.length;c++)n.push("."+a[c]);var f=["type","name","title","alt"];for(c=0;c<f.length;c++)s=f[c],o=r.getAttribute(s),o&&n.push("["+s+'="'+o+'"]');return n.join("")}function UHt(){var e=LHt.getGlobalObject();try{return e.document.location.href}catch{return""}}ER.getLocationHref=UHt});var iFe=b(Kne=>{Object.defineProperty(Kne,"__esModule",{value:!0});Kne.setPrototypeOf=Object.setPrototypeOf||({__proto__:[]}instanceof Array?zHt:HHt);function zHt(e,t){return e.__proto__=t,e}function HHt(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(e,r)||(e[r]=t[r]);return e}});var SR=b(Yne=>{Object.defineProperty(Yne,"__esModule",{value:!0});var VHt=(Hl(),_n(zl)),GHt=iFe(),WHt=function(e){VHt.__extends(t,e);function t(r){var n=this.constructor,i=e.call(this,r)||this;return i.message=r,i.name=n.prototype.constructor.name,GHt.setPrototypeOf(i,n.prototype),i}return t}(Error);Yne.SentryError=WHt});var sFe=b(kR=>{Object.defineProperty(kR,"__esModule",{value:!0});var KHt=(Hl(),_n(zl)),YHt=mb(),r7=SR(),JHt=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+))?@)([\w.-]+)(?::(\d+))?\/(.+)/;function XHt(e){return e==="http"||e==="https"}function QHt(e,t){t===void 0&&(t=!1);var r=e.host,n=e.path,i=e.pass,a=e.port,s=e.projectId,o=e.protocol,c=e.publicKey;return o+"://"+c+(t&&i?":"+i:"")+("@"+r+(a?":"+a:"")+"/"+(n&&n+"/")+s)}kR.dsnToString=QHt;function ZHt(e){var t=JHt.exec(e);if(!t)throw new r7.SentryError("Invalid Sentry Dsn: "+e);var r=KHt.__read(t.slice(1),6),n=r[0],i=r[1],a=r[2],s=a===void 0?"":a,o=r[3],c=r[4],p=c===void 0?"":c,f=r[5],d="",h=f,g=h.split("/");if(g.length>1&&(d=g.slice(0,-1).join("/"),h=g.pop()),h){var v=h.match(/^\d+/);v&&(h=v[0])}return aFe({host:o,pass:s,path:d,projectId:h,port:p,protocol:n,publicKey:i})}function aFe(e){return"user"in e&&!("publicKey"in e)&&(e.publicKey=e.user),{user:e.publicKey||"",protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function eVt(e){if(YHt.isDebugBuild()){var t=e.port,r=e.projectId,n=e.protocol,i=["protocol","publicKey","host","projectId"];if(i.forEach(function(a){if(!e[a])throw new r7.SentryError("Invalid Sentry Dsn: "+a+" missing")}),!r.match(/^\d+$/))throw new r7.SentryError("Invalid Sentry Dsn: Invalid projectId "+r);if(!XHt(n))throw new r7.SentryError("Invalid Sentry Dsn: Invalid protocol "+n);if(t&&isNaN(parseInt(t,10)))throw new r7.SentryError("Invalid Sentry Dsn: Invalid port "+t);return!0}}function tVt(e){var t=typeof e=="string"?ZHt(e):aFe(e);return eVt(t),t}kR.makeDsn=tVt});var Xne=b(Jne=>{Object.defineProperty(Jne,"__esModule",{value:!0});Jne.SeverityLevels=["fatal","error","warning","log","info","debug","critical"]});var TR=b(Y6=>{Object.defineProperty(Y6,"__esModule",{value:!0});var Qne=(Hl(),_n(zl)),rVt=mb(),oFe=og(),n7=oFe.getGlobalObject(),Zne="Sentry Logger ";Y6.CONSOLE_LEVELS=["debug","info","warn","error","log","assert"];function AR(e){var t=oFe.getGlobalObject();if(!("console"in t))return e();var r=t.console,n={};Y6.CONSOLE_LEVELS.forEach(function(a){a in t.console&&r[a].__sentry_original__&&(n[a]=r[a],r[a]=r[a].__sentry_original__)});var i=e();return Object.keys(n).forEach(function(a){r[a]=n[a]}),i}Y6.consoleSandbox=AR;var nVt=function(){function e(){this._enabled=!1}return e.prototype.disable=function(){this._enabled=!1},e.prototype.enable=function(){this._enabled=!0},e.prototype.log=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];this._enabled&&AR(function(){var n;(n=n7.console).log.apply(n,Qne.__spread([Zne+"[Log]:"],t))})},e.prototype.warn=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];this._enabled&&AR(function(){var n;(n=n7.console).warn.apply(n,Qne.__spread([Zne+"[Warn]:"],t))})},e.prototype.error=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];this._enabled&&AR(function(){var n;(n=n7.console).error.apply(n,Qne.__spread([Zne+"[Error]:"],t))})},e}(),eie=n7.__SENTRY__||{},uFe=eie.logger||new nVt;Y6.logger=uFe;rVt.isDebugBuild()&&(eie.logger=uFe,n7.__SENTRY__=eie)});var OR=b(gb=>{Object.defineProperty(gb,"__esModule",{value:!0});var cFe=c1();function iVt(e,t){return t===void 0&&(t=0),typeof e!="string"||t===0||e.length<=t?e:e.substr(0,t)+"..."}gb.truncate=iVt;function aVt(e,t){var r=e,n=r.length;if(n<=150)return r;t>n&&(t=n);var i=Math.max(t-60,0);i<5&&(i=0);var a=Math.min(i+140,n);return a>n-5&&(a=n),a===n&&(i=Math.max(a-140,0)),r=r.slice(i,a),i>0&&(r="'{snip} "+r),a<n&&(r+=" {snip}"),r}gb.snipLine=aVt;function sVt(e,t){if(!Array.isArray(e))return"";for(var r=[],n=0;n<e.length;n++){var i=e[n];try{r.push(String(i))}catch{r.push("[value cannot be serialized]")}}return r.join(t)}gb.safeJoin=sVt;function oVt(e,t){return cFe.isString(e)?cFe.isRegExp(t)?t.test(e):typeof t=="string"?e.indexOf(t)!==-1:!1:!1}gb.isMatchingPattern=oVt;function uVt(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}gb.escapeStringForRegex=uVt});var i7=b(yf=>{Object.defineProperty(yf,"__esModule",{value:!0});var cVt=(Hl(),_n(zl)),lFe=Wne(),vb=c1(),pFe=OR();function lVt(e,t,r){if(t in e){var n=e[t],i=r(n);if(typeof i=="function")try{dFe(i,n)}catch{}e[t]=i}}yf.fill=lVt;function fFe(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,configurable:!0})}yf.addNonEnumerableProperty=fFe;function dFe(e,t){var r=t.prototype||{};e.prototype=t.prototype=r,fFe(e,"__sentry_original__",t)}yf.markFunctionWrapped=dFe;function pVt(e){return e.__sentry_original__}yf.getOriginalFunction=pVt;function fVt(e){return Object.keys(e).map(function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])}).join("&")}yf.urlEncode=fVt;function hFe(e){if(vb.isError(e)){var t=e,r={message:t.message,name:t.name,stack:t.stack};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n]);return r}if(vb.isEvent(e)){var i=e,a={};a.type=i.type;try{a.target=vb.isElement(i.target)?lFe.htmlTreeAsString(i.target):Object.prototype.toString.call(i.target)}catch{a.target="<unknown>"}try{a.currentTarget=vb.isElement(i.currentTarget)?lFe.htmlTreeAsString(i.currentTarget):Object.prototype.toString.call(i.currentTarget)}catch{a.currentTarget="<unknown>"}typeof CustomEvent<"u"&&vb.isInstanceOf(e,CustomEvent)&&(a.detail=i.detail);for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(a[s]=i[s]);return a}return e}yf.getWalkSource=hFe;function dVt(e,t){t===void 0&&(t=40);var r=Object.keys(hFe(e));if(r.sort(),!r.length)return"[object has no keys]";if(r[0].length>=t)return pFe.truncate(r[0],t);for(var n=r.length;n>0;n--){var i=r.slice(0,n).join(", ");if(!(i.length>t))return n===r.length?i:pFe.truncate(i,t)}return""}yf.extractExceptionKeysForMessage=dVt;function tie(e){var t,r;if(vb.isPlainObject(e)){var n=e,i={};try{for(var a=cVt.__values(Object.keys(n)),s=a.next();!s.done;s=a.next()){var o=s.value;typeof n[o]<"u"&&(i[o]=tie(n[o]))}}catch(c){t={error:c}}finally{try{s&&!s.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}return i}return Array.isArray(e)?e.map(tie):e}yf.dropUndefinedKeys=tie;function hVt(e){var t;switch(!0){case e==null:t=new String(e);break;case(typeof e=="symbol"||typeof e=="bigint"):t=Object(e);break;case vb.isPrimitive(e):t=new e.constructor(e);break;default:t=e;break}return t}yf.objectify=hVt});var CR=b(a7=>{Object.defineProperty(a7,"__esModule",{value:!0});var DR=(Hl(),_n(zl)),mVt=50;function gVt(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=e.sort(function(n,i){return n[0]-i[0]}).map(function(n){return n[1]});return function(n,i){var a,s,o,c;i===void 0&&(i=0);var p=[];try{for(var f=DR.__values(n.split(`
`).slice(i)),d=f.next();!d.done;d=f.next()){var h=d.value;try{for(var g=(o=void 0,DR.__values(r)),v=g.next();!v.done;v=g.next()){var y=v.value,_=y(h);if(_){p.push(_);break}}}catch(x){o={error:x}}finally{try{v&&!v.done&&(c=g.return)&&c.call(g)}finally{if(o)throw o.error}}}}catch(x){a={error:x}}finally{try{d&&!d.done&&(s=f.return)&&s.call(f)}finally{if(a)throw a.error}}return mFe(p)}}a7.createStackParser=gVt;function mFe(e){if(!e.length)return[];var t=e,r=t[0].function||"",n=t[t.length-1].function||"";return(r.indexOf("captureMessage")!==-1||r.indexOf("captureException")!==-1)&&(t=t.slice(1)),n.indexOf("sentryWrapped")!==-1&&(t=t.slice(0,-1)),t.slice(0,mVt).map(function(i){return DR.__assign(DR.__assign({},i),{filename:i.filename||t[0].filename,function:i.function||"?"})}).reverse()}a7.stripSentryFramesAndReverse=mFe;var rie="<anonymous>";function vVt(e){try{return!e||typeof e!="function"?rie:e.name||rie}catch{return rie}}a7.getFunctionName=vVt});var aie=b(bf=>{Object.defineProperty(bf,"__esModule",{value:!0});var yVt=mb(),PR=og(),bVt=TR();function wVt(){try{return new ErrorEvent(""),!0}catch{return!1}}bf.supportsErrorEvent=wVt;function _Vt(){try{return new DOMError(""),!0}catch{return!1}}bf.supportsDOMError=_Vt;function xVt(){try{return new DOMException(""),!0}catch{return!1}}bf.supportsDOMException=xVt;function iie(){if(!("fetch"in PR.getGlobalObject()))return!1;try{return new Headers,new Request(""),new Response,!0}catch{return!1}}bf.supportsFetch=iie;function nie(e){return e&&/^function fetch\(\)\s+\{\s+\[native code\]\s+\}$/.test(e.toString())}bf.isNativeFetch=nie;function EVt(){if(!iie())return!1;var e=PR.getGlobalObject();if(nie(e.fetch))return!0;var t=!1,r=e.document;if(r&&typeof r.createElement=="function")try{var n=r.createElement("iframe");n.hidden=!0,r.head.appendChild(n),n.contentWindow&&n.contentWindow.fetch&&(t=nie(n.contentWindow.fetch)),r.head.removeChild(n)}catch(i){yVt.isDebugBuild()&&bVt.logger.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",i)}return t}bf.supportsNativeFetch=EVt;function SVt(){return"ReportingObserver"in PR.getGlobalObject()}bf.supportsReportingObserver=SVt;function kVt(){if(!iie())return!1;try{return new Request("_",{referrerPolicy:"origin"}),!0}catch{return!1}}bf.supportsReferrerPolicy=kVt;function AVt(){var e=PR.getGlobalObject(),t=e.chrome,r=t&&t.app&&t.app.runtime,n="history"in e&&!!e.history.pushState&&!!e.history.replaceState;return!r&&n}bf.supportsHistory=AVt});var wFe=b(cie=>{Object.defineProperty(cie,"__esModule",{value:!0});var J6=(Hl(),_n(zl)),yFe=mb(),TVt=og(),jR=c1(),uie=TR(),l1=i7(),OVt=CR(),bFe=aie(),Ea=TVt.getGlobalObject(),s7={},gFe={};function DVt(e){if(!gFe[e])switch(gFe[e]=!0,e){case"console":PVt();break;case"dom":BVt();break;case"xhr":jVt();break;case"fetch":IVt();break;case"history":NVt();break;case"error":MVt();break;case"unhandledrejection":UVt();break;default:yFe.isDebugBuild()&&uie.logger.warn("unknown instrumentation type:",e);return}}function CVt(e,t){s7[e]=s7[e]||[],s7[e].push(t),DVt(e)}cie.addInstrumentationHandler=CVt;function wf(e,t){var r,n;if(!(!e||!s7[e]))try{for(var i=J6.__values(s7[e]||[]),a=i.next();!a.done;a=i.next()){var s=a.value;try{s(t)}catch(o){yFe.isDebugBuild()&&uie.logger.error(`Error while triggering instrumentation handler.
Type: `+e+`
Name: `+OVt.getFunctionName(s)+`
Error:`,o)}}}catch(o){r={error:o}}finally{try{a&&!a.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}}function PVt(){"console"in Ea&&uie.CONSOLE_LEVELS.forEach(function(e){e in Ea.console&&l1.fill(Ea.console,e,function(t){return function(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];wf("console",{args:r,level:e}),t&&t.apply(Ea.console,r)}})})}function IVt(){bFe.supportsNativeFetch()&&l1.fill(Ea,"fetch",function(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var n={args:t,fetchData:{method:RVt(t),url:FVt(t)},startTimestamp:Date.now()};return wf("fetch",J6.__assign({},n)),e.apply(Ea,t).then(function(i){return wf("fetch",J6.__assign(J6.__assign({},n),{endTimestamp:Date.now(),response:i})),i},function(i){throw wf("fetch",J6.__assign(J6.__assign({},n),{endTimestamp:Date.now(),error:i})),i})}})}function RVt(e){return e===void 0&&(e=[]),"Request"in Ea&&jR.isInstanceOf(e[0],Request)&&e[0].method?String(e[0].method).toUpperCase():e[1]&&e[1].method?String(e[1].method).toUpperCase():"GET"}function FVt(e){return e===void 0&&(e=[]),typeof e[0]=="string"?e[0]:"Request"in Ea&&jR.isInstanceOf(e[0],Request)?e[0].url:String(e[0])}function jVt(){if("XMLHttpRequest"in Ea){var e=XMLHttpRequest.prototype;l1.fill(e,"open",function(t){return function(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];var i=this,a=r[1],s=i.__sentry_xhr__={method:jR.isString(r[0])?r[0].toUpperCase():r[0],url:r[1]};jR.isString(a)&&s.method==="POST"&&a.match(/sentry_key/)&&(i.__sentry_own_request__=!0);var o=function(){if(i.readyState===4){try{s.status_code=i.status}catch{}wf("xhr",{args:r,endTimestamp:Date.now(),startTimestamp:Date.now(),xhr:i})}};return"onreadystatechange"in i&&typeof i.onreadystatechange=="function"?l1.fill(i,"onreadystatechange",function(c){return function(){for(var p=[],f=0;f<arguments.length;f++)p[f]=arguments[f];return o(),c.apply(i,p)}}):i.addEventListener("readystatechange",o),t.apply(i,r)}}),l1.fill(e,"send",function(t){return function(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];return this.__sentry_xhr__&&r[0]!==void 0&&(this.__sentry_xhr__.body=r[0]),wf("xhr",{args:r,startTimestamp:Date.now(),xhr:this}),t.apply(this,r)}})}}var IR;function NVt(){if(!bFe.supportsHistory())return;var e=Ea.onpopstate;Ea.onpopstate=function(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];var i=Ea.location.href,a=IR;if(IR=i,wf("history",{from:a,to:i}),e)try{return e.apply(this,r)}catch{}};function t(r){return function(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];var a=n.length>2?n[2]:void 0;if(a){var s=IR,o=String(a);IR=o,wf("history",{from:s,to:o})}return r.apply(this,n)}}l1.fill(Ea.history,"pushState",t),l1.fill(Ea.history,"replaceState",t)}var qVt=1e3,RR,FR;function LVt(e,t){if(!e||e.type!==t.type)return!0;try{if(e.target!==t.target)return!0}catch{}return!1}function $Vt(e){if(e.type!=="keypress")return!1;try{var t=e.target;if(!t||!t.tagName)return!0;if(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable)return!1}catch{}return!0}function vFe(e,t){return t===void 0&&(t=!1),function(r){if(!(!r||FR===r)&&!$Vt(r)){var n=r.type==="keypress"?"input":r.type;RR===void 0?(e({event:r,name:n,global:t}),FR=r):LVt(FR,r)&&(e({event:r,name:n,global:t}),FR=r),clearTimeout(RR),RR=Ea.setTimeout(function(){RR=void 0},qVt)}}}function BVt(){if("document"in Ea){var e=wf.bind(null,"dom"),t=vFe(e,!0);Ea.document.addEventListener("click",t,!1),Ea.document.addEventListener("keypress",t,!1),["EventTarget","Node"].forEach(function(r){var n=Ea[r]&&Ea[r].prototype;!n||!n.hasOwnProperty||!n.hasOwnProperty("addEventListener")||(l1.fill(n,"addEventListener",function(i){return function(a,s,o){if(a==="click"||a=="keypress")try{var c=this,p=c.__sentry_instrumentation_handlers__=c.__sentry_instrumentation_handlers__||{},f=p[a]=p[a]||{refCount:0};if(!f.handler){var d=vFe(e);f.handler=d,i.call(this,a,d,o)}f.refCount+=1}catch{}return i.call(this,a,s,o)}}),l1.fill(n,"removeEventListener",function(i){return function(a,s,o){if(a==="click"||a=="keypress")try{var c=this,p=c.__sentry_instrumentation_handlers__||{},f=p[a];f&&(f.refCount-=1,f.refCount<=0&&(i.call(this,a,f.handler,o),f.handler=void 0,delete p[a]),Object.keys(p).length===0&&delete c.__sentry_instrumentation_handlers__)}catch{}return i.call(this,a,s,o)}}))})}}var sie=null;function MVt(){sie=Ea.onerror,Ea.onerror=function(e,t,r,n,i){return wf("error",{column:n,error:i,line:r,msg:e,url:t}),sie?sie.apply(this,arguments):!1}}var oie=null;function UVt(){oie=Ea.onunhandledrejection,Ea.onunhandledrejection=function(e){return wf("unhandledrejection",e),oie?oie.apply(this,arguments):!0}}});var pie=b(lie=>{Object.defineProperty(lie,"__esModule",{value:!0});function zVt(){var e=typeof WeakSet=="function",t=e?new WeakSet:[];function r(i){if(e)return t.has(i)?!0:(t.add(i),!1);for(var a=0;a<t.length;a++){var s=t[a];if(s===i)return!0}return t.push(i),!1}function n(i){if(e)t.delete(i);else for(var a=0;a<t.length;a++)if(t[a]===i){t.splice(a,1);break}}return[r,n]}lie.memoBuilder=zVt});var xFe=b(_f=>{Object.defineProperty(_f,"__esModule",{value:!0});var o7=(Hl(),_n(zl)),HVt=og(),VVt=i7(),fie=OR();function GVt(){var e=HVt.getGlobalObject(),t=e.crypto||e.msCrypto;if(t!==void 0&&t.getRandomValues){var r=new Uint16Array(8);t.getRandomValues(r),r[3]=r[3]&4095|16384,r[4]=r[4]&16383|32768;var n=function(i){for(var a=i.toString(16);a.length<4;)a="0"+a;return a};return n(r[0])+n(r[1])+n(r[2])+n(r[3])+n(r[4])+n(r[5])+n(r[6])+n(r[7])}return"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g,function(i){var a=Math.random()*16|0,s=i==="x"?a:a&3|8;return s.toString(16)})}_f.uuid4=GVt;function WVt(e){if(!e)return{};var t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};var r=t[6]||"",n=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],relative:t[5]+r+n}}_f.parseUrl=WVt;function _Fe(e){return e.exception&&e.exception.values?e.exception.values[0]:void 0}function KVt(e){var t=e.message,r=e.event_id;if(t)return t;var n=_Fe(e);return n?n.type&&n.value?n.type+": "+n.value:n.type||n.value||r||"<unknown>":r||"<unknown>"}_f.getEventDescription=KVt;function YVt(e,t,r){var n=e.exception=e.exception||{},i=n.values=n.values||[],a=i[0]=i[0]||{};a.value||(a.value=t||""),a.type||(a.type=r||"Error")}_f.addExceptionTypeValue=YVt;function JVt(e,t){var r=_Fe(e);if(r){var n={type:"generic",handled:!0},i=r.mechanism;if(r.mechanism=o7.__assign(o7.__assign(o7.__assign({},n),i),t),t&&"data"in t){var a=o7.__assign(o7.__assign({},i&&i.data),t.data);r.mechanism.data=a}}}_f.addExceptionMechanism=JVt;var XVt=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;function QVt(e){var t=e.match(XVt)||[],r=parseInt(t[1],10),n=parseInt(t[2],10),i=parseInt(t[3],10);return{buildmetadata:t[5],major:isNaN(r)?void 0:r,minor:isNaN(n)?void 0:n,patch:isNaN(i)?void 0:i,prerelease:t[4]}}_f.parseSemver=QVt;function ZVt(e,t,r){r===void 0&&(r=5);var n=t.lineno||0,i=e.length,a=Math.max(Math.min(i,n-1),0);t.pre_context=e.slice(Math.max(0,a-r),a).map(function(s){return fie.snipLine(s,0)}),t.context_line=fie.snipLine(e[Math.min(i-1,a)],t.colno||0),t.post_context=e.slice(Math.min(a+1,i),a+1+r).map(function(s){return fie.snipLine(s,0)})}_f.addContextToFrame=ZVt;function eGt(e){return e.split(/[\?#]/,1)[0]}_f.stripUrlQueryAndFragment=eGt;function tGt(e){if(e&&e.__sentry_captured__)return!0;try{VVt.addNonEnumerableProperty(e,"__sentry_captured__",!0)}catch{}return!1}_f.checkOrSetAlreadyCaught=tGt});var AFe=b(u7=>{Object.defineProperty(u7,"__esModule",{value:!0});var rGt=(Hl(),_n(zl)),die=c1(),nGt=pie(),iGt=i7(),aGt=CR();function EFe(e,t,r){t===void 0&&(t=1/0),r===void 0&&(r=1/0);try{return hie("",e,t,r)}catch{return"**non-serializable**"}}u7.normalize=EFe;function SFe(e,t,r){t===void 0&&(t=3),r===void 0&&(r=100*1024);var n=EFe(e,t);return uGt(n)>r?SFe(e,t-1,r):n}u7.normalizeToSize=SFe;function hie(e,t,r,n,i){r===void 0&&(r=1/0),n===void 0&&(n=1/0),i===void 0&&(i=nGt.memoBuilder());var a=rGt.__read(i,2),s=a[0],o=a[1];if(r===0)return sGt(t);if(t!=null&&typeof t.toJSON=="function")return t.toJSON();var c=kFe(t,e);if(die.isPrimitive(c))return c;var p=iGt.getWalkSource(t),f=Array.isArray(t)?[]:{};if(s(t))return"[Circular ~]";var d=0;for(var h in p)if(Object.prototype.hasOwnProperty.call(p,h)){if(d>=n){f[h]="[MaxProperties ~]";break}d+=1;var g=p[h];f[h]=hie(h,g,r-1,n,i)}return o(t),f}u7.walk=hie;function sGt(e){if(typeof e=="string")return e;var t=Object.prototype.toString.call(e);if(t==="[object Object]")return"[Object]";if(t==="[object Array]")return"[Array]";var r=kFe(e);return die.isPrimitive(r)?r:t}function kFe(e,t){return t==="domain"&&e&&typeof e=="object"&&e._events?"[Domain]":t==="domainEmitter"?"[DomainEmitter]":typeof global<"u"&&e===global?"[Global]":typeof window<"u"&&e===window?"[Window]":typeof document<"u"&&e===document?"[Document]":die.isSyntheticEvent(e)?"[SyntheticEvent]":typeof e=="number"&&e!==e?"[NaN]":e===void 0?"[undefined]":typeof e=="function"?"[Function: "+aGt.getFunctionName(e)+"]":typeof e=="symbol"?"["+String(e)+"]":typeof e=="bigint"?"[BigInt: "+String(e)+"]":e}function oGt(e){return~-encodeURI(e).split(/%..|./).length}function uGt(e){return oGt(JSON.stringify(e))}});var IFe=b(p1=>{Object.defineProperty(p1,"__esModule",{value:!0});function OFe(e,t){for(var r=0,n=e.length-1;n>=0;n--){var i=e[n];i==="."?e.splice(n,1):i===".."?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}var cGt=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^/]+?|)(\.[^./]*|))(?:[/]*)$/;function DFe(e){var t=cGt.exec(e);return t?t.slice(1):[]}function mie(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var r="",n=!1,i=e.length-1;i>=-1&&!n;i--){var a=i>=0?e[i]:"/";a&&(r=a+"/"+r,n=a.charAt(0)==="/")}return r=OFe(r.split("/").filter(function(s){return!!s}),!n).join("/"),(n?"/":"")+r||"."}p1.resolve=mie;function TFe(e){for(var t=0;t<e.length&&e[t]==="";t++);for(var r=e.length-1;r>=0&&e[r]==="";r--);return t>r?[]:e.slice(t,r-t+1)}function lGt(e,t){e=mie(e).substr(1),t=mie(t).substr(1);for(var r=TFe(e.split("/")),n=TFe(t.split("/")),i=Math.min(r.length,n.length),a=i,s=0;s<i;s++)if(r[s]!==n[s]){a=s;break}for(var o=[],s=a;s<r.length;s++)o.push("..");return o=o.concat(n.slice(a)),o.join("/")}p1.relative=lGt;function CFe(e){var t=PFe(e),r=e.substr(-1)==="/",n=OFe(e.split("/").filter(function(i){return!!i}),!t).join("/");return!n&&!t&&(n="."),n&&r&&(n+="/"),(t?"/":"")+n}p1.normalizePath=CFe;function PFe(e){return e.charAt(0)==="/"}p1.isAbsolute=PFe;function pGt(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return CFe(e.join("/"))}p1.join=pGt;function fGt(e){var t=DFe(e),r=t[0],n=t[1];return!r&&!n?".":(n&&(n=n.substr(0,n.length-1)),r+n)}p1.dirname=fGt;function dGt(e,t){var r=DFe(e)[2];return t&&r.substr(t.length*-1)===t&&(r=r.substr(0,r.length-t.length)),r}p1.basename=dGt});var vie=b(c7=>{Object.defineProperty(c7,"__esModule",{value:!0});var hGt=c1();function mGt(e){return new gie(function(t){t(e)})}c7.resolvedSyncPromise=mGt;function gGt(e){return new gie(function(t,r){r(e)})}c7.rejectedSyncPromise=gGt;var gie=function(){function e(t){var r=this;this._state=0,this._handlers=[],this._resolve=function(n){r._setResult(1,n)},this._reject=function(n){r._setResult(2,n)},this._setResult=function(n,i){if(r._state===0){if(hGt.isThenable(i)){i.then(r._resolve,r._reject);return}r._state=n,r._value=i,r._executeHandlers()}},this._executeHandlers=function(){if(r._state!==0){var n=r._handlers.slice();r._handlers=[],n.forEach(function(i){i[0]||(r._state===1&&i[1](r._value),r._state===2&&i[2](r._value),i[0]=!0)})}};try{t(this._resolve,this._reject)}catch(n){this._reject(n)}}return e.prototype.then=function(t,r){var n=this;return new e(function(i,a){n._handlers.push([!1,function(s){if(!t)i(s);else try{i(t(s))}catch(o){a(o)}},function(s){if(!r)a(s);else try{i(r(s))}catch(o){a(o)}}]),n._executeHandlers()})},e.prototype.catch=function(t){return this.then(function(r){return r},t)},e.prototype.finally=function(t){var r=this;return new e(function(n,i){var a,s;return r.then(function(o){s=!1,a=o,t&&t()},function(o){s=!0,a=o,t&&t()}).then(function(){if(s){i(a);return}n(a)})})},e}();c7.SyncPromise=gie});var RFe=b(bie=>{Object.defineProperty(bie,"__esModule",{value:!0});var vGt=SR(),yie=vie();function yGt(e){var t=[];function r(){return e===void 0||t.length<e}function n(s){return t.splice(t.indexOf(s),1)[0]}function i(s){if(!r())return yie.rejectedSyncPromise(new vGt.SentryError("Not adding Promise due to buffer limit reached."));var o=s();return t.indexOf(o)===-1&&t.push(o),o.then(function(){return n(o)}).then(null,function(){return n(o).then(null,function(){})}),o}function a(s){return new yie.SyncPromise(function(o,c){var p=t.length;if(!p)return o(!0);var f=setTimeout(function(){s&&s>0&&o(!1)},s);t.forEach(function(d){yie.resolvedSyncPromise(d).then(function(){--p||(clearTimeout(f),o(!0))},c)})})}return{$:t,add:i,drain:a}}bie.makePromiseBuffer=yGt});var jFe=b(wie=>{Object.defineProperty(wie,"__esModule",{value:!0});var FFe=Fd(),bGt=Xne();function wGt(e){return bGt.SeverityLevels.indexOf(e)!==-1}function _Gt(e){return e==="warn"?FFe.Severity.Warning:wGt(e)?e:FFe.Severity.Log}wie.severityFromString=_Gt});var NFe=b(_ie=>{Object.defineProperty(_ie,"__esModule",{value:!0});function xGt(e){return e>=200&&e<300?"success":e===429?"rate_limit":e>=400&&e<500?"invalid":e>=500?"failed":"unknown"}_ie.eventStatusFromHttpCode=xGt});var Eie=b((Vl,BFe)=>{Object.defineProperty(Vl,"__esModule",{value:!0});var LFe=og(),$Fe=_R(),xie={nowSeconds:function(){return Date.now()/1e3}};function EGt(){var e=LFe.getGlobalObject().performance;if(!(!e||!e.now)){var t=Date.now()-e.now();return{now:function(){return e.now()},timeOrigin:t}}}function SGt(){try{var e=$Fe.dynamicRequire(BFe,"perf_hooks");return e.performance}catch{return}}var NR=$Fe.isNodeEnv()?SGt():EGt(),qFe=NR===void 0?xie:{nowSeconds:function(){return(NR.timeOrigin+NR.now())/1e3}};Vl.dateTimestampInSeconds=xie.nowSeconds.bind(xie);Vl.timestampInSeconds=qFe.nowSeconds.bind(qFe);Vl.timestampWithMs=Vl.timestampInSeconds;Vl.usingPerformanceAPI=NR!==void 0;Vl.browserPerformanceTimeOrigin=function(){var e=LFe.getGlobalObject().performance;if(!e||!e.now){Vl._browserPerformanceTimeOriginMode="none";return}var t=3600*1e3,r=e.now(),n=Date.now(),i=e.timeOrigin?Math.abs(e.timeOrigin+r-n):t,a=i<t,s=e.timing&&e.timing.navigationStart,o=typeof s=="number",c=o?Math.abs(s+r-n):t,p=c<t;return a||p?i<=c?(Vl._browserPerformanceTimeOriginMode="timeOrigin",e.timeOrigin):(Vl._browserPerformanceTimeOriginMode="navigationStart",s):(Vl._browserPerformanceTimeOriginMode="dateNow",n)}()});var MFe=b(l7=>{Object.defineProperty(l7,"__esModule",{value:!0});l7.TRACEPARENT_REGEXP=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$");function kGt(e){var t=e.match(l7.TRACEPARENT_REGEXP);if(t){var r=void 0;return t[3]==="1"?r=!0:t[3]==="0"&&(r=!1),{traceId:t[1],parentSampled:r,parentSpanId:t[2]}}}l7.extractTraceparentData=kGt});var Sie=b(X6=>{Object.defineProperty(X6,"__esModule",{value:!0});var yb=(Hl(),_n(zl)),AGt=c1();function TGt(e,t){return t===void 0&&(t=[]),[e,t]}X6.createEnvelope=TGt;function OGt(e,t){var r=yb.__read(e,2),n=r[0],i=r[1];return[n,yb.__spread(i,[t])]}X6.addItemToEnvelope=OGt;function DGt(e){var t=yb.__read(e,2),r=yb.__read(t[1],1),n=yb.__read(r[0],1),i=n[0];return i.type}X6.getEnvelopeType=DGt;function CGt(e){var t=yb.__read(e,2),r=t[0],n=t[1],i=JSON.stringify(r);return n.reduce(function(a,s){var o=yb.__read(s,2),c=o[0],p=o[1],f=AGt.isPrimitive(p)?String(p):JSON.stringify(p);return a+`
`+JSON.stringify(c)+`
`+f},i)}X6.serializeEnvelope=CGt});var UFe=b(kie=>{Object.defineProperty(kie,"__esModule",{value:!0});var PGt=Sie(),IGt=Eie();function RGt(e,t,r){var n=[{type:"client_report"},{timestamp:r||IGt.dateTimestampInSeconds(),discarded_events:e}];return PGt.createEnvelope(t?{dsn:t}:{},[n])}kie.createClientReportEnvelope=RGt});var VFe=b(ug=>{Object.defineProperty(ug,"__esModule",{value:!0});var Aie=(Hl(),_n(zl));ug.DEFAULT_RETRY_AFTER=60*1e3;function zFe(e,t){t===void 0&&(t=Date.now());var r=parseInt(""+e,10);if(!isNaN(r))return r*1e3;var n=Date.parse(""+e);return isNaN(n)?ug.DEFAULT_RETRY_AFTER:n-t}ug.parseRetryAfterHeader=zFe;function HFe(e,t){return e[t]||e.all||0}ug.disabledUntil=HFe;function FGt(e,t,r){return r===void 0&&(r=Date.now()),HFe(e,t)>r}ug.isRateLimited=FGt;function jGt(e,t,r){var n,i,a,s;r===void 0&&(r=Date.now());var o=Aie.__assign({},e),c=t["x-sentry-rate-limits"],p=t["retry-after"];if(c)try{for(var f=Aie.__values(c.trim().split(",")),d=f.next();!d.done;d=f.next()){var h=d.value,g=h.split(":",2),v=parseInt(g[0],10),y=(isNaN(v)?60:v)*1e3;if(!g[1])o.all=r+y;else try{for(var _=(a=void 0,Aie.__values(g[1].split(";"))),x=_.next();!x.done;x=_.next()){var A=x.value;o[A]=r+y}}catch(D){a={error:D}}finally{try{x&&!x.done&&(s=_.return)&&s.call(_)}finally{if(a)throw a.error}}}}catch(D){n={error:D}}finally{try{d&&!d.done&&(i=f.return)&&i.call(f)}finally{if(n)throw n.error}}else p&&(o.all=r+zFe(p,r));return o}ug.updateRateLimits=jGt});var Vr=b(ri=>{Object.defineProperty(ri,"__esModule",{value:!0});var _i=(Hl(),_n(zl));_i.__exportStar(tFe(),ri);_i.__exportStar(Wne(),ri);_i.__exportStar(sFe(),ri);_i.__exportStar(Xne(),ri);_i.__exportStar(SR(),ri);_i.__exportStar(og(),ri);_i.__exportStar(wFe(),ri);_i.__exportStar(c1(),ri);_i.__exportStar(TR(),ri);_i.__exportStar(pie(),ri);_i.__exportStar(xFe(),ri);_i.__exportStar(_R(),ri);_i.__exportStar(AFe(),ri);_i.__exportStar(i7(),ri);_i.__exportStar(IFe(),ri);_i.__exportStar(RFe(),ri);_i.__exportStar(jFe(),ri);_i.__exportStar(CR(),ri);_i.__exportStar(NFe(),ri);_i.__exportStar(OR(),ri);_i.__exportStar(aie(),ri);_i.__exportStar(vie(),ri);_i.__exportStar(Eie(),ri);_i.__exportStar(MFe(),ri);_i.__exportStar(mb(),ri);_i.__exportStar(Sie(),ri);_i.__exportStar(UFe(),ri);_i.__exportStar(VFe(),ri)});var Tie=b(qR=>{Object.defineProperty(qR,"__esModule",{value:!0});var Kr=(Mne(),_n(Bne)),p7=Vr(),GFe=100,NGt=function(){function e(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={}}return e.clone=function(t){var r=new e;return t&&(r._breadcrumbs=Kr.__spread(t._breadcrumbs),r._tags=Kr.__assign({},t._tags),r._extra=Kr.__assign({},t._extra),r._contexts=Kr.__assign({},t._contexts),r._user=t._user,r._level=t._level,r._span=t._span,r._session=t._session,r._transactionName=t._transactionName,r._fingerprint=t._fingerprint,r._eventProcessors=Kr.__spread(t._eventProcessors),r._requestSession=t._requestSession),r},e.prototype.addScopeListener=function(t){this._scopeListeners.push(t)},e.prototype.addEventProcessor=function(t){return this._eventProcessors.push(t),this},e.prototype.setUser=function(t){return this._user=t||{},this._session&&this._session.update({user:t}),this._notifyScopeListeners(),this},e.prototype.getUser=function(){return this._user},e.prototype.getRequestSession=function(){return this._requestSession},e.prototype.setRequestSession=function(t){return this._requestSession=t,this},e.prototype.setTags=function(t){return this._tags=Kr.__assign(Kr.__assign({},this._tags),t),this._notifyScopeListeners(),this},e.prototype.setTag=function(t,r){var n;return this._tags=Kr.__assign(Kr.__assign({},this._tags),(n={},n[t]=r,n)),this._notifyScopeListeners(),this},e.prototype.setExtras=function(t){return this._extra=Kr.__assign(Kr.__assign({},this._extra),t),this._notifyScopeListeners(),this},e.prototype.setExtra=function(t,r){var n;return this._extra=Kr.__assign(Kr.__assign({},this._extra),(n={},n[t]=r,n)),this._notifyScopeListeners(),this},e.prototype.setFingerprint=function(t){return this._fingerprint=t,this._notifyScopeListeners(),this},e.prototype.setLevel=function(t){return this._level=t,this._notifyScopeListeners(),this},e.prototype.setTransactionName=function(t){return this._transactionName=t,this._notifyScopeListeners(),this},e.prototype.setTransaction=function(t){return this.setTransactionName(t)},e.prototype.setContext=function(t,r){var n;return r===null?delete this._contexts[t]:this._contexts=Kr.__assign(Kr.__assign({},this._contexts),(n={},n[t]=r,n)),this._notifyScopeListeners(),this},e.prototype.setSpan=function(t){return this._span=t,this._notifyScopeListeners(),this},e.prototype.getSpan=function(){return this._span},e.prototype.getTransaction=function(){var t=this.getSpan();return t&&t.transaction},e.prototype.setSession=function(t){return t?this._session=t:delete this._session,this._notifyScopeListeners(),this},e.prototype.getSession=function(){return this._session},e.prototype.update=function(t){if(!t)return this;if(typeof t=="function"){var r=t(this);return r instanceof e?r:this}return t instanceof e?(this._tags=Kr.__assign(Kr.__assign({},this._tags),t._tags),this._extra=Kr.__assign(Kr.__assign({},this._extra),t._extra),this._contexts=Kr.__assign(Kr.__assign({},this._contexts),t._contexts),t._user&&Object.keys(t._user).length&&(this._user=t._user),t._level&&(this._level=t._level),t._fingerprint&&(this._fingerprint=t._fingerprint),t._requestSession&&(this._requestSession=t._requestSession)):p7.isPlainObject(t)&&(t=t,this._tags=Kr.__assign(Kr.__assign({},this._tags),t.tags),this._extra=Kr.__assign(Kr.__assign({},this._extra),t.extra),this._contexts=Kr.__assign(Kr.__assign({},this._contexts),t.contexts),t.user&&(this._user=t.user),t.level&&(this._level=t.level),t.fingerprint&&(this._fingerprint=t.fingerprint),t.requestSession&&(this._requestSession=t.requestSession)),this},e.prototype.clear=function(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._requestSession=void 0,this._span=void 0,this._session=void 0,this._notifyScopeListeners(),this},e.prototype.addBreadcrumb=function(t,r){var n=typeof r=="number"?Math.min(r,GFe):GFe;if(n<=0)return this;var i=Kr.__assign({timestamp:p7.dateTimestampInSeconds()},t);return this._breadcrumbs=Kr.__spread(this._breadcrumbs,[i]).slice(-n),this._notifyScopeListeners(),this},e.prototype.clearBreadcrumbs=function(){return this._breadcrumbs=[],this._notifyScopeListeners(),this},e.prototype.applyToEvent=function(t,r){if(this._extra&&Object.keys(this._extra).length&&(t.extra=Kr.__assign(Kr.__assign({},this._extra),t.extra)),this._tags&&Object.keys(this._tags).length&&(t.tags=Kr.__assign(Kr.__assign({},this._tags),t.tags)),this._user&&Object.keys(this._user).length&&(t.user=Kr.__assign(Kr.__assign({},this._user),t.user)),this._contexts&&Object.keys(this._contexts).length&&(t.contexts=Kr.__assign(Kr.__assign({},this._contexts),t.contexts)),this._level&&(t.level=this._level),this._transactionName&&(t.transaction=this._transactionName),this._span){t.contexts=Kr.__assign({trace:this._span.getTraceContext()},t.contexts);var n=this._span.transaction&&this._span.transaction.name;n&&(t.tags=Kr.__assign({transaction:n},t.tags))}return this._applyFingerprint(t),t.breadcrumbs=Kr.__spread(t.breadcrumbs||[],this._breadcrumbs),t.breadcrumbs=t.breadcrumbs.length>0?t.breadcrumbs:void 0,t.sdkProcessingMetadata=this._sdkProcessingMetadata,this._notifyEventProcessors(Kr.__spread(WFe(),this._eventProcessors),t,r)},e.prototype.setSDKProcessingMetadata=function(t){return this._sdkProcessingMetadata=Kr.__assign(Kr.__assign({},this._sdkProcessingMetadata),t),this},e.prototype._notifyEventProcessors=function(t,r,n,i){var a=this;return i===void 0&&(i=0),new p7.SyncPromise(function(s,o){var c=t[i];if(r===null||typeof c!="function")s(r);else{var p=c(Kr.__assign({},r),n);p7.isThenable(p)?p.then(function(f){return a._notifyEventProcessors(t,f,n,i+1).then(s)}).then(null,o):a._notifyEventProcessors(t,p,n,i+1).then(s).then(null,o)}})},e.prototype._notifyScopeListeners=function(){var t=this;this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(function(r){r(t)}),this._notifyingListeners=!1)},e.prototype._applyFingerprint=function(t){t.fingerprint=t.fingerprint?Array.isArray(t.fingerprint)?t.fingerprint:[t.fingerprint]:[],this._fingerprint&&(t.fingerprint=t.fingerprint.concat(this._fingerprint)),t.fingerprint&&!t.fingerprint.length&&delete t.fingerprint},e}();qR.Scope=NGt;function WFe(){var e=p7.getGlobalObject();return e.__SENTRY__=e.__SENTRY__||{},e.__SENTRY__.globalEventProcessors=e.__SENTRY__.globalEventProcessors||[],e.__SENTRY__.globalEventProcessors}function qGt(e){WFe().push(e)}qR.addGlobalEventProcessor=qGt});var Die=b(Oie=>{Object.defineProperty(Oie,"__esModule",{value:!0});var f7=Vr(),LGt=function(){function e(t){this.errors=0,this.sid=f7.uuid4(),this.duration=0,this.status="ok",this.init=!0,this.ignoreDuration=!1;var r=f7.timestampInSeconds();this.timestamp=r,this.started=r,t&&this.update(t)}return e.prototype.update=function(t){if(t===void 0&&(t={}),t.user&&(!this.ipAddress&&t.user.ip_address&&(this.ipAddress=t.user.ip_address),!this.did&&!t.did&&(this.did=t.user.id||t.user.email||t.user.username)),this.timestamp=t.timestamp||f7.timestampInSeconds(),t.ignoreDuration&&(this.ignoreDuration=t.ignoreDuration),t.sid&&(this.sid=t.sid.length===32?t.sid:f7.uuid4()),t.init!==void 0&&(this.init=t.init),!this.did&&t.did&&(this.did=""+t.did),typeof t.started=="number"&&(this.started=t.started),this.ignoreDuration)this.duration=void 0;else if(typeof t.duration=="number")this.duration=t.duration;else{var r=this.timestamp-this.started;this.duration=r>=0?r:0}t.release&&(this.release=t.release),t.environment&&(this.environment=t.environment),!this.ipAddress&&t.ipAddress&&(this.ipAddress=t.ipAddress),!this.userAgent&&t.userAgent&&(this.userAgent=t.userAgent),typeof t.errors=="number"&&(this.errors=t.errors),t.status&&(this.status=t.status)},e.prototype.close=function(t){t?this.update({status:t}):this.status==="ok"?this.update({status:"exited"}):this.update()},e.prototype.toJSON=function(){return f7.dropUndefinedKeys({sid:""+this.sid,init:this.init,started:new Date(this.started*1e3).toISOString(),timestamp:new Date(this.timestamp*1e3).toISOString(),status:this.status,errors:this.errors,did:typeof this.did=="number"||typeof this.did=="string"?""+this.did:void 0,duration:this.duration,attrs:{release:this.release,environment:this.environment,ip_address:this.ipAddress,user_agent:this.userAgent}})},e}();Oie.Session=LGt});var Iie=b(ml=>{Object.defineProperty(ml,"__esModule",{value:!0});var xf=(Mne(),_n(Bne)),kc=Vr(),Cie=Tie(),$Gt=Die();ml.API_VERSION=4;var BGt=100,LR=function(){function e(t,r,n){r===void 0&&(r=new Cie.Scope),n===void 0&&(n=ml.API_VERSION),this._version=n,this._stack=[{}],this.getStackTop().scope=r,t&&this.bindClient(t)}return e.prototype.isOlderThan=function(t){return this._version<t},e.prototype.bindClient=function(t){var r=this.getStackTop();r.client=t,t&&t.setupIntegrations&&t.setupIntegrations()},e.prototype.pushScope=function(){var t=Cie.Scope.clone(this.getScope());return this.getStack().push({client:this.getClient(),scope:t}),t},e.prototype.popScope=function(){return this.getStack().length<=1?!1:!!this.getStack().pop()},e.prototype.withScope=function(t){var r=this.pushScope();try{t(r)}finally{this.popScope()}},e.prototype.getClient=function(){return this.getStackTop().client},e.prototype.getScope=function(){return this.getStackTop().scope},e.prototype.getStack=function(){return this._stack},e.prototype.getStackTop=function(){return this._stack[this._stack.length-1]},e.prototype.captureException=function(t,r){var n=this._lastEventId=r&&r.event_id?r.event_id:kc.uuid4(),i=r;if(!r){var a=void 0;try{throw new Error("Sentry syntheticException")}catch(s){a=s}i={originalException:t,syntheticException:a}}return this._invokeClient("captureException",t,xf.__assign(xf.__assign({},i),{event_id:n})),n},e.prototype.captureMessage=function(t,r,n){var i=this._lastEventId=n&&n.event_id?n.event_id:kc.uuid4(),a=n;if(!n){var s=void 0;try{throw new Error(t)}catch(o){s=o}a={originalException:t,syntheticException:s}}return this._invokeClient("captureMessage",t,r,xf.__assign(xf.__assign({},a),{event_id:i})),i},e.prototype.captureEvent=function(t,r){var n=r&&r.event_id?r.event_id:kc.uuid4();return t.type!=="transaction"&&(this._lastEventId=n),this._invokeClient("captureEvent",t,xf.__assign(xf.__assign({},r),{event_id:n})),n},e.prototype.lastEventId=function(){return this._lastEventId},e.prototype.addBreadcrumb=function(t,r){var n=this.getStackTop(),i=n.scope,a=n.client;if(!(!i||!a)){var s=a.getOptions&&a.getOptions()||{},o=s.beforeBreadcrumb,c=o===void 0?null:o,p=s.maxBreadcrumbs,f=p===void 0?BGt:p;if(!(f<=0)){var d=kc.dateTimestampInSeconds(),h=xf.__assign({timestamp:d},t),g=c?kc.consoleSandbox(function(){return c(h,r)}):h;g!==null&&i.addBreadcrumb(g,f)}}},e.prototype.setUser=function(t){var r=this.getScope();r&&r.setUser(t)},e.prototype.setTags=function(t){var r=this.getScope();r&&r.setTags(t)},e.prototype.setExtras=function(t){var r=this.getScope();r&&r.setExtras(t)},e.prototype.setTag=function(t,r){var n=this.getScope();n&&n.setTag(t,r)},e.prototype.setExtra=function(t,r){var n=this.getScope();n&&n.setExtra(t,r)},e.prototype.setContext=function(t,r){var n=this.getScope();n&&n.setContext(t,r)},e.prototype.configureScope=function(t){var r=this.getStackTop(),n=r.scope,i=r.client;n&&i&&t(n)},e.prototype.run=function(t){var r=Pie(this);try{t(this)}finally{Pie(r)}},e.prototype.getIntegration=function(t){var r=this.getClient();if(!r)return null;try{return r.getIntegration(t)}catch{return kc.isDebugBuild()&&kc.logger.warn("Cannot retrieve integration "+t.id+" from the current Hub"),null}},e.prototype.startSpan=function(t){return this._callExtensionMethod("startSpan",t)},e.prototype.startTransaction=function(t,r){return this._callExtensionMethod("startTransaction",t,r)},e.prototype.traceHeaders=function(){return this._callExtensionMethod("traceHeaders")},e.prototype.captureSession=function(t){if(t===void 0&&(t=!1),t)return this.endSession();this._sendSessionUpdate()},e.prototype.endSession=function(){var t=this.getStackTop(),r=t&&t.scope,n=r&&r.getSession();n&&n.close(),this._sendSessionUpdate(),r&&r.setSession()},e.prototype.startSession=function(t){var r=this.getStackTop(),n=r.scope,i=r.client,a=i&&i.getOptions()||{},s=a.release,o=a.environment,c=kc.getGlobalObject(),p=(c.navigator||{}).userAgent,f=new $Gt.Session(xf.__assign(xf.__assign(xf.__assign({release:s,environment:o},n&&{user:n.getUser()}),p&&{userAgent:p}),t));if(n){var d=n.getSession&&n.getSession();d&&d.status==="ok"&&d.update({status:"exited"}),this.endSession(),n.setSession(f)}return f},e.prototype._sendSessionUpdate=function(){var t=this.getStackTop(),r=t.scope,n=t.client;if(r){var i=r.getSession&&r.getSession();i&&n&&n.captureSession&&n.captureSession(i)}},e.prototype._invokeClient=function(t){for(var r,n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];var a=this.getStackTop(),s=a.scope,o=a.client;o&&o[t]&&(r=o)[t].apply(r,xf.__spread(n,[s]))},e.prototype._callExtensionMethod=function(t){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];var i=Q6(),a=i.__SENTRY__;if(a&&a.extensions&&typeof a.extensions[t]=="function")return a.extensions[t].apply(this,r);kc.isDebugBuild()&&kc.logger.warn("Extension method "+t+" couldn't be found, doing nothing.")},e}();ml.Hub=LR;function Q6(){var e=kc.getGlobalObject();return e.__SENTRY__=e.__SENTRY__||{extensions:{},hub:void 0},e}ml.getMainCarrier=Q6;function Pie(e){var t=Q6(),r=f1(t);return $R(t,e),r}ml.makeMain=Pie;function MGt(){var e=Q6();return(!KFe(e)||f1(e).isOlderThan(ml.API_VERSION))&&$R(e,new LR),kc.isNodeEnv()?zGt(e):f1(e)}ml.getCurrentHub=MGt;function UGt(){kc.isDebugBuild()&&kc.logger.warn("Function `getActiveDomain` is deprecated and will be removed in a future version.");var e=Q6().__SENTRY__;return e&&e.extensions&&e.extensions.domain&&e.extensions.domain.active}ml.getActiveDomain=UGt;function zGt(e){try{var t=Q6().__SENTRY__,r=t&&t.extensions&&t.extensions.domain&&t.extensions.domain.active;if(!r)return f1(e);if(!KFe(r)||f1(r).isOlderThan(ml.API_VERSION)){var n=f1(e).getStackTop();$R(r,new LR(n.client,Cie.Scope.clone(n.scope)))}return f1(r)}catch{return f1(e)}}function KFe(e){return!!(e&&e.__SENTRY__&&e.__SENTRY__.hub)}function f1(e){return e&&e.__SENTRY__&&e.__SENTRY__.hub||(e.__SENTRY__=e.__SENTRY__||{},e.__SENTRY__.hub=new LR),e.__SENTRY__.hub}ml.getHubFromCarrier=f1;function $R(e,t){return e?(e.__SENTRY__=e.__SENTRY__||{},e.__SENTRY__.hub=t,!0):!1}ml.setHubOnCarrier=$R});var YFe=b(Rie=>{Object.defineProperty(Rie,"__esModule",{value:!0});var d7=Vr(),HGt=Iie(),VGt=function(){function e(t,r){var n=this;this.flushTimeout=60,this._pendingAggregates={},this._isEnabled=!0,this._transport=t,this._intervalId=setInterval(function(){return n.flush()},this.flushTimeout*1e3),this._sessionAttrs=r}return e.prototype.sendSessionAggregates=function(t){if(!this._transport.sendSession){d7.isDebugBuild()&&d7.logger.warn("Dropping session because custom transport doesn't implement sendSession");return}this._transport.sendSession(t).then(null,function(r){d7.isDebugBuild()&&d7.logger.error("Error while sending session:",r)})},e.prototype.flush=function(){var t=this.getSessionAggregates();t.aggregates.length!==0&&(this._pendingAggregates={},this.sendSessionAggregates(t))},e.prototype.getSessionAggregates=function(){var t=this,r=Object.keys(this._pendingAggregates).map(function(i){return t._pendingAggregates[parseInt(i)]}),n={attrs:this._sessionAttrs,aggregates:r};return d7.dropUndefinedKeys(n)},e.prototype.close=function(){clearInterval(this._intervalId),this._isEnabled=!1,this.flush()},e.prototype.incrementSessionStatusCount=function(){if(this._isEnabled){var t=HGt.getCurrentHub().getScope(),r=t&&t.getRequestSession();r&&r.status&&(this._incrementSessionStatusCount(r.status,new Date),t&&t.setRequestSession(void 0))}},e.prototype._incrementSessionStatusCount=function(t,r){var n=new Date(r).setSeconds(0,0);this._pendingAggregates[n]=this._pendingAggregates[n]||{};var i=this._pendingAggregates[n];switch(i.started||(i.started=new Date(n).toISOString()),t){case"errored":return i.errored=(i.errored||0)+1,i.errored;case"ok":return i.exited=(i.exited||0)+1,i.exited;default:return i.crashed=(i.crashed||0)+1,i.crashed}},e}();Rie.SessionFlusher=VGt});var jd=b(gl=>{Object.defineProperty(gl,"__esModule",{value:!0});var JFe=Tie();gl.addGlobalEventProcessor=JFe.addGlobalEventProcessor;gl.Scope=JFe.Scope;var GGt=Die();gl.Session=GGt.Session;var WGt=YFe();gl.SessionFlusher=WGt.SessionFlusher;var bb=Iie();gl.getActiveDomain=bb.getActiveDomain;gl.getCurrentHub=bb.getCurrentHub;gl.getHubFromCarrier=bb.getHubFromCarrier;gl.getMainCarrier=bb.getMainCarrier;gl.Hub=bb.Hub;gl.makeMain=bb.makeMain;gl.setHubOnCarrier=bb.setHubOnCarrier});var XFe=b(pu=>{Object.defineProperty(pu,"__esModule",{value:!0});var BR=(QRe(),_n(XRe)),KGt=jd();function Ac(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var n=KGt.getCurrentHub();if(n&&n[e])return n[e].apply(n,BR.__spread(t));throw new Error("No hub defined or "+e+" was not found on the hub, please open a bug report.")}function YGt(e,t){var r=new Error("Sentry syntheticException");return Ac("captureException",e,{captureContext:t,originalException:e,syntheticException:r})}pu.captureException=YGt;function JGt(e,t){var r=new Error(e),n=typeof t=="string"?t:void 0,i=typeof t!="string"?{captureContext:t}:void 0;return Ac("captureMessage",e,n,BR.__assign({originalException:e,syntheticException:r},i))}pu.captureMessage=JGt;function XGt(e){return Ac("captureEvent",e)}pu.captureEvent=XGt;function QGt(e){Ac("configureScope",e)}pu.configureScope=QGt;function ZGt(e){Ac("addBreadcrumb",e)}pu.addBreadcrumb=ZGt;function eWt(e,t){Ac("setContext",e,t)}pu.setContext=eWt;function tWt(e){Ac("setExtras",e)}pu.setExtras=tWt;function rWt(e){Ac("setTags",e)}pu.setTags=rWt;function nWt(e,t){Ac("setExtra",e,t)}pu.setExtra=nWt;function iWt(e,t){Ac("setTag",e,t)}pu.setTag=iWt;function aWt(e){Ac("setUser",e)}pu.setUser=aWt;function sWt(e){Ac("withScope",e)}pu.withScope=sWt;function oWt(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];Ac.apply(void 0,BR.__spread(["_invokeClient",e],t))}pu._callOnClient=oWt;function uWt(e,t){return Ac("startTransaction",BR.__assign({},e),t)}pu.startTransaction=uWt});var MR=b(cg=>{Object.defineProperty(cg,"__esModule",{value:!0});var h7=Vr(),QFe="7",cWt=function(){function e(t,r,n){r===void 0&&(r={}),this.dsn=t,this._dsnObject=h7.makeDsn(t),this.metadata=r,this._tunnel=n}return e.prototype.getDsn=function(){return this._dsnObject},e.prototype.forceEnvelope=function(){return!!this._tunnel},e.prototype.getBaseApiEndpoint=function(){return Fie(this._dsnObject)},e.prototype.getStoreEndpoint=function(){return tje(this._dsnObject)},e.prototype.getStoreEndpointWithUrlEncodedAuth=function(){return rje(this._dsnObject)},e.prototype.getEnvelopeEndpointWithUrlEncodedAuth=function(){return nje(this._dsnObject,this._tunnel)},e}();cg.API=cWt;function lWt(e,t,r){return{initDsn:e,metadata:t||{},dsn:h7.makeDsn(e),tunnel:r}}cg.initAPIDetails=lWt;function Fie(e){var t=e.protocol?e.protocol+":":"",r=e.port?":"+e.port:"";return t+"//"+e.host+r+(e.path?"/"+e.path:"")+"/api/"}function ZFe(e,t){return""+Fie(e)+e.projectId+"/"+t+"/"}function eje(e){return h7.urlEncode({sentry_key:e.publicKey,sentry_version:QFe})}function tje(e){return ZFe(e,"store")}function rje(e){return tje(e)+"?"+eje(e)}cg.getStoreEndpointWithUrlEncodedAuth=rje;function pWt(e){return ZFe(e,"envelope")}function nje(e,t){return t||pWt(e)+"?"+eje(e)}cg.getEnvelopeEndpointWithUrlEncodedAuth=nje;function fWt(e,t,r){var n=["Sentry sentry_version="+QFe];return n.push("sentry_client="+t+"/"+r),n.push("sentry_key="+e.publicKey),e.pass&&n.push("sentry_secret="+e.pass),{"Content-Type":"application/json","X-Sentry-Auth":n.join(", ")}}cg.getRequestHeaders=fWt;function dWt(e,t){var r=h7.makeDsn(e),n=Fie(r)+"embed/error-page/",i="dsn="+h7.dsnToString(r);for(var a in t)if(a!=="dsn")if(a==="user"){if(!t.user)continue;t.user.name&&(i+="&name="+encodeURIComponent(t.user.name)),t.user.email&&(i+="&email="+encodeURIComponent(t.user.email))}else i+="&"+encodeURIComponent(a)+"="+encodeURIComponent(t[a]);return n+"?"+i}cg.getReportDialogEndpoint=dWt});var Z6={};g2(Z6,{__assign:()=>Nie,__asyncDelegator:()=>AWt,__asyncGenerator:()=>kWt,__asyncValues:()=>TWt,__await:()=>m7,__awaiter:()=>bWt,__classPrivateFieldGet:()=>PWt,__classPrivateFieldSet:()=>IWt,__createBinding:()=>_Wt,__decorate:()=>gWt,__exportStar:()=>xWt,__extends:()=>hWt,__generator:()=>wWt,__importDefault:()=>CWt,__importStar:()=>DWt,__makeTemplateObject:()=>OWt,__metadata:()=>yWt,__param:()=>vWt,__read:()=>ije,__rest:()=>mWt,__spread:()=>EWt,__spreadArrays:()=>SWt,__values:()=>qie});function hWt(e,t){jie(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}function mWt(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]]);return r}function gWt(e,t,r,n){var i=arguments.length,a=i<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,r):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(e,t,r,n);else for(var o=e.length-1;o>=0;o--)(s=e[o])&&(a=(i<3?s(a):i>3?s(t,r,a):s(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a}function vWt(e,t){return function(r,n){t(r,n,e)}}function yWt(e,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(e,t)}function bWt(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{p(n.next(f))}catch(d){s(d)}}function c(f){try{p(n.throw(f))}catch(d){s(d)}}function p(f){f.done?a(f.value):i(f.value).then(o,c)}p((n=n.apply(e,t||[])).next())})}function wWt(e,t){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(p){return function(f){return c([p,f])}}function c(p){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(a=p[0]&2?i.return:p[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,p[1])).done)return a;switch(i=0,a&&(p=[p[0]&2,a.value]),p[0]){case 0:case 1:a=p;break;case 4:return r.label++,{value:p[1],done:!1};case 5:r.label++,i=p[1],p=[0];continue;case 7:p=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(p[0]===6||p[0]===2)){r=0;continue}if(p[0]===3&&(!a||p[1]>a[0]&&p[1]<a[3])){r.label=p[1];break}if(p[0]===6&&r.label<a[1]){r.label=a[1],a=p;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(p);break}a[2]&&r.ops.pop(),r.trys.pop();continue}p=t.call(e,r)}catch(f){p=[6,f],i=0}finally{n=a=0}if(p[0]&5)throw p[1];return{value:p[0]?p[1]:void 0,done:!0}}}function _Wt(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}function xWt(e,t){for(var r in e)r!=="default"&&!t.hasOwnProperty(r)&&(t[r]=e[r])}function qie(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function ije(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),i,a=[],s;try{for(;(t===void 0||t-- >0)&&!(i=n.next()).done;)a.push(i.value)}catch(o){s={error:o}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(s)throw s.error}}return a}function EWt(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(ije(arguments[t]));return e}function SWt(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;for(var n=Array(e),i=0,t=0;t<r;t++)for(var a=arguments[t],s=0,o=a.length;s<o;s++,i++)n[i]=a[s];return n}function m7(e){return this instanceof m7?(this.v=e,this):new m7(e)}function kWt(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=r.apply(e,t||[]),i,a=[];return i={},s("next"),s("throw"),s("return"),i[Symbol.asyncIterator]=function(){return this},i;function s(h){n[h]&&(i[h]=function(g){return new Promise(function(v,y){a.push([h,g,v,y])>1||o(h,g)})})}function o(h,g){try{c(n[h](g))}catch(v){d(a[0][3],v)}}function c(h){h.value instanceof m7?Promise.resolve(h.value.v).then(p,f):d(a[0][2],h)}function p(h){o("next",h)}function f(h){o("throw",h)}function d(h,g){h(g),a.shift(),a.length&&o(a[0][0],a[0][1])}}function AWt(e){var t,r;return t={},n("next"),n("throw",function(i){throw i}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(i,a){t[i]=e[i]?function(s){return(r=!r)?{value:m7(e[i](s)),done:i==="return"}:a?a(s):s}:a}}function TWt(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof qie=="function"?qie(e):e[Symbol.iterator](),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(a){r[a]=e[a]&&function(s){return new Promise(function(o,c){s=e[a](s),i(o,c,s.done,s.value)})}}function i(a,s,o,c){Promise.resolve(c).then(function(p){a({value:p,done:o})},s)}}function OWt(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function DWt(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function CWt(e){return e&&e.__esModule?e:{default:e}}function PWt(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)}function IWt(e,t,r){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,r),r}var jie,Nie,e4=ns(()=>{jie=function(e,t){return jie=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)n.hasOwnProperty(i)&&(r[i]=n[i])},jie(e,t)};Nie=function(){return Nie=Object.assign||function(t){for(var r,n=1,i=arguments.length;n<i;n++){r=arguments[n];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(t[a]=r[a])}return t},Nie.apply(this,arguments)}});var cje=b(lg=>{Object.defineProperty(lg,"__esModule",{value:!0});var UR=(e4(),_n(Z6)),aje=jd(),Lie=Vr();lg.installedIntegrations=[];function sje(e){return e.reduce(function(t,r){return t.every(function(n){return r.name!==n.name})&&t.push(r),t},[])}function oje(e){var t=e.defaultIntegrations&&UR.__spread(e.defaultIntegrations)||[],r=e.integrations,n=UR.__spread(sje(t));Array.isArray(r)?n=UR.__spread(n.filter(function(s){return r.every(function(o){return o.name!==s.name})}),sje(r)):typeof r=="function"&&(n=r(n),n=Array.isArray(n)?n:[n]);var i=n.map(function(s){return s.name}),a="Debug";return i.indexOf(a)!==-1&&n.push.apply(n,UR.__spread(n.splice(i.indexOf(a),1))),n}lg.getIntegrationsToSetup=oje;function uje(e){lg.installedIntegrations.indexOf(e.name)===-1&&(e.setupOnce(aje.addGlobalEventProcessor,aje.getCurrentHub),lg.installedIntegrations.push(e.name),Lie.isDebugBuild()&&Lie.logger.log("Integration installed: "+e.name))}lg.setupIntegration=uje;function RWt(e){var t={};return oje(e).forEach(function(r){t[r.name]=r,uje(r)}),Lie.addNonEnumerableProperty(t,"initialized",!0),t}lg.setupIntegrations=RWt});var pje=b($ie=>{Object.defineProperty($ie,"__esModule",{value:!0});var Lo=(e4(),_n(Z6)),FWt=jd(),en=Vr(),jWt=cje(),lje="Not capturing exception because it's already been captured.",NWt=function(){function e(t,r){this._integrations={},this._numProcessing=0,this._backend=new t(r),this._options=r,r.dsn&&(this._dsn=en.makeDsn(r.dsn))}return e.prototype.captureException=function(t,r,n){var i=this;if(en.checkOrSetAlreadyCaught(t)){en.isDebugBuild()&&en.logger.log(lje);return}var a=r&&r.event_id;return this._process(this._getBackend().eventFromException(t,r).then(function(s){return i._captureEvent(s,r,n)}).then(function(s){a=s})),a},e.prototype.captureMessage=function(t,r,n,i){var a=this,s=n&&n.event_id,o=en.isPrimitive(t)?this._getBackend().eventFromMessage(String(t),r,n):this._getBackend().eventFromException(t,n);return this._process(o.then(function(c){return a._captureEvent(c,n,i)}).then(function(c){s=c})),s},e.prototype.captureEvent=function(t,r,n){if(r&&r.originalException&&en.checkOrSetAlreadyCaught(r.originalException)){en.isDebugBuild()&&en.logger.log(lje);return}var i=r&&r.event_id;return this._process(this._captureEvent(t,r,n).then(function(a){i=a})),i},e.prototype.captureSession=function(t){if(!this._isEnabled()){en.isDebugBuild()&&en.logger.warn("SDK not enabled, will not capture session.");return}typeof t.release!="string"?en.isDebugBuild()&&en.logger.warn("Discarded session because of missing or non-string release"):(this._sendSession(t),t.update({init:!1}))},e.prototype.getDsn=function(){return this._dsn},e.prototype.getOptions=function(){return this._options},e.prototype.getTransport=function(){return this._getBackend().getTransport()},e.prototype.flush=function(t){var r=this;return this._isClientDoneProcessing(t).then(function(n){return r.getTransport().close(t).then(function(i){return n&&i})})},e.prototype.close=function(t){var r=this;return this.flush(t).then(function(n){return r.getOptions().enabled=!1,n})},e.prototype.setupIntegrations=function(){this._isEnabled()&&!this._integrations.initialized&&(this._integrations=jWt.setupIntegrations(this._options))},e.prototype.getIntegration=function(t){try{return this._integrations[t.id]||null}catch{return en.isDebugBuild()&&en.logger.warn("Cannot retrieve integration "+t.id+" from the current Client"),null}},e.prototype._updateSessionFromEvent=function(t,r){var n,i,a=!1,s=!1,o=r.exception&&r.exception.values;if(o){s=!0;try{for(var c=Lo.__values(o),p=c.next();!p.done;p=c.next()){var f=p.value,d=f.mechanism;if(d&&d.handled===!1){a=!0;break}}}catch(v){n={error:v}}finally{try{p&&!p.done&&(i=c.return)&&i.call(c)}finally{if(n)throw n.error}}}var h=t.status==="ok",g=h&&t.errors===0||h&&a;g&&(t.update(Lo.__assign(Lo.__assign({},a&&{status:"crashed"}),{errors:t.errors||Number(s||a)})),this.captureSession(t))},e.prototype._sendSession=function(t){this._getBackend().sendSession(t)},e.prototype._isClientDoneProcessing=function(t){var r=this;return new en.SyncPromise(function(n){var i=0,a=1,s=setInterval(function(){r._numProcessing==0?(clearInterval(s),n(!0)):(i+=a,t&&i>=t&&(clearInterval(s),n(!1)))},a)})},e.prototype._getBackend=function(){return this._backend},e.prototype._isEnabled=function(){return this.getOptions().enabled!==!1&&this._dsn!==void 0},e.prototype._prepareEvent=function(t,r,n){var i=this,a=this.getOptions(),s=a.normalizeDepth,o=s===void 0?3:s,c=a.normalizeMaxBreadth,p=c===void 0?1e3:c,f=Lo.__assign(Lo.__assign({},t),{event_id:t.event_id||(n&&n.event_id?n.event_id:en.uuid4()),timestamp:t.timestamp||en.dateTimestampInSeconds()});this._applyClientOptions(f),this._applyIntegrationsMetadata(f);var d=r;n&&n.captureContext&&(d=FWt.Scope.clone(d).update(n.captureContext));var h=en.resolvedSyncPromise(f);return d&&(h=d.applyToEvent(f,n)),h.then(function(g){return g&&(g.sdkProcessingMetadata=Lo.__assign(Lo.__assign({},g.sdkProcessingMetadata),{normalizeDepth:en.normalize(o)})),typeof o=="number"&&o>0?i._normalizeEvent(g,o,p):g})},e.prototype._normalizeEvent=function(t,r,n){if(!t)return null;var i=Lo.__assign(Lo.__assign(Lo.__assign(Lo.__assign(Lo.__assign({},t),t.breadcrumbs&&{breadcrumbs:t.breadcrumbs.map(function(a){return Lo.__assign(Lo.__assign({},a),a.data&&{data:en.normalize(a.data,r,n)})})}),t.user&&{user:en.normalize(t.user,r,n)}),t.contexts&&{contexts:en.normalize(t.contexts,r,n)}),t.extra&&{extra:en.normalize(t.extra,r,n)});return t.contexts&&t.contexts.trace&&(i.contexts.trace=t.contexts.trace),t.sdkProcessingMetadata=Lo.__assign(Lo.__assign({},t.sdkProcessingMetadata),{baseClientNormalized:!0}),i},e.prototype._applyClientOptions=function(t){var r=this.getOptions(),n=r.environment,i=r.release,a=r.dist,s=r.maxValueLength,o=s===void 0?250:s;"environment"in t||(t.environment="environment"in r?n:"production"),t.release===void 0&&i!==void 0&&(t.release=i),t.dist===void 0&&a!==void 0&&(t.dist=a),t.message&&(t.message=en.truncate(t.message,o));var c=t.exception&&t.exception.values&&t.exception.values[0];c&&c.value&&(c.value=en.truncate(c.value,o));var p=t.request;p&&p.url&&(p.url=en.truncate(p.url,o))},e.prototype._applyIntegrationsMetadata=function(t){var r=Object.keys(this._integrations);r.length>0&&(t.sdk=t.sdk||{},t.sdk.integrations=Lo.__spread(t.sdk.integrations||[],r))},e.prototype._sendEvent=function(t){this._getBackend().sendEvent(t)},e.prototype._captureEvent=function(t,r,n){return this._processEvent(t,r,n).then(function(i){return i.event_id},function(i){en.isDebugBuild()&&en.logger.error(i)})},e.prototype._processEvent=function(t,r,n){var i=this,a=this.getOptions(),s=a.beforeSend,o=a.sampleRate,c=this.getTransport();function p(d,h){c.recordLostEvent&&c.recordLostEvent(d,h)}if(!this._isEnabled())return en.rejectedSyncPromise(new en.SentryError("SDK not enabled, will not capture event."));var f=t.type==="transaction";return!f&&typeof o=="number"&&Math.random()>o?(p("sample_rate","event"),en.rejectedSyncPromise(new en.SentryError("Discarding event because it's not included in the random sample (sampling rate = "+o+")"))):this._prepareEvent(t,n,r).then(function(d){if(d===null)throw p("event_processor",t.type||"event"),new en.SentryError("An event processor returned null, will not send event.");var h=r&&r.data&&r.data.__sentry__===!0;if(h||f||!s)return d;var g=s(d,r);return qWt(g)}).then(function(d){if(d===null)throw p("before_send",t.type||"event"),new en.SentryError("`beforeSend` returned `null`, will not send event.");var h=n&&n.getSession&&n.getSession();return!f&&h&&i._updateSessionFromEvent(h,d),i._sendEvent(d),d}).then(null,function(d){throw d instanceof en.SentryError?d:(i.captureException(d,{data:{__sentry__:!0},originalException:d}),new en.SentryError(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.
Reason: `+d))})},e.prototype._process=function(t){var r=this;this._numProcessing+=1,t.then(function(n){return r._numProcessing-=1,n},function(n){return r._numProcessing-=1,n})},e}();$ie.BaseClient=NWt;function qWt(e){var t="`beforeSend` method has to return `null` or a valid event.";if(en.isThenable(e))return e.then(function(r){if(!(en.isPlainObject(r)||r===null))throw new en.SentryError(t);return r},function(r){throw new en.SentryError("beforeSend rejected with "+r)});if(!(en.isPlainObject(e)||e===null))throw new en.SentryError(t);return e}});var Uie=b(t4=>{Object.defineProperty(t4,"__esModule",{value:!0});var h1=(e4(),_n(Z6)),d1=Vr(),Bie=MR();function Mie(e){if(!(!e.metadata||!e.metadata.sdk)){var t=e.metadata.sdk,r=t.name,n=t.version;return{name:r,version:n}}}function LWt(e,t){return t&&(e.sdk=e.sdk||{},e.sdk.name=e.sdk.name||t.name,e.sdk.version=e.sdk.version||t.version,e.sdk.integrations=h1.__spread(e.sdk.integrations||[],t.integrations||[]),e.sdk.packages=h1.__spread(e.sdk.packages||[],t.packages||[])),e}function fje(e,t){var r=Mie(t),n=h1.__assign(h1.__assign({sent_at:new Date().toISOString()},r&&{sdk:r}),!!t.tunnel&&{dsn:d1.dsnToString(t.dsn)}),i="aggregates"in e?"sessions":"session",a=[{type:i},e],s=d1.createEnvelope(n,[a]);return[s,i]}t4.createSessionEnvelope=fje;function $Wt(e,t){var r=h1.__read(fje(e,t),2),n=r[0],i=r[1];return{body:d1.serializeEnvelope(n),type:i,url:Bie.getEnvelopeEndpointWithUrlEncodedAuth(t.dsn,t.tunnel)}}t4.sessionToSentryRequest=$Wt;function BWt(e,t){var r=Mie(t),n=e.type||"event",i=(e.sdkProcessingMetadata||{}).transactionSampling,a=i||{},s=a.method,o=a.rate,c=h1.__assign(h1.__assign({event_id:e.event_id,sent_at:new Date().toISOString()},r&&{sdk:r}),!!t.tunnel&&{dsn:d1.dsnToString(t.dsn)}),p=[{type:n,sample_rates:[{id:s,rate:o}]},e];return d1.createEnvelope(c,[p])}t4.createEventEnvelope=BWt;function MWt(e,t){var r=Mie(t),n=e.type||"event",i=n==="transaction"||!!t.tunnel,a=(e.sdkProcessingMetadata||{}).transactionSampling,s=a||{},o=s.method,c=s.rate;LWt(e,t.metadata.sdk),e.tags=e.tags||{},e.extra=e.extra||{},e.sdkProcessingMetadata&&e.sdkProcessingMetadata.baseClientNormalized||(e.tags.skippedNormalization=!0,e.extra.normalizeDepth=e.sdkProcessingMetadata?e.sdkProcessingMetadata.normalizeDepth:"unset"),delete e.sdkProcessingMetadata;var p;try{p=JSON.stringify(e)}catch(y){e.tags.JSONStringifyError=!0,e.extra.JSONStringifyError=y;try{p=JSON.stringify(d1.normalize(e))}catch(_){var f=_;p=JSON.stringify({message:"JSON.stringify error after renormalization",extra:{message:f.message,stack:f.stack}})}}var d={body:p,type:n,url:i?Bie.getEnvelopeEndpointWithUrlEncodedAuth(t.dsn,t.tunnel):Bie.getStoreEndpointWithUrlEncodedAuth(t.dsn)};if(i){var h=h1.__assign(h1.__assign({event_id:e.event_id,sent_at:new Date().toISOString()},r&&{sdk:r}),!!t.tunnel&&{dsn:d1.dsnToString(t.dsn)}),g=[{type:n,sample_rates:[{id:o,rate:c}]},d.body],v=d1.createEnvelope(h,[g]);d.body=d1.serializeEnvelope(v)}return d}t4.eventToSentryRequest=MWt});var Hie=b(zie=>{Object.defineProperty(zie,"__esModule",{value:!0});var dje=Vr(),UWt=function(){function e(){}return e.prototype.sendEvent=function(t){return dje.resolvedSyncPromise({reason:"NoopTransport: Event has been skipped because no Dsn is configured.",status:"skipped"})},e.prototype.close=function(t){return dje.resolvedSyncPromise(!0)},e}();zie.NoopTransport=UWt});var gje=b(Vie=>{Object.defineProperty(Vie,"__esModule",{value:!0});var zWt=(e4(),_n(Z6)),Tc=Vr(),hje=MR(),mje=Uie(),HWt=Hie(),VWt=function(){function e(t){this._options=t,this._options.dsn||Tc.isDebugBuild()&&Tc.logger.warn("No DSN provided, backend will not do anything."),this._transport=this._setupTransport()}return e.prototype.eventFromException=function(t,r){throw new Tc.SentryError("Backend has to implement `eventFromException` method")},e.prototype.eventFromMessage=function(t,r,n){throw new Tc.SentryError("Backend has to implement `eventFromMessage` method")},e.prototype.sendEvent=function(t){if(this._newTransport&&this._options.dsn&&this._options._experiments&&this._options._experiments.newTransport){var r=hje.initAPIDetails(this._options.dsn,this._options._metadata,this._options.tunnel),n=mje.createEventEnvelope(t,r);this._newTransport.send(n).then(null,function(i){Tc.isDebugBuild()&&Tc.logger.error("Error while sending event:",i)})}else this._transport.sendEvent(t).then(null,function(i){Tc.isDebugBuild()&&Tc.logger.error("Error while sending event:",i)})},e.prototype.sendSession=function(t){if(!this._transport.sendSession){Tc.isDebugBuild()&&Tc.logger.warn("Dropping session because custom transport doesn't implement sendSession");return}if(this._newTransport&&this._options.dsn&&this._options._experiments&&this._options._experiments.newTransport){var r=hje.initAPIDetails(this._options.dsn,this._options._metadata,this._options.tunnel),n=zWt.__read(mje.createSessionEnvelope(t,r),1),i=n[0];this._newTransport.send(i).then(null,function(a){Tc.isDebugBuild()&&Tc.logger.error("Error while sending session:",a)})}else this._transport.sendSession(t).then(null,function(a){Tc.isDebugBuild()&&Tc.logger.error("Error while sending session:",a)})},e.prototype.getTransport=function(){return this._transport},e.prototype._setupTransport=function(){return new HWt.NoopTransport},e}();Vie.BaseBackend=VWt});var yje=b(Gie=>{Object.defineProperty(Gie,"__esModule",{value:!0});var GWt=jd(),vje=Vr();function WWt(e,t){t.debug===!0&&(vje.isDebugBuild()?vje.logger.enable():console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle."));var r=GWt.getCurrentHub(),n=r.getScope();n&&n.update(t.initialScope);var i=new e(t);r.bindClient(i)}Gie.initAndBind=WWt});var bje=b(Wie=>{Object.defineProperty(Wie,"__esModule",{value:!0});Wie.SDK_VERSION="6.19.2"});var _je=b(Kie=>{Object.defineProperty(Kie,"__esModule",{value:!0});var KWt=Vr(),wje,YWt=function(){function e(){this.name=e.id}return e.prototype.setupOnce=function(){wje=Function.prototype.toString,Function.prototype.toString=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var n=KWt.getOriginalFunction(this)||this;return wje.apply(n,t)}},e.id="FunctionToString",e}();Kie.FunctionToString=YWt});var kje=b(g7=>{Object.defineProperty(g7,"__esModule",{value:!0});var Yie=(e4(),_n(Z6)),as=Vr(),JWt=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/],XWt=function(){function e(t){t===void 0&&(t={}),this._options=t,this.name=e.id}return e.prototype.setupOnce=function(t,r){t(function(n){var i=r();if(i){var a=i.getIntegration(e);if(a){var s=i.getClient(),o=s?s.getOptions():{},c=Eje(a._options,o);return Sje(n,c)?null:n}}return n})},e.id="InboundFilters",e}();g7.InboundFilters=XWt;function Eje(e,t){return e===void 0&&(e={}),t===void 0&&(t={}),{allowUrls:Yie.__spread(e.whitelistUrls||[],e.allowUrls||[],t.whitelistUrls||[],t.allowUrls||[]),denyUrls:Yie.__spread(e.blacklistUrls||[],e.denyUrls||[],t.blacklistUrls||[],t.denyUrls||[]),ignoreErrors:Yie.__spread(e.ignoreErrors||[],t.ignoreErrors||[],JWt),ignoreInternal:e.ignoreInternal!==void 0?e.ignoreInternal:!0}}g7._mergeOptions=Eje;function Sje(e,t){return t.ignoreInternal&&rKt(e)?(as.isDebugBuild()&&as.logger.warn(`Event dropped due to being internal Sentry Error.
Event: `+as.getEventDescription(e)),!0):QWt(e,t.ignoreErrors)?(as.isDebugBuild()&&as.logger.warn("Event dropped due to being matched by `ignoreErrors` option.\nEvent: "+as.getEventDescription(e)),!0):ZWt(e,t.denyUrls)?(as.isDebugBuild()&&as.logger.warn("Event dropped due to being matched by `denyUrls` option.\nEvent: "+as.getEventDescription(e)+`.
Url: `+zR(e)),!0):eKt(e,t.allowUrls)?!1:(as.isDebugBuild()&&as.logger.warn("Event dropped due to not being matched by `allowUrls` option.\nEvent: "+as.getEventDescription(e)+`.
Url: `+zR(e)),!0)}g7._shouldDropEvent=Sje;function QWt(e,t){return!t||!t.length?!1:tKt(e).some(function(r){return t.some(function(n){return as.isMatchingPattern(r,n)})})}function ZWt(e,t){if(!t||!t.length)return!1;var r=zR(e);return r?t.some(function(n){return as.isMatchingPattern(r,n)}):!1}function eKt(e,t){if(!t||!t.length)return!0;var r=zR(e);return r?t.some(function(n){return as.isMatchingPattern(r,n)}):!0}function tKt(e){if(e.message)return[e.message];if(e.exception)try{var t=e.exception.values&&e.exception.values[0]||{},r=t.type,n=r===void 0?"":r,i=t.value,a=i===void 0?"":i;return[""+a,n+": "+a]}catch{return as.isDebugBuild()&&as.logger.error("Cannot extract message for event "+as.getEventDescription(e)),[]}return[]}function rKt(e){try{return e.exception.values[0].type==="SentryError"}catch{}return!1}function xje(e){e===void 0&&(e=[]);for(var t=e.length-1;t>=0;t--){var r=e[t];if(r&&r.filename!=="<anonymous>"&&r.filename!=="[native code]")return r.filename||null}return null}function zR(e){try{if(e.stacktrace)return xje(e.stacktrace.frames);var t;try{t=e.exception.values[0].stacktrace.frames}catch{}return t?xje(t):null}catch{return as.isDebugBuild()&&as.logger.error("Cannot extract url for event "+as.getEventDescription(e)),null}}});var Aje=b(HR=>{Object.defineProperty(HR,"__esModule",{value:!0});var nKt=_je();HR.FunctionToString=nKt.FunctionToString;var iKt=kje();HR.InboundFilters=iKt.InboundFilters});var Wn=b(En=>{Object.defineProperty(En,"__esModule",{value:!0});var vl=XFe();En.addBreadcrumb=vl.addBreadcrumb;En.captureException=vl.captureException;En.captureEvent=vl.captureEvent;En.captureMessage=vl.captureMessage;En.configureScope=vl.configureScope;En.startTransaction=vl.startTransaction;En.setContext=vl.setContext;En.setExtra=vl.setExtra;En.setExtras=vl.setExtras;En.setTag=vl.setTag;En.setTags=vl.setTags;En.setUser=vl.setUser;En.withScope=vl.withScope;var wb=jd();En.addGlobalEventProcessor=wb.addGlobalEventProcessor;En.getCurrentHub=wb.getCurrentHub;En.getHubFromCarrier=wb.getHubFromCarrier;En.Hub=wb.Hub;En.makeMain=wb.makeMain;En.Scope=wb.Scope;En.Session=wb.Session;var r4=MR();En.API=r4.API;En.getEnvelopeEndpointWithUrlEncodedAuth=r4.getEnvelopeEndpointWithUrlEncodedAuth;En.getStoreEndpointWithUrlEncodedAuth=r4.getStoreEndpointWithUrlEncodedAuth;En.getRequestHeaders=r4.getRequestHeaders;En.initAPIDetails=r4.initAPIDetails;En.getReportDialogEndpoint=r4.getReportDialogEndpoint;var aKt=pje();En.BaseClient=aKt.BaseClient;var sKt=gje();En.BaseBackend=sKt.BaseBackend;var Tje=Uie();En.eventToSentryRequest=Tje.eventToSentryRequest;En.sessionToSentryRequest=Tje.sessionToSentryRequest;var oKt=yje();En.initAndBind=oKt.initAndBind;var uKt=Hie();En.NoopTransport=uKt.NoopTransport;var cKt=bje();En.SDK_VERSION=cKt.SDK_VERSION;var lKt=Aje();En.Integrations=lKt});var Oje=b(Xie=>{Object.defineProperty(Xie,"__esModule",{value:!0});var Jie=Vr();function pKt(e){if(e){var t=(require&&require.main&&require.main.filename&&Jie.dirname(require.main.filename)||global.process.cwd())+"/",r=Jie.basename(e,".js"),n=Jie.dirname(e),i=n.lastIndexOf("/node_modules/");if(i>-1)return n.substr(i+14).replace(/\//g,".")+":"+r;if(i=(n+"/").lastIndexOf(t,0),i===0){var a=n.substr(t.length).replace(/\//g,".");return a&&(a+=":"),a+=r,a}return r}}var fKt=/^\s*[-]{4,}$/,dKt=/at (?:async )?(?:(.+?)\s+\()?(?:(.+?):(\d+)(?::(\d+))?|([^)]+))\)?/,hKt=function(e){var t;if(e.match(fKt))return{filename:e};var r=e.match(dKt);if(r){var n,i,a,s,o;if(r[1]){a=r[1];var c=a.lastIndexOf(".");if(a[c-1]==="."&&c--,c>0){n=a.substr(0,c),i=a.substr(c+1);var p=n.indexOf(".Module");p>0&&(a=a.substr(p+1),n=n.substr(0,p))}s=void 0}i&&(s=n,o=i),i==="<anonymous>"&&(o=void 0,a=void 0),a===void 0&&(o=o||"<anonymous>",a=s?s+"."+o:o);var f=!((t=r[2])===null||t===void 0)&&t.startsWith("file://")?r[2].substr(7):r[2],d=r[5]==="native",h=d||f&&!f.startsWith("/")&&!f.startsWith(".")&&f.indexOf(":\\")!==1,g=!h&&f!==void 0&&!f.includes("node_modules/");return{filename:f,module:pKt(f),function:a,lineno:parseInt(r[3],10)||void 0,colno:parseInt(r[4],10)||void 0,in_app:g}}};Xie.nodeStackParser=[90,hKt]});var Zie=b(n4=>{Object.defineProperty(n4,"__esModule",{value:!0});var Dje=(qo(),_n(No)),mKt=jd(),gKt=Fd(),_b=Vr(),vKt=Oje();function Qie(e){return _b.createStackParser(vKt.nodeStackParser)(e.stack||"",1)}n4.parseStackFrames=Qie;function Cje(e){var t={type:e.name||e.constructor.name,value:e.message},r=Qie(e);return r.length&&(t.stacktrace={frames:r}),t}n4.exceptionFromError=Cje;function yKt(e,t){var r=e,n=t&&t.data&&t.data.mechanism,i=n||{handled:!0,type:"generic"};if(!_b.isError(e)){if(_b.isPlainObject(e)){var a="Non-Error exception captured with keys: "+_b.extractExceptionKeysForMessage(e);mKt.getCurrentHub().configureScope(function(o){o.setExtra("__serialized__",_b.normalizeToSize(e))}),r=t&&t.syntheticException||new Error(a),r.message=a}else r=t&&t.syntheticException||new Error(e),r.message=e;i.synthetic=!0}var s={exception:{values:[Cje(r)]}};return _b.addExceptionTypeValue(s,void 0,void 0),_b.addExceptionMechanism(s,i),Dje.__assign(Dje.__assign({},s),{event_id:t&&t.event_id})}n4.eventFromUnknownInput=yKt;function bKt(e,t,r,n){t===void 0&&(t=gKt.Severity.Info);var i={event_id:r&&r.event_id,level:t,message:e};if(n&&r&&r.syntheticException){var a=Qie(r.syntheticException);a.length&&(i.stacktrace={frames:a})}return i}n4.eventFromMessage=bKt});var tae=b(eae=>{Object.defineProperty(eae,"__esModule",{value:!0});eae.SDK_NAME="sentry.javascript.node"});var VR=b(iae=>{Object.defineProperty(iae,"__esModule",{value:!0});var m1=(qo(),_n(No)),rae=Wn(),g1=Vr(),wKt=require("fs"),_Kt=require("url"),xKt=tae(),nae={event:"error",transaction:"transaction",session:"session",attachment:"attachment"},EKt=function(){function e(t){this.options=t,this._buffer=g1.makePromiseBuffer(30),this._rateLimits={},this.urlParser=function(r){return new _Kt.URL(r)},this._api=rae.initAPIDetails(t.dsn,t._metadata,t.tunnel)}return e.prototype.sendEvent=function(t){throw new g1.SentryError("Transport Class has to implement `sendEvent` method.")},e.prototype.close=function(t){return this._buffer.drain(t)},e.prototype._getProxy=function(t){var r,n,i=process.env,a=i.no_proxy,s=i.http_proxy,o=i.https_proxy,c=this.options,p=c.httpProxy,f=c.httpsProxy,d=t==="http"?p||s:f||p||o||s;if(!a)return d;var h=this._api.dsn,g=h.host,v=h.port;try{for(var y=m1.__values(a.split(",")),_=y.next();!_.done;_=y.next()){var x=_.value;if(g.endsWith(x)||(g+":"+v).endsWith(x))return}}catch(A){r={error:A}}finally{try{_&&!_.done&&(n=y.return)&&n.call(y)}finally{if(r)throw r.error}}return d},e.prototype._getRequestOptions=function(t){var r=m1.__assign(m1.__assign({},rae.getRequestHeaders(this._api.dsn,xKt.SDK_NAME,rae.SDK_VERSION)),this.options.headers),n=t.hostname,i=t.pathname,a=t.port,s=t.protocol,o=""+i;return m1.__assign({agent:this.client,headers:r,hostname:n,method:"POST",path:o,port:a,protocol:s},this.options.caCerts&&{ca:wKt.readFileSync(this.options.caCerts)})},e.prototype._disabledUntil=function(t){var r=nae[t];return this._rateLimits[r]||this._rateLimits.all},e.prototype._isRateLimited=function(t){return this._disabledUntil(t)>new Date(Date.now())},e.prototype._handleRateLimit=function(t){var r,n,i,a,s=Date.now(),o=t["x-sentry-rate-limits"],c=t["retry-after"];if(o){try{for(var p=m1.__values(o.trim().split(",")),f=p.next();!f.done;f=p.next()){var d=f.value,h=d.split(":",2),g=parseInt(h[0],10),v=(isNaN(g)?60:g)*1e3;try{for(var y=(i=void 0,m1.__values(h[1]&&h[1].split(";")||["all"])),_=y.next();!_.done;_=y.next()){var x=_.value,A=m1.__spread(Object.keys(nae).map(function(D){return nae[D]}),["all"]);A.includes(x)&&(this._rateLimits[x]=new Date(s+v))}}catch(D){i={error:D}}finally{try{_&&!_.done&&(a=y.return)&&a.call(y)}finally{if(i)throw i.error}}}}catch(D){r={error:D}}finally{try{f&&!f.done&&(n=p.return)&&n.call(p)}finally{if(r)throw r.error}}return!0}else if(c)return this._rateLimits.all=new Date(s+g1.parseRetryAfterHeader(c,s)),!0;return!1},e.prototype._send=function(t,r){return m1.__awaiter(this,void 0,void 0,function(){var n=this;return m1.__generator(this,function(i){if(!this.module)throw new g1.SentryError("No module available");return r&&this._isRateLimited(t.type)?[2,Promise.reject({payload:r,type:t.type,reason:"Transport for "+t.type+" requests locked till "+this._disabledUntil(t.type)+" due to too many requests.",status:429})]:[2,this._buffer.add(function(){return new Promise(function(a,s){if(!n.module)throw new g1.SentryError("No module available");var o=n._getRequestOptions(n.urlParser(t.url)),c=n.module.request(o,function(p){var f=p.statusCode||500,d=g1.eventStatusFromHttpCode(f);p.setEncoding("utf8");var h=p.headers?p.headers["retry-after"]:"";h=Array.isArray(h)?h[0]:h;var g=p.headers?p.headers["x-sentry-rate-limits"]:"";g=Array.isArray(g)?g[0]:g;var v={"x-sentry-rate-limits":g,"retry-after":h},y=n._handleRateLimit(v);if(y&&g1.isDebugBuild()&&g1.logger.warn("Too many "+t.type+" requests, backing off until: "+n._disabledUntil(t.type)),d==="success")a({status:d});else{var _="HTTP Error ("+f+")";p.headers&&p.headers["x-sentry-error"]&&(_+=": "+p.headers["x-sentry-error"]),s(new g1.SentryError(_))}p.on("data",function(){}),p.on("end",function(){})});c.on("error",s),c.end(t.body)})})]})})},e}();iae.BaseTransport=EKt});var Pje=b(aae=>{"use strict";Object.defineProperty(aae,"__esModule",{value:!0});function SKt(e){return function(t,r){return new Promise((n,i)=>{e.call(this,t,r,(a,s)=>{a?i(a):n(s)})})}}aae.default=SKt});var Fje=b((oae,Rje)=>{"use strict";var Ije=oae&&oae.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},kKt=require("events"),AKt=Ije(_2()),TKt=Ije(Pje()),v7=AKt.default("agent-base");function OKt(e){return!!e&&typeof e.addRequest=="function"}function sae(){let{stack:e}=new Error;return typeof e!="string"?!1:e.split(`
`).some(t=>t.indexOf("(https.js:")!==-1||t.indexOf("node:https:")!==-1)}function GR(e,t){return new GR.Agent(e,t)}(function(e){class t extends kKt.EventEmitter{constructor(n,i){super();let a=i;typeof n=="function"?this.callback=n:n&&(a=n),this.timeout=null,a&&typeof a.timeout=="number"&&(this.timeout=a.timeout),this.maxFreeSockets=1,this.maxSockets=1,this.maxTotalSockets=1/0,this.sockets={},this.freeSockets={},this.requests={},this.options={}}get defaultPort(){return typeof this.explicitDefaultPort=="number"?this.explicitDefaultPort:sae()?443:80}set defaultPort(n){this.explicitDefaultPort=n}get protocol(){return typeof this.explicitProtocol=="string"?this.explicitProtocol:sae()?"https:":"http:"}set protocol(n){this.explicitProtocol=n}callback(n,i,a){throw new Error('"agent-base" has no default implementation, you must subclass and override `callback()`')}addRequest(n,i){let a=Object.assign({},i);typeof a.secureEndpoint!="boolean"&&(a.secureEndpoint=sae()),a.host==null&&(a.host="localhost"),a.port==null&&(a.port=a.secureEndpoint?443:80),a.protocol==null&&(a.protocol=a.secureEndpoint?"https:":"http:"),a.host&&a.path&&delete a.path,delete a.agent,delete a.hostname,delete a._defaultAgent,delete a.defaultPort,delete a.createConnection,n._last=!0,n.shouldKeepAlive=!1;let s=!1,o=null,c=a.timeout||this.timeout,p=g=>{n._hadError||(n.emit("error",g),n._hadError=!0)},f=()=>{o=null,s=!0;let g=new Error(`A "socket" was not created for HTTP request before ${c}ms`);g.code="ETIMEOUT",p(g)},d=g=>{s||(o!==null&&(clearTimeout(o),o=null),p(g))},h=g=>{if(s)return;if(o!=null&&(clearTimeout(o),o=null),OKt(g)){v7("Callback returned another Agent instance %o",g.constructor.name),g.addRequest(n,a);return}if(g){g.once("free",()=>{this.freeSocket(g,a)}),n.onSocket(g);return}let v=new Error(`no Duplex stream was returned to agent-base for \`${n.method} ${n.path}\``);p(v)};if(typeof this.callback!="function"){p(new Error("`callback` is not defined"));return}this.promisifiedCallback||(this.callback.length>=3?(v7("Converting legacy callback function to promise"),this.promisifiedCallback=TKt.default(this.callback)):this.promisifiedCallback=this.callback),typeof c=="number"&&c>0&&(o=setTimeout(f,c)),"port"in a&&typeof a.port!="number"&&(a.port=Number(a.port));try{v7("Resolving socket for %o request: %o",a.protocol,`${n.method} ${n.path}`),Promise.resolve(this.promisifiedCallback(n,a)).then(h,d)}catch(g){Promise.reject(g).catch(d)}}freeSocket(n,i){v7("Freeing socket %o %o",n.constructor.name,i),n.destroy()}destroy(){v7("Destroying agent %o",this.constructor.name)}}e.Agent=t,e.prototype=e.Agent.prototype})(GR||(GR={}));Rje.exports=GR});var jje=b(b7=>{"use strict";var DKt=b7&&b7.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(b7,"__esModule",{value:!0});var CKt=DKt(_2()),y7=CKt.default("https-proxy-agent:parse-proxy-response");function PKt(e){return new Promise((t,r)=>{let n=0,i=[];function a(){let d=e.read();d?f(d):e.once("readable",a)}function s(){e.removeListener("end",c),e.removeListener("error",p),e.removeListener("close",o),e.removeListener("readable",a)}function o(d){y7("onclose had error %o",d)}function c(){y7("onend")}function p(d){s(),y7("onerror %o",d),r(d)}function f(d){i.push(d),n+=d.length;let h=Buffer.concat(i,n);if(h.indexOf(`\r
\r
`)===-1){y7("have not received end of HTTP headers yet..."),a();return}let v=h.toString("ascii",0,h.indexOf(`\r
`)),y=+v.split(" ")[1];y7("got proxy server response: %o",v),t({statusCode:y,buffered:h})}e.on("error",p),e.on("close",o),e.on("end",c),a()})}b7.default=PKt});var Lje=b(xb=>{"use strict";var IKt=xb&&xb.__awaiter||function(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{p(n.next(f))}catch(d){s(d)}}function c(f){try{p(n.throw(f))}catch(d){s(d)}}function p(f){f.done?a(f.value):i(f.value).then(o,c)}p((n=n.apply(e,t||[])).next())})},i4=xb&&xb.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xb,"__esModule",{value:!0});var Nje=i4(require("net")),qje=i4(require("tls")),RKt=i4(require("url")),FKt=i4(require("assert")),jKt=i4(_2()),NKt=Fje(),qKt=i4(jje()),w7=jKt.default("https-proxy-agent:agent"),uae=class extends NKt.Agent{constructor(t){let r;if(typeof t=="string"?r=RKt.default.parse(t):r=t,!r)throw new Error("an HTTP(S) proxy server `host` and `port` must be specified!");w7("creating new HttpsProxyAgent instance: %o",r),super(r);let n=Object.assign({},r);this.secureProxy=r.secureProxy||BKt(n.protocol),n.host=n.hostname||n.host,typeof n.port=="string"&&(n.port=parseInt(n.port,10)),!n.port&&n.host&&(n.port=this.secureProxy?443:80),this.secureProxy&&!("ALPNProtocols"in n)&&(n.ALPNProtocols=["http 1.1"]),n.host&&n.path&&(delete n.path,delete n.pathname),this.proxy=n}callback(t,r){return IKt(this,void 0,void 0,function*(){let{proxy:n,secureProxy:i}=this,a;i?(w7("Creating `tls.Socket`: %o",n),a=qje.default.connect(n)):(w7("Creating `net.Socket`: %o",n),a=Nje.default.connect(n));let s=Object.assign({},n.headers),c=`CONNECT ${`${r.host}:${r.port}`} HTTP/1.1\r
`;n.auth&&(s["Proxy-Authorization"]=`Basic ${Buffer.from(n.auth).toString("base64")}`);let{host:p,port:f,secureEndpoint:d}=r;$Kt(f,d)||(p+=`:${f}`),s.Host=p,s.Connection="close";for(let _ of Object.keys(s))c+=`${_}: ${s[_]}\r
`;let h=qKt.default(a);a.write(`${c}\r
`);let{statusCode:g,buffered:v}=yield h;if(g===200){if(t.once("socket",LKt),r.secureEndpoint){w7("Upgrading socket connection to TLS");let _=r.servername||r.host;return qje.default.connect(Object.assign(Object.assign({},MKt(r,"host","hostname","path","port")),{socket:a,servername:_}))}return a}a.destroy();let y=new Nje.default.Socket({writable:!1});return y.readable=!0,t.once("socket",_=>{w7("replaying proxy buffer for failed request"),FKt.default(_.listenerCount("data")>0),_.push(v),_.push(null)}),y})}};xb.default=uae;function LKt(e){e.resume()}function $Kt(e,t){return!!(!t&&e===80||t&&e===443)}function BKt(e){return typeof e=="string"?/^https:?$/i.test(e):!1}function MKt(e,...t){let r={},n;for(n in e)t.includes(n)||(r[n]=e[n]);return r}});var fae=b((pae,$je)=>{"use strict";var UKt=pae&&pae.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},cae=UKt(Lje());function lae(e){return new cae.default(e)}(function(e){e.HttpsProxyAgent=cae.default,e.prototype=cae.default.prototype})(lae||(lae={}));$je.exports=lae});var Uje=b(dae=>{Object.defineProperty(dae,"__esModule",{value:!0});var zKt=(qo(),_n(No)),Bje=Wn(),Mje=require("http"),HKt=VR(),VKt=function(e){zKt.__extends(t,e);function t(r){var n=e.call(this,r)||this;n.options=r;var i=n._getProxy("http");return n.module=Mje,n.client=i?new(fae())(i):new Mje.Agent({keepAlive:!1,maxSockets:30,timeout:2e3}),n}return t.prototype.sendEvent=function(r){return this._send(Bje.eventToSentryRequest(r,this._api),r)},t.prototype.sendSession=function(r){return this._send(Bje.sessionToSentryRequest(r,this._api),r)},t}(HKt.BaseTransport);dae.HTTPTransport=VKt});var Vje=b(hae=>{Object.defineProperty(hae,"__esModule",{value:!0});var GKt=(qo(),_n(No)),zje=Wn(),Hje=require("https"),WKt=VR(),KKt=function(e){GKt.__extends(t,e);function t(r){var n=e.call(this,r)||this;n.options=r;var i=n._getProxy("https");return n.module=Hje,n.client=i?new(fae())(i):new Hje.Agent({keepAlive:!1,maxSockets:30,timeout:2e3}),n}return t.prototype.sendEvent=function(r){return this._send(zje.eventToSentryRequest(r,this._api),r)},t.prototype.sendSession=function(r){return this._send(zje.sessionToSentryRequest(r,this._api),r)},t}(WKt.BaseTransport);hae.HTTPSTransport=KKt});var mae=b(_7=>{Object.defineProperty(_7,"__esModule",{value:!0});var YKt=VR();_7.BaseTransport=YKt.BaseTransport;var JKt=Uje();_7.HTTPTransport=JKt.HTTPTransport;var XKt=Vje();_7.HTTPSTransport=XKt.HTTPSTransport});var yae=b(vae=>{Object.defineProperty(vae,"__esModule",{value:!0});var a4=(qo(),_n(No)),QKt=Wn(),ZKt=Fd(),gae=Vr(),Gje=Zie(),Wje=mae(),eYt=function(e){a4.__extends(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.eventFromException=function(r,n){return gae.resolvedSyncPromise(Gje.eventFromUnknownInput(r,n))},t.prototype.eventFromMessage=function(r,n,i){return n===void 0&&(n=ZKt.Severity.Info),gae.resolvedSyncPromise(Gje.eventFromMessage(r,n,i,this._options.attachStacktrace))},t.prototype._setupTransport=function(){if(!this._options.dsn)return e.prototype._setupTransport.call(this);var r=gae.makeDsn(this._options.dsn),n=a4.__assign(a4.__assign(a4.__assign(a4.__assign(a4.__assign({},this._options.transportOptions),this._options.httpProxy&&{httpProxy:this._options.httpProxy}),this._options.httpsProxy&&{httpsProxy:this._options.httpsProxy}),this._options.caCerts&&{caCerts:this._options.caCerts}),{dsn:this._options.dsn,tunnel:this._options.tunnel,_metadata:this._options._metadata});return this._options.transport?new this._options.transport(n):r.protocol==="http"?new Wje.HTTPTransport(n):new Wje.HTTPSTransport(n)},t}(QKt.BaseBackend);vae.NodeBackend=eYt});var _ae=b(wae=>{Object.defineProperty(wae,"__esModule",{value:!0});var tYt=(qo(),_n(No)),bae=Wn(),rYt=jd(),WR=Vr(),nYt=yae(),iYt=function(e){tYt.__extends(t,e);function t(r){var n=this;return r._metadata=r._metadata||{},r._metadata.sdk=r._metadata.sdk||{name:"sentry.javascript.node",packages:[{name:"npm:@sentry/node",version:bae.SDK_VERSION}],version:bae.SDK_VERSION},n=e.call(this,nYt.NodeBackend,r)||this,n}return t.prototype.captureException=function(r,n,i){if(this._options.autoSessionTracking&&this._sessionFlusher&&i){var a=i.getRequestSession();a&&a.status==="ok"&&(a.status="errored")}return e.prototype.captureException.call(this,r,n,i)},t.prototype.captureEvent=function(r,n,i){if(this._options.autoSessionTracking&&this._sessionFlusher&&i){var a=r.type||"exception",s=a==="exception"&&r.exception&&r.exception.values&&r.exception.values.length>0;if(s){var o=i.getRequestSession();o&&o.status==="ok"&&(o.status="errored")}}return e.prototype.captureEvent.call(this,r,n,i)},t.prototype.close=function(r){var n;return(n=this._sessionFlusher)===null||n===void 0||n.close(),e.prototype.close.call(this,r)},t.prototype.initSessionFlusher=function(){var r=this._options,n=r.release,i=r.environment;n?this._sessionFlusher=new rYt.SessionFlusher(this.getTransport(),{release:n,environment:i}):WR.isDebugBuild()&&WR.logger.warn("Cannot initialise an instance of SessionFlusher if no release is provided!")},t.prototype._prepareEvent=function(r,n,i){return r.platform=r.platform||"node",this.getOptions().serverName&&(r.server_name=this.getOptions().serverName),e.prototype._prepareEvent.call(this,r,n,i)},t.prototype._captureRequestSession=function(){this._sessionFlusher?this._sessionFlusher.incrementSessionStatusCount():WR.isDebugBuild()&&WR.logger.warn("Discarded request mode session because autoSessionTracking option was disabled")},t}(bae.BaseClient);wae.NodeClient=iYt});var Qje=b(xae=>{Object.defineProperty(xae,"__esModule",{value:!0});var Yje=(qo(),_n(No)),Kje=Wn(),Jje=Vr(),aYt=require("util"),Xje=function(){function e(){this.name=e.id}return e.prototype.setupOnce=function(){var t,r;try{for(var n=Yje.__values(["debug","info","warn","error","log"]),i=n.next();!i.done;i=n.next()){var a=i.value;Jje.fill(console,a,sYt(a))}}catch(s){t={error:s}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}},e.id="Console",e}();xae.Console=Xje;function sYt(e){return function(r){var n=Jje.severityFromString(e);return function(){Kje.getCurrentHub().getIntegration(Xje)&&Kje.getCurrentHub().addBreadcrumb({category:"console",level:n,message:aYt.format.apply(void 0,arguments)},{input:Yje.__spread(arguments),level:e}),r.apply(this,arguments)}}}});var rNe=b(Eb=>{Object.defineProperty(Eb,"__esModule",{value:!0});var Eae=(qo(),_n(No)),oYt=Wn(),uYt=Vr(),Zje=require("url"),eNe=uYt.parseSemver(process.versions.node);function cYt(e){var t,r=(t=oYt.getCurrentHub().getClient())===null||t===void 0?void 0:t.getDsn();return r?e.includes(r.host):!1}Eb.isSentryRequest=cYt;function tNe(e){var t=e.protocol||"",r=e.hostname||e.host||"",n=!e.port||e.port===80||e.port===443?"":":"+e.port,i=e.path?e.path:"/";return t+"//"+r+n+i}Eb.extractUrl=tNe;function lYt(e,t,r){var n,i,a;if(!e)return e;var s=Eae.__read(e.split(" "),2),o=s[0],c=s[1];return t.host&&!t.protocol&&(t.protocol=(i=(n=r)===null||n===void 0?void 0:n.agent)===null||i===void 0?void 0:i.protocol,c=tNe(t)),!((a=c)===null||a===void 0)&&a.startsWith("///")&&(c=c.slice(2)),o+" "+c}Eb.cleanSpanDescription=lYt;function Sae(e){var t={protocol:e.protocol,hostname:typeof e.hostname=="string"&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,hash:e.hash,search:e.search,pathname:e.pathname,path:""+(e.pathname||"")+(e.search||""),href:e.href};return e.port!==""&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=e.username+":"+e.password),t}Eb.urlToOptions=Sae;function pYt(e,t){var r,n,i,a,s,o,c,p,f,d;return typeof t[t.length-1]=="function"&&(f=t.pop()),typeof t[0]=="string"?d=Sae(new Zje.URL(t[0])):t[0]instanceof Zje.URL?d=Sae(t[0]):d=t[0],t.length===2&&(d=Eae.__assign(Eae.__assign({},d),t[1])),d.protocol===void 0&&(eNe.major&&eNe.major>8?d.protocol=((n=(r=e)===null||r===void 0?void 0:r.globalAgent)===null||n===void 0?void 0:n.protocol)||((i=d.agent)===null||i===void 0?void 0:i.protocol)||((a=d._defaultAgent)===null||a===void 0?void 0:a.protocol):d.protocol=((s=d.agent)===null||s===void 0?void 0:s.protocol)||((o=d._defaultAgent)===null||o===void 0?void 0:o.protocol)||((p=(c=e)===null||c===void 0?void 0:c.globalAgent)===null||p===void 0?void 0:p.protocol)),f?[d,f]:[d]}Eb.normalizeRequestArgs=pYt});var oNe=b(Aae=>{Object.defineProperty(Aae,"__esModule",{value:!0});var nNe=(qo(),_n(No)),kae=Wn(),Sb=Vr(),x7=rNe(),iNe=Sb.parseSemver(process.versions.node),sNe=function(){function e(t){t===void 0&&(t={}),this.name=e.id,this._breadcrumbs=typeof t.breadcrumbs>"u"?!0:t.breadcrumbs,this._tracing=typeof t.tracing>"u"?!1:t.tracing}return e.prototype.setupOnce=function(){if(!(!this._breadcrumbs&&!this._tracing)){var t=fYt(this._breadcrumbs,this._tracing),r=require("http");if(Sb.fill(r,"get",t),Sb.fill(r,"request",t),iNe.major&&iNe.major>8){var n=require("https");Sb.fill(n,"get",t),Sb.fill(n,"request",t)}}},e.id="Http",e}();Aae.Http=sNe;function fYt(e,t){return function(n){return function(){for(var a=[],s=0;s<arguments.length;s++)a[s]=arguments[s];var o=this,c=x7.normalizeRequestArgs(this,a),p=c[0],f=x7.extractUrl(p);if(x7.isSentryRequest(f))return n.apply(o,c);var d,h,g=kae.getCurrentHub().getScope();if(g&&t&&(h=g.getSpan(),h)){d=h.startChild({description:(p.method||"GET")+" "+f,op:"http.client"});var v=d.toTraceparent();Sb.isDebugBuild()&&Sb.logger.log("[Tracing] Adding sentry-trace header "+v+" to outgoing request to "+f+": "),p.headers=nNe.__assign(nNe.__assign({},p.headers),{"sentry-trace":v})}return n.apply(o,c).once("response",function(y){var _=this;e&&aNe("response",f,_,y),t&&d&&(y.statusCode&&d.setHttpStatus(y.statusCode),d.description=x7.cleanSpanDescription(d.description,p,_),d.finish())}).once("error",function(){var y=this;e&&aNe("error",f,y),t&&d&&(d.setHttpStatus(500),d.description=x7.cleanSpanDescription(d.description,p,y),d.finish())})}}}function aNe(e,t,r,n){kae.getCurrentHub().getIntegration(sNe)&&kae.getCurrentHub().addBreadcrumb({category:"http",data:{method:r.method,status_code:n&&n.statusCode,url:t},type:"http"},{event:e,request:r,response:n})}});var Oae=b(Tae=>{Object.defineProperty(Tae,"__esModule",{value:!0});var dYt=Wn(),E7=Vr(),hYt=2e3;function mYt(e){console.error(e&&e.stack?e.stack:e);var t=dYt.getCurrentHub().getClient();t===void 0&&(E7.isDebugBuild()&&E7.logger.warn("No NodeClient was defined, we are exiting the process now."),global.process.exit(1));var r=t.getOptions(),n=r&&r.shutdownTimeout&&r.shutdownTimeout>0&&r.shutdownTimeout||hYt;E7.forget(t.close(n).then(function(i){i||E7.isDebugBuild()&&E7.logger.warn("We reached the timeout for emptying the request buffer, still exiting now!"),global.process.exit(1)}))}Tae.logAndExitProcess=mYt});var pNe=b(Dae=>{Object.defineProperty(Dae,"__esModule",{value:!0});var uNe=Wn(),gYt=Fd(),cNe=Vr(),lNe=Oae(),vYt=function(){function e(t){t===void 0&&(t={}),this._options=t,this.name=e.id,this.handler=this._makeErrorHandler()}return e.prototype.setupOnce=function(){global.process.on("uncaughtException",this.handler.bind(this))},e.prototype._makeErrorHandler=function(){var t=this,r=2e3,n=!1,i=!1,a=!1,s;return function(o){var c=lNe.logAndExitProcess,p=uNe.getCurrentHub().getClient();if(t._options.onFatalError?c=t._options.onFatalError:p&&p.getOptions().onFatalError&&(c=p.getOptions().onFatalError),n)a?(cNe.isDebugBuild()&&cNe.logger.warn("uncaught exception after calling fatal error shutdown callback - this is bad! forcing shutdown"),lNe.logAndExitProcess(o)):i||(i=!0,setTimeout(function(){a||(a=!0,c(s,o))},r));else{var f=uNe.getCurrentHub();s=o,n=!0,f.getIntegration(e)?f.withScope(function(d){d.setLevel(gYt.Severity.Fatal),f.captureException(o,{originalException:o,data:{mechanism:{handled:!1,type:"onuncaughtexception"}}}),a||(a=!0,c(o))}):a||(a=!0,c(o))}}},e.id="OnUncaughtException",e}();Dae.OnUncaughtException=vYt});var dNe=b(Cae=>{Object.defineProperty(Cae,"__esModule",{value:!0});var yYt=Wn(),fNe=Vr(),bYt=Oae(),wYt=function(){function e(t){t===void 0&&(t={mode:"warn"}),this._options=t,this.name=e.id}return e.prototype.setupOnce=function(){global.process.on("unhandledRejection",this.sendUnhandledPromise.bind(this))},e.prototype.sendUnhandledPromise=function(t,r){var n=yYt.getCurrentHub();if(!n.getIntegration(e)){this._handleRejection(t);return}var i=r.domain&&r.domain.sentryContext||{};n.withScope(function(a){a.setExtra("unhandledPromiseRejection",!0),i.user&&a.setUser(i.user),i.tags&&a.setTags(i.tags),i.extra&&a.setExtras(i.extra),n.captureException(t,{originalException:r,data:{mechanism:{handled:!1,type:"onunhandledrejection"}}})}),this._handleRejection(t)},e.prototype._handleRejection=function(t){var r="This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:";this._options.mode==="warn"?fNe.consoleSandbox(function(){console.warn(r),console.error(t&&t.stack?t.stack:t)}):this._options.mode==="strict"&&(fNe.consoleSandbox(function(){console.warn(r)}),bYt.logAndExitProcess(t))},e.id="OnUnhandledRejection",e}();Cae.OnUnhandledRejection=wYt});var hNe=b(KR=>{(function(e,t){let r=typeof KR=="object"?KR:typeof e=="object"?e:{};t(r),typeof define=="function"&&define.amd&&define("lru",r)})(KR,function(e){let t=Symbol("newer"),r=Symbol("older");function n(c,p){typeof c!="number"&&(p=c,c=0),this.size=0,this.limit=c,this.oldest=this.newest=void 0,this._keymap=new Map,p&&(this.assign(p),c<1&&(this.limit=this.size))}e.LRUMap=n;function i(c,p){this.key=c,this.value=p,this[t]=void 0,this[r]=void 0}n.prototype._markEntryAsUsed=function(c){c!==this.newest&&(c[t]&&(c===this.oldest&&(this.oldest=c[t]),c[t][r]=c[r]),c[r]&&(c[r][t]=c[t]),c[t]=void 0,c[r]=this.newest,this.newest&&(this.newest[t]=c),this.newest=c)},n.prototype.assign=function(c){let p,f=this.limit||Number.MAX_VALUE;this._keymap.clear();let d=c[Symbol.iterator]();for(let h=d.next();!h.done;h=d.next()){let g=new i(h.value[0],h.value[1]);if(this._keymap.set(g.key,g),p?(p[t]=g,g[r]=p):this.oldest=g,p=g,f--==0)throw new Error("overflow")}this.newest=p,this.size=this._keymap.size},n.prototype.get=function(c){var p=this._keymap.get(c);if(p)return this._markEntryAsUsed(p),p.value},n.prototype.set=function(c,p){var f=this._keymap.get(c);return f?(f.value=p,this._markEntryAsUsed(f),this):(this._keymap.set(c,f=new i(c,p)),this.newest?(this.newest[t]=f,f[r]=this.newest):this.oldest=f,this.newest=f,++this.size,this.size>this.limit&&this.shift(),this)},n.prototype.shift=function(){var c=this.oldest;if(c)return this.oldest[t]?(this.oldest=this.oldest[t],this.oldest[r]=void 0):(this.oldest=void 0,this.newest=void 0),c[t]=c[r]=void 0,this._keymap.delete(c.key),--this.size,[c.key,c.value]},n.prototype.find=function(c){let p=this._keymap.get(c);return p?p.value:void 0},n.prototype.has=function(c){return this._keymap.has(c)},n.prototype.delete=function(c){var p=this._keymap.get(c);if(p)return this._keymap.delete(p.key),p[t]&&p[r]?(p[r][t]=p[t],p[t][r]=p[r]):p[t]?(p[t][r]=void 0,this.oldest=p[t]):p[r]?(p[r][t]=void 0,this.newest=p[r]):this.oldest=this.newest=void 0,this.size--,p.value},n.prototype.clear=function(){this.oldest=this.newest=void 0,this.size=0,this._keymap.clear()};function a(c){this.entry=c}a.prototype[Symbol.iterator]=function(){return this},a.prototype.next=function(){let c=this.entry;return c?(this.entry=c[t],{done:!1,value:[c.key,c.value]}):{done:!0,value:void 0}};function s(c){this.entry=c}s.prototype[Symbol.iterator]=function(){return this},s.prototype.next=function(){let c=this.entry;return c?(this.entry=c[t],{done:!1,value:c.key}):{done:!0,value:void 0}};function o(c){this.entry=c}o.prototype[Symbol.iterator]=function(){return this},o.prototype.next=function(){let c=this.entry;return c?(this.entry=c[t],{done:!1,value:c.value}):{done:!0,value:void 0}},n.prototype.keys=function(){return new s(this.oldest)},n.prototype.values=function(){return new o(this.oldest)},n.prototype.entries=function(){return this},n.prototype[Symbol.iterator]=function(){return new a(this.oldest)},n.prototype.forEach=function(c,p){typeof p!="object"&&(p=this);let f=this.oldest;for(;f;)c.call(p,f.value,f.key,this),f=f[t]},n.prototype.toJSON=function(){for(var c=new Array(this.size),p=0,f=this.oldest;f;)c[p++]={key:f.key,value:f.value},f=f[t];return c},n.prototype.toString=function(){for(var c="",p=this.oldest;p;)c+=String(p.key)+":"+p.value,p=p[t],p&&(c+=" < ");return c}})});var Iae=b(YR=>{Object.defineProperty(YR,"__esModule",{value:!0});var pg=(qo(),_n(No)),_Yt=Wn(),xYt=Vr(),EYt=require("fs"),SYt=hNe(),Pae=new SYt.LRUMap(100),kYt=7;function AYt(e){return new Promise(function(t,r){EYt.readFile(e,"utf8",function(n,i){n?r(n):t(i)})})}function TYt(){Pae.clear()}YR.resetFileContentCache=TYt;var OYt=function(){function e(t){t===void 0&&(t={}),this._options=t,this.name=e.id}return Object.defineProperty(e.prototype,"_contextLines",{get:function(){var t,r;if(this._options.frameContextLines===void 0){var n=(t=_Yt.getCurrentHub().getClient())===null||t===void 0?void 0:t.getOptions();this._options.frameContextLines=(r=n)===null||r===void 0?void 0:r.frameContextLines}return this._options.frameContextLines!==void 0?this._options.frameContextLines:kYt},enumerable:!0,configurable:!0}),e.prototype.setupOnce=function(t){var r=this;t(function(n){return r.addSourceContext(n)})},e.prototype.addSourceContext=function(t){var r,n;return pg.__awaiter(this,void 0,void 0,function(){var i,a,s,o,c,p;return pg.__generator(this,function(f){switch(f.label){case 0:if(!(this._contextLines>0&&(!((r=t.exception)===null||r===void 0)&&r.values)))return[3,8];f.label=1;case 1:f.trys.push([1,6,7,8]),i=pg.__values(t.exception.values),a=i.next(),f.label=2;case 2:return a.done?[3,5]:(s=a.value,!((n=s.stacktrace)===null||n===void 0)&&n.frames?[4,this.addSourceContextToFrames(s.stacktrace.frames)]:[3,4]);case 3:f.sent(),f.label=4;case 4:return a=i.next(),[3,2];case 5:return[3,8];case 6:return o=f.sent(),c={error:o},[3,8];case 7:try{a&&!a.done&&(p=i.return)&&p.call(i)}finally{if(c)throw c.error}return[7];case 8:return[2,t]}})})},e.prototype.addSourceContextToFrames=function(t){return pg.__awaiter(this,void 0,void 0,function(){var r,n,i,a,s,o,c,p,f;return pg.__generator(this,function(d){switch(d.label){case 0:r=this._contextLines,d.label=1;case 1:d.trys.push([1,6,7,8]),n=pg.__values(t),i=n.next(),d.label=2;case 2:return i.done?[3,5]:(a=i.value,a.filename&&a.context_line===void 0?[4,DYt(a.filename)]:[3,4]);case 3:if(s=d.sent(),s)try{o=s.split(`
`),xYt.addContextToFrame(o,a,r)}catch{}d.label=4;case 4:return i=n.next(),[3,2];case 5:return[3,8];case 6:return c=d.sent(),p={error:c},[3,8];case 7:try{i&&!i.done&&(f=n.return)&&f.call(n)}finally{if(p)throw p.error}return[7];case 8:return[2]}})})},e.id="ContextLines",e}();YR.ContextLines=OYt;function DYt(e){return pg.__awaiter(this,void 0,void 0,function(){var t,r,n;return pg.__generator(this,function(i){switch(i.label){case 0:if(t=Pae.get(e),t!==void 0)return[2,t];r=null,i.label=1;case 1:return i.trys.push([1,3,,4]),[4,AYt(e)];case 2:return r=i.sent(),[3,4];case 3:return n=i.sent(),[3,4];case 4:return Pae.set(e,r),[2,r]}})})}});var mNe=b(Fae=>{Object.defineProperty(Fae,"__esModule",{value:!0});var JR=(qo(),_n(No)),Rae=Wn(),XR=Vr(),CYt=Zie(),PYt=Iae(),IYt="cause",RYt=5,FYt=function(){function e(t){t===void 0&&(t={}),this.name=e.id,this._key=t.key||IYt,this._limit=t.limit||RYt}return e.prototype.setupOnce=function(){Rae.addGlobalEventProcessor(function(t,r){var n=Rae.getCurrentHub().getIntegration(e);if(n){var i=n._handler&&n._handler.bind(n);return typeof i=="function"?i(t,r):t}return t})},e.prototype._handler=function(t,r){var n=this;return!t.exception||!t.exception.values||!r||!XR.isInstanceOf(r.originalException,Error)?XR.resolvedSyncPromise(t):new XR.SyncPromise(function(i){n._walkErrorTree(r.originalException,n._key).then(function(a){t&&t.exception&&t.exception.values&&(t.exception.values=JR.__spread(a,t.exception.values)),i(t)}).then(null,function(){i(t)})})},e.prototype._walkErrorTree=function(t,r,n){n===void 0&&(n=[]);var i;return JR.__awaiter(this,void 0,void 0,function(){var a,s,o=this;return JR.__generator(this,function(c){switch(c.label){case 0:return!XR.isInstanceOf(t[r],Error)||n.length+1>=this._limit?[2,Promise.resolve(n)]:(a=CYt.exceptionFromError(t[r]),s=Rae.getCurrentHub().getIntegration(PYt.ContextLines),s&&(!((i=a.stacktrace)===null||i===void 0)&&i.frames)?[4,s.addSourceContextToFrames(a.stacktrace.frames)]:[3,2]);case 1:c.sent(),c.label=2;case 2:return[2,new Promise(function(p,f){o._walkErrorTree(t[r],r,JR.__spread([a],n)).then(p).then(null,function(){f()})})]}})})},e.id="LinkedErrors",e}();Fae.LinkedErrors=FYt});var bNe=b(Nae=>{Object.defineProperty(Nae,"__esModule",{value:!0});var gNe=(qo(),_n(No)),vNe=require("fs"),yNe=require("path"),jae;function jYt(){try{return require.cache?Object.keys(require.cache):[]}catch{return[]}}function NYt(){var e=require.main&&require.main.paths||[],t=jYt(),r={},n={};return t.forEach(function(i){var a=i,s=function(){var o=a;if(a=yNe.dirname(o),!(!a||o===a||n[o])){if(e.indexOf(a)<0)return s();var c=yNe.join(o,"package.json");if(n[o]=!0,!vNe.existsSync(c))return s();try{var p=JSON.parse(vNe.readFileSync(c,"utf8"));r[p.name]=p.version}catch{}}};s()}),r}var qYt=function(){function e(){this.name=e.id}return e.prototype.setupOnce=function(t,r){var n=this;t(function(i){return r().getIntegration(e)?gNe.__assign(gNe.__assign({},i),{modules:n._getModules()}):i})},e.prototype._getModules=function(){return jae||(jae=NYt()),jae},e.id="Modules",e}();Nae.Modules=qYt});var qae=b(v1=>{Object.defineProperty(v1,"__esModule",{value:!0});var LYt=Qje();v1.Console=LYt.Console;var $Yt=oNe();v1.Http=$Yt.Http;var BYt=pNe();v1.OnUncaughtException=BYt.OnUncaughtException;var MYt=dNe();v1.OnUnhandledRejection=MYt.OnUnhandledRejection;var UYt=mNe();v1.LinkedErrors=UYt.LinkedErrors;var zYt=bNe();v1.Modules=zYt.Modules;var HYt=Iae();v1.ContextLines=HYt.ContextLines});var Lae=b(Nd=>{Object.defineProperty(Nd,"__esModule",{value:!0});var S7=(qo(),_n(No)),fg=Wn(),wNe=jd(),k7=Vr(),VYt=require("domain"),GYt=_ae(),s4=qae();Nd.defaultIntegrations=[new fg.Integrations.InboundFilters,new fg.Integrations.FunctionToString,new s4.ContextLines,new s4.Console,new s4.Http,new s4.OnUncaughtException,new s4.OnUnhandledRejection,new s4.LinkedErrors];function WYt(e){e===void 0&&(e={});var t,r=wNe.getMainCarrier(),n=((t=r.__SENTRY__)===null||t===void 0?void 0:t.integrations)||[];if(e.defaultIntegrations=e.defaultIntegrations===!1?[]:S7.__spread(Array.isArray(e.defaultIntegrations)?e.defaultIntegrations:Nd.defaultIntegrations,n),e.dsn===void 0&&process.env.SENTRY_DSN&&(e.dsn=process.env.SENTRY_DSN),e.tracesSampleRate===void 0&&process.env.SENTRY_TRACES_SAMPLE_RATE){var i=parseFloat(process.env.SENTRY_TRACES_SAMPLE_RATE);isFinite(i)&&(e.tracesSampleRate=i)}if(e.release===void 0){var a=_Ne();a!==void 0?e.release=a:e.autoSessionTracking=!1}e.environment===void 0&&process.env.SENTRY_ENVIRONMENT&&(e.environment=process.env.SENTRY_ENVIRONMENT),e.autoSessionTracking===void 0&&e.dsn!==void 0&&(e.autoSessionTracking=!0),VYt.active&&wNe.setHubOnCarrier(r,fg.getCurrentHub()),fg.initAndBind(GYt.NodeClient,e),e.autoSessionTracking&&QYt()}Nd.init=WYt;function KYt(){return fg.getCurrentHub().lastEventId()}Nd.lastEventId=KYt;function YYt(e){return S7.__awaiter(this,void 0,void 0,function(){var t;return S7.__generator(this,function(r){return t=fg.getCurrentHub().getClient(),t?[2,t.flush(e)]:(k7.isDebugBuild()&&k7.logger.warn("Cannot flush events. No client defined."),[2,Promise.resolve(!1)])})})}Nd.flush=YYt;function JYt(e){return S7.__awaiter(this,void 0,void 0,function(){var t;return S7.__generator(this,function(r){return t=fg.getCurrentHub().getClient(),t?[2,t.close(e)]:(k7.isDebugBuild()&&k7.logger.warn("Cannot flush events and disable SDK. No client defined."),[2,Promise.resolve(!1)])})})}Nd.close=JYt;function XYt(e){if(e===void 0)return!1;var t=e&&e.getOptions();return t&&t.autoSessionTracking!==void 0?t.autoSessionTracking:!1}Nd.isAutoSessionTrackingEnabled=XYt;function _Ne(e){if(process.env.SENTRY_RELEASE)return process.env.SENTRY_RELEASE;var t=k7.getGlobalObject();return t.SENTRY_RELEASE&&t.SENTRY_RELEASE.id?t.SENTRY_RELEASE.id:process.env.GITHUB_SHA||process.env.COMMIT_REF||process.env.VERCEL_GIT_COMMIT_SHA||process.env.VERCEL_GITHUB_COMMIT_SHA||process.env.VERCEL_GITLAB_COMMIT_SHA||process.env.VERCEL_BITBUCKET_COMMIT_SHA||process.env.ZEIT_GITHUB_COMMIT_SHA||process.env.ZEIT_GITLAB_COMMIT_SHA||process.env.ZEIT_BITBUCKET_COMMIT_SHA||e}Nd.getSentryRelease=_Ne;function QYt(){var e=fg.getCurrentHub();e.startSession(),process.on("beforeExit",function(){var t,r=(t=e.getScope())===null||t===void 0?void 0:t.getSession(),n=["exited","crashed"];r&&!n.includes(r.status)&&e.endSession()})}});var ENe=b(Bae=>{Object.defineProperty(Bae,"__esModule",{value:!0});var xNe=(qo(),_n(No)),QR=require("fs"),$ae=require("path");function ZYt(e){var t=$ae.resolve(e);if(!QR.existsSync(t))throw new Error("Cannot read contents of "+t+". Directory does not exist.");if(!QR.statSync(t).isDirectory())throw new Error("Cannot read contents of "+t+", because it is not a directory.");var r=function(n){return QR.readdirSync(n).reduce(function(i,a){var s=$ae.join(n,a);return QR.statSync(s).isDirectory()?xNe.__spread(i,r(s)):xNe.__spread(i,[s])},[])};return r(t).map(function(n){return $ae.relative(t,n)})}Bae.deepReadDirSync=ZYt});var SNe=b(Mae=>{"use strict";Mae.parse=rJt;Mae.serialize=nJt;var eJt=decodeURIComponent,tJt=encodeURIComponent,ZR=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function rJt(e,t){if(typeof e!="string")throw new TypeError("argument str must be a string");for(var r={},n=t||{},i=e.split(";"),a=n.decode||eJt,s=0;s<i.length;s++){var o=i[s],c=o.indexOf("=");if(!(c<0)){var p=o.substring(0,c).trim();if(r[p]==null){var f=o.substring(c+1,o.length).trim();f[0]==='"'&&(f=f.slice(1,-1)),r[p]=iJt(f,a)}}}return r}function nJt(e,t,r){var n=r||{},i=n.encode||tJt;if(typeof i!="function")throw new TypeError("option encode is invalid");if(!ZR.test(e))throw new TypeError("argument name is invalid");var a=i(t);if(a&&!ZR.test(a))throw new TypeError("argument val is invalid");var s=e+"="+a;if(n.maxAge!=null){var o=n.maxAge-0;if(isNaN(o)||!isFinite(o))throw new TypeError("option maxAge is invalid");s+="; Max-Age="+Math.floor(o)}if(n.domain){if(!ZR.test(n.domain))throw new TypeError("option domain is invalid");s+="; Domain="+n.domain}if(n.path){if(!ZR.test(n.path))throw new TypeError("option path is invalid");s+="; Path="+n.path}if(n.expires){if(typeof n.expires.toUTCString!="function")throw new TypeError("option expires is invalid");s+="; Expires="+n.expires.toUTCString()}if(n.httpOnly&&(s+="; HttpOnly"),n.secure&&(s+="; Secure"),n.sameSite){var c=typeof n.sameSite=="string"?n.sameSite.toLowerCase():n.sameSite;switch(c){case!0:s+="; SameSite=Strict";break;case"lax":s+="; SameSite=Lax";break;case"strict":s+="; SameSite=Strict";break;case"none":s+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return s}function iJt(e,t){try{return t(e)}catch{return e}}});var ANe=b(Ab=>{Object.defineProperty(Ab,"__esModule",{value:!0});var qd=(qo(),_n(No)),kb=Wn(),dg=Vr(),aJt=SNe(),sJt=require("domain"),oJt=require("os"),uJt=require("url"),A7=Lae();function cJt(){return function(t,r,n){var i;t.headers&&dg.isString(t.headers["sentry-trace"])&&(i=dg.extractTraceparentData(t.headers["sentry-trace"]));var a=kb.startTransaction(qd.__assign({name:eF(t,{path:!0,method:!0}),op:"http.server"},i),{request:tF(t)});kb.getCurrentHub().configureScope(function(s){s.setSpan(a)}),r.__sentry_transaction=a,r.once("finish",function(){setImmediate(function(){lJt(a,t),a.setHttpStatus(r.statusCode),a.finish()})}),n()}}Ab.tracingHandler=cJt;function lJt(e,t){e&&(e.name=eF(t,{path:!0,method:!0}),e.setData("url",t.originalUrl),e.setData("baseUrl",t.baseUrl),e.setData("query",t.query))}function eF(e,t){t===void 0&&(t={});var r,n=(r=e.method)===null||r===void 0?void 0:r.toUpperCase(),i="";e.route?i=""+(e.baseUrl||"")+e.route.path:(e.originalUrl||e.url)&&(i=dg.stripUrlQueryAndFragment(e.originalUrl||e.url||""));var a="";return t.method&&n&&(a+=n),t.method&&t.path&&(a+=" "),t.path&&i&&(a+=i),a}function pJt(e,t){var r;switch(t){case"path":return eF(e,{path:!0});case"handler":return((r=e.route)===null||r===void 0?void 0:r.stack[0].name)||"<anonymous>";case"methodPath":default:return eF(e,{path:!0,method:!0})}}var fJt=["id","username","email"];function dJt(e,t){var r={},n=Array.isArray(t)?t:fJt;return n.forEach(function(i){e&&i in e&&(r[i]=e[i])}),r}var hJt=["cookies","data","headers","method","query_string","url"];function tF(e,t){t===void 0&&(t=hJt);var r={},n=e.headers||e.header||{},i=e.method,a=e.hostname||e.host||n.host||"<no host>",s=e.protocol==="https"||e.secure||(e.socket||{}).encrypted?"https":"http",o=e.originalUrl||e.url||"",c=s+"://"+a+o;return t.forEach(function(p){switch(p){case"headers":r.headers=n;break;case"method":r.method=i;break;case"url":r.url=c;break;case"cookies":r.cookies=e.cookies||aJt.parse(n.cookie||"");break;case"query_string":r.query_string=e.query||uJt.parse(o||"",!1).query;break;case"data":if(i==="GET"||i==="HEAD")break;e.body!==void 0&&(r.data=dg.isString(e.body)?e.body:JSON.stringify(dg.normalize(e.body)));break;default:({}).hasOwnProperty.call(e,p)&&(r[p]=e[p])}}),r}Ab.extractRequestData=tF;function kNe(e,t,r){if(r=qd.__assign({ip:!1,request:!0,serverName:!0,transaction:!0,user:!0,version:!0},r),r.version&&(e.contexts=qd.__assign(qd.__assign({},e.contexts),{runtime:{name:"node",version:global.process.version}})),r.request){var n=Array.isArray(r.request)?tF(t,r.request):tF(t);e.request=qd.__assign(qd.__assign({},e.request),n)}if(r.serverName&&!e.server_name&&(e.server_name=global.process.env.SENTRY_NAME||oJt.hostname()),r.user){var i=t.user&&dg.isPlainObject(t.user)?dJt(t.user,r.user):{};Object.keys(i)&&(e.user=qd.__assign(qd.__assign({},e.user),i))}if(r.ip){var a=t.ip||t.connection&&t.connection.remoteAddress;a&&(e.user=qd.__assign(qd.__assign({},e.user),{ip_address:a}))}return r.transaction&&!e.transaction&&(e.transaction=pJt(t,r.transaction)),e}Ab.parseRequest=kNe;function mJt(e){var t=kb.getCurrentHub(),r=t.getClient();if(r&&A7.isAutoSessionTrackingEnabled(r)){r.initSessionFlusher();var n=t.getScope();n&&n.getSession()&&n.setSession()}return function(a,s,o){if(e&&e.flushTimeout&&e.flushTimeout>0){var c=s.end;s.end=function(f,d,h){var g=this;A7.flush(e.flushTimeout).then(function(){c.call(g,f,d,h)}).then(null,function(v){dg.isDebugBuild()&&dg.logger.error(v),c.call(g,f,d,h)})}}var p=sJt.create();p.add(a),p.add(s),p.on("error",o),p.run(function(){var f=kb.getCurrentHub();f.configureScope(function(d){d.addEventProcessor(function(v){return kNe(v,a,e)});var h=f.getClient();if(A7.isAutoSessionTrackingEnabled(h)){var g=f.getScope();g&&g.setRequestSession({status:"ok"})}}),s.once("finish",function(){var d=f.getClient();A7.isAutoSessionTrackingEnabled(d)&&setImmediate(function(){d&&d._captureRequestSession&&d._captureRequestSession()})}),o()})}}Ab.requestHandler=mJt;function gJt(e){var t=e.status||e.statusCode||e.status_code||e.output&&e.output.statusCode;return t?parseInt(t,10):500}function vJt(e){var t=gJt(e);return t>=500}function yJt(e){return function(r,n,i,a){var s=e&&e.shouldHandleError||vJt;if(s(r)){kb.withScope(function(o){var c=i.__sentry_transaction;c&&o.getSpan()===void 0&&o.setSpan(c);var p=kb.getCurrentHub().getClient();if(p&&A7.isAutoSessionTrackingEnabled(p)){var f=p._sessionFlusher!==void 0;if(f){var d=o.getRequestSession();d&&d.status!==void 0&&(d.status="crashed")}}var h=kb.captureException(r);i.sentry=h,a(r)});return}a(r)}}Ab.errorHandler=yJt});var u4=b(yn=>{Object.defineProperty(yn,"__esModule",{value:!0});var TNe=(qo(),_n(No)),bJt=Fd();yn.Severity=bJt.Severity;var ss=Wn();yn.addGlobalEventProcessor=ss.addGlobalEventProcessor;yn.addBreadcrumb=ss.addBreadcrumb;yn.captureException=ss.captureException;yn.captureEvent=ss.captureEvent;yn.captureMessage=ss.captureMessage;yn.configureScope=ss.configureScope;yn.getHubFromCarrier=ss.getHubFromCarrier;yn.getCurrentHub=ss.getCurrentHub;yn.Hub=ss.Hub;yn.makeMain=ss.makeMain;yn.Scope=ss.Scope;yn.Session=ss.Session;yn.startTransaction=ss.startTransaction;yn.SDK_VERSION=ss.SDK_VERSION;yn.setContext=ss.setContext;yn.setExtra=ss.setExtra;yn.setExtras=ss.setExtras;yn.setTag=ss.setTag;yn.setTags=ss.setTags;yn.setUser=ss.setUser;yn.withScope=ss.withScope;var wJt=yae();yn.NodeBackend=wJt.NodeBackend;var _Jt=_ae();yn.NodeClient=_Jt.NodeClient;var o4=Lae();yn.defaultIntegrations=o4.defaultIntegrations;yn.init=o4.init;yn.lastEventId=o4.lastEventId;yn.flush=o4.flush;yn.close=o4.close;yn.getSentryRelease=o4.getSentryRelease;var xJt=ENe();yn.deepReadDirSync=xJt.deepReadDirSync;var EJt=tae();yn.SDK_NAME=EJt.SDK_NAME;var SJt=Wn(),kJt=jd(),AJt=require("domain"),TJt=ANe();yn.Handlers=TJt;var OJt=qae(),DJt=mae();yn.Transports=DJt;var CJt=TNe.__assign(TNe.__assign({},SJt.Integrations),OJt);yn.Integrations=CJt;var T7=kJt.getMainCarrier();T7.__SENTRY__&&(T7.__SENTRY__.extensions=T7.__SENTRY__.extensions||{},T7.__SENTRY__.extensions.domain=T7.__SENTRY__.extensions.domain||AJt)});var use=b((hWr,Cqe)=>{"use strict";Cqe.exports=e=>{let t=typeof e;return e!==null&&(t==="object"||t==="function")}});var Iqe=b((mWr,Pqe)=>{"use strict";var Ub=use(),cXt=["__proto__","prototype","constructor"],lXt=e=>!e.some(t=>cXt.includes(t));function EF(e){let t=e.split("."),r=[];for(let n=0;n<t.length;n++){let i=t[n];for(;i[i.length-1]==="\\"&&t[n+1]!==void 0;)i=i.slice(0,-1)+".",i+=t[++n];r.push(i)}return lXt(r)?r:[]}Pqe.exports={get(e,t,r){if(!Ub(e)||typeof t!="string")return r===void 0?e:r;let n=EF(t);if(n.length!==0){for(let i=0;i<n.length;i++){if(!Object.prototype.propertyIsEnumerable.call(e,n[i]))return r;if(e=e[n[i]],e==null){if(i!==n.length-1)return r;break}}return e}},set(e,t,r){if(!Ub(e)||typeof t!="string")return e;let n=e,i=EF(t);for(let a=0;a<i.length;a++){let s=i[a];Ub(e[s])||(e[s]={}),a===i.length-1&&(e[s]=r),e=e[s]}return n},delete(e,t){if(!Ub(e)||typeof t!="string")return!1;let r=EF(t);for(let n=0;n<r.length;n++){let i=r[n];if(n===r.length-1)return delete e[i],!0;if(e=e[i],!Ub(e))return!1}},has(e,t){if(!Ub(e)||typeof t!="string")return!1;let r=EF(t);if(r.length===0)return!1;for(let n=0;n<r.length;n++)if(Ub(e)){if(!(r[n]in e))return!1;e=e[r[n]]}else return!1;return!0}}});var Lqe=b(($r,qqe)=>{$r=qqe.exports=nn;var ii;typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?ii=function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e)}:ii=function(){};$r.SEMVER_SPEC_VERSION="2.0.0";var U7=256,SF=Number.MAX_SAFE_INTEGER||9007199254740991,cse=16,pXt=U7-6,_4=$r.re=[],ni=$r.safeRe=[],ht=$r.src=[],tt=$r.tokens={},jqe=0;function pn(e){tt[e]=jqe++}var pse="[a-zA-Z0-9-]",lse=[["\\s",1],["\\d",U7],[pse,pXt]];function H7(e){for(var t=0;t<lse.length;t++){var r=lse[t][0],n=lse[t][1];e=e.split(r+"*").join(r+"{0,"+n+"}").split(r+"+").join(r+"{1,"+n+"}")}return e}pn("NUMERICIDENTIFIER");ht[tt.NUMERICIDENTIFIER]="0|[1-9]\\d*";pn("NUMERICIDENTIFIERLOOSE");ht[tt.NUMERICIDENTIFIERLOOSE]="\\d+";pn("NONNUMERICIDENTIFIER");ht[tt.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+pse+"*";pn("MAINVERSION");ht[tt.MAINVERSION]="("+ht[tt.NUMERICIDENTIFIER]+")\\.("+ht[tt.NUMERICIDENTIFIER]+")\\.("+ht[tt.NUMERICIDENTIFIER]+")";pn("MAINVERSIONLOOSE");ht[tt.MAINVERSIONLOOSE]="("+ht[tt.NUMERICIDENTIFIERLOOSE]+")\\.("+ht[tt.NUMERICIDENTIFIERLOOSE]+")\\.("+ht[tt.NUMERICIDENTIFIERLOOSE]+")";pn("PRERELEASEIDENTIFIER");ht[tt.PRERELEASEIDENTIFIER]="(?:"+ht[tt.NUMERICIDENTIFIER]+"|"+ht[tt.NONNUMERICIDENTIFIER]+")";pn("PRERELEASEIDENTIFIERLOOSE");ht[tt.PRERELEASEIDENTIFIERLOOSE]="(?:"+ht[tt.NUMERICIDENTIFIERLOOSE]+"|"+ht[tt.NONNUMERICIDENTIFIER]+")";pn("PRERELEASE");ht[tt.PRERELEASE]="(?:-("+ht[tt.PRERELEASEIDENTIFIER]+"(?:\\."+ht[tt.PRERELEASEIDENTIFIER]+")*))";pn("PRERELEASELOOSE");ht[tt.PRERELEASELOOSE]="(?:-?("+ht[tt.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+ht[tt.PRERELEASEIDENTIFIERLOOSE]+")*))";pn("BUILDIDENTIFIER");ht[tt.BUILDIDENTIFIER]=pse+"+";pn("BUILD");ht[tt.BUILD]="(?:\\+("+ht[tt.BUILDIDENTIFIER]+"(?:\\."+ht[tt.BUILDIDENTIFIER]+")*))";pn("FULL");pn("FULLPLAIN");ht[tt.FULLPLAIN]="v?"+ht[tt.MAINVERSION]+ht[tt.PRERELEASE]+"?"+ht[tt.BUILD]+"?";ht[tt.FULL]="^"+ht[tt.FULLPLAIN]+"$";pn("LOOSEPLAIN");ht[tt.LOOSEPLAIN]="[v=\\s]*"+ht[tt.MAINVERSIONLOOSE]+ht[tt.PRERELEASELOOSE]+"?"+ht[tt.BUILD]+"?";pn("LOOSE");ht[tt.LOOSE]="^"+ht[tt.LOOSEPLAIN]+"$";pn("GTLT");ht[tt.GTLT]="((?:<|>)?=?)";pn("XRANGEIDENTIFIERLOOSE");ht[tt.XRANGEIDENTIFIERLOOSE]=ht[tt.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*";pn("XRANGEIDENTIFIER");ht[tt.XRANGEIDENTIFIER]=ht[tt.NUMERICIDENTIFIER]+"|x|X|\\*";pn("XRANGEPLAIN");ht[tt.XRANGEPLAIN]="[v=\\s]*("+ht[tt.XRANGEIDENTIFIER]+")(?:\\.("+ht[tt.XRANGEIDENTIFIER]+")(?:\\.("+ht[tt.XRANGEIDENTIFIER]+")(?:"+ht[tt.PRERELEASE]+")?"+ht[tt.BUILD]+"?)?)?";pn("XRANGEPLAINLOOSE");ht[tt.XRANGEPLAINLOOSE]="[v=\\s]*("+ht[tt.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+ht[tt.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+ht[tt.XRANGEIDENTIFIERLOOSE]+")(?:"+ht[tt.PRERELEASELOOSE]+")?"+ht[tt.BUILD]+"?)?)?";pn("XRANGE");ht[tt.XRANGE]="^"+ht[tt.GTLT]+"\\s*"+ht[tt.XRANGEPLAIN]+"$";pn("XRANGELOOSE");ht[tt.XRANGELOOSE]="^"+ht[tt.GTLT]+"\\s*"+ht[tt.XRANGEPLAINLOOSE]+"$";pn("COERCE");ht[tt.COERCE]="(^|[^\\d])(\\d{1,"+cse+"})(?:\\.(\\d{1,"+cse+"}))?(?:\\.(\\d{1,"+cse+"}))?(?:$|[^\\d])";pn("COERCERTL");_4[tt.COERCERTL]=new RegExp(ht[tt.COERCE],"g");ni[tt.COERCERTL]=new RegExp(H7(ht[tt.COERCE]),"g");pn("LONETILDE");ht[tt.LONETILDE]="(?:~>?)";pn("TILDETRIM");ht[tt.TILDETRIM]="(\\s*)"+ht[tt.LONETILDE]+"\\s+";_4[tt.TILDETRIM]=new RegExp(ht[tt.TILDETRIM],"g");ni[tt.TILDETRIM]=new RegExp(H7(ht[tt.TILDETRIM]),"g");var fXt="$1~";pn("TILDE");ht[tt.TILDE]="^"+ht[tt.LONETILDE]+ht[tt.XRANGEPLAIN]+"$";pn("TILDELOOSE");ht[tt.TILDELOOSE]="^"+ht[tt.LONETILDE]+ht[tt.XRANGEPLAINLOOSE]+"$";pn("LONECARET");ht[tt.LONECARET]="(?:\\^)";pn("CARETTRIM");ht[tt.CARETTRIM]="(\\s*)"+ht[tt.LONECARET]+"\\s+";_4[tt.CARETTRIM]=new RegExp(ht[tt.CARETTRIM],"g");ni[tt.CARETTRIM]=new RegExp(H7(ht[tt.CARETTRIM]),"g");var dXt="$1^";pn("CARET");ht[tt.CARET]="^"+ht[tt.LONECARET]+ht[tt.XRANGEPLAIN]+"$";pn("CARETLOOSE");ht[tt.CARETLOOSE]="^"+ht[tt.LONECARET]+ht[tt.XRANGEPLAINLOOSE]+"$";pn("COMPARATORLOOSE");ht[tt.COMPARATORLOOSE]="^"+ht[tt.GTLT]+"\\s*("+ht[tt.LOOSEPLAIN]+")$|^$";pn("COMPARATOR");ht[tt.COMPARATOR]="^"+ht[tt.GTLT]+"\\s*("+ht[tt.FULLPLAIN]+")$|^$";pn("COMPARATORTRIM");ht[tt.COMPARATORTRIM]="(\\s*)"+ht[tt.GTLT]+"\\s*("+ht[tt.LOOSEPLAIN]+"|"+ht[tt.XRANGEPLAIN]+")";_4[tt.COMPARATORTRIM]=new RegExp(ht[tt.COMPARATORTRIM],"g");ni[tt.COMPARATORTRIM]=new RegExp(H7(ht[tt.COMPARATORTRIM]),"g");var hXt="$1$2$3";pn("HYPHENRANGE");ht[tt.HYPHENRANGE]="^\\s*("+ht[tt.XRANGEPLAIN]+")\\s+-\\s+("+ht[tt.XRANGEPLAIN]+")\\s*$";pn("HYPHENRANGELOOSE");ht[tt.HYPHENRANGELOOSE]="^\\s*("+ht[tt.XRANGEPLAINLOOSE]+")\\s+-\\s+("+ht[tt.XRANGEPLAINLOOSE]+")\\s*$";pn("STAR");ht[tt.STAR]="(<|>)?=?\\s*\\*";for(Md=0;Md<jqe;Md++)ii(Md,ht[Md]),_4[Md]||(_4[Md]=new RegExp(ht[Md]),ni[Md]=new RegExp(H7(ht[Md])));var Md;$r.parse=Hb;function Hb(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof nn)return e;if(typeof e!="string"||e.length>U7)return null;var r=t.loose?ni[tt.LOOSE]:ni[tt.FULL];if(!r.test(e))return null;try{return new nn(e,t)}catch{return null}}$r.valid=mXt;function mXt(e,t){var r=Hb(e,t);return r?r.version:null}$r.clean=gXt;function gXt(e,t){var r=Hb(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null}$r.SemVer=nn;function nn(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof nn){if(e.loose===t.loose)return e;e=e.version}else if(typeof e!="string")throw new TypeError("Invalid Version: "+e);if(e.length>U7)throw new TypeError("version is longer than "+U7+" characters");if(!(this instanceof nn))return new nn(e,t);ii("SemVer",e,t),this.options=t,this.loose=!!t.loose;var r=e.trim().match(t.loose?ni[tt.LOOSE]:ni[tt.FULL]);if(!r)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>SF||this.major<0)throw new TypeError("Invalid major version");if(this.minor>SF||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>SF||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(function(n){if(/^[0-9]+$/.test(n)){var i=+n;if(i>=0&&i<SF)return i}return n}):this.prerelease=[],this.build=r[5]?r[5].split("."):[],this.format()}nn.prototype.format=function(){return this.version=this.major+"."+this.minor+"."+this.patch,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version};nn.prototype.toString=function(){return this.version};nn.prototype.compare=function(e){return ii("SemVer.compare",this.version,this.options,e),e instanceof nn||(e=new nn(e,this.options)),this.compareMain(e)||this.comparePre(e)};nn.prototype.compareMain=function(e){return e instanceof nn||(e=new nn(e,this.options)),zb(this.major,e.major)||zb(this.minor,e.minor)||zb(this.patch,e.patch)};nn.prototype.comparePre=function(e){if(e instanceof nn||(e=new nn(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;var t=0;do{var r=this.prerelease[t],n=e.prerelease[t];if(ii("prerelease compare",t,r,n),r===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(r===void 0)return-1;if(r===n)continue;return zb(r,n)}while(++t)};nn.prototype.compareBuild=function(e){e instanceof nn||(e=new nn(e,this.options));var t=0;do{var r=this.build[t],n=e.build[t];if(ii("prerelease compare",t,r,n),r===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(r===void 0)return-1;if(r===n)continue;return zb(r,n)}while(++t)};nn.prototype.inc=function(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t),this.inc("pre",t);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{for(var r=this.prerelease.length;--r>=0;)typeof this.prerelease[r]=="number"&&(this.prerelease[r]++,r=-2);r===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this};$r.inc=vXt;function vXt(e,t,r,n){typeof r=="string"&&(n=r,r=void 0);try{return new nn(e,r).inc(t,n).version}catch{return null}}$r.diff=yXt;function yXt(e,t){if(fse(e,t))return null;var r=Hb(e),n=Hb(t),i="";if(r.prerelease.length||n.prerelease.length){i="pre";var a="prerelease"}for(var s in r)if((s==="major"||s==="minor"||s==="patch")&&r[s]!==n[s])return i+s;return a}$r.compareIdentifiers=zb;var Rqe=/^[0-9]+$/;function zb(e,t){var r=Rqe.test(e),n=Rqe.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e<t?-1:1}$r.rcompareIdentifiers=bXt;function bXt(e,t){return zb(t,e)}$r.major=wXt;function wXt(e,t){return new nn(e,t).major}$r.minor=_Xt;function _Xt(e,t){return new nn(e,t).minor}$r.patch=xXt;function xXt(e,t){return new nn(e,t).patch}$r.compare=_1;function _1(e,t,r){return new nn(e,r).compare(new nn(t,r))}$r.compareLoose=EXt;function EXt(e,t){return _1(e,t,!0)}$r.compareBuild=SXt;function SXt(e,t,r){var n=new nn(e,r),i=new nn(t,r);return n.compare(i)||n.compareBuild(i)}$r.rcompare=kXt;function kXt(e,t,r){return _1(t,e,r)}$r.sort=AXt;function AXt(e,t){return e.sort(function(r,n){return $r.compareBuild(r,n,t)})}$r.rsort=TXt;function TXt(e,t){return e.sort(function(r,n){return $r.compareBuild(n,r,t)})}$r.gt=z7;function z7(e,t,r){return _1(e,t,r)>0}$r.lt=kF;function kF(e,t,r){return _1(e,t,r)<0}$r.eq=fse;function fse(e,t,r){return _1(e,t,r)===0}$r.neq=Nqe;function Nqe(e,t,r){return _1(e,t,r)!==0}$r.gte=dse;function dse(e,t,r){return _1(e,t,r)>=0}$r.lte=hse;function hse(e,t,r){return _1(e,t,r)<=0}$r.cmp=AF;function AF(e,t,r,n){switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e===r;case"!==":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e!==r;case"":case"=":case"==":return fse(e,r,n);case"!=":return Nqe(e,r,n);case">":return z7(e,r,n);case">=":return dse(e,r,n);case"<":return kF(e,r,n);case"<=":return hse(e,r,n);default:throw new TypeError("Invalid operator: "+t)}}$r.Comparator=Wl;function Wl(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof Wl){if(e.loose===!!t.loose)return e;e=e.value}if(!(this instanceof Wl))return new Wl(e,t);e=e.trim().split(/\s+/).join(" "),ii("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===x4?this.value="":this.value=this.operator+this.semver.version,ii("comp",this)}var x4={};Wl.prototype.parse=function(e){var t=this.options.loose?ni[tt.COMPARATORLOOSE]:ni[tt.COMPARATOR],r=e.match(t);if(!r)throw new TypeError("Invalid comparator: "+e);this.operator=r[1]!==void 0?r[1]:"",this.operator==="="&&(this.operator=""),r[2]?this.semver=new nn(r[2],this.options.loose):this.semver=x4};Wl.prototype.toString=function(){return this.value};Wl.prototype.test=function(e){if(ii("Comparator.test",e,this.options.loose),this.semver===x4||e===x4)return!0;if(typeof e=="string")try{e=new nn(e,this.options)}catch{return!1}return AF(e,this.operator,this.semver,this.options)};Wl.prototype.intersects=function(e,t){if(!(e instanceof Wl))throw new TypeError("a Comparator is required");(!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1});var r;if(this.operator==="")return this.value===""?!0:(r=new Ia(e.value,t),TF(this.value,r,t));if(e.operator==="")return e.value===""?!0:(r=new Ia(this.value,t),TF(e.semver,r,t));var n=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),i=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),a=this.semver.version===e.semver.version,s=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),o=AF(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),c=AF(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return n||i||a&&s||o||c};$r.Range=Ia;function Ia(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof Ia)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new Ia(e.raw,t);if(e instanceof Wl)return new Ia(e.value,t);if(!(this instanceof Ia))return new Ia(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(r){return this.parseRange(r.trim())},this).filter(function(r){return r.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+this.raw);this.format()}Ia.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim(),this.range};Ia.prototype.toString=function(){return this.range};Ia.prototype.parseRange=function(e){var t=this.options.loose,r=t?ni[tt.HYPHENRANGELOOSE]:ni[tt.HYPHENRANGE];e=e.replace(r,qXt),ii("hyphen replace",e),e=e.replace(ni[tt.COMPARATORTRIM],hXt),ii("comparator trim",e,ni[tt.COMPARATORTRIM]),e=e.replace(ni[tt.TILDETRIM],fXt),e=e.replace(ni[tt.CARETTRIM],dXt),e=e.split(/\s+/).join(" ");var n=t?ni[tt.COMPARATORLOOSE]:ni[tt.COMPARATOR],i=e.split(" ").map(function(a){return DXt(a,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(i=i.filter(function(a){return!!a.match(n)})),i=i.map(function(a){return new Wl(a,this.options)},this),i};Ia.prototype.intersects=function(e,t){if(!(e instanceof Ia))throw new TypeError("a Range is required");return this.set.some(function(r){return Fqe(r,t)&&e.set.some(function(n){return Fqe(n,t)&&r.every(function(i){return n.every(function(a){return i.intersects(a,t)})})})})};function Fqe(e,t){for(var r=!0,n=e.slice(),i=n.pop();r&&n.length;)r=n.every(function(a){return i.intersects(a,t)}),i=n.pop();return r}$r.toComparators=OXt;function OXt(e,t){return new Ia(e,t).set.map(function(r){return r.map(function(n){return n.value}).join(" ").trim().split(" ")})}function DXt(e,t){return ii("comp",e,t),e=IXt(e,t),ii("caret",e),e=CXt(e,t),ii("tildes",e),e=FXt(e,t),ii("xrange",e),e=NXt(e,t),ii("stars",e),e}function Yu(e){return!e||e.toLowerCase()==="x"||e==="*"}function CXt(e,t){return e.trim().split(/\s+/).map(function(r){return PXt(r,t)}).join(" ")}function PXt(e,t){var r=t.loose?ni[tt.TILDELOOSE]:ni[tt.TILDE];return e.replace(r,function(n,i,a,s,o){ii("tilde",e,n,i,a,s,o);var c;return Yu(i)?c="":Yu(a)?c=">="+i+".0.0 <"+(+i+1)+".0.0":Yu(s)?c=">="+i+"."+a+".0 <"+i+"."+(+a+1)+".0":o?(ii("replaceTilde pr",o),c=">="+i+"."+a+"."+s+"-"+o+" <"+i+"."+(+a+1)+".0"):c=">="+i+"."+a+"."+s+" <"+i+"."+(+a+1)+".0",ii("tilde return",c),c})}function IXt(e,t){return e.trim().split(/\s+/).map(function(r){return RXt(r,t)}).join(" ")}function RXt(e,t){ii("caret",e,t);var r=t.loose?ni[tt.CARETLOOSE]:ni[tt.CARET];return e.replace(r,function(n,i,a,s,o){ii("caret",e,n,i,a,s,o);var c;return Yu(i)?c="":Yu(a)?c=">="+i+".0.0 <"+(+i+1)+".0.0":Yu(s)?i==="0"?c=">="+i+"."+a+".0 <"+i+"."+(+a+1)+".0":c=">="+i+"."+a+".0 <"+(+i+1)+".0.0":o?(ii("replaceCaret pr",o),i==="0"?a==="0"?c=">="+i+"."+a+"."+s+"-"+o+" <"+i+"."+a+"."+(+s+1):c=">="+i+"."+a+"."+s+"-"+o+" <"+i+"."+(+a+1)+".0":c=">="+i+"."+a+"."+s+"-"+o+" <"+(+i+1)+".0.0"):(ii("no pr"),i==="0"?a==="0"?c=">="+i+"."+a+"."+s+" <"+i+"."+a+"."+(+s+1):c=">="+i+"."+a+"."+s+" <"+i+"."+(+a+1)+".0":c=">="+i+"."+a+"."+s+" <"+(+i+1)+".0.0"),ii("caret return",c),c})}function FXt(e,t){return ii("replaceXRanges",e,t),e.split(/\s+/).map(function(r){return jXt(r,t)}).join(" ")}function jXt(e,t){e=e.trim();var r=t.loose?ni[tt.XRANGELOOSE]:ni[tt.XRANGE];return e.replace(r,function(n,i,a,s,o,c){ii("xRange",e,n,i,a,s,o,c);var p=Yu(a),f=p||Yu(s),d=f||Yu(o),h=d;return i==="="&&h&&(i=""),c=t.includePrerelease?"-0":"",p?i===">"||i==="<"?n="<0.0.0-0":n="*":i&&h?(f&&(s=0),o=0,i===">"?(i=">=",f?(a=+a+1,s=0,o=0):(s=+s+1,o=0)):i==="<="&&(i="<",f?a=+a+1:s=+s+1),n=i+a+"."+s+"."+o+c):f?n=">="+a+".0.0"+c+" <"+(+a+1)+".0.0"+c:d&&(n=">="+a+"."+s+".0"+c+" <"+a+"."+(+s+1)+".0"+c),ii("xRange return",n),n})}function NXt(e,t){return ii("replaceStars",e,t),e.trim().replace(ni[tt.STAR],"")}function qXt(e,t,r,n,i,a,s,o,c,p,f,d,h){return Yu(r)?t="":Yu(n)?t=">="+r+".0.0":Yu(i)?t=">="+r+"."+n+".0":t=">="+t,Yu(c)?o="":Yu(p)?o="<"+(+c+1)+".0.0":Yu(f)?o="<"+c+"."+(+p+1)+".0":d?o="<="+c+"."+p+"."+f+"-"+d:o="<="+o,(t+" "+o).trim()}Ia.prototype.test=function(e){if(!e)return!1;if(typeof e=="string")try{e=new nn(e,this.options)}catch{return!1}for(var t=0;t<this.set.length;t++)if(LXt(this.set[t],e,this.options))return!0;return!1};function LXt(e,t,r){for(var n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!r.includePrerelease){for(n=0;n<e.length;n++)if(ii(e[n].semver),e[n].semver!==x4&&e[n].semver.prerelease.length>0){var i=e[n].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0}return!1}return!0}$r.satisfies=TF;function TF(e,t,r){try{t=new Ia(t,r)}catch{return!1}return t.test(e)}$r.maxSatisfying=$Xt;function $Xt(e,t,r){var n=null,i=null;try{var a=new Ia(t,r)}catch{return null}return e.forEach(function(s){a.test(s)&&(!n||i.compare(s)===-1)&&(n=s,i=new nn(n,r))}),n}$r.minSatisfying=BXt;function BXt(e,t,r){var n=null,i=null;try{var a=new Ia(t,r)}catch{return null}return e.forEach(function(s){a.test(s)&&(!n||i.compare(s)===1)&&(n=s,i=new nn(n,r))}),n}$r.minVersion=MXt;function MXt(e,t){e=new Ia(e,t);var r=new nn("0.0.0");if(e.test(r)||(r=new nn("0.0.0-0"),e.test(r)))return r;r=null;for(var n=0;n<e.set.length;++n){var i=e.set[n];i.forEach(function(a){var s=new nn(a.semver.version);switch(a.operator){case">":s.prerelease.length===0?s.patch++:s.prerelease.push(0),s.raw=s.format();case"":case">=":(!r||z7(r,s))&&(r=s);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+a.operator)}})}return r&&e.test(r)?r:null}$r.validRange=UXt;function UXt(e,t){try{return new Ia(e,t).range||"*"}catch{return null}}$r.ltr=zXt;function zXt(e,t,r){return mse(e,t,"<",r)}$r.gtr=HXt;function HXt(e,t,r){return mse(e,t,">",r)}$r.outside=mse;function mse(e,t,r,n){e=new nn(e,n),t=new Ia(t,n);var i,a,s,o,c;switch(r){case">":i=z7,a=hse,s=kF,o=">",c=">=";break;case"<":i=kF,a=dse,s=z7,o="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(TF(e,t,n))return!1;for(var p=0;p<t.set.length;++p){var f=t.set[p],d=null,h=null;if(f.forEach(function(g){g.semver===x4&&(g=new Wl(">=0.0.0")),d=d||g,h=h||g,i(g.semver,d.semver,n)?d=g:s(g.semver,h.semver,n)&&(h=g)}),d.operator===o||d.operator===c||(!h.operator||h.operator===o)&&a(e,h.semver))return!1;if(h.operator===c&&s(e,h.semver))return!1}return!0}$r.prerelease=VXt;function VXt(e,t){var r=Hb(e,t);return r&&r.prerelease.length?r.prerelease:null}$r.intersects=GXt;function GXt(e,t,r){return e=new Ia(e,r),t=new Ia(t,r),e.intersects(t)}$r.coerce=WXt;function WXt(e,t){if(e instanceof nn)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};var r=null;if(!t.rtl)r=e.match(ni[tt.COERCE]);else{for(var n;(n=ni[tt.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||n.index+n[0].length!==r.index+r[0].length)&&(r=n),ni[tt.COERCERTL].lastIndex=n.index+n[1].length+n[2].length;ni[tt.COERCERTL].lastIndex=-1}return r===null?null:Hb(r[2]+"."+(r[3]||"0")+"."+(r[4]||"0"),t)}});var Hqe=b((gWr,gse)=>{"use strict";var OF=require("fs"),x1=require("path"),{promisify:$qe}=require("util"),KXt=Lqe(),Bqe=KXt.satisfies(process.version,">=10.12.0"),Mqe=e=>{if(process.platform==="win32"&&/[<>:"|?*]/.test(e.replace(x1.parse(e).root,""))){let r=new Error(`Path contains invalid characters: ${e}`);throw r.code="EINVAL",r}},Uqe=e=>({...{mode:511,fs:OF},...e}),zqe=e=>{let t=new Error(`operation not permitted, mkdir '${e}'`);return t.code="EPERM",t.errno=-4048,t.path=e,t.syscall="mkdir",t},YXt=async(e,t)=>{Mqe(e),t=Uqe(t);let r=$qe(t.fs.mkdir),n=$qe(t.fs.stat);if(Bqe&&t.fs.mkdir===OF.mkdir){let a=x1.resolve(e);return await r(a,{mode:t.mode,recursive:!0}),a}let i=async a=>{try{return await r(a,t.mode),a}catch(s){if(s.code==="EPERM")throw s;if(s.code==="ENOENT"){if(x1.dirname(a)===a)throw zqe(a);if(s.message.includes("null bytes"))throw s;return await i(x1.dirname(a)),i(a)}try{if(!(await n(a)).isDirectory())throw new Error("The path is not a directory")}catch{throw s}return a}};return i(x1.resolve(e))};gse.exports=YXt;gse.exports.sync=(e,t)=>{if(Mqe(e),t=Uqe(t),Bqe&&t.fs.mkdirSync===OF.mkdirSync){let n=x1.resolve(e);return OF.mkdirSync(n,{mode:t.mode,recursive:!0}),n}let r=n=>{try{t.fs.mkdirSync(n,t.mode)}catch(i){if(i.code==="EPERM")throw i;if(i.code==="ENOENT"){if(x1.dirname(n)===n)throw zqe(n);if(i.message.includes("null bytes"))throw i;return r(x1.dirname(n)),r(n)}try{if(!t.fs.statSync(n).isDirectory())throw new Error("The path is not a directory")}catch{throw i}}return n};return r(x1.resolve(e))}});var yse=b((vWr,vse)=>{"use strict";var Vqe=require("fs");vse.exports=e=>new Promise(t=>{Vqe.access(e,r=>{t(!r)})});vse.exports.sync=e=>{try{return Vqe.accessSync(e),!0}catch{return!1}}});var Wqe=b((yWr,bse)=>{"use strict";var Gqe=(e,...t)=>new Promise(r=>{r(e(...t))});bse.exports=Gqe;bse.exports.default=Gqe});var Yqe=b((bWr,wse)=>{"use strict";var JXt=Wqe(),Kqe=e=>{if(!((Number.isInteger(e)||e===1/0)&&e>0))return Promise.reject(new TypeError("Expected `concurrency` to be a number from 1 and up"));let t=[],r=0,n=()=>{r--,t.length>0&&t.shift()()},i=(o,c,...p)=>{r++;let f=JXt(o,...p);c(f),f.then(n,n)},a=(o,c,...p)=>{r<e?i(o,c,...p):t.push(i.bind(null,o,c,...p))},s=(o,...c)=>new Promise(p=>a(o,p,...c));return Object.defineProperties(s,{activeCount:{get:()=>r},pendingCount:{get:()=>t.length},clearQueue:{value:()=>{t.length=0}}}),s};wse.exports=Kqe;wse.exports.default=Kqe});var Qqe=b((wWr,Xqe)=>{"use strict";var Jqe=Yqe(),DF=class extends Error{constructor(t){super(),this.value=t}},XXt=(e,t)=>Promise.resolve(e).then(t),QXt=e=>Promise.all(e).then(t=>t[1]===!0&&Promise.reject(new DF(t[0])));Xqe.exports=(e,t,r)=>{r=Object.assign({concurrency:1/0,preserveOrder:!0},r);let n=Jqe(r.concurrency),i=[...e].map(s=>[s,n(XXt,s,t)]),a=Jqe(r.preserveOrder?1:1/0);return Promise.all(i.map(s=>a(QXt,s))).then(()=>{}).catch(s=>s instanceof DF?s.value:Promise.reject(s))}});var tLe=b((_Wr,_se)=>{"use strict";var Zqe=require("path"),eLe=yse(),ZXt=Qqe();_se.exports=(e,t)=>(t=Object.assign({cwd:process.cwd()},t),ZXt(e,r=>eLe(Zqe.resolve(t.cwd,r)),t));_se.exports.sync=(e,t)=>{t=Object.assign({cwd:process.cwd()},t);for(let r of e)if(eLe.sync(Zqe.resolve(t.cwd,r)))return r}});var nLe=b((xWr,xse)=>{"use strict";var xg=require("path"),rLe=tLe();xse.exports=(e,t={})=>{let r=xg.resolve(t.cwd||""),{root:n}=xg.parse(r),i=[].concat(e);return new Promise(a=>{(function s(o){rLe(i,{cwd:o}).then(c=>{c?a(xg.join(o,c)):o===n?a(null):s(xg.dirname(o))})})(r)})};xse.exports.sync=(e,t={})=>{let r=xg.resolve(t.cwd||""),{root:n}=xg.parse(r),i=[].concat(e);for(;;){let a=rLe.sync(i,{cwd:r});if(a)return xg.join(r,a);if(r===n)return null;r=xg.dirname(r)}}});var Sse=b((EWr,Ese)=>{"use strict";var iLe=nLe();Ese.exports=async({cwd:e}={})=>iLe("package.json",{cwd:e});Ese.exports.sync=({cwd:e}={})=>iLe.sync("package.json",{cwd:e})});var Tse=b((SWr,Ase)=>{"use strict";var Ra=require("path"),aLe=require("os"),Eg=aLe.homedir(),kse=aLe.tmpdir(),{env:E4}=process,eQt=e=>{let t=Ra.join(Eg,"Library");return{data:Ra.join(t,"Application Support",e),config:Ra.join(t,"Preferences",e),cache:Ra.join(t,"Caches",e),log:Ra.join(t,"Logs",e),temp:Ra.join(kse,e)}},tQt=e=>{let t=E4.APPDATA||Ra.join(Eg,"AppData","Roaming"),r=E4.LOCALAPPDATA||Ra.join(Eg,"AppData","Local");return{data:Ra.join(r,e,"Data"),config:Ra.join(t,e,"Config"),cache:Ra.join(r,e,"Cache"),log:Ra.join(r,e,"Log"),temp:Ra.join(kse,e)}},rQt=e=>{let t=Ra.basename(Eg);return{data:Ra.join(E4.XDG_DATA_HOME||Ra.join(Eg,".local","share"),e),config:Ra.join(E4.XDG_CONFIG_HOME||Ra.join(Eg,".config"),e),cache:Ra.join(E4.XDG_CACHE_HOME||Ra.join(Eg,".cache"),e),log:Ra.join(E4.XDG_STATE_HOME||Ra.join(Eg,".local","state"),e),temp:Ra.join(kse,t,e)}},sLe=(e,t)=>{if(typeof e!="string")throw new TypeError(`Expected string, got ${typeof e}`);return t=Object.assign({suffix:"nodejs"},t),t.suffix&&(e+=`-${t.suffix}`),process.platform==="darwin"?eQt(e):process.platform==="win32"?tQt(e):rQt(e)};Ase.exports=sLe;Ase.exports.default=sLe});var Dse=b((kWr,Ose)=>{(function(){var e;function t(r,n){var i=this instanceof t?this:e;if(i.reset(n),typeof r=="string"&&r.length>0&&i.hash(r),i!==this)return i}t.prototype.hash=function(r){var n,i,a,s,o;switch(o=r.length,this.len+=o,i=this.k1,a=0,this.rem){case 0:i^=o>a?r.charCodeAt(a++)&65535:0;case 1:i^=o>a?(r.charCodeAt(a++)&65535)<<8:0;case 2:i^=o>a?(r.charCodeAt(a++)&65535)<<16:0;case 3:i^=o>a?(r.charCodeAt(a)&255)<<24:0,i^=o>a?(r.charCodeAt(a++)&65280)>>8:0}if(this.rem=o+this.rem&3,o-=this.rem,o>0){for(n=this.h1;i=i*11601+(i&65535)*3432906752&4294967295,i=i<<15|i>>>17,i=i*13715+(i&65535)*461832192&4294967295,n^=i,n=n<<13|n>>>19,n=n*5+3864292196&4294967295,!(a>=o);)i=r.charCodeAt(a++)&65535^(r.charCodeAt(a++)&65535)<<8^(r.charCodeAt(a++)&65535)<<16,s=r.charCodeAt(a++),i^=(s&255)<<24^(s&65280)>>8;switch(i=0,this.rem){case 3:i^=(r.charCodeAt(a+2)&65535)<<16;case 2:i^=(r.charCodeAt(a+1)&65535)<<8;case 1:i^=r.charCodeAt(a)&65535}this.h1=n}return this.k1=i,this},t.prototype.result=function(){var r,n;return r=this.k1,n=this.h1,r>0&&(r=r*11601+(r&65535)*3432906752&4294967295,r=r<<15|r>>>17,r=r*13715+(r&65535)*461832192&4294967295,n^=r),n^=this.len,n^=n>>>16,n=n*51819+(n&65535)*2246770688&4294967295,n^=n>>>13,n=n*44597+(n&65535)*3266445312&4294967295,n^=n>>>16,n>>>0},t.prototype.reset=function(r){return this.h1=typeof r=="number"?r:0,this.rem=this.k1=this.len=0,this},e=new t,typeof Ose<"u"?Ose.exports=t:this.MurmurHash3=t})()});var CF=b((AWr,cLe)=>{cLe.exports=Cse;Cse.strict=oLe;Cse.loose=uLe;var nQt=Object.prototype.toString,iQt={"[object Int8Array]":!0,"[object Int16Array]":!0,"[object Int32Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Uint16Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0};function Cse(e){return oLe(e)||uLe(e)}function oLe(e){return e instanceof Int8Array||e instanceof Int16Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Uint16Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array}function uLe(e){return iQt[nQt.call(e)]}});var pLe=b((TWr,lLe)=>{var aQt=CF().strict;lLe.exports=function(t){if(aQt(t)){var r=Buffer.from(t.buffer);return t.byteLength!==t.buffer.byteLength&&(r=r.slice(t.byteOffset,t.byteOffset+t.byteLength)),r}else return Buffer.from(t)}});var mLe=b((OWr,V7)=>{"use strict";V7.exports=fQt;V7.exports.sync=dQt;V7.exports._getTmpname=Pse;V7.exports._cleanupOnExit=Ise;var ka=require("fs"),sQt=Dse(),fLe=zP(),oQt=require("path"),dLe=CF(),hLe=pLe(),{promisify:Kl}=require("util"),Sg={},uQt=function(){try{return require("worker_threads").threadId}catch{return 0}}(),cQt=0;function Pse(e){return e+"."+sQt(__filename).hash(String(process.pid)).hash(String(uQt)).hash(String(++cQt)).result()}function Ise(e){return()=>{try{ka.unlinkSync(typeof e=="function"?e():e)}catch{}}}function lQt(e){return new Promise(t=>{Sg[e]||(Sg[e]=[]),Sg[e].push(t),Sg[e].length===1&&t()})}function PF(e){return e.code==="ENOSYS"||(!process.getuid||process.getuid()!==0)&&(e.code==="EINVAL"||e.code==="EPERM")}async function pQt(e,t,r={}){typeof r=="string"&&(r={encoding:r});let n,i,a=fLe(Ise(()=>i)),s=oQt.resolve(e);try{await lQt(s);let o=await Kl(ka.realpath)(e).catch(()=>e);if(i=Pse(o),!r.mode||!r.chown){let c=await Kl(ka.stat)(o).catch(()=>{});c&&(r.mode==null&&(r.mode=c.mode),r.chown==null&&process.getuid&&(r.chown={uid:c.uid,gid:c.gid}))}n=await Kl(ka.open)(i,"w",r.mode),r.tmpfileCreated&&await r.tmpfileCreated(i),dLe(t)&&(t=hLe(t)),Buffer.isBuffer(t)?await Kl(ka.write)(n,t,0,t.length,0):t!=null&&await Kl(ka.write)(n,String(t),0,String(r.encoding||"utf8")),r.fsync!==!1&&await Kl(ka.fsync)(n),await Kl(ka.close)(n),n=null,r.chown&&await Kl(ka.chown)(i,r.chown.uid,r.chown.gid).catch(c=>{if(!PF(c))throw c}),r.mode&&await Kl(ka.chmod)(i,r.mode).catch(c=>{if(!PF(c))throw c}),await Kl(ka.rename)(i,o)}finally{n&&await Kl(ka.close)(n).catch(()=>{}),a(),await Kl(ka.unlink)(i).catch(()=>{}),Sg[s].shift(),Sg[s].length>0?Sg[s][0]():delete Sg[s]}}function fQt(e,t,r,n){r instanceof Function&&(n=r,r={});let i=pQt(e,t,r);return n&&i.then(n,n),i}function dQt(e,t,r){typeof r=="string"?r={encoding:r}:r||(r={});try{e=ka.realpathSync(e)}catch{}let n=Pse(e);if(!r.mode||!r.chown)try{let c=ka.statSync(e);r=Object.assign({},r),r.mode||(r.mode=c.mode),!r.chown&&process.getuid&&(r.chown={uid:c.uid,gid:c.gid})}catch{}let i,a=Ise(n),s=fLe(a),o=!0;try{if(i=ka.openSync(n,"w",r.mode||438),r.tmpfileCreated&&r.tmpfileCreated(n),dLe(t)&&(t=hLe(t)),Buffer.isBuffer(t)?ka.writeSync(i,t,0,t.length,0):t!=null&&ka.writeSync(i,String(t),0,String(r.encoding||"utf8")),r.fsync!==!1&&ka.fsyncSync(i),ka.closeSync(i),i=null,r.chown)try{ka.chownSync(n,r.chown.uid,r.chown.gid)}catch(c){if(!PF(c))throw c}if(r.mode)try{ka.chmodSync(n,r.mode)}catch(c){if(!PF(c))throw c}ka.renameSync(n,e),o=!1}finally{if(i)try{ka.closeSync(i)}catch{}s(),o&&a()}}});var vLe=b((IF,gLe)=>{(function(e,t){typeof IF=="object"&&typeof gLe<"u"?t(IF):typeof define=="function"&&define.amd?define(["exports"],t):t(e.URI=e.URI||{})})(IF,function(e){"use strict";function t(){for(var Fe=arguments.length,_e=Array(Fe),O=0;O<Fe;O++)_e[O]=arguments[O];if(_e.length>1){_e[0]=_e[0].slice(0,-1);for(var Y=_e.length-1,W=1;W<Y;++W)_e[W]=_e[W].slice(1,-1);return _e[Y]=_e[Y].slice(1),_e.join("")}else return _e[0]}function r(Fe){return"(?:"+Fe+")"}function n(Fe){return Fe===void 0?"undefined":Fe===null?"null":Object.prototype.toString.call(Fe).split(" ").pop().split("]").shift().toLowerCase()}function i(Fe){return Fe.toUpperCase()}function a(Fe){return Fe!=null?Fe instanceof Array?Fe:typeof Fe.length!="number"||Fe.split||Fe.setInterval||Fe.call?[Fe]:Array.prototype.slice.call(Fe):[]}function s(Fe,_e){var O=Fe;if(_e)for(var Y in _e)O[Y]=_e[Y];return O}function o(Fe){var _e="[A-Za-z]",O="[\\x0D]",Y="[0-9]",W="[\\x22]",k=t(Y,"[A-Fa-f]"),pe="[\\x0A]",je="[\\x20]",Be=r(r("%[EFef]"+k+"%"+k+k+"%"+k+k)+"|"+r("%[89A-Fa-f]"+k+"%"+k+k)+"|"+r("%"+k+k)),Je="[\\:\\/\\?\\#\\[\\]\\@]",nt="[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",St=t(Je,nt),_t=Fe?"[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]":"[]",or=Fe?"[\\uE000-\\uF8FF]":"[]",gt=t(_e,Y,"[\\-\\.\\_\\~]",_t),Ht=r(_e+t(_e,Y,"[\\+\\-\\.]")+"*"),Nt=r(r(Be+"|"+t(gt,nt,"[\\:]"))+"*"),er=r(r("25[0-5]")+"|"+r("2[0-4]"+Y)+"|"+r("1"+Y+Y)+"|"+r("[1-9]"+Y)+"|"+Y),ur=r(r("25[0-5]")+"|"+r("2[0-4]"+Y)+"|"+r("1"+Y+Y)+"|"+r("0?[1-9]"+Y)+"|0?0?"+Y),Jt=r(ur+"\\."+ur+"\\."+ur+"\\."+ur),Mt=r(k+"{1,4}"),tr=r(r(Mt+"\\:"+Mt)+"|"+Jt),Tt=r(r(Mt+"\\:")+"{6}"+tr),Vt=r("\\:\\:"+r(Mt+"\\:")+"{5}"+tr),At=r(r(Mt)+"?\\:\\:"+r(Mt+"\\:")+"{4}"+tr),jt=r(r(r(Mt+"\\:")+"{0,1}"+Mt)+"?\\:\\:"+r(Mt+"\\:")+"{3}"+tr),Gt=r(r(r(Mt+"\\:")+"{0,2}"+Mt)+"?\\:\\:"+r(Mt+"\\:")+"{2}"+tr),bt=r(r(r(Mt+"\\:")+"{0,3}"+Mt)+"?\\:\\:"+Mt+"\\:"+tr),Ge=r(r(r(Mt+"\\:")+"{0,4}"+Mt)+"?\\:\\:"+tr),He=r(r(r(Mt+"\\:")+"{0,5}"+Mt)+"?\\:\\:"+Mt),lt=r(r(r(Mt+"\\:")+"{0,6}"+Mt)+"?\\:\\:"),it=r([Tt,Vt,At,jt,Gt,bt,Ge,He,lt].join("|")),Xe=r(r(gt+"|"+Be)+"+"),Z=r(it+"\\%25"+Xe),we=r(it+r("\\%25|\\%(?!"+k+"{2})")+Xe),he=r("[vV]"+k+"+\\."+t(gt,nt,"[\\:]")+"+"),Ae=r("\\["+r(we+"|"+it+"|"+he)+"\\]"),Re=r(r(Be+"|"+t(gt,nt))+"*"),ee=r(Ae+"|"+Jt+"(?!"+Re+")|"+Re),ze=r(Y+"*"),Qe=r(r(Nt+"@")+"?"+ee+r("\\:"+ze)+"?"),Ye=r(Be+"|"+t(gt,nt,"[\\:\\@]")),et=r(Ye+"*"),ot=r(Ye+"+"),vt=r(r(Be+"|"+t(gt,nt,"[\\@]"))+"+"),zt=r(r("\\/"+et)+"*"),It=r("\\/"+r(ot+zt)+"?"),X=r(vt+zt),te=r(ot+zt),le="(?!"+Ye+")",Pe=r(zt+"|"+It+"|"+X+"|"+te+"|"+le),Ke=r(r(Ye+"|"+t("[\\/\\?]",or))+"*"),st=r(r(Ye+"|[\\/\\?]")+"*"),wt=r(r("\\/\\/"+Qe+zt)+"|"+It+"|"+te+"|"+le),Kt=r(Ht+"\\:"+wt+r("\\?"+Ke)+"?"+r("\\#"+st)+"?"),Gn=r(r("\\/\\/"+Qe+zt)+"|"+It+"|"+X+"|"+le),zi=r(Gn+r("\\?"+Ke)+"?"+r("\\#"+st)+"?"),Qa=r(Kt+"|"+zi),Za=r(Ht+"\\:"+wt+r("\\?"+Ke)+"?"),dc="^("+Ht+")\\:"+r(r("\\/\\/("+r("("+Nt+")@")+"?("+ee+")"+r("\\:("+ze+")")+"?)")+"?("+zt+"|"+It+"|"+te+"|"+le+")")+r("\\?("+Ke+")")+"?"+r("\\#("+st+")")+"?$",Zh="^(){0}"+r(r("\\/\\/("+r("("+Nt+")@")+"?("+ee+")"+r("\\:("+ze+")")+"?)")+"?("+zt+"|"+It+"|"+X+"|"+le+")")+r("\\?("+Ke+")")+"?"+r("\\#("+st+")")+"?$",eu="^("+Ht+")\\:"+r(r("\\/\\/("+r("("+Nt+")@")+"?("+ee+")"+r("\\:("+ze+")")+"?)")+"?("+zt+"|"+It+"|"+te+"|"+le+")")+r("\\?("+Ke+")")+"?$",xs="^"+r("\\#("+st+")")+"?$",em="^"+r("("+Nt+")@")+"?("+ee+")"+r("\\:("+ze+")")+"?$";return{NOT_SCHEME:new RegExp(t("[^]",_e,Y,"[\\+\\-\\.]"),"g"),NOT_USERINFO:new RegExp(t("[^\\%\\:]",gt,nt),"g"),NOT_HOST:new RegExp(t("[^\\%\\[\\]\\:]",gt,nt),"g"),NOT_PATH:new RegExp(t("[^\\%\\/\\:\\@]",gt,nt),"g"),NOT_PATH_NOSCHEME:new RegExp(t("[^\\%\\/\\@]",gt,nt),"g"),NOT_QUERY:new RegExp(t("[^\\%]",gt,nt,"[\\:\\@\\/\\?]",or),"g"),NOT_FRAGMENT:new RegExp(t("[^\\%]",gt,nt,"[\\:\\@\\/\\?]"),"g"),ESCAPE:new RegExp(t("[^]",gt,nt),"g"),UNRESERVED:new RegExp(gt,"g"),OTHER_CHARS:new RegExp(t("[^\\%]",gt,St),"g"),PCT_ENCODED:new RegExp(Be,"g"),IPV4ADDRESS:new RegExp("^("+Jt+")$"),IPV6ADDRESS:new RegExp("^\\[?("+it+")"+r(r("\\%25|\\%(?!"+k+"{2})")+"("+Xe+")")+"?\\]?$")}}var c=o(!1),p=o(!0),f=function(){function Fe(_e,O){var Y=[],W=!0,k=!1,pe=void 0;try{for(var je=_e[Symbol.iterator](),Be;!(W=(Be=je.next()).done)&&(Y.push(Be.value),!(O&&Y.length===O));W=!0);}catch(Je){k=!0,pe=Je}finally{try{!W&&je.return&&je.return()}finally{if(k)throw pe}}return Y}return function(_e,O){if(Array.isArray(_e))return _e;if(Symbol.iterator in Object(_e))return Fe(_e,O);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),d=function(Fe){if(Array.isArray(Fe)){for(var _e=0,O=Array(Fe.length);_e<Fe.length;_e++)O[_e]=Fe[_e];return O}else return Array.from(Fe)},h=2147483647,g=36,v=1,y=26,_=38,x=700,A=72,D=128,j="-",H=/^xn--/,F=/[^\0-\x7E]/,z=/[\x2E\u3002\uFF0E\uFF61]/g,P={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},M=g-v,K=Math.floor,L=String.fromCharCode;function ve(Fe){throw new RangeError(P[Fe])}function U(Fe,_e){for(var O=[],Y=Fe.length;Y--;)O[Y]=_e(Fe[Y]);return O}function N(Fe,_e){var O=Fe.split("@"),Y="";O.length>1&&(Y=O[0]+"@",Fe=O[1]),Fe=Fe.replace(z,".");var W=Fe.split("."),k=U(W,_e).join(".");return Y+k}function re(Fe){for(var _e=[],O=0,Y=Fe.length;O<Y;){var W=Fe.charCodeAt(O++);if(W>=55296&&W<=56319&&O<Y){var k=Fe.charCodeAt(O++);(k&64512)==56320?_e.push(((W&1023)<<10)+(k&1023)+65536):(_e.push(W),O--)}else _e.push(W)}return _e}var ue=function(_e){return String.fromCodePoint.apply(String,d(_e))},Q=function(_e){return _e-48<10?_e-22:_e-65<26?_e-65:_e-97<26?_e-97:g},ne=function(_e,O){return _e+22+75*(_e<26)-((O!=0)<<5)},G=function(_e,O,Y){var W=0;for(_e=Y?K(_e/x):_e>>1,_e+=K(_e/O);_e>M*y>>1;W+=g)_e=K(_e/M);return K(W+(M+1)*_e/(_e+_))},de=function(_e){var O=[],Y=_e.length,W=0,k=D,pe=A,je=_e.lastIndexOf(j);je<0&&(je=0);for(var Be=0;Be<je;++Be)_e.charCodeAt(Be)>=128&&ve("not-basic"),O.push(_e.charCodeAt(Be));for(var Je=je>0?je+1:0;Je<Y;){for(var nt=W,St=1,_t=g;;_t+=g){Je>=Y&&ve("invalid-input");var or=Q(_e.charCodeAt(Je++));(or>=g||or>K((h-W)/St))&&ve("overflow"),W+=or*St;var gt=_t<=pe?v:_t>=pe+y?y:_t-pe;if(or<gt)break;var Ht=g-gt;St>K(h/Ht)&&ve("overflow"),St*=Ht}var Nt=O.length+1;pe=G(W-nt,Nt,nt==0),K(W/Nt)>h-k&&ve("overflow"),k+=K(W/Nt),W%=Nt,O.splice(W++,0,k)}return String.fromCodePoint.apply(String,O)},xe=function(_e){var O=[];_e=re(_e);var Y=_e.length,W=D,k=0,pe=A,je=!0,Be=!1,Je=void 0;try{for(var nt=_e[Symbol.iterator](),St;!(je=(St=nt.next()).done);je=!0){var _t=St.value;_t<128&&O.push(L(_t))}}catch(we){Be=!0,Je=we}finally{try{!je&&nt.return&&nt.return()}finally{if(Be)throw Je}}var or=O.length,gt=or;for(or&&O.push(j);gt<Y;){var Ht=h,Nt=!0,er=!1,ur=void 0;try{for(var Jt=_e[Symbol.iterator](),Mt;!(Nt=(Mt=Jt.next()).done);Nt=!0){var tr=Mt.value;tr>=W&&tr<Ht&&(Ht=tr)}}catch(we){er=!0,ur=we}finally{try{!Nt&&Jt.return&&Jt.return()}finally{if(er)throw ur}}var Tt=gt+1;Ht-W>K((h-k)/Tt)&&ve("overflow"),k+=(Ht-W)*Tt,W=Ht;var Vt=!0,At=!1,jt=void 0;try{for(var Gt=_e[Symbol.iterator](),bt;!(Vt=(bt=Gt.next()).done);Vt=!0){var Ge=bt.value;if(Ge<W&&++k>h&&ve("overflow"),Ge==W){for(var He=k,lt=g;;lt+=g){var it=lt<=pe?v:lt>=pe+y?y:lt-pe;if(He<it)break;var Xe=He-it,Z=g-it;O.push(L(ne(it+Xe%Z,0))),He=K(Xe/Z)}O.push(L(ne(He,0))),pe=G(k,Tt,gt==or),k=0,++gt}}}catch(we){At=!0,jt=we}finally{try{!Vt&&Gt.return&&Gt.return()}finally{if(At)throw jt}}++k,++W}return O.join("")},ge=function(_e){return N(_e,function(O){return H.test(O)?de(O.slice(4).toLowerCase()):O})},V=function(_e){return N(_e,function(O){return F.test(O)?"xn--"+xe(O):O})},ce={version:"2.1.0",ucs2:{decode:re,encode:ue},decode:de,encode:xe,toASCII:V,toUnicode:ge},ye={};function R(Fe){var _e=Fe.charCodeAt(0),O=void 0;return _e<16?O="%0"+_e.toString(16).toUpperCase():_e<128?O="%"+_e.toString(16).toUpperCase():_e<2048?O="%"+(_e>>6|192).toString(16).toUpperCase()+"%"+(_e&63|128).toString(16).toUpperCase():O="%"+(_e>>12|224).toString(16).toUpperCase()+"%"+(_e>>6&63|128).toString(16).toUpperCase()+"%"+(_e&63|128).toString(16).toUpperCase(),O}function $(Fe){for(var _e="",O=0,Y=Fe.length;O<Y;){var W=parseInt(Fe.substr(O+1,2),16);if(W<128)_e+=String.fromCharCode(W),O+=3;else if(W>=194&&W<224){if(Y-O>=6){var k=parseInt(Fe.substr(O+4,2),16);_e+=String.fromCharCode((W&31)<<6|k&63)}else _e+=Fe.substr(O,6);O+=6}else if(W>=224){if(Y-O>=9){var pe=parseInt(Fe.substr(O+4,2),16),je=parseInt(Fe.substr(O+7,2),16);_e+=String.fromCharCode((W&15)<<12|(pe&63)<<6|je&63)}else _e+=Fe.substr(O,9);O+=9}else _e+=Fe.substr(O,3),O+=3}return _e}function ke(Fe,_e){function O(Y){var W=$(Y);return W.match(_e.UNRESERVED)?W:Y}return Fe.scheme&&(Fe.scheme=String(Fe.scheme).replace(_e.PCT_ENCODED,O).toLowerCase().replace(_e.NOT_SCHEME,"")),Fe.userinfo!==void 0&&(Fe.userinfo=String(Fe.userinfo).replace(_e.PCT_ENCODED,O).replace(_e.NOT_USERINFO,R).replace(_e.PCT_ENCODED,i)),Fe.host!==void 0&&(Fe.host=String(Fe.host).replace(_e.PCT_ENCODED,O).toLowerCase().replace(_e.NOT_HOST,R).replace(_e.PCT_ENCODED,i)),Fe.path!==void 0&&(Fe.path=String(Fe.path).replace(_e.PCT_ENCODED,O).replace(Fe.scheme?_e.NOT_PATH:_e.NOT_PATH_NOSCHEME,R).replace(_e.PCT_ENCODED,i)),Fe.query!==void 0&&(Fe.query=String(Fe.query).replace(_e.PCT_ENCODED,O).replace(_e.NOT_QUERY,R).replace(_e.PCT_ENCODED,i)),Fe.fragment!==void 0&&(Fe.fragment=String(Fe.fragment).replace(_e.PCT_ENCODED,O).replace(_e.NOT_FRAGMENT,R).replace(_e.PCT_ENCODED,i)),Fe}function S(Fe){return Fe.replace(/^0*(.*)/,"$1")||"0"}function I(Fe,_e){var O=Fe.match(_e.IPV4ADDRESS)||[],Y=f(O,2),W=Y[1];return W?W.split(".").map(S).join("."):Fe}function B(Fe,_e){var O=Fe.match(_e.IPV6ADDRESS)||[],Y=f(O,3),W=Y[1],k=Y[2];if(W){for(var pe=W.toLowerCase().split("::").reverse(),je=f(pe,2),Be=je[0],Je=je[1],nt=Je?Je.split(":").map(S):[],St=Be.split(":").map(S),_t=_e.IPV4ADDRESS.test(St[St.length-1]),or=_t?7:8,gt=St.length-or,Ht=Array(or),Nt=0;Nt<or;++Nt)Ht[Nt]=nt[Nt]||St[gt+Nt]||"";_t&&(Ht[or-1]=I(Ht[or-1],_e));var er=Ht.reduce(function(Tt,Vt,At){if(!Vt||Vt==="0"){var jt=Tt[Tt.length-1];jt&&jt.index+jt.length===At?jt.length++:Tt.push({index:At,length:1})}return Tt},[]),ur=er.sort(function(Tt,Vt){return Vt.length-Tt.length})[0],Jt=void 0;if(ur&&ur.length>1){var Mt=Ht.slice(0,ur.index),tr=Ht.slice(ur.index+ur.length);Jt=Mt.join(":")+"::"+tr.join(":")}else Jt=Ht.join(":");return k&&(Jt+="%"+k),Jt}else return Fe}var se=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,ae="".match(/(){0}/)[1]===void 0;function me(Fe){var _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},O={},Y=_e.iri!==!1?p:c;_e.reference==="suffix"&&(Fe=(_e.scheme?_e.scheme+":":"")+"//"+Fe);var W=Fe.match(se);if(W){ae?(O.scheme=W[1],O.userinfo=W[3],O.host=W[4],O.port=parseInt(W[5],10),O.path=W[6]||"",O.query=W[7],O.fragment=W[8],isNaN(O.port)&&(O.port=W[5])):(O.scheme=W[1]||void 0,O.userinfo=Fe.indexOf("@")!==-1?W[3]:void 0,O.host=Fe.indexOf("//")!==-1?W[4]:void 0,O.port=parseInt(W[5],10),O.path=W[6]||"",O.query=Fe.indexOf("?")!==-1?W[7]:void 0,O.fragment=Fe.indexOf("#")!==-1?W[8]:void 0,isNaN(O.port)&&(O.port=Fe.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?W[4]:void 0)),O.host&&(O.host=B(I(O.host,Y),Y)),O.scheme===void 0&&O.userinfo===void 0&&O.host===void 0&&O.port===void 0&&!O.path&&O.query===void 0?O.reference="same-document":O.scheme===void 0?O.reference="relative":O.fragment===void 0?O.reference="absolute":O.reference="uri",_e.reference&&_e.reference!=="suffix"&&_e.reference!==O.reference&&(O.error=O.error||"URI is not a "+_e.reference+" reference.");var k=ye[(_e.scheme||O.scheme||"").toLowerCase()];if(!_e.unicodeSupport&&(!k||!k.unicodeSupport)){if(O.host&&(_e.domainHost||k&&k.domainHost))try{O.host=ce.toASCII(O.host.replace(Y.PCT_ENCODED,$).toLowerCase())}catch(pe){O.error=O.error||"Host's domain name can not be converted to ASCII via punycode: "+pe}ke(O,c)}else ke(O,Y);k&&k.parse&&k.parse(O,_e)}else O.error=O.error||"URI can not be parsed.";return O}function Se(Fe,_e){var O=_e.iri!==!1?p:c,Y=[];return Fe.userinfo!==void 0&&(Y.push(Fe.userinfo),Y.push("@")),Fe.host!==void 0&&Y.push(B(I(String(Fe.host),O),O).replace(O.IPV6ADDRESS,function(W,k,pe){return"["+k+(pe?"%25"+pe:"")+"]"})),typeof Fe.port=="number"&&(Y.push(":"),Y.push(Fe.port.toString(10))),Y.length?Y.join(""):void 0}var Ee=/^\.\.?\//,De=/^\/\.(\/|$)/,Le=/^\/\.\.(\/|$)/,Ne=/^\/?(?:.|\n)*?(?=\/|$)/;function Ve(Fe){for(var _e=[];Fe.length;)if(Fe.match(Ee))Fe=Fe.replace(Ee,"");else if(Fe.match(De))Fe=Fe.replace(De,"/");else if(Fe.match(Le))Fe=Fe.replace(Le,"/"),_e.pop();else if(Fe==="."||Fe==="..")Fe="";else{var O=Fe.match(Ne);if(O){var Y=O[0];Fe=Fe.slice(Y.length),_e.push(Y)}else throw new Error("Unexpected dot segment condition")}return _e.join("")}function kt(Fe){var _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},O=_e.iri?p:c,Y=[],W=ye[(_e.scheme||Fe.scheme||"").toLowerCase()];if(W&&W.serialize&&W.serialize(Fe,_e),Fe.host&&!O.IPV6ADDRESS.test(Fe.host)){if(_e.domainHost||W&&W.domainHost)try{Fe.host=_e.iri?ce.toUnicode(Fe.host):ce.toASCII(Fe.host.replace(O.PCT_ENCODED,$).toLowerCase())}catch(je){Fe.error=Fe.error||"Host's domain name can not be converted to "+(_e.iri?"Unicode":"ASCII")+" via punycode: "+je}}ke(Fe,O),_e.reference!=="suffix"&&Fe.scheme&&(Y.push(Fe.scheme),Y.push(":"));var k=Se(Fe,_e);if(k!==void 0&&(_e.reference!=="suffix"&&Y.push("//"),Y.push(k),Fe.path&&Fe.path.charAt(0)!=="/"&&Y.push("/")),Fe.path!==void 0){var pe=Fe.path;!_e.absolutePath&&(!W||!W.absolutePath)&&(pe=Ve(pe)),k===void 0&&(pe=pe.replace(/^\/\//,"/%2F")),Y.push(pe)}return Fe.query!==void 0&&(Y.push("?"),Y.push(Fe.query)),Fe.fragment!==void 0&&(Y.push("#"),Y.push(Fe.fragment)),Y.join("")}function Ft(Fe,_e){var O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},Y=arguments[3],W={};return Y||(Fe=me(kt(Fe,O),O),_e=me(kt(_e,O),O)),O=O||{},!O.tolerant&&_e.scheme?(W.scheme=_e.scheme,W.userinfo=_e.userinfo,W.host=_e.host,W.port=_e.port,W.path=Ve(_e.path||""),W.query=_e.query):(_e.userinfo!==void 0||_e.host!==void 0||_e.port!==void 0?(W.userinfo=_e.userinfo,W.host=_e.host,W.port=_e.port,W.path=Ve(_e.path||""),W.query=_e.query):(_e.path?(_e.path.charAt(0)==="/"?W.path=Ve(_e.path):((Fe.userinfo!==void 0||Fe.host!==void 0||Fe.port!==void 0)&&!Fe.path?W.path="/"+_e.path:Fe.path?W.path=Fe.path.slice(0,Fe.path.lastIndexOf("/")+1)+_e.path:W.path=_e.path,W.path=Ve(W.path)),W.query=_e.query):(W.path=Fe.path,_e.query!==void 0?W.query=_e.query:W.query=Fe.query),W.userinfo=Fe.userinfo,W.host=Fe.host,W.port=Fe.port),W.scheme=Fe.scheme),W.fragment=_e.fragment,W}function rr(Fe,_e,O){var Y=s({scheme:"null"},O);return kt(Ft(me(Fe,Y),me(_e,Y),Y,!0),Y)}function Or(Fe,_e){return typeof Fe=="string"?Fe=kt(me(Fe,_e),_e):n(Fe)==="object"&&(Fe=me(kt(Fe,_e),_e)),Fe}function kr(Fe,_e,O){return typeof Fe=="string"?Fe=kt(me(Fe,O),O):n(Fe)==="object"&&(Fe=kt(Fe,O)),typeof _e=="string"?_e=kt(me(_e,O),O):n(_e)==="object"&&(_e=kt(_e,O)),Fe===_e}function dr(Fe,_e){return Fe&&Fe.toString().replace(!_e||!_e.iri?c.ESCAPE:p.ESCAPE,R)}function $t(Fe,_e){return Fe&&Fe.toString().replace(!_e||!_e.iri?c.PCT_ENCODED:p.PCT_ENCODED,$)}var $e={scheme:"http",domainHost:!0,parse:function(_e,O){return _e.host||(_e.error=_e.error||"HTTP URIs must have a host."),_e},serialize:function(_e,O){return(_e.port===(String(_e.scheme).toLowerCase()!=="https"?80:443)||_e.port==="")&&(_e.port=void 0),_e.path||(_e.path="/"),_e}},Ue={scheme:"https",domainHost:$e.domainHost,parse:$e.parse,serialize:$e.serialize},ct={},ut=!0,Dt="[A-Za-z0-9\\-\\.\\_\\~"+(ut?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]",Zt="[0-9A-Fa-f]",hr=r(r("%[EFef]"+Zt+"%"+Zt+Zt+"%"+Zt+Zt)+"|"+r("%[89A-Fa-f]"+Zt+"%"+Zt+Zt)+"|"+r("%"+Zt+Zt)),Bt="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",pr="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",wn=t(pr,'[\\"\\\\]'),Ai="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",Ui=new RegExp(Dt,"g"),Xa=new RegExp(hr,"g"),ws=new RegExp(t("[^]",Bt,"[\\.]",'[\\"]',wn),"g"),Pl=new RegExp(t("[^]",Dt,Ai),"g"),Is=Pl;function _s(Fe){var _e=$(Fe);return _e.match(Ui)?_e:Fe}var Rs={scheme:"mailto",parse:function(_e,O){var Y=_e,W=Y.to=Y.path?Y.path.split(","):[];if(Y.path=void 0,Y.query){for(var k=!1,pe={},je=Y.query.split("&"),Be=0,Je=je.length;Be<Je;++Be){var nt=je[Be].split("=");switch(nt[0]){case"to":for(var St=nt[1].split(","),_t=0,or=St.length;_t<or;++_t)W.push(St[_t]);break;case"subject":Y.subject=$t(nt[1],O);break;case"body":Y.body=$t(nt[1],O);break;default:k=!0,pe[$t(nt[0],O)]=$t(nt[1],O);break}}k&&(Y.headers=pe)}Y.query=void 0;for(var gt=0,Ht=W.length;gt<Ht;++gt){var Nt=W[gt].split("@");if(Nt[0]=$t(Nt[0]),O.unicodeSupport)Nt[1]=$t(Nt[1],O).toLowerCase();else try{Nt[1]=ce.toASCII($t(Nt[1],O).toLowerCase())}catch(er){Y.error=Y.error||"Email address's domain name can not be converted to ASCII via punycode: "+er}W[gt]=Nt.join("@")}return Y},serialize:function(_e,O){var Y=_e,W=a(_e.to);if(W){for(var k=0,pe=W.length;k<pe;++k){var je=String(W[k]),Be=je.lastIndexOf("@"),Je=je.slice(0,Be).replace(Xa,_s).replace(Xa,i).replace(ws,R),nt=je.slice(Be+1);try{nt=O.iri?ce.toUnicode(nt):ce.toASCII($t(nt,O).toLowerCase())}catch(gt){Y.error=Y.error||"Email address's domain name can not be converted to "+(O.iri?"Unicode":"ASCII")+" via punycode: "+gt}W[k]=Je+"@"+nt}Y.path=W.join(",")}var St=_e.headers=_e.headers||{};_e.subject&&(St.subject=_e.subject),_e.body&&(St.body=_e.body);var _t=[];for(var or in St)St[or]!==ct[or]&&_t.push(or.replace(Xa,_s).replace(Xa,i).replace(Pl,R)+"="+St[or].replace(Xa,_s).replace(Xa,i).replace(Is,R));return _t.length&&(Y.query=_t.join("&")),Y}},Yc=/^([^\:]+)\:(.*)/,fc={scheme:"urn",parse:function(_e,O){var Y=_e.path&&_e.path.match(Yc),W=_e;if(Y){var k=O.scheme||W.scheme||"urn",pe=Y[1].toLowerCase(),je=Y[2],Be=k+":"+(O.nid||pe),Je=ye[Be];W.nid=pe,W.nss=je,W.path=void 0,Je&&(W=Je.parse(W,O))}else W.error=W.error||"URN can not be parsed.";return W},serialize:function(_e,O){var Y=O.scheme||_e.scheme||"urn",W=_e.nid,k=Y+":"+(O.nid||W),pe=ye[k];pe&&(_e=pe.serialize(_e,O));var je=_e,Be=_e.nss;return je.path=(W||O.nid)+":"+Be,je}},Il=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,Zo={scheme:"urn:uuid",parse:function(_e,O){var Y=_e;return Y.uuid=Y.nss,Y.nss=void 0,!O.tolerant&&(!Y.uuid||!Y.uuid.match(Il))&&(Y.error=Y.error||"UUID is not valid."),Y},serialize:function(_e,O){var Y=_e;return Y.nss=(_e.uuid||"").toLowerCase(),Y}};ye[$e.scheme]=$e,ye[Ue.scheme]=Ue,ye[Rs.scheme]=Rs,ye[fc.scheme]=fc,ye[Zo.scheme]=Zo,e.SCHEMES=ye,e.pctEncChar=R,e.pctDecChars=$,e.parse=me,e.removeDotSegments=Ve,e.serialize=kt,e.resolveComponents=Ft,e.resolve=rr,e.normalize=Or,e.equal=kr,e.escapeComponent=dr,e.unescapeComponent=$t,Object.defineProperty(e,"__esModule",{value:!0})})});var kg=b((DWr,yLe)=>{"use strict";yLe.exports=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,i,a;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(i=n;i--!==0;)if(!e(t[i],r[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(a=Object.keys(t),n=a.length,n!==Object.keys(r).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(r,a[i]))return!1;for(i=n;i--!==0;){var s=a[i];if(!e(t[s],r[s]))return!1}return!0}return t!==t&&r!==r}});var wLe=b((CWr,bLe)=>{"use strict";bLe.exports=function(t){for(var r=0,n=t.length,i=0,a;i<n;)r++,a=t.charCodeAt(i++),a>=55296&&a<=56319&&i<n&&(a=t.charCodeAt(i),(a&64512)==56320&&i++);return r}});var Vb=b((PWr,ELe)=>{"use strict";ELe.exports={copy:hQt,checkDataType:Rse,checkDataTypes:mQt,coerceToTypes:gQt,toHash:jse,getProperty:Nse,escapeQuotes:qse,equal:kg(),ucs2length:wLe(),varOccurences:bQt,varReplace:wQt,schemaHasRules:_Qt,schemaHasRulesExcept:xQt,schemaUnknownRules:EQt,toQuotedString:Fse,getPathExpr:SQt,getPath:kQt,getData:OQt,unescapeFragment:DQt,unescapeJsonPointer:$se,escapeFragment:CQt,escapeJsonPointer:Lse};function hQt(e,t){t=t||{};for(var r in e)t[r]=e[r];return t}function Rse(e,t,r,n){var i=n?" !== ":" === ",a=n?" || ":" && ",s=n?"!":"",o=n?"":"!";switch(e){case"null":return t+i+"null";case"array":return s+"Array.isArray("+t+")";case"object":return"("+s+t+a+"typeof "+t+i+'"object"'+a+o+"Array.isArray("+t+"))";case"integer":return"(typeof "+t+i+'"number"'+a+o+"("+t+" % 1)"+a+t+i+t+(r?a+s+"isFinite("+t+")":"")+")";case"number":return"(typeof "+t+i+'"'+e+'"'+(r?a+s+"isFinite("+t+")":"")+")";default:return"typeof "+t+i+'"'+e+'"'}}function mQt(e,t,r){switch(e.length){case 1:return Rse(e[0],t,r,!0);default:var n="",i=jse(e);i.array&&i.object&&(n=i.null?"(":"(!"+t+" || ",n+="typeof "+t+' !== "object")',delete i.null,delete i.array,delete i.object),i.number&&delete i.integer;for(var a in i)n+=(n?" && ":"")+Rse(a,t,r,!0);return n}}var _Le=jse(["string","number","integer","boolean","null"]);function gQt(e,t){if(Array.isArray(t)){for(var r=[],n=0;n<t.length;n++){var i=t[n];(_Le[i]||e==="array"&&i==="array")&&(r[r.length]=i)}if(r.length)return r}else{if(_Le[t])return[t];if(e==="array"&&t==="array")return["array"]}}function jse(e){for(var t={},r=0;r<e.length;r++)t[e[r]]=!0;return t}var vQt=/^[a-z$_][a-z$_0-9]*$/i,yQt=/'|\\/g;function Nse(e){return typeof e=="number"?"["+e+"]":vQt.test(e)?"."+e:"['"+qse(e)+"']"}function qse(e){return e.replace(yQt,"\\$&").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\f/g,"\\f").replace(/\t/g,"\\t")}function bQt(e,t){t+="[^0-9]";var r=e.match(new RegExp(t,"g"));return r?r.length:0}function wQt(e,t,r){return t+="([^0-9])",r=r.replace(/\$/g,"$$$$"),e.replace(new RegExp(t,"g"),r+"$1")}function _Qt(e,t){if(typeof e=="boolean")return!e;for(var r in e)if(t[r])return!0}function xQt(e,t,r){if(typeof e=="boolean")return!e&&r!="not";for(var n in e)if(n!=r&&t[n])return!0}function EQt(e,t){if(typeof e!="boolean"){for(var r in e)if(!t[r])return r}}function Fse(e){return"'"+qse(e)+"'"}function SQt(e,t,r,n){var i=r?"'/' + "+t+(n?"":".replace(/~/g, '~0').replace(/\\//g, '~1')"):n?"'[' + "+t+" + ']'":"'[\\'' + "+t+" + '\\']'";return xLe(e,i)}function kQt(e,t,r){var n=Fse(r?"/"+Lse(t):Nse(t));return xLe(e,n)}var AQt=/^\/(?:[^~]|~0|~1)*$/,TQt=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function OQt(e,t,r){var n,i,a,s;if(e==="")return"rootData";if(e[0]=="/"){if(!AQt.test(e))throw new Error("Invalid JSON-pointer: "+e);i=e,a="rootData"}else{if(s=e.match(TQt),!s)throw new Error("Invalid JSON-pointer: "+e);if(n=+s[1],i=s[2],i=="#"){if(n>=t)throw new Error("Cannot access property/index "+n+" levels up, current level is "+t);return r[t-n]}if(n>t)throw new Error("Cannot access data "+n+" levels up, current level is "+t);if(a="data"+(t-n||""),!i)return a}for(var o=a,c=i.split("/"),p=0;p<c.length;p++){var f=c[p];f&&(a+=Nse($se(f)),o+=" && "+a)}return o}function xLe(e,t){return e=='""'?t:(e+" + "+t).replace(/([^\\])' \+ '/g,"$1")}function DQt(e){return $se(decodeURIComponent(e))}function CQt(e){return encodeURIComponent(Lse(e))}function Lse(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function $se(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}});var Bse=b((IWr,SLe)=>{"use strict";var PQt=Vb();SLe.exports=IQt;function IQt(e){PQt.copy(e,this)}});var ALe=b((RWr,kLe)=>{"use strict";var Ag=kLe.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},i=r.post||function(){};RF(t,n,i,e,"",e)};Ag.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0};Ag.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Ag.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Ag.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function RF(e,t,r,n,i,a,s,o,c,p){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,i,a,s,o,c,p);for(var f in n){var d=n[f];if(Array.isArray(d)){if(f in Ag.arrayKeywords)for(var h=0;h<d.length;h++)RF(e,t,r,d[h],i+"/"+f+"/"+h,a,i,f,n,h)}else if(f in Ag.propsKeywords){if(d&&typeof d=="object")for(var g in d)RF(e,t,r,d[g],i+"/"+f+"/"+RQt(g),a,i,f,n,g)}else(f in Ag.keywords||e.allKeys&&!(f in Ag.skipKeywords))&&RF(e,t,r,d,i+"/"+f,a,i,f,n)}r(n,i,a,s,o,c,p)}}function RQt(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var $F=b((FWr,CLe)=>{"use strict";var G7=vLe(),TLe=kg(),qF=Vb(),FF=Bse(),FQt=ALe();CLe.exports=Og;Og.normalizeId=Tg;Og.fullPath=jF;Og.url=NF;Og.ids=$Qt;Og.inlineRef=Mse;Og.schema=LF;function Og(e,t,r){var n=this._refs[r];if(typeof n=="string")if(this._refs[n])n=this._refs[n];else return Og.call(this,e,t,n);if(n=n||this._schemas[r],n instanceof FF)return Mse(n.schema,this._opts.inlineRefs)?n.schema:n.validate||this._compile(n);var i=LF.call(this,t,r),a,s,o;return i&&(a=i.schema,t=i.root,o=i.baseId),a instanceof FF?s=a.validate||e.call(this,a.schema,t,void 0,o):a!==void 0&&(s=Mse(a,this._opts.inlineRefs)?a:e.call(this,a,t,void 0,o)),s}function LF(e,t){var r=G7.parse(t),n=DLe(r),i=jF(this._getId(e.schema));if(Object.keys(e.schema).length===0||n!==i){var a=Tg(n),s=this._refs[a];if(typeof s=="string")return jQt.call(this,e,s,r);if(s instanceof FF)s.validate||this._compile(s),e=s;else if(s=this._schemas[a],s instanceof FF){if(s.validate||this._compile(s),a==Tg(t))return{schema:s,root:e,baseId:i};e=s}else return;if(!e.schema)return;i=jF(this._getId(e.schema))}return OLe.call(this,r,i,e.schema,e)}function jQt(e,t,r){var n=LF.call(this,e,t);if(n){var i=n.schema,a=n.baseId;e=n.root;var s=this._getId(i);return s&&(a=NF(a,s)),OLe.call(this,r,a,i,e)}}var NQt=qF.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function OLe(e,t,r,n){if(e.fragment=e.fragment||"",e.fragment.slice(0,1)=="/"){for(var i=e.fragment.split("/"),a=1;a<i.length;a++){var s=i[a];if(s){if(s=qF.unescapeFragment(s),r=r[s],r===void 0)break;var o;if(!NQt[s]&&(o=this._getId(r),o&&(t=NF(t,o)),r.$ref)){var c=NF(t,r.$ref),p=LF.call(this,n,c);p&&(r=p.schema,n=p.root,t=p.baseId)}}}if(r!==void 0&&r!==n.schema)return{schema:r,root:n,baseId:t}}}var qQt=qF.toHash(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum"]);function Mse(e,t){if(t===!1)return!1;if(t===void 0||t===!0)return Use(e);if(t)return zse(e)<=t}function Use(e){var t;if(Array.isArray(e)){for(var r=0;r<e.length;r++)if(t=e[r],typeof t=="object"&&!Use(t))return!1}else for(var n in e)if(n=="$ref"||(t=e[n],typeof t=="object"&&!Use(t)))return!1;return!0}function zse(e){var t=0,r;if(Array.isArray(e)){for(var n=0;n<e.length;n++)if(r=e[n],typeof r=="object"&&(t+=zse(r)),t==1/0)return 1/0}else for(var i in e){if(i=="$ref")return 1/0;if(qQt[i])t++;else if(r=e[i],typeof r=="object"&&(t+=zse(r)+1),t==1/0)return 1/0}return t}function jF(e,t){t!==!1&&(e=Tg(e));var r=G7.parse(e);return DLe(r)}function DLe(e){return G7.serialize(e).split("#")[0]+"#"}var LQt=/#\/?$/;function Tg(e){return e?e.replace(LQt,""):""}function NF(e,t){return t=Tg(t),G7.resolve(e,t)}function $Qt(e){var t=Tg(this._getId(e)),r={"":t},n={"":jF(t,!1)},i={},a=this;return FQt(e,{allKeys:!0},function(s,o,c,p,f,d,h){if(o!==""){var g=a._getId(s),v=r[p],y=n[p]+"/"+f;if(h!==void 0&&(y+="/"+(typeof h=="number"?h:qF.escapeFragment(h))),typeof g=="string"){g=v=Tg(v?G7.resolve(v,g):g);var _=a._refs[g];if(typeof _=="string"&&(_=a._refs[_]),_&&_.schema){if(!TLe(s,_.schema))throw new Error('id "'+g+'" resolves to more than one schema')}else if(g!=Tg(y))if(g[0]=="#"){if(i[g]&&!TLe(s,i[g]))throw new Error('id "'+g+'" resolves to more than one schema');i[g]=s}else a._refs[g]=y}r[o]=v,n[o]=y}}),i}});var BF=b((jWr,ILe)=>{"use strict";var Hse=$F();ILe.exports={Validation:PLe(BQt),MissingRef:PLe(Vse)};function BQt(e){this.message="validation failed",this.errors=e,this.ajv=this.validation=!0}Vse.message=function(e,t){return"can't resolve reference "+t+" from id "+e};function Vse(e,t,r){this.message=r||Vse.message(e,t),this.missingRef=Hse.url(e,t),this.missingSchema=Hse.normalizeId(Hse.fullPath(this.missingRef))}function PLe(e){return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}});var Gse=b((NWr,RLe)=>{"use strict";RLe.exports=function(e,t){t||(t={}),typeof t=="function"&&(t={cmp:t});var r=typeof t.cycles=="boolean"?t.cycles:!1,n=t.cmp&&function(a){return function(s){return function(o,c){var p={key:o,value:s[o]},f={key:c,value:s[c]};return a(p,f)}}}(t.cmp),i=[];return function a(s){if(s&&s.toJSON&&typeof s.toJSON=="function"&&(s=s.toJSON()),s!==void 0){if(typeof s=="number")return isFinite(s)?""+s:"null";if(typeof s!="object")return JSON.stringify(s);var o,c;if(Array.isArray(s)){for(c="[",o=0;o<s.length;o++)o&&(c+=","),c+=a(s[o])||"null";return c+"]"}if(s===null)return"null";if(i.indexOf(s)!==-1){if(r)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var p=i.push(s)-1,f=Object.keys(s).sort(n&&n(s));for(c="",o=0;o<f.length;o++){var d=f[o],h=a(s[d]);h&&(c&&(c+=","),c+=JSON.stringify(d)+":"+h)}return i.splice(p,1),"{"+c+"}"}}(e)}});var Wse=b((qWr,FLe)=>{"use strict";FLe.exports=function(t,r,n){var i="",a=t.schema.$async===!0,s=t.util.schemaHasRulesExcept(t.schema,t.RULES.all,"$ref"),o=t.self._getId(t.schema);if(t.opts.strictKeywords){var c=t.util.schemaUnknownRules(t.schema,t.RULES.keywords);if(c){var p="unknown keyword: "+c;if(t.opts.strictKeywords==="log")t.logger.warn(p);else throw new Error(p)}}if(t.isTop&&(i+=" var validate = ",a&&(t.async=!0,i+="async "),i+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",o&&(t.opts.sourceCode||t.opts.processCode)&&(i+=" "+("/*# sourceURL="+o+" */")+" ")),typeof t.schema=="boolean"||!(s||t.schema.$ref)){var r="false schema",f=t.level,d=t.dataLevel,h=t.schema[r],g=t.schemaPath+t.util.getProperty(r),v=t.errSchemaPath+"/"+r,H=!t.opts.allErrors,P,y="data"+(d||""),j="valid"+f;if(t.schema===!1){t.isTop?H=!0:i+=" var "+j+" = false; ";var _=_||[];_.push(i),i="",t.createErrors!==!1?(i+=" { keyword: '"+(P||"false schema")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(v)+" , params: {} ",t.opts.messages!==!1&&(i+=" , message: 'boolean schema is false' "),t.opts.verbose&&(i+=" , schema: false , parentSchema: validate.schema"+t.schemaPath+" , data: "+y+" "),i+=" } "):i+=" {} ";var x=i;i=_.pop(),!t.compositeRule&&H?t.async?i+=" throw new ValidationError(["+x+"]); ":i+=" validate.errors = ["+x+"]; return false; ":i+=" var err = "+x+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else t.isTop?a?i+=" return data; ":i+=" validate.errors = null; return true; ":i+=" var "+j+" = true; ";return t.isTop&&(i+=" }; return validate; "),i}if(t.isTop){var A=t.isTop,f=t.level=0,d=t.dataLevel=0,y="data";if(t.rootId=t.resolve.fullPath(t.self._getId(t.root.schema)),t.baseId=t.baseId||t.rootId,delete t.isTop,t.dataPathArr=[""],t.schema.default!==void 0&&t.opts.useDefaults&&t.opts.strictDefaults){var D="default is ignored in the schema root";if(t.opts.strictDefaults==="log")t.logger.warn(D);else throw new Error(D)}i+=" var vErrors = null; ",i+=" var errors = 0;     ",i+=" if (rootData === undefined) rootData = data; "}else{var f=t.level,d=t.dataLevel,y="data"+(d||"");if(o&&(t.baseId=t.resolve.url(t.baseId,o)),a&&!t.async)throw new Error("async schema in sync schema");i+=" var errs_"+f+" = errors;"}var j="valid"+f,H=!t.opts.allErrors,F="",z="",P,M=t.schema.type,K=Array.isArray(M);if(M&&t.opts.nullable&&t.schema.nullable===!0&&(K?M.indexOf("null")==-1&&(M=M.concat("null")):M!="null"&&(M=[M,"null"],K=!0)),K&&M.length==1&&(M=M[0],K=!1),t.schema.$ref&&s){if(t.opts.extendRefs=="fail")throw new Error('$ref: validation keywords used in schema at path "'+t.errSchemaPath+'" (see option extendRefs)');t.opts.extendRefs!==!0&&(s=!1,t.logger.warn('$ref: keywords ignored in schema at path "'+t.errSchemaPath+'"'))}if(t.schema.$comment&&t.opts.$comment&&(i+=" "+t.RULES.all.$comment.code(t,"$comment")),M){if(t.opts.coerceTypes)var L=t.util.coerceToTypes(t.opts.coerceTypes,M);var ve=t.RULES.types[M];if(L||K||ve===!0||ve&&!Ne(ve)){var g=t.schemaPath+".type",v=t.errSchemaPath+"/type",g=t.schemaPath+".type",v=t.errSchemaPath+"/type",U=K?"checkDataTypes":"checkDataType";if(i+=" if ("+t.util[U](M,y,t.opts.strictNumbers,!0)+") { ",L){var N="dataType"+f,re="coerced"+f;i+=" var "+N+" = typeof "+y+"; var "+re+" = undefined; ",t.opts.coerceTypes=="array"&&(i+=" if ("+N+" == 'object' && Array.isArray("+y+") && "+y+".length == 1) { "+y+" = "+y+"[0]; "+N+" = typeof "+y+"; if ("+t.util.checkDataType(t.schema.type,y,t.opts.strictNumbers)+") "+re+" = "+y+"; } "),i+=" if ("+re+" !== undefined) ; ";var ue=L;if(ue)for(var Q,ne=-1,G=ue.length-1;ne<G;)Q=ue[ne+=1],Q=="string"?i+=" else if ("+N+" == 'number' || "+N+" == 'boolean') "+re+" = '' + "+y+"; else if ("+y+" === null) "+re+" = ''; ":Q=="number"||Q=="integer"?(i+=" else if ("+N+" == 'boolean' || "+y+" === null || ("+N+" == 'string' && "+y+" && "+y+" == +"+y+" ",Q=="integer"&&(i+=" && !("+y+" % 1)"),i+=")) "+re+" = +"+y+"; "):Q=="boolean"?i+=" else if ("+y+" === 'false' || "+y+" === 0 || "+y+" === null) "+re+" = false; else if ("+y+" === 'true' || "+y+" === 1) "+re+" = true; ":Q=="null"?i+=" else if ("+y+" === '' || "+y+" === 0 || "+y+" === false) "+re+" = null; ":t.opts.coerceTypes=="array"&&Q=="array"&&(i+=" else if ("+N+" == 'string' || "+N+" == 'number' || "+N+" == 'boolean' || "+y+" == null) "+re+" = ["+y+"]; ");i+=" else {   ";var _=_||[];_.push(i),i="",t.createErrors!==!1?(i+=" { keyword: '"+(P||"type")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(v)+" , params: { type: '",K?i+=""+M.join(","):i+=""+M,i+="' } ",t.opts.messages!==!1&&(i+=" , message: 'should be ",K?i+=""+M.join(","):i+=""+M,i+="' "),t.opts.verbose&&(i+=" , schema: validate.schema"+g+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+y+" "),i+=" } "):i+=" {} ";var x=i;i=_.pop(),!t.compositeRule&&H?t.async?i+=" throw new ValidationError(["+x+"]); ":i+=" validate.errors = ["+x+"]; return false; ":i+=" var err = "+x+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } if ("+re+" !== undefined) {  ";var de=d?"data"+(d-1||""):"parentData",xe=d?t.dataPathArr[d]:"parentDataProperty";i+=" "+y+" = "+re+"; ",d||(i+="if ("+de+" !== undefined)"),i+=" "+de+"["+xe+"] = "+re+"; } "}else{var _=_||[];_.push(i),i="",t.createErrors!==!1?(i+=" { keyword: '"+(P||"type")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(v)+" , params: { type: '",K?i+=""+M.join(","):i+=""+M,i+="' } ",t.opts.messages!==!1&&(i+=" , message: 'should be ",K?i+=""+M.join(","):i+=""+M,i+="' "),t.opts.verbose&&(i+=" , schema: validate.schema"+g+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+y+" "),i+=" } "):i+=" {} ";var x=i;i=_.pop(),!t.compositeRule&&H?t.async?i+=" throw new ValidationError(["+x+"]); ":i+=" validate.errors = ["+x+"]; return false; ":i+=" var err = "+x+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}i+=" } "}}if(t.schema.$ref&&!s)i+=" "+t.RULES.all.$ref.code(t,"$ref")+" ",H&&(i+=" } if (errors === ",A?i+="0":i+="errs_"+f,i+=") { ",z+="}");else{var ge=t.RULES;if(ge){for(var ve,V=-1,ce=ge.length-1;V<ce;)if(ve=ge[V+=1],Ne(ve)){if(ve.type&&(i+=" if ("+t.util.checkDataType(ve.type,y,t.opts.strictNumbers)+") { "),t.opts.useDefaults){if(ve.type=="object"&&t.schema.properties){var h=t.schema.properties,ye=Object.keys(h),R=ye;if(R)for(var $,ke=-1,S=R.length-1;ke<S;){$=R[ke+=1];var I=h[$];if(I.default!==void 0){var B=y+t.util.getProperty($);if(t.compositeRule){if(t.opts.strictDefaults){var D="default is ignored for: "+B;if(t.opts.strictDefaults==="log")t.logger.warn(D);else throw new Error(D)}}else i+=" if ("+B+" === undefined ",t.opts.useDefaults=="empty"&&(i+=" || "+B+" === null || "+B+" === '' "),i+=" ) "+B+" = ",t.opts.useDefaults=="shared"?i+=" "+t.useDefault(I.default)+" ":i+=" "+JSON.stringify(I.default)+" ",i+="; "}}}else if(ve.type=="array"&&Array.isArray(t.schema.items)){var se=t.schema.items;if(se){for(var I,ne=-1,ae=se.length-1;ne<ae;)if(I=se[ne+=1],I.default!==void 0){var B=y+"["+ne+"]";if(t.compositeRule){if(t.opts.strictDefaults){var D="default is ignored for: "+B;if(t.opts.strictDefaults==="log")t.logger.warn(D);else throw new Error(D)}}else i+=" if ("+B+" === undefined ",t.opts.useDefaults=="empty"&&(i+=" || "+B+" === null || "+B+" === '' "),i+=" ) "+B+" = ",t.opts.useDefaults=="shared"?i+=" "+t.useDefault(I.default)+" ":i+=" "+JSON.stringify(I.default)+" ",i+="; "}}}}var me=ve.rules;if(me){for(var Se,Ee=-1,De=me.length-1;Ee<De;)if(Se=me[Ee+=1],Ve(Se)){var Le=Se.code(t,Se.keyword,ve.type);Le&&(i+=" "+Le+" ",H&&(F+="}"))}}if(H&&(i+=" "+F+" ",F=""),ve.type&&(i+=" } ",M&&M===ve.type&&!L)){i+=" else { ";var g=t.schemaPath+".type",v=t.errSchemaPath+"/type",_=_||[];_.push(i),i="",t.createErrors!==!1?(i+=" { keyword: '"+(P||"type")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(v)+" , params: { type: '",K?i+=""+M.join(","):i+=""+M,i+="' } ",t.opts.messages!==!1&&(i+=" , message: 'should be ",K?i+=""+M.join(","):i+=""+M,i+="' "),t.opts.verbose&&(i+=" , schema: validate.schema"+g+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+y+" "),i+=" } "):i+=" {} ";var x=i;i=_.pop(),!t.compositeRule&&H?t.async?i+=" throw new ValidationError(["+x+"]); ":i+=" validate.errors = ["+x+"]; return false; ":i+=" var err = "+x+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } "}H&&(i+=" if (errors === ",A?i+="0":i+="errs_"+f,i+=") { ",z+="}")}}}H&&(i+=" "+z+" "),A?(a?(i+=" if (errors === 0) return data;           ",i+=" else throw new ValidationError(vErrors); "):(i+=" validate.errors = vErrors; ",i+=" return errors === 0;       "),i+=" }; return validate;"):i+=" var "+j+" = errors === errs_"+f+";";function Ne(Ft){for(var rr=Ft.rules,Or=0;Or<rr.length;Or++)if(Ve(rr[Or]))return!0}function Ve(Ft){return t.schema[Ft.keyword]!==void 0||Ft.implements&&kt(Ft)}function kt(Ft){for(var rr=Ft.implements,Or=0;Or<rr.length;Or++)if(t.schema[rr[Or]]!==void 0)return!0}return i}});var $Le=b((LWr,LLe)=>{"use strict";var MF=$F(),zF=Vb(),NLe=BF(),MQt=Gse(),jLe=Wse(),UQt=zF.ucs2length,zQt=kg(),HQt=NLe.Validation;LLe.exports=Kse;function Kse(e,t,r,n){var i=this,a=this._opts,s=[void 0],o={},c=[],p={},f=[],d={},h=[];t=t||{schema:e,refVal:s,refs:o};var g=VQt.call(this,e,t,n),v=this._compilations[g.index];if(g.compiling)return v.callValidate=D;var y=this._formats,_=this.RULES;try{var x=j(e,t,r,n);v.validate=x;var A=v.callValidate;return A&&(A.schema=x.schema,A.errors=null,A.refs=x.refs,A.refVal=x.refVal,A.root=x.root,A.$async=x.$async,a.sourceCode&&(A.source=x.source)),x}finally{GQt.call(this,e,t,n)}function D(){var U=v.validate,N=U.apply(this,arguments);return D.errors=U.errors,N}function j(U,N,re,ue){var Q=!N||N&&N.schema==U;if(N.schema!=t.schema)return Kse.call(i,U,N,re,ue);var ne=U.$async===!0,G=jLe({isTop:!0,schema:U,isRoot:Q,baseId:ue,root:N,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:NLe.MissingRef,RULES:_,validate:jLe,util:zF,resolve:MF,resolveRef:H,usePattern:K,useDefault:L,useCustomRule:ve,opts:a,formats:y,logger:i.logger,self:i});G=UF(s,YQt)+UF(c,WQt)+UF(f,KQt)+UF(h,JQt)+G,a.processCode&&(G=a.processCode(G,U));var de;try{var xe=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",G);de=xe(i,_,y,t,s,f,h,zQt,UQt,HQt),s[0]=de}catch(ge){throw i.logger.error("Error compiling schema, function code:",G),ge}return de.schema=U,de.errors=null,de.refs=o,de.refVal=s,de.root=Q?de:N,ne&&(de.$async=!0),a.sourceCode===!0&&(de.source={code:G,patterns:c,defaults:f}),de}function H(U,N,re){N=MF.url(U,N);var ue=o[N],Q,ne;if(ue!==void 0)return Q=s[ue],ne="refVal["+ue+"]",M(Q,ne);if(!re&&t.refs){var G=t.refs[N];if(G!==void 0)return Q=t.refVal[G],ne=F(N,Q),M(Q,ne)}ne=F(N);var de=MF.call(i,j,t,N);if(de===void 0){var xe=r&&r[N];xe&&(de=MF.inlineRef(xe,a.inlineRefs)?xe:Kse.call(i,xe,t,r,U))}if(de===void 0)z(N);else return P(N,de),M(de,ne)}function F(U,N){var re=s.length;return s[re]=N,o[U]=re,"refVal"+re}function z(U){delete o[U]}function P(U,N){var re=o[U];s[re]=N}function M(U,N){return typeof U=="object"||typeof U=="boolean"?{code:N,schema:U,inline:!0}:{code:N,$async:U&&!!U.$async}}function K(U){var N=p[U];return N===void 0&&(N=p[U]=c.length,c[N]=U),"pattern"+N}function L(U){switch(typeof U){case"boolean":case"number":return""+U;case"string":return zF.toQuotedString(U);case"object":if(U===null)return"null";var N=MQt(U),re=d[N];return re===void 0&&(re=d[N]=f.length,f[re]=U),"default"+re}}function ve(U,N,re,ue){if(i._opts.validateSchema!==!1){var Q=U.definition.dependencies;if(Q&&!Q.every(function(R){return Object.prototype.hasOwnProperty.call(re,R)}))throw new Error("parent schema must have all required keywords: "+Q.join(","));var ne=U.definition.validateSchema;if(ne){var G=ne(N);if(!G){var de="keyword schema is invalid: "+i.errorsText(ne.errors);if(i._opts.validateSchema=="log")i.logger.error(de);else throw new Error(de)}}}var xe=U.definition.compile,ge=U.definition.inline,V=U.definition.macro,ce;if(xe)ce=xe.call(i,N,re,ue);else if(V)ce=V.call(i,N,re,ue),a.validateSchema!==!1&&i.validateSchema(ce,!0);else if(ge)ce=ge.call(i,ue,U.keyword,N,re);else if(ce=U.definition.validate,!ce)return;if(ce===void 0)throw new Error('custom keyword "'+U.keyword+'"failed to compile');var ye=h.length;return h[ye]=ce,{code:"customRule"+ye,validate:ce}}}function VQt(e,t,r){var n=qLe.call(this,e,t,r);return n>=0?{index:n,compiling:!0}:(n=this._compilations.length,this._compilations[n]={schema:e,root:t,baseId:r},{index:n,compiling:!1})}function GQt(e,t,r){var n=qLe.call(this,e,t,r);n>=0&&this._compilations.splice(n,1)}function qLe(e,t,r){for(var n=0;n<this._compilations.length;n++){var i=this._compilations[n];if(i.schema==e&&i.root==t&&i.baseId==r)return n}return-1}function WQt(e,t){return"var pattern"+e+" = new RegExp("+zF.toQuotedString(t[e])+");"}function KQt(e){return"var default"+e+" = defaults["+e+"];"}function YQt(e,t){return t[e]===void 0?"":"var refVal"+e+" = refVal["+e+"];"}function JQt(e){return"var customRule"+e+" = customRules["+e+"];"}function UF(e,t){if(!e.length)return"";for(var r="",n=0;n<e.length;n++)r+=t(n,e);return r}});var MLe=b(($Wr,BLe)=>{"use strict";var HF=BLe.exports=function(){this._cache={}};HF.prototype.put=function(t,r){this._cache[t]=r};HF.prototype.get=function(t){return this._cache[t]};HF.prototype.del=function(t){delete this._cache[t]};HF.prototype.clear=function(){this._cache={}}});var ZLe=b((BWr,QLe)=>{"use strict";var XQt=Vb(),QQt=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,ZQt=[0,31,28,31,30,31,30,31,31,30,31,30,31],eZt=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,ULe=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,tZt=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,rZt=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,zLe=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,HLe=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,VLe=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,GLe=/^(?:\/(?:[^~/]|~0|~1)*)*$/,WLe=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,KLe=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;QLe.exports=VF;function VF(e){return e=e=="full"?"full":"fast",XQt.copy(VF[e])}VF.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":zLe,url:HLe,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:ULe,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:XLe,uuid:VLe,"json-pointer":GLe,"json-pointer-uri-fragment":WLe,"relative-json-pointer":KLe};VF.full={date:YLe,time:JLe,"date-time":aZt,uri:oZt,"uri-reference":rZt,"uri-template":zLe,url:HLe,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:ULe,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:XLe,uuid:VLe,"json-pointer":GLe,"json-pointer-uri-fragment":WLe,"relative-json-pointer":KLe};function nZt(e){return e%4===0&&(e%100!==0||e%400===0)}function YLe(e){var t=e.match(QQt);if(!t)return!1;var r=+t[1],n=+t[2],i=+t[3];return n>=1&&n<=12&&i>=1&&i<=(n==2&&nZt(r)?29:ZQt[n])}function JLe(e,t){var r=e.match(eZt);if(!r)return!1;var n=r[1],i=r[2],a=r[3],s=r[5];return(n<=23&&i<=59&&a<=59||n==23&&i==59&&a==60)&&(!t||s)}var iZt=/t|\s/i;function aZt(e){var t=e.split(iZt);return t.length==2&&YLe(t[0])&&JLe(t[1],!0)}var sZt=/\/|:/;function oZt(e){return sZt.test(e)&&tZt.test(e)}var uZt=/[^\\]\\Z/;function XLe(e){if(uZt.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var t$e=b((MWr,e$e)=>{"use strict";e$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.errSchemaPath+"/"+r,p=!t.opts.allErrors,f="data"+(s||""),d="valid"+a,h,g;if(o=="#"||o=="#/")t.isRoot?(h=t.async,g="validate"):(h=t.root.schema.$async===!0,g="root.refVal[0]");else{var v=t.resolveRef(t.baseId,o,t.isRoot);if(v===void 0){var y=t.MissingRefError.message(t.baseId,o);if(t.opts.missingRefs=="fail"){t.logger.error(y);var _=_||[];_.push(i),i="",t.createErrors!==!1?(i+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(c)+" , params: { ref: '"+t.util.escapeQuotes(o)+"' } ",t.opts.messages!==!1&&(i+=" , message: 'can\\'t resolve reference "+t.util.escapeQuotes(o)+"' "),t.opts.verbose&&(i+=" , schema: "+t.util.toQuotedString(o)+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),i+=" } "):i+=" {} ";var x=i;i=_.pop(),!t.compositeRule&&p?t.async?i+=" throw new ValidationError(["+x+"]); ":i+=" validate.errors = ["+x+"]; return false; ":i+=" var err = "+x+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",p&&(i+=" if (false) { ")}else if(t.opts.missingRefs=="ignore")t.logger.warn(y),p&&(i+=" if (true) { ");else throw new t.MissingRefError(t.baseId,o,y)}else if(v.inline){var A=t.util.copy(t);A.level++;var D="valid"+A.level;A.schema=v.schema,A.schemaPath="",A.errSchemaPath=o;var j=t.validate(A).replace(/validate\.schema/g,v.code);i+=" "+j+" ",p&&(i+=" if ("+D+") { ")}else h=v.$async===!0||t.async&&v.$async!==!1,g=v.code}if(g){var _=_||[];_.push(i),i="",t.opts.passContext?i+=" "+g+".call(this, ":i+=" "+g+"( ",i+=" "+f+", (dataPath || '')",t.errorPath!='""'&&(i+=" + "+t.errorPath);var H=s?"data"+(s-1||""):"parentData",F=s?t.dataPathArr[s]:"parentDataProperty";i+=" , "+H+" , "+F+", rootData)  ";var z=i;if(i=_.pop(),h){if(!t.async)throw new Error("async schema referenced by sync schema");p&&(i+=" var "+d+"; "),i+=" try { await "+z+"; ",p&&(i+=" "+d+" = true; "),i+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",p&&(i+=" "+d+" = false; "),i+=" } ",p&&(i+=" if ("+d+") { ")}else i+=" if (!"+z+") { if (vErrors === null) vErrors = "+g+".errors; else vErrors = vErrors.concat("+g+".errors); errors = vErrors.length; } ",p&&(i+=" else { ")}return i}});var n$e=b((UWr,r$e)=>{"use strict";r$e.exports=function(t,r,n){var i=" ",a=t.schema[r],s=t.schemaPath+t.util.getProperty(r),o=t.errSchemaPath+"/"+r,c=!t.opts.allErrors,p=t.util.copy(t),f="";p.level++;var d="valid"+p.level,h=p.baseId,g=!0,v=a;if(v)for(var y,_=-1,x=v.length-1;_<x;)y=v[_+=1],(t.opts.strictKeywords?typeof y=="object"&&Object.keys(y).length>0||y===!1:t.util.schemaHasRules(y,t.RULES.all))&&(g=!1,p.schema=y,p.schemaPath=s+"["+_+"]",p.errSchemaPath=o+"/"+_,i+="  "+t.validate(p)+" ",p.baseId=h,c&&(i+=" if ("+d+") { ",f+="}"));return c&&(g?i+=" if (true) { ":i+=" "+f.slice(0,-1)+" "),i}});var a$e=b((zWr,i$e)=>{"use strict";i$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,d="data"+(s||""),h="valid"+a,g="errs__"+a,v=t.util.copy(t),y="";v.level++;var _="valid"+v.level,x=o.every(function(P){return t.opts.strictKeywords?typeof P=="object"&&Object.keys(P).length>0||P===!1:t.util.schemaHasRules(P,t.RULES.all)});if(x){var A=v.baseId;i+=" var "+g+" = errors; var "+h+" = false;  ";var D=t.compositeRule;t.compositeRule=v.compositeRule=!0;var j=o;if(j)for(var H,F=-1,z=j.length-1;F<z;)H=j[F+=1],v.schema=H,v.schemaPath=c+"["+F+"]",v.errSchemaPath=p+"/"+F,i+="  "+t.validate(v)+" ",v.baseId=A,i+=" "+h+" = "+h+" || "+_+"; if (!"+h+") { ",y+="}";t.compositeRule=v.compositeRule=D,i+=" "+y+" if (!"+h+") {   var err =   ",t.createErrors!==!1?(i+=" { keyword: 'anyOf' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: {} ",t.opts.messages!==!1&&(i+=" , message: 'should match some schema in anyOf' "),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ",i+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!t.compositeRule&&f&&(t.async?i+=" throw new ValidationError(vErrors); ":i+=" validate.errors = vErrors; return false; "),i+=" } else {  errors = "+g+"; if (vErrors !== null) { if ("+g+") vErrors.length = "+g+"; else vErrors = null; } ",t.opts.allErrors&&(i+=" } ")}else f&&(i+=" if (true) { ");return i}});var o$e=b((HWr,s$e)=>{"use strict";s$e.exports=function(t,r,n){var i=" ",a=t.schema[r],s=t.errSchemaPath+"/"+r,o=!t.opts.allErrors,c=t.util.toQuotedString(a);return t.opts.$comment===!0?i+=" console.log("+c+");":typeof t.opts.$comment=="function"&&(i+=" self._opts.$comment("+c+", "+t.util.toQuotedString(s)+", validate.root.schema);"),i}});var c$e=b((VWr,u$e)=>{"use strict";u$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,d="data"+(s||""),h="valid"+a,g=t.opts.$data&&o&&o.$data,v;g?(i+=" var schema"+a+" = "+t.util.getData(o.$data,s,t.dataPathArr)+"; ",v="schema"+a):v=o,g||(i+=" var schema"+a+" = validate.schema"+c+";"),i+="var "+h+" = equal("+d+", schema"+a+"); if (!"+h+") {   ";var y=y||[];y.push(i),i="",t.createErrors!==!1?(i+=" { keyword: 'const' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { allowedValue: schema"+a+" } ",t.opts.messages!==!1&&(i+=" , message: 'should be equal to constant' "),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var _=i;return i=y.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+_+"]); ":i+=" validate.errors = ["+_+"]; return false; ":i+=" var err = "+_+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" }",f&&(i+=" else { "),i}});var p$e=b((GWr,l$e)=>{"use strict";l$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,d="data"+(s||""),h="valid"+a,g="errs__"+a,v=t.util.copy(t),y="";v.level++;var _="valid"+v.level,x="i"+a,A=v.dataLevel=t.dataLevel+1,D="data"+A,j=t.baseId,H=t.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:t.util.schemaHasRules(o,t.RULES.all);if(i+="var "+g+" = errors;var "+h+";",H){var F=t.compositeRule;t.compositeRule=v.compositeRule=!0,v.schema=o,v.schemaPath=c,v.errSchemaPath=p,i+=" var "+_+" = false; for (var "+x+" = 0; "+x+" < "+d+".length; "+x+"++) { ",v.errorPath=t.util.getPathExpr(t.errorPath,x,t.opts.jsonPointers,!0);var z=d+"["+x+"]";v.dataPathArr[A]=x;var P=t.validate(v);v.baseId=j,t.util.varOccurences(P,D)<2?i+=" "+t.util.varReplace(P,D,z)+" ":i+=" var "+D+" = "+z+"; "+P+" ",i+=" if ("+_+") break; }  ",t.compositeRule=v.compositeRule=F,i+=" "+y+" if (!"+_+") {"}else i+=" if ("+d+".length == 0) {";var M=M||[];M.push(i),i="",t.createErrors!==!1?(i+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: {} ",t.opts.messages!==!1&&(i+=" , message: 'should contain a valid item' "),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var K=i;return i=M.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+K+"]); ":i+=" validate.errors = ["+K+"]; return false; ":i+=" var err = "+K+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } else { ",H&&(i+="  errors = "+g+"; if (vErrors !== null) { if ("+g+") vErrors.length = "+g+"; else vErrors = null; } "),t.opts.allErrors&&(i+=" } "),i}});var d$e=b((WWr,f$e)=>{"use strict";f$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,d="data"+(s||""),h="errs__"+a,g=t.util.copy(t),v="";g.level++;var y="valid"+g.level,_={},x={},A=t.opts.ownProperties;for(F in o)if(F!="__proto__"){var D=o[F],j=Array.isArray(D)?x:_;j[F]=D}i+="var "+h+" = errors;";var H=t.errorPath;i+="var missing"+a+";";for(var F in x)if(j=x[F],j.length){if(i+=" if ( "+d+t.util.getProperty(F)+" !== undefined ",A&&(i+=" && Object.prototype.hasOwnProperty.call("+d+", '"+t.util.escapeQuotes(F)+"') "),f){i+=" && ( ";var z=j;if(z)for(var P,M=-1,K=z.length-1;M<K;){P=z[M+=1],M&&(i+=" || ");var L=t.util.getProperty(P),ve=d+L;i+=" ( ( "+ve+" === undefined ",A&&(i+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+t.util.escapeQuotes(P)+"') "),i+=") && (missing"+a+" = "+t.util.toQuotedString(t.opts.jsonPointers?P:L)+") ) "}i+=")) {  ";var U="missing"+a,N="' + "+U+" + '";t.opts._errorDataPathProperty&&(t.errorPath=t.opts.jsonPointers?t.util.getPathExpr(H,U,!0):H+" + "+U);var re=re||[];re.push(i),i="",t.createErrors!==!1?(i+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { property: '"+t.util.escapeQuotes(F)+"', missingProperty: '"+N+"', depsCount: "+j.length+", deps: '"+t.util.escapeQuotes(j.length==1?j[0]:j.join(", "))+"' } ",t.opts.messages!==!1&&(i+=" , message: 'should have ",j.length==1?i+="property "+t.util.escapeQuotes(j[0]):i+="properties "+t.util.escapeQuotes(j.join(", ")),i+=" when property "+t.util.escapeQuotes(F)+" is present' "),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var ue=i;i=re.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+ue+"]); ":i+=" validate.errors = ["+ue+"]; return false; ":i+=" var err = "+ue+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{i+=" ) { ";var Q=j;if(Q)for(var P,ne=-1,G=Q.length-1;ne<G;){P=Q[ne+=1];var L=t.util.getProperty(P),N=t.util.escapeQuotes(P),ve=d+L;t.opts._errorDataPathProperty&&(t.errorPath=t.util.getPath(H,P,t.opts.jsonPointers)),i+=" if ( "+ve+" === undefined ",A&&(i+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+t.util.escapeQuotes(P)+"') "),i+=") {  var err =   ",t.createErrors!==!1?(i+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { property: '"+t.util.escapeQuotes(F)+"', missingProperty: '"+N+"', depsCount: "+j.length+", deps: '"+t.util.escapeQuotes(j.length==1?j[0]:j.join(", "))+"' } ",t.opts.messages!==!1&&(i+=" , message: 'should have ",j.length==1?i+="property "+t.util.escapeQuotes(j[0]):i+="properties "+t.util.escapeQuotes(j.join(", ")),i+=" when property "+t.util.escapeQuotes(F)+" is present' "),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ",i+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}i+=" }   ",f&&(v+="}",i+=" else { ")}t.errorPath=H;var de=g.baseId;for(var F in _){var D=_[F];(t.opts.strictKeywords?typeof D=="object"&&Object.keys(D).length>0||D===!1:t.util.schemaHasRules(D,t.RULES.all))&&(i+=" "+y+" = true; if ( "+d+t.util.getProperty(F)+" !== undefined ",A&&(i+=" && Object.prototype.hasOwnProperty.call("+d+", '"+t.util.escapeQuotes(F)+"') "),i+=") { ",g.schema=D,g.schemaPath=c+t.util.getProperty(F),g.errSchemaPath=p+"/"+t.util.escapeFragment(F),i+="  "+t.validate(g)+" ",g.baseId=de,i+=" }  ",f&&(i+=" if ("+y+") { ",v+="}"))}return f&&(i+="   "+v+" if ("+h+" == errors) {"),i}});var m$e=b((KWr,h$e)=>{"use strict";h$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,d="data"+(s||""),h="valid"+a,g=t.opts.$data&&o&&o.$data,v;g?(i+=" var schema"+a+" = "+t.util.getData(o.$data,s,t.dataPathArr)+"; ",v="schema"+a):v=o;var y="i"+a,_="schema"+a;g||(i+=" var "+_+" = validate.schema"+c+";"),i+="var "+h+";",g&&(i+=" if (schema"+a+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+a+")) "+h+" = false; else {"),i+=""+h+" = false;for (var "+y+"=0; "+y+"<"+_+".length; "+y+"++) if (equal("+d+", "+_+"["+y+"])) { "+h+" = true; break; }",g&&(i+="  }  "),i+=" if (!"+h+") {   ";var x=x||[];x.push(i),i="",t.createErrors!==!1?(i+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { allowedValues: schema"+a+" } ",t.opts.messages!==!1&&(i+=" , message: 'should be equal to one of the allowed values' "),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var A=i;return i=x.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+A+"]); ":i+=" validate.errors = ["+A+"]; return false; ":i+=" var err = "+A+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" }",f&&(i+=" else { "),i}});var v$e=b((YWr,g$e)=>{"use strict";g$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,d="data"+(s||"");if(t.opts.format===!1)return f&&(i+=" if (true) { "),i;var h=t.opts.$data&&o&&o.$data,g;h?(i+=" var schema"+a+" = "+t.util.getData(o.$data,s,t.dataPathArr)+"; ",g="schema"+a):g=o;var v=t.opts.unknownFormats,y=Array.isArray(v);if(h){var _="format"+a,x="isObject"+a,A="formatType"+a;i+=" var "+_+" = formats["+g+"]; var "+x+" = typeof "+_+" == 'object' && !("+_+" instanceof RegExp) && "+_+".validate; var "+A+" = "+x+" && "+_+".type || 'string'; if ("+x+") { ",t.async&&(i+=" var async"+a+" = "+_+".async; "),i+=" "+_+" = "+_+".validate; } if (  ",h&&(i+=" ("+g+" !== undefined && typeof "+g+" != 'string') || "),i+=" (",v!="ignore"&&(i+=" ("+g+" && !"+_+" ",y&&(i+=" && self._opts.unknownFormats.indexOf("+g+") == -1 "),i+=") || "),i+=" ("+_+" && "+A+" == '"+n+"' && !(typeof "+_+" == 'function' ? ",t.async?i+=" (async"+a+" ? await "+_+"("+d+") : "+_+"("+d+")) ":i+=" "+_+"("+d+") ",i+=" : "+_+".test("+d+"))))) {"}else{var _=t.formats[o];if(!_){if(v=="ignore")return t.logger.warn('unknown format "'+o+'" ignored in schema at path "'+t.errSchemaPath+'"'),f&&(i+=" if (true) { "),i;if(y&&v.indexOf(o)>=0)return f&&(i+=" if (true) { "),i;throw new Error('unknown format "'+o+'" is used in schema at path "'+t.errSchemaPath+'"')}var x=typeof _=="object"&&!(_ instanceof RegExp)&&_.validate,A=x&&_.type||"string";if(x){var D=_.async===!0;_=_.validate}if(A!=n)return f&&(i+=" if (true) { "),i;if(D){if(!t.async)throw new Error("async format in sync schema");var j="formats"+t.util.getProperty(o)+".validate";i+=" if (!(await "+j+"("+d+"))) { "}else{i+=" if (! ";var j="formats"+t.util.getProperty(o);x&&(j+=".validate"),typeof _=="function"?i+=" "+j+"("+d+") ":i+=" "+j+".test("+d+") ",i+=") { "}}var H=H||[];H.push(i),i="",t.createErrors!==!1?(i+=" { keyword: 'format' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { format:  ",h?i+=""+g:i+=""+t.util.toQuotedString(o),i+="  } ",t.opts.messages!==!1&&(i+=` , message: 'should match format "`,h?i+="' + "+g+" + '":i+=""+t.util.escapeQuotes(o),i+=`"' `),t.opts.verbose&&(i+=" , schema:  ",h?i+="validate.schema"+c:i+=""+t.util.toQuotedString(o),i+="         , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var F=i;return i=H.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+F+"]); ":i+=" validate.errors = ["+F+"]; return false; ":i+=" var err = "+F+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",f&&(i+=" else { "),i}});var b$e=b((JWr,y$e)=>{"use strict";y$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,d="data"+(s||""),h="valid"+a,g="errs__"+a,v=t.util.copy(t);v.level++;var y="valid"+v.level,_=t.schema.then,x=t.schema.else,A=_!==void 0&&(t.opts.strictKeywords?typeof _=="object"&&Object.keys(_).length>0||_===!1:t.util.schemaHasRules(_,t.RULES.all)),D=x!==void 0&&(t.opts.strictKeywords?typeof x=="object"&&Object.keys(x).length>0||x===!1:t.util.schemaHasRules(x,t.RULES.all)),j=v.baseId;if(A||D){var H;v.createErrors=!1,v.schema=o,v.schemaPath=c,v.errSchemaPath=p,i+=" var "+g+" = errors; var "+h+" = true;  ";var F=t.compositeRule;t.compositeRule=v.compositeRule=!0,i+="  "+t.validate(v)+" ",v.baseId=j,v.createErrors=!0,i+="  errors = "+g+"; if (vErrors !== null) { if ("+g+") vErrors.length = "+g+"; else vErrors = null; }  ",t.compositeRule=v.compositeRule=F,A?(i+=" if ("+y+") {  ",v.schema=t.schema.then,v.schemaPath=t.schemaPath+".then",v.errSchemaPath=t.errSchemaPath+"/then",i+="  "+t.validate(v)+" ",v.baseId=j,i+=" "+h+" = "+y+"; ",A&&D?(H="ifClause"+a,i+=" var "+H+" = 'then'; "):H="'then'",i+=" } ",D&&(i+=" else { ")):i+=" if (!"+y+") { ",D&&(v.schema=t.schema.else,v.schemaPath=t.schemaPath+".else",v.errSchemaPath=t.errSchemaPath+"/else",i+="  "+t.validate(v)+" ",v.baseId=j,i+=" "+h+" = "+y+"; ",A&&D?(H="ifClause"+a,i+=" var "+H+" = 'else'; "):H="'else'",i+=" } "),i+=" if (!"+h+") {   var err =   ",t.createErrors!==!1?(i+=" { keyword: 'if' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { failingKeyword: "+H+" } ",t.opts.messages!==!1&&(i+=` , message: 'should match "' + `+H+` + '" schema' `),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ",i+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!t.compositeRule&&f&&(t.async?i+=" throw new ValidationError(vErrors); ":i+=" validate.errors = vErrors; return false; "),i+=" }   ",f&&(i+=" else { ")}else f&&(i+=" if (true) { ");return i}});var _$e=b((XWr,w$e)=>{"use strict";w$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,d="data"+(s||""),h="valid"+a,g="errs__"+a,v=t.util.copy(t),y="";v.level++;var _="valid"+v.level,x="i"+a,A=v.dataLevel=t.dataLevel+1,D="data"+A,j=t.baseId;if(i+="var "+g+" = errors;var "+h+";",Array.isArray(o)){var H=t.schema.additionalItems;if(H===!1){i+=" "+h+" = "+d+".length <= "+o.length+"; ";var F=p;p=t.errSchemaPath+"/additionalItems",i+="  if (!"+h+") {   ";var z=z||[];z.push(i),i="",t.createErrors!==!1?(i+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { limit: "+o.length+" } ",t.opts.messages!==!1&&(i+=" , message: 'should NOT have more than "+o.length+" items' "),t.opts.verbose&&(i+=" , schema: false , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var P=i;i=z.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+P+"]); ":i+=" validate.errors = ["+P+"]; return false; ":i+=" var err = "+P+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",p=F,f&&(y+="}",i+=" else { ")}var M=o;if(M){for(var K,L=-1,ve=M.length-1;L<ve;)if(K=M[L+=1],t.opts.strictKeywords?typeof K=="object"&&Object.keys(K).length>0||K===!1:t.util.schemaHasRules(K,t.RULES.all)){i+=" "+_+" = true; if ("+d+".length > "+L+") { ";var U=d+"["+L+"]";v.schema=K,v.schemaPath=c+"["+L+"]",v.errSchemaPath=p+"/"+L,v.errorPath=t.util.getPathExpr(t.errorPath,L,t.opts.jsonPointers,!0),v.dataPathArr[A]=L;var N=t.validate(v);v.baseId=j,t.util.varOccurences(N,D)<2?i+=" "+t.util.varReplace(N,D,U)+" ":i+=" var "+D+" = "+U+"; "+N+" ",i+=" }  ",f&&(i+=" if ("+_+") { ",y+="}")}}if(typeof H=="object"&&(t.opts.strictKeywords?typeof H=="object"&&Object.keys(H).length>0||H===!1:t.util.schemaHasRules(H,t.RULES.all))){v.schema=H,v.schemaPath=t.schemaPath+".additionalItems",v.errSchemaPath=t.errSchemaPath+"/additionalItems",i+=" "+_+" = true; if ("+d+".length > "+o.length+") {  for (var "+x+" = "+o.length+"; "+x+" < "+d+".length; "+x+"++) { ",v.errorPath=t.util.getPathExpr(t.errorPath,x,t.opts.jsonPointers,!0);var U=d+"["+x+"]";v.dataPathArr[A]=x;var N=t.validate(v);v.baseId=j,t.util.varOccurences(N,D)<2?i+=" "+t.util.varReplace(N,D,U)+" ":i+=" var "+D+" = "+U+"; "+N+" ",f&&(i+=" if (!"+_+") break; "),i+=" } }  ",f&&(i+=" if ("+_+") { ",y+="}")}}else if(t.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:t.util.schemaHasRules(o,t.RULES.all)){v.schema=o,v.schemaPath=c,v.errSchemaPath=p,i+="  for (var "+x+" = 0; "+x+" < "+d+".length; "+x+"++) { ",v.errorPath=t.util.getPathExpr(t.errorPath,x,t.opts.jsonPointers,!0);var U=d+"["+x+"]";v.dataPathArr[A]=x;var N=t.validate(v);v.baseId=j,t.util.varOccurences(N,D)<2?i+=" "+t.util.varReplace(N,D,U)+" ":i+=" var "+D+" = "+U+"; "+N+" ",f&&(i+=" if (!"+_+") break; "),i+=" }"}return f&&(i+=" "+y+" if ("+g+" == errors) {"),i}});var Yse=b((QWr,x$e)=>{"use strict";x$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,j,d="data"+(s||""),h=t.opts.$data&&o&&o.$data,g;h?(i+=" var schema"+a+" = "+t.util.getData(o.$data,s,t.dataPathArr)+"; ",g="schema"+a):g=o;var v=r=="maximum",y=v?"exclusiveMaximum":"exclusiveMinimum",_=t.schema[y],x=t.opts.$data&&_&&_.$data,A=v?"<":">",D=v?">":"<",j=void 0;if(!(h||typeof o=="number"||o===void 0))throw new Error(r+" must be number");if(!(x||_===void 0||typeof _=="number"||typeof _=="boolean"))throw new Error(y+" must be number or boolean");if(x){var H=t.util.getData(_.$data,s,t.dataPathArr),F="exclusive"+a,z="exclType"+a,P="exclIsNumber"+a,M="op"+a,K="' + "+M+" + '";i+=" var schemaExcl"+a+" = "+H+"; ",H="schemaExcl"+a,i+=" var "+F+"; var "+z+" = typeof "+H+"; if ("+z+" != 'boolean' && "+z+" != 'undefined' && "+z+" != 'number') { ";var j=y,L=L||[];L.push(i),i="",t.createErrors!==!1?(i+=" { keyword: '"+(j||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: {} ",t.opts.messages!==!1&&(i+=" , message: '"+y+" should be boolean' "),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var ve=i;i=L.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+ve+"]); ":i+=" validate.errors = ["+ve+"]; return false; ":i+=" var err = "+ve+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } else if ( ",h&&(i+=" ("+g+" !== undefined && typeof "+g+" != 'number') || "),i+=" "+z+" == 'number' ? ( ("+F+" = "+g+" === undefined || "+H+" "+A+"= "+g+") ? "+d+" "+D+"= "+H+" : "+d+" "+D+" "+g+" ) : ( ("+F+" = "+H+" === true) ? "+d+" "+D+"= "+g+" : "+d+" "+D+" "+g+" ) || "+d+" !== "+d+") { var op"+a+" = "+F+" ? '"+A+"' : '"+A+"='; ",o===void 0&&(j=y,p=t.errSchemaPath+"/"+y,g=H,h=x)}else{var P=typeof _=="number",K=A;if(P&&h){var M="'"+K+"'";i+=" if ( ",h&&(i+=" ("+g+" !== undefined && typeof "+g+" != 'number') || "),i+=" ( "+g+" === undefined || "+_+" "+A+"= "+g+" ? "+d+" "+D+"= "+_+" : "+d+" "+D+" "+g+" ) || "+d+" !== "+d+") { "}else{P&&o===void 0?(F=!0,j=y,p=t.errSchemaPath+"/"+y,g=_,D+="="):(P&&(g=Math[v?"min":"max"](_,o)),_===(P?g:!0)?(F=!0,j=y,p=t.errSchemaPath+"/"+y,D+="="):(F=!1,K+="="));var M="'"+K+"'";i+=" if ( ",h&&(i+=" ("+g+" !== undefined && typeof "+g+" != 'number') || "),i+=" "+d+" "+D+" "+g+" || "+d+" !== "+d+") { "}}j=j||r;var L=L||[];L.push(i),i="",t.createErrors!==!1?(i+=" { keyword: '"+(j||"_limit")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { comparison: "+M+", limit: "+g+", exclusive: "+F+" } ",t.opts.messages!==!1&&(i+=" , message: 'should be "+K+" ",h?i+="' + "+g:i+=""+g+"'"),t.opts.verbose&&(i+=" , schema:  ",h?i+="validate.schema"+c:i+=""+o,i+="         , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var ve=i;return i=L.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+ve+"]); ":i+=" validate.errors = ["+ve+"]; return false; ":i+=" var err = "+ve+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",f&&(i+=" else { "),i}});var Jse=b((ZWr,E$e)=>{"use strict";E$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,y,d="data"+(s||""),h=t.opts.$data&&o&&o.$data,g;if(h?(i+=" var schema"+a+" = "+t.util.getData(o.$data,s,t.dataPathArr)+"; ",g="schema"+a):g=o,!(h||typeof o=="number"))throw new Error(r+" must be number");var v=r=="maxItems"?">":"<";i+="if ( ",h&&(i+=" ("+g+" !== undefined && typeof "+g+" != 'number') || "),i+=" "+d+".length "+v+" "+g+") { ";var y=r,_=_||[];_.push(i),i="",t.createErrors!==!1?(i+=" { keyword: '"+(y||"_limitItems")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { limit: "+g+" } ",t.opts.messages!==!1&&(i+=" , message: 'should NOT have ",r=="maxItems"?i+="more":i+="fewer",i+=" than ",h?i+="' + "+g+" + '":i+=""+o,i+=" items' "),t.opts.verbose&&(i+=" , schema:  ",h?i+="validate.schema"+c:i+=""+o,i+="         , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var x=i;return i=_.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+x+"]); ":i+=" validate.errors = ["+x+"]; return false; ":i+=" var err = "+x+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",f&&(i+=" else { "),i}});var Xse=b((eKr,S$e)=>{"use strict";S$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,y,d="data"+(s||""),h=t.opts.$data&&o&&o.$data,g;if(h?(i+=" var schema"+a+" = "+t.util.getData(o.$data,s,t.dataPathArr)+"; ",g="schema"+a):g=o,!(h||typeof o=="number"))throw new Error(r+" must be number");var v=r=="maxLength"?">":"<";i+="if ( ",h&&(i+=" ("+g+" !== undefined && typeof "+g+" != 'number') || "),t.opts.unicode===!1?i+=" "+d+".length ":i+=" ucs2length("+d+") ",i+=" "+v+" "+g+") { ";var y=r,_=_||[];_.push(i),i="",t.createErrors!==!1?(i+=" { keyword: '"+(y||"_limitLength")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { limit: "+g+" } ",t.opts.messages!==!1&&(i+=" , message: 'should NOT be ",r=="maxLength"?i+="longer":i+="shorter",i+=" than ",h?i+="' + "+g+" + '":i+=""+o,i+=" characters' "),t.opts.verbose&&(i+=" , schema:  ",h?i+="validate.schema"+c:i+=""+o,i+="         , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var x=i;return i=_.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+x+"]); ":i+=" validate.errors = ["+x+"]; return false; ":i+=" var err = "+x+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",f&&(i+=" else { "),i}});var Qse=b((tKr,k$e)=>{"use strict";k$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,y,d="data"+(s||""),h=t.opts.$data&&o&&o.$data,g;if(h?(i+=" var schema"+a+" = "+t.util.getData(o.$data,s,t.dataPathArr)+"; ",g="schema"+a):g=o,!(h||typeof o=="number"))throw new Error(r+" must be number");var v=r=="maxProperties"?">":"<";i+="if ( ",h&&(i+=" ("+g+" !== undefined && typeof "+g+" != 'number') || "),i+=" Object.keys("+d+").length "+v+" "+g+") { ";var y=r,_=_||[];_.push(i),i="",t.createErrors!==!1?(i+=" { keyword: '"+(y||"_limitProperties")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { limit: "+g+" } ",t.opts.messages!==!1&&(i+=" , message: 'should NOT have ",r=="maxProperties"?i+="more":i+="fewer",i+=" than ",h?i+="' + "+g+" + '":i+=""+o,i+=" properties' "),t.opts.verbose&&(i+=" , schema:  ",h?i+="validate.schema"+c:i+=""+o,i+="         , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var x=i;return i=_.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+x+"]); ":i+=" validate.errors = ["+x+"]; return false; ":i+=" var err = "+x+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",f&&(i+=" else { "),i}});var T$e=b((rKr,A$e)=>{"use strict";A$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,d="data"+(s||""),h=t.opts.$data&&o&&o.$data,g;if(h?(i+=" var schema"+a+" = "+t.util.getData(o.$data,s,t.dataPathArr)+"; ",g="schema"+a):g=o,!(h||typeof o=="number"))throw new Error(r+" must be number");i+="var division"+a+";if (",h&&(i+=" "+g+" !== undefined && ( typeof "+g+" != 'number' || "),i+=" (division"+a+" = "+d+" / "+g+", ",t.opts.multipleOfPrecision?i+=" Math.abs(Math.round(division"+a+") - division"+a+") > 1e-"+t.opts.multipleOfPrecision+" ":i+=" division"+a+" !== parseInt(division"+a+") ",i+=" ) ",h&&(i+="  )  "),i+=" ) {   ";var v=v||[];v.push(i),i="",t.createErrors!==!1?(i+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { multipleOf: "+g+" } ",t.opts.messages!==!1&&(i+=" , message: 'should be multiple of ",h?i+="' + "+g:i+=""+g+"'"),t.opts.verbose&&(i+=" , schema:  ",h?i+="validate.schema"+c:i+=""+o,i+="         , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var y=i;return i=v.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+y+"]); ":i+=" validate.errors = ["+y+"]; return false; ":i+=" var err = "+y+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",f&&(i+=" else { "),i}});var D$e=b((nKr,O$e)=>{"use strict";O$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,d="data"+(s||""),h="errs__"+a,g=t.util.copy(t);g.level++;var v="valid"+g.level;if(t.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:t.util.schemaHasRules(o,t.RULES.all)){g.schema=o,g.schemaPath=c,g.errSchemaPath=p,i+=" var "+h+" = errors;  ";var y=t.compositeRule;t.compositeRule=g.compositeRule=!0,g.createErrors=!1;var _;g.opts.allErrors&&(_=g.opts.allErrors,g.opts.allErrors=!1),i+=" "+t.validate(g)+" ",g.createErrors=!0,_&&(g.opts.allErrors=_),t.compositeRule=g.compositeRule=y,i+=" if ("+v+") {   ";var x=x||[];x.push(i),i="",t.createErrors!==!1?(i+=" { keyword: 'not' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: {} ",t.opts.messages!==!1&&(i+=" , message: 'should NOT be valid' "),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var A=i;i=x.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+A+"]); ":i+=" validate.errors = ["+A+"]; return false; ":i+=" var err = "+A+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } else {  errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } ",t.opts.allErrors&&(i+=" } ")}else i+="  var err =   ",t.createErrors!==!1?(i+=" { keyword: 'not' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: {} ",t.opts.messages!==!1&&(i+=" , message: 'should NOT be valid' "),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ",i+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f&&(i+=" if (false) { ");return i}});var P$e=b((iKr,C$e)=>{"use strict";C$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,d="data"+(s||""),h="valid"+a,g="errs__"+a,v=t.util.copy(t),y="";v.level++;var _="valid"+v.level,x=v.baseId,A="prevValid"+a,D="passingSchemas"+a;i+="var "+g+" = errors , "+A+" = false , "+h+" = false , "+D+" = null; ";var j=t.compositeRule;t.compositeRule=v.compositeRule=!0;var H=o;if(H)for(var F,z=-1,P=H.length-1;z<P;)F=H[z+=1],(t.opts.strictKeywords?typeof F=="object"&&Object.keys(F).length>0||F===!1:t.util.schemaHasRules(F,t.RULES.all))?(v.schema=F,v.schemaPath=c+"["+z+"]",v.errSchemaPath=p+"/"+z,i+="  "+t.validate(v)+" ",v.baseId=x):i+=" var "+_+" = true; ",z&&(i+=" if ("+_+" && "+A+") { "+h+" = false; "+D+" = ["+D+", "+z+"]; } else { ",y+="}"),i+=" if ("+_+") { "+h+" = "+A+" = true; "+D+" = "+z+"; }";return t.compositeRule=v.compositeRule=j,i+=""+y+"if (!"+h+") {   var err =   ",t.createErrors!==!1?(i+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { passingSchemas: "+D+" } ",t.opts.messages!==!1&&(i+=" , message: 'should match exactly one schema in oneOf' "),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ",i+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!t.compositeRule&&f&&(t.async?i+=" throw new ValidationError(vErrors); ":i+=" validate.errors = vErrors; return false; "),i+="} else {  errors = "+g+"; if (vErrors !== null) { if ("+g+") vErrors.length = "+g+"; else vErrors = null; }",t.opts.allErrors&&(i+=" } "),i}});var R$e=b((aKr,I$e)=>{"use strict";I$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,d="data"+(s||""),h=t.opts.$data&&o&&o.$data,g;h?(i+=" var schema"+a+" = "+t.util.getData(o.$data,s,t.dataPathArr)+"; ",g="schema"+a):g=o;var v=h?"(new RegExp("+g+"))":t.usePattern(o);i+="if ( ",h&&(i+=" ("+g+" !== undefined && typeof "+g+" != 'string') || "),i+=" !"+v+".test("+d+") ) {   ";var y=y||[];y.push(i),i="",t.createErrors!==!1?(i+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { pattern:  ",h?i+=""+g:i+=""+t.util.toQuotedString(o),i+="  } ",t.opts.messages!==!1&&(i+=` , message: 'should match pattern "`,h?i+="' + "+g+" + '":i+=""+t.util.escapeQuotes(o),i+=`"' `),t.opts.verbose&&(i+=" , schema:  ",h?i+="validate.schema"+c:i+=""+t.util.toQuotedString(o),i+="         , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var _=i;return i=y.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+_+"]); ":i+=" validate.errors = ["+_+"]; return false; ":i+=" var err = "+_+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",f&&(i+=" else { "),i}});var j$e=b((sKr,F$e)=>{"use strict";F$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,d="data"+(s||""),h="errs__"+a,g=t.util.copy(t),v="";g.level++;var y="valid"+g.level,_="key"+a,x="idx"+a,A=g.dataLevel=t.dataLevel+1,D="data"+A,j="dataProperties"+a,H=Object.keys(o||{}).filter(ne),F=t.schema.patternProperties||{},z=Object.keys(F).filter(ne),P=t.schema.additionalProperties,M=H.length||z.length,K=P===!1,L=typeof P=="object"&&Object.keys(P).length,ve=t.opts.removeAdditional,U=K||L||ve,N=t.opts.ownProperties,re=t.baseId,ue=t.schema.required;if(ue&&!(t.opts.$data&&ue.$data)&&ue.length<t.opts.loopRequired)var Q=t.util.toHash(ue);function ne($t){return $t!=="__proto__"}if(i+="var "+h+" = errors;var "+y+" = true;",N&&(i+=" var "+j+" = undefined;"),U){if(N?i+=" "+j+" = "+j+" || Object.keys("+d+"); for (var "+x+"=0; "+x+"<"+j+".length; "+x+"++) { var "+_+" = "+j+"["+x+"]; ":i+=" for (var "+_+" in "+d+") { ",M){if(i+=" var isAdditional"+a+" = !(false ",H.length)if(H.length>8)i+=" || validate.schema"+c+".hasOwnProperty("+_+") ";else{var G=H;if(G)for(var de,xe=-1,ge=G.length-1;xe<ge;)de=G[xe+=1],i+=" || "+_+" == "+t.util.toQuotedString(de)+" "}if(z.length){var V=z;if(V)for(var ce,ye=-1,R=V.length-1;ye<R;)ce=V[ye+=1],i+=" || "+t.usePattern(ce)+".test("+_+") "}i+=" ); if (isAdditional"+a+") { "}if(ve=="all")i+=" delete "+d+"["+_+"]; ";else{var $=t.errorPath,ke="' + "+_+" + '";if(t.opts._errorDataPathProperty&&(t.errorPath=t.util.getPathExpr(t.errorPath,_,t.opts.jsonPointers)),K)if(ve)i+=" delete "+d+"["+_+"]; ";else{i+=" "+y+" = false; ";var S=p;p=t.errSchemaPath+"/additionalProperties";var I=I||[];I.push(i),i="",t.createErrors!==!1?(i+=" { keyword: 'additionalProperties' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { additionalProperty: '"+ke+"' } ",t.opts.messages!==!1&&(i+=" , message: '",t.opts._errorDataPathProperty?i+="is an invalid additional property":i+="should NOT have additional properties",i+="' "),t.opts.verbose&&(i+=" , schema: false , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var B=i;i=I.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+B+"]); ":i+=" validate.errors = ["+B+"]; return false; ":i+=" var err = "+B+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",p=S,f&&(i+=" break; ")}else if(L)if(ve=="failing"){i+=" var "+h+" = errors;  ";var se=t.compositeRule;t.compositeRule=g.compositeRule=!0,g.schema=P,g.schemaPath=t.schemaPath+".additionalProperties",g.errSchemaPath=t.errSchemaPath+"/additionalProperties",g.errorPath=t.opts._errorDataPathProperty?t.errorPath:t.util.getPathExpr(t.errorPath,_,t.opts.jsonPointers);var ae=d+"["+_+"]";g.dataPathArr[A]=_;var me=t.validate(g);g.baseId=re,t.util.varOccurences(me,D)<2?i+=" "+t.util.varReplace(me,D,ae)+" ":i+=" var "+D+" = "+ae+"; "+me+" ",i+=" if (!"+y+") { errors = "+h+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+d+"["+_+"]; }  ",t.compositeRule=g.compositeRule=se}else{g.schema=P,g.schemaPath=t.schemaPath+".additionalProperties",g.errSchemaPath=t.errSchemaPath+"/additionalProperties",g.errorPath=t.opts._errorDataPathProperty?t.errorPath:t.util.getPathExpr(t.errorPath,_,t.opts.jsonPointers);var ae=d+"["+_+"]";g.dataPathArr[A]=_;var me=t.validate(g);g.baseId=re,t.util.varOccurences(me,D)<2?i+=" "+t.util.varReplace(me,D,ae)+" ":i+=" var "+D+" = "+ae+"; "+me+" ",f&&(i+=" if (!"+y+") break; ")}t.errorPath=$}M&&(i+=" } "),i+=" }  ",f&&(i+=" if ("+y+") { ",v+="}")}var Se=t.opts.useDefaults&&!t.compositeRule;if(H.length){var Ee=H;if(Ee)for(var de,De=-1,Le=Ee.length-1;De<Le;){de=Ee[De+=1];var Ne=o[de];if(t.opts.strictKeywords?typeof Ne=="object"&&Object.keys(Ne).length>0||Ne===!1:t.util.schemaHasRules(Ne,t.RULES.all)){var Ve=t.util.getProperty(de),ae=d+Ve,kt=Se&&Ne.default!==void 0;g.schema=Ne,g.schemaPath=c+Ve,g.errSchemaPath=p+"/"+t.util.escapeFragment(de),g.errorPath=t.util.getPath(t.errorPath,de,t.opts.jsonPointers),g.dataPathArr[A]=t.util.toQuotedString(de);var me=t.validate(g);if(g.baseId=re,t.util.varOccurences(me,D)<2){me=t.util.varReplace(me,D,ae);var Ft=ae}else{var Ft=D;i+=" var "+D+" = "+ae+"; "}if(kt)i+=" "+me+" ";else{if(Q&&Q[de]){i+=" if ( "+Ft+" === undefined ",N&&(i+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+t.util.escapeQuotes(de)+"') "),i+=") { "+y+" = false; ";var $=t.errorPath,S=p,rr=t.util.escapeQuotes(de);t.opts._errorDataPathProperty&&(t.errorPath=t.util.getPath($,de,t.opts.jsonPointers)),p=t.errSchemaPath+"/required";var I=I||[];I.push(i),i="",t.createErrors!==!1?(i+=" { keyword: 'required' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { missingProperty: '"+rr+"' } ",t.opts.messages!==!1&&(i+=" , message: '",t.opts._errorDataPathProperty?i+="is a required property":i+="should have required property \\'"+rr+"\\'",i+="' "),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var B=i;i=I.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+B+"]); ":i+=" validate.errors = ["+B+"]; return false; ":i+=" var err = "+B+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",p=S,t.errorPath=$,i+=" } else { "}else f?(i+=" if ( "+Ft+" === undefined ",N&&(i+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+t.util.escapeQuotes(de)+"') "),i+=") { "+y+" = true; } else { "):(i+=" if ("+Ft+" !== undefined ",N&&(i+=" &&   Object.prototype.hasOwnProperty.call("+d+", '"+t.util.escapeQuotes(de)+"') "),i+=" ) { ");i+=" "+me+" } "}}f&&(i+=" if ("+y+") { ",v+="}")}}if(z.length){var Or=z;if(Or)for(var ce,kr=-1,dr=Or.length-1;kr<dr;){ce=Or[kr+=1];var Ne=F[ce];if(t.opts.strictKeywords?typeof Ne=="object"&&Object.keys(Ne).length>0||Ne===!1:t.util.schemaHasRules(Ne,t.RULES.all)){g.schema=Ne,g.schemaPath=t.schemaPath+".patternProperties"+t.util.getProperty(ce),g.errSchemaPath=t.errSchemaPath+"/patternProperties/"+t.util.escapeFragment(ce),N?i+=" "+j+" = "+j+" || Object.keys("+d+"); for (var "+x+"=0; "+x+"<"+j+".length; "+x+"++) { var "+_+" = "+j+"["+x+"]; ":i+=" for (var "+_+" in "+d+") { ",i+=" if ("+t.usePattern(ce)+".test("+_+")) { ",g.errorPath=t.util.getPathExpr(t.errorPath,_,t.opts.jsonPointers);var ae=d+"["+_+"]";g.dataPathArr[A]=_;var me=t.validate(g);g.baseId=re,t.util.varOccurences(me,D)<2?i+=" "+t.util.varReplace(me,D,ae)+" ":i+=" var "+D+" = "+ae+"; "+me+" ",f&&(i+=" if (!"+y+") break; "),i+=" } ",f&&(i+=" else "+y+" = true; "),i+=" }  ",f&&(i+=" if ("+y+") { ",v+="}")}}}return f&&(i+=" "+v+" if ("+h+" == errors) {"),i}});var q$e=b((oKr,N$e)=>{"use strict";N$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,d="data"+(s||""),h="errs__"+a,g=t.util.copy(t),v="";g.level++;var y="valid"+g.level;if(i+="var "+h+" = errors;",t.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:t.util.schemaHasRules(o,t.RULES.all)){g.schema=o,g.schemaPath=c,g.errSchemaPath=p;var _="key"+a,x="idx"+a,A="i"+a,D="' + "+_+" + '",j=g.dataLevel=t.dataLevel+1,H="data"+j,F="dataProperties"+a,z=t.opts.ownProperties,P=t.baseId;z&&(i+=" var "+F+" = undefined; "),z?i+=" "+F+" = "+F+" || Object.keys("+d+"); for (var "+x+"=0; "+x+"<"+F+".length; "+x+"++) { var "+_+" = "+F+"["+x+"]; ":i+=" for (var "+_+" in "+d+") { ",i+=" var startErrs"+a+" = errors; ";var M=_,K=t.compositeRule;t.compositeRule=g.compositeRule=!0;var L=t.validate(g);g.baseId=P,t.util.varOccurences(L,H)<2?i+=" "+t.util.varReplace(L,H,M)+" ":i+=" var "+H+" = "+M+"; "+L+" ",t.compositeRule=g.compositeRule=K,i+=" if (!"+y+") { for (var "+A+"=startErrs"+a+"; "+A+"<errors; "+A+"++) { vErrors["+A+"].propertyName = "+_+"; }   var err =   ",t.createErrors!==!1?(i+=" { keyword: 'propertyNames' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { propertyName: '"+D+"' } ",t.opts.messages!==!1&&(i+=" , message: 'property name \\'"+D+"\\' is invalid' "),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ",i+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!t.compositeRule&&f&&(t.async?i+=" throw new ValidationError(vErrors); ":i+=" validate.errors = vErrors; return false; "),f&&(i+=" break; "),i+=" } }"}return f&&(i+=" "+v+" if ("+h+" == errors) {"),i}});var $$e=b((uKr,L$e)=>{"use strict";L$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,d="data"+(s||""),h="valid"+a,g=t.opts.$data&&o&&o.$data,v;g?(i+=" var schema"+a+" = "+t.util.getData(o.$data,s,t.dataPathArr)+"; ",v="schema"+a):v=o;var y="schema"+a;if(!g)if(o.length<t.opts.loopRequired&&t.schema.properties&&Object.keys(t.schema.properties).length){var _=[],x=o;if(x)for(var A,D=-1,j=x.length-1;D<j;){A=x[D+=1];var H=t.schema.properties[A];H&&(t.opts.strictKeywords?typeof H=="object"&&Object.keys(H).length>0||H===!1:t.util.schemaHasRules(H,t.RULES.all))||(_[_.length]=A)}}else var _=o;if(g||_.length){var F=t.errorPath,z=g||_.length>=t.opts.loopRequired,P=t.opts.ownProperties;if(f)if(i+=" var missing"+a+"; ",z){g||(i+=" var "+y+" = validate.schema"+c+"; ");var M="i"+a,K="schema"+a+"["+M+"]",L="' + "+K+" + '";t.opts._errorDataPathProperty&&(t.errorPath=t.util.getPathExpr(F,K,t.opts.jsonPointers)),i+=" var "+h+" = true; ",g&&(i+=" if (schema"+a+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+a+")) "+h+" = false; else {"),i+=" for (var "+M+" = 0; "+M+" < "+y+".length; "+M+"++) { "+h+" = "+d+"["+y+"["+M+"]] !== undefined ",P&&(i+=" &&   Object.prototype.hasOwnProperty.call("+d+", "+y+"["+M+"]) "),i+="; if (!"+h+") break; } ",g&&(i+="  }  "),i+="  if (!"+h+") {   ";var ve=ve||[];ve.push(i),i="",t.createErrors!==!1?(i+=" { keyword: 'required' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { missingProperty: '"+L+"' } ",t.opts.messages!==!1&&(i+=" , message: '",t.opts._errorDataPathProperty?i+="is a required property":i+="should have required property \\'"+L+"\\'",i+="' "),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var U=i;i=ve.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+U+"]); ":i+=" validate.errors = ["+U+"]; return false; ":i+=" var err = "+U+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } else { "}else{i+=" if ( ";var N=_;if(N)for(var re,M=-1,ue=N.length-1;M<ue;){re=N[M+=1],M&&(i+=" || ");var Q=t.util.getProperty(re),ne=d+Q;i+=" ( ( "+ne+" === undefined ",P&&(i+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+t.util.escapeQuotes(re)+"') "),i+=") && (missing"+a+" = "+t.util.toQuotedString(t.opts.jsonPointers?re:Q)+") ) "}i+=") {  ";var K="missing"+a,L="' + "+K+" + '";t.opts._errorDataPathProperty&&(t.errorPath=t.opts.jsonPointers?t.util.getPathExpr(F,K,!0):F+" + "+K);var ve=ve||[];ve.push(i),i="",t.createErrors!==!1?(i+=" { keyword: 'required' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { missingProperty: '"+L+"' } ",t.opts.messages!==!1&&(i+=" , message: '",t.opts._errorDataPathProperty?i+="is a required property":i+="should have required property \\'"+L+"\\'",i+="' "),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var U=i;i=ve.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+U+"]); ":i+=" validate.errors = ["+U+"]; return false; ":i+=" var err = "+U+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } else { "}else if(z){g||(i+=" var "+y+" = validate.schema"+c+"; ");var M="i"+a,K="schema"+a+"["+M+"]",L="' + "+K+" + '";t.opts._errorDataPathProperty&&(t.errorPath=t.util.getPathExpr(F,K,t.opts.jsonPointers)),g&&(i+=" if ("+y+" && !Array.isArray("+y+")) {  var err =   ",t.createErrors!==!1?(i+=" { keyword: 'required' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { missingProperty: '"+L+"' } ",t.opts.messages!==!1&&(i+=" , message: '",t.opts._errorDataPathProperty?i+="is a required property":i+="should have required property \\'"+L+"\\'",i+="' "),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ",i+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if ("+y+" !== undefined) { "),i+=" for (var "+M+" = 0; "+M+" < "+y+".length; "+M+"++) { if ("+d+"["+y+"["+M+"]] === undefined ",P&&(i+=" || ! Object.prototype.hasOwnProperty.call("+d+", "+y+"["+M+"]) "),i+=") {  var err =   ",t.createErrors!==!1?(i+=" { keyword: 'required' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { missingProperty: '"+L+"' } ",t.opts.messages!==!1&&(i+=" , message: '",t.opts._errorDataPathProperty?i+="is a required property":i+="should have required property \\'"+L+"\\'",i+="' "),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ",i+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",g&&(i+="  }  ")}else{var G=_;if(G)for(var re,de=-1,xe=G.length-1;de<xe;){re=G[de+=1];var Q=t.util.getProperty(re),L=t.util.escapeQuotes(re),ne=d+Q;t.opts._errorDataPathProperty&&(t.errorPath=t.util.getPath(F,re,t.opts.jsonPointers)),i+=" if ( "+ne+" === undefined ",P&&(i+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+t.util.escapeQuotes(re)+"') "),i+=") {  var err =   ",t.createErrors!==!1?(i+=" { keyword: 'required' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { missingProperty: '"+L+"' } ",t.opts.messages!==!1&&(i+=" , message: '",t.opts._errorDataPathProperty?i+="is a required property":i+="should have required property \\'"+L+"\\'",i+="' "),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ",i+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}t.errorPath=F}else f&&(i+=" if (true) {");return i}});var M$e=b((cKr,B$e)=>{"use strict";B$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,d="data"+(s||""),h="valid"+a,g=t.opts.$data&&o&&o.$data,v;if(g?(i+=" var schema"+a+" = "+t.util.getData(o.$data,s,t.dataPathArr)+"; ",v="schema"+a):v=o,(o||g)&&t.opts.uniqueItems!==!1){g&&(i+=" var "+h+"; if ("+v+" === false || "+v+" === undefined) "+h+" = true; else if (typeof "+v+" != 'boolean') "+h+" = false; else { "),i+=" var i = "+d+".length , "+h+" = true , j; if (i > 1) { ";var y=t.schema.items&&t.schema.items.type,_=Array.isArray(y);if(!y||y=="object"||y=="array"||_&&(y.indexOf("object")>=0||y.indexOf("array")>=0))i+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+d+"[i], "+d+"[j])) { "+h+" = false; break outer; } } } ";else{i+=" var itemIndices = {}, item; for (;i--;) { var item = "+d+"[i]; ";var x="checkDataType"+(_?"s":"");i+=" if ("+t.util[x](y,"item",t.opts.strictNumbers,!0)+") continue; ",_&&(i+=` if (typeof item == 'string') item = '"' + item; `),i+=" if (typeof itemIndices[item] == 'number') { "+h+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}i+=" } ",g&&(i+="  }  "),i+=" if (!"+h+") {   ";var A=A||[];A.push(i),i="",t.createErrors!==!1?(i+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { i: i, j: j } ",t.opts.messages!==!1&&(i+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),t.opts.verbose&&(i+=" , schema:  ",g?i+="validate.schema"+c:i+=""+o,i+="         , parentSchema: validate.schema"+t.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var D=i;i=A.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+D+"]); ":i+=" validate.errors = ["+D+"]; return false; ":i+=" var err = "+D+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",f&&(i+=" else { ")}else f&&(i+=" if (true) { ");return i}});var z$e=b((lKr,U$e)=>{"use strict";U$e.exports={$ref:t$e(),allOf:n$e(),anyOf:a$e(),$comment:o$e(),const:c$e(),contains:p$e(),dependencies:d$e(),enum:m$e(),format:v$e(),if:b$e(),items:_$e(),maximum:Yse(),minimum:Yse(),maxItems:Jse(),minItems:Jse(),maxLength:Xse(),minLength:Xse(),maxProperties:Qse(),minProperties:Qse(),multipleOf:T$e(),not:D$e(),oneOf:P$e(),pattern:R$e(),properties:j$e(),propertyNames:q$e(),required:$$e(),uniqueItems:M$e(),validate:Wse()}});var G$e=b((pKr,V$e)=>{"use strict";var H$e=z$e(),Zse=Vb().toHash;V$e.exports=function(){var t=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],r=["type","$comment"],n=["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"],i=["number","integer","string","array","object","boolean","null"];return t.all=Zse(r),t.types=Zse(i),t.forEach(function(a){a.rules=a.rules.map(function(s){var o;if(typeof s=="object"){var c=Object.keys(s)[0];o=s[c],s=c,o.forEach(function(f){r.push(f),t.all[f]=!0})}r.push(s);var p=t.all[s]={keyword:s,code:H$e[s],implements:o};return p}),t.all.$comment={keyword:"$comment",code:H$e.$comment},a.type&&(t.types[a.type]=a)}),t.keywords=Zse(r.concat(n)),t.custom={},t}});var Y$e=b((fKr,K$e)=>{"use strict";var W$e=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];K$e.exports=function(e,t){for(var r=0;r<t.length;r++){e=JSON.parse(JSON.stringify(e));var n=t[r].split("/"),i=e,a;for(a=1;a<n.length;a++)i=i[n[a]];for(a=0;a<W$e.length;a++){var s=W$e[a],o=i[s];o&&(i[s]={anyOf:[o,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]})}}return e}});var Q$e=b((dKr,X$e)=>{"use strict";var cZt=BF().MissingRef;X$e.exports=J$e;function J$e(e,t,r){var n=this;if(typeof this._opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");typeof t=="function"&&(r=t,t=void 0);var i=a(e).then(function(){var o=n._addSchema(e,void 0,t);return o.validate||s(o)});return r&&i.then(function(o){r(null,o)},r),i;function a(o){var c=o.$schema;return c&&!n.getSchema(c)?J$e.call(n,{$ref:c},!0):Promise.resolve()}function s(o){try{return n._compile(o)}catch(p){if(p instanceof cZt)return c(p);throw p}function c(p){var f=p.missingSchema;if(g(f))throw new Error("Schema "+f+" is loaded but "+p.missingRef+" cannot be resolved");var d=n._loadingSchemas[f];return d||(d=n._loadingSchemas[f]=n._opts.loadSchema(f),d.then(h,h)),d.then(function(v){if(!g(f))return a(v).then(function(){g(f)||n.addSchema(v,f,void 0,t)})}).then(function(){return s(o)});function h(){delete n._loadingSchemas[f]}function g(v){return n._refs[v]||n._schemas[v]}}}}});var eBe=b((hKr,Z$e)=>{"use strict";Z$e.exports=function(t,r,n){var i=" ",a=t.level,s=t.dataLevel,o=t.schema[r],c=t.schemaPath+t.util.getProperty(r),p=t.errSchemaPath+"/"+r,f=!t.opts.allErrors,d,h="data"+(s||""),g="valid"+a,v="errs__"+a,y=t.opts.$data&&o&&o.$data,_;y?(i+=" var schema"+a+" = "+t.util.getData(o.$data,s,t.dataPathArr)+"; ",_="schema"+a):_=o;var x=this,A="definition"+a,D=x.definition,j="",H,F,z,P,M;if(y&&D.$data){M="keywordValidate"+a;var K=D.validateSchema;i+=" var "+A+" = RULES.custom['"+r+"'].definition; var "+M+" = "+A+".validate;"}else{if(P=t.useCustomRule(x,o,t.schema,t),!P)return;_="validate.schema"+c,M=P.code,H=D.compile,F=D.inline,z=D.macro}var L=M+".errors",ve="i"+a,U="ruleErr"+a,N=D.async;if(N&&!t.async)throw new Error("async keyword in sync schema");if(F||z||(i+=""+L+" = null;"),i+="var "+v+" = errors;var "+g+";",y&&D.$data&&(j+="}",i+=" if ("+_+" === undefined) { "+g+" = true; } else { ",K&&(j+="}",i+=" "+g+" = "+A+".validateSchema("+_+"); if ("+g+") { ")),F)D.statements?i+=" "+P.validate+" ":i+=" "+g+" = "+P.validate+"; ";else if(z){var re=t.util.copy(t),j="";re.level++;var ue="valid"+re.level;re.schema=P.validate,re.schemaPath="";var Q=t.compositeRule;t.compositeRule=re.compositeRule=!0;var ne=t.validate(re).replace(/validate\.schema/g,M);t.compositeRule=re.compositeRule=Q,i+=" "+ne}else{var G=G||[];G.push(i),i="",i+="  "+M+".call( ",t.opts.passContext?i+="this":i+="self",H||D.schema===!1?i+=" , "+h+" ":i+=" , "+_+" , "+h+" , validate.schema"+t.schemaPath+" ",i+=" , (dataPath || '')",t.errorPath!='""'&&(i+=" + "+t.errorPath);var de=s?"data"+(s-1||""):"parentData",xe=s?t.dataPathArr[s]:"parentDataProperty";i+=" , "+de+" , "+xe+" , rootData )  ";var ge=i;i=G.pop(),D.errors===!1?(i+=" "+g+" = ",N&&(i+="await "),i+=""+ge+"; "):N?(L="customErrors"+a,i+=" var "+L+" = null; try { "+g+" = await "+ge+"; } catch (e) { "+g+" = false; if (e instanceof ValidationError) "+L+" = e.errors; else throw e; } "):i+=" "+L+" = null; "+g+" = "+ge+"; "}if(D.modifying&&(i+=" if ("+de+") "+h+" = "+de+"["+xe+"];"),i+=""+j,D.valid)f&&(i+=" if (true) { ");else{i+=" if ( ",D.valid===void 0?(i+=" !",z?i+=""+ue:i+=""+g):i+=" "+!D.valid+" ",i+=") { ",d=x.keyword;var G=G||[];G.push(i),i="";var G=G||[];G.push(i),i="",t.createErrors!==!1?(i+=" { keyword: '"+(d||"custom")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { keyword: '"+x.keyword+"' } ",t.opts.messages!==!1&&(i+=` , message: 'should pass "`+x.keyword+`" keyword validation' `),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+h+" "),i+=" } "):i+=" {} ";var V=i;i=G.pop(),!t.compositeRule&&f?t.async?i+=" throw new ValidationError(["+V+"]); ":i+=" validate.errors = ["+V+"]; return false; ":i+=" var err = "+V+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var ce=i;i=G.pop(),F?D.errors?D.errors!="full"&&(i+="  for (var "+ve+"="+v+"; "+ve+"<errors; "+ve+"++) { var "+U+" = vErrors["+ve+"]; if ("+U+".dataPath === undefined) "+U+".dataPath = (dataPath || '') + "+t.errorPath+"; if ("+U+".schemaPath === undefined) { "+U+'.schemaPath = "'+p+'"; } ',t.opts.verbose&&(i+=" "+U+".schema = "+_+"; "+U+".data = "+h+"; "),i+=" } "):D.errors===!1?i+=" "+ce+" ":(i+=" if ("+v+" == errors) { "+ce+" } else {  for (var "+ve+"="+v+"; "+ve+"<errors; "+ve+"++) { var "+U+" = vErrors["+ve+"]; if ("+U+".dataPath === undefined) "+U+".dataPath = (dataPath || '') + "+t.errorPath+"; if ("+U+".schemaPath === undefined) { "+U+'.schemaPath = "'+p+'"; } ',t.opts.verbose&&(i+=" "+U+".schema = "+_+"; "+U+".data = "+h+"; "),i+=" } } "):z?(i+="   var err =   ",t.createErrors!==!1?(i+=" { keyword: '"+(d||"custom")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { keyword: '"+x.keyword+"' } ",t.opts.messages!==!1&&(i+=` , message: 'should pass "`+x.keyword+`" keyword validation' `),t.opts.verbose&&(i+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+h+" "),i+=" } "):i+=" {} ",i+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!t.compositeRule&&f&&(t.async?i+=" throw new ValidationError(vErrors); ":i+=" validate.errors = vErrors; return false; ")):D.errors===!1?i+=" "+ce+" ":(i+=" if (Array.isArray("+L+")) { if (vErrors === null) vErrors = "+L+"; else vErrors = vErrors.concat("+L+"); errors = vErrors.length;  for (var "+ve+"="+v+"; "+ve+"<errors; "+ve+"++) { var "+U+" = vErrors["+ve+"]; if ("+U+".dataPath === undefined) "+U+".dataPath = (dataPath || '') + "+t.errorPath+";  "+U+'.schemaPath = "'+p+'";  ',t.opts.verbose&&(i+=" "+U+".schema = "+_+"; "+U+".data = "+h+"; "),i+=" } } else { "+ce+" } "),i+=" } ",f&&(i+=" else { ")}return i}});var eoe=b((mKr,lZt)=>{lZt.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var nBe=b((gKr,rBe)=>{"use strict";var tBe=eoe();rBe.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:tBe.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:tBe.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}});var aBe=b((vKr,iBe)=>{"use strict";var pZt=/^[a-z_$][a-z0-9_$-]*$/i,fZt=eBe(),dZt=nBe();iBe.exports={add:hZt,get:mZt,remove:gZt,validate:toe};function hZt(e,t){var r=this.RULES;if(r.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!pZt.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(t){this.validateKeyword(t,!0);var n=t.type;if(Array.isArray(n))for(var i=0;i<n.length;i++)s(e,n[i],t);else s(e,n,t);var a=t.metaSchema;a&&(t.$data&&this._opts.$data&&(a={anyOf:[a,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]}),t.validateSchema=this.compile(a,!0))}r.keywords[e]=r.all[e]=!0;function s(o,c,p){for(var f,d=0;d<r.length;d++){var h=r[d];if(h.type==c){f=h;break}}f||(f={type:c,rules:[]},r.push(f));var g={keyword:o,definition:p,custom:!0,code:fZt,implements:p.implements};f.rules.push(g),r.custom[o]=g}return this}function mZt(e){var t=this.RULES.custom[e];return t?t.definition:this.RULES.keywords[e]||!1}function gZt(e){var t=this.RULES;delete t.keywords[e],delete t.all[e],delete t.custom[e];for(var r=0;r<t.length;r++)for(var n=t[r].rules,i=0;i<n.length;i++)if(n[i].keyword==e){n.splice(i,1);break}return this}function toe(e,t){toe.errors=null;var r=this._validateKeyword=this._validateKeyword||this.compile(dZt,!0);if(r(e))return!0;if(toe.errors=r.errors,t)throw new Error("custom keyword definition is invalid: "+this.errorsText(r.errors));return!1}});var sBe=b((yKr,vZt)=>{vZt.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var noe=b((bKr,mBe)=>{"use strict";var uBe=$Le(),Gb=$F(),yZt=MLe(),cBe=Bse(),bZt=Gse(),wZt=ZLe(),_Zt=G$e(),lBe=Y$e(),pBe=Vb();mBe.exports=Ua;Ua.prototype.validate=EZt;Ua.prototype.compile=SZt;Ua.prototype.addSchema=kZt;Ua.prototype.addMetaSchema=AZt;Ua.prototype.validateSchema=TZt;Ua.prototype.getSchema=DZt;Ua.prototype.removeSchema=PZt;Ua.prototype.addFormat=$Zt;Ua.prototype.errorsText=LZt;Ua.prototype._addSchema=IZt;Ua.prototype._compile=RZt;Ua.prototype.compileAsync=Q$e();var KF=aBe();Ua.prototype.addKeyword=KF.add;Ua.prototype.getKeyword=KF.get;Ua.prototype.removeKeyword=KF.remove;Ua.prototype.validateKeyword=KF.validate;var fBe=BF();Ua.ValidationError=fBe.Validation;Ua.MissingRefError=fBe.MissingRef;Ua.$dataMetaSchema=lBe;var WF="http://json-schema.org/draft-07/schema",oBe=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],xZt=["/properties"];function Ua(e){if(!(this instanceof Ua))return new Ua(e);e=this._opts=pBe.copy(e)||{},VZt(this),this._schemas={},this._refs={},this._fragments={},this._formats=wZt(e.format),this._cache=e.cache||new yZt,this._loadingSchemas={},this._compilations=[],this.RULES=_Zt(),this._getId=FZt(e),e.loopRequired=e.loopRequired||1/0,e.errorDataPath=="property"&&(e._errorDataPathProperty=!0),e.serialize===void 0&&(e.serialize=bZt),this._metaOpts=HZt(this),e.formats&&UZt(this),e.keywords&&zZt(this),BZt(this),typeof e.meta=="object"&&this.addMetaSchema(e.meta),e.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),MZt(this)}function EZt(e,t){var r;if(typeof e=="string"){if(r=this.getSchema(e),!r)throw new Error('no schema with key or ref "'+e+'"')}else{var n=this._addSchema(e);r=n.validate||this._compile(n)}var i=r(t);return r.$async!==!0&&(this.errors=r.errors),i}function SZt(e,t){var r=this._addSchema(e,void 0,t);return r.validate||this._compile(r)}function kZt(e,t,r,n){if(Array.isArray(e)){for(var i=0;i<e.length;i++)this.addSchema(e[i],void 0,r,n);return this}var a=this._getId(e);if(a!==void 0&&typeof a!="string")throw new Error("schema id must be string");return t=Gb.normalizeId(t||a),hBe(this,t),this._schemas[t]=this._addSchema(e,r,n,!0),this}function AZt(e,t,r){return this.addSchema(e,t,r,!0),this}function TZt(e,t){var r=e.$schema;if(r!==void 0&&typeof r!="string")throw new Error("$schema must be a string");if(r=r||this._opts.defaultMeta||OZt(this),!r)return this.logger.warn("meta-schema not available"),this.errors=null,!0;var n=this.validate(r,e);if(!n&&t){var i="schema is invalid: "+this.errorsText();if(this._opts.validateSchema=="log")this.logger.error(i);else throw new Error(i)}return n}function OZt(e){var t=e._opts.meta;return e._opts.defaultMeta=typeof t=="object"?e._getId(t)||t:e.getSchema(WF)?WF:void 0,e._opts.defaultMeta}function DZt(e){var t=dBe(this,e);switch(typeof t){case"object":return t.validate||this._compile(t);case"string":return this.getSchema(t);case"undefined":return CZt(this,e)}}function CZt(e,t){var r=Gb.schema.call(e,{schema:{}},t);if(r){var n=r.schema,i=r.root,a=r.baseId,s=uBe.call(e,n,i,void 0,a);return e._fragments[t]=new cBe({ref:t,fragment:!0,schema:n,root:i,baseId:a,validate:s}),s}}function dBe(e,t){return t=Gb.normalizeId(t),e._schemas[t]||e._refs[t]||e._fragments[t]}function PZt(e){if(e instanceof RegExp)return GF(this,this._schemas,e),GF(this,this._refs,e),this;switch(typeof e){case"undefined":return GF(this,this._schemas),GF(this,this._refs),this._cache.clear(),this;case"string":var t=dBe(this,e);return t&&this._cache.del(t.cacheKey),delete this._schemas[e],delete this._refs[e],this;case"object":var r=this._opts.serialize,n=r?r(e):e;this._cache.del(n);var i=this._getId(e);i&&(i=Gb.normalizeId(i),delete this._schemas[i],delete this._refs[i])}return this}function GF(e,t,r){for(var n in t){var i=t[n];!i.meta&&(!r||r.test(n))&&(e._cache.del(i.cacheKey),delete t[n])}}function IZt(e,t,r,n){if(typeof e!="object"&&typeof e!="boolean")throw new Error("schema should be object or boolean");var i=this._opts.serialize,a=i?i(e):e,s=this._cache.get(a);if(s)return s;n=n||this._opts.addUsedSchema!==!1;var o=Gb.normalizeId(this._getId(e));o&&n&&hBe(this,o);var c=this._opts.validateSchema!==!1&&!t,p;c&&!(p=o&&o==Gb.normalizeId(e.$schema))&&this.validateSchema(e,!0);var f=Gb.ids.call(this,e),d=new cBe({id:o,schema:e,localRefs:f,cacheKey:a,meta:r});return o[0]!="#"&&n&&(this._refs[o]=d),this._cache.put(a,d),c&&p&&this.validateSchema(e,!0),d}function RZt(e,t){if(e.compiling)return e.validate=i,i.schema=e.schema,i.errors=null,i.root=t||i,e.schema.$async===!0&&(i.$async=!0),i;e.compiling=!0;var r;e.meta&&(r=this._opts,this._opts=this._metaOpts);var n;try{n=uBe.call(this,e.schema,t,e.localRefs)}catch(a){throw delete e.validate,a}finally{e.compiling=!1,e.meta&&(this._opts=r)}return e.validate=n,e.refs=n.refs,e.refVal=n.refVal,e.root=n.root,n;function i(){var a=e.validate,s=a.apply(this,arguments);return i.errors=a.errors,s}}function FZt(e){switch(e.schemaId){case"auto":return qZt;case"id":return jZt;default:return NZt}}function jZt(e){return e.$id&&this.logger.warn("schema $id ignored",e.$id),e.id}function NZt(e){return e.id&&this.logger.warn("schema id ignored",e.id),e.$id}function qZt(e){if(e.$id&&e.id&&e.$id!=e.id)throw new Error("schema $id is different from id");return e.$id||e.id}function LZt(e,t){if(e=e||this.errors,!e)return"No errors";t=t||{};for(var r=t.separator===void 0?", ":t.separator,n=t.dataVar===void 0?"data":t.dataVar,i="",a=0;a<e.length;a++){var s=e[a];s&&(i+=n+s.dataPath+" "+s.message+r)}return i.slice(0,-r.length)}function $Zt(e,t){return typeof t=="string"&&(t=new RegExp(t)),this._formats[e]=t,this}function BZt(e){var t;if(e._opts.$data&&(t=sBe(),e.addMetaSchema(t,t.$id,!0)),e._opts.meta!==!1){var r=eoe();e._opts.$data&&(r=lBe(r,xZt)),e.addMetaSchema(r,WF,!0),e._refs["http://json-schema.org/schema"]=WF}}function MZt(e){var t=e._opts.schemas;if(t)if(Array.isArray(t))e.addSchema(t);else for(var r in t)e.addSchema(t[r],r)}function UZt(e){for(var t in e._opts.formats){var r=e._opts.formats[t];e.addFormat(t,r)}}function zZt(e){for(var t in e._opts.keywords){var r=e._opts.keywords[t];e.addKeyword(t,r)}}function hBe(e,t){if(e._schemas[t]||e._refs[t])throw new Error('schema with key or id "'+t+'" already exists')}function HZt(e){for(var t=pBe.copy(e._opts),r=0;r<oBe.length;r++)delete t[oBe[r]];return t}function VZt(e){var t=e._opts.logger;if(t===!1)e.logger={log:roe,warn:roe,error:roe};else{if(t===void 0&&(t=console),!(typeof t=="object"&&t.log&&t.warn&&t.error))throw new Error("logger must implement log, warn and error methods");e.logger=t}}function roe(){}});var vBe=b((wKr,gBe)=>{"use strict";var GZt=$ee();gBe.exports=(e,t={})=>{if(typeof e!="function")throw new TypeError(`Expected the first argument to be a function, got \`${typeof e}\``);let r,n,i=function(...a){let s=this,o=()=>{r=null,t.immediate||(n=e.apply(s,a))},c=t.immediate&&!r;return clearTimeout(r),r=setTimeout(o,t.wait||0),c&&(n=e.apply(s,a)),n};return GZt(i,e),i.cancel=()=>{r&&(clearTimeout(r),r=null)},i}});var EBe=b((Br,xBe)=>{Br=xBe.exports=an;var si;typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?si=function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e)}:si=function(){};Br.SEMVER_SPEC_VERSION="2.0.0";var W7=256,YF=Number.MAX_SAFE_INTEGER||9007199254740991,ioe=16,WZt=W7-6,S4=Br.re=[],ai=Br.safeRe=[],mt=Br.src=[],rt=Br.tokens={},wBe=0;function fn(e){rt[e]=wBe++}var soe="[a-zA-Z0-9-]",aoe=[["\\s",1],["\\d",W7],[soe,WZt]];function Y7(e){for(var t=0;t<aoe.length;t++){var r=aoe[t][0],n=aoe[t][1];e=e.split(r+"*").join(r+"{0,"+n+"}").split(r+"+").join(r+"{1,"+n+"}")}return e}fn("NUMERICIDENTIFIER");mt[rt.NUMERICIDENTIFIER]="0|[1-9]\\d*";fn("NUMERICIDENTIFIERLOOSE");mt[rt.NUMERICIDENTIFIERLOOSE]="\\d+";fn("NONNUMERICIDENTIFIER");mt[rt.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+soe+"*";fn("MAINVERSION");mt[rt.MAINVERSION]="("+mt[rt.NUMERICIDENTIFIER]+")\\.("+mt[rt.NUMERICIDENTIFIER]+")\\.("+mt[rt.NUMERICIDENTIFIER]+")";fn("MAINVERSIONLOOSE");mt[rt.MAINVERSIONLOOSE]="("+mt[rt.NUMERICIDENTIFIERLOOSE]+")\\.("+mt[rt.NUMERICIDENTIFIERLOOSE]+")\\.("+mt[rt.NUMERICIDENTIFIERLOOSE]+")";fn("PRERELEASEIDENTIFIER");mt[rt.PRERELEASEIDENTIFIER]="(?:"+mt[rt.NUMERICIDENTIFIER]+"|"+mt[rt.NONNUMERICIDENTIFIER]+")";fn("PRERELEASEIDENTIFIERLOOSE");mt[rt.PRERELEASEIDENTIFIERLOOSE]="(?:"+mt[rt.NUMERICIDENTIFIERLOOSE]+"|"+mt[rt.NONNUMERICIDENTIFIER]+")";fn("PRERELEASE");mt[rt.PRERELEASE]="(?:-("+mt[rt.PRERELEASEIDENTIFIER]+"(?:\\."+mt[rt.PRERELEASEIDENTIFIER]+")*))";fn("PRERELEASELOOSE");mt[rt.PRERELEASELOOSE]="(?:-?("+mt[rt.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+mt[rt.PRERELEASEIDENTIFIERLOOSE]+")*))";fn("BUILDIDENTIFIER");mt[rt.BUILDIDENTIFIER]=soe+"+";fn("BUILD");mt[rt.BUILD]="(?:\\+("+mt[rt.BUILDIDENTIFIER]+"(?:\\."+mt[rt.BUILDIDENTIFIER]+")*))";fn("FULL");fn("FULLPLAIN");mt[rt.FULLPLAIN]="v?"+mt[rt.MAINVERSION]+mt[rt.PRERELEASE]+"?"+mt[rt.BUILD]+"?";mt[rt.FULL]="^"+mt[rt.FULLPLAIN]+"$";fn("LOOSEPLAIN");mt[rt.LOOSEPLAIN]="[v=\\s]*"+mt[rt.MAINVERSIONLOOSE]+mt[rt.PRERELEASELOOSE]+"?"+mt[rt.BUILD]+"?";fn("LOOSE");mt[rt.LOOSE]="^"+mt[rt.LOOSEPLAIN]+"$";fn("GTLT");mt[rt.GTLT]="((?:<|>)?=?)";fn("XRANGEIDENTIFIERLOOSE");mt[rt.XRANGEIDENTIFIERLOOSE]=mt[rt.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*";fn("XRANGEIDENTIFIER");mt[rt.XRANGEIDENTIFIER]=mt[rt.NUMERICIDENTIFIER]+"|x|X|\\*";fn("XRANGEPLAIN");mt[rt.XRANGEPLAIN]="[v=\\s]*("+mt[rt.XRANGEIDENTIFIER]+")(?:\\.("+mt[rt.XRANGEIDENTIFIER]+")(?:\\.("+mt[rt.XRANGEIDENTIFIER]+")(?:"+mt[rt.PRERELEASE]+")?"+mt[rt.BUILD]+"?)?)?";fn("XRANGEPLAINLOOSE");mt[rt.XRANGEPLAINLOOSE]="[v=\\s]*("+mt[rt.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+mt[rt.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+mt[rt.XRANGEIDENTIFIERLOOSE]+")(?:"+mt[rt.PRERELEASELOOSE]+")?"+mt[rt.BUILD]+"?)?)?";fn("XRANGE");mt[rt.XRANGE]="^"+mt[rt.GTLT]+"\\s*"+mt[rt.XRANGEPLAIN]+"$";fn("XRANGELOOSE");mt[rt.XRANGELOOSE]="^"+mt[rt.GTLT]+"\\s*"+mt[rt.XRANGEPLAINLOOSE]+"$";fn("COERCE");mt[rt.COERCE]="(^|[^\\d])(\\d{1,"+ioe+"})(?:\\.(\\d{1,"+ioe+"}))?(?:\\.(\\d{1,"+ioe+"}))?(?:$|[^\\d])";fn("COERCERTL");S4[rt.COERCERTL]=new RegExp(mt[rt.COERCE],"g");ai[rt.COERCERTL]=new RegExp(Y7(mt[rt.COERCE]),"g");fn("LONETILDE");mt[rt.LONETILDE]="(?:~>?)";fn("TILDETRIM");mt[rt.TILDETRIM]="(\\s*)"+mt[rt.LONETILDE]+"\\s+";S4[rt.TILDETRIM]=new RegExp(mt[rt.TILDETRIM],"g");ai[rt.TILDETRIM]=new RegExp(Y7(mt[rt.TILDETRIM]),"g");var KZt="$1~";fn("TILDE");mt[rt.TILDE]="^"+mt[rt.LONETILDE]+mt[rt.XRANGEPLAIN]+"$";fn("TILDELOOSE");mt[rt.TILDELOOSE]="^"+mt[rt.LONETILDE]+mt[rt.XRANGEPLAINLOOSE]+"$";fn("LONECARET");mt[rt.LONECARET]="(?:\\^)";fn("CARETTRIM");mt[rt.CARETTRIM]="(\\s*)"+mt[rt.LONECARET]+"\\s+";S4[rt.CARETTRIM]=new RegExp(mt[rt.CARETTRIM],"g");ai[rt.CARETTRIM]=new RegExp(Y7(mt[rt.CARETTRIM]),"g");var YZt="$1^";fn("CARET");mt[rt.CARET]="^"+mt[rt.LONECARET]+mt[rt.XRANGEPLAIN]+"$";fn("CARETLOOSE");mt[rt.CARETLOOSE]="^"+mt[rt.LONECARET]+mt[rt.XRANGEPLAINLOOSE]+"$";fn("COMPARATORLOOSE");mt[rt.COMPARATORLOOSE]="^"+mt[rt.GTLT]+"\\s*("+mt[rt.LOOSEPLAIN]+")$|^$";fn("COMPARATOR");mt[rt.COMPARATOR]="^"+mt[rt.GTLT]+"\\s*("+mt[rt.FULLPLAIN]+")$|^$";fn("COMPARATORTRIM");mt[rt.COMPARATORTRIM]="(\\s*)"+mt[rt.GTLT]+"\\s*("+mt[rt.LOOSEPLAIN]+"|"+mt[rt.XRANGEPLAIN]+")";S4[rt.COMPARATORTRIM]=new RegExp(mt[rt.COMPARATORTRIM],"g");ai[rt.COMPARATORTRIM]=new RegExp(Y7(mt[rt.COMPARATORTRIM]),"g");var JZt="$1$2$3";fn("HYPHENRANGE");mt[rt.HYPHENRANGE]="^\\s*("+mt[rt.XRANGEPLAIN]+")\\s+-\\s+("+mt[rt.XRANGEPLAIN]+")\\s*$";fn("HYPHENRANGELOOSE");mt[rt.HYPHENRANGELOOSE]="^\\s*("+mt[rt.XRANGEPLAINLOOSE]+")\\s+-\\s+("+mt[rt.XRANGEPLAINLOOSE]+")\\s*$";fn("STAR");mt[rt.STAR]="(<|>)?=?\\s*\\*";for(Ud=0;Ud<wBe;Ud++)si(Ud,mt[Ud]),S4[Ud]||(S4[Ud]=new RegExp(mt[Ud]),ai[Ud]=new RegExp(Y7(mt[Ud])));var Ud;Br.parse=Kb;function Kb(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof an)return e;if(typeof e!="string"||e.length>W7)return null;var r=t.loose?ai[rt.LOOSE]:ai[rt.FULL];if(!r.test(e))return null;try{return new an(e,t)}catch{return null}}Br.valid=XZt;function XZt(e,t){var r=Kb(e,t);return r?r.version:null}Br.clean=QZt;function QZt(e,t){var r=Kb(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null}Br.SemVer=an;function an(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof an){if(e.loose===t.loose)return e;e=e.version}else if(typeof e!="string")throw new TypeError("Invalid Version: "+e);if(e.length>W7)throw new TypeError("version is longer than "+W7+" characters");if(!(this instanceof an))return new an(e,t);si("SemVer",e,t),this.options=t,this.loose=!!t.loose;var r=e.trim().match(t.loose?ai[rt.LOOSE]:ai[rt.FULL]);if(!r)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>YF||this.major<0)throw new TypeError("Invalid major version");if(this.minor>YF||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>YF||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(function(n){if(/^[0-9]+$/.test(n)){var i=+n;if(i>=0&&i<YF)return i}return n}):this.prerelease=[],this.build=r[5]?r[5].split("."):[],this.format()}an.prototype.format=function(){return this.version=this.major+"."+this.minor+"."+this.patch,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version};an.prototype.toString=function(){return this.version};an.prototype.compare=function(e){return si("SemVer.compare",this.version,this.options,e),e instanceof an||(e=new an(e,this.options)),this.compareMain(e)||this.comparePre(e)};an.prototype.compareMain=function(e){return e instanceof an||(e=new an(e,this.options)),Wb(this.major,e.major)||Wb(this.minor,e.minor)||Wb(this.patch,e.patch)};an.prototype.comparePre=function(e){if(e instanceof an||(e=new an(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;var t=0;do{var r=this.prerelease[t],n=e.prerelease[t];if(si("prerelease compare",t,r,n),r===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(r===void 0)return-1;if(r===n)continue;return Wb(r,n)}while(++t)};an.prototype.compareBuild=function(e){e instanceof an||(e=new an(e,this.options));var t=0;do{var r=this.build[t],n=e.build[t];if(si("prerelease compare",t,r,n),r===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(r===void 0)return-1;if(r===n)continue;return Wb(r,n)}while(++t)};an.prototype.inc=function(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t),this.inc("pre",t);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{for(var r=this.prerelease.length;--r>=0;)typeof this.prerelease[r]=="number"&&(this.prerelease[r]++,r=-2);r===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this};Br.inc=ZZt;function ZZt(e,t,r,n){typeof r=="string"&&(n=r,r=void 0);try{return new an(e,r).inc(t,n).version}catch{return null}}Br.diff=eer;function eer(e,t){if(ooe(e,t))return null;var r=Kb(e),n=Kb(t),i="";if(r.prerelease.length||n.prerelease.length){i="pre";var a="prerelease"}for(var s in r)if((s==="major"||s==="minor"||s==="patch")&&r[s]!==n[s])return i+s;return a}Br.compareIdentifiers=Wb;var yBe=/^[0-9]+$/;function Wb(e,t){var r=yBe.test(e),n=yBe.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e<t?-1:1}Br.rcompareIdentifiers=ter;function ter(e,t){return Wb(t,e)}Br.major=rer;function rer(e,t){return new an(e,t).major}Br.minor=ner;function ner(e,t){return new an(e,t).minor}Br.patch=ier;function ier(e,t){return new an(e,t).patch}Br.compare=E1;function E1(e,t,r){return new an(e,r).compare(new an(t,r))}Br.compareLoose=aer;function aer(e,t){return E1(e,t,!0)}Br.compareBuild=ser;function ser(e,t,r){var n=new an(e,r),i=new an(t,r);return n.compare(i)||n.compareBuild(i)}Br.rcompare=oer;function oer(e,t,r){return E1(t,e,r)}Br.sort=uer;function uer(e,t){return e.sort(function(r,n){return Br.compareBuild(r,n,t)})}Br.rsort=cer;function cer(e,t){return e.sort(function(r,n){return Br.compareBuild(n,r,t)})}Br.gt=K7;function K7(e,t,r){return E1(e,t,r)>0}Br.lt=JF;function JF(e,t,r){return E1(e,t,r)<0}Br.eq=ooe;function ooe(e,t,r){return E1(e,t,r)===0}Br.neq=_Be;function _Be(e,t,r){return E1(e,t,r)!==0}Br.gte=uoe;function uoe(e,t,r){return E1(e,t,r)>=0}Br.lte=coe;function coe(e,t,r){return E1(e,t,r)<=0}Br.cmp=XF;function XF(e,t,r,n){switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e===r;case"!==":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e!==r;case"":case"=":case"==":return ooe(e,r,n);case"!=":return _Be(e,r,n);case">":return K7(e,r,n);case">=":return uoe(e,r,n);case"<":return JF(e,r,n);case"<=":return coe(e,r,n);default:throw new TypeError("Invalid operator: "+t)}}Br.Comparator=Yl;function Yl(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof Yl){if(e.loose===!!t.loose)return e;e=e.value}if(!(this instanceof Yl))return new Yl(e,t);e=e.trim().split(/\s+/).join(" "),si("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===k4?this.value="":this.value=this.operator+this.semver.version,si("comp",this)}var k4={};Yl.prototype.parse=function(e){var t=this.options.loose?ai[rt.COMPARATORLOOSE]:ai[rt.COMPARATOR],r=e.match(t);if(!r)throw new TypeError("Invalid comparator: "+e);this.operator=r[1]!==void 0?r[1]:"",this.operator==="="&&(this.operator=""),r[2]?this.semver=new an(r[2],this.options.loose):this.semver=k4};Yl.prototype.toString=function(){return this.value};Yl.prototype.test=function(e){if(si("Comparator.test",e,this.options.loose),this.semver===k4||e===k4)return!0;if(typeof e=="string")try{e=new an(e,this.options)}catch{return!1}return XF(e,this.operator,this.semver,this.options)};Yl.prototype.intersects=function(e,t){if(!(e instanceof Yl))throw new TypeError("a Comparator is required");(!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1});var r;if(this.operator==="")return this.value===""?!0:(r=new Fa(e.value,t),QF(this.value,r,t));if(e.operator==="")return e.value===""?!0:(r=new Fa(this.value,t),QF(e.semver,r,t));var n=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),i=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),a=this.semver.version===e.semver.version,s=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),o=XF(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),c=XF(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return n||i||a&&s||o||c};Br.Range=Fa;function Fa(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof Fa)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new Fa(e.raw,t);if(e instanceof Yl)return new Fa(e.value,t);if(!(this instanceof Fa))return new Fa(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(r){return this.parseRange(r.trim())},this).filter(function(r){return r.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+this.raw);this.format()}Fa.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim(),this.range};Fa.prototype.toString=function(){return this.range};Fa.prototype.parseRange=function(e){var t=this.options.loose,r=t?ai[rt.HYPHENRANGELOOSE]:ai[rt.HYPHENRANGE];e=e.replace(r,ber),si("hyphen replace",e),e=e.replace(ai[rt.COMPARATORTRIM],JZt),si("comparator trim",e,ai[rt.COMPARATORTRIM]),e=e.replace(ai[rt.TILDETRIM],KZt),e=e.replace(ai[rt.CARETTRIM],YZt),e=e.split(/\s+/).join(" ");var n=t?ai[rt.COMPARATORLOOSE]:ai[rt.COMPARATOR],i=e.split(" ").map(function(a){return per(a,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(i=i.filter(function(a){return!!a.match(n)})),i=i.map(function(a){return new Yl(a,this.options)},this),i};Fa.prototype.intersects=function(e,t){if(!(e instanceof Fa))throw new TypeError("a Range is required");return this.set.some(function(r){return bBe(r,t)&&e.set.some(function(n){return bBe(n,t)&&r.every(function(i){return n.every(function(a){return i.intersects(a,t)})})})})};function bBe(e,t){for(var r=!0,n=e.slice(),i=n.pop();r&&n.length;)r=n.every(function(a){return i.intersects(a,t)}),i=n.pop();return r}Br.toComparators=ler;function ler(e,t){return new Fa(e,t).set.map(function(r){return r.map(function(n){return n.value}).join(" ").trim().split(" ")})}function per(e,t){return si("comp",e,t),e=her(e,t),si("caret",e),e=fer(e,t),si("tildes",e),e=ger(e,t),si("xrange",e),e=yer(e,t),si("stars",e),e}function Ju(e){return!e||e.toLowerCase()==="x"||e==="*"}function fer(e,t){return e.trim().split(/\s+/).map(function(r){return der(r,t)}).join(" ")}function der(e,t){var r=t.loose?ai[rt.TILDELOOSE]:ai[rt.TILDE];return e.replace(r,function(n,i,a,s,o){si("tilde",e,n,i,a,s,o);var c;return Ju(i)?c="":Ju(a)?c=">="+i+".0.0 <"+(+i+1)+".0.0":Ju(s)?c=">="+i+"."+a+".0 <"+i+"."+(+a+1)+".0":o?(si("replaceTilde pr",o),c=">="+i+"."+a+"."+s+"-"+o+" <"+i+"."+(+a+1)+".0"):c=">="+i+"."+a+"."+s+" <"+i+"."+(+a+1)+".0",si("tilde return",c),c})}function her(e,t){return e.trim().split(/\s+/).map(function(r){return mer(r,t)}).join(" ")}function mer(e,t){si("caret",e,t);var r=t.loose?ai[rt.CARETLOOSE]:ai[rt.CARET];return e.replace(r,function(n,i,a,s,o){si("caret",e,n,i,a,s,o);var c;return Ju(i)?c="":Ju(a)?c=">="+i+".0.0 <"+(+i+1)+".0.0":Ju(s)?i==="0"?c=">="+i+"."+a+".0 <"+i+"."+(+a+1)+".0":c=">="+i+"."+a+".0 <"+(+i+1)+".0.0":o?(si("replaceCaret pr",o),i==="0"?a==="0"?c=">="+i+"."+a+"."+s+"-"+o+" <"+i+"."+a+"."+(+s+1):c=">="+i+"."+a+"."+s+"-"+o+" <"+i+"."+(+a+1)+".0":c=">="+i+"."+a+"."+s+"-"+o+" <"+(+i+1)+".0.0"):(si("no pr"),i==="0"?a==="0"?c=">="+i+"."+a+"."+s+" <"+i+"."+a+"."+(+s+1):c=">="+i+"."+a+"."+s+" <"+i+"."+(+a+1)+".0":c=">="+i+"."+a+"."+s+" <"+(+i+1)+".0.0"),si("caret return",c),c})}function ger(e,t){return si("replaceXRanges",e,t),e.split(/\s+/).map(function(r){return ver(r,t)}).join(" ")}function ver(e,t){e=e.trim();var r=t.loose?ai[rt.XRANGELOOSE]:ai[rt.XRANGE];return e.replace(r,function(n,i,a,s,o,c){si("xRange",e,n,i,a,s,o,c);var p=Ju(a),f=p||Ju(s),d=f||Ju(o),h=d;return i==="="&&h&&(i=""),c=t.includePrerelease?"-0":"",p?i===">"||i==="<"?n="<0.0.0-0":n="*":i&&h?(f&&(s=0),o=0,i===">"?(i=">=",f?(a=+a+1,s=0,o=0):(s=+s+1,o=0)):i==="<="&&(i="<",f?a=+a+1:s=+s+1),n=i+a+"."+s+"."+o+c):f?n=">="+a+".0.0"+c+" <"+(+a+1)+".0.0"+c:d&&(n=">="+a+"."+s+".0"+c+" <"+a+"."+(+s+1)+".0"+c),si("xRange return",n),n})}function yer(e,t){return si("replaceStars",e,t),e.trim().replace(ai[rt.STAR],"")}function ber(e,t,r,n,i,a,s,o,c,p,f,d,h){return Ju(r)?t="":Ju(n)?t=">="+r+".0.0":Ju(i)?t=">="+r+"."+n+".0":t=">="+t,Ju(c)?o="":Ju(p)?o="<"+(+c+1)+".0.0":Ju(f)?o="<"+c+"."+(+p+1)+".0":d?o="<="+c+"."+p+"."+f+"-"+d:o="<="+o,(t+" "+o).trim()}Fa.prototype.test=function(e){if(!e)return!1;if(typeof e=="string")try{e=new an(e,this.options)}catch{return!1}for(var t=0;t<this.set.length;t++)if(wer(this.set[t],e,this.options))return!0;return!1};function wer(e,t,r){for(var n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!r.includePrerelease){for(n=0;n<e.length;n++)if(si(e[n].semver),e[n].semver!==k4&&e[n].semver.prerelease.length>0){var i=e[n].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0}return!1}return!0}Br.satisfies=QF;function QF(e,t,r){try{t=new Fa(t,r)}catch{return!1}return t.test(e)}Br.maxSatisfying=_er;function _er(e,t,r){var n=null,i=null;try{var a=new Fa(t,r)}catch{return null}return e.forEach(function(s){a.test(s)&&(!n||i.compare(s)===-1)&&(n=s,i=new an(n,r))}),n}Br.minSatisfying=xer;function xer(e,t,r){var n=null,i=null;try{var a=new Fa(t,r)}catch{return null}return e.forEach(function(s){a.test(s)&&(!n||i.compare(s)===1)&&(n=s,i=new an(n,r))}),n}Br.minVersion=Eer;function Eer(e,t){e=new Fa(e,t);var r=new an("0.0.0");if(e.test(r)||(r=new an("0.0.0-0"),e.test(r)))return r;r=null;for(var n=0;n<e.set.length;++n){var i=e.set[n];i.forEach(function(a){var s=new an(a.semver.version);switch(a.operator){case">":s.prerelease.length===0?s.patch++:s.prerelease.push(0),s.raw=s.format();case"":case">=":(!r||K7(r,s))&&(r=s);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+a.operator)}})}return r&&e.test(r)?r:null}Br.validRange=Ser;function Ser(e,t){try{return new Fa(e,t).range||"*"}catch{return null}}Br.ltr=ker;function ker(e,t,r){return loe(e,t,"<",r)}Br.gtr=Aer;function Aer(e,t,r){return loe(e,t,">",r)}Br.outside=loe;function loe(e,t,r,n){e=new an(e,n),t=new Fa(t,n);var i,a,s,o,c;switch(r){case">":i=K7,a=coe,s=JF,o=">",c=">=";break;case"<":i=JF,a=uoe,s=K7,o="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(QF(e,t,n))return!1;for(var p=0;p<t.set.length;++p){var f=t.set[p],d=null,h=null;if(f.forEach(function(g){g.semver===k4&&(g=new Yl(">=0.0.0")),d=d||g,h=h||g,i(g.semver,d.semver,n)?d=g:s(g.semver,h.semver,n)&&(h=g)}),d.operator===o||d.operator===c||(!h.operator||h.operator===o)&&a(e,h.semver))return!1;if(h.operator===c&&s(e,h.semver))return!1}return!0}Br.prerelease=Ter;function Ter(e,t){var r=Kb(e,t);return r&&r.prerelease.length?r.prerelease:null}Br.intersects=Oer;function Oer(e,t,r){return e=new Fa(e,r),t=new Fa(t,r),e.intersects(t)}Br.coerce=Der;function Der(e,t){if(e instanceof an)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};var r=null;if(!t.rtl)r=e.match(ai[rt.COERCE]);else{for(var n;(n=ai[rt.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||n.index+n[0].length!==r.index+r[0].length)&&(r=n),ai[rt.COERCERTL].lastIndex=n.index+n[1].length+n[2].length;ai[rt.COERCERTL].lastIndex=-1}return r===null?null:Kb(r[2]+"."+(r[3]||"0")+"."+(r[4]||"0"),t)}});var kBe=b((_Kr,ej)=>{"use strict";var A4=require("fs"),doe=require("path"),T4=require("crypto"),SBe=require("assert"),Cer=require("events"),O4=Iqe(),Per=Hqe(),Ier=Sse(),Rer=Tse(),Fer=mLe(),jer=noe(),Ner=vBe(),D4=EBe(),qer=jP(),J7=()=>Object.create(null),poe="aes-256-cbc";delete require.cache[__filename];var Ler=doe.dirname(ej.parent&&ej.parent.filename||"."),$er=(e,t)=>{let r=["undefined","symbol","function"],n=typeof t;if(r.includes(n))throw new TypeError(`Setting a value of type \`${n}\` for key \`${e}\` is not allowed as it's not supported by JSON`)},ZF="__internal__",foe=`${ZF}.migrations.version`,hoe=class{constructor(t){t={configName:"config",fileExtension:"json",projectSuffix:"nodejs",clearInvalidConfig:!0,serialize:s=>JSON.stringify(s,null,"	"),deserialize:JSON.parse,accessPropertiesByDotNotation:!0,...t};let r=qer(()=>{let s=Ier.sync({cwd:Ler});return s&&JSON.parse(A4.readFileSync(s,"utf8"))||{}});if(!t.cwd){if(t.projectName||(t.projectName=r().name),!t.projectName)throw new Error("Project name could not be inferred. Please specify the `projectName` option.");t.cwd=Rer(t.projectName,{suffix:t.projectSuffix}).config}if(this._options=t,this._defaultValues={},t.schema){if(typeof t.schema!="object")throw new TypeError("The `schema` option must be an object.");let s=new jer({allErrors:!0,format:"full",useDefaults:!0,errorDataPath:"property"}),o={type:"object",properties:t.schema};this._validator=s.compile(o);for(let[c,p]of Object.entries(t.schema))p&&p.default&&(this._defaultValues[c]=p.default)}t.defaults&&(this._defaultValues={...this._defaultValues,...t.defaults}),this.events=new Cer,this.encryptionKey=t.encryptionKey,this.serialize=t.serialize,this.deserialize=t.deserialize;let n=t.fileExtension?`.${t.fileExtension}`:"";this.path=doe.resolve(t.cwd,`${t.configName}${n}`);let i=this.store,a=Object.assign(J7(),t.defaults,i);this._validate(a);try{SBe.deepEqual(i,a)}catch{this.store=a}if(t.watch&&this._watch(),t.migrations){if(t.projectVersion||(t.projectVersion=r().version),!t.projectVersion)throw new Error("Project version could not be inferred. Please specify the `projectVersion` option.");this._migrate(t.migrations,t.projectVersion)}}_validate(t){if(!this._validator)return;if(!this._validator(t)){let n=this._validator.errors.reduce((i,{dataPath:a,message:s})=>i+` \`${a.slice(1)}\` ${s};`,"");throw new Error("Config schema violation:"+n.slice(0,-1))}}_ensureDirectory(){Per.sync(doe.dirname(this.path))}_write(t){let r=this.serialize(t);if(this.encryptionKey){let n=T4.randomBytes(16),i=T4.pbkdf2Sync(this.encryptionKey,n.toString(),1e4,32,"sha512"),a=T4.createCipheriv(poe,i,n);r=Buffer.concat([n,Buffer.from(":"),a.update(Buffer.from(r)),a.final()])}if(process.env.SNAP)A4.writeFileSync(this.path,r);else try{Fer.sync(this.path,r)}catch(n){if(n.code==="EXDEV"){A4.writeFileSync(this.path,r);return}throw n}}_watch(){this._ensureDirectory(),A4.existsSync(this.path)||this._write({}),A4.watch(this.path,{persistent:!1},Ner(()=>{this.events.emit("change")},{wait:100}))}_migrate(t,r){let n=this._get(foe,"0.0.0"),i=Object.keys(t).filter(s=>this._shouldPerformMigration(s,n,r)),a={...this.store};for(let s of i)try{let o=t[s];o(this),this._set(foe,s),n=s,a={...this.store}}catch(o){throw this.store=a,new Error(`Something went wrong during the migration! Changes applied to the store until this failed migration will be restored. ${o}`)}(this._isVersionInRangeFormat(n)||!D4.eq(n,r))&&this._set(foe,r)}_containsReservedKey(t){return typeof t=="object"&&Object.keys(t)[0]===ZF?!0:typeof t!="string"?!1:this._options.accessPropertiesByDotNotation?!!t.startsWith(`${ZF}.`):!1}_isVersionInRangeFormat(t){return D4.clean(t)===null}_shouldPerformMigration(t,r,n){return this._isVersionInRangeFormat(t)?r!=="0.0.0"&&D4.satisfies(r,t)?!1:D4.satisfies(n,t):!(D4.lte(t,r)||D4.gt(t,n))}_get(t,r){return O4.get(this.store,t,r)}_set(t,r){let{store:n}=this;O4.set(n,t,r),this.store=n}get(t,r){return this._options.accessPropertiesByDotNotation?O4.get(this.store,t,r):t in this.store?this.store[t]:r}set(t,r){if(typeof t!="string"&&typeof t!="object")throw new TypeError(`Expected \`key\` to be of type \`string\` or \`object\`, got ${typeof t}`);if(typeof t!="object"&&r===void 0)throw new TypeError("Use `delete()` to clear values");if(this._containsReservedKey(t))throw new TypeError(`Please don't use the ${ZF} key, as it's used to manage this module internal operations.`);let{store:n}=this,i=(a,s)=>{$er(a,s),this._options.accessPropertiesByDotNotation?O4.set(n,a,s):n[a]=s};if(typeof t=="object"){let a=t;for(let[s,o]of Object.entries(a))i(s,o)}else i(t,r);this.store=n}has(t){return this._options.accessPropertiesByDotNotation?O4.has(this.store,t):t in this.store}reset(...t){for(let r of t)this._defaultValues[r]&&this.set(r,this._defaultValues[r])}delete(t){let{store:r}=this;this._options.accessPropertiesByDotNotation?O4.delete(r,t):delete r[t],this.store=r}clear(){this.store=J7()}onDidChange(t,r){if(typeof t!="string")throw new TypeError(`Expected \`key\` to be of type \`string\`, got ${typeof t}`);if(typeof r!="function")throw new TypeError(`Expected \`callback\` to be of type \`function\`, got ${typeof r}`);let n=()=>this.get(t);return this.handleChange(n,r)}onDidAnyChange(t){if(typeof t!="function")throw new TypeError(`Expected \`callback\` to be of type \`function\`, got ${typeof t}`);let r=()=>this.store;return this.handleChange(r,t)}handleChange(t,r){let n=t(),i=()=>{let a=n,s=t();try{SBe.deepEqual(s,a)}catch{n=s,r.call(this,s,a)}};return this.events.on("change",i),()=>this.events.removeListener("change",i)}get size(){return Object.keys(this.store).length}get store(){try{let t=A4.readFileSync(this.path,this.encryptionKey?null:"utf8");if(this.encryptionKey)try{if(t.slice(16,17).toString()===":"){let r=t.slice(0,16),n=T4.pbkdf2Sync(this.encryptionKey,r.toString(),1e4,32,"sha512"),i=T4.createDecipheriv(poe,n,r);t=Buffer.concat([i.update(t.slice(17)),i.final()])}else{let r=T4.createDecipher(poe,this.encryptionKey);t=Buffer.concat([r.update(t),r.final()])}}catch{}return t=this.deserialize(t),this._validate(t),Object.assign(J7(),t)}catch(t){if(t.code==="ENOENT")return this._ensureDirectory(),J7();if(this._options.clearInvalidConfig&&t.name==="SyntaxError")return J7();throw t}}set store(t){this._ensureDirectory(),this._validate(t),this._write(t),this.events.emit("change")}*[Symbol.iterator](){for(let[t,r]of Object.entries(this.store))yield[t,r]}};ej.exports=hoe});var OBe=b((xKr,TBe)=>{"use strict";var ABe=require("path"),tj=require("electron"),Ber=kBe(),moe=class extends Ber{constructor(t){let r=(tj.app||tj.remote.app).getPath("userData");t={name:"config",...t},t.cwd?t.cwd=ABe.isAbsolute(t.cwd)?t.cwd:ABe.join(r,t.cwd):t.cwd=r,t.configName=t.name,delete t.name,super(t)}openInEditor(){(tj.shell.openItem||tj.shell.openPath)(this.path)}};TBe.exports=moe});var yoe=b((C4,Q7)=>{(function(){var e,t="4.17.21",r=200,n="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",i="Expected a function",a="Invalid `variable` option passed into `_.template`",s="__lodash_hash_undefined__",o=500,c="__lodash_placeholder__",p=1,f=2,d=4,h=1,g=2,v=1,y=2,_=4,x=8,A=16,D=32,j=64,H=128,F=256,z=512,P=30,M="...",K=800,L=16,ve=1,U=2,N=3,re=1/0,ue=9007199254740991,Q=17976931348623157e292,ne=0/0,G=4294967295,de=G-1,xe=G>>>1,ge=[["ary",H],["bind",v],["bindKey",y],["curry",x],["curryRight",A],["flip",z],["partial",D],["partialRight",j],["rearg",F]],V="[object Arguments]",ce="[object Array]",ye="[object AsyncFunction]",R="[object Boolean]",$="[object Date]",ke="[object DOMException]",S="[object Error]",I="[object Function]",B="[object GeneratorFunction]",se="[object Map]",ae="[object Number]",me="[object Null]",Se="[object Object]",Ee="[object Promise]",De="[object Proxy]",Le="[object RegExp]",Ne="[object Set]",Ve="[object String]",kt="[object Symbol]",Ft="[object Undefined]",rr="[object WeakMap]",Or="[object WeakSet]",kr="[object ArrayBuffer]",dr="[object DataView]",$t="[object Float32Array]",$e="[object Float64Array]",Ue="[object Int8Array]",ct="[object Int16Array]",ut="[object Int32Array]",Dt="[object Uint8Array]",Zt="[object Uint8ClampedArray]",hr="[object Uint16Array]",Bt="[object Uint32Array]",pr=/\b__p \+= '';/g,wn=/\b(__p \+=) '' \+/g,Ai=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ui=/&(?:amp|lt|gt|quot|#39);/g,Xa=/[&<>"']/g,ws=RegExp(Ui.source),Pl=RegExp(Xa.source),Is=/<%-([\s\S]+?)%>/g,_s=/<%([\s\S]+?)%>/g,Rs=/<%=([\s\S]+?)%>/g,Yc=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,fc=/^\w*$/,Il=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Zo=/[\\^$.*+?()[\]{}|]/g,Fe=RegExp(Zo.source),_e=/^\s+/,O=/\s/,Y=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,W=/\{\n\/\* \[wrapped with (.+)\] \*/,k=/,? & /,pe=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,je=/[()=,{}\[\]\/\s]/,Be=/\\(\\)?/g,Je=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,nt=/\w*$/,St=/^[-+]0x[0-9a-f]+$/i,_t=/^0b[01]+$/i,or=/^\[object .+?Constructor\]$/,gt=/^0o[0-7]+$/i,Ht=/^(?:0|[1-9]\d*)$/,Nt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,er=/($^)/,ur=/['\n\r\u2028\u2029\\]/g,Jt="\\ud800-\\udfff",Mt="\\u0300-\\u036f",tr="\\ufe20-\\ufe2f",Tt="\\u20d0-\\u20ff",Vt=Mt+tr+Tt,At="\\u2700-\\u27bf",jt="a-z\\xdf-\\xf6\\xf8-\\xff",Gt="\\xac\\xb1\\xd7\\xf7",bt="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Ge="\\u2000-\\u206f",He=" \\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",lt="A-Z\\xc0-\\xd6\\xd8-\\xde",it="\\ufe0e\\ufe0f",Xe=Gt+bt+Ge+He,Z="['\u2019]",we="["+Jt+"]",he="["+Xe+"]",Ae="["+Vt+"]",Re="\\d+",ee="["+At+"]",ze="["+jt+"]",Qe="[^"+Jt+Xe+Re+At+jt+lt+"]",Ye="\\ud83c[\\udffb-\\udfff]",et="(?:"+Ae+"|"+Ye+")",ot="[^"+Jt+"]",vt="(?:\\ud83c[\\udde6-\\uddff]){2}",zt="[\\ud800-\\udbff][\\udc00-\\udfff]",It="["+lt+"]",X="\\u200d",te="(?:"+ze+"|"+Qe+")",le="(?:"+It+"|"+Qe+")",Pe="(?:"+Z+"(?:d|ll|m|re|s|t|ve))?",Ke="(?:"+Z+"(?:D|LL|M|RE|S|T|VE))?",st=et+"?",wt="["+it+"]?",Kt="(?:"+X+"(?:"+[ot,vt,zt].join("|")+")"+wt+st+")*",Gn="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",zi="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Qa=wt+st+Kt,Za="(?:"+[ee,vt,zt].join("|")+")"+Qa,dc="(?:"+[ot+Ae+"?",Ae,vt,zt,we].join("|")+")",Zh=RegExp(Z,"g"),eu=RegExp(Ae,"g"),xs=RegExp(Ye+"(?="+Ye+")|"+dc+Qa,"g"),em=RegExp([It+"?"+ze+"+"+Pe+"(?="+[he,It,"$"].join("|")+")",le+"+"+Ke+"(?="+[he,It+te,"$"].join("|")+")",It+"?"+te+"+"+Pe,It+"+"+Ke,zi,Gn,Re,Za].join("|"),"g"),Rl=RegExp("["+X+Jt+Vt+it+"]"),ly=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,EU=["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"],SU=-1,Dr={};Dr[$t]=Dr[$e]=Dr[Ue]=Dr[ct]=Dr[ut]=Dr[Dt]=Dr[Zt]=Dr[hr]=Dr[Bt]=!0,Dr[V]=Dr[ce]=Dr[kr]=Dr[R]=Dr[dr]=Dr[$]=Dr[S]=Dr[I]=Dr[se]=Dr[ae]=Dr[Se]=Dr[Le]=Dr[Ne]=Dr[Ve]=Dr[rr]=!1;var Ar={};Ar[V]=Ar[ce]=Ar[kr]=Ar[dr]=Ar[R]=Ar[$]=Ar[$t]=Ar[$e]=Ar[Ue]=Ar[ct]=Ar[ut]=Ar[se]=Ar[ae]=Ar[Se]=Ar[Le]=Ar[Ne]=Ar[Ve]=Ar[kt]=Ar[Dt]=Ar[Zt]=Ar[hr]=Ar[Bt]=!0,Ar[S]=Ar[I]=Ar[rr]=!1;var kU={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},AU={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},TU={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},OU={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},DU=parseFloat,CU=parseInt,Bx=typeof global=="object"&&global&&global.Object===Object&&global,PU=typeof self=="object"&&self&&self.Object===Object&&self,gn=Bx||PU||Function("return this")(),py=typeof C4=="object"&&C4&&!C4.nodeType&&C4,Pu=py&&typeof Q7=="object"&&Q7&&!Q7.nodeType&&Q7,Mx=Pu&&Pu.exports===py,fy=Mx&&Bx.process,ta=function(){try{var oe=Pu&&Pu.require&&Pu.require("util").types;return oe||fy&&fy.binding&&fy.binding("util")}catch{}}(),Ux=ta&&ta.isArrayBuffer,zx=ta&&ta.isDate,Hx=ta&&ta.isMap,Vx=ta&&ta.isRegExp,Gx=ta&&ta.isSet,Wx=ta&&ta.isTypedArray;function Ti(oe,Te,be){switch(be.length){case 0:return oe.call(Te);case 1:return oe.call(Te,be[0]);case 2:return oe.call(Te,be[0],be[1]);case 3:return oe.call(Te,be[0],be[1],be[2])}return oe.apply(Te,be)}function IU(oe,Te,be,at){for(var Ot=-1,fr=oe==null?0:oe.length;++Ot<fr;){var on=oe[Ot];Te(at,on,be(on),oe)}return at}function ra(oe,Te){for(var be=-1,at=oe==null?0:oe.length;++be<at&&Te(oe[be],be,oe)!==!1;);return oe}function RU(oe,Te){for(var be=oe==null?0:oe.length;be--&&Te(oe[be],be,oe)!==!1;);return oe}function Kx(oe,Te){for(var be=-1,at=oe==null?0:oe.length;++be<at;)if(!Te(oe[be],be,oe))return!1;return!0}function xo(oe,Te){for(var be=-1,at=oe==null?0:oe.length,Ot=0,fr=[];++be<at;){var on=oe[be];Te(on,be,oe)&&(fr[Ot++]=on)}return fr}function tm(oe,Te){var be=oe==null?0:oe.length;return!!be&&Jc(oe,Te,0)>-1}function dy(oe,Te,be){for(var at=-1,Ot=oe==null?0:oe.length;++at<Ot;)if(be(Te,oe[at]))return!0;return!1}function Rr(oe,Te){for(var be=-1,at=oe==null?0:oe.length,Ot=Array(at);++be<at;)Ot[be]=Te(oe[be],be,oe);return Ot}function Eo(oe,Te){for(var be=-1,at=Te.length,Ot=oe.length;++be<at;)oe[Ot+be]=Te[be];return oe}function hy(oe,Te,be,at){var Ot=-1,fr=oe==null?0:oe.length;for(at&&fr&&(be=oe[++Ot]);++Ot<fr;)be=Te(be,oe[Ot],Ot,oe);return be}function FU(oe,Te,be,at){var Ot=oe==null?0:oe.length;for(at&&Ot&&(be=oe[--Ot]);Ot--;)be=Te(be,oe[Ot],Ot,oe);return be}function my(oe,Te){for(var be=-1,at=oe==null?0:oe.length;++be<at;)if(Te(oe[be],be,oe))return!0;return!1}var jU=gy("length");function NU(oe){return oe.split("")}function qU(oe){return oe.match(pe)||[]}function Yx(oe,Te,be){var at;return be(oe,function(Ot,fr,on){if(Te(Ot,fr,on))return at=fr,!1}),at}function rm(oe,Te,be,at){for(var Ot=oe.length,fr=be+(at?1:-1);at?fr--:++fr<Ot;)if(Te(oe[fr],fr,oe))return fr;return-1}function Jc(oe,Te,be){return Te===Te?YU(oe,Te,be):rm(oe,Jx,be)}function LU(oe,Te,be,at){for(var Ot=be-1,fr=oe.length;++Ot<fr;)if(at(oe[Ot],Te))return Ot;return-1}function Jx(oe){return oe!==oe}function Xx(oe,Te){var be=oe==null?0:oe.length;return be?yy(oe,Te)/be:ne}function gy(oe){return function(Te){return Te==null?e:Te[oe]}}function vy(oe){return function(Te){return oe==null?e:oe[Te]}}function Qx(oe,Te,be,at,Ot){return Ot(oe,function(fr,on,Sr){be=at?(at=!1,fr):Te(be,fr,on,Sr)}),be}function $U(oe,Te){var be=oe.length;for(oe.sort(Te);be--;)oe[be]=oe[be].value;return oe}function yy(oe,Te){for(var be,at=-1,Ot=oe.length;++at<Ot;){var fr=Te(oe[at]);fr!==e&&(be=be===e?fr:be+fr)}return be}function by(oe,Te){for(var be=-1,at=Array(oe);++be<oe;)at[be]=Te(be);return at}function BU(oe,Te){return Rr(Te,function(be){return[be,oe[be]]})}function Zx(oe){return oe&&oe.slice(0,nE(oe)+1).replace(_e,"")}function Oi(oe){return function(Te){return oe(Te)}}function wy(oe,Te){return Rr(Te,function(be){return oe[be]})}function Hp(oe,Te){return oe.has(Te)}function eE(oe,Te){for(var be=-1,at=oe.length;++be<at&&Jc(Te,oe[be],0)>-1;);return be}function tE(oe,Te){for(var be=oe.length;be--&&Jc(Te,oe[be],0)>-1;);return be}function MU(oe,Te){for(var be=oe.length,at=0;be--;)oe[be]===Te&&++at;return at}var UU=vy(kU),zU=vy(AU);function HU(oe){return"\\"+OU[oe]}function VU(oe,Te){return oe==null?e:oe[Te]}function Xc(oe){return Rl.test(oe)}function GU(oe){return ly.test(oe)}function WU(oe){for(var Te,be=[];!(Te=oe.next()).done;)be.push(Te.value);return be}function _y(oe){var Te=-1,be=Array(oe.size);return oe.forEach(function(at,Ot){be[++Te]=[Ot,at]}),be}function rE(oe,Te){return function(be){return oe(Te(be))}}function So(oe,Te){for(var be=-1,at=oe.length,Ot=0,fr=[];++be<at;){var on=oe[be];(on===Te||on===c)&&(oe[be]=c,fr[Ot++]=be)}return fr}function nm(oe){var Te=-1,be=Array(oe.size);return oe.forEach(function(at){be[++Te]=at}),be}function KU(oe){var Te=-1,be=Array(oe.size);return oe.forEach(function(at){be[++Te]=[at,at]}),be}function YU(oe,Te,be){for(var at=be-1,Ot=oe.length;++at<Ot;)if(oe[at]===Te)return at;return-1}function JU(oe,Te,be){for(var at=be+1;at--;)if(oe[at]===Te)return at;return at}function Qc(oe){return Xc(oe)?QU(oe):jU(oe)}function Ta(oe){return Xc(oe)?ZU(oe):NU(oe)}function nE(oe){for(var Te=oe.length;Te--&&O.test(oe.charAt(Te)););return Te}var XU=vy(TU);function QU(oe){for(var Te=xs.lastIndex=0;xs.test(oe);)++Te;return Te}function ZU(oe){return oe.match(xs)||[]}function ez(oe){return oe.match(em)||[]}var tz=function oe(Te){Te=Te==null?gn:ko.defaults(gn.Object(),Te,ko.pick(gn,EU));var be=Te.Array,at=Te.Date,Ot=Te.Error,fr=Te.Function,on=Te.Math,Sr=Te.Object,xy=Te.RegExp,rz=Te.String,na=Te.TypeError,im=be.prototype,nz=fr.prototype,Zc=Sr.prototype,am=Te["__core-js_shared__"],sm=nz.toString,vr=Zc.hasOwnProperty,iz=0,iE=function(){var u=/[^.]+$/.exec(am&&am.keys&&am.keys.IE_PROTO||"");return u?"Symbol(src)_1."+u:""}(),om=Zc.toString,az=sm.call(Sr),sz=gn._,oz=xy("^"+sm.call(vr).replace(Zo,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),um=Mx?Te.Buffer:e,Ao=Te.Symbol,cm=Te.Uint8Array,aE=um?um.allocUnsafe:e,lm=rE(Sr.getPrototypeOf,Sr),sE=Sr.create,oE=Zc.propertyIsEnumerable,pm=im.splice,uE=Ao?Ao.isConcatSpreadable:e,Vp=Ao?Ao.iterator:e,Iu=Ao?Ao.toStringTag:e,fm=function(){try{var u=qu(Sr,"defineProperty");return u({},"",{}),u}catch{}}(),uz=Te.clearTimeout!==gn.clearTimeout&&Te.clearTimeout,cz=at&&at.now!==gn.Date.now&&at.now,lz=Te.setTimeout!==gn.setTimeout&&Te.setTimeout,dm=on.ceil,hm=on.floor,Ey=Sr.getOwnPropertySymbols,pz=um?um.isBuffer:e,cE=Te.isFinite,fz=im.join,dz=rE(Sr.keys,Sr),un=on.max,jn=on.min,hz=at.now,mz=Te.parseInt,lE=on.random,gz=im.reverse,Sy=qu(Te,"DataView"),Gp=qu(Te,"Map"),ky=qu(Te,"Promise"),el=qu(Te,"Set"),Wp=qu(Te,"WeakMap"),Kp=qu(Sr,"create"),mm=Wp&&new Wp,tl={},vz=Lu(Sy),yz=Lu(Gp),bz=Lu(ky),wz=Lu(el),_z=Lu(Wp),gm=Ao?Ao.prototype:e,Yp=gm?gm.valueOf:e,pE=gm?gm.toString:e;function T(u){if(zr(u)&&!Ct(u)&&!(u instanceof Xt)){if(u instanceof ia)return u;if(vr.call(u,"__wrapped__"))return f5(u)}return new ia(u)}var rl=function(){function u(){}return function(l){if(!Nr(l))return{};if(sE)return sE(l);u.prototype=l;var m=new u;return u.prototype=e,m}}();function vm(){}function ia(u,l){this.__wrapped__=u,this.__actions__=[],this.__chain__=!!l,this.__index__=0,this.__values__=e}T.templateSettings={escape:Is,evaluate:_s,interpolate:Rs,variable:"",imports:{_:T}},T.prototype=vm.prototype,T.prototype.constructor=T,ia.prototype=rl(vm.prototype),ia.prototype.constructor=ia;function Xt(u){this.__wrapped__=u,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=G,this.__views__=[]}function xz(){var u=new Xt(this.__wrapped__);return u.__actions__=fi(this.__actions__),u.__dir__=this.__dir__,u.__filtered__=this.__filtered__,u.__iteratees__=fi(this.__iteratees__),u.__takeCount__=this.__takeCount__,u.__views__=fi(this.__views__),u}function Ez(){if(this.__filtered__){var u=new Xt(this);u.__dir__=-1,u.__filtered__=!0}else u=this.clone(),u.__dir__*=-1;return u}function Sz(){var u=this.__wrapped__.value(),l=this.__dir__,m=Ct(u),w=l<0,E=m?u.length:0,C=NH(0,E,this.__views__),J=C.start,ie=C.end,fe=ie-J,Ce=w?ie:J-1,Ie=this.__iteratees__,qe=Ie.length,We=0,pt=jn(fe,this.__takeCount__);if(!m||!w&&E==fe&&pt==fe)return jE(u,this.__actions__);var xt=[];e:for(;fe--&&We<pt;){Ce+=l;for(var Ut=-1,Et=u[Ce];++Ut<qe;){var Yt=Ie[Ut],Qt=Yt.iteratee,Pi=Yt.type,Zn=Qt(Et);if(Pi==U)Et=Zn;else if(!Zn){if(Pi==ve)continue e;break e}}xt[We++]=Et}return xt}Xt.prototype=rl(vm.prototype),Xt.prototype.constructor=Xt;function Ru(u){var l=-1,m=u==null?0:u.length;for(this.clear();++l<m;){var w=u[l];this.set(w[0],w[1])}}function kz(){this.__data__=Kp?Kp(null):{},this.size=0}function Az(u){var l=this.has(u)&&delete this.__data__[u];return this.size-=l?1:0,l}function Tz(u){var l=this.__data__;if(Kp){var m=l[u];return m===s?e:m}return vr.call(l,u)?l[u]:e}function Oz(u){var l=this.__data__;return Kp?l[u]!==e:vr.call(l,u)}function Dz(u,l){var m=this.__data__;return this.size+=this.has(u)?0:1,m[u]=Kp&&l===e?s:l,this}Ru.prototype.clear=kz,Ru.prototype.delete=Az,Ru.prototype.get=Tz,Ru.prototype.has=Oz,Ru.prototype.set=Dz;function Fs(u){var l=-1,m=u==null?0:u.length;for(this.clear();++l<m;){var w=u[l];this.set(w[0],w[1])}}function Cz(){this.__data__=[],this.size=0}function Pz(u){var l=this.__data__,m=ym(l,u);if(m<0)return!1;var w=l.length-1;return m==w?l.pop():pm.call(l,m,1),--this.size,!0}function Iz(u){var l=this.__data__,m=ym(l,u);return m<0?e:l[m][1]}function Rz(u){return ym(this.__data__,u)>-1}function Fz(u,l){var m=this.__data__,w=ym(m,u);return w<0?(++this.size,m.push([u,l])):m[w][1]=l,this}Fs.prototype.clear=Cz,Fs.prototype.delete=Pz,Fs.prototype.get=Iz,Fs.prototype.has=Rz,Fs.prototype.set=Fz;function js(u){var l=-1,m=u==null?0:u.length;for(this.clear();++l<m;){var w=u[l];this.set(w[0],w[1])}}function jz(){this.size=0,this.__data__={hash:new Ru,map:new(Gp||Fs),string:new Ru}}function Nz(u){var l=Cm(this,u).delete(u);return this.size-=l?1:0,l}function qz(u){return Cm(this,u).get(u)}function Lz(u){return Cm(this,u).has(u)}function $z(u,l){var m=Cm(this,u),w=m.size;return m.set(u,l),this.size+=m.size==w?0:1,this}js.prototype.clear=jz,js.prototype.delete=Nz,js.prototype.get=qz,js.prototype.has=Lz,js.prototype.set=$z;function Fu(u){var l=-1,m=u==null?0:u.length;for(this.__data__=new js;++l<m;)this.add(u[l])}function Bz(u){return this.__data__.set(u,s),this}function Mz(u){return this.__data__.has(u)}Fu.prototype.add=Fu.prototype.push=Bz,Fu.prototype.has=Mz;function Oa(u){var l=this.__data__=new Fs(u);this.size=l.size}function Uz(){this.__data__=new Fs,this.size=0}function zz(u){var l=this.__data__,m=l.delete(u);return this.size=l.size,m}function Hz(u){return this.__data__.get(u)}function Vz(u){return this.__data__.has(u)}function Gz(u,l){var m=this.__data__;if(m instanceof Fs){var w=m.__data__;if(!Gp||w.length<r-1)return w.push([u,l]),this.size=++m.size,this;m=this.__data__=new js(w)}return m.set(u,l),this.size=m.size,this}Oa.prototype.clear=Uz,Oa.prototype.delete=zz,Oa.prototype.get=Hz,Oa.prototype.has=Vz,Oa.prototype.set=Gz;function fE(u,l){var m=Ct(u),w=!m&&$u(u),E=!m&&!w&&Po(u),C=!m&&!w&&!E&&sl(u),J=m||w||E||C,ie=J?by(u.length,rz):[],fe=ie.length;for(var Ce in u)(l||vr.call(u,Ce))&&!(J&&(Ce=="length"||E&&(Ce=="offset"||Ce=="parent")||C&&(Ce=="buffer"||Ce=="byteLength"||Ce=="byteOffset")||$s(Ce,fe)))&&ie.push(Ce);return ie}function dE(u){var l=u.length;return l?u[Ny(0,l-1)]:e}function Wz(u,l){return Pm(fi(u),ju(l,0,u.length))}function Kz(u){return Pm(fi(u))}function Ay(u,l,m){(m!==e&&!Da(u[l],m)||m===e&&!(l in u))&&Ns(u,l,m)}function Jp(u,l,m){var w=u[l];(!(vr.call(u,l)&&Da(w,m))||m===e&&!(l in u))&&Ns(u,l,m)}function ym(u,l){for(var m=u.length;m--;)if(Da(u[m][0],l))return m;return-1}function Yz(u,l,m,w){return To(u,function(E,C,J){l(w,E,m(E),J)}),w}function hE(u,l){return u&&ts(l,vn(l),u)}function Jz(u,l){return u&&ts(l,hi(l),u)}function Ns(u,l,m){l=="__proto__"&&fm?fm(u,l,{configurable:!0,enumerable:!0,value:m,writable:!0}):u[l]=m}function Ty(u,l){for(var m=-1,w=l.length,E=be(w),C=u==null;++m<w;)E[m]=C?e:o2(u,l[m]);return E}function ju(u,l,m){return u===u&&(m!==e&&(u=u<=m?u:m),l!==e&&(u=u>=l?u:l)),u}function aa(u,l,m,w,E,C){var J,ie=l&p,fe=l&f,Ce=l&d;if(m&&(J=E?m(u,w,E,C):m(u)),J!==e)return J;if(!Nr(u))return u;var Ie=Ct(u);if(Ie){if(J=LH(u),!ie)return fi(u,J)}else{var qe=Nn(u),We=qe==I||qe==B;if(Po(u))return LE(u,ie);if(qe==Se||qe==V||We&&!E){if(J=fe||We?{}:n5(u),!ie)return fe?TH(u,Jz(J,u)):AH(u,hE(J,u))}else{if(!Ar[qe])return E?u:{};J=$H(u,qe,ie)}}C||(C=new Oa);var pt=C.get(u);if(pt)return pt;C.set(u,J),I5(u)?u.forEach(function(Et){J.add(aa(Et,l,m,Et,u,C))}):C5(u)&&u.forEach(function(Et,Yt){J.set(Yt,aa(Et,l,m,Yt,u,C))});var xt=Ce?fe?Wy:Gy:fe?hi:vn,Ut=Ie?e:xt(u);return ra(Ut||u,function(Et,Yt){Ut&&(Yt=Et,Et=u[Yt]),Jp(J,Yt,aa(Et,l,m,Yt,u,C))}),J}function Xz(u){var l=vn(u);return function(m){return mE(m,u,l)}}function mE(u,l,m){var w=m.length;if(u==null)return!w;for(u=Sr(u);w--;){var E=m[w],C=l[E],J=u[E];if(J===e&&!(E in u)||!C(J))return!1}return!0}function gE(u,l,m){if(typeof u!="function")throw new na(i);return nf(function(){u.apply(e,m)},l)}function Xp(u,l,m,w){var E=-1,C=tm,J=!0,ie=u.length,fe=[],Ce=l.length;if(!ie)return fe;m&&(l=Rr(l,Oi(m))),w?(C=dy,J=!1):l.length>=r&&(C=Hp,J=!1,l=new Fu(l));e:for(;++E<ie;){var Ie=u[E],qe=m==null?Ie:m(Ie);if(Ie=w||Ie!==0?Ie:0,J&&qe===qe){for(var We=Ce;We--;)if(l[We]===qe)continue e;fe.push(Ie)}else C(l,qe,w)||fe.push(Ie)}return fe}var To=zE(es),vE=zE(Dy,!0);function Qz(u,l){var m=!0;return To(u,function(w,E,C){return m=!!l(w,E,C),m}),m}function bm(u,l,m){for(var w=-1,E=u.length;++w<E;){var C=u[w],J=l(C);if(J!=null&&(ie===e?J===J&&!Ci(J):m(J,ie)))var ie=J,fe=C}return fe}function Zz(u,l,m,w){var E=u.length;for(m=qt(m),m<0&&(m=-m>E?0:E+m),w=w===e||w>E?E:qt(w),w<0&&(w+=E),w=m>w?0:F5(w);m<w;)u[m++]=l;return u}function yE(u,l){var m=[];return To(u,function(w,E,C){l(w,E,C)&&m.push(w)}),m}function An(u,l,m,w,E){var C=-1,J=u.length;for(m||(m=MH),E||(E=[]);++C<J;){var ie=u[C];l>0&&m(ie)?l>1?An(ie,l-1,m,w,E):Eo(E,ie):w||(E[E.length]=ie)}return E}var Oy=HE(),bE=HE(!0);function es(u,l){return u&&Oy(u,l,vn)}function Dy(u,l){return u&&bE(u,l,vn)}function wm(u,l){return xo(l,function(m){return Bs(u[m])})}function Nu(u,l){l=Do(l,u);for(var m=0,w=l.length;u!=null&&m<w;)u=u[rs(l[m++])];return m&&m==w?u:e}function wE(u,l,m){var w=l(u);return Ct(u)?w:Eo(w,m(u))}function Xn(u){return u==null?u===e?Ft:me:Iu&&Iu in Sr(u)?jH(u):KH(u)}function Cy(u,l){return u>l}function eH(u,l){return u!=null&&vr.call(u,l)}function tH(u,l){return u!=null&&l in Sr(u)}function rH(u,l,m){return u>=jn(l,m)&&u<un(l,m)}function Py(u,l,m){for(var w=m?dy:tm,E=u[0].length,C=u.length,J=C,ie=be(C),fe=1/0,Ce=[];J--;){var Ie=u[J];J&&l&&(Ie=Rr(Ie,Oi(l))),fe=jn(Ie.length,fe),ie[J]=!m&&(l||E>=120&&Ie.length>=120)?new Fu(J&&Ie):e}Ie=u[0];var qe=-1,We=ie[0];e:for(;++qe<E&&Ce.length<fe;){var pt=Ie[qe],xt=l?l(pt):pt;if(pt=m||pt!==0?pt:0,!(We?Hp(We,xt):w(Ce,xt,m))){for(J=C;--J;){var Ut=ie[J];if(!(Ut?Hp(Ut,xt):w(u[J],xt,m)))continue e}We&&We.push(xt),Ce.push(pt)}}return Ce}function nH(u,l,m,w){return es(u,function(E,C,J){l(w,m(E),C,J)}),w}function Qp(u,l,m){l=Do(l,u),u=o5(u,l);var w=u==null?u:u[rs(oa(l))];return w==null?e:Ti(w,u,m)}function _E(u){return zr(u)&&Xn(u)==V}function iH(u){return zr(u)&&Xn(u)==kr}function aH(u){return zr(u)&&Xn(u)==$}function Zp(u,l,m,w,E){return u===l?!0:u==null||l==null||!zr(u)&&!zr(l)?u!==u&&l!==l:sH(u,l,m,w,Zp,E)}function sH(u,l,m,w,E,C){var J=Ct(u),ie=Ct(l),fe=J?ce:Nn(u),Ce=ie?ce:Nn(l);fe=fe==V?Se:fe,Ce=Ce==V?Se:Ce;var Ie=fe==Se,qe=Ce==Se,We=fe==Ce;if(We&&Po(u)){if(!Po(l))return!1;J=!0,Ie=!1}if(We&&!Ie)return C||(C=new Oa),J||sl(u)?e5(u,l,m,w,E,C):RH(u,l,fe,m,w,E,C);if(!(m&h)){var pt=Ie&&vr.call(u,"__wrapped__"),xt=qe&&vr.call(l,"__wrapped__");if(pt||xt){var Ut=pt?u.value():u,Et=xt?l.value():l;return C||(C=new Oa),E(Ut,Et,m,w,C)}}return We?(C||(C=new Oa),FH(u,l,m,w,E,C)):!1}function oH(u){return zr(u)&&Nn(u)==se}function Iy(u,l,m,w){var E=m.length,C=E,J=!w;if(u==null)return!C;for(u=Sr(u);E--;){var ie=m[E];if(J&&ie[2]?ie[1]!==u[ie[0]]:!(ie[0]in u))return!1}for(;++E<C;){ie=m[E];var fe=ie[0],Ce=u[fe],Ie=ie[1];if(J&&ie[2]){if(Ce===e&&!(fe in u))return!1}else{var qe=new Oa;if(w)var We=w(Ce,Ie,fe,u,l,qe);if(!(We===e?Zp(Ie,Ce,h|g,w,qe):We))return!1}}return!0}function xE(u){if(!Nr(u)||zH(u))return!1;var l=Bs(u)?oz:or;return l.test(Lu(u))}function uH(u){return zr(u)&&Xn(u)==Le}function cH(u){return zr(u)&&Nn(u)==Ne}function lH(u){return zr(u)&&qm(u.length)&&!!Dr[Xn(u)]}function EE(u){return typeof u=="function"?u:u==null?mi:typeof u=="object"?Ct(u)?AE(u[0],u[1]):kE(u):V5(u)}function Ry(u){if(!rf(u))return dz(u);var l=[];for(var m in Sr(u))vr.call(u,m)&&m!="constructor"&&l.push(m);return l}function pH(u){if(!Nr(u))return WH(u);var l=rf(u),m=[];for(var w in u)w=="constructor"&&(l||!vr.call(u,w))||m.push(w);return m}function Fy(u,l){return u<l}function SE(u,l){var m=-1,w=di(u)?be(u.length):[];return To(u,function(E,C,J){w[++m]=l(E,C,J)}),w}function kE(u){var l=Yy(u);return l.length==1&&l[0][2]?a5(l[0][0],l[0][1]):function(m){return m===u||Iy(m,u,l)}}function AE(u,l){return Xy(u)&&i5(l)?a5(rs(u),l):function(m){var w=o2(m,u);return w===e&&w===l?u2(m,u):Zp(l,w,h|g)}}function _m(u,l,m,w,E){u!==l&&Oy(l,function(C,J){if(E||(E=new Oa),Nr(C))fH(u,l,J,m,_m,w,E);else{var ie=w?w(Zy(u,J),C,J+"",u,l,E):e;ie===e&&(ie=C),Ay(u,J,ie)}},hi)}function fH(u,l,m,w,E,C,J){var ie=Zy(u,m),fe=Zy(l,m),Ce=J.get(fe);if(Ce){Ay(u,m,Ce);return}var Ie=C?C(ie,fe,m+"",u,l,J):e,qe=Ie===e;if(qe){var We=Ct(fe),pt=!We&&Po(fe),xt=!We&&!pt&&sl(fe);Ie=fe,We||pt||xt?Ct(ie)?Ie=ie:Yr(ie)?Ie=fi(ie):pt?(qe=!1,Ie=LE(fe,!0)):xt?(qe=!1,Ie=$E(fe,!0)):Ie=[]:af(fe)||$u(fe)?(Ie=ie,$u(ie)?Ie=j5(ie):(!Nr(ie)||Bs(ie))&&(Ie=n5(fe))):qe=!1}qe&&(J.set(fe,Ie),E(Ie,fe,w,C,J),J.delete(fe)),Ay(u,m,Ie)}function TE(u,l){var m=u.length;if(m)return l+=l<0?m:0,$s(l,m)?u[l]:e}function OE(u,l,m){l.length?l=Rr(l,function(C){return Ct(C)?function(J){return Nu(J,C.length===1?C[0]:C)}:C}):l=[mi];var w=-1;l=Rr(l,Oi(yt()));var E=SE(u,function(C,J,ie){var fe=Rr(l,function(Ce){return Ce(C)});return{criteria:fe,index:++w,value:C}});return $U(E,function(C,J){return kH(C,J,m)})}function dH(u,l){return DE(u,l,function(m,w){return u2(u,w)})}function DE(u,l,m){for(var w=-1,E=l.length,C={};++w<E;){var J=l[w],ie=Nu(u,J);m(ie,J)&&ef(C,Do(J,u),ie)}return C}function hH(u){return function(l){return Nu(l,u)}}function jy(u,l,m,w){var E=w?LU:Jc,C=-1,J=l.length,ie=u;for(u===l&&(l=fi(l)),m&&(ie=Rr(u,Oi(m)));++C<J;)for(var fe=0,Ce=l[C],Ie=m?m(Ce):Ce;(fe=E(ie,Ie,fe,w))>-1;)ie!==u&&pm.call(ie,fe,1),pm.call(u,fe,1);return u}function CE(u,l){for(var m=u?l.length:0,w=m-1;m--;){var E=l[m];if(m==w||E!==C){var C=E;$s(E)?pm.call(u,E,1):$y(u,E)}}return u}function Ny(u,l){return u+hm(lE()*(l-u+1))}function mH(u,l,m,w){for(var E=-1,C=un(dm((l-u)/(m||1)),0),J=be(C);C--;)J[w?C:++E]=u,u+=m;return J}function qy(u,l){var m="";if(!u||l<1||l>ue)return m;do l%2&&(m+=u),l=hm(l/2),l&&(u+=u);while(l);return m}function Wt(u,l){return e2(s5(u,l,mi),u+"")}function gH(u){return dE(ol(u))}function vH(u,l){var m=ol(u);return Pm(m,ju(l,0,m.length))}function ef(u,l,m,w){if(!Nr(u))return u;l=Do(l,u);for(var E=-1,C=l.length,J=C-1,ie=u;ie!=null&&++E<C;){var fe=rs(l[E]),Ce=m;if(fe==="__proto__"||fe==="constructor"||fe==="prototype")return u;if(E!=J){var Ie=ie[fe];Ce=w?w(Ie,fe,ie):e,Ce===e&&(Ce=Nr(Ie)?Ie:$s(l[E+1])?[]:{})}Jp(ie,fe,Ce),ie=ie[fe]}return u}var PE=mm?function(u,l){return mm.set(u,l),u}:mi,yH=fm?function(u,l){return fm(u,"toString",{configurable:!0,enumerable:!1,value:l2(l),writable:!0})}:mi;function bH(u){return Pm(ol(u))}function sa(u,l,m){var w=-1,E=u.length;l<0&&(l=-l>E?0:E+l),m=m>E?E:m,m<0&&(m+=E),E=l>m?0:m-l>>>0,l>>>=0;for(var C=be(E);++w<E;)C[w]=u[w+l];return C}function wH(u,l){var m;return To(u,function(w,E,C){return m=l(w,E,C),!m}),!!m}function xm(u,l,m){var w=0,E=u==null?w:u.length;if(typeof l=="number"&&l===l&&E<=xe){for(;w<E;){var C=w+E>>>1,J=u[C];J!==null&&!Ci(J)&&(m?J<=l:J<l)?w=C+1:E=C}return E}return Ly(u,l,mi,m)}function Ly(u,l,m,w){var E=0,C=u==null?0:u.length;if(C===0)return 0;l=m(l);for(var J=l!==l,ie=l===null,fe=Ci(l),Ce=l===e;E<C;){var Ie=hm((E+C)/2),qe=m(u[Ie]),We=qe!==e,pt=qe===null,xt=qe===qe,Ut=Ci(qe);if(J)var Et=w||xt;else Ce?Et=xt&&(w||We):ie?Et=xt&&We&&(w||!pt):fe?Et=xt&&We&&!pt&&(w||!Ut):pt||Ut?Et=!1:Et=w?qe<=l:qe<l;Et?E=Ie+1:C=Ie}return jn(C,de)}function IE(u,l){for(var m=-1,w=u.length,E=0,C=[];++m<w;){var J=u[m],ie=l?l(J):J;if(!m||!Da(ie,fe)){var fe=ie;C[E++]=J===0?0:J}}return C}function RE(u){return typeof u=="number"?u:Ci(u)?ne:+u}function Di(u){if(typeof u=="string")return u;if(Ct(u))return Rr(u,Di)+"";if(Ci(u))return pE?pE.call(u):"";var l=u+"";return l=="0"&&1/u==-re?"-0":l}function Oo(u,l,m){var w=-1,E=tm,C=u.length,J=!0,ie=[],fe=ie;if(m)J=!1,E=dy;else if(C>=r){var Ce=l?null:PH(u);if(Ce)return nm(Ce);J=!1,E=Hp,fe=new Fu}else fe=l?[]:ie;e:for(;++w<C;){var Ie=u[w],qe=l?l(Ie):Ie;if(Ie=m||Ie!==0?Ie:0,J&&qe===qe){for(var We=fe.length;We--;)if(fe[We]===qe)continue e;l&&fe.push(qe),ie.push(Ie)}else E(fe,qe,m)||(fe!==ie&&fe.push(qe),ie.push(Ie))}return ie}function $y(u,l){return l=Do(l,u),u=o5(u,l),u==null||delete u[rs(oa(l))]}function FE(u,l,m,w){return ef(u,l,m(Nu(u,l)),w)}function Em(u,l,m,w){for(var E=u.length,C=w?E:-1;(w?C--:++C<E)&&l(u[C],C,u););return m?sa(u,w?0:C,w?C+1:E):sa(u,w?C+1:0,w?E:C)}function jE(u,l){var m=u;return m instanceof Xt&&(m=m.value()),hy(l,function(w,E){return E.func.apply(E.thisArg,Eo([w],E.args))},m)}function By(u,l,m){var w=u.length;if(w<2)return w?Oo(u[0]):[];for(var E=-1,C=be(w);++E<w;)for(var J=u[E],ie=-1;++ie<w;)ie!=E&&(C[E]=Xp(C[E]||J,u[ie],l,m));return Oo(An(C,1),l,m)}function NE(u,l,m){for(var w=-1,E=u.length,C=l.length,J={};++w<E;){var ie=w<C?l[w]:e;m(J,u[w],ie)}return J}function My(u){return Yr(u)?u:[]}function Uy(u){return typeof u=="function"?u:mi}function Do(u,l){return Ct(u)?u:Xy(u,l)?[u]:p5(mr(u))}var _H=Wt;function Co(u,l,m){var w=u.length;return m=m===e?w:m,!l&&m>=w?u:sa(u,l,m)}var qE=uz||function(u){return gn.clearTimeout(u)};function LE(u,l){if(l)return u.slice();var m=u.length,w=aE?aE(m):new u.constructor(m);return u.copy(w),w}function zy(u){var l=new u.constructor(u.byteLength);return new cm(l).set(new cm(u)),l}function xH(u,l){var m=l?zy(u.buffer):u.buffer;return new u.constructor(m,u.byteOffset,u.byteLength)}function EH(u){var l=new u.constructor(u.source,nt.exec(u));return l.lastIndex=u.lastIndex,l}function SH(u){return Yp?Sr(Yp.call(u)):{}}function $E(u,l){var m=l?zy(u.buffer):u.buffer;return new u.constructor(m,u.byteOffset,u.length)}function BE(u,l){if(u!==l){var m=u!==e,w=u===null,E=u===u,C=Ci(u),J=l!==e,ie=l===null,fe=l===l,Ce=Ci(l);if(!ie&&!Ce&&!C&&u>l||C&&J&&fe&&!ie&&!Ce||w&&J&&fe||!m&&fe||!E)return 1;if(!w&&!C&&!Ce&&u<l||Ce&&m&&E&&!w&&!C||ie&&m&&E||!J&&E||!fe)return-1}return 0}function kH(u,l,m){for(var w=-1,E=u.criteria,C=l.criteria,J=E.length,ie=m.length;++w<J;){var fe=BE(E[w],C[w]);if(fe){if(w>=ie)return fe;var Ce=m[w];return fe*(Ce=="desc"?-1:1)}}return u.index-l.index}function ME(u,l,m,w){for(var E=-1,C=u.length,J=m.length,ie=-1,fe=l.length,Ce=un(C-J,0),Ie=be(fe+Ce),qe=!w;++ie<fe;)Ie[ie]=l[ie];for(;++E<J;)(qe||E<C)&&(Ie[m[E]]=u[E]);for(;Ce--;)Ie[ie++]=u[E++];return Ie}function UE(u,l,m,w){for(var E=-1,C=u.length,J=-1,ie=m.length,fe=-1,Ce=l.length,Ie=un(C-ie,0),qe=be(Ie+Ce),We=!w;++E<Ie;)qe[E]=u[E];for(var pt=E;++fe<Ce;)qe[pt+fe]=l[fe];for(;++J<ie;)(We||E<C)&&(qe[pt+m[J]]=u[E++]);return qe}function fi(u,l){var m=-1,w=u.length;for(l||(l=be(w));++m<w;)l[m]=u[m];return l}function ts(u,l,m,w){var E=!m;m||(m={});for(var C=-1,J=l.length;++C<J;){var ie=l[C],fe=w?w(m[ie],u[ie],ie,m,u):e;fe===e&&(fe=u[ie]),E?Ns(m,ie,fe):Jp(m,ie,fe)}return m}function AH(u,l){return ts(u,Jy(u),l)}function TH(u,l){return ts(u,t5(u),l)}function Sm(u,l){return function(m,w){var E=Ct(m)?IU:Yz,C=l?l():{};return E(m,u,yt(w,2),C)}}function nl(u){return Wt(function(l,m){var w=-1,E=m.length,C=E>1?m[E-1]:e,J=E>2?m[2]:e;for(C=u.length>3&&typeof C=="function"?(E--,C):e,J&&Qn(m[0],m[1],J)&&(C=E<3?e:C,E=1),l=Sr(l);++w<E;){var ie=m[w];ie&&u(l,ie,w,C)}return l})}function zE(u,l){return function(m,w){if(m==null)return m;if(!di(m))return u(m,w);for(var E=m.length,C=l?E:-1,J=Sr(m);(l?C--:++C<E)&&w(J[C],C,J)!==!1;);return m}}function HE(u){return function(l,m,w){for(var E=-1,C=Sr(l),J=w(l),ie=J.length;ie--;){var fe=J[u?ie:++E];if(m(C[fe],fe,C)===!1)break}return l}}function OH(u,l,m){var w=l&v,E=tf(u);function C(){var J=this&&this!==gn&&this instanceof C?E:u;return J.apply(w?m:this,arguments)}return C}function VE(u){return function(l){l=mr(l);var m=Xc(l)?Ta(l):e,w=m?m[0]:l.charAt(0),E=m?Co(m,1).join(""):l.slice(1);return w[u]()+E}}function il(u){return function(l){return hy(z5(U5(l).replace(Zh,"")),u,"")}}function tf(u){return function(){var l=arguments;switch(l.length){case 0:return new u;case 1:return new u(l[0]);case 2:return new u(l[0],l[1]);case 3:return new u(l[0],l[1],l[2]);case 4:return new u(l[0],l[1],l[2],l[3]);case 5:return new u(l[0],l[1],l[2],l[3],l[4]);case 6:return new u(l[0],l[1],l[2],l[3],l[4],l[5]);case 7:return new u(l[0],l[1],l[2],l[3],l[4],l[5],l[6])}var m=rl(u.prototype),w=u.apply(m,l);return Nr(w)?w:m}}function DH(u,l,m){var w=tf(u);function E(){for(var C=arguments.length,J=be(C),ie=C,fe=al(E);ie--;)J[ie]=arguments[ie];var Ce=C<3&&J[0]!==fe&&J[C-1]!==fe?[]:So(J,fe);if(C-=Ce.length,C<m)return JE(u,l,km,E.placeholder,e,J,Ce,e,e,m-C);var Ie=this&&this!==gn&&this instanceof E?w:u;return Ti(Ie,this,J)}return E}function GE(u){return function(l,m,w){var E=Sr(l);if(!di(l)){var C=yt(m,3);l=vn(l),m=function(ie){return C(E[ie],ie,E)}}var J=u(l,m,w);return J>-1?E[C?l[J]:J]:e}}function WE(u){return Ls(function(l){var m=l.length,w=m,E=ia.prototype.thru;for(u&&l.reverse();w--;){var C=l[w];if(typeof C!="function")throw new na(i);if(E&&!J&&Dm(C)=="wrapper")var J=new ia([],!0)}for(w=J?w:m;++w<m;){C=l[w];var ie=Dm(C),fe=ie=="wrapper"?Ky(C):e;fe&&Qy(fe[0])&&fe[1]==(H|x|D|F)&&!fe[4].length&&fe[9]==1?J=J[Dm(fe[0])].apply(J,fe[3]):J=C.length==1&&Qy(C)?J[ie]():J.thru(C)}return function(){var Ce=arguments,Ie=Ce[0];if(J&&Ce.length==1&&Ct(Ie))return J.plant(Ie).value();for(var qe=0,We=m?l[qe].apply(this,Ce):Ie;++qe<m;)We=l[qe].call(this,We);return We}})}function km(u,l,m,w,E,C,J,ie,fe,Ce){var Ie=l&H,qe=l&v,We=l&y,pt=l&(x|A),xt=l&z,Ut=We?e:tf(u);function Et(){for(var Yt=arguments.length,Qt=be(Yt),Pi=Yt;Pi--;)Qt[Pi]=arguments[Pi];if(pt)var Zn=al(Et),Ii=MU(Qt,Zn);if(w&&(Qt=ME(Qt,w,E,pt)),C&&(Qt=UE(Qt,C,J,pt)),Yt-=Ii,pt&&Yt<Ce){var Jr=So(Qt,Zn);return JE(u,l,km,Et.placeholder,m,Qt,Jr,ie,fe,Ce-Yt)}var Ca=qe?m:this,Us=We?Ca[u]:u;return Yt=Qt.length,ie?Qt=YH(Qt,ie):xt&&Yt>1&&Qt.reverse(),Ie&&fe<Yt&&(Qt.length=fe),this&&this!==gn&&this instanceof Et&&(Us=Ut||tf(Us)),Us.apply(Ca,Qt)}return Et}function KE(u,l){return function(m,w){return nH(m,u,l(w),{})}}function Am(u,l){return function(m,w){var E;if(m===e&&w===e)return l;if(m!==e&&(E=m),w!==e){if(E===e)return w;typeof m=="string"||typeof w=="string"?(m=Di(m),w=Di(w)):(m=RE(m),w=RE(w)),E=u(m,w)}return E}}function Hy(u){return Ls(function(l){return l=Rr(l,Oi(yt())),Wt(function(m){var w=this;return u(l,function(E){return Ti(E,w,m)})})})}function Tm(u,l){l=l===e?" ":Di(l);var m=l.length;if(m<2)return m?qy(l,u):l;var w=qy(l,dm(u/Qc(l)));return Xc(l)?Co(Ta(w),0,u).join(""):w.slice(0,u)}function CH(u,l,m,w){var E=l&v,C=tf(u);function J(){for(var ie=-1,fe=arguments.length,Ce=-1,Ie=w.length,qe=be(Ie+fe),We=this&&this!==gn&&this instanceof J?C:u;++Ce<Ie;)qe[Ce]=w[Ce];for(;fe--;)qe[Ce++]=arguments[++ie];return Ti(We,E?m:this,qe)}return J}function YE(u){return function(l,m,w){return w&&typeof w!="number"&&Qn(l,m,w)&&(m=w=e),l=Ms(l),m===e?(m=l,l=0):m=Ms(m),w=w===e?l<m?1:-1:Ms(w),mH(l,m,w,u)}}function Om(u){return function(l,m){return typeof l=="string"&&typeof m=="string"||(l=ua(l),m=ua(m)),u(l,m)}}function JE(u,l,m,w,E,C,J,ie,fe,Ce){var Ie=l&x,qe=Ie?J:e,We=Ie?e:J,pt=Ie?C:e,xt=Ie?e:C;l|=Ie?D:j,l&=~(Ie?j:D),l&_||(l&=~(v|y));var Ut=[u,l,E,pt,qe,xt,We,ie,fe,Ce],Et=m.apply(e,Ut);return Qy(u)&&u5(Et,Ut),Et.placeholder=w,c5(Et,u,l)}function Vy(u){var l=on[u];return function(m,w){if(m=ua(m),w=w==null?0:jn(qt(w),292),w&&cE(m)){var E=(mr(m)+"e").split("e"),C=l(E[0]+"e"+(+E[1]+w));return E=(mr(C)+"e").split("e"),+(E[0]+"e"+(+E[1]-w))}return l(m)}}var PH=el&&1/nm(new el([,-0]))[1]==re?function(u){return new el(u)}:d2;function XE(u){return function(l){var m=Nn(l);return m==se?_y(l):m==Ne?KU(l):BU(l,u(l))}}function qs(u,l,m,w,E,C,J,ie){var fe=l&y;if(!fe&&typeof u!="function")throw new na(i);var Ce=w?w.length:0;if(Ce||(l&=~(D|j),w=E=e),J=J===e?J:un(qt(J),0),ie=ie===e?ie:qt(ie),Ce-=E?E.length:0,l&j){var Ie=w,qe=E;w=E=e}var We=fe?e:Ky(u),pt=[u,l,m,w,E,Ie,qe,C,J,ie];if(We&&GH(pt,We),u=pt[0],l=pt[1],m=pt[2],w=pt[3],E=pt[4],ie=pt[9]=pt[9]===e?fe?0:u.length:un(pt[9]-Ce,0),!ie&&l&(x|A)&&(l&=~(x|A)),!l||l==v)var xt=OH(u,l,m);else l==x||l==A?xt=DH(u,l,ie):(l==D||l==(v|D))&&!E.length?xt=CH(u,l,m,w):xt=km.apply(e,pt);var Ut=We?PE:u5;return c5(Ut(xt,pt),u,l)}function QE(u,l,m,w){return u===e||Da(u,Zc[m])&&!vr.call(w,m)?l:u}function ZE(u,l,m,w,E,C){return Nr(u)&&Nr(l)&&(C.set(l,u),_m(u,l,e,ZE,C),C.delete(l)),u}function IH(u){return af(u)?e:u}function e5(u,l,m,w,E,C){var J=m&h,ie=u.length,fe=l.length;if(ie!=fe&&!(J&&fe>ie))return!1;var Ce=C.get(u),Ie=C.get(l);if(Ce&&Ie)return Ce==l&&Ie==u;var qe=-1,We=!0,pt=m&g?new Fu:e;for(C.set(u,l),C.set(l,u);++qe<ie;){var xt=u[qe],Ut=l[qe];if(w)var Et=J?w(Ut,xt,qe,l,u,C):w(xt,Ut,qe,u,l,C);if(Et!==e){if(Et)continue;We=!1;break}if(pt){if(!my(l,function(Yt,Qt){if(!Hp(pt,Qt)&&(xt===Yt||E(xt,Yt,m,w,C)))return pt.push(Qt)})){We=!1;break}}else if(!(xt===Ut||E(xt,Ut,m,w,C))){We=!1;break}}return C.delete(u),C.delete(l),We}function RH(u,l,m,w,E,C,J){switch(m){case dr:if(u.byteLength!=l.byteLength||u.byteOffset!=l.byteOffset)return!1;u=u.buffer,l=l.buffer;case kr:return!(u.byteLength!=l.byteLength||!C(new cm(u),new cm(l)));case R:case $:case ae:return Da(+u,+l);case S:return u.name==l.name&&u.message==l.message;case Le:case Ve:return u==l+"";case se:var ie=_y;case Ne:var fe=w&h;if(ie||(ie=nm),u.size!=l.size&&!fe)return!1;var Ce=J.get(u);if(Ce)return Ce==l;w|=g,J.set(u,l);var Ie=e5(ie(u),ie(l),w,E,C,J);return J.delete(u),Ie;case kt:if(Yp)return Yp.call(u)==Yp.call(l)}return!1}function FH(u,l,m,w,E,C){var J=m&h,ie=Gy(u),fe=ie.length,Ce=Gy(l),Ie=Ce.length;if(fe!=Ie&&!J)return!1;for(var qe=fe;qe--;){var We=ie[qe];if(!(J?We in l:vr.call(l,We)))return!1}var pt=C.get(u),xt=C.get(l);if(pt&&xt)return pt==l&&xt==u;var Ut=!0;C.set(u,l),C.set(l,u);for(var Et=J;++qe<fe;){We=ie[qe];var Yt=u[We],Qt=l[We];if(w)var Pi=J?w(Qt,Yt,We,l,u,C):w(Yt,Qt,We,u,l,C);if(!(Pi===e?Yt===Qt||E(Yt,Qt,m,w,C):Pi)){Ut=!1;break}Et||(Et=We=="constructor")}if(Ut&&!Et){var Zn=u.constructor,Ii=l.constructor;Zn!=Ii&&"constructor"in u&&"constructor"in l&&!(typeof Zn=="function"&&Zn instanceof Zn&&typeof Ii=="function"&&Ii instanceof Ii)&&(Ut=!1)}return C.delete(u),C.delete(l),Ut}function Ls(u){return e2(s5(u,e,m5),u+"")}function Gy(u){return wE(u,vn,Jy)}function Wy(u){return wE(u,hi,t5)}var Ky=mm?function(u){return mm.get(u)}:d2;function Dm(u){for(var l=u.name+"",m=tl[l],w=vr.call(tl,l)?m.length:0;w--;){var E=m[w],C=E.func;if(C==null||C==u)return E.name}return l}function al(u){var l=vr.call(T,"placeholder")?T:u;return l.placeholder}function yt(){var u=T.iteratee||p2;return u=u===p2?EE:u,arguments.length?u(arguments[0],arguments[1]):u}function Cm(u,l){var m=u.__data__;return UH(l)?m[typeof l=="string"?"string":"hash"]:m.map}function Yy(u){for(var l=vn(u),m=l.length;m--;){var w=l[m],E=u[w];l[m]=[w,E,i5(E)]}return l}function qu(u,l){var m=VU(u,l);return xE(m)?m:e}function jH(u){var l=vr.call(u,Iu),m=u[Iu];try{u[Iu]=e;var w=!0}catch{}var E=om.call(u);return w&&(l?u[Iu]=m:delete u[Iu]),E}var Jy=Ey?function(u){return u==null?[]:(u=Sr(u),xo(Ey(u),function(l){return oE.call(u,l)}))}:h2,t5=Ey?function(u){for(var l=[];u;)Eo(l,Jy(u)),u=lm(u);return l}:h2,Nn=Xn;(Sy&&Nn(new Sy(new ArrayBuffer(1)))!=dr||Gp&&Nn(new Gp)!=se||ky&&Nn(ky.resolve())!=Ee||el&&Nn(new el)!=Ne||Wp&&Nn(new Wp)!=rr)&&(Nn=function(u){var l=Xn(u),m=l==Se?u.constructor:e,w=m?Lu(m):"";if(w)switch(w){case vz:return dr;case yz:return se;case bz:return Ee;case wz:return Ne;case _z:return rr}return l});function NH(u,l,m){for(var w=-1,E=m.length;++w<E;){var C=m[w],J=C.size;switch(C.type){case"drop":u+=J;break;case"dropRight":l-=J;break;case"take":l=jn(l,u+J);break;case"takeRight":u=un(u,l-J);break}}return{start:u,end:l}}function qH(u){var l=u.match(W);return l?l[1].split(k):[]}function r5(u,l,m){l=Do(l,u);for(var w=-1,E=l.length,C=!1;++w<E;){var J=rs(l[w]);if(!(C=u!=null&&m(u,J)))break;u=u[J]}return C||++w!=E?C:(E=u==null?0:u.length,!!E&&qm(E)&&$s(J,E)&&(Ct(u)||$u(u)))}function LH(u){var l=u.length,m=new u.constructor(l);return l&&typeof u[0]=="string"&&vr.call(u,"index")&&(m.index=u.index,m.input=u.input),m}function n5(u){return typeof u.constructor=="function"&&!rf(u)?rl(lm(u)):{}}function $H(u,l,m){var w=u.constructor;switch(l){case kr:return zy(u);case R:case $:return new w(+u);case dr:return xH(u,m);case $t:case $e:case Ue:case ct:case ut:case Dt:case Zt:case hr:case Bt:return $E(u,m);case se:return new w;case ae:case Ve:return new w(u);case Le:return EH(u);case Ne:return new w;case kt:return SH(u)}}function BH(u,l){var m=l.length;if(!m)return u;var w=m-1;return l[w]=(m>1?"& ":"")+l[w],l=l.join(m>2?", ":" "),u.replace(Y,`{
/* [wrapped with `+l+`] */
`)}function MH(u){return Ct(u)||$u(u)||!!(uE&&u&&u[uE])}function $s(u,l){var m=typeof u;return l=l??ue,!!l&&(m=="number"||m!="symbol"&&Ht.test(u))&&u>-1&&u%1==0&&u<l}function Qn(u,l,m){if(!Nr(m))return!1;var w=typeof l;return(w=="number"?di(m)&&$s(l,m.length):w=="string"&&l in m)?Da(m[l],u):!1}function Xy(u,l){if(Ct(u))return!1;var m=typeof u;return m=="number"||m=="symbol"||m=="boolean"||u==null||Ci(u)?!0:fc.test(u)||!Yc.test(u)||l!=null&&u in Sr(l)}function UH(u){var l=typeof u;return l=="string"||l=="number"||l=="symbol"||l=="boolean"?u!=="__proto__":u===null}function Qy(u){var l=Dm(u),m=T[l];if(typeof m!="function"||!(l in Xt.prototype))return!1;if(u===m)return!0;var w=Ky(m);return!!w&&u===w[0]}function zH(u){return!!iE&&iE in u}var HH=am?Bs:m2;function rf(u){var l=u&&u.constructor,m=typeof l=="function"&&l.prototype||Zc;return u===m}function i5(u){return u===u&&!Nr(u)}function a5(u,l){return function(m){return m==null?!1:m[u]===l&&(l!==e||u in Sr(m))}}function VH(u){var l=jm(u,function(w){return m.size===o&&m.clear(),w}),m=l.cache;return l}function GH(u,l){var m=u[1],w=l[1],E=m|w,C=E<(v|y|H),J=w==H&&m==x||w==H&&m==F&&u[7].length<=l[8]||w==(H|F)&&l[7].length<=l[8]&&m==x;if(!(C||J))return u;w&v&&(u[2]=l[2],E|=m&v?0:_);var ie=l[3];if(ie){var fe=u[3];u[3]=fe?ME(fe,ie,l[4]):ie,u[4]=fe?So(u[3],c):l[4]}return ie=l[5],ie&&(fe=u[5],u[5]=fe?UE(fe,ie,l[6]):ie,u[6]=fe?So(u[5],c):l[6]),ie=l[7],ie&&(u[7]=ie),w&H&&(u[8]=u[8]==null?l[8]:jn(u[8],l[8])),u[9]==null&&(u[9]=l[9]),u[0]=l[0],u[1]=E,u}function WH(u){var l=[];if(u!=null)for(var m in Sr(u))l.push(m);return l}function KH(u){return om.call(u)}function s5(u,l,m){return l=un(l===e?u.length-1:l,0),function(){for(var w=arguments,E=-1,C=un(w.length-l,0),J=be(C);++E<C;)J[E]=w[l+E];E=-1;for(var ie=be(l+1);++E<l;)ie[E]=w[E];return ie[l]=m(J),Ti(u,this,ie)}}function o5(u,l){return l.length<2?u:Nu(u,sa(l,0,-1))}function YH(u,l){for(var m=u.length,w=jn(l.length,m),E=fi(u);w--;){var C=l[w];u[w]=$s(C,m)?E[C]:e}return u}function Zy(u,l){if(!(l==="constructor"&&typeof u[l]=="function")&&l!="__proto__")return u[l]}var u5=l5(PE),nf=lz||function(u,l){return gn.setTimeout(u,l)},e2=l5(yH);function c5(u,l,m){var w=l+"";return e2(u,BH(w,JH(qH(w),m)))}function l5(u){var l=0,m=0;return function(){var w=hz(),E=L-(w-m);if(m=w,E>0){if(++l>=K)return arguments[0]}else l=0;return u.apply(e,arguments)}}function Pm(u,l){var m=-1,w=u.length,E=w-1;for(l=l===e?w:l;++m<l;){var C=Ny(m,E),J=u[C];u[C]=u[m],u[m]=J}return u.length=l,u}var p5=VH(function(u){var l=[];return u.charCodeAt(0)===46&&l.push(""),u.replace(Il,function(m,w,E,C){l.push(E?C.replace(Be,"$1"):w||m)}),l});function rs(u){if(typeof u=="string"||Ci(u))return u;var l=u+"";return l=="0"&&1/u==-re?"-0":l}function Lu(u){if(u!=null){try{return sm.call(u)}catch{}try{return u+""}catch{}}return""}function JH(u,l){return ra(ge,function(m){var w="_."+m[0];l&m[1]&&!tm(u,w)&&u.push(w)}),u.sort()}function f5(u){if(u instanceof Xt)return u.clone();var l=new ia(u.__wrapped__,u.__chain__);return l.__actions__=fi(u.__actions__),l.__index__=u.__index__,l.__values__=u.__values__,l}function XH(u,l,m){(m?Qn(u,l,m):l===e)?l=1:l=un(qt(l),0);var w=u==null?0:u.length;if(!w||l<1)return[];for(var E=0,C=0,J=be(dm(w/l));E<w;)J[C++]=sa(u,E,E+=l);return J}function QH(u){for(var l=-1,m=u==null?0:u.length,w=0,E=[];++l<m;){var C=u[l];C&&(E[w++]=C)}return E}function ZH(){var u=arguments.length;if(!u)return[];for(var l=be(u-1),m=arguments[0],w=u;w--;)l[w-1]=arguments[w];return Eo(Ct(m)?fi(m):[m],An(l,1))}var eV=Wt(function(u,l){return Yr(u)?Xp(u,An(l,1,Yr,!0)):[]}),tV=Wt(function(u,l){var m=oa(l);return Yr(m)&&(m=e),Yr(u)?Xp(u,An(l,1,Yr,!0),yt(m,2)):[]}),rV=Wt(function(u,l){var m=oa(l);return Yr(m)&&(m=e),Yr(u)?Xp(u,An(l,1,Yr,!0),e,m):[]});function nV(u,l,m){var w=u==null?0:u.length;return w?(l=m||l===e?1:qt(l),sa(u,l<0?0:l,w)):[]}function iV(u,l,m){var w=u==null?0:u.length;return w?(l=m||l===e?1:qt(l),l=w-l,sa(u,0,l<0?0:l)):[]}function aV(u,l){return u&&u.length?Em(u,yt(l,3),!0,!0):[]}function sV(u,l){return u&&u.length?Em(u,yt(l,3),!0):[]}function oV(u,l,m,w){var E=u==null?0:u.length;return E?(m&&typeof m!="number"&&Qn(u,l,m)&&(m=0,w=E),Zz(u,l,m,w)):[]}function d5(u,l,m){var w=u==null?0:u.length;if(!w)return-1;var E=m==null?0:qt(m);return E<0&&(E=un(w+E,0)),rm(u,yt(l,3),E)}function h5(u,l,m){var w=u==null?0:u.length;if(!w)return-1;var E=w-1;return m!==e&&(E=qt(m),E=m<0?un(w+E,0):jn(E,w-1)),rm(u,yt(l,3),E,!0)}function m5(u){var l=u==null?0:u.length;return l?An(u,1):[]}function uV(u){var l=u==null?0:u.length;return l?An(u,re):[]}function cV(u,l){var m=u==null?0:u.length;return m?(l=l===e?1:qt(l),An(u,l)):[]}function lV(u){for(var l=-1,m=u==null?0:u.length,w={};++l<m;){var E=u[l];w[E[0]]=E[1]}return w}function g5(u){return u&&u.length?u[0]:e}function pV(u,l,m){var w=u==null?0:u.length;if(!w)return-1;var E=m==null?0:qt(m);return E<0&&(E=un(w+E,0)),Jc(u,l,E)}function fV(u){var l=u==null?0:u.length;return l?sa(u,0,-1):[]}var dV=Wt(function(u){var l=Rr(u,My);return l.length&&l[0]===u[0]?Py(l):[]}),hV=Wt(function(u){var l=oa(u),m=Rr(u,My);return l===oa(m)?l=e:m.pop(),m.length&&m[0]===u[0]?Py(m,yt(l,2)):[]}),mV=Wt(function(u){var l=oa(u),m=Rr(u,My);return l=typeof l=="function"?l:e,l&&m.pop(),m.length&&m[0]===u[0]?Py(m,e,l):[]});function gV(u,l){return u==null?"":fz.call(u,l)}function oa(u){var l=u==null?0:u.length;return l?u[l-1]:e}function vV(u,l,m){var w=u==null?0:u.length;if(!w)return-1;var E=w;return m!==e&&(E=qt(m),E=E<0?un(w+E,0):jn(E,w-1)),l===l?JU(u,l,E):rm(u,Jx,E,!0)}function yV(u,l){return u&&u.length?TE(u,qt(l)):e}var bV=Wt(v5);function v5(u,l){return u&&u.length&&l&&l.length?jy(u,l):u}function wV(u,l,m){return u&&u.length&&l&&l.length?jy(u,l,yt(m,2)):u}function _V(u,l,m){return u&&u.length&&l&&l.length?jy(u,l,e,m):u}var xV=Ls(function(u,l){var m=u==null?0:u.length,w=Ty(u,l);return CE(u,Rr(l,function(E){return $s(E,m)?+E:E}).sort(BE)),w});function EV(u,l){var m=[];if(!(u&&u.length))return m;var w=-1,E=[],C=u.length;for(l=yt(l,3);++w<C;){var J=u[w];l(J,w,u)&&(m.push(J),E.push(w))}return CE(u,E),m}function t2(u){return u==null?u:gz.call(u)}function SV(u,l,m){var w=u==null?0:u.length;return w?(m&&typeof m!="number"&&Qn(u,l,m)?(l=0,m=w):(l=l==null?0:qt(l),m=m===e?w:qt(m)),sa(u,l,m)):[]}function kV(u,l){return xm(u,l)}function AV(u,l,m){return Ly(u,l,yt(m,2))}function TV(u,l){var m=u==null?0:u.length;if(m){var w=xm(u,l);if(w<m&&Da(u[w],l))return w}return-1}function OV(u,l){return xm(u,l,!0)}function DV(u,l,m){return Ly(u,l,yt(m,2),!0)}function CV(u,l){var m=u==null?0:u.length;if(m){var w=xm(u,l,!0)-1;if(Da(u[w],l))return w}return-1}function PV(u){return u&&u.length?IE(u):[]}function IV(u,l){return u&&u.length?IE(u,yt(l,2)):[]}function RV(u){var l=u==null?0:u.length;return l?sa(u,1,l):[]}function FV(u,l,m){return u&&u.length?(l=m||l===e?1:qt(l),sa(u,0,l<0?0:l)):[]}function jV(u,l,m){var w=u==null?0:u.length;return w?(l=m||l===e?1:qt(l),l=w-l,sa(u,l<0?0:l,w)):[]}function NV(u,l){return u&&u.length?Em(u,yt(l,3),!1,!0):[]}function qV(u,l){return u&&u.length?Em(u,yt(l,3)):[]}var LV=Wt(function(u){return Oo(An(u,1,Yr,!0))}),$V=Wt(function(u){var l=oa(u);return Yr(l)&&(l=e),Oo(An(u,1,Yr,!0),yt(l,2))}),BV=Wt(function(u){var l=oa(u);return l=typeof l=="function"?l:e,Oo(An(u,1,Yr,!0),e,l)});function MV(u){return u&&u.length?Oo(u):[]}function UV(u,l){return u&&u.length?Oo(u,yt(l,2)):[]}function zV(u,l){return l=typeof l=="function"?l:e,u&&u.length?Oo(u,e,l):[]}function r2(u){if(!(u&&u.length))return[];var l=0;return u=xo(u,function(m){if(Yr(m))return l=un(m.length,l),!0}),by(l,function(m){return Rr(u,gy(m))})}function y5(u,l){if(!(u&&u.length))return[];var m=r2(u);return l==null?m:Rr(m,function(w){return Ti(l,e,w)})}var HV=Wt(function(u,l){return Yr(u)?Xp(u,l):[]}),VV=Wt(function(u){return By(xo(u,Yr))}),GV=Wt(function(u){var l=oa(u);return Yr(l)&&(l=e),By(xo(u,Yr),yt(l,2))}),WV=Wt(function(u){var l=oa(u);return l=typeof l=="function"?l:e,By(xo(u,Yr),e,l)}),KV=Wt(r2);function YV(u,l){return NE(u||[],l||[],Jp)}function JV(u,l){return NE(u||[],l||[],ef)}var XV=Wt(function(u){var l=u.length,m=l>1?u[l-1]:e;return m=typeof m=="function"?(u.pop(),m):e,y5(u,m)});function b5(u){var l=T(u);return l.__chain__=!0,l}function QV(u,l){return l(u),u}function Im(u,l){return l(u)}var ZV=Ls(function(u){var l=u.length,m=l?u[0]:0,w=this.__wrapped__,E=function(C){return Ty(C,u)};return l>1||this.__actions__.length||!(w instanceof Xt)||!$s(m)?this.thru(E):(w=w.slice(m,+m+(l?1:0)),w.__actions__.push({func:Im,args:[E],thisArg:e}),new ia(w,this.__chain__).thru(function(C){return l&&!C.length&&C.push(e),C}))});function eG(){return b5(this)}function tG(){return new ia(this.value(),this.__chain__)}function rG(){this.__values__===e&&(this.__values__=R5(this.value()));var u=this.__index__>=this.__values__.length,l=u?e:this.__values__[this.__index__++];return{done:u,value:l}}function nG(){return this}function iG(u){for(var l,m=this;m instanceof vm;){var w=f5(m);w.__index__=0,w.__values__=e,l?E.__wrapped__=w:l=w;var E=w;m=m.__wrapped__}return E.__wrapped__=u,l}function aG(){var u=this.__wrapped__;if(u instanceof Xt){var l=u;return this.__actions__.length&&(l=new Xt(this)),l=l.reverse(),l.__actions__.push({func:Im,args:[t2],thisArg:e}),new ia(l,this.__chain__)}return this.thru(t2)}function sG(){return jE(this.__wrapped__,this.__actions__)}var oG=Sm(function(u,l,m){vr.call(u,m)?++u[m]:Ns(u,m,1)});function uG(u,l,m){var w=Ct(u)?Kx:Qz;return m&&Qn(u,l,m)&&(l=e),w(u,yt(l,3))}function cG(u,l){var m=Ct(u)?xo:yE;return m(u,yt(l,3))}var lG=GE(d5),pG=GE(h5);function fG(u,l){return An(Rm(u,l),1)}function dG(u,l){return An(Rm(u,l),re)}function hG(u,l,m){return m=m===e?1:qt(m),An(Rm(u,l),m)}function w5(u,l){var m=Ct(u)?ra:To;return m(u,yt(l,3))}function _5(u,l){var m=Ct(u)?RU:vE;return m(u,yt(l,3))}var mG=Sm(function(u,l,m){vr.call(u,m)?u[m].push(l):Ns(u,m,[l])});function gG(u,l,m,w){u=di(u)?u:ol(u),m=m&&!w?qt(m):0;var E=u.length;return m<0&&(m=un(E+m,0)),Lm(u)?m<=E&&u.indexOf(l,m)>-1:!!E&&Jc(u,l,m)>-1}var vG=Wt(function(u,l,m){var w=-1,E=typeof l=="function",C=di(u)?be(u.length):[];return To(u,function(J){C[++w]=E?Ti(l,J,m):Qp(J,l,m)}),C}),yG=Sm(function(u,l,m){Ns(u,m,l)});function Rm(u,l){var m=Ct(u)?Rr:SE;return m(u,yt(l,3))}function bG(u,l,m,w){return u==null?[]:(Ct(l)||(l=l==null?[]:[l]),m=w?e:m,Ct(m)||(m=m==null?[]:[m]),OE(u,l,m))}var wG=Sm(function(u,l,m){u[m?0:1].push(l)},function(){return[[],[]]});function _G(u,l,m){var w=Ct(u)?hy:Qx,E=arguments.length<3;return w(u,yt(l,4),m,E,To)}function xG(u,l,m){var w=Ct(u)?FU:Qx,E=arguments.length<3;return w(u,yt(l,4),m,E,vE)}function EG(u,l){var m=Ct(u)?xo:yE;return m(u,Nm(yt(l,3)))}function SG(u){var l=Ct(u)?dE:gH;return l(u)}function kG(u,l,m){(m?Qn(u,l,m):l===e)?l=1:l=qt(l);var w=Ct(u)?Wz:vH;return w(u,l)}function AG(u){var l=Ct(u)?Kz:bH;return l(u)}function TG(u){if(u==null)return 0;if(di(u))return Lm(u)?Qc(u):u.length;var l=Nn(u);return l==se||l==Ne?u.size:Ry(u).length}function OG(u,l,m){var w=Ct(u)?my:wH;return m&&Qn(u,l,m)&&(l=e),w(u,yt(l,3))}var DG=Wt(function(u,l){if(u==null)return[];var m=l.length;return m>1&&Qn(u,l[0],l[1])?l=[]:m>2&&Qn(l[0],l[1],l[2])&&(l=[l[0]]),OE(u,An(l,1),[])}),Fm=cz||function(){return gn.Date.now()};function CG(u,l){if(typeof l!="function")throw new na(i);return u=qt(u),function(){if(--u<1)return l.apply(this,arguments)}}function x5(u,l,m){return l=m?e:l,l=u&&l==null?u.length:l,qs(u,H,e,e,e,e,l)}function E5(u,l){var m;if(typeof l!="function")throw new na(i);return u=qt(u),function(){return--u>0&&(m=l.apply(this,arguments)),u<=1&&(l=e),m}}var n2=Wt(function(u,l,m){var w=v;if(m.length){var E=So(m,al(n2));w|=D}return qs(u,w,l,m,E)}),S5=Wt(function(u,l,m){var w=v|y;if(m.length){var E=So(m,al(S5));w|=D}return qs(l,w,u,m,E)});function k5(u,l,m){l=m?e:l;var w=qs(u,x,e,e,e,e,e,l);return w.placeholder=k5.placeholder,w}function A5(u,l,m){l=m?e:l;var w=qs(u,A,e,e,e,e,e,l);return w.placeholder=A5.placeholder,w}function T5(u,l,m){var w,E,C,J,ie,fe,Ce=0,Ie=!1,qe=!1,We=!0;if(typeof u!="function")throw new na(i);l=ua(l)||0,Nr(m)&&(Ie=!!m.leading,qe="maxWait"in m,C=qe?un(ua(m.maxWait)||0,l):C,We="trailing"in m?!!m.trailing:We);function pt(Jr){var Ca=w,Us=E;return w=E=e,Ce=Jr,J=u.apply(Us,Ca),J}function xt(Jr){return Ce=Jr,ie=nf(Yt,l),Ie?pt(Jr):J}function Ut(Jr){var Ca=Jr-fe,Us=Jr-Ce,G5=l-Ca;return qe?jn(G5,C-Us):G5}function Et(Jr){var Ca=Jr-fe,Us=Jr-Ce;return fe===e||Ca>=l||Ca<0||qe&&Us>=C}function Yt(){var Jr=Fm();if(Et(Jr))return Qt(Jr);ie=nf(Yt,Ut(Jr))}function Qt(Jr){return ie=e,We&&w?pt(Jr):(w=E=e,J)}function Pi(){ie!==e&&qE(ie),Ce=0,w=fe=E=ie=e}function Zn(){return ie===e?J:Qt(Fm())}function Ii(){var Jr=Fm(),Ca=Et(Jr);if(w=arguments,E=this,fe=Jr,Ca){if(ie===e)return xt(fe);if(qe)return qE(ie),ie=nf(Yt,l),pt(fe)}return ie===e&&(ie=nf(Yt,l)),J}return Ii.cancel=Pi,Ii.flush=Zn,Ii}var PG=Wt(function(u,l){return gE(u,1,l)}),IG=Wt(function(u,l,m){return gE(u,ua(l)||0,m)});function RG(u){return qs(u,z)}function jm(u,l){if(typeof u!="function"||l!=null&&typeof l!="function")throw new na(i);var m=function(){var w=arguments,E=l?l.apply(this,w):w[0],C=m.cache;if(C.has(E))return C.get(E);var J=u.apply(this,w);return m.cache=C.set(E,J)||C,J};return m.cache=new(jm.Cache||js),m}jm.Cache=js;function Nm(u){if(typeof u!="function")throw new na(i);return function(){var l=arguments;switch(l.length){case 0:return!u.call(this);case 1:return!u.call(this,l[0]);case 2:return!u.call(this,l[0],l[1]);case 3:return!u.call(this,l[0],l[1],l[2])}return!u.apply(this,l)}}function FG(u){return E5(2,u)}var jG=_H(function(u,l){l=l.length==1&&Ct(l[0])?Rr(l[0],Oi(yt())):Rr(An(l,1),Oi(yt()));var m=l.length;return Wt(function(w){for(var E=-1,C=jn(w.length,m);++E<C;)w[E]=l[E].call(this,w[E]);return Ti(u,this,w)})}),i2=Wt(function(u,l){var m=So(l,al(i2));return qs(u,D,e,l,m)}),O5=Wt(function(u,l){var m=So(l,al(O5));return qs(u,j,e,l,m)}),NG=Ls(function(u,l){return qs(u,F,e,e,e,l)});function qG(u,l){if(typeof u!="function")throw new na(i);return l=l===e?l:qt(l),Wt(u,l)}function LG(u,l){if(typeof u!="function")throw new na(i);return l=l==null?0:un(qt(l),0),Wt(function(m){var w=m[l],E=Co(m,0,l);return w&&Eo(E,w),Ti(u,this,E)})}function $G(u,l,m){var w=!0,E=!0;if(typeof u!="function")throw new na(i);return Nr(m)&&(w="leading"in m?!!m.leading:w,E="trailing"in m?!!m.trailing:E),T5(u,l,{leading:w,maxWait:l,trailing:E})}function BG(u){return x5(u,1)}function MG(u,l){return i2(Uy(l),u)}function UG(){if(!arguments.length)return[];var u=arguments[0];return Ct(u)?u:[u]}function zG(u){return aa(u,d)}function HG(u,l){return l=typeof l=="function"?l:e,aa(u,d,l)}function VG(u){return aa(u,p|d)}function GG(u,l){return l=typeof l=="function"?l:e,aa(u,p|d,l)}function WG(u,l){return l==null||mE(u,l,vn(l))}function Da(u,l){return u===l||u!==u&&l!==l}var KG=Om(Cy),YG=Om(function(u,l){return u>=l}),$u=_E(function(){return arguments}())?_E:function(u){return zr(u)&&vr.call(u,"callee")&&!oE.call(u,"callee")},Ct=be.isArray,JG=Ux?Oi(Ux):iH;function di(u){return u!=null&&qm(u.length)&&!Bs(u)}function Yr(u){return zr(u)&&di(u)}function XG(u){return u===!0||u===!1||zr(u)&&Xn(u)==R}var Po=pz||m2,QG=zx?Oi(zx):aH;function ZG(u){return zr(u)&&u.nodeType===1&&!af(u)}function eW(u){if(u==null)return!0;if(di(u)&&(Ct(u)||typeof u=="string"||typeof u.splice=="function"||Po(u)||sl(u)||$u(u)))return!u.length;var l=Nn(u);if(l==se||l==Ne)return!u.size;if(rf(u))return!Ry(u).length;for(var m in u)if(vr.call(u,m))return!1;return!0}function tW(u,l){return Zp(u,l)}function rW(u,l,m){m=typeof m=="function"?m:e;var w=m?m(u,l):e;return w===e?Zp(u,l,e,m):!!w}function a2(u){if(!zr(u))return!1;var l=Xn(u);return l==S||l==ke||typeof u.message=="string"&&typeof u.name=="string"&&!af(u)}function nW(u){return typeof u=="number"&&cE(u)}function Bs(u){if(!Nr(u))return!1;var l=Xn(u);return l==I||l==B||l==ye||l==De}function D5(u){return typeof u=="number"&&u==qt(u)}function qm(u){return typeof u=="number"&&u>-1&&u%1==0&&u<=ue}function Nr(u){var l=typeof u;return u!=null&&(l=="object"||l=="function")}function zr(u){return u!=null&&typeof u=="object"}var C5=Hx?Oi(Hx):oH;function iW(u,l){return u===l||Iy(u,l,Yy(l))}function aW(u,l,m){return m=typeof m=="function"?m:e,Iy(u,l,Yy(l),m)}function sW(u){return P5(u)&&u!=+u}function oW(u){if(HH(u))throw new Ot(n);return xE(u)}function uW(u){return u===null}function cW(u){return u==null}function P5(u){return typeof u=="number"||zr(u)&&Xn(u)==ae}function af(u){if(!zr(u)||Xn(u)!=Se)return!1;var l=lm(u);if(l===null)return!0;var m=vr.call(l,"constructor")&&l.constructor;return typeof m=="function"&&m instanceof m&&sm.call(m)==az}var s2=Vx?Oi(Vx):uH;function lW(u){return D5(u)&&u>=-ue&&u<=ue}var I5=Gx?Oi(Gx):cH;function Lm(u){return typeof u=="string"||!Ct(u)&&zr(u)&&Xn(u)==Ve}function Ci(u){return typeof u=="symbol"||zr(u)&&Xn(u)==kt}var sl=Wx?Oi(Wx):lH;function pW(u){return u===e}function fW(u){return zr(u)&&Nn(u)==rr}function dW(u){return zr(u)&&Xn(u)==Or}var hW=Om(Fy),mW=Om(function(u,l){return u<=l});function R5(u){if(!u)return[];if(di(u))return Lm(u)?Ta(u):fi(u);if(Vp&&u[Vp])return WU(u[Vp]());var l=Nn(u),m=l==se?_y:l==Ne?nm:ol;return m(u)}function Ms(u){if(!u)return u===0?u:0;if(u=ua(u),u===re||u===-re){var l=u<0?-1:1;return l*Q}return u===u?u:0}function qt(u){var l=Ms(u),m=l%1;return l===l?m?l-m:l:0}function F5(u){return u?ju(qt(u),0,G):0}function ua(u){if(typeof u=="number")return u;if(Ci(u))return ne;if(Nr(u)){var l=typeof u.valueOf=="function"?u.valueOf():u;u=Nr(l)?l+"":l}if(typeof u!="string")return u===0?u:+u;u=Zx(u);var m=_t.test(u);return m||gt.test(u)?CU(u.slice(2),m?2:8):St.test(u)?ne:+u}function j5(u){return ts(u,hi(u))}function gW(u){return u?ju(qt(u),-ue,ue):u===0?u:0}function mr(u){return u==null?"":Di(u)}var vW=nl(function(u,l){if(rf(l)||di(l)){ts(l,vn(l),u);return}for(var m in l)vr.call(l,m)&&Jp(u,m,l[m])}),N5=nl(function(u,l){ts(l,hi(l),u)}),$m=nl(function(u,l,m,w){ts(l,hi(l),u,w)}),yW=nl(function(u,l,m,w){ts(l,vn(l),u,w)}),bW=Ls(Ty);function wW(u,l){var m=rl(u);return l==null?m:hE(m,l)}var _W=Wt(function(u,l){u=Sr(u);var m=-1,w=l.length,E=w>2?l[2]:e;for(E&&Qn(l[0],l[1],E)&&(w=1);++m<w;)for(var C=l[m],J=hi(C),ie=-1,fe=J.length;++ie<fe;){var Ce=J[ie],Ie=u[Ce];(Ie===e||Da(Ie,Zc[Ce])&&!vr.call(u,Ce))&&(u[Ce]=C[Ce])}return u}),xW=Wt(function(u){return u.push(e,ZE),Ti(q5,e,u)});function EW(u,l){return Yx(u,yt(l,3),es)}function SW(u,l){return Yx(u,yt(l,3),Dy)}function kW(u,l){return u==null?u:Oy(u,yt(l,3),hi)}function AW(u,l){return u==null?u:bE(u,yt(l,3),hi)}function TW(u,l){return u&&es(u,yt(l,3))}function OW(u,l){return u&&Dy(u,yt(l,3))}function DW(u){return u==null?[]:wm(u,vn(u))}function CW(u){return u==null?[]:wm(u,hi(u))}function o2(u,l,m){var w=u==null?e:Nu(u,l);return w===e?m:w}function PW(u,l){return u!=null&&r5(u,l,eH)}function u2(u,l){return u!=null&&r5(u,l,tH)}var IW=KE(function(u,l,m){l!=null&&typeof l.toString!="function"&&(l=om.call(l)),u[l]=m},l2(mi)),RW=KE(function(u,l,m){l!=null&&typeof l.toString!="function"&&(l=om.call(l)),vr.call(u,l)?u[l].push(m):u[l]=[m]},yt),FW=Wt(Qp);function vn(u){return di(u)?fE(u):Ry(u)}function hi(u){return di(u)?fE(u,!0):pH(u)}function jW(u,l){var m={};return l=yt(l,3),es(u,function(w,E,C){Ns(m,l(w,E,C),w)}),m}function NW(u,l){var m={};return l=yt(l,3),es(u,function(w,E,C){Ns(m,E,l(w,E,C))}),m}var qW=nl(function(u,l,m){_m(u,l,m)}),q5=nl(function(u,l,m,w){_m(u,l,m,w)}),LW=Ls(function(u,l){var m={};if(u==null)return m;var w=!1;l=Rr(l,function(C){return C=Do(C,u),w||(w=C.length>1),C}),ts(u,Wy(u),m),w&&(m=aa(m,p|f|d,IH));for(var E=l.length;E--;)$y(m,l[E]);return m});function $W(u,l){return L5(u,Nm(yt(l)))}var BW=Ls(function(u,l){return u==null?{}:dH(u,l)});function L5(u,l){if(u==null)return{};var m=Rr(Wy(u),function(w){return[w]});return l=yt(l),DE(u,m,function(w,E){return l(w,E[0])})}function MW(u,l,m){l=Do(l,u);var w=-1,E=l.length;for(E||(E=1,u=e);++w<E;){var C=u==null?e:u[rs(l[w])];C===e&&(w=E,C=m),u=Bs(C)?C.call(u):C}return u}function UW(u,l,m){return u==null?u:ef(u,l,m)}function zW(u,l,m,w){return w=typeof w=="function"?w:e,u==null?u:ef(u,l,m,w)}var $5=XE(vn),B5=XE(hi);function HW(u,l,m){var w=Ct(u),E=w||Po(u)||sl(u);if(l=yt(l,4),m==null){var C=u&&u.constructor;E?m=w?new C:[]:Nr(u)?m=Bs(C)?rl(lm(u)):{}:m={}}return(E?ra:es)(u,function(J,ie,fe){return l(m,J,ie,fe)}),m}function VW(u,l){return u==null?!0:$y(u,l)}function GW(u,l,m){return u==null?u:FE(u,l,Uy(m))}function WW(u,l,m,w){return w=typeof w=="function"?w:e,u==null?u:FE(u,l,Uy(m),w)}function ol(u){return u==null?[]:wy(u,vn(u))}function KW(u){return u==null?[]:wy(u,hi(u))}function YW(u,l,m){return m===e&&(m=l,l=e),m!==e&&(m=ua(m),m=m===m?m:0),l!==e&&(l=ua(l),l=l===l?l:0),ju(ua(u),l,m)}function JW(u,l,m){return l=Ms(l),m===e?(m=l,l=0):m=Ms(m),u=ua(u),rH(u,l,m)}function XW(u,l,m){if(m&&typeof m!="boolean"&&Qn(u,l,m)&&(l=m=e),m===e&&(typeof l=="boolean"?(m=l,l=e):typeof u=="boolean"&&(m=u,u=e)),u===e&&l===e?(u=0,l=1):(u=Ms(u),l===e?(l=u,u=0):l=Ms(l)),u>l){var w=u;u=l,l=w}if(m||u%1||l%1){var E=lE();return jn(u+E*(l-u+DU("1e-"+((E+"").length-1))),l)}return Ny(u,l)}var QW=il(function(u,l,m){return l=l.toLowerCase(),u+(m?M5(l):l)});function M5(u){return c2(mr(u).toLowerCase())}function U5(u){return u=mr(u),u&&u.replace(Nt,UU).replace(eu,"")}function ZW(u,l,m){u=mr(u),l=Di(l);var w=u.length;m=m===e?w:ju(qt(m),0,w);var E=m;return m-=l.length,m>=0&&u.slice(m,E)==l}function eK(u){return u=mr(u),u&&Pl.test(u)?u.replace(Xa,zU):u}function tK(u){return u=mr(u),u&&Fe.test(u)?u.replace(Zo,"\\$&"):u}var rK=il(function(u,l,m){return u+(m?"-":"")+l.toLowerCase()}),nK=il(function(u,l,m){return u+(m?" ":"")+l.toLowerCase()}),iK=VE("toLowerCase");function aK(u,l,m){u=mr(u),l=qt(l);var w=l?Qc(u):0;if(!l||w>=l)return u;var E=(l-w)/2;return Tm(hm(E),m)+u+Tm(dm(E),m)}function sK(u,l,m){u=mr(u),l=qt(l);var w=l?Qc(u):0;return l&&w<l?u+Tm(l-w,m):u}function oK(u,l,m){u=mr(u),l=qt(l);var w=l?Qc(u):0;return l&&w<l?Tm(l-w,m)+u:u}function uK(u,l,m){return m||l==null?l=0:l&&(l=+l),mz(mr(u).replace(_e,""),l||0)}function cK(u,l,m){return(m?Qn(u,l,m):l===e)?l=1:l=qt(l),qy(mr(u),l)}function lK(){var u=arguments,l=mr(u[0]);return u.length<3?l:l.replace(u[1],u[2])}var pK=il(function(u,l,m){return u+(m?"_":"")+l.toLowerCase()});function fK(u,l,m){return m&&typeof m!="number"&&Qn(u,l,m)&&(l=m=e),m=m===e?G:m>>>0,m?(u=mr(u),u&&(typeof l=="string"||l!=null&&!s2(l))&&(l=Di(l),!l&&Xc(u))?Co(Ta(u),0,m):u.split(l,m)):[]}var dK=il(function(u,l,m){return u+(m?" ":"")+c2(l)});function hK(u,l,m){return u=mr(u),m=m==null?0:ju(qt(m),0,u.length),l=Di(l),u.slice(m,m+l.length)==l}function mK(u,l,m){var w=T.templateSettings;m&&Qn(u,l,m)&&(l=e),u=mr(u),l=$m({},l,w,QE);var E=$m({},l.imports,w.imports,QE),C=vn(E),J=wy(E,C),ie,fe,Ce=0,Ie=l.interpolate||er,qe="__p += '",We=xy((l.escape||er).source+"|"+Ie.source+"|"+(Ie===Rs?Je:er).source+"|"+(l.evaluate||er).source+"|$","g"),pt="//# sourceURL="+(vr.call(l,"sourceURL")?(l.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++SU+"]")+`
`;u.replace(We,function(Et,Yt,Qt,Pi,Zn,Ii){return Qt||(Qt=Pi),qe+=u.slice(Ce,Ii).replace(ur,HU),Yt&&(ie=!0,qe+=`' +
__e(`+Yt+`) +
'`),Zn&&(fe=!0,qe+=`';
`+Zn+`;
__p += '`),Qt&&(qe+=`' +
((__t = (`+Qt+`)) == null ? '' : __t) +
'`),Ce=Ii+Et.length,Et}),qe+=`';
`;var xt=vr.call(l,"variable")&&l.variable;if(!xt)qe=`with (obj) {
`+qe+`
}
`;else if(je.test(xt))throw new Ot(a);qe=(fe?qe.replace(pr,""):qe).replace(wn,"$1").replace(Ai,"$1;"),qe="function("+(xt||"obj")+`) {
`+(xt?"":`obj || (obj = {});
`)+"var __t, __p = ''"+(ie?", __e = _.escape":"")+(fe?`, __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
`:`;
`)+qe+`return __p
}`;var Ut=H5(function(){return fr(C,pt+"return "+qe).apply(e,J)});if(Ut.source=qe,a2(Ut))throw Ut;return Ut}function gK(u){return mr(u).toLowerCase()}function vK(u){return mr(u).toUpperCase()}function yK(u,l,m){if(u=mr(u),u&&(m||l===e))return Zx(u);if(!u||!(l=Di(l)))return u;var w=Ta(u),E=Ta(l),C=eE(w,E),J=tE(w,E)+1;return Co(w,C,J).join("")}function bK(u,l,m){if(u=mr(u),u&&(m||l===e))return u.slice(0,nE(u)+1);if(!u||!(l=Di(l)))return u;var w=Ta(u),E=tE(w,Ta(l))+1;return Co(w,0,E).join("")}function wK(u,l,m){if(u=mr(u),u&&(m||l===e))return u.replace(_e,"");if(!u||!(l=Di(l)))return u;var w=Ta(u),E=eE(w,Ta(l));return Co(w,E).join("")}function _K(u,l){var m=P,w=M;if(Nr(l)){var E="separator"in l?l.separator:E;m="length"in l?qt(l.length):m,w="omission"in l?Di(l.omission):w}u=mr(u);var C=u.length;if(Xc(u)){var J=Ta(u);C=J.length}if(m>=C)return u;var ie=m-Qc(w);if(ie<1)return w;var fe=J?Co(J,0,ie).join(""):u.slice(0,ie);if(E===e)return fe+w;if(J&&(ie+=fe.length-ie),s2(E)){if(u.slice(ie).search(E)){var Ce,Ie=fe;for(E.global||(E=xy(E.source,mr(nt.exec(E))+"g")),E.lastIndex=0;Ce=E.exec(Ie);)var qe=Ce.index;fe=fe.slice(0,qe===e?ie:qe)}}else if(u.indexOf(Di(E),ie)!=ie){var We=fe.lastIndexOf(E);We>-1&&(fe=fe.slice(0,We))}return fe+w}function xK(u){return u=mr(u),u&&ws.test(u)?u.replace(Ui,XU):u}var EK=il(function(u,l,m){return u+(m?" ":"")+l.toUpperCase()}),c2=VE("toUpperCase");function z5(u,l,m){return u=mr(u),l=m?e:l,l===e?GU(u)?ez(u):qU(u):u.match(l)||[]}var H5=Wt(function(u,l){try{return Ti(u,e,l)}catch(m){return a2(m)?m:new Ot(m)}}),SK=Ls(function(u,l){return ra(l,function(m){m=rs(m),Ns(u,m,n2(u[m],u))}),u});function kK(u){var l=u==null?0:u.length,m=yt();return u=l?Rr(u,function(w){if(typeof w[1]!="function")throw new na(i);return[m(w[0]),w[1]]}):[],Wt(function(w){for(var E=-1;++E<l;){var C=u[E];if(Ti(C[0],this,w))return Ti(C[1],this,w)}})}function AK(u){return Xz(aa(u,p))}function l2(u){return function(){return u}}function TK(u,l){return u==null||u!==u?l:u}var OK=WE(),DK=WE(!0);function mi(u){return u}function p2(u){return EE(typeof u=="function"?u:aa(u,p))}function CK(u){return kE(aa(u,p))}function PK(u,l){return AE(u,aa(l,p))}var IK=Wt(function(u,l){return function(m){return Qp(m,u,l)}}),RK=Wt(function(u,l){return function(m){return Qp(u,m,l)}});function f2(u,l,m){var w=vn(l),E=wm(l,w);m==null&&!(Nr(l)&&(E.length||!w.length))&&(m=l,l=u,u=this,E=wm(l,vn(l)));var C=!(Nr(m)&&"chain"in m)||!!m.chain,J=Bs(u);return ra(E,function(ie){var fe=l[ie];u[ie]=fe,J&&(u.prototype[ie]=function(){var Ce=this.__chain__;if(C||Ce){var Ie=u(this.__wrapped__),qe=Ie.__actions__=fi(this.__actions__);return qe.push({func:fe,args:arguments,thisArg:u}),Ie.__chain__=Ce,Ie}return fe.apply(u,Eo([this.value()],arguments))})}),u}function FK(){return gn._===this&&(gn._=sz),this}function d2(){}function jK(u){return u=qt(u),Wt(function(l){return TE(l,u)})}var NK=Hy(Rr),qK=Hy(Kx),LK=Hy(my);function V5(u){return Xy(u)?gy(rs(u)):hH(u)}function $K(u){return function(l){return u==null?e:Nu(u,l)}}var BK=YE(),MK=YE(!0);function h2(){return[]}function m2(){return!1}function UK(){return{}}function zK(){return""}function HK(){return!0}function VK(u,l){if(u=qt(u),u<1||u>ue)return[];var m=G,w=jn(u,G);l=yt(l),u-=G;for(var E=by(w,l);++m<u;)l(m);return E}function GK(u){return Ct(u)?Rr(u,rs):Ci(u)?[u]:fi(p5(mr(u)))}function WK(u){var l=++iz;return mr(u)+l}var KK=Am(function(u,l){return u+l},0),YK=Vy("ceil"),JK=Am(function(u,l){return u/l},1),XK=Vy("floor");function QK(u){return u&&u.length?bm(u,mi,Cy):e}function ZK(u,l){return u&&u.length?bm(u,yt(l,2),Cy):e}function eY(u){return Xx(u,mi)}function tY(u,l){return Xx(u,yt(l,2))}function rY(u){return u&&u.length?bm(u,mi,Fy):e}function nY(u,l){return u&&u.length?bm(u,yt(l,2),Fy):e}var iY=Am(function(u,l){return u*l},1),aY=Vy("round"),sY=Am(function(u,l){return u-l},0);function oY(u){return u&&u.length?yy(u,mi):0}function uY(u,l){return u&&u.length?yy(u,yt(l,2)):0}return T.after=CG,T.ary=x5,T.assign=vW,T.assignIn=N5,T.assignInWith=$m,T.assignWith=yW,T.at=bW,T.before=E5,T.bind=n2,T.bindAll=SK,T.bindKey=S5,T.castArray=UG,T.chain=b5,T.chunk=XH,T.compact=QH,T.concat=ZH,T.cond=kK,T.conforms=AK,T.constant=l2,T.countBy=oG,T.create=wW,T.curry=k5,T.curryRight=A5,T.debounce=T5,T.defaults=_W,T.defaultsDeep=xW,T.defer=PG,T.delay=IG,T.difference=eV,T.differenceBy=tV,T.differenceWith=rV,T.drop=nV,T.dropRight=iV,T.dropRightWhile=aV,T.dropWhile=sV,T.fill=oV,T.filter=cG,T.flatMap=fG,T.flatMapDeep=dG,T.flatMapDepth=hG,T.flatten=m5,T.flattenDeep=uV,T.flattenDepth=cV,T.flip=RG,T.flow=OK,T.flowRight=DK,T.fromPairs=lV,T.functions=DW,T.functionsIn=CW,T.groupBy=mG,T.initial=fV,T.intersection=dV,T.intersectionBy=hV,T.intersectionWith=mV,T.invert=IW,T.invertBy=RW,T.invokeMap=vG,T.iteratee=p2,T.keyBy=yG,T.keys=vn,T.keysIn=hi,T.map=Rm,T.mapKeys=jW,T.mapValues=NW,T.matches=CK,T.matchesProperty=PK,T.memoize=jm,T.merge=qW,T.mergeWith=q5,T.method=IK,T.methodOf=RK,T.mixin=f2,T.negate=Nm,T.nthArg=jK,T.omit=LW,T.omitBy=$W,T.once=FG,T.orderBy=bG,T.over=NK,T.overArgs=jG,T.overEvery=qK,T.overSome=LK,T.partial=i2,T.partialRight=O5,T.partition=wG,T.pick=BW,T.pickBy=L5,T.property=V5,T.propertyOf=$K,T.pull=bV,T.pullAll=v5,T.pullAllBy=wV,T.pullAllWith=_V,T.pullAt=xV,T.range=BK,T.rangeRight=MK,T.rearg=NG,T.reject=EG,T.remove=EV,T.rest=qG,T.reverse=t2,T.sampleSize=kG,T.set=UW,T.setWith=zW,T.shuffle=AG,T.slice=SV,T.sortBy=DG,T.sortedUniq=PV,T.sortedUniqBy=IV,T.split=fK,T.spread=LG,T.tail=RV,T.take=FV,T.takeRight=jV,T.takeRightWhile=NV,T.takeWhile=qV,T.tap=QV,T.throttle=$G,T.thru=Im,T.toArray=R5,T.toPairs=$5,T.toPairsIn=B5,T.toPath=GK,T.toPlainObject=j5,T.transform=HW,T.unary=BG,T.union=LV,T.unionBy=$V,T.unionWith=BV,T.uniq=MV,T.uniqBy=UV,T.uniqWith=zV,T.unset=VW,T.unzip=r2,T.unzipWith=y5,T.update=GW,T.updateWith=WW,T.values=ol,T.valuesIn=KW,T.without=HV,T.words=z5,T.wrap=MG,T.xor=VV,T.xorBy=GV,T.xorWith=WV,T.zip=KV,T.zipObject=YV,T.zipObjectDeep=JV,T.zipWith=XV,T.entries=$5,T.entriesIn=B5,T.extend=N5,T.extendWith=$m,f2(T,T),T.add=KK,T.attempt=H5,T.camelCase=QW,T.capitalize=M5,T.ceil=YK,T.clamp=YW,T.clone=zG,T.cloneDeep=VG,T.cloneDeepWith=GG,T.cloneWith=HG,T.conformsTo=WG,T.deburr=U5,T.defaultTo=TK,T.divide=JK,T.endsWith=ZW,T.eq=Da,T.escape=eK,T.escapeRegExp=tK,T.every=uG,T.find=lG,T.findIndex=d5,T.findKey=EW,T.findLast=pG,T.findLastIndex=h5,T.findLastKey=SW,T.floor=XK,T.forEach=w5,T.forEachRight=_5,T.forIn=kW,T.forInRight=AW,T.forOwn=TW,T.forOwnRight=OW,T.get=o2,T.gt=KG,T.gte=YG,T.has=PW,T.hasIn=u2,T.head=g5,T.identity=mi,T.includes=gG,T.indexOf=pV,T.inRange=JW,T.invoke=FW,T.isArguments=$u,T.isArray=Ct,T.isArrayBuffer=JG,T.isArrayLike=di,T.isArrayLikeObject=Yr,T.isBoolean=XG,T.isBuffer=Po,T.isDate=QG,T.isElement=ZG,T.isEmpty=eW,T.isEqual=tW,T.isEqualWith=rW,T.isError=a2,T.isFinite=nW,T.isFunction=Bs,T.isInteger=D5,T.isLength=qm,T.isMap=C5,T.isMatch=iW,T.isMatchWith=aW,T.isNaN=sW,T.isNative=oW,T.isNil=cW,T.isNull=uW,T.isNumber=P5,T.isObject=Nr,T.isObjectLike=zr,T.isPlainObject=af,T.isRegExp=s2,T.isSafeInteger=lW,T.isSet=I5,T.isString=Lm,T.isSymbol=Ci,T.isTypedArray=sl,T.isUndefined=pW,T.isWeakMap=fW,T.isWeakSet=dW,T.join=gV,T.kebabCase=rK,T.last=oa,T.lastIndexOf=vV,T.lowerCase=nK,T.lowerFirst=iK,T.lt=hW,T.lte=mW,T.max=QK,T.maxBy=ZK,T.mean=eY,T.meanBy=tY,T.min=rY,T.minBy=nY,T.stubArray=h2,T.stubFalse=m2,T.stubObject=UK,T.stubString=zK,T.stubTrue=HK,T.multiply=iY,T.nth=yV,T.noConflict=FK,T.noop=d2,T.now=Fm,T.pad=aK,T.padEnd=sK,T.padStart=oK,T.parseInt=uK,T.random=XW,T.reduce=_G,T.reduceRight=xG,T.repeat=cK,T.replace=lK,T.result=MW,T.round=aY,T.runInContext=oe,T.sample=SG,T.size=TG,T.snakeCase=pK,T.some=OG,T.sortedIndex=kV,T.sortedIndexBy=AV,T.sortedIndexOf=TV,T.sortedLastIndex=OV,T.sortedLastIndexBy=DV,T.sortedLastIndexOf=CV,T.startCase=dK,T.startsWith=hK,T.subtract=sY,T.sum=oY,T.sumBy=uY,T.template=mK,T.times=VK,T.toFinite=Ms,T.toInteger=qt,T.toLength=F5,T.toLower=gK,T.toNumber=ua,T.toSafeInteger=gW,T.toString=mr,T.toUpper=vK,T.trim=yK,T.trimEnd=bK,T.trimStart=wK,T.truncate=_K,T.unescape=xK,T.uniqueId=WK,T.upperCase=EK,T.upperFirst=c2,T.each=w5,T.eachRight=_5,T.first=g5,f2(T,function(){var u={};return es(T,function(l,m){vr.call(T.prototype,m)||(u[m]=l)}),u}(),{chain:!1}),T.VERSION=t,ra(["bind","bindKey","curry","curryRight","partial","partialRight"],function(u){T[u].placeholder=T}),ra(["drop","take"],function(u,l){Xt.prototype[u]=function(m){m=m===e?1:un(qt(m),0);var w=this.__filtered__&&!l?new Xt(this):this.clone();return w.__filtered__?w.__takeCount__=jn(m,w.__takeCount__):w.__views__.push({size:jn(m,G),type:u+(w.__dir__<0?"Right":"")}),w},Xt.prototype[u+"Right"]=function(m){return this.reverse()[u](m).reverse()}}),ra(["filter","map","takeWhile"],function(u,l){var m=l+1,w=m==ve||m==N;Xt.prototype[u]=function(E){var C=this.clone();return C.__iteratees__.push({iteratee:yt(E,3),type:m}),C.__filtered__=C.__filtered__||w,C}}),ra(["head","last"],function(u,l){var m="take"+(l?"Right":"");Xt.prototype[u]=function(){return this[m](1).value()[0]}}),ra(["initial","tail"],function(u,l){var m="drop"+(l?"":"Right");Xt.prototype[u]=function(){return this.__filtered__?new Xt(this):this[m](1)}}),Xt.prototype.compact=function(){return this.filter(mi)},Xt.prototype.find=function(u){return this.filter(u).head()},Xt.prototype.findLast=function(u){return this.reverse().find(u)},Xt.prototype.invokeMap=Wt(function(u,l){return typeof u=="function"?new Xt(this):this.map(function(m){return Qp(m,u,l)})}),Xt.prototype.reject=function(u){return this.filter(Nm(yt(u)))},Xt.prototype.slice=function(u,l){u=qt(u);var m=this;return m.__filtered__&&(u>0||l<0)?new Xt(m):(u<0?m=m.takeRight(-u):u&&(m=m.drop(u)),l!==e&&(l=qt(l),m=l<0?m.dropRight(-l):m.take(l-u)),m)},Xt.prototype.takeRightWhile=function(u){return this.reverse().takeWhile(u).reverse()},Xt.prototype.toArray=function(){return this.take(G)},es(Xt.prototype,function(u,l){var m=/^(?:filter|find|map|reject)|While$/.test(l),w=/^(?:head|last)$/.test(l),E=T[w?"take"+(l=="last"?"Right":""):l],C=w||/^find/.test(l);E&&(T.prototype[l]=function(){var J=this.__wrapped__,ie=w?[1]:arguments,fe=J instanceof Xt,Ce=ie[0],Ie=fe||Ct(J),qe=function(Yt){var Qt=E.apply(T,Eo([Yt],ie));return w&&We?Qt[0]:Qt};Ie&&m&&typeof Ce=="function"&&Ce.length!=1&&(fe=Ie=!1);var We=this.__chain__,pt=!!this.__actions__.length,xt=C&&!We,Ut=fe&&!pt;if(!C&&Ie){J=Ut?J:new Xt(this);var Et=u.apply(J,ie);return Et.__actions__.push({func:Im,args:[qe],thisArg:e}),new ia(Et,We)}return xt&&Ut?u.apply(this,ie):(Et=this.thru(qe),xt?w?Et.value()[0]:Et.value():Et)})}),ra(["pop","push","shift","sort","splice","unshift"],function(u){var l=im[u],m=/^(?:push|sort|unshift)$/.test(u)?"tap":"thru",w=/^(?:pop|shift)$/.test(u);T.prototype[u]=function(){var E=arguments;if(w&&!this.__chain__){var C=this.value();return l.apply(Ct(C)?C:[],E)}return this[m](function(J){return l.apply(Ct(J)?J:[],E)})}}),es(Xt.prototype,function(u,l){var m=T[l];if(m){var w=m.name+"";vr.call(tl,w)||(tl[w]=[]),tl[w].push({name:l,func:m})}}),tl[km(e,y).name]=[{name:"wrapper",func:e}],Xt.prototype.clone=xz,Xt.prototype.reverse=Ez,Xt.prototype.value=Sz,T.prototype.at=ZV,T.prototype.chain=eG,T.prototype.commit=tG,T.prototype.next=rG,T.prototype.plant=iG,T.prototype.reverse=aG,T.prototype.toJSON=T.prototype.valueOf=T.prototype.value=sG,T.prototype.first=T.prototype.head,Vp&&(T.prototype[Vp]=nG),T},ko=tz();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(gn._=ko,define(function(){return ko})):Pu?((Pu.exports=ko)._=ko,py._=ko):gn._=ko}).call(C4)});var Doe=b((NKr,zBe)=>{"use strict";function Jb(e){return(Jb=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}function Aoe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function NBe(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function Ver(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function qBe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ji(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?qBe(Object(r),!0).forEach(function(n){Ver(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):qBe(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Dg(e,t){return function(n){if(Array.isArray(n))return n}(e)||function(n,i){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(n)))){var a=[],s=!0,o=!1,c=void 0;try{for(var p,f=n[Symbol.iterator]();!(s=(p=f.next()).done)&&(a.push(p.value),!i||a.length!==i);s=!0);}catch(d){o=!0,c=d}finally{try{s||f.return==null||f.return()}finally{if(o)throw c}}return a}}(e,t)||MBe(e,t)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Ger(e){return function(r){if(Array.isArray(r))return xoe(r)}(e)||function(r){if(typeof Symbol<"u"&&Symbol.iterator in Object(r))return Array.from(r)}(e)||MBe(e)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function MBe(e,t){if(e){if(typeof e=="string")return xoe(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?xoe(e,t):void 0}}function xoe(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var Vi=function e(t){Aoe(this,e),this.p=new Promise(t)};Vi.__typeson__type__="TypesonPromise",typeof Symbol<"u"&&(Vi.prototype[Symbol.toStringTag]="TypesonPromise"),Vi.prototype.then=function(e,t){var r=this;return new Vi(function(n,i){r.p.then(function(a){n(e?e(a):a)}).catch(function(a){return t?t(a):Promise.reject(a)}).then(n,i)})},Vi.prototype.catch=function(e){return this.then(null,e)},Vi.resolve=function(e){return new Vi(function(t){t(e)})},Vi.reject=function(e){return new Vi(function(t,r){r(e)})},["all","race","allSettled"].forEach(function(e){Vi[e]=function(t){return new Vi(function(r,n){Promise[e](t.map(function(i){return i&&i.constructor&&i.constructor.__typeson__type__==="TypesonPromise"?i.p:i})).then(r,n)})}});var Wer={}.toString,UBe={}.hasOwnProperty,Toe=Object.getPrototypeOf,LBe=UBe.toString;function Eoe(e,t){return Ooe(e)&&typeof e.then=="function"&&(!t||typeof e.catch=="function")}function Soe(e){return Wer.call(e).slice(8,-1)}function Gs(e,t){if(!e||Jb(e)!=="object")return!1;var r=Toe(e);if(!r)return t===null;var n=UBe.call(r,"constructor")&&r.constructor;return typeof n!="function"?t===null:t===n||t!==null&&LBe.call(n)===LBe.call(t)||typeof t=="function"&&typeof n.__typeson__type__=="string"&&n.__typeson__type__===t.__typeson__type__}function ek(e){return!(!e||Soe(e)!=="Object")&&(!Toe(e)||Gs(e,Object))}function Ooe(e){return e&&Jb(e)==="object"}function aj(e){return e.replace(/~/g,"~0").replace(/\./g,"~1")}function rk(e){return e.replace(/~1/g,".").replace(/~0/g,"~")}function tk(e,t){if(t==="")return e;var r=t.indexOf(".");if(r>-1){var n=e[rk(t.slice(0,r))];return n===void 0?void 0:tk(n,t.slice(r+1))}return e[rk(t)]}function koe(e,t,r){if(t==="")return r;var n=t.indexOf(".");return n>-1?koe(e[rk(t.slice(0,n))],t.slice(n+1),r):(e[rk(t)]=r,e)}function boe(e,t,r){return r?t?t(e):e:(e&&e.then||(e=Promise.resolve(e)),t?e.then(t):e)}var woe=Object.keys,Z7=Array.isArray,_oe={}.hasOwnProperty,$Be=["type","replaced","iterateIn","iterateUnsetNumeric"];function BBe(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];try{return Promise.resolve(e.apply(this,t))}catch(n){return Promise.reject(n)}}}function Ker(e,t){if(e.keypath==="")return-1;var r=e.keypath.match(/\./g)||0,n=t.keypath.match(/\./g)||0;return r&&(r=r.length),n&&(n=n.length),r>n?-1:r<n?1:e.keypath<t.keypath?-1:e.keypath>t.keypath}var Dc=function(){function e(t){Aoe(this,e),this.options=t,this.plainObjectReplacers=[],this.nonplainObjectReplacers=[],this.revivers={},this.types={}}return function(r,n,i){return n&&NBe(r.prototype,n),i&&NBe(r,i),r}(e,[{key:"stringify",value:function(r,n,i,a){a=ji(ji(ji({},this.options),a),{},{stringification:!0});var s=this.encapsulate(r,null,a);return Z7(s)?JSON.stringify(s[0],n,i):s.then(function(o){return JSON.stringify(o,n,i)})}},{key:"stringifySync",value:function(r,n,i,a){return this.stringify(r,n,i,ji(ji({throwOnBadSyncType:!0},a),{},{sync:!0}))}},{key:"stringifyAsync",value:function(r,n,i,a){return this.stringify(r,n,i,ji(ji({throwOnBadSyncType:!0},a),{},{sync:!1}))}},{key:"parse",value:function(r,n,i){return i=ji(ji(ji({},this.options),i),{},{parse:!0}),this.revive(JSON.parse(r,n),i)}},{key:"parseSync",value:function(r,n,i){return this.parse(r,n,ji(ji({throwOnBadSyncType:!0},i),{},{sync:!0}))}},{key:"parseAsync",value:function(r,n,i){return this.parse(r,n,ji(ji({throwOnBadSyncType:!0},i),{},{sync:!1}))}},{key:"specialTypeNames",value:function(r,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return i.returnTypeNames=!0,this.encapsulate(r,n,i)}},{key:"rootTypeName",value:function(r,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return i.iterateNone=!0,this.encapsulate(r,n,i)}},{key:"encapsulate",value:function(r,n,i){var a=BBe(function(D,j){return boe(Promise.all(j.map(function(H){return H[1].p})),function(H){return boe(Promise.all(H.map(BBe(function(F){var z=!1,P=[],M=Dg(j.splice(0,1),1),K=Dg(M[0],7),L=K[0],ve=K[2],U=K[3],N=K[4],re=K[5],ue=K[6],Q=x(L,F,ve,U,P,!0,ue),ne=Gs(Q,Vi);return function(de,xe){var ge=de();return ge&&ge.then?ge.then(xe):xe(ge)}(function(){if(L&&ne)return boe(Q.p,function(G){return N[re]=G,z=!0,a(D,P)})},function(G){return z?G:(L?N[re]=Q:D=ne?Q.p:Q,a(D,P))})}))),function(){return D})})}),s=(i=ji(ji({sync:!0},this.options),i)).sync,o=this,c={},p=[],f=[],d=[],h=!("cyclic"in i)||i.cyclic,g=i.encapsulateObserver,v=x("",r,h,n||{},d);function y(D){var j=Object.values(c);if(i.iterateNone)return j.length?j[0]:e.getJSONType(D);if(j.length){if(i.returnTypeNames)return Ger(new Set(j));D&&ek(D)&&!_oe.call(D,"$types")?D.$types=c:D={$:D,$types:{$:c}}}else Ooe(D)&&_oe.call(D,"$types")&&(D={$:D,$types:!0});return!i.returnTypeNames&&D}function _(D,j,H){Object.assign(D,j);var F=$Be.map(function(z){var P=D[z];return delete D[z],P});H(),$Be.forEach(function(z,P){D[z]=F[P]})}function x(D,j,H,F,z,P,M){var K,L={},ve=Jb(j),U=g?function(ce){var ye=M||F.type||e.getJSONType(j);g(Object.assign(ce||L,{keypath:D,value:j,cyclic:H,stateObj:F,promisesData:z,resolvingTypesonPromise:P,awaitingTypesonPromise:Gs(j,Vi)},{type:ye}))}:null;if(["string","boolean","number","undefined"].includes(ve))return j===void 0||Number.isNaN(j)||j===Number.NEGATIVE_INFINITY||j===Number.POSITIVE_INFINITY?(K=F.replaced?j:A(D,j,F,z,!1,P,U))!==j&&(L={replaced:K}):K=j,U&&U(),K;if(j===null)return U&&U(),j;if(H&&!F.iterateIn&&!F.iterateUnsetNumeric&&j&&Jb(j)==="object"){var N=p.indexOf(j);if(!(N<0))return c[D]="#",U&&U({cyclicKeypath:f[N]}),"#"+f[N];H===!0&&(p.push(j),f.push(D))}var re,ue=ek(j),Q=Z7(j),ne=(ue||Q)&&(!o.plainObjectReplacers.length||F.replaced)||F.iterateIn?j:A(D,j,F,z,ue||Q,null,U);if(ne!==j?(K=ne,L={replaced:ne}):D===""&&Gs(j,Vi)?(z.push([D,j,H,F,void 0,void 0,F.type]),K=j):Q&&F.iterateIn!=="object"||F.iterateIn==="array"?(re=new Array(j.length),L={clone:re}):(["function","symbol"].includes(Jb(j))||"toJSON"in j||Gs(j,Vi)||Gs(j,Promise)||Gs(j,ArrayBuffer))&&!ue&&F.iterateIn!=="object"?K=j:(re={},F.addLength&&(re.length=j.length),L={clone:re}),U&&U(),i.iterateNone)return re||K;if(!re)return K;if(F.iterateIn){var G=function(ye){var R={ownKeys:_oe.call(j,ye)};_(F,R,function(){var $=D+(D?".":"")+aj(ye),ke=x($,j[ye],!!H,F,z,P);Gs(ke,Vi)?z.push([$,ke,!!H,F,re,ye,F.type]):ke!==void 0&&(re[ye]=ke)})};for(var de in j)G(de);U&&U({endIterateIn:!0,end:!0})}else woe(j).forEach(function(ce){var ye=D+(D?".":"")+aj(ce);_(F,{ownKeys:!0},function(){var R=x(ye,j[ce],!!H,F,z,P);Gs(R,Vi)?z.push([ye,R,!!H,F,re,ce,F.type]):R!==void 0&&(re[ce]=R)})}),U&&U({endIterateOwn:!0,end:!0});if(F.iterateUnsetNumeric){for(var xe=j.length,ge=function(ye){if(!(ye in j)){var R=D+(D?".":"")+ye;_(F,{ownKeys:!1},function(){var $=x(R,void 0,!!H,F,z,P);Gs($,Vi)?z.push([R,$,!!H,F,re,ye,F.type]):$!==void 0&&(re[ye]=$)})}},V=0;V<xe;V++)ge(V);U&&U({endIterateUnsetNumeric:!0,end:!0})}return re}function A(D,j,H,F,z,P,M){for(var K=z?o.plainObjectReplacers:o.nonplainObjectReplacers,L=K.length;L--;){var ve=K[L];if(ve.test(j,H)){var U=ve.type;if(o.revivers[U]){var N=c[D];c[D]=N?[U].concat(N):U}return Object.assign(H,{type:U,replaced:!0}),!s&&ve.replaceAsync||ve.replace?(M&&M({replacing:!0}),x(D,ve[s||!ve.replaceAsync?"replace":"replaceAsync"](j,H),h&&"readonly",H,F,P,U)):(M&&M({typeDetected:!0}),x(D,j,h&&"readonly",H,F,P,U))}}return j}return d.length?s&&i.throwOnBadSyncType?function(){throw new TypeError("Sync method requested but async result obtained")}():Promise.resolve(a(v,d)).then(y):!s&&i.throwOnBadSyncType?function(){throw new TypeError("Async method requested but sync result obtained")}():i.stringification&&s?[y(v)]:s?y(v):Promise.resolve(y(v))}},{key:"encapsulateSync",value:function(r,n,i){return this.encapsulate(r,n,ji(ji({throwOnBadSyncType:!0},i),{},{sync:!0}))}},{key:"encapsulateAsync",value:function(r,n,i){return this.encapsulate(r,n,ji(ji({throwOnBadSyncType:!0},i),{},{sync:!1}))}},{key:"revive",value:function(r,n){var i=r&&r.$types;if(!i)return r;if(i===!0)return r.$;var a=(n=ji(ji({sync:!0},this.options),n)).sync,s=[],o={},c=!0;i.$&&ek(i.$)&&(r=r.$,i=i.$,c=!1);var p=this;function f(y,_){var x=Dg(p.revivers[y]||[],1)[0];if(!x)throw new Error("Unregistered type: "+y);return a&&!("revive"in x)?_:x[a&&x.revive?"revive":!a&&x.reviveAsync?"reviveAsync":"revive"](_,o)}var d=[];function h(y){return Gs(y,sj)?void 0:y}var g,v=function(){var _=[];if(Object.entries(i).forEach(function(x){var A=Dg(x,2),D=A[0],j=A[1];j!=="#"&&[].concat(j).forEach(function(H){Dg(p.revivers[H]||[null,{}],2)[1].plain&&(_.push({keypath:D,type:H}),delete i[D])})}),_.length)return _.sort(Ker).reduce(function x(A,D){var j=D.keypath,H=D.type;if(Eoe(A))return A.then(function(P){return x(P,{keypath:j,type:H})});var F=tk(r,j);if(Gs(F=f(H,F),Vi))return F.then(function(P){var M=koe(r,j,P);M===P&&(r=M)});var z=koe(r,j,F);z===F&&(r=z)},void 0)}();return Gs(v,Vi)?g=v.then(function(){return r}):(g=function y(_,x,A,D,j){if(!c||_!=="$types"){var H=i[_],F=Z7(x);if(F||ek(x)){var z=F?new Array(x.length):{};for(woe(x).forEach(function(re){var ue=y(_+(_?".":"")+aj(re),x[re],A||z,z,re),Q=function(G){return Gs(G,sj)?z[re]=void 0:G!==void 0&&(z[re]=G),G};Gs(ue,Vi)?d.push(ue.then(function(ne){return Q(ne)})):Q(ue)}),x=z;s.length;){var P=Dg(s[0],4),M=P[0],K=P[1],L=P[2],ve=P[3],U=tk(M,K);if(U===void 0)break;L[ve]=U,s.splice(0,1)}}if(!H)return x;if(H==="#"){var N=tk(A,x.slice(1));return N===void 0&&s.push([A,x.slice(1),D,j]),N}return[].concat(H).reduce(function re(ue,Q){return Gs(ue,Vi)?ue.then(function(ne){return re(ne,Q)}):f(Q,ue)},x)}}("",r,null),d.length&&(g=Vi.resolve(g).then(function(y){return Vi.all([y].concat(d))}).then(function(y){return Dg(y,1)[0]}))),Eoe(g)?a&&n.throwOnBadSyncType?function(){throw new TypeError("Sync method requested but async result obtained")}():Gs(g,Vi)?g.p.then(h):g:!a&&n.throwOnBadSyncType?function(){throw new TypeError("Async method requested but sync result obtained")}():a?h(g):Promise.resolve(h(g))}},{key:"reviveSync",value:function(r,n){return this.revive(r,ji(ji({throwOnBadSyncType:!0},n),{},{sync:!0}))}},{key:"reviveAsync",value:function(r,n){return this.revive(r,ji(ji({throwOnBadSyncType:!0},n),{},{sync:!1}))}},{key:"register",value:function(r,n){return n=n||{},[].concat(r).forEach(function i(a){var s=this;if(Z7(a))return a.map(function(o){return i.call(s,o)});a&&woe(a).forEach(function(o){if(o==="#")throw new TypeError("# cannot be used as a type name as it is reserved for cyclic objects");if(e.JSON_TYPES.includes(o))throw new TypeError("Plain JSON object types are reserved as type names");var c=a[o],p=c&&c.testPlainObjects?this.plainObjectReplacers:this.nonplainObjectReplacers,f=p.filter(function(_){return _.type===o});if(f.length&&(p.splice(p.indexOf(f[0]),1),delete this.revivers[o],delete this.types[o]),typeof c=="function"){var d=c;c={test:function(x){return x&&x.constructor===d},replace:function(x){return ji({},x)},revive:function(x){return Object.assign(Object.create(d.prototype),x)}}}else if(Z7(c)){var h=Dg(c,3);c={test:h[0],replace:h[1],revive:h[2]}}if(c&&c.test){var g={type:o,test:c.test.bind(c)};c.replace&&(g.replace=c.replace.bind(c)),c.replaceAsync&&(g.replaceAsync=c.replaceAsync.bind(c));var v=typeof n.fallback=="number"?n.fallback:n.fallback?0:Number.POSITIVE_INFINITY;if(c.testPlainObjects?this.plainObjectReplacers.splice(v,0,g):this.nonplainObjectReplacers.splice(v,0,g),c.revive||c.reviveAsync){var y={};c.revive&&(y.revive=c.revive.bind(c)),c.reviveAsync&&(y.reviveAsync=c.reviveAsync.bind(c)),this.revivers[o]=[y,{plain:c.testPlainObjects}]}this.types[o]=c}},this)},this),this}}]),e}(),sj=function e(){Aoe(this,e)};sj.__typeson__type__="TypesonUndefined",Dc.Undefined=sj,Dc.Promise=Vi,Dc.isThenable=Eoe,Dc.toStringTag=Soe,Dc.hasConstructorOf=Gs,Dc.isObject=Ooe,Dc.isPlainObject=ek,Dc.isUserObject=function e(t){if(!t||Soe(t)!=="Object")return!1;var r=Toe(t);return!r||Gs(t,Object)||e(r)},Dc.escapeKeyPathComponent=aj,Dc.unescapeKeyPathComponent=rk,Dc.getByKeyPath=tk,Dc.getJSONType=function(t){return t===null?"null":Array.isArray(t)?"array":Jb(t)},Dc.JSON_TYPES=["null","boolean","number","string","array","object"],zBe.exports=Dc});var xMe=b((BYr,_Me)=>{var N4;try{N4=Zs()}catch{N4=require("fs")}function str(e,t,r){r==null&&(r=t,t={}),typeof t=="string"&&(t={encoding:t}),t=t||{};var n=t.fs||N4,i=!0;"throws"in t&&(i=t.throws),n.readFile(e,t,function(a,s){if(a)return r(a);s=wMe(s);var o;try{o=JSON.parse(s,t?t.reviver:null)}catch(c){return i?(c.message=e+": "+c.message,r(c)):r(null,null)}r(null,o)})}function otr(e,t){t=t||{},typeof t=="string"&&(t={encoding:t});var r=t.fs||N4,n=!0;"throws"in t&&(n=t.throws);try{var i=r.readFileSync(e,t);return i=wMe(i),JSON.parse(i,t.reviver)}catch(a){if(n)throw a.message=e+": "+a.message,a;return null}}function bMe(e,t){var r,n=`
`;typeof t=="object"&&t!==null&&(t.spaces&&(r=t.spaces),t.EOL&&(n=t.EOL));var i=JSON.stringify(e,t?t.replacer:null,r);return i.replace(/\n/g,n)+n}function utr(e,t,r,n){n==null&&(n=r,r={}),r=r||{};var i=r.fs||N4,a="";try{a=bMe(t,r)}catch(s){n&&n(s,null);return}i.writeFile(e,a,r,n)}function ctr(e,t,r){r=r||{};var n=r.fs||N4,i=bMe(t,r);return n.writeFileSync(e,i,r)}function wMe(e){return Buffer.isBuffer(e)&&(e=e.toString("utf8")),e=e.replace(/^\uFEFF/,""),e}var ltr={readFile:str,readFileSync:otr,writeFile:utr,writeFileSync:ctr};_Me.exports=ltr});var AMe=b((MYr,kMe)=>{var sk=require("path"),EMe=require("fs"),SMe=parseInt("0777",8);kMe.exports=q4.mkdirp=q4.mkdirP=q4;function q4(e,t,r,n){typeof t=="function"?(r=t,t={}):(!t||typeof t!="object")&&(t={mode:t});var i=t.mode,a=t.fs||EMe;i===void 0&&(i=SMe),n||(n=null);var s=r||function(){};e=sk.resolve(e),a.mkdir(e,i,function(o){if(!o)return n=n||e,s(null,n);switch(o.code){case"ENOENT":if(sk.dirname(e)===e)return s(o);q4(sk.dirname(e),t,function(c,p){c?s(c,p):q4(e,t,s,p)});break;default:a.stat(e,function(c,p){c||!p.isDirectory()?s(o,n):s(null,n)});break}})}q4.sync=function e(t,r,n){(!r||typeof r!="object")&&(r={mode:r});var i=r.mode,a=r.fs||EMe;i===void 0&&(i=SMe),n||(n=null),t=sk.resolve(t);try{a.mkdirSync(t,i),n=n||t}catch(o){switch(o.code){case"ENOENT":n=e(sk.dirname(t),r,n),e(t,r,n);break;default:var s;try{s=a.statSync(t)}catch{throw o}if(!s.isDirectory())throw o;break}}return n}});var CMe=b((UYr,DMe)=>{"use strict";var TMe=require("path"),mj=require("electron"),OMe=xMe(),ptr=AMe();DMe.exports=function(e){let t=mj.app||mj.remote.app,r=mj.screen||mj.remote.screen,n,i,a,s=100,o=Object.assign({file:"window-state.json",path:t.getPath("userData"),maximize:!0,fullScreen:!0},e),c=TMe.join(o.path,o.file);function p(F){return!F.isMaximized()&&!F.isMinimized()&&!F.isFullScreen()}function f(){return n&&Number.isInteger(n.x)&&Number.isInteger(n.y)&&Number.isInteger(n.width)&&n.width>0&&Number.isInteger(n.height)&&n.height>0}function d(){let F=r.getPrimaryDisplay().bounds;n={width:o.defaultWidth||800,height:o.defaultHeight||600,x:0,y:0,displayBounds:F}}function h(F){return n.x>=F.x&&n.y>=F.y&&n.x+n.width<=F.x+F.width&&n.y+n.height<=F.y+F.height}function g(){if(!r.getAllDisplays().some(z=>h(z.bounds)))return d()}function v(){if(!(n&&(f()||n.isMaximized||n.isFullScreen))){n=null;return}f()&&n.displayBounds&&g()}function y(F){if(F=F||i,!!F)try{let z=F.getBounds();p(F)&&(n.x=z.x,n.y=z.y,n.width=z.width,n.height=z.height),n.isMaximized=F.isMaximized(),n.isFullScreen=F.isFullScreen(),n.displayBounds=r.getDisplayMatching(z).bounds}catch{}}function _(F){F&&y(F);try{ptr.sync(TMe.dirname(c)),OMe.writeFileSync(c,n)}catch{}}function x(){clearTimeout(a),a=setTimeout(y,s)}function A(){y()}function D(){H(),_()}function j(F){o.maximize&&n.isMaximized&&F.maximize(),o.fullScreen&&n.isFullScreen&&F.setFullScreen(!0),F.on("resize",x),F.on("move",x),F.on("close",A),F.on("closed",D),i=F}function H(){i&&(i.removeListener("resize",x),i.removeListener("move",x),clearTimeout(a),i.removeListener("close",A),i.removeListener("closed",D),i=null)}try{n=OMe.readFileSync(c)}catch{}return v(),n=Object.assign({width:o.defaultWidth||800,height:o.defaultHeight||600},n),{get x(){return n.x},get y(){return n.y},get width(){return n.width},get height(){return n.height},get displayBounds(){return n.displayBounds},get isMaximized(){return n.isMaximized},get isFullScreen(){return n.isFullScreen},saveState:_,unmanage:H,manage:j,resetStateToDefault:d}}});var zMe=b((cJr,UMe)=>{UMe.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});var JMe=b((AJr,xtr)=>{xtr.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/3gpp-ims+xml":{source:"iana",compressible:!0},"application/3gpphal+json":{source:"iana",compressible:!0},"application/3gpphalforms+json":{source:"iana",compressible:!0},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:!0},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:!0},"application/alto-updatestreamparams+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:!0,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:!0,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:!0,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:!0,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:!0,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:!0},"application/atsc-rsat+xml":{source:"iana",compressible:!0,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:!0},"application/bacnet-xdd+zip":{source:"iana",compressible:!1},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana",compressible:!0,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:!0},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:!0},"application/ccxml+xml":{source:"iana",compressible:!0,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:!0,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:!0},"application/cellml+xml":{source:"iana",compressible:!0},"application/cfw":{source:"iana"},"application/city+json":{source:"iana",compressible:!0},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:!0},"application/clue_info+xml":{source:"iana",compressible:!0},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:!0},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:!0},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:!0,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:!0},"application/cstadata+xml":{source:"iana",compressible:!0},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",compressible:!0,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:!0,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:!0,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:!0},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana",compressible:!0},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:!0},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:!0,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:!0},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:!0,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/elm+xml":{source:"iana",compressible:!0},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/emergencycalldata.comment+xml":{source:"iana",compressible:!0},"application/emergencycalldata.control+xml":{source:"iana",compressible:!0},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.veds+xml":{source:"iana",compressible:!0},"application/emma+xml":{source:"iana",compressible:!0,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:!0,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:!0},"application/epub+zip":{source:"iana",compressible:!1,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:!0},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:!0,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1},"application/framework-attributes+xml":{source:"iana",compressible:!0},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:!0},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:!0,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:!0,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:!0},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:!0},"application/ibe-pkg-reply+xml":{source:"iana",compressible:!0},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:!0,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:!0,extensions:["its"]},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/jscalendar+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:!0},"application/kpml-response+xml":{source:"iana",compressible:!0},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:!0,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:!0},"application/lost+xml":{source:"iana",compressible:!0,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:!0},"application/lpf+zip":{source:"iana",compressible:!1},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:!0,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:!0,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:!0,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:!0},"application/mathml-presentation+xml":{source:"iana",compressible:!0},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:!0},"application/mbms-deregister+xml":{source:"iana",compressible:!0},"application/mbms-envelope+xml":{source:"iana",compressible:!0},"application/mbms-msk+xml":{source:"iana",compressible:!0},"application/mbms-msk-response+xml":{source:"iana",compressible:!0},"application/mbms-protection-description+xml":{source:"iana",compressible:!0},"application/mbms-reception-report+xml":{source:"iana",compressible:!0},"application/mbms-register+xml":{source:"iana",compressible:!0},"application/mbms-register-response+xml":{source:"iana",compressible:!0},"application/mbms-schedule+xml":{source:"iana",compressible:!0},"application/mbms-user-service-description+xml":{source:"iana",compressible:!0},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:!0,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:!0},"application/mediaservercontrol+xml":{source:"iana",compressible:!0,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",compressible:!0,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:!0,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:!0,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:!0,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:!0,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:!0,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:!0},"application/mrb-publish+xml":{source:"iana",compressible:!0},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:!0},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:!0},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:!0,extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:!0,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:!0},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:!1},"application/p2p-overlay+xml":{source:"iana",compressible:!0,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:!0,extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:!0,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana",compressible:!0},"application/provenance+xml":{source:"iana",compressible:!0,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:!1},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:!0},"application/pskc+xml":{source:"iana",compressible:!0,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:!0},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:!0,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",compressible:!0,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:!0,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:!0},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:!0},"application/rls-services+xml":{source:"iana",compressible:!0,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:!0,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:!0,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:!0,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:!0,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:!0},"application/samlmetadata+xml":{source:"iana",compressible:!0},"application/sarif+json":{source:"iana",compressible:!0},"application/sarif-external-properties+json":{source:"iana",compressible:!0},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:!0,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:!0},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:!0},"application/senml+xml":{source:"iana",compressible:!0,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:!0},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:!0},"application/sensml+xml":{source:"iana",compressible:!0,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:!0},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:!0,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:!0},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:!0,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:!0,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:!0},"application/spirits-event+xml":{source:"iana",compressible:!0},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:!0,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:!0,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:!0,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:!0,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:!0},"application/swid+xml":{source:"iana",compressible:!0,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/taxii+json":{source:"iana",compressible:!0},"application/td+json":{source:"iana",compressible:!0},"application/tei+xml":{source:"iana",compressible:!0,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:!0,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:!0},"application/tnauthlist":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{compressible:!0,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/ttml+xml":{source:"iana",compressible:!0,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:!1,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:!0},"application/urc-ressheet+xml":{source:"iana",compressible:!0,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:!0,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:!0},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana",compressible:!0},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:!0,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:!1,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:!0,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:!0},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",compressible:!0,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:!0},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana",compressible:!0},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:!0,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:!0},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:!0},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:!0,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:!0,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana",compressible:!1},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:!0,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:!0},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:!0},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:!0},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:!0},"application/vnd.cyclonedx+xml":{source:"iana",compressible:!0},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:!1},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:!0,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:!0},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:!0},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:!0},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:!0},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:!0},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:!0},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:!1},"application/vnd.eszigno3+xml":{source:"iana",compressible:!0,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:!1},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:!1},"application/vnd.etsi.cug+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:!0},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:!0},"application/vnd.etsi.sci+xml":{source:"iana",compressible:!0},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:!0},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:!0},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:!0},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:!1},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:!1},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:!1},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:!0},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:!0},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:!0},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana",compressible:!0},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:!0},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:!1},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:!0},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",compressible:!0,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:!0,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hl7cda+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:!0},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:!1},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:!1},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:!0},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:!0},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:!0},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:!0,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:!1},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",compressible:!0,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:!0},"application/vnd.liberty-request+xml":{source:"iana",compressible:!0},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:!0,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:!1},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:!1},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:!0},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:!0},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:!0},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:!0},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:!0},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:!0},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:!0},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:!0},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:!0},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:!0},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:!0,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:!0},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:!0},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:!0},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:!0},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:!0},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:!0},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:!0},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:!0},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:!0},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:!0},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:!0,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:!0},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:!0},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:!0},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:!0,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:!0,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:!0},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:!0},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:!0},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:!0},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:!0},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:!0,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:!0,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:!0},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:!0},"application/vnd.shopkick+json":{source:"iana",compressible:!0},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:!0,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:!0,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:!0},"application/vnd.syft+json":{source:"iana",compressible:!0},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:!0},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:!0},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:!0,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:!0},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:!0},"application/vnd.wv.ssp+xml":{source:"iana",compressible:!0},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:!0},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:!0,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:!0,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:!0,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:!0,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:!0,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:!0,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:!0,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:!0,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:!0,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:!0,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:!0},"application/xaml+xml":{source:"apache",compressible:!0,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:!0,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:!0,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:!0,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:!0,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:!0},"application/xcap-ns+xml":{source:"iana",compressible:!0,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:!0},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:!0},"application/xenc+xml":{source:"iana",compressible:!0,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xliff+xml":{source:"iana",compressible:!0,extensions:["xlf"]},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:!0},"application/xmpp+xml":{source:"iana",compressible:!0},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:!0,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:!0,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:!0,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:!0,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana",compressible:!0},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana",compressible:!0},"application/yin+xml":{source:"iana",compressible:!0,extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:!1,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:!1,extensions:["avif"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:!1,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:!0,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:!0,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/step":{source:"iana"},"model/step+xml":{source:"iana",compressible:!0,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:!1,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:!1,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:!0,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:!0},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:!1,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{compressible:!0,extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:!0,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:!0,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}});var Zoe=b((TJr,XMe)=>{XMe.exports=JMe()});var eUe=b((OJr,ZMe)=>{"use strict";var QMe=Zoe();ZMe.exports=function(){var e={};return Object.keys(QMe).forEach(function(t){var r=QMe[t];r.extensions&&r.extensions.length>0&&r.extensions.forEach(function(n){e[n]=t})}),e}});var rUe=b((DJr,tUe)=>{"use strict";var Etr=Object.prototype.toString;tUe.exports=function(e){var t;return Etr.call(e)==="[object Object]"&&(t=Object.getPrototypeOf(e),t===null||t===Object.getPrototypeOf({}))}});var aUe=b((CJr,iUe)=>{"use strict";var nUe=rUe();iUe.exports=function(e,t){if(!nUe(e))throw new TypeError("Expected a plain object");t=t||{},typeof t=="function"&&(t={compare:t});var r=t.deep,n=[],i=[],a=function(s){var o=n.indexOf(s);if(o!==-1)return i[o];var c={},p=Object.keys(s).sort(t.compare);n.push(s),i.push(c);for(var f=0;f<p.length;f++){var d=p[f],h=s[d];c[d]=r&&nUe(h)?a(h):h}return c};return a(e)}});var oUe=b((PJr,eue)=>{"use strict";var sUe=aUe();eue.exports.desc=function(e){return sUe(e,function(t,r){return r.length-t.length})};eue.exports.asc=function(e){return sUe(e,function(t,r){return t.length-r.length})}});var rue=b((IJr,tue)=>{"use strict";var uUe=eUe(),cUe=oUe();tue.exports=e=>{let t=cUe.desc(uUe()),r=Object.keys(t).filter(n=>e.endsWith(n));return r.length===0?[]:r.map(n=>({ext:n,mime:t[n]}))};tue.exports.mime=e=>{let t=cUe.desc(uUe()),r=Object.keys(t).filter(n=>t[n]===e);return r.length===0?[]:r.map(n=>({ext:n,mime:t[n]}))}});var QUe=b((uQr,XUe)=>{"use strict";var Jtr=e=>e==null?[]:Array.isArray(e)?e:typeof e=="string"?[e]:typeof e[Symbol.iterator]=="function"?[...e]:[e];XUe.exports=Jtr});var T1=b((A1,Sj)=>{"use strict";Object.defineProperty(A1,"__esModule",{value:!0});var ZUe=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function Xtr(e){return ZUe.includes(e)}var Qtr=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Blob","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...ZUe];function Ztr(e){return Qtr.includes(e)}var err=["null","undefined","string","number","bigint","boolean","symbol"];function trr(e){return err.includes(e)}function Y4(e){return t=>typeof t===e}var{toString:eze}=Object.prototype,dk=e=>{let t=eze.call(e).slice(8,-1);if(/HTML\w+Element/.test(t)&&Oe.domElement(e))return"HTMLElement";if(Ztr(t))return t},Ni=e=>t=>dk(t)===e;function Oe(e){if(e===null)return"null";switch(typeof e){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(Oe.observable(e))return"Observable";if(Oe.array(e))return"Array";if(Oe.buffer(e))return"Buffer";let t=dk(e);if(t)return t;if(e instanceof String||e instanceof Boolean||e instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}Oe.undefined=Y4("undefined");Oe.string=Y4("string");var rrr=Y4("number");Oe.number=e=>rrr(e)&&!Oe.nan(e);Oe.bigint=Y4("bigint");Oe.function_=Y4("function");Oe.null_=e=>e===null;Oe.class_=e=>Oe.function_(e)&&e.toString().startsWith("class ");Oe.boolean=e=>e===!0||e===!1;Oe.symbol=Y4("symbol");Oe.numericString=e=>Oe.string(e)&&!Oe.emptyStringOrWhitespace(e)&&!Number.isNaN(Number(e));Oe.array=(e,t)=>Array.isArray(e)?Oe.function_(t)?e.every(t):!0:!1;Oe.buffer=e=>{var t,r,n,i;return(i=(n=(r=(t=e)===null||t===void 0?void 0:t.constructor)===null||r===void 0?void 0:r.isBuffer)===null||n===void 0?void 0:n.call(r,e))!==null&&i!==void 0?i:!1};Oe.blob=e=>Ni("Blob")(e);Oe.nullOrUndefined=e=>Oe.null_(e)||Oe.undefined(e);Oe.object=e=>!Oe.null_(e)&&(typeof e=="object"||Oe.function_(e));Oe.iterable=e=>{var t;return Oe.function_((t=e)===null||t===void 0?void 0:t[Symbol.iterator])};Oe.asyncIterable=e=>{var t;return Oe.function_((t=e)===null||t===void 0?void 0:t[Symbol.asyncIterator])};Oe.generator=e=>{var t,r;return Oe.iterable(e)&&Oe.function_((t=e)===null||t===void 0?void 0:t.next)&&Oe.function_((r=e)===null||r===void 0?void 0:r.throw)};Oe.asyncGenerator=e=>Oe.asyncIterable(e)&&Oe.function_(e.next)&&Oe.function_(e.throw);Oe.nativePromise=e=>Ni("Promise")(e);var nrr=e=>{var t,r;return Oe.function_((t=e)===null||t===void 0?void 0:t.then)&&Oe.function_((r=e)===null||r===void 0?void 0:r.catch)};Oe.promise=e=>Oe.nativePromise(e)||nrr(e);Oe.generatorFunction=Ni("GeneratorFunction");Oe.asyncGeneratorFunction=e=>dk(e)==="AsyncGeneratorFunction";Oe.asyncFunction=e=>dk(e)==="AsyncFunction";Oe.boundFunction=e=>Oe.function_(e)&&!e.hasOwnProperty("prototype");Oe.regExp=Ni("RegExp");Oe.date=Ni("Date");Oe.error=Ni("Error");Oe.map=e=>Ni("Map")(e);Oe.set=e=>Ni("Set")(e);Oe.weakMap=e=>Ni("WeakMap")(e);Oe.weakSet=e=>Ni("WeakSet")(e);Oe.int8Array=Ni("Int8Array");Oe.uint8Array=Ni("Uint8Array");Oe.uint8ClampedArray=Ni("Uint8ClampedArray");Oe.int16Array=Ni("Int16Array");Oe.uint16Array=Ni("Uint16Array");Oe.int32Array=Ni("Int32Array");Oe.uint32Array=Ni("Uint32Array");Oe.float32Array=Ni("Float32Array");Oe.float64Array=Ni("Float64Array");Oe.bigInt64Array=Ni("BigInt64Array");Oe.bigUint64Array=Ni("BigUint64Array");Oe.arrayBuffer=Ni("ArrayBuffer");Oe.sharedArrayBuffer=Ni("SharedArrayBuffer");Oe.dataView=Ni("DataView");Oe.enumCase=(e,t)=>Object.values(t).includes(e);Oe.directInstanceOf=(e,t)=>Object.getPrototypeOf(e)===t.prototype;Oe.urlInstance=e=>Ni("URL")(e);Oe.urlString=e=>{if(!Oe.string(e))return!1;try{return new URL(e),!0}catch{return!1}};Oe.truthy=e=>!!e;Oe.falsy=e=>!e;Oe.nan=e=>Number.isNaN(e);Oe.primitive=e=>Oe.null_(e)||trr(typeof e);Oe.integer=e=>Number.isInteger(e);Oe.safeInteger=e=>Number.isSafeInteger(e);Oe.plainObject=e=>{if(eze.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.getPrototypeOf({})};Oe.typedArray=e=>Xtr(dk(e));var irr=e=>Oe.safeInteger(e)&&e>=0;Oe.arrayLike=e=>!Oe.nullOrUndefined(e)&&!Oe.function_(e)&&irr(e.length);Oe.inRange=(e,t)=>{if(Oe.number(t))return e>=Math.min(0,t)&&e<=Math.max(t,0);if(Oe.array(t)&&t.length===2)return e>=Math.min(...t)&&e<=Math.max(...t);throw new TypeError(`Invalid range: ${JSON.stringify(t)}`)};var arr=1,srr=["innerHTML","ownerDocument","style","attributes","nodeValue"];Oe.domElement=e=>Oe.object(e)&&e.nodeType===arr&&Oe.string(e.nodeName)&&!Oe.plainObject(e)&&srr.every(t=>t in e);Oe.observable=e=>{var t,r,n,i;return e?e===((r=(t=e)[Symbol.observable])===null||r===void 0?void 0:r.call(t))||e===((i=(n=e)["@@observable"])===null||i===void 0?void 0:i.call(n)):!1};Oe.nodeStream=e=>Oe.object(e)&&Oe.function_(e.pipe)&&!Oe.observable(e);Oe.infinite=e=>e===1/0||e===-1/0;var tze=e=>t=>Oe.integer(t)&&Math.abs(t%2)===e;Oe.evenInteger=tze(0);Oe.oddInteger=tze(1);Oe.emptyArray=e=>Oe.array(e)&&e.length===0;Oe.nonEmptyArray=e=>Oe.array(e)&&e.length>0;Oe.emptyString=e=>Oe.string(e)&&e.length===0;var orr=e=>Oe.string(e)&&!/\S/.test(e);Oe.emptyStringOrWhitespace=e=>Oe.emptyString(e)||orr(e);Oe.nonEmptyString=e=>Oe.string(e)&&e.length>0;Oe.nonEmptyStringAndNotWhitespace=e=>Oe.string(e)&&!Oe.emptyStringOrWhitespace(e);Oe.emptyObject=e=>Oe.object(e)&&!Oe.map(e)&&!Oe.set(e)&&Object.keys(e).length===0;Oe.nonEmptyObject=e=>Oe.object(e)&&!Oe.map(e)&&!Oe.set(e)&&Object.keys(e).length>0;Oe.emptySet=e=>Oe.set(e)&&e.size===0;Oe.nonEmptySet=e=>Oe.set(e)&&e.size>0;Oe.emptyMap=e=>Oe.map(e)&&e.size===0;Oe.nonEmptyMap=e=>Oe.map(e)&&e.size>0;Oe.propertyKey=e=>Oe.any([Oe.string,Oe.number,Oe.symbol],e);Oe.formData=e=>Ni("FormData")(e);Oe.urlSearchParams=e=>Ni("URLSearchParams")(e);var rze=(e,t,r)=>{if(!Oe.function_(t))throw new TypeError(`Invalid predicate: ${JSON.stringify(t)}`);if(r.length===0)throw new TypeError("Invalid number of values");return e.call(r,t)};Oe.any=(e,...t)=>(Oe.array(e)?e:[e]).some(n=>rze(Array.prototype.some,n,t));Oe.all=(e,...t)=>rze(Array.prototype.every,e,t);var Lt=(e,t,r,n={})=>{if(!e){let{multipleValues:i}=n,a=i?`received values of types ${[...new Set(r.map(s=>`\`${Oe(s)}\``))].join(", ")}`:`received value of type \`${Oe(r)}\``;throw new TypeError(`Expected value which is \`${t}\`, ${a}.`)}};A1.assert={undefined:e=>Lt(Oe.undefined(e),"undefined",e),string:e=>Lt(Oe.string(e),"string",e),number:e=>Lt(Oe.number(e),"number",e),bigint:e=>Lt(Oe.bigint(e),"bigint",e),function_:e=>Lt(Oe.function_(e),"Function",e),null_:e=>Lt(Oe.null_(e),"null",e),class_:e=>Lt(Oe.class_(e),"Class",e),boolean:e=>Lt(Oe.boolean(e),"boolean",e),symbol:e=>Lt(Oe.symbol(e),"symbol",e),numericString:e=>Lt(Oe.numericString(e),"string with a number",e),array:(e,t)=>{Lt(Oe.array(e),"Array",e),t&&e.forEach(t)},buffer:e=>Lt(Oe.buffer(e),"Buffer",e),blob:e=>Lt(Oe.blob(e),"Blob",e),nullOrUndefined:e=>Lt(Oe.nullOrUndefined(e),"null or undefined",e),object:e=>Lt(Oe.object(e),"Object",e),iterable:e=>Lt(Oe.iterable(e),"Iterable",e),asyncIterable:e=>Lt(Oe.asyncIterable(e),"AsyncIterable",e),generator:e=>Lt(Oe.generator(e),"Generator",e),asyncGenerator:e=>Lt(Oe.asyncGenerator(e),"AsyncGenerator",e),nativePromise:e=>Lt(Oe.nativePromise(e),"native Promise",e),promise:e=>Lt(Oe.promise(e),"Promise",e),generatorFunction:e=>Lt(Oe.generatorFunction(e),"GeneratorFunction",e),asyncGeneratorFunction:e=>Lt(Oe.asyncGeneratorFunction(e),"AsyncGeneratorFunction",e),asyncFunction:e=>Lt(Oe.asyncFunction(e),"AsyncFunction",e),boundFunction:e=>Lt(Oe.boundFunction(e),"Function",e),regExp:e=>Lt(Oe.regExp(e),"RegExp",e),date:e=>Lt(Oe.date(e),"Date",e),error:e=>Lt(Oe.error(e),"Error",e),map:e=>Lt(Oe.map(e),"Map",e),set:e=>Lt(Oe.set(e),"Set",e),weakMap:e=>Lt(Oe.weakMap(e),"WeakMap",e),weakSet:e=>Lt(Oe.weakSet(e),"WeakSet",e),int8Array:e=>Lt(Oe.int8Array(e),"Int8Array",e),uint8Array:e=>Lt(Oe.uint8Array(e),"Uint8Array",e),uint8ClampedArray:e=>Lt(Oe.uint8ClampedArray(e),"Uint8ClampedArray",e),int16Array:e=>Lt(Oe.int16Array(e),"Int16Array",e),uint16Array:e=>Lt(Oe.uint16Array(e),"Uint16Array",e),int32Array:e=>Lt(Oe.int32Array(e),"Int32Array",e),uint32Array:e=>Lt(Oe.uint32Array(e),"Uint32Array",e),float32Array:e=>Lt(Oe.float32Array(e),"Float32Array",e),float64Array:e=>Lt(Oe.float64Array(e),"Float64Array",e),bigInt64Array:e=>Lt(Oe.bigInt64Array(e),"BigInt64Array",e),bigUint64Array:e=>Lt(Oe.bigUint64Array(e),"BigUint64Array",e),arrayBuffer:e=>Lt(Oe.arrayBuffer(e),"ArrayBuffer",e),sharedArrayBuffer:e=>Lt(Oe.sharedArrayBuffer(e),"SharedArrayBuffer",e),dataView:e=>Lt(Oe.dataView(e),"DataView",e),enumCase:(e,t)=>Lt(Oe.enumCase(e,t),"EnumCase",e),urlInstance:e=>Lt(Oe.urlInstance(e),"URL",e),urlString:e=>Lt(Oe.urlString(e),"string with a URL",e),truthy:e=>Lt(Oe.truthy(e),"truthy",e),falsy:e=>Lt(Oe.falsy(e),"falsy",e),nan:e=>Lt(Oe.nan(e),"NaN",e),primitive:e=>Lt(Oe.primitive(e),"primitive",e),integer:e=>Lt(Oe.integer(e),"integer",e),safeInteger:e=>Lt(Oe.safeInteger(e),"integer",e),plainObject:e=>Lt(Oe.plainObject(e),"plain object",e),typedArray:e=>Lt(Oe.typedArray(e),"TypedArray",e),arrayLike:e=>Lt(Oe.arrayLike(e),"array-like",e),domElement:e=>Lt(Oe.domElement(e),"HTMLElement",e),observable:e=>Lt(Oe.observable(e),"Observable",e),nodeStream:e=>Lt(Oe.nodeStream(e),"Node.js Stream",e),infinite:e=>Lt(Oe.infinite(e),"infinite number",e),emptyArray:e=>Lt(Oe.emptyArray(e),"empty array",e),nonEmptyArray:e=>Lt(Oe.nonEmptyArray(e),"non-empty array",e),emptyString:e=>Lt(Oe.emptyString(e),"empty string",e),emptyStringOrWhitespace:e=>Lt(Oe.emptyStringOrWhitespace(e),"empty string or whitespace",e),nonEmptyString:e=>Lt(Oe.nonEmptyString(e),"non-empty string",e),nonEmptyStringAndNotWhitespace:e=>Lt(Oe.nonEmptyStringAndNotWhitespace(e),"non-empty string and not whitespace",e),emptyObject:e=>Lt(Oe.emptyObject(e),"empty object",e),nonEmptyObject:e=>Lt(Oe.nonEmptyObject(e),"non-empty object",e),emptySet:e=>Lt(Oe.emptySet(e),"empty set",e),nonEmptySet:e=>Lt(Oe.nonEmptySet(e),"non-empty set",e),emptyMap:e=>Lt(Oe.emptyMap(e),"empty map",e),nonEmptyMap:e=>Lt(Oe.nonEmptyMap(e),"non-empty map",e),propertyKey:e=>Lt(Oe.propertyKey(e),"PropertyKey",e),formData:e=>Lt(Oe.formData(e),"FormData",e),urlSearchParams:e=>Lt(Oe.urlSearchParams(e),"URLSearchParams",e),evenInteger:e=>Lt(Oe.evenInteger(e),"even integer",e),oddInteger:e=>Lt(Oe.oddInteger(e),"odd integer",e),directInstanceOf:(e,t)=>Lt(Oe.directInstanceOf(e,t),"T",e),inRange:(e,t)=>Lt(Oe.inRange(e,t),"in range",e),any:(e,...t)=>Lt(Oe.any(e,...t),"predicate returns truthy for any value",t,{multipleValues:!0}),all:(e,...t)=>Lt(Oe.all(e,...t),"predicate returns truthy for all values",t,{multipleValues:!0})};Object.defineProperties(Oe,{class:{value:Oe.class_},function:{value:Oe.function_},null:{value:Oe.null_}});Object.defineProperties(A1.assert,{class:{value:A1.assert.class_},function:{value:A1.assert.function_},null:{value:A1.assert.null_}});A1.default=Oe;Sj.exports=Oe;Sj.exports.default=Oe;Sj.exports.assert=A1.assert});var Tj=b((cQr,Aue)=>{"use strict";var kj=class extends Error{constructor(t){super(t||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},Aj=class e{static fn(t){return(...r)=>new e((n,i,a)=>{r.push(a),t(...r).then(n,i)})}constructor(t){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,n)=>{this._reject=n;let i=o=>{(!this._isCanceled||!s.shouldReject)&&(this._isPending=!1,r(o))},a=o=>{this._isPending=!1,n(o)},s=o=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(o)};return Object.defineProperties(s,{shouldReject:{get:()=>this._rejectOnCancel,set:o=>{this._rejectOnCancel=o}}}),t(i,a,s)})}then(t,r){return this._promise.then(t,r)}catch(t){return this._promise.catch(t)}finally(t){return this._promise.finally(t)}cancel(t){if(!(!this._isPending||this._isCanceled)){if(this._isCanceled=!0,this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r);return}this._rejectOnCancel&&this._reject(new kj(t))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Aj.prototype,Promise.prototype);Aue.exports=Aj;Aue.exports.CancelError=kj});var nze=b((Oue,Due)=>{"use strict";Object.defineProperty(Oue,"__esModule",{value:!0});function urr(e){return e.encrypted}var Tue=(e,t)=>{let r;typeof t=="function"?r={connect:t}:r=t;let n=typeof r.connect=="function",i=typeof r.secureConnect=="function",a=typeof r.close=="function",s=()=>{n&&r.connect(),urr(e)&&i&&(e.authorized?r.secureConnect():e.authorizationError||e.once("secureConnect",r.secureConnect)),a&&e.once("close",r.close)};e.writable&&!e.connecting?s():e.connecting?e.once("connect",s):e.destroyed&&a&&r.close(e._hadError)};Oue.default=Tue;Due.exports=Tue;Due.exports.default=Tue});var ize=b((Pue,Iue)=>{"use strict";Object.defineProperty(Pue,"__esModule",{value:!0});var crr=nze(),lrr=require("util"),prr=Number(process.versions.node.split(".")[0]),Cue=e=>{if(e.timings)return e.timings;let t={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};e.timings=t;let r=o=>{let c=o.emit.bind(o);o.emit=(p,...f)=>(p==="error"&&(t.error=Date.now(),t.phases.total=t.error-t.start,o.emit=c),c(p,...f))};r(e);let n=()=>{t.abort=Date.now(),(!t.response||prr>=13)&&(t.phases.total=Date.now()-t.start)};e.prependOnceListener("abort",n);let i=o=>{if(t.socket=Date.now(),t.phases.wait=t.socket-t.start,lrr.types.isProxy(o))return;let c=()=>{t.lookup=Date.now(),t.phases.dns=t.lookup-t.socket};o.prependOnceListener("lookup",c),crr.default(o,{connect:()=>{t.connect=Date.now(),t.lookup===void 0&&(o.removeListener("lookup",c),t.lookup=t.connect,t.phases.dns=t.lookup-t.socket),t.phases.tcp=t.connect-t.lookup},secureConnect:()=>{t.secureConnect=Date.now(),t.phases.tls=t.secureConnect-t.connect}})};e.socket?i(e.socket):e.prependOnceListener("socket",i);let a=()=>{var o;t.upload=Date.now(),t.phases.request=t.upload-((o=t.secureConnect)!==null&&o!==void 0?o:t.connect)};return(()=>typeof e.writableFinished=="boolean"?e.writableFinished:e.finished&&e.outputSize===0&&(!e.socket||e.socket.writableLength===0))()?a():e.prependOnceListener("finish",a),e.prependOnceListener("response",o=>{t.response=Date.now(),t.phases.firstByte=t.response-t.upload,o.timings=t,r(o),o.prependOnceListener("end",()=>{t.end=Date.now(),t.phases.download=t.end-t.response,t.phases.total=t.end-t.start}),o.prependOnceListener("aborted",n)}),t};Pue.default=Cue;Iue.exports=Cue;Iue.exports.default=Cue});var pze=b((lQr,jue)=>{"use strict";var{V4MAPPED:frr,ADDRCONFIG:drr,ALL:lze,promises:{Resolver:aze},lookup:hrr}=require("dns"),{promisify:Rue}=require("util"),mrr=require("os"),J4=Symbol("cacheableLookupCreateConnection"),Fue=Symbol("cacheableLookupInstance"),sze=Symbol("expires"),grr=typeof lze=="number",oze=e=>{if(!(e&&typeof e.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},vrr=e=>{for(let t of e)t.family!==6&&(t.address=`::ffff:${t.address}`,t.family=6)},uze=()=>{let e=!1,t=!1;for(let r of Object.values(mrr.networkInterfaces()))for(let n of r)if(!n.internal&&(n.family==="IPv6"?t=!0:e=!0,e&&t))return{has4:e,has6:t};return{has4:e,has6:t}},yrr=e=>Symbol.iterator in e,cze={ttl:!0},brr={all:!0},Oj=class{constructor({cache:t=new Map,maxTtl:r=1/0,fallbackDuration:n=3600,errorTtl:i=.15,resolver:a=new aze,lookup:s=hrr}={}){if(this.maxTtl=r,this.errorTtl=i,this._cache=t,this._resolver=a,this._dnsLookup=Rue(s),this._resolver instanceof aze?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=Rue(this._resolver.resolve4.bind(this._resolver)),this._resolve6=Rue(this._resolver.resolve6.bind(this._resolver))),this._iface=uze(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,n<1)this._fallback=!1;else{this._fallback=!0;let o=setInterval(()=>{this._hostnamesToFallback.clear()},n*1e3);o.unref&&o.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(t){this.clear(),this._resolver.setServers(t)}get servers(){return this._resolver.getServers()}lookup(t,r,n){if(typeof r=="function"?(n=r,r={}):typeof r=="number"&&(r={family:r}),!n)throw new Error("Callback must be a function.");this.lookupAsync(t,r).then(i=>{r.all?n(null,i):n(null,i.address,i.family,i.expires,i.ttl)},n)}async lookupAsync(t,r={}){typeof r=="number"&&(r={family:r});let n=await this.query(t);if(r.family===6){let i=n.filter(a=>a.family===6);r.hints&frr&&(grr&&r.hints&lze||i.length===0)?vrr(n):n=i}else r.family===4&&(n=n.filter(i=>i.family===4));if(r.hints&drr){let{_iface:i}=this;n=n.filter(a=>a.family===6?i.has6:i.has4)}if(n.length===0){let i=new Error(`cacheableLookup ENOTFOUND ${t}`);throw i.code="ENOTFOUND",i.hostname=t,i}return r.all?n:n[0]}async query(t){let r=await this._cache.get(t);if(!r){let n=this._pending[t];if(n)r=await n;else{let i=this.queryAndCache(t);this._pending[t]=i;try{r=await i}finally{delete this._pending[t]}}}return r=r.map(n=>({...n})),r}async _resolve(t){let r=async p=>{try{return await p}catch(f){if(f.code==="ENODATA"||f.code==="ENOTFOUND")return[];throw f}},[n,i]=await Promise.all([this._resolve4(t,cze),this._resolve6(t,cze)].map(p=>r(p))),a=0,s=0,o=0,c=Date.now();for(let p of n)p.family=4,p.expires=c+p.ttl*1e3,a=Math.max(a,p.ttl);for(let p of i)p.family=6,p.expires=c+p.ttl*1e3,s=Math.max(s,p.ttl);return n.length>0?i.length>0?o=Math.min(a,s):o=a:o=s,{entries:[...n,...i],cacheTtl:o}}async _lookup(t){try{return{entries:await this._dnsLookup(t,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(t,r,n){if(this.maxTtl>0&&n>0){n=Math.min(n,this.maxTtl)*1e3,r[sze]=Date.now()+n;try{await this._cache.set(t,r,n)}catch(i){this.lookupAsync=async()=>{let a=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw a.cause=i,a}}yrr(this._cache)&&this._tick(n)}}async queryAndCache(t){if(this._hostnamesToFallback.has(t))return this._dnsLookup(t,brr);let r=await this._resolve(t);r.entries.length===0&&this._fallback&&(r=await this._lookup(t),r.entries.length!==0&&this._hostnamesToFallback.add(t));let n=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(t,r.entries,n),r.entries}_tick(t){let r=this._nextRemovalTime;(!r||t<r)&&(clearTimeout(this._removalTimeout),this._nextRemovalTime=t,this._removalTimeout=setTimeout(()=>{this._nextRemovalTime=!1;let n=1/0,i=Date.now();for(let[a,s]of this._cache){let o=s[sze];i>=o?this._cache.delete(a):o<n&&(n=o)}n!==1/0&&this._tick(n-i)},t),this._removalTimeout.unref&&this._removalTimeout.unref())}install(t){if(oze(t),J4 in t)throw new Error("CacheableLookup has been already installed");t[J4]=t.createConnection,t[Fue]=this,t.createConnection=(r,n)=>("lookup"in r||(r.lookup=this.lookup),t[J4](r,n))}uninstall(t){if(oze(t),t[J4]){if(t[Fue]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");t.createConnection=t[J4],delete t[J4],delete t[Fue]}}updateInterfaceInfo(){let{_iface:t}=this;this._iface=uze(),(t.has4&&!this._iface.has4||t.has6&&!this._iface.has6)&&this._cache.clear()}clear(t){if(t){this._cache.delete(t);return}this._cache.clear()}};jue.exports=Oj;jue.exports.default=Oj});var hze=b((pQr,dze)=>{"use strict";var wrr="text/plain",_rr="us-ascii",fze=(e,t)=>t.some(r=>r instanceof RegExp?r.test(e):r===e),xrr=(e,{stripHash:t})=>{let r=/^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(e);if(!r)throw new Error(`Invalid URL: ${e}`);let{type:n,data:i,hash:a}=r.groups,s=n.split(";");a=t?"":a;let o=!1;s[s.length-1]==="base64"&&(s.pop(),o=!0);let c=(s.shift()||"").toLowerCase(),f=[...s.map(d=>{let[h,g=""]=d.split("=").map(v=>v.trim());return h==="charset"&&(g=g.toLowerCase(),g===_rr)?"":`${h}${g?`=${g}`:""}`}).filter(Boolean)];return o&&f.push("base64"),(f.length!==0||c&&c!==wrr)&&f.unshift(c),`data:${f.join(";")},${o?i.trim():i}${a?`#${a}`:""}`},Err=(e,t)=>{if(t={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...t},e=e.trim(),/^data:/i.test(e))return xrr(e,t);if(/^view-source:/i.test(e))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=e.startsWith("//");!r&&/^\.*\//.test(e)||(e=e.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,t.defaultProtocol));let i=new URL(e);if(t.forceHttp&&t.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(t.forceHttp&&i.protocol==="https:"&&(i.protocol="http:"),t.forceHttps&&i.protocol==="http:"&&(i.protocol="https:"),t.stripAuthentication&&(i.username="",i.password=""),t.stripHash?i.hash="":t.stripTextFragment&&(i.hash=i.hash.replace(/#?:~:text.*?$/i,"")),i.pathname&&(i.pathname=i.pathname.replace(/(?<!\b(?:[a-z][a-z\d+\-.]{1,50}:))\/{2,}/g,"/")),i.pathname)try{i.pathname=decodeURI(i.pathname)}catch{}if(t.removeDirectoryIndex===!0&&(t.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(t.removeDirectoryIndex)&&t.removeDirectoryIndex.length>0){let s=i.pathname.split("/"),o=s[s.length-1];fze(o,t.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),i.pathname=s.slice(1).join("/")+"/")}if(i.hostname&&(i.hostname=i.hostname.replace(/\.$/,""),t.stripWWW&&/^www\.(?!www\.)(?:[a-z\-\d]{1,63})\.(?:[a-z.\-\d]{2,63})$/.test(i.hostname)&&(i.hostname=i.hostname.replace(/^www\./,""))),Array.isArray(t.removeQueryParameters))for(let s of[...i.searchParams.keys()])fze(s,t.removeQueryParameters)&&i.searchParams.delete(s);t.removeQueryParameters===!0&&(i.search=""),t.sortQueryParameters&&i.searchParams.sort(),t.removeTrailingSlash&&(i.pathname=i.pathname.replace(/\/$/,""));let a=e;return e=i.toString(),!t.removeSingleSlash&&i.pathname==="/"&&!a.endsWith("/")&&i.hash===""&&(e=e.replace(/\/$/,"")),(t.removeTrailingSlash||i.pathname==="/")&&i.hash===""&&t.removeSingleSlash&&(e=e.replace(/\/$/,"")),r&&!t.normalizeProtocol&&(e=e.replace(/^http:\/\//,"//")),t.stripProtocol&&(e=e.replace(/^(?:https?:)?\/\//,"")),e};dze.exports=Err});var vze=b((fQr,gze)=>{var Srr=G9(),krr=function(){},Arr=function(e){return e.setHeader&&typeof e.abort=="function"},Trr=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},mze=function(e,t,r){if(typeof t=="function")return mze(e,null,t);t||(t={}),r=Srr(r||krr);var n=e._writableState,i=e._readableState,a=t.readable||t.readable!==!1&&e.readable,s=t.writable||t.writable!==!1&&e.writable,o=!1,c=function(){e.writable||p()},p=function(){s=!1,a||r.call(e)},f=function(){a=!1,s||r.call(e)},d=function(_){r.call(e,_?new Error("exited with error code: "+_):null)},h=function(_){r.call(e,_)},g=function(){process.nextTick(v)},v=function(){if(!o){if(a&&!(i&&i.ended&&!i.destroyed))return r.call(e,new Error("premature close"));if(s&&!(n&&n.ended&&!n.destroyed))return r.call(e,new Error("premature close"))}},y=function(){e.req.on("finish",p)};return Arr(e)?(e.on("complete",p),e.on("abort",g),e.req?y():e.on("request",y)):s&&!n&&(e.on("end",c),e.on("close",c)),Trr(e)&&e.on("exit",d),e.on("end",f),e.on("finish",p),t.error!==!1&&e.on("error",h),e.on("close",g),function(){o=!0,e.removeListener("complete",p),e.removeListener("abort",g),e.removeListener("request",y),e.req&&e.req.removeListener("finish",p),e.removeListener("end",c),e.removeListener("close",c),e.removeListener("finish",p),e.removeListener("exit",d),e.removeListener("end",f),e.removeListener("error",h),e.removeListener("close",g)}};gze.exports=mze});var wze=b((dQr,bze)=>{var Orr=G9(),Drr=vze(),Nue=require("fs"),hk=function(){},Crr=/^v?\.0/.test(process.version),Dj=function(e){return typeof e=="function"},Prr=function(e){return!Crr||!Nue?!1:(e instanceof(Nue.ReadStream||hk)||e instanceof(Nue.WriteStream||hk))&&Dj(e.close)},Irr=function(e){return e.setHeader&&Dj(e.abort)},Rrr=function(e,t,r,n){n=Orr(n);var i=!1;e.on("close",function(){i=!0}),Drr(e,{readable:t,writable:r},function(s){if(s)return n(s);i=!0,n()});var a=!1;return function(s){if(!i&&!a){if(a=!0,Prr(e))return e.close(hk);if(Irr(e))return e.abort();if(Dj(e.destroy))return e.destroy();n(s||new Error("stream was destroyed"))}}},yze=function(e){e()},Frr=function(e,t){return e.pipe(t)},jrr=function(){var e=Array.prototype.slice.call(arguments),t=Dj(e[e.length-1]||hk)&&e.pop()||hk;if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new Error("pump requires two streams per minimum");var r,n=e.map(function(i,a){var s=a<e.length-1,o=a>0;return Rrr(i,s,o,function(c){r||(r=c),c&&n.forEach(yze),!s&&(n.forEach(yze),t(r))})});return e.reduce(Frr)};bze.exports=jrr});var xze=b((hQr,_ze)=>{"use strict";var{PassThrough:Nrr}=require("stream");_ze.exports=e=>{e={...e};let{array:t}=e,{encoding:r}=e,n=r==="buffer",i=!1;t?i=!(r||n):r=r||"utf8",n&&(r=null);let a=new Nrr({objectMode:i});r&&a.setEncoding(r);let s=0,o=[];return a.on("data",c=>{o.push(c),i?s=o.length:s+=c.length}),a.getBufferedValue=()=>t?o:n?Buffer.concat(o,s):o.join(""),a.getBufferedLength=()=>s,a}});var Eze=b((mQr,X4)=>{"use strict";var{constants:qrr}=require("buffer"),Lrr=wze(),$rr=xze(),Cj=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Pj(e,t){if(!e)return Promise.reject(new Error("Expected a stream"));t={maxBuffer:1/0,...t};let{maxBuffer:r}=t,n;return await new Promise((i,a)=>{let s=o=>{o&&n.getBufferedLength()<=qrr.MAX_LENGTH&&(o.bufferedData=n.getBufferedValue()),a(o)};n=Lrr(e,$rr(t),o=>{if(o){s(o);return}i()}),n.on("data",()=>{n.getBufferedLength()>r&&s(new Cj)})}),n.getBufferedValue()}X4.exports=Pj;X4.exports.default=Pj;X4.exports.buffer=(e,t)=>Pj(e,{...t,encoding:"buffer"});X4.exports.array=(e,t)=>Pj(e,{...t,array:!0});X4.exports.MaxBufferError=Cj});var kze=b((vQr,Sze)=>{"use strict";var Brr=new Set([200,203,204,206,300,301,308,404,405,410,414,501]),Mrr=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),Urr=new Set([500,502,503,504]),zrr={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},Hrr={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function ew(e){let t=parseInt(e,10);return isFinite(t)?t:0}function Vrr(e){return e?Urr.has(e.status):!0}function que(e){let t={};if(!e)return t;let r=e.trim().split(/,/);for(let n of r){let[i,a]=n.split(/=/,2);t[i.trim()]=a===void 0?!0:a.trim().replace(/^"|"$/g,"")}return t}function Grr(e){let t=[];for(let r in e){let n=e[r];t.push(n===!0?r:r+"="+n)}if(t.length)return t.join(", ")}Sze.exports=class{constructor(t,r,{shared:n,cacheHeuristic:i,immutableMinTimeToLive:a,ignoreCargoCult:s,_fromObject:o}={}){if(o){this._fromObject(o);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(t),this._responseTime=this.now(),this._isShared=n!==!1,this._cacheHeuristic=i!==void 0?i:.1,this._immutableMinTtl=a!==void 0?a:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=que(r.headers["cache-control"]),this._method="method"in t?t.method:"GET",this._url=t.url,this._host=t.headers.host,this._noAuthorization=!t.headers.authorization,this._reqHeaders=r.headers.vary?t.headers:null,this._reqcc=que(t.headers["cache-control"]),s&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":Grr(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),r.headers["cache-control"]==null&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&Mrr.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||Brr.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(t){if(!t||!t.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(t){this._assertRequestHasHeaders(t);let r=que(t.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(t.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(t,!1)}_requestMatches(t,r){return(!this._url||this._url===t.url)&&this._host===t.headers.host&&(!t.method||this._method===t.method||r&&t.method==="HEAD")&&this._varyMatches(t)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(t){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let n of r)if(t.headers[n]!==this._reqHeaders[n])return!1;return!0}_copyWithoutHopByHopHeaders(t){let r={};for(let n in t)zrr[n]||(r[n]=t[n]);if(t.connection){let n=t.connection.trim().split(/\s*,\s*/);for(let i of n)delete r[i]}if(r.warning){let n=r.warning.split(/,/).filter(i=>!/^\s*1[0-9][0-9]/.test(i));n.length?r.warning=n.join(",").trim():delete r.warning}return r}responseHeaders(){let t=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(t.warning=(t.warning?`${t.warning}, `:"")+'113 - "rfc7234 5.5.4"'),t.age=`${Math.round(r)}`,t.date=new Date(this.now()).toUTCString(),t}date(){let t=Date.parse(this._resHeaders.date);return isFinite(t)?t:this._responseTime}age(){let t=this._ageValue(),r=(this.now()-this._responseTime)/1e3;return t+r}_ageValue(){return ew(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return ew(this._rescc["s-maxage"])}if(this._rescc["max-age"])return ew(this._rescc["max-age"]);let t=this._rescc.immutable?this._immutableMinTtl:0,r=this.date();if(this._resHeaders.expires){let n=Date.parse(this._resHeaders.expires);return Number.isNaN(n)||n<r?0:Math.max(t,(n-r)/1e3)}if(this._resHeaders["last-modified"]){let n=Date.parse(this._resHeaders["last-modified"]);if(isFinite(n)&&r>n)return Math.max(t,(r-n)/1e3*this._cacheHeuristic)}return t}timeToLive(){let t=this.maxAge()-this.age(),r=t+ew(this._rescc["stale-if-error"]),n=t+ew(this._rescc["stale-while-revalidate"]);return Math.max(0,t,r,n)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+ew(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+ew(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(t){return new this(void 0,void 0,{_fromObject:t})}_fromObject(t){if(this._responseTime)throw Error("Reinitialized");if(!t||t.v!==1)throw Error("Invalid serialization");this._responseTime=t.t,this._isShared=t.sh,this._cacheHeuristic=t.ch,this._immutableMinTtl=t.imm!==void 0?t.imm:24*3600*1e3,this._status=t.st,this._resHeaders=t.resh,this._rescc=t.rescc,this._method=t.m,this._url=t.u,this._host=t.h,this._noAuthorization=t.a,this._reqHeaders=t.reqh,this._reqcc=t.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(t){this._assertRequestHasHeaders(t);let r=this._copyWithoutHopByHopHeaders(t.headers);if(delete r["if-range"],!this._requestMatches(t,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let i=r["if-none-match"].split(/,/).filter(a=>!/^\s*W\//.test(a));i.length?r["if-none-match"]=i.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(t,r){if(this._assertRequestHasHeaders(t),this._useStaleIfError()&&Vrr(r))return{modified:!1,matches:!1,policy:this};if(!r||!r.headers)throw Error("Response headers missing");let n=!1;if(r.status!==void 0&&r.status!=304?n=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?n=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?n=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?n=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(n=!0),!n)return{policy:new this.constructor(t,r),modified:r.status!=304,matches:!1};let i={};for(let s in this._resHeaders)i[s]=s in r.headers&&!Hrr[s]?r.headers[s]:this._resHeaders[s];let a=Object.assign({},r,{status:this._status,method:this._method,headers:i});return{policy:new this.constructor(t,a,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Ij=b((yQr,Aze)=>{"use strict";Aze.exports=e=>{let t={};for(let[r,n]of Object.entries(e))t[r.toLowerCase()]=n;return t}});var Oze=b((bQr,Tze)=>{"use strict";var Wrr=require("stream").Readable,Krr=Ij(),Lue=class extends Wrr{constructor(t,r,n,i){if(typeof t!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(n instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof i!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=t,this.headers=Krr(r),this.body=n,this.url=i}_read(){this.push(this.body),this.push(null)}};Tze.exports=Lue});var Cze=b((wQr,Dze)=>{"use strict";var Yrr=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];Dze.exports=(e,t)=>{let r=new Set(Object.keys(e).concat(Yrr));for(let n of r)n in t||(t[n]=typeof e[n]=="function"?e[n].bind(e):e[n])}});var Ize=b((_Qr,Pze)=>{"use strict";var Jrr=require("stream").PassThrough,Xrr=Cze(),Qrr=e=>{if(!(e&&e.pipe))throw new TypeError("Parameter `response` must be a response stream.");let t=new Jrr;return Xrr(e,t),e.pipe(t)};Pze.exports=Qrr});var Rze=b($ue=>{$ue.stringify=function e(t){if(typeof t>"u")return t;if(t&&Buffer.isBuffer(t))return JSON.stringify(":base64:"+t.toString("base64"));if(t&&t.toJSON&&(t=t.toJSON()),t&&typeof t=="object"){var r="",n=Array.isArray(t);r=n?"[":"{";var i=!0;for(var a in t){var s=typeof t[a]=="function"||!n&&typeof t[a]>"u";Object.hasOwnProperty.call(t,a)&&!s&&(i||(r+=","),i=!1,n?t[a]==null?r+="null":r+=e(t[a]):t[a]!==void 0&&(r+=e(a)+":"+e(t[a])))}return r+=n?"]":"}",r}else return typeof t=="string"?JSON.stringify(/^:/.test(t)?":"+t:t):typeof t>"u"?"null":JSON.stringify(t)};$ue.parse=function(e){return JSON.parse(e,function(t,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var qze=b((EQr,Nze)=>{"use strict";var Zrr=require("events"),Fze=Rze(),enr=e=>{let t={redis:"@keyv/redis",rediss:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql",etcd:"@keyv/etcd",offline:"@keyv/offline",tiered:"@keyv/tiered"};if(e.adapter||e.uri){let r=e.adapter||/^[^:+]*/.exec(e.uri)[0];return new(require(t[r]))(e)}return new Map},jze=["sqlite","postgres","mysql","mongo","redis","tiered"],Bue=class extends Zrr{constructor(t,{emitErrors:r=!0,...n}={}){if(super(),this.opts={namespace:"keyv",serialize:Fze.stringify,deserialize:Fze.parse,...typeof t=="string"?{uri:t}:t,...n},!this.opts.store){let a={...this.opts};this.opts.store=enr(a)}if(this.opts.compression){let a=this.opts.compression;this.opts.serialize=a.serialize.bind(a),this.opts.deserialize=a.deserialize.bind(a)}typeof this.opts.store.on=="function"&&r&&this.opts.store.on("error",a=>this.emit("error",a)),this.opts.store.namespace=this.opts.namespace;let i=a=>async function*(){for await(let[s,o]of typeof a=="function"?a(this.opts.store.namespace):a){let c=this.opts.deserialize(o);if(!(this.opts.store.namespace&&!s.includes(this.opts.store.namespace))){if(typeof c.expires=="number"&&Date.now()>c.expires){this.delete(s);continue}yield[this._getKeyUnprefix(s),c.value]}}};typeof this.opts.store[Symbol.iterator]=="function"&&this.opts.store instanceof Map?this.iterator=i(this.opts.store):typeof this.opts.store.iterator=="function"&&this.opts.store.opts&&this._checkIterableAdaptar()&&(this.iterator=i(this.opts.store.iterator.bind(this.opts.store)))}_checkIterableAdaptar(){return jze.includes(this.opts.store.opts.dialect)||jze.findIndex(t=>this.opts.store.opts.url.includes(t))>=0}_getKeyPrefix(t){return`${this.opts.namespace}:${t}`}_getKeyPrefixArray(t){return t.map(r=>`${this.opts.namespace}:${r}`)}_getKeyUnprefix(t){return t.split(":").splice(1).join(":")}get(t,r){let{store:n}=this.opts,i=Array.isArray(t),a=i?this._getKeyPrefixArray(t):this._getKeyPrefix(t);if(i&&n.getMany===void 0){let s=[];for(let o of a)s.push(Promise.resolve().then(()=>n.get(o)).then(c=>typeof c=="string"?this.opts.deserialize(c):this.opts.compression?this.opts.deserialize(c):c).then(c=>{if(c!=null)return typeof c.expires=="number"&&Date.now()>c.expires?this.delete(o).then(()=>{}):r&&r.raw?c:c.value}));return Promise.allSettled(s).then(o=>{let c=[];for(let p of o)c.push(p.value);return c})}return Promise.resolve().then(()=>i?n.getMany(a):n.get(a)).then(s=>typeof s=="string"?this.opts.deserialize(s):this.opts.compression?this.opts.deserialize(s):s).then(s=>{if(s!=null){if(i){let o=[];for(let c of s){if(typeof c=="string"&&(c=this.opts.deserialize(c)),c==null){o.push(void 0);continue}typeof c.expires=="number"&&Date.now()>c.expires?(this.delete(t).then(()=>{}),o.push(void 0)):o.push(r&&r.raw?c:c.value)}return o}return typeof s.expires=="number"&&Date.now()>s.expires?this.delete(t).then(()=>{}):r&&r.raw?s:s.value}})}set(t,r,n){let i=this._getKeyPrefix(t);typeof n>"u"&&(n=this.opts.ttl),n===0&&(n=void 0);let{store:a}=this.opts;return Promise.resolve().then(()=>{let s=typeof n=="number"?Date.now()+n:null;return typeof r=="symbol"&&this.emit("error","symbol cannot be serialized"),r={value:r,expires:s},this.opts.serialize(r)}).then(s=>a.set(i,s,n)).then(()=>!0)}delete(t){let{store:r}=this.opts;if(Array.isArray(t)){let i=this._getKeyPrefixArray(t);if(r.deleteMany===void 0){let a=[];for(let s of i)a.push(r.delete(s));return Promise.allSettled(a).then(s=>s.every(o=>o.value===!0))}return Promise.resolve().then(()=>r.deleteMany(i))}let n=this._getKeyPrefix(t);return Promise.resolve().then(()=>r.delete(n))}clear(){let{store:t}=this.opts;return Promise.resolve().then(()=>t.clear())}has(t){let r=this._getKeyPrefix(t),{store:n}=this.opts;return Promise.resolve().then(async()=>typeof n.has=="function"?n.has(r):await n.get(r)!==void 0)}disconnect(){let{store:t}=this.opts;if(typeof t.disconnect=="function")return t.disconnect()}};Nze.exports=Bue});var Bze=b((SQr,$ze)=>{"use strict";var tnr=require("events"),Rj=require("url"),rnr=hze(),nnr=Eze(),Mue=kze(),Lze=Oze(),inr=Ij(),anr=Ize(),snr=qze(),mk=class e{constructor(t,r){if(typeof t!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new snr({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(t)}createCacheableRequest(t){return(r,n)=>{let i;if(typeof r=="string")i=Uue(Rj.parse(r)),r={};else if(r instanceof Rj.URL)i=Uue(Rj.parse(r.toString())),r={};else{let[d,...h]=(r.path||"").split("?"),g=h.length>0?`?${h.join("?")}`:"";i=Uue({...r,pathname:d,search:g})}r={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...r,...onr(i)},r.headers=inr(r.headers);let a=new tnr,s=rnr(Rj.format(i),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),o=`${r.method}:${s}`,c=!1,p=!1,f=d=>{p=!0;let h=!1,g,v=new Promise(_=>{g=()=>{h||(h=!0,_())}}),y=_=>{if(c&&!d.forceRefresh){_.status=_.statusCode;let A=Mue.fromObject(c.cachePolicy).revalidatedPolicy(d,_);if(!A.modified){let D=A.policy.responseHeaders();_=new Lze(c.statusCode,D,c.body,c.url),_.cachePolicy=A.policy,_.fromCache=!0}}_.fromCache||(_.cachePolicy=new Mue(d,_,d),_.fromCache=!1);let x;d.cache&&_.cachePolicy.storable()?(x=anr(_),(async()=>{try{let A=nnr.buffer(_);if(await Promise.race([v,new Promise(F=>_.once("end",F))]),h)return;let D=await A,j={cachePolicy:_.cachePolicy.toObject(),url:_.url,statusCode:_.fromCache?c.statusCode:_.statusCode,body:D},H=d.strictTtl?_.cachePolicy.timeToLive():void 0;d.maxTtl&&(H=H?Math.min(H,d.maxTtl):d.maxTtl),await this.cache.set(o,j,H)}catch(A){a.emit("error",new e.CacheError(A))}})()):d.cache&&c&&(async()=>{try{await this.cache.delete(o)}catch(A){a.emit("error",new e.CacheError(A))}})(),a.emit("response",x||_),typeof n=="function"&&n(x||_)};try{let _=t(d,y);_.once("error",g),_.once("abort",g),a.emit("request",_)}catch(_){a.emit("error",new e.RequestError(_))}};return(async()=>{let d=async g=>{await Promise.resolve();let v=g.cache?await this.cache.get(o):void 0;if(typeof v>"u")return f(g);let y=Mue.fromObject(v.cachePolicy);if(y.satisfiesWithoutRevalidation(g)&&!g.forceRefresh){let _=y.responseHeaders(),x=new Lze(v.statusCode,_,v.body,v.url);x.cachePolicy=y,x.fromCache=!0,a.emit("response",x),typeof n=="function"&&n(x)}else c=v,g.headers=y.revalidationHeaders(g),f(g)},h=g=>a.emit("error",new e.CacheError(g));this.cache.once("error",h),a.on("response",()=>this.cache.removeListener("error",h));try{await d(r)}catch(g){r.automaticFailover&&!p&&f(r),a.emit("error",new e.CacheError(g))}})(),a}}};function onr(e){let t={...e};return t.path=`${e.pathname||"/"}${e.search||""}`,delete t.pathname,delete t.search,t}function Uue(e){return{protocol:e.protocol,auth:e.auth,hostname:e.hostname||e.host||"localhost",port:e.port,pathname:e.pathname,search:e.search}}mk.RequestError=class extends Error{constructor(e){super(e.message),this.name="RequestError",Object.assign(this,e)}};mk.CacheError=class extends Error{constructor(e){super(e.message),this.name="CacheError",Object.assign(this,e)}};$ze.exports=mk});var Uze=b((TQr,Mze)=>{"use strict";var unr=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];Mze.exports=(e,t)=>{if(t._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(e).concat(unr)),n={};for(let i of r)i in t||(n[i]={get(){let a=e[i];return typeof a=="function"?a.bind(e):a},set(a){e[i]=a},enumerable:!0,configurable:!1});return Object.defineProperties(t,n),e.once("aborted",()=>{t.destroy(),t.emit("aborted")}),e.once("close",()=>{e.complete&&t.readable?t.once("end",()=>{t.emit("close")}):t.emit("close")}),t}});var Hze=b((OQr,zze)=>{"use strict";var{Transform:cnr,PassThrough:lnr}=require("stream"),zue=require("zlib"),pnr=Uze();zze.exports=e=>{let t=(e.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(t))return e;let r=t==="br";if(r&&typeof zue.createBrotliDecompress!="function")return e.destroy(new Error("Brotli is not supported on Node.js < 12")),e;let n=!0,i=new cnr({transform(o,c,p){n=!1,p(null,o)},flush(o){o()}}),a=new lnr({autoDestroy:!1,destroy(o,c){e.destroy(),c(o)}}),s=r?zue.createBrotliDecompress():zue.createUnzip();return s.once("error",o=>{if(n&&!e.readable){a.end();return}a.destroy(o)}),pnr(e,a),e.pipe(i).pipe(s).pipe(a),a}});var Vue=b((DQr,Vze)=>{"use strict";var Hue=class{constructor(t={}){if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=t.maxSize,this.onEviction=t.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(t,r){if(this.cache.set(t,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[n,i]of this.oldCache.entries())this.onEviction(n,i);this.oldCache=this.cache,this.cache=new Map}}get(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t)){let r=this.oldCache.get(t);return this.oldCache.delete(t),this._set(t,r),r}}set(t,r){return this.cache.has(t)?this.cache.set(t,r):this._set(t,r),this}has(t){return this.cache.has(t)||this.oldCache.has(t)}peek(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t))return this.oldCache.get(t)}delete(t){let r=this.cache.delete(t);return r&&this._size--,this.oldCache.delete(t)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[t]of this)yield t}*values(){for(let[,t]of this)yield t}*[Symbol.iterator](){for(let t of this.cache)yield t;for(let t of this.oldCache){let[r]=t;this.cache.has(r)||(yield t)}}get size(){let t=0;for(let r of this.oldCache.keys())this.cache.has(r)||t++;return Math.min(this._size+t,this.maxSize)}};Vze.exports=Hue});var Wue=b((CQr,Yze)=>{"use strict";var fnr=require("events"),dnr=require("tls"),hnr=require("http2"),mnr=Vue(),Xu=Symbol("currentStreamsCount"),Gze=Symbol("request"),tp=Symbol("cachedOriginSet"),Q4=Symbol("gracefullyClosing"),gnr=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],vnr=(e,t,r)=>{let n=0,i=e.length;for(;n<i;){let a=n+i>>>1;r(e[a],t)?n=a+1:i=a}return n},ynr=(e,t)=>e.remoteSettings.maxConcurrentStreams>t.remoteSettings.maxConcurrentStreams,Gue=(e,t)=>{for(let r of e)r[tp].length<t[tp].length&&r[tp].every(n=>t[tp].includes(n))&&r[Xu]+t[Xu]<=t.remoteSettings.maxConcurrentStreams&&Kze(r)},bnr=(e,t)=>{for(let r of e)t[tp].length<r[tp].length&&t[tp].every(n=>r[tp].includes(n))&&t[Xu]+r[Xu]<=r.remoteSettings.maxConcurrentStreams&&Kze(t)},Wze=({agent:e,isFree:t})=>{let r={};for(let n in e.sessions){let a=e.sessions[n].filter(s=>{let o=s[tw.kCurrentStreamsCount]<s.remoteSettings.maxConcurrentStreams;return t?o:!o});a.length!==0&&(r[n]=a)}return r},Kze=e=>{e[Q4]=!0,e[Xu]===0&&e.close()},tw=class e extends fnr{constructor({timeout:t=6e4,maxSessions:r=1/0,maxFreeSessions:n=10,maxCachedTlsSessions:i=100}={}){super(),this.sessions={},this.queue={},this.timeout=t,this.maxSessions=r,this.maxFreeSessions=n,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new mnr({maxSize:i})}static normalizeOrigin(t,r){return typeof t=="string"&&(t=new URL(t)),r&&t.hostname!==r&&(t.hostname=r),t.origin}normalizeOptions(t){let r="";if(t)for(let n of gnr)t[n]&&(r+=`:${t[n]}`);return r}_tryToCreateNewSession(t,r){if(!(t in this.queue)||!(r in this.queue[t]))return;let n=this.queue[t][r];this._sessionsCount<this.maxSessions&&!n.completed&&(n.completed=!0,n())}getSession(t,r,n){return new Promise((i,a)=>{Array.isArray(n)?(n=[...n],i()):n=[{resolve:i,reject:a}];let s=this.normalizeOptions(r),o=e.normalizeOrigin(t,r&&r.servername);if(o===void 0){for(let{reject:f}of n)f(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(s in this.sessions){let f=this.sessions[s],d=-1,h=-1,g;for(let v of f){let y=v.remoteSettings.maxConcurrentStreams;if(y<d)break;if(v[tp].includes(o)){let _=v[Xu];if(_>=y||v[Q4]||v.destroyed)continue;g||(d=y),_>h&&(g=v,h=_)}}if(g){if(n.length!==1){for(let{reject:v}of n){let y=new Error(`Expected the length of listeners to be 1, got ${n.length}.
Please report this to https://github.com/szmarczak/http2-wrapper/`);v(y)}return}n[0].resolve(g);return}}if(s in this.queue){if(o in this.queue[s]){this.queue[s][o].listeners.push(...n),this._tryToCreateNewSession(s,o);return}}else this.queue[s]={};let c=()=>{s in this.queue&&this.queue[s][o]===p&&(delete this.queue[s][o],Object.keys(this.queue[s]).length===0&&delete this.queue[s])},p=()=>{let f=`${o}:${s}`,d=!1;try{let h=hnr.connect(t,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(f),...r});h[Xu]=0,h[Q4]=!1;let g=()=>h[Xu]<h.remoteSettings.maxConcurrentStreams,v=!0;h.socket.once("session",_=>{this.tlsSessionCache.set(f,_)}),h.once("error",_=>{for(let{reject:x}of n)x(_);this.tlsSessionCache.delete(f)}),h.setTimeout(this.timeout,()=>{h.destroy()}),h.once("close",()=>{if(d){v&&this._freeSessionsCount--,this._sessionsCount--;let _=this.sessions[s];_.splice(_.indexOf(h),1),_.length===0&&delete this.sessions[s]}else{let _=new Error("Session closed without receiving a SETTINGS frame");_.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:x}of n)x(_);c()}this._tryToCreateNewSession(s,o)});let y=()=>{if(!(!(s in this.queue)||!g())){for(let _ of h[tp])if(_ in this.queue[s]){let{listeners:x}=this.queue[s][_];for(;x.length!==0&&g();)x.shift().resolve(h);let A=this.queue[s];if(A[_].listeners.length===0&&(delete A[_],Object.keys(A).length===0)){delete this.queue[s];break}if(!g())break}}};h.on("origin",()=>{h[tp]=h.originSet,g()&&(y(),Gue(this.sessions[s],h))}),h.once("remoteSettings",()=>{if(h.ref(),h.unref(),this._sessionsCount++,p.destroyed){let _=new Error("Agent has been destroyed");for(let x of n)x.reject(_);h.destroy();return}h[tp]=h.originSet;{let _=this.sessions;if(s in _){let x=_[s];x.splice(vnr(x,h,ynr),0,h)}else _[s]=[h]}this._freeSessionsCount+=1,d=!0,this.emit("session",h),y(),c(),h[Xu]===0&&this._freeSessionsCount>this.maxFreeSessions&&h.close(),n.length!==0&&(this.getSession(o,r,n),n.length=0),h.on("remoteSettings",()=>{y(),Gue(this.sessions[s],h)})}),h[Gze]=h.request,h.request=(_,x)=>{if(h[Q4])throw new Error("The session is gracefully closing. No new streams are allowed.");let A=h[Gze](_,x);return h.ref(),++h[Xu],h[Xu]===h.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,A.once("close",()=>{if(v=g(),--h[Xu],!h.destroyed&&!h.closed&&(bnr(this.sessions[s],h),g()&&!h.closed)){v||(this._freeSessionsCount++,v=!0);let D=h[Xu]===0;D&&h.unref(),D&&(this._freeSessionsCount>this.maxFreeSessions||h[Q4])?h.close():(Gue(this.sessions[s],h),y())}}),A}}catch(h){for(let g of n)g.reject(h);c()}};p.listeners=n,p.completed=!1,p.destroyed=!1,this.queue[s][o]=p,this._tryToCreateNewSession(s,o)})}request(t,r,n,i){return new Promise((a,s)=>{this.getSession(t,r,[{reject:s,resolve:o=>{try{a(o.request(n,i))}catch(c){s(c)}}}])})}createConnection(t,r){return e.connect(t,r)}static connect(t,r){r.ALPNProtocols=["h2"];let n=t.port||443,i=t.hostname||t.host;return typeof r.servername>"u"&&(r.servername=i),dnr.connect(n,i,r)}closeFreeSessions(){for(let t of Object.values(this.sessions))for(let r of t)r[Xu]===0&&r.close()}destroy(t){for(let r of Object.values(this.sessions))for(let n of r)n.destroy(t);for(let r of Object.values(this.queue))for(let n of Object.values(r))n.destroyed=!0;this.queue={}}get freeSessions(){return Wze({agent:this,isFree:!0})}get busySessions(){return Wze({agent:this,isFree:!1})}};tw.kCurrentStreamsCount=Xu;tw.kGracefullyClosing=Q4;Yze.exports={Agent:tw,globalAgent:new tw}});var Yue=b((PQr,Jze)=>{"use strict";var{Readable:wnr}=require("stream"),Kue=class extends wnr{constructor(t,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=t,this.connection=t,this._dumped=!1}_destroy(t){this.req._request.destroy(t)}setTimeout(t,r){return this.req.setTimeout(t,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};Jze.exports=Kue});var Jue=b((IQr,Xze)=>{"use strict";Xze.exports=e=>{let t={protocol:e.protocol,hostname:typeof e.hostname=="string"&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return typeof e.port=="string"&&e.port.length!==0&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}});var Zze=b((RQr,Qze)=>{"use strict";Qze.exports=(e,t,r)=>{for(let n of r)e.on(n,(...i)=>t.emit(n,...i))}});var tHe=b((FQr,eHe)=>{"use strict";eHe.exports=e=>{switch(e){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var nHe=b((NQr,rHe)=>{"use strict";var Z4=(e,t,r)=>{rHe.exports[t]=class extends e{constructor(...i){super(typeof r=="string"?r:r(i)),this.name=`${super.name} [${t}]`,this.code=t}}};Z4(TypeError,"ERR_INVALID_ARG_TYPE",e=>{let t=e[0].includes(".")?"property":"argument",r=e[1],n=Array.isArray(r);return n&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${e[0]}" ${t} must be ${n?"one of":"of"} type ${r}. Received ${typeof e[2]}`});Z4(TypeError,"ERR_INVALID_PROTOCOL",e=>`Protocol "${e[0]}" not supported. Expected "${e[1]}"`);Z4(Error,"ERR_HTTP_HEADERS_SENT",e=>`Cannot ${e[0]} headers after they are sent to the client`);Z4(TypeError,"ERR_INVALID_HTTP_TOKEN",e=>`${e[0]} must be a valid HTTP token [${e[1]}]`);Z4(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",e=>`Invalid value "${e[0]} for header "${e[1]}"`);Z4(TypeError,"ERR_INVALID_CHAR",e=>`Invalid character in ${e[0]} [${e[1]}]`)});var tce=b((qQr,lHe)=>{"use strict";var _nr=require("http2"),{Writable:xnr}=require("stream"),{Agent:iHe,globalAgent:Enr}=Wue(),Snr=Yue(),knr=Jue(),Anr=Zze(),Tnr=tHe(),{ERR_INVALID_ARG_TYPE:Xue,ERR_INVALID_PROTOCOL:Onr,ERR_HTTP_HEADERS_SENT:aHe,ERR_INVALID_HTTP_TOKEN:Dnr,ERR_HTTP_INVALID_HEADER_VALUE:Cnr,ERR_INVALID_CHAR:Pnr}=nHe(),{HTTP2_HEADER_STATUS:sHe,HTTP2_HEADER_METHOD:oHe,HTTP2_HEADER_PATH:uHe,HTTP2_METHOD_CONNECT:Inr}=_nr.constants,du=Symbol("headers"),Que=Symbol("origin"),Zue=Symbol("session"),cHe=Symbol("options"),Fj=Symbol("flushedHeaders"),gk=Symbol("jobs"),Rnr=/^[\^`\-\w!#$%&*+.|~]+$/,Fnr=/[^\t\u0020-\u007E\u0080-\u00FF]/,ece=class extends xnr{constructor(t,r,n){super({autoDestroy:!1});let i=typeof t=="string"||t instanceof URL;if(i&&(t=knr(t instanceof URL?t:new URL(t))),typeof r=="function"||r===void 0?(n=r,r=i?t:{...t}):r={...t,...r},r.h2session)this[Zue]=r.h2session;else if(r.agent===!1)this.agent=new iHe({maxFreeSessions:0});else if(typeof r.agent>"u"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new iHe({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=Enr;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new Xue("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new Onr(r.protocol,"https:");let a=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,s=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:o}=r;if(r.timeout=void 0,this[du]=Object.create(null),this[gk]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[c,p]of Object.entries(r.headers))this.setHeader(c,p);r.auth&&!("authorization"in this[du])&&(this[du].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[cHe]=r,a===443?(this[Que]=`https://${s}`,":authority"in this[du]||(this[du][":authority"]=s)):(this[Que]=`https://${s}:${a}`,":authority"in this[du]||(this[du][":authority"]=`${s}:${a}`)),o&&this.setTimeout(o),n&&this.once("response",n),this[Fj]=!1}get method(){return this[du][oHe]}set method(t){t&&(this[du][oHe]=t.toUpperCase())}get path(){return this[du][uHe]}set path(t){t&&(this[du][uHe]=t)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(t,r,n){if(this._mustNotHaveABody){n(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let i=()=>this._request.write(t,r,n);this._request?i():this[gk].push(i)}_final(t){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){t();return}this._request.end(t)};this._request?r():this[gk].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(t,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(t)}async flushHeaders(){if(this[Fj]||this.destroyed)return;this[Fj]=!0;let t=this.method===Inr,r=n=>{if(this._request=n,this.destroyed){n.destroy();return}t||Anr(n,this,["timeout","continue","close","error"]);let i=s=>(...o)=>{!this.writable&&!this.destroyed?s(...o):this.once("finish",()=>{s(...o)})};n.once("response",i((s,o,c)=>{let p=new Snr(this.socket,n.readableHighWaterMark);this.res=p,p.req=this,p.statusCode=s[sHe],p.headers=s,p.rawHeaders=c,p.once("end",()=>{this.aborted?(p.aborted=!0,p.emit("aborted")):(p.complete=!0,p.socket=null,p.connection=null)}),t?(p.upgrade=!0,this.emit("connect",p,n,Buffer.alloc(0))?this.emit("close"):n.destroy()):(n.on("data",f=>{!p._dumped&&!p.push(f)&&n.pause()}),n.once("end",()=>{p.push(null)}),this.emit("response",p)||p._dump())})),n.once("headers",i(s=>this.emit("information",{statusCode:s[sHe]}))),n.once("trailers",i((s,o,c)=>{let{res:p}=this;p.trailers=s,p.rawTrailers=c}));let{socket:a}=n.session;this.socket=a,this.connection=a;for(let s of this[gk])s();this.emit("socket",this.socket)};if(this[Zue])try{r(this[Zue].request(this[du]))}catch(n){this.emit("error",n)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[Que],this[cHe],this[du]))}catch(n){this.emit("error",n)}}}getHeader(t){if(typeof t!="string")throw new Xue("name","string",t);return this[du][t.toLowerCase()]}get headersSent(){return this[Fj]}removeHeader(t){if(typeof t!="string")throw new Xue("name","string",t);if(this.headersSent)throw new aHe("remove");delete this[du][t.toLowerCase()]}setHeader(t,r){if(this.headersSent)throw new aHe("set");if(typeof t!="string"||!Rnr.test(t)&&!Tnr(t))throw new Dnr("Header name",t);if(typeof r>"u")throw new Cnr(r,t);if(Fnr.test(r))throw new Pnr("header content",t);this[du][t.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(t,r){let n=()=>this._request.setTimeout(t,r);return this._request?n():this[gk].push(n),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(t){}};lHe.exports=ece});var fHe=b((LQr,pHe)=>{"use strict";var jnr=require("tls");pHe.exports=(e={},t=jnr.connect)=>new Promise((r,n)=>{let i=!1,a,s=async()=>{await c,a.off("timeout",o),a.off("error",n),e.resolveSocket?(r({alpnProtocol:a.alpnProtocol,socket:a,timeout:i}),i&&(await Promise.resolve(),a.emit("timeout"))):(a.destroy(),r({alpnProtocol:a.alpnProtocol,timeout:i}))},o=async()=>{i=!0,s()},c=(async()=>{try{a=await t(e,s),a.on("error",n),a.once("timeout",o)}catch(p){n(p)}})()})});var hHe=b(($Qr,dHe)=>{"use strict";var Nnr=require("net");dHe.exports=e=>{let t=e.host,r=e.headers&&e.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?t=r:t=r.slice(1,-1):t=r.split(":",1)[0]),Nnr.isIP(t)?"":t}});var vHe=b((BQr,nce)=>{"use strict";var mHe=require("http"),rce=require("https"),qnr=fHe(),Lnr=Vue(),$nr=tce(),Bnr=hHe(),Mnr=Jue(),jj=new Lnr({maxSize:100}),vk=new Map,gHe=(e,t,r)=>{t._httpMessage={shouldKeepAlive:!0};let n=()=>{e.emit("free",t,r)};t.on("free",n);let i=()=>{e.removeSocket(t,r)};t.on("close",i);let a=()=>{e.removeSocket(t,r),t.off("close",i),t.off("free",n),t.off("agentRemove",a)};t.on("agentRemove",a),e.emit("free",t,r)},Unr=async e=>{let t=`${e.host}:${e.port}:${e.ALPNProtocols.sort()}`;if(!jj.has(t)){if(vk.has(t))return(await vk.get(t)).alpnProtocol;let{path:r,agent:n}=e;e.path=e.socketPath;let i=qnr(e);vk.set(t,i);try{let{socket:a,alpnProtocol:s}=await i;if(jj.set(t,s),e.path=r,s==="h2")a.destroy();else{let{globalAgent:o}=rce,c=rce.Agent.prototype.createConnection;n?n.createConnection===c?gHe(n,a,e):a.destroy():o.createConnection===c?gHe(o,a,e):a.destroy()}return vk.delete(t),s}catch(a){throw vk.delete(t),a}}return jj.get(t)};nce.exports=async(e,t,r)=>{if((typeof e=="string"||e instanceof URL)&&(e=Mnr(new URL(e))),typeof t=="function"&&(r=t,t=void 0),t={ALPNProtocols:["h2","http/1.1"],...e,...t,resolveSocket:!0},!Array.isArray(t.ALPNProtocols)||t.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");t.protocol=t.protocol||"https:";let n=t.protocol==="https:";t.host=t.hostname||t.host||"localhost",t.session=t.tlsSession,t.servername=t.servername||Bnr(t),t.port=t.port||(n?443:80),t._defaultAgent=n?rce.globalAgent:mHe.globalAgent;let i=t.agent;if(i){if(i.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");t.agent=i[n?"https":"http"]}return n&&await Unr(t)==="h2"?(i&&(t.agent=i.http2),new $nr(t,r)):mHe.request(t,r)};nce.exports.protocolCache=jj});var bHe=b((MQr,yHe)=>{"use strict";var znr=require("http2"),Hnr=Wue(),ice=tce(),Vnr=Yue(),Gnr=vHe(),Wnr=(e,t,r)=>new ice(e,t,r),Knr=(e,t,r)=>{let n=new ice(e,t,r);return n.end(),n};yHe.exports={...znr,ClientRequest:ice,IncomingMessage:Vnr,...Hnr,request:Wnr,get:Knr,auto:Gnr}});var sce=b(ace=>{"use strict";Object.defineProperty(ace,"__esModule",{value:!0});var wHe=T1();ace.default=e=>wHe.default.nodeStream(e)&&wHe.default.function_(e.getBoundary)});var SHe=b(oce=>{"use strict";Object.defineProperty(oce,"__esModule",{value:!0});var xHe=require("fs"),EHe=require("util"),_He=T1(),Ynr=sce(),Jnr=EHe.promisify(xHe.stat);oce.default=async(e,t)=>{if(t&&"content-length"in t)return Number(t["content-length"]);if(!e)return 0;if(_He.default.string(e))return Buffer.byteLength(e);if(_He.default.buffer(e))return e.length;if(Ynr.default(e))return EHe.promisify(e.getLength.bind(e))();if(e instanceof xHe.ReadStream){let{size:r}=await Jnr(e.path);return r===0?void 0:r}}});var cce=b(uce=>{"use strict";Object.defineProperty(uce,"__esModule",{value:!0});function Xnr(e,t,r){let n={};for(let i of r)n[i]=(...a)=>{t.emit(i,...a)},e.on(i,n[i]);return()=>{for(let i of r)e.off(i,n[i])}}uce.default=Xnr});var kHe=b(lce=>{"use strict";Object.defineProperty(lce,"__esModule",{value:!0});lce.default=()=>{let e=[];return{once(t,r,n){t.once(r,n),e.push({origin:t,event:r,fn:n})},unhandleAll(){for(let t of e){let{origin:r,event:n,fn:i}=t;r.removeListener(n,i)}e.length=0}}}});var THe=b(yk=>{"use strict";Object.defineProperty(yk,"__esModule",{value:!0});yk.TimeoutError=void 0;var Qnr=require("net"),Znr=kHe(),AHe=Symbol("reentry"),eir=()=>{},Nj=class extends Error{constructor(t,r){super(`Timeout awaiting '${r}' for ${t}ms`),this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};yk.TimeoutError=Nj;yk.default=(e,t,r)=>{if(AHe in e)return eir;e[AHe]=!0;let n=[],{once:i,unhandleAll:a}=Znr.default(),s=(d,h,g)=>{var v;let y=setTimeout(h,d,d,g);(v=y.unref)===null||v===void 0||v.call(y);let _=()=>{clearTimeout(y)};return n.push(_),_},{host:o,hostname:c}=r,p=(d,h)=>{e.destroy(new Nj(d,h))},f=()=>{for(let d of n)d();a()};if(e.once("error",d=>{if(f(),e.listenerCount("error")===0)throw d}),e.once("close",f),i(e,"response",d=>{i(d,"end",f)}),typeof t.request<"u"&&s(t.request,p,"request"),typeof t.socket<"u"){let d=()=>{p(t.socket,"socket")};e.setTimeout(t.socket,d),n.push(()=>{e.removeListener("timeout",d)})}return i(e,"socket",d=>{var h;let{socketPath:g}=e;if(d.connecting){let v=!!(g??Qnr.isIP((h=c??o)!==null&&h!==void 0?h:"")!==0);if(typeof t.lookup<"u"&&!v&&typeof d.address().address>"u"){let y=s(t.lookup,p,"lookup");i(d,"lookup",y)}if(typeof t.connect<"u"){let y=()=>s(t.connect,p,"connect");v?i(d,"connect",y()):i(d,"lookup",_=>{_===null&&i(d,"connect",y())})}typeof t.secureConnect<"u"&&r.protocol==="https:"&&i(d,"connect",()=>{let y=s(t.secureConnect,p,"secureConnect");i(d,"secureConnect",y)})}if(typeof t.send<"u"){let v=()=>s(t.send,p,"send");d.connecting?i(d,"connect",()=>{i(e,"upload-complete",v())}):i(e,"upload-complete",v())}}),typeof t.response<"u"&&i(e,"upload-complete",()=>{let d=s(t.response,p,"response");i(e,"response",d)}),f}});var DHe=b(pce=>{"use strict";Object.defineProperty(pce,"__esModule",{value:!0});var OHe=T1();pce.default=e=>{e=e;let t={protocol:e.protocol,hostname:OHe.default.string(e.hostname)&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return OHe.default.string(e.port)&&e.port.length>0&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}});var CHe=b(fce=>{"use strict";Object.defineProperty(fce,"__esModule",{value:!0});var tir=require("url"),rir=["protocol","host","hostname","port","pathname","search"];fce.default=(e,t)=>{var r,n;if(t.path){if(t.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(t.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(t.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(t.search&&t.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!e){if(!t.protocol)throw new TypeError("No URL protocol specified");e=`${t.protocol}//${(n=(r=t.hostname)!==null&&r!==void 0?r:t.host)!==null&&n!==void 0?n:""}`}let i=new tir.URL(e);if(t.path){let a=t.path.indexOf("?");a===-1?t.pathname=t.path:(t.pathname=t.path.slice(0,a),t.search=t.path.slice(a+1)),delete t.path}for(let a of rir)t[a]&&(i[a]=t[a].toString());return i}});var PHe=b(hce=>{"use strict";Object.defineProperty(hce,"__esModule",{value:!0});var dce=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(t,r){typeof t=="object"?this.weakMap.set(t,r):this.map.set(t,r)}get(t){return typeof t=="object"?this.weakMap.get(t):this.map.get(t)}has(t){return typeof t=="object"?this.weakMap.has(t):this.map.has(t)}};hce.default=dce});var gce=b(mce=>{"use strict";Object.defineProperty(mce,"__esModule",{value:!0});var nir=async e=>{let t=[],r=0;for await(let n of e)t.push(n),r+=Buffer.byteLength(n);return Buffer.isBuffer(t[0])?Buffer.concat(t,r):Buffer.from(t.join(""))};mce.default=nir});var RHe=b(rw=>{"use strict";Object.defineProperty(rw,"__esModule",{value:!0});rw.dnsLookupIpVersionToFamily=rw.isDnsLookupIpVersion=void 0;var IHe={auto:0,ipv4:4,ipv6:6};rw.isDnsLookupIpVersion=e=>e in IHe;rw.dnsLookupIpVersionToFamily=e=>{if(rw.isDnsLookupIpVersion(e))return IHe[e];throw new Error("Invalid DNS lookup IP version")}});var vce=b(qj=>{"use strict";Object.defineProperty(qj,"__esModule",{value:!0});qj.isResponseOk=void 0;qj.isResponseOk=e=>{let{statusCode:t}=e,r=e.request.options.followRedirect?299:399;return t>=200&&t<=r||t===304}});var jHe=b(yce=>{"use strict";Object.defineProperty(yce,"__esModule",{value:!0});var FHe=new Set;yce.default=e=>{FHe.has(e)||(FHe.add(e),process.emitWarning(`Got: ${e}`,{type:"DeprecationWarning"}))}});var NHe=b(bce=>{"use strict";Object.defineProperty(bce,"__esModule",{value:!0});var da=T1(),iir=(e,t)=>{if(da.default.null_(e.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");da.assert.any([da.default.string,da.default.undefined],e.encoding),da.assert.any([da.default.boolean,da.default.undefined],e.resolveBodyOnly),da.assert.any([da.default.boolean,da.default.undefined],e.methodRewriting),da.assert.any([da.default.boolean,da.default.undefined],e.isStream),da.assert.any([da.default.string,da.default.undefined],e.responseType),e.responseType===void 0&&(e.responseType="text");let{retry:r}=e;if(t?e.retry={...t.retry}:e.retry={calculateDelay:n=>n.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},da.default.object(r)?(e.retry={...e.retry,...r},e.retry.methods=[...new Set(e.retry.methods.map(n=>n.toUpperCase()))],e.retry.statusCodes=[...new Set(e.retry.statusCodes)],e.retry.errorCodes=[...new Set(e.retry.errorCodes)]):da.default.number(r)&&(e.retry.limit=r),da.default.undefined(e.retry.maxRetryAfter)&&(e.retry.maxRetryAfter=Math.min(...[e.timeout.request,e.timeout.connect].filter(da.default.number))),da.default.object(e.pagination)){t&&(e.pagination={...t.pagination,...e.pagination});let{pagination:n}=e;if(!da.default.function_(n.transform))throw new Error("`options.pagination.transform` must be implemented");if(!da.default.function_(n.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!da.default.function_(n.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!da.default.function_(n.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return e.responseType==="json"&&e.headers.accept===void 0&&(e.headers.accept="application/json"),e};bce.default=iir});var qHe=b(bk=>{"use strict";Object.defineProperty(bk,"__esModule",{value:!0});bk.retryAfterStatusCodes=void 0;bk.retryAfterStatusCodes=new Set([413,429,503]);var air=({attemptCount:e,retryOptions:t,error:r,retryAfter:n})=>{if(e>t.limit)return 0;let i=t.methods.includes(r.options.method),a=t.errorCodes.includes(r.code),s=r.response&&t.statusCodes.includes(r.response.statusCode);if(!i||!a&&!s)return 0;if(r.response){if(n)return t.maxRetryAfter===void 0||n>t.maxRetryAfter?0:n;if(r.response.statusCode===413)return 0}let o=Math.random()*100;return 2**(e-1)*1e3+o};bk.default=air});var xk=b(Kn=>{"use strict";Object.defineProperty(Kn,"__esModule",{value:!0});Kn.UnsupportedProtocolError=Kn.ReadError=Kn.TimeoutError=Kn.UploadError=Kn.CacheError=Kn.HTTPError=Kn.MaxRedirectsError=Kn.RequestError=Kn.setNonEnumerableProperties=Kn.knownHookEvents=Kn.withoutBody=Kn.kIsNormalizedAlready=void 0;var LHe=require("util"),$He=require("stream"),sir=require("fs"),Ng=require("url"),BHe=require("http"),wce=require("http"),oir=require("https"),uir=ize(),cir=pze(),MHe=Bze(),lir=Hze(),pir=bHe(),fir=Ij(),Ze=T1(),dir=SHe(),UHe=sce(),hir=cce(),zHe=THe(),mir=DHe(),HHe=CHe(),gir=PHe(),vir=gce(),VHe=RHe(),yir=vce(),qg=jHe(),bir=NHe(),wir=qHe(),_ce,$o=Symbol("request"),Bj=Symbol("response"),e3=Symbol("responseSize"),t3=Symbol("downloadedSize"),r3=Symbol("bodySize"),n3=Symbol("uploadedSize"),Lj=Symbol("serverResponsesPiped"),GHe=Symbol("unproxyEvents"),WHe=Symbol("isFromCache"),xce=Symbol("cancelTimeouts"),KHe=Symbol("startedReading"),i3=Symbol("stopReading"),$j=Symbol("triggerRead"),Lg=Symbol("body"),wk=Symbol("jobs"),YHe=Symbol("originalResponse"),JHe=Symbol("retryTimeout");Kn.kIsNormalizedAlready=Symbol("isNormalizedAlready");var _ir=Ze.default.string(process.versions.brotli);Kn.withoutBody=new Set(["GET","HEAD"]);Kn.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function xir(e){for(let t in e){let r=e[t];if(!Ze.default.string(r)&&!Ze.default.number(r)&&!Ze.default.boolean(r)&&!Ze.default.null_(r)&&!Ze.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function Eir(e){return Ze.default.object(e)&&!("statusCode"in e)}var Ece=new gir.default,Sir=async e=>new Promise((t,r)=>{let n=i=>{r(i)};e.pending||t(),e.once("error",n),e.once("ready",()=>{e.off("error",n),t()})}),kir=new Set([300,301,302,303,304,307,308]),Air=["context","body","json","form"];Kn.setNonEnumerableProperties=(e,t)=>{let r={};for(let n of e)if(n)for(let i of Air)i in n&&(r[i]={writable:!0,configurable:!0,enumerable:!1,value:n[i]});Object.defineProperties(t,r)};var us=class extends Error{constructor(t,r,n){var i,a;if(super(t),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=(i=r.code)!==null&&i!==void 0?i:"ERR_GOT_REQUEST_ERROR",n instanceof Wj?(Object.defineProperty(this,"request",{enumerable:!1,value:n}),Object.defineProperty(this,"response",{enumerable:!1,value:n[Bj]}),Object.defineProperty(this,"options",{enumerable:!1,value:n.options})):Object.defineProperty(this,"options",{enumerable:!1,value:n}),this.timings=(a=this.request)===null||a===void 0?void 0:a.timings,Ze.default.string(r.stack)&&Ze.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(`
`).reverse(),c=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(`
`).reverse();for(;c.length!==0&&c[0]===o[0];)o.shift();this.stack=`${this.stack.slice(0,s)}${o.reverse().join(`
`)}${c.reverse().join(`
`)}`}}};Kn.RequestError=us;var Mj=class extends us{constructor(t){super(`Redirected ${t.options.maxRedirects} times. Aborting.`,{},t),this.name="MaxRedirectsError",this.code="ERR_TOO_MANY_REDIRECTS"}};Kn.MaxRedirectsError=Mj;var Uj=class extends us{constructor(t){super(`Response code ${t.statusCode} (${t.statusMessage})`,{},t.request),this.name="HTTPError",this.code="ERR_NON_2XX_3XX_RESPONSE"}};Kn.HTTPError=Uj;var zj=class extends us{constructor(t,r){super(t.message,t,r),this.name="CacheError",this.code=this.code==="ERR_GOT_REQUEST_ERROR"?"ERR_CACHE_ACCESS":this.code}};Kn.CacheError=zj;var Hj=class extends us{constructor(t,r){super(t.message,t,r),this.name="UploadError",this.code=this.code==="ERR_GOT_REQUEST_ERROR"?"ERR_UPLOAD":this.code}};Kn.UploadError=Hj;var Vj=class extends us{constructor(t,r,n){super(t.message,t,n),this.name="TimeoutError",this.event=t.event,this.timings=r}};Kn.TimeoutError=Vj;var _k=class extends us{constructor(t,r){super(t.message,t,r),this.name="ReadError",this.code=this.code==="ERR_GOT_REQUEST_ERROR"?"ERR_READING_RESPONSE_STREAM":this.code}};Kn.ReadError=_k;var Gj=class extends us{constructor(t){super(`Unsupported protocol "${t.url.protocol}"`,{},t),this.name="UnsupportedProtocolError",this.code="ERR_UNSUPPORTED_PROTOCOL"}};Kn.UnsupportedProtocolError=Gj;var Tir=["socket","connect","continue","information","upgrade","timeout"],Wj=class extends $He.Duplex{constructor(t,r={},n){super({autoDestroy:!1,highWaterMark:0}),this[t3]=0,this[n3]=0,this.requestInitialized=!1,this[Lj]=new Set,this.redirects=[],this[i3]=!1,this[$j]=!1,this[wk]=[],this.retryCount=0,this._progressCallbacks=[];let i=()=>this._unlockWrite(),a=()=>this._lockWrite();this.on("pipe",p=>{p.prependListener("data",i),p.on("data",a),p.prependListener("end",i),p.on("end",a)}),this.on("unpipe",p=>{p.off("data",i),p.off("data",a),p.off("end",i),p.off("end",a)}),this.on("pipe",p=>{p instanceof wce.IncomingMessage&&(this.options.headers={...p.headers,...this.options.headers})});let{json:s,body:o,form:c}=r;if((s||o||c)&&this._lockWrite(),Kn.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(t,r,n)}catch(p){Ze.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(p);return}(async()=>{var p;try{this.options.body instanceof sir.ReadStream&&await Sir(this.options.body);let{url:f}=this.options;if(!f)throw new TypeError("Missing `url` property");if(this.requestUrl=f.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(p=this[$o])===null||p===void 0||p.destroy();return}for(let d of this[wk])d();this[wk].length=0,this.requestInitialized=!0}catch(f){if(f instanceof us){this._beforeError(f);return}this.destroyed||this.destroy(f)}})()}static normalizeArguments(t,r,n){var i,a,s,o,c;let p=r;if(Ze.default.object(t)&&!Ze.default.urlInstance(t))r={...n,...t,...r};else{if(t&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...n,...r},t!==void 0&&(r.url=t),Ze.default.urlInstance(r.url)&&(r.url=new Ng.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),Ze.assert.any([Ze.default.string,Ze.default.undefined],r.method),Ze.assert.any([Ze.default.object,Ze.default.undefined],r.headers),Ze.assert.any([Ze.default.string,Ze.default.urlInstance,Ze.default.undefined],r.prefixUrl),Ze.assert.any([Ze.default.object,Ze.default.undefined],r.cookieJar),Ze.assert.any([Ze.default.object,Ze.default.string,Ze.default.undefined],r.searchParams),Ze.assert.any([Ze.default.object,Ze.default.string,Ze.default.undefined],r.cache),Ze.assert.any([Ze.default.object,Ze.default.number,Ze.default.undefined],r.timeout),Ze.assert.any([Ze.default.object,Ze.default.undefined],r.context),Ze.assert.any([Ze.default.object,Ze.default.undefined],r.hooks),Ze.assert.any([Ze.default.boolean,Ze.default.undefined],r.decompress),Ze.assert.any([Ze.default.boolean,Ze.default.undefined],r.ignoreInvalidCookies),Ze.assert.any([Ze.default.boolean,Ze.default.undefined],r.followRedirect),Ze.assert.any([Ze.default.number,Ze.default.undefined],r.maxRedirects),Ze.assert.any([Ze.default.boolean,Ze.default.undefined],r.throwHttpErrors),Ze.assert.any([Ze.default.boolean,Ze.default.undefined],r.http2),Ze.assert.any([Ze.default.boolean,Ze.default.undefined],r.allowGetBody),Ze.assert.any([Ze.default.string,Ze.default.undefined],r.localAddress),Ze.assert.any([VHe.isDnsLookupIpVersion,Ze.default.undefined],r.dnsLookupIpVersion),Ze.assert.any([Ze.default.object,Ze.default.undefined],r.https),Ze.assert.any([Ze.default.boolean,Ze.default.undefined],r.rejectUnauthorized),r.https&&(Ze.assert.any([Ze.default.boolean,Ze.default.undefined],r.https.rejectUnauthorized),Ze.assert.any([Ze.default.function_,Ze.default.undefined],r.https.checkServerIdentity),Ze.assert.any([Ze.default.string,Ze.default.object,Ze.default.array,Ze.default.undefined],r.https.certificateAuthority),Ze.assert.any([Ze.default.string,Ze.default.object,Ze.default.array,Ze.default.undefined],r.https.key),Ze.assert.any([Ze.default.string,Ze.default.object,Ze.default.array,Ze.default.undefined],r.https.certificate),Ze.assert.any([Ze.default.string,Ze.default.undefined],r.https.passphrase),Ze.assert.any([Ze.default.string,Ze.default.buffer,Ze.default.array,Ze.default.undefined],r.https.pfx)),Ze.assert.any([Ze.default.object,Ze.default.undefined],r.cacheOptions),Ze.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===n?.headers?r.headers={...r.headers}:r.headers=fir({...n?.headers,...r.headers}),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==n?.searchParams){let g;if(Ze.default.string(r.searchParams)||r.searchParams instanceof Ng.URLSearchParams)g=new Ng.URLSearchParams(r.searchParams);else{xir(r.searchParams),g=new Ng.URLSearchParams;for(let v in r.searchParams){let y=r.searchParams[v];y===null?g.append(v,""):y!==void 0&&g.append(v,y)}}(i=n?.searchParams)===null||i===void 0||i.forEach((v,y)=>{g.has(y)||g.append(y,v)}),r.searchParams=g}if(r.username=(a=r.username)!==null&&a!==void 0?a:"",r.password=(s=r.password)!==null&&s!==void 0?s:"",Ze.default.undefined(r.prefixUrl)?r.prefixUrl=(o=n?.prefixUrl)!==null&&o!==void 0?o:"":(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==""&&!r.prefixUrl.endsWith("/")&&(r.prefixUrl+="/")),Ze.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=HHe.default(r.prefixUrl+r.url,r)}else(Ze.default.undefined(r.url)&&r.prefixUrl!==""||r.protocol)&&(r.url=HHe.default(r.prefixUrl,r));if(r.url){"port"in r&&delete r.port;let{prefixUrl:g}=r;Object.defineProperty(r,"prefixUrl",{set:y=>{let _=r.url;if(!_.href.startsWith(y))throw new Error(`Cannot change \`prefixUrl\` from ${g} to ${y}: ${_.href}`);r.url=new Ng.URL(y+_.href.slice(g.length)),g=y},get:()=>g});let{protocol:v}=r.url;if(v==="unix:"&&(v="http:",r.url=new Ng.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),v!=="http:"&&v!=="https:")throw new Gj(r);r.username===""?r.username=r.url.username:r.url.username=r.username,r.password===""?r.password=r.url.password:r.url.password=r.password}let{cookieJar:f}=r;if(f){let{setCookie:g,getCookieString:v}=f;Ze.assert.function_(g),Ze.assert.function_(v),g.length===4&&v.length===0&&(g=LHe.promisify(g.bind(r.cookieJar)),v=LHe.promisify(v.bind(r.cookieJar)),r.cookieJar={setCookie:g,getCookieString:v})}let{cache:d}=r;if(d&&(Ece.has(d)||Ece.set(d,new MHe((g,v)=>{let y=g[$o](g,v);return Ze.default.promise(y)&&(y.once=(_,x)=>{if(_==="error")y.catch(x);else if(_==="abort")(async()=>{try{(await y).once("abort",x)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${_}`);return y}),y},d))),r.cacheOptions={...r.cacheOptions},r.dnsCache===!0)_ce||(_ce=new cir.default),r.dnsCache=_ce;else if(!Ze.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ze.default(r.dnsCache)}`);Ze.default.number(r.timeout)?r.timeout={request:r.timeout}:n&&r.timeout!==n.timeout?r.timeout={...n.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});let h=r.hooks===n?.hooks;r.hooks={...r.hooks};for(let g of Kn.knownHookEvents)if(g in r.hooks)if(Ze.default.array(r.hooks[g]))r.hooks[g]=[...r.hooks[g]];else throw new TypeError(`Parameter \`${g}\` must be an Array, got ${Ze.default(r.hooks[g])}`);else r.hooks[g]=[];if(n&&!h)for(let g of Kn.knownHookEvents)n.hooks[g].length>0&&(r.hooks[g]=[...n.hooks[g],...r.hooks[g]]);if("family"in r&&qg.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),n?.https&&(r.https={...n.https,...r.https}),"rejectUnauthorized"in r&&qg.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in r&&qg.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in r&&qg.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in r&&qg.default('"options.key" was never documented, please use "options.https.key"'),"cert"in r&&qg.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in r&&qg.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in r&&qg.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent){for(let g in r.agent)if(g!=="http"&&g!=="https"&&g!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${g}\``)}return r.maxRedirects=(c=r.maxRedirects)!==null&&c!==void 0?c:0,Kn.setNonEnumerableProperties([n,p],r),bir.default(r,n)}_lockWrite(){let t=()=>{throw new TypeError("The payload has been already provided")};this.write=t,this.end=t}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:t}=this,{headers:r}=t,n=!Ze.default.undefined(t.form),i=!Ze.default.undefined(t.json),a=!Ze.default.undefined(t.body),s=n||i||a,o=Kn.withoutBody.has(t.method)&&!(t.method==="GET"&&t.allowGetBody);if(this._cannotHaveBody=o,s){if(o)throw new TypeError(`The \`${t.method}\` method cannot be used with a body`);if([a,n,i].filter(c=>c).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(a&&!(t.body instanceof $He.Readable)&&!Ze.default.string(t.body)&&!Ze.default.buffer(t.body)&&!UHe.default(t.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(n&&!Ze.default.object(t.form))throw new TypeError("The `form` option must be an Object");{let c=!Ze.default.string(r["content-type"]);a?(UHe.default(t.body)&&c&&(r["content-type"]=`multipart/form-data; boundary=${t.body.getBoundary()}`),this[Lg]=t.body):n?(c&&(r["content-type"]="application/x-www-form-urlencoded"),this[Lg]=new Ng.URLSearchParams(t.form).toString()):(c&&(r["content-type"]="application/json"),this[Lg]=t.stringifyJson(t.json));let p=await dir.default(this[Lg],t.headers);Ze.default.undefined(r["content-length"])&&Ze.default.undefined(r["transfer-encoding"])&&!o&&!Ze.default.undefined(p)&&(r["content-length"]=String(p))}}else o?this._lockWrite():this._unlockWrite();this[r3]=Number(r["content-length"])||void 0}async _onResponseBase(t){let{options:r}=this,{url:n}=r;this[YHe]=t,r.decompress&&(t=lir(t));let i=t.statusCode,a=t;a.statusMessage=a.statusMessage?a.statusMessage:BHe.STATUS_CODES[i],a.url=r.url.toString(),a.requestUrl=this.requestUrl,a.redirectUrls=this.redirects,a.request=this,a.isFromCache=t.fromCache||!1,a.ip=this.ip,a.retryCount=this.retryCount,this[WHe]=a.isFromCache,this[e3]=Number(t.headers["content-length"])||void 0,this[Bj]=t,t.once("end",()=>{this[e3]=this[t3],this.emit("downloadProgress",this.downloadProgress)}),t.once("error",o=>{t.destroy(),this._beforeError(new _k(o,this))}),t.once("aborted",()=>{this._beforeError(new _k({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let s=t.headers["set-cookie"];if(Ze.default.object(r.cookieJar)&&s){let o=s.map(async c=>r.cookieJar.setCookie(c,n.toString()));r.ignoreInvalidCookies&&(o=o.map(async c=>c.catch(()=>{})));try{await Promise.all(o)}catch(c){this._beforeError(c);return}}if(r.followRedirect&&t.headers.location&&kir.has(i)){if(t.resume(),this[$o]&&(this[xce](),delete this[$o],this[GHe]()),(i===303&&r.method!=="GET"&&r.method!=="HEAD"||!r.methodRewriting)&&(r.method="GET","body"in r&&delete r.body,"json"in r&&delete r.json,"form"in r&&delete r.form,this[Lg]=void 0,delete r.headers["content-length"]),this.redirects.length>=r.maxRedirects){this._beforeError(new Mj(this));return}try{let d=function(h){return h.protocol==="unix:"||h.hostname==="unix"},c=Buffer.from(t.headers.location,"binary").toString(),p=new Ng.URL(c,n),f=p.toString();if(decodeURI(f),!d(n)&&d(p)){this._beforeError(new us("Cannot redirect to UNIX socket",{},this));return}p.hostname!==n.hostname||p.port!==n.port?("host"in r.headers&&delete r.headers.host,"cookie"in r.headers&&delete r.headers.cookie,"authorization"in r.headers&&delete r.headers.authorization,(r.username||r.password)&&(r.username="",r.password="")):(p.username=r.username,p.password=r.password),this.redirects.push(f),r.url=p;for(let h of r.hooks.beforeRedirect)await h(r,a);this.emit("redirect",a,r),await this._makeRequest()}catch(c){this._beforeError(c);return}return}if(r.isStream&&r.throwHttpErrors&&!yir.isResponseOk(a)){this._beforeError(new Uj(a));return}t.on("readable",()=>{this[$j]&&this._read()}),this.on("resume",()=>{t.resume()}),this.on("pause",()=>{t.pause()}),t.once("end",()=>{this.push(null)}),this.emit("response",t);for(let o of this[Lj])if(!o.headersSent){for(let c in t.headers){let p=r.decompress?c!=="content-encoding":!0,f=t.headers[c];p&&o.setHeader(c,f)}o.statusCode=i}}async _onResponse(t){try{await this._onResponseBase(t)}catch(r){this._beforeError(r)}}_onRequest(t){let{options:r}=this,{timeout:n,url:i}=r;uir.default(t),this[xce]=zHe.default(t,n,i);let a=r.cache?"cacheableResponse":"response";t.once(a,c=>{this._onResponse(c)}),t.once("error",c=>{var p;t.destroy(),(p=t.res)===null||p===void 0||p.removeAllListeners("end"),c=c instanceof zHe.TimeoutError?new Vj(c,this.timings,this):new us(c.message,c,this),this._beforeError(c)}),this[GHe]=hir.default(t,this,Tir),this[$o]=t,this.emit("uploadProgress",this.uploadProgress);let s=this[Lg],o=this.redirects.length===0?this:t;Ze.default.nodeStream(s)?(s.pipe(o),s.once("error",c=>{this._beforeError(new Hj(c,this))})):(this._unlockWrite(),Ze.default.undefined(s)?(this._cannotHaveBody||this._noPipe)&&(o.end(),this._lockWrite()):(this._writeRequest(s,void 0,()=>{}),o.end(),this._lockWrite())),this.emit("request",t)}async _createCacheableRequest(t,r){return new Promise((n,i)=>{Object.assign(r,mir.default(t)),delete r.url;let a,s=Ece.get(r.cache)(r,async o=>{o._readableState.autoDestroy=!1,a&&(await a).emit("cacheableResponse",o),n(o)});r.url=t,s.once("error",i),s.once("request",async o=>{a=o,n(a)})})}async _makeRequest(){var t,r,n,i,a;let{options:s}=this,{headers:o}=s;for(let x in o)if(Ze.default.undefined(o[x]))delete o[x];else if(Ze.default.null_(o[x]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${x}\` header`);if(s.decompress&&Ze.default.undefined(o["accept-encoding"])&&(o["accept-encoding"]=_ir?"gzip, deflate, br":"gzip, deflate"),s.cookieJar){let x=await s.cookieJar.getCookieString(s.url.toString());Ze.default.nonEmptyString(x)&&(s.headers.cookie=x)}for(let x of s.hooks.beforeRequest){let A=await x(s);if(!Ze.default.undefined(A)){s.request=()=>A;break}}s.body&&this[Lg]!==s.body&&(this[Lg]=s.body);let{agent:c,request:p,timeout:f,url:d}=s;if(s.dnsCache&&!("lookup"in s)&&(s.lookup=s.dnsCache.lookup),d.hostname==="unix"){let x=/(?<socketPath>.+?):(?<path>.+)/.exec(`${d.pathname}${d.search}`);if(x?.groups){let{socketPath:A,path:D}=x.groups;Object.assign(s,{socketPath:A,path:D,host:""})}}let h=d.protocol==="https:",g;s.http2?g=pir.auto:g=h?oir.request:BHe.request;let v=(t=s.request)!==null&&t!==void 0?t:g,y=s.cache?this._createCacheableRequest:v;c&&!s.http2&&(s.agent=c[h?"https":"http"]),s[$o]=v,delete s.request,delete s.timeout;let _=s;if(_.shared=(r=s.cacheOptions)===null||r===void 0?void 0:r.shared,_.cacheHeuristic=(n=s.cacheOptions)===null||n===void 0?void 0:n.cacheHeuristic,_.immutableMinTimeToLive=(i=s.cacheOptions)===null||i===void 0?void 0:i.immutableMinTimeToLive,_.ignoreCargoCult=(a=s.cacheOptions)===null||a===void 0?void 0:a.ignoreCargoCult,s.dnsLookupIpVersion!==void 0)try{_.family=VHe.dnsLookupIpVersionToFamily(s.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}s.https&&("rejectUnauthorized"in s.https&&(_.rejectUnauthorized=s.https.rejectUnauthorized),s.https.checkServerIdentity&&(_.checkServerIdentity=s.https.checkServerIdentity),s.https.certificateAuthority&&(_.ca=s.https.certificateAuthority),s.https.certificate&&(_.cert=s.https.certificate),s.https.key&&(_.key=s.https.key),s.https.passphrase&&(_.passphrase=s.https.passphrase),s.https.pfx&&(_.pfx=s.https.pfx));try{let x=await y(d,_);Ze.default.undefined(x)&&(x=g(d,_)),s.request=p,s.timeout=f,s.agent=c,s.https&&("rejectUnauthorized"in s.https&&delete _.rejectUnauthorized,s.https.checkServerIdentity&&delete _.checkServerIdentity,s.https.certificateAuthority&&delete _.ca,s.https.certificate&&delete _.cert,s.https.key&&delete _.key,s.https.passphrase&&delete _.passphrase,s.https.pfx&&delete _.pfx),Eir(x)?this._onRequest(x):this.writable?(this.once("finish",()=>{this._onResponse(x)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(x)}catch(x){throw x instanceof MHe.CacheError?new zj(x,this):new us(x.message,x,this)}}async _error(t){try{for(let r of this.options.hooks.beforeError)t=await r(t)}catch(r){t=new us(r.message,r,this)}this.destroy(t)}_beforeError(t){if(this[i3])return;let{options:r}=this,n=this.retryCount+1;this[i3]=!0,t instanceof us||(t=new us(t.message,t,this));let i=t,{response:a}=i;(async()=>{if(a&&!a.body){a.setEncoding(this._readableState.encoding);try{a.rawBody=await vir.default(a),a.body=a.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let s;try{let o;a&&"retry-after"in a.headers&&(o=Number(a.headers["retry-after"]),Number.isNaN(o)?(o=Date.parse(a.headers["retry-after"])-Date.now(),o<=0&&(o=1)):o*=1e3),s=await r.retry.calculateDelay({attemptCount:n,retryOptions:r.retry,error:i,retryAfter:o,computedValue:wir.default({attemptCount:n,retryOptions:r.retry,error:i,retryAfter:o,computedValue:0})})}catch(o){this._error(new us(o.message,o,this));return}if(s){let o=async()=>{try{for(let c of this.options.hooks.beforeRetry)await c(this.options,i,n)}catch(c){this._error(new us(c.message,t,this));return}this.destroyed||(this.destroy(),this.emit("retry",n,t))};this[JHe]=setTimeout(o,s);return}}this._error(i)})()}_read(){this[$j]=!0;let t=this[Bj];if(t&&!this[i3]){t.readableLength&&(this[$j]=!1);let r;for(;(r=t.read())!==null;){this[t3]+=r.length,this[KHe]=!0;let n=this.downloadProgress;n.percent<1&&this.emit("downloadProgress",n),this.push(r)}}}_write(t,r,n){let i=()=>{this._writeRequest(t,r,n)};this.requestInitialized?i():this[wk].push(i)}_writeRequest(t,r,n){this[$o].destroyed||(this._progressCallbacks.push(()=>{this[n3]+=Buffer.byteLength(t,r);let i=this.uploadProgress;i.percent<1&&this.emit("uploadProgress",i)}),this[$o].write(t,r,i=>{!i&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),n(i)}))}_final(t){let r=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!($o in this)){t();return}if(this[$o].destroyed){t();return}this[$o].end(n=>{n||(this[r3]=this[n3],this.emit("uploadProgress",this.uploadProgress),this[$o].emit("upload-complete")),t(n)})};this.requestInitialized?r():this[wk].push(r)}_destroy(t,r){var n;this[i3]=!0,clearTimeout(this[JHe]),$o in this&&(this[xce](),!((n=this[Bj])===null||n===void 0)&&n.complete||this[$o].destroy()),t!==null&&!Ze.default.undefined(t)&&!(t instanceof us)&&(t=new us(t.message,t,this)),r(t)}get _isAboutToError(){return this[i3]}get ip(){var t;return(t=this.socket)===null||t===void 0?void 0:t.remoteAddress}get aborted(){var t,r,n;return((r=(t=this[$o])===null||t===void 0?void 0:t.destroyed)!==null&&r!==void 0?r:this.destroyed)&&!(!((n=this[YHe])===null||n===void 0)&&n.complete)}get socket(){var t,r;return(r=(t=this[$o])===null||t===void 0?void 0:t.socket)!==null&&r!==void 0?r:void 0}get downloadProgress(){let t;return this[e3]?t=this[t3]/this[e3]:this[e3]===this[t3]?t=1:t=0,{percent:t,transferred:this[t3],total:this[e3]}}get uploadProgress(){let t;return this[r3]?t=this[n3]/this[r3]:this[r3]===this[n3]?t=1:t=0,{percent:t,transferred:this[n3],total:this[r3]}}get timings(){var t;return(t=this[$o])===null||t===void 0?void 0:t.timings}get isFromCache(){return this[WHe]}pipe(t,r){if(this[KHe])throw new Error("Failed to pipe. The response has been emitted already.");return t instanceof wce.ServerResponse&&this[Lj].add(t),super.pipe(t,r)}unpipe(t){return t instanceof wce.ServerResponse&&this[Lj].delete(t),super.unpipe(t),this}};Kn.default=Wj});var Ek=b(Af=>{"use strict";var Oir=Af&&Af.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Dir=Af&&Af.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Oir(t,e,r)};Object.defineProperty(Af,"__esModule",{value:!0});Af.CancelError=Af.ParseError=void 0;var XHe=xk(),Sce=class extends XHe.RequestError{constructor(t,r){let{options:n}=r.request;super(`${t.message} in "${n.url.toString()}"`,t,r.request),this.name="ParseError",this.code=this.code==="ERR_GOT_REQUEST_ERROR"?"ERR_BODY_PARSE_FAILURE":this.code}};Af.ParseError=Sce;var kce=class extends XHe.RequestError{constructor(t){super("Promise was canceled",{},t),this.name="CancelError",this.code="ERR_CANCELED"}get isCanceled(){return!0}};Af.CancelError=kce;Dir(xk(),Af)});var ZHe=b(Ace=>{"use strict";Object.defineProperty(Ace,"__esModule",{value:!0});var QHe=Ek(),Cir=(e,t,r,n)=>{let{rawBody:i}=e;try{if(t==="text")return i.toString(n);if(t==="json")return i.length===0?"":r(i.toString());if(t==="buffer")return i;throw new QHe.ParseError({message:`Unknown body type '${t}'`,name:"Error"},e)}catch(a){throw new QHe.ParseError(a,e)}};Ace.default=Cir});var Tce=b($g=>{"use strict";var Pir=$g&&$g.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Iir=$g&&$g.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Pir(t,e,r)};Object.defineProperty($g,"__esModule",{value:!0});var Rir=require("events"),Fir=T1(),jir=Tj(),Kj=Ek(),eVe=ZHe(),tVe=xk(),Nir=cce(),qir=gce(),rVe=vce(),Lir=["request","response","redirect","uploadProgress","downloadProgress"];function nVe(e){let t,r,n=new Rir.EventEmitter,i=new jir((s,o,c)=>{let p=f=>{let d=new tVe.default(void 0,e);d.retryCount=f,d._noPipe=!0,c(()=>d.destroy()),c.shouldReject=!1,c(()=>o(new Kj.CancelError(d))),t=d,d.once("response",async v=>{var y;if(v.retryCount=f,v.request.aborted)return;let _;try{_=await qir.default(d),v.rawBody=_}catch{return}if(d._isAboutToError)return;let x=((y=v.headers["content-encoding"])!==null&&y!==void 0?y:"").toLowerCase(),A=["gzip","deflate","br"].includes(x),{options:D}=d;if(A&&!D.decompress)v.body=_;else try{v.body=eVe.default(v,D.responseType,D.parseJson,D.encoding)}catch(j){if(v.body=_.toString(),rVe.isResponseOk(v)){d._beforeError(j);return}}try{for(let[j,H]of D.hooks.afterResponse.entries())v=await H(v,async F=>{let z=tVe.default.normalizeArguments(void 0,{...F,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},D);z.hooks.afterResponse=z.hooks.afterResponse.slice(0,j);for(let M of z.hooks.beforeRetry)await M(z);let P=nVe(z);return c(()=>{P.catch(()=>{}),P.cancel()}),P})}catch(j){d._beforeError(new Kj.RequestError(j.message,j,d));return}if(r=v,!rVe.isResponseOk(v)){d._beforeError(new Kj.HTTPError(v));return}d.destroy(),s(d.options.resolveBodyOnly?v.body:v)});let h=v=>{if(i.isCanceled)return;let{options:y}=d;if(v instanceof Kj.HTTPError&&!y.throwHttpErrors){let{response:_}=v;s(d.options.resolveBodyOnly?_.body:_);return}o(v)};d.once("error",h);let g=d.options.body;d.once("retry",(v,y)=>{var _,x;if(g===((_=y.request)===null||_===void 0?void 0:_.options.body)&&Fir.default.nodeStream((x=y.request)===null||x===void 0?void 0:x.options.body)){h(y);return}p(v)}),Nir.default(d,n,Lir)};p(0)});i.on=(s,o)=>(n.on(s,o),i);let a=s=>{let o=(async()=>{await i;let{options:c}=r.request;return eVe.default(r,s,c.parseJson,c.encoding)})();return Object.defineProperties(o,Object.getOwnPropertyDescriptors(i)),o};return i.json=()=>{let{headers:s}=t.options;return!t.writableFinished&&s.accept===void 0&&(s.accept="application/json"),a("json")},i.buffer=()=>a("buffer"),i.text=()=>a("text"),i}$g.default=nVe;Iir(Ek(),$g)});var iVe=b(Oce=>{"use strict";Object.defineProperty(Oce,"__esModule",{value:!0});var $ir=Ek();function Bir(e,...t){let r=(async()=>{if(e instanceof $ir.RequestError)try{for(let i of t)if(i)for(let a of i)e=await a(e)}catch(i){e=i}throw e})(),n=()=>r;return r.json=n,r.text=n,r.buffer=n,r.on=n,r}Oce.default=Bir});var oVe=b(Dce=>{"use strict";Object.defineProperty(Dce,"__esModule",{value:!0});var aVe=T1();function sVe(e){for(let t of Object.values(e))(aVe.default.plainObject(t)||aVe.default.array(t))&&sVe(t);return Object.freeze(e)}Dce.default=sVe});var cVe=b(uVe=>{"use strict";Object.defineProperty(uVe,"__esModule",{value:!0})});var Cce=b(np=>{"use strict";var Mir=np&&np.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Uir=np&&np.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Mir(t,e,r)};Object.defineProperty(np,"__esModule",{value:!0});np.defaultHandler=void 0;var lVe=T1(),rp=Tce(),zir=iVe(),Jj=xk(),Hir=oVe(),Vir={RequestError:rp.RequestError,CacheError:rp.CacheError,ReadError:rp.ReadError,HTTPError:rp.HTTPError,MaxRedirectsError:rp.MaxRedirectsError,TimeoutError:rp.TimeoutError,ParseError:rp.ParseError,CancelError:rp.CancelError,UnsupportedProtocolError:rp.UnsupportedProtocolError,UploadError:rp.UploadError},Gir=async e=>new Promise(t=>{setTimeout(t,e)}),{normalizeArguments:Yj}=Jj.default,pVe=(...e)=>{let t;for(let r of e)t=Yj(void 0,r,t);return t},Wir=e=>e.isStream?new Jj.default(void 0,e):rp.default(e),Kir=e=>"defaults"in e&&"options"in e.defaults,Yir=["get","post","put","patch","head","delete"];np.defaultHandler=(e,t)=>t(e);var fVe=(e,t)=>{if(e)for(let r of e)r(t)},dVe=e=>{e._rawHandlers=e.handlers,e.handlers=e.handlers.map(n=>(i,a)=>{let s,o=n(i,c=>(s=a(c),s));if(o!==s&&!i.isStream&&s){let c=o,{then:p,catch:f,finally:d}=c;Object.setPrototypeOf(c,Object.getPrototypeOf(s)),Object.defineProperties(c,Object.getOwnPropertyDescriptors(s)),c.then=p,c.catch=f,c.finally=d}return o});let t=(n,i={},a)=>{var s,o;let c=0,p=f=>e.handlers[c++](f,c===e.handlers.length?Wir:p);if(lVe.default.plainObject(n)){let f={...n,...i};Jj.setNonEnumerableProperties([n,i],f),i=f,n=void 0}try{let f;try{fVe(e.options.hooks.init,i),fVe((s=i.hooks)===null||s===void 0?void 0:s.init,i)}catch(h){f=h}let d=Yj(n,i,a??e.options);if(d[Jj.kIsNormalizedAlready]=!0,f)throw new rp.RequestError(f.message,f,d);return p(d)}catch(f){if(i.isStream)throw f;return zir.default(f,e.options.hooks.beforeError,(o=i.hooks)===null||o===void 0?void 0:o.beforeError)}};t.extend=(...n)=>{let i=[e.options],a=[...e._rawHandlers],s;for(let o of n)Kir(o)?(i.push(o.defaults.options),a.push(...o.defaults._rawHandlers),s=o.defaults.mutableDefaults):(i.push(o),"handlers"in o&&a.push(...o.handlers),s=o.mutableDefaults);return a=a.filter(o=>o!==np.defaultHandler),a.length===0&&a.push(np.defaultHandler),dVe({options:pVe(...i),handlers:a,mutableDefaults:!!s})};let r=async function*(n,i){let a=Yj(n,i,e.options);a.resolveBodyOnly=!1;let s=a.pagination;if(!lVe.default.object(s))throw new TypeError("`options.pagination` must be implemented");let o=[],{countLimit:c}=s,p=0;for(;p<s.requestLimit;){p!==0&&await Gir(s.backoff);let f=await t(void 0,void 0,a),d=await s.transform(f),h=[];for(let v of d)if(s.filter(v,o,h)&&(!s.shouldContinue(v,o,h)||(yield v,s.stackAllItems&&o.push(v),h.push(v),--c<=0)))return;let g=s.paginate(f,o,h);if(g===!1)return;g===f.request.options?a=f.request.options:g!==void 0&&(a=Yj(void 0,g,a)),p++}};t.paginate=r,t.paginate.all=async(n,i)=>{let a=[];for await(let s of r(n,i))a.push(s);return a},t.paginate.each=r,t.stream=(n,i)=>t(n,{...i,isStream:!0});for(let n of Yir)t[n]=(i,a)=>t(i,{...a,method:n}),t.stream[n]=(i,a)=>t(i,{...a,method:n,isStream:!0});return Object.assign(t,Vir),Object.defineProperty(t,"defaults",{value:e.mutableDefaults?e:Hir.default(e),writable:e.mutableDefaults,configurable:e.mutableDefaults,enumerable:!0}),t.mergeOptions=pVe,t};np.default=dVe;Uir(cVe(),np)});var gVe=b((O1,Xj)=>{"use strict";var Jir=O1&&O1.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),hVe=O1&&O1.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Jir(t,e,r)};Object.defineProperty(O1,"__esModule",{value:!0});var Xir=require("url"),mVe=Cce(),Qir={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:e})=>e},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:e=>e.request.options.responseType==="json"?e.body:JSON.parse(e.body),paginate:e=>{if(!Reflect.has(e.headers,"link"))return!1;let t=e.headers.link.split(","),r;for(let n of t){let i=n.split(";");if(i[1].includes("next")){r=i[0].trimStart().trim(),r=r.slice(1,-1);break}}return r?{url:new Xir.URL(r)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:e=>JSON.parse(e),stringifyJson:e=>JSON.stringify(e),cacheOptions:{}},handlers:[mVe.defaultHandler],mutableDefaults:!1},Pce=mVe.default(Qir);O1.default=Pce;Xj.exports=Pce;Xj.exports.default=Pce;Xj.exports.__esModule=!0;hVe(Cce(),O1);hVe(Tce(),O1)});var yVe=b((lZr,vVe)=>{"use strict";var Zir=require("net");vVe.exports=async(e,{timeout:t=1e3,host:r}={})=>{let n=new Promise((i,a)=>{let s=new Zir.Socket,o=()=>{s.destroy(),a()};s.setTimeout(t),s.once("error",o),s.once("timeout",o),s.connect(e,r,()=>{s.end(),i()})});try{return await n,!0}catch{return!1}}});var wVe=b((pZr,Zj)=>{"use strict";var bVe=Aee(),ear=Tj(),Qj=class extends Error{},tar=(e,t)=>new ear((r,n,i)=>{let{count:a,filter:s=()=>!0}=t;if(!Number.isFinite(a)){n(new TypeError(`Expected a finite number, got ${typeof t.count}`));return}let o=[],c=[],p=0,f=!1,d=new Set,h=()=>(o.length===a&&(r(o),f=!0),p-c.length<a&&(n(new bVe(c)),f=!0),f),g=()=>{for(let v of e)!d.has(v)&&typeof v.cancel=="function"&&v.cancel()};i(g);for(let v of e)p++,(async()=>{try{let y=await v;if(f)return;if(!s(y))throw new Qj("Value does not satisfy filter");o.push(y)}catch(y){c.push(y)}finally{d.add(v),!f&&h()&&g()}})();a>p&&(n(new RangeError(`Expected input to contain at least ${t.count} items, but contains ${p} items`)),g())});Zj.exports=tar;Zj.exports.AggregateError=bVe;Zj.exports.FilterError=Qj});var xVe=b((fZr,Ice)=>{"use strict";var _Ve=wVe(),rar=Tj();Ice.exports=(e,t)=>{let r=_Ve(e,{...t,count:1});return rar.fn(async n=>{n(()=>{r.cancel()});let[i]=await r;return i})()};Ice.exports.AggregateError=_Ve.AggregateError});var SVe=b((dZr,EVe)=>{"use strict";EVe.exports=(e,t)=>(t=t||(()=>{}),e.then(r=>new Promise(n=>{n(t())}).then(()=>r),r=>new Promise(n=>{n(t())}).then(()=>{throw r})))});var AVe=b((hZr,tN)=>{"use strict";var nar=SVe(),eN=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},kVe=(e,t,r)=>new Promise((n,i)=>{if(typeof t!="number"||t<0)throw new TypeError("Expected `milliseconds` to be a positive number");if(t===1/0){n(e);return}let a=setTimeout(()=>{if(typeof r=="function"){try{n(r())}catch(c){i(c)}return}let s=typeof r=="string"?r:`Promise timed out after ${t} milliseconds`,o=r instanceof Error?r:new eN(s);typeof e.cancel=="function"&&e.cancel(),i(o)},t);nar(e.then(n,i),()=>{clearTimeout(a)})});tN.exports=kVe;tN.exports.default=kVe;tN.exports.TimeoutError=eN});var OVe=b((mZr,TVe)=>{"use strict";TVe.exports=(e,t)=>{if(typeof e!="string")throw new TypeError(`Expected \`url\` to be of type \`string\`, got \`${typeof e}\``);return e=e.trim(),t={https:!0,...t},/^\.*\/|^(?!localhost)\w+:/.test(e)?e:e.replace(/^(?!(?:\w+:)?\/\/)/,t.https?"https://":"http://")}});var DVe=b((gZr,iar)=>{iar.exports=["1.1.1.1","10.0.0.1","10.0.0.138","10.0.0.2","10.0.1.1","10.1.1.1","10.1.10.1","10.10.1.1","10.90.90.90","192.168.0.1","192.168.0.10","192.168.0.100","192.168.0.101","192.168.0.227","192.168.0.254","192.168.0.3","192.168.0.30","192.168.0.50","192.168.1.1","192.168.1.10","192.168.1.100","192.168.1.200","192.168.1.210","192.168.1.220","192.168.1.254","192.168.1.99","192.168.10.1","192.168.10.10","192.168.10.100","192.168.10.50","192.168.100.1","192.168.100.100","192.168.102.1","192.168.11.1","192.168.123.254","192.168.15.1","192.168.16.1","192.168.168.168","192.168.178.1","192.168.2.1","192.168.2.254","192.168.20.1","192.168.223.100","192.168.251.1","192.168.254.254","192.168.3.1","192.168.30.1","192.168.4.1","192.168.50.1","192.168.55.1","192.168.62.1","192.168.8.1","200.200.200.5"]});var PVe=b((vZr,CVe)=>{"use strict";CVe.exports=new Set(DVe())});var RVe=b((yZr,IVe)=>{"use strict";IVe.exports=function(t,r){if(r=r.split(":")[0],t=+t,!t)return!1;switch(r){case"http":case"ws":return t!==80;case"https":case"wss":return t!==443;case"ftp":return t!==21;case"gopher":return t!==70;case"file":return!1}return t!==0}});var NVe=b(Rce=>{"use strict";var aar=Object.prototype.hasOwnProperty,sar;function FVe(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch{return null}}function jVe(e){try{return encodeURIComponent(e)}catch{return null}}function oar(e){for(var t=/([^=?#&]+)=?([^&]*)/g,r={},n;n=t.exec(e);){var i=FVe(n[1]),a=FVe(n[2]);i===null||a===null||i in r||(r[i]=a)}return r}function uar(e,t){t=t||"";var r=[],n,i;typeof t!="string"&&(t="?");for(i in e)if(aar.call(e,i)){if(n=e[i],!n&&(n===null||n===sar||isNaN(n))&&(n=""),i=jVe(i),n=jVe(n),i===null||n===null)continue;r.push(i+"="+n)}return r.length?t+r.join("&"):""}Rce.stringify=uar;Rce.parse=oar});var HVe=b((wZr,zVe)=>{"use strict";var LVe=RVe(),rN=NVe(),car=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,$Ve=/[\n\r\t]/g,lar=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,BVe=/:\d+$/,par=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,far=/^[a-zA-Z]:/;function jce(e){return(e||"").toString().replace(car,"")}var Fce=[["#","hash"],["?","query"],function(t,r){return Yd(r.protocol)?t.replace(/\\/g,"/"):t},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d*)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],qVe={hash:1,query:1};function MVe(e){var t;typeof window<"u"?t=window:typeof global<"u"?t=global:typeof self<"u"?t=self:t={};var r=t.location||{};e=e||r;var n={},i=typeof e,a;if(e.protocol==="blob:")n=new Jd(unescape(e.pathname),{});else if(i==="string"){n=new Jd(e,{});for(a in qVe)delete n[a]}else if(i==="object"){for(a in e)a in qVe||(n[a]=e[a]);n.slashes===void 0&&(n.slashes=lar.test(e.href))}return n}function Yd(e){return e==="file:"||e==="ftp:"||e==="http:"||e==="https:"||e==="ws:"||e==="wss:"}function UVe(e,t){e=jce(e),e=e.replace($Ve,""),t=t||{};var r=par.exec(e),n=r[1]?r[1].toLowerCase():"",i=!!r[2],a=!!r[3],s=0,o;return i?a?(o=r[2]+r[3]+r[4],s=r[2].length+r[3].length):(o=r[2]+r[4],s=r[2].length):a?(o=r[3]+r[4],s=r[3].length):o=r[4],n==="file:"?s>=2&&(o=o.slice(2)):Yd(n)?o=r[4]:n?i&&(o=o.slice(2)):s>=2&&Yd(t.protocol)&&(o=r[4]),{protocol:n,slashes:i||Yd(n),slashesCount:s,rest:o}}function dar(e,t){if(e==="")return t;for(var r=(t||"/").split("/").slice(0,-1).concat(e.split("/")),n=r.length,i=r[n-1],a=!1,s=0;n--;)r[n]==="."?r.splice(n,1):r[n]===".."?(r.splice(n,1),s++):s&&(n===0&&(a=!0),r.splice(n,1),s--);return a&&r.unshift(""),(i==="."||i==="..")&&r.push(""),r.join("/")}function Jd(e,t,r){if(e=jce(e),e=e.replace($Ve,""),!(this instanceof Jd))return new Jd(e,t,r);var n,i,a,s,o,c,p=Fce.slice(),f=typeof t,d=this,h=0;for(f!=="object"&&f!=="string"&&(r=t,t=null),r&&typeof r!="function"&&(r=rN.parse),t=MVe(t),i=UVe(e||"",t),n=!i.protocol&&!i.slashes,d.slashes=i.slashes||n&&t.slashes,d.protocol=i.protocol||t.protocol||"",e=i.rest,(i.protocol==="file:"&&(i.slashesCount!==2||far.test(e))||!i.slashes&&(i.protocol||i.slashesCount<2||!Yd(d.protocol)))&&(p[3]=[/(.*)/,"pathname"]);h<p.length;h++){if(s=p[h],typeof s=="function"){e=s(e,d);continue}a=s[0],c=s[1],a!==a?d[c]=e:typeof a=="string"?(o=a==="@"?e.lastIndexOf(a):e.indexOf(a),~o&&(typeof s[2]=="number"?(d[c]=e.slice(0,o),e=e.slice(o+s[2])):(d[c]=e.slice(o),e=e.slice(0,o)))):(o=a.exec(e))&&(d[c]=o[1],e=e.slice(0,o.index)),d[c]=d[c]||n&&s[3]&&t[c]||"",s[4]&&(d[c]=d[c].toLowerCase())}r&&(d.query=r(d.query)),n&&t.slashes&&d.pathname.charAt(0)!=="/"&&(d.pathname!==""||t.pathname!=="")&&(d.pathname=dar(d.pathname,t.pathname)),d.pathname.charAt(0)!=="/"&&Yd(d.protocol)&&(d.pathname="/"+d.pathname),LVe(d.port,d.protocol)||(d.host=d.hostname,d.port=""),d.username=d.password="",d.auth&&(o=d.auth.indexOf(":"),~o?(d.username=d.auth.slice(0,o),d.username=encodeURIComponent(decodeURIComponent(d.username)),d.password=d.auth.slice(o+1),d.password=encodeURIComponent(decodeURIComponent(d.password))):d.username=encodeURIComponent(decodeURIComponent(d.auth)),d.auth=d.password?d.username+":"+d.password:d.username),d.origin=d.protocol!=="file:"&&Yd(d.protocol)&&d.host?d.protocol+"//"+d.host:"null",d.href=d.toString()}function har(e,t,r){var n=this;switch(e){case"query":typeof t=="string"&&t.length&&(t=(r||rN.parse)(t)),n[e]=t;break;case"port":n[e]=t,LVe(t,n.protocol)?t&&(n.host=n.hostname+":"+t):(n.host=n.hostname,n[e]="");break;case"hostname":n[e]=t,n.port&&(t+=":"+n.port),n.host=t;break;case"host":n[e]=t,BVe.test(t)?(t=t.split(":"),n.port=t.pop(),n.hostname=t.join(":")):(n.hostname=t,n.port="");break;case"protocol":n.protocol=t.toLowerCase(),n.slashes=!r;break;case"pathname":case"hash":if(t){var i=e==="pathname"?"/":"#";n[e]=t.charAt(0)!==i?i+t:t}else n[e]=t;break;case"username":case"password":n[e]=encodeURIComponent(t);break;case"auth":var a=t.indexOf(":");~a?(n.username=t.slice(0,a),n.username=encodeURIComponent(decodeURIComponent(n.username)),n.password=t.slice(a+1),n.password=encodeURIComponent(decodeURIComponent(n.password))):n.username=encodeURIComponent(decodeURIComponent(t))}for(var s=0;s<Fce.length;s++){var o=Fce[s];o[4]&&(n[o[1]]=n[o[1]].toLowerCase())}return n.auth=n.password?n.username+":"+n.password:n.username,n.origin=n.protocol!=="file:"&&Yd(n.protocol)&&n.host?n.protocol+"//"+n.host:"null",n.href=n.toString(),n}function mar(e){(!e||typeof e!="function")&&(e=rN.stringify);var t,r=this,n=r.host,i=r.protocol;i&&i.charAt(i.length-1)!==":"&&(i+=":");var a=i+(r.protocol&&r.slashes||Yd(r.protocol)?"//":"");return r.username?(a+=r.username,r.password&&(a+=":"+r.password),a+="@"):r.password?(a+=":"+r.password,a+="@"):r.protocol!=="file:"&&Yd(r.protocol)&&!n&&r.pathname!=="/"&&(a+="@"),(n[n.length-1]===":"||BVe.test(r.hostname)&&!r.port)&&(n+=":"),a+=n+r.pathname,t=typeof r.query=="object"?e(r.query):r.query,t&&(a+=t.charAt(0)!=="?"?"?"+t:t),r.hash&&(a+=r.hash),a}Jd.prototype={set:har,toString:mar};Jd.extractProtocol=UVe;Jd.location=MVe;Jd.trimLeft=jce;Jd.qs=rN;zVe.exports=Jd});var KVe=b((_Zr,WVe)=>{"use strict";var{promisify:gar}=require("util"),yar=require("dns"),bar=require("net"),war=QUe(),_ar=gVe(),xar=yVe(),Ear=xVe(),Sar=AVe(),kar=OVe(),VVe=PVe(),GVe=HVe(),Aar=gar(yar.lookup),Tar=async(e,t)=>{let r;try{r=await _ar(e,{https:{rejectUnauthorized:!1},timeout:t})}catch{return!1}if(r.headers&&r.headers.location){let i=new GVe(r.headers.location).hostname.replace(/^\[/,"").replace(/]$/,"");return!VVe.has(i)}return!0},Oar=async e=>bar.isIP(e)?e:(await Aar(e)).address,Dar=e=>async t=>{let r=t.startsWith("https://")||t.startsWith("http://"),n=new GVe(kar(t));!n.port&&!r&&(n.port=443);let i;try{i=await Oar(n.hostname)}catch{return!1}return!i||VVe.has(i)?!1:r?Tar(n.toString(),e):xar(n.port,{host:i})};WVe.exports=async(e,{timeout:t=5e3}={})=>{let r=Ear(war(e).map(Dar(t)));try{return await Sar(r,t)}catch{return!1}}});var IGe=b((Sk,o3)=>{var jar=200,dGe="__lodash_hash_undefined__",Nar=800,qar=16,hGe=9007199254740991,mGe="[object Arguments]",Lar="[object Array]",$ar="[object AsyncFunction]",Bar="[object Boolean]",Mar="[object Date]",Uar="[object Error]",gGe="[object Function]",zar="[object GeneratorFunction]",Har="[object Map]",Var="[object Number]",Gar="[object Null]",vGe="[object Object]",War="[object Proxy]",Kar="[object RegExp]",Yar="[object Set]",Jar="[object String]",Xar="[object Undefined]",Qar="[object WeakMap]",Zar="[object ArrayBuffer]",esr="[object DataView]",tsr="[object Float32Array]",rsr="[object Float64Array]",nsr="[object Int8Array]",isr="[object Int16Array]",asr="[object Int32Array]",ssr="[object Uint8Array]",osr="[object Uint8ClampedArray]",usr="[object Uint16Array]",csr="[object Uint32Array]",lsr=/[\\^$.*+?()[\]{}|]/g,psr=/^\[object .+?Constructor\]$/,fsr=/^(?:0|[1-9]\d*)$/,ha={};ha[tsr]=ha[rsr]=ha[nsr]=ha[isr]=ha[asr]=ha[ssr]=ha[osr]=ha[usr]=ha[csr]=!0;ha[mGe]=ha[Lar]=ha[Zar]=ha[Bar]=ha[esr]=ha[Mar]=ha[Uar]=ha[gGe]=ha[Har]=ha[Var]=ha[vGe]=ha[Kar]=ha[Yar]=ha[Jar]=ha[Qar]=!1;var yGe=typeof global=="object"&&global&&global.Object===Object&&global,dsr=typeof self=="object"&&self&&self.Object===Object&&self,Tk=yGe||dsr||Function("return this")(),bGe=typeof Sk=="object"&&Sk&&!Sk.nodeType&&Sk,kk=bGe&&typeof o3=="object"&&o3&&!o3.nodeType&&o3,wGe=kk&&kk.exports===bGe,Lce=wGe&&yGe.process,iGe=function(){try{var e=kk&&kk.require&&kk.require("util").types;return e||Lce&&Lce.binding&&Lce.binding("util")}catch{}}(),aGe=iGe&&iGe.isTypedArray;function hsr(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}function msr(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}function gsr(e){return function(t){return e(t)}}function vsr(e,t){return e?.[t]}function ysr(e,t){return function(r){return e(t(r))}}var bsr=Array.prototype,wsr=Function.prototype,aN=Object.prototype,$ce=Tk["__core-js_shared__"],sN=wsr.toString,D1=aN.hasOwnProperty,sGe=function(){var e=/[^.]+$/.exec($ce&&$ce.keys&&$ce.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),_Ge=aN.toString,_sr=sN.call(Object),xsr=RegExp("^"+sN.call(D1).replace(lsr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),nN=wGe?Tk.Buffer:void 0,oGe=Tk.Symbol,uGe=Tk.Uint8Array,cGe=nN?nN.allocUnsafe:void 0,xGe=ysr(Object.getPrototypeOf,Object),lGe=Object.create,Esr=aN.propertyIsEnumerable,Ssr=bsr.splice,nw=oGe?oGe.toStringTag:void 0,iN=function(){try{var e=Vce(Object,"defineProperty");return e({},"",{}),e}catch{}}(),ksr=nN?nN.isBuffer:void 0,pGe=Math.max,Asr=Date.now,EGe=Vce(Tk,"Map"),Ak=Vce(Object,"create"),Tsr=function(){function e(){}return function(t){if(!aw(t))return{};if(lGe)return lGe(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();function iw(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Osr(){this.__data__=Ak?Ak(null):{},this.size=0}function Dsr(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function Csr(e){var t=this.__data__;if(Ak){var r=t[e];return r===dGe?void 0:r}return D1.call(t,e)?t[e]:void 0}function Psr(e){var t=this.__data__;return Ak?t[e]!==void 0:D1.call(t,e)}function Isr(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ak&&t===void 0?dGe:t,this}iw.prototype.clear=Osr;iw.prototype.delete=Dsr;iw.prototype.get=Csr;iw.prototype.has=Psr;iw.prototype.set=Isr;function C1(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Rsr(){this.__data__=[],this.size=0}function Fsr(e){var t=this.__data__,r=oN(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():Ssr.call(t,r,1),--this.size,!0}function jsr(e){var t=this.__data__,r=oN(t,e);return r<0?void 0:t[r][1]}function Nsr(e){return oN(this.__data__,e)>-1}function qsr(e,t){var r=this.__data__,n=oN(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}C1.prototype.clear=Rsr;C1.prototype.delete=Fsr;C1.prototype.get=jsr;C1.prototype.has=Nsr;C1.prototype.set=qsr;function u3(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Lsr(){this.size=0,this.__data__={hash:new iw,map:new(EGe||C1),string:new iw}}function $sr(e){var t=cN(this,e).delete(e);return this.size-=t?1:0,t}function Bsr(e){return cN(this,e).get(e)}function Msr(e){return cN(this,e).has(e)}function Usr(e,t){var r=cN(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}u3.prototype.clear=Lsr;u3.prototype.delete=$sr;u3.prototype.get=Bsr;u3.prototype.has=Msr;u3.prototype.set=Usr;function c3(e){var t=this.__data__=new C1(e);this.size=t.size}function zsr(){this.__data__=new C1,this.size=0}function Hsr(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function Vsr(e){return this.__data__.get(e)}function Gsr(e){return this.__data__.has(e)}function Wsr(e,t){var r=this.__data__;if(r instanceof C1){var n=r.__data__;if(!EGe||n.length<jar-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new u3(n)}return r.set(e,t),this.size=r.size,this}c3.prototype.clear=zsr;c3.prototype.delete=Hsr;c3.prototype.get=Vsr;c3.prototype.has=Gsr;c3.prototype.set=Wsr;function Ksr(e,t){var r=zce(e),n=!r&&Uce(e),i=!r&&!n&&TGe(e),a=!r&&!n&&!i&&DGe(e),s=r||n||i||a,o=s?msr(e.length,String):[],c=o.length;for(var p in e)(t||D1.call(e,p))&&!(s&&(p=="length"||i&&(p=="offset"||p=="parent")||a&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||kGe(p,c)))&&o.push(p);return o}function Bce(e,t,r){(r!==void 0&&!lN(e[t],r)||r===void 0&&!(t in e))&&Hce(e,t,r)}function Ysr(e,t,r){var n=e[t];(!(D1.call(e,t)&&lN(n,r))||r===void 0&&!(t in e))&&Hce(e,t,r)}function oN(e,t){for(var r=e.length;r--;)if(lN(e[r][0],t))return r;return-1}function Hce(e,t,r){t=="__proto__"&&iN?iN(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var Jsr=cor();function uN(e){return e==null?e===void 0?Xar:Gar:nw&&nw in Object(e)?lor(e):vor(e)}function fGe(e){return Ok(e)&&uN(e)==mGe}function Xsr(e){if(!aw(e)||mor(e))return!1;var t=Wce(e)?xsr:psr;return t.test(_or(e))}function Qsr(e){return Ok(e)&&OGe(e.length)&&!!ha[uN(e)]}function Zsr(e){if(!aw(e))return gor(e);var t=AGe(e),r=[];for(var n in e)n=="constructor"&&(t||!D1.call(e,n))||r.push(n);return r}function SGe(e,t,r,n,i){e!==t&&Jsr(t,function(a,s){if(i||(i=new c3),aw(a))eor(e,t,s,r,SGe,n,i);else{var o=n?n(Mce(e,s),a,s+"",e,t,i):void 0;o===void 0&&(o=a),Bce(e,s,o)}},CGe)}function eor(e,t,r,n,i,a,s){var o=Mce(e,r),c=Mce(t,r),p=s.get(c);if(p){Bce(e,r,p);return}var f=a?a(o,c,r+"",e,t,s):void 0,d=f===void 0;if(d){var h=zce(c),g=!h&&TGe(c),v=!h&&!g&&DGe(c);f=c,h||g||v?zce(o)?f=o:xor(o)?f=sor(o):g?(d=!1,f=nor(c,!0)):v?(d=!1,f=aor(c,!0)):f=[]:Eor(c)||Uce(c)?(f=o,Uce(o)?f=Sor(o):(!aw(o)||Wce(o))&&(f=por(c))):d=!1}d&&(s.set(c,f),i(f,c,n,a,s),s.delete(c)),Bce(e,r,f)}function tor(e,t){return bor(yor(e,t,PGe),e+"")}var ror=iN?function(e,t){return iN(e,"toString",{configurable:!0,enumerable:!1,value:Aor(t),writable:!0})}:PGe;function nor(e,t){if(t)return e.slice();var r=e.length,n=cGe?cGe(r):new e.constructor(r);return e.copy(n),n}function ior(e){var t=new e.constructor(e.byteLength);return new uGe(t).set(new uGe(e)),t}function aor(e,t){var r=t?ior(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}function sor(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}function oor(e,t,r,n){var i=!r;r||(r={});for(var a=-1,s=t.length;++a<s;){var o=t[a],c=n?n(r[o],e[o],o,r,e):void 0;c===void 0&&(c=e[o]),i?Hce(r,o,c):Ysr(r,o,c)}return r}function uor(e){return tor(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,s=i>2?r[2]:void 0;for(a=e.length>3&&typeof a=="function"?(i--,a):void 0,s&&dor(r[0],r[1],s)&&(a=i<3?void 0:a,i=1),t=Object(t);++n<i;){var o=r[n];o&&e(t,o,n,a)}return t})}function cor(e){return function(t,r,n){for(var i=-1,a=Object(t),s=n(t),o=s.length;o--;){var c=s[e?o:++i];if(r(a[c],c,a)===!1)break}return t}}function cN(e,t){var r=e.__data__;return hor(t)?r[typeof t=="string"?"string":"hash"]:r.map}function Vce(e,t){var r=vsr(e,t);return Xsr(r)?r:void 0}function lor(e){var t=D1.call(e,nw),r=e[nw];try{e[nw]=void 0;var n=!0}catch{}var i=_Ge.call(e);return n&&(t?e[nw]=r:delete e[nw]),i}function por(e){return typeof e.constructor=="function"&&!AGe(e)?Tsr(xGe(e)):{}}function kGe(e,t){var r=typeof e;return t=t??hGe,!!t&&(r=="number"||r!="symbol"&&fsr.test(e))&&e>-1&&e%1==0&&e<t}function dor(e,t,r){if(!aw(r))return!1;var n=typeof t;return(n=="number"?Gce(r)&&kGe(t,r.length):n=="string"&&t in r)?lN(r[t],e):!1}function hor(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function mor(e){return!!sGe&&sGe in e}function AGe(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||aN;return e===r}function gor(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}function vor(e){return _Ge.call(e)}function yor(e,t,r){return t=pGe(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,a=pGe(n.length-t,0),s=Array(a);++i<a;)s[i]=n[t+i];i=-1;for(var o=Array(t+1);++i<t;)o[i]=n[i];return o[t]=r(s),hsr(e,this,o)}}function Mce(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var bor=wor(ror);function wor(e){var t=0,r=0;return function(){var n=Asr(),i=qar-(n-r);if(r=n,i>0){if(++t>=Nar)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function _or(e){if(e!=null){try{return sN.call(e)}catch{}try{return e+""}catch{}}return""}function lN(e,t){return e===t||e!==e&&t!==t}var Uce=fGe(function(){return arguments}())?fGe:function(e){return Ok(e)&&D1.call(e,"callee")&&!Esr.call(e,"callee")},zce=Array.isArray;function Gce(e){return e!=null&&OGe(e.length)&&!Wce(e)}function xor(e){return Ok(e)&&Gce(e)}var TGe=ksr||Tor;function Wce(e){if(!aw(e))return!1;var t=uN(e);return t==gGe||t==zar||t==$ar||t==War}function OGe(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=hGe}function aw(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function Ok(e){return e!=null&&typeof e=="object"}function Eor(e){if(!Ok(e)||uN(e)!=vGe)return!1;var t=xGe(e);if(t===null)return!0;var r=D1.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&sN.call(r)==_sr}var DGe=aGe?gsr(aGe):Qsr;function Sor(e){return oor(e,CGe(e))}function CGe(e){return Gce(e)?Ksr(e,!0):Zsr(e)}var kor=uor(function(e,t,r){SGe(e,t,r)});function Aor(e){return function(){return e}}function PGe(e){return e}function Tor(){return!1}o3.exports=kor});var wKe=b((hnn,bKe)=>{var fur=require("crypto");bKe.exports=function(){return fur.randomBytes(16)}});var EKe=b((mnn,xKe)=>{var _Ke=[];for(Dk=0;Dk<256;++Dk)_Ke[Dk]=(Dk+256).toString(16).substr(1);var Dk;function dur(e,t){var r=t||0,n=_Ke;return[n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]]].join("")}xKe.exports=dur});var kKe=b((gnn,SKe)=>{var hur=wKe(),mur=EKe();function gur(e,t,r){var n=t&&r||0;typeof e=="string"&&(t=e==="binary"?new Array(16):null,e=null),e=e||{};var i=e.random||(e.rng||hur)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t)for(var a=0;a<16;++a)t[n+a]=i[a];return t||mur(i)}SKe.exports=gur});var Mg=b((vnn,tle)=>{var Zce=function(){"use strict";return this===void 0}();Zce?tle.exports={freeze:Object.freeze,defineProperty:Object.defineProperty,getDescriptor:Object.getOwnPropertyDescriptor,keys:Object.keys,names:Object.getOwnPropertyNames,getPrototypeOf:Object.getPrototypeOf,isArray:Array.isArray,isES5:Zce,propertyIsWritable:function(e,t){var r=Object.getOwnPropertyDescriptor(e,t);return!!(!r||r.writable||r.set)}}:(AKe={}.hasOwnProperty,TKe={}.toString,OKe={}.constructor.prototype,ele=function(e){var t=[];for(var r in e)AKe.call(e,r)&&t.push(r);return t},DKe=function(e,t){return{value:e[t]}},CKe=function(e,t,r){return e[t]=r.value,e},PKe=function(e){return e},IKe=function(e){try{return Object(e).constructor.prototype}catch{return OKe}},RKe=function(e){try{return TKe.call(e)==="[object Array]"}catch{return!1}},tle.exports={isArray:RKe,keys:ele,names:ele,defineProperty:CKe,getDescriptor:DKe,freeze:PKe,getPrototypeOf:IKe,isES5:Zce,propertyIsWritable:function(){return!0}});var AKe,TKe,OKe,ele,DKe,CKe,PKe,IKe,RKe});var Gi=b((exports,module)=>{"use strict";var es5=Mg(),canEvaluate=typeof navigator>"u",errorObj={e:{}},tryCatchTarget,globalObject=typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:exports!==void 0?exports:null;function tryCatcher(){try{var e=tryCatchTarget;return tryCatchTarget=null,e.apply(this,arguments)}catch(t){return errorObj.e=t,errorObj}}function tryCatch(e){return tryCatchTarget=e,tryCatcher}var inherits=function(e,t){var r={}.hasOwnProperty;function n(){this.constructor=e,this.constructor$=t;for(var i in t.prototype)r.call(t.prototype,i)&&i.charAt(i.length-1)!=="$"&&(this[i+"$"]=t.prototype[i])}return n.prototype=t.prototype,e.prototype=new n,e.prototype};function isPrimitive(e){return e==null||e===!0||e===!1||typeof e=="string"||typeof e=="number"}function isObject(e){return typeof e=="function"||typeof e=="object"&&e!==null}function maybeWrapAsError(e){return isPrimitive(e)?new Error(safeToString(e)):e}function withAppended(e,t){var r=e.length,n=new Array(r+1),i;for(i=0;i<r;++i)n[i]=e[i];return n[i]=t,n}function getDataPropertyOrDefault(e,t,r){if(es5.isES5){var n=Object.getOwnPropertyDescriptor(e,t);if(n!=null)return n.get==null&&n.set==null?n.value:r}else return{}.hasOwnProperty.call(e,t)?e[t]:void 0}function notEnumerableProp(e,t,r){if(isPrimitive(e))return e;var n={value:r,configurable:!0,enumerable:!1,writable:!0};return es5.defineProperty(e,t,n),e}function thrower(e){throw e}var inheritedDataKeys=function(){var e=[Array.prototype,Object.prototype,Function.prototype],t=function(i){for(var a=0;a<e.length;++a)if(e[a]===i)return!0;return!1};if(es5.isES5){var r=Object.getOwnPropertyNames;return function(i){for(var a=[],s=Object.create(null);i!=null&&!t(i);){var o;try{o=r(i)}catch{return a}for(var c=0;c<o.length;++c){var p=o[c];if(!s[p]){s[p]=!0;var f=Object.getOwnPropertyDescriptor(i,p);f!=null&&f.get==null&&f.set==null&&a.push(p)}}i=es5.getPrototypeOf(i)}return a}}else{var n={}.hasOwnProperty;return function(i){if(t(i))return[];var a=[];e:for(var s in i)if(n.call(i,s))a.push(s);else{for(var o=0;o<e.length;++o)if(n.call(e[o],s))continue e;a.push(s)}return a}}}(),thisAssignmentPattern=/this\s*\.\s*\S+\s*=/;function isClass(e){try{if(typeof e=="function"){var t=es5.names(e.prototype),r=es5.isES5&&t.length>1,n=t.length>0&&!(t.length===1&&t[0]==="constructor"),i=thisAssignmentPattern.test(e+"")&&es5.names(e).length>0;if(r||n||i)return!0}return!1}catch{return!1}}function toFastProperties(obj){function FakeConstructor(){}FakeConstructor.prototype=obj;var receiver=new FakeConstructor;function ic(){return typeof receiver.foo}return ic(),ic(),obj;eval(obj)}var rident=/^[a-z$_][a-z$_0-9]*$/i;function isIdentifier(e){return rident.test(e)}function filledRange(e,t,r){for(var n=new Array(e),i=0;i<e;++i)n[i]=t+i+r;return n}function safeToString(e){try{return e+""}catch{return"[no string representation]"}}function isError(e){return e instanceof Error||e!==null&&typeof e=="object"&&typeof e.message=="string"&&typeof e.name=="string"}function markAsOriginatingFromRejection(e){try{notEnumerableProp(e,"isOperational",!0)}catch{}}function originatesFromRejection(e){return e==null?!1:e instanceof Error.__BluebirdErrorTypes__.OperationalError||e.isOperational===!0}function canAttachTrace(e){return isError(e)&&es5.propertyIsWritable(e,"stack")}var ensureErrorObject=function(){return"stack"in new Error?function(e){return canAttachTrace(e)?e:new Error(safeToString(e))}:function(e){if(canAttachTrace(e))return e;try{throw new Error(safeToString(e))}catch(t){return t}}}();function classString(e){return{}.toString.call(e)}function copyDescriptors(e,t,r){for(var n=es5.names(e),i=0;i<n.length;++i){var a=n[i];if(r(a))try{es5.defineProperty(t,a,es5.getDescriptor(e,a))}catch{}}}var asArray=function(e){return es5.isArray(e)?e:null};typeof Symbol<"u"&&Symbol.iterator&&(ArrayFrom=typeof Array.from=="function"?function(e){return Array.from(e)}:function(e){for(var t=[],r=e[Symbol.iterator](),n;!(n=r.next()).done;)t.push(n.value);return t},asArray=function(e){return es5.isArray(e)?e:e!=null&&typeof e[Symbol.iterator]=="function"?ArrayFrom(e):null});var ArrayFrom,isNode=typeof process<"u"&&classString(process).toLowerCase()==="[object process]",hasEnvVariables=typeof process<"u"&&typeof process.env<"u";function env(e){return hasEnvVariables?process.env[e]:void 0}function getNativePromise(){if(typeof Promise=="function")try{var e=new Promise(function(){});if(classString(e)==="[object Promise]")return Promise}catch{}}var reflectHandler;function contextBind(e,t){if(e===null||typeof t!="function"||t===reflectHandler)return t;e.domain!==null&&(t=e.domain.bind(t));var r=e.async;if(r!==null){var n=t;t=function(){for(var i=arguments.length+2,a=new Array(i),s=2;s<i;++s)a[s]=arguments[s-2];return a[0]=n,a[1]=this,r.runInAsyncScope.apply(r,a)}}return t}var ret={setReflectHandler:function(e){reflectHandler=e},isClass,isIdentifier,inheritedDataKeys,getDataPropertyOrDefault,thrower,isArray:es5.isArray,asArray,notEnumerableProp,isPrimitive,isObject,isError,canEvaluate,errorObj,tryCatch,inherits,withAppended,maybeWrapAsError,toFastProperties,filledRange,toString:safeToString,canAttachTrace,ensureErrorObject,originatesFromRejection,markAsOriginatingFromRejection,classString,copyDescriptors,isNode,hasEnvVariables,env,global:globalObject,getNativePromise,contextBind};ret.isRecentNode=ret.isNode&&function(){var e;return process.versions&&process.versions.node?e=process.versions.node.split(".").map(Number):process.version&&(e=process.version.split(".").map(Number)),e[0]===0&&e[1]>10||e[0]>0}();ret.nodeSupportsAsyncResource=ret.isNode&&function(){var e=!1;try{var t=require("async_hooks").AsyncResource;e=typeof t.prototype.runInAsyncScope=="function"}catch{e=!1}return e}();ret.isNode&&ret.toFastProperties(process);try{throw new Error}catch(e){ret.lastLineError=e}module.exports=ret});var LKe=b((ynn,qKe)=>{"use strict";var nle=Gi(),sw,vur=function(){throw new Error(`No async scheduler available

    See http://goo.gl/MqrFmX
`)},rle=nle.getNativePromise();nle.isNode&&typeof MutationObserver>"u"?(FKe=global.setImmediate,jKe=process.nextTick,sw=nle.isRecentNode?function(e){FKe.call(global,e)}:function(e){jKe.call(process,e)}):typeof rle=="function"&&typeof rle.resolve=="function"?(NKe=rle.resolve(),sw=function(e){NKe.then(e)}):typeof MutationObserver<"u"&&!(typeof window<"u"&&window.navigator&&(window.navigator.standalone||window.cordova))&&"classList"in document.documentElement?sw=function(){var e=document.createElement("div"),t={attributes:!0},r=!1,n=document.createElement("div"),i=new MutationObserver(function(){e.classList.toggle("foo"),r=!1});i.observe(n,t);var a=function(){r||(r=!0,n.classList.toggle("foo"))};return function(o){var c=new MutationObserver(function(){c.disconnect(),o()});c.observe(e,t),a()}}():typeof setImmediate<"u"?sw=function(e){setImmediate(e)}:typeof setTimeout<"u"?sw=function(e){setTimeout(e,0)}:sw=vur;var FKe,jKe,NKe;qKe.exports=sw});var BKe=b((bnn,$Ke)=>{"use strict";function yur(e,t,r,n,i){for(var a=0;a<i;++a)r[a+n]=e[a+t],e[a+t]=void 0}function Ug(e){this._capacity=e,this._length=0,this._front=0}Ug.prototype._willBeOverCapacity=function(e){return this._capacity<e};Ug.prototype._pushOne=function(e){var t=this.length();this._checkCapacity(t+1);var r=this._front+t&this._capacity-1;this[r]=e,this._length=t+1};Ug.prototype.push=function(e,t,r){var n=this.length()+3;if(this._willBeOverCapacity(n)){this._pushOne(e),this._pushOne(t),this._pushOne(r);return}var i=this._front+n-3;this._checkCapacity(n);var a=this._capacity-1;this[i+0&a]=e,this[i+1&a]=t,this[i+2&a]=r,this._length=n};Ug.prototype.shift=function(){var e=this._front,t=this[e];return this[e]=void 0,this._front=e+1&this._capacity-1,this._length--,t};Ug.prototype.length=function(){return this._length};Ug.prototype._checkCapacity=function(e){this._capacity<e&&this._resizeTo(this._capacity<<1)};Ug.prototype._resizeTo=function(e){var t=this._capacity;this._capacity=e;var r=this._front,n=this._length,i=r+n&t-1;yur(this,0,this,t,i)};$Ke.exports=Ug});var HKe=b((wnn,ile)=>{"use strict";var zKe;try{throw new Error}catch(e){zKe=e}var bur=LKe(),MKe=BKe();function ap(){this._customScheduler=!1,this._isTickUsed=!1,this._lateQueue=new MKe(16),this._normalQueue=new MKe(16),this._haveDrainedQueues=!1;var e=this;this.drainQueues=function(){e._drainQueues()},this._schedule=bur}ap.prototype.setScheduler=function(e){var t=this._schedule;return this._schedule=e,this._customScheduler=!0,t};ap.prototype.hasCustomScheduler=function(){return this._customScheduler};ap.prototype.haveItemsQueued=function(){return this._isTickUsed||this._haveDrainedQueues};ap.prototype.fatalError=function(e,t){t?(process.stderr.write("Fatal "+(e instanceof Error?e.stack:e)+`
`),process.exit(2)):this.throwLater(e)};ap.prototype.throwLater=function(e,t){if(arguments.length===1&&(t=e,e=function(){throw t}),typeof setTimeout<"u")setTimeout(function(){e(t)},0);else try{this._schedule(function(){e(t)})}catch{throw new Error(`No async scheduler available

    See http://goo.gl/MqrFmX
`)}};function wur(e,t,r){this._lateQueue.push(e,t,r),this._queueTick()}function _ur(e,t,r){this._normalQueue.push(e,t,r),this._queueTick()}function xur(e){this._normalQueue._pushOne(e),this._queueTick()}ap.prototype.invokeLater=wur;ap.prototype.invoke=_ur;ap.prototype.settlePromises=xur;function UKe(e){for(;e.length()>0;)Eur(e)}function Eur(e){var t=e.shift();if(typeof t!="function")t._settlePromises();else{var r=e.shift(),n=e.shift();t.call(r,n)}}ap.prototype._drainQueues=function(){UKe(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,UKe(this._lateQueue)};ap.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))};ap.prototype._reset=function(){this._isTickUsed=!1};ile.exports=ap;ile.exports.firstLineError=zKe});var I1=b((_nn,WKe)=>{"use strict";var ole=Mg(),Sur=ole.freeze,VKe=Gi(),GKe=VKe.inherits,m3=VKe.notEnumerableProp;function g3(e,t){function r(n){if(!(this instanceof r))return new r(n);m3(this,"message",typeof n=="string"?n:t),m3(this,"name",e),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this)}return GKe(r,Error),r}var ale,sle,kur=g3("Warning","warning"),Aur=g3("CancellationError","cancellation error"),Tur=g3("TimeoutError","timeout error"),Pk=g3("AggregateError","aggregate error");try{ale=TypeError,sle=RangeError}catch{ale=g3("TypeError","type error"),sle=g3("RangeError","range error")}var hN="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" ");for(h3=0;h3<hN.length;++h3)typeof Array.prototype[hN[h3]]=="function"&&(Pk.prototype[hN[h3]]=Array.prototype[hN[h3]]);var h3;ole.defineProperty(Pk.prototype,"length",{value:0,configurable:!1,writable:!0,enumerable:!0});Pk.prototype.isOperational=!0;var mN=0;Pk.prototype.toString=function(){var e=Array(mN*4+1).join(" "),t=`
`+e+`AggregateError of:
`;mN++,e=Array(mN*4+1).join(" ");for(var r=0;r<this.length;++r){for(var n=this[r]===this?"[Circular AggregateError]":this[r]+"",i=n.split(`
`),a=0;a<i.length;++a)i[a]=e+i[a];n=i.join(`
`),t+=n+`
`}return mN--,t};function Ck(e){if(!(this instanceof Ck))return new Ck(e);m3(this,"name","OperationalError"),m3(this,"message",e),this.cause=e,this.isOperational=!0,e instanceof Error?(m3(this,"message",e.message),m3(this,"stack",e.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}GKe(Ck,Error);var ow=Error.__BluebirdErrorTypes__;ow||(ow=Sur({CancellationError:Aur,TimeoutError:Tur,OperationalError:Ck,RejectionError:Ck,AggregateError:Pk}),ole.defineProperty(Error,"__BluebirdErrorTypes__",{value:ow,writable:!1,enumerable:!1,configurable:!1}));WKe.exports={Error,TypeError:ale,RangeError:sle,CancellationError:ow.CancellationError,OperationalError:ow.OperationalError,TimeoutError:ow.TimeoutError,AggregateError:ow.AggregateError,Warning:kur}});var YKe=b((xnn,KKe)=>{"use strict";KKe.exports=function(e,t){var r=Gi(),n=r.errorObj,i=r.isObject;function a(d,h){if(i(d)){if(d instanceof e)return d;var g=o(d);if(g===n){h&&h._pushContext();var v=e.reject(g.e);return h&&h._popContext(),v}else if(typeof g=="function"){if(p(d)){var v=new e(t);return d._then(v._fulfill,v._reject,void 0,v,null),v}return f(d,g,h)}}return d}function s(d){return d.then}function o(d){try{return s(d)}catch(h){return n.e=h,n}}var c={}.hasOwnProperty;function p(d){try{return c.call(d,"_promise0")}catch{return!1}}function f(d,h,g){var v=new e(t),y=v;g&&g._pushContext(),v._captureStackTrace(),g&&g._popContext();var _=!0,x=r.tryCatch(h).call(d,A,D);_=!1,v&&x===n&&(v._rejectCallback(x.e,!0,!0),v=null);function A(j){v&&(v._resolveCallback(j),v=null)}function D(j){v&&(v._rejectCallback(j,_,!0),v=null)}return y}return a}});var XKe=b((Enn,JKe)=>{"use strict";JKe.exports=function(e,t,r,n,i){var a=Gi(),s=a.isArray;function o(p){switch(p){case-2:return[];case-3:return{};case-6:return new Map}}function c(p){var f=this._promise=new e(t);p instanceof e&&(f._propagateFrom(p,3),p.suppressUnhandledRejections()),f._setOnCancel(this),this._values=p,this._length=0,this._totalResolved=0,this._init(void 0,-2)}return a.inherits(c,i),c.prototype.length=function(){return this._length},c.prototype.promise=function(){return this._promise},c.prototype._init=function p(f,d){var h=r(this._values,this._promise);if(h instanceof e){h=h._target();var g=h._bitField;if(this._values=h,g&50397184)if(g&33554432)h=h._value();else return g&16777216?this._reject(h._reason()):this._cancel();else return this._promise._setAsyncGuaranteed(),h._then(p,this._reject,void 0,this,d)}if(h=a.asArray(h),h===null){var v=n("expecting an array or an iterable object but got "+a.classString(h)).reason();this._promise._rejectCallback(v,!1);return}if(h.length===0){d===-5?this._resolveEmptyArray():this._resolve(o(d));return}this._iterate(h)},c.prototype._iterate=function(p){var f=this.getActualLength(p.length);this._length=f,this._values=this.shouldCopyValues()?new Array(f):this._values;for(var d=this._promise,h=!1,g=null,v=0;v<f;++v){var y=r(p[v],d);y instanceof e?(y=y._target(),g=y._bitField):g=null,h?g!==null&&y.suppressUnhandledRejections():g!==null?g&50397184?g&33554432?h=this._promiseFulfilled(y._value(),v):g&16777216?h=this._promiseRejected(y._reason(),v):h=this._promiseCancelled(v):(y._proxy(this,v),this._values[v]=y):h=this._promiseFulfilled(y,v)}h||d._setAsyncGuaranteed()},c.prototype._isResolved=function(){return this._values===null},c.prototype._resolve=function(p){this._values=null,this._promise._fulfill(p)},c.prototype._cancel=function(){this._isResolved()||!this._promise._isCancellable()||(this._values=null,this._promise._cancel())},c.prototype._reject=function(p){this._values=null,this._promise._rejectCallback(p,!1)},c.prototype._promiseFulfilled=function(p,f){this._values[f]=p;var d=++this._totalResolved;return d>=this._length?(this._resolve(this._values),!0):!1},c.prototype._promiseCancelled=function(){return this._cancel(),!0},c.prototype._promiseRejected=function(p){return this._totalResolved++,this._reject(p),!0},c.prototype._resultCancelled=function(){if(!this._isResolved()){var p=this._values;if(this._cancel(),p instanceof e)p.cancel();else for(var f=0;f<p.length;++f)p[f]instanceof e&&p[f].cancel()}},c.prototype.shouldCopyValues=function(){return!0},c.prototype.getActualLength=function(p){return p},c}});var ZKe=b((Snn,QKe)=>{"use strict";QKe.exports=function(e){var t=!1,r=[];e.prototype._promiseCreated=function(){},e.prototype._pushContext=function(){},e.prototype._popContext=function(){return null},e._peekContext=e.prototype._peekContext=function(){};function n(){this._trace=new n.CapturedTrace(a())}n.prototype._pushContext=function(){this._trace!==void 0&&(this._trace._promiseCreated=null,r.push(this._trace))},n.prototype._popContext=function(){if(this._trace!==void 0){var s=r.pop(),o=s._promiseCreated;return s._promiseCreated=null,o}return null};function i(){if(t)return new n}function a(){var s=r.length-1;if(s>=0)return r[s]}return n.CapturedTrace=null,n.create=i,n.deactivateLongStackTraces=function(){},n.activateLongStackTraces=function(){var s=e.prototype._pushContext,o=e.prototype._popContext,c=e._peekContext,p=e.prototype._peekContext,f=e.prototype._promiseCreated;n.deactivateLongStackTraces=function(){e.prototype._pushContext=s,e.prototype._popContext=o,e._peekContext=c,e.prototype._peekContext=p,e.prototype._promiseCreated=f,t=!1},t=!0,e.prototype._pushContext=n.prototype._pushContext,e.prototype._popContext=n.prototype._popContext,e._peekContext=e.prototype._peekContext=a,e.prototype._promiseCreated=function(){var d=this._peekContext();d&&d._promiseCreated==null&&(d._promiseCreated=this)}},n}});var tYe=b((knn,eYe)=>{"use strict";eYe.exports=function(e,t,r,n){var i=e._async,a=I1().Warning,s=Gi(),o=Mg(),c=s.canAttachTrace,p,f,d=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,h=/\((?:timers\.js):\d+:\d+\)/,g=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,v=null,y=null,_=!1,x,A=!!(s.env("BLUEBIRD_DEBUG")!=0&&(s.env("BLUEBIRD_DEBUG")||s.env("NODE_ENV")==="development")),D=!!(s.env("BLUEBIRD_WARNINGS")!=0&&(A||s.env("BLUEBIRD_WARNINGS"))),j=!!(s.env("BLUEBIRD_LONG_STACK_TRACES")!=0&&(A||s.env("BLUEBIRD_LONG_STACK_TRACES"))),H=s.env("BLUEBIRD_W_FORGOTTEN_RETURN")!=0&&(D||!!s.env("BLUEBIRD_W_FORGOTTEN_RETURN")),F;(function(){var $e=[];function Ue(){for(var ut=0;ut<$e.length;++ut)$e[ut]._notifyUnhandledRejection();ct()}function ct(){$e.length=0}F=function(ut){$e.push(ut),setTimeout(Ue,1)},o.defineProperty(e,"_unhandledRejectionCheck",{value:Ue}),o.defineProperty(e,"_unhandledRejectionClear",{value:ct})})(),e.prototype.suppressUnhandledRejections=function(){var $e=this._target();$e._bitField=$e._bitField&-1048577|524288},e.prototype._ensurePossibleRejectionHandled=function(){this._bitField&524288||(this._setRejectionIsUnhandled(),F(this))},e.prototype._notifyUnhandledRejectionIsHandled=function(){De("rejectionHandled",p,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=this._bitField|268435456},e.prototype._returnedNonUndefined=function(){return(this._bitField&268435456)!==0},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var $e=this._settledValue();this._setUnhandledRejectionIsNotified(),De("unhandledRejection",f,$e,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=this._bitField|262144},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=this._bitField&-262145},e.prototype._isUnhandledRejectionNotified=function(){return(this._bitField&262144)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=this._bitField|1048576},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=this._bitField&-1048577,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(this._bitField&1048576)>0},e.prototype._warn=function($e,Ue,ct){return S($e,Ue,ct||this)},e.onPossiblyUnhandledRejection=function($e){var Ue=e._getContext();f=s.contextBind(Ue,$e)},e.onUnhandledRejectionHandled=function($e){var Ue=e._getContext();p=s.contextBind(Ue,$e)};var z=function(){};e.longStackTraces=function(){if(i.haveItemsQueued()&&!$t.longStackTraces)throw new Error(`cannot enable long stack traces after promises have been created

    See http://goo.gl/MqrFmX
`);if(!$t.longStackTraces&&Ve()){var $e=e.prototype._captureStackTrace,Ue=e.prototype._attachExtraTrace,ct=e.prototype._dereferenceTrace;$t.longStackTraces=!0,z=function(){if(i.haveItemsQueued()&&!$t.longStackTraces)throw new Error(`cannot enable long stack traces after promises have been created

    See http://goo.gl/MqrFmX
`);e.prototype._captureStackTrace=$e,e.prototype._attachExtraTrace=Ue,e.prototype._dereferenceTrace=ct,t.deactivateLongStackTraces(),$t.longStackTraces=!1},e.prototype._captureStackTrace=ce,e.prototype._attachExtraTrace=ye,e.prototype._dereferenceTrace=R,t.activateLongStackTraces()}},e.hasLongStackTraces=function(){return $t.longStackTraces&&Ve()};var P={unhandledrejection:{before:function(){var $e=s.global.onunhandledrejection;return s.global.onunhandledrejection=null,$e},after:function($e){s.global.onunhandledrejection=$e}},rejectionhandled:{before:function(){var $e=s.global.onrejectionhandled;return s.global.onrejectionhandled=null,$e},after:function($e){s.global.onrejectionhandled=$e}}},M=function(){var $e=function(ct,ut){if(ct){var Dt;try{return Dt=ct.before(),!s.global.dispatchEvent(ut)}finally{ct.after(Dt)}}else return!s.global.dispatchEvent(ut)};try{if(typeof CustomEvent=="function"){var Ue=new CustomEvent("CustomEvent");return s.global.dispatchEvent(Ue),function(ct,ut){ct=ct.toLowerCase();var Dt={detail:ut,cancelable:!0},Zt=new CustomEvent(ct,Dt);return o.defineProperty(Zt,"promise",{value:ut.promise}),o.defineProperty(Zt,"reason",{value:ut.reason}),$e(P[ct],Zt)}}else if(typeof Event=="function"){var Ue=new Event("CustomEvent");return s.global.dispatchEvent(Ue),function(ut,Dt){ut=ut.toLowerCase();var Zt=new Event(ut,{cancelable:!0});return Zt.detail=Dt,o.defineProperty(Zt,"promise",{value:Dt.promise}),o.defineProperty(Zt,"reason",{value:Dt.reason}),$e(P[ut],Zt)}}else{var Ue=document.createEvent("CustomEvent");return Ue.initCustomEvent("testingtheevent",!1,!0,{}),s.global.dispatchEvent(Ue),function(ut,Dt){ut=ut.toLowerCase();var Zt=document.createEvent("CustomEvent");return Zt.initCustomEvent(ut,!1,!0,Dt),$e(P[ut],Zt)}}}catch{}return function(){return!1}}(),K=function(){return s.isNode?function(){return process.emit.apply(process,arguments)}:s.global?function($e){var Ue="on"+$e.toLowerCase(),ct=s.global[Ue];return ct?(ct.apply(s.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}();function L($e,Ue){return{promise:Ue}}var ve={promiseCreated:L,promiseFulfilled:L,promiseRejected:L,promiseResolved:L,promiseCancelled:L,promiseChained:function($e,Ue,ct){return{promise:Ue,child:ct}},warning:function($e,Ue){return{warning:Ue}},unhandledRejection:function($e,Ue,ct){return{reason:Ue,promise:ct}},rejectionHandled:L},U=function($e){var Ue=!1;try{Ue=K.apply(null,arguments)}catch(ut){i.throwLater(ut),Ue=!0}var ct=!1;try{ct=M($e,ve[$e].apply(null,arguments))}catch(ut){i.throwLater(ut),ct=!0}return ct||Ue};e.config=function($e){if($e=Object($e),"longStackTraces"in $e&&($e.longStackTraces?e.longStackTraces():!$e.longStackTraces&&e.hasLongStackTraces()&&z()),"warnings"in $e){var Ue=$e.warnings;$t.warnings=!!Ue,H=$t.warnings,s.isObject(Ue)&&"wForgottenReturn"in Ue&&(H=!!Ue.wForgottenReturn)}if("cancellation"in $e&&$e.cancellation&&!$t.cancellation){if(i.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=G,e.prototype._propagateFrom=de,e.prototype._onCancel=Q,e.prototype._setOnCancel=ne,e.prototype._attachCancellationCallback=ue,e.prototype._execute=re,ge=de,$t.cancellation=!0}if("monitoring"in $e&&($e.monitoring&&!$t.monitoring?($t.monitoring=!0,e.prototype._fireEvent=U):!$e.monitoring&&$t.monitoring&&($t.monitoring=!1,e.prototype._fireEvent=N)),"asyncHooks"in $e&&s.nodeSupportsAsyncResource){var ct=$t.asyncHooks,ut=!!$e.asyncHooks;ct!==ut&&($t.asyncHooks=ut,ut?r():n())}return e};function N(){return!1}e.prototype._fireEvent=N,e.prototype._execute=function($e,Ue,ct){try{$e(Ue,ct)}catch(ut){return ut}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function($e){},e.prototype._attachCancellationCallback=function($e){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._dereferenceTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function($e,Ue){};function re($e,Ue,ct){var ut=this;try{$e(Ue,ct,function(Dt){if(typeof Dt!="function")throw new TypeError("onCancel must be a function, got: "+s.toString(Dt));ut._attachCancellationCallback(Dt)})}catch(Dt){return Dt}}function ue($e){if(!this._isCancellable())return this;var Ue=this._onCancel();Ue!==void 0?s.isArray(Ue)?Ue.push($e):this._setOnCancel([Ue,$e]):this._setOnCancel($e)}function Q(){return this._onCancelField}function ne($e){this._onCancelField=$e}function G(){this._cancellationParent=void 0,this._onCancelField=void 0}function de($e,Ue){if(Ue&1){this._cancellationParent=$e;var ct=$e._branchesRemainingToCancel;ct===void 0&&(ct=0),$e._branchesRemainingToCancel=ct+1}Ue&2&&$e._isBound()&&this._setBoundTo($e._boundTo)}function xe($e,Ue){Ue&2&&$e._isBound()&&this._setBoundTo($e._boundTo)}var ge=xe;function V(){var $e=this._boundTo;return $e!==void 0&&$e instanceof e?$e.isFulfilled()?$e.value():void 0:$e}function ce(){this._trace=new kr(this._peekContext())}function ye($e,Ue){if(c($e)){var ct=this._trace;if(ct!==void 0&&Ue&&(ct=ct._parent),ct!==void 0)ct.attachExtraTrace($e);else if(!$e.__stackCleaned__){var ut=Se($e);s.notEnumerableProp($e,"stack",ut.message+`
`+ut.stack.join(`
`)),s.notEnumerableProp($e,"__stackCleaned__",!0)}}}function R(){this._trace=void 0}function $($e,Ue,ct,ut,Dt){if($e===void 0&&Ue!==null&&H){if(Dt!==void 0&&Dt._returnedNonUndefined()||!(ut._bitField&65535))return;ct&&(ct=ct+" ");var Zt="",hr="";if(Ue._trace){for(var Bt=Ue._trace.stack.split(`
`),pr=ae(Bt),wn=pr.length-1;wn>=0;--wn){var Ai=pr[wn];if(!h.test(Ai)){var Ui=Ai.match(g);Ui&&(Zt="at "+Ui[1]+":"+Ui[2]+":"+Ui[3]+" ");break}}if(pr.length>0){for(var Xa=pr[0],wn=0;wn<Bt.length;++wn)if(Bt[wn]===Xa){wn>0&&(hr=`
`+Bt[wn-1]);break}}}var ws="a promise was created in a "+ct+"handler "+Zt+"but was not returned from it, see http://goo.gl/rRqMUw"+hr;ut._warn(ws,!0,Ue)}}function ke($e,Ue){var ct=$e+" is deprecated and will be removed in a future version.";return Ue&&(ct+=" Use "+Ue+" instead."),S(ct)}function S($e,Ue,ct){if($t.warnings){var ut=new a($e),Dt;if(Ue)ct._attachExtraTrace(ut);else if($t.longStackTraces&&(Dt=e._peekContext()))Dt.attachExtraTrace(ut);else{var Zt=Se(ut);ut.stack=Zt.message+`
`+Zt.stack.join(`
`)}U("warning",ut)||Ee(ut,"",!0)}}function I($e,Ue){for(var ct=0;ct<Ue.length-1;++ct)Ue[ct].push("From previous event:"),Ue[ct]=Ue[ct].join(`
`);return ct<Ue.length&&(Ue[ct]=Ue[ct].join(`
`)),$e+`
`+Ue.join(`
`)}function B($e){for(var Ue=0;Ue<$e.length;++Ue)($e[Ue].length===0||Ue+1<$e.length&&$e[Ue][0]===$e[Ue+1][0])&&($e.splice(Ue,1),Ue--)}function se($e){for(var Ue=$e[0],ct=1;ct<$e.length;++ct){for(var ut=$e[ct],Dt=Ue.length-1,Zt=Ue[Dt],hr=-1,Bt=ut.length-1;Bt>=0;--Bt)if(ut[Bt]===Zt){hr=Bt;break}for(var Bt=hr;Bt>=0;--Bt){var pr=ut[Bt];if(Ue[Dt]===pr)Ue.pop(),Dt--;else break}Ue=ut}}function ae($e){for(var Ue=[],ct=0;ct<$e.length;++ct){var ut=$e[ct],Dt=ut==="    (No stack trace)"||v.test(ut),Zt=Dt&&kt(ut);Dt&&!Zt&&(_&&ut.charAt(0)!==" "&&(ut="    "+ut),Ue.push(ut))}return Ue}function me($e){for(var Ue=$e.stack.replace(/\s+$/g,"").split(`
`),ct=0;ct<Ue.length;++ct){var ut=Ue[ct];if(ut==="    (No stack trace)"||v.test(ut))break}return ct>0&&$e.name!="SyntaxError"&&(Ue=Ue.slice(ct)),Ue}function Se($e){var Ue=$e.stack,ct=$e.toString();return Ue=typeof Ue=="string"&&Ue.length>0?me($e):["    (No stack trace)"],{message:ct,stack:$e.name=="SyntaxError"?Ue:ae(Ue)}}function Ee($e,Ue,ct){if(typeof console<"u"){var ut;if(s.isObject($e)){var Dt=$e.stack;ut=Ue+y(Dt,$e)}else ut=Ue+String($e);typeof x=="function"?x(ut,ct):(typeof console.log=="function"||typeof console.log=="object")&&console.log(ut)}}function De($e,Ue,ct,ut){var Dt=!1;try{typeof Ue=="function"&&(Dt=!0,$e==="rejectionHandled"?Ue(ut):Ue(ct,ut))}catch(Zt){i.throwLater(Zt)}$e==="unhandledRejection"?!U($e,ct,ut)&&!Dt&&Ee(ct,"Unhandled rejection "):U($e,ut)}function Le($e){var Ue;if(typeof $e=="function")Ue="[function "+($e.name||"anonymous")+"]";else{Ue=$e&&typeof $e.toString=="function"?$e.toString():s.toString($e);var ct=/\[object [a-zA-Z0-9$_]+\]/;if(ct.test(Ue))try{var ut=JSON.stringify($e);Ue=ut}catch{}Ue.length===0&&(Ue="(empty array)")}return"(<"+Ne(Ue)+">, no stack trace)"}function Ne($e){var Ue=41;return $e.length<Ue?$e:$e.substr(0,Ue-3)+"..."}function Ve(){return typeof dr=="function"}var kt=function(){return!1},Ft=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;function rr($e){var Ue=$e.match(Ft);if(Ue)return{fileName:Ue[1],line:parseInt(Ue[2],10)}}function Or($e,Ue){if(Ve()){for(var ct=($e.stack||"").split(`
`),ut=(Ue.stack||"").split(`
`),Dt=-1,Zt=-1,hr,Bt,pr=0;pr<ct.length;++pr){var wn=rr(ct[pr]);if(wn){hr=wn.fileName,Dt=wn.line;break}}for(var pr=0;pr<ut.length;++pr){var wn=rr(ut[pr]);if(wn){Bt=wn.fileName,Zt=wn.line;break}}Dt<0||Zt<0||!hr||!Bt||hr!==Bt||Dt>=Zt||(kt=function(Ai){if(d.test(Ai))return!0;var Ui=rr(Ai);return!!(Ui&&Ui.fileName===hr&&Dt<=Ui.line&&Ui.line<=Zt)})}}function kr($e){this._parent=$e,this._promisesCreated=0;var Ue=this._length=1+($e===void 0?0:$e._length);dr(this,kr),Ue>32&&this.uncycle()}s.inherits(kr,Error),t.CapturedTrace=kr,kr.prototype.uncycle=function(){var $e=this._length;if(!($e<2)){for(var Ue=[],ct={},ut=0,Dt=this;Dt!==void 0;++ut)Ue.push(Dt),Dt=Dt._parent;$e=this._length=ut;for(var ut=$e-1;ut>=0;--ut){var Zt=Ue[ut].stack;ct[Zt]===void 0&&(ct[Zt]=ut)}for(var ut=0;ut<$e;++ut){var hr=Ue[ut].stack,Bt=ct[hr];if(Bt!==void 0&&Bt!==ut){Bt>0&&(Ue[Bt-1]._parent=void 0,Ue[Bt-1]._length=1),Ue[ut]._parent=void 0,Ue[ut]._length=1;var pr=ut>0?Ue[ut-1]:this;Bt<$e-1?(pr._parent=Ue[Bt+1],pr._parent.uncycle(),pr._length=pr._parent._length+1):(pr._parent=void 0,pr._length=1);for(var wn=pr._length+1,Ai=ut-2;Ai>=0;--Ai)Ue[Ai]._length=wn,wn++;return}}}},kr.prototype.attachExtraTrace=function($e){if(!$e.__stackCleaned__){this.uncycle();for(var Ue=Se($e),ct=Ue.message,ut=[Ue.stack],Dt=this;Dt!==void 0;)ut.push(ae(Dt.stack.split(`
`))),Dt=Dt._parent;se(ut),B(ut),s.notEnumerableProp($e,"stack",I(ct,ut)),s.notEnumerableProp($e,"__stackCleaned__",!0)}};var dr=function(){var Ue=/^\s*at\s*/,ct=function(hr,Bt){return typeof hr=="string"?hr:Bt.name!==void 0&&Bt.message!==void 0?Bt.toString():Le(Bt)};if(typeof Error.stackTraceLimit=="number"&&typeof Error.captureStackTrace=="function"){Error.stackTraceLimit+=6,v=Ue,y=ct;var ut=Error.captureStackTrace;return kt=function(hr){return d.test(hr)},function(hr,Bt){Error.stackTraceLimit+=6,ut(hr,Bt),Error.stackTraceLimit-=6}}var Dt=new Error;if(typeof Dt.stack=="string"&&Dt.stack.split(`
`)[0].indexOf("stackDetection@")>=0)return v=/@/,y=ct,_=!0,function(Bt){Bt.stack=new Error().stack};var Zt;try{throw new Error}catch(hr){Zt="stack"in hr}return!("stack"in Dt)&&Zt&&typeof Error.stackTraceLimit=="number"?(v=Ue,y=ct,function(Bt){Error.stackTraceLimit+=6;try{throw new Error}catch(pr){Bt.stack=pr.stack}Error.stackTraceLimit-=6}):(y=function(hr,Bt){return typeof hr=="string"?hr:(typeof Bt=="object"||typeof Bt=="function")&&Bt.name!==void 0&&Bt.message!==void 0?Bt.toString():Le(Bt)},null)}([]);typeof console<"u"&&typeof console.warn<"u"&&(x=function($e){console.warn($e)},s.isNode&&process.stderr.isTTY?x=function($e,Ue){var ct=Ue?"\x1B[33m":"\x1B[31m";console.warn(ct+$e+`\x1B[0m
`)}:!s.isNode&&typeof new Error().stack=="string"&&(x=function($e,Ue){console.warn("%c"+$e,Ue?"color: darkorange":"color: red")}));var $t={warnings:D,longStackTraces:!1,cancellation:!1,monitoring:!1,asyncHooks:!1};return j&&e.longStackTraces(),{asyncHooks:function(){return $t.asyncHooks},longStackTraces:function(){return $t.longStackTraces},warnings:function(){return $t.warnings},cancellation:function(){return $t.cancellation},monitoring:function(){return $t.monitoring},propagateFromFunction:function(){return ge},boundValueFunction:function(){return V},checkForgottenReturns:$,setBounds:Or,warn:S,deprecated:ke,CapturedTrace:kr,fireDomEvent:M,fireGlobalEvent:K}}});var ule=b((Ann,rYe)=>{"use strict";rYe.exports=function(e){var t=Gi(),r=Mg().keys,n=t.tryCatch,i=t.errorObj;function a(s,o,c){return function(p){var f=c._boundValue();e:for(var d=0;d<s.length;++d){var h=s[d];if(h===Error||h!=null&&h.prototype instanceof Error){if(p instanceof h)return n(o).call(f,p)}else if(typeof h=="function"){var g=n(h).call(f,p);if(g===i)return g;if(g)return n(o).call(f,p)}else if(t.isObject(p)){for(var v=r(h),y=0;y<v.length;++y){var _=v[y];if(h[_]!=p[_])continue e}return n(o).call(f,p)}}return e}}return a}});var iYe=b((Tnn,nYe)=>{"use strict";nYe.exports=function(e,t,r){var n=Gi(),i=e.CancellationError,a=n.errorObj,s=ule()(r);function o(g,v,y){this.promise=g,this.type=v,this.handler=y,this.called=!1,this.cancelPromise=null}o.prototype.isFinallyHandler=function(){return this.type===0};function c(g){this.finallyHandler=g}c.prototype._resultCancelled=function(){p(this.finallyHandler)};function p(g,v){return g.cancelPromise!=null?(arguments.length>1?g.cancelPromise._reject(v):g.cancelPromise._cancel(),g.cancelPromise=null,!0):!1}function f(){return h.call(this,this.promise._target()._settledValue())}function d(g){if(!p(this,g))return a.e=g,a}function h(g){var v=this.promise,y=this.handler;if(!this.called){this.called=!0;var _=this.isFinallyHandler()?y.call(v._boundValue()):y.call(v._boundValue(),g);if(_===r)return _;if(_!==void 0){v._setReturnedNonUndefined();var x=t(_,v);if(x instanceof e){if(this.cancelPromise!=null)if(x._isCancelled()){var A=new i("late cancellation observer");return v._attachExtraTrace(A),a.e=A,a}else x.isPending()&&x._attachCancellationCallback(new c(this));return x._then(f,d,void 0,this,void 0)}}}return v.isRejected()?(p(this),a.e=g,a):(p(this),g)}return e.prototype._passThrough=function(g,v,y,_){return typeof g!="function"?this.then():this._then(y,_,void 0,new o(this,v,g),void 0)},e.prototype.lastly=e.prototype.finally=function(g){return this._passThrough(g,0,h,h)},e.prototype.tap=function(g){return this._passThrough(g,1,h)},e.prototype.tapCatch=function(g){var v=arguments.length;if(v===1)return this._passThrough(g,1,void 0,h);var y=new Array(v-1),_=0,x;for(x=0;x<v-1;++x){var A=arguments[x];if(n.isObject(A))y[_++]=A;else return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+n.classString(A)))}y.length=_;var D=arguments[x];return this._passThrough(s(y,D,this),1,void 0,h)},o}});var cle=b((Onn,oYe)=>{"use strict";var aYe=Gi(),Our=aYe.maybeWrapAsError,Dur=I1(),Cur=Dur.OperationalError,sYe=Mg();function Pur(e){return e instanceof Error&&sYe.getPrototypeOf(e)===Error.prototype}var Iur=/^(?:name|message|stack|cause)$/;function Rur(e){var t;if(Pur(e)){t=new Cur(e),t.name=e.name,t.message=e.message,t.stack=e.stack;for(var r=sYe.keys(e),n=0;n<r.length;++n){var i=r[n];Iur.test(i)||(t[i]=e[i])}return t}return aYe.markAsOriginatingFromRejection(e),e}function Fur(e,t){return function(r,n){if(e!==null){if(r){var i=Rur(Our(r));e._attachExtraTrace(i),e._reject(i)}else if(!t)e._fulfill(n);else{for(var a=arguments.length,s=new Array(Math.max(a-1,0)),o=1;o<a;++o)s[o-1]=arguments[o];e._fulfill(s)}e=null}}}oYe.exports=Fur});var cYe=b((Dnn,uYe)=>{"use strict";uYe.exports=function(e,t,r,n,i){var a=Gi(),s=a.tryCatch;e.method=function(o){if(typeof o!="function")throw new e.TypeError("expecting a function but got "+a.classString(o));return function(){var c=new e(t);c._captureStackTrace(),c._pushContext();var p=s(o).apply(this,arguments),f=c._popContext();return i.checkForgottenReturns(p,f,"Promise.method",c),c._resolveFromSyncValue(p),c}},e.attempt=e.try=function(o){if(typeof o!="function")return n("expecting a function but got "+a.classString(o));var c=new e(t);c._captureStackTrace(),c._pushContext();var p;if(arguments.length>1){i.deprecated("calling Promise.try with more than 1 argument");var f=arguments[1],d=arguments[2];p=a.isArray(f)?s(o).apply(d,f):s(o).call(d,f)}else p=s(o)();var h=c._popContext();return i.checkForgottenReturns(p,h,"Promise.try",c),c._resolveFromSyncValue(p),c},e.prototype._resolveFromSyncValue=function(o){o===a.errorObj?this._rejectCallback(o.e,!1):this._resolveCallback(o,!0)}}});var pYe=b((Cnn,lYe)=>{"use strict";lYe.exports=function(e,t,r,n){var i=!1,a=function(p,f){this._reject(f)},s=function(p,f){f.promiseRejectionQueued=!0,f.bindingPromise._then(a,a,null,this,p)},o=function(p,f){this._bitField&50397184||this._resolveCallback(f.target)},c=function(p,f){f.promiseRejectionQueued||this._reject(p)};e.prototype.bind=function(p){i||(i=!0,e.prototype._propagateFrom=n.propagateFromFunction(),e.prototype._boundValue=n.boundValueFunction());var f=r(p),d=new e(t);d._propagateFrom(this,1);var h=this._target();if(d._setBoundTo(f),f instanceof e){var g={promiseRejectionQueued:!1,promise:d,target:h,bindingPromise:f};h._then(t,s,void 0,d,g),f._then(o,c,void 0,d,g),d._setOnCancel(f)}else d._resolveCallback(h);return d},e.prototype._setBoundTo=function(p){p!==void 0?(this._bitField=this._bitField|2097152,this._boundTo=p):this._bitField=this._bitField&-2097153},e.prototype._isBound=function(){return(this._bitField&2097152)===2097152},e.bind=function(p,f){return e.resolve(f).bind(p)}}});var dYe=b((Pnn,fYe)=>{"use strict";fYe.exports=function(e,t,r,n){var i=Gi(),a=i.tryCatch,s=i.errorObj,o=e._async;e.prototype.break=e.prototype.cancel=function(){if(!n.cancellation())return this._warn("cancellation is disabled");for(var c=this,p=c;c._isCancellable();){if(!c._cancelBy(p)){p._isFollowing()?p._followee().cancel():p._cancelBranched();break}var f=c._cancellationParent;if(f==null||!f._isCancellable()){c._isFollowing()?c._followee().cancel():c._cancelBranched();break}else c._isFollowing()&&c._followee().cancel(),c._setWillBeCancelled(),p=c,c=f}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return this._branchesRemainingToCancel===void 0||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(c){return c===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),o.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(c,p){if(i.isArray(c))for(var f=0;f<c.length;++f)this._doInvokeOnCancel(c[f],p);else if(c!==void 0)if(typeof c=="function"){if(!p){var d=a(c).call(this._boundValue());d===s&&(this._attachExtraTrace(d.e),o.throwLater(d.e))}}else c._resultCancelled(this)},e.prototype._invokeOnCancel=function(){var c=this._onCancel();this._unsetOnCancel(),o.invoke(this._doInvokeOnCancel,this,c)},e.prototype._invokeInternalOnCancel=function(){this._isCancellable()&&(this._doInvokeOnCancel(this._onCancel(),!0),this._unsetOnCancel())},e.prototype._resultCancelled=function(){this.cancel()}}});var mYe=b((Inn,hYe)=>{"use strict";hYe.exports=function(e){function t(){return this.value}function r(){throw this.reason}e.prototype.return=e.prototype.thenReturn=function(n){return n instanceof e&&n.suppressUnhandledRejections(),this._then(t,void 0,void 0,{value:n},void 0)},e.prototype.throw=e.prototype.thenThrow=function(n){return this._then(r,void 0,void 0,{reason:n},void 0)},e.prototype.catchThrow=function(n){if(arguments.length<=1)return this._then(void 0,r,void 0,{reason:n},void 0);var i=arguments[1],a=function(){throw i};return this.caught(n,a)},e.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof e&&n.suppressUnhandledRejections(),this._then(void 0,t,void 0,{value:n},void 0);var i=arguments[1];i instanceof e&&i.suppressUnhandledRejections();var a=function(){return i};return this.caught(n,a)}}});var vYe=b((Rnn,gYe)=>{"use strict";gYe.exports=function(e){function t(c){c!==void 0?(c=c._target(),this._bitField=c._bitField,this._settledValueField=c._isFateSealed()?c._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}t.prototype._settledValue=function(){return this._settledValueField};var r=t.prototype.value=function(){if(!this.isFulfilled())throw new TypeError(`cannot get fulfillment value of a non-fulfilled promise

    See http://goo.gl/MqrFmX
`);return this._settledValue()},n=t.prototype.error=t.prototype.reason=function(){if(!this.isRejected())throw new TypeError(`cannot get rejection reason of a non-rejected promise

    See http://goo.gl/MqrFmX
`);return this._settledValue()},i=t.prototype.isFulfilled=function(){return(this._bitField&33554432)!==0},a=t.prototype.isRejected=function(){return(this._bitField&16777216)!==0},s=t.prototype.isPending=function(){return(this._bitField&50397184)===0},o=t.prototype.isResolved=function(){return(this._bitField&50331648)!==0};t.prototype.isCancelled=function(){return(this._bitField&8454144)!==0},e.prototype.__isCancelled=function(){return(this._bitField&65536)===65536},e.prototype._isCancelled=function(){return this._target().__isCancelled()},e.prototype.isCancelled=function(){return(this._target()._bitField&8454144)!==0},e.prototype.isPending=function(){return s.call(this._target())},e.prototype.isRejected=function(){return a.call(this._target())},e.prototype.isFulfilled=function(){return i.call(this._target())},e.prototype.isResolved=function(){return o.call(this._target())},e.prototype.value=function(){return r.call(this._target())},e.prototype.reason=function(){var c=this._target();return c._unsetRejectionIsUnhandled(),n.call(c)},e.prototype._value=function(){return this._settledValue()},e.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},e.PromiseInspection=t}});var bYe=b((Fnn,yYe)=>{"use strict";yYe.exports=function(e,t,r,n,i){var a=Gi(),s=a.canEvaluate,o=a.tryCatch,c=a.errorObj,p;if(s){for(var f=function(x){return new Function("value","holder",`                             
            'use strict';                                                    
            holder.pIndex = value;                                           
            holder.checkFulfillment(this);                                   
            `.replace(/Index/g,x))},d=function(x){return new Function("promise","holder",`                           
            'use strict';                                                    
            holder.pIndex = promise;                                         
            `.replace(/Index/g,x))},h=function(x){for(var A=new Array(x),D=0;D<A.length;++D)A[D]="this.p"+(D+1);var j=A.join(" = ")+" = null;",H=`var promise;
`+A.map(function(M){return`                                                         
                promise = `+M+`;                                      
                if (promise instanceof Promise) {                            
                    promise.cancel();                                        
                }                                                            
            `}).join(`
`),F=A.join(", "),z="Holder$"+x,P=`return function(tryCatch, errorObj, Promise, async) {    
            'use strict';                                                    
            function [TheName](fn) {                                         
                [TheProperties]                                              
                this.fn = fn;                                                
                this.asyncNeeded = true;                                     
                this.now = 0;                                                
            }                                                                
                                                                             
            [TheName].prototype._callFunction = function(promise) {          
                promise._pushContext();                                      
                var ret = tryCatch(this.fn)([ThePassedArguments]);           
                promise._popContext();                                       
                if (ret === errorObj) {                                      
                    promise._rejectCallback(ret.e, false);                   
                } else {                                                     
                    promise._resolveCallback(ret);                           
                }                                                            
            };                                                               
                                                                             
            [TheName].prototype.checkFulfillment = function(promise) {       
                var now = ++this.now;                                        
                if (now === [TheTotal]) {                                    
                    if (this.asyncNeeded) {                                  
                        async.invoke(this._callFunction, this, promise);     
                    } else {                                                 
                        this._callFunction(promise);                         
                    }                                                        
                                                                             
                }                                                            
            };                                                               
                                                                             
            [TheName].prototype._resultCancelled = function() {              
                [CancellationCode]                                           
            };                                                               
                                                                             
            return [TheName];                                                
        }(tryCatch, errorObj, Promise, async);                               
        `;return P=P.replace(/\[TheName\]/g,z).replace(/\[TheTotal\]/g,x).replace(/\[ThePassedArguments\]/g,F).replace(/\[TheProperties\]/g,j).replace(/\[CancellationCode\]/g,H),new Function("tryCatch","errorObj","Promise","async",P)(o,c,e,i)},g=[],v=[],y=[],_=0;_<8;++_)g.push(h(_+1)),v.push(f(_+1)),y.push(d(_+1));p=function(x){this._reject(x)}}e.join=function(){var x=arguments.length-1,A;if(x>0&&typeof arguments[x]=="function"&&(A=arguments[x],x<=8&&s)){var U=new e(n);U._captureStackTrace();for(var D=g[x-1],j=new D(A),H=v,F=0;F<x;++F){var z=r(arguments[F],U);if(z instanceof e){z=z._target();var P=z._bitField;P&50397184?P&33554432?H[F].call(U,z._value(),j):P&16777216?U._reject(z._reason()):U._cancel():(z._then(H[F],p,void 0,U,j),y[F](z,j),j.asyncNeeded=!1)}else H[F].call(U,z,j)}if(!U._isFateSealed()){if(j.asyncNeeded){var M=e._getContext();j.fn=a.contextBind(M,j.fn)}U._setAsyncGuaranteed(),U._setOnCancel(j)}return U}for(var K=arguments.length,L=new Array(K),ve=0;ve<K;++ve)L[ve]=arguments[ve];A&&L.pop();var U=new t(L).promise();return A!==void 0?U.spread(A):U}}});var _Ye=b((jnn,wYe)=>{"use strict";var lle=Object.create;lle&&(ple=lle(null),fle=lle(null),ple[" size"]=fle[" size"]=0);var ple,fle;wYe.exports=function(e){var t=Gi(),r=t.canEvaluate,n=t.isIdentifier,i,a,s=function(g){return new Function("ensureMethod",`                                    
        return function(obj) {                                               
            'use strict'                                                     
            var len = this.length;                                           
            ensureMethod(obj, 'methodName');                                 
            switch(len) {                                                    
                case 1: return obj.methodName(this[0]);                      
                case 2: return obj.methodName(this[0], this[1]);             
                case 3: return obj.methodName(this[0], this[1], this[2]);    
                case 0: return obj.methodName();                             
                default:                                                     
                    return obj.methodName.apply(obj, this);                  
            }                                                                
        };                                                                   
        `.replace(/methodName/g,g))(p)},o=function(g){return new Function("obj",`                                             
        'use strict';                                                        
        return obj.propertyName;                                             
        `.replace("propertyName",g))},c=function(g,v,y){var _=y[g];if(typeof _!="function"){if(!n(g))return null;if(_=v(g),y[g]=_,y[" size"]++,y[" size"]>512){for(var x=Object.keys(y),A=0;A<256;++A)delete y[x[A]];y[" size"]=x.length-256}}return _};i=function(g){return c(g,s,ple)},a=function(g){return c(g,o,fle)};function p(g,v){var y;if(g!=null&&(y=g[v]),typeof y!="function"){var _="Object "+t.classString(g)+" has no method '"+t.toString(v)+"'";throw new e.TypeError(_)}return y}function f(g){var v=this.pop(),y=p(g,v);return y.apply(g,this)}e.prototype.call=function(g){for(var v=arguments.length,y=new Array(Math.max(v-1,0)),_=1;_<v;++_)y[_-1]=arguments[_];if(r){var x=i(g);if(x!==null)return this._then(x,void 0,void 0,y,void 0)}return y.push(g),this._then(f,void 0,void 0,y,void 0)};function d(g){return g[this]}function h(g){var v=+this;return v<0&&(v=Math.max(0,v+g.length)),g[v]}e.prototype.get=function(g){var v=typeof g=="number",y;if(v)y=h;else if(r){var _=a(g);y=_!==null?_:d}else y=d;return this._then(y,void 0,void 0,g,void 0)}}});var EYe=b((Nnn,xYe)=>{"use strict";xYe.exports=function(e,t,r,n,i,a){var s=I1(),o=s.TypeError,c=Gi(),p=c.errorObj,f=c.tryCatch,d=[];function h(v,y,_){for(var x=0;x<y.length;++x){_._pushContext();var A=f(y[x])(v);if(_._popContext(),A===p){_._pushContext();var D=e.reject(p.e);return _._popContext(),D}var j=n(A,_);if(j instanceof e)return j}return null}function g(v,y,_,x){if(a.cancellation()){var A=new e(r),D=this._finallyPromise=new e(r);this._promise=A.lastly(function(){return D}),A._captureStackTrace(),A._setOnCancel(this)}else{var j=this._promise=new e(r);j._captureStackTrace()}this._stack=x,this._generatorFunction=v,this._receiver=y,this._generator=void 0,this._yieldHandlers=typeof _=="function"?[_].concat(d):d,this._yieldedPromise=null,this._cancellationPhase=!1}c.inherits(g,i),g.prototype._isResolved=function(){return this._promise===null},g.prototype._cleanup=function(){this._promise=this._generator=null,a.cancellation()&&this._finallyPromise!==null&&(this._finallyPromise._fulfill(),this._finallyPromise=null)},g.prototype._promiseCancelled=function(){if(!this._isResolved()){var v=typeof this._generator.return<"u",y;if(v)this._promise._pushContext(),y=f(this._generator.return).call(this._generator,void 0),this._promise._popContext();else{var _=new e.CancellationError("generator .return() sentinel");e.coroutine.returnSentinel=_,this._promise._attachExtraTrace(_),this._promise._pushContext(),y=f(this._generator.throw).call(this._generator,_),this._promise._popContext()}this._cancellationPhase=!0,this._yieldedPromise=null,this._continue(y)}},g.prototype._promiseFulfilled=function(v){this._yieldedPromise=null,this._promise._pushContext();var y=f(this._generator.next).call(this._generator,v);this._promise._popContext(),this._continue(y)},g.prototype._promiseRejected=function(v){this._yieldedPromise=null,this._promise._attachExtraTrace(v),this._promise._pushContext();var y=f(this._generator.throw).call(this._generator,v);this._promise._popContext(),this._continue(y)},g.prototype._resultCancelled=function(){if(this._yieldedPromise instanceof e){var v=this._yieldedPromise;this._yieldedPromise=null,v.cancel()}},g.prototype.promise=function(){return this._promise},g.prototype._run=function(){this._generator=this._generatorFunction.call(this._receiver),this._receiver=this._generatorFunction=void 0,this._promiseFulfilled(void 0)},g.prototype._continue=function(v){var y=this._promise;if(v===p)return this._cleanup(),this._cancellationPhase?y.cancel():y._rejectCallback(v.e,!1);var _=v.value;if(v.done===!0)return this._cleanup(),this._cancellationPhase?y.cancel():y._resolveCallback(_);var x=n(_,this._promise);if(!(x instanceof e)&&(x=h(x,this._yieldHandlers,this._promise),x===null)){this._promiseRejected(new o(`A value %s was yielded that could not be treated as a promise

    See http://goo.gl/MqrFmX

`.replace("%s",String(_))+`From coroutine:
`+this._stack.split(`
`).slice(1,-7).join(`
`)));return}x=x._target();var A=x._bitField;A&50397184?A&33554432?e._async.invoke(this._promiseFulfilled,this,x._value()):A&16777216?e._async.invoke(this._promiseRejected,this,x._reason()):this._promiseCancelled():(this._yieldedPromise=x,x._proxy(this,null))},e.coroutine=function(v,y){if(typeof v!="function")throw new o(`generatorFunction must be a function

    See http://goo.gl/MqrFmX
`);var _=Object(y).yieldHandler,x=g,A=new Error().stack;return function(){var D=v.apply(this,arguments),j=new x(void 0,void 0,_,A),H=j.promise();return j._generator=D,j._promiseFulfilled(void 0),H}},e.coroutine.addYieldHandler=function(v){if(typeof v!="function")throw new o("expecting a function but got "+c.classString(v));d.push(v)},e.spawn=function(v){if(a.deprecated("Promise.spawn()","Promise.coroutine()"),typeof v!="function")return t(`generatorFunction must be a function

    See http://goo.gl/MqrFmX
`);var y=new g(v,this),_=y.promise();return y._run(e.spawn),_}}});var kYe=b((qnn,SYe)=>{"use strict";SYe.exports=function(e,t,r,n,i,a){var s=Gi(),o=s.tryCatch,c=s.errorObj,p=e._async;function f(h,g,v,y){this.constructor$(h),this._promise._captureStackTrace();var _=e._getContext();if(this._callback=s.contextBind(_,g),this._preservedValues=y===i?new Array(this.length()):null,this._limit=v,this._inFlight=0,this._queue=[],p.invoke(this._asyncInit,this,void 0),s.isArray(h))for(var x=0;x<h.length;++x){var A=h[x];A instanceof e&&A.suppressUnhandledRejections()}}s.inherits(f,t),f.prototype._asyncInit=function(){this._init$(void 0,-2)},f.prototype._init=function(){},f.prototype._promiseFulfilled=function(h,g){var v=this._values,y=this.length(),_=this._preservedValues,x=this._limit;if(g<0){if(g=g*-1-1,v[g]=h,x>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(x>=1&&this._inFlight>=x)return v[g]=h,this._queue.push(g),!1;_!==null&&(_[g]=h);var A=this._promise,D=this._callback,j=A._boundValue();A._pushContext();var H=o(D).call(j,h,g,y),F=A._popContext();if(a.checkForgottenReturns(H,F,_!==null?"Promise.filter":"Promise.map",A),H===c)return this._reject(H.e),!0;var z=n(H,this._promise);if(z instanceof e){z=z._target();var P=z._bitField;if(P&50397184)if(P&33554432)H=z._value();else return P&16777216?(this._reject(z._reason()),!0):(this._cancel(),!0);else return x>=1&&this._inFlight++,v[g]=z,z._proxy(this,(g+1)*-1),!1}v[g]=H}var M=++this._totalResolved;return M>=y?(_!==null?this._filter(v,_):this._resolve(v),!0):!1},f.prototype._drainQueue=function(){for(var h=this._queue,g=this._limit,v=this._values;h.length>0&&this._inFlight<g;){if(this._isResolved())return;var y=h.pop();this._promiseFulfilled(v[y],y)}},f.prototype._filter=function(h,g){for(var v=g.length,y=new Array(v),_=0,x=0;x<v;++x)h[x]&&(y[_++]=g[x]);y.length=_,this._resolve(y)},f.prototype.preservedValues=function(){return this._preservedValues};function d(h,g,v,y){if(typeof g!="function")return r("expecting a function but got "+s.classString(g));var _=0;if(v!==void 0)if(typeof v=="object"&&v!==null){if(typeof v.concurrency!="number")return e.reject(new TypeError("'concurrency' must be a number but it is "+s.classString(v.concurrency)));_=v.concurrency}else return e.reject(new TypeError("options argument must be an object but it is "+s.classString(v)));return _=typeof _=="number"&&isFinite(_)&&_>=1?_:0,new f(h,g,_,y).promise()}e.prototype.map=function(h,g){return d(this,h,g,null)},e.map=function(h,g,v,y){return d(h,g,v,y)}}});var TYe=b((Lnn,AYe)=>{"use strict";AYe.exports=function(e){var t=Gi(),r=e._async,n=t.tryCatch,i=t.errorObj;function a(c,p){var f=this;if(!t.isArray(c))return s.call(f,c,p);var d=n(p).apply(f._boundValue(),[null].concat(c));d===i&&r.throwLater(d.e)}function s(c,p){var f=this,d=f._boundValue(),h=c===void 0?n(p).call(d,null):n(p).call(d,null,c);h===i&&r.throwLater(h.e)}function o(c,p){var f=this;if(!c){var d=new Error(c+"");d.cause=c,c=d}var h=n(p).call(f._boundValue(),c);h===i&&r.throwLater(h.e)}e.prototype.asCallback=e.prototype.nodeify=function(c,p){if(typeof c=="function"){var f=s;p!==void 0&&Object(p).spread&&(f=a),this._then(f,o,void 0,this,c)}return this}}});var DYe=b(($nn,OYe)=>{"use strict";OYe.exports=function(e,t){var r={},n=Gi(),i=cle(),a=n.withAppended,s=n.maybeWrapAsError,o=n.canEvaluate,c=I1().TypeError,p="Async",f={__isPromisified__:!0},d=["arity","length","name","arguments","caller","callee","prototype","__isPromisified__"],h=new RegExp("^(?:"+d.join("|")+")$"),g=function(U){return n.isIdentifier(U)&&U.charAt(0)!=="_"&&U!=="constructor"};function v(U){return!h.test(U)}function y(U){try{return U.__isPromisified__===!0}catch{return!1}}function _(U,N,re){var ue=n.getDataPropertyOrDefault(U,N+re,f);return ue?y(ue):!1}function x(U,N,re){for(var ue=0;ue<U.length;ue+=2){var Q=U[ue];if(re.test(Q)){for(var ne=Q.replace(re,""),G=0;G<U.length;G+=2)if(U[G]===ne)throw new c(`Cannot promisify an API that has normal methods with '%s'-suffix

    See http://goo.gl/MqrFmX
`.replace("%s",N))}}}function A(U,N,re,ue){for(var Q=n.inheritedDataKeys(U),ne=[],G=0;G<Q.length;++G){var de=Q[G],xe=U[de],ge=ue===g?!0:g(de,xe,U);typeof xe=="function"&&!y(xe)&&!_(U,de,N)&&ue(de,xe,U,ge)&&ne.push(de,xe)}return x(ne,N,re),ne}var D=function(U){return U.replace(/([$])/,"\\$")},j,H=function(U){for(var N=[U],re=Math.max(0,U-1-3),ue=U-1;ue>=re;--ue)N.push(ue);for(var ue=U+1;ue<=3;++ue)N.push(ue);return N},F=function(U){return n.filledRange(U,"_arg","")},z=function(U){return n.filledRange(Math.max(U,3),"_arg","")},P=function(U){return typeof U.length=="number"?Math.max(Math.min(U.length,1024),0):0};j=function(U,N,re,ue,Q,ne){var G=Math.max(0,P(ue)-1),de=H(G),xe=typeof U=="string"||N===r;function ge(R){var $=F(R).join(", "),ke=R>0?", ":"",S;return xe?S=`ret = callback.call(this, {{args}}, nodeback); break;
`:S=N===void 0?`ret = callback({{args}}, nodeback); break;
`:`ret = callback.call(receiver, {{args}}, nodeback); break;
`,S.replace("{{args}}",$).replace(", ",ke)}function V(){for(var R="",$=0;$<de.length;++$)R+="case "+de[$]+":"+ge(de[$]);return R+=`                                                             
        default:                                                             
            var args = new Array(len + 1);                                   
            var i = 0;                                                       
            for (var i = 0; i < len; ++i) {                                  
               args[i] = arguments[i];                                       
            }                                                                
            args[i] = nodeback;                                              
            [CodeForCall]                                                    
            break;                                                           
        `.replace("[CodeForCall]",xe?`ret = callback.apply(this, args);
`:`ret = callback.apply(receiver, args);
`),R}var ce=typeof U=="string"?"this != null ? this['"+U+"'] : fn":"fn",ye=`'use strict';                                                
        var ret = function (Parameters) {                                    
            'use strict';                                                    
            var len = arguments.length;                                      
            var promise = new Promise(INTERNAL);                             
            promise._captureStackTrace();                                    
            var nodeback = nodebackForPromise(promise, `+ne+`);   
            var ret;                                                         
            var callback = tryCatch([GetFunctionCode]);                      
            switch(len) {                                                    
                [CodeForSwitchCase]                                          
            }                                                                
            if (ret === errorObj) {                                          
                promise._rejectCallback(maybeWrapAsError(ret.e), true, true);
            }                                                                
            if (!promise._isFateSealed()) promise._setAsyncGuaranteed();     
            return promise;                                                  
        };                                                                   
        notEnumerableProp(ret, '__isPromisified__', true);                   
        return ret;                                                          
    `.replace("[CodeForSwitchCase]",V()).replace("[GetFunctionCode]",ce);return ye=ye.replace("Parameters",z(G)),new Function("Promise","fn","receiver","withAppended","maybeWrapAsError","nodebackForPromise","tryCatch","errorObj","notEnumerableProp","INTERNAL",ye)(e,ue,N,a,s,i,n.tryCatch,n.errorObj,n.notEnumerableProp,t)};function M(U,N,re,ue,Q,ne){var G=function(){return this}(),de=U;typeof de=="string"&&(U=ue);function xe(){var ge=N;N===r&&(ge=this);var V=new e(t);V._captureStackTrace();var ce=typeof de=="string"&&this!==G?this[de]:U,ye=i(V,ne);try{ce.apply(ge,a(arguments,ye))}catch(R){V._rejectCallback(s(R),!0,!0)}return V._isFateSealed()||V._setAsyncGuaranteed(),V}return n.notEnumerableProp(xe,"__isPromisified__",!0),xe}var K=o?j:M;function L(U,N,re,ue,Q){for(var ne=new RegExp(D(N)+"$"),G=A(U,N,ne,re),de=0,xe=G.length;de<xe;de+=2){var ge=G[de],V=G[de+1],ce=ge+N;if(ue===K)U[ce]=K(ge,r,ge,V,N,Q);else{var ye=ue(V,function(){return K(ge,r,ge,V,N,Q)});n.notEnumerableProp(ye,"__isPromisified__",!0),U[ce]=ye}}return n.toFastProperties(U),U}function ve(U,N,re){return K(U,N,void 0,U,null,re)}e.promisify=function(U,N){if(typeof U!="function")throw new c("expecting a function but got "+n.classString(U));if(y(U))return U;N=Object(N);var re=N.context===void 0?r:N.context,ue=!!N.multiArgs,Q=ve(U,re,ue);return n.copyDescriptors(U,Q,v),Q},e.promisifyAll=function(U,N){if(typeof U!="function"&&typeof U!="object")throw new c(`the target of promisifyAll must be an object or a function

    See http://goo.gl/MqrFmX
`);N=Object(N);var re=!!N.multiArgs,ue=N.suffix;typeof ue!="string"&&(ue=p);var Q=N.filter;typeof Q!="function"&&(Q=g);var ne=N.promisifier;if(typeof ne!="function"&&(ne=K),!n.isIdentifier(ue))throw new RangeError(`suffix must be a valid identifier

    See http://goo.gl/MqrFmX
`);for(var G=n.inheritedDataKeys(U),de=0;de<G.length;++de){var xe=U[G[de]];G[de]!=="constructor"&&n.isClass(xe)&&(L(xe.prototype,ue,Q,ne,re),L(xe,ue,Q,ne,re))}return L(U,ue,Q,ne,re)}}});var PYe=b((Bnn,CYe)=>{"use strict";CYe.exports=function(e,t,r,n){var i=Gi(),a=i.isObject,s=Mg(),o;typeof Map=="function"&&(o=Map);var c=function(){var h=0,g=0;function v(y,_){this[h]=y,this[h+g]=_,h++}return function(_){g=_.size,h=0;var x=new Array(_.size*2);return _.forEach(v,x),x}}(),p=function(h){for(var g=new o,v=h.length/2|0,y=0;y<v;++y){var _=h[v+y],x=h[y];g.set(_,x)}return g};function f(h){var g=!1,v;if(o!==void 0&&h instanceof o)v=c(h),g=!0;else{var y=s.keys(h),_=y.length;v=new Array(_*2);for(var x=0;x<_;++x){var A=y[x];v[x]=h[A],v[x+_]=A}}this.constructor$(v),this._isMap=g,this._init$(void 0,g?-6:-3)}i.inherits(f,t),f.prototype._init=function(){},f.prototype._promiseFulfilled=function(h,g){this._values[g]=h;var v=++this._totalResolved;if(v>=this._length){var y;if(this._isMap)y=p(this._values);else{y={};for(var _=this.length(),x=0,A=this.length();x<A;++x)y[this._values[x+_]]=this._values[x]}return this._resolve(y),!0}return!1},f.prototype.shouldCopyValues=function(){return!1},f.prototype.getActualLength=function(h){return h>>1};function d(h){var g,v=r(h);if(a(v))v instanceof e?g=v._then(e.props,void 0,void 0,void 0,void 0):g=new f(v).promise();else return n(`cannot await properties of a non-object

    See http://goo.gl/MqrFmX
`);return v instanceof e&&g._propagateFrom(v,2),g}e.prototype.props=function(){return d(this)},e.props=function(h){return d(h)}}});var RYe=b((Mnn,IYe)=>{"use strict";IYe.exports=function(e,t,r,n){var i=Gi(),a=function(o){return o.then(function(c){return s(c,o)})};function s(o,c){var p=r(o);if(p instanceof e)return a(p);if(o=i.asArray(o),o===null)return n("expecting an array or an iterable object but got "+i.classString(o));var f=new e(t);c!==void 0&&f._propagateFrom(c,3);for(var d=f._fulfill,h=f._reject,g=0,v=o.length;g<v;++g){var y=o[g];y===void 0&&!(g in o)||e.cast(y)._then(d,h,void 0,f,null)}return f}e.race=function(o){return s(o,void 0)},e.prototype.race=function(){return s(this,void 0)}}});var jYe=b((Unn,FYe)=>{"use strict";FYe.exports=function(e,t,r,n,i,a){var s=Gi(),o=s.tryCatch;function c(g,v,y,_){this.constructor$(g);var x=e._getContext();this._fn=s.contextBind(x,v),y!==void 0&&(y=e.resolve(y),y._attachCancellationCallback(this)),this._initialValue=y,this._currentCancellable=null,_===i?this._eachValues=Array(this._length):_===0?this._eachValues=null:this._eachValues=void 0,this._promise._captureStackTrace(),this._init$(void 0,-5)}s.inherits(c,t),c.prototype._gotAccum=function(g){this._eachValues!==void 0&&this._eachValues!==null&&g!==i&&this._eachValues.push(g)},c.prototype._eachComplete=function(g){return this._eachValues!==null&&this._eachValues.push(g),this._eachValues},c.prototype._init=function(){},c.prototype._resolveEmptyArray=function(){this._resolve(this._eachValues!==void 0?this._eachValues:this._initialValue)},c.prototype.shouldCopyValues=function(){return!1},c.prototype._resolve=function(g){this._promise._resolveCallback(g),this._values=null},c.prototype._resultCancelled=function(g){if(g===this._initialValue)return this._cancel();this._isResolved()||(this._resultCancelled$(),this._currentCancellable instanceof e&&this._currentCancellable.cancel(),this._initialValue instanceof e&&this._initialValue.cancel())},c.prototype._iterate=function(g){this._values=g;var v,y,_=g.length;this._initialValue!==void 0?(v=this._initialValue,y=0):(v=e.resolve(g[0]),y=1),this._currentCancellable=v;for(var x=y;x<_;++x){var A=g[x];A instanceof e&&A.suppressUnhandledRejections()}if(!v.isRejected())for(;y<_;++y){var D={accum:null,value:g[y],index:y,length:_,array:this};v=v._then(d,void 0,void 0,D,void 0),y&127||v._setNoAsyncGuarantee()}this._eachValues!==void 0&&(v=v._then(this._eachComplete,void 0,void 0,this,void 0)),v._then(p,p,void 0,v,this)},e.prototype.reduce=function(g,v){return f(this,g,v,null)},e.reduce=function(g,v,y,_){return f(g,v,y,_)};function p(g,v){this.isFulfilled()?v._resolve(g):v._reject(g)}function f(g,v,y,_){if(typeof v!="function")return r("expecting a function but got "+s.classString(v));var x=new c(g,v,y,_);return x.promise()}function d(g){this.accum=g,this.array._gotAccum(g);var v=n(this.value,this.array._promise);return v instanceof e?(this.array._currentCancellable=v,v._then(h,void 0,void 0,this,void 0)):h.call(this,v)}function h(g){var v=this.array,y=v._promise,_=o(v._fn);y._pushContext();var x;v._eachValues!==void 0?x=_.call(y._boundValue(),g,this.index,this.length):x=_.call(y._boundValue(),this.accum,g,this.index,this.length),x instanceof e&&(v._currentCancellable=x);var A=y._popContext();return a.checkForgottenReturns(x,A,v._eachValues!==void 0?"Promise.each":"Promise.reduce",y),x}}});var qYe=b((znn,NYe)=>{"use strict";NYe.exports=function(e,t,r){var n=e.PromiseInspection,i=Gi();function a(s){this.constructor$(s)}i.inherits(a,t),a.prototype._promiseResolved=function(s,o){this._values[s]=o;var c=++this._totalResolved;return c>=this._length?(this._resolve(this._values),!0):!1},a.prototype._promiseFulfilled=function(s,o){var c=new n;return c._bitField=33554432,c._settledValueField=s,this._promiseResolved(o,c)},a.prototype._promiseRejected=function(s,o){var c=new n;return c._bitField=16777216,c._settledValueField=s,this._promiseResolved(o,c)},e.settle=function(s){return r.deprecated(".settle()",".reflect()"),new a(s).promise()},e.allSettled=function(s){return new a(s).promise()},e.prototype.settle=function(){return e.settle(this)}}});var $Ye=b((Hnn,LYe)=>{"use strict";LYe.exports=function(e,t,r){var n=Gi(),i=I1().RangeError,a=I1().AggregateError,s=n.isArray,o={};function c(f){this.constructor$(f),this._howMany=0,this._unwrap=!1,this._initialized=!1}n.inherits(c,t),c.prototype._init=function(){if(this._initialized){if(this._howMany===0){this._resolve([]);return}this._init$(void 0,-5);var f=s(this._values);!this._isResolved()&&f&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},c.prototype.init=function(){this._initialized=!0,this._init()},c.prototype.setUnwrap=function(){this._unwrap=!0},c.prototype.howMany=function(){return this._howMany},c.prototype.setHowMany=function(f){this._howMany=f},c.prototype._promiseFulfilled=function(f){return this._addFulfilled(f),this._fulfilled()===this.howMany()?(this._values.length=this.howMany(),this.howMany()===1&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0):!1},c.prototype._promiseRejected=function(f){return this._addRejected(f),this._checkOutcome()},c.prototype._promiseCancelled=function(){return this._values instanceof e||this._values==null?this._cancel():(this._addRejected(o),this._checkOutcome())},c.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var f=new a,d=this.length();d<this._values.length;++d)this._values[d]!==o&&f.push(this._values[d]);return f.length>0?this._reject(f):this._cancel(),!0}return!1},c.prototype._fulfilled=function(){return this._totalResolved},c.prototype._rejected=function(){return this._values.length-this.length()},c.prototype._addRejected=function(f){this._values.push(f)},c.prototype._addFulfilled=function(f){this._values[this._totalResolved++]=f},c.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},c.prototype._getRangeError=function(f){var d="Input array must contain at least "+this._howMany+" items but contains only "+f+" items";return new i(d)},c.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))};function p(f,d){if((d|0)!==d||d<0)return r(`expecting a positive integer

    See http://goo.gl/MqrFmX
`);var h=new c(f),g=h.promise();return h.setHowMany(d),h.init(),g}e.some=function(f,d){return p(f,d)},e.prototype.some=function(f){return p(this,f)},e._SomePromiseArray=c}});var MYe=b((Vnn,BYe)=>{"use strict";BYe.exports=function(e,t,r){var n=Gi(),i=e.TimeoutError;function a(d){this.handle=d}a.prototype._resultCancelled=function(){clearTimeout(this.handle)};var s=function(d){return o(+this).thenReturn(d)},o=e.delay=function(d,h){var g,v;return h!==void 0?(g=e.resolve(h)._then(s,null,null,d,void 0),r.cancellation()&&h instanceof e&&g._setOnCancel(h)):(g=new e(t),v=setTimeout(function(){g._fulfill()},+d),r.cancellation()&&g._setOnCancel(new a(v)),g._captureStackTrace()),g._setAsyncGuaranteed(),g};e.prototype.delay=function(d){return o(d,this)};var c=function(d,h,g){var v;typeof h!="string"?h instanceof Error?v=h:v=new i("operation timed out"):v=new i(h),n.markAsOriginatingFromRejection(v),d._attachExtraTrace(v),d._reject(v),g?.cancel()};function p(d){return clearTimeout(this.handle),d}function f(d){throw clearTimeout(this.handle),d}e.prototype.timeout=function(d,h){d=+d;var g,v,y=new a(setTimeout(function(){g.isPending()&&c(g,h,v)},d));return r.cancellation()?(v=this.then(),g=v._then(p,f,void 0,y,void 0),g._setOnCancel(y)):g=this._then(p,f,void 0,y,void 0),g}}});var zYe=b((Gnn,UYe)=>{"use strict";UYe.exports=function(e,t,r,n,i,a){var s=Gi(),o=I1().TypeError,c=Gi().inherits,p=s.errorObj,f=s.tryCatch,d={};function h(D){setTimeout(function(){throw D},0)}function g(D){var j=r(D);return j!==D&&typeof D._isDisposable=="function"&&typeof D._getDisposer=="function"&&D._isDisposable()&&j._setDisposable(D._getDisposer()),j}function v(D,j){var H=0,F=D.length,z=new e(i);function P(){if(H>=F)return z._fulfill();var M=g(D[H++]);if(M instanceof e&&M._isDisposable()){try{M=r(M._getDisposer().tryDispose(j),D.promise)}catch(K){return h(K)}if(M instanceof e)return M._then(P,h,null,null,null)}P()}return P(),z}function y(D,j,H){this._data=D,this._promise=j,this._context=H}y.prototype.data=function(){return this._data},y.prototype.promise=function(){return this._promise},y.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():d},y.prototype.tryDispose=function(D){var j=this.resource(),H=this._context;H!==void 0&&H._pushContext();var F=j!==d?this.doDispose(j,D):null;return H!==void 0&&H._popContext(),this._promise._unsetDisposable(),this._data=null,F},y.isDisposer=function(D){return D!=null&&typeof D.resource=="function"&&typeof D.tryDispose=="function"};function _(D,j,H){this.constructor$(D,j,H)}c(_,y),_.prototype.doDispose=function(D,j){var H=this.data();return H.call(D,D,j)};function x(D){return y.isDisposer(D)?(this.resources[this.index]._setDisposable(D),D.promise()):D}function A(D){this.length=D,this.promise=null,this[D-1]=null}A.prototype._resultCancelled=function(){for(var D=this.length,j=0;j<D;++j){var H=this[j];H instanceof e&&H.cancel()}},e.using=function(){var D=arguments.length;if(D<2)return t("you must pass at least 2 arguments to Promise.using");var j=arguments[D-1];if(typeof j!="function")return t("expecting a function but got "+s.classString(j));var H,F=!0;D===2&&Array.isArray(arguments[0])?(H=arguments[0],D=H.length,F=!1):(H=arguments,D--);for(var z=new A(D),P=0;P<D;++P){var M=H[P];if(y.isDisposer(M)){var K=M;M=M.promise(),M._setDisposable(K)}else{var L=r(M);L instanceof e&&(M=L._then(x,null,null,{resources:z,index:P},void 0))}z[P]=M}for(var ve=new Array(z.length),P=0;P<ve.length;++P)ve[P]=e.resolve(z[P]).reflect();var U=e.all(ve).then(function(re){for(var ue=0;ue<re.length;++ue){var Q=re[ue];if(Q.isRejected())return p.e=Q.error(),p;if(!Q.isFulfilled()){U.cancel();return}re[ue]=Q.value()}N._pushContext(),j=f(j);var ne=F?j.apply(void 0,re):j(re),G=N._popContext();return a.checkForgottenReturns(ne,G,"Promise.using",N),ne}),N=U.lastly(function(){var re=new e.PromiseInspection(U);return v(z,re)});return z.promise=N,N._setOnCancel(z),N},e.prototype._setDisposable=function(D){this._bitField=this._bitField|131072,this._disposer=D},e.prototype._isDisposable=function(){return(this._bitField&131072)>0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=this._bitField&-131073,this._disposer=void 0},e.prototype.disposer=function(D){if(typeof D=="function")return new _(D,this,n());throw new o}}});var VYe=b((Wnn,HYe)=>{"use strict";HYe.exports=function(e){var t=e._SomePromiseArray;function r(n){var i=new t(n),a=i.promise();return i.setHowMany(1),i.setUnwrap(),i.init(),a}e.any=function(n){return r(n)},e.prototype.any=function(){return r(this)}}});var WYe=b((Knn,GYe)=>{"use strict";GYe.exports=function(e,t){var r=e.reduce,n=e.all;function i(){return n(this)}function a(s,o){return r(s,o,t,t)}e.prototype.each=function(s){return r(this,s,t,0)._then(i,void 0,void 0,this,void 0)},e.prototype.mapSeries=function(s){return r(this,s,t,t)},e.each=function(s,o){return r(s,o,t,0)._then(i,void 0,void 0,s,void 0)},e.mapSeries=a}});var YYe=b((Ynn,KYe)=>{"use strict";KYe.exports=function(e,t){var r=e.map;e.prototype.filter=function(n,i){return r(this,n,i,t)},e.filter=function(n,i,a){return r(n,i,a,t)}}});var JYe=b((Jnn,dle)=>{"use strict";dle.exports=function(){var e=function(){return new A(`circular promise resolution chain

    See http://goo.gl/MqrFmX
`)},t=function(){return new G.PromiseInspection(this._target())},r=function(V){return G.reject(new A(V))};function n(){}var i={},a=Gi();a.setReflectHandler(t);var s=function(){var V=process.domain;return V===void 0?null:V},o=function(){return null},c=function(){return{domain:s(),async:null}},p=a.isNode&&a.nodeSupportsAsyncResource?require("async_hooks").AsyncResource:null,f=function(){return{domain:s(),async:new p("Bluebird::Promise")}},d=a.isNode?c:o;a.notEnumerableProp(G,"_getContext",d);var h=function(){d=f,a.notEnumerableProp(G,"_getContext",f)},g=function(){d=c,a.notEnumerableProp(G,"_getContext",c)},v=Mg(),y=HKe(),_=new y;v.defineProperty(G,"_async",{value:_});var x=I1(),A=G.TypeError=x.TypeError;G.RangeError=x.RangeError;var D=G.CancellationError=x.CancellationError;G.TimeoutError=x.TimeoutError,G.OperationalError=x.OperationalError,G.RejectionError=x.OperationalError,G.AggregateError=x.AggregateError;var j=function(){},H={},F={},z=YKe()(G,j),P=XKe()(G,j,z,r,n),M=ZKe()(G),K=M.create,L=tYe()(G,M,h,g),ve=L.CapturedTrace,U=iYe()(G,z,F),N=ule()(F),re=cle(),ue=a.errorObj,Q=a.tryCatch;function ne(V,ce){if(V==null||V.constructor!==G)throw new A(`the promise constructor cannot be invoked directly

    See http://goo.gl/MqrFmX
`);if(typeof ce!="function")throw new A("expecting a function but got "+a.classString(ce))}function G(V){V!==j&&ne(this,V),this._bitField=0,this._fulfillmentHandler0=void 0,this._rejectionHandler0=void 0,this._promise0=void 0,this._receiver0=void 0,this._resolveFromExecutor(V),this._promiseCreated(),this._fireEvent("promiseCreated",this)}G.prototype.toString=function(){return"[object Promise]"},G.prototype.caught=G.prototype.catch=function(V){var ce=arguments.length;if(ce>1){var ye=new Array(ce-1),R=0,$;for($=0;$<ce-1;++$){var ke=arguments[$];if(a.isObject(ke))ye[R++]=ke;else return r("Catch statement predicate: expecting an object but got "+a.classString(ke))}if(ye.length=R,V=arguments[$],typeof V!="function")throw new A("The last argument to .catch() must be a function, got "+a.toString(V));return this.then(void 0,N(ye,V,this))}return this.then(void 0,V)},G.prototype.reflect=function(){return this._then(t,t,void 0,this,void 0)},G.prototype.then=function(V,ce){if(L.warnings()&&arguments.length>0&&typeof V!="function"&&typeof ce!="function"){var ye=".then() only accepts functions but was passed: "+a.classString(V);arguments.length>1&&(ye+=", "+a.classString(ce)),this._warn(ye)}return this._then(V,ce,void 0,void 0,void 0)},G.prototype.done=function(V,ce){var ye=this._then(V,ce,void 0,void 0,void 0);ye._setIsFinal()},G.prototype.spread=function(V){return typeof V!="function"?r("expecting a function but got "+a.classString(V)):this.all()._then(V,void 0,void 0,H,void 0)},G.prototype.toJSON=function(){var V={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(V.fulfillmentValue=this.value(),V.isFulfilled=!0):this.isRejected()&&(V.rejectionReason=this.reason(),V.isRejected=!0),V},G.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new P(this).promise()},G.prototype.error=function(V){return this.caught(a.originatesFromRejection,V)},G.getNewLibraryCopy=dle.exports,G.is=function(V){return V instanceof G},G.fromNode=G.fromCallback=function(V){var ce=new G(j);ce._captureStackTrace();var ye=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,R=Q(V)(re(ce,ye));return R===ue&&ce._rejectCallback(R.e,!0),ce._isFateSealed()||ce._setAsyncGuaranteed(),ce},G.all=function(V){return new P(V).promise()},G.cast=function(V){var ce=z(V);return ce instanceof G||(ce=new G(j),ce._captureStackTrace(),ce._setFulfilled(),ce._rejectionHandler0=V),ce},G.resolve=G.fulfilled=G.cast,G.reject=G.rejected=function(V){var ce=new G(j);return ce._captureStackTrace(),ce._rejectCallback(V,!0),ce},G.setScheduler=function(V){if(typeof V!="function")throw new A("expecting a function but got "+a.classString(V));return _.setScheduler(V)},G.prototype._then=function(V,ce,ye,R,$){var ke=$!==void 0,S=ke?$:new G(j),I=this._target(),B=I._bitField;ke||(S._propagateFrom(this,3),S._captureStackTrace(),R===void 0&&this._bitField&2097152&&(B&50397184?R=this._boundValue():R=I===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,S));var se=d();if(B&50397184){var ae,me,Se=I._settlePromiseCtx;B&33554432?(me=I._rejectionHandler0,ae=V):B&16777216?(me=I._fulfillmentHandler0,ae=ce,I._unsetRejectionIsUnhandled()):(Se=I._settlePromiseLateCancellationObserver,me=new D("late cancellation observer"),I._attachExtraTrace(me),ae=ce),_.invoke(Se,I,{handler:a.contextBind(se,ae),promise:S,receiver:R,value:me})}else I._addCallbacks(V,ce,S,R,se);return S},G.prototype._length=function(){return this._bitField&65535},G.prototype._isFateSealed=function(){return(this._bitField&117506048)!==0},G.prototype._isFollowing=function(){return(this._bitField&67108864)===67108864},G.prototype._setLength=function(V){this._bitField=this._bitField&-65536|V&65535},G.prototype._setFulfilled=function(){this._bitField=this._bitField|33554432,this._fireEvent("promiseFulfilled",this)},G.prototype._setRejected=function(){this._bitField=this._bitField|16777216,this._fireEvent("promiseRejected",this)},G.prototype._setFollowing=function(){this._bitField=this._bitField|67108864,this._fireEvent("promiseResolved",this)},G.prototype._setIsFinal=function(){this._bitField=this._bitField|4194304},G.prototype._isFinal=function(){return(this._bitField&4194304)>0},G.prototype._unsetCancelled=function(){this._bitField=this._bitField&-65537},G.prototype._setCancelled=function(){this._bitField=this._bitField|65536,this._fireEvent("promiseCancelled",this)},G.prototype._setWillBeCancelled=function(){this._bitField=this._bitField|8388608},G.prototype._setAsyncGuaranteed=function(){if(!_.hasCustomScheduler()){var V=this._bitField;this._bitField=V|(V&536870912)>>2^134217728}},G.prototype._setNoAsyncGuarantee=function(){this._bitField=(this._bitField|536870912)&-134217729},G.prototype._receiverAt=function(V){var ce=V===0?this._receiver0:this[V*4-4+3];if(ce!==i)return ce===void 0&&this._isBound()?this._boundValue():ce},G.prototype._promiseAt=function(V){return this[V*4-4+2]},G.prototype._fulfillmentHandlerAt=function(V){return this[V*4-4+0]},G.prototype._rejectionHandlerAt=function(V){return this[V*4-4+1]},G.prototype._boundValue=function(){},G.prototype._migrateCallback0=function(V){var ce=V._bitField,ye=V._fulfillmentHandler0,R=V._rejectionHandler0,$=V._promise0,ke=V._receiverAt(0);ke===void 0&&(ke=i),this._addCallbacks(ye,R,$,ke,null)},G.prototype._migrateCallbackAt=function(V,ce){var ye=V._fulfillmentHandlerAt(ce),R=V._rejectionHandlerAt(ce),$=V._promiseAt(ce),ke=V._receiverAt(ce);ke===void 0&&(ke=i),this._addCallbacks(ye,R,$,ke,null)},G.prototype._addCallbacks=function(V,ce,ye,R,$){var ke=this._length();if(ke>=65535-4&&(ke=0,this._setLength(0)),ke===0)this._promise0=ye,this._receiver0=R,typeof V=="function"&&(this._fulfillmentHandler0=a.contextBind($,V)),typeof ce=="function"&&(this._rejectionHandler0=a.contextBind($,ce));else{var S=ke*4-4;this[S+2]=ye,this[S+3]=R,typeof V=="function"&&(this[S+0]=a.contextBind($,V)),typeof ce=="function"&&(this[S+1]=a.contextBind($,ce))}return this._setLength(ke+1),ke},G.prototype._proxy=function(V,ce){this._addCallbacks(void 0,void 0,ce,V,null)},G.prototype._resolveCallback=function(V,ce){if(!(this._bitField&117506048)){if(V===this)return this._rejectCallback(e(),!1);var ye=z(V,this);if(!(ye instanceof G))return this._fulfill(V);ce&&this._propagateFrom(ye,2);var R=ye._target();if(R===this){this._reject(e());return}var $=R._bitField;if($&50397184)if($&33554432)this._fulfill(R._value());else if($&16777216)this._reject(R._reason());else{var I=new D("late cancellation observer");R._attachExtraTrace(I),this._reject(I)}else{var ke=this._length();ke>0&&R._migrateCallback0(this);for(var S=1;S<ke;++S)R._migrateCallbackAt(this,S);this._setFollowing(),this._setLength(0),this._setFollowee(ye)}}},G.prototype._rejectCallback=function(V,ce,ye){var R=a.ensureErrorObject(V),$=R===V;if(!$&&!ye&&L.warnings()){var ke="a promise was rejected with a non-error: "+a.classString(V);this._warn(ke,!0)}this._attachExtraTrace(R,ce?$:!1),this._reject(V)},G.prototype._resolveFromExecutor=function(V){if(V!==j){var ce=this;this._captureStackTrace(),this._pushContext();var ye=!0,R=this._execute(V,function($){ce._resolveCallback($)},function($){ce._rejectCallback($,ye)});ye=!1,this._popContext(),R!==void 0&&ce._rejectCallback(R,!0)}},G.prototype._settlePromiseFromHandler=function(V,ce,ye,R){var $=R._bitField;if(!($&65536)){R._pushContext();var ke;ce===H?!ye||typeof ye.length!="number"?(ke=ue,ke.e=new A("cannot .spread() a non-array: "+a.classString(ye))):ke=Q(V).apply(this._boundValue(),ye):ke=Q(V).call(ce,ye);var S=R._popContext();$=R._bitField,!($&65536)&&(ke===F?R._reject(ye):ke===ue?R._rejectCallback(ke.e,!1):(L.checkForgottenReturns(ke,S,"",R,this),R._resolveCallback(ke)))}},G.prototype._target=function(){for(var V=this;V._isFollowing();)V=V._followee();return V},G.prototype._followee=function(){return this._rejectionHandler0},G.prototype._setFollowee=function(V){this._rejectionHandler0=V},G.prototype._settlePromise=function(V,ce,ye,R){var $=V instanceof G,ke=this._bitField,S=(ke&134217728)!==0;ke&65536?($&&V._invokeInternalOnCancel(),ye instanceof U&&ye.isFinallyHandler()?(ye.cancelPromise=V,Q(ce).call(ye,R)===ue&&V._reject(ue.e)):ce===t?V._fulfill(t.call(ye)):ye instanceof n?ye._promiseCancelled(V):$||V instanceof P?V._cancel():ye.cancel()):typeof ce=="function"?$?(S&&V._setAsyncGuaranteed(),this._settlePromiseFromHandler(ce,ye,R,V)):ce.call(ye,R,V):ye instanceof n?ye._isResolved()||(ke&33554432?ye._promiseFulfilled(R,V):ye._promiseRejected(R,V)):$&&(S&&V._setAsyncGuaranteed(),ke&33554432?V._fulfill(R):V._reject(R))},G.prototype._settlePromiseLateCancellationObserver=function(V){var ce=V.handler,ye=V.promise,R=V.receiver,$=V.value;typeof ce=="function"?ye instanceof G?this._settlePromiseFromHandler(ce,R,$,ye):ce.call(R,$,ye):ye instanceof G&&ye._reject($)},G.prototype._settlePromiseCtx=function(V){this._settlePromise(V.promise,V.handler,V.receiver,V.value)},G.prototype._settlePromise0=function(V,ce,ye){var R=this._promise0,$=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(R,V,$,ce)},G.prototype._clearCallbackDataAtIndex=function(V){var ce=V*4-4;this[ce+2]=this[ce+3]=this[ce+0]=this[ce+1]=void 0},G.prototype._fulfill=function(V){var ce=this._bitField;if(!((ce&117506048)>>>16)){if(V===this){var ye=e();return this._attachExtraTrace(ye),this._reject(ye)}this._setFulfilled(),this._rejectionHandler0=V,(ce&65535)>0&&(ce&134217728?this._settlePromises():_.settlePromises(this),this._dereferenceTrace())}},G.prototype._reject=function(V){var ce=this._bitField;if(!((ce&117506048)>>>16)){if(this._setRejected(),this._fulfillmentHandler0=V,this._isFinal())return _.fatalError(V,a.isNode);(ce&65535)>0?_.settlePromises(this):this._ensurePossibleRejectionHandled()}},G.prototype._fulfillPromises=function(V,ce){for(var ye=1;ye<V;ye++){var R=this._fulfillmentHandlerAt(ye),$=this._promiseAt(ye),ke=this._receiverAt(ye);this._clearCallbackDataAtIndex(ye),this._settlePromise($,R,ke,ce)}},G.prototype._rejectPromises=function(V,ce){for(var ye=1;ye<V;ye++){var R=this._rejectionHandlerAt(ye),$=this._promiseAt(ye),ke=this._receiverAt(ye);this._clearCallbackDataAtIndex(ye),this._settlePromise($,R,ke,ce)}},G.prototype._settlePromises=function(){var V=this._bitField,ce=V&65535;if(ce>0){if(V&16842752){var ye=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,ye,V),this._rejectPromises(ce,ye)}else{var R=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,R,V),this._fulfillPromises(ce,R)}this._setLength(0)}this._clearCancellationData()},G.prototype._settledValue=function(){var V=this._bitField;if(V&33554432)return this._rejectionHandler0;if(V&16777216)return this._fulfillmentHandler0},typeof Symbol<"u"&&Symbol.toStringTag&&v.defineProperty(G.prototype,Symbol.toStringTag,{get:function(){return"Object"}});function de(V){this.promise._resolveCallback(V)}function xe(V){this.promise._rejectCallback(V,!1)}G.defer=G.pending=function(){L.deprecated("Promise.defer","new Promise");var V=new G(j);return{promise:V,resolve:de,reject:xe}},a.notEnumerableProp(G,"_makeSelfResolutionError",e),cYe()(G,j,z,r,L),pYe()(G,j,z,L),dYe()(G,P,r,L),mYe()(G),vYe()(G),bYe()(G,P,z,j,_),G.Promise=G,G.version="3.7.2",_Ye()(G),EYe()(G,r,j,z,n,L),kYe()(G,P,r,z,j,L),TYe()(G),DYe()(G,j),PYe()(G,P,z,r),RYe()(G,j,z,r),jYe()(G,P,r,z,j,L),qYe()(G,P,L),$Ye()(G,P,r),MYe()(G,j,L),zYe()(G,r,z,K,j,L),VYe()(G),WYe()(G,j),YYe()(G,j),a.toFastProperties(G),a.toFastProperties(G.prototype);function ge(V){var ce=new G(j);ce._fulfillmentHandler0=V,ce._rejectionHandler0=V,ce._promise0=V,ce._receiver0=V}return ge({a:1}),ge({b:2}),ge({c:3}),ge(1),ge(function(){}),ge(void 0),ge(!1),ge(new G(j)),L.setBounds(y.firstLineError,a.lastLineError),G}});var ZYe=b((Xnn,QYe)=>{"use strict";var XYe;typeof Promise<"u"&&(XYe=Promise);function jur(){try{Promise===gN&&(Promise=XYe)}catch{}return gN}var gN=JYe()();gN.noConflict=jur;QYe.exports=gN});var tJe=b((Qnn,eJe)=>{"use strict";function vN(e,t,r){this.name="RequestError",this.message=String(e),this.cause=e,this.error=e,this.options=t,this.response=r,Error.captureStackTrace&&Error.captureStackTrace(this)}vN.prototype=Object.create(Error.prototype);vN.prototype.constructor=vN;function yN(e,t,r,n){this.name="StatusCodeError",this.statusCode=e,this.message=e+" - "+(JSON&&JSON.stringify?JSON.stringify(t):t),this.error=t,this.options=r,this.response=n,Error.captureStackTrace&&Error.captureStackTrace(this)}yN.prototype=Object.create(Error.prototype);yN.prototype.constructor=yN;function bN(e,t,r){this.name="TransformError",this.message=String(e),this.cause=e,this.error=e,this.options=t,this.response=r,Error.captureStackTrace&&Error.captureStackTrace(this)}bN.prototype=Object.create(Error.prototype);bN.prototype.constructor=bN;eJe.exports={RequestError:vN,StatusCodeError:yN,TransformError:bN}});var nJe=b((Znn,rJe)=>{var Nur=typeof global=="object"&&global&&global.Object===Object&&global;rJe.exports=Nur});var aJe=b((ein,iJe)=>{var qur=nJe(),Lur=typeof self=="object"&&self&&self.Object===Object&&self,$ur=qur||Lur||Function("return this")();iJe.exports=$ur});var hle=b((tin,sJe)=>{var Bur=aJe(),Mur=Bur.Symbol;sJe.exports=Mur});var lJe=b((rin,cJe)=>{var oJe=hle(),uJe=Object.prototype,Uur=uJe.hasOwnProperty,zur=uJe.toString,Ik=oJe?oJe.toStringTag:void 0;function Hur(e){var t=Uur.call(e,Ik),r=e[Ik];try{e[Ik]=void 0;var n=!0}catch{}var i=zur.call(e);return n&&(t?e[Ik]=r:delete e[Ik]),i}cJe.exports=Hur});var fJe=b((nin,pJe)=>{var Vur=Object.prototype,Gur=Vur.toString;function Wur(e){return Gur.call(e)}pJe.exports=Wur});var mle=b((iin,mJe)=>{var dJe=hle(),Kur=lJe(),Yur=fJe(),Jur="[object Null]",Xur="[object Undefined]",hJe=dJe?dJe.toStringTag:void 0;function Qur(e){return e==null?e===void 0?Xur:Jur:hJe&&hJe in Object(e)?Kur(e):Yur(e)}mJe.exports=Qur});var vJe=b((ain,gJe)=>{function Zur(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}gJe.exports=Zur});var gle=b((sin,yJe)=>{var ecr=mle(),tcr=vJe(),rcr="[object AsyncFunction]",ncr="[object Function]",icr="[object GeneratorFunction]",acr="[object Proxy]";function scr(e){if(!tcr(e))return!1;var t=ecr(e);return t==ncr||t==icr||t==rcr||t==acr}yJe.exports=scr});var wN=b((oin,bJe)=>{function ocr(e){return e!=null&&typeof e=="object"}bJe.exports=ocr});var vle=b((uin,wJe)=>{var ucr=Array.isArray;wJe.exports=ucr});var xJe=b((cin,_Je)=>{var ccr=mle(),lcr=vle(),pcr=wN(),fcr="[object String]";function dcr(e){return typeof e=="string"||!lcr(e)&&pcr(e)&&ccr(e)==fcr}_Je.exports=dcr});var SJe=b((lin,EJe)=>{function hcr(e){return e===void 0}EJe.exports=hcr});var AJe=b((pin,kJe)=>{"use strict";var Rk=tJe(),Fk=gle(),mcr=wN(),gcr=xJe(),vcr=SJe();kJe.exports=function(e){var t="Please verify options";if(!mcr(e))throw new TypeError(t);if(!Fk(e.PromiseImpl))throw new TypeError(t+".PromiseImpl");if(!vcr(e.constructorMixin)&&!Fk(e.constructorMixin))throw new TypeError(t+".PromiseImpl");var r=e.PromiseImpl,n=e.constructorMixin,i={};return i.init=function(a){var s=this;s._rp_promise=new r(function(o,c){s._rp_resolve=o,s._rp_reject=c,n&&n.apply(s,arguments)}),s._rp_callbackOrig=a.callback,a.callback=s.callback=function(c,p,f){i.callback.call(s,c,p,f)},gcr(a.method)&&(a.method=a.method.toUpperCase()),a.transform=a.transform||i.defaultTransformations[a.method],s._rp_options=a,s._rp_options.simple=a.simple!==!1,s._rp_options.resolveWithFullResponse=a.resolveWithFullResponse===!0,s._rp_options.transform2xxOnly=a.transform2xxOnly===!0},i.defaultTransformations={HEAD:function(a,s,o){return o?s:s.headers}},i.callback=function(a,s,o){var c=this,p=!1,f=null;if(Fk(c._rp_callbackOrig))try{c._rp_callbackOrig.apply(c,arguments)}catch(h){p=!0,f=h}var d=!a&&/^2/.test(""+s.statusCode);if(a?c._rp_reject(new Rk.RequestError(a,c._rp_options,s)):c._rp_options.simple&&!d?Fk(c._rp_options.transform)&&c._rp_options.transform2xxOnly===!1?new r(function(h){h(c._rp_options.transform(o,s,c._rp_options.resolveWithFullResponse))}).then(function(h){c._rp_reject(new Rk.StatusCodeError(s.statusCode,o,c._rp_options,h))}).catch(function(h){c._rp_reject(new Rk.TransformError(h,c._rp_options,s))}):c._rp_reject(new Rk.StatusCodeError(s.statusCode,o,c._rp_options,s)):Fk(c._rp_options.transform)&&(d||c._rp_options.transform2xxOnly===!1)?new r(function(h){h(c._rp_options.transform(o,s,c._rp_options.resolveWithFullResponse))}).then(function(h){c._rp_resolve(h)}).catch(function(h){c._rp_reject(new Rk.TransformError(h,c._rp_options,s))}):c._rp_options.resolveWithFullResponse?c._rp_resolve(s):c._rp_resolve(o),p)throw f},i.exposePromiseMethod=function(a,s,o,c,p){if(p=p||c,p in a)throw new Error('Unable to expose method "'+p+'"');a[p]=function(){var d=s||this;return d[o][c].apply(d[o],arguments)}},i.exposePromise=function(a,s,o,c){if(c=c||"promise",c in a)throw new Error('Unable to expose method "'+c+'"');a[c]=function(){var f=s||this;return f[o]}},i}});var DJe=b((fin,OJe)=>{"use strict";var ycr=AJe(),bcr=vle(),wcr=gle(),TJe=wN();OJe.exports=function(e){var t="Please verify options";if(!TJe(e))throw new TypeError(t);if(!wcr(e.request))throw new TypeError(t+".request");if(!bcr(e.expose)||e.expose.length===0)throw new TypeError(t+".expose");var r=ycr({PromiseImpl:e.PromiseImpl,constructorMixin:e.constructorMixin}),n=e.request.Request.prototype.init;e.request.Request.prototype.init=function(c){return TJe(c)&&!this._callback&&!this._rp_promise&&r.init.call(this,c),n.apply(this,arguments)};for(var i=!1,a=0;a<e.expose.length;a+=1){var s=e.expose[a];r[s==="promise"?"exposePromise":"exposePromiseMethod"](e.request.Request.prototype,null,"_rp_promise",s),s==="then"&&(i=!0)}if(!i)throw new Error('Please expose "then"')}});var PJe=b((din,CJe)=>{"use strict";var _cr=/\.node$/;function wle(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r)}function yle(e,t){return wle(t,function(r){e[r]=t[r]}),e}function ble(e){wle(e,function(t){_cr.test(t)||delete e[t]})}CJe.exports=function(e,t,r,n){var i=yle({},e);if(ble(e),r){var a=n.children?n.children.slice():!1;r();var s=[];wle(e,function(d){s.push(d)}),ble(e),n.children&&(n.children=a);for(var o=0;o<s.length;o+=1)i[s[o]]&&(e[s[o]]=i[s[o]])}var c=t(),p=r?yle({},e):!1;if(ble(e),r)for(var f=0;f<s.length;f+=1)p[s[f]]&&(e[s[f]]=p[s[f]]);return yle(e,i),c}});var v3=b((hin,$Je)=>{"use strict";var _N=Object.prototype.hasOwnProperty,LJe=Object.prototype.toString,IJe=Object.defineProperty,RJe=Object.getOwnPropertyDescriptor,FJe=function(t){return typeof Array.isArray=="function"?Array.isArray(t):LJe.call(t)==="[object Array]"},jJe=function(t){if(!t||LJe.call(t)!=="[object Object]")return!1;var r=_N.call(t,"constructor"),n=t.constructor&&t.constructor.prototype&&_N.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!r&&!n)return!1;var i;for(i in t);return typeof i>"u"||_N.call(t,i)},NJe=function(t,r){IJe&&r.name==="__proto__"?IJe(t,r.name,{enumerable:!0,configurable:!0,value:r.newValue,writable:!0}):t[r.name]=r.newValue},qJe=function(t,r){if(r==="__proto__")if(_N.call(t,r)){if(RJe)return RJe(t,r).value}else return;return t[r]};$Je.exports=function e(){var t,r,n,i,a,s,o=arguments[0],c=1,p=arguments.length,f=!1;for(typeof o=="boolean"&&(f=o,o=arguments[1]||{},c=2),(o==null||typeof o!="object"&&typeof o!="function")&&(o={});c<p;++c)if(t=arguments[c],t!=null)for(r in t)n=qJe(o,r),i=qJe(t,r),o!==i&&(f&&i&&(jJe(i)||(a=FJe(i)))?(a?(a=!1,s=n&&FJe(n)?n:[]):s=n&&jJe(n)?n:{},NJe(o,{name:r,newValue:e(f,s,i)})):typeof i<"u"&&NJe(o,{name:r,newValue:i}));return o}});var BJe=b((min,xcr)=>{xcr.exports=["ac","com.ac","edu.ac","gov.ac","net.ac","mil.ac","org.ac","ad","nom.ad","ae","co.ae","net.ae","org.ae","sch.ae","ac.ae","gov.ae","mil.ae","aero","accident-investigation.aero","accident-prevention.aero","aerobatic.aero","aeroclub.aero","aerodrome.aero","agents.aero","aircraft.aero","airline.aero","airport.aero","air-surveillance.aero","airtraffic.aero","air-traffic-control.aero","ambulance.aero","amusement.aero","association.aero","author.aero","ballooning.aero","broker.aero","caa.aero","cargo.aero","catering.aero","certification.aero","championship.aero","charter.aero","civilaviation.aero","club.aero","conference.aero","consultant.aero","consulting.aero","control.aero","council.aero","crew.aero","design.aero","dgca.aero","educator.aero","emergency.aero","engine.aero","engineer.aero","entertainment.aero","equipment.aero","exchange.aero","express.aero","federation.aero","flight.aero","freight.aero","fuel.aero","gliding.aero","government.aero","groundhandling.aero","group.aero","hanggliding.aero","homebuilt.aero","insurance.aero","journal.aero","journalist.aero","leasing.aero","logistics.aero","magazine.aero","maintenance.aero","media.aero","microlight.aero","modelling.aero","navigation.aero","parachuting.aero","paragliding.aero","passenger-association.aero","pilot.aero","press.aero","production.aero","recreation.aero","repbody.aero","res.aero","research.aero","rotorcraft.aero","safety.aero","scientist.aero","services.aero","show.aero","skydiving.aero","software.aero","student.aero","trader.aero","trading.aero","trainer.aero","union.aero","workinggroup.aero","works.aero","af","gov.af","com.af","org.af","net.af","edu.af","ag","com.ag","org.ag","net.ag","co.ag","nom.ag","ai","off.ai","com.ai","net.ai","org.ai","al","com.al","edu.al","gov.al","mil.al","net.al","org.al","am","co.am","com.am","commune.am","net.am","org.am","ao","ed.ao","gv.ao","og.ao","co.ao","pb.ao","it.ao","aq","ar","com.ar","edu.ar","gob.ar","gov.ar","int.ar","mil.ar","musica.ar","net.ar","org.ar","tur.ar","arpa","e164.arpa","in-addr.arpa","ip6.arpa","iris.arpa","uri.arpa","urn.arpa","as","gov.as","asia","at","ac.at","co.at","gv.at","or.at","au","com.au","net.au","org.au","edu.au","gov.au","asn.au","id.au","info.au","conf.au","oz.au","act.au","nsw.au","nt.au","qld.au","sa.au","tas.au","vic.au","wa.au","act.edu.au","catholic.edu.au","nsw.edu.au","nt.edu.au","qld.edu.au","sa.edu.au","tas.edu.au","vic.edu.au","wa.edu.au","qld.gov.au","sa.gov.au","tas.gov.au","vic.gov.au","wa.gov.au","education.tas.edu.au","schools.nsw.edu.au","aw","com.aw","ax","az","com.az","net.az","int.az","gov.az","org.az","edu.az","info.az","pp.az","mil.az","name.az","pro.az","biz.az","ba","com.ba","edu.ba","gov.ba","mil.ba","net.ba","org.ba","bb","biz.bb","co.bb","com.bb","edu.bb","gov.bb","info.bb","net.bb","org.bb","store.bb","tv.bb","*.bd","be","ac.be","bf","gov.bf","bg","a.bg","b.bg","c.bg","d.bg","e.bg","f.bg","g.bg","h.bg","i.bg","j.bg","k.bg","l.bg","m.bg","n.bg","o.bg","p.bg","q.bg","r.bg","s.bg","t.bg","u.bg","v.bg","w.bg","x.bg","y.bg","z.bg","0.bg","1.bg","2.bg","3.bg","4.bg","5.bg","6.bg","7.bg","8.bg","9.bg","bh","com.bh","edu.bh","net.bh","org.bh","gov.bh","bi","co.bi","com.bi","edu.bi","or.bi","org.bi","biz","bj","asso.bj","barreau.bj","gouv.bj","bm","com.bm","edu.bm","gov.bm","net.bm","org.bm","bn","com.bn","edu.bn","gov.bn","net.bn","org.bn","bo","com.bo","edu.bo","gob.bo","int.bo","org.bo","net.bo","mil.bo","tv.bo","web.bo","academia.bo","agro.bo","arte.bo","blog.bo","bolivia.bo","ciencia.bo","cooperativa.bo","democracia.bo","deporte.bo","ecologia.bo","economia.bo","empresa.bo","indigena.bo","industria.bo","info.bo","medicina.bo","movimiento.bo","musica.bo","natural.bo","nombre.bo","noticias.bo","patria.bo","politica.bo","profesional.bo","plurinacional.bo","pueblo.bo","revista.bo","salud.bo","tecnologia.bo","tksat.bo","transporte.bo","wiki.bo","br","9guacu.br","abc.br","adm.br","adv.br","agr.br","aju.br","am.br","anani.br","aparecida.br","arq.br","art.br","ato.br","b.br","barueri.br","belem.br","bhz.br","bio.br","blog.br","bmd.br","boavista.br","bsb.br","campinagrande.br","campinas.br","caxias.br","cim.br","cng.br","cnt.br","com.br","contagem.br","coop.br","cri.br","cuiaba.br","curitiba.br","def.br","ecn.br","eco.br","edu.br","emp.br","eng.br","esp.br","etc.br","eti.br","far.br","feira.br","flog.br","floripa.br","fm.br","fnd.br","fortal.br","fot.br","foz.br","fst.br","g12.br","ggf.br","goiania.br","gov.br","ac.gov.br","al.gov.br","am.gov.br","ap.gov.br","ba.gov.br","ce.gov.br","df.gov.br","es.gov.br","go.gov.br","ma.gov.br","mg.gov.br","ms.gov.br","mt.gov.br","pa.gov.br","pb.gov.br","pe.gov.br","pi.gov.br","pr.gov.br","rj.gov.br","rn.gov.br","ro.gov.br","rr.gov.br","rs.gov.br","sc.gov.br","se.gov.br","sp.gov.br","to.gov.br","gru.br","imb.br","ind.br","inf.br","jab.br","jampa.br","jdf.br","joinville.br","jor.br","jus.br","leg.br","lel.br","londrina.br","macapa.br","maceio.br","manaus.br","maringa.br","mat.br","med.br","mil.br","morena.br","mp.br","mus.br","natal.br","net.br","niteroi.br","*.nom.br","not.br","ntr.br","odo.br","ong.br","org.br","osasco.br","palmas.br","poa.br","ppg.br","pro.br","psc.br","psi.br","pvh.br","qsl.br","radio.br","rec.br","recife.br","ribeirao.br","rio.br","riobranco.br","riopreto.br","salvador.br","sampa.br","santamaria.br","santoandre.br","saobernardo.br","saogonca.br","sjc.br","slg.br","slz.br","sorocaba.br","srv.br","taxi.br","tc.br","teo.br","the.br","tmp.br","trd.br","tur.br","tv.br","udi.br","vet.br","vix.br","vlog.br","wiki.br","zlg.br","bs","com.bs","net.bs","org.bs","edu.bs","gov.bs","bt","com.bt","edu.bt","gov.bt","net.bt","org.bt","bv","bw","co.bw","org.bw","by","gov.by","mil.by","com.by","of.by","bz","com.bz","net.bz","org.bz","edu.bz","gov.bz","ca","ab.ca","bc.ca","mb.ca","nb.ca","nf.ca","nl.ca","ns.ca","nt.ca","nu.ca","on.ca","pe.ca","qc.ca","sk.ca","yk.ca","gc.ca","cat","cc","cd","gov.cd","cf","cg","ch","ci","org.ci","or.ci","com.ci","co.ci","edu.ci","ed.ci","ac.ci","net.ci","go.ci","asso.ci","a\xE9roport.ci","int.ci","presse.ci","md.ci","gouv.ci","*.ck","!www.ck","cl","aprendemas.cl","co.cl","gob.cl","gov.cl","mil.cl","cm","co.cm","com.cm","gov.cm","net.cm","cn","ac.cn","com.cn","edu.cn","gov.cn","net.cn","org.cn","mil.cn","\u516C\u53F8.cn","\u7F51\u7EDC.cn","\u7DB2\u7D61.cn","ah.cn","bj.cn","cq.cn","fj.cn","gd.cn","gs.cn","gz.cn","gx.cn","ha.cn","hb.cn","he.cn","hi.cn","hl.cn","hn.cn","jl.cn","js.cn","jx.cn","ln.cn","nm.cn","nx.cn","qh.cn","sc.cn","sd.cn","sh.cn","sn.cn","sx.cn","tj.cn","xj.cn","xz.cn","yn.cn","zj.cn","hk.cn","mo.cn","tw.cn","co","arts.co","com.co","edu.co","firm.co","gov.co","info.co","int.co","mil.co","net.co","nom.co","org.co","rec.co","web.co","com","coop","cr","ac.cr","co.cr","ed.cr","fi.cr","go.cr","or.cr","sa.cr","cu","com.cu","edu.cu","org.cu","net.cu","gov.cu","inf.cu","cv","cw","com.cw","edu.cw","net.cw","org.cw","cx","gov.cx","cy","ac.cy","biz.cy","com.cy","ekloges.cy","gov.cy","ltd.cy","name.cy","net.cy","org.cy","parliament.cy","press.cy","pro.cy","tm.cy","cz","de","dj","dk","dm","com.dm","net.dm","org.dm","edu.dm","gov.dm","do","art.do","com.do","edu.do","gob.do","gov.do","mil.do","net.do","org.do","sld.do","web.do","dz","com.dz","org.dz","net.dz","gov.dz","edu.dz","asso.dz","pol.dz","art.dz","ec","com.ec","info.ec","net.ec","fin.ec","k12.ec","med.ec","pro.ec","org.ec","edu.ec","gov.ec","gob.ec","mil.ec","edu","ee","edu.ee","gov.ee","riik.ee","lib.ee","med.ee","com.ee","pri.ee","aip.ee","org.ee","fie.ee","eg","com.eg","edu.eg","eun.eg","gov.eg","mil.eg","name.eg","net.eg","org.eg","sci.eg","*.er","es","com.es","nom.es","org.es","gob.es","edu.es","et","com.et","gov.et","org.et","edu.et","biz.et","name.et","info.et","net.et","eu","fi","aland.fi","fj","ac.fj","biz.fj","com.fj","gov.fj","info.fj","mil.fj","name.fj","net.fj","org.fj","pro.fj","*.fk","fm","fo","fr","asso.fr","com.fr","gouv.fr","nom.fr","prd.fr","tm.fr","aeroport.fr","avocat.fr","avoues.fr","cci.fr","chambagri.fr","chirurgiens-dentistes.fr","experts-comptables.fr","geometre-expert.fr","greta.fr","huissier-justice.fr","medecin.fr","notaires.fr","pharmacien.fr","port.fr","veterinaire.fr","ga","gb","gd","ge","com.ge","edu.ge","gov.ge","org.ge","mil.ge","net.ge","pvt.ge","gf","gg","co.gg","net.gg","org.gg","gh","com.gh","edu.gh","gov.gh","org.gh","mil.gh","gi","com.gi","ltd.gi","gov.gi","mod.gi","edu.gi","org.gi","gl","co.gl","com.gl","edu.gl","net.gl","org.gl","gm","gn","ac.gn","com.gn","edu.gn","gov.gn","org.gn","net.gn","gov","gp","com.gp","net.gp","mobi.gp","edu.gp","org.gp","asso.gp","gq","gr","com.gr","edu.gr","net.gr","org.gr","gov.gr","gs","gt","com.gt","edu.gt","gob.gt","ind.gt","mil.gt","net.gt","org.gt","gu","com.gu","edu.gu","gov.gu","guam.gu","info.gu","net.gu","org.gu","web.gu","gw","gy","co.gy","com.gy","edu.gy","gov.gy","net.gy","org.gy","hk","com.hk","edu.hk","gov.hk","idv.hk","net.hk","org.hk","\u516C\u53F8.hk","\u6559\u80B2.hk","\u654E\u80B2.hk","\u653F\u5E9C.hk","\u500B\u4EBA.hk","\u4E2A\u4EBA.hk","\u7B87\u4EBA.hk","\u7DB2\u7EDC.hk","\u7F51\u7EDC.hk","\u7EC4\u7E54.hk","\u7DB2\u7D61.hk","\u7F51\u7D61.hk","\u7EC4\u7EC7.hk","\u7D44\u7E54.hk","\u7D44\u7EC7.hk","hm","hn","com.hn","edu.hn","org.hn","net.hn","mil.hn","gob.hn","hr","iz.hr","from.hr","name.hr","com.hr","ht","com.ht","shop.ht","firm.ht","info.ht","adult.ht","net.ht","pro.ht","org.ht","med.ht","art.ht","coop.ht","pol.ht","asso.ht","edu.ht","rel.ht","gouv.ht","perso.ht","hu","co.hu","info.hu","org.hu","priv.hu","sport.hu","tm.hu","2000.hu","agrar.hu","bolt.hu","casino.hu","city.hu","erotica.hu","erotika.hu","film.hu","forum.hu","games.hu","hotel.hu","ingatlan.hu","jogasz.hu","konyvelo.hu","lakas.hu","media.hu","news.hu","reklam.hu","sex.hu","shop.hu","suli.hu","szex.hu","tozsde.hu","utazas.hu","video.hu","id","ac.id","biz.id","co.id","desa.id","go.id","mil.id","my.id","net.id","or.id","ponpes.id","sch.id","web.id","ie","gov.ie","il","ac.il","co.il","gov.il","idf.il","k12.il","muni.il","net.il","org.il","im","ac.im","co.im","com.im","ltd.co.im","net.im","org.im","plc.co.im","tt.im","tv.im","in","co.in","firm.in","net.in","org.in","gen.in","ind.in","nic.in","ac.in","edu.in","res.in","gov.in","mil.in","info","int","eu.int","io","com.io","iq","gov.iq","edu.iq","mil.iq","com.iq","org.iq","net.iq","ir","ac.ir","co.ir","gov.ir","id.ir","net.ir","org.ir","sch.ir","\u0627\u06CC\u0631\u0627\u0646.ir","\u0627\u064A\u0631\u0627\u0646.ir","is","net.is","com.is","edu.is","gov.is","org.is","int.is","it","gov.it","edu.it","abr.it","abruzzo.it","aosta-valley.it","aostavalley.it","bas.it","basilicata.it","cal.it","calabria.it","cam.it","campania.it","emilia-romagna.it","emiliaromagna.it","emr.it","friuli-v-giulia.it","friuli-ve-giulia.it","friuli-vegiulia.it","friuli-venezia-giulia.it","friuli-veneziagiulia.it","friuli-vgiulia.it","friuliv-giulia.it","friulive-giulia.it","friulivegiulia.it","friulivenezia-giulia.it","friuliveneziagiulia.it","friulivgiulia.it","fvg.it","laz.it","lazio.it","lig.it","liguria.it","lom.it","lombardia.it","lombardy.it","lucania.it","mar.it","marche.it","mol.it","molise.it","piedmont.it","piemonte.it","pmn.it","pug.it","puglia.it","sar.it","sardegna.it","sardinia.it","sic.it","sicilia.it","sicily.it","taa.it","tos.it","toscana.it","trentin-sud-tirol.it","trentin-s\xFCd-tirol.it","trentin-sudtirol.it","trentin-s\xFCdtirol.it","trentin-sued-tirol.it","trentin-suedtirol.it","trentino-a-adige.it","trentino-aadige.it","trentino-alto-adige.it","trentino-altoadige.it","trentino-s-tirol.it","trentino-stirol.it","trentino-sud-tirol.it","trentino-s\xFCd-tirol.it","trentino-sudtirol.it","trentino-s\xFCdtirol.it","trentino-sued-tirol.it","trentino-suedtirol.it","trentino.it","trentinoa-adige.it","trentinoaadige.it","trentinoalto-adige.it","trentinoaltoadige.it","trentinos-tirol.it","trentinostirol.it","trentinosud-tirol.it","trentinos\xFCd-tirol.it","trentinosudtirol.it","trentinos\xFCdtirol.it","trentinosued-tirol.it","trentinosuedtirol.it","trentinsud-tirol.it","trentins\xFCd-tirol.it","trentinsudtirol.it","trentins\xFCdtirol.it","trentinsued-tirol.it","trentinsuedtirol.it","tuscany.it","umb.it","umbria.it","val-d-aosta.it","val-daosta.it","vald-aosta.it","valdaosta.it","valle-aosta.it","valle-d-aosta.it","valle-daosta.it","valleaosta.it","valled-aosta.it","valledaosta.it","vallee-aoste.it","vall\xE9e-aoste.it","vallee-d-aoste.it","vall\xE9e-d-aoste.it","valleeaoste.it","vall\xE9eaoste.it","valleedaoste.it","vall\xE9edaoste.it","vao.it","vda.it","ven.it","veneto.it","ag.it","agrigento.it","al.it","alessandria.it","alto-adige.it","altoadige.it","an.it","ancona.it","andria-barletta-trani.it","andria-trani-barletta.it","andriabarlettatrani.it","andriatranibarletta.it","ao.it","aosta.it","aoste.it","ap.it","aq.it","aquila.it","ar.it","arezzo.it","ascoli-piceno.it","ascolipiceno.it","asti.it","at.it","av.it","avellino.it","ba.it","balsan-sudtirol.it","balsan-s\xFCdtirol.it","balsan-suedtirol.it","balsan.it","bari.it","barletta-trani-andria.it","barlettatraniandria.it","belluno.it","benevento.it","bergamo.it","bg.it","bi.it","biella.it","bl.it","bn.it","bo.it","bologna.it","bolzano-altoadige.it","bolzano.it","bozen-sudtirol.it","bozen-s\xFCdtirol.it","bozen-suedtirol.it","bozen.it","br.it","brescia.it","brindisi.it","bs.it","bt.it","bulsan-sudtirol.it","bulsan-s\xFCdtirol.it","bulsan-suedtirol.it","bulsan.it","bz.it","ca.it","cagliari.it","caltanissetta.it","campidano-medio.it","campidanomedio.it","campobasso.it","carbonia-iglesias.it","carboniaiglesias.it","carrara-massa.it","carraramassa.it","caserta.it","catania.it","catanzaro.it","cb.it","ce.it","cesena-forli.it","cesena-forl\xEC.it","cesenaforli.it","cesenaforl\xEC.it","ch.it","chieti.it","ci.it","cl.it","cn.it","co.it","como.it","cosenza.it","cr.it","cremona.it","crotone.it","cs.it","ct.it","cuneo.it","cz.it","dell-ogliastra.it","dellogliastra.it","en.it","enna.it","fc.it","fe.it","fermo.it","ferrara.it","fg.it","fi.it","firenze.it","florence.it","fm.it","foggia.it","forli-cesena.it","forl\xEC-cesena.it","forlicesena.it","forl\xECcesena.it","fr.it","frosinone.it","ge.it","genoa.it","genova.it","go.it","gorizia.it","gr.it","grosseto.it","iglesias-carbonia.it","iglesiascarbonia.it","im.it","imperia.it","is.it","isernia.it","kr.it","la-spezia.it","laquila.it","laspezia.it","latina.it","lc.it","le.it","lecce.it","lecco.it","li.it","livorno.it","lo.it","lodi.it","lt.it","lu.it","lucca.it","macerata.it","mantova.it","massa-carrara.it","massacarrara.it","matera.it","mb.it","mc.it","me.it","medio-campidano.it","mediocampidano.it","messina.it","mi.it","milan.it","milano.it","mn.it","mo.it","modena.it","monza-brianza.it","monza-e-della-brianza.it","monza.it","monzabrianza.it","monzaebrianza.it","monzaedellabrianza.it","ms.it","mt.it","na.it","naples.it","napoli.it","no.it","novara.it","nu.it","nuoro.it","og.it","ogliastra.it","olbia-tempio.it","olbiatempio.it","or.it","oristano.it","ot.it","pa.it","padova.it","padua.it","palermo.it","parma.it","pavia.it","pc.it","pd.it","pe.it","perugia.it","pesaro-urbino.it","pesarourbino.it","pescara.it","pg.it","pi.it","piacenza.it","pisa.it","pistoia.it","pn.it","po.it","pordenone.it","potenza.it","pr.it","prato.it","pt.it","pu.it","pv.it","pz.it","ra.it","ragusa.it","ravenna.it","rc.it","re.it","reggio-calabria.it","reggio-emilia.it","reggiocalabria.it","reggioemilia.it","rg.it","ri.it","rieti.it","rimini.it","rm.it","rn.it","ro.it","roma.it","rome.it","rovigo.it","sa.it","salerno.it","sassari.it","savona.it","si.it","siena.it","siracusa.it","so.it","sondrio.it","sp.it","sr.it","ss.it","suedtirol.it","s\xFCdtirol.it","sv.it","ta.it","taranto.it","te.it","tempio-olbia.it","tempioolbia.it","teramo.it","terni.it","tn.it","to.it","torino.it","tp.it","tr.it","trani-andria-barletta.it","trani-barletta-andria.it","traniandriabarletta.it","tranibarlettaandria.it","trapani.it","trento.it","treviso.it","trieste.it","ts.it","turin.it","tv.it","ud.it","udine.it","urbino-pesaro.it","urbinopesaro.it","va.it","varese.it","vb.it","vc.it","ve.it","venezia.it","venice.it","verbania.it","vercelli.it","verona.it","vi.it","vibo-valentia.it","vibovalentia.it","vicenza.it","viterbo.it","vr.it","vs.it","vt.it","vv.it","je","co.je","net.je","org.je","*.jm","jo","com.jo","org.jo","net.jo","edu.jo","sch.jo","gov.jo","mil.jo","name.jo","jobs","jp","ac.jp","ad.jp","co.jp","ed.jp","go.jp","gr.jp","lg.jp","ne.jp","or.jp","aichi.jp","akita.jp","aomori.jp","chiba.jp","ehime.jp","fukui.jp","fukuoka.jp","fukushima.jp","gifu.jp","gunma.jp","hiroshima.jp","hokkaido.jp","hyogo.jp","ibaraki.jp","ishikawa.jp","iwate.jp","kagawa.jp","kagoshima.jp","kanagawa.jp","kochi.jp","kumamoto.jp","kyoto.jp","mie.jp","miyagi.jp","miyazaki.jp","nagano.jp","nagasaki.jp","nara.jp","niigata.jp","oita.jp","okayama.jp","okinawa.jp","osaka.jp","saga.jp","saitama.jp","shiga.jp","shimane.jp","shizuoka.jp","tochigi.jp","tokushima.jp","tokyo.jp","tottori.jp","toyama.jp","wakayama.jp","yamagata.jp","yamaguchi.jp","yamanashi.jp","\u6803\u6728.jp","\u611B\u77E5.jp","\u611B\u5A9B.jp","\u5175\u5EAB.jp","\u718A\u672C.jp","\u8328\u57CE.jp","\u5317\u6D77\u9053.jp","\u5343\u8449.jp","\u548C\u6B4C\u5C71.jp","\u9577\u5D0E.jp","\u9577\u91CE.jp","\u65B0\u6F5F.jp","\u9752\u68EE.jp","\u9759\u5CA1.jp","\u6771\u4EAC.jp","\u77F3\u5DDD.jp","\u57FC\u7389.jp","\u4E09\u91CD.jp","\u4EAC\u90FD.jp","\u4F50\u8CC0.jp","\u5927\u5206.jp","\u5927\u962A.jp","\u5948\u826F.jp","\u5BAE\u57CE.jp","\u5BAE\u5D0E.jp","\u5BCC\u5C71.jp","\u5C71\u53E3.jp","\u5C71\u5F62.jp","\u5C71\u68A8.jp","\u5CA9\u624B.jp","\u5C90\u961C.jp","\u5CA1\u5C71.jp","\u5CF6\u6839.jp","\u5E83\u5CF6.jp","\u5FB3\u5CF6.jp","\u6C96\u7E04.jp","\u6ECB\u8CC0.jp","\u795E\u5948\u5DDD.jp","\u798F\u4E95.jp","\u798F\u5CA1.jp","\u798F\u5CF6.jp","\u79CB\u7530.jp","\u7FA4\u99AC.jp","\u9999\u5DDD.jp","\u9AD8\u77E5.jp","\u9CE5\u53D6.jp","\u9E7F\u5150\u5CF6.jp","*.kawasaki.jp","*.kitakyushu.jp","*.kobe.jp","*.nagoya.jp","*.sapporo.jp","*.sendai.jp","*.yokohama.jp","!city.kawasaki.jp","!city.kitakyushu.jp","!city.kobe.jp","!city.nagoya.jp","!city.sapporo.jp","!city.sendai.jp","!city.yokohama.jp","aisai.aichi.jp","ama.aichi.jp","anjo.aichi.jp","asuke.aichi.jp","chiryu.aichi.jp","chita.aichi.jp","fuso.aichi.jp","gamagori.aichi.jp","handa.aichi.jp","hazu.aichi.jp","hekinan.aichi.jp","higashiura.aichi.jp","ichinomiya.aichi.jp","inazawa.aichi.jp","inuyama.aichi.jp","isshiki.aichi.jp","iwakura.aichi.jp","kanie.aichi.jp","kariya.aichi.jp","kasugai.aichi.jp","kira.aichi.jp","kiyosu.aichi.jp","komaki.aichi.jp","konan.aichi.jp","kota.aichi.jp","mihama.aichi.jp","miyoshi.aichi.jp","nishio.aichi.jp","nisshin.aichi.jp","obu.aichi.jp","oguchi.aichi.jp","oharu.aichi.jp","okazaki.aichi.jp","owariasahi.aichi.jp","seto.aichi.jp","shikatsu.aichi.jp","shinshiro.aichi.jp","shitara.aichi.jp","tahara.aichi.jp","takahama.aichi.jp","tobishima.aichi.jp","toei.aichi.jp","togo.aichi.jp","tokai.aichi.jp","tokoname.aichi.jp","toyoake.aichi.jp","toyohashi.aichi.jp","toyokawa.aichi.jp","toyone.aichi.jp","toyota.aichi.jp","tsushima.aichi.jp","yatomi.aichi.jp","akita.akita.jp","daisen.akita.jp","fujisato.akita.jp","gojome.akita.jp","hachirogata.akita.jp","happou.akita.jp","higashinaruse.akita.jp","honjo.akita.jp","honjyo.akita.jp","ikawa.akita.jp","kamikoani.akita.jp","kamioka.akita.jp","katagami.akita.jp","kazuno.akita.jp","kitaakita.akita.jp","kosaka.akita.jp","kyowa.akita.jp","misato.akita.jp","mitane.akita.jp","moriyoshi.akita.jp","nikaho.akita.jp","noshiro.akita.jp","odate.akita.jp","oga.akita.jp","ogata.akita.jp","semboku.akita.jp","yokote.akita.jp","yurihonjo.akita.jp","aomori.aomori.jp","gonohe.aomori.jp","hachinohe.aomori.jp","hashikami.aomori.jp","hiranai.aomori.jp","hirosaki.aomori.jp","itayanagi.aomori.jp","kuroishi.aomori.jp","misawa.aomori.jp","mutsu.aomori.jp","nakadomari.aomori.jp","noheji.aomori.jp","oirase.aomori.jp","owani.aomori.jp","rokunohe.aomori.jp","sannohe.aomori.jp","shichinohe.aomori.jp","shingo.aomori.jp","takko.aomori.jp","towada.aomori.jp","tsugaru.aomori.jp","tsuruta.aomori.jp","abiko.chiba.jp","asahi.chiba.jp","chonan.chiba.jp","chosei.chiba.jp","choshi.chiba.jp","chuo.chiba.jp","funabashi.chiba.jp","futtsu.chiba.jp","hanamigawa.chiba.jp","ichihara.chiba.jp","ichikawa.chiba.jp","ichinomiya.chiba.jp","inzai.chiba.jp","isumi.chiba.jp","kamagaya.chiba.jp","kamogawa.chiba.jp","kashiwa.chiba.jp","katori.chiba.jp","katsuura.chiba.jp","kimitsu.chiba.jp","kisarazu.chiba.jp","kozaki.chiba.jp","kujukuri.chiba.jp","kyonan.chiba.jp","matsudo.chiba.jp","midori.chiba.jp","mihama.chiba.jp","minamiboso.chiba.jp","mobara.chiba.jp","mutsuzawa.chiba.jp","nagara.chiba.jp","nagareyama.chiba.jp","narashino.chiba.jp","narita.chiba.jp","noda.chiba.jp","oamishirasato.chiba.jp","omigawa.chiba.jp","onjuku.chiba.jp","otaki.chiba.jp","sakae.chiba.jp","sakura.chiba.jp","shimofusa.chiba.jp","shirako.chiba.jp","shiroi.chiba.jp","shisui.chiba.jp","sodegaura.chiba.jp","sosa.chiba.jp","tako.chiba.jp","tateyama.chiba.jp","togane.chiba.jp","tohnosho.chiba.jp","tomisato.chiba.jp","urayasu.chiba.jp","yachimata.chiba.jp","yachiyo.chiba.jp","yokaichiba.chiba.jp","yokoshibahikari.chiba.jp","yotsukaido.chiba.jp","ainan.ehime.jp","honai.ehime.jp","ikata.ehime.jp","imabari.ehime.jp","iyo.ehime.jp","kamijima.ehime.jp","kihoku.ehime.jp","kumakogen.ehime.jp","masaki.ehime.jp","matsuno.ehime.jp","matsuyama.ehime.jp","namikata.ehime.jp","niihama.ehime.jp","ozu.ehime.jp","saijo.ehime.jp","seiyo.ehime.jp","shikokuchuo.ehime.jp","tobe.ehime.jp","toon.ehime.jp","uchiko.ehime.jp","uwajima.ehime.jp","yawatahama.ehime.jp","echizen.fukui.jp","eiheiji.fukui.jp","fukui.fukui.jp","ikeda.fukui.jp","katsuyama.fukui.jp","mihama.fukui.jp","minamiechizen.fukui.jp","obama.fukui.jp","ohi.fukui.jp","ono.fukui.jp","sabae.fukui.jp","sakai.fukui.jp","takahama.fukui.jp","tsuruga.fukui.jp","wakasa.fukui.jp","ashiya.fukuoka.jp","buzen.fukuoka.jp","chikugo.fukuoka.jp","chikuho.fukuoka.jp","chikujo.fukuoka.jp","chikushino.fukuoka.jp","chikuzen.fukuoka.jp","chuo.fukuoka.jp","dazaifu.fukuoka.jp","fukuchi.fukuoka.jp","hakata.fukuoka.jp","higashi.fukuoka.jp","hirokawa.fukuoka.jp","hisayama.fukuoka.jp","iizuka.fukuoka.jp","inatsuki.fukuoka.jp","kaho.fukuoka.jp","kasuga.fukuoka.jp","kasuya.fukuoka.jp","kawara.fukuoka.jp","keisen.fukuoka.jp","koga.fukuoka.jp","kurate.fukuoka.jp","kurogi.fukuoka.jp","kurume.fukuoka.jp","minami.fukuoka.jp","miyako.fukuoka.jp","miyama.fukuoka.jp","miyawaka.fukuoka.jp","mizumaki.fukuoka.jp","munakata.fukuoka.jp","nakagawa.fukuoka.jp","nakama.fukuoka.jp","nishi.fukuoka.jp","nogata.fukuoka.jp","ogori.fukuoka.jp","okagaki.fukuoka.jp","okawa.fukuoka.jp","oki.fukuoka.jp","omuta.fukuoka.jp","onga.fukuoka.jp","onojo.fukuoka.jp","oto.fukuoka.jp","saigawa.fukuoka.jp","sasaguri.fukuoka.jp","shingu.fukuoka.jp","shinyoshitomi.fukuoka.jp","shonai.fukuoka.jp","soeda.fukuoka.jp","sue.fukuoka.jp","tachiarai.fukuoka.jp","tagawa.fukuoka.jp","takata.fukuoka.jp","toho.fukuoka.jp","toyotsu.fukuoka.jp","tsuiki.fukuoka.jp","ukiha.fukuoka.jp","umi.fukuoka.jp","usui.fukuoka.jp","yamada.fukuoka.jp","yame.fukuoka.jp","yanagawa.fukuoka.jp","yukuhashi.fukuoka.jp","aizubange.fukushima.jp","aizumisato.fukushima.jp","aizuwakamatsu.fukushima.jp","asakawa.fukushima.jp","bandai.fukushima.jp","date.fukushima.jp","fukushima.fukushima.jp","furudono.fukushima.jp","futaba.fukushima.jp","hanawa.fukushima.jp","higashi.fukushima.jp","hirata.fukushima.jp","hirono.fukushima.jp","iitate.fukushima.jp","inawashiro.fukushima.jp","ishikawa.fukushima.jp","iwaki.fukushima.jp","izumizaki.fukushima.jp","kagamiishi.fukushima.jp","kaneyama.fukushima.jp","kawamata.fukushima.jp","kitakata.fukushima.jp","kitashiobara.fukushima.jp","koori.fukushima.jp","koriyama.fukushima.jp","kunimi.fukushima.jp","miharu.fukushima.jp","mishima.fukushima.jp","namie.fukushima.jp","nango.fukushima.jp","nishiaizu.fukushima.jp","nishigo.fukushima.jp","okuma.fukushima.jp","omotego.fukushima.jp","ono.fukushima.jp","otama.fukushima.jp","samegawa.fukushima.jp","shimogo.fukushima.jp","shirakawa.fukushima.jp","showa.fukushima.jp","soma.fukushima.jp","sukagawa.fukushima.jp","taishin.fukushima.jp","tamakawa.fukushima.jp","tanagura.fukushima.jp","tenei.fukushima.jp","yabuki.fukushima.jp","yamato.fukushima.jp","yamatsuri.fukushima.jp","yanaizu.fukushima.jp","yugawa.fukushima.jp","anpachi.gifu.jp","ena.gifu.jp","gifu.gifu.jp","ginan.gifu.jp","godo.gifu.jp","gujo.gifu.jp","hashima.gifu.jp","hichiso.gifu.jp","hida.gifu.jp","higashishirakawa.gifu.jp","ibigawa.gifu.jp","ikeda.gifu.jp","kakamigahara.gifu.jp","kani.gifu.jp","kasahara.gifu.jp","kasamatsu.gifu.jp","kawaue.gifu.jp","kitagata.gifu.jp","mino.gifu.jp","minokamo.gifu.jp","mitake.gifu.jp","mizunami.gifu.jp","motosu.gifu.jp","nakatsugawa.gifu.jp","ogaki.gifu.jp","sakahogi.gifu.jp","seki.gifu.jp","sekigahara.gifu.jp","shirakawa.gifu.jp","tajimi.gifu.jp","takayama.gifu.jp","tarui.gifu.jp","toki.gifu.jp","tomika.gifu.jp","wanouchi.gifu.jp","yamagata.gifu.jp","yaotsu.gifu.jp","yoro.gifu.jp","annaka.gunma.jp","chiyoda.gunma.jp","fujioka.gunma.jp","higashiagatsuma.gunma.jp","isesaki.gunma.jp","itakura.gunma.jp","kanna.gunma.jp","kanra.gunma.jp","katashina.gunma.jp","kawaba.gunma.jp","kiryu.gunma.jp","kusatsu.gunma.jp","maebashi.gunma.jp","meiwa.gunma.jp","midori.gunma.jp","minakami.gunma.jp","naganohara.gunma.jp","nakanojo.gunma.jp","nanmoku.gunma.jp","numata.gunma.jp","oizumi.gunma.jp","ora.gunma.jp","ota.gunma.jp","shibukawa.gunma.jp","shimonita.gunma.jp","shinto.gunma.jp","showa.gunma.jp","takasaki.gunma.jp","takayama.gunma.jp","tamamura.gunma.jp","tatebayashi.gunma.jp","tomioka.gunma.jp","tsukiyono.gunma.jp","tsumagoi.gunma.jp","ueno.gunma.jp","yoshioka.gunma.jp","asaminami.hiroshima.jp","daiwa.hiroshima.jp","etajima.hiroshima.jp","fuchu.hiroshima.jp","fukuyama.hiroshima.jp","hatsukaichi.hiroshima.jp","higashihiroshima.hiroshima.jp","hongo.hiroshima.jp","jinsekikogen.hiroshima.jp","kaita.hiroshima.jp","kui.hiroshima.jp","kumano.hiroshima.jp","kure.hiroshima.jp","mihara.hiroshima.jp","miyoshi.hiroshima.jp","naka.hiroshima.jp","onomichi.hiroshima.jp","osakikamijima.hiroshima.jp","otake.hiroshima.jp","saka.hiroshima.jp","sera.hiroshima.jp","seranishi.hiroshima.jp","shinichi.hiroshima.jp","shobara.hiroshima.jp","takehara.hiroshima.jp","abashiri.hokkaido.jp","abira.hokkaido.jp","aibetsu.hokkaido.jp","akabira.hokkaido.jp","akkeshi.hokkaido.jp","asahikawa.hokkaido.jp","ashibetsu.hokkaido.jp","ashoro.hokkaido.jp","assabu.hokkaido.jp","atsuma.hokkaido.jp","bibai.hokkaido.jp","biei.hokkaido.jp","bifuka.hokkaido.jp","bihoro.hokkaido.jp","biratori.hokkaido.jp","chippubetsu.hokkaido.jp","chitose.hokkaido.jp","date.hokkaido.jp","ebetsu.hokkaido.jp","embetsu.hokkaido.jp","eniwa.hokkaido.jp","erimo.hokkaido.jp","esan.hokkaido.jp","esashi.hokkaido.jp","fukagawa.hokkaido.jp","fukushima.hokkaido.jp","furano.hokkaido.jp","furubira.hokkaido.jp","haboro.hokkaido.jp","hakodate.hokkaido.jp","hamatonbetsu.hokkaido.jp","hidaka.hokkaido.jp","higashikagura.hokkaido.jp","higashikawa.hokkaido.jp","hiroo.hokkaido.jp","hokuryu.hokkaido.jp","hokuto.hokkaido.jp","honbetsu.hokkaido.jp","horokanai.hokkaido.jp","horonobe.hokkaido.jp","ikeda.hokkaido.jp","imakane.hokkaido.jp","ishikari.hokkaido.jp","iwamizawa.hokkaido.jp","iwanai.hokkaido.jp","kamifurano.hokkaido.jp","kamikawa.hokkaido.jp","kamishihoro.hokkaido.jp","kamisunagawa.hokkaido.jp","kamoenai.hokkaido.jp","kayabe.hokkaido.jp","kembuchi.hokkaido.jp","kikonai.hokkaido.jp","kimobetsu.hokkaido.jp","kitahiroshima.hokkaido.jp","kitami.hokkaido.jp","kiyosato.hokkaido.jp","koshimizu.hokkaido.jp","kunneppu.hokkaido.jp","kuriyama.hokkaido.jp","kuromatsunai.hokkaido.jp","kushiro.hokkaido.jp","kutchan.hokkaido.jp","kyowa.hokkaido.jp","mashike.hokkaido.jp","matsumae.hokkaido.jp","mikasa.hokkaido.jp","minamifurano.hokkaido.jp","mombetsu.hokkaido.jp","moseushi.hokkaido.jp","mukawa.hokkaido.jp","muroran.hokkaido.jp","naie.hokkaido.jp","nakagawa.hokkaido.jp","nakasatsunai.hokkaido.jp","nakatombetsu.hokkaido.jp","nanae.hokkaido.jp","nanporo.hokkaido.jp","nayoro.hokkaido.jp","nemuro.hokkaido.jp","niikappu.hokkaido.jp","niki.hokkaido.jp","nishiokoppe.hokkaido.jp","noboribetsu.hokkaido.jp","numata.hokkaido.jp","obihiro.hokkaido.jp","obira.hokkaido.jp","oketo.hokkaido.jp","okoppe.hokkaido.jp","otaru.hokkaido.jp","otobe.hokkaido.jp","otofuke.hokkaido.jp","otoineppu.hokkaido.jp","oumu.hokkaido.jp","ozora.hokkaido.jp","pippu.hokkaido.jp","rankoshi.hokkaido.jp","rebun.hokkaido.jp","rikubetsu.hokkaido.jp","rishiri.hokkaido.jp","rishirifuji.hokkaido.jp","saroma.hokkaido.jp","sarufutsu.hokkaido.jp","shakotan.hokkaido.jp","shari.hokkaido.jp","shibecha.hokkaido.jp","shibetsu.hokkaido.jp","shikabe.hokkaido.jp","shikaoi.hokkaido.jp","shimamaki.hokkaido.jp","shimizu.hokkaido.jp","shimokawa.hokkaido.jp","shinshinotsu.hokkaido.jp","shintoku.hokkaido.jp","shiranuka.hokkaido.jp","shiraoi.hokkaido.jp","shiriuchi.hokkaido.jp","sobetsu.hokkaido.jp","sunagawa.hokkaido.jp","taiki.hokkaido.jp","takasu.hokkaido.jp","takikawa.hokkaido.jp","takinoue.hokkaido.jp","teshikaga.hokkaido.jp","tobetsu.hokkaido.jp","tohma.hokkaido.jp","tomakomai.hokkaido.jp","tomari.hokkaido.jp","toya.hokkaido.jp","toyako.hokkaido.jp","toyotomi.hokkaido.jp","toyoura.hokkaido.jp","tsubetsu.hokkaido.jp","tsukigata.hokkaido.jp","urakawa.hokkaido.jp","urausu.hokkaido.jp","uryu.hokkaido.jp","utashinai.hokkaido.jp","wakkanai.hokkaido.jp","wassamu.hokkaido.jp","yakumo.hokkaido.jp","yoichi.hokkaido.jp","aioi.hyogo.jp","akashi.hyogo.jp","ako.hyogo.jp","amagasaki.hyogo.jp","aogaki.hyogo.jp","asago.hyogo.jp","ashiya.hyogo.jp","awaji.hyogo.jp","fukusaki.hyogo.jp","goshiki.hyogo.jp","harima.hyogo.jp","himeji.hyogo.jp","ichikawa.hyogo.jp","inagawa.hyogo.jp","itami.hyogo.jp","kakogawa.hyogo.jp","kamigori.hyogo.jp","kamikawa.hyogo.jp","kasai.hyogo.jp","kasuga.hyogo.jp","kawanishi.hyogo.jp","miki.hyogo.jp","minamiawaji.hyogo.jp","nishinomiya.hyogo.jp","nishiwaki.hyogo.jp","ono.hyogo.jp","sanda.hyogo.jp","sannan.hyogo.jp","sasayama.hyogo.jp","sayo.hyogo.jp","shingu.hyogo.jp","shinonsen.hyogo.jp","shiso.hyogo.jp","sumoto.hyogo.jp","taishi.hyogo.jp","taka.hyogo.jp","takarazuka.hyogo.jp","takasago.hyogo.jp","takino.hyogo.jp","tamba.hyogo.jp","tatsuno.hyogo.jp","toyooka.hyogo.jp","yabu.hyogo.jp","yashiro.hyogo.jp","yoka.hyogo.jp","yokawa.hyogo.jp","ami.ibaraki.jp","asahi.ibaraki.jp","bando.ibaraki.jp","chikusei.ibaraki.jp","daigo.ibaraki.jp","fujishiro.ibaraki.jp","hitachi.ibaraki.jp","hitachinaka.ibaraki.jp","hitachiomiya.ibaraki.jp","hitachiota.ibaraki.jp","ibaraki.ibaraki.jp","ina.ibaraki.jp","inashiki.ibaraki.jp","itako.ibaraki.jp","iwama.ibaraki.jp","joso.ibaraki.jp","kamisu.ibaraki.jp","kasama.ibaraki.jp","kashima.ibaraki.jp","kasumigaura.ibaraki.jp","koga.ibaraki.jp","miho.ibaraki.jp","mito.ibaraki.jp","moriya.ibaraki.jp","naka.ibaraki.jp","namegata.ibaraki.jp","oarai.ibaraki.jp","ogawa.ibaraki.jp","omitama.ibaraki.jp","ryugasaki.ibaraki.jp","sakai.ibaraki.jp","sakuragawa.ibaraki.jp","shimodate.ibaraki.jp","shimotsuma.ibaraki.jp","shirosato.ibaraki.jp","sowa.ibaraki.jp","suifu.ibaraki.jp","takahagi.ibaraki.jp","tamatsukuri.ibaraki.jp","tokai.ibaraki.jp","tomobe.ibaraki.jp","tone.ibaraki.jp","toride.ibaraki.jp","tsuchiura.ibaraki.jp","tsukuba.ibaraki.jp","uchihara.ibaraki.jp","ushiku.ibaraki.jp","yachiyo.ibaraki.jp","yamagata.ibaraki.jp","yawara.ibaraki.jp","yuki.ibaraki.jp","anamizu.ishikawa.jp","hakui.ishikawa.jp","hakusan.ishikawa.jp","kaga.ishikawa.jp","kahoku.ishikawa.jp","kanazawa.ishikawa.jp","kawakita.ishikawa.jp","komatsu.ishikawa.jp","nakanoto.ishikawa.jp","nanao.ishikawa.jp","nomi.ishikawa.jp","nonoichi.ishikawa.jp","noto.ishikawa.jp","shika.ishikawa.jp","suzu.ishikawa.jp","tsubata.ishikawa.jp","tsurugi.ishikawa.jp","uchinada.ishikawa.jp","wajima.ishikawa.jp","fudai.iwate.jp","fujisawa.iwate.jp","hanamaki.iwate.jp","hiraizumi.iwate.jp","hirono.iwate.jp","ichinohe.iwate.jp","ichinoseki.iwate.jp","iwaizumi.iwate.jp","iwate.iwate.jp","joboji.iwate.jp","kamaishi.iwate.jp","kanegasaki.iwate.jp","karumai.iwate.jp","kawai.iwate.jp","kitakami.iwate.jp","kuji.iwate.jp","kunohe.iwate.jp","kuzumaki.iwate.jp","miyako.iwate.jp","mizusawa.iwate.jp","morioka.iwate.jp","ninohe.iwate.jp","noda.iwate.jp","ofunato.iwate.jp","oshu.iwate.jp","otsuchi.iwate.jp","rikuzentakata.iwate.jp","shiwa.iwate.jp","shizukuishi.iwate.jp","sumita.iwate.jp","tanohata.iwate.jp","tono.iwate.jp","yahaba.iwate.jp","yamada.iwate.jp","ayagawa.kagawa.jp","higashikagawa.kagawa.jp","kanonji.kagawa.jp","kotohira.kagawa.jp","manno.kagawa.jp","marugame.kagawa.jp","mitoyo.kagawa.jp","naoshima.kagawa.jp","sanuki.kagawa.jp","tadotsu.kagawa.jp","takamatsu.kagawa.jp","tonosho.kagawa.jp","uchinomi.kagawa.jp","utazu.kagawa.jp","zentsuji.kagawa.jp","akune.kagoshima.jp","amami.kagoshima.jp","hioki.kagoshima.jp","isa.kagoshima.jp","isen.kagoshima.jp","izumi.kagoshima.jp","kagoshima.kagoshima.jp","kanoya.kagoshima.jp","kawanabe.kagoshima.jp","kinko.kagoshima.jp","kouyama.kagoshima.jp","makurazaki.kagoshima.jp","matsumoto.kagoshima.jp","minamitane.kagoshima.jp","nakatane.kagoshima.jp","nishinoomote.kagoshima.jp","satsumasendai.kagoshima.jp","soo.kagoshima.jp","tarumizu.kagoshima.jp","yusui.kagoshima.jp","aikawa.kanagawa.jp","atsugi.kanagawa.jp","ayase.kanagawa.jp","chigasaki.kanagawa.jp","ebina.kanagawa.jp","fujisawa.kanagawa.jp","hadano.kanagawa.jp","hakone.kanagawa.jp","hiratsuka.kanagawa.jp","isehara.kanagawa.jp","kaisei.kanagawa.jp","kamakura.kanagawa.jp","kiyokawa.kanagawa.jp","matsuda.kanagawa.jp","minamiashigara.kanagawa.jp","miura.kanagawa.jp","nakai.kanagawa.jp","ninomiya.kanagawa.jp","odawara.kanagawa.jp","oi.kanagawa.jp","oiso.kanagawa.jp","sagamihara.kanagawa.jp","samukawa.kanagawa.jp","tsukui.kanagawa.jp","yamakita.kanagawa.jp","yamato.kanagawa.jp","yokosuka.kanagawa.jp","yugawara.kanagawa.jp","zama.kanagawa.jp","zushi.kanagawa.jp","aki.kochi.jp","geisei.kochi.jp","hidaka.kochi.jp","higashitsuno.kochi.jp","ino.kochi.jp","kagami.kochi.jp","kami.kochi.jp","kitagawa.kochi.jp","kochi.kochi.jp","mihara.kochi.jp","motoyama.kochi.jp","muroto.kochi.jp","nahari.kochi.jp","nakamura.kochi.jp","nankoku.kochi.jp","nishitosa.kochi.jp","niyodogawa.kochi.jp","ochi.kochi.jp","okawa.kochi.jp","otoyo.kochi.jp","otsuki.kochi.jp","sakawa.kochi.jp","sukumo.kochi.jp","susaki.kochi.jp","tosa.kochi.jp","tosashimizu.kochi.jp","toyo.kochi.jp","tsuno.kochi.jp","umaji.kochi.jp","yasuda.kochi.jp","yusuhara.kochi.jp","amakusa.kumamoto.jp","arao.kumamoto.jp","aso.kumamoto.jp","choyo.kumamoto.jp","gyokuto.kumamoto.jp","kamiamakusa.kumamoto.jp","kikuchi.kumamoto.jp","kumamoto.kumamoto.jp","mashiki.kumamoto.jp","mifune.kumamoto.jp","minamata.kumamoto.jp","minamioguni.kumamoto.jp","nagasu.kumamoto.jp","nishihara.kumamoto.jp","oguni.kumamoto.jp","ozu.kumamoto.jp","sumoto.kumamoto.jp","takamori.kumamoto.jp","uki.kumamoto.jp","uto.kumamoto.jp","yamaga.kumamoto.jp","yamato.kumamoto.jp","yatsushiro.kumamoto.jp","ayabe.kyoto.jp","fukuchiyama.kyoto.jp","higashiyama.kyoto.jp","ide.kyoto.jp","ine.kyoto.jp","joyo.kyoto.jp","kameoka.kyoto.jp","kamo.kyoto.jp","kita.kyoto.jp","kizu.kyoto.jp","kumiyama.kyoto.jp","kyotamba.kyoto.jp","kyotanabe.kyoto.jp","kyotango.kyoto.jp","maizuru.kyoto.jp","minami.kyoto.jp","minamiyamashiro.kyoto.jp","miyazu.kyoto.jp","muko.kyoto.jp","nagaokakyo.kyoto.jp","nakagyo.kyoto.jp","nantan.kyoto.jp","oyamazaki.kyoto.jp","sakyo.kyoto.jp","seika.kyoto.jp","tanabe.kyoto.jp","uji.kyoto.jp","ujitawara.kyoto.jp","wazuka.kyoto.jp","yamashina.kyoto.jp","yawata.kyoto.jp","asahi.mie.jp","inabe.mie.jp","ise.mie.jp","kameyama.mie.jp","kawagoe.mie.jp","kiho.mie.jp","kisosaki.mie.jp","kiwa.mie.jp","komono.mie.jp","kumano.mie.jp","kuwana.mie.jp","matsusaka.mie.jp","meiwa.mie.jp","mihama.mie.jp","minamiise.mie.jp","misugi.mie.jp","miyama.mie.jp","nabari.mie.jp","shima.mie.jp","suzuka.mie.jp","tado.mie.jp","taiki.mie.jp","taki.mie.jp","tamaki.mie.jp","toba.mie.jp","tsu.mie.jp","udono.mie.jp","ureshino.mie.jp","watarai.mie.jp","yokkaichi.mie.jp","furukawa.miyagi.jp","higashimatsushima.miyagi.jp","ishinomaki.miyagi.jp","iwanuma.miyagi.jp","kakuda.miyagi.jp","kami.miyagi.jp","kawasaki.miyagi.jp","marumori.miyagi.jp","matsushima.miyagi.jp","minamisanriku.miyagi.jp","misato.miyagi.jp","murata.miyagi.jp","natori.miyagi.jp","ogawara.miyagi.jp","ohira.miyagi.jp","onagawa.miyagi.jp","osaki.miyagi.jp","rifu.miyagi.jp","semine.miyagi.jp","shibata.miyagi.jp","shichikashuku.miyagi.jp","shikama.miyagi.jp","shiogama.miyagi.jp","shiroishi.miyagi.jp","tagajo.miyagi.jp","taiwa.miyagi.jp","tome.miyagi.jp","tomiya.miyagi.jp","wakuya.miyagi.jp","watari.miyagi.jp","yamamoto.miyagi.jp","zao.miyagi.jp","aya.miyazaki.jp","ebino.miyazaki.jp","gokase.miyazaki.jp","hyuga.miyazaki.jp","kadogawa.miyazaki.jp","kawaminami.miyazaki.jp","kijo.miyazaki.jp","kitagawa.miyazaki.jp","kitakata.miyazaki.jp","kitaura.miyazaki.jp","kobayashi.miyazaki.jp","kunitomi.miyazaki.jp","kushima.miyazaki.jp","mimata.miyazaki.jp","miyakonojo.miyazaki.jp","miyazaki.miyazaki.jp","morotsuka.miyazaki.jp","nichinan.miyazaki.jp","nishimera.miyazaki.jp","nobeoka.miyazaki.jp","saito.miyazaki.jp","shiiba.miyazaki.jp","shintomi.miyazaki.jp","takaharu.miyazaki.jp","takanabe.miyazaki.jp","takazaki.miyazaki.jp","tsuno.miyazaki.jp","achi.nagano.jp","agematsu.nagano.jp","anan.nagano.jp","aoki.nagano.jp","asahi.nagano.jp","azumino.nagano.jp","chikuhoku.nagano.jp","chikuma.nagano.jp","chino.nagano.jp","fujimi.nagano.jp","hakuba.nagano.jp","hara.nagano.jp","hiraya.nagano.jp","iida.nagano.jp","iijima.nagano.jp","iiyama.nagano.jp","iizuna.nagano.jp","ikeda.nagano.jp","ikusaka.nagano.jp","ina.nagano.jp","karuizawa.nagano.jp","kawakami.nagano.jp","kiso.nagano.jp","kisofukushima.nagano.jp","kitaaiki.nagano.jp","komagane.nagano.jp","komoro.nagano.jp","matsukawa.nagano.jp","matsumoto.nagano.jp","miasa.nagano.jp","minamiaiki.nagano.jp","minamimaki.nagano.jp","minamiminowa.nagano.jp","minowa.nagano.jp","miyada.nagano.jp","miyota.nagano.jp","mochizuki.nagano.jp","nagano.nagano.jp","nagawa.nagano.jp","nagiso.nagano.jp","nakagawa.nagano.jp","nakano.nagano.jp","nozawaonsen.nagano.jp","obuse.nagano.jp","ogawa.nagano.jp","okaya.nagano.jp","omachi.nagano.jp","omi.nagano.jp","ookuwa.nagano.jp","ooshika.nagano.jp","otaki.nagano.jp","otari.nagano.jp","sakae.nagano.jp","sakaki.nagano.jp","saku.nagano.jp","sakuho.nagano.jp","shimosuwa.nagano.jp","shinanomachi.nagano.jp","shiojiri.nagano.jp","suwa.nagano.jp","suzaka.nagano.jp","takagi.nagano.jp","takamori.nagano.jp","takayama.nagano.jp","tateshina.nagano.jp","tatsuno.nagano.jp","togakushi.nagano.jp","togura.nagano.jp","tomi.nagano.jp","ueda.nagano.jp","wada.nagano.jp","yamagata.nagano.jp","yamanouchi.nagano.jp","yasaka.nagano.jp","yasuoka.nagano.jp","chijiwa.nagasaki.jp","futsu.nagasaki.jp","goto.nagasaki.jp","hasami.nagasaki.jp","hirado.nagasaki.jp","iki.nagasaki.jp","isahaya.nagasaki.jp","kawatana.nagasaki.jp","kuchinotsu.nagasaki.jp","matsuura.nagasaki.jp","nagasaki.nagasaki.jp","obama.nagasaki.jp","omura.nagasaki.jp","oseto.nagasaki.jp","saikai.nagasaki.jp","sasebo.nagasaki.jp","seihi.nagasaki.jp","shimabara.nagasaki.jp","shinkamigoto.nagasaki.jp","togitsu.nagasaki.jp","tsushima.nagasaki.jp","unzen.nagasaki.jp","ando.nara.jp","gose.nara.jp","heguri.nara.jp","higashiyoshino.nara.jp","ikaruga.nara.jp","ikoma.nara.jp","kamikitayama.nara.jp","kanmaki.nara.jp","kashiba.nara.jp","kashihara.nara.jp","katsuragi.nara.jp","kawai.nara.jp","kawakami.nara.jp","kawanishi.nara.jp","koryo.nara.jp","kurotaki.nara.jp","mitsue.nara.jp","miyake.nara.jp","nara.nara.jp","nosegawa.nara.jp","oji.nara.jp","ouda.nara.jp","oyodo.nara.jp","sakurai.nara.jp","sango.nara.jp","shimoichi.nara.jp","shimokitayama.nara.jp","shinjo.nara.jp","soni.nara.jp","takatori.nara.jp","tawaramoto.nara.jp","tenkawa.nara.jp","tenri.nara.jp","uda.nara.jp","yamatokoriyama.nara.jp","yamatotakada.nara.jp","yamazoe.nara.jp","yoshino.nara.jp","aga.niigata.jp","agano.niigata.jp","gosen.niigata.jp","itoigawa.niigata.jp","izumozaki.niigata.jp","joetsu.niigata.jp","kamo.niigata.jp","kariwa.niigata.jp","kashiwazaki.niigata.jp","minamiuonuma.niigata.jp","mitsuke.niigata.jp","muika.niigata.jp","murakami.niigata.jp","myoko.niigata.jp","nagaoka.niigata.jp","niigata.niigata.jp","ojiya.niigata.jp","omi.niigata.jp","sado.niigata.jp","sanjo.niigata.jp","seiro.niigata.jp","seirou.niigata.jp","sekikawa.niigata.jp","shibata.niigata.jp","tagami.niigata.jp","tainai.niigata.jp","tochio.niigata.jp","tokamachi.niigata.jp","tsubame.niigata.jp","tsunan.niigata.jp","uonuma.niigata.jp","yahiko.niigata.jp","yoita.niigata.jp","yuzawa.niigata.jp","beppu.oita.jp","bungoono.oita.jp","bungotakada.oita.jp","hasama.oita.jp","hiji.oita.jp","himeshima.oita.jp","hita.oita.jp","kamitsue.oita.jp","kokonoe.oita.jp","kuju.oita.jp","kunisaki.oita.jp","kusu.oita.jp","oita.oita.jp","saiki.oita.jp","taketa.oita.jp","tsukumi.oita.jp","usa.oita.jp","usuki.oita.jp","yufu.oita.jp","akaiwa.okayama.jp","asakuchi.okayama.jp","bizen.okayama.jp","hayashima.okayama.jp","ibara.okayama.jp","kagamino.okayama.jp","kasaoka.okayama.jp","kibichuo.okayama.jp","kumenan.okayama.jp","kurashiki.okayama.jp","maniwa.okayama.jp","misaki.okayama.jp","nagi.okayama.jp","niimi.okayama.jp","nishiawakura.okayama.jp","okayama.okayama.jp","satosho.okayama.jp","setouchi.okayama.jp","shinjo.okayama.jp","shoo.okayama.jp","soja.okayama.jp","takahashi.okayama.jp","tamano.okayama.jp","tsuyama.okayama.jp","wake.okayama.jp","yakage.okayama.jp","aguni.okinawa.jp","ginowan.okinawa.jp","ginoza.okinawa.jp","gushikami.okinawa.jp","haebaru.okinawa.jp","higashi.okinawa.jp","hirara.okinawa.jp","iheya.okinawa.jp","ishigaki.okinawa.jp","ishikawa.okinawa.jp","itoman.okinawa.jp","izena.okinawa.jp","kadena.okinawa.jp","kin.okinawa.jp","kitadaito.okinawa.jp","kitanakagusuku.okinawa.jp","kumejima.okinawa.jp","kunigami.okinawa.jp","minamidaito.okinawa.jp","motobu.okinawa.jp","nago.okinawa.jp","naha.okinawa.jp","nakagusuku.okinawa.jp","nakijin.okinawa.jp","nanjo.okinawa.jp","nishihara.okinawa.jp","ogimi.okinawa.jp","okinawa.okinawa.jp","onna.okinawa.jp","shimoji.okinawa.jp","taketomi.okinawa.jp","tarama.okinawa.jp","tokashiki.okinawa.jp","tomigusuku.okinawa.jp","tonaki.okinawa.jp","urasoe.okinawa.jp","uruma.okinawa.jp","yaese.okinawa.jp","yomitan.okinawa.jp","yonabaru.okinawa.jp","yonaguni.okinawa.jp","zamami.okinawa.jp","abeno.osaka.jp","chihayaakasaka.osaka.jp","chuo.osaka.jp","daito.osaka.jp","fujiidera.osaka.jp","habikino.osaka.jp","hannan.osaka.jp","higashiosaka.osaka.jp","higashisumiyoshi.osaka.jp","higashiyodogawa.osaka.jp","hirakata.osaka.jp","ibaraki.osaka.jp","ikeda.osaka.jp","izumi.osaka.jp","izumiotsu.osaka.jp","izumisano.osaka.jp","kadoma.osaka.jp","kaizuka.osaka.jp","kanan.osaka.jp","kashiwara.osaka.jp","katano.osaka.jp","kawachinagano.osaka.jp","kishiwada.osaka.jp","kita.osaka.jp","kumatori.osaka.jp","matsubara.osaka.jp","minato.osaka.jp","minoh.osaka.jp","misaki.osaka.jp","moriguchi.osaka.jp","neyagawa.osaka.jp","nishi.osaka.jp","nose.osaka.jp","osakasayama.osaka.jp","sakai.osaka.jp","sayama.osaka.jp","sennan.osaka.jp","settsu.osaka.jp","shijonawate.osaka.jp","shimamoto.osaka.jp","suita.osaka.jp","tadaoka.osaka.jp","taishi.osaka.jp","tajiri.osaka.jp","takaishi.osaka.jp","takatsuki.osaka.jp","tondabayashi.osaka.jp","toyonaka.osaka.jp","toyono.osaka.jp","yao.osaka.jp","ariake.saga.jp","arita.saga.jp","fukudomi.saga.jp","genkai.saga.jp","hamatama.saga.jp","hizen.saga.jp","imari.saga.jp","kamimine.saga.jp","kanzaki.saga.jp","karatsu.saga.jp","kashima.saga.jp","kitagata.saga.jp","kitahata.saga.jp","kiyama.saga.jp","kouhoku.saga.jp","kyuragi.saga.jp","nishiarita.saga.jp","ogi.saga.jp","omachi.saga.jp","ouchi.saga.jp","saga.saga.jp","shiroishi.saga.jp","taku.saga.jp","tara.saga.jp","tosu.saga.jp","yoshinogari.saga.jp","arakawa.saitama.jp","asaka.saitama.jp","chichibu.saitama.jp","fujimi.saitama.jp","fujimino.saitama.jp","fukaya.saitama.jp","hanno.saitama.jp","hanyu.saitama.jp","hasuda.saitama.jp","hatogaya.saitama.jp","hatoyama.saitama.jp","hidaka.saitama.jp","higashichichibu.saitama.jp","higashimatsuyama.saitama.jp","honjo.saitama.jp","ina.saitama.jp","iruma.saitama.jp","iwatsuki.saitama.jp","kamiizumi.saitama.jp","kamikawa.saitama.jp","kamisato.saitama.jp","kasukabe.saitama.jp","kawagoe.saitama.jp","kawaguchi.saitama.jp","kawajima.saitama.jp","kazo.saitama.jp","kitamoto.saitama.jp","koshigaya.saitama.jp","kounosu.saitama.jp","kuki.saitama.jp","kumagaya.saitama.jp","matsubushi.saitama.jp","minano.saitama.jp","misato.saitama.jp","miyashiro.saitama.jp","miyoshi.saitama.jp","moroyama.saitama.jp","nagatoro.saitama.jp","namegawa.saitama.jp","niiza.saitama.jp","ogano.saitama.jp","ogawa.saitama.jp","ogose.saitama.jp","okegawa.saitama.jp","omiya.saitama.jp","otaki.saitama.jp","ranzan.saitama.jp","ryokami.saitama.jp","saitama.saitama.jp","sakado.saitama.jp","satte.saitama.jp","sayama.saitama.jp","shiki.saitama.jp","shiraoka.saitama.jp","soka.saitama.jp","sugito.saitama.jp","toda.saitama.jp","tokigawa.saitama.jp","tokorozawa.saitama.jp","tsurugashima.saitama.jp","urawa.saitama.jp","warabi.saitama.jp","yashio.saitama.jp","yokoze.saitama.jp","yono.saitama.jp","yorii.saitama.jp","yoshida.saitama.jp","yoshikawa.saitama.jp","yoshimi.saitama.jp","aisho.shiga.jp","gamo.shiga.jp","higashiomi.shiga.jp","hikone.shiga.jp","koka.shiga.jp","konan.shiga.jp","kosei.shiga.jp","koto.shiga.jp","kusatsu.shiga.jp","maibara.shiga.jp","moriyama.shiga.jp","nagahama.shiga.jp","nishiazai.shiga.jp","notogawa.shiga.jp","omihachiman.shiga.jp","otsu.shiga.jp","ritto.shiga.jp","ryuoh.shiga.jp","takashima.shiga.jp","takatsuki.shiga.jp","torahime.shiga.jp","toyosato.shiga.jp","yasu.shiga.jp","akagi.shimane.jp","ama.shimane.jp","gotsu.shimane.jp","hamada.shimane.jp","higashiizumo.shimane.jp","hikawa.shimane.jp","hikimi.shimane.jp","izumo.shimane.jp","kakinoki.shimane.jp","masuda.shimane.jp","matsue.shimane.jp","misato.shimane.jp","nishinoshima.shimane.jp","ohda.shimane.jp","okinoshima.shimane.jp","okuizumo.shimane.jp","shimane.shimane.jp","tamayu.shimane.jp","tsuwano.shimane.jp","unnan.shimane.jp","yakumo.shimane.jp","yasugi.shimane.jp","yatsuka.shimane.jp","arai.shizuoka.jp","atami.shizuoka.jp","fuji.shizuoka.jp","fujieda.shizuoka.jp","fujikawa.shizuoka.jp","fujinomiya.shizuoka.jp","fukuroi.shizuoka.jp","gotemba.shizuoka.jp","haibara.shizuoka.jp","hamamatsu.shizuoka.jp","higashiizu.shizuoka.jp","ito.shizuoka.jp","iwata.shizuoka.jp","izu.shizuoka.jp","izunokuni.shizuoka.jp","kakegawa.shizuoka.jp","kannami.shizuoka.jp","kawanehon.shizuoka.jp","kawazu.shizuoka.jp","kikugawa.shizuoka.jp","kosai.shizuoka.jp","makinohara.shizuoka.jp","matsuzaki.shizuoka.jp","minamiizu.shizuoka.jp","mishima.shizuoka.jp","morimachi.shizuoka.jp","nishiizu.shizuoka.jp","numazu.shizuoka.jp","omaezaki.shizuoka.jp","shimada.shizuoka.jp","shimizu.shizuoka.jp","shimoda.shizuoka.jp","shizuoka.shizuoka.jp","susono.shizuoka.jp","yaizu.shizuoka.jp","yoshida.shizuoka.jp","ashikaga.tochigi.jp","bato.tochigi.jp","haga.tochigi.jp","ichikai.tochigi.jp","iwafune.tochigi.jp","kaminokawa.tochigi.jp","kanuma.tochigi.jp","karasuyama.tochigi.jp","kuroiso.tochigi.jp","mashiko.tochigi.jp","mibu.tochigi.jp","moka.tochigi.jp","motegi.tochigi.jp","nasu.tochigi.jp","nasushiobara.tochigi.jp","nikko.tochigi.jp","nishikata.tochigi.jp","nogi.tochigi.jp","ohira.tochigi.jp","ohtawara.tochigi.jp","oyama.tochigi.jp","sakura.tochigi.jp","sano.tochigi.jp","shimotsuke.tochigi.jp","shioya.tochigi.jp","takanezawa.tochigi.jp","tochigi.tochigi.jp","tsuga.tochigi.jp","ujiie.tochigi.jp","utsunomiya.tochigi.jp","yaita.tochigi.jp","aizumi.tokushima.jp","anan.tokushima.jp","ichiba.tokushima.jp","itano.tokushima.jp","kainan.tokushima.jp","komatsushima.tokushima.jp","matsushige.tokushima.jp","mima.tokushima.jp","minami.tokushima.jp","miyoshi.tokushima.jp","mugi.tokushima.jp","nakagawa.tokushima.jp","naruto.tokushima.jp","sanagochi.tokushima.jp","shishikui.tokushima.jp","tokushima.tokushima.jp","wajiki.tokushima.jp","adachi.tokyo.jp","akiruno.tokyo.jp","akishima.tokyo.jp","aogashima.tokyo.jp","arakawa.tokyo.jp","bunkyo.tokyo.jp","chiyoda.tokyo.jp","chofu.tokyo.jp","chuo.tokyo.jp","edogawa.tokyo.jp","fuchu.tokyo.jp","fussa.tokyo.jp","hachijo.tokyo.jp","hachioji.tokyo.jp","hamura.tokyo.jp","higashikurume.tokyo.jp","higashimurayama.tokyo.jp","higashiyamato.tokyo.jp","hino.tokyo.jp","hinode.tokyo.jp","hinohara.tokyo.jp","inagi.tokyo.jp","itabashi.tokyo.jp","katsushika.tokyo.jp","kita.tokyo.jp","kiyose.tokyo.jp","kodaira.tokyo.jp","koganei.tokyo.jp","kokubunji.tokyo.jp","komae.tokyo.jp","koto.tokyo.jp","kouzushima.tokyo.jp","kunitachi.tokyo.jp","machida.tokyo.jp","meguro.tokyo.jp","minato.tokyo.jp","mitaka.tokyo.jp","mizuho.tokyo.jp","musashimurayama.tokyo.jp","musashino.tokyo.jp","nakano.tokyo.jp","nerima.tokyo.jp","ogasawara.tokyo.jp","okutama.tokyo.jp","ome.tokyo.jp","oshima.tokyo.jp","ota.tokyo.jp","setagaya.tokyo.jp","shibuya.tokyo.jp","shinagawa.tokyo.jp","shinjuku.tokyo.jp","suginami.tokyo.jp","sumida.tokyo.jp","tachikawa.tokyo.jp","taito.tokyo.jp","tama.tokyo.jp","toshima.tokyo.jp","chizu.tottori.jp","hino.tottori.jp","kawahara.tottori.jp","koge.tottori.jp","kotoura.tottori.jp","misasa.tottori.jp","nanbu.tottori.jp","nichinan.tottori.jp","sakaiminato.tottori.jp","tottori.tottori.jp","wakasa.tottori.jp","yazu.tottori.jp","yonago.tottori.jp","asahi.toyama.jp","fuchu.toyama.jp","fukumitsu.toyama.jp","funahashi.toyama.jp","himi.toyama.jp","imizu.toyama.jp","inami.toyama.jp","johana.toyama.jp","kamiichi.toyama.jp","kurobe.toyama.jp","nakaniikawa.toyama.jp","namerikawa.toyama.jp","nanto.toyama.jp","nyuzen.toyama.jp","oyabe.toyama.jp","taira.toyama.jp","takaoka.toyama.jp","tateyama.toyama.jp","toga.toyama.jp","tonami.toyama.jp","toyama.toyama.jp","unazuki.toyama.jp","uozu.toyama.jp","yamada.toyama.jp","arida.wakayama.jp","aridagawa.wakayama.jp","gobo.wakayama.jp","hashimoto.wakayama.jp","hidaka.wakayama.jp","hirogawa.wakayama.jp","inami.wakayama.jp","iwade.wakayama.jp","kainan.wakayama.jp","kamitonda.wakayama.jp","katsuragi.wakayama.jp","kimino.wakayama.jp","kinokawa.wakayama.jp","kitayama.wakayama.jp","koya.wakayama.jp","koza.wakayama.jp","kozagawa.wakayama.jp","kudoyama.wakayama.jp","kushimoto.wakayama.jp","mihama.wakayama.jp","misato.wakayama.jp","nachikatsuura.wakayama.jp","shingu.wakayama.jp","shirahama.wakayama.jp","taiji.wakayama.jp","tanabe.wakayama.jp","wakayama.wakayama.jp","yuasa.wakayama.jp","yura.wakayama.jp","asahi.yamagata.jp","funagata.yamagata.jp","higashine.yamagata.jp","iide.yamagata.jp","kahoku.yamagata.jp","kaminoyama.yamagata.jp","kaneyama.yamagata.jp","kawanishi.yamagata.jp","mamurogawa.yamagata.jp","mikawa.yamagata.jp","murayama.yamagata.jp","nagai.yamagata.jp","nakayama.yamagata.jp","nanyo.yamagata.jp","nishikawa.yamagata.jp","obanazawa.yamagata.jp","oe.yamagata.jp","oguni.yamagata.jp","ohkura.yamagata.jp","oishida.yamagata.jp","sagae.yamagata.jp","sakata.yamagata.jp","sakegawa.yamagata.jp","shinjo.yamagata.jp","shirataka.yamagata.jp","shonai.yamagata.jp","takahata.yamagata.jp","tendo.yamagata.jp","tozawa.yamagata.jp","tsuruoka.yamagata.jp","yamagata.yamagata.jp","yamanobe.yamagata.jp","yonezawa.yamagata.jp","yuza.yamagata.jp","abu.yamaguchi.jp","hagi.yamaguchi.jp","hikari.yamaguchi.jp","hofu.yamaguchi.jp","iwakuni.yamaguchi.jp","kudamatsu.yamaguchi.jp","mitou.yamaguchi.jp","nagato.yamaguchi.jp","oshima.yamaguchi.jp","shimonoseki.yamaguchi.jp","shunan.yamaguchi.jp","tabuse.yamaguchi.jp","tokuyama.yamaguchi.jp","toyota.yamaguchi.jp","ube.yamaguchi.jp","yuu.yamaguchi.jp","chuo.yamanashi.jp","doshi.yamanashi.jp","fuefuki.yamanashi.jp","fujikawa.yamanashi.jp","fujikawaguchiko.yamanashi.jp","fujiyoshida.yamanashi.jp","hayakawa.yamanashi.jp","hokuto.yamanashi.jp","ichikawamisato.yamanashi.jp","kai.yamanashi.jp","kofu.yamanashi.jp","koshu.yamanashi.jp","kosuge.yamanashi.jp","minami-alps.yamanashi.jp","minobu.yamanashi.jp","nakamichi.yamanashi.jp","nanbu.yamanashi.jp","narusawa.yamanashi.jp","nirasaki.yamanashi.jp","nishikatsura.yamanashi.jp","oshino.yamanashi.jp","otsuki.yamanashi.jp","showa.yamanashi.jp","tabayama.yamanashi.jp","tsuru.yamanashi.jp","uenohara.yamanashi.jp","yamanakako.yamanashi.jp","yamanashi.yamanashi.jp","ke","ac.ke","co.ke","go.ke","info.ke","me.ke","mobi.ke","ne.ke","or.ke","sc.ke","kg","org.kg","net.kg","com.kg","edu.kg","gov.kg","mil.kg","*.kh","ki","edu.ki","biz.ki","net.ki","org.ki","gov.ki","info.ki","com.ki","km","org.km","nom.km","gov.km","prd.km","tm.km","edu.km","mil.km","ass.km","com.km","coop.km","asso.km","presse.km","medecin.km","notaires.km","pharmaciens.km","veterinaire.km","gouv.km","kn","net.kn","org.kn","edu.kn","gov.kn","kp","com.kp","edu.kp","gov.kp","org.kp","rep.kp","tra.kp","kr","ac.kr","co.kr","es.kr","go.kr","hs.kr","kg.kr","mil.kr","ms.kr","ne.kr","or.kr","pe.kr","re.kr","sc.kr","busan.kr","chungbuk.kr","chungnam.kr","daegu.kr","daejeon.kr","gangwon.kr","gwangju.kr","gyeongbuk.kr","gyeonggi.kr","gyeongnam.kr","incheon.kr","jeju.kr","jeonbuk.kr","jeonnam.kr","seoul.kr","ulsan.kr","kw","com.kw","edu.kw","emb.kw","gov.kw","ind.kw","net.kw","org.kw","ky","edu.ky","gov.ky","com.ky","org.ky","net.ky","kz","org.kz","edu.kz","net.kz","gov.kz","mil.kz","com.kz","la","int.la","net.la","info.la","edu.la","gov.la","per.la","com.la","org.la","lb","com.lb","edu.lb","gov.lb","net.lb","org.lb","lc","com.lc","net.lc","co.lc","org.lc","edu.lc","gov.lc","li","lk","gov.lk","sch.lk","net.lk","int.lk","com.lk","org.lk","edu.lk","ngo.lk","soc.lk","web.lk","ltd.lk","assn.lk","grp.lk","hotel.lk","ac.lk","lr","com.lr","edu.lr","gov.lr","org.lr","net.lr","ls","ac.ls","biz.ls","co.ls","edu.ls","gov.ls","info.ls","net.ls","org.ls","sc.ls","lt","gov.lt","lu","lv","com.lv","edu.lv","gov.lv","org.lv","mil.lv","id.lv","net.lv","asn.lv","conf.lv","ly","com.ly","net.ly","gov.ly","plc.ly","edu.ly","sch.ly","med.ly","org.ly","id.ly","ma","co.ma","net.ma","gov.ma","org.ma","ac.ma","press.ma","mc","tm.mc","asso.mc","md","me","co.me","net.me","org.me","edu.me","ac.me","gov.me","its.me","priv.me","mg","org.mg","nom.mg","gov.mg","prd.mg","tm.mg","edu.mg","mil.mg","com.mg","co.mg","mh","mil","mk","com.mk","org.mk","net.mk","edu.mk","gov.mk","inf.mk","name.mk","ml","com.ml","edu.ml","gouv.ml","gov.ml","net.ml","org.ml","presse.ml","*.mm","mn","gov.mn","edu.mn","org.mn","mo","com.mo","net.mo","org.mo","edu.mo","gov.mo","mobi","mp","mq","mr","gov.mr","ms","com.ms","edu.ms","gov.ms","net.ms","org.ms","mt","com.mt","edu.mt","net.mt","org.mt","mu","com.mu","net.mu","org.mu","gov.mu","ac.mu","co.mu","or.mu","museum","academy.museum","agriculture.museum","air.museum","airguard.museum","alabama.museum","alaska.museum","amber.museum","ambulance.museum","american.museum","americana.museum","americanantiques.museum","americanart.museum","amsterdam.museum","and.museum","annefrank.museum","anthro.museum","anthropology.museum","antiques.museum","aquarium.museum","arboretum.museum","archaeological.museum","archaeology.museum","architecture.museum","art.museum","artanddesign.museum","artcenter.museum","artdeco.museum","arteducation.museum","artgallery.museum","arts.museum","artsandcrafts.museum","asmatart.museum","assassination.museum","assisi.museum","association.museum","astronomy.museum","atlanta.museum","austin.museum","australia.museum","automotive.museum","aviation.museum","axis.museum","badajoz.museum","baghdad.museum","bahn.museum","bale.museum","baltimore.museum","barcelona.museum","baseball.museum","basel.museum","baths.museum","bauern.museum","beauxarts.museum","beeldengeluid.museum","bellevue.museum","bergbau.museum","berkeley.museum","berlin.museum","bern.museum","bible.museum","bilbao.museum","bill.museum","birdart.museum","birthplace.museum","bonn.museum","boston.museum","botanical.museum","botanicalgarden.museum","botanicgarden.museum","botany.museum","brandywinevalley.museum","brasil.museum","bristol.museum","british.museum","britishcolumbia.museum","broadcast.museum","brunel.museum","brussel.museum","brussels.museum","bruxelles.museum","building.museum","burghof.museum","bus.museum","bushey.museum","cadaques.museum","california.museum","cambridge.museum","can.museum","canada.museum","capebreton.museum","carrier.museum","cartoonart.museum","casadelamoneda.museum","castle.museum","castres.museum","celtic.museum","center.museum","chattanooga.museum","cheltenham.museum","chesapeakebay.museum","chicago.museum","children.museum","childrens.museum","childrensgarden.museum","chiropractic.museum","chocolate.museum","christiansburg.museum","cincinnati.museum","cinema.museum","circus.museum","civilisation.museum","civilization.museum","civilwar.museum","clinton.museum","clock.museum","coal.museum","coastaldefence.museum","cody.museum","coldwar.museum","collection.museum","colonialwilliamsburg.museum","coloradoplateau.museum","columbia.museum","columbus.museum","communication.museum","communications.museum","community.museum","computer.museum","computerhistory.museum","comunica\xE7\xF5es.museum","contemporary.museum","contemporaryart.museum","convent.museum","copenhagen.museum","corporation.museum","correios-e-telecomunica\xE7\xF5es.museum","corvette.museum","costume.museum","countryestate.museum","county.museum","crafts.museum","cranbrook.museum","creation.museum","cultural.museum","culturalcenter.museum","culture.museum","cyber.museum","cymru.museum","dali.museum","dallas.museum","database.museum","ddr.museum","decorativearts.museum","delaware.museum","delmenhorst.museum","denmark.museum","depot.museum","design.museum","detroit.museum","dinosaur.museum","discovery.museum","dolls.museum","donostia.museum","durham.museum","eastafrica.museum","eastcoast.museum","education.museum","educational.museum","egyptian.museum","eisenbahn.museum","elburg.museum","elvendrell.museum","embroidery.museum","encyclopedic.museum","england.museum","entomology.museum","environment.museum","environmentalconservation.museum","epilepsy.museum","essex.museum","estate.museum","ethnology.museum","exeter.museum","exhibition.museum","family.museum","farm.museum","farmequipment.museum","farmers.museum","farmstead.museum","field.museum","figueres.museum","filatelia.museum","film.museum","fineart.museum","finearts.museum","finland.museum","flanders.museum","florida.museum","force.museum","fortmissoula.museum","fortworth.museum","foundation.museum","francaise.museum","frankfurt.museum","franziskaner.museum","freemasonry.museum","freiburg.museum","fribourg.museum","frog.museum","fundacio.museum","furniture.museum","gallery.museum","garden.museum","gateway.museum","geelvinck.museum","gemological.museum","geology.museum","georgia.museum","giessen.museum","glas.museum","glass.museum","gorge.museum","grandrapids.museum","graz.museum","guernsey.museum","halloffame.museum","hamburg.museum","handson.museum","harvestcelebration.museum","hawaii.museum","health.museum","heimatunduhren.museum","hellas.museum","helsinki.museum","hembygdsforbund.museum","heritage.museum","histoire.museum","historical.museum","historicalsociety.museum","historichouses.museum","historisch.museum","historisches.museum","history.museum","historyofscience.museum","horology.museum","house.museum","humanities.museum","illustration.museum","imageandsound.museum","indian.museum","indiana.museum","indianapolis.museum","indianmarket.museum","intelligence.museum","interactive.museum","iraq.museum","iron.museum","isleofman.museum","jamison.museum","jefferson.museum","jerusalem.museum","jewelry.museum","jewish.museum","jewishart.museum","jfk.museum","journalism.museum","judaica.museum","judygarland.museum","juedisches.museum","juif.museum","karate.museum","karikatur.museum","kids.museum","koebenhavn.museum","koeln.museum","kunst.museum","kunstsammlung.museum","kunstunddesign.museum","labor.museum","labour.museum","lajolla.museum","lancashire.museum","landes.museum","lans.museum","l\xE4ns.museum","larsson.museum","lewismiller.museum","lincoln.museum","linz.museum","living.museum","livinghistory.museum","localhistory.museum","london.museum","losangeles.museum","louvre.museum","loyalist.museum","lucerne.museum","luxembourg.museum","luzern.museum","mad.museum","madrid.museum","mallorca.museum","manchester.museum","mansion.museum","mansions.museum","manx.museum","marburg.museum","maritime.museum","maritimo.museum","maryland.museum","marylhurst.museum","media.museum","medical.museum","medizinhistorisches.museum","meeres.museum","memorial.museum","mesaverde.museum","michigan.museum","midatlantic.museum","military.museum","mill.museum","miners.museum","mining.museum","minnesota.museum","missile.museum","missoula.museum","modern.museum","moma.museum","money.museum","monmouth.museum","monticello.museum","montreal.museum","moscow.museum","motorcycle.museum","muenchen.museum","muenster.museum","mulhouse.museum","muncie.museum","museet.museum","museumcenter.museum","museumvereniging.museum","music.museum","national.museum","nationalfirearms.museum","nationalheritage.museum","nativeamerican.museum","naturalhistory.museum","naturalhistorymuseum.museum","naturalsciences.museum","nature.museum","naturhistorisches.museum","natuurwetenschappen.museum","naumburg.museum","naval.museum","nebraska.museum","neues.museum","newhampshire.museum","newjersey.museum","newmexico.museum","newport.museum","newspaper.museum","newyork.museum","niepce.museum","norfolk.museum","north.museum","nrw.museum","nyc.museum","nyny.museum","oceanographic.museum","oceanographique.museum","omaha.museum","online.museum","ontario.museum","openair.museum","oregon.museum","oregontrail.museum","otago.museum","oxford.museum","pacific.museum","paderborn.museum","palace.museum","paleo.museum","palmsprings.museum","panama.museum","paris.museum","pasadena.museum","pharmacy.museum","philadelphia.museum","philadelphiaarea.museum","philately.museum","phoenix.museum","photography.museum","pilots.museum","pittsburgh.museum","planetarium.museum","plantation.museum","plants.museum","plaza.museum","portal.museum","portland.museum","portlligat.museum","posts-and-telecommunications.museum","preservation.museum","presidio.museum","press.museum","project.museum","public.museum","pubol.museum","quebec.museum","railroad.museum","railway.museum","research.museum","resistance.museum","riodejaneiro.museum","rochester.museum","rockart.museum","roma.museum","russia.museum","saintlouis.museum","salem.museum","salvadordali.museum","salzburg.museum","sandiego.museum","sanfrancisco.museum","santabarbara.museum","santacruz.museum","santafe.museum","saskatchewan.museum","satx.museum","savannahga.museum","schlesisches.museum","schoenbrunn.museum","schokoladen.museum","school.museum","schweiz.museum","science.museum","scienceandhistory.museum","scienceandindustry.museum","sciencecenter.museum","sciencecenters.museum","science-fiction.museum","sciencehistory.museum","sciences.museum","sciencesnaturelles.museum","scotland.museum","seaport.museum","settlement.museum","settlers.museum","shell.museum","sherbrooke.museum","sibenik.museum","silk.museum","ski.museum","skole.museum","society.museum","sologne.museum","soundandvision.museum","southcarolina.museum","southwest.museum","space.museum","spy.museum","square.museum","stadt.museum","stalbans.museum","starnberg.museum","state.museum","stateofdelaware.museum","station.museum","steam.museum","steiermark.museum","stjohn.museum","stockholm.museum","stpetersburg.museum","stuttgart.museum","suisse.museum","surgeonshall.museum","surrey.museum","svizzera.museum","sweden.museum","sydney.museum","tank.museum","tcm.museum","technology.museum","telekommunikation.museum","television.museum","texas.museum","textile.museum","theater.museum","time.museum","timekeeping.museum","topology.museum","torino.museum","touch.museum","town.museum","transport.museum","tree.museum","trolley.museum","trust.museum","trustee.museum","uhren.museum","ulm.museum","undersea.museum","university.museum","usa.museum","usantiques.museum","usarts.museum","uscountryestate.museum","usculture.museum","usdecorativearts.museum","usgarden.museum","ushistory.museum","ushuaia.museum","uslivinghistory.museum","utah.museum","uvic.museum","valley.museum","vantaa.museum","versailles.museum","viking.museum","village.museum","virginia.museum","virtual.museum","virtuel.museum","vlaanderen.museum","volkenkunde.museum","wales.museum","wallonie.museum","war.museum","washingtondc.museum","watchandclock.museum","watch-and-clock.museum","western.museum","westfalen.museum","whaling.museum","wildlife.museum","williamsburg.museum","windmill.museum","workshop.museum","york.museum","yorkshire.museum","yosemite.museum","youth.museum","zoological.museum","zoology.museum","\u05D9\u05E8\u05D5\u05E9\u05DC\u05D9\u05DD.museum","\u0438\u043A\u043E\u043C.museum","mv","aero.mv","biz.mv","com.mv","coop.mv","edu.mv","gov.mv","info.mv","int.mv","mil.mv","museum.mv","name.mv","net.mv","org.mv","pro.mv","mw","ac.mw","biz.mw","co.mw","com.mw","coop.mw","edu.mw","gov.mw","int.mw","museum.mw","net.mw","org.mw","mx","com.mx","org.mx","gob.mx","edu.mx","net.mx","my","com.my","net.my","org.my","gov.my","edu.my","mil.my","name.my","mz","ac.mz","adv.mz","co.mz","edu.mz","gov.mz","mil.mz","net.mz","org.mz","na","info.na","pro.na","name.na","school.na","or.na","dr.na","us.na","mx.na","ca.na","in.na","cc.na","tv.na","ws.na","mobi.na","co.na","com.na","org.na","name","nc","asso.nc","nom.nc","ne","net","nf","com.nf","net.nf","per.nf","rec.nf","web.nf","arts.nf","firm.nf","info.nf","other.nf","store.nf","ng","com.ng","edu.ng","gov.ng","i.ng","mil.ng","mobi.ng","name.ng","net.ng","org.ng","sch.ng","ni","ac.ni","biz.ni","co.ni","com.ni","edu.ni","gob.ni","in.ni","info.ni","int.ni","mil.ni","net.ni","nom.ni","org.ni","web.ni","nl","no","fhs.no","vgs.no","fylkesbibl.no","folkebibl.no","museum.no","idrett.no","priv.no","mil.no","stat.no","dep.no","kommune.no","herad.no","aa.no","ah.no","bu.no","fm.no","hl.no","hm.no","jan-mayen.no","mr.no","nl.no","nt.no","of.no","ol.no","oslo.no","rl.no","sf.no","st.no","svalbard.no","tm.no","tr.no","va.no","vf.no","gs.aa.no","gs.ah.no","gs.bu.no","gs.fm.no","gs.hl.no","gs.hm.no","gs.jan-mayen.no","gs.mr.no","gs.nl.no","gs.nt.no","gs.of.no","gs.ol.no","gs.oslo.no","gs.rl.no","gs.sf.no","gs.st.no","gs.svalbard.no","gs.tm.no","gs.tr.no","gs.va.no","gs.vf.no","akrehamn.no","\xE5krehamn.no","algard.no","\xE5lg\xE5rd.no","arna.no","brumunddal.no","bryne.no","bronnoysund.no","br\xF8nn\xF8ysund.no","drobak.no","dr\xF8bak.no","egersund.no","fetsund.no","floro.no","flor\xF8.no","fredrikstad.no","hokksund.no","honefoss.no","h\xF8nefoss.no","jessheim.no","jorpeland.no","j\xF8rpeland.no","kirkenes.no","kopervik.no","krokstadelva.no","langevag.no","langev\xE5g.no","leirvik.no","mjondalen.no","mj\xF8ndalen.no","mo-i-rana.no","mosjoen.no","mosj\xF8en.no","nesoddtangen.no","orkanger.no","osoyro.no","os\xF8yro.no","raholt.no","r\xE5holt.no","sandnessjoen.no","sandnessj\xF8en.no","skedsmokorset.no","slattum.no","spjelkavik.no","stathelle.no","stavern.no","stjordalshalsen.no","stj\xF8rdalshalsen.no","tananger.no","tranby.no","vossevangen.no","afjord.no","\xE5fjord.no","agdenes.no","al.no","\xE5l.no","alesund.no","\xE5lesund.no","alstahaug.no","alta.no","\xE1lt\xE1.no","alaheadju.no","\xE1laheadju.no","alvdal.no","amli.no","\xE5mli.no","amot.no","\xE5mot.no","andebu.no","andoy.no","and\xF8y.no","andasuolo.no","ardal.no","\xE5rdal.no","aremark.no","arendal.no","\xE5s.no","aseral.no","\xE5seral.no","asker.no","askim.no","askvoll.no","askoy.no","ask\xF8y.no","asnes.no","\xE5snes.no","audnedaln.no","aukra.no","aure.no","aurland.no","aurskog-holand.no","aurskog-h\xF8land.no","austevoll.no","austrheim.no","averoy.no","aver\xF8y.no","balestrand.no","ballangen.no","balat.no","b\xE1l\xE1t.no","balsfjord.no","bahccavuotna.no","b\xE1hccavuotna.no","bamble.no","bardu.no","beardu.no","beiarn.no","bajddar.no","b\xE1jddar.no","baidar.no","b\xE1id\xE1r.no","berg.no","bergen.no","berlevag.no","berlev\xE5g.no","bearalvahki.no","bearalv\xE1hki.no","bindal.no","birkenes.no","bjarkoy.no","bjark\xF8y.no","bjerkreim.no","bjugn.no","bodo.no","bod\xF8.no","badaddja.no","b\xE5d\xE5ddj\xE5.no","budejju.no","bokn.no","bremanger.no","bronnoy.no","br\xF8nn\xF8y.no","bygland.no","bykle.no","barum.no","b\xE6rum.no","bo.telemark.no","b\xF8.telemark.no","bo.nordland.no","b\xF8.nordland.no","bievat.no","biev\xE1t.no","bomlo.no","b\xF8mlo.no","batsfjord.no","b\xE5tsfjord.no","bahcavuotna.no","b\xE1hcavuotna.no","dovre.no","drammen.no","drangedal.no","dyroy.no","dyr\xF8y.no","donna.no","d\xF8nna.no","eid.no","eidfjord.no","eidsberg.no","eidskog.no","eidsvoll.no","eigersund.no","elverum.no","enebakk.no","engerdal.no","etne.no","etnedal.no","evenes.no","evenassi.no","even\xE1\u0161\u0161i.no","evje-og-hornnes.no","farsund.no","fauske.no","fuossko.no","fuoisku.no","fedje.no","fet.no","finnoy.no","finn\xF8y.no","fitjar.no","fjaler.no","fjell.no","flakstad.no","flatanger.no","flekkefjord.no","flesberg.no","flora.no","fla.no","fl\xE5.no","folldal.no","forsand.no","fosnes.no","frei.no","frogn.no","froland.no","frosta.no","frana.no","fr\xE6na.no","froya.no","fr\xF8ya.no","fusa.no","fyresdal.no","forde.no","f\xF8rde.no","gamvik.no","gangaviika.no","g\xE1\u014Bgaviika.no","gaular.no","gausdal.no","gildeskal.no","gildesk\xE5l.no","giske.no","gjemnes.no","gjerdrum.no","gjerstad.no","gjesdal.no","gjovik.no","gj\xF8vik.no","gloppen.no","gol.no","gran.no","grane.no","granvin.no","gratangen.no","grimstad.no","grong.no","kraanghke.no","kr\xE5anghke.no","grue.no","gulen.no","hadsel.no","halden.no","halsa.no","hamar.no","hamaroy.no","habmer.no","h\xE1bmer.no","hapmir.no","h\xE1pmir.no","hammerfest.no","hammarfeasta.no","h\xE1mm\xE1rfeasta.no","haram.no","hareid.no","harstad.no","hasvik.no","aknoluokta.no","\xE1k\u014Boluokta.no","hattfjelldal.no","aarborte.no","haugesund.no","hemne.no","hemnes.no","hemsedal.no","heroy.more-og-romsdal.no","her\xF8y.m\xF8re-og-romsdal.no","heroy.nordland.no","her\xF8y.nordland.no","hitra.no","hjartdal.no","hjelmeland.no","hobol.no","hob\xF8l.no","hof.no","hol.no","hole.no","holmestrand.no","holtalen.no","holt\xE5len.no","hornindal.no","horten.no","hurdal.no","hurum.no","hvaler.no","hyllestad.no","hagebostad.no","h\xE6gebostad.no","hoyanger.no","h\xF8yanger.no","hoylandet.no","h\xF8ylandet.no","ha.no","h\xE5.no","ibestad.no","inderoy.no","inder\xF8y.no","iveland.no","jevnaker.no","jondal.no","jolster.no","j\xF8lster.no","karasjok.no","karasjohka.no","k\xE1r\xE1\u0161johka.no","karlsoy.no","galsa.no","g\xE1ls\xE1.no","karmoy.no","karm\xF8y.no","kautokeino.no","guovdageaidnu.no","klepp.no","klabu.no","kl\xE6bu.no","kongsberg.no","kongsvinger.no","kragero.no","krager\xF8.no","kristiansand.no","kristiansund.no","krodsherad.no","kr\xF8dsherad.no","kvalsund.no","rahkkeravju.no","r\xE1hkker\xE1vju.no","kvam.no","kvinesdal.no","kvinnherad.no","kviteseid.no","kvitsoy.no","kvits\xF8y.no","kvafjord.no","kv\xE6fjord.no","giehtavuoatna.no","kvanangen.no","kv\xE6nangen.no","navuotna.no","n\xE1vuotna.no","kafjord.no","k\xE5fjord.no","gaivuotna.no","g\xE1ivuotna.no","larvik.no","lavangen.no","lavagis.no","loabat.no","loab\xE1t.no","lebesby.no","davvesiida.no","leikanger.no","leirfjord.no","leka.no","leksvik.no","lenvik.no","leangaviika.no","lea\u014Bgaviika.no","lesja.no","levanger.no","lier.no","lierne.no","lillehammer.no","lillesand.no","lindesnes.no","lindas.no","lind\xE5s.no","lom.no","loppa.no","lahppi.no","l\xE1hppi.no","lund.no","lunner.no","luroy.no","lur\xF8y.no","luster.no","lyngdal.no","lyngen.no","ivgu.no","lardal.no","lerdal.no","l\xE6rdal.no","lodingen.no","l\xF8dingen.no","lorenskog.no","l\xF8renskog.no","loten.no","l\xF8ten.no","malvik.no","masoy.no","m\xE5s\xF8y.no","muosat.no","muos\xE1t.no","mandal.no","marker.no","marnardal.no","masfjorden.no","meland.no","meldal.no","melhus.no","meloy.no","mel\xF8y.no","meraker.no","mer\xE5ker.no","moareke.no","mo\xE5reke.no","midsund.no","midtre-gauldal.no","modalen.no","modum.no","molde.no","moskenes.no","moss.no","mosvik.no","malselv.no","m\xE5lselv.no","malatvuopmi.no","m\xE1latvuopmi.no","namdalseid.no","aejrie.no","namsos.no","namsskogan.no","naamesjevuemie.no","n\xE5\xE5mesjevuemie.no","laakesvuemie.no","nannestad.no","narvik.no","narviika.no","naustdal.no","nedre-eiker.no","nes.akershus.no","nes.buskerud.no","nesna.no","nesodden.no","nesseby.no","unjarga.no","unj\xE1rga.no","nesset.no","nissedal.no","nittedal.no","nord-aurdal.no","nord-fron.no","nord-odal.no","norddal.no","nordkapp.no","davvenjarga.no","davvenj\xE1rga.no","nordre-land.no","nordreisa.no","raisa.no","r\xE1isa.no","nore-og-uvdal.no","notodden.no","naroy.no","n\xE6r\xF8y.no","notteroy.no","n\xF8tter\xF8y.no","odda.no","oksnes.no","\xF8ksnes.no","oppdal.no","oppegard.no","oppeg\xE5rd.no","orkdal.no","orland.no","\xF8rland.no","orskog.no","\xF8rskog.no","orsta.no","\xF8rsta.no","os.hedmark.no","os.hordaland.no","osen.no","osteroy.no","oster\xF8y.no","ostre-toten.no","\xF8stre-toten.no","overhalla.no","ovre-eiker.no","\xF8vre-eiker.no","oyer.no","\xF8yer.no","oygarden.no","\xF8ygarden.no","oystre-slidre.no","\xF8ystre-slidre.no","porsanger.no","porsangu.no","pors\xE1\u014Bgu.no","porsgrunn.no","radoy.no","rad\xF8y.no","rakkestad.no","rana.no","ruovat.no","randaberg.no","rauma.no","rendalen.no","rennebu.no","rennesoy.no","rennes\xF8y.no","rindal.no","ringebu.no","ringerike.no","ringsaker.no","rissa.no","risor.no","ris\xF8r.no","roan.no","rollag.no","rygge.no","ralingen.no","r\xE6lingen.no","rodoy.no","r\xF8d\xF8y.no","romskog.no","r\xF8mskog.no","roros.no","r\xF8ros.no","rost.no","r\xF8st.no","royken.no","r\xF8yken.no","royrvik.no","r\xF8yrvik.no","rade.no","r\xE5de.no","salangen.no","siellak.no","saltdal.no","salat.no","s\xE1l\xE1t.no","s\xE1lat.no","samnanger.no","sande.more-og-romsdal.no","sande.m\xF8re-og-romsdal.no","sande.vestfold.no","sandefjord.no","sandnes.no","sandoy.no","sand\xF8y.no","sarpsborg.no","sauda.no","sauherad.no","sel.no","selbu.no","selje.no","seljord.no","sigdal.no","siljan.no","sirdal.no","skaun.no","skedsmo.no","ski.no","skien.no","skiptvet.no","skjervoy.no","skjerv\xF8y.no","skierva.no","skierv\xE1.no","skjak.no","skj\xE5k.no","skodje.no","skanland.no","sk\xE5nland.no","skanit.no","sk\xE1nit.no","smola.no","sm\xF8la.no","snillfjord.no","snasa.no","sn\xE5sa.no","snoasa.no","snaase.no","sn\xE5ase.no","sogndal.no","sokndal.no","sola.no","solund.no","songdalen.no","sortland.no","spydeberg.no","stange.no","stavanger.no","steigen.no","steinkjer.no","stjordal.no","stj\xF8rdal.no","stokke.no","stor-elvdal.no","stord.no","stordal.no","storfjord.no","omasvuotna.no","strand.no","stranda.no","stryn.no","sula.no","suldal.no","sund.no","sunndal.no","surnadal.no","sveio.no","svelvik.no","sykkylven.no","sogne.no","s\xF8gne.no","somna.no","s\xF8mna.no","sondre-land.no","s\xF8ndre-land.no","sor-aurdal.no","s\xF8r-aurdal.no","sor-fron.no","s\xF8r-fron.no","sor-odal.no","s\xF8r-odal.no","sor-varanger.no","s\xF8r-varanger.no","matta-varjjat.no","m\xE1tta-v\xE1rjjat.no","sorfold.no","s\xF8rfold.no","sorreisa.no","s\xF8rreisa.no","sorum.no","s\xF8rum.no","tana.no","deatnu.no","time.no","tingvoll.no","tinn.no","tjeldsund.no","dielddanuorri.no","tjome.no","tj\xF8me.no","tokke.no","tolga.no","torsken.no","tranoy.no","tran\xF8y.no","tromso.no","troms\xF8.no","tromsa.no","romsa.no","trondheim.no","troandin.no","trysil.no","trana.no","tr\xE6na.no","trogstad.no","tr\xF8gstad.no","tvedestrand.no","tydal.no","tynset.no","tysfjord.no","divtasvuodna.no","divttasvuotna.no","tysnes.no","tysvar.no","tysv\xE6r.no","tonsberg.no","t\xF8nsberg.no","ullensaker.no","ullensvang.no","ulvik.no","utsira.no","vadso.no","vads\xF8.no","cahcesuolo.no","\u010D\xE1hcesuolo.no","vaksdal.no","valle.no","vang.no","vanylven.no","vardo.no","vard\xF8.no","varggat.no","v\xE1rgg\xE1t.no","vefsn.no","vaapste.no","vega.no","vegarshei.no","veg\xE5rshei.no","vennesla.no","verdal.no","verran.no","vestby.no","vestnes.no","vestre-slidre.no","vestre-toten.no","vestvagoy.no","vestv\xE5g\xF8y.no","vevelstad.no","vik.no","vikna.no","vindafjord.no","volda.no","voss.no","varoy.no","v\xE6r\xF8y.no","vagan.no","v\xE5gan.no","voagat.no","vagsoy.no","v\xE5gs\xF8y.no","vaga.no","v\xE5g\xE5.no","valer.ostfold.no","v\xE5ler.\xF8stfold.no","valer.hedmark.no","v\xE5ler.hedmark.no","*.np","nr","biz.nr","info.nr","gov.nr","edu.nr","org.nr","net.nr","com.nr","nu","nz","ac.nz","co.nz","cri.nz","geek.nz","gen.nz","govt.nz","health.nz","iwi.nz","kiwi.nz","maori.nz","mil.nz","m\u0101ori.nz","net.nz","org.nz","parliament.nz","school.nz","om","co.om","com.om","edu.om","gov.om","med.om","museum.om","net.om","org.om","pro.om","onion","org","pa","ac.pa","gob.pa","com.pa","org.pa","sld.pa","edu.pa","net.pa","ing.pa","abo.pa","med.pa","nom.pa","pe","edu.pe","gob.pe","nom.pe","mil.pe","org.pe","com.pe","net.pe","pf","com.pf","org.pf","edu.pf","*.pg","ph","com.ph","net.ph","org.ph","gov.ph","edu.ph","ngo.ph","mil.ph","i.ph","pk","com.pk","net.pk","edu.pk","org.pk","fam.pk","biz.pk","web.pk","gov.pk","gob.pk","gok.pk","gon.pk","gop.pk","gos.pk","info.pk","pl","com.pl","net.pl","org.pl","aid.pl","agro.pl","atm.pl","auto.pl","biz.pl","edu.pl","gmina.pl","gsm.pl","info.pl","mail.pl","miasta.pl","media.pl","mil.pl","nieruchomosci.pl","nom.pl","pc.pl","powiat.pl","priv.pl","realestate.pl","rel.pl","sex.pl","shop.pl","sklep.pl","sos.pl","szkola.pl","targi.pl","tm.pl","tourism.pl","travel.pl","turystyka.pl","gov.pl","ap.gov.pl","ic.gov.pl","is.gov.pl","us.gov.pl","kmpsp.gov.pl","kppsp.gov.pl","kwpsp.gov.pl","psp.gov.pl","wskr.gov.pl","kwp.gov.pl","mw.gov.pl","ug.gov.pl","um.gov.pl","umig.gov.pl","ugim.gov.pl","upow.gov.pl","uw.gov.pl","starostwo.gov.pl","pa.gov.pl","po.gov.pl","psse.gov.pl","pup.gov.pl","rzgw.gov.pl","sa.gov.pl","so.gov.pl","sr.gov.pl","wsa.gov.pl","sko.gov.pl","uzs.gov.pl","wiih.gov.pl","winb.gov.pl","pinb.gov.pl","wios.gov.pl","witd.gov.pl","wzmiuw.gov.pl","piw.gov.pl","wiw.gov.pl","griw.gov.pl","wif.gov.pl","oum.gov.pl","sdn.gov.pl","zp.gov.pl","uppo.gov.pl","mup.gov.pl","wuoz.gov.pl","konsulat.gov.pl","oirm.gov.pl","augustow.pl","babia-gora.pl","bedzin.pl","beskidy.pl","bialowieza.pl","bialystok.pl","bielawa.pl","bieszczady.pl","boleslawiec.pl","bydgoszcz.pl","bytom.pl","cieszyn.pl","czeladz.pl","czest.pl","dlugoleka.pl","elblag.pl","elk.pl","glogow.pl","gniezno.pl","gorlice.pl","grajewo.pl","ilawa.pl","jaworzno.pl","jelenia-gora.pl","jgora.pl","kalisz.pl","kazimierz-dolny.pl","karpacz.pl","kartuzy.pl","kaszuby.pl","katowice.pl","kepno.pl","ketrzyn.pl","klodzko.pl","kobierzyce.pl","kolobrzeg.pl","konin.pl","konskowola.pl","kutno.pl","lapy.pl","lebork.pl","legnica.pl","lezajsk.pl","limanowa.pl","lomza.pl","lowicz.pl","lubin.pl","lukow.pl","malbork.pl","malopolska.pl","mazowsze.pl","mazury.pl","mielec.pl","mielno.pl","mragowo.pl","naklo.pl","nowaruda.pl","nysa.pl","olawa.pl","olecko.pl","olkusz.pl","olsztyn.pl","opoczno.pl","opole.pl","ostroda.pl","ostroleka.pl","ostrowiec.pl","ostrowwlkp.pl","pila.pl","pisz.pl","podhale.pl","podlasie.pl","polkowice.pl","pomorze.pl","pomorskie.pl","prochowice.pl","pruszkow.pl","przeworsk.pl","pulawy.pl","radom.pl","rawa-maz.pl","rybnik.pl","rzeszow.pl","sanok.pl","sejny.pl","slask.pl","slupsk.pl","sosnowiec.pl","stalowa-wola.pl","skoczow.pl","starachowice.pl","stargard.pl","suwalki.pl","swidnica.pl","swiebodzin.pl","swinoujscie.pl","szczecin.pl","szczytno.pl","tarnobrzeg.pl","tgory.pl","turek.pl","tychy.pl","ustka.pl","walbrzych.pl","warmia.pl","warszawa.pl","waw.pl","wegrow.pl","wielun.pl","wlocl.pl","wloclawek.pl","wodzislaw.pl","wolomin.pl","wroclaw.pl","zachpomor.pl","zagan.pl","zarow.pl","zgora.pl","zgorzelec.pl","pm","pn","gov.pn","co.pn","org.pn","edu.pn","net.pn","post","pr","com.pr","net.pr","org.pr","gov.pr","edu.pr","isla.pr","pro.pr","biz.pr","info.pr","name.pr","est.pr","prof.pr","ac.pr","pro","aaa.pro","aca.pro","acct.pro","avocat.pro","bar.pro","cpa.pro","eng.pro","jur.pro","law.pro","med.pro","recht.pro","ps","edu.ps","gov.ps","sec.ps","plo.ps","com.ps","org.ps","net.ps","pt","net.pt","gov.pt","org.pt","edu.pt","int.pt","publ.pt","com.pt","nome.pt","pw","co.pw","ne.pw","or.pw","ed.pw","go.pw","belau.pw","py","com.py","coop.py","edu.py","gov.py","mil.py","net.py","org.py","qa","com.qa","edu.qa","gov.qa","mil.qa","name.qa","net.qa","org.qa","sch.qa","re","asso.re","com.re","nom.re","ro","arts.ro","com.ro","firm.ro","info.ro","nom.ro","nt.ro","org.ro","rec.ro","store.ro","tm.ro","www.ro","rs","ac.rs","co.rs","edu.rs","gov.rs","in.rs","org.rs","ru","rw","ac.rw","co.rw","coop.rw","gov.rw","mil.rw","net.rw","org.rw","sa","com.sa","net.sa","org.sa","gov.sa","med.sa","pub.sa","edu.sa","sch.sa","sb","com.sb","edu.sb","gov.sb","net.sb","org.sb","sc","com.sc","gov.sc","net.sc","org.sc","edu.sc","sd","com.sd","net.sd","org.sd","edu.sd","med.sd","tv.sd","gov.sd","info.sd","se","a.se","ac.se","b.se","bd.se","brand.se","c.se","d.se","e.se","f.se","fh.se","fhsk.se","fhv.se","g.se","h.se","i.se","k.se","komforb.se","kommunalforbund.se","komvux.se","l.se","lanbib.se","m.se","n.se","naturbruksgymn.se","o.se","org.se","p.se","parti.se","pp.se","press.se","r.se","s.se","t.se","tm.se","u.se","w.se","x.se","y.se","z.se","sg","com.sg","net.sg","org.sg","gov.sg","edu.sg","per.sg","sh","com.sh","net.sh","gov.sh","org.sh","mil.sh","si","sj","sk","sl","com.sl","net.sl","edu.sl","gov.sl","org.sl","sm","sn","art.sn","com.sn","edu.sn","gouv.sn","org.sn","perso.sn","univ.sn","so","com.so","edu.so","gov.so","me.so","net.so","org.so","sr","ss","biz.ss","com.ss","edu.ss","gov.ss","net.ss","org.ss","st","co.st","com.st","consulado.st","edu.st","embaixada.st","gov.st","mil.st","net.st","org.st","principe.st","saotome.st","store.st","su","sv","com.sv","edu.sv","gob.sv","org.sv","red.sv","sx","gov.sx","sy","edu.sy","gov.sy","net.sy","mil.sy","com.sy","org.sy","sz","co.sz","ac.sz","org.sz","tc","td","tel","tf","tg","th","ac.th","co.th","go.th","in.th","mi.th","net.th","or.th","tj","ac.tj","biz.tj","co.tj","com.tj","edu.tj","go.tj","gov.tj","int.tj","mil.tj","name.tj","net.tj","nic.tj","org.tj","test.tj","web.tj","tk","tl","gov.tl","tm","com.tm","co.tm","org.tm","net.tm","nom.tm","gov.tm","mil.tm","edu.tm","tn","com.tn","ens.tn","fin.tn","gov.tn","ind.tn","intl.tn","nat.tn","net.tn","org.tn","info.tn","perso.tn","tourism.tn","edunet.tn","rnrt.tn","rns.tn","rnu.tn","mincom.tn","agrinet.tn","defense.tn","turen.tn","to","com.to","gov.to","net.to","org.to","edu.to","mil.to","tr","av.tr","bbs.tr","bel.tr","biz.tr","com.tr","dr.tr","edu.tr","gen.tr","gov.tr","info.tr","mil.tr","k12.tr","kep.tr","name.tr","net.tr","org.tr","pol.tr","tel.tr","tsk.tr","tv.tr","web.tr","nc.tr","gov.nc.tr","tt","co.tt","com.tt","org.tt","net.tt","biz.tt","info.tt","pro.tt","int.tt","coop.tt","jobs.tt","mobi.tt","travel.tt","museum.tt","aero.tt","name.tt","gov.tt","edu.tt","tv","tw","edu.tw","gov.tw","mil.tw","com.tw","net.tw","org.tw","idv.tw","game.tw","ebiz.tw","club.tw","\u7DB2\u8DEF.tw","\u7D44\u7E54.tw","\u5546\u696D.tw","tz","ac.tz","co.tz","go.tz","hotel.tz","info.tz","me.tz","mil.tz","mobi.tz","ne.tz","or.tz","sc.tz","tv.tz","ua","com.ua","edu.ua","gov.ua","in.ua","net.ua","org.ua","cherkassy.ua","cherkasy.ua","chernigov.ua","chernihiv.ua","chernivtsi.ua","chernovtsy.ua","ck.ua","cn.ua","cr.ua","crimea.ua","cv.ua","dn.ua","dnepropetrovsk.ua","dnipropetrovsk.ua","dominic.ua","donetsk.ua","dp.ua","if.ua","ivano-frankivsk.ua","kh.ua","kharkiv.ua","kharkov.ua","kherson.ua","khmelnitskiy.ua","khmelnytskyi.ua","kiev.ua","kirovograd.ua","km.ua","kr.ua","krym.ua","ks.ua","kv.ua","kyiv.ua","lg.ua","lt.ua","lugansk.ua","lutsk.ua","lv.ua","lviv.ua","mk.ua","mykolaiv.ua","nikolaev.ua","od.ua","odesa.ua","odessa.ua","pl.ua","poltava.ua","rivne.ua","rovno.ua","rv.ua","sb.ua","sebastopol.ua","sevastopol.ua","sm.ua","sumy.ua","te.ua","ternopil.ua","uz.ua","uzhgorod.ua","vinnica.ua","vinnytsia.ua","vn.ua","volyn.ua","yalta.ua","zaporizhzhe.ua","zaporizhzhia.ua","zhitomir.ua","zhytomyr.ua","zp.ua","zt.ua","ug","co.ug","or.ug","ac.ug","sc.ug","go.ug","ne.ug","com.ug","org.ug","uk","ac.uk","co.uk","gov.uk","ltd.uk","me.uk","net.uk","nhs.uk","org.uk","plc.uk","police.uk","*.sch.uk","us","dni.us","fed.us","isa.us","kids.us","nsn.us","ak.us","al.us","ar.us","as.us","az.us","ca.us","co.us","ct.us","dc.us","de.us","fl.us","ga.us","gu.us","hi.us","ia.us","id.us","il.us","in.us","ks.us","ky.us","la.us","ma.us","md.us","me.us","mi.us","mn.us","mo.us","ms.us","mt.us","nc.us","nd.us","ne.us","nh.us","nj.us","nm.us","nv.us","ny.us","oh.us","ok.us","or.us","pa.us","pr.us","ri.us","sc.us","sd.us","tn.us","tx.us","ut.us","vi.us","vt.us","va.us","wa.us","wi.us","wv.us","wy.us","k12.ak.us","k12.al.us","k12.ar.us","k12.as.us","k12.az.us","k12.ca.us","k12.co.us","k12.ct.us","k12.dc.us","k12.de.us","k12.fl.us","k12.ga.us","k12.gu.us","k12.ia.us","k12.id.us","k12.il.us","k12.in.us","k12.ks.us","k12.ky.us","k12.la.us","k12.ma.us","k12.md.us","k12.me.us","k12.mi.us","k12.mn.us","k12.mo.us","k12.ms.us","k12.mt.us","k12.nc.us","k12.ne.us","k12.nh.us","k12.nj.us","k12.nm.us","k12.nv.us","k12.ny.us","k12.oh.us","k12.ok.us","k12.or.us","k12.pa.us","k12.pr.us","k12.ri.us","k12.sc.us","k12.tn.us","k12.tx.us","k12.ut.us","k12.vi.us","k12.vt.us","k12.va.us","k12.wa.us","k12.wi.us","k12.wy.us","cc.ak.us","cc.al.us","cc.ar.us","cc.as.us","cc.az.us","cc.ca.us","cc.co.us","cc.ct.us","cc.dc.us","cc.de.us","cc.fl.us","cc.ga.us","cc.gu.us","cc.hi.us","cc.ia.us","cc.id.us","cc.il.us","cc.in.us","cc.ks.us","cc.ky.us","cc.la.us","cc.ma.us","cc.md.us","cc.me.us","cc.mi.us","cc.mn.us","cc.mo.us","cc.ms.us","cc.mt.us","cc.nc.us","cc.nd.us","cc.ne.us","cc.nh.us","cc.nj.us","cc.nm.us","cc.nv.us","cc.ny.us","cc.oh.us","cc.ok.us","cc.or.us","cc.pa.us","cc.pr.us","cc.ri.us","cc.sc.us","cc.sd.us","cc.tn.us","cc.tx.us","cc.ut.us","cc.vi.us","cc.vt.us","cc.va.us","cc.wa.us","cc.wi.us","cc.wv.us","cc.wy.us","lib.ak.us","lib.al.us","lib.ar.us","lib.as.us","lib.az.us","lib.ca.us","lib.co.us","lib.ct.us","lib.dc.us","lib.fl.us","lib.ga.us","lib.gu.us","lib.hi.us","lib.ia.us","lib.id.us","lib.il.us","lib.in.us","lib.ks.us","lib.ky.us","lib.la.us","lib.ma.us","lib.md.us","lib.me.us","lib.mi.us","lib.mn.us","lib.mo.us","lib.ms.us","lib.mt.us","lib.nc.us","lib.nd.us","lib.ne.us","lib.nh.us","lib.nj.us","lib.nm.us","lib.nv.us","lib.ny.us","lib.oh.us","lib.ok.us","lib.or.us","lib.pa.us","lib.pr.us","lib.ri.us","lib.sc.us","lib.sd.us","lib.tn.us","lib.tx.us","lib.ut.us","lib.vi.us","lib.vt.us","lib.va.us","lib.wa.us","lib.wi.us","lib.wy.us","pvt.k12.ma.us","chtr.k12.ma.us","paroch.k12.ma.us","ann-arbor.mi.us","cog.mi.us","dst.mi.us","eaton.mi.us","gen.mi.us","mus.mi.us","tec.mi.us","washtenaw.mi.us","uy","com.uy","edu.uy","gub.uy","mil.uy","net.uy","org.uy","uz","co.uz","com.uz","net.uz","org.uz","va","vc","com.vc","net.vc","org.vc","gov.vc","mil.vc","edu.vc","ve","arts.ve","co.ve","com.ve","e12.ve","edu.ve","firm.ve","gob.ve","gov.ve","info.ve","int.ve","mil.ve","net.ve","org.ve","rec.ve","store.ve","tec.ve","web.ve","vg","vi","co.vi","com.vi","k12.vi","net.vi","org.vi","vn","com.vn","net.vn","org.vn","edu.vn","gov.vn","int.vn","ac.vn","biz.vn","info.vn","name.vn","pro.vn","health.vn","vu","com.vu","edu.vu","net.vu","org.vu","wf","ws","com.ws","net.ws","org.ws","gov.ws","edu.ws","yt","\u0627\u0645\u0627\u0631\u0627\u062A","\u0570\u0561\u0575","\u09AC\u09BE\u0982\u09B2\u09BE","\u0431\u0433","\u0431\u0435\u043B","\u4E2D\u56FD","\u4E2D\u570B","\u0627\u0644\u062C\u0632\u0627\u0626\u0631","\u0645\u0635\u0631","\u0435\u044E","\u03B5\u03C5","\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627","\u10D2\u10D4","\u03B5\u03BB","\u9999\u6E2F","\u516C\u53F8.\u9999\u6E2F","\u6559\u80B2.\u9999\u6E2F","\u653F\u5E9C.\u9999\u6E2F","\u500B\u4EBA.\u9999\u6E2F","\u7DB2\u7D61.\u9999\u6E2F","\u7D44\u7E54.\u9999\u6E2F","\u0CAD\u0CBE\u0CB0\u0CA4","\u0B2D\u0B3E\u0B30\u0B24","\u09AD\u09BE\u09F0\u09A4","\u092D\u093E\u0930\u0924\u092E\u094D","\u092D\u093E\u0930\u094B\u0924","\u0680\u0627\u0631\u062A","\u0D2D\u0D3E\u0D30\u0D24\u0D02","\u092D\u093E\u0930\u0924","\u0628\u0627\u0631\u062A","\u0628\u06BE\u0627\u0631\u062A","\u0C2D\u0C3E\u0C30\u0C24\u0C4D","\u0AAD\u0ABE\u0AB0\u0AA4","\u0A2D\u0A3E\u0A30\u0A24","\u09AD\u09BE\u09B0\u09A4","\u0B87\u0BA8\u0BCD\u0BA4\u0BBF\u0BAF\u0BBE","\u0627\u06CC\u0631\u0627\u0646","\u0627\u064A\u0631\u0627\u0646","\u0639\u0631\u0627\u0642","\u0627\u0644\u0627\u0631\u062F\u0646","\uD55C\uAD6D","\u049B\u0430\u0437","\u0DBD\u0D82\u0D9A\u0DCF","\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8","\u0627\u0644\u0645\u063A\u0631\u0628","\u043C\u043A\u0434","\u043C\u043E\u043D","\u6FB3\u9580","\u6FB3\u95E8","\u0645\u0644\u064A\u0633\u064A\u0627","\u0639\u0645\u0627\u0646","\u067E\u0627\u06A9\u0633\u062A\u0627\u0646","\u067E\u0627\u0643\u0633\u062A\u0627\u0646","\u0641\u0644\u0633\u0637\u064A\u0646","\u0441\u0440\u0431","\u043F\u0440.\u0441\u0440\u0431","\u043E\u0440\u0433.\u0441\u0440\u0431","\u043E\u0431\u0440.\u0441\u0440\u0431","\u043E\u0434.\u0441\u0440\u0431","\u0443\u043F\u0440.\u0441\u0440\u0431","\u0430\u043A.\u0441\u0440\u0431","\u0440\u0444","\u0642\u0637\u0631","\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629","\u0627\u0644\u0633\u0639\u0648\u062F\u06CC\u0629","\u0627\u0644\u0633\u0639\u0648\u062F\u06CC\u06C3","\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0647","\u0633\u0648\u062F\u0627\u0646","\u65B0\u52A0\u5761","\u0B9A\u0BBF\u0B99\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0BC2\u0BB0\u0BCD","\u0633\u0648\u0631\u064A\u0629","\u0633\u0648\u0631\u064A\u0627","\u0E44\u0E17\u0E22","\u0E28\u0E36\u0E01\u0E29\u0E32.\u0E44\u0E17\u0E22","\u0E18\u0E38\u0E23\u0E01\u0E34\u0E08.\u0E44\u0E17\u0E22","\u0E23\u0E31\u0E10\u0E1A\u0E32\u0E25.\u0E44\u0E17\u0E22","\u0E17\u0E2B\u0E32\u0E23.\u0E44\u0E17\u0E22","\u0E40\u0E19\u0E47\u0E15.\u0E44\u0E17\u0E22","\u0E2D\u0E07\u0E04\u0E4C\u0E01\u0E23.\u0E44\u0E17\u0E22","\u062A\u0648\u0646\u0633","\u53F0\u7063","\u53F0\u6E7E","\u81FA\u7063","\u0443\u043A\u0440","\u0627\u0644\u064A\u0645\u0646","xxx","*.ye","ac.za","agric.za","alt.za","co.za","edu.za","gov.za","grondar.za","law.za","mil.za","net.za","ngo.za","nic.za","nis.za","nom.za","org.za","school.za","tm.za","web.za","zm","ac.zm","biz.zm","co.zm","com.zm","edu.zm","gov.zm","info.zm","mil.zm","net.zm","org.zm","sch.zm","zw","ac.zw","co.zw","gov.zw","mil.zw","org.zw","aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","academy","accenture","accountant","accountants","aco","actor","adac","ads","adult","aeg","aetna","afamilycompany","afl","africa","agakhan","agency","aig","aigo","airbus","airforce","airtel","akdn","alfaromeo","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","aol","apartments","app","apple","aquarelle","arab","aramco","archi","army","art","arte","asda","associates","athleta","attorney","auction","audi","audible","audio","auspost","author","auto","autos","avianca","aws","axa","azure","baby","baidu","banamex","bananarepublic","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bbc","bbt","bbva","bcg","bcn","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bharti","bible","bid","bike","bing","bingo","bio","black","blackfriday","blockbuster","blog","bloomberg","blue","bms","bmw","bnpparibas","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","bradesco","bridgestone","broadway","broker","brother","brussels","budapest","bugatti","build","builders","business","buy","buzz","bzh","cab","cafe","cal","call","calvinklein","cam","camera","camp","cancerresearch","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","caseih","cash","casino","catering","catholic","cba","cbn","cbre","cbs","ceb","center","ceo","cern","cfa","cfd","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","cipriani","circle","cisco","citadel","citi","citic","city","cityeats","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","coach","codes","coffee","college","cologne","comcast","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cookingchannel","cool","corsica","country","coupon","coupons","courses","cpa","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","csc","cuisinella","cymru","cyou","dabur","dad","dance","data","date","dating","datsun","day","dclk","dds","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dnp","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","duck","dunlop","dupont","durban","dvag","dvr","earth","eat","eco","edeka","education","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","ericsson","erni","esq","estate","esurance","etisalat","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fiat","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","flickr","flights","flir","florist","flowers","fly","foo","food","foodnetwork","football","ford","forex","forsale","forum","foundation","fox","free","fresenius","frl","frogans","frontdoor","frontier","ftr","fujitsu","fujixerox","fun","fund","furniture","futbol","fyi","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gbiz","gdn","gea","gent","genting","george","ggee","gift","gifts","gives","giving","glade","glass","gle","global","globo","gmail","gmbh","gmo","gmx","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","grainger","graphics","gratis","green","gripe","grocery","group","guardian","gucci","guge","guide","guitars","guru","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hgtv","hiphop","hisamitsu","hitachi","hiv","hkt","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hoteles","hotels","hotmail","house","how","hsbc","hughes","hyatt","hyundai","ibm","icbc","ice","icu","ieee","ifm","ikano","imamat","imdb","immo","immobilien","inc","industries","infiniti","ing","ink","institute","insurance","insure","intel","international","intuit","investments","ipiranga","irish","ismaili","ist","istanbul","itau","itv","iveco","jaguar","java","jcb","jcp","jeep","jetzt","jewelry","jio","jll","jmp","jnj","joburg","jot","joy","jpmorgan","jprs","juegos","juniper","kaufen","kddi","kerryhotels","kerrylogistics","kerryproperties","kfh","kia","kim","kinder","kindle","kitchen","kiwi","koeln","komatsu","kosher","kpmg","kpn","krd","kred","kuokgroup","kyoto","lacaixa","lamborghini","lamer","lancaster","lancia","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","linde","link","lipsy","live","living","lixil","llc","llp","loan","loans","locker","locus","loft","lol","london","lotte","lotto","love","lpl","lplfinancial","ltd","ltda","lundbeck","lupin","luxe","luxury","macys","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","maserati","mattel","mba","mckinsey","med","media","meet","melbourne","meme","memorial","men","menu","merckmsd","metlife","miami","microsoft","mini","mint","mit","mitsubishi","mlb","mls","mma","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","msd","mtn","mtr","mutual","nab","nadex","nagoya","nationwide","natura","navy","nba","nec","netbank","netflix","network","neustar","new","newholland","news","next","nextdirect","nexus","nfl","ngo","nhk","nico","nike","nikon","ninja","nissan","nissay","nokia","northwesternmutual","norton","now","nowruz","nowtv","nra","nrw","ntt","nyc","obi","observer","off","office","okinawa","olayan","olayangroup","oldnavy","ollo","omega","one","ong","onl","online","onyourside","ooo","open","oracle","orange","organic","origins","osaka","otsuka","ott","ovh","page","panasonic","paris","pars","partners","parts","party","passagens","pay","pccw","pet","pfizer","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","place","play","playstation","plumbing","plus","pnc","pohl","poker","politie","porn","pramerica","praxi","press","prime","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","pub","pwc","qpon","quebec","quest","qvc","racing","radio","raid","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","rightathome","ril","rio","rip","rmit","rocher","rocks","rodeo","rogers","room","rsvp","rugby","ruhr","run","rwe","ryukyu","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sbi","sbs","sca","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scjohnson","scor","scot","search","seat","secure","security","seek","select","sener","services","ses","seven","sew","sex","sexy","sfr","shangrila","sharp","shaw","shell","shia","shiksha","shoes","shop","shopping","shouji","show","showtime","shriram","silk","sina","singles","site","ski","skin","sky","skype","sling","smart","smile","sncf","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","spreadbetting","srl","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","sucks","supplies","supply","support","surf","surgery","suzuki","swatch","swiftcover","swiss","sydney","symantec","systems","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tci","tdk","team","tech","technology","temasek","tennis","teva","thd","theater","theatre","tiaa","tickets","tienda","tiffany","tips","tires","tirol","tjmaxx","tjx","tkmaxx","tmall","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","trade","trading","training","travel","travelchannel","travelers","travelersinsurance","trust","trv","tube","tui","tunes","tushu","tvs","ubank","ubs","unicom","university","uno","uol","ups","vacations","vana","vanguard","vegas","ventures","verisign","versicherung","vet","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vodka","volkswagen","volvo","vote","voting","voto","voyage","vuelos","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","wtc","wtf","xbox","xerox","xfinity","xihuan","xin","\u0915\u0949\u092E","\u30BB\u30FC\u30EB","\u4F5B\u5C71","\u6148\u5584","\u96C6\u56E2","\u5728\u7EBF","\u5927\u4F17\u6C7D\u8F66","\u70B9\u770B","\u0E04\u0E2D\u0E21","\u516B\u5366","\u0645\u0648\u0642\u0639","\u516C\u76CA","\u516C\u53F8","\u9999\u683C\u91CC\u62C9","\u7F51\u7AD9","\u79FB\u52A8","\u6211\u7231\u4F60","\u043C\u043E\u0441\u043A\u0432\u0430","\u043A\u0430\u0442\u043E\u043B\u0438\u043A","\u043E\u043D\u043B\u0430\u0439\u043D","\u0441\u0430\u0439\u0442","\u8054\u901A","\u05E7\u05D5\u05DD","\u65F6\u5C1A","\u5FAE\u535A","\u6DE1\u9A6C\u9521","\u30D5\u30A1\u30C3\u30B7\u30E7\u30F3","\u043E\u0440\u0433","\u0928\u0947\u091F","\u30B9\u30C8\u30A2","\u30A2\u30DE\u30BE\u30F3","\uC0BC\uC131","\u5546\u6807","\u5546\u5E97","\u5546\u57CE","\u0434\u0435\u0442\u0438","\u30DD\u30A4\u30F3\u30C8","\u65B0\u95FB","\u5DE5\u884C","\u5BB6\u96FB","\u0643\u0648\u0645","\u4E2D\u6587\u7F51","\u4E2D\u4FE1","\u5A31\u4E50","\u8C37\u6B4C","\u96FB\u8A0A\u76C8\u79D1","\u8D2D\u7269","\u30AF\u30E9\u30A6\u30C9","\u901A\u8CA9","\u7F51\u5E97","\u0938\u0902\u0917\u0920\u0928","\u9910\u5385","\u7F51\u7EDC","\u043A\u043E\u043C","\u4E9A\u9A6C\u900A","\u8BFA\u57FA\u4E9A","\u98DF\u54C1","\u98DE\u5229\u6D66","\u624B\u8868","\u624B\u673A","\u0627\u0631\u0627\u0645\u0643\u0648","\u0627\u0644\u0639\u0644\u064A\u0627\u0646","\u0627\u062A\u0635\u0627\u0644\u0627\u062A","\u0628\u0627\u0632\u0627\u0631","\u0627\u0628\u0648\u0638\u0628\u064A","\u0643\u0627\u062B\u0648\u0644\u064A\u0643","\u0647\u0645\u0631\u0627\u0647","\uB2F7\uCEF4","\u653F\u5E9C","\u0634\u0628\u0643\u0629","\u0628\u064A\u062A\u0643","\u0639\u0631\u0628","\u673A\u6784","\u7EC4\u7EC7\u673A\u6784","\u5065\u5EB7","\u62DB\u8058","\u0440\u0443\u0441","\u73E0\u5B9D","\u5927\u62FF","\u307F\u3093\u306A","\u30B0\u30FC\u30B0\u30EB","\u4E16\u754C","\u66F8\u7C4D","\u7F51\u5740","\uB2F7\uB137","\u30B3\u30E0","\u5929\u4E3B\u6559","\u6E38\u620F","verm\xF6gensberater","verm\xF6gensberatung","\u4F01\u4E1A","\u4FE1\u606F","\u5609\u91CC\u5927\u9152\u5E97","\u5609\u91CC","\u5E7F\u4E1C","\u653F\u52A1","xyz","yachts","yahoo","yamaxun","yandex","yodobashi","yoga","yokohama","you","youtube","yun","zappos","zara","zero","zip","zone","zuerich","cc.ua","inf.ua","ltd.ua","adobeaemcloud.com","adobeaemcloud.net","*.dev.adobeaemcloud.com","beep.pl","barsy.ca","*.compute.estate","*.alces.network","altervista.org","alwaysdata.net","cloudfront.net","*.compute.amazonaws.com","*.compute-1.amazonaws.com","*.compute.amazonaws.com.cn","us-east-1.amazonaws.com","cn-north-1.eb.amazonaws.com.cn","cn-northwest-1.eb.amazonaws.com.cn","elasticbeanstalk.com","ap-northeast-1.elasticbeanstalk.com","ap-northeast-2.elasticbeanstalk.com","ap-northeast-3.elasticbeanstalk.com","ap-south-1.elasticbeanstalk.com","ap-southeast-1.elasticbeanstalk.com","ap-southeast-2.elasticbeanstalk.com","ca-central-1.elasticbeanstalk.com","eu-central-1.elasticbeanstalk.com","eu-west-1.elasticbeanstalk.com","eu-west-2.elasticbeanstalk.com","eu-west-3.elasticbeanstalk.com","sa-east-1.elasticbeanstalk.com","us-east-1.elasticbeanstalk.com","us-east-2.elasticbeanstalk.com","us-gov-west-1.elasticbeanstalk.com","us-west-1.elasticbeanstalk.com","us-west-2.elasticbeanstalk.com","*.elb.amazonaws.com","*.elb.amazonaws.com.cn","s3.amazonaws.com","s3-ap-northeast-1.amazonaws.com","s3-ap-northeast-2.amazonaws.com","s3-ap-south-1.amazonaws.com","s3-ap-southeast-1.amazonaws.com","s3-ap-southeast-2.amazonaws.com","s3-ca-central-1.amazonaws.com","s3-eu-central-1.amazonaws.com","s3-eu-west-1.amazonaws.com","s3-eu-west-2.amazonaws.com","s3-eu-west-3.amazonaws.com","s3-external-1.amazonaws.com","s3-fips-us-gov-west-1.amazonaws.com","s3-sa-east-1.amazonaws.com","s3-us-gov-west-1.amazonaws.com","s3-us-east-2.amazonaws.com","s3-us-west-1.amazonaws.com","s3-us-west-2.amazonaws.com","s3.ap-northeast-2.amazonaws.com","s3.ap-south-1.amazonaws.com","s3.cn-north-1.amazonaws.com.cn","s3.ca-central-1.amazonaws.com","s3.eu-central-1.amazonaws.com","s3.eu-west-2.amazonaws.com","s3.eu-west-3.amazonaws.com","s3.us-east-2.amazonaws.com","s3.dualstack.ap-northeast-1.amazonaws.com","s3.dualstack.ap-northeast-2.amazonaws.com","s3.dualstack.ap-south-1.amazonaws.com","s3.dualstack.ap-southeast-1.amazonaws.com","s3.dualstack.ap-southeast-2.amazonaws.com","s3.dualstack.ca-central-1.amazonaws.com","s3.dualstack.eu-central-1.amazonaws.com","s3.dualstack.eu-west-1.amazonaws.com","s3.dualstack.eu-west-2.amazonaws.com","s3.dualstack.eu-west-3.amazonaws.com","s3.dualstack.sa-east-1.amazonaws.com","s3.dualstack.us-east-1.amazonaws.com","s3.dualstack.us-east-2.amazonaws.com","s3-website-us-east-1.amazonaws.com","s3-website-us-west-1.amazonaws.com","s3-website-us-west-2.amazonaws.com","s3-website-ap-northeast-1.amazonaws.com","s3-website-ap-southeast-1.amazonaws.com","s3-website-ap-southeast-2.amazonaws.com","s3-website-eu-west-1.amazonaws.com","s3-website-sa-east-1.amazonaws.com","s3-website.ap-northeast-2.amazonaws.com","s3-website.ap-south-1.amazonaws.com","s3-website.ca-central-1.amazonaws.com","s3-website.eu-central-1.amazonaws.com","s3-website.eu-west-2.amazonaws.com","s3-website.eu-west-3.amazonaws.com","s3-website.us-east-2.amazonaws.com","amsw.nl","t3l3p0rt.net","tele.amune.org","apigee.io","on-aptible.com","user.aseinet.ne.jp","gv.vc","d.gv.vc","user.party.eus","pimienta.org","poivron.org","potager.org","sweetpepper.org","myasustor.com","myfritz.net","*.awdev.ca","*.advisor.ws","b-data.io","backplaneapp.io","balena-devices.com","app.banzaicloud.io","betainabox.com","bnr.la","blackbaudcdn.net","boomla.net","boxfuse.io","square7.ch","bplaced.com","bplaced.de","square7.de","bplaced.net","square7.net","browsersafetymark.io","uk0.bigv.io","dh.bytemark.co.uk","vm.bytemark.co.uk","mycd.eu","carrd.co","crd.co","uwu.ai","ae.org","ar.com","br.com","cn.com","com.de","com.se","de.com","eu.com","gb.com","gb.net","hu.com","hu.net","jp.net","jpn.com","kr.com","mex.com","no.com","qc.com","ru.com","sa.com","se.net","uk.com","uk.net","us.com","uy.com","za.bz","za.com","africa.com","gr.com","in.net","us.org","co.com","c.la","certmgr.org","xenapponazure.com","discourse.group","discourse.team","virtueeldomein.nl","cleverapps.io","*.lcl.dev","*.stg.dev","c66.me","cloud66.ws","cloud66.zone","jdevcloud.com","wpdevcloud.com","cloudaccess.host","freesite.host","cloudaccess.net","cloudcontrolled.com","cloudcontrolapp.com","cloudera.site","trycloudflare.com","workers.dev","wnext.app","co.ca","*.otap.co","co.cz","c.cdn77.org","cdn77-ssl.net","r.cdn77.net","rsc.cdn77.org","ssl.origin.cdn77-secure.org","cloudns.asia","cloudns.biz","cloudns.club","cloudns.cc","cloudns.eu","cloudns.in","cloudns.info","cloudns.org","cloudns.pro","cloudns.pw","cloudns.us","cloudeity.net","cnpy.gdn","co.nl","co.no","webhosting.be","hosting-cluster.nl","ac.ru","edu.ru","gov.ru","int.ru","mil.ru","test.ru","dyn.cosidns.de","dynamisches-dns.de","dnsupdater.de","internet-dns.de","l-o-g-i-n.de","dynamic-dns.info","feste-ip.net","knx-server.net","static-access.net","realm.cz","*.cryptonomic.net","cupcake.is","*.customer-oci.com","*.oci.customer-oci.com","*.ocp.customer-oci.com","*.ocs.customer-oci.com","cyon.link","cyon.site","daplie.me","localhost.daplie.me","dattolocal.com","dattorelay.com","dattoweb.com","mydatto.com","dattolocal.net","mydatto.net","biz.dk","co.dk","firm.dk","reg.dk","store.dk","*.dapps.earth","*.bzz.dapps.earth","builtwithdark.com","edgestack.me","debian.net","dedyn.io","dnshome.de","online.th","shop.th","drayddns.com","dreamhosters.com","mydrobo.com","drud.io","drud.us","duckdns.org","dy.fi","tunk.org","dyndns-at-home.com","dyndns-at-work.com","dyndns-blog.com","dyndns-free.com","dyndns-home.com","dyndns-ip.com","dyndns-mail.com","dyndns-office.com","dyndns-pics.com","dyndns-remote.com","dyndns-server.com","dyndns-web.com","dyndns-wiki.com","dyndns-work.com","dyndns.biz","dyndns.info","dyndns.org","dyndns.tv","at-band-camp.net","ath.cx","barrel-of-knowledge.info","barrell-of-knowledge.info","better-than.tv","blogdns.com","blogdns.net","blogdns.org","blogsite.org","boldlygoingnowhere.org","broke-it.net","buyshouses.net","cechire.com","dnsalias.com","dnsalias.net","dnsalias.org","dnsdojo.com","dnsdojo.net","dnsdojo.org","does-it.net","doesntexist.com","doesntexist.org","dontexist.com","dontexist.net","dontexist.org","doomdns.com","doomdns.org","dvrdns.org","dyn-o-saur.com","dynalias.com","dynalias.net","dynalias.org","dynathome.net","dyndns.ws","endofinternet.net","endofinternet.org","endoftheinternet.org","est-a-la-maison.com","est-a-la-masion.com","est-le-patron.com","est-mon-blogueur.com","for-better.biz","for-more.biz","for-our.info","for-some.biz","for-the.biz","forgot.her.name","forgot.his.name","from-ak.com","from-al.com","from-ar.com","from-az.net","from-ca.com","from-co.net","from-ct.com","from-dc.com","from-de.com","from-fl.com","from-ga.com","from-hi.com","from-ia.com","from-id.com","from-il.com","from-in.com","from-ks.com","from-ky.com","from-la.net","from-ma.com","from-md.com","from-me.org","from-mi.com","from-mn.com","from-mo.com","from-ms.com","from-mt.com","from-nc.com","from-nd.com","from-ne.com","from-nh.com","from-nj.com","from-nm.com","from-nv.com","from-ny.net","from-oh.com","from-ok.com","from-or.com","from-pa.com","from-pr.com","from-ri.com","from-sc.com","from-sd.com","from-tn.com","from-tx.com","from-ut.com","from-va.com","from-vt.com","from-wa.com","from-wi.com","from-wv.com","from-wy.com","ftpaccess.cc","fuettertdasnetz.de","game-host.org","game-server.cc","getmyip.com","gets-it.net","go.dyndns.org","gotdns.com","gotdns.org","groks-the.info","groks-this.info","ham-radio-op.net","here-for-more.info","hobby-site.com","hobby-site.org","home.dyndns.org","homedns.org","homeftp.net","homeftp.org","homeip.net","homelinux.com","homelinux.net","homelinux.org","homeunix.com","homeunix.net","homeunix.org","iamallama.com","in-the-band.net","is-a-anarchist.com","is-a-blogger.com","is-a-bookkeeper.com","is-a-bruinsfan.org","is-a-bulls-fan.com","is-a-candidate.org","is-a-caterer.com","is-a-celticsfan.org","is-a-chef.com","is-a-chef.net","is-a-chef.org","is-a-conservative.com","is-a-cpa.com","is-a-cubicle-slave.com","is-a-democrat.com","is-a-designer.com","is-a-doctor.com","is-a-financialadvisor.com","is-a-geek.com","is-a-geek.net","is-a-geek.org","is-a-green.com","is-a-guru.com","is-a-hard-worker.com","is-a-hunter.com","is-a-knight.org","is-a-landscaper.com","is-a-lawyer.com","is-a-liberal.com","is-a-libertarian.com","is-a-linux-user.org","is-a-llama.com","is-a-musician.com","is-a-nascarfan.com","is-a-nurse.com","is-a-painter.com","is-a-patsfan.org","is-a-personaltrainer.com","is-a-photographer.com","is-a-player.com","is-a-republican.com","is-a-rockstar.com","is-a-socialist.com","is-a-soxfan.org","is-a-student.com","is-a-teacher.com","is-a-techie.com","is-a-therapist.com","is-an-accountant.com","is-an-actor.com","is-an-actress.com","is-an-anarchist.com","is-an-artist.com","is-an-engineer.com","is-an-entertainer.com","is-by.us","is-certified.com","is-found.org","is-gone.com","is-into-anime.com","is-into-cars.com","is-into-cartoons.com","is-into-games.com","is-leet.com","is-lost.org","is-not-certified.com","is-saved.org","is-slick.com","is-uberleet.com","is-very-bad.org","is-very-evil.org","is-very-good.org","is-very-nice.org","is-very-sweet.org","is-with-theband.com","isa-geek.com","isa-geek.net","isa-geek.org","isa-hockeynut.com","issmarterthanyou.com","isteingeek.de","istmein.de","kicks-ass.net","kicks-ass.org","knowsitall.info","land-4-sale.us","lebtimnetz.de","leitungsen.de","likes-pie.com","likescandy.com","merseine.nu","mine.nu","misconfused.org","mypets.ws","myphotos.cc","neat-url.com","office-on-the.net","on-the-web.tv","podzone.net","podzone.org","readmyblog.org","saves-the-whales.com","scrapper-site.net","scrapping.cc","selfip.biz","selfip.com","selfip.info","selfip.net","selfip.org","sells-for-less.com","sells-for-u.com","sells-it.net","sellsyourhome.org","servebbs.com","servebbs.net","servebbs.org","serveftp.net","serveftp.org","servegame.org","shacknet.nu","simple-url.com","space-to-rent.com","stuff-4-sale.org","stuff-4-sale.us","teaches-yoga.com","thruhere.net","traeumtgerade.de","webhop.biz","webhop.info","webhop.net","webhop.org","worse-than.tv","writesthisblog.com","ddnss.de","dyn.ddnss.de","dyndns.ddnss.de","dyndns1.de","dyn-ip24.de","home-webserver.de","dyn.home-webserver.de","myhome-server.de","ddnss.org","definima.net","definima.io","bci.dnstrace.pro","ddnsfree.com","ddnsgeek.com","giize.com","gleeze.com","kozow.com","loseyourip.com","ooguy.com","theworkpc.com","casacam.net","dynu.net","accesscam.org","camdvr.org","freeddns.org","mywire.org","webredirect.org","myddns.rocks","blogsite.xyz","dynv6.net","e4.cz","en-root.fr","mytuleap.com","onred.one","staging.onred.one","enonic.io","customer.enonic.io","eu.org","al.eu.org","asso.eu.org","at.eu.org","au.eu.org","be.eu.org","bg.eu.org","ca.eu.org","cd.eu.org","ch.eu.org","cn.eu.org","cy.eu.org","cz.eu.org","de.eu.org","dk.eu.org","edu.eu.org","ee.eu.org","es.eu.org","fi.eu.org","fr.eu.org","gr.eu.org","hr.eu.org","hu.eu.org","ie.eu.org","il.eu.org","in.eu.org","int.eu.org","is.eu.org","it.eu.org","jp.eu.org","kr.eu.org","lt.eu.org","lu.eu.org","lv.eu.org","mc.eu.org","me.eu.org","mk.eu.org","mt.eu.org","my.eu.org","net.eu.org","ng.eu.org","nl.eu.org","no.eu.org","nz.eu.org","paris.eu.org","pl.eu.org","pt.eu.org","q-a.eu.org","ro.eu.org","ru.eu.org","se.eu.org","si.eu.org","sk.eu.org","tr.eu.org","uk.eu.org","us.eu.org","eu-1.evennode.com","eu-2.evennode.com","eu-3.evennode.com","eu-4.evennode.com","us-1.evennode.com","us-2.evennode.com","us-3.evennode.com","us-4.evennode.com","twmail.cc","twmail.net","twmail.org","mymailer.com.tw","url.tw","apps.fbsbx.com","ru.net","adygeya.ru","bashkiria.ru","bir.ru","cbg.ru","com.ru","dagestan.ru","grozny.ru","kalmykia.ru","kustanai.ru","marine.ru","mordovia.ru","msk.ru","mytis.ru","nalchik.ru","nov.ru","pyatigorsk.ru","spb.ru","vladikavkaz.ru","vladimir.ru","abkhazia.su","adygeya.su","aktyubinsk.su","arkhangelsk.su","armenia.su","ashgabad.su","azerbaijan.su","balashov.su","bashkiria.su","bryansk.su","bukhara.su","chimkent.su","dagestan.su","east-kazakhstan.su","exnet.su","georgia.su","grozny.su","ivanovo.su","jambyl.su","kalmykia.su","kaluga.su","karacol.su","karaganda.su","karelia.su","khakassia.su","krasnodar.su","kurgan.su","kustanai.su","lenug.su","mangyshlak.su","mordovia.su","msk.su","murmansk.su","nalchik.su","navoi.su","north-kazakhstan.su","nov.su","obninsk.su","penza.su","pokrovsk.su","sochi.su","spb.su","tashkent.su","termez.su","togliatti.su","troitsk.su","tselinograd.su","tula.su","tuva.su","vladikavkaz.su","vladimir.su","vologda.su","channelsdvr.net","u.channelsdvr.net","fastly-terrarium.com","fastlylb.net","map.fastlylb.net","freetls.fastly.net","map.fastly.net","a.prod.fastly.net","global.prod.fastly.net","a.ssl.fastly.net","b.ssl.fastly.net","global.ssl.fastly.net","fastpanel.direct","fastvps-server.com","fhapp.xyz","fedorainfracloud.org","fedorapeople.org","cloud.fedoraproject.org","app.os.fedoraproject.org","app.os.stg.fedoraproject.org","mydobiss.com","filegear.me","filegear-au.me","filegear-de.me","filegear-gb.me","filegear-ie.me","filegear-jp.me","filegear-sg.me","firebaseapp.com","flynnhub.com","flynnhosting.net","0e.vc","freebox-os.com","freeboxos.com","fbx-os.fr","fbxos.fr","freebox-os.fr","freeboxos.fr","freedesktop.org","*.futurecms.at","*.ex.futurecms.at","*.in.futurecms.at","futurehosting.at","futuremailing.at","*.ex.ortsinfo.at","*.kunden.ortsinfo.at","*.statics.cloud","service.gov.uk","gehirn.ne.jp","usercontent.jp","gentapps.com","lab.ms","github.io","githubusercontent.com","gitlab.io","glitch.me","lolipop.io","cloudapps.digital","london.cloudapps.digital","homeoffice.gov.uk","ro.im","shop.ro","goip.de","run.app","a.run.app","web.app","*.0emm.com","appspot.com","*.r.appspot.com","blogspot.ae","blogspot.al","blogspot.am","blogspot.ba","blogspot.be","blogspot.bg","blogspot.bj","blogspot.ca","blogspot.cf","blogspot.ch","blogspot.cl","blogspot.co.at","blogspot.co.id","blogspot.co.il","blogspot.co.ke","blogspot.co.nz","blogspot.co.uk","blogspot.co.za","blogspot.com","blogspot.com.ar","blogspot.com.au","blogspot.com.br","blogspot.com.by","blogspot.com.co","blogspot.com.cy","blogspot.com.ee","blogspot.com.eg","blogspot.com.es","blogspot.com.mt","blogspot.com.ng","blogspot.com.tr","blogspot.com.uy","blogspot.cv","blogspot.cz","blogspot.de","blogspot.dk","blogspot.fi","blogspot.fr","blogspot.gr","blogspot.hk","blogspot.hr","blogspot.hu","blogspot.ie","blogspot.in","blogspot.is","blogspot.it","blogspot.jp","blogspot.kr","blogspot.li","blogspot.lt","blogspot.lu","blogspot.md","blogspot.mk","blogspot.mr","blogspot.mx","blogspot.my","blogspot.nl","blogspot.no","blogspot.pe","blogspot.pt","blogspot.qa","blogspot.re","blogspot.ro","blogspot.rs","blogspot.ru","blogspot.se","blogspot.sg","blogspot.si","blogspot.sk","blogspot.sn","blogspot.td","blogspot.tw","blogspot.ug","blogspot.vn","cloudfunctions.net","cloud.goog","codespot.com","googleapis.com","googlecode.com","pagespeedmobilizer.com","publishproxy.com","withgoogle.com","withyoutube.com","awsmppl.com","fin.ci","free.hr","caa.li","ua.rs","conf.se","hs.zone","hs.run","hashbang.sh","hasura.app","hasura-app.io","hepforge.org","herokuapp.com","herokussl.com","myravendb.com","ravendb.community","ravendb.me","development.run","ravendb.run","bpl.biz","orx.biz","ng.city","biz.gl","ng.ink","col.ng","firm.ng","gen.ng","ltd.ng","ngo.ng","ng.school","sch.so","h\xE4kkinen.fi","*.moonscale.io","moonscale.net","iki.fi","dyn-berlin.de","in-berlin.de","in-brb.de","in-butter.de","in-dsl.de","in-dsl.net","in-dsl.org","in-vpn.de","in-vpn.net","in-vpn.org","biz.at","info.at","info.cx","ac.leg.br","al.leg.br","am.leg.br","ap.leg.br","ba.leg.br","ce.leg.br","df.leg.br","es.leg.br","go.leg.br","ma.leg.br","mg.leg.br","ms.leg.br","mt.leg.br","pa.leg.br","pb.leg.br","pe.leg.br","pi.leg.br","pr.leg.br","rj.leg.br","rn.leg.br","ro.leg.br","rr.leg.br","rs.leg.br","sc.leg.br","se.leg.br","sp.leg.br","to.leg.br","pixolino.com","ipifony.net","mein-iserv.de","test-iserv.de","iserv.dev","iobb.net","myjino.ru","*.hosting.myjino.ru","*.landing.myjino.ru","*.spectrum.myjino.ru","*.vps.myjino.ru","*.triton.zone","*.cns.joyent.com","js.org","kaas.gg","khplay.nl","keymachine.de","kinghost.net","uni5.net","knightpoint.systems","oya.to","co.krd","edu.krd","git-repos.de","lcube-server.de","svn-repos.de","leadpages.co","lpages.co","lpusercontent.com","lelux.site","co.business","co.education","co.events","co.financial","co.network","co.place","co.technology","app.lmpm.com","linkitools.space","linkyard.cloud","linkyard-cloud.ch","members.linode.com","nodebalancer.linode.com","we.bs","loginline.app","loginline.dev","loginline.io","loginline.services","loginline.site","krasnik.pl","leczna.pl","lubartow.pl","lublin.pl","poniatowa.pl","swidnik.pl","uklugs.org","glug.org.uk","lug.org.uk","lugs.org.uk","barsy.bg","barsy.co.uk","barsyonline.co.uk","barsycenter.com","barsyonline.com","barsy.club","barsy.de","barsy.eu","barsy.in","barsy.info","barsy.io","barsy.me","barsy.menu","barsy.mobi","barsy.net","barsy.online","barsy.org","barsy.pro","barsy.pub","barsy.shop","barsy.site","barsy.support","barsy.uk","*.magentosite.cloud","mayfirst.info","mayfirst.org","hb.cldmail.ru","miniserver.com","memset.net","cloud.metacentrum.cz","custom.metacentrum.cz","flt.cloud.muni.cz","usr.cloud.muni.cz","meteorapp.com","eu.meteorapp.com","co.pl","azurecontainer.io","azurewebsites.net","azure-mobile.net","cloudapp.net","mozilla-iot.org","bmoattachments.org","net.ru","org.ru","pp.ru","ui.nabu.casa","pony.club","of.fashion","on.fashion","of.football","in.london","of.london","for.men","and.mom","for.mom","for.one","for.sale","of.work","to.work","nctu.me","bitballoon.com","netlify.com","4u.com","ngrok.io","nh-serv.co.uk","nfshost.com","dnsking.ch","mypi.co","n4t.co","001www.com","ddnslive.com","myiphost.com","forumz.info","16-b.it","32-b.it","64-b.it","soundcast.me","tcp4.me","dnsup.net","hicam.net","now-dns.net","ownip.net","vpndns.net","dynserv.org","now-dns.org","x443.pw","now-dns.top","ntdll.top","freeddns.us","crafting.xyz","zapto.xyz","nsupdate.info","nerdpol.ovh","blogsyte.com","brasilia.me","cable-modem.org","ciscofreak.com","collegefan.org","couchpotatofries.org","damnserver.com","ddns.me","ditchyourip.com","dnsfor.me","dnsiskinky.com","dvrcam.info","dynns.com","eating-organic.net","fantasyleague.cc","geekgalaxy.com","golffan.us","health-carereform.com","homesecuritymac.com","homesecuritypc.com","hopto.me","ilovecollege.info","loginto.me","mlbfan.org","mmafan.biz","myactivedirectory.com","mydissent.net","myeffect.net","mymediapc.net","mypsx.net","mysecuritycamera.com","mysecuritycamera.net","mysecuritycamera.org","net-freaks.com","nflfan.org","nhlfan.net","no-ip.ca","no-ip.co.uk","no-ip.net","noip.us","onthewifi.com","pgafan.net","point2this.com","pointto.us","privatizehealthinsurance.net","quicksytes.com","read-books.org","securitytactics.com","serveexchange.com","servehumour.com","servep2p.com","servesarcasm.com","stufftoread.com","ufcfan.org","unusualperson.com","workisboring.com","3utilities.com","bounceme.net","ddns.net","ddnsking.com","gotdns.ch","hopto.org","myftp.biz","myftp.org","myvnc.com","no-ip.biz","no-ip.info","no-ip.org","noip.me","redirectme.net","servebeer.com","serveblog.net","servecounterstrike.com","serveftp.com","servegame.com","servehalflife.com","servehttp.com","serveirc.com","serveminecraft.net","servemp3.com","servepics.com","servequake.com","sytes.net","webhop.me","zapto.org","stage.nodeart.io","nodum.co","nodum.io","pcloud.host","nyc.mn","nom.ae","nom.af","nom.ai","nom.al","nym.by","nom.bz","nym.bz","nom.cl","nym.ec","nom.gd","nom.ge","nom.gl","nym.gr","nom.gt","nym.gy","nym.hk","nom.hn","nym.ie","nom.im","nom.ke","nym.kz","nym.la","nym.lc","nom.li","nym.li","nym.lt","nym.lu","nom.lv","nym.me","nom.mk","nym.mn","nym.mx","nom.nu","nym.nz","nym.pe","nym.pt","nom.pw","nom.qa","nym.ro","nom.rs","nom.si","nym.sk","nom.st","nym.su","nym.sx","nom.tj","nym.tw","nom.ug","nom.uy","nom.vc","nom.vg","static.observableusercontent.com","cya.gg","cloudycluster.net","nid.io","opencraft.hosting","operaunite.com","skygearapp.com","outsystemscloud.com","ownprovider.com","own.pm","ox.rs","oy.lc","pgfog.com","pagefrontapp.com","art.pl","gliwice.pl","krakow.pl","poznan.pl","wroc.pl","zakopane.pl","pantheonsite.io","gotpantheon.com","mypep.link","perspecta.cloud","on-web.fr","*.platform.sh","*.platformsh.site","dyn53.io","co.bn","xen.prgmr.com","priv.at","prvcy.page","*.dweb.link","protonet.io","chirurgiens-dentistes-en-france.fr","byen.site","pubtls.org","qualifioapp.com","qbuser.com","instantcloud.cn","ras.ru","qa2.com","qcx.io","*.sys.qcx.io","dev-myqnapcloud.com","alpha-myqnapcloud.com","myqnapcloud.com","*.quipelements.com","vapor.cloud","vaporcloud.io","rackmaze.com","rackmaze.net","*.on-k3s.io","*.on-rancher.cloud","*.on-rio.io","readthedocs.io","rhcloud.com","app.render.com","onrender.com","repl.co","repl.run","resindevice.io","devices.resinstaging.io","hzc.io","wellbeingzone.eu","ptplus.fit","wellbeingzone.co.uk","git-pages.rit.edu","sandcats.io","logoip.de","logoip.com","schokokeks.net","gov.scot","scrysec.com","firewall-gateway.com","firewall-gateway.de","my-gateway.de","my-router.de","spdns.de","spdns.eu","firewall-gateway.net","my-firewall.org","myfirewall.org","spdns.org","senseering.net","biz.ua","co.ua","pp.ua","shiftedit.io","myshopblocks.com","shopitsite.com","mo-siemens.io","1kapp.com","appchizi.com","applinzi.com","sinaapp.com","vipsinaapp.com","siteleaf.net","bounty-full.com","alpha.bounty-full.com","beta.bounty-full.com","stackhero-network.com","static.land","dev.static.land","sites.static.land","apps.lair.io","*.stolos.io","spacekit.io","customer.speedpartner.de","api.stdlib.com","storj.farm","utwente.io","soc.srcf.net","user.srcf.net","temp-dns.com","applicationcloud.io","scapp.io","*.s5y.io","*.sensiosite.cloud","syncloud.it","diskstation.me","dscloud.biz","dscloud.me","dscloud.mobi","dsmynas.com","dsmynas.net","dsmynas.org","familyds.com","familyds.net","familyds.org","i234.me","myds.me","synology.me","vpnplus.to","direct.quickconnect.to","taifun-dns.de","gda.pl","gdansk.pl","gdynia.pl","med.pl","sopot.pl","edugit.org","telebit.app","telebit.io","*.telebit.xyz","gwiddle.co.uk","thingdustdata.com","cust.dev.thingdust.io","cust.disrec.thingdust.io","cust.prod.thingdust.io","cust.testing.thingdust.io","arvo.network","azimuth.network","bloxcms.com","townnews-staging.com","12hp.at","2ix.at","4lima.at","lima-city.at","12hp.ch","2ix.ch","4lima.ch","lima-city.ch","trafficplex.cloud","de.cool","12hp.de","2ix.de","4lima.de","lima-city.de","1337.pictures","clan.rip","lima-city.rocks","webspace.rocks","lima.zone","*.transurl.be","*.transurl.eu","*.transurl.nl","tuxfamily.org","dd-dns.de","diskstation.eu","diskstation.org","dray-dns.de","draydns.de","dyn-vpn.de","dynvpn.de","mein-vigor.de","my-vigor.de","my-wan.de","syno-ds.de","synology-diskstation.de","synology-ds.de","uber.space","*.uberspace.de","hk.com","hk.org","ltd.hk","inc.hk","virtualuser.de","virtual-user.de","urown.cloud","dnsupdate.info","lib.de.us","2038.io","router.management","v-info.info","voorloper.cloud","v.ua","wafflecell.com","*.webhare.dev","wedeploy.io","wedeploy.me","wedeploy.sh","remotewd.com","wmflabs.org","myforum.community","community-pro.de","diskussionsbereich.de","community-pro.net","meinforum.net","half.host","xnbay.com","u2.xnbay.com","u2-local.xnbay.com","cistron.nl","demon.nl","xs4all.space","yandexcloud.net","storage.yandexcloud.net","website.yandexcloud.net","official.academy","yolasite.com","ybo.faith","yombo.me","homelink.one","ybo.party","ybo.review","ybo.science","ybo.trade","nohost.me","noho.st","za.net","za.org","now.sh","bss.design","basicserver.io","virtualserver.io","enterprisecloud.nu"]});var MJe=b(Hg=>{"use strict";var jk=require("punycode"),zg={};zg.rules=BJe().map(function(e){return{rule:e,suffix:e.replace(/^(\*\.|\!)/,""),punySuffix:-1,wildcard:e.charAt(0)==="*",exception:e.charAt(0)==="!"}});zg.endsWith=function(e,t){return e.indexOf(t,e.length-t.length)!==-1};zg.findRule=function(e){var t=jk.toASCII(e);return zg.rules.reduce(function(r,n){return n.punySuffix===-1&&(n.punySuffix=jk.toASCII(n.suffix)),!zg.endsWith(t,"."+n.punySuffix)&&t!==n.punySuffix?r:n},null)};Hg.errorCodes={DOMAIN_TOO_SHORT:"Domain name too short.",DOMAIN_TOO_LONG:"Domain name too long. It should be no more than 255 chars.",LABEL_STARTS_WITH_DASH:"Domain name label can not start with a dash.",LABEL_ENDS_WITH_DASH:"Domain name label can not end with a dash.",LABEL_TOO_LONG:"Domain name label should be at most 63 chars long.",LABEL_TOO_SHORT:"Domain name label should be at least 1 character long.",LABEL_INVALID_CHARS:"Domain name label can only contain alphanumeric characters or dashes."};zg.validate=function(e){var t=jk.toASCII(e);if(t.length<1)return"DOMAIN_TOO_SHORT";if(t.length>255)return"DOMAIN_TOO_LONG";for(var r=t.split("."),n,i=0;i<r.length;++i){if(n=r[i],!n.length)return"LABEL_TOO_SHORT";if(n.length>63)return"LABEL_TOO_LONG";if(n.charAt(0)==="-")return"LABEL_STARTS_WITH_DASH";if(n.charAt(n.length-1)==="-")return"LABEL_ENDS_WITH_DASH";if(!/^[a-z0-9\-]+$/.test(n))return"LABEL_INVALID_CHARS"}};Hg.parse=function(e){if(typeof e!="string")throw new TypeError("Domain name must be a string.");var t=e.slice(0).toLowerCase();t.charAt(t.length-1)==="."&&(t=t.slice(0,t.length-1));var r=zg.validate(t);if(r)return{input:e,error:{message:Hg.errorCodes[r],code:r}};var n={input:e,tld:null,sld:null,domain:null,subdomain:null,listed:!1},i=t.split(".");if(i[i.length-1]==="local")return n;var a=function(){return/xn--/.test(t)&&(n.domain&&(n.domain=jk.toASCII(n.domain)),n.subdomain&&(n.subdomain=jk.toASCII(n.subdomain))),n},s=zg.findRule(t);if(!s)return i.length<2?n:(n.tld=i.pop(),n.sld=i.pop(),n.domain=[n.sld,n.tld].join("."),i.length&&(n.subdomain=i.pop()),a());n.listed=!0;var o=s.suffix.split("."),c=i.slice(0,i.length-o.length);return s.exception&&c.push(o.shift()),n.tld=o.join("."),!c.length||(s.wildcard&&(o.unshift(c.pop()),n.tld=o.join(".")),!c.length)||(n.sld=c.pop(),n.domain=[n.sld,n.tld].join("."),c.length&&(n.subdomain=c.join("."))),a()};Hg.get=function(e){return e&&Hg.parse(e).domain||null};Hg.isValid=function(e){var t=Hg.parse(e);return!!(t.domain&&t.listed)}});var _le=b(UJe=>{"use strict";var Ecr=MJe();function Scr(e){return Ecr.get(e)}UJe.getPublicSuffix=Scr});var xle=b(zJe=>{"use strict";function Xd(){}zJe.Store=Xd;Xd.prototype.synchronous=!1;Xd.prototype.findCookie=function(e,t,r,n){throw new Error("findCookie is not implemented")};Xd.prototype.findCookies=function(e,t,r){throw new Error("findCookies is not implemented")};Xd.prototype.putCookie=function(e,t){throw new Error("putCookie is not implemented")};Xd.prototype.updateCookie=function(e,t,r){throw new Error("updateCookie is not implemented")};Xd.prototype.removeCookie=function(e,t,r,n){throw new Error("removeCookie is not implemented")};Xd.prototype.removeCookies=function(e,t,r){throw new Error("removeCookies is not implemented")};Xd.prototype.removeAllCookies=function(e){throw new Error("removeAllCookies is not implemented")};Xd.prototype.getAllCookies=function(e){throw new Error("getAllCookies is not implemented (therefore jar cannot be serialized)")}});var Ele=b(HJe=>{"use strict";var kcr=_le();function Acr(e){var t=kcr.getPublicSuffix(e);if(!t)return null;if(t==e)return[e];for(var r=e.slice(0,-(t.length+1)),n=r.split(".").reverse(),i=t,a=[i];n.length;)i=n.shift()+"."+i,a.push(i);return a}HJe.permuteDomain=Acr});var Sle=b(VJe=>{"use strict";function Tcr(e,t){if(t===e)return!0;var r=e.indexOf(t);return r===0&&(t.substr(-1)==="/"||e.substr(t.length,1)==="/")}VJe.pathMatch=Tcr});var KJe=b(WJe=>{"use strict";var GJe=xle().Store,Ocr=Ele().permuteDomain,Dcr=Sle().pathMatch,xN=require("util");function Zu(){GJe.call(this),this.idx={}}xN.inherits(Zu,GJe);WJe.MemoryCookieStore=Zu;Zu.prototype.idx=null;Zu.prototype.synchronous=!0;Zu.prototype.inspect=function(){return"{ idx: "+xN.inspect(this.idx,!1,2)+" }"};xN.inspect.custom&&(Zu.prototype[xN.inspect.custom]=Zu.prototype.inspect);Zu.prototype.findCookie=function(e,t,r,n){return!this.idx[e]||!this.idx[e][t]?n(null,void 0):n(null,this.idx[e][t][r]||null)};Zu.prototype.findCookies=function(e,t,r){var n=[];if(!e)return r(null,[]);var i;t?i=function(c){Object.keys(c).forEach(function(p){if(Dcr(t,p)){var f=c[p];for(var d in f)n.push(f[d])}})}:i=function(c){for(var p in c){var f=c[p];for(var d in f)n.push(f[d])}};var a=Ocr(e)||[e],s=this.idx;a.forEach(function(o){var c=s[o];c&&i(c)}),r(null,n)};Zu.prototype.putCookie=function(e,t){this.idx[e.domain]||(this.idx[e.domain]={}),this.idx[e.domain][e.path]||(this.idx[e.domain][e.path]={}),this.idx[e.domain][e.path][e.key]=e,t(null)};Zu.prototype.updateCookie=function(e,t,r){this.putCookie(t,r)};Zu.prototype.removeCookie=function(e,t,r,n){this.idx[e]&&this.idx[e][t]&&this.idx[e][t][r]&&delete this.idx[e][t][r],n(null)};Zu.prototype.removeCookies=function(e,t,r){return this.idx[e]&&(t?delete this.idx[e][t]:delete this.idx[e]),r(null)};Zu.prototype.removeAllCookies=function(e){return this.idx={},e(null)};Zu.prototype.getAllCookies=function(e){var t=[],r=this.idx,n=Object.keys(r);n.forEach(function(i){var a=Object.keys(r[i]);a.forEach(function(s){var o=Object.keys(r[i][s]);o.forEach(function(c){c!==null&&t.push(r[i][s][c])})})}),t.sort(function(i,a){return(i.creationIndex||0)-(a.creationIndex||0)}),e(null,t)}});var JJe=b((xin,YJe)=>{YJe.exports="2.5.0"});var Ple=b(oo=>{"use strict";var Ccr=require("net"),Pcr=require("url").parse,XJe=require("util"),Ole=_le(),eXe=xle().Store,tXe=KJe().MemoryCookieStore,rXe=Sle().pathMatch,nXe=JJe(),kle;try{kle=require("punycode")}catch{console.warn("tough-cookie: can't load punycode; won't use punycode for domain normalization")}var Icr=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/,QJe=/[\x00-\x1F]/,ZJe=[`
`,"\r","\0"],Rcr=/[\x20-\x3A\x3C-\x7E]+/,Fcr=/[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/,jcr={jan:0,feb:1,mar:2,apr:3,may:4,jun:5,jul:6,aug:7,sep:8,oct:9,nov:10,dec:11},Ncr=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],qcr=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Ale=2147483647e3,Lcr=0;function Tle(e,t,r,n){for(var i=0;i<e.length;){var a=e.charCodeAt(i);if(a<=47||a>=58)break;i++}return i<t||i>r||!n&&i!=e.length?null:parseInt(e.substr(0,i),10)}function $cr(e){var t=e.split(":"),r=[0,0,0];if(t.length!==3)return null;for(var n=0;n<3;n++){var i=n==2,a=Tle(t[n],1,2,i);if(a===null)return null;r[n]=a}return r}function Bcr(e){e=String(e).substr(0,3).toLowerCase();var t=jcr[e];return t>=0?t:null}function Nk(e){if(e){var t=e.split(Fcr);if(t){for(var r=null,n=null,i=null,a=null,s=null,o=null,c=0;c<t.length;c++){var p=t[c].trim();if(p.length){var f;if(i===null&&(f=$cr(p),f)){r=f[0],n=f[1],i=f[2];continue}if(a===null&&(f=Tle(p,1,2,!0),f!==null)){a=f;continue}if(s===null&&(f=Bcr(p),f!==null)){s=f;continue}o===null&&(f=Tle(p,2,4,!0),f!==null&&(o=f,o>=70&&o<=99?o+=1900:o>=0&&o<=69&&(o+=2e3)))}}if(!(a===null||s===null||o===null||i===null||a<1||a>31||o<1601||r>23||n>59||i>59))return new Date(Date.UTC(o,s,a,r,n,i))}}}function iXe(e){var t=e.getUTCDate();t=t>=10?t:"0"+t;var r=e.getUTCHours();r=r>=10?r:"0"+r;var n=e.getUTCMinutes();n=n>=10?n:"0"+n;var i=e.getUTCSeconds();return i=i>=10?i:"0"+i,qcr[e.getUTCDay()]+", "+t+" "+Ncr[e.getUTCMonth()]+" "+e.getUTCFullYear()+" "+r+":"+n+":"+i+" GMT"}function y3(e){return e==null?null:(e=e.trim().replace(/^\./,""),kle&&/[^\u0001-\u007f]/.test(e)&&(e=kle.toASCII(e)),e.toLowerCase())}function Dle(e,t,r){if(e==null||t==null)return null;if(r!==!1&&(e=y3(e),t=y3(t)),e==t)return!0;if(Ccr.isIP(e))return!1;var n=e.indexOf(t);return!(n<=0||e.length!==t.length+n||e.substr(n-1,1)!==".")}function aXe(e){if(!e||e.substr(0,1)!=="/")return"/";if(e==="/")return e;var t=e.lastIndexOf("/");return t===0?"/":e.slice(0,t)}function Mcr(e){for(var t=0;t<ZJe.length;t++){var r=e.indexOf(ZJe[t]);r!==-1&&(e=e.substr(0,r))}return e}function Ucr(e,t){e=Mcr(e);var r=e.indexOf("=");if(t)r===0&&(e=e.substr(1),r=e.indexOf("="));else if(r<=0)return;var n,i;if(r<=0?(n="",i=e.trim()):(n=e.substr(0,r).trim(),i=e.substr(r+1).trim()),!(QJe.test(n)||QJe.test(i))){var a=new Pr;return a.key=n,a.value=i,a}}function sXe(e,t){(!t||typeof t!="object")&&(t={}),e=e.trim();var r=e.indexOf(";"),n=r===-1?e:e.substr(0,r),i=Ucr(n,!!t.loose);if(i){if(r===-1)return i;var a=e.slice(r+1).trim();if(a.length===0)return i;for(var s=a.split(";");s.length;){var o=s.shift().trim();if(o.length!==0){var c=o.indexOf("="),p,f;switch(c===-1?(p=o,f=null):(p=o.substr(0,c),f=o.substr(c+1)),p=p.trim().toLowerCase(),f&&(f=f.trim()),p){case"expires":if(f){var d=Nk(f);d&&(i.expires=d)}break;case"max-age":if(f&&/^-?[0-9]+$/.test(f)){var h=parseInt(f,10);i.setMaxAge(h)}break;case"domain":if(f){var g=f.trim().replace(/^\./,"");g&&(i.domain=g.toLowerCase())}break;case"path":i.path=f&&f[0]==="/"?f:null;break;case"secure":i.secure=!0;break;case"httponly":i.httpOnly=!0;break;default:i.extensions=i.extensions||[],i.extensions.push(o);break}}}return i}}function oXe(e){var t;try{t=JSON.parse(e)}catch(r){return r}return t}function EN(e){if(!e)return null;var t;if(typeof e=="string"){if(t=oXe(e),t instanceof Error)return null}else t=e;for(var r=new Pr,n=0;n<Pr.serializableProperties.length;n++){var i=Pr.serializableProperties[n];t[i]===void 0||t[i]===Pr.prototype[i]||(i==="expires"||i==="creation"||i==="lastAccessed"?t[i]===null?r[i]=null:r[i]=t[i]=="Infinity"?"Infinity":new Date(t[i]):r[i]=t[i])}return r}function Cle(e,t){var r=0,n=e.path?e.path.length:0,i=t.path?t.path.length:0;if(r=i-n,r!==0)return r;var a=e.creation?e.creation.getTime():Ale,s=t.creation?t.creation.getTime():Ale;return r=a-s,r!==0||(r=e.creationIndex-t.creationIndex),r}function zcr(e){if(e==="/")return["/"];e.lastIndexOf("/")===e.length-1&&(e=e.substr(0,e.length-1));for(var t=[e];e.length>1;){var r=e.lastIndexOf("/");if(r===0)break;e=e.substr(0,r),t.push(e)}return t.push("/"),t}function uXe(e){if(e instanceof Object)return e;try{e=decodeURI(e)}catch{}return Pcr(e)}function Pr(e){e=e||{},Object.keys(e).forEach(function(t){Pr.prototype.hasOwnProperty(t)&&Pr.prototype[t]!==e[t]&&t.substr(0,1)!=="_"&&(this[t]=e[t])},this),this.creation=this.creation||new Date,Object.defineProperty(this,"creationIndex",{configurable:!1,enumerable:!1,writable:!0,value:++Pr.cookiesCreated})}Pr.cookiesCreated=0;Pr.parse=sXe;Pr.fromJSON=EN;Pr.prototype.key="";Pr.prototype.value="";Pr.prototype.expires="Infinity";Pr.prototype.maxAge=null;Pr.prototype.domain=null;Pr.prototype.path=null;Pr.prototype.secure=!1;Pr.prototype.httpOnly=!1;Pr.prototype.extensions=null;Pr.prototype.hostOnly=null;Pr.prototype.pathIsDefault=null;Pr.prototype.creation=null;Pr.prototype.lastAccessed=null;Object.defineProperty(Pr.prototype,"creationIndex",{configurable:!0,enumerable:!1,writable:!0,value:0});Pr.serializableProperties=Object.keys(Pr.prototype).filter(function(e){return!(Pr.prototype[e]instanceof Function||e==="creationIndex"||e.substr(0,1)==="_")});Pr.prototype.inspect=function(){var t=Date.now();return'Cookie="'+this.toString()+"; hostOnly="+(this.hostOnly!=null?this.hostOnly:"?")+"; aAge="+(this.lastAccessed?t-this.lastAccessed.getTime()+"ms":"?")+"; cAge="+(this.creation?t-this.creation.getTime()+"ms":"?")+'"'};XJe.inspect.custom&&(Pr.prototype[XJe.inspect.custom]=Pr.prototype.inspect);Pr.prototype.toJSON=function(){for(var e={},t=Pr.serializableProperties,r=0;r<t.length;r++){var n=t[r];this[n]!==Pr.prototype[n]&&(n==="expires"||n==="creation"||n==="lastAccessed"?this[n]===null?e[n]=null:e[n]=this[n]=="Infinity"?"Infinity":this[n].toISOString():n==="maxAge"?this[n]!==null&&(e[n]=this[n]==1/0||this[n]==-1/0?this[n].toString():this[n]):this[n]!==Pr.prototype[n]&&(e[n]=this[n]))}return e};Pr.prototype.clone=function(){return EN(this.toJSON())};Pr.prototype.validate=function(){if(!Icr.test(this.value)||this.expires!=1/0&&!(this.expires instanceof Date)&&!Nk(this.expires)||this.maxAge!=null&&this.maxAge<=0||this.path!=null&&!Rcr.test(this.path))return!1;var t=this.cdomain();if(t){if(t.match(/\.$/))return!1;var r=Ole.getPublicSuffix(t);if(r==null)return!1}return!0};Pr.prototype.setExpires=function(t){t instanceof Date?this.expires=t:this.expires=Nk(t)||"Infinity"};Pr.prototype.setMaxAge=function(t){t===1/0||t===-1/0?this.maxAge=t.toString():this.maxAge=t};Pr.prototype.cookieString=function(){var t=this.value;return t==null&&(t=""),this.key===""?t:this.key+"="+t};Pr.prototype.toString=function(){var t=this.cookieString();return this.expires!=1/0&&(this.expires instanceof Date?t+="; Expires="+iXe(this.expires):t+="; Expires="+this.expires),this.maxAge!=null&&this.maxAge!=1/0&&(t+="; Max-Age="+this.maxAge),this.domain&&!this.hostOnly&&(t+="; Domain="+this.domain),this.path&&(t+="; Path="+this.path),this.secure&&(t+="; Secure"),this.httpOnly&&(t+="; HttpOnly"),this.extensions&&this.extensions.forEach(function(r){t+="; "+r}),t};Pr.prototype.TTL=function(t){if(this.maxAge!=null)return this.maxAge<=0?0:this.maxAge*1e3;var r=this.expires;return r!=1/0?(r instanceof Date||(r=Nk(r)||1/0),r==1/0?1/0:r.getTime()-(t||Date.now())):1/0};Pr.prototype.expiryTime=function(t){if(this.maxAge!=null){var r=t||this.creation||new Date,n=this.maxAge<=0?-1/0:this.maxAge*1e3;return r.getTime()+n}return this.expires==1/0?1/0:this.expires.getTime()};Pr.prototype.expiryDate=function(t){var r=this.expiryTime(t);return r==1/0?new Date(Ale):r==-1/0?new Date(Lcr):new Date(r)};Pr.prototype.isPersistent=function(){return this.maxAge!=null||this.expires!=1/0};Pr.prototype.cdomain=Pr.prototype.canonicalizedDomain=function(){return this.domain==null?null:y3(this.domain)};function ja(e,t){typeof t=="boolean"?t={rejectPublicSuffixes:t}:t==null&&(t={}),t.rejectPublicSuffixes!=null&&(this.rejectPublicSuffixes=t.rejectPublicSuffixes),t.looseMode!=null&&(this.enableLooseMode=t.looseMode),e||(e=new tXe),this.store=e}ja.prototype.store=null;ja.prototype.rejectPublicSuffixes=!0;ja.prototype.enableLooseMode=!1;var Vg=[];Vg.push("setCookie");ja.prototype.setCookie=function(e,t,r,n){var i,a=uXe(t);r instanceof Function&&(n=r,r={});var s=y3(a.hostname),o=this.enableLooseMode;if(r.loose!=null&&(o=r.loose),e instanceof Pr||(e=Pr.parse(e,{loose:o})),!e)return i=new Error("Cookie failed to parse"),n(r.ignoreError?null:i);var c=r.now||new Date;if(this.rejectPublicSuffixes&&e.domain){var p=Ole.getPublicSuffix(e.cdomain());if(p==null)return i=new Error("Cookie has domain set to a public suffix"),n(r.ignoreError?null:i)}if(e.domain){if(!Dle(s,e.cdomain(),!1))return i=new Error("Cookie not in this host's domain. Cookie:"+e.cdomain()+" Request:"+s),n(r.ignoreError?null:i);e.hostOnly==null&&(e.hostOnly=!1)}else e.hostOnly=!0,e.domain=s;if((!e.path||e.path[0]!=="/")&&(e.path=aXe(a.pathname),e.pathIsDefault=!0),r.http===!1&&e.httpOnly)return i=new Error("Cookie is HttpOnly and this isn't an HTTP API"),n(r.ignoreError?null:i);var f=this.store;f.updateCookie||(f.updateCookie=function(h,g,v){this.putCookie(g,v)});function d(h,g){if(h)return n(h);var v=function(y){if(y)return n(y);n(null,e)};if(g){if(r.http===!1&&g.httpOnly)return h=new Error("old Cookie is HttpOnly and this isn't an HTTP API"),n(r.ignoreError?null:h);e.creation=g.creation,e.creationIndex=g.creationIndex,e.lastAccessed=c,f.updateCookie(g,e,v)}else e.creation=e.lastAccessed=c,f.putCookie(e,v)}f.findCookie(e.domain,e.path,e.key,d)};Vg.push("getCookies");ja.prototype.getCookies=function(e,t,r){var n=uXe(e);t instanceof Function&&(r=t,t={});var i=y3(n.hostname),a=n.pathname||"/",s=t.secure;s==null&&n.protocol&&(n.protocol=="https:"||n.protocol=="wss:")&&(s=!0);var o=t.http;o==null&&(o=!0);var c=t.now||Date.now(),p=t.expire!==!1,f=!!t.allPaths,d=this.store;function h(g){if(g.hostOnly){if(g.domain!=i)return!1}else if(!Dle(i,g.domain,!1))return!1;return!f&&!rXe(a,g.path)||g.secure&&!s||g.httpOnly&&!o?!1:p&&g.expiryTime()<=c?(d.removeCookie(g.domain,g.path,g.key,function(){}),!1):!0}d.findCookies(i,f?null:a,function(g,v){if(g)return r(g);v=v.filter(h),t.sort!==!1&&(v=v.sort(Cle));var y=new Date;v.forEach(function(_){_.lastAccessed=y}),r(null,v)})};Vg.push("getCookieString");ja.prototype.getCookieString=function(){var e=Array.prototype.slice.call(arguments,0),t=e.pop(),r=function(n,i){n?t(n):t(null,i.sort(Cle).map(function(a){return a.cookieString()}).join("; "))};e.push(r),this.getCookies.apply(this,e)};Vg.push("getSetCookieStrings");ja.prototype.getSetCookieStrings=function(){var e=Array.prototype.slice.call(arguments,0),t=e.pop(),r=function(n,i){n?t(n):t(null,i.map(function(a){return a.toString()}))};e.push(r),this.getCookies.apply(this,e)};Vg.push("serialize");ja.prototype.serialize=function(e){var t=this.store.constructor.name;t==="Object"&&(t=null);var r={version:"tough-cookie@"+nXe,storeType:t,rejectPublicSuffixes:!!this.rejectPublicSuffixes,cookies:[]};if(!(this.store.getAllCookies&&typeof this.store.getAllCookies=="function"))return e(new Error("store does not support getAllCookies and cannot be serialized"));this.store.getAllCookies(function(n,i){return n?e(n):(r.cookies=i.map(function(a){return a=a instanceof Pr?a.toJSON():a,delete a.creationIndex,a}),e(null,r))})};ja.prototype.toJSON=function(){return this.serializeSync()};Vg.push("_importCookies");ja.prototype._importCookies=function(e,t){var r=this,n=e.cookies;if(!n||!Array.isArray(n))return t(new Error("serialized jar has no cookies array"));n=n.slice();function i(a){if(a)return t(a);if(!n.length)return t(a,r);var s;try{s=EN(n.shift())}catch(o){return t(o)}if(s===null)return i(null);r.store.putCookie(s,i)}i()};ja.deserialize=function(e,t,r){arguments.length!==3&&(r=t,t=null);var n;if(typeof e=="string"){if(n=oXe(e),n instanceof Error)return r(n)}else n=e;var i=new ja(t,n.rejectPublicSuffixes);i._importCookies(n,function(a){if(a)return r(a);r(null,i)})};ja.deserializeSync=function(e,t){var r=typeof e=="string"?JSON.parse(e):e,n=new ja(t,r.rejectPublicSuffixes);if(!n.store.synchronous)throw new Error("CookieJar store is not synchronous; use async API instead.");return n._importCookiesSync(r),n};ja.fromJSON=ja.deserializeSync;ja.prototype.clone=function(e,t){arguments.length===1&&(t=e,e=null),this.serialize(function(r,n){if(r)return t(r);ja.deserialize(n,e,t)})};Vg.push("removeAllCookies");ja.prototype.removeAllCookies=function(e){var t=this.store;if(t.removeAllCookies instanceof Function&&t.removeAllCookies!==eXe.prototype.removeAllCookies)return t.removeAllCookies(e);t.getAllCookies(function(r,n){if(r)return e(r);if(n.length===0)return e(null);var i=0,a=[];function s(o){if(o&&a.push(o),i++,i===n.length)return e(a.length?a[0]:null)}n.forEach(function(o){t.removeCookie(o.domain,o.path,o.key,s)})})};ja.prototype._cloneSync=cXe("clone");ja.prototype.cloneSync=function(e){if(!e.synchronous)throw new Error("CookieJar clone destination store is not synchronous; use async API instead.");return this._cloneSync(e)};function cXe(e){return function(){if(!this.store.synchronous)throw new Error("CookieJar store is not synchronous; use async API instead.");var t=Array.prototype.slice.call(arguments),r,n;if(t.push(function(a,s){r=a,n=s}),this[e].apply(this,t),r)throw r;return n}}Vg.forEach(function(e){ja.prototype[e+"Sync"]=cXe(e)});oo.version=nXe;oo.CookieJar=ja;oo.Cookie=Pr;oo.Store=eXe;oo.MemoryCookieStore=tXe;oo.parseDate=Nk;oo.formatDate=iXe;oo.parse=sXe;oo.fromJSON=EN;oo.domainMatch=Dle;oo.defaultPath=aXe;oo.pathMatch=rXe;oo.getPublicSuffix=Ole.getPublicSuffix;oo.cookieCompare=Cle;oo.permuteDomain=Ele().permuteDomain;oo.permutePath=zcr;oo.canonicalDomain=y3});var Rle=b(Ile=>{"use strict";var lXe=Ple(),Hcr=lXe.Cookie,Vcr=lXe.CookieJar;Ile.parse=function(e){if(e&&e.uri&&(e=e.uri),typeof e!="string")throw new Error("The cookie function only accepts STRING as param");return Hcr.parse(e,{loose:!0})};function SN(e){var t=this;t._jar=new Vcr(e,{looseMode:!0})}SN.prototype.setCookie=function(e,t,r){var n=this;return n._jar.setCookieSync(e,t,r||{})};SN.prototype.getCookieString=function(e){var t=this;return t._jar.getCookieStringSync(e)};SN.prototype.getCookies=function(e){var t=this;return t._jar.getCookiesSync(e)};Ile.jar=function(e){return new SN(e)}});var dXe=b((Fle,fXe)=>{Fle=fXe.exports=Gcr;Fle.getSerialize=pXe;function Gcr(e,t,r,n){return JSON.stringify(e,pXe(t,n),r)}function pXe(e,t){var r=[],n=[];return t==null&&(t=function(i,a){return r[0]===a?"[Circular ~]":"[Circular ~."+n.slice(0,r.indexOf(a)).join(".")+"]"}),function(i,a){if(r.length>0){var s=r.indexOf(this);~s?r.splice(s+1):r.push(this),~s?n.splice(s,1/0,i):n.push(i),~r.indexOf(a)&&(a=t.call(this,i,a))}else r.push(a);return e==null?a:e.call(this,i,a)}}});var Tf=b((jle,mXe)=>{var kN=require("buffer"),R1=kN.Buffer;function hXe(e,t){for(var r in e)t[r]=e[r]}R1.from&&R1.alloc&&R1.allocUnsafe&&R1.allocUnsafeSlow?mXe.exports=kN:(hXe(kN,jle),jle.Buffer=b3);function b3(e,t,r){return R1(e,t,r)}hXe(R1,b3);b3.from=function(e,t,r){if(typeof e=="number")throw new TypeError("Argument must not be a number");return R1(e,t,r)};b3.alloc=function(e,t,r){if(typeof e!="number")throw new TypeError("Argument must be a number");var n=R1(e);return t!==void 0?typeof r=="string"?n.fill(t,r):n.fill(t):n.fill(0),n};b3.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return R1(e)};b3.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return kN.SlowBuffer(e)}});var AN=b(F1=>{"use strict";var Wcr=dXe(),Kcr=require("crypto"),Ycr=Tf().Buffer,Jcr=typeof setImmediate>"u"?process.nextTick:setImmediate;function Xcr(e){return e.body||e.requestBodyStream||e.json&&typeof e.json!="boolean"||e.multipart}function Qcr(e,t){var r;try{r=JSON.stringify(e,t)}catch{r=Wcr(e,t)}return r}function Zcr(e){return Kcr.createHash("md5").update(e).digest("hex")}function elr(e){return e.readable&&e.path&&e.mode}function tlr(e){return Ycr.from(e||"","utf8").toString("base64")}function rlr(e){var t={};return Object.keys(e).forEach(function(r){t[r]=e[r]}),t}function nlr(){var e=process.version.replace("v","").split(".");return{major:parseInt(e[0],10),minor:parseInt(e[1],10),patch:parseInt(e[2],10)}}F1.paramsHaveRequestBody=Xcr;F1.safeStringify=Qcr;F1.md5=Zcr;F1.isReadStream=elr;F1.toBase64=tlr;F1.copy=rlr;F1.version=nlr;F1.defer=Jcr});var wXe=b((Ain,Qd)=>{var ilr=require("crypto"),alr=require("url").parse,slr=["acl","location","logging","notification","partNumber","policy","requestPayment","torrent","uploadId","uploads","versionId","versioning","versions","website"];function gXe(e){return"AWS "+e.key+":"+vXe(e)}Qd.exports=gXe;Qd.exports.authorization=gXe;function Nle(e){return ilr.createHmac("sha1",e.secret).update(e.message).digest("base64")}Qd.exports.hmacSha1=Nle;function vXe(e){return e.message=yXe(e),Nle(e)}Qd.exports.sign=vXe;function olr(e){return e.message=bXe(e),Nle(e)}Qd.exports.signQuery=olr;function yXe(e){var t=e.amazonHeaders||"";t&&(t+=`
`);var r=[e.verb,e.md5,e.contentType,e.date?e.date.toUTCString():"",t+e.resource];return r.join(`
`)}Qd.exports.stringToSign=yXe;function bXe(e){return`GET


`+e.date+`
`+e.resource}Qd.exports.queryStringToSign=bXe;function ulr(e){for(var t=[],r=Object.keys(e),n=0,i=r.length;n<i;++n){var s=r[n],a=e[s],s=s.toLowerCase();s.indexOf("x-amz")===0&&t.push(s+":"+a)}return t.sort().join(`
`)}Qd.exports.canonicalizeHeaders=ulr;function clr(e){var t=alr(e,!0),r=t.pathname,n=[];return Object.keys(t.query).forEach(function(i){if(~slr.indexOf(i)){var a=t.query[i]==""?"":"="+encodeURIComponent(t.query[i]);n.push(i+a)}}),r+(n.length?"?"+n.sort().join("&"):"")}Qd.exports.canonicalizeResource=clr});var xXe=b((Tin,_Xe)=>{_Xe.exports=function(e){return new qk(e)};function qk(e){this.capacity=e|0,this.map=Object.create(null),this.list=new TN}qk.prototype.get=function(e){var t=this.map[e];if(t!=null)return this.used(t),t.val};qk.prototype.set=function(e,t){var r=this.map[e];if(r!=null)r.val=t;else{if(this.capacity||this.prune(),!this.capacity)return!1;r=new llr(e,t),this.map[e]=r,this.capacity--}return this.used(r),!0};qk.prototype.used=function(e){this.list.moveToFront(e)};qk.prototype.prune=function(){var e=this.list.pop();e!=null&&(delete this.map[e.key],this.capacity++)};function TN(){this.firstNode=null,this.lastNode=null}TN.prototype.moveToFront=function(e){this.firstNode!=e&&(this.remove(e),this.firstNode==null?(this.firstNode=e,this.lastNode=e,e.prev=null,e.next=null):(e.prev=null,e.next=this.firstNode,e.next.prev=e,this.firstNode=e))};TN.prototype.pop=function(){var e=this.lastNode;return e!=null&&this.remove(e),e};TN.prototype.remove=function(e){this.firstNode==e?this.firstNode=e.next:e.prev!=null&&(e.prev.next=e.next),this.lastNode==e?this.lastNode=e.prev:e.next!=null&&(e.next.prev=e.prev)};function llr(e,t){this.key=e,this.val=t,this.prev=null,this.next=null}});var CXe=b(DXe=>{var SXe=DXe,plr=require("url"),kXe=require("querystring"),AXe=require("crypto"),flr=xXe(),EXe=flr(1e3);function Lk(e,t,r){return AXe.createHmac("sha256",e).update(t,"utf8").digest(r)}function qle(e,t){return AXe.createHash("sha256").update(e,"utf8").digest(t)}function TXe(e){return e.replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function ON(e){return TXe(encodeURIComponent(e))}var OXe={authorization:!0,connection:!0,"x-amzn-trace-id":!0,"user-agent":!0,expect:!0,"presigned-expires":!0,range:!0};function Ws(e,t){typeof e=="string"&&(e=plr.parse(e));var r=e.headers=e.headers||{},n=(!this.service||!this.region)&&this.matchHost(e.hostname||e.host||r.Host||r.host);this.request=e,this.credentials=t||this.defaultCredentials(),this.service=e.service||n[0]||"",this.region=e.region||n[1]||"us-east-1",this.service==="email"&&(this.service="ses"),!e.method&&e.body&&(e.method="POST"),!r.Host&&!r.host&&(r.Host=e.hostname||e.host||this.createHost(),e.port&&(r.Host+=":"+e.port)),!e.hostname&&!e.host&&(e.hostname=r.Host||r.host),this.isCodeCommitGit=this.service==="codecommit"&&e.method==="GIT"}Ws.prototype.matchHost=function(e){var t=(e||"").match(/([^\.]+)\.(?:([^\.]*)\.)?amazonaws\.com(\.cn)?$/),r=(t||[]).slice(1,3);if(r[1]==="es"&&(r=r.reverse()),r[1]=="s3")r[0]="s3",r[1]="us-east-1";else for(var n=0;n<2;n++)if(/^s3-/.test(r[n])){r[1]=r[n].slice(3),r[0]="s3";break}return r};Ws.prototype.isSingleRegion=function(){return["s3","sdb"].indexOf(this.service)>=0&&this.region==="us-east-1"?!0:["cloudfront","ls","route53","iam","importexport","sts"].indexOf(this.service)>=0};Ws.prototype.createHost=function(){var e=this.isSingleRegion()?"":"."+this.region,t=this.service==="ses"?"email":this.service;return t+e+".amazonaws.com"};Ws.prototype.prepareRequest=function(){this.parsePath();var e=this.request,t=e.headers,r;e.signQuery?(this.parsedPath.query=r=this.parsedPath.query||{},this.credentials.sessionToken&&(r["X-Amz-Security-Token"]=this.credentials.sessionToken),this.service==="s3"&&!r["X-Amz-Expires"]&&(r["X-Amz-Expires"]=86400),r["X-Amz-Date"]?this.datetime=r["X-Amz-Date"]:r["X-Amz-Date"]=this.getDateTime(),r["X-Amz-Algorithm"]="AWS4-HMAC-SHA256",r["X-Amz-Credential"]=this.credentials.accessKeyId+"/"+this.credentialString(),r["X-Amz-SignedHeaders"]=this.signedHeaders()):(!e.doNotModifyHeaders&&!this.isCodeCommitGit&&(e.body&&!t["Content-Type"]&&!t["content-type"]&&(t["Content-Type"]="application/x-www-form-urlencoded; charset=utf-8"),e.body&&!t["Content-Length"]&&!t["content-length"]&&(t["Content-Length"]=Buffer.byteLength(e.body)),this.credentials.sessionToken&&!t["X-Amz-Security-Token"]&&!t["x-amz-security-token"]&&(t["X-Amz-Security-Token"]=this.credentials.sessionToken),this.service==="s3"&&!t["X-Amz-Content-Sha256"]&&!t["x-amz-content-sha256"]&&(t["X-Amz-Content-Sha256"]=qle(this.request.body||"","hex")),t["X-Amz-Date"]||t["x-amz-date"]?this.datetime=t["X-Amz-Date"]||t["x-amz-date"]:t["X-Amz-Date"]=this.getDateTime()),delete t.Authorization,delete t.authorization)};Ws.prototype.sign=function(){return this.parsedPath||this.prepareRequest(),this.request.signQuery?this.parsedPath.query["X-Amz-Signature"]=this.signature():this.request.headers.Authorization=this.authHeader(),this.request.path=this.formatPath(),this.request};Ws.prototype.getDateTime=function(){if(!this.datetime){var e=this.request.headers,t=new Date(e.Date||e.date||new Date);this.datetime=t.toISOString().replace(/[:\-]|\.\d{3}/g,""),this.isCodeCommitGit&&(this.datetime=this.datetime.slice(0,-1))}return this.datetime};Ws.prototype.getDate=function(){return this.getDateTime().substr(0,8)};Ws.prototype.authHeader=function(){return["AWS4-HMAC-SHA256 Credential="+this.credentials.accessKeyId+"/"+this.credentialString(),"SignedHeaders="+this.signedHeaders(),"Signature="+this.signature()].join(", ")};Ws.prototype.signature=function(){var e=this.getDate(),t=[this.credentials.secretAccessKey,e,this.region,this.service].join(),r,n,i,a=EXe.get(t);return a||(r=Lk("AWS4"+this.credentials.secretAccessKey,e),n=Lk(r,this.region),i=Lk(n,this.service),a=Lk(i,"aws4_request"),EXe.set(t,a)),Lk(a,this.stringToSign(),"hex")};Ws.prototype.stringToSign=function(){return["AWS4-HMAC-SHA256",this.getDateTime(),this.credentialString(),qle(this.canonicalString(),"hex")].join(`
`)};Ws.prototype.canonicalString=function(){this.parsedPath||this.prepareRequest();var e=this.parsedPath.path,t=this.parsedPath.query,r=this.request.headers,n="",i=this.service!=="s3",a=this.service==="s3"||this.request.doNotEncodePath,s=this.service==="s3",o=this.service==="s3",c;if(this.service==="s3"&&this.request.signQuery?c="UNSIGNED-PAYLOAD":this.isCodeCommitGit?c="":c=r["X-Amz-Content-Sha256"]||r["x-amz-content-sha256"]||qle(this.request.body||"","hex"),t){var p=Object.keys(t).reduce(function(d,h){return h&&(d[ON(h)]=Array.isArray(t[h])&&o?t[h][0]:t[h]),d},{}),f=[];Object.keys(p).sort().forEach(function(d){Array.isArray(p[d])?p[d].map(ON).sort().forEach(function(h){f.push(d+"="+h)}):f.push(d+"="+ON(p[d]))}),n=f.join("&")}return e!=="/"&&(i&&(e=e.replace(/\/{2,}/g,"/")),e=e.split("/").reduce(function(d,h){return i&&h===".."?d.pop():(!i||h!==".")&&(a&&(h=decodeURIComponent(h.replace(/\+/g," "))),d.push(ON(h))),d},[]).join("/"),e[0]!=="/"&&(e="/"+e),s&&(e=e.replace(/%2F/g,"/"))),[this.request.method||"GET",e,n,this.canonicalHeaders()+`
`,this.signedHeaders(),c].join(`
`)};Ws.prototype.canonicalHeaders=function(){var e=this.request.headers;function t(r){return r.toString().trim().replace(/\s+/g," ")}return Object.keys(e).filter(function(r){return OXe[r.toLowerCase()]==null}).sort(function(r,n){return r.toLowerCase()<n.toLowerCase()?-1:1}).map(function(r){return r.toLowerCase()+":"+t(e[r])}).join(`
`)};Ws.prototype.signedHeaders=function(){return Object.keys(this.request.headers).map(function(e){return e.toLowerCase()}).filter(function(e){return OXe[e]==null}).sort().join(";")};Ws.prototype.credentialString=function(){return[this.getDate(),this.region,this.service,"aws4_request"].join("/")};Ws.prototype.defaultCredentials=function(){var e=process.env;return{accessKeyId:e.AWS_ACCESS_KEY_ID||e.AWS_ACCESS_KEY,secretAccessKey:e.AWS_SECRET_ACCESS_KEY||e.AWS_SECRET_KEY,sessionToken:e.AWS_SESSION_TOKEN}};Ws.prototype.parsePath=function(){var e=this.request.path||"/";/[^0-9A-Za-z;,/?:@&=+$\-_.!~*'()#%]/.test(e)&&(e=encodeURI(decodeURI(e)));var t=e.indexOf("?"),r=null;t>=0&&(r=kXe.parse(e.slice(t+1)),e=e.slice(0,t)),this.parsedPath={path:e,query:r}};Ws.prototype.formatPath=function(){var e=this.parsedPath.path,t=this.parsedPath.query;return t?(t[""]!=null&&delete t[""],e+"?"+TXe(kXe.stringify(t))):e};SXe.RequestSigner=Ws;SXe.sign=function(e,t){return new Ws(e,t).sign()}});var oi=b((Din,IXe)=>{var DN=require("assert"),dlr=require("stream").Stream,hlr=require("util"),mlr=/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/;function Lle(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Gg(e,t,r,n,i){throw new DN.AssertionError({message:hlr.format("%s (%s) is required",e,t),actual:i===void 0?typeof n:i(n),expected:t,operator:r||"===",stackStartFunction:Gg.caller})}function $le(e){return Object.prototype.toString.call(e).slice(8,-1)}function w3(){}var $k={bool:{check:function(e){return typeof e=="boolean"}},func:{check:function(e){return typeof e=="function"}},string:{check:function(e){return typeof e=="string"}},object:{check:function(e){return typeof e=="object"&&e!==null}},number:{check:function(e){return typeof e=="number"&&!isNaN(e)}},finite:{check:function(e){return typeof e=="number"&&!isNaN(e)&&isFinite(e)}},buffer:{check:function(e){return Buffer.isBuffer(e)},operator:"Buffer.isBuffer"},array:{check:function(e){return Array.isArray(e)},operator:"Array.isArray"},stream:{check:function(e){return e instanceof dlr},operator:"instanceof",actual:$le},date:{check:function(e){return e instanceof Date},operator:"instanceof",actual:$le},regexp:{check:function(e){return e instanceof RegExp},operator:"instanceof",actual:$le},uuid:{check:function(e){return typeof e=="string"&&mlr.test(e)},operator:"isUUID"}};function PXe(e){var t=Object.keys($k),r;return process.env.NODE_NDEBUG?r=w3:r=function(n,i){n||Gg(i,"true",n)},t.forEach(function(n){if(e){r[n]=w3;return}var i=$k[n];r[n]=function(a,s){i.check(a)||Gg(s,n,i.operator,a,i.actual)}}),t.forEach(function(n){var i="optional"+Lle(n);if(e){r[i]=w3;return}var a=$k[n];r[i]=function(s,o){s!=null&&(a.check(s)||Gg(o,n,a.operator,s,a.actual))}}),t.forEach(function(n){var i="arrayOf"+Lle(n);if(e){r[i]=w3;return}var a=$k[n],s="["+n+"]";r[i]=function(o,c){Array.isArray(o)||Gg(c,s,a.operator,o,a.actual);var p;for(p=0;p<o.length;p++)a.check(o[p])||Gg(c,s,a.operator,o,a.actual)}}),t.forEach(function(n){var i="optionalArrayOf"+Lle(n);if(e){r[i]=w3;return}var a=$k[n],s="["+n+"]";r[i]=function(o,c){if(o!=null){Array.isArray(o)||Gg(c,s,a.operator,o,a.actual);var p;for(p=0;p<o.length;p++)a.check(o[p])||Gg(c,s,a.operator,o,a.actual)}}}),Object.keys(DN).forEach(function(n){if(n==="AssertionError"){r[n]=DN[n];return}if(e){r[n]=w3;return}r[n]=DN[n]}),r._setExports=PXe,r}IXe.exports=PXe(process.env.NODE_NDEBUG)});var Wi=b((Cin,RXe)=>{"use strict";var CN=require("buffer"),_3=CN.Buffer,sp={},op;for(op in CN)CN.hasOwnProperty(op)&&(op==="SlowBuffer"||op==="Buffer"||(sp[op]=CN[op]));var x3=sp.Buffer={};for(op in _3)_3.hasOwnProperty(op)&&(op==="allocUnsafe"||op==="allocUnsafeSlow"||(x3[op]=_3[op]));sp.Buffer.prototype=_3.prototype;(!x3.from||x3.from===Uint8Array.from)&&(x3.from=function(e,t,r){if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&typeof e.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return _3(e,t,r)});x3.alloc||(x3.alloc=function(e,t,r){if(typeof e!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var n=_3(e);return!t||t.length===0?n.fill(0):typeof r=="string"?n.fill(t,r):n.fill(t),n});if(!sp.kStringMaxLength)try{sp.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}sp.constants||(sp.constants={MAX_LENGTH:sp.kMaxLength},sp.kStringMaxLength&&(sp.constants.MAX_STRING_LENGTH=sp.kStringMaxLength));RXe.exports=sp});var Bo=b((Pin,FXe)=>{var uo=Wi().Buffer,Ble={dsa:{parts:["p","q","g","y"],sizePart:"p"},rsa:{parts:["e","n"],sizePart:"n"},ecdsa:{parts:["curve","Q"],sizePart:"Q"},ed25519:{parts:["A"],sizePart:"A"}};Ble.curve25519=Ble.ed25519;var Mle={dsa:{parts:["p","q","g","y","x"]},rsa:{parts:["n","e","d","iqmp","p","q"]},ecdsa:{parts:["curve","Q","d"]},ed25519:{parts:["A","k"]}};Mle.curve25519=Mle.ed25519;var glr={md5:!0,sha1:!0,sha256:!0,sha384:!0,sha512:!0},vlr={nistp256:{size:256,pkcs8oid:"1.2.840.10045.3.1.7",p:uo.from("00ffffffff 00000001 00000000 0000000000000000 ffffffff ffffffff ffffffff".replace(/ /g,""),"hex"),a:uo.from("00FFFFFFFF 00000001 00000000 0000000000000000 FFFFFFFF FFFFFFFF FFFFFFFC".replace(/ /g,""),"hex"),b:uo.from("5ac635d8 aa3a93e7 b3ebbd55 769886bc651d06b0 cc53b0f6 3bce3c3e 27d2604b".replace(/ /g,""),"hex"),s:uo.from("00c49d3608 86e70493 6a6678e1 139d26b7819f7e90".replace(/ /g,""),"hex"),n:uo.from("00ffffffff 00000000 ffffffff ffffffffbce6faad a7179e84 f3b9cac2 fc632551".replace(/ /g,""),"hex"),G:uo.from("046b17d1f2 e12c4247 f8bce6e5 63a440f277037d81 2deb33a0 f4a13945 d898c2964fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e162bce3357 6b315ece cbb64068 37bf51f5".replace(/ /g,""),"hex")},nistp384:{size:384,pkcs8oid:"1.3.132.0.34",p:uo.from("00ffffffff ffffffff ffffffff ffffffffffffffff ffffffff ffffffff fffffffeffffffff 00000000 00000000 ffffffff".replace(/ /g,""),"hex"),a:uo.from("00FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFFFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFEFFFFFFFF 00000000 00000000 FFFFFFFC".replace(/ /g,""),"hex"),b:uo.from("b3312fa7 e23ee7e4 988e056b e3f82d19181d9c6e fe814112 0314088f 5013875ac656398d 8a2ed19d 2a85c8ed d3ec2aef".replace(/ /g,""),"hex"),s:uo.from("00a335926a a319a27a 1d00896a 6773a4827acdac73".replace(/ /g,""),"hex"),n:uo.from("00ffffffff ffffffff ffffffff ffffffffffffffff ffffffff c7634d81 f4372ddf581a0db2 48b0a77a ecec196a ccc52973".replace(/ /g,""),"hex"),G:uo.from("04aa87ca22 be8b0537 8eb1c71e f320ad746e1d3b62 8ba79b98 59f741e0 82542a385502f25d bf55296c 3a545e38 72760ab73617de4a 96262c6f 5d9e98bf 9292dc29f8f41dbd 289a147c e9da3113 b5f0b8c00a60b1ce 1d7e819d 7a431d7c 90ea0e5f".replace(/ /g,""),"hex")},nistp521:{size:521,pkcs8oid:"1.3.132.0.35",p:uo.from("01ffffff ffffffff ffffffff ffffffffffffffff ffffffff ffffffff ffffffffffffffff ffffffff ffffffff ffffffffffffffff ffffffff ffffffff ffffffffffff".replace(/ /g,""),"hex"),a:uo.from("01FFFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFFFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFFFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFFFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFC".replace(/ /g,""),"hex"),b:uo.from("51953eb961 8e1c9a1f 929a21a0 b68540eea2da725b 99b315f3 b8b48991 8ef109e156193951 ec7e937b 1652c0bd 3bb1bf073573df88 3d2c34f1 ef451fd4 6b503f00".replace(/ /g,""),"hex"),s:uo.from("00d09e8800 291cb853 96cc6717 393284aaa0da64ba".replace(/ /g,""),"hex"),n:uo.from("01ffffffffff ffffffff ffffffff ffffffffffffffff ffffffff ffffffff fffffffa51868783 bf2f966b 7fcc0148 f709a5d03bb5c9b8 899c47ae bb6fb71e 91386409".replace(/ /g,""),"hex"),G:uo.from("0400c6 858e06b7 0404e9cd 9e3ecb66 2395b4429c648139 053fb521 f828af60 6b4d3dbaa14b5e77 efe75928 fe1dc127 a2ffa8de3348b3c1 856a429b f97e7e31 c2e5bd660118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd998f54449 579b4468 17afbd17 273e662c97ee7299 5ef42640 c550b901 3fad0761353c7086 a272c240 88be9476 9fd16650".replace(/ /g,""),"hex")}};FXe.exports={info:Ble,privInfo:Mle,hashAlgs:glr,curves:vlr}});var Of=b((Rin,jXe)=>{var Iin=oi(),E3=require("util");function Ule(e,t){Error.captureStackTrace&&Error.captureStackTrace(this,Ule),this.name="FingerprintFormatError",this.fingerprint=e,this.format=t,this.message="Fingerprint format is not supported, or is invalid: ",e!==void 0&&(this.message+=" fingerprint = "+e),t!==void 0&&(this.message+=" format = "+t)}E3.inherits(Ule,Error);function zle(e){Error.captureStackTrace&&Error.captureStackTrace(this,zle),this.name="InvalidAlgorithmError",this.algorithm=e,this.message='Algorithm "'+e+'" is not supported'}E3.inherits(zle,Error);function Hle(e,t,r){Error.captureStackTrace&&Error.captureStackTrace(this,Hle),this.name="KeyParseError",this.format=t,this.keyName=e,this.innerErr=r,this.message="Failed to parse "+e+" as a valid "+t+" format key: "+r.message}E3.inherits(Hle,Error);function Vle(e,t,r){Error.captureStackTrace&&Error.captureStackTrace(this,Vle),this.name="SignatureParseError",this.type=e,this.format=t,this.innerErr=r,this.message="Failed to parse the given data as a "+e+" signature in "+t+" format: "+r.message}E3.inherits(Vle,Error);function Gle(e,t,r){Error.captureStackTrace&&Error.captureStackTrace(this,Gle),this.name="CertificateParseError",this.format=t,this.certName=e,this.innerErr=r,this.message="Failed to parse "+e+" as a valid "+t+" format certificate: "+r.message}E3.inherits(Gle,Error);function Wle(e,t){Error.captureStackTrace&&Error.captureStackTrace(this,Wle),this.name="KeyEncryptedError",this.format=t,this.keyName=e,this.message="The "+t+" format key "+e+" is encrypted (password-protected), and no passphrase was provided in `options`"}E3.inherits(Wle,Error);jXe.exports={FingerprintFormatError:Ule,InvalidAlgorithmError:zle,KeyParseError:Hle,SignatureParseError:Vle,KeyEncryptedError:Wle,CertificateParseError:Gle}});var PN=b((Fin,NXe)=>{NXe.exports={newInvalidAsn1Error:function(e){var t=new Error;return t.name="InvalidAsn1Error",t.message=e||"",t}}});var IN=b((jin,qXe)=>{qXe.exports={EOC:0,Boolean:1,Integer:2,BitString:3,OctetString:4,Null:5,OID:6,ObjectDescriptor:7,External:8,Real:9,Enumeration:10,PDV:11,Utf8String:12,RelativeOID:13,Sequence:16,Set:17,NumericString:18,PrintableString:19,T61String:20,VideotexString:21,IA5String:22,UTCTime:23,GeneralizedTime:24,GraphicString:25,VisibleString:26,GeneralString:28,UniversalString:29,CharacterString:30,BMPString:31,Constructor:32,Context:128}});var BXe=b((Nin,$Xe)=>{var ylr=require("assert"),LXe=Wi().Buffer,Bk=IN(),blr=PN(),S3=blr.newInvalidAsn1Error;function ec(e){if(!e||!LXe.isBuffer(e))throw new TypeError("data must be a node Buffer");this._buf=e,this._size=e.length,this._len=0,this._offset=0}Object.defineProperty(ec.prototype,"length",{enumerable:!0,get:function(){return this._len}});Object.defineProperty(ec.prototype,"offset",{enumerable:!0,get:function(){return this._offset}});Object.defineProperty(ec.prototype,"remain",{get:function(){return this._size-this._offset}});Object.defineProperty(ec.prototype,"buffer",{get:function(){return this._buf.slice(this._offset)}});ec.prototype.readByte=function(e){if(this._size-this._offset<1)return null;var t=this._buf[this._offset]&255;return e||(this._offset+=1),t};ec.prototype.peek=function(){return this.readByte(!0)};ec.prototype.readLength=function(e){if(e===void 0&&(e=this._offset),e>=this._size)return null;var t=this._buf[e++]&255;if(t===null)return null;if((t&128)===128){if(t&=127,t===0)throw S3("Indefinite length not supported");if(t>4)throw S3("encoding too long");if(this._size-e<t)return null;this._len=0;for(var r=0;r<t;r++)this._len=(this._len<<8)+(this._buf[e++]&255)}else this._len=t;return e};ec.prototype.readSequence=function(e){var t=this.peek();if(t===null)return null;if(e!==void 0&&e!==t)throw S3("Expected 0x"+e.toString(16)+": got 0x"+t.toString(16));var r=this.readLength(this._offset+1);return r===null?null:(this._offset=r,t)};ec.prototype.readInt=function(){return this._readTag(Bk.Integer)};ec.prototype.readBoolean=function(){return this._readTag(Bk.Boolean)!==0};ec.prototype.readEnumeration=function(){return this._readTag(Bk.Enumeration)};ec.prototype.readString=function(e,t){e||(e=Bk.OctetString);var r=this.peek();if(r===null)return null;if(r!==e)throw S3("Expected 0x"+e.toString(16)+": got 0x"+r.toString(16));var n=this.readLength(this._offset+1);if(n===null||this.length>this._size-n)return null;if(this._offset=n,this.length===0)return t?LXe.alloc(0):"";var i=this._buf.slice(this._offset,this._offset+this.length);return this._offset+=this.length,t?i:i.toString("utf8")};ec.prototype.readOID=function(e){e||(e=Bk.OID);var t=this.readString(e,!0);if(t===null)return null;for(var r=[],n=0,i=0;i<t.length;i++){var a=t[i]&255;n<<=7,n+=a&127,a&128||(r.push(n),n=0)}return n=r.shift(),r.unshift(n%40),r.unshift(n/40>>0),r.join(".")};ec.prototype._readTag=function(e){ylr.ok(e!==void 0);var t=this.peek();if(t===null)return null;if(t!==e)throw S3("Expected 0x"+e.toString(16)+": got 0x"+t.toString(16));var r=this.readLength(this._offset+1);if(r===null)return null;if(this.length>4)throw S3("Integer too long: "+this.length);if(this.length>this._size-r)return null;this._offset=r;for(var n=this._buf[this._offset],i=0,a=0;a<this.length;a++)i<<=8,i|=this._buf[this._offset++]&255;return(n&128)===128&&a!==4&&(i-=1<<a*8),i>>0};$Xe.exports=ec});var UXe=b((qin,MXe)=>{var Wg=require("assert"),RN=Wi().Buffer,Kg=IN(),wlr=PN(),FN=wlr.newInvalidAsn1Error,_lr={size:1024,growthFactor:8};function xlr(e,t){Wg.ok(e),Wg.equal(typeof e,"object"),Wg.ok(t),Wg.equal(typeof t,"object");var r=Object.getOwnPropertyNames(e);return r.forEach(function(n){if(!t[n]){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i)}}),t}function hu(e){e=xlr(_lr,e||{}),this._buf=RN.alloc(e.size||1024),this._size=this._buf.length,this._offset=0,this._options=e,this._seq=[]}Object.defineProperty(hu.prototype,"buffer",{get:function(){if(this._seq.length)throw FN(this._seq.length+" unended sequence(s)");return this._buf.slice(0,this._offset)}});hu.prototype.writeByte=function(e){if(typeof e!="number")throw new TypeError("argument must be a Number");this._ensure(1),this._buf[this._offset++]=e};hu.prototype.writeInt=function(e,t){if(typeof e!="number")throw new TypeError("argument must be a Number");typeof t!="number"&&(t=Kg.Integer);for(var r=4;(!(e&4286578688)||(e&4286578688)===-8388608)&&r>1;)r--,e<<=8;if(r>4)throw FN("BER ints cannot be > 0xffffffff");for(this._ensure(2+r),this._buf[this._offset++]=t,this._buf[this._offset++]=r;r-- >0;)this._buf[this._offset++]=(e&4278190080)>>>24,e<<=8};hu.prototype.writeNull=function(){this.writeByte(Kg.Null),this.writeByte(0)};hu.prototype.writeEnumeration=function(e,t){if(typeof e!="number")throw new TypeError("argument must be a Number");return typeof t!="number"&&(t=Kg.Enumeration),this.writeInt(e,t)};hu.prototype.writeBoolean=function(e,t){if(typeof e!="boolean")throw new TypeError("argument must be a Boolean");typeof t!="number"&&(t=Kg.Boolean),this._ensure(3),this._buf[this._offset++]=t,this._buf[this._offset++]=1,this._buf[this._offset++]=e?255:0};hu.prototype.writeString=function(e,t){if(typeof e!="string")throw new TypeError("argument must be a string (was: "+typeof e+")");typeof t!="number"&&(t=Kg.OctetString);var r=RN.byteLength(e);this.writeByte(t),this.writeLength(r),r&&(this._ensure(r),this._buf.write(e,this._offset),this._offset+=r)};hu.prototype.writeBuffer=function(e,t){if(typeof t!="number")throw new TypeError("tag must be a number");if(!RN.isBuffer(e))throw new TypeError("argument must be a buffer");this.writeByte(t),this.writeLength(e.length),this._ensure(e.length),e.copy(this._buf,this._offset,0,e.length),this._offset+=e.length};hu.prototype.writeStringArray=function(e){if(!e instanceof Array)throw new TypeError("argument must be an Array[String]");var t=this;e.forEach(function(r){t.writeString(r)})};hu.prototype.writeOID=function(e,t){if(typeof e!="string")throw new TypeError("argument must be a string");if(typeof t!="number"&&(t=Kg.OID),!/^([0-9]+\.){3,}[0-9]+$/.test(e))throw new Error("argument is not a valid OID string");function r(s,o){o<128?s.push(o):o<16384?(s.push(o>>>7|128),s.push(o&127)):o<2097152?(s.push(o>>>14|128),s.push((o>>>7|128)&255),s.push(o&127)):o<268435456?(s.push(o>>>21|128),s.push((o>>>14|128)&255),s.push((o>>>7|128)&255),s.push(o&127)):(s.push((o>>>28|128)&255),s.push((o>>>21|128)&255),s.push((o>>>14|128)&255),s.push((o>>>7|128)&255),s.push(o&127))}var n=e.split("."),i=[];i.push(parseInt(n[0],10)*40+parseInt(n[1],10)),n.slice(2).forEach(function(s){r(i,parseInt(s,10))});var a=this;this._ensure(2+i.length),this.writeByte(t),this.writeLength(i.length),i.forEach(function(s){a.writeByte(s)})};hu.prototype.writeLength=function(e){if(typeof e!="number")throw new TypeError("argument must be a Number");if(this._ensure(4),e<=127)this._buf[this._offset++]=e;else if(e<=255)this._buf[this._offset++]=129,this._buf[this._offset++]=e;else if(e<=65535)this._buf[this._offset++]=130,this._buf[this._offset++]=e>>8,this._buf[this._offset++]=e;else if(e<=16777215)this._buf[this._offset++]=131,this._buf[this._offset++]=e>>16,this._buf[this._offset++]=e>>8,this._buf[this._offset++]=e;else throw FN("Length too long (> 4 bytes)")};hu.prototype.startSequence=function(e){typeof e!="number"&&(e=Kg.Sequence|Kg.Constructor),this.writeByte(e),this._seq.push(this._offset),this._ensure(3),this._offset+=3};hu.prototype.endSequence=function(){var e=this._seq.pop(),t=e+3,r=this._offset-t;if(r<=127)this._shift(t,r,-2),this._buf[e]=r;else if(r<=255)this._shift(t,r,-1),this._buf[e]=129,this._buf[e+1]=r;else if(r<=65535)this._buf[e]=130,this._buf[e+1]=r>>8,this._buf[e+2]=r;else if(r<=16777215)this._shift(t,r,1),this._buf[e]=131,this._buf[e+1]=r>>16,this._buf[e+2]=r>>8,this._buf[e+3]=r;else throw FN("Sequence too long")};hu.prototype._shift=function(e,t,r){Wg.ok(e!==void 0),Wg.ok(t!==void 0),Wg.ok(r),this._buf.copy(this._buf,e+r,e,e+t),this._offset+=r};hu.prototype._ensure=function(e){if(Wg.ok(e),this._size-this._offset<e){var t=this._size*this._options.growthFactor;t-this._offset<e&&(t+=e);var r=RN.alloc(t);this._buf.copy(r,0,0,this._offset),this._buf=r,this._size=t}};MXe.exports=hu});var zXe=b((Lin,qN)=>{var Kle=PN(),Yle=IN(),Elr=BXe(),Slr=UXe();qN.exports={Reader:Elr,Writer:Slr};for(jN in Yle)Yle.hasOwnProperty(jN)&&(qN.exports[jN]=Yle[jN]);var jN;for(NN in Kle)Kle.hasOwnProperty(NN)&&(qN.exports[NN]=Kle[NN]);var NN});var Zd=b(($in,HXe)=>{var Jle=zXe();HXe.exports={Ber:Jle,BerReader:Jle.Reader,BerWriter:Jle.Writer}});var k3=b((LN,VXe)=>{(function(){var e,t=0xdeadbeefcafe,r=(t&16777215)==15715070;function n(X,te,le){X!=null&&(typeof X=="number"?this.fromNumber(X,te,le):te==null&&typeof X!="string"?this.fromString(X,256):this.fromString(X,te))}function i(){return new n(null)}function a(X,te,le,Pe,Ke,st){for(;--st>=0;){var wt=te*this[X++]+le[Pe]+Ke;Ke=Math.floor(wt/67108864),le[Pe++]=wt&67108863}return Ke}function s(X,te,le,Pe,Ke,st){for(var wt=te&32767,Kt=te>>15;--st>=0;){var Gn=this[X]&32767,zi=this[X++]>>15,Qa=Kt*Gn+zi*wt;Gn=wt*Gn+((Qa&32767)<<15)+le[Pe]+(Ke&1073741823),Ke=(Gn>>>30)+(Qa>>>15)+Kt*zi+(Ke>>>30),le[Pe++]=Gn&1073741823}return Ke}function o(X,te,le,Pe,Ke,st){for(var wt=te&16383,Kt=te>>14;--st>=0;){var Gn=this[X]&16383,zi=this[X++]>>14,Qa=Kt*Gn+zi*wt;Gn=wt*Gn+((Qa&16383)<<14)+le[Pe]+Ke,Ke=(Gn>>28)+(Qa>>14)+Kt*zi,le[Pe++]=Gn&268435455}return Ke}var c=typeof navigator<"u";c&&r&&navigator.appName=="Microsoft Internet Explorer"?(n.prototype.am=s,e=30):c&&r&&navigator.appName!="Netscape"?(n.prototype.am=a,e=26):(n.prototype.am=o,e=28),n.prototype.DB=e,n.prototype.DM=(1<<e)-1,n.prototype.DV=1<<e;var p=52;n.prototype.FV=Math.pow(2,p),n.prototype.F1=p-e,n.prototype.F2=2*e-p;var f="0123456789abcdefghijklmnopqrstuvwxyz",d=new Array,h,g;for(h="0".charCodeAt(0),g=0;g<=9;++g)d[h++]=g;for(h="a".charCodeAt(0),g=10;g<36;++g)d[h++]=g;for(h="A".charCodeAt(0),g=10;g<36;++g)d[h++]=g;function v(X){return f.charAt(X)}function y(X,te){var le=d[X.charCodeAt(te)];return le??-1}function _(X){for(var te=this.t-1;te>=0;--te)X[te]=this[te];X.t=this.t,X.s=this.s}function x(X){this.t=1,this.s=X<0?-1:0,X>0?this[0]=X:X<-1?this[0]=X+this.DV:this.t=0}function A(X){var te=i();return te.fromInt(X),te}function D(X,te){var le;if(te==16)le=4;else if(te==8)le=3;else if(te==256)le=8;else if(te==2)le=1;else if(te==32)le=5;else if(te==4)le=2;else{this.fromRadix(X,te);return}this.t=0,this.s=0;for(var Pe=X.length,Ke=!1,st=0;--Pe>=0;){var wt=le==8?X[Pe]&255:y(X,Pe);if(wt<0){X.charAt(Pe)=="-"&&(Ke=!0);continue}Ke=!1,st==0?this[this.t++]=wt:st+le>this.DB?(this[this.t-1]|=(wt&(1<<this.DB-st)-1)<<st,this[this.t++]=wt>>this.DB-st):this[this.t-1]|=wt<<st,st+=le,st>=this.DB&&(st-=this.DB)}le==8&&X[0]&128&&(this.s=-1,st>0&&(this[this.t-1]|=(1<<this.DB-st)-1<<st)),this.clamp(),Ke&&n.ZERO.subTo(this,this)}function j(){for(var X=this.s&this.DM;this.t>0&&this[this.t-1]==X;)--this.t}function H(X){if(this.s<0)return"-"+this.negate().toString(X);var te;if(X==16)te=4;else if(X==8)te=3;else if(X==2)te=1;else if(X==32)te=5;else if(X==4)te=2;else return this.toRadix(X);var le=(1<<te)-1,Pe,Ke=!1,st="",wt=this.t,Kt=this.DB-wt*this.DB%te;if(wt-- >0)for(Kt<this.DB&&(Pe=this[wt]>>Kt)>0&&(Ke=!0,st=v(Pe));wt>=0;)Kt<te?(Pe=(this[wt]&(1<<Kt)-1)<<te-Kt,Pe|=this[--wt]>>(Kt+=this.DB-te)):(Pe=this[wt]>>(Kt-=te)&le,Kt<=0&&(Kt+=this.DB,--wt)),Pe>0&&(Ke=!0),Ke&&(st+=v(Pe));return Ke?st:"0"}function F(){var X=i();return n.ZERO.subTo(this,X),X}function z(){return this.s<0?this.negate():this}function P(X){var te=this.s-X.s;if(te!=0)return te;var le=this.t;if(te=le-X.t,te!=0)return this.s<0?-te:te;for(;--le>=0;)if((te=this[le]-X[le])!=0)return te;return 0}function M(X){var te=1,le;return(le=X>>>16)!=0&&(X=le,te+=16),(le=X>>8)!=0&&(X=le,te+=8),(le=X>>4)!=0&&(X=le,te+=4),(le=X>>2)!=0&&(X=le,te+=2),(le=X>>1)!=0&&(X=le,te+=1),te}function K(){return this.t<=0?0:this.DB*(this.t-1)+M(this[this.t-1]^this.s&this.DM)}function L(X,te){var le;for(le=this.t-1;le>=0;--le)te[le+X]=this[le];for(le=X-1;le>=0;--le)te[le]=0;te.t=this.t+X,te.s=this.s}function ve(X,te){for(var le=X;le<this.t;++le)te[le-X]=this[le];te.t=Math.max(this.t-X,0),te.s=this.s}function U(X,te){var le=X%this.DB,Pe=this.DB-le,Ke=(1<<Pe)-1,st=Math.floor(X/this.DB),wt=this.s<<le&this.DM,Kt;for(Kt=this.t-1;Kt>=0;--Kt)te[Kt+st+1]=this[Kt]>>Pe|wt,wt=(this[Kt]&Ke)<<le;for(Kt=st-1;Kt>=0;--Kt)te[Kt]=0;te[st]=wt,te.t=this.t+st+1,te.s=this.s,te.clamp()}function N(X,te){te.s=this.s;var le=Math.floor(X/this.DB);if(le>=this.t){te.t=0;return}var Pe=X%this.DB,Ke=this.DB-Pe,st=(1<<Pe)-1;te[0]=this[le]>>Pe;for(var wt=le+1;wt<this.t;++wt)te[wt-le-1]|=(this[wt]&st)<<Ke,te[wt-le]=this[wt]>>Pe;Pe>0&&(te[this.t-le-1]|=(this.s&st)<<Ke),te.t=this.t-le,te.clamp()}function re(X,te){for(var le=0,Pe=0,Ke=Math.min(X.t,this.t);le<Ke;)Pe+=this[le]-X[le],te[le++]=Pe&this.DM,Pe>>=this.DB;if(X.t<this.t){for(Pe-=X.s;le<this.t;)Pe+=this[le],te[le++]=Pe&this.DM,Pe>>=this.DB;Pe+=this.s}else{for(Pe+=this.s;le<X.t;)Pe-=X[le],te[le++]=Pe&this.DM,Pe>>=this.DB;Pe-=X.s}te.s=Pe<0?-1:0,Pe<-1?te[le++]=this.DV+Pe:Pe>0&&(te[le++]=Pe),te.t=le,te.clamp()}function ue(X,te){var le=this.abs(),Pe=X.abs(),Ke=le.t;for(te.t=Ke+Pe.t;--Ke>=0;)te[Ke]=0;for(Ke=0;Ke<Pe.t;++Ke)te[Ke+le.t]=le.am(0,Pe[Ke],te,Ke,0,le.t);te.s=0,te.clamp(),this.s!=X.s&&n.ZERO.subTo(te,te)}function Q(X){for(var te=this.abs(),le=X.t=2*te.t;--le>=0;)X[le]=0;for(le=0;le<te.t-1;++le){var Pe=te.am(le,te[le],X,2*le,0,1);(X[le+te.t]+=te.am(le+1,2*te[le],X,2*le+1,Pe,te.t-le-1))>=te.DV&&(X[le+te.t]-=te.DV,X[le+te.t+1]=1)}X.t>0&&(X[X.t-1]+=te.am(le,te[le],X,2*le,0,1)),X.s=0,X.clamp()}function ne(X,te,le){var Pe=X.abs();if(!(Pe.t<=0)){var Ke=this.abs();if(Ke.t<Pe.t){te?.fromInt(0),le!=null&&this.copyTo(le);return}le==null&&(le=i());var st=i(),wt=this.s,Kt=X.s,Gn=this.DB-M(Pe[Pe.t-1]);Gn>0?(Pe.lShiftTo(Gn,st),Ke.lShiftTo(Gn,le)):(Pe.copyTo(st),Ke.copyTo(le));var zi=st.t,Qa=st[zi-1];if(Qa!=0){var Za=Qa*(1<<this.F1)+(zi>1?st[zi-2]>>this.F2:0),dc=this.FV/Za,Zh=(1<<this.F1)/Za,eu=1<<this.F2,xs=le.t,em=xs-zi,Rl=te??i();for(st.dlShiftTo(em,Rl),le.compareTo(Rl)>=0&&(le[le.t++]=1,le.subTo(Rl,le)),n.ONE.dlShiftTo(zi,Rl),Rl.subTo(st,st);st.t<zi;)st[st.t++]=0;for(;--em>=0;){var ly=le[--xs]==Qa?this.DM:Math.floor(le[xs]*dc+(le[xs-1]+eu)*Zh);if((le[xs]+=st.am(0,ly,le,em,0,zi))<ly)for(st.dlShiftTo(em,Rl),le.subTo(Rl,le);le[xs]<--ly;)le.subTo(Rl,le)}te!=null&&(le.drShiftTo(zi,te),wt!=Kt&&n.ZERO.subTo(te,te)),le.t=zi,le.clamp(),Gn>0&&le.rShiftTo(Gn,le),wt<0&&n.ZERO.subTo(le,le)}}}function G(X){var te=i();return this.abs().divRemTo(X,null,te),this.s<0&&te.compareTo(n.ZERO)>0&&X.subTo(te,te),te}function de(X){this.m=X}function xe(X){return X.s<0||X.compareTo(this.m)>=0?X.mod(this.m):X}function ge(X){return X}function V(X){X.divRemTo(this.m,null,X)}function ce(X,te,le){X.multiplyTo(te,le),this.reduce(le)}function ye(X,te){X.squareTo(te),this.reduce(te)}de.prototype.convert=xe,de.prototype.revert=ge,de.prototype.reduce=V,de.prototype.mulTo=ce,de.prototype.sqrTo=ye;function R(){if(this.t<1)return 0;var X=this[0];if(!(X&1))return 0;var te=X&3;return te=te*(2-(X&15)*te)&15,te=te*(2-(X&255)*te)&255,te=te*(2-((X&65535)*te&65535))&65535,te=te*(2-X*te%this.DV)%this.DV,te>0?this.DV-te:-te}function $(X){this.m=X,this.mp=X.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<X.DB-15)-1,this.mt2=2*X.t}function ke(X){var te=i();return X.abs().dlShiftTo(this.m.t,te),te.divRemTo(this.m,null,te),X.s<0&&te.compareTo(n.ZERO)>0&&this.m.subTo(te,te),te}function S(X){var te=i();return X.copyTo(te),this.reduce(te),te}function I(X){for(;X.t<=this.mt2;)X[X.t++]=0;for(var te=0;te<this.m.t;++te){var le=X[te]&32767,Pe=le*this.mpl+((le*this.mph+(X[te]>>15)*this.mpl&this.um)<<15)&X.DM;for(le=te+this.m.t,X[le]+=this.m.am(0,Pe,X,te,0,this.m.t);X[le]>=X.DV;)X[le]-=X.DV,X[++le]++}X.clamp(),X.drShiftTo(this.m.t,X),X.compareTo(this.m)>=0&&X.subTo(this.m,X)}function B(X,te){X.squareTo(te),this.reduce(te)}function se(X,te,le){X.multiplyTo(te,le),this.reduce(le)}$.prototype.convert=ke,$.prototype.revert=S,$.prototype.reduce=I,$.prototype.mulTo=se,$.prototype.sqrTo=B;function ae(){return(this.t>0?this[0]&1:this.s)==0}function me(X,te){if(X>4294967295||X<1)return n.ONE;var le=i(),Pe=i(),Ke=te.convert(this),st=M(X)-1;for(Ke.copyTo(le);--st>=0;)if(te.sqrTo(le,Pe),(X&1<<st)>0)te.mulTo(Pe,Ke,le);else{var wt=le;le=Pe,Pe=wt}return te.revert(le)}function Se(X,te){var le;return X<256||te.isEven()?le=new de(te):le=new $(te),this.exp(X,le)}n.prototype.copyTo=_,n.prototype.fromInt=x,n.prototype.fromString=D,n.prototype.clamp=j,n.prototype.dlShiftTo=L,n.prototype.drShiftTo=ve,n.prototype.lShiftTo=U,n.prototype.rShiftTo=N,n.prototype.subTo=re,n.prototype.multiplyTo=ue,n.prototype.squareTo=Q,n.prototype.divRemTo=ne,n.prototype.invDigit=R,n.prototype.isEven=ae,n.prototype.exp=me,n.prototype.toString=H,n.prototype.negate=F,n.prototype.abs=z,n.prototype.compareTo=P,n.prototype.bitLength=K,n.prototype.mod=G,n.prototype.modPowInt=Se,n.ZERO=A(0),n.ONE=A(1);function Ee(){var X=i();return this.copyTo(X),X}function De(){if(this.s<0){if(this.t==1)return this[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this[0];if(this.t==0)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]}function Le(){return this.t==0?this.s:this[0]<<24>>24}function Ne(){return this.t==0?this.s:this[0]<<16>>16}function Ve(X){return Math.floor(Math.LN2*this.DB/Math.log(X))}function kt(){return this.s<0?-1:this.t<=0||this.t==1&&this[0]<=0?0:1}function Ft(X){if(X==null&&(X=10),this.signum()==0||X<2||X>36)return"0";var te=this.chunkSize(X),le=Math.pow(X,te),Pe=A(le),Ke=i(),st=i(),wt="";for(this.divRemTo(Pe,Ke,st);Ke.signum()>0;)wt=(le+st.intValue()).toString(X).substr(1)+wt,Ke.divRemTo(Pe,Ke,st);return st.intValue().toString(X)+wt}function rr(X,te){this.fromInt(0),te==null&&(te=10);for(var le=this.chunkSize(te),Pe=Math.pow(te,le),Ke=!1,st=0,wt=0,Kt=0;Kt<X.length;++Kt){var Gn=y(X,Kt);if(Gn<0){X.charAt(Kt)=="-"&&this.signum()==0&&(Ke=!0);continue}wt=te*wt+Gn,++st>=le&&(this.dMultiply(Pe),this.dAddOffset(wt,0),st=0,wt=0)}st>0&&(this.dMultiply(Math.pow(te,st)),this.dAddOffset(wt,0)),Ke&&n.ZERO.subTo(this,this)}function Or(X,te,le){if(typeof te=="number")if(X<2)this.fromInt(1);else for(this.fromNumber(X,le),this.testBit(X-1)||this.bitwiseTo(n.ONE.shiftLeft(X-1),Dt,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(te);)this.dAddOffset(2,0),this.bitLength()>X&&this.subTo(n.ONE.shiftLeft(X-1),this);else{var Pe=new Array,Ke=X&7;Pe.length=(X>>3)+1,te.nextBytes(Pe),Ke>0?Pe[0]&=(1<<Ke)-1:Pe[0]=0,this.fromString(Pe,256)}}function kr(){var X=this.t,te=new Array;te[0]=this.s;var le=this.DB-X*this.DB%8,Pe,Ke=0;if(X-- >0)for(le<this.DB&&(Pe=this[X]>>le)!=(this.s&this.DM)>>le&&(te[Ke++]=Pe|this.s<<this.DB-le);X>=0;)le<8?(Pe=(this[X]&(1<<le)-1)<<8-le,Pe|=this[--X]>>(le+=this.DB-8)):(Pe=this[X]>>(le-=8)&255,le<=0&&(le+=this.DB,--X)),Pe&128&&(Pe|=-256),Ke==0&&(this.s&128)!=(Pe&128)&&++Ke,(Ke>0||Pe!=this.s)&&(te[Ke++]=Pe);return te}function dr(X){return this.compareTo(X)==0}function $t(X){return this.compareTo(X)<0?this:X}function $e(X){return this.compareTo(X)>0?this:X}function Ue(X,te,le){var Pe,Ke,st=Math.min(X.t,this.t);for(Pe=0;Pe<st;++Pe)le[Pe]=te(this[Pe],X[Pe]);if(X.t<this.t){for(Ke=X.s&this.DM,Pe=st;Pe<this.t;++Pe)le[Pe]=te(this[Pe],Ke);le.t=this.t}else{for(Ke=this.s&this.DM,Pe=st;Pe<X.t;++Pe)le[Pe]=te(Ke,X[Pe]);le.t=X.t}le.s=te(this.s,X.s),le.clamp()}function ct(X,te){return X&te}function ut(X){var te=i();return this.bitwiseTo(X,ct,te),te}function Dt(X,te){return X|te}function Zt(X){var te=i();return this.bitwiseTo(X,Dt,te),te}function hr(X,te){return X^te}function Bt(X){var te=i();return this.bitwiseTo(X,hr,te),te}function pr(X,te){return X&~te}function wn(X){var te=i();return this.bitwiseTo(X,pr,te),te}function Ai(){for(var X=i(),te=0;te<this.t;++te)X[te]=this.DM&~this[te];return X.t=this.t,X.s=~this.s,X}function Ui(X){var te=i();return X<0?this.rShiftTo(-X,te):this.lShiftTo(X,te),te}function Xa(X){var te=i();return X<0?this.lShiftTo(-X,te):this.rShiftTo(X,te),te}function ws(X){if(X==0)return-1;var te=0;return X&65535||(X>>=16,te+=16),X&255||(X>>=8,te+=8),X&15||(X>>=4,te+=4),X&3||(X>>=2,te+=2),X&1||++te,te}function Pl(){for(var X=0;X<this.t;++X)if(this[X]!=0)return X*this.DB+ws(this[X]);return this.s<0?this.t*this.DB:-1}function Is(X){for(var te=0;X!=0;)X&=X-1,++te;return te}function _s(){for(var X=0,te=this.s&this.DM,le=0;le<this.t;++le)X+=Is(this[le]^te);return X}function Rs(X){var te=Math.floor(X/this.DB);return te>=this.t?this.s!=0:(this[te]&1<<X%this.DB)!=0}function Yc(X,te){var le=n.ONE.shiftLeft(X);return this.bitwiseTo(le,te,le),le}function fc(X){return this.changeBit(X,Dt)}function Il(X){return this.changeBit(X,pr)}function Zo(X){return this.changeBit(X,hr)}function Fe(X,te){for(var le=0,Pe=0,Ke=Math.min(X.t,this.t);le<Ke;)Pe+=this[le]+X[le],te[le++]=Pe&this.DM,Pe>>=this.DB;if(X.t<this.t){for(Pe+=X.s;le<this.t;)Pe+=this[le],te[le++]=Pe&this.DM,Pe>>=this.DB;Pe+=this.s}else{for(Pe+=this.s;le<X.t;)Pe+=X[le],te[le++]=Pe&this.DM,Pe>>=this.DB;Pe+=X.s}te.s=Pe<0?-1:0,Pe>0?te[le++]=Pe:Pe<-1&&(te[le++]=this.DV+Pe),te.t=le,te.clamp()}function _e(X){var te=i();return this.addTo(X,te),te}function O(X){var te=i();return this.subTo(X,te),te}function Y(X){var te=i();return this.multiplyTo(X,te),te}function W(){var X=i();return this.squareTo(X),X}function k(X){var te=i();return this.divRemTo(X,te,null),te}function pe(X){var te=i();return this.divRemTo(X,null,te),te}function je(X){var te=i(),le=i();return this.divRemTo(X,te,le),new Array(te,le)}function Be(X){this[this.t]=this.am(0,X-1,this,0,0,this.t),++this.t,this.clamp()}function Je(X,te){if(X!=0){for(;this.t<=te;)this[this.t++]=0;for(this[te]+=X;this[te]>=this.DV;)this[te]-=this.DV,++te>=this.t&&(this[this.t++]=0),++this[te]}}function nt(){}function St(X){return X}function _t(X,te,le){X.multiplyTo(te,le)}function or(X,te){X.squareTo(te)}nt.prototype.convert=St,nt.prototype.revert=St,nt.prototype.mulTo=_t,nt.prototype.sqrTo=or;function gt(X){return this.exp(X,new nt)}function Ht(X,te,le){var Pe=Math.min(this.t+X.t,te);for(le.s=0,le.t=Pe;Pe>0;)le[--Pe]=0;var Ke;for(Ke=le.t-this.t;Pe<Ke;++Pe)le[Pe+this.t]=this.am(0,X[Pe],le,Pe,0,this.t);for(Ke=Math.min(X.t,te);Pe<Ke;++Pe)this.am(0,X[Pe],le,Pe,0,te-Pe);le.clamp()}function Nt(X,te,le){--te;var Pe=le.t=this.t+X.t-te;for(le.s=0;--Pe>=0;)le[Pe]=0;for(Pe=Math.max(te-this.t,0);Pe<X.t;++Pe)le[this.t+Pe-te]=this.am(te-Pe,X[Pe],le,0,0,this.t+Pe-te);le.clamp(),le.drShiftTo(1,le)}function er(X){this.r2=i(),this.q3=i(),n.ONE.dlShiftTo(2*X.t,this.r2),this.mu=this.r2.divide(X),this.m=X}function ur(X){if(X.s<0||X.t>2*this.m.t)return X.mod(this.m);if(X.compareTo(this.m)<0)return X;var te=i();return X.copyTo(te),this.reduce(te),te}function Jt(X){return X}function Mt(X){for(X.drShiftTo(this.m.t-1,this.r2),X.t>this.m.t+1&&(X.t=this.m.t+1,X.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);X.compareTo(this.r2)<0;)X.dAddOffset(1,this.m.t+1);for(X.subTo(this.r2,X);X.compareTo(this.m)>=0;)X.subTo(this.m,X)}function tr(X,te){X.squareTo(te),this.reduce(te)}function Tt(X,te,le){X.multiplyTo(te,le),this.reduce(le)}er.prototype.convert=ur,er.prototype.revert=Jt,er.prototype.reduce=Mt,er.prototype.mulTo=Tt,er.prototype.sqrTo=tr;function Vt(X,te){var le=X.bitLength(),Pe,Ke=A(1),st;if(le<=0)return Ke;le<18?Pe=1:le<48?Pe=3:le<144?Pe=4:le<768?Pe=5:Pe=6,le<8?st=new de(te):te.isEven()?st=new er(te):st=new $(te);var wt=new Array,Kt=3,Gn=Pe-1,zi=(1<<Pe)-1;if(wt[1]=st.convert(this),Pe>1){var Qa=i();for(st.sqrTo(wt[1],Qa);Kt<=zi;)wt[Kt]=i(),st.mulTo(Qa,wt[Kt-2],wt[Kt]),Kt+=2}var Za=X.t-1,dc,Zh=!0,eu=i(),xs;for(le=M(X[Za])-1;Za>=0;){for(le>=Gn?dc=X[Za]>>le-Gn&zi:(dc=(X[Za]&(1<<le+1)-1)<<Gn-le,Za>0&&(dc|=X[Za-1]>>this.DB+le-Gn)),Kt=Pe;!(dc&1);)dc>>=1,--Kt;if((le-=Kt)<0&&(le+=this.DB,--Za),Zh)wt[dc].copyTo(Ke),Zh=!1;else{for(;Kt>1;)st.sqrTo(Ke,eu),st.sqrTo(eu,Ke),Kt-=2;Kt>0?st.sqrTo(Ke,eu):(xs=Ke,Ke=eu,eu=xs),st.mulTo(eu,wt[dc],Ke)}for(;Za>=0&&!(X[Za]&1<<le);)st.sqrTo(Ke,eu),xs=Ke,Ke=eu,eu=xs,--le<0&&(le=this.DB-1,--Za)}return st.revert(Ke)}function At(X){var te=this.s<0?this.negate():this.clone(),le=X.s<0?X.negate():X.clone();if(te.compareTo(le)<0){var Pe=te;te=le,le=Pe}var Ke=te.getLowestSetBit(),st=le.getLowestSetBit();if(st<0)return te;for(Ke<st&&(st=Ke),st>0&&(te.rShiftTo(st,te),le.rShiftTo(st,le));te.signum()>0;)(Ke=te.getLowestSetBit())>0&&te.rShiftTo(Ke,te),(Ke=le.getLowestSetBit())>0&&le.rShiftTo(Ke,le),te.compareTo(le)>=0?(te.subTo(le,te),te.rShiftTo(1,te)):(le.subTo(te,le),le.rShiftTo(1,le));return st>0&&le.lShiftTo(st,le),le}function jt(X){if(X<=0)return 0;var te=this.DV%X,le=this.s<0?X-1:0;if(this.t>0)if(te==0)le=this[0]%X;else for(var Pe=this.t-1;Pe>=0;--Pe)le=(te*le+this[Pe])%X;return le}function Gt(X){var te=X.isEven();if(this.isEven()&&te||X.signum()==0)return n.ZERO;for(var le=X.clone(),Pe=this.clone(),Ke=A(1),st=A(0),wt=A(0),Kt=A(1);le.signum()!=0;){for(;le.isEven();)le.rShiftTo(1,le),te?((!Ke.isEven()||!st.isEven())&&(Ke.addTo(this,Ke),st.subTo(X,st)),Ke.rShiftTo(1,Ke)):st.isEven()||st.subTo(X,st),st.rShiftTo(1,st);for(;Pe.isEven();)Pe.rShiftTo(1,Pe),te?((!wt.isEven()||!Kt.isEven())&&(wt.addTo(this,wt),Kt.subTo(X,Kt)),wt.rShiftTo(1,wt)):Kt.isEven()||Kt.subTo(X,Kt),Kt.rShiftTo(1,Kt);le.compareTo(Pe)>=0?(le.subTo(Pe,le),te&&Ke.subTo(wt,Ke),st.subTo(Kt,st)):(Pe.subTo(le,Pe),te&&wt.subTo(Ke,wt),Kt.subTo(st,Kt))}if(Pe.compareTo(n.ONE)!=0)return n.ZERO;if(Kt.compareTo(X)>=0)return Kt.subtract(X);if(Kt.signum()<0)Kt.addTo(X,Kt);else return Kt;return Kt.signum()<0?Kt.add(X):Kt}var bt=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],Ge=(1<<26)/bt[bt.length-1];function He(X){var te,le=this.abs();if(le.t==1&&le[0]<=bt[bt.length-1]){for(te=0;te<bt.length;++te)if(le[0]==bt[te])return!0;return!1}if(le.isEven())return!1;for(te=1;te<bt.length;){for(var Pe=bt[te],Ke=te+1;Ke<bt.length&&Pe<Ge;)Pe*=bt[Ke++];for(Pe=le.modInt(Pe);te<Ke;)if(Pe%bt[te++]==0)return!1}return le.millerRabin(X)}function lt(X){var te=this.subtract(n.ONE),le=te.getLowestSetBit();if(le<=0)return!1;var Pe=te.shiftRight(le);X=X+1>>1,X>bt.length&&(X=bt.length);for(var Ke=i(),st=0;st<X;++st){Ke.fromInt(bt[Math.floor(Math.random()*bt.length)]);var wt=Ke.modPow(Pe,this);if(wt.compareTo(n.ONE)!=0&&wt.compareTo(te)!=0){for(var Kt=1;Kt++<le&&wt.compareTo(te)!=0;)if(wt=wt.modPowInt(2,this),wt.compareTo(n.ONE)==0)return!1;if(wt.compareTo(te)!=0)return!1}}return!0}n.prototype.chunkSize=Ve,n.prototype.toRadix=Ft,n.prototype.fromRadix=rr,n.prototype.fromNumber=Or,n.prototype.bitwiseTo=Ue,n.prototype.changeBit=Yc,n.prototype.addTo=Fe,n.prototype.dMultiply=Be,n.prototype.dAddOffset=Je,n.prototype.multiplyLowerTo=Ht,n.prototype.multiplyUpperTo=Nt,n.prototype.modInt=jt,n.prototype.millerRabin=lt,n.prototype.clone=Ee,n.prototype.intValue=De,n.prototype.byteValue=Le,n.prototype.shortValue=Ne,n.prototype.signum=kt,n.prototype.toByteArray=kr,n.prototype.equals=dr,n.prototype.min=$t,n.prototype.max=$e,n.prototype.and=ut,n.prototype.or=Zt,n.prototype.xor=Bt,n.prototype.andNot=wn,n.prototype.not=Ai,n.prototype.shiftLeft=Ui,n.prototype.shiftRight=Xa,n.prototype.getLowestSetBit=Pl,n.prototype.bitCount=_s,n.prototype.testBit=Rs,n.prototype.setBit=fc,n.prototype.clearBit=Il,n.prototype.flipBit=Zo,n.prototype.add=_e,n.prototype.subtract=O,n.prototype.multiply=Y,n.prototype.divide=k,n.prototype.remainder=pe,n.prototype.divideAndRemainder=je,n.prototype.modPow=Vt,n.prototype.modInverse=Gt,n.prototype.pow=gt,n.prototype.gcd=At,n.prototype.isProbablePrime=He,n.prototype.square=W,n.prototype.Barrett=er;var it,Xe,Z;function we(X){Xe[Z++]^=X&255,Xe[Z++]^=X>>8&255,Xe[Z++]^=X>>16&255,Xe[Z++]^=X>>24&255,Z>=It&&(Z-=It)}function he(){we(new Date().getTime())}if(Xe==null){Xe=new Array,Z=0;var Ae;if(typeof window<"u"&&window.crypto){if(window.crypto.getRandomValues){var Re=new Uint8Array(32);for(window.crypto.getRandomValues(Re),Ae=0;Ae<32;++Ae)Xe[Z++]=Re[Ae]}else if(navigator.appName=="Netscape"&&navigator.appVersion<"5"){var ee=window.crypto.random(32);for(Ae=0;Ae<ee.length;++Ae)Xe[Z++]=ee.charCodeAt(Ae)&255}}for(;Z<It;)Ae=Math.floor(65536*Math.random()),Xe[Z++]=Ae>>>8,Xe[Z++]=Ae&255;Z=0,he()}function ze(){if(it==null){for(he(),it=zt(),it.init(Xe),Z=0;Z<Xe.length;++Z)Xe[Z]=0;Z=0}return it.next()}function Qe(X){var te;for(te=0;te<X.length;++te)X[te]=ze()}function Ye(){}Ye.prototype.nextBytes=Qe;function et(){this.i=0,this.j=0,this.S=new Array}function ot(X){var te,le,Pe;for(te=0;te<256;++te)this.S[te]=te;for(le=0,te=0;te<256;++te)le=le+this.S[te]+X[te%X.length]&255,Pe=this.S[te],this.S[te]=this.S[le],this.S[le]=Pe;this.i=0,this.j=0}function vt(){var X;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,X=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=X,this.S[X+this.S[this.i]&255]}et.prototype.init=ot,et.prototype.next=vt;function zt(){return new et}var It=256;n.SecureRandom=Ye,n.BigInteger=n,typeof LN<"u"?LN=VXe.exports=n:(this.BigInteger=n,this.SecureRandom=Ye)}).call(LN)});var Mk=b((Xle,GXe)=>{var qi=k3().BigInteger,klr=qi.prototype.Barrett;function Na(e,t){this.x=t,this.q=e}function Alr(e){return e==this?!0:this.q.equals(e.q)&&this.x.equals(e.x)}function Tlr(){return this.x}function Olr(){return new Na(this.q,this.x.negate().mod(this.q))}function Dlr(e){return new Na(this.q,this.x.add(e.toBigInteger()).mod(this.q))}function Clr(e){return new Na(this.q,this.x.subtract(e.toBigInteger()).mod(this.q))}function Plr(e){return new Na(this.q,this.x.multiply(e.toBigInteger()).mod(this.q))}function Ilr(){return new Na(this.q,this.x.square().mod(this.q))}function Rlr(e){return new Na(this.q,this.x.multiply(e.toBigInteger().modInverse(this.q)).mod(this.q))}Na.prototype.equals=Alr;Na.prototype.toBigInteger=Tlr;Na.prototype.negate=Olr;Na.prototype.add=Dlr;Na.prototype.subtract=Clr;Na.prototype.multiply=Plr;Na.prototype.square=Ilr;Na.prototype.divide=Rlr;function mu(e,t,r,n){this.curve=e,this.x=t,this.y=r,n==null?this.z=qi.ONE:this.z=n,this.zinv=null}function Flr(){this.zinv==null&&(this.zinv=this.z.modInverse(this.curve.q));var e=this.x.toBigInteger().multiply(this.zinv);return this.curve.reduce(e),this.curve.fromBigInteger(e)}function jlr(){this.zinv==null&&(this.zinv=this.z.modInverse(this.curve.q));var e=this.y.toBigInteger().multiply(this.zinv);return this.curve.reduce(e),this.curve.fromBigInteger(e)}function Nlr(e){if(e==this)return!0;if(this.isInfinity())return e.isInfinity();if(e.isInfinity())return this.isInfinity();var t,r;return t=e.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(e.z)).mod(this.curve.q),t.equals(qi.ZERO)?(r=e.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(e.z)).mod(this.curve.q),r.equals(qi.ZERO)):!1}function qlr(){return this.x==null&&this.y==null?!0:this.z.equals(qi.ZERO)&&!this.y.toBigInteger().equals(qi.ZERO)}function Llr(){return new mu(this.curve,this.x,this.y.negate(),this.z)}function $lr(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(e.z)).mod(this.curve.q),r=e.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(e.z)).mod(this.curve.q);if(qi.ZERO.equals(r))return qi.ZERO.equals(t)?this.twice():this.curve.getInfinity();var n=new qi("3"),i=this.x.toBigInteger(),a=this.y.toBigInteger(),s=e.x.toBigInteger(),o=e.y.toBigInteger(),c=r.square(),p=c.multiply(r),f=i.multiply(c),d=t.square().multiply(this.z),h=d.subtract(f.shiftLeft(1)).multiply(e.z).subtract(p).multiply(r).mod(this.curve.q),g=f.multiply(n).multiply(t).subtract(a.multiply(p)).subtract(d.multiply(t)).multiply(e.z).add(t.multiply(p)).mod(this.curve.q),v=p.multiply(this.z).multiply(e.z).mod(this.curve.q);return new mu(this.curve,this.curve.fromBigInteger(h),this.curve.fromBigInteger(g),v)}function Blr(){if(this.isInfinity())return this;if(this.y.toBigInteger().signum()==0)return this.curve.getInfinity();var e=new qi("3"),t=this.x.toBigInteger(),r=this.y.toBigInteger(),n=r.multiply(this.z),i=n.multiply(r).mod(this.curve.q),a=this.curve.a.toBigInteger(),s=t.square().multiply(e);qi.ZERO.equals(a)||(s=s.add(this.z.square().multiply(a))),s=s.mod(this.curve.q);var o=s.square().subtract(t.shiftLeft(3).multiply(i)).shiftLeft(1).multiply(n).mod(this.curve.q),c=s.multiply(e).multiply(t).subtract(i.shiftLeft(1)).shiftLeft(2).multiply(i).subtract(s.square().multiply(s)).mod(this.curve.q),p=n.square().multiply(n).shiftLeft(3).mod(this.curve.q);return new mu(this.curve,this.curve.fromBigInteger(o),this.curve.fromBigInteger(c),p)}function Mlr(e){if(this.isInfinity())return this;if(e.signum()==0)return this.curve.getInfinity();var t=e,r=t.multiply(new qi("3")),n=this.negate(),i=this,a;for(a=r.bitLength()-2;a>0;--a){i=i.twice();var s=r.testBit(a),o=t.testBit(a);s!=o&&(i=i.add(s?this:n))}return i}function Ulr(e,t,r){var n;e.bitLength()>r.bitLength()?n=e.bitLength()-1:n=r.bitLength()-1;for(var i=this.curve.getInfinity(),a=this.add(t);n>=0;)i=i.twice(),e.testBit(n)?r.testBit(n)?i=i.add(a):i=i.add(this):r.testBit(n)&&(i=i.add(t)),--n;return i}mu.prototype.getX=Flr;mu.prototype.getY=jlr;mu.prototype.equals=Nlr;mu.prototype.isInfinity=qlr;mu.prototype.negate=Llr;mu.prototype.add=$lr;mu.prototype.twice=Blr;mu.prototype.multiply=Mlr;mu.prototype.multiplyTwo=Ulr;function Df(e,t,r){this.q=e,this.a=this.fromBigInteger(t),this.b=this.fromBigInteger(r),this.infinity=new mu(this,null,null),this.reducer=new klr(this.q)}function zlr(){return this.q}function Hlr(){return this.a}function Vlr(){return this.b}function Glr(e){return e==this?!0:this.q.equals(e.q)&&this.a.equals(e.a)&&this.b.equals(e.b)}function Wlr(){return this.infinity}function Klr(e){return new Na(this.q,e)}function Ylr(e){this.reducer.reduce(e)}function Jlr(e){if(e.isInfinity())return"00";var t=e.getX().toBigInteger().toString(16),r=e.getY().toBigInteger().toString(16),n=this.getQ().toString(16).length;for(n%2!=0&&n++;t.length<n;)t="0"+t;for(;r.length<n;)r="0"+r;return"04"+t+r}Df.prototype.getQ=zlr;Df.prototype.getA=Hlr;Df.prototype.getB=Vlr;Df.prototype.equals=Glr;Df.prototype.getInfinity=Wlr;Df.prototype.fromBigInteger=Klr;Df.prototype.reduce=Ylr;Df.prototype.encodePointHex=Jlr;Df.prototype.decodePointHex=function(e){var t;switch(parseInt(e.substr(0,2),16)){case 0:return this.infinity;case 2:t=!1;case 3:t==null&&(t=!0);var s=e.length-2,o=e.substr(2,s),r=this.fromBigInteger(new qi(o,16)),n=r.multiply(r.square().add(this.getA())).add(this.getB()),i=n.sqrt();if(i==null)throw"Invalid point compression";var a=i.toBigInteger();return a.testBit(0)!=t&&(i=this.fromBigInteger(this.getQ().subtract(a))),new mu(this,r,i);case 4:case 6:case 7:var s=(e.length-2)/2,o=e.substr(2,s),c=e.substr(s+2,s);return new mu(this,this.fromBigInteger(new qi(o,16)),this.fromBigInteger(new qi(c,16)));default:return null}};Df.prototype.encodeCompressedPointHex=function(e){if(e.isInfinity())return"00";var t=e.getX().toBigInteger().toString(16),r=this.getQ().toString(16).length;for(r%2!=0&&r++;t.length<r;)t="0"+t;var n;return e.getY().toBigInteger().isEven()?n="02":n="03",n+t};Na.prototype.getR=function(){if(this.r!=null)return this.r;this.r=null;var e=this.q.bitLength();if(e>128){var t=this.q.shiftRight(e-64);t.intValue()==-1&&(this.r=qi.ONE.shiftLeft(e).subtract(this.q))}return this.r};Na.prototype.modMult=function(e,t){return this.modReduce(e.multiply(t))};Na.prototype.modReduce=function(e){if(this.getR()!=null){for(var t=q.bitLength();e.bitLength()>t+1;){var r=e.shiftRight(t),n=e.subtract(r.shiftLeft(t));this.getR().equals(qi.ONE)||(r=r.multiply(this.getR())),e=r.add(n)}for(;e.compareTo(q)>=0;)e=e.subtract(q)}else e=e.mod(q);return e};Na.prototype.sqrt=function(){if(!this.q.testBit(0))throw"unsupported";if(this.q.testBit(1)){var e=new Na(this.q,this.x.modPow(this.q.shiftRight(2).add(qi.ONE),this.q));return e.square().equals(this)?e:null}var t=this.q.subtract(qi.ONE),r=t.shiftRight(1);if(!this.x.modPow(r,this.q).equals(qi.ONE))return null;var n=t.shiftRight(2),i=n.shiftLeft(1).add(qi.ONE),a=this.x,s=modDouble(modDouble(a)),o,c;do{var p;do p=new qi(this.q.bitLength(),new SecureRandom);while(p.compareTo(this.q)>=0||!p.multiply(p).subtract(s).modPow(r,this.q).equals(t));var f=this.lucasSequence(p,a,i);if(o=f[0],c=f[1],this.modMult(c,c).equals(s))return c.testBit(0)&&(c=c.add(q)),c=c.shiftRight(1),new Na(q,c)}while(o.equals(qi.ONE)||o.equals(t));return null};Na.prototype.lucasSequence=function(e,t,r){for(var n=r.bitLength(),i=r.getLowestSetBit(),a=qi.ONE,s=qi.TWO,o=e,c=qi.ONE,p=qi.ONE,f=n-1;f>=i+1;--f)c=this.modMult(c,p),r.testBit(f)?(p=this.modMult(c,t),a=this.modMult(a,o),s=this.modReduce(o.multiply(s).subtract(e.multiply(c))),o=this.modReduce(o.multiply(o).subtract(p.shiftLeft(1)))):(p=c,a=this.modReduce(a.multiply(s).subtract(c)),o=this.modReduce(o.multiply(s).subtract(e.multiply(c))),s=this.modReduce(s.multiply(s).subtract(c.shiftLeft(1))));c=this.modMult(c,p),p=this.modMult(c,t),a=this.modReduce(a.multiply(s).subtract(c)),s=this.modReduce(o.multiply(s).subtract(e.multiply(c))),c=this.modMult(c,p);for(var f=1;f<=i;++f)a=this.modMult(a,s),s=this.modReduce(s.multiply(s).subtract(c.shiftLeft(1))),c=this.modMult(c,c);return[a,s]};var Xle={ECCurveFp:Df,ECPointFp:mu,ECFieldElementFp:Na};GXe.exports=Xle});var A3=b((Bin,$N)=>{(function(e){"use strict";var t=function(O){var Y,W=new Float64Array(16);if(O)for(Y=0;Y<O.length;Y++)W[Y]=O[Y];return W},r=function(){throw new Error("no PRNG")},n=new Uint8Array(16),i=new Uint8Array(32);i[0]=9;var a=t(),s=t([1]),o=t([56129,1]),c=t([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),p=t([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),f=t([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),d=t([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),h=t([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function g(O,Y,W,k){O[Y]=W>>24&255,O[Y+1]=W>>16&255,O[Y+2]=W>>8&255,O[Y+3]=W&255,O[Y+4]=k>>24&255,O[Y+5]=k>>16&255,O[Y+6]=k>>8&255,O[Y+7]=k&255}function v(O,Y,W,k,pe){var je,Be=0;for(je=0;je<pe;je++)Be|=O[Y+je]^W[k+je];return(1&Be-1>>>8)-1}function y(O,Y,W,k){return v(O,Y,W,k,16)}function _(O,Y,W,k){return v(O,Y,W,k,32)}function x(O,Y,W,k){for(var pe=k[0]&255|(k[1]&255)<<8|(k[2]&255)<<16|(k[3]&255)<<24,je=W[0]&255|(W[1]&255)<<8|(W[2]&255)<<16|(W[3]&255)<<24,Be=W[4]&255|(W[5]&255)<<8|(W[6]&255)<<16|(W[7]&255)<<24,Je=W[8]&255|(W[9]&255)<<8|(W[10]&255)<<16|(W[11]&255)<<24,nt=W[12]&255|(W[13]&255)<<8|(W[14]&255)<<16|(W[15]&255)<<24,St=k[4]&255|(k[5]&255)<<8|(k[6]&255)<<16|(k[7]&255)<<24,_t=Y[0]&255|(Y[1]&255)<<8|(Y[2]&255)<<16|(Y[3]&255)<<24,or=Y[4]&255|(Y[5]&255)<<8|(Y[6]&255)<<16|(Y[7]&255)<<24,gt=Y[8]&255|(Y[9]&255)<<8|(Y[10]&255)<<16|(Y[11]&255)<<24,Ht=Y[12]&255|(Y[13]&255)<<8|(Y[14]&255)<<16|(Y[15]&255)<<24,Nt=k[8]&255|(k[9]&255)<<8|(k[10]&255)<<16|(k[11]&255)<<24,er=W[16]&255|(W[17]&255)<<8|(W[18]&255)<<16|(W[19]&255)<<24,ur=W[20]&255|(W[21]&255)<<8|(W[22]&255)<<16|(W[23]&255)<<24,Jt=W[24]&255|(W[25]&255)<<8|(W[26]&255)<<16|(W[27]&255)<<24,Mt=W[28]&255|(W[29]&255)<<8|(W[30]&255)<<16|(W[31]&255)<<24,tr=k[12]&255|(k[13]&255)<<8|(k[14]&255)<<16|(k[15]&255)<<24,Tt=pe,Vt=je,At=Be,jt=Je,Gt=nt,bt=St,Ge=_t,He=or,lt=gt,it=Ht,Xe=Nt,Z=er,we=ur,he=Jt,Ae=Mt,Re=tr,ee,ze=0;ze<20;ze+=2)ee=Tt+we|0,Gt^=ee<<7|ee>>>32-7,ee=Gt+Tt|0,lt^=ee<<9|ee>>>32-9,ee=lt+Gt|0,we^=ee<<13|ee>>>32-13,ee=we+lt|0,Tt^=ee<<18|ee>>>32-18,ee=bt+Vt|0,it^=ee<<7|ee>>>32-7,ee=it+bt|0,he^=ee<<9|ee>>>32-9,ee=he+it|0,Vt^=ee<<13|ee>>>32-13,ee=Vt+he|0,bt^=ee<<18|ee>>>32-18,ee=Xe+Ge|0,Ae^=ee<<7|ee>>>32-7,ee=Ae+Xe|0,At^=ee<<9|ee>>>32-9,ee=At+Ae|0,Ge^=ee<<13|ee>>>32-13,ee=Ge+At|0,Xe^=ee<<18|ee>>>32-18,ee=Re+Z|0,jt^=ee<<7|ee>>>32-7,ee=jt+Re|0,He^=ee<<9|ee>>>32-9,ee=He+jt|0,Z^=ee<<13|ee>>>32-13,ee=Z+He|0,Re^=ee<<18|ee>>>32-18,ee=Tt+jt|0,Vt^=ee<<7|ee>>>32-7,ee=Vt+Tt|0,At^=ee<<9|ee>>>32-9,ee=At+Vt|0,jt^=ee<<13|ee>>>32-13,ee=jt+At|0,Tt^=ee<<18|ee>>>32-18,ee=bt+Gt|0,Ge^=ee<<7|ee>>>32-7,ee=Ge+bt|0,He^=ee<<9|ee>>>32-9,ee=He+Ge|0,Gt^=ee<<13|ee>>>32-13,ee=Gt+He|0,bt^=ee<<18|ee>>>32-18,ee=Xe+it|0,Z^=ee<<7|ee>>>32-7,ee=Z+Xe|0,lt^=ee<<9|ee>>>32-9,ee=lt+Z|0,it^=ee<<13|ee>>>32-13,ee=it+lt|0,Xe^=ee<<18|ee>>>32-18,ee=Re+Ae|0,we^=ee<<7|ee>>>32-7,ee=we+Re|0,he^=ee<<9|ee>>>32-9,ee=he+we|0,Ae^=ee<<13|ee>>>32-13,ee=Ae+he|0,Re^=ee<<18|ee>>>32-18;Tt=Tt+pe|0,Vt=Vt+je|0,At=At+Be|0,jt=jt+Je|0,Gt=Gt+nt|0,bt=bt+St|0,Ge=Ge+_t|0,He=He+or|0,lt=lt+gt|0,it=it+Ht|0,Xe=Xe+Nt|0,Z=Z+er|0,we=we+ur|0,he=he+Jt|0,Ae=Ae+Mt|0,Re=Re+tr|0,O[0]=Tt>>>0&255,O[1]=Tt>>>8&255,O[2]=Tt>>>16&255,O[3]=Tt>>>24&255,O[4]=Vt>>>0&255,O[5]=Vt>>>8&255,O[6]=Vt>>>16&255,O[7]=Vt>>>24&255,O[8]=At>>>0&255,O[9]=At>>>8&255,O[10]=At>>>16&255,O[11]=At>>>24&255,O[12]=jt>>>0&255,O[13]=jt>>>8&255,O[14]=jt>>>16&255,O[15]=jt>>>24&255,O[16]=Gt>>>0&255,O[17]=Gt>>>8&255,O[18]=Gt>>>16&255,O[19]=Gt>>>24&255,O[20]=bt>>>0&255,O[21]=bt>>>8&255,O[22]=bt>>>16&255,O[23]=bt>>>24&255,O[24]=Ge>>>0&255,O[25]=Ge>>>8&255,O[26]=Ge>>>16&255,O[27]=Ge>>>24&255,O[28]=He>>>0&255,O[29]=He>>>8&255,O[30]=He>>>16&255,O[31]=He>>>24&255,O[32]=lt>>>0&255,O[33]=lt>>>8&255,O[34]=lt>>>16&255,O[35]=lt>>>24&255,O[36]=it>>>0&255,O[37]=it>>>8&255,O[38]=it>>>16&255,O[39]=it>>>24&255,O[40]=Xe>>>0&255,O[41]=Xe>>>8&255,O[42]=Xe>>>16&255,O[43]=Xe>>>24&255,O[44]=Z>>>0&255,O[45]=Z>>>8&255,O[46]=Z>>>16&255,O[47]=Z>>>24&255,O[48]=we>>>0&255,O[49]=we>>>8&255,O[50]=we>>>16&255,O[51]=we>>>24&255,O[52]=he>>>0&255,O[53]=he>>>8&255,O[54]=he>>>16&255,O[55]=he>>>24&255,O[56]=Ae>>>0&255,O[57]=Ae>>>8&255,O[58]=Ae>>>16&255,O[59]=Ae>>>24&255,O[60]=Re>>>0&255,O[61]=Re>>>8&255,O[62]=Re>>>16&255,O[63]=Re>>>24&255}function A(O,Y,W,k){for(var pe=k[0]&255|(k[1]&255)<<8|(k[2]&255)<<16|(k[3]&255)<<24,je=W[0]&255|(W[1]&255)<<8|(W[2]&255)<<16|(W[3]&255)<<24,Be=W[4]&255|(W[5]&255)<<8|(W[6]&255)<<16|(W[7]&255)<<24,Je=W[8]&255|(W[9]&255)<<8|(W[10]&255)<<16|(W[11]&255)<<24,nt=W[12]&255|(W[13]&255)<<8|(W[14]&255)<<16|(W[15]&255)<<24,St=k[4]&255|(k[5]&255)<<8|(k[6]&255)<<16|(k[7]&255)<<24,_t=Y[0]&255|(Y[1]&255)<<8|(Y[2]&255)<<16|(Y[3]&255)<<24,or=Y[4]&255|(Y[5]&255)<<8|(Y[6]&255)<<16|(Y[7]&255)<<24,gt=Y[8]&255|(Y[9]&255)<<8|(Y[10]&255)<<16|(Y[11]&255)<<24,Ht=Y[12]&255|(Y[13]&255)<<8|(Y[14]&255)<<16|(Y[15]&255)<<24,Nt=k[8]&255|(k[9]&255)<<8|(k[10]&255)<<16|(k[11]&255)<<24,er=W[16]&255|(W[17]&255)<<8|(W[18]&255)<<16|(W[19]&255)<<24,ur=W[20]&255|(W[21]&255)<<8|(W[22]&255)<<16|(W[23]&255)<<24,Jt=W[24]&255|(W[25]&255)<<8|(W[26]&255)<<16|(W[27]&255)<<24,Mt=W[28]&255|(W[29]&255)<<8|(W[30]&255)<<16|(W[31]&255)<<24,tr=k[12]&255|(k[13]&255)<<8|(k[14]&255)<<16|(k[15]&255)<<24,Tt=pe,Vt=je,At=Be,jt=Je,Gt=nt,bt=St,Ge=_t,He=or,lt=gt,it=Ht,Xe=Nt,Z=er,we=ur,he=Jt,Ae=Mt,Re=tr,ee,ze=0;ze<20;ze+=2)ee=Tt+we|0,Gt^=ee<<7|ee>>>32-7,ee=Gt+Tt|0,lt^=ee<<9|ee>>>32-9,ee=lt+Gt|0,we^=ee<<13|ee>>>32-13,ee=we+lt|0,Tt^=ee<<18|ee>>>32-18,ee=bt+Vt|0,it^=ee<<7|ee>>>32-7,ee=it+bt|0,he^=ee<<9|ee>>>32-9,ee=he+it|0,Vt^=ee<<13|ee>>>32-13,ee=Vt+he|0,bt^=ee<<18|ee>>>32-18,ee=Xe+Ge|0,Ae^=ee<<7|ee>>>32-7,ee=Ae+Xe|0,At^=ee<<9|ee>>>32-9,ee=At+Ae|0,Ge^=ee<<13|ee>>>32-13,ee=Ge+At|0,Xe^=ee<<18|ee>>>32-18,ee=Re+Z|0,jt^=ee<<7|ee>>>32-7,ee=jt+Re|0,He^=ee<<9|ee>>>32-9,ee=He+jt|0,Z^=ee<<13|ee>>>32-13,ee=Z+He|0,Re^=ee<<18|ee>>>32-18,ee=Tt+jt|0,Vt^=ee<<7|ee>>>32-7,ee=Vt+Tt|0,At^=ee<<9|ee>>>32-9,ee=At+Vt|0,jt^=ee<<13|ee>>>32-13,ee=jt+At|0,Tt^=ee<<18|ee>>>32-18,ee=bt+Gt|0,Ge^=ee<<7|ee>>>32-7,ee=Ge+bt|0,He^=ee<<9|ee>>>32-9,ee=He+Ge|0,Gt^=ee<<13|ee>>>32-13,ee=Gt+He|0,bt^=ee<<18|ee>>>32-18,ee=Xe+it|0,Z^=ee<<7|ee>>>32-7,ee=Z+Xe|0,lt^=ee<<9|ee>>>32-9,ee=lt+Z|0,it^=ee<<13|ee>>>32-13,ee=it+lt|0,Xe^=ee<<18|ee>>>32-18,ee=Re+Ae|0,we^=ee<<7|ee>>>32-7,ee=we+Re|0,he^=ee<<9|ee>>>32-9,ee=he+we|0,Ae^=ee<<13|ee>>>32-13,ee=Ae+he|0,Re^=ee<<18|ee>>>32-18;O[0]=Tt>>>0&255,O[1]=Tt>>>8&255,O[2]=Tt>>>16&255,O[3]=Tt>>>24&255,O[4]=bt>>>0&255,O[5]=bt>>>8&255,O[6]=bt>>>16&255,O[7]=bt>>>24&255,O[8]=Xe>>>0&255,O[9]=Xe>>>8&255,O[10]=Xe>>>16&255,O[11]=Xe>>>24&255,O[12]=Re>>>0&255,O[13]=Re>>>8&255,O[14]=Re>>>16&255,O[15]=Re>>>24&255,O[16]=Ge>>>0&255,O[17]=Ge>>>8&255,O[18]=Ge>>>16&255,O[19]=Ge>>>24&255,O[20]=He>>>0&255,O[21]=He>>>8&255,O[22]=He>>>16&255,O[23]=He>>>24&255,O[24]=lt>>>0&255,O[25]=lt>>>8&255,O[26]=lt>>>16&255,O[27]=lt>>>24&255,O[28]=it>>>0&255,O[29]=it>>>8&255,O[30]=it>>>16&255,O[31]=it>>>24&255}function D(O,Y,W,k){x(O,Y,W,k)}function j(O,Y,W,k){A(O,Y,W,k)}var H=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function F(O,Y,W,k,pe,je,Be){var Je=new Uint8Array(16),nt=new Uint8Array(64),St,_t;for(_t=0;_t<16;_t++)Je[_t]=0;for(_t=0;_t<8;_t++)Je[_t]=je[_t];for(;pe>=64;){for(D(nt,Je,Be,H),_t=0;_t<64;_t++)O[Y+_t]=W[k+_t]^nt[_t];for(St=1,_t=8;_t<16;_t++)St=St+(Je[_t]&255)|0,Je[_t]=St&255,St>>>=8;pe-=64,Y+=64,k+=64}if(pe>0)for(D(nt,Je,Be,H),_t=0;_t<pe;_t++)O[Y+_t]=W[k+_t]^nt[_t];return 0}function z(O,Y,W,k,pe){var je=new Uint8Array(16),Be=new Uint8Array(64),Je,nt;for(nt=0;nt<16;nt++)je[nt]=0;for(nt=0;nt<8;nt++)je[nt]=k[nt];for(;W>=64;){for(D(Be,je,pe,H),nt=0;nt<64;nt++)O[Y+nt]=Be[nt];for(Je=1,nt=8;nt<16;nt++)Je=Je+(je[nt]&255)|0,je[nt]=Je&255,Je>>>=8;W-=64,Y+=64}if(W>0)for(D(Be,je,pe,H),nt=0;nt<W;nt++)O[Y+nt]=Be[nt];return 0}function P(O,Y,W,k,pe){var je=new Uint8Array(32);j(je,k,pe,H);for(var Be=new Uint8Array(8),Je=0;Je<8;Je++)Be[Je]=k[Je+16];return z(O,Y,W,Be,je)}function M(O,Y,W,k,pe,je,Be){var Je=new Uint8Array(32);j(Je,je,Be,H);for(var nt=new Uint8Array(8),St=0;St<8;St++)nt[St]=je[St+16];return F(O,Y,W,k,pe,nt,Je)}var K=function(O){this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.leftover=0,this.fin=0;var Y,W,k,pe,je,Be,Je,nt;Y=O[0]&255|(O[1]&255)<<8,this.r[0]=Y&8191,W=O[2]&255|(O[3]&255)<<8,this.r[1]=(Y>>>13|W<<3)&8191,k=O[4]&255|(O[5]&255)<<8,this.r[2]=(W>>>10|k<<6)&7939,pe=O[6]&255|(O[7]&255)<<8,this.r[3]=(k>>>7|pe<<9)&8191,je=O[8]&255|(O[9]&255)<<8,this.r[4]=(pe>>>4|je<<12)&255,this.r[5]=je>>>1&8190,Be=O[10]&255|(O[11]&255)<<8,this.r[6]=(je>>>14|Be<<2)&8191,Je=O[12]&255|(O[13]&255)<<8,this.r[7]=(Be>>>11|Je<<5)&8065,nt=O[14]&255|(O[15]&255)<<8,this.r[8]=(Je>>>8|nt<<8)&8191,this.r[9]=nt>>>5&127,this.pad[0]=O[16]&255|(O[17]&255)<<8,this.pad[1]=O[18]&255|(O[19]&255)<<8,this.pad[2]=O[20]&255|(O[21]&255)<<8,this.pad[3]=O[22]&255|(O[23]&255)<<8,this.pad[4]=O[24]&255|(O[25]&255)<<8,this.pad[5]=O[26]&255|(O[27]&255)<<8,this.pad[6]=O[28]&255|(O[29]&255)<<8,this.pad[7]=O[30]&255|(O[31]&255)<<8};K.prototype.blocks=function(O,Y,W){for(var k=this.fin?0:2048,pe,je,Be,Je,nt,St,_t,or,gt,Ht,Nt,er,ur,Jt,Mt,tr,Tt,Vt,At,jt=this.h[0],Gt=this.h[1],bt=this.h[2],Ge=this.h[3],He=this.h[4],lt=this.h[5],it=this.h[6],Xe=this.h[7],Z=this.h[8],we=this.h[9],he=this.r[0],Ae=this.r[1],Re=this.r[2],ee=this.r[3],ze=this.r[4],Qe=this.r[5],Ye=this.r[6],et=this.r[7],ot=this.r[8],vt=this.r[9];W>=16;)pe=O[Y+0]&255|(O[Y+1]&255)<<8,jt+=pe&8191,je=O[Y+2]&255|(O[Y+3]&255)<<8,Gt+=(pe>>>13|je<<3)&8191,Be=O[Y+4]&255|(O[Y+5]&255)<<8,bt+=(je>>>10|Be<<6)&8191,Je=O[Y+6]&255|(O[Y+7]&255)<<8,Ge+=(Be>>>7|Je<<9)&8191,nt=O[Y+8]&255|(O[Y+9]&255)<<8,He+=(Je>>>4|nt<<12)&8191,lt+=nt>>>1&8191,St=O[Y+10]&255|(O[Y+11]&255)<<8,it+=(nt>>>14|St<<2)&8191,_t=O[Y+12]&255|(O[Y+13]&255)<<8,Xe+=(St>>>11|_t<<5)&8191,or=O[Y+14]&255|(O[Y+15]&255)<<8,Z+=(_t>>>8|or<<8)&8191,we+=or>>>5|k,gt=0,Ht=gt,Ht+=jt*he,Ht+=Gt*(5*vt),Ht+=bt*(5*ot),Ht+=Ge*(5*et),Ht+=He*(5*Ye),gt=Ht>>>13,Ht&=8191,Ht+=lt*(5*Qe),Ht+=it*(5*ze),Ht+=Xe*(5*ee),Ht+=Z*(5*Re),Ht+=we*(5*Ae),gt+=Ht>>>13,Ht&=8191,Nt=gt,Nt+=jt*Ae,Nt+=Gt*he,Nt+=bt*(5*vt),Nt+=Ge*(5*ot),Nt+=He*(5*et),gt=Nt>>>13,Nt&=8191,Nt+=lt*(5*Ye),Nt+=it*(5*Qe),Nt+=Xe*(5*ze),Nt+=Z*(5*ee),Nt+=we*(5*Re),gt+=Nt>>>13,Nt&=8191,er=gt,er+=jt*Re,er+=Gt*Ae,er+=bt*he,er+=Ge*(5*vt),er+=He*(5*ot),gt=er>>>13,er&=8191,er+=lt*(5*et),er+=it*(5*Ye),er+=Xe*(5*Qe),er+=Z*(5*ze),er+=we*(5*ee),gt+=er>>>13,er&=8191,ur=gt,ur+=jt*ee,ur+=Gt*Re,ur+=bt*Ae,ur+=Ge*he,ur+=He*(5*vt),gt=ur>>>13,ur&=8191,ur+=lt*(5*ot),ur+=it*(5*et),ur+=Xe*(5*Ye),ur+=Z*(5*Qe),ur+=we*(5*ze),gt+=ur>>>13,ur&=8191,Jt=gt,Jt+=jt*ze,Jt+=Gt*ee,Jt+=bt*Re,Jt+=Ge*Ae,Jt+=He*he,gt=Jt>>>13,Jt&=8191,Jt+=lt*(5*vt),Jt+=it*(5*ot),Jt+=Xe*(5*et),Jt+=Z*(5*Ye),Jt+=we*(5*Qe),gt+=Jt>>>13,Jt&=8191,Mt=gt,Mt+=jt*Qe,Mt+=Gt*ze,Mt+=bt*ee,Mt+=Ge*Re,Mt+=He*Ae,gt=Mt>>>13,Mt&=8191,Mt+=lt*he,Mt+=it*(5*vt),Mt+=Xe*(5*ot),Mt+=Z*(5*et),Mt+=we*(5*Ye),gt+=Mt>>>13,Mt&=8191,tr=gt,tr+=jt*Ye,tr+=Gt*Qe,tr+=bt*ze,tr+=Ge*ee,tr+=He*Re,gt=tr>>>13,tr&=8191,tr+=lt*Ae,tr+=it*he,tr+=Xe*(5*vt),tr+=Z*(5*ot),tr+=we*(5*et),gt+=tr>>>13,tr&=8191,Tt=gt,Tt+=jt*et,Tt+=Gt*Ye,Tt+=bt*Qe,Tt+=Ge*ze,Tt+=He*ee,gt=Tt>>>13,Tt&=8191,Tt+=lt*Re,Tt+=it*Ae,Tt+=Xe*he,Tt+=Z*(5*vt),Tt+=we*(5*ot),gt+=Tt>>>13,Tt&=8191,Vt=gt,Vt+=jt*ot,Vt+=Gt*et,Vt+=bt*Ye,Vt+=Ge*Qe,Vt+=He*ze,gt=Vt>>>13,Vt&=8191,Vt+=lt*ee,Vt+=it*Re,Vt+=Xe*Ae,Vt+=Z*he,Vt+=we*(5*vt),gt+=Vt>>>13,Vt&=8191,At=gt,At+=jt*vt,At+=Gt*ot,At+=bt*et,At+=Ge*Ye,At+=He*Qe,gt=At>>>13,At&=8191,At+=lt*ze,At+=it*ee,At+=Xe*Re,At+=Z*Ae,At+=we*he,gt+=At>>>13,At&=8191,gt=(gt<<2)+gt|0,gt=gt+Ht|0,Ht=gt&8191,gt=gt>>>13,Nt+=gt,jt=Ht,Gt=Nt,bt=er,Ge=ur,He=Jt,lt=Mt,it=tr,Xe=Tt,Z=Vt,we=At,Y+=16,W-=16;this.h[0]=jt,this.h[1]=Gt,this.h[2]=bt,this.h[3]=Ge,this.h[4]=He,this.h[5]=lt,this.h[6]=it,this.h[7]=Xe,this.h[8]=Z,this.h[9]=we},K.prototype.finish=function(O,Y){var W=new Uint16Array(10),k,pe,je,Be;if(this.leftover){for(Be=this.leftover,this.buffer[Be++]=1;Be<16;Be++)this.buffer[Be]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(k=this.h[1]>>>13,this.h[1]&=8191,Be=2;Be<10;Be++)this.h[Be]+=k,k=this.h[Be]>>>13,this.h[Be]&=8191;for(this.h[0]+=k*5,k=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=k,k=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=k,W[0]=this.h[0]+5,k=W[0]>>>13,W[0]&=8191,Be=1;Be<10;Be++)W[Be]=this.h[Be]+k,k=W[Be]>>>13,W[Be]&=8191;for(W[9]-=8192,pe=(k^1)-1,Be=0;Be<10;Be++)W[Be]&=pe;for(pe=~pe,Be=0;Be<10;Be++)this.h[Be]=this.h[Be]&pe|W[Be];for(this.h[0]=(this.h[0]|this.h[1]<<13)&65535,this.h[1]=(this.h[1]>>>3|this.h[2]<<10)&65535,this.h[2]=(this.h[2]>>>6|this.h[3]<<7)&65535,this.h[3]=(this.h[3]>>>9|this.h[4]<<4)&65535,this.h[4]=(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14)&65535,this.h[5]=(this.h[6]>>>2|this.h[7]<<11)&65535,this.h[6]=(this.h[7]>>>5|this.h[8]<<8)&65535,this.h[7]=(this.h[8]>>>8|this.h[9]<<5)&65535,je=this.h[0]+this.pad[0],this.h[0]=je&65535,Be=1;Be<8;Be++)je=(this.h[Be]+this.pad[Be]|0)+(je>>>16)|0,this.h[Be]=je&65535;O[Y+0]=this.h[0]>>>0&255,O[Y+1]=this.h[0]>>>8&255,O[Y+2]=this.h[1]>>>0&255,O[Y+3]=this.h[1]>>>8&255,O[Y+4]=this.h[2]>>>0&255,O[Y+5]=this.h[2]>>>8&255,O[Y+6]=this.h[3]>>>0&255,O[Y+7]=this.h[3]>>>8&255,O[Y+8]=this.h[4]>>>0&255,O[Y+9]=this.h[4]>>>8&255,O[Y+10]=this.h[5]>>>0&255,O[Y+11]=this.h[5]>>>8&255,O[Y+12]=this.h[6]>>>0&255,O[Y+13]=this.h[6]>>>8&255,O[Y+14]=this.h[7]>>>0&255,O[Y+15]=this.h[7]>>>8&255},K.prototype.update=function(O,Y,W){var k,pe;if(this.leftover){for(pe=16-this.leftover,pe>W&&(pe=W),k=0;k<pe;k++)this.buffer[this.leftover+k]=O[Y+k];if(W-=pe,Y+=pe,this.leftover+=pe,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(W>=16&&(pe=W-W%16,this.blocks(O,Y,pe),Y+=pe,W-=pe),W){for(k=0;k<W;k++)this.buffer[this.leftover+k]=O[Y+k];this.leftover+=W}};function L(O,Y,W,k,pe,je){var Be=new K(je);return Be.update(W,k,pe),Be.finish(O,Y),0}function ve(O,Y,W,k,pe,je){var Be=new Uint8Array(16);return L(Be,0,W,k,pe,je),y(O,Y,Be,0)}function U(O,Y,W,k,pe){var je;if(W<32)return-1;for(M(O,0,Y,0,W,k,pe),L(O,16,O,32,W-32,O),je=0;je<16;je++)O[je]=0;return 0}function N(O,Y,W,k,pe){var je,Be=new Uint8Array(32);if(W<32||(P(Be,0,32,k,pe),ve(Y,16,Y,32,W-32,Be)!==0))return-1;for(M(O,0,Y,0,W,k,pe),je=0;je<32;je++)O[je]=0;return 0}function re(O,Y){var W;for(W=0;W<16;W++)O[W]=Y[W]|0}function ue(O){var Y,W,k=1;for(Y=0;Y<16;Y++)W=O[Y]+k+65535,k=Math.floor(W/65536),O[Y]=W-k*65536;O[0]+=k-1+37*(k-1)}function Q(O,Y,W){for(var k,pe=~(W-1),je=0;je<16;je++)k=pe&(O[je]^Y[je]),O[je]^=k,Y[je]^=k}function ne(O,Y){var W,k,pe,je=t(),Be=t();for(W=0;W<16;W++)Be[W]=Y[W];for(ue(Be),ue(Be),ue(Be),k=0;k<2;k++){for(je[0]=Be[0]-65517,W=1;W<15;W++)je[W]=Be[W]-65535-(je[W-1]>>16&1),je[W-1]&=65535;je[15]=Be[15]-32767-(je[14]>>16&1),pe=je[15]>>16&1,je[14]&=65535,Q(Be,je,1-pe)}for(W=0;W<16;W++)O[2*W]=Be[W]&255,O[2*W+1]=Be[W]>>8}function G(O,Y){var W=new Uint8Array(32),k=new Uint8Array(32);return ne(W,O),ne(k,Y),_(W,0,k,0)}function de(O){var Y=new Uint8Array(32);return ne(Y,O),Y[0]&1}function xe(O,Y){var W;for(W=0;W<16;W++)O[W]=Y[2*W]+(Y[2*W+1]<<8);O[15]&=32767}function ge(O,Y,W){for(var k=0;k<16;k++)O[k]=Y[k]+W[k]}function V(O,Y,W){for(var k=0;k<16;k++)O[k]=Y[k]-W[k]}function ce(O,Y,W){var k,pe,je=0,Be=0,Je=0,nt=0,St=0,_t=0,or=0,gt=0,Ht=0,Nt=0,er=0,ur=0,Jt=0,Mt=0,tr=0,Tt=0,Vt=0,At=0,jt=0,Gt=0,bt=0,Ge=0,He=0,lt=0,it=0,Xe=0,Z=0,we=0,he=0,Ae=0,Re=0,ee=W[0],ze=W[1],Qe=W[2],Ye=W[3],et=W[4],ot=W[5],vt=W[6],zt=W[7],It=W[8],X=W[9],te=W[10],le=W[11],Pe=W[12],Ke=W[13],st=W[14],wt=W[15];k=Y[0],je+=k*ee,Be+=k*ze,Je+=k*Qe,nt+=k*Ye,St+=k*et,_t+=k*ot,or+=k*vt,gt+=k*zt,Ht+=k*It,Nt+=k*X,er+=k*te,ur+=k*le,Jt+=k*Pe,Mt+=k*Ke,tr+=k*st,Tt+=k*wt,k=Y[1],Be+=k*ee,Je+=k*ze,nt+=k*Qe,St+=k*Ye,_t+=k*et,or+=k*ot,gt+=k*vt,Ht+=k*zt,Nt+=k*It,er+=k*X,ur+=k*te,Jt+=k*le,Mt+=k*Pe,tr+=k*Ke,Tt+=k*st,Vt+=k*wt,k=Y[2],Je+=k*ee,nt+=k*ze,St+=k*Qe,_t+=k*Ye,or+=k*et,gt+=k*ot,Ht+=k*vt,Nt+=k*zt,er+=k*It,ur+=k*X,Jt+=k*te,Mt+=k*le,tr+=k*Pe,Tt+=k*Ke,Vt+=k*st,At+=k*wt,k=Y[3],nt+=k*ee,St+=k*ze,_t+=k*Qe,or+=k*Ye,gt+=k*et,Ht+=k*ot,Nt+=k*vt,er+=k*zt,ur+=k*It,Jt+=k*X,Mt+=k*te,tr+=k*le,Tt+=k*Pe,Vt+=k*Ke,At+=k*st,jt+=k*wt,k=Y[4],St+=k*ee,_t+=k*ze,or+=k*Qe,gt+=k*Ye,Ht+=k*et,Nt+=k*ot,er+=k*vt,ur+=k*zt,Jt+=k*It,Mt+=k*X,tr+=k*te,Tt+=k*le,Vt+=k*Pe,At+=k*Ke,jt+=k*st,Gt+=k*wt,k=Y[5],_t+=k*ee,or+=k*ze,gt+=k*Qe,Ht+=k*Ye,Nt+=k*et,er+=k*ot,ur+=k*vt,Jt+=k*zt,Mt+=k*It,tr+=k*X,Tt+=k*te,Vt+=k*le,At+=k*Pe,jt+=k*Ke,Gt+=k*st,bt+=k*wt,k=Y[6],or+=k*ee,gt+=k*ze,Ht+=k*Qe,Nt+=k*Ye,er+=k*et,ur+=k*ot,Jt+=k*vt,Mt+=k*zt,tr+=k*It,Tt+=k*X,Vt+=k*te,At+=k*le,jt+=k*Pe,Gt+=k*Ke,bt+=k*st,Ge+=k*wt,k=Y[7],gt+=k*ee,Ht+=k*ze,Nt+=k*Qe,er+=k*Ye,ur+=k*et,Jt+=k*ot,Mt+=k*vt,tr+=k*zt,Tt+=k*It,Vt+=k*X,At+=k*te,jt+=k*le,Gt+=k*Pe,bt+=k*Ke,Ge+=k*st,He+=k*wt,k=Y[8],Ht+=k*ee,Nt+=k*ze,er+=k*Qe,ur+=k*Ye,Jt+=k*et,Mt+=k*ot,tr+=k*vt,Tt+=k*zt,Vt+=k*It,At+=k*X,jt+=k*te,Gt+=k*le,bt+=k*Pe,Ge+=k*Ke,He+=k*st,lt+=k*wt,k=Y[9],Nt+=k*ee,er+=k*ze,ur+=k*Qe,Jt+=k*Ye,Mt+=k*et,tr+=k*ot,Tt+=k*vt,Vt+=k*zt,At+=k*It,jt+=k*X,Gt+=k*te,bt+=k*le,Ge+=k*Pe,He+=k*Ke,lt+=k*st,it+=k*wt,k=Y[10],er+=k*ee,ur+=k*ze,Jt+=k*Qe,Mt+=k*Ye,tr+=k*et,Tt+=k*ot,Vt+=k*vt,At+=k*zt,jt+=k*It,Gt+=k*X,bt+=k*te,Ge+=k*le,He+=k*Pe,lt+=k*Ke,it+=k*st,Xe+=k*wt,k=Y[11],ur+=k*ee,Jt+=k*ze,Mt+=k*Qe,tr+=k*Ye,Tt+=k*et,Vt+=k*ot,At+=k*vt,jt+=k*zt,Gt+=k*It,bt+=k*X,Ge+=k*te,He+=k*le,lt+=k*Pe,it+=k*Ke,Xe+=k*st,Z+=k*wt,k=Y[12],Jt+=k*ee,Mt+=k*ze,tr+=k*Qe,Tt+=k*Ye,Vt+=k*et,At+=k*ot,jt+=k*vt,Gt+=k*zt,bt+=k*It,Ge+=k*X,He+=k*te,lt+=k*le,it+=k*Pe,Xe+=k*Ke,Z+=k*st,we+=k*wt,k=Y[13],Mt+=k*ee,tr+=k*ze,Tt+=k*Qe,Vt+=k*Ye,At+=k*et,jt+=k*ot,Gt+=k*vt,bt+=k*zt,Ge+=k*It,He+=k*X,lt+=k*te,it+=k*le,Xe+=k*Pe,Z+=k*Ke,we+=k*st,he+=k*wt,k=Y[14],tr+=k*ee,Tt+=k*ze,Vt+=k*Qe,At+=k*Ye,jt+=k*et,Gt+=k*ot,bt+=k*vt,Ge+=k*zt,He+=k*It,lt+=k*X,it+=k*te,Xe+=k*le,Z+=k*Pe,we+=k*Ke,he+=k*st,Ae+=k*wt,k=Y[15],Tt+=k*ee,Vt+=k*ze,At+=k*Qe,jt+=k*Ye,Gt+=k*et,bt+=k*ot,Ge+=k*vt,He+=k*zt,lt+=k*It,it+=k*X,Xe+=k*te,Z+=k*le,we+=k*Pe,he+=k*Ke,Ae+=k*st,Re+=k*wt,je+=38*Vt,Be+=38*At,Je+=38*jt,nt+=38*Gt,St+=38*bt,_t+=38*Ge,or+=38*He,gt+=38*lt,Ht+=38*it,Nt+=38*Xe,er+=38*Z,ur+=38*we,Jt+=38*he,Mt+=38*Ae,tr+=38*Re,pe=1,k=je+pe+65535,pe=Math.floor(k/65536),je=k-pe*65536,k=Be+pe+65535,pe=Math.floor(k/65536),Be=k-pe*65536,k=Je+pe+65535,pe=Math.floor(k/65536),Je=k-pe*65536,k=nt+pe+65535,pe=Math.floor(k/65536),nt=k-pe*65536,k=St+pe+65535,pe=Math.floor(k/65536),St=k-pe*65536,k=_t+pe+65535,pe=Math.floor(k/65536),_t=k-pe*65536,k=or+pe+65535,pe=Math.floor(k/65536),or=k-pe*65536,k=gt+pe+65535,pe=Math.floor(k/65536),gt=k-pe*65536,k=Ht+pe+65535,pe=Math.floor(k/65536),Ht=k-pe*65536,k=Nt+pe+65535,pe=Math.floor(k/65536),Nt=k-pe*65536,k=er+pe+65535,pe=Math.floor(k/65536),er=k-pe*65536,k=ur+pe+65535,pe=Math.floor(k/65536),ur=k-pe*65536,k=Jt+pe+65535,pe=Math.floor(k/65536),Jt=k-pe*65536,k=Mt+pe+65535,pe=Math.floor(k/65536),Mt=k-pe*65536,k=tr+pe+65535,pe=Math.floor(k/65536),tr=k-pe*65536,k=Tt+pe+65535,pe=Math.floor(k/65536),Tt=k-pe*65536,je+=pe-1+37*(pe-1),pe=1,k=je+pe+65535,pe=Math.floor(k/65536),je=k-pe*65536,k=Be+pe+65535,pe=Math.floor(k/65536),Be=k-pe*65536,k=Je+pe+65535,pe=Math.floor(k/65536),Je=k-pe*65536,k=nt+pe+65535,pe=Math.floor(k/65536),nt=k-pe*65536,k=St+pe+65535,pe=Math.floor(k/65536),St=k-pe*65536,k=_t+pe+65535,pe=Math.floor(k/65536),_t=k-pe*65536,k=or+pe+65535,pe=Math.floor(k/65536),or=k-pe*65536,k=gt+pe+65535,pe=Math.floor(k/65536),gt=k-pe*65536,k=Ht+pe+65535,pe=Math.floor(k/65536),Ht=k-pe*65536,k=Nt+pe+65535,pe=Math.floor(k/65536),Nt=k-pe*65536,k=er+pe+65535,pe=Math.floor(k/65536),er=k-pe*65536,k=ur+pe+65535,pe=Math.floor(k/65536),ur=k-pe*65536,k=Jt+pe+65535,pe=Math.floor(k/65536),Jt=k-pe*65536,k=Mt+pe+65535,pe=Math.floor(k/65536),Mt=k-pe*65536,k=tr+pe+65535,pe=Math.floor(k/65536),tr=k-pe*65536,k=Tt+pe+65535,pe=Math.floor(k/65536),Tt=k-pe*65536,je+=pe-1+37*(pe-1),O[0]=je,O[1]=Be,O[2]=Je,O[3]=nt,O[4]=St,O[5]=_t,O[6]=or,O[7]=gt,O[8]=Ht,O[9]=Nt,O[10]=er,O[11]=ur,O[12]=Jt,O[13]=Mt,O[14]=tr,O[15]=Tt}function ye(O,Y){ce(O,Y,Y)}function R(O,Y){var W=t(),k;for(k=0;k<16;k++)W[k]=Y[k];for(k=253;k>=0;k--)ye(W,W),k!==2&&k!==4&&ce(W,W,Y);for(k=0;k<16;k++)O[k]=W[k]}function $(O,Y){var W=t(),k;for(k=0;k<16;k++)W[k]=Y[k];for(k=250;k>=0;k--)ye(W,W),k!==1&&ce(W,W,Y);for(k=0;k<16;k++)O[k]=W[k]}function ke(O,Y,W){var k=new Uint8Array(32),pe=new Float64Array(80),je,Be,Je=t(),nt=t(),St=t(),_t=t(),or=t(),gt=t();for(Be=0;Be<31;Be++)k[Be]=Y[Be];for(k[31]=Y[31]&127|64,k[0]&=248,xe(pe,W),Be=0;Be<16;Be++)nt[Be]=pe[Be],_t[Be]=Je[Be]=St[Be]=0;for(Je[0]=_t[0]=1,Be=254;Be>=0;--Be)je=k[Be>>>3]>>>(Be&7)&1,Q(Je,nt,je),Q(St,_t,je),ge(or,Je,St),V(Je,Je,St),ge(St,nt,_t),V(nt,nt,_t),ye(_t,or),ye(gt,Je),ce(Je,St,Je),ce(St,nt,or),ge(or,Je,St),V(Je,Je,St),ye(nt,Je),V(St,_t,gt),ce(Je,St,o),ge(Je,Je,_t),ce(St,St,Je),ce(Je,_t,gt),ce(_t,nt,pe),ye(nt,or),Q(Je,nt,je),Q(St,_t,je);for(Be=0;Be<16;Be++)pe[Be+16]=Je[Be],pe[Be+32]=St[Be],pe[Be+48]=nt[Be],pe[Be+64]=_t[Be];var Ht=pe.subarray(32),Nt=pe.subarray(16);return R(Ht,Ht),ce(Nt,Nt,Ht),ne(O,Nt),0}function S(O,Y){return ke(O,Y,i)}function I(O,Y){return r(Y,32),S(O,Y)}function B(O,Y,W){var k=new Uint8Array(32);return ke(k,W,Y),j(O,n,k,H)}var se=U,ae=N;function me(O,Y,W,k,pe,je){var Be=new Uint8Array(32);return B(Be,pe,je),se(O,Y,W,k,Be)}function Se(O,Y,W,k,pe,je){var Be=new Uint8Array(32);return B(Be,pe,je),ae(O,Y,W,k,Be)}var Ee=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function De(O,Y,W,k){for(var pe=new Int32Array(16),je=new Int32Array(16),Be,Je,nt,St,_t,or,gt,Ht,Nt,er,ur,Jt,Mt,tr,Tt,Vt,At,jt,Gt,bt,Ge,He,lt,it,Xe,Z,we=O[0],he=O[1],Ae=O[2],Re=O[3],ee=O[4],ze=O[5],Qe=O[6],Ye=O[7],et=Y[0],ot=Y[1],vt=Y[2],zt=Y[3],It=Y[4],X=Y[5],te=Y[6],le=Y[7],Pe=0;k>=128;){for(Gt=0;Gt<16;Gt++)bt=8*Gt+Pe,pe[Gt]=W[bt+0]<<24|W[bt+1]<<16|W[bt+2]<<8|W[bt+3],je[Gt]=W[bt+4]<<24|W[bt+5]<<16|W[bt+6]<<8|W[bt+7];for(Gt=0;Gt<80;Gt++)if(Be=we,Je=he,nt=Ae,St=Re,_t=ee,or=ze,gt=Qe,Ht=Ye,Nt=et,er=ot,ur=vt,Jt=zt,Mt=It,tr=X,Tt=te,Vt=le,Ge=Ye,He=le,lt=He&65535,it=He>>>16,Xe=Ge&65535,Z=Ge>>>16,Ge=(ee>>>14|It<<32-14)^(ee>>>18|It<<32-18)^(It>>>41-32|ee<<32-(41-32)),He=(It>>>14|ee<<32-14)^(It>>>18|ee<<32-18)^(ee>>>41-32|It<<32-(41-32)),lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,Ge=ee&ze^~ee&Qe,He=It&X^~It&te,lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,Ge=Ee[Gt*2],He=Ee[Gt*2+1],lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,Ge=pe[Gt%16],He=je[Gt%16],lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,it+=lt>>>16,Xe+=it>>>16,Z+=Xe>>>16,At=Xe&65535|Z<<16,jt=lt&65535|it<<16,Ge=At,He=jt,lt=He&65535,it=He>>>16,Xe=Ge&65535,Z=Ge>>>16,Ge=(we>>>28|et<<32-28)^(et>>>34-32|we<<32-(34-32))^(et>>>39-32|we<<32-(39-32)),He=(et>>>28|we<<32-28)^(we>>>34-32|et<<32-(34-32))^(we>>>39-32|et<<32-(39-32)),lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,Ge=we&he^we&Ae^he&Ae,He=et&ot^et&vt^ot&vt,lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,it+=lt>>>16,Xe+=it>>>16,Z+=Xe>>>16,Ht=Xe&65535|Z<<16,Vt=lt&65535|it<<16,Ge=St,He=Jt,lt=He&65535,it=He>>>16,Xe=Ge&65535,Z=Ge>>>16,Ge=At,He=jt,lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,it+=lt>>>16,Xe+=it>>>16,Z+=Xe>>>16,St=Xe&65535|Z<<16,Jt=lt&65535|it<<16,he=Be,Ae=Je,Re=nt,ee=St,ze=_t,Qe=or,Ye=gt,we=Ht,ot=Nt,vt=er,zt=ur,It=Jt,X=Mt,te=tr,le=Tt,et=Vt,Gt%16===15)for(bt=0;bt<16;bt++)Ge=pe[bt],He=je[bt],lt=He&65535,it=He>>>16,Xe=Ge&65535,Z=Ge>>>16,Ge=pe[(bt+9)%16],He=je[(bt+9)%16],lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,At=pe[(bt+1)%16],jt=je[(bt+1)%16],Ge=(At>>>1|jt<<32-1)^(At>>>8|jt<<32-8)^At>>>7,He=(jt>>>1|At<<32-1)^(jt>>>8|At<<32-8)^(jt>>>7|At<<32-7),lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,At=pe[(bt+14)%16],jt=je[(bt+14)%16],Ge=(At>>>19|jt<<32-19)^(jt>>>61-32|At<<32-(61-32))^At>>>6,He=(jt>>>19|At<<32-19)^(At>>>61-32|jt<<32-(61-32))^(jt>>>6|At<<32-6),lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,it+=lt>>>16,Xe+=it>>>16,Z+=Xe>>>16,pe[bt]=Xe&65535|Z<<16,je[bt]=lt&65535|it<<16;Ge=we,He=et,lt=He&65535,it=He>>>16,Xe=Ge&65535,Z=Ge>>>16,Ge=O[0],He=Y[0],lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,it+=lt>>>16,Xe+=it>>>16,Z+=Xe>>>16,O[0]=we=Xe&65535|Z<<16,Y[0]=et=lt&65535|it<<16,Ge=he,He=ot,lt=He&65535,it=He>>>16,Xe=Ge&65535,Z=Ge>>>16,Ge=O[1],He=Y[1],lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,it+=lt>>>16,Xe+=it>>>16,Z+=Xe>>>16,O[1]=he=Xe&65535|Z<<16,Y[1]=ot=lt&65535|it<<16,Ge=Ae,He=vt,lt=He&65535,it=He>>>16,Xe=Ge&65535,Z=Ge>>>16,Ge=O[2],He=Y[2],lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,it+=lt>>>16,Xe+=it>>>16,Z+=Xe>>>16,O[2]=Ae=Xe&65535|Z<<16,Y[2]=vt=lt&65535|it<<16,Ge=Re,He=zt,lt=He&65535,it=He>>>16,Xe=Ge&65535,Z=Ge>>>16,Ge=O[3],He=Y[3],lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,it+=lt>>>16,Xe+=it>>>16,Z+=Xe>>>16,O[3]=Re=Xe&65535|Z<<16,Y[3]=zt=lt&65535|it<<16,Ge=ee,He=It,lt=He&65535,it=He>>>16,Xe=Ge&65535,Z=Ge>>>16,Ge=O[4],He=Y[4],lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,it+=lt>>>16,Xe+=it>>>16,Z+=Xe>>>16,O[4]=ee=Xe&65535|Z<<16,Y[4]=It=lt&65535|it<<16,Ge=ze,He=X,lt=He&65535,it=He>>>16,Xe=Ge&65535,Z=Ge>>>16,Ge=O[5],He=Y[5],lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,it+=lt>>>16,Xe+=it>>>16,Z+=Xe>>>16,O[5]=ze=Xe&65535|Z<<16,Y[5]=X=lt&65535|it<<16,Ge=Qe,He=te,lt=He&65535,it=He>>>16,Xe=Ge&65535,Z=Ge>>>16,Ge=O[6],He=Y[6],lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,it+=lt>>>16,Xe+=it>>>16,Z+=Xe>>>16,O[6]=Qe=Xe&65535|Z<<16,Y[6]=te=lt&65535|it<<16,Ge=Ye,He=le,lt=He&65535,it=He>>>16,Xe=Ge&65535,Z=Ge>>>16,Ge=O[7],He=Y[7],lt+=He&65535,it+=He>>>16,Xe+=Ge&65535,Z+=Ge>>>16,it+=lt>>>16,Xe+=it>>>16,Z+=Xe>>>16,O[7]=Ye=Xe&65535|Z<<16,Y[7]=le=lt&65535|it<<16,Pe+=128,k-=128}return k}function Le(O,Y,W){var k=new Int32Array(8),pe=new Int32Array(8),je=new Uint8Array(256),Be,Je=W;for(k[0]=1779033703,k[1]=3144134277,k[2]=1013904242,k[3]=2773480762,k[4]=1359893119,k[5]=2600822924,k[6]=528734635,k[7]=1541459225,pe[0]=4089235720,pe[1]=2227873595,pe[2]=4271175723,pe[3]=1595750129,pe[4]=2917565137,pe[5]=725511199,pe[6]=4215389547,pe[7]=327033209,De(k,pe,Y,W),W%=128,Be=0;Be<W;Be++)je[Be]=Y[Je-W+Be];for(je[W]=128,W=256-128*(W<112?1:0),je[W-9]=0,g(je,W-8,Je/536870912|0,Je<<3),De(k,pe,je,W),Be=0;Be<8;Be++)g(O,8*Be,k[Be],pe[Be]);return 0}function Ne(O,Y){var W=t(),k=t(),pe=t(),je=t(),Be=t(),Je=t(),nt=t(),St=t(),_t=t();V(W,O[1],O[0]),V(_t,Y[1],Y[0]),ce(W,W,_t),ge(k,O[0],O[1]),ge(_t,Y[0],Y[1]),ce(k,k,_t),ce(pe,O[3],Y[3]),ce(pe,pe,p),ce(je,O[2],Y[2]),ge(je,je,je),V(Be,k,W),V(Je,je,pe),ge(nt,je,pe),ge(St,k,W),ce(O[0],Be,Je),ce(O[1],St,nt),ce(O[2],nt,Je),ce(O[3],Be,St)}function Ve(O,Y,W){var k;for(k=0;k<4;k++)Q(O[k],Y[k],W)}function kt(O,Y){var W=t(),k=t(),pe=t();R(pe,Y[2]),ce(W,Y[0],pe),ce(k,Y[1],pe),ne(O,k),O[31]^=de(W)<<7}function Ft(O,Y,W){var k,pe;for(re(O[0],a),re(O[1],s),re(O[2],s),re(O[3],a),pe=255;pe>=0;--pe)k=W[pe/8|0]>>(pe&7)&1,Ve(O,Y,k),Ne(Y,O),Ne(O,O),Ve(O,Y,k)}function rr(O,Y){var W=[t(),t(),t(),t()];re(W[0],f),re(W[1],d),re(W[2],s),ce(W[3],f,d),Ft(O,W,Y)}function Or(O,Y,W){var k=new Uint8Array(64),pe=[t(),t(),t(),t()],je;for(W||r(Y,32),Le(k,Y,32),k[0]&=248,k[31]&=127,k[31]|=64,rr(pe,k),kt(O,pe),je=0;je<32;je++)Y[je+32]=O[je];return 0}var kr=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function dr(O,Y){var W,k,pe,je;for(k=63;k>=32;--k){for(W=0,pe=k-32,je=k-12;pe<je;++pe)Y[pe]+=W-16*Y[k]*kr[pe-(k-32)],W=Y[pe]+128>>8,Y[pe]-=W*256;Y[pe]+=W,Y[k]=0}for(W=0,pe=0;pe<32;pe++)Y[pe]+=W-(Y[31]>>4)*kr[pe],W=Y[pe]>>8,Y[pe]&=255;for(pe=0;pe<32;pe++)Y[pe]-=W*kr[pe];for(k=0;k<32;k++)Y[k+1]+=Y[k]>>8,O[k]=Y[k]&255}function $t(O){var Y=new Float64Array(64),W;for(W=0;W<64;W++)Y[W]=O[W];for(W=0;W<64;W++)O[W]=0;dr(O,Y)}function $e(O,Y,W,k){var pe=new Uint8Array(64),je=new Uint8Array(64),Be=new Uint8Array(64),Je,nt,St=new Float64Array(64),_t=[t(),t(),t(),t()];Le(pe,k,32),pe[0]&=248,pe[31]&=127,pe[31]|=64;var or=W+64;for(Je=0;Je<W;Je++)O[64+Je]=Y[Je];for(Je=0;Je<32;Je++)O[32+Je]=pe[32+Je];for(Le(Be,O.subarray(32),W+32),$t(Be),rr(_t,Be),kt(O,_t),Je=32;Je<64;Je++)O[Je]=k[Je];for(Le(je,O,W+64),$t(je),Je=0;Je<64;Je++)St[Je]=0;for(Je=0;Je<32;Je++)St[Je]=Be[Je];for(Je=0;Je<32;Je++)for(nt=0;nt<32;nt++)St[Je+nt]+=je[Je]*pe[nt];return dr(O.subarray(32),St),or}function Ue(O,Y){var W=t(),k=t(),pe=t(),je=t(),Be=t(),Je=t(),nt=t();return re(O[2],s),xe(O[1],Y),ye(pe,O[1]),ce(je,pe,c),V(pe,pe,O[2]),ge(je,O[2],je),ye(Be,je),ye(Je,Be),ce(nt,Je,Be),ce(W,nt,pe),ce(W,W,je),$(W,W),ce(W,W,pe),ce(W,W,je),ce(W,W,je),ce(O[0],W,je),ye(k,O[0]),ce(k,k,je),G(k,pe)&&ce(O[0],O[0],h),ye(k,O[0]),ce(k,k,je),G(k,pe)?-1:(de(O[0])===Y[31]>>7&&V(O[0],a,O[0]),ce(O[3],O[0],O[1]),0)}function ct(O,Y,W,k){var pe,je,Be=new Uint8Array(32),Je=new Uint8Array(64),nt=[t(),t(),t(),t()],St=[t(),t(),t(),t()];if(je=-1,W<64||Ue(St,k))return-1;for(pe=0;pe<W;pe++)O[pe]=Y[pe];for(pe=0;pe<32;pe++)O[pe+32]=k[pe];if(Le(Je,O,W),$t(Je),Ft(nt,St,Je),rr(St,Y.subarray(32)),Ne(nt,St),kt(Be,nt),W-=64,_(Y,0,Be,0)){for(pe=0;pe<W;pe++)O[pe]=0;return-1}for(pe=0;pe<W;pe++)O[pe]=Y[pe+64];return je=W,je}var ut=32,Dt=24,Zt=32,hr=16,Bt=32,pr=32,wn=32,Ai=32,Ui=32,Xa=Dt,ws=Zt,Pl=hr,Is=64,_s=32,Rs=64,Yc=32,fc=64;e.lowlevel={crypto_core_hsalsa20:j,crypto_stream_xor:M,crypto_stream:P,crypto_stream_salsa20_xor:F,crypto_stream_salsa20:z,crypto_onetimeauth:L,crypto_onetimeauth_verify:ve,crypto_verify_16:y,crypto_verify_32:_,crypto_secretbox:U,crypto_secretbox_open:N,crypto_scalarmult:ke,crypto_scalarmult_base:S,crypto_box_beforenm:B,crypto_box_afternm:se,crypto_box:me,crypto_box_open:Se,crypto_box_keypair:I,crypto_hash:Le,crypto_sign:$e,crypto_sign_keypair:Or,crypto_sign_open:ct,crypto_secretbox_KEYBYTES:ut,crypto_secretbox_NONCEBYTES:Dt,crypto_secretbox_ZEROBYTES:Zt,crypto_secretbox_BOXZEROBYTES:hr,crypto_scalarmult_BYTES:Bt,crypto_scalarmult_SCALARBYTES:pr,crypto_box_PUBLICKEYBYTES:wn,crypto_box_SECRETKEYBYTES:Ai,crypto_box_BEFORENMBYTES:Ui,crypto_box_NONCEBYTES:Xa,crypto_box_ZEROBYTES:ws,crypto_box_BOXZEROBYTES:Pl,crypto_sign_BYTES:Is,crypto_sign_PUBLICKEYBYTES:_s,crypto_sign_SECRETKEYBYTES:Rs,crypto_sign_SEEDBYTES:Yc,crypto_hash_BYTES:fc};function Il(O,Y){if(O.length!==ut)throw new Error("bad key size");if(Y.length!==Dt)throw new Error("bad nonce size")}function Zo(O,Y){if(O.length!==wn)throw new Error("bad public key size");if(Y.length!==Ai)throw new Error("bad secret key size")}function Fe(){var O,Y;for(Y=0;Y<arguments.length;Y++)if((O=Object.prototype.toString.call(arguments[Y]))!=="[object Uint8Array]")throw new TypeError("unexpected type "+O+", use Uint8Array")}function _e(O){for(var Y=0;Y<O.length;Y++)O[Y]=0}e.util||(e.util={},e.util.decodeUTF8=e.util.encodeUTF8=e.util.encodeBase64=e.util.decodeBase64=function(){throw new Error("nacl.util moved into separate package: https://github.com/dchest/tweetnacl-util-js")}),e.randomBytes=function(O){var Y=new Uint8Array(O);return r(Y,O),Y},e.secretbox=function(O,Y,W){Fe(O,Y,W),Il(W,Y);for(var k=new Uint8Array(Zt+O.length),pe=new Uint8Array(k.length),je=0;je<O.length;je++)k[je+Zt]=O[je];return U(pe,k,k.length,Y,W),pe.subarray(hr)},e.secretbox.open=function(O,Y,W){Fe(O,Y,W),Il(W,Y);for(var k=new Uint8Array(hr+O.length),pe=new Uint8Array(k.length),je=0;je<O.length;je++)k[je+hr]=O[je];return k.length<32||N(pe,k,k.length,Y,W)!==0?!1:pe.subarray(Zt)},e.secretbox.keyLength=ut,e.secretbox.nonceLength=Dt,e.secretbox.overheadLength=hr,e.scalarMult=function(O,Y){if(Fe(O,Y),O.length!==pr)throw new Error("bad n size");if(Y.length!==Bt)throw new Error("bad p size");var W=new Uint8Array(Bt);return ke(W,O,Y),W},e.scalarMult.base=function(O){if(Fe(O),O.length!==pr)throw new Error("bad n size");var Y=new Uint8Array(Bt);return S(Y,O),Y},e.scalarMult.scalarLength=pr,e.scalarMult.groupElementLength=Bt,e.box=function(O,Y,W,k){var pe=e.box.before(W,k);return e.secretbox(O,Y,pe)},e.box.before=function(O,Y){Fe(O,Y),Zo(O,Y);var W=new Uint8Array(Ui);return B(W,O,Y),W},e.box.after=e.secretbox,e.box.open=function(O,Y,W,k){var pe=e.box.before(W,k);return e.secretbox.open(O,Y,pe)},e.box.open.after=e.secretbox.open,e.box.keyPair=function(){var O=new Uint8Array(wn),Y=new Uint8Array(Ai);return I(O,Y),{publicKey:O,secretKey:Y}},e.box.keyPair.fromSecretKey=function(O){if(Fe(O),O.length!==Ai)throw new Error("bad secret key size");var Y=new Uint8Array(wn);return S(Y,O),{publicKey:Y,secretKey:new Uint8Array(O)}},e.box.publicKeyLength=wn,e.box.secretKeyLength=Ai,e.box.sharedKeyLength=Ui,e.box.nonceLength=Xa,e.box.overheadLength=e.secretbox.overheadLength,e.sign=function(O,Y){if(Fe(O,Y),Y.length!==Rs)throw new Error("bad secret key size");var W=new Uint8Array(Is+O.length);return $e(W,O,O.length,Y),W},e.sign.open=function(O,Y){if(arguments.length!==2)throw new Error("nacl.sign.open accepts 2 arguments; did you mean to use nacl.sign.detached.verify?");if(Fe(O,Y),Y.length!==_s)throw new Error("bad public key size");var W=new Uint8Array(O.length),k=ct(W,O,O.length,Y);if(k<0)return null;for(var pe=new Uint8Array(k),je=0;je<pe.length;je++)pe[je]=W[je];return pe},e.sign.detached=function(O,Y){for(var W=e.sign(O,Y),k=new Uint8Array(Is),pe=0;pe<k.length;pe++)k[pe]=W[pe];return k},e.sign.detached.verify=function(O,Y,W){if(Fe(O,Y,W),Y.length!==Is)throw new Error("bad signature size");if(W.length!==_s)throw new Error("bad public key size");var k=new Uint8Array(Is+O.length),pe=new Uint8Array(Is+O.length),je;for(je=0;je<Is;je++)k[je]=Y[je];for(je=0;je<O.length;je++)k[je+Is]=O[je];return ct(pe,k,k.length,W)>=0},e.sign.keyPair=function(){var O=new Uint8Array(_s),Y=new Uint8Array(Rs);return Or(O,Y),{publicKey:O,secretKey:Y}},e.sign.keyPair.fromSecretKey=function(O){if(Fe(O),O.length!==Rs)throw new Error("bad secret key size");for(var Y=new Uint8Array(_s),W=0;W<Y.length;W++)Y[W]=O[32+W];return{publicKey:Y,secretKey:new Uint8Array(O)}},e.sign.keyPair.fromSeed=function(O){if(Fe(O),O.length!==Yc)throw new Error("bad seed size");for(var Y=new Uint8Array(_s),W=new Uint8Array(Rs),k=0;k<32;k++)W[k]=O[k];return Or(Y,W,!0),{publicKey:Y,secretKey:W}},e.sign.publicKeyLength=_s,e.sign.secretKeyLength=Rs,e.sign.seedLength=Yc,e.sign.signatureLength=Is,e.hash=function(O){Fe(O);var Y=new Uint8Array(fc);return Le(Y,O,O.length),Y},e.hash.hashLength=fc,e.verify=function(O,Y){return Fe(O,Y),O.length===0||Y.length===0||O.length!==Y.length?!1:v(O,0,Y,0,O.length)===0},e.setPRNG=function(O){r=O},function(){var O=typeof self<"u"?self.crypto||self.msCrypto:null;if(O&&O.getRandomValues){var Y=65536;e.setPRNG(function(W,k){var pe,je=new Uint8Array(k);for(pe=0;pe<k;pe+=Y)O.getRandomValues(je.subarray(pe,pe+Math.min(k-pe,Y)));for(pe=0;pe<k;pe++)W[pe]=je[pe];_e(je)})}else typeof require<"u"&&(O=require("crypto"),O&&O.randomBytes&&e.setPRNG(function(W,k){var pe,je=O.randomBytes(k);for(pe=0;pe<k;pe++)W[pe]=je[pe];_e(je)}))}()})(typeof $N<"u"&&$N.exports?$N.exports:self.nacl=self.nacl||{})});var Ks=b((Min,XXe)=>{XXe.exports={bufferSplit:opr,addRSAMissing:gpr,calculateDSAPublic:dpr,calculateED25519Public:hpr,calculateX25519Public:mpr,mpNormalize:epe,mpDenormalize:ppr,ecNormalize:upr,countZeros:spr,assertCompatible:JXe,isCompatible:tpr,opensslKeyDeriv:ipr,opensshCipherInfo:ypr,publicFromPrivateECDSA:vpr,zeroPadToLength:fpr,writeBitString:lpr,readBitString:cpr,pbkdf2:apr};var Ki=oi(),Pc=Wi().Buffer,Xlr=co(),Qlr=Ys(),Qle=require("crypto"),Zlr=Bo(),WXe=Zd(),epr=Mk(),eh=k3().BigInteger,KXe=A3(),YXe=3;function tpr(e,t,r){if(e===null||typeof e!="object")return!1;if(r===void 0&&(r=t.prototype._sshpkApiVersion),e instanceof t&&t.prototype._sshpkApiVersion[0]==r[0])return!0;for(var n=Object.getPrototypeOf(e),i=0;n.constructor.name!==t.name;)if(n=Object.getPrototypeOf(n),!n||++i>YXe)return!1;if(n.constructor.name!==t.name)return!1;var a=n._sshpkApiVersion;return a===void 0&&(a=t._oldVersionDetect(e)),!(a[0]!=r[0]||a[1]<r[1])}function JXe(e,t,r,n){if(n===void 0&&(n="object"),Ki.ok(e,n+" must not be null"),Ki.object(e,n+" must be an object"),r===void 0&&(r=t.prototype._sshpkApiVersion),!(e instanceof t&&t.prototype._sshpkApiVersion[0]==r[0])){for(var i=Object.getPrototypeOf(e),a=0;i.constructor.name!==t.name;)i=Object.getPrototypeOf(i),Ki.ok(i&&++a<=YXe,n+" must be a "+t.name+" instance");Ki.strictEqual(i.constructor.name,t.name,n+" must be a "+t.name+" instance");var s=i._sshpkApiVersion;s===void 0&&(s=t._oldVersionDetect(e)),Ki.ok(s[0]==r[0]&&s[1]>=r[1],n+" must be compatible with "+t.name+" klass version "+r[0]+"."+r[1])}}var rpr={"des-ede3-cbc":{key:24,iv:8},"aes-128-cbc":{key:16,iv:16},"aes-256-cbc":{key:32,iv:16}},npr=8;function ipr(e,t,r,n){Ki.buffer(t,"salt"),Ki.buffer(r,"passphrase"),Ki.number(n,"iteration count");var i=rpr[e];Ki.object(i,"supported cipher"),t=t.slice(0,npr);for(var a,s,o,c=Pc.alloc(0);c.length<i.key+i.iv;){o=[],s&&o.push(s),o.push(r),o.push(t),a=Pc.concat(o);for(var p=0;p<n;++p)a=Qle.createHash("md5").update(a).digest();c=Pc.concat([c,a]),s=a}return{key:c.slice(0,i.key),iv:c.slice(i.key,i.key+i.iv)}}function apr(e,t,r,n,i){var a=Pc.alloc(t.length+4);t.copy(a);for(var s=0,o=[],c=1;s<n;){var p=f(c++);s+=p.length,o.push(p)}return Pc.concat(o).slice(0,n);function f(d){a.writeUInt32BE(d,a.length-4);var h=Qle.createHmac(e,i);h.update(a);for(var g=h.digest(),v=g,y=1;y++<r;){h=Qle.createHmac(e,i),h.update(v),v=h.digest();for(var _=0;_<g.length;++_)g[_]^=v[_]}return g}}function spr(e){for(var t=0,r=8;t<e.length;){var n=1<<r;if((e[t]&n)===n)break;r--,r<0&&(t++,r=8)}return t*8+(8-r)-1}function opr(e,t){Ki.buffer(e),Ki.string(t);for(var r=[],n=0,i=0,a=0;a<e.length;++a)if(e[a]===t.charCodeAt(i)?++i:e[a]===t.charCodeAt(0)?i=1:i=0,i>=t.length){var s=a+1;r.push(e.slice(n,s-i)),n=s,i=0}return n<=e.length&&r.push(e.slice(n,e.length)),r}function upr(e,t){if(Ki.buffer(e),e[0]===0&&e[1]===4)return t?e:e.slice(1);if(e[0]===4){if(!t)return e}else{for(;e[0]===0;)e=e.slice(1);if(e[0]===2||e[0]===3)throw new Error("Compressed elliptic curve points are not supported");if(e[0]!==4)throw new Error("Not a valid elliptic curve point");if(!t)return e}var r=Pc.alloc(e.length+1);return r[0]=0,e.copy(r,1),r}function cpr(e,t){t===void 0&&(t=WXe.Ber.BitString);var r=e.readString(t,!0);return Ki.strictEqual(r[0],0,"bit strings with unused bits are not supported (0x"+r[0].toString(16)+")"),r.slice(1)}function lpr(e,t,r){r===void 0&&(r=WXe.Ber.BitString);var n=Pc.alloc(t.length+1);n[0]=0,t.copy(n,1),e.writeBuffer(n,r)}function epe(e){for(Ki.buffer(e);e.length>1&&e[0]===0&&!(e[1]&128);)e=e.slice(1);if((e[0]&128)===128){var t=Pc.alloc(e.length+1);t[0]=0,e.copy(t,1),e=t}return e}function ppr(e){for(Ki.buffer(e);e.length>1&&e[0]===0;)e=e.slice(1);return e}function fpr(e,t){for(Ki.buffer(e),Ki.number(t);e.length>t;)Ki.equal(e[0],0),e=e.slice(1);for(;e.length<t;){var r=Pc.alloc(e.length+1);r[0]=0,e.copy(r,1),e=r}return e}function Zle(e){var t=Pc.from(e.toByteArray());return t=epe(t),t}function dpr(e,t,r){Ki.buffer(e),Ki.buffer(t),Ki.buffer(r),e=new eh(e),t=new eh(t),r=new eh(r);var n=e.modPow(r,t),i=Zle(n);return i}function hpr(e){Ki.buffer(e);var t=KXe.sign.keyPair.fromSeed(new Uint8Array(e));return Pc.from(t.publicKey)}function mpr(e){Ki.buffer(e);var t=KXe.box.keyPair.fromSeed(new Uint8Array(e));return Pc.from(t.publicKey)}function gpr(e){Ki.object(e),JXe(e,Xlr,[1,1]);var t=new eh(e.part.d.data),r;if(!e.part.dmodp){var n=new eh(e.part.p.data),i=t.mod(n.subtract(1));r=Zle(i),e.part.dmodp={name:"dmodp",data:r},e.parts.push(e.part.dmodp)}if(!e.part.dmodq){var a=new eh(e.part.q.data),s=t.mod(a.subtract(1));r=Zle(s),e.part.dmodq={name:"dmodq",data:r},e.parts.push(e.part.dmodq)}}function vpr(e,t){Ki.string(e,"curveName"),Ki.buffer(t);var r=Zlr.curves[e],n=new eh(r.p),i=new eh(r.a),a=new eh(r.b),s=new epr.ECCurveFp(n,i,a),o=s.decodePointHex(r.G.toString("hex")),c=new eh(epe(t)),p=o.multiply(c);p=Pc.from(s.encodePointHex(p),"hex");var f=[];f.push({name:"curve",data:Pc.from(e)}),f.push({name:"Q",data:p});var d=new Qlr({type:"ecdsa",curve:s,parts:f});return d}function ypr(e){var t={};switch(e){case"3des-cbc":t.keySize=24,t.blockSize=8,t.opensslName="des-ede3-cbc";break;case"blowfish-cbc":t.keySize=16,t.blockSize=8,t.opensslName="bf-cbc";break;case"aes128-cbc":case"aes128-ctr":case"aes128-gcm@openssh.com":t.keySize=16,t.blockSize=16,t.opensslName="aes-128-"+e.slice(7,10);break;case"aes192-cbc":case"aes192-ctr":case"aes192-gcm@openssh.com":t.keySize=24,t.blockSize=16,t.opensslName="aes-192-"+e.slice(7,10);break;case"aes256-cbc":case"aes256-ctr":case"aes256-gcm@openssh.com":t.keySize=32,t.blockSize=16,t.opensslName="aes-256-"+e.slice(7,10);break;default:throw new Error('Unsupported openssl cipher "'+e+'"')}return t}});var T3=b((Uin,QXe)=>{QXe.exports=cs;var uw=oi(),tpe=Wi().Buffer;function cs(e){uw.object(e,"options"),e.buffer!==void 0&&uw.buffer(e.buffer,"options.buffer"),this._size=e.buffer?e.buffer.length:1024,this._buffer=e.buffer||tpe.alloc(this._size),this._offset=0}cs.prototype.toBuffer=function(){return this._buffer.slice(0,this._offset)};cs.prototype.atEnd=function(){return this._offset>=this._buffer.length};cs.prototype.remainder=function(){return this._buffer.slice(this._offset)};cs.prototype.skip=function(e){this._offset+=e};cs.prototype.expand=function(){this._size*=2;var e=tpe.alloc(this._size);this._buffer.copy(e,0),this._buffer=e};cs.prototype.readPart=function(){return{data:this.readBuffer()}};cs.prototype.readBuffer=function(){var e=this._buffer.readUInt32BE(this._offset);this._offset+=4,uw.ok(this._offset+e<=this._buffer.length,"length out of bounds at +0x"+this._offset.toString(16)+" (data truncated?)");var t=this._buffer.slice(this._offset,this._offset+e);return this._offset+=e,t};cs.prototype.readString=function(){return this.readBuffer().toString()};cs.prototype.readCString=function(){for(var e=this._offset;e<this._buffer.length&&this._buffer[e]!==0;)e++;uw.ok(e<this._buffer.length,"c string does not terminate");var t=this._buffer.slice(this._offset,e).toString();return this._offset=e+1,t};cs.prototype.readInt=function(){var e=this._buffer.readUInt32BE(this._offset);return this._offset+=4,e};cs.prototype.readInt64=function(){uw.ok(this._offset+8<this._buffer.length,"buffer not long enough to read Int64");var e=this._buffer.slice(this._offset,this._offset+8);return this._offset+=8,e};cs.prototype.readChar=function(){var e=this._buffer[this._offset++];return e};cs.prototype.writeBuffer=function(e){for(;this._offset+4+e.length>this._size;)this.expand();this._buffer.writeUInt32BE(e.length,this._offset),this._offset+=4,e.copy(this._buffer,this._offset),this._offset+=e.length};cs.prototype.writeString=function(e){this.writeBuffer(tpe.from(e,"utf8"))};cs.prototype.writeCString=function(e){for(;this._offset+1+e.length>this._size;)this.expand();this._buffer.write(e,this._offset),this._offset+=e.length,this._buffer[this._offset++]=0};cs.prototype.writeInt=function(e){for(;this._offset+4>this._size;)this.expand();this._buffer.writeUInt32BE(e,this._offset),this._offset+=4};cs.prototype.writeInt64=function(e){if(uw.buffer(e,"value"),e.length>8){for(var t=e.slice(0,e.length-8),r=0;r<t.length;++r)uw.strictEqual(t[r],0,"must fit in 64 bits of precision");e=e.slice(e.length-8,e.length)}for(;this._offset+8>this._size;)this.expand();e.copy(this._buffer,this._offset),this._offset+=8};cs.prototype.writeChar=function(e){for(;this._offset+1>this._size;)this.expand();this._buffer[this._offset++]=e};cs.prototype.writePart=function(e){this.writeBuffer(e.data)};cs.prototype.write=function(e){for(;this._offset+e.length>this._size;)this.expand();e.copy(this._buffer,this._offset),this._offset+=e.length}});var th=b((Vin,nQe)=>{nQe.exports=bl;var ls=oi(),tQe=Wi().Buffer,zin=Bo(),Hin=require("crypto"),rQe=Of(),Uk=Ks(),O3=Zd(),j1=T3(),ZXe=rQe.InvalidAlgorithmError,bpr=rQe.SignatureParseError;function bl(e){ls.object(e,"options"),ls.arrayOfObject(e.parts,"options.parts"),ls.string(e.type,"options.type");for(var t={},r=0;r<e.parts.length;++r){var n=e.parts[r];t[n.name]=n}this.type=e.type,this.hashAlgorithm=e.hashAlgo,this.curve=e.curve,this.parts=e.parts,this.part=t}bl.prototype.toBuffer=function(e){e===void 0&&(e="asn1"),ls.string(e,"format");var t,r="ssh-"+this.type;switch(this.type){case"rsa":switch(this.hashAlgorithm){case"sha256":r="rsa-sha2-256";break;case"sha512":r="rsa-sha2-512";break;case"sha1":case void 0:break;default:throw new Error("SSH signature format does not support hash algorithm "+this.hashAlgorithm)}return e==="ssh"?(t=new j1({}),t.writeString(r),t.writePart(this.part.sig),t.toBuffer()):this.part.sig.data;case"ed25519":return e==="ssh"?(t=new j1({}),t.writeString(r),t.writePart(this.part.sig),t.toBuffer()):this.part.sig.data;case"dsa":case"ecdsa":var n,i;if(e==="asn1"){var a=new O3.BerWriter;return a.startSequence(),n=Uk.mpNormalize(this.part.r.data),i=Uk.mpNormalize(this.part.s.data),a.writeBuffer(n,O3.Ber.Integer),a.writeBuffer(i,O3.Ber.Integer),a.endSequence(),a.buffer}else if(e==="ssh"&&this.type==="dsa"){if(t=new j1({}),t.writeString("ssh-dss"),n=this.part.r.data,n.length>20&&n[0]===0&&(n=n.slice(1)),i=this.part.s.data,i.length>20&&i[0]===0&&(i=i.slice(1)),this.hashAlgorithm&&this.hashAlgorithm!=="sha1"||n.length+i.length!==40)throw new Error("OpenSSH only supports DSA signatures with SHA1 hash");return t.writeBuffer(tQe.concat([n,i])),t.toBuffer()}else if(e==="ssh"&&this.type==="ecdsa"){var s=new j1({});n=this.part.r.data,s.writeBuffer(n),s.writePart(this.part.s),t=new j1({});var o;n[0]===0&&(n=n.slice(1));var c=n.length*8;return c===256?o="nistp256":c===384?o="nistp384":c===528&&(o="nistp521"),t.writeString("ecdsa-sha2-"+o),t.writeBuffer(s.toBuffer()),t.toBuffer()}throw new Error("Invalid signature format");default:throw new Error("Invalid signature data")}};bl.prototype.toString=function(e){return ls.optionalString(e,"format"),this.toBuffer(e).toString("base64")};bl.parse=function(e,t,r){typeof e=="string"&&(e=tQe.from(e,"base64")),ls.buffer(e,"data"),ls.string(r,"format"),ls.string(t,"type");var n={};n.type=t.toLowerCase(),n.parts=[];try{switch(ls.ok(e.length>0,"signature must not be empty"),n.type){case"rsa":return eQe(e,t,r,n);case"ed25519":return eQe(e,t,r,n);case"dsa":case"ecdsa":return r==="asn1"?wpr(e,t,r,n):n.type==="dsa"?_pr(e,t,r,n):xpr(e,t,r,n);default:throw new ZXe(t)}}catch(i){throw i instanceof ZXe?i:new bpr(t,r,i)}};function eQe(e,t,r,n){if(r==="ssh"){try{var i=new j1({buffer:e}),a=i.readString()}catch{}if(i!==void 0){var s="SSH signature does not match expected type (expected "+t+", got "+a+")";switch(a){case"ssh-rsa":ls.strictEqual(t,"rsa",s),n.hashAlgo="sha1";break;case"rsa-sha2-256":ls.strictEqual(t,"rsa",s),n.hashAlgo="sha256";break;case"rsa-sha2-512":ls.strictEqual(t,"rsa",s),n.hashAlgo="sha512";break;case"ssh-ed25519":ls.strictEqual(t,"ed25519",s),n.hashAlgo="sha512";break;default:throw new Error("Unknown SSH signature type: "+a)}var o=i.readPart();return ls.ok(i.atEnd(),"extra trailing bytes"),o.name="sig",n.parts.push(o),new bl(n)}}return n.parts.push({name:"sig",data:e}),new bl(n)}function wpr(e,t,r,n){var i=new O3.BerReader(e);i.readSequence();var a=i.readString(O3.Ber.Integer,!0),s=i.readString(O3.Ber.Integer,!0);return n.parts.push({name:"r",data:Uk.mpNormalize(a)}),n.parts.push({name:"s",data:Uk.mpNormalize(s)}),new bl(n)}function _pr(e,t,r,n){if(e.length!=40){var i=new j1({buffer:e}),a=i.readBuffer();a.toString("ascii")==="ssh-dss"&&(a=i.readBuffer()),ls.ok(i.atEnd(),"extra trailing bytes"),ls.strictEqual(a.length,40,"invalid inner length"),e=a}return n.parts.push({name:"r",data:e.slice(0,20)}),n.parts.push({name:"s",data:e.slice(20,40)}),new bl(n)}function xpr(e,t,r,n){var i=new j1({buffer:e}),a,s,o=i.readBuffer(),c=o.toString("ascii");if(c.slice(0,6)==="ecdsa-"){var p=c.split("-");switch(ls.strictEqual(p[0],"ecdsa"),ls.strictEqual(p[1],"sha2"),n.curve=p[2],n.curve){case"nistp256":n.hashAlgo="sha256";break;case"nistp384":n.hashAlgo="sha384";break;case"nistp521":n.hashAlgo="sha512";break;default:throw new Error("Unsupported ECDSA curve: "+n.curve)}o=i.readBuffer(),ls.ok(i.atEnd(),"extra trailing bytes on outer"),i=new j1({buffer:o}),a=i.readPart()}else a={data:o};return s=i.readPart(),ls.ok(i.atEnd(),"extra trailing bytes"),a.name="r",s.name="s",n.parts.push(a),n.parts.push(s),new bl(n)}bl.isSignature=function(e,t){return Uk.isCompatible(e,bl,t)};bl.prototype._sshpkApiVersion=[2,1];bl._oldVersionDetect=function(e){return ls.func(e.toBuffer),e.hasOwnProperty("hashAlgorithm")?[2,0]:[1,0]}});var aQe=b((Gin,iQe)=>{var rh=k3().BigInteger,cw=Mk().ECCurveFp;function Cf(e,t,r,n){this.curve=e,this.g=t,this.n=r,this.h=n}function Epr(){return this.curve}function Spr(){return this.g}function kpr(){return this.n}function Apr(){return this.h}Cf.prototype.getCurve=Epr;Cf.prototype.getG=Spr;Cf.prototype.getN=kpr;Cf.prototype.getH=Apr;function Yi(e){return new rh(e,16)}function Tpr(){var e=Yi("FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF"),t=Yi("FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC"),r=Yi("E87579C11079F43DD824993C2CEE5ED3"),n=Yi("FFFFFFFE0000000075A30D1B9038A115"),i=rh.ONE,a=new cw(e,t,r),s=a.decodePointHex("04161FF7528B899B2D0C28607CA52C5B86CF5AC8395BAFEB13C02DA292DDED7A83");return new Cf(a,s,n,i)}function Opr(){var e=Yi("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73"),t=rh.ZERO,r=Yi("7"),n=Yi("0100000000000000000001B8FA16DFAB9ACA16B6B3"),i=rh.ONE,a=new cw(e,t,r),s=a.decodePointHex("043B4C382CE37AA192A4019E763036F4F5DD4D7EBB938CF935318FDCED6BC28286531733C3F03C4FEE");return new Cf(a,s,n,i)}function Dpr(){var e=Yi("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF"),t=Yi("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC"),r=Yi("1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45"),n=Yi("0100000000000000000001F4C8F927AED3CA752257"),i=rh.ONE,a=new cw(e,t,r),s=a.decodePointHex("044A96B5688EF573284664698968C38BB913CBFC8223A628553168947D59DCC912042351377AC5FB32");return new Cf(a,s,n,i)}function Cpr(){var e=Yi("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37"),t=rh.ZERO,r=Yi("3"),n=Yi("FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D"),i=rh.ONE,a=new cw(e,t,r),s=a.decodePointHex("04DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D");return new Cf(a,s,n,i)}function Ppr(){var e=Yi("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF"),t=Yi("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC"),r=Yi("64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1"),n=Yi("FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831"),i=rh.ONE,a=new cw(e,t,r),s=a.decodePointHex("04188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF101207192B95FFC8DA78631011ED6B24CDD573F977A11E794811");return new Cf(a,s,n,i)}function Ipr(){var e=Yi("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001"),t=Yi("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE"),r=Yi("B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4"),n=Yi("FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D"),i=rh.ONE,a=new cw(e,t,r),s=a.decodePointHex("04B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34");return new Cf(a,s,n,i)}function Rpr(){var e=Yi("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF"),t=Yi("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC"),r=Yi("5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B"),n=Yi("FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551"),i=rh.ONE,a=new cw(e,t,r),s=a.decodePointHex("046B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C2964FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5");return new Cf(a,s,n,i)}iQe.exports={secp128r1:Tpr,secp160k1:Opr,secp160r1:Dpr,secp192k1:Cpr,secp192r1:Ppr,secp224r1:Ipr,secp256r1:Rpr}});var sQe=b(ipe=>{var Fpr=require("crypto"),BN=k3().BigInteger,Win=Mk().ECPointFp,rpe=Wi().Buffer;ipe.ECCurves=aQe();function npe(e,t){return e.length>=t?e:npe("0"+e,t)}ipe.ECKey=function(e,t,r){var n,i=e(),a=i.getN(),s=Math.floor(a.bitLength()/8);if(t)if(r){var e=i.getCurve();this.P=e.decodePointHex(t.toString("hex"))}else{if(t.length!=s)return!1;n=new BN(t.toString("hex"),16)}else{var o=a.subtract(BN.ONE),c=new BN(Fpr.randomBytes(a.bitLength()));n=c.mod(o).add(BN.ONE),this.P=i.getG().multiply(n)}this.P&&(this.PublicKey=rpe.from(i.getCurve().encodeCompressedPointHex(this.P),"hex")),n&&(this.PrivateKey=rpe.from(npe(n.toString(16),s*2),"hex"),this.deriveSharedSecret=function(p){if(!p||!p.P)return!1;var f=p.P.multiply(n);return rpe.from(npe(f.getX().toBigInteger().toString(16),s*2),"hex")})}});var UN=b((Jin,cQe)=>{cQe.exports={DiffieHellman:Ic,generateECDSA:Lpr,generateED25519:qpr};var Pf=oi(),D3=require("crypto"),tc=Wi().Buffer,jpr=Bo(),zk=Ks(),ape=A3(),oQe=Ys(),nh=co(),lw=D3.createECDH!==void 0,Yin=sQe(),Npr=Mk(),up=k3().BigInteger;function Ic(e){if(zk.assertCompatible(e,oQe,[1,4],"key"),this._isPriv=nh.isPrivateKey(e,[1,3]),this._algo=e.type,this._curve=e.curve,this._key=e,e.type==="dsa"){if(!lw)throw new Error("Due to bugs in the node 0.10 crypto API, node 0.12.x or later is required to use DH");this._dh=D3.createDiffieHellman(e.part.p.data,void 0,e.part.g.data,void 0),this._p=e.part.p,this._g=e.part.g,this._isPriv&&this._dh.setPrivateKey(e.part.x.data),this._dh.setPublicKey(e.part.y.data)}else if(e.type==="ecdsa"){if(!lw){this._ecParams=new C3(this._curve),this._isPriv&&(this._priv=new MN(this._ecParams,e.part.d.data));return}var t={nistp256:"prime256v1",nistp384:"secp384r1",nistp521:"secp521r1"}[e.curve];if(this._dh=D3.createECDH(t),typeof this._dh!="object"||typeof this._dh.setPrivateKey!="function"){lw=!1,Ic.call(this,e);return}this._isPriv&&this._dh.setPrivateKey(e.part.d.data),this._dh.setPublicKey(e.part.Q.data)}else if(e.type==="curve25519")this._isPriv&&(zk.assertCompatible(e,nh,[1,5],"key"),this._priv=e.part.k.data);else throw new Error("DH not supported for "+e.type+" keys")}Ic.prototype.getPublicKey=function(){return this._isPriv?this._key.toPublic():this._key};Ic.prototype.getPrivateKey=function(){if(this._isPriv)return this._key};Ic.prototype.getKey=Ic.prototype.getPrivateKey;Ic.prototype._keyCheck=function(e,t){if(Pf.object(e,"key"),t||zk.assertCompatible(e,nh,[1,3],"key"),zk.assertCompatible(e,oQe,[1,4],"key"),e.type!==this._algo)throw new Error("A "+e.type+" key cannot be used in "+this._algo+" Diffie-Hellman");if(e.curve!==this._curve)throw new Error("A key from the "+e.curve+" curve cannot be used with a "+this._curve+" Diffie-Hellman");e.type==="dsa"&&(Pf.deepEqual(e.part.p,this._p,"DSA key prime does not match"),Pf.deepEqual(e.part.g,this._g,"DSA key generator does not match"))};Ic.prototype.setKey=function(e){if(this._keyCheck(e),e.type==="dsa")this._dh.setPrivateKey(e.part.x.data),this._dh.setPublicKey(e.part.y.data);else if(e.type==="ecdsa")lw?(this._dh.setPrivateKey(e.part.d.data),this._dh.setPublicKey(e.part.Q.data)):this._priv=new MN(this._ecParams,e.part.d.data);else if(e.type==="curve25519"){var t=e.part.k;e.part.k||(t=e.part.r),this._priv=t.data,this._priv[0]===0&&(this._priv=this._priv.slice(1)),this._priv=this._priv.slice(0,32)}this._key=e,this._isPriv=!0};Ic.prototype.setPrivateKey=Ic.prototype.setKey;Ic.prototype.computeSecret=function(e){if(this._keyCheck(e,!0),!this._isPriv)throw new Error("DH exchange has not been initialized with a private key yet");var t;if(this._algo==="dsa")return this._dh.computeSecret(e.part.y.data);if(this._algo==="ecdsa")return lw?this._dh.computeSecret(e.part.Q.data):(t=new uQe(this._ecParams,e.part.Q.data),this._priv.deriveSharedSecret(t));if(this._algo==="curve25519"){for(t=e.part.A.data;t[0]===0&&t.length>32;)t=t.slice(1);var r=this._priv;Pf.strictEqual(t.length,32),Pf.strictEqual(r.length,32);var n=ape.box.before(new Uint8Array(t),new Uint8Array(r));return tc.from(n)}throw new Error("Invalid algorithm: "+this._algo)};Ic.prototype.generateKey=function(){var e=[],t,r;if(this._algo==="dsa")return this._dh.generateKeys(),e.push({name:"p",data:this._p.data}),e.push({name:"q",data:this._key.part.q.data}),e.push({name:"g",data:this._g.data}),e.push({name:"y",data:this._dh.getPublicKey()}),e.push({name:"x",data:this._dh.getPrivateKey()}),this._key=new nh({type:"dsa",parts:e}),this._isPriv=!0,this._key;if(this._algo==="ecdsa"){if(lw)return this._dh.generateKeys(),e.push({name:"curve",data:tc.from(this._curve)}),e.push({name:"Q",data:this._dh.getPublicKey()}),e.push({name:"d",data:this._dh.getPrivateKey()}),this._key=new nh({type:"ecdsa",curve:this._curve,parts:e}),this._isPriv=!0,this._key;var n=this._ecParams.getN(),i=new up(D3.randomBytes(n.bitLength())),a=n.subtract(up.ONE);return t=i.mod(a).add(up.ONE),r=this._ecParams.getG().multiply(t),t=tc.from(t.toByteArray()),r=tc.from(this._ecParams.getCurve().encodePointHex(r),"hex"),this._priv=new MN(this._ecParams,t),e.push({name:"curve",data:tc.from(this._curve)}),e.push({name:"Q",data:r}),e.push({name:"d",data:t}),this._key=new nh({type:"ecdsa",curve:this._curve,parts:e}),this._isPriv=!0,this._key}else if(this._algo==="curve25519"){var s=ape.box.keyPair();return t=tc.from(s.secretKey),r=tc.from(s.publicKey),t=tc.concat([t,r]),Pf.strictEqual(t.length,64),Pf.strictEqual(r.length,32),e.push({name:"A",data:r}),e.push({name:"k",data:t}),this._key=new nh({type:"curve25519",parts:e}),this._isPriv=!0,this._key}throw new Error("Invalid algorithm: "+this._algo)};Ic.prototype.generateKeys=Ic.prototype.generateKey;function C3(e){var t=jpr.curves[e];Pf.object(t);var r=new up(t.p),n=new up(t.a),i=new up(t.b),a=new up(t.n),s=up.ONE,o=new Npr.ECCurveFp(r,n,i),c=o.decodePointHex(t.G.toString("hex"));this.curve=o,this.g=c,this.n=a,this.h=s}C3.prototype.getCurve=function(){return this.curve};C3.prototype.getG=function(){return this.g};C3.prototype.getN=function(){return this.n};C3.prototype.getH=function(){return this.h};function uQe(e,t){this._params=e,t[0]===0&&(t=t.slice(1)),this._pub=e.getCurve().decodePointHex(t.toString("hex"))}function MN(e,t){this._params=e,this._priv=new up(zk.mpNormalize(t))}MN.prototype.deriveSharedSecret=function(e){Pf.ok(e instanceof uQe);var t=e._pub.multiply(this._priv);return tc.from(t.getX().toBigInteger().toByteArray())};function qpr(){var e=ape.sign.keyPair(),t=tc.from(e.secretKey),r=tc.from(e.publicKey);Pf.strictEqual(t.length,64),Pf.strictEqual(r.length,32);var n=[];n.push({name:"A",data:r}),n.push({name:"k",data:t.slice(0,32)});var i=new nh({type:"ed25519",parts:n});return i}function Lpr(e){var t=[],r;if(lw){var n={nistp256:"prime256v1",nistp384:"secp384r1",nistp521:"secp521r1"}[e],i=D3.createECDH(n);return i.generateKeys(),t.push({name:"curve",data:tc.from(e)}),t.push({name:"Q",data:i.getPublicKey()}),t.push({name:"d",data:i.getPrivateKey()}),r=new nh({type:"ecdsa",curve:e,parts:t}),r}else{var a=new C3(e),s=a.getN(),o=Math.ceil((s.bitLength()+64)/8),c=new up(D3.randomBytes(o)),p=s.subtract(up.ONE),f=c.mod(p).add(up.ONE),d=a.getG().multiply(f);return f=tc.from(f.toByteArray()),d=tc.from(a.getCurve().encodePointHex(d),"hex"),t.push({name:"curve",data:tc.from(e)}),t.push({name:"Q",data:d}),t.push({name:"d",data:f}),r=new nh({type:"ecdsa",curve:e,parts:t}),r}}});var ope=b((Xin,fQe)=>{fQe.exports={Verifier:Hk,Signer:Vk};var lQe=A3(),zN=require("stream"),pQe=require("util"),$pr=oi(),pw=Wi().Buffer,spe=th();function Hk(e,t){if(t.toLowerCase()!=="sha512")throw new Error("ED25519 only supports the use of SHA-512 hashes");this.key=e,this.chunks=[],zN.Writable.call(this,{})}pQe.inherits(Hk,zN.Writable);Hk.prototype._write=function(e,t,r){this.chunks.push(e),r()};Hk.prototype.update=function(e){typeof e=="string"&&(e=pw.from(e,"binary")),this.chunks.push(e)};Hk.prototype.verify=function(e,t){var r;if(spe.isSignature(e,[2,0])){if(e.type!=="ed25519")return!1;r=e.toBuffer("raw")}else if(typeof e=="string")r=pw.from(e,"base64");else if(spe.isSignature(e,[1,0]))throw new Error("signature was created by too old a version of sshpk and cannot be verified");return $pr.buffer(r),lQe.sign.detached.verify(new Uint8Array(pw.concat(this.chunks)),new Uint8Array(r),new Uint8Array(this.key.part.A.data))};function Vk(e,t){if(t.toLowerCase()!=="sha512")throw new Error("ED25519 only supports the use of SHA-512 hashes");this.key=e,this.chunks=[],zN.Writable.call(this,{})}pQe.inherits(Vk,zN.Writable);Vk.prototype._write=function(e,t,r){this.chunks.push(e),r()};Vk.prototype.update=function(e){typeof e=="string"&&(e=pw.from(e,"binary")),this.chunks.push(e)};Vk.prototype.sign=function(){var e=lQe.sign.detached(new Uint8Array(pw.concat(this.chunks)),new Uint8Array(pw.concat([this.key.part.k.data,this.key.part.A.data]))),t=pw.from(e),r=spe.parse(t,"ed25519","raw");return r.hashAlgorithm="sha512",r}});var P3=b((Qin,mQe)=>{mQe.exports={read:Bpr,readPkcs8:Upr,write:Mpr,writePkcs8:hQe,pkcs8ToBuffer:Zpr,readECDSACurve:upe,writeECDSACurve:cpe};var ah=oi(),cr=Zd(),Yg=Wi().Buffer,Gk=Bo(),gi=Ks(),Wk=Ys(),ih=co(),dQe=N1();function Bpr(e,t){return dQe.read(e,t,"pkcs8")}function Mpr(e,t){return dQe.write(e,t,"pkcs8")}function ks(e,t){return ah.strictEqual(e.peek(),cr.Ber.Integer,t+" is not an Integer"),gi.mpNormalize(e.readString(cr.Ber.Integer,!0))}function Upr(e,t,r){r.peek()===cr.Ber.Integer&&(ah.strictEqual(t,"private","unexpected Integer at start of public key"),r.readString(cr.Ber.Integer,!0)),r.readSequence();var n=r.offset+r.length,i=r.readOID();switch(i){case"1.2.840.113549.1.1.1":return r._offset=n,t==="public"?zpr(r):Hpr(r);case"1.2.840.10040.4.1":return t==="public"?Vpr(r):Gpr(r);case"1.2.840.10045.2.1":return t==="public"?Kpr(r):Wpr(r);case"1.3.101.112":return t==="public"?Ypr(r):Xpr(r);case"1.3.101.110":return t==="public"?Jpr(r):Qpr(r);default:throw new Error("Unknown key type OID "+i)}}function zpr(e){e.readSequence(cr.Ber.BitString),e.readByte(),e.readSequence();var t=ks(e,"modulus"),r=ks(e,"exponent"),n={type:"rsa",source:e.originalInput,parts:[{name:"e",data:r},{name:"n",data:t}]};return new Wk(n)}function Hpr(e){e.readSequence(cr.Ber.OctetString),e.readSequence();var t=ks(e,"version");ah.equal(t[0],0,"unknown RSA private key version");var r=ks(e,"modulus"),n=ks(e,"public exponent"),i=ks(e,"private exponent"),a=ks(e,"prime1"),s=ks(e,"prime2"),o=ks(e,"exponent1"),c=ks(e,"exponent2"),p=ks(e,"iqmp"),f={type:"rsa",parts:[{name:"n",data:r},{name:"e",data:n},{name:"d",data:i},{name:"iqmp",data:p},{name:"p",data:a},{name:"q",data:s},{name:"dmodp",data:o},{name:"dmodq",data:c}]};return new ih(f)}function Vpr(e){e.readSequence();var t=ks(e,"p"),r=ks(e,"q"),n=ks(e,"g");e.readSequence(cr.Ber.BitString),e.readByte();var i=ks(e,"y"),a={type:"dsa",parts:[{name:"p",data:t},{name:"q",data:r},{name:"g",data:n},{name:"y",data:i}]};return new Wk(a)}function Gpr(e){e.readSequence();var t=ks(e,"p"),r=ks(e,"q"),n=ks(e,"g");e.readSequence(cr.Ber.OctetString);var i=ks(e,"x"),a=gi.calculateDSAPublic(n,t,i),s={type:"dsa",parts:[{name:"p",data:t},{name:"q",data:r},{name:"g",data:n},{name:"y",data:a},{name:"x",data:i}]};return new ih(s)}function upe(e){var t,r,n,i,a;if(e.peek()===cr.Ber.OID){var s=e.readOID();for(r=Object.keys(Gk.curves),n=0;n<r.length;++n)if(i=r[n],a=Gk.curves[i],a.pkcs8oid===s){t=i;break}}else{e.readSequence();var o=e.readString(cr.Ber.Integer,!0);ah.strictEqual(o[0],1,"ECDSA key not version 1");var c={};e.readSequence();var p=e.readOID();ah.strictEqual(p,"1.2.840.10045.1.1","ECDSA key is not from a prime-field");var f=c.p=gi.mpNormalize(e.readString(cr.Ber.Integer,!0));c.size=f.length*8-gi.countZeros(f),e.readSequence(),c.a=gi.mpNormalize(e.readString(cr.Ber.OctetString,!0)),c.b=gi.mpNormalize(e.readString(cr.Ber.OctetString,!0)),e.peek()===cr.Ber.BitString&&(c.s=e.readString(cr.Ber.BitString,!0)),c.G=e.readString(cr.Ber.OctetString,!0),ah.strictEqual(c.G[0],4,"uncompressed G is required"),c.n=gi.mpNormalize(e.readString(cr.Ber.Integer,!0)),c.h=gi.mpNormalize(e.readString(cr.Ber.Integer,!0)),ah.strictEqual(c.h[0],1,"a cofactor=1 curve is required"),r=Object.keys(Gk.curves);var d=Object.keys(c);for(n=0;n<r.length;++n){i=r[n],a=Gk.curves[i];for(var h=!0,g=0;g<d.length;++g){var v=d[g];if(a[v]!==void 0){if(typeof a[v]=="object"&&a[v].equals!==void 0){if(!a[v].equals(c[v])){h=!1;break}}else if(Yg.isBuffer(a[v])){if(a[v].toString("binary")!==c[v].toString("binary")){h=!1;break}}else if(a[v]!==c[v]){h=!1;break}}}if(h){t=i;break}}}return t}function Wpr(e){var t=upe(e);ah.string(t,"a known elliptic curve"),e.readSequence(cr.Ber.OctetString),e.readSequence();var r=ks(e,"version");ah.equal(r[0],1,"unknown version of ECDSA key");var n=e.readString(cr.Ber.OctetString,!0),i;if(e.peek()==160&&(e.readSequence(160),e._offset+=e.length),e.peek()==161&&(e.readSequence(161),i=e.readString(cr.Ber.BitString,!0),i=gi.ecNormalize(i)),i===void 0){var a=gi.publicFromPrivateECDSA(t,n);i=a.part.Q.data}var s={type:"ecdsa",parts:[{name:"curve",data:Yg.from(t)},{name:"Q",data:i},{name:"d",data:n}]};return new ih(s)}function Kpr(e){var t=upe(e);ah.string(t,"a known elliptic curve");var r=e.readString(cr.Ber.BitString,!0);r=gi.ecNormalize(r);var n={type:"ecdsa",parts:[{name:"curve",data:Yg.from(t)},{name:"Q",data:r}]};return new Wk(n)}function Ypr(e){e.peek()===0&&e.readByte();var t=gi.readBitString(e),r={type:"ed25519",parts:[{name:"A",data:gi.zeroPadToLength(t,32)}]};return new Wk(r)}function Jpr(e){var t=gi.readBitString(e),r={type:"curve25519",parts:[{name:"A",data:gi.zeroPadToLength(t,32)}]};return new Wk(r)}function Xpr(e){e.peek()===0&&e.readByte(),e.readSequence(cr.Ber.OctetString);var t=e.readString(cr.Ber.OctetString,!0);t=gi.zeroPadToLength(t,32);var r;e.peek()===cr.Ber.BitString?(r=gi.readBitString(e),r=gi.zeroPadToLength(r,32)):r=gi.calculateED25519Public(t);var n={type:"ed25519",parts:[{name:"A",data:gi.zeroPadToLength(r,32)},{name:"k",data:gi.zeroPadToLength(t,32)}]};return new ih(n)}function Qpr(e){e.peek()===0&&e.readByte(),e.readSequence(cr.Ber.OctetString);var t=e.readString(cr.Ber.OctetString,!0);t=gi.zeroPadToLength(t,32);var r=gi.calculateX25519Public(t),n={type:"curve25519",parts:[{name:"A",data:gi.zeroPadToLength(r,32)},{name:"k",data:gi.zeroPadToLength(t,32)}]};return new ih(n)}function Zpr(e){var t=new cr.BerWriter;return hQe(t,e),t.buffer}function hQe(e,t){if(e.startSequence(),ih.isPrivateKey(t)){var r=Yg.from([0]);e.writeBuffer(r,cr.Ber.Integer)}switch(e.startSequence(),t.type){case"rsa":e.writeOID("1.2.840.113549.1.1.1"),ih.isPrivateKey(t)?efr(t,e):tfr(t,e);break;case"dsa":e.writeOID("1.2.840.10040.4.1"),ih.isPrivateKey(t)?rfr(t,e):nfr(t,e);break;case"ecdsa":e.writeOID("1.2.840.10045.2.1"),ih.isPrivateKey(t)?afr(t,e):ifr(t,e);break;case"ed25519":if(e.writeOID("1.3.101.112"),ih.isPrivateKey(t))throw new Error("Ed25519 private keys in pkcs8 format are not supported");sfr(t,e);break;default:throw new Error("Unsupported key type: "+t.type)}e.endSequence()}function efr(e,t){t.writeNull(),t.endSequence(),t.startSequence(cr.Ber.OctetString),t.startSequence();var r=Yg.from([0]);t.writeBuffer(r,cr.Ber.Integer),t.writeBuffer(e.part.n.data,cr.Ber.Integer),t.writeBuffer(e.part.e.data,cr.Ber.Integer),t.writeBuffer(e.part.d.data,cr.Ber.Integer),t.writeBuffer(e.part.p.data,cr.Ber.Integer),t.writeBuffer(e.part.q.data,cr.Ber.Integer),(!e.part.dmodp||!e.part.dmodq)&&gi.addRSAMissing(e),t.writeBuffer(e.part.dmodp.data,cr.Ber.Integer),t.writeBuffer(e.part.dmodq.data,cr.Ber.Integer),t.writeBuffer(e.part.iqmp.data,cr.Ber.Integer),t.endSequence(),t.endSequence()}function tfr(e,t){t.writeNull(),t.endSequence(),t.startSequence(cr.Ber.BitString),t.writeByte(0),t.startSequence(),t.writeBuffer(e.part.n.data,cr.Ber.Integer),t.writeBuffer(e.part.e.data,cr.Ber.Integer),t.endSequence(),t.endSequence()}function rfr(e,t){t.startSequence(),t.writeBuffer(e.part.p.data,cr.Ber.Integer),t.writeBuffer(e.part.q.data,cr.Ber.Integer),t.writeBuffer(e.part.g.data,cr.Ber.Integer),t.endSequence(),t.endSequence(),t.startSequence(cr.Ber.OctetString),t.writeBuffer(e.part.x.data,cr.Ber.Integer),t.endSequence()}function nfr(e,t){t.startSequence(),t.writeBuffer(e.part.p.data,cr.Ber.Integer),t.writeBuffer(e.part.q.data,cr.Ber.Integer),t.writeBuffer(e.part.g.data,cr.Ber.Integer),t.endSequence(),t.endSequence(),t.startSequence(cr.Ber.BitString),t.writeByte(0),t.writeBuffer(e.part.y.data,cr.Ber.Integer),t.endSequence()}function cpe(e,t){var r=Gk.curves[e.curve];if(r.pkcs8oid)t.writeOID(r.pkcs8oid);else{t.startSequence();var n=Yg.from([1]);t.writeBuffer(n,cr.Ber.Integer),t.startSequence(),t.writeOID("1.2.840.10045.1.1"),t.writeBuffer(r.p,cr.Ber.Integer),t.endSequence(),t.startSequence();var i=r.p;i[0]===0&&(i=i.slice(1)),t.writeBuffer(i,cr.Ber.OctetString),t.writeBuffer(r.b,cr.Ber.OctetString),t.writeBuffer(r.s,cr.Ber.BitString),t.endSequence(),t.writeBuffer(r.G,cr.Ber.OctetString),t.writeBuffer(r.n,cr.Ber.Integer);var a=r.h;a||(a=Yg.from([1])),t.writeBuffer(a,cr.Ber.Integer),t.endSequence()}}function ifr(e,t){cpe(e,t),t.endSequence();var r=gi.ecNormalize(e.part.Q.data,!0);t.writeBuffer(r,cr.Ber.BitString)}function afr(e,t){cpe(e,t),t.endSequence(),t.startSequence(cr.Ber.OctetString),t.startSequence();var r=Yg.from([1]);t.writeBuffer(r,cr.Ber.Integer),t.writeBuffer(e.part.d.data,cr.Ber.OctetString),t.startSequence(161);var n=gi.ecNormalize(e.part.Q.data,!0);t.writeBuffer(n,cr.Ber.BitString),t.endSequence(),t.endSequence(),t.endSequence()}function sfr(e,t){t.endSequence(),gi.writeBitString(t,e.part.A.data)}});var VN=b((Zin,vQe)=>{vQe.exports={read:cfr,readPkcs1:pfr,write:lfr,writePkcs1:bfr};var If=oi(),Ln=Zd(),I3=Wi().Buffer,HN=Bo(),q1=Ks(),lpe=Ys(),Jg=co(),gQe=N1(),ofr=P3(),ufr=ofr.readECDSACurve;function cfr(e,t){return gQe.read(e,t,"pkcs1")}function lfr(e,t){return gQe.write(e,t,"pkcs1")}function qa(e,t){return If.strictEqual(e.peek(),Ln.Ber.Integer,t+" is not an Integer"),q1.mpNormalize(e.readString(Ln.Ber.Integer,!0))}function pfr(e,t,r){switch(e){case"RSA":if(t==="public")return ffr(r);if(t==="private")return dfr(r);throw new Error("Unknown key type: "+t);case"DSA":if(t==="public")return gfr(r);if(t==="private")return hfr(r);throw new Error("Unknown key type: "+t);case"EC":case"ECDSA":if(t==="private")return yfr(r);if(t==="public")return vfr(r);throw new Error("Unknown key type: "+t);case"EDDSA":case"EdDSA":if(t==="private")return mfr(r);throw new Error(t+" keys not supported with EdDSA");default:throw new Error("Unknown key algo: "+e)}}function ffr(e){var t=qa(e,"modulus"),r=qa(e,"exponent"),n={type:"rsa",parts:[{name:"e",data:r},{name:"n",data:t}]};return new lpe(n)}function dfr(e){var t=qa(e,"version");If.strictEqual(t[0],0);var r=qa(e,"modulus"),n=qa(e,"public exponent"),i=qa(e,"private exponent"),a=qa(e,"prime1"),s=qa(e,"prime2"),o=qa(e,"exponent1"),c=qa(e,"exponent2"),p=qa(e,"iqmp"),f={type:"rsa",parts:[{name:"n",data:r},{name:"e",data:n},{name:"d",data:i},{name:"iqmp",data:p},{name:"p",data:a},{name:"q",data:s},{name:"dmodp",data:o},{name:"dmodq",data:c}]};return new Jg(f)}function hfr(e){var t=qa(e,"version");If.strictEqual(t.readUInt8(0),0);var r=qa(e,"p"),n=qa(e,"q"),i=qa(e,"g"),a=qa(e,"y"),s=qa(e,"x"),o={type:"dsa",parts:[{name:"p",data:r},{name:"q",data:n},{name:"g",data:i},{name:"y",data:a},{name:"x",data:s}]};return new Jg(o)}function mfr(e){var t=qa(e,"version");If.strictEqual(t.readUInt8(0),1);var r=e.readString(Ln.Ber.OctetString,!0);e.readSequence(160);var n=e.readOID();If.strictEqual(n,"1.3.101.112","the ed25519 curve identifier"),e.readSequence(161);var i=q1.readBitString(e),a={type:"ed25519",parts:[{name:"A",data:q1.zeroPadToLength(i,32)},{name:"k",data:r}]};return new Jg(a)}function gfr(e){var t=qa(e,"y"),r=qa(e,"p"),n=qa(e,"q"),i=qa(e,"g"),a={type:"dsa",parts:[{name:"y",data:t},{name:"p",data:r},{name:"q",data:n},{name:"g",data:i}]};return new lpe(a)}function vfr(e){e.readSequence();var t=e.readOID();If.strictEqual(t,"1.2.840.10045.2.1","must be ecPublicKey");for(var r=e.readOID(),n,i=Object.keys(HN.curves),a=0;a<i.length;++a){var s=i[a],o=HN.curves[s];if(o.pkcs8oid===r){n=s;break}}If.string(n,"a known ECDSA named curve");var c=e.readString(Ln.Ber.BitString,!0);c=q1.ecNormalize(c);var p={type:"ecdsa",parts:[{name:"curve",data:I3.from(n)},{name:"Q",data:c}]};return new lpe(p)}function yfr(e){var t=qa(e,"version");If.strictEqual(t.readUInt8(0),1);var r=e.readString(Ln.Ber.OctetString,!0);e.readSequence(160);var n=ufr(e);If.string(n,"a known elliptic curve"),e.readSequence(161);var i=e.readString(Ln.Ber.BitString,!0);i=q1.ecNormalize(i);var a={type:"ecdsa",parts:[{name:"curve",data:I3.from(n)},{name:"Q",data:i},{name:"d",data:r}]};return new Jg(a)}function bfr(e,t){switch(e.startSequence(),t.type){case"rsa":Jg.isPrivateKey(t)?_fr(e,t):wfr(e,t);break;case"dsa":Jg.isPrivateKey(t)?xfr(e,t):Efr(e,t);break;case"ecdsa":Jg.isPrivateKey(t)?kfr(e,t):Sfr(e,t);break;case"ed25519":Jg.isPrivateKey(t)?Afr(e,t):Tfr(e,t);break;default:throw new Error("Unknown key algo: "+t.type)}e.endSequence()}function wfr(e,t){e.writeBuffer(t.part.n.data,Ln.Ber.Integer),e.writeBuffer(t.part.e.data,Ln.Ber.Integer)}function _fr(e,t){var r=I3.from([0]);e.writeBuffer(r,Ln.Ber.Integer),e.writeBuffer(t.part.n.data,Ln.Ber.Integer),e.writeBuffer(t.part.e.data,Ln.Ber.Integer),e.writeBuffer(t.part.d.data,Ln.Ber.Integer),e.writeBuffer(t.part.p.data,Ln.Ber.Integer),e.writeBuffer(t.part.q.data,Ln.Ber.Integer),(!t.part.dmodp||!t.part.dmodq)&&q1.addRSAMissing(t),e.writeBuffer(t.part.dmodp.data,Ln.Ber.Integer),e.writeBuffer(t.part.dmodq.data,Ln.Ber.Integer),e.writeBuffer(t.part.iqmp.data,Ln.Ber.Integer)}function xfr(e,t){var r=I3.from([0]);e.writeBuffer(r,Ln.Ber.Integer),e.writeBuffer(t.part.p.data,Ln.Ber.Integer),e.writeBuffer(t.part.q.data,Ln.Ber.Integer),e.writeBuffer(t.part.g.data,Ln.Ber.Integer),e.writeBuffer(t.part.y.data,Ln.Ber.Integer),e.writeBuffer(t.part.x.data,Ln.Ber.Integer)}function Efr(e,t){e.writeBuffer(t.part.y.data,Ln.Ber.Integer),e.writeBuffer(t.part.p.data,Ln.Ber.Integer),e.writeBuffer(t.part.q.data,Ln.Ber.Integer),e.writeBuffer(t.part.g.data,Ln.Ber.Integer)}function Sfr(e,t){e.startSequence(),e.writeOID("1.2.840.10045.2.1");var r=t.part.curve.data.toString(),n=HN.curves[r].pkcs8oid;If.string(n,"a known ECDSA named curve"),e.writeOID(n),e.endSequence();var i=q1.ecNormalize(t.part.Q.data,!0);e.writeBuffer(i,Ln.Ber.BitString)}function kfr(e,t){var r=I3.from([1]);e.writeBuffer(r,Ln.Ber.Integer),e.writeBuffer(t.part.d.data,Ln.Ber.OctetString),e.startSequence(160);var n=t.part.curve.data.toString(),i=HN.curves[n].pkcs8oid;If.string(i,"a known ECDSA named curve"),e.writeOID(i),e.endSequence(),e.startSequence(161);var a=q1.ecNormalize(t.part.Q.data,!0);e.writeBuffer(a,Ln.Ber.BitString),e.endSequence()}function Afr(e,t){var r=I3.from([1]);e.writeBuffer(r,Ln.Ber.Integer),e.writeBuffer(t.part.k.data,Ln.Ber.OctetString),e.startSequence(160),e.writeOID("1.3.101.112"),e.endSequence(),e.startSequence(161),q1.writeBitString(e,t.part.A.data),e.endSequence()}function Tfr(e,t){throw new Error("Public keys are not supported for EdDSA PKCS#1")}});var L1=b((ean,EQe)=>{EQe.exports={read:GN.bind(void 0,!1,void 0),readType:GN.bind(void 0,!1),write:Dfr,readPartial:GN.bind(void 0,!0),readInternal:GN,keyTypeToAlg:xQe,algToKeyType:_Qe};var sh=oi(),yQe=Wi().Buffer,R3=Bo(),WN=Ks(),Ofr=Ys(),bQe=co(),wQe=T3();function _Qe(e){if(sh.string(e),e==="ssh-dss")return"dsa";if(e==="ssh-rsa")return"rsa";if(e==="ssh-ed25519")return"ed25519";if(e==="ssh-curve25519")return"curve25519";if(e.match(/^ecdsa-sha2-/))return"ecdsa";throw new Error("Unknown algorithm "+e)}function xQe(e){if(sh.object(e),e.type==="dsa")return"ssh-dss";if(e.type==="rsa")return"ssh-rsa";if(e.type==="ed25519")return"ssh-ed25519";if(e.type==="curve25519")return"ssh-curve25519";if(e.type==="ecdsa")return"ecdsa-sha2-"+e.part.curve.data.toString();throw new Error("Unknown key type "+e.type)}function GN(e,t,r,n){typeof r=="string"&&(r=yQe.from(r)),sh.buffer(r,"buf");var i={},a=i.parts=[],s=new wQe({buffer:r}),o=s.readString();sh.ok(!s.atEnd(),"key must have at least one part"),i.type=_Qe(o);var c=R3.info[i.type].parts.length;for(t&&t==="private"&&(c=R3.privInfo[i.type].parts.length);!s.atEnd()&&a.length<c;)a.push(s.readPart());for(;!e&&!s.atEnd();)a.push(s.readPart());sh.ok(a.length>=1,"key must have at least one part"),sh.ok(e||s.atEnd(),"leftover bytes at end of key");var p=Ofr,f=R3.info[i.type];if((t==="private"||f.parts.length!==a.length)&&(f=R3.privInfo[i.type],p=bQe),sh.strictEqual(f.parts.length,a.length),i.type==="ecdsa"){var d=/^ecdsa-sha2-(.+)$/.exec(o);sh.ok(d!==null),sh.strictEqual(d[1],a[0].data.toString())}for(var h=!0,g=0;g<f.parts.length;++g){var v=a[g];if(v.name=f.parts[g],i.type==="ed25519"&&v.name==="k"&&(v.data=v.data.slice(0,32)),v.name!=="curve"&&f.normalize!==!1){var y;i.type==="ed25519"?y=WN.zeroPadToLength(v.data,32):y=WN.mpNormalize(v.data),y.toString("binary")!==v.data.toString("binary")&&(v.data=y,h=!1)}}return h&&(i._rfc4253Cache=s.toBuffer()),e&&typeof e=="object"&&(e.remainder=s.remainder(),e.consumed=s._offset),new p(i)}function Dfr(e,t){sh.object(e);var r=xQe(e),n,i=R3.info[e.type];bQe.isPrivateKey(e)&&(i=R3.privInfo[e.type]);var a=i.parts,s=new wQe({});for(s.writeString(r),n=0;n<a.length;++n){var o=e.part[a[n]].data;i.normalize!==!1&&(e.type==="ed25519"?o=WN.zeroPadToLength(o,32):o=WN.mpNormalize(o)),e.type==="ed25519"&&a[n]==="k"&&(o=yQe.concat([o,e.part.A.data])),s.writeBuffer(o)}return s.toBuffer()}});var hpe=b((tan,SQe)=>{"use strict";var ppe=A3().lowlevel.crypto_hash,$1=0,dw=function(){this.S=[new Uint32Array([3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946]),new Uint32Array([1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055]),new Uint32Array([3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504]),new Uint32Array([976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462])],this.P=new Uint32Array([608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731])};function YN(e,t,r){return(e[0][t[r+3]]+e[1][t[r+2]]^e[2][t[r+1]])+e[3][t[r]]}dw.prototype.encipher=function(e,t){t===void 0&&(t=new Uint8Array(e.buffer),e.byteOffset!==0&&(t=t.subarray(e.byteOffset))),e[0]^=this.P[0];for(var r=1;r<16;r+=2)e[1]^=YN(this.S,t,0)^this.P[r],e[0]^=YN(this.S,t,4)^this.P[r+1];var n=e[0];e[0]=e[1]^this.P[17],e[1]=n};dw.prototype.decipher=function(e){var t=new Uint8Array(e.buffer);e.byteOffset!==0&&(t=t.subarray(e.byteOffset)),e[0]^=this.P[17];for(var r=16;r>0;r-=2)e[1]^=YN(this.S,t,0)^this.P[r],e[0]^=YN(this.S,t,4)^this.P[r-1];var n=e[0];e[0]=e[1]^this.P[0],e[1]=n};function fw(e,t){var r,n=0;for(r=0;r<4;r++,$1++)$1>=t&&($1=0),n=n<<8|e[$1];return n}dw.prototype.expand0state=function(e,t){var r=new Uint32Array(2),n,i,a=new Uint8Array(r.buffer);for(n=0,$1=0;n<18;n++)this.P[n]^=fw(e,t);for($1=0,n=0;n<18;n+=2)this.encipher(r,a),this.P[n]=r[0],this.P[n+1]=r[1];for(n=0;n<4;n++)for(i=0;i<256;i+=2)this.encipher(r,a),this.S[n][i]=r[0],this.S[n][i+1]=r[1]};dw.prototype.expandstate=function(e,t,r,n){var i=new Uint32Array(2),a,s;for(a=0,$1=0;a<18;a++)this.P[a]^=fw(r,n);for(a=0,$1=0;a<18;a+=2)i[0]^=fw(e,t),i[1]^=fw(e,t),this.encipher(i),this.P[a]=i[0],this.P[a+1]=i[1];for(a=0;a<4;a++)for(s=0;s<256;s+=2)i[0]^=fw(e,t),i[1]^=fw(e,t),this.encipher(i),this.S[a][s]=i[0],this.S[a][s+1]=i[1];$1=0};dw.prototype.enc=function(e,t){for(var r=0;r<t;r++)this.encipher(e.subarray(r*2))};dw.prototype.dec=function(e,t){for(var r=0;r<t;r++)this.decipher(e.subarray(r*2))};var KN=8,fpe=32;function dpe(e,t,r){var n=new dw,i=new Uint32Array(KN),a,s=new Uint8Array([79,120,121,99,104,114,111,109,97,116,105,99,66,108,111,119,102,105,115,104,83,119,97,116,68,121,110,97,109,105,116,101]);for(n.expandstate(t,64,e,64),a=0;a<64;a++)n.expand0state(t,64),n.expand0state(e,64);for(a=0;a<KN;a++)i[a]=fw(s,s.byteLength);for(a=0;a<64;a++)n.enc(i,i.byteLength/8);for(a=0;a<KN;a++)r[4*a+3]=i[a]>>>24,r[4*a+2]=i[a]>>>16,r[4*a+1]=i[a]>>>8,r[4*a+0]=i[a]}function Cfr(e,t,r,n,i,a,s){var o=new Uint8Array(64),c=new Uint8Array(64),p=new Uint8Array(fpe),f=new Uint8Array(fpe),d=new Uint8Array(n+4),h,g,v,y,_,x,A=a;if(s<1||t===0||n===0||a===0||a>p.byteLength*p.byteLength||n>1<<20)return-1;for(y=Math.floor((a+p.byteLength-1)/p.byteLength),v=Math.floor((a+y-1)/y),h=0;h<n;h++)d[h]=r[h];for(ppe(o,e,t),x=1;a>0;x++){for(d[n+0]=x>>>24,d[n+1]=x>>>16,d[n+2]=x>>>8,d[n+3]=x,ppe(c,d,n+4),dpe(o,c,f),h=p.byteLength;h--;)p[h]=f[h];for(h=1;h<s;h++)for(ppe(c,f,f.byteLength),dpe(o,c,f),g=0;g<p.byteLength;g++)p[g]^=f[g];for(v=Math.min(v,a),h=0;h<v&&(_=h*y+(x-1),!(_>=A));h++)i[_]=p[h];a-=h}return 0}SQe.exports={BLOCKS:KN,HASHSIZE:fpe,hash:dpe,pbkdf:Cfr}});var Yk=b((aan,OQe)=>{OQe.exports={read:Rfr,readSSHPrivate:Ffr,write:jfr};var Kk=oi(),ran=Zd(),B1=Wi().Buffer,nan=Bo(),AQe=Ks(),JN=require("crypto"),ian=Ys(),mpe=co(),Pfr=N1(),kQe=L1(),F3=T3(),Ifr=Of(),j3;function Rfr(e,t){return Pfr.read(e,t)}var TQe="openssh-key-v1";function Ffr(e,t,r){t=new F3({buffer:t});var n=t.readCString();Kk.strictEqual(n,TQe,"bad magic string");var i=t.readString(),a=t.readString(),s=t.readBuffer(),o=t.readInt();if(o!==1)throw new Error("OpenSSH-format key file contains multiple keys: this is unsupported.");var c=t.readBuffer();if(e==="public")return Kk.ok(t.atEnd(),"excess bytes left after key"),kQe.read(c);var p=t.readBuffer();Kk.ok(t.atEnd(),"excess bytes left after key");var f=new F3({buffer:s});switch(a){case"none":if(i!=="none")throw new Error('OpenSSH-format key uses KDF "none" but specifies a cipher other than "none"');break;case"bcrypt":var d=f.readBuffer(),h=f.readInt(),g=AQe.opensshCipherInfo(i);if(j3===void 0&&(j3=hpe()),typeof r.passphrase=="string"&&(r.passphrase=B1.from(r.passphrase,"utf-8")),!B1.isBuffer(r.passphrase))throw new Ifr.KeyEncryptedError(r.filename,"OpenSSH");var v=new Uint8Array(r.passphrase),y=new Uint8Array(d),_=new Uint8Array(g.keySize+g.blockSize),x=j3.pbkdf(v,v.length,y,y.length,_,_.length,h);if(x!==0)throw new Error("bcrypt_pbkdf function returned failure, parameters invalid");_=B1.from(_);var A=_.slice(0,g.keySize),D=_.slice(g.keySize,g.keySize+g.blockSize),j=JN.createDecipheriv(g.opensslName,A,D);j.setAutoPadding(!1);var H,F=[];for(j.once("error",function(ve){throw ve.toString().indexOf("bad decrypt")!==-1?new Error("Incorrect passphrase supplied, could not decrypt key"):ve}),j.write(p),j.end();(H=j.read())!==null;)F.push(H);p=B1.concat(F);break;default:throw new Error('OpenSSH-format key uses unknown KDF "'+a+'"')}t=new F3({buffer:p});var z=t.readInt(),P=t.readInt();if(z!==P)throw new Error("Incorrect passphrase supplied, could not decrypt key");var M={},K=kQe.readInternal(M,"private",t.remainder());t.skip(M.consumed);var L=t.readString();return K.comment=L,K}function jfr(e,t){var r;mpe.isPrivateKey(e)?r=e.toPublic():r=e;var n="none",i="none",a=B1.alloc(0),s={blockSize:8},o;t!==void 0&&(o=t.passphrase,typeof o=="string"&&(o=B1.from(o,"utf-8")),o!==void 0&&(Kk.buffer(o,"options.passphrase"),Kk.optionalString(t.cipher,"options.cipher"),n=t.cipher,n===void 0&&(n="aes128-ctr"),s=AQe.opensshCipherInfo(n),i="bcrypt"));var c;if(mpe.isPrivateKey(e)){c=new F3({});var p=JN.randomBytes(4).readUInt32BE(0);c.writeInt(p),c.writeInt(p),c.write(e.toBuffer("rfc4253")),c.writeString(e.comment||"");for(var f=1;c._offset%s.blockSize!==0;)c.writeChar(f++);c=c.toBuffer()}switch(i){case"none":break;case"bcrypt":var d=JN.randomBytes(16),h=16,g=new F3({});g.writeBuffer(d),g.writeInt(h),a=g.toBuffer(),j3===void 0&&(j3=hpe());var v=new Uint8Array(o),y=new Uint8Array(d),_=new Uint8Array(s.keySize+s.blockSize),x=j3.pbkdf(v,v.length,y,y.length,_,_.length,h);if(x!==0)throw new Error("bcrypt_pbkdf function returned failure, parameters invalid");_=B1.from(_);var A=_.slice(0,s.keySize),D=_.slice(s.keySize,s.keySize+s.blockSize),j=JN.createCipheriv(s.opensslName,A,D);j.setAutoPadding(!1);var H,F=[];for(j.once("error",function(N){throw N}),j.write(c),j.end();(H=j.read())!==null;)F.push(H);c=B1.concat(F);break;default:throw new Error("Unsupported kdf "+i)}var z=new F3({});z.writeCString(TQe),z.writeString(n),z.writeString(i),z.writeBuffer(a),z.writeInt(1),z.writeBuffer(r.toBuffer("rfc4253")),c&&z.writeBuffer(c),z=z.toBuffer();var P;mpe.isPrivateKey(e)?P="OPENSSH PRIVATE KEY":P="OPENSSH PUBLIC KEY";var M=z.toString("base64"),K=M.length+M.length/70+18+16+P.length*2+10;z=B1.alloc(K);var L=0;L+=z.write("-----BEGIN "+P+`-----
`,L);for(var ve=0;ve<M.length;){var U=ve+70;U>M.length&&(U=M.length),L+=z.write(M.slice(ve,U),L),z[L++]=10,ve=U}return L+=z.write("-----END "+P+`-----
`,L),z.slice(0,L)}});var N1=b((oan,CQe)=>{CQe.exports={read:Vfr,write:Gfr};var Rf=oi(),N3=Zd(),Nfr=require("crypto"),Xg=Wi().Buffer,san=Bo(),gpe=Ks(),qfr=Ys(),Lfr=co(),vpe=VN(),ype=P3(),$fr=Yk(),Bfr=L1(),DQe=Of(),Mfr="1.2.840.113549.1.5.13",Ufr="1.2.840.113549.1.5.12",bpe={"1.2.840.113549.3.7":"3des-cbc","2.16.840.1.101.3.4.1.2":"aes128-cbc","2.16.840.1.101.3.4.1.42":"aes256-cbc"},zfr={};Object.keys(bpe).forEach(function(e){zfr[bpe[e]]=e});var wpe={"1.2.840.113549.2.7":"sha1","1.2.840.113549.2.9":"sha256","1.2.840.113549.2.11":"sha512"},Hfr={};Object.keys(wpe).forEach(function(e){Hfr[wpe[e]]=e});function Vfr(e,t,r){var n=e;typeof e!="string"&&(Rf.buffer(e,"buf"),e=e.toString("ascii"));for(var i=e.trim().split(/[\r\n]+/g),a,s=-1;!a&&s<i.length;)a=i[++s].match(/[-]+[ ]*BEGIN ([A-Z0-9][A-Za-z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/);Rf.ok(a,"invalid PEM header");for(var o,c=i.length;!o&&c>0;)o=i[--c].match(/[-]+[ ]*END ([A-Z0-9][A-Za-z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/);Rf.ok(o,"invalid PEM footer"),Rf.equal(a[2],o[2]);var p=a[2].toLowerCase(),f;a[1]&&(Rf.equal(a[1],o[1],"PEM header and footer mismatch"),f=a[1].trim()),i=i.slice(s,c+1);for(var d={};i=i.slice(1),a=i[0].match(/^([A-Za-z0-9-]+): (.+)$/),!!a;)d[a[1].toLowerCase()]=a[2];i=i.slice(0,-1).join(""),e=Xg.from(i,"base64");var h,g,v;if(d["proc-type"]){var y=d["proc-type"].split(",");if(y[0]==="4"&&y[1]==="ENCRYPTED")if(typeof t.passphrase=="string"&&(t.passphrase=Xg.from(t.passphrase,"utf-8")),Xg.isBuffer(t.passphrase))y=d["dek-info"].split(","),Rf.ok(y.length===2),h=y[0].toLowerCase(),v=Xg.from(y[1],"hex"),g=gpe.opensslKeyDeriv(h,v,t.passphrase,1).key;else throw new DQe.KeyEncryptedError(t.filename,"PEM")}if(f&&f.toLowerCase()==="encrypted"){var _=new N3.BerReader(e),x;_.readSequence(),_.readSequence(),x=_.offset+_.length;var A=_.readOID();if(A!==Mfr)throw new Error("Unsupported PEM/PKCS8 encryption scheme: "+A);_.readSequence(),_.readSequence();var D=_.offset+_.length,j=_.readOID();if(j!==Ufr)throw new Error("Unsupported PBES2 KDF: "+j);_.readSequence();var H=_.readString(N3.Ber.OctetString,!0),F=_.readInt(),z="sha1";if(_.offset<D){_.readSequence();var P=_.readOID();if(z=wpe[P],z===void 0)throw new Error("Unsupported PBKDF2 hash: "+P)}_._offset=D,_.readSequence();var M=_.readOID();if(h=bpe[M],h===void 0)throw new Error("Unsupported PBES2 cipher: "+M);if(v=_.readString(N3.Ber.OctetString,!0),_._offset=x,e=_.readString(N3.Ber.OctetString,!0),typeof t.passphrase=="string"&&(t.passphrase=Xg.from(t.passphrase,"utf-8")),!Xg.isBuffer(t.passphrase))throw new DQe.KeyEncryptedError(t.filename,"PEM");var K=gpe.opensshCipherInfo(h);h=K.opensslName,g=gpe.pbkdf2(z,H,F,K.keySize,t.passphrase),f=void 0}if(h&&g&&v){var L=Nfr.createDecipheriv(h,g,v),ve,U=[];for(L.once("error",function(re){throw re.toString().indexOf("bad decrypt")!==-1?new Error("Incorrect passphrase supplied, could not decrypt key"):re}),L.write(e),L.end();(ve=L.read())!==null;)U.push(ve);e=Xg.concat(U)}if(f&&f.toLowerCase()==="openssh")return $fr.readSSHPrivate(p,e,t);if(f&&f.toLowerCase()==="ssh2")return Bfr.readType(p,e,t);var N=new N3.BerReader(e);return N.originalInput=n,N.readSequence(),f?(r&&Rf.strictEqual(r,"pkcs1"),vpe.readPkcs1(f,p,N)):(r&&Rf.strictEqual(r,"pkcs8"),ype.readPkcs8(f,p,N))}function Gfr(e,t,r){Rf.object(e);var n={ecdsa:"EC",rsa:"RSA",dsa:"DSA",ed25519:"EdDSA"}[e.type],i,a=new N3.BerWriter;if(Lfr.isPrivateKey(e))r&&r==="pkcs8"?(i="PRIVATE KEY",ype.writePkcs8(a,e)):(r&&Rf.strictEqual(r,"pkcs1"),i=n+" PRIVATE KEY",vpe.writePkcs1(a,e));else if(qfr.isKey(e))r&&r==="pkcs1"?(i=n+" PUBLIC KEY",vpe.writePkcs1(a,e)):(r&&Rf.strictEqual(r,"pkcs8"),i="PUBLIC KEY",ype.writePkcs8(a,e));else throw new Error("key is not a Key or PrivateKey");var s=a.buffer.toString("base64"),o=s.length+s.length/64+18+16+i.length*2+10,c=Xg.alloc(o),p=0;p+=c.write("-----BEGIN "+i+`-----
`,p);for(var f=0;f<s.length;){var d=f+64;d>s.length&&(d=s.length),p+=c.write(s.slice(f,d),p),c[p++]=10,f=d}return p+=c.write("-----END "+i+`-----
`,p),c.slice(0,p)}});var xpe=b((pan,IQe)=>{IQe.exports={read:Yfr,write:Jfr};var Jk=oi(),_pe=Wi().Buffer,q3=L1(),uan=Ks(),Wfr=Ys(),can=co(),lan=Yk(),Kfr=/^([a-z0-9-]+)[ \t]+([a-zA-Z0-9+\/]+[=]*)([ \t]+([^ \t][^\n]*[\n]*)?)?$/,PQe=/^([a-z0-9-]+)[ \t\n]+([a-zA-Z0-9+\/][a-zA-Z0-9+\/ \t\n=]*)([^a-zA-Z0-9+\/ \t\n=].*)?$/;function Yfr(e,t){typeof e!="string"&&(Jk.buffer(e,"buf"),e=e.toString("ascii"));var r=e.trim().replace(/[\\\r]/g,""),n=r.match(Kfr);n||(n=r.match(PQe)),Jk.ok(n,"key must match regex");var i=q3.algToKeyType(n[1]),a=_pe.from(n[2],"base64"),s,o={};if(n[4])try{s=q3.read(a)}catch{n=r.match(PQe),Jk.ok(n,"key must match regex"),a=_pe.from(n[2],"base64"),s=q3.readInternal(o,"public",a)}else s=q3.readInternal(o,"public",a);if(Jk.strictEqual(i,s.type),n[4]&&n[4].length>0)s.comment=n[4];else if(o.consumed){var c=n[2]+(n[3]?n[3]:""),p=Math.ceil(o.consumed/3)*4;c=c.slice(0,p-2).replace(/[^a-zA-Z0-9+\/=]/g,"")+c.slice(p-2);var f=o.consumed%3;for(f>0&&c.slice(p-1,p)!=="="&&p--;c.slice(p,p+1)==="=";)p++;var d=c.slice(p);d=d.replace(/[\r\n]/g," ").replace(/^\s+/,""),d.match(/^[a-zA-Z0-9]/)&&(s.comment=d)}return s}function Jfr(e,t){if(Jk.object(e),!Wfr.isKey(e))throw new Error("Must be a public key");var r=[],n=q3.keyTypeToAlg(e);r.push(n);var i=q3.write(e);return r.push(i.toString("base64")),e.comment&&r.push(e.comment),_pe.from(r.join(" "))}});var XN=b((han,FQe)=>{FQe.exports={read:Qfr,write:adr};var Xfr=oi(),hw=Wi().Buffer,Epe=Ys(),Spe=co(),ps=Ks(),fan=T3(),dan=UN(),RQe={"rsa-sha1":5,"rsa-sha256":8,"rsa-sha512":10,"ecdsa-p256-sha256":13,"ecdsa-p384-sha384":14},wl={};Object.keys(RQe).forEach(function(e){wl[RQe[e]]=e.toUpperCase()});function Qfr(e,t){typeof e!="string"&&(Xfr.buffer(e,"buf"),e=e.toString("ascii"));var r=e.split(`
`);if(r[0].match(/^Private-key-format\: v1/)){var n=r[1].split(" "),i=parseInt(n[1],10),a=n[2];if(!wl[i])throw new Error("Unsupported algorithm: "+a);return tdr(i,r.slice(2))}for(var s=0;r[s].match(/^\;/);)s++;if((r[s].match(/\. IN KEY /)||r[s].match(/\. IN DNSKEY /))&&r[s+1].length===0)return Zfr(r[s]);throw new Error("Cannot parse dnssec key")}function Zfr(e){var t=e.split(" "),r=parseInt(t[5],10);if(!wl[r])throw new Error("Unsupported algorithm: "+r);var n=t.slice(6,t.length).join(),i=hw.from(n,"base64");if(wl[r].match(/^RSA-/)){var a=i.readUInt8(0);if(a!=3&&a!=1)throw new Error("Cannot parse dnssec key: unsupported exponent length");var s=i.slice(1,a+1);s=ps.mpNormalize(s);var o=i.slice(1+a);o=ps.mpNormalize(o);var c={type:"rsa",parts:[]};return c.parts.push({name:"e",data:s}),c.parts.push({name:"n",data:o}),new Epe(c)}if(wl[r]==="ECDSA-P384-SHA384"||wl[r]==="ECDSA-P256-SHA256"){var p="nistp384",f=384;wl[r].match(/^ECDSA-P256-SHA256/)&&(p="nistp256",f=256);var d={type:"ecdsa",curve:p,size:f,parts:[{name:"curve",data:hw.from(p)},{name:"Q",data:ps.ecNormalize(i)}]};return new Epe(d)}throw new Error("Unsupported algorithm: "+wl[r])}function Qg(e){return hw.from(e.split(" ")[1],"base64")}function edr(e){var t={};e.forEach(function(n){n.split(" ")[0]==="Modulus:"?t.n=Qg(n):n.split(" ")[0]==="PublicExponent:"?t.e=Qg(n):n.split(" ")[0]==="PrivateExponent:"?t.d=Qg(n):n.split(" ")[0]==="Prime1:"?t.p=Qg(n):n.split(" ")[0]==="Prime2:"?t.q=Qg(n):n.split(" ")[0]==="Exponent1:"?t.dmodp=Qg(n):n.split(" ")[0]==="Exponent2:"?t.dmodq=Qg(n):n.split(" ")[0]==="Coefficient:"&&(t.iqmp=Qg(n))});var r={type:"rsa",parts:[{name:"e",data:ps.mpNormalize(t.e)},{name:"n",data:ps.mpNormalize(t.n)},{name:"d",data:ps.mpNormalize(t.d)},{name:"p",data:ps.mpNormalize(t.p)},{name:"q",data:ps.mpNormalize(t.q)},{name:"dmodp",data:ps.mpNormalize(t.dmodp)},{name:"dmodq",data:ps.mpNormalize(t.dmodq)},{name:"iqmp",data:ps.mpNormalize(t.iqmp)}]};return new Spe(r)}function tdr(e,t){if(wl[e].match(/^RSA-/))return edr(t);if(wl[e]==="ECDSA-P384-SHA384"||wl[e]==="ECDSA-P256-SHA256"){var r=hw.from(t[0].split(" ")[1],"base64"),n="nistp384",i=384;wl[e]==="ECDSA-P256-SHA256"&&(n="nistp256",i=256);var a=ps.publicFromPrivateECDSA(n,r),s=a.part.Q.data,o={type:"ecdsa",curve:n,size:i,parts:[{name:"curve",data:hw.from(n)},{name:"d",data:r},{name:"Q",data:s}]};return new Spe(o)}throw new Error("Unsupported algorithm: "+wl[e])}function L3(e){var t=e.getFullYear()+"",r=e.getMonth()+1,n=t+r+e.getUTCDate();return n+=""+e.getUTCHours()+e.getUTCMinutes(),n+=e.getUTCSeconds(),n}function rdr(e){if(!e||!e.hashAlgo||e.hashAlgo==="sha1")return"5 (RSASHA1)";if(e.hashAlgo==="sha256")return"8 (RSASHA256)";if(e.hashAlgo==="sha512")return"10 (RSASHA512)";throw new Error("Unknown or unsupported hash: "+e.hashAlgo)}function ndr(e,t){(!e.part.dmodp||!e.part.dmodq)&&ps.addRSAMissing(e);var r="";r+=`Private-key-format: v1.3
`,r+="Algorithm: "+rdr(t)+`
`;var n=ps.mpDenormalize(e.part.n.data);r+="Modulus: "+n.toString("base64")+`
`;var i=ps.mpDenormalize(e.part.e.data);r+="PublicExponent: "+i.toString("base64")+`
`;var a=ps.mpDenormalize(e.part.d.data);r+="PrivateExponent: "+a.toString("base64")+`
`;var s=ps.mpDenormalize(e.part.p.data);r+="Prime1: "+s.toString("base64")+`
`;var o=ps.mpDenormalize(e.part.q.data);r+="Prime2: "+o.toString("base64")+`
`;var c=ps.mpDenormalize(e.part.dmodp.data);r+="Exponent1: "+c.toString("base64")+`
`;var p=ps.mpDenormalize(e.part.dmodq.data);r+="Exponent2: "+p.toString("base64")+`
`;var f=ps.mpDenormalize(e.part.iqmp.data);r+="Coefficient: "+f.toString("base64")+`
`;var d=new Date;return r+="Created: "+L3(d)+`
`,r+="Publish: "+L3(d)+`
`,r+="Activate: "+L3(d)+`
`,hw.from(r,"ascii")}function idr(e,t){var r="";if(r+=`Private-key-format: v1.3
`,e.curve==="nistp256")r+=`Algorithm: 13 (ECDSAP256SHA256)
`;else if(e.curve==="nistp384")r+=`Algorithm: 14 (ECDSAP384SHA384)
`;else throw new Error("Unsupported curve");var n=e.part.d.data.toString("base64");r+="PrivateKey: "+n+`
`;var i=new Date;return r+="Created: "+L3(i)+`
`,r+="Publish: "+L3(i)+`
`,r+="Activate: "+L3(i)+`
`,hw.from(r,"ascii")}function adr(e,t){if(Spe.isPrivateKey(e)){if(e.type==="rsa")return ndr(e,t);if(e.type==="ecdsa")return idr(e,t);throw new Error("Unsupported algorithm: "+e.type)}else throw Epe.isKey(e)?new Error('Format "dnssec" only supports writing private keys'):new Error("key is not a Key or PrivateKey")}});var kpe=b((gan,NQe)=>{NQe.exports={read:odr,write:udr};var ZN=oi(),jQe=Wi().Buffer,eq=L1(),sdr=Ys(),man=Of();function odr(e,t){for(var r=e.toString("ascii").split(/[\r\n]+/),n=!1,i,a=0;a<r.length;)if(i=QN(r[a++]),i&&i[0].toLowerCase()==="putty-user-key-file-2"){n=!0;break}if(!n)throw new Error("No PuTTY format first line found");var s=i[1];i=QN(r[a++]),ZN.equal(i[0].toLowerCase(),"encryption"),i=QN(r[a++]),ZN.equal(i[0].toLowerCase(),"comment");var o=i[1];i=QN(r[a++]),ZN.equal(i[0].toLowerCase(),"public-lines");var c=parseInt(i[1],10);if(!isFinite(c)||c<0||c>r.length)throw new Error("Invalid public-lines count");var p=jQe.from(r.slice(a,a+c).join(""),"base64"),f=eq.algToKeyType(s),d=eq.read(p);if(d.type!==f)throw new Error("Outer key algorithm mismatch");return d.comment=o,d}function QN(e){var t=e.indexOf(":");if(t===-1)return null;var r=e.slice(0,t);for(++t;e[t]===" ";)++t;var n=e.slice(t);return[r,n]}function udr(e,t){if(ZN.object(e),!sdr.isKey(e))throw new Error("Must be a public key");var r=eq.keyTypeToAlg(e),n=eq.write(e),i=e.comment||"",a=n.toString("base64"),s=cdr(a,64);return s.unshift("Public-Lines: "+s.length),s.unshift("Comment: "+i),s.unshift("Encryption: none"),s.unshift("PuTTY-User-Key-File-2: "+r),jQe.from(s.join(`
`)+`
`)}function cdr(e,t){for(var r=[],n=0;n<e.length;)r.push(e.slice(n,n+64)),n+=64;return r}});var Ope=b((wan,MQe)=>{MQe.exports={read:ddr,write:vdr};var ldr=oi(),pdr=Wi().Buffer,van=Ks(),yan=Ys(),ban=co(),qQe=N1(),Ape=xpe(),fdr=L1(),LQe=XN(),$Qe=kpe(),Tpe="Private-key-format: v1";function ddr(e,t){if(typeof e=="string"){if(e.trim().match(/^[-]+[ ]*BEGIN/))return qQe.read(e,t);if(e.match(/^\s*ssh-[a-z]/)||e.match(/^\s*ecdsa-/))return Ape.read(e,t);if(e.match(/^putty-user-key-file-2:/i))return $Qe.read(e,t);if(BQe(e))return LQe.read(e,t);e=pdr.from(e,"binary")}else{if(ldr.buffer(e),gdr(e))return qQe.read(e,t);if(mdr(e))return Ape.read(e,t);if(hdr(e))return $Qe.read(e,t);if(BQe(e))return LQe.read(e,t)}if(e.readUInt32BE(0)<e.length)return fdr.read(e,t);throw new Error("Failed to auto-detect format of key")}function hdr(e){for(var t=0;t<e.length&&(e[t]===32||e[t]===10||e[t]===9);)++t;return t+22<=e.length&&e.slice(t,t+22).toString("ascii").toLowerCase()==="putty-user-key-file-2:"}function mdr(e){for(var t=0;t<e.length&&(e[t]===32||e[t]===10||e[t]===9);)++t;return t+4<=e.length&&e.slice(t,t+4).toString("ascii")==="ssh-"||t+6<=e.length&&e.slice(t,t+6).toString("ascii")==="ecdsa-"}function gdr(e){for(var t=0;t<e.length&&(e[t]===32||e[t]===10);)++t;if(e[t]!==45)return!1;for(;t<e.length&&e[t]===45;)++t;for(;t<e.length&&e[t]===32;)++t;return!(t+5>e.length||e.slice(t,t+5).toString("ascii")!=="BEGIN")}function BQe(e){if(e.length<=Tpe.length)return!1;var t=e.slice(0,Tpe.length);if(t.toString("ascii")===Tpe)return!0;typeof e!="string"&&(e=e.toString("ascii"));for(var r=e.split(`
`),n=0;r[n].match(/^\;/);)n++;return!!(r[n].toString("ascii").match(/\. IN KEY /)||r[n].toString("ascii").match(/\. IN DNSKEY /))}function vdr(e,t){throw new Error('"auto" format cannot be used for writing')}});var co=b((San,GQe)=>{GQe.exports=Js;var Mo=oi(),Dpe=Wi().Buffer,ydr=Bo(),UQe=require("crypto"),_an=$3(),bdr=th(),Cpe=Of(),wdr=require("util"),Xk=Ks(),VQe=UN(),_dr=VQe.generateECDSA,xdr=VQe.generateED25519,zQe=ope(),HQe=A3(),Ppe=Ys(),xan=Cpe.InvalidAlgorithmError,Edr=Cpe.KeyParseError,Ean=Cpe.KeyEncryptedError,gu={};gu.auto=Ope();gu.pem=N1();gu.pkcs1=VN();gu.pkcs8=P3();gu.rfc4253=L1();gu["ssh-private"]=Yk();gu.openssh=gu["ssh-private"];gu.ssh=gu["ssh-private"];gu.dnssec=XN();function Js(e){Mo.object(e,"options"),Ppe.call(this,e),this._pubCache=void 0}wdr.inherits(Js,Ppe);Js.formats=gu;Js.prototype.toBuffer=function(e,t){return e===void 0&&(e="pkcs1"),Mo.string(e,"format"),Mo.object(gu[e],"formats[format]"),Mo.optionalObject(t,"options"),gu[e].write(this,t)};Js.prototype.hash=function(e,t){return this.toPublic().hash(e,t)};Js.prototype.fingerprint=function(e,t){return this.toPublic().fingerprint(e,t)};Js.prototype.toPublic=function(){if(this._pubCache)return this._pubCache;for(var e=ydr.info[this.type],t=[],r=0;r<e.parts.length;++r){var n=e.parts[r];t.push(this.part[n])}return this._pubCache=new Ppe({type:this.type,source:this,parts:t}),this.comment&&(this._pubCache.comment=this.comment),this._pubCache};Js.prototype.derive=function(e){Mo.string(e,"type");var t,r,n;if(this.type==="ed25519"&&e==="curve25519")return t=this.part.k.data,t[0]===0&&(t=t.slice(1)),n=HQe.box.keyPair.fromSecretKey(new Uint8Array(t)),r=Dpe.from(n.publicKey),new Js({type:"curve25519",parts:[{name:"A",data:Xk.mpNormalize(r)},{name:"k",data:Xk.mpNormalize(t)}]});if(this.type==="curve25519"&&e==="ed25519")return t=this.part.k.data,t[0]===0&&(t=t.slice(1)),n=HQe.sign.keyPair.fromSeed(new Uint8Array(t)),r=Dpe.from(n.publicKey),new Js({type:"ed25519",parts:[{name:"A",data:Xk.mpNormalize(r)},{name:"k",data:Xk.mpNormalize(t)}]});throw new Error("Key derivation not supported from "+this.type+" to "+e)};Js.prototype.createVerify=function(e){return this.toPublic().createVerify(e)};Js.prototype.createSign=function(e){if(e===void 0&&(e=this.defaultHashAlgorithm()),Mo.string(e,"hash algorithm"),this.type==="ed25519"&&zQe!==void 0)return new zQe.Signer(this,e);if(this.type==="curve25519")throw new Error("Curve25519 keys are not suitable for signing or verification");var t,r,n;try{r=e.toUpperCase(),t=UQe.createSign(r)}catch(c){n=c}(t===void 0||n instanceof Error&&n.message.match(/Unknown message digest/))&&(r="RSA-",r+=e.toUpperCase(),t=UQe.createSign(r)),Mo.ok(t,"failed to create verifier");var i=t.sign.bind(t),a=this.toBuffer("pkcs1"),s=this.type,o=this.curve;return t.sign=function(){var c=i(a);return typeof c=="string"&&(c=Dpe.from(c,"binary")),c=bdr.parse(c,s,"asn1"),c.hashAlgorithm=e,c.curve=o,c},t};Js.parse=function(e,t,r){typeof e!="string"&&Mo.buffer(e,"data"),t===void 0&&(t="auto"),Mo.string(t,"format"),typeof r=="string"&&(r={filename:r}),Mo.optionalObject(r,"options"),r===void 0&&(r={}),Mo.optionalString(r.filename,"options.filename"),r.filename===void 0&&(r.filename="(unnamed)"),Mo.object(gu[t],"formats[format]");try{var n=gu[t].read(e,r);return Mo.ok(n instanceof Js,"key is not a private key"),n.comment||(n.comment=r.filename),n}catch(i){throw i.name==="KeyEncryptedError"?i:new Edr(r.filename,t,i)}};Js.isPrivateKey=function(e,t){return Xk.isCompatible(e,Js,t)};Js.generate=function(e,t){switch(t===void 0&&(t={}),Mo.object(t,"options"),e){case"ecdsa":return t.curve===void 0&&(t.curve="nistp256"),Mo.string(t.curve,"options.curve"),_dr(t.curve);case"ed25519":return xdr();default:throw new Error('Key generation not supported with key type "'+e+'"')}};Js.prototype._sshpkApiVersion=[1,6];Js._oldVersionDetect=function(e){return Mo.func(e.toPublic),Mo.func(e.createSign),e.derive?[1,3]:e.defaultHashAlgorithm?[1,2]:e.formats.auto?[1,1]:[1,0]}});var B3=b((Pan,JQe)=>{JQe.exports=La;var Ff=oi(),kan=Bo(),Aan=require("crypto"),Tan=$3(),Oan=th(),Dan=Of(),Can=require("util"),Sdr=Ks(),vu=Zd(),KQe=Wi().Buffer,WQe=/^([*]|[a-z0-9][a-z0-9\-]{0,62})(?:\.([*]|[a-z0-9][a-z0-9\-]{0,62}))*$/i,ma={};ma.cn="2.5.4.3";ma.o="2.5.4.10";ma.ou="2.5.4.11";ma.l="2.5.4.7";ma.s="2.5.4.8";ma.c="2.5.4.6";ma.sn="2.5.4.4";ma.postalCode="2.5.4.17";ma.serialNumber="2.5.4.5";ma.street="2.5.4.9";ma.x500UniqueIdentifier="2.5.4.45";ma.role="2.5.4.72";ma.telephoneNumber="2.5.4.20";ma.description="2.5.4.13";ma.dc="0.9.2342.19200300.100.1.25";ma.uid="0.9.2342.19200300.100.1.1";ma.mail="0.9.2342.19200300.100.1.3";ma.title="2.5.4.12";ma.gn="2.5.4.42";ma.initials="2.5.4.43";ma.pseudonym="2.5.4.65";ma.emailAddress="1.2.840.113549.1.9.1";var YQe={};Object.keys(ma).forEach(function(e){YQe[ma[e]]=e});function La(e){var t=this;if(Ff.object(e,"options"),Ff.arrayOfObject(e.components,"options.components"),this.components=e.components,this.componentLookup={},this.components.forEach(function(r){r.name&&!r.oid&&(r.oid=ma[r.name]),r.oid&&!r.name&&(r.name=YQe[r.oid]),t.componentLookup[r.name]===void 0&&(t.componentLookup[r.name]=[]),t.componentLookup[r.name].push(r)}),this.componentLookup.cn&&this.componentLookup.cn.length>0&&(this.cn=this.componentLookup.cn[0].value),Ff.optionalString(e.type,"options.type"),e.type===void 0)this.components.length===1&&this.componentLookup.cn&&this.componentLookup.cn.length===1&&this.componentLookup.cn[0].value.match(WQe)?(this.type="host",this.hostname=this.componentLookup.cn[0].value):this.componentLookup.dc&&this.components.length===this.componentLookup.dc.length?(this.type="host",this.hostname=this.componentLookup.dc.map(function(r){return r.value}).join(".")):this.componentLookup.uid&&this.components.length===this.componentLookup.uid.length?(this.type="user",this.uid=this.componentLookup.uid[0].value):this.componentLookup.cn&&this.componentLookup.cn.length===1&&this.componentLookup.cn[0].value.match(WQe)?(this.type="host",this.hostname=this.componentLookup.cn[0].value):this.componentLookup.uid&&this.componentLookup.uid.length===1?(this.type="user",this.uid=this.componentLookup.uid[0].value):this.componentLookup.mail&&this.componentLookup.mail.length===1?(this.type="email",this.email=this.componentLookup.mail[0].value):this.componentLookup.cn&&this.componentLookup.cn.length===1?(this.type="user",this.uid=this.componentLookup.cn[0].value):this.type="unknown";else if(this.type=e.type,this.type==="host")this.hostname=e.hostname;else if(this.type==="user")this.uid=e.uid;else if(this.type==="email")this.email=e.email;else throw new Error("Unknown type "+this.type)}La.prototype.toString=function(){return this.components.map(function(e){var t=e.name.toUpperCase();t=t.replace(/=/g,"\\=");var r=e.value;return r=r.replace(/,/g,"\\,"),t+"="+r}).join(", ")};La.prototype.get=function(e,t){Ff.string(e,"name");var r=this.componentLookup[e];if(!(r===void 0||r.length===0)){if(!t&&r.length>1)throw new Error("Multiple values for attribute "+e);return t?r.map(function(n){return n.value}):r[0].value}};La.prototype.toArray=function(e){return this.components.map(function(t){return{name:t.name,value:t.value}})};var kdr=/[^a-zA-Z0-9 '(),+.\/:=?-]/,Adr=/[^\x00-\x7f]/;La.prototype.toAsn1=function(e,t){e.startSequence(t),this.components.forEach(function(r){if(e.startSequence(vu.Ber.Constructor|vu.Ber.Set),e.startSequence(),e.writeOID(r.oid),r.asn1type===vu.Ber.Utf8String||r.value.match(Adr)){var n=KQe.from(r.value,"utf8");e.writeBuffer(n,vu.Ber.Utf8String)}else if(r.asn1type===vu.Ber.IA5String||r.value.match(kdr))e.writeString(r.value,vu.Ber.IA5String);else{var i=vu.Ber.PrintableString;r.asn1type!==void 0&&(i=r.asn1type),e.writeString(r.value,i)}e.endSequence(),e.endSequence()}),e.endSequence()};function Tdr(e,t){if(e==="**"||t==="**")return!0;var r=e.split("."),n=t.split(".");if(r.length!==n.length)return!1;for(var i=0;i<r.length;++i)if(!(r[i]==="*"||n[i]==="*")&&r[i]!==n[i])return!1;return!0}La.prototype.equals=function(e){if(!La.isIdentity(e,[1,0])||e.components.length!==this.components.length)return!1;for(var t=0;t<this.components.length;++t)if(this.components[t].oid!==e.components[t].oid||!Tdr(this.components[t].value,e.components[t].value))return!1;return!0};La.forHost=function(e){return Ff.string(e,"hostname"),new La({type:"host",hostname:e,components:[{name:"cn",value:e}]})};La.forUser=function(e){return Ff.string(e,"uid"),new La({type:"user",uid:e,components:[{name:"uid",value:e}]})};La.forEmail=function(e){return Ff.string(e,"email"),new La({type:"email",email:e,components:[{name:"mail",value:e}]})};La.parseDN=function(e){Ff.string(e,"dn");for(var t=[""],r=0,n=e;n.length>0;){var i;if((i=/^,/.exec(n))!==null)t[++r]="",n=n.slice(i[0].length);else if((i=/^\\,/.exec(n))!==null)t[r]+=",",n=n.slice(i[0].length);else if((i=/^\\./.exec(n))!==null)t[r]+=i[0],n=n.slice(i[0].length);else if((i=/^[^\\,]+/.exec(n))!==null)t[r]+=i[0],n=n.slice(i[0].length);else throw new Error("Failed to parse DN")}var a=t.map(function(s){s=s.trim();for(var o=s.indexOf("=");o>0&&s.charAt(o-1)==="\\";)o=s.indexOf("=",o+1);if(o===-1)throw new Error("Failed to parse DN");var c=s.slice(0,o).toLowerCase().replace(/\\=/g,"="),p=s.slice(o+1);return{name:c,value:p}});return new La({components:a})};La.fromArray=function(e){return Ff.arrayOfObject(e,"components"),e.forEach(function(t){if(Ff.object(t,"component"),Ff.string(t.name,"component.name"),!KQe.isBuffer(t.value)&&typeof t.value!="string")throw new Error("Invalid component value")}),new La({components:e})};La.parseAsn1=function(e,t){var r=[];e.readSequence(t);for(var n=e.offset+e.length;e.offset<n;){e.readSequence(vu.Ber.Constructor|vu.Ber.Set);var i=e.offset+e.length;e.readSequence();var a=e.readOID(),s=e.peek(),o;switch(s){case vu.Ber.PrintableString:case vu.Ber.IA5String:case vu.Ber.OctetString:case vu.Ber.T61String:o=e.readString(s);break;case vu.Ber.Utf8String:o=e.readString(s,!0),o=o.toString("utf8");break;case vu.Ber.CharacterString:case vu.Ber.BMPString:o=e.readString(s,!0),o=o.toString("utf16le");break;default:throw new Error("Unknown asn1 type "+s)}r.push({oid:a,asn1type:s,value:o}),e._offset=i}return e._offset=n,new La({components:r})};La.isIdentity=function(e,t){return Sdr.isCompatible(e,La,t)};La.prototype._sshpkApiVersion=[1,0];La._oldVersionDetect=function(e){return[1,0]}});var iZe=b((Ran,nZe)=>{nZe.exports={read:Fdr,verify:Rdr,sign:jdr,signAsync:Ndr,write:qdr,fromBuffer:tZe,toBuffer:rq};var mw=oi(),Zg=T3(),Odr=require("crypto"),tq=Wi().Buffer,Rpe=Bo(),Ddr=Ys(),Ian=co(),Ipe=B3(),ZQe=L1(),Cdr=th(),Pdr=Ks(),Idr=M3();function Rdr(e,t){return!1}var gw={user:1,host:2};Object.keys(gw).forEach(function(e){gw[gw[e]]=e});var eZe=/^ecdsa-sha2-([^@-]+)-cert-v01@openssh.com$/;function Fdr(e,t){tq.isBuffer(e)&&(e=e.toString("ascii"));var r=e.trim().split(/[ \t\n]+/g);if(r.length<2||r.length>3)throw new Error("Not a valid SSH certificate line");var n=r[0],i=r[1];return i=tq.from(i,"base64"),tZe(i,n)}function tZe(e,t,r){var n=new Zg({buffer:e}),i=n.readString();if(t!==void 0&&i!==t)throw new Error("SSH certificate algorithm mismatch");t===void 0&&(t=i);var a={};a.signatures={},a.signatures.openssh={},a.signatures.openssh.nonce=n.readBuffer();var s={},o=s.parts=[];s.type=Ldr(t);for(var c=Rpe.info[s.type].parts.length;o.length<c;)o.push(n.readPart());mw.ok(o.length>=1,"key must have at least one part");var p=Rpe.info[s.type];if(s.type==="ecdsa"){var f=eZe.exec(t);mw.ok(f!==null),mw.strictEqual(f[1],o[0].data.toString())}for(var d=0;d<p.parts.length;++d)if(o[d].name=p.parts[d],o[d].name!=="curve"&&p.normalize!==!1){var h=o[d];h.data=Pdr.mpNormalize(h.data)}a.subjectKey=new Ddr(s),a.serial=n.readInt64();var g=gw[n.readInt()];mw.string(g,"valid cert type"),a.signatures.openssh.keyId=n.readString();for(var v=[],y=n.readBuffer(),_=new Zg({buffer:y});!_.atEnd();)v.push(_.readString());v.length===0&&(v=["*"]),a.subjects=v.map(function(F){if(g==="user")return Ipe.forUser(F);if(g==="host")return Ipe.forHost(F);throw new Error("Unknown identity type "+g)}),a.validFrom=XQe(n.readInt64()),a.validUntil=XQe(n.readInt64());for(var x=[],A=new Zg({buffer:n.readBuffer()}),D;!A.atEnd();)D={critical:!0},D.name=A.readString(),D.data=A.readBuffer(),x.push(D);for(A=new Zg({buffer:n.readBuffer()});!A.atEnd();)D={critical:!1},D.name=A.readString(),D.data=A.readBuffer(),x.push(D);a.signatures.openssh.exts=x,n.readBuffer();var j=n.readBuffer();a.issuerKey=ZQe.read(j),a.issuer=Ipe.forHost("**");var H=n.readBuffer();return a.signatures.openssh.signature=Cdr.parse(H,a.issuerKey.type,"ssh"),r!==void 0&&(r.remainder=n.remainder(),r.consumed=n._offset),new Idr(a)}function XQe(e){var t=e.readUInt32BE(0)*4294967296;t+=e.readUInt32BE(4);var r=new Date;return r.setTime(t*1e3),r.sourceInt64=e,r}function QQe(e){if(e.sourceInt64!==void 0)return e.sourceInt64;var t=Math.round(e.getTime()/1e3),r=Math.floor(t/4294967296),n=Math.floor(t%4294967296),i=tq.alloc(8);return i.writeUInt32BE(r,0),i.writeUInt32BE(n,4),i}function jdr(e,t){e.signatures.openssh===void 0&&(e.signatures.openssh={});try{var r=rq(e,!0)}catch{return delete e.signatures.openssh,!1}var n=e.signatures.openssh,i=void 0;(t.type==="rsa"||t.type==="dsa")&&(i="sha1");var a=t.createSign(i);return a.write(r),n.signature=a.sign(),!0}function Ndr(e,t,r){e.signatures.openssh===void 0&&(e.signatures.openssh={});try{var n=rq(e,!0)}catch(a){delete e.signatures.openssh,r(a);return}var i=e.signatures.openssh;t(n,function(a,s){if(a){r(a);return}try{s.toBuffer("ssh")}catch(o){r(o);return}i.signature=s,r()})}function qdr(e,t){t===void 0&&(t={});var r=rq(e),n=rZe(e.subjectKey)+" "+r.toString("base64");return t.comment&&(n=n+" "+t.comment),n}function rq(e,t){mw.object(e.signatures.openssh,"signature for openssh format");var r=e.signatures.openssh;r.nonce===void 0&&(r.nonce=Odr.randomBytes(16));var n=new Zg({});n.writeString(rZe(e.subjectKey)),n.writeBuffer(r.nonce);var i=e.subjectKey,a=Rpe.info[i.type];a.parts.forEach(function(f){n.writePart(i.part[f])}),n.writeInt64(e.serial);var s=e.subjects[0].type;mw.notStrictEqual(s,"unknown"),e.subjects.forEach(function(f){mw.strictEqual(f.type,s)}),s=gw[s],n.writeInt(s),r.keyId===void 0&&(r.keyId=e.subjects[0].type+"_"+(e.subjects[0].uid||e.subjects[0].hostname)),n.writeString(r.keyId);var o=new Zg({});e.subjects.forEach(function(f){s===gw.host?o.writeString(f.hostname):s===gw.user&&o.writeString(f.uid)}),n.writeBuffer(o.toBuffer()),n.writeInt64(QQe(e.validFrom)),n.writeInt64(QQe(e.validUntil));var c=r.exts;c===void 0&&(c=[]);var p=new Zg({});return c.forEach(function(f){f.critical===!0&&(p.writeString(f.name),p.writeBuffer(f.data))}),n.writeBuffer(p.toBuffer()),p=new Zg({}),c.forEach(function(f){f.critical!==!0&&(p.writeString(f.name),p.writeBuffer(f.data))}),n.writeBuffer(p.toBuffer()),n.writeBuffer(tq.alloc(0)),o=ZQe.write(e.issuerKey),n.writeBuffer(o),t||n.writeBuffer(r.signature.toBuffer("ssh")),n.toBuffer()}function Ldr(e){if(e==="ssh-rsa-cert-v01@openssh.com")return"rsa";if(e==="ssh-dss-cert-v01@openssh.com")return"dsa";if(e.match(eZe))return"ecdsa";if(e==="ssh-ed25519-cert-v01@openssh.com")return"ed25519";throw new Error("Unsupported cert type "+e)}function rZe(e){if(e.type==="rsa")return"ssh-rsa-cert-v01@openssh.com";if(e.type==="dsa")return"ssh-dss-cert-v01@openssh.com";if(e.type==="ecdsa")return"ecdsa-sha2-"+e.curve+"-cert-v01@openssh.com";if(e.type==="ed25519")return"ssh-ed25519-cert-v01@openssh.com";throw new Error("Unsupported key type "+e.type)}});var Npe=b((Lan,lZe)=>{lZe.exports={read:zdr,verify:Udr,sign:Xdr,signAsync:Qdr,write:Zdr};var oh=oi(),Tn=Zd(),jpe=Wi().Buffer,Fan=Bo(),oZe=Ks(),jan=Ys(),Nan=co(),qan=N1(),Qk=B3(),$dr=th(),Bdr=M3(),uZe=P3();function Mdr(e,t){return oh.strictEqual(e.peek(),Tn.Ber.Integer,t+" is not an Integer"),oZe.mpNormalize(e.readString(Tn.Ber.Integer,!0))}function Udr(e,t){var r=e.signatures.x509;oh.object(r,"x509 signature");var n=r.algo.split("-");if(n[0]!==t.type)return!1;var i=r.cache;if(i===void 0){var a=new Tn.BerWriter;iq(e,a),i=a.buffer}var s=t.createVerify(n[1]);return s.write(i),s.verify(r.signature)}function yu(e){return Tn.Ber.Context|Tn.Ber.Constructor|e}function U3(e){return Tn.Ber.Context|e}var jf={"rsa-md5":"1.2.840.113549.1.1.4","rsa-sha1":"1.2.840.113549.1.1.5","rsa-sha256":"1.2.840.113549.1.1.11","rsa-sha384":"1.2.840.113549.1.1.12","rsa-sha512":"1.2.840.113549.1.1.13","dsa-sha1":"1.2.840.10040.4.3","dsa-sha256":"2.16.840.1.101.3.4.3.2","ecdsa-sha1":"1.2.840.10045.4.1","ecdsa-sha256":"1.2.840.10045.4.3.2","ecdsa-sha384":"1.2.840.10045.4.3.3","ecdsa-sha512":"1.2.840.10045.4.3.4","ed25519-sha512":"1.3.101.112"};Object.keys(jf).forEach(function(e){jf[jf[e]]=e});jf["1.3.14.3.2.3"]="rsa-md5";jf["1.3.14.3.2.29"]="rsa-sha1";var cp={issuerKeyId:"2.5.29.35",altName:"2.5.29.17",basicConstraints:"2.5.29.19",keyUsage:"2.5.29.15",extKeyUsage:"2.5.29.37"};function zdr(e,t){typeof e=="string"&&(e=jpe.from(e,"binary")),oh.buffer(e,"buf");var r=new Tn.BerReader(e);if(r.readSequence(),Math.abs(r.length-r.remain)>1)throw new Error("DER sequence does not contain whole byte stream");var n=r.offset;r.readSequence();var i=r.offset+r.length,a=i;if(r.peek()===yu(0)){r.readSequence(yu(0));var s=r.readInt();oh.ok(s<=3,"only x.509 versions up to v3 supported")}var o={};o.signatures={};var c=o.signatures.x509={};c.extras={},o.serial=Mdr(r,"serial"),r.readSequence();var p=r.offset+r.length,f=r.readOID(),d=jf[f];if(d===void 0)throw new Error("unknown signature algorithm "+f);if(r._offset=p,o.issuer=Qk.parseAsn1(r),r.readSequence(),o.validFrom=aZe(r),o.validUntil=aZe(r),o.subjects=[Qk.parseAsn1(r)],r.readSequence(),p=r.offset+r.length,o.subjectKey=uZe.readPkcs8(void 0,"public",r),r._offset=p,r.peek()===yu(1)&&(r.readSequence(yu(1)),c.extras.issuerUniqueID=e.slice(r.offset,r.offset+r.length),r._offset+=r.length),r.peek()===yu(2)&&(r.readSequence(yu(2)),c.extras.subjectUniqueID=e.slice(r.offset,r.offset+r.length),r._offset+=r.length),r.peek()===yu(3)){r.readSequence(yu(3));var h=r.offset+r.length;for(r.readSequence();r.offset<h;)Hdr(o,e,r);oh.strictEqual(r.offset,h)}oh.strictEqual(r.offset,i),r.readSequence(),p=r.offset+r.length;var g=r.readOID(),v=jf[g];if(v===void 0)throw new Error("unknown signature algorithm "+g);r._offset=p;var y=r.readString(Tn.Ber.BitString,!0);y[0]===0&&(y=y.slice(1));var _=v.split("-");return c.signature=$dr.parse(y,_[0],"asn1"),c.signature.hashAlgorithm=_[1],c.algo=v,c.cache=e.slice(n,a),new Bdr(o)}function aZe(e){if(e.peek()===Tn.Ber.UTCTime)return Gdr(e.readString(Tn.Ber.UTCTime));if(e.peek()===Tn.Ber.GeneralizedTime)return Kdr(e.readString(Tn.Ber.GeneralizedTime));throw new Error("Unsupported date format")}function sZe(e,t){t.getUTCFullYear()>=2050||t.getUTCFullYear()<1950?e.writeString(Jdr(t),Tn.Ber.GeneralizedTime):e.writeString(Ydr(t),Tn.Ber.UTCTime)}var _l={OtherName:yu(0),RFC822Name:U3(1),DNSName:U3(2),X400Address:yu(3),DirectoryName:yu(4),EDIPartyName:yu(5),URI:U3(6),IPAddress:U3(7),OID:U3(8)},nq={serverAuth:"1.3.6.1.5.5.7.3.1",clientAuth:"1.3.6.1.5.5.7.3.2",codeSigning:"1.3.6.1.5.5.7.3.3",joyentDocker:"1.3.6.1.4.1.38678.1.4.1",joyentCmon:"1.3.6.1.4.1.38678.1.4.2"},cZe={};Object.keys(nq).forEach(function(e){cZe[nq[e]]=e});var Fpe=["signature","identity","keyEncryption","encryption","keyAgreement","ca","crl"];function Hdr(e,t,r){r.readSequence();var n=r.offset+r.length,i=r.readOID(),a,s=e.signatures.x509;s.extras.exts||(s.extras.exts=[]);var o;switch(r.peek()===Tn.Ber.Boolean&&(o=r.readBoolean()),i){case cp.basicConstraints:r.readSequence(Tn.Ber.OctetString),r.readSequence();var c=r.offset+r.length,p=!1;r.peek()===Tn.Ber.Boolean&&(p=r.readBoolean()),e.purposes===void 0&&(e.purposes=[]),p===!0&&e.purposes.push("ca");var f={oid:i,critical:o};r.offset<c&&r.peek()===Tn.Ber.Integer&&(f.pathLen=r.readInt()),s.extras.exts.push(f);break;case cp.extKeyUsage:r.readSequence(Tn.Ber.OctetString),r.readSequence(),e.purposes===void 0&&(e.purposes=[]);for(var d=r.offset+r.length;r.offset<d;){var h=r.readOID();e.purposes.push(cZe[h]||h)}e.purposes.indexOf("serverAuth")!==-1&&e.purposes.indexOf("clientAuth")===-1?e.subjects.forEach(function(A){A.type!=="host"&&(A.type="host",A.hostname=A.uid||A.email||A.components[0].value)}):e.purposes.indexOf("clientAuth")!==-1&&e.purposes.indexOf("serverAuth")===-1&&e.subjects.forEach(function(A){A.type!=="user"&&(A.type="user",A.uid=A.hostname||A.email||A.components[0].value)}),s.extras.exts.push({oid:i,critical:o});break;case cp.keyUsage:r.readSequence(Tn.Ber.OctetString);var g=r.readString(Tn.Ber.BitString,!0),v=ehr(g,Fpe);v.forEach(function(A){e.purposes===void 0&&(e.purposes=[]),e.purposes.indexOf(A)===-1&&e.purposes.push(A)}),s.extras.exts.push({oid:i,critical:o,bits:g});break;case cp.altName:r.readSequence(Tn.Ber.OctetString),r.readSequence();for(var y=r.offset+r.length;r.offset<y;)switch(r.peek()){case _l.OtherName:case _l.EDIPartyName:r.readSequence(),r._offset+=r.length;break;case _l.OID:r.readOID(_l.OID);break;case _l.RFC822Name:var _=r.readString(_l.RFC822Name);a=Qk.forEmail(_),e.subjects[0].equals(a)||e.subjects.push(a);break;case _l.DirectoryName:r.readSequence(_l.DirectoryName),a=Qk.parseAsn1(r),e.subjects[0].equals(a)||e.subjects.push(a);break;case _l.DNSName:var x=r.readString(_l.DNSName);a=Qk.forHost(x),e.subjects[0].equals(a)||e.subjects.push(a);break;default:r.readString(r.peek());break}s.extras.exts.push({oid:i,critical:o});break;default:s.extras.exts.push({oid:i,critical:o,data:r.readString(Tn.Ber.OctetString,!0)});break}r._offset=n}var Vdr=/^([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})?Z$/;function Gdr(e){var t=e.match(Vdr);oh.ok(t,"timestamps must be in UTC");var r=new Date,n=r.getUTCFullYear(),i=Math.floor(n/100)*100,a=parseInt(t[1],10);return n%100<50&&a>=60?a+=i-1:a+=i,r.setUTCFullYear(a,parseInt(t[2],10)-1,parseInt(t[3],10)),r.setUTCHours(parseInt(t[4],10),parseInt(t[5],10)),t[6]&&t[6].length>0&&r.setUTCSeconds(parseInt(t[6],10)),r}var Wdr=/^([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})?Z$/;function Kdr(e){var t=e.match(Wdr);oh.ok(t);var r=new Date;return r.setUTCFullYear(parseInt(t[1],10),parseInt(t[2],10)-1,parseInt(t[3],10)),r.setUTCHours(parseInt(t[4],10),parseInt(t[5],10)),t[6]&&t[6].length>0&&r.setUTCSeconds(parseInt(t[6],10)),r}function lp(e,t){t===void 0&&(t=2);for(var r=""+e;r.length<t;)r="0"+r;return r}function Ydr(e){var t="";return t+=lp(e.getUTCFullYear()%100),t+=lp(e.getUTCMonth()+1),t+=lp(e.getUTCDate()),t+=lp(e.getUTCHours()),t+=lp(e.getUTCMinutes()),t+=lp(e.getUTCSeconds()),t+="Z",t}function Jdr(e){var t="";return t+=lp(e.getUTCFullYear(),4),t+=lp(e.getUTCMonth()+1),t+=lp(e.getUTCDate()),t+=lp(e.getUTCHours()),t+=lp(e.getUTCMinutes()),t+=lp(e.getUTCSeconds()),t+="Z",t}function Xdr(e,t){e.signatures.x509===void 0&&(e.signatures.x509={});var r=e.signatures.x509;if(r.algo=t.type+"-"+t.defaultHashAlgorithm(),jf[r.algo]===void 0)return!1;var n=new Tn.BerWriter;iq(e,n);var i=n.buffer;r.cache=i;var a=t.createSign();return a.write(i),e.signatures.x509.signature=a.sign(),!0}function Qdr(e,t,r){e.signatures.x509===void 0&&(e.signatures.x509={});var n=e.signatures.x509,i=new Tn.BerWriter;iq(e,i);var a=i.buffer;n.cache=a,t(a,function(s,o){if(s){r(s);return}if(n.algo=o.type+"-"+o.hashAlgorithm,jf[n.algo]===void 0){r(new Error('Invalid signing algorithm "'+n.algo+'"'));return}n.signature=o,r()})}function Zdr(e,t){var r=e.signatures.x509;oh.object(r,"x509 signature");var n=new Tn.BerWriter;n.startSequence(),r.cache?(n._ensure(r.cache.length),r.cache.copy(n._buf,n._offset),n._offset+=r.cache.length):iq(e,n),n.startSequence(),n.writeOID(jf[r.algo]),r.algo.match(/^rsa-/)&&n.writeNull(),n.endSequence();var i=r.signature.toBuffer("asn1"),a=jpe.alloc(i.length+1);return a[0]=0,i.copy(a,1),n.writeBuffer(a,Tn.Ber.BitString),n.endSequence(),n.buffer}function iq(e,t){var r=e.signatures.x509;oh.object(r,"x509 signature"),t.startSequence(),t.startSequence(yu(0)),t.writeInt(2),t.endSequence(),t.writeBuffer(oZe.mpNormalize(e.serial),Tn.Ber.Integer),t.startSequence(),t.writeOID(jf[r.algo]),r.algo.match(/^rsa-/)&&t.writeNull(),t.endSequence(),e.issuer.toAsn1(t),t.startSequence(),sZe(t,e.validFrom),sZe(t,e.validUntil),t.endSequence();var n=e.subjects[0],i=e.subjects.slice(1);if(n.toAsn1(t),uZe.writePkcs8(t,e.subjectKey),r.extras&&r.extras.issuerUniqueID&&t.writeBuffer(r.extras.issuerUniqueID,yu(1)),r.extras&&r.extras.subjectUniqueID&&t.writeBuffer(r.extras.subjectUniqueID,yu(2)),i.length>0||n.type==="host"||e.purposes!==void 0&&e.purposes.length>0||r.extras&&r.extras.exts){t.startSequence(yu(3)),t.startSequence();var a=[];e.purposes!==void 0&&e.purposes.length>0&&(a.push({oid:cp.basicConstraints,critical:!0}),a.push({oid:cp.keyUsage,critical:!0}),a.push({oid:cp.extKeyUsage,critical:!0})),a.push({oid:cp.altName}),r.extras&&r.extras.exts&&(a=r.extras.exts);for(var s=0;s<a.length;++s){if(t.startSequence(),t.writeOID(a[s].oid),a[s].critical!==void 0&&t.writeBoolean(a[s].critical),a[s].oid===cp.altName){t.startSequence(Tn.Ber.OctetString),t.startSequence(),n.type==="host"&&t.writeString(n.hostname,U3(2));for(var o=0;o<i.length;++o)i[o].type==="host"?t.writeString(i[o].hostname,_l.DNSName):i[o].type==="email"?t.writeString(i[o].email,_l.RFC822Name):(t.startSequence(_l.DirectoryName),i[o].toAsn1(t),t.endSequence());t.endSequence(),t.endSequence()}else if(a[s].oid===cp.basicConstraints){t.startSequence(Tn.Ber.OctetString),t.startSequence();var c=e.purposes.indexOf("ca")!==-1,p=a[s].pathLen;t.writeBoolean(c),p!==void 0&&t.writeInt(p),t.endSequence(),t.endSequence()}else if(a[s].oid===cp.extKeyUsage)t.startSequence(Tn.Ber.OctetString),t.startSequence(),e.purposes.forEach(function(d){if(d!=="ca"&&Fpe.indexOf(d)===-1){var h=d;nq[d]!==void 0&&(h=nq[d]),t.writeOID(h)}}),t.endSequence(),t.endSequence();else if(a[s].oid===cp.keyUsage){if(t.startSequence(Tn.Ber.OctetString),a[s].bits!==void 0)t.writeBuffer(a[s].bits,Tn.Ber.BitString);else{var f=thr(e.purposes,Fpe);t.writeBuffer(f,Tn.Ber.BitString)}t.endSequence()}else t.writeBuffer(a[s].data,Tn.Ber.OctetString);t.endSequence()}t.endSequence(),t.endSequence()}t.endSequence()}function ehr(e,t){for(var r=8*(e.length-1)-e[0],n={},i=0;i<r;++i){var a=1+Math.floor(i/8),s=7-i%8,o=1<<s,c=(e[a]&o)!==0,p=t[i];c&&typeof p=="string"&&(n[p]=!0)}return Object.keys(n)}function thr(e,t){var r=t.length,n=Math.ceil(r/8),i=n*8-r,a=jpe.alloc(1+n);a[0]=i;for(var s=0;s<r;++s){var o=1+Math.floor(s/8),c=7-s%8,p=1<<c,f=t[s];if(f!==void 0){var d=e.indexOf(f)!==-1;d&&(a[o]|=p)}}return a}});var dZe=b((Kan,fZe)=>{var aq=Npe();fZe.exports={read:rhr,verify:aq.verify,sign:aq.sign,write:nhr};var qpe=oi(),$an=Zd(),pZe=Wi().Buffer,Ban=Bo(),Man=Ks(),Uan=Ys(),zan=co(),Han=N1(),Van=B3(),Gan=th(),Wan=M3();function rhr(e,t){typeof e!="string"&&(qpe.buffer(e,"buf"),e=e.toString("ascii"));for(var r=e.trim().split(/[\r\n]+/g),n,i=-1;!n&&i<r.length;)n=r[++i].match(/[-]+[ ]*BEGIN CERTIFICATE[ ]*[-]+/);qpe.ok(n,"invalid PEM header");for(var a,s=r.length;!a&&s>0;)a=r[--s].match(/[-]+[ ]*END CERTIFICATE[ ]*[-]+/);qpe.ok(a,"invalid PEM footer"),r=r.slice(i,s+1);for(var o={};r=r.slice(1),n=r[0].match(/^([A-Za-z0-9-]+): (.+)$/),!!n;)o[n[1].toLowerCase()]=n[2];return r=r.slice(0,-1).join(""),e=pZe.from(r,"base64"),aq.read(e,t)}function nhr(e,t){var r=aq.write(e,t),n="CERTIFICATE",i=r.toString("base64"),a=i.length+i.length/64+18+16+n.length*2+10,s=pZe.alloc(a),o=0;o+=s.write("-----BEGIN "+n+`-----
`,o);for(var c=0;c<i.length;){var p=c+64;p>i.length&&(p=i.length),o+=s.write(i.slice(c,p),o),s[o++]=10,c=p}return o+=s.write("-----END "+n+`-----
`,o),s.slice(0,o)}});var M3=b((Xan,gZe)=>{gZe.exports=za;var ui=oi(),hZe=Wi().Buffer,ihr=Bo(),ahr=require("crypto"),shr=$3(),Yan=th(),mZe=Of(),Jan=require("util"),Rc=Ks(),sq=Ys(),oq=co(),Zk=B3(),Nf={};Nf.openssh=iZe();Nf.x509=Npe();Nf.pem=dZe();var ohr=mZe.CertificateParseError,uhr=mZe.InvalidAlgorithmError;function za(e){ui.object(e,"options"),ui.arrayOfObject(e.subjects,"options.subjects"),Rc.assertCompatible(e.subjects[0],Zk,[1,0],"options.subjects"),Rc.assertCompatible(e.subjectKey,sq,[1,0],"options.subjectKey"),Rc.assertCompatible(e.issuer,Zk,[1,0],"options.issuer"),e.issuerKey!==void 0&&Rc.assertCompatible(e.issuerKey,sq,[1,0],"options.issuerKey"),ui.object(e.signatures,"options.signatures"),ui.buffer(e.serial,"options.serial"),ui.date(e.validFrom,"options.validFrom"),ui.date(e.validUntil,"optons.validUntil"),ui.optionalArrayOfString(e.purposes,"options.purposes"),this._hashCache={},this.subjects=e.subjects,this.issuer=e.issuer,this.subjectKey=e.subjectKey,this.issuerKey=e.issuerKey,this.signatures=e.signatures,this.serial=e.serial,this.validFrom=e.validFrom,this.validUntil=e.validUntil,this.purposes=e.purposes}za.formats=Nf;za.prototype.toBuffer=function(e,t){return e===void 0&&(e="x509"),ui.string(e,"format"),ui.object(Nf[e],"formats[format]"),ui.optionalObject(t,"options"),Nf[e].write(this,t)};za.prototype.toString=function(e,t){return e===void 0&&(e="pem"),this.toBuffer(e,t).toString()};za.prototype.fingerprint=function(e){e===void 0&&(e="sha256"),ui.string(e,"algorithm");var t={type:"certificate",hash:this.hash(e),algorithm:e};return new shr(t)};za.prototype.hash=function(e){if(ui.string(e,"algorithm"),e=e.toLowerCase(),ihr.hashAlgs[e]===void 0)throw new uhr(e);if(this._hashCache[e])return this._hashCache[e];var t=ahr.createHash(e).update(this.toBuffer("x509")).digest();return this._hashCache[e]=t,t};za.prototype.isExpired=function(e){return e===void 0&&(e=new Date),!(e.getTime()>=this.validFrom.getTime()&&e.getTime()<this.validUntil.getTime())};za.prototype.isSignedBy=function(e){return Rc.assertCompatible(e,za,[1,0],"issuer"),!this.issuer.equals(e.subjects[0])||this.issuer.purposes&&this.issuer.purposes.length>0&&this.issuer.purposes.indexOf("ca")===-1?!1:this.isSignedByKey(e.subjectKey)};za.prototype.getExtension=function(e){ui.string(e,"keyOrOid");var t=this.getExtensions().filter(function(r){return r.format==="x509"?r.oid===e:r.format==="openssh"?r.name===e:!1})[0];return t};za.prototype.getExtensions=function(){var e=[],t=this.signatures.x509;t&&t.extras&&t.extras.exts&&t.extras.exts.forEach(function(n){n.format="x509",e.push(n)});var r=this.signatures.openssh;return r&&r.exts&&r.exts.forEach(function(n){n.format="openssh",e.push(n)}),e};za.prototype.isSignedByKey=function(e){if(Rc.assertCompatible(e,sq,[1,2],"issuerKey"),this.issuerKey!==void 0)return this.issuerKey.fingerprint("sha512").matches(e);var t=Object.keys(this.signatures)[0],r=Nf[t].verify(this,e);return r&&(this.issuerKey=e),r};za.prototype.signWith=function(e){Rc.assertCompatible(e,oq,[1,2],"key");for(var t=Object.keys(Nf),r=!1,n=0;n<t.length;++n)if(t[n]!=="pem"){var i=Nf[t[n]].sign(this,e);i===!0&&(r=!0)}if(!r)throw new Error("Failed to sign the certificate for any available certificate formats")};za.createSelfSigned=function(e,t,r){var n;Array.isArray(e)?n=e:n=[e],ui.arrayOfObject(n),n.forEach(function(h){Rc.assertCompatible(h,Zk,[1,0],"subject")}),Rc.assertCompatible(t,oq,[1,2],"private key"),ui.optionalObject(r,"options"),r===void 0&&(r={}),ui.optionalObject(r.validFrom,"options.validFrom"),ui.optionalObject(r.validUntil,"options.validUntil");var i=r.validFrom,a=r.validUntil;if(i===void 0&&(i=new Date),a===void 0){ui.optionalNumber(r.lifetime,"options.lifetime");var s=r.lifetime;s===void 0&&(s=10*365*24*3600),a=new Date,a.setTime(a.getTime()+s*1e3)}ui.optionalBuffer(r.serial,"options.serial");var o=r.serial;o===void 0&&(o=hZe.from("0000000000000001","hex"));var c=r.purposes;if(c===void 0&&(c=[]),c.indexOf("signature")===-1&&c.push("signature"),c.indexOf("ca")===-1&&c.push("ca"),c.indexOf("crl")===-1&&c.push("crl"),c.length<=3){var p=n.filter(function(h){return h.type==="host"}),f=n.filter(function(h){return h.type==="user"});p.length>0&&c.indexOf("serverAuth")===-1&&c.push("serverAuth"),f.length>0&&c.indexOf("clientAuth")===-1&&c.push("clientAuth"),(f.length>0||p.length>0)&&(c.indexOf("keyAgreement")===-1&&c.push("keyAgreement"),t.type==="rsa"&&c.indexOf("encryption")===-1&&c.push("encryption"))}var d=new za({subjects:n,issuer:n[0],subjectKey:t.toPublic(),issuerKey:t.toPublic(),signatures:{},serial:o,validFrom:i,validUntil:a,purposes:c});return d.signWith(t),d};za.create=function(e,t,r,n,i){var a;Array.isArray(e)?a=e:a=[e],ui.arrayOfObject(a),a.forEach(function(v){Rc.assertCompatible(v,Zk,[1,0],"subject")}),Rc.assertCompatible(t,sq,[1,0],"key"),oq.isPrivateKey(t)&&(t=t.toPublic()),Rc.assertCompatible(r,Zk,[1,0],"issuer"),Rc.assertCompatible(n,oq,[1,2],"issuer key"),ui.optionalObject(i,"options"),i===void 0&&(i={}),ui.optionalObject(i.validFrom,"options.validFrom"),ui.optionalObject(i.validUntil,"options.validUntil");var s=i.validFrom,o=i.validUntil;if(s===void 0&&(s=new Date),o===void 0){ui.optionalNumber(i.lifetime,"options.lifetime");var c=i.lifetime;c===void 0&&(c=10*365*24*3600),o=new Date,o.setTime(o.getTime()+c*1e3)}ui.optionalBuffer(i.serial,"options.serial");var p=i.serial;p===void 0&&(p=hZe.from("0000000000000001","hex"));var f=i.purposes;f===void 0&&(f=[]),f.indexOf("signature")===-1&&f.push("signature"),i.ca===!0&&(f.indexOf("ca")===-1&&f.push("ca"),f.indexOf("crl")===-1&&f.push("crl"));var d=a.filter(function(v){return v.type==="host"}),h=a.filter(function(v){return v.type==="user"});d.length>0&&f.indexOf("serverAuth")===-1&&f.push("serverAuth"),h.length>0&&f.indexOf("clientAuth")===-1&&f.push("clientAuth"),(h.length>0||d.length>0)&&(f.indexOf("keyAgreement")===-1&&f.push("keyAgreement"),t.type==="rsa"&&f.indexOf("encryption")===-1&&f.push("encryption"));var g=new za({subjects:a,issuer:r,subjectKey:t,issuerKey:n.toPublic(),signatures:{},serial:p,validFrom:s,validUntil:o,purposes:f});return g.signWith(n),g};za.parse=function(e,t,r){typeof e!="string"&&ui.buffer(e,"data"),t===void 0&&(t="auto"),ui.string(t,"format"),typeof r=="string"&&(r={filename:r}),ui.optionalObject(r,"options"),r===void 0&&(r={}),ui.optionalString(r.filename,"options.filename"),r.filename===void 0&&(r.filename="(unnamed)"),ui.object(Nf[t],"formats[format]");try{var n=Nf[t].read(e,r);return n}catch(i){throw new ohr(r.filename,t,i)}};za.isCertificate=function(e,t){return Rc.isCompatible(e,za,t)};za.prototype._sshpkApiVersion=[1,1];za._oldVersionDetect=function(e){return[1,0]}});var $3=b((Qan,SZe)=>{SZe.exports=U1;var pp=oi(),uq=Wi().Buffer,xZe=Bo(),vZe=require("crypto"),EZe=Of(),yZe=Ys(),bZe=co(),chr=M3(),eA=Ks(),M1=EZe.FingerprintFormatError,Lpe=EZe.InvalidAlgorithmError;function U1(e){if(pp.object(e,"options"),pp.string(e.type,"options.type"),pp.buffer(e.hash,"options.hash"),pp.string(e.algorithm,"options.algorithm"),this.algorithm=e.algorithm.toLowerCase(),xZe.hashAlgs[this.algorithm]!==!0)throw new Lpe(this.algorithm);this.hash=e.hash,this.type=e.type,this.hashType=e.hashType}U1.prototype.toString=function(e){switch(e===void 0&&(this.algorithm==="md5"||this.hashType==="spki"?e="hex":e="base64"),pp.string(e),e){case"hex":return this.hashType==="spki"?this.hash.toString("hex"):lhr(this.hash.toString("hex"));case"base64":return this.hashType==="spki"?this.hash.toString("base64"):fhr(this.algorithm,this.hash.toString("base64"));default:throw new M1(void 0,e)}};U1.prototype.matches=function(e){pp.object(e,"key or certificate"),this.type==="key"&&this.hashType!=="ssh"?(eA.assertCompatible(e,yZe,[1,7],"key with spki"),bZe.isPrivateKey(e)&&eA.assertCompatible(e,bZe,[1,6],"privatekey with spki support")):this.type==="key"?eA.assertCompatible(e,yZe,[1,0],"key"):eA.assertCompatible(e,chr,[1,0],"certificate");var t=e.hash(this.algorithm,this.hashType),r=vZe.createHash(this.algorithm).update(t).digest("base64");return this.hash2===void 0&&(this.hash2=vZe.createHash(this.algorithm).update(this.hash).digest("base64")),this.hash2===r};var wZe=/^[A-Za-z0-9+\/=]+$/,_Ze=/^[a-fA-F0-9]+$/;U1.parse=function(e,t){pp.string(e,"fingerprint");var r,n,i;Array.isArray(t)&&(i=t,t={}),pp.optionalObject(t,"options"),t===void 0&&(t={}),t.enAlgs!==void 0&&(i=t.enAlgs),t.algorithms!==void 0&&(i=t.algorithms),pp.optionalArrayOfString(i,"algorithms");var a="ssh";t.hashType!==void 0&&(a=t.hashType),pp.string(a,"options.hashType");var s=e.split(":");if(s.length==2){if(r=s[0].toLowerCase(),!wZe.test(s[1]))throw new M1(e);try{n=uq.from(s[1],"base64")}catch{throw new M1(e)}}else if(s.length>2){if(r="md5",s[0].toLowerCase()==="md5"&&(s=s.slice(1)),s=s.map(function(o){for(;o.length<2;)o="0"+o;if(o.length>2)throw new M1(e);return o}),s=s.join(""),!_Ze.test(s)||s.length%2!==0)throw new M1(e);try{n=uq.from(s,"hex")}catch{throw new M1(e)}}else{if(_Ze.test(e))n=uq.from(e,"hex");else if(wZe.test(e))n=uq.from(e,"base64");else throw new M1(e);switch(n.length){case 32:r="sha256";break;case 16:r="md5";break;case 20:r="sha1";break;case 64:r="sha512";break;default:throw new M1(e)}t.hashType===void 0&&(a="spki")}if(r===void 0)throw new M1(e);if(xZe.hashAlgs[r]===void 0)throw new Lpe(r);if(i!==void 0&&(i=i.map(function(o){return o.toLowerCase()}),i.indexOf(r)===-1))throw new Lpe(r);return new U1({algorithm:r,hash:n,type:t.type||"key",hashType:a})};function lhr(e){return e.replace(/(.{2})(?=.)/g,"$1:")}function phr(e){return e.replace(/=*$/,"")}function fhr(e,t){return e.toUpperCase()+":"+phr(t)}U1.isFingerprint=function(e,t){return eA.isCompatible(e,U1,t)};U1.prototype._sshpkApiVersion=[1,2];U1._oldVersionDetect=function(e){return pp.func(e.toString),pp.func(e.matches),[1,0]}});var Ys=b((Zan,DZe)=>{DZe.exports=bu;var As=oi(),$pe=Bo(),Bpe=require("crypto"),dhr=$3(),kZe=th(),hhr=UN().DiffieHellman,AZe=Of(),TZe=Ks(),mhr=co(),Mpe;try{Mpe=ope()}catch{}var OZe=AZe.InvalidAlgorithmError,ghr=AZe.KeyParseError,Ts={};Ts.auto=Ope();Ts.pem=N1();Ts.pkcs1=VN();Ts.pkcs8=P3();Ts.rfc4253=L1();Ts.ssh=xpe();Ts["ssh-private"]=Yk();Ts.openssh=Ts["ssh-private"];Ts.dnssec=XN();Ts.putty=kpe();Ts.ppk=Ts.putty;function bu(e){As.object(e,"options"),As.arrayOfObject(e.parts,"options.parts"),As.string(e.type,"options.type"),As.optionalString(e.comment,"options.comment");var t=$pe.info[e.type];if(typeof t!="object")throw new OZe(e.type);for(var r={},n=0;n<e.parts.length;++n){var i=e.parts[n];r[i.name]=i}this.type=e.type,this.parts=e.parts,this.part=r,this.comment=void 0,this.source=e.source,this._rfc4253Cache=e._rfc4253Cache,this._hashCache={};var a;if(this.curve=void 0,this.type==="ecdsa"){var s=this.part.curve.data.toString();this.curve=s,a=$pe.curves[s].size}else if(this.type==="ed25519"||this.type==="curve25519")a=256,this.curve="curve25519";else{var o=this.part[t.sizePart];a=o.data.length,a=a*8-TZe.countZeros(o.data)}this.size=a}bu.formats=Ts;bu.prototype.toBuffer=function(e,t){return e===void 0&&(e="ssh"),As.string(e,"format"),As.object(Ts[e],"formats[format]"),As.optionalObject(t,"options"),e==="rfc4253"?(this._rfc4253Cache===void 0&&(this._rfc4253Cache=Ts.rfc4253.write(this)),this._rfc4253Cache):Ts[e].write(this,t)};bu.prototype.toString=function(e,t){return this.toBuffer(e,t).toString()};bu.prototype.hash=function(e,t){if(As.string(e,"algorithm"),As.optionalString(t,"type"),t===void 0&&(t="ssh"),e=e.toLowerCase(),$pe.hashAlgs[e]===void 0)throw new OZe(e);var r=e+"||"+t;if(this._hashCache[r])return this._hashCache[r];var n;if(t==="ssh")n=this.toBuffer("rfc4253");else if(t==="spki")n=Ts.pkcs8.pkcs8ToBuffer(this);else throw new Error("Hash type "+t+" not supported");var i=Bpe.createHash(e).update(n).digest();return this._hashCache[r]=i,i};bu.prototype.fingerprint=function(e,t){e===void 0&&(e="sha256"),t===void 0&&(t="ssh"),As.string(e,"algorithm"),As.string(t,"type");var r={type:"key",hash:this.hash(e,t),algorithm:e,hashType:t};return new dhr(r)};bu.prototype.defaultHashAlgorithm=function(){var e="sha1";return this.type==="rsa"&&(e="sha256"),this.type==="dsa"&&this.size>1024&&(e="sha256"),this.type==="ed25519"&&(e="sha512"),this.type==="ecdsa"&&(this.size<=256?e="sha256":this.size<=384?e="sha384":e="sha512"),e};bu.prototype.createVerify=function(e){if(e===void 0&&(e=this.defaultHashAlgorithm()),As.string(e,"hash algorithm"),this.type==="ed25519"&&Mpe!==void 0)return new Mpe.Verifier(this,e);if(this.type==="curve25519")throw new Error("Curve25519 keys are not suitable for signing or verification");var t,r,n;try{r=e.toUpperCase(),t=Bpe.createVerify(r)}catch(c){n=c}(t===void 0||n instanceof Error&&n.message.match(/Unknown message digest/))&&(r="RSA-",r+=e.toUpperCase(),t=Bpe.createVerify(r)),As.ok(t,"failed to create verifier");var i=t.verify.bind(t),a=this.toBuffer("pkcs8"),s=this.curve,o=this;return t.verify=function(c,p){if(kZe.isSignature(c,[2,0]))return c.type!==o.type||c.hashAlgorithm&&c.hashAlgorithm!==e||c.curve&&o.type==="ecdsa"&&c.curve!==s?!1:i(a,c.toBuffer("asn1"));if(typeof c=="string"||Buffer.isBuffer(c))return i(a,c,p);throw kZe.isSignature(c,[1,0])?new Error("signature was created by too old a version of sshpk and cannot be verified"):new TypeError("signature must be a string, Buffer, or Signature object")},t};bu.prototype.createDiffieHellman=function(){if(this.type==="rsa")throw new Error("RSA keys do not support Diffie-Hellman");return new hhr(this)};bu.prototype.createDH=bu.prototype.createDiffieHellman;bu.parse=function(e,t,r){typeof e!="string"&&As.buffer(e,"data"),t===void 0&&(t="auto"),As.string(t,"format"),typeof r=="string"&&(r={filename:r}),As.optionalObject(r,"options"),r===void 0&&(r={}),As.optionalString(r.filename,"options.filename"),r.filename===void 0&&(r.filename="(unnamed)"),As.object(Ts[t],"formats[format]");try{var n=Ts[t].read(e,r);return n instanceof mhr&&(n=n.toPublic()),n.comment||(n.comment=r.filename),n}catch(i){throw i.name==="KeyEncryptedError"?i:new ghr(r.filename,t,i)}};bu.isKey=function(e,t){return TZe.isCompatible(e,bu,t)};bu.prototype._sshpkApiVersion=[1,7];bu._oldVersionDetect=function(e){return As.func(e.toBuffer),As.func(e.fingerprint),e.createDH?[1,4]:e.defaultHashAlgorithm?[1,3]:e.formats.auto?[1,2]:e.formats.pkcs1?[1,1]:[1,0]}});var lq=b((esn,RZe)=>{var CZe=Ys(),PZe=$3(),IZe=th(),Upe=co(),cq=M3(),z3=B3(),H3=Of();RZe.exports={Key:CZe,parseKey:CZe.parse,Fingerprint:PZe,parseFingerprint:PZe.parse,Signature:IZe,parseSignature:IZe.parse,PrivateKey:Upe,parsePrivateKey:Upe.parse,generatePrivateKey:Upe.generate,Certificate:cq,parseCertificate:cq.parse,createSelfSignedCertificate:cq.createSelfSigned,createCertificate:cq.create,Identity:z3,identityFromDN:z3.parseDN,identityForHost:z3.forHost,identityForUser:z3.forUser,identityForEmail:z3.forEmail,identityFromArray:z3.fromArray,FingerprintFormatError:H3.FingerprintFormatError,InvalidAlgorithmError:H3.InvalidAlgorithmError,KeyParseError:H3.KeyParseError,SignatureParseError:H3.SignatureParseError,KeyEncryptedError:H3.KeyEncryptedError,CertificateParseError:H3.CertificateParseError}});var rA=b((tsn,qZe)=>{var zpe=oi(),Hpe=lq(),FZe=require("util"),jZe={sha1:!0,sha256:!0,sha512:!0},NZe={rsa:!0,dsa:!0,ecdsa:!0};function tA(e,t){Error.captureStackTrace&&Error.captureStackTrace(this,t||tA),this.message=e,this.name=t.name}FZe.inherits(tA,Error);function V3(e){tA.call(this,e,V3)}FZe.inherits(V3,tA);function vhr(e){var t=e.toLowerCase().split("-");if(t.length!==2)throw new V3(t[0].toUpperCase()+" is not a valid algorithm");if(t[0]!=="hmac"&&!NZe[t[0]])throw new V3(t[0].toUpperCase()+" type keys are not supported");if(!jZe[t[1]])throw new V3(t[1].toUpperCase()+" is not a supported hash algorithm");return t}qZe.exports={HASH_ALGOS:jZe,PK_ALGOS:NZe,HttpSignatureError:tA,InvalidAlgorithmError:V3,validateAlgorithm:vhr,sshKeyToPEM:function(t){zpe.string(t,"ssh_key");var r=Hpe.parseKey(t,"ssh");return r.toString("pem")},fingerprint:function(t){zpe.string(t,"ssh_key");var r=Hpe.parseKey(t,"ssh");return r.fingerprint("md5").toString("hex")},pemToRsaSSHKey:function(t,r){zpe.equal("string",typeof t,"typeof pem");var n=Hpe.parseKey(t,"pem");return n.comment=r,n.toString("ssh")}}});var $Ze=b((isn,LZe)=>{var nA=oi(),aA=require("util"),sA=rA(),rsn=sA.HASH_ALGOS,nsn=sA.PK_ALGOS,ch=sA.HttpSignatureError,yhr=sA.InvalidAlgorithmError,bhr=sA.validateAlgorithm,pq={New:0,Params:1},z1={Name:0,Quote:1,Value:2,Comma:3};function Vpe(e){ch.call(this,e,Vpe)}aA.inherits(Vpe,ch);function uh(e){ch.call(this,e,uh)}aA.inherits(uh,ch);function fq(e){ch.call(this,e,fq)}aA.inherits(fq,ch);function iA(e){ch.call(this,e,iA)}aA.inherits(iA,ch);function Gpe(e){ch.call(this,e,Gpe)}aA.inherits(Gpe,ch);LZe.exports={parseRequest:function(t,r){nA.object(t,"request"),nA.object(t.headers,"request.headers"),r===void 0&&(r={}),r.headers===void 0&&(r.headers=[t.headers["x-date"]?"x-date":"date"]),nA.object(r,"options"),nA.arrayOfString(r.headers,"options.headers"),nA.optionalFinite(r.clockSkew,"options.clockSkew");var n=r.authorizationHeaderName||"authorization";if(!t.headers[n])throw new iA("no "+n+" header present in the request");r.clockSkew=r.clockSkew||300;var i=0,a=pq.New,s=z1.Name,o="",c="",p={scheme:"",params:{},signingString:""},f=t.headers[n];for(i=0;i<f.length;i++){var d=f.charAt(i);switch(Number(a)){case pq.New:d!==" "?p.scheme+=d:a=pq.Params;break;case pq.Params:switch(Number(s)){case z1.Name:var h=d.charCodeAt(0);if(h>=65&&h<=90||h>=97&&h<=122)o+=d;else if(d==="="){if(o.length===0)throw new uh("bad param format");s=z1.Quote}else throw new uh("bad param format");break;case z1.Quote:if(d==='"')c="",s=z1.Value;else throw new uh("bad param format");break;case z1.Value:d==='"'?(p.params[o]=c,s=z1.Comma):c+=d;break;case z1.Comma:if(d===",")o="",s=z1.Name;else throw new uh("bad param format");break;default:throw new Error("Invalid substate")}break;default:throw new Error("Invalid substate")}}if(!p.params.headers||p.params.headers===""?t.headers["x-date"]?p.params.headers=["x-date"]:p.params.headers=["date"]:p.params.headers=p.params.headers.split(" "),!p.scheme||p.scheme!=="Signature")throw new uh('scheme was not "Signature"');if(!p.params.keyId)throw new uh("keyId was not specified");if(!p.params.algorithm)throw new uh("algorithm was not specified");if(!p.params.signature)throw new uh("signature was not specified");p.params.algorithm=p.params.algorithm.toLowerCase();try{bhr(p.params.algorithm)}catch(A){throw A instanceof yhr?new fq(p.params.algorithm+" is not supported"):A}for(i=0;i<p.params.headers.length;i++){var g=p.params.headers[i].toLowerCase();if(p.params.headers[i]=g,g==="request-line")if(!r.strict)p.signingString+=t.method+" "+t.url+" HTTP/"+t.httpVersion;else throw new Gpe("request-line is not a valid header with strict parsing enabled.");else if(g==="(request-target)")p.signingString+="(request-target): "+t.method.toLowerCase()+" "+t.url;else{var v=t.headers[g];if(v===void 0)throw new iA(g+" was not in the request");p.signingString+=g+": "+v}i+1<p.params.headers.length&&(p.signingString+=`
`)}var y;if(t.headers.date||t.headers["x-date"]){t.headers["x-date"]?y=new Date(t.headers["x-date"]):y=new Date(t.headers.date);var _=new Date,x=Math.abs(_.getTime()-y.getTime());if(x>r.clockSkew*1e3)throw new Vpe("clock skew of "+x/1e3+"s was greater than "+r.clockSkew+"s")}if(r.headers.forEach(function(A){if(p.params.headers.indexOf(A.toLowerCase())<0)throw new iA(A+" was not a signed header")}),r.algorithms&&r.algorithms.indexOf(p.params.algorithm)===-1)throw new fq(p.params.algorithm+" is not a supported algorithm");return p.algorithm=p.params.algorithm.toUpperCase(),p.keyId=p.params.keyId,p}}});var Ype=b(dq=>{var whr=require("assert"),_hr=require("util");dq.sprintf=Kpe;dq.printf=xhr;dq.fprintf=BZe;function Kpe(e){var t=["([^%]*)","%","(['\\-+ #0]*?)","([1-9]\\d*)?","(\\.([1-9]\\d*))?","[lhjztL]*?","([diouxXfFeEgGaAcCsSp%jr])"].join(""),r=new RegExp(t),n=Array.prototype.slice.call(arguments,1),i,a,s,o,c,p,f,d,h,g="",v=1;for(whr.equal("string",typeof e);(h=r.exec(e))!==null;){if(g+=h[1],e=e.substring(h[0].length),i=h[2]||"",a=h[3]||0,s=h[4]||"",o=h[6],c=!1,f=!1,p=" ",o=="%"){g+="%";continue}if(n.length===0)throw new Error("too few args to sprintf");if(d=n.shift(),v++,i.match(/[\' #]/))throw new Error("unsupported flags: "+i);if(s.length>0)throw new Error("non-zero precision not supported");switch(i.match(/-/)&&(c=!0),i.match(/0/)&&(p="0"),i.match(/\+/)&&(f=!0),o){case"s":if(d==null)throw new Error("argument "+v+": attempted to print undefined or null as a string");g+=Wpe(p,a,c,d.toString());break;case"d":d=Math.floor(d);case"f":f=f&&d>0?"+":"",g+=f+Wpe(p,a,c,d.toString());break;case"x":g+=Wpe(p,a,c,d.toString(16));break;case"j":a===0&&(a=10),g+=_hr.inspect(d,!1,a);break;case"r":g+=MZe(d);break;default:throw new Error("unsupported conversion: "+o)}}return g+=e,g}function xhr(){var e=Array.prototype.slice.call(arguments);e.unshift(process.stdout),BZe.apply(null,e)}function BZe(e){var t=Array.prototype.slice.call(arguments,1);return e.write(Kpe.apply(this,t))}function Wpe(e,t,r,n){for(var i=n;i.length<t;)r?i+=e:i=e+i;return i}function MZe(e){var t;if(!(e instanceof Error))throw new Error(Kpe("invalid type for %%r: %j",e));if(t="EXCEPTION: "+e.constructor.name+": "+e.stack,e.cause&&typeof e.cause=="function"){var r=e.cause();r&&(t+=`
Caused by: `+MZe(r))}return t}});var UZe=b(wu=>{function Ehr(e){return Array.isArray?Array.isArray(e):hq(e)==="[object Array]"}wu.isArray=Ehr;function Shr(e){return typeof e=="boolean"}wu.isBoolean=Shr;function khr(e){return e===null}wu.isNull=khr;function Ahr(e){return e==null}wu.isNullOrUndefined=Ahr;function Thr(e){return typeof e=="number"}wu.isNumber=Thr;function Ohr(e){return typeof e=="string"}wu.isString=Ohr;function Dhr(e){return typeof e=="symbol"}wu.isSymbol=Dhr;function Chr(e){return e===void 0}wu.isUndefined=Chr;function Phr(e){return hq(e)==="[object RegExp]"}wu.isRegExp=Phr;function Ihr(e){return typeof e=="object"&&e!==null}wu.isObject=Ihr;function Rhr(e){return hq(e)==="[object Date]"}wu.isDate=Rhr;function Fhr(e){return hq(e)==="[object Error]"||e instanceof Error}wu.isError=Fhr;function jhr(e){return typeof e=="function"}wu.isFunction=jhr;function Nhr(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"||typeof e=="symbol"||typeof e>"u"}wu.isPrimitive=Nhr;wu.isBuffer=Buffer.isBuffer;function hq(e){return Object.prototype.toString.call(e)}});var HZe=b((osn,zZe)=>{var Os=oi(),mq=require("util"),qhr=Ype(),qf=UZe().isError,Lhr=qhr.sprintf;zZe.exports=$n;$n.VError=$n;$n.SError=oA;$n.WError=ev;$n.MultiError=G3;function Jpe(e){var t,r,n,i,a;if(Os.object(e,"args"),Os.bool(e.strict,"args.strict"),Os.array(e.argv,"args.argv"),t=e.argv,t.length===0)r={},n=[];else if(qf(t[0]))r={cause:t[0]},n=t.slice(1);else if(typeof t[0]=="object"){r={};for(a in t[0])r[a]=t[0][a];n=t.slice(1)}else Os.string(t[0],"first argument to VError, SError, or WError constructor must be a string, object, or Error"),r={},n=t;return Os.object(r),!r.strict&&!e.strict&&(n=n.map(function(s){return s===null?"null":s===void 0?"undefined":s})),n.length===0?i="":i=Lhr.apply(null,n),{options:r,shortmessage:i}}function $n(){var e,t,r,n,i,a,s;if(e=Array.prototype.slice.call(arguments,0),!(this instanceof $n))return t=Object.create($n.prototype),$n.apply(t,arguments),t;if(r=Jpe({argv:e,strict:!1}),r.options.name&&(Os.string(r.options.name,`error's "name" must be a string`),this.name=r.options.name),this.jse_shortmsg=r.shortmessage,a=r.shortmessage,n=r.options.cause,n&&(Os.ok(qf(n),"cause is not an Error"),this.jse_cause=n,r.options.skipCauseMessage||(a+=": "+n.message)),this.jse_info={},r.options.info)for(s in r.options.info)this.jse_info[s]=r.options.info[s];return this.message=a,Error.call(this,a),Error.captureStackTrace&&(i=r.options.constructorOpt||this.constructor,Error.captureStackTrace(this,i)),this}mq.inherits($n,Error);$n.prototype.name="VError";$n.prototype.toString=function(){var t=this.hasOwnProperty("name")&&this.name||this.constructor.name||this.constructor.prototype.name;return this.message&&(t+=": "+this.message),t};$n.prototype.cause=function(){var t=$n.cause(this);return t===null?void 0:t};$n.cause=function(e){return Os.ok(qf(e),"err must be an Error"),qf(e.jse_cause)?e.jse_cause:null};$n.info=function(e){var t,r,n;if(Os.ok(qf(e),"err must be an Error"),r=$n.cause(e),r!==null?t=$n.info(r):t={},typeof e.jse_info=="object"&&e.jse_info!==null)for(n in e.jse_info)t[n]=e.jse_info[n];return t};$n.findCauseByName=function(e,t){var r;for(Os.ok(qf(e),"err must be an Error"),Os.string(t,"name"),Os.ok(t.length>0,"name cannot be empty"),r=e;r!==null;r=$n.cause(r))if(Os.ok(qf(r)),r.name==t)return r;return null};$n.hasCauseWithName=function(e,t){return $n.findCauseByName(e,t)!==null};$n.fullStack=function(e){Os.ok(qf(e),"err must be an Error");var t=$n.cause(e);return t?e.stack+`
caused by: `+$n.fullStack(t):e.stack};$n.errorFromList=function(e){return Os.arrayOfObject(e,"errors"),e.length===0?null:(e.forEach(function(t){Os.ok(qf(t))}),e.length==1?e[0]:new G3(e))};$n.errorForEach=function(e,t){Os.ok(qf(e),"err must be an Error"),Os.func(t,"func"),e instanceof G3?e.errors().forEach(function(n){t(n)}):t(e)};function oA(){var e,t,r,n;return e=Array.prototype.slice.call(arguments,0),this instanceof oA?(r=Jpe({argv:e,strict:!0}),n=r.options,$n.call(this,n,"%s",r.shortmessage),this):(t=Object.create(oA.prototype),oA.apply(t,arguments),t)}mq.inherits(oA,$n);function G3(e){Os.array(e,"list of errors"),Os.ok(e.length>0,"must be at least one error"),this.ase_errors=e,$n.call(this,{cause:e[0]},"first of %d error%s",e.length,e.length==1?"":"s")}mq.inherits(G3,$n);G3.prototype.name="MultiError";G3.prototype.errors=function(){return this.ase_errors.slice(0)};function ev(){var e,t,r,n;return e=Array.prototype.slice.call(arguments,0),this instanceof ev?(r=Jpe({argv:e,strict:!1}),n=r.options,n.skipCauseMessage=!0,$n.call(this,n,"%s",r.shortmessage),this):(t=Object.create(ev.prototype),ev.apply(t,e),t)}mq.inherits(ev,$n);ev.prototype.name="WError";ev.prototype.toString=function(){var t=this.hasOwnProperty("name")&&this.name||this.constructor.name||this.constructor.prototype.name;return this.message&&(t+=": "+this.message),this.jse_cause&&this.jse_cause.message&&(t+="; caused by "+this.jse_cause.toString()),t};ev.prototype.cause=function(t){return qf(t)&&(this.jse_cause=t),this.jse_cause}});var GZe=b((VZe,gq)=>{(function(e,t){typeof define=="function"&&define.amd?define([],function(){return t()}):typeof gq=="object"&&gq.exports?gq.exports=t():e.jsonSchema=t()})(VZe,function(){var e=r;e.Integer={type:"integer"};var t={String,Boolean,Number,Object,Array,Date};e.validate=r;function r(n,i){return r(n,i,{changing:!1})}e.checkPropertyChange=function(n,i,a){return r(n,i,{changing:a||"property"})};var r=e._validate=function(n,i,a){a||(a={});var s=a.changing;function o(d){return d.type||t[d.name]==d&&d.name.toLowerCase()}var c=[];function p(d,h,g,v){var y;g+=g?typeof v=="number"?"["+v+"]":typeof v>"u"?"":"."+v:v;function _(z){c.push({property:g,message:z})}if((typeof h!="object"||h instanceof Array)&&(g||typeof h!="function")&&!(h&&o(h)))return typeof h=="function"?d instanceof h||_("is not an instance of the class/constructor "+h.name):h&&_("Invalid schema/property definition "+h),null;s&&h.readonly&&_("is a readonly field, it can not be changed"),h.extends&&p(d,h.extends,g,v);function x(z,P){if(z){if(typeof z=="string"&&z!="any"&&(z=="null"?P!==null:typeof P!=z)&&!(P instanceof Array&&z=="array")&&!(P instanceof Date&&z=="date")&&!(z=="integer"&&P%1===0))return[{property:g,message:P+" - "+typeof P+" value found, but a "+z+" is required"}];if(z instanceof Array){for(var M=[],K=0;K<z.length&&(M=x(z[K],P)).length;K++);if(M.length)return M}else if(typeof z=="object"){var L=c;c=[],p(P,z,g);var ve=c;return c=L,ve}}return[]}if(d===void 0)h.required&&_("is missing and it is required");else if(c=c.concat(x(o(h),d)),h.disallow&&!x(h.disallow,d).length&&_(" disallowed value was matched"),d!==null){if(d instanceof Array){if(h.items){var A=h.items instanceof Array,D=h.items;for(v=0,y=d.length;v<y;v+=1)A&&(D=h.items[v]),a.coerce&&(d[v]=a.coerce(d[v],D)),c.concat(p(d[v],D,g,v))}h.minItems&&d.length<h.minItems&&_("There must be a minimum of "+h.minItems+" in the array"),h.maxItems&&d.length>h.maxItems&&_("There must be a maximum of "+h.maxItems+" in the array")}else(h.properties||h.additionalProperties)&&c.concat(f(d,h.properties,g,h.additionalProperties));if(h.pattern&&typeof d=="string"&&!d.match(h.pattern)&&_("does not match the regex pattern "+h.pattern),h.maxLength&&typeof d=="string"&&d.length>h.maxLength&&_("may only be "+h.maxLength+" characters long"),h.minLength&&typeof d=="string"&&d.length<h.minLength&&_("must be at least "+h.minLength+" characters long"),typeof h.minimum<"u"&&typeof d==typeof h.minimum&&h.minimum>d&&_("must have a minimum value of "+h.minimum),typeof h.maximum<"u"&&typeof d==typeof h.maximum&&h.maximum<d&&_("must have a maximum value of "+h.maximum),h.enum){var j=h.enum;y=j.length;for(var H,F=0;F<y;F++)if(j[F]===d){H=1;break}H||_("does not have a value in the enumeration "+j.join(", "))}typeof h.maxDecimal=="number"&&d.toString().match(new RegExp("\\.[0-9]{"+(h.maxDecimal+1)+",}"))&&_("may only have "+h.maxDecimal+" digits of decimal places")}return null}function f(d,h,g,v){if(typeof h=="object"){(typeof d!="object"||d instanceof Array)&&c.push({property:g,message:"an object is required"});for(var y in h)if(h.hasOwnProperty(y)&&y!="__proto__"&&y!="constructor"){var _=d.hasOwnProperty(y)?d[y]:void 0;if(_===void 0&&a.existingOnly)continue;var x=h[y];_===void 0&&x.default&&(_=d[y]=x.default),a.coerce&&y in d&&(_=d[y]=a.coerce(_,x)),p(_,x,g,y)}}for(y in d){if(d.hasOwnProperty(y)&&!(y.charAt(0)=="_"&&y.charAt(1)=="_")&&h&&!h[y]&&v===!1)if(a.filter){delete d[y];continue}else c.push({property:g,message:"The property "+y+" is not defined in the schema and the schema does not allow additional properties"});var A=h&&h[y]&&h[y].requires;A&&!(A in d)&&c.push({property:g,message:"the presence of the property "+y+" requires that "+A+" also be present"}),_=d[y],v&&(!(h&&typeof h=="object")||!(y in h))&&(a.coerce&&(_=d[y]=a.coerce(_,v)),p(_,v,g,y)),!s&&_&&_.$schema&&(c=c.concat(p(_,_.$schema,g,y)))}return c}return i&&p(n,i,"",s||""),!s&&n&&n.$schema&&p(n,n.$schema,"",""),{valid:!c.length,errors:c}};return e.mustBeValid=function(n){if(!n.valid)throw new TypeError(n.errors.map(function(i){return"for property "+i.property+": "+i.message}).join(`, 
`))},e})});var iet=b(Li=>{var ci=oi(),usn=require("util"),KZe=Ype(),$hr=HZe(),Bhr=GZe();Li.deepCopy=Xpe;Li.deepEqual=YZe;Li.isEmpty=Mhr;Li.hasKey=Qpe;Li.forEachKey=Uhr;Li.pluck=zhr;Li.flattenObject=QZe;Li.flattenIter=Hhr;Li.validateJsonObject=ZZe;Li.validateJsonObjectJS=ZZe;Li.randElt=_mr;Li.extraProperties=Amr;Li.mergeObjects=net;Li.startsWith=Vhr;Li.endsWith=Ghr;Li.parseInteger=ymr;Li.iso8601=Whr;Li.rfc1123=Jhr;Li.parseDateTime=Xhr;Li.hrtimediff=eet;Li.hrtimeDiff=eet;Li.hrtimeAccum=tet;Li.hrtimeAdd=kmr;Li.hrtimeNanosec=xmr;Li.hrtimeMicrosec=Emr;Li.hrtimeMillisec=Smr;function Xpe(e){var t,r,n="__deepCopy";if(e&&e[n])throw new Error("attempted deep copy of cyclic object");if(e&&e.constructor==Object){t={},e[n]=!0;for(r in e)r!=n&&(t[r]=Xpe(e[r]));return delete e[n],t}if(e&&e.constructor==Array){for(t=[],e[n]=!0,r=0;r<e.length;r++)t.push(Xpe(e[r]));return delete e[n],t}return e}function YZe(e,t){if(typeof e!=typeof t)return!1;if(e===null||t===null||typeof e!="object")return e===t;if(e.constructor!=t.constructor)return!1;var r;for(r in e)if(!t.hasOwnProperty(r)||!YZe(e[r],t[r]))return!1;for(r in t)if(!e.hasOwnProperty(r))return!1;return!0}function Mhr(e){var t;for(t in e)return!1;return!0}function Qpe(e,t){return ci.equal(typeof t,"string"),Object.prototype.hasOwnProperty.call(e,t)}function Uhr(e,t){for(var r in e)Qpe(e,r)&&t(r,e[r])}function zhr(e,t){return ci.equal(typeof t,"string"),JZe(e,t)}function JZe(e,t){if(!(e===null||typeof e!="object")){if(e.hasOwnProperty(t))return e[t];var r=t.indexOf(".");if(r!=-1){var n=t.substr(0,r);if(e.hasOwnProperty(n))return JZe(e[n],t.substr(r+1))}}}function Hhr(e,t,r){XZe(e,t,[],r)}function XZe(e,t,r,n){var i,a;if(t===0){i=r.slice(0),i.push(e),n(i);return}ci.ok(e!==null),ci.equal(typeof e,"object"),ci.equal(typeof t,"number"),ci.ok(t>=0);for(a in e)i=r.slice(0),i.push(a),XZe(e[a],t-1,i,n)}function QZe(e,t){if(t===0)return[e];ci.ok(e!==null),ci.equal(typeof e,"object"),ci.equal(typeof t,"number"),ci.ok(t>=0);var r=[],n;for(n in e)QZe(e[n],t-1).forEach(function(i){r.push([n].concat(i))});return r}function Vhr(e,t){return e.substr(0,t.length)==t}function Ghr(e,t){return e.substr(e.length-t.length,t.length)==t}function Whr(e){return typeof e=="number"&&(e=new Date(e)),ci.ok(e.constructor===Date),KZe.sprintf("%4d-%02d-%02dT%02d:%02d:%02d.%03dZ",e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds())}var Khr=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Yhr=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function Jhr(e){return KZe.sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT",Yhr[e.getUTCDay()],e.getUTCDate(),Khr[e.getUTCMonth()],e.getUTCFullYear(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds())}function Xhr(e){var t=+e;return isNaN(t)?new Date(e):new Date(t)}var Qhr=Number.MAX_SAFE_INTEGER||9007199254740991,Zhr=Number.MIN_SAFE_INTEGER||-9007199254740991,emr={base:10,allowSign:!0,allowPrefix:!1,allowTrailing:!1,allowImprecise:!1,trimWhitespace:!1,leadingZeroIsOctal:!1},tmr=48,rmr=57,nmr=65,imr=66,amr=79,smr=84,omr=88,umr=90,cmr=97,lmr=98,pmr=111,fmr=116,dmr=120,hmr=122,mmr=48,gmr=55,vmr=87;function ymr(e,t){ci.string(e,"str"),ci.optionalObject(t,"options");var r=!1,n=emr;t&&(r=Qpe(t,"base"),n=net(n,t),ci.number(n.base,"options.base"),ci.ok(n.base>=2,"options.base >= 2"),ci.ok(n.base<=36,"options.base <= 36"),ci.bool(n.allowSign,"options.allowSign"),ci.bool(n.allowPrefix,"options.allowPrefix"),ci.bool(n.allowTrailing,"options.allowTrailing"),ci.bool(n.allowImprecise,"options.allowImprecise"),ci.bool(n.trimWhitespace,"options.trimWhitespace"),ci.bool(n.leadingZeroIsOctal,"options.leadingZeroIsOctal"),n.leadingZeroIsOctal&&ci.ok(!r,'"base" and "leadingZeroIsOctal" are mutually exclusive'));var i,a=-1,s=n.base,o,c=1,p=0,f=0,d=e.length;if(n.trimWhitespace)for(;f<d&&WZe(e.charCodeAt(f));)++f;for(n.allowSign&&(e[f]==="-"?(f+=1,c=-1):e[f]==="+"&&(f+=1)),e[f]==="0"&&(n.allowPrefix&&(a=wmr(e.charCodeAt(f+1)),a!==-1&&(!r||a===s)&&(s=a,f+=2)),a===-1&&n.leadingZeroIsOctal&&(s=8)),o=f;f<d&&(i=bmr(e.charCodeAt(f)),i!==-1&&i<s);++f)p*=s,p+=i;if(o===f)return new Error("invalid number: "+JSON.stringify(e));if(n.trimWhitespace)for(;f<d&&WZe(e.charCodeAt(f));)++f;if(f<d&&!n.allowTrailing)return new Error("trailing characters after number: "+JSON.stringify(e.slice(f)));if(p===0)return 0;var h=p*c;return!n.allowImprecise&&(p>Qhr||h<Zhr)?new Error("number is outside of the supported range: "+JSON.stringify(e.slice(o,f))):h}function bmr(e){return e>=tmr&&e<=rmr?e-mmr:e>=nmr&&e<=umr?e-gmr:e>=cmr&&e<=hmr?e-vmr:-1}function WZe(e){return e===32||e>=9&&e<=13||e===160||e===5760||e===6158||e>=8192&&e<=8202||e===8232||e===8233||e===8239||e===8287||e===12288||e===65279}function wmr(e){return e===lmr||e===imr?2:e===pmr||e===amr?8:e===fmr||e===smr?10:e===dmr||e===omr?16:-1}function ZZe(e,t){var r=Bhr.validate(t,e);if(r.errors.length===0)return null;var n=r.errors[0],i=n.property,a=n.message.toLowerCase(),s,o;(s=a.indexOf("the property "))!=-1&&(o=a.indexOf(" is not defined in the schema and the schema does not allow additional properties"))!=-1&&(s+=13,i===""?i=a.substr(s,o-s):i=i+"."+a.substr(s,o-s),a="unsupported property");var c=new $hr.VError('property "%s": %s',i,a);return c.jsv_details=n,c}function _mr(e){return ci.ok(Array.isArray(e)&&e.length>0,"randElt argument must be a non-empty array"),e[Math.floor(Math.random()*e.length)]}function tv(e){ci.ok(e[0]>=0&&e[1]>=0,"negative numbers not allowed in hrtimes"),ci.ok(e[1]<1e9,"nanoseconds column overflow")}function eet(e,t){tv(e),tv(t),ci.ok(e[0]>t[0]||e[0]==t[0]&&e[1]>=t[1],"negative differences not allowed");var r=[e[0]-t[0],0];return e[1]>=t[1]?r[1]=e[1]-t[1]:(r[0]--,r[1]=1e9-(t[1]-e[1])),r}function xmr(e){return tv(e),Math.floor(e[0]*1e9+e[1])}function Emr(e){return tv(e),Math.floor(e[0]*1e6+e[1]/1e3)}function Smr(e){return tv(e),Math.floor(e[0]*1e3+e[1]/1e6)}function tet(e,t){return tv(e),tv(t),e[1]+=t[1],e[1]>=1e9&&(e[0]++,e[1]-=1e9),e[0]+=t[0],e}function kmr(e,t){tv(e);var r=[e[0],e[1]];return tet(r,t)}function Amr(e,t){ci.ok(typeof e=="object"&&e!==null,"obj argument must be a non-null object"),ci.ok(Array.isArray(t),"allowed argument must be an array of strings");for(var r=0;r<t.length;r++)ci.ok(typeof t[r]=="string","allowed argument must be an array of strings");return Object.keys(e).filter(function(n){return t.indexOf(n)===-1})}function net(e,t,r){var n,i;if(n={},r)for(i in r)n[i]=r[i];if(e)for(i in e)n[i]=e[i];if(t)for(i in t)n[i]=t[i];return n}});var pet=b((psn,cet)=>{var $a=oi(),aet=require("crypto"),lsn=require("http"),set=require("util"),vq=lq(),oet=iet(),cA=rA(),Zpe=require("util").format,Tmr=cA.HASH_ALGOS,uet=cA.PK_ALGOS,uA=cA.InvalidAlgorithmError,yq=cA.HttpSignatureError,tfe=cA.validateAlgorithm,efe='Signature keyId="%s",algorithm="%s",headers="%s",signature="%s"';function rfe(e){yq.call(this,e,rfe)}set.inherits(rfe,yq);function nfe(e){yq.call(this,e,nfe)}set.inherits(nfe,yq);function W3(e){$a.object(e,"options");var t=[];if(e.algorithm!==void 0&&($a.string(e.algorithm,"options.algorithm"),t=tfe(e.algorithm)),this.rs_alg=t,e.sign!==void 0)$a.func(e.sign,"options.sign"),this.rs_signFunc=e.sign;else if(t[0]==="hmac"&&e.key!==void 0){if($a.string(e.keyId,"options.keyId"),this.rs_keyId=e.keyId,typeof e.key!="string"&&!Buffer.isBuffer(e.key))throw new TypeError("options.key for HMAC must be a string or Buffer");this.rs_signer=aet.createHmac(t[1].toUpperCase(),e.key),this.rs_signer.sign=function(){var n=this.digest("base64");return{hashAlgorithm:t[1],toString:function(){return n}}}}else if(e.key!==void 0){var r=e.key;if((typeof r=="string"||Buffer.isBuffer(r))&&(r=vq.parsePrivateKey(r)),$a.ok(vq.PrivateKey.isPrivateKey(r,[1,2]),"options.key must be a sshpk.PrivateKey"),this.rs_key=r,$a.string(e.keyId,"options.keyId"),this.rs_keyId=e.keyId,!uet[r.type])throw new uA(r.type.toUpperCase()+" type keys are not supported");if(t[0]!==void 0&&r.type!==t[0])throw new uA("options.key must be a "+t[0].toUpperCase()+" key, was given a "+r.type.toUpperCase()+" key instead");this.rs_signer=r.createSign(t[1])}else throw new TypeError("options.sign (func) or options.key is required");this.rs_headers=[],this.rs_lines=[]}W3.prototype.writeHeader=function(e,t){if($a.string(e,"header"),e=e.toLowerCase(),$a.string(t,"value"),this.rs_headers.push(e),this.rs_signFunc)this.rs_lines.push(e+": "+t);else{var r=e+": "+t;this.rs_headers.length>0&&(r=`
`+r),this.rs_signer.update(r)}return t};W3.prototype.writeDateHeader=function(){return this.writeHeader("date",oet.rfc1123(new Date))};W3.prototype.writeTarget=function(e,t){$a.string(e,"method"),$a.string(t,"path"),e=e.toLowerCase(),this.writeHeader("(request-target)",e+" "+t)};W3.prototype.sign=function(e){if($a.func(e,"callback"),this.rs_headers.length<1)throw new Error("At least one header must be signed");var t,r;if(this.rs_signFunc){var n=this.rs_lines.join(`
`),i=this;this.rs_signFunc(n,function(o,c){if(o){e(o);return}try{$a.object(c,"signature"),$a.string(c.keyId,"signature.keyId"),$a.string(c.algorithm,"signature.algorithm"),$a.string(c.signature,"signature.signature"),t=tfe(c.algorithm),r=Zpe(efe,c.keyId,c.algorithm,i.rs_headers.join(" "),c.signature)}catch(p){e(p);return}e(null,r)})}else{try{var a=this.rs_signer.sign()}catch(o){e(o);return}t=(this.rs_alg[0]||this.rs_key.type)+"-"+a.hashAlgorithm;var s=a.toString();r=Zpe(efe,this.rs_keyId,t,this.rs_headers.join(" "),s),e(null,r)}};cet.exports={isSigner:function(e){return typeof e=="object"&&e instanceof W3},createSigner:function(t){return new W3(t)},signRequest:function(t,r){$a.object(t,"request"),$a.object(r,"options"),$a.optionalString(r.algorithm,"options.algorithm"),$a.string(r.keyId,"options.keyId"),$a.optionalArrayOfString(r.headers,"options.headers"),$a.optionalString(r.httpVersion,"options.httpVersion"),t.getHeader("Date")||t.setHeader("Date",oet.rfc1123(new Date)),r.headers||(r.headers=["date"]),r.httpVersion||(r.httpVersion="1.1");var n=[];r.algorithm&&(r.algorithm=r.algorithm.toLowerCase(),n=tfe(r.algorithm));var i,a="";for(i=0;i<r.headers.length;i++){if(typeof r.headers[i]!="string")throw new TypeError("options.headers must be an array of Strings");var s=r.headers[i].toLowerCase();if(s==="request-line")if(!r.strict)a+=t.method+" "+t.path+" HTTP/"+r.httpVersion;else throw new nfe("request-line is not a valid header with strict parsing enabled.");else if(s==="(request-target)")a+="(request-target): "+t.method.toLowerCase()+" "+t.path;else{var o=t.getHeader(s);if(o===void 0||o==="")throw new rfe(s+" was not in the request");a+=s+": "+o}i+1<r.headers.length&&(a+=`
`)}t.hasOwnProperty("_stringToSign")&&(t._stringToSign=a);var c;if(n[0]==="hmac"){if(typeof r.key!="string"&&!Buffer.isBuffer(r.key))throw new TypeError("options.key must be a string or Buffer");var p=aet.createHmac(n[1].toUpperCase(),r.key);p.update(a),c=p.digest("base64")}else{var f=r.key;if((typeof f=="string"||Buffer.isBuffer(f))&&(f=vq.parsePrivateKey(r.key)),$a.ok(vq.PrivateKey.isPrivateKey(f,[1,2]),"options.key must be a sshpk.PrivateKey"),!uet[f.type])throw new uA(f.type.toUpperCase()+" type keys are not supported");if(n[0]!==void 0&&f.type!==n[0])throw new uA("options.key must be a "+n[0].toUpperCase()+" key, was given a "+f.type.toUpperCase()+" key instead");var d=f.createSign(n[1]);d.update(a);var h=d.sign();if(!Tmr[h.hashAlgorithm])throw new uA(h.hashAlgorithm.toUpperCase()+" is not a supported hash algorithm");r.algorithm=f.type+"-"+h.hashAlgorithm,c=h.toString(),$a.notStrictEqual(c,"","empty signature produced")}var g=r.authorizationHeaderName||"Authorization";return t.setHeader(g,Zpe(efe,r.keyId,r.algorithm,r.headers.join(" "),c)),!0}}});var met=b((gsn,het)=>{var bq=oi(),ife=require("crypto"),fet=lq(),lA=rA(),fsn=lA.HASH_ALGOS,dsn=lA.PK_ALGOS,hsn=lA.InvalidAlgorithmError,msn=lA.HttpSignatureError,det=lA.validateAlgorithm;het.exports={verifySignature:function(t,r){bq.object(t,"parsedSignature"),(typeof r=="string"||Buffer.isBuffer(r))&&(r=fet.parseKey(r)),bq.ok(fet.Key.isKey(r,[1,1]),"pubkey must be a sshpk.Key");var n=det(t.algorithm);if(n[0]==="hmac"||n[0]!==r.type)return!1;var i=r.createVerify(n[1]);return i.update(t.signingString),i.verify(t.params.signature,"base64")},verifyHMAC:function(t,r){bq.object(t,"parsedHMAC"),bq.string(r,"secret");var n=det(t.algorithm);if(n[0]!=="hmac")return!1;var i=n[1].toUpperCase(),a=ife.createHmac(i,r);a.update(t.signingString);var s=ife.createHmac(i,r);s.update(a.digest()),s=s.digest();var o=ife.createHmac(i,r);return o.update(new Buffer(t.params.signature,"base64")),o=o.digest(),typeof s=="string"?s===o:Buffer.isBuffer(s)&&!s.equals?s.toString("binary")===o.toString("binary"):s.equals(o)}}});var yet=b((vsn,vet)=>{var get=$Ze(),wq=pet(),afe=met(),sfe=rA();vet.exports={parse:get.parseRequest,parseRequest:get.parseRequest,sign:wq.signRequest,signRequest:wq.signRequest,createSigner:wq.createSigner,isSigner:wq.isSigner,sshKeyToPEM:sfe.sshKeyToPEM,sshKeyFingerprint:sfe.fingerprint,pemToRsaSSHKey:sfe.pemToRsaSSHKey,verify:afe.verifySignature,verifySignature:afe.verifySignature,verifyHMAC:afe.verifyHMAC}});var ofe=b(Fc=>{"use strict";var _q=Zoe(),Omr=require("path").extname,bet=/^\s*([^;\s]*)(?:;|\s|$)/,Dmr=/^text\//i;Fc.charset=wet;Fc.charsets={lookup:wet};Fc.contentType=Cmr;Fc.extension=Pmr;Fc.extensions=Object.create(null);Fc.lookup=Imr;Fc.types=Object.create(null);Rmr(Fc.extensions,Fc.types);function wet(e){if(!e||typeof e!="string")return!1;var t=bet.exec(e),r=t&&_q[t[1].toLowerCase()];return r&&r.charset?r.charset:t&&Dmr.test(t[1])?"UTF-8":!1}function Cmr(e){if(!e||typeof e!="string")return!1;var t=e.indexOf("/")===-1?Fc.lookup(e):e;if(!t)return!1;if(t.indexOf("charset")===-1){var r=Fc.charset(t);r&&(t+="; charset="+r.toLowerCase())}return t}function Pmr(e){if(!e||typeof e!="string")return!1;var t=bet.exec(e),r=t&&Fc.extensions[t[1].toLowerCase()];return!r||!r.length?!1:r[0]}function Imr(e){if(!e||typeof e!="string")return!1;var t=Omr("x."+e).toLowerCase().substr(1);return t&&Fc.types[t]||!1}function Rmr(e,t){var r=["nginx","apache",void 0,"iana"];Object.keys(_q).forEach(function(i){var a=_q[i],s=a.extensions;if(!(!s||!s.length)){e[i]=s;for(var o=0;o<s.length;o++){var c=s[o];if(t[c]){var p=r.indexOf(_q[t[c]].source),f=r.indexOf(a.source);if(t[c]!=="application/octet-stream"&&(p>f||p===f&&t[c].substr(0,12)==="application/"))continue}t[c]=i}}})}});var xq=b((bsn,ufe)=>{function vw(e){this.dict=e||{}}vw.prototype.set=function(e,t,r){if(typeof e=="object")for(var n in e)this.set(n,e[n],t);else{typeof r>"u"&&(r=!0);var i=this.has(e);return!r&&i?this.dict[i]=this.dict[i]+","+t:this.dict[i||e]=t,i}};vw.prototype.has=function(r){for(var t=Object.keys(this.dict),r=r.toLowerCase(),n=0;n<t.length;n++)if(t[n].toLowerCase()===r)return t[n];return!1};vw.prototype.get=function(e){e=e.toLowerCase();var t,r,n=this.dict;return Object.keys(n).forEach(function(i){r=i.toLowerCase(),e===r&&(t=n[i])}),t};vw.prototype.swap=function(e){var t=this.has(e);if(t!==e){if(!t)throw new Error('There is no header than matches "'+e+'"');this.dict[e]=this.dict[t],delete this.dict[t]}};vw.prototype.del=function(e){var t=this.has(e);return delete this.dict[t||e]};ufe.exports=function(e){return new vw(e)};ufe.exports.httpify=function(e,t){var r=new vw(t);return e.setHeader=function(n,i,a){if(!(typeof i>"u"))return r.set(n,i,a)},e.hasHeader=function(n){return r.has(n)},e.getHeader=function(n){return r.get(n)},e.removeHeader=function(n){return r.del(n)},e.headers=r.dict,r}});var ket=b((wsn,Eet)=>{Eet.exports=Lf;Lf.SSL=Eq;var _et=require("util"),cfe=require("http").Agent,Fmr=require("net"),jmr=require("tls"),Nmr=require("https").Agent;function xet(e,t){var r="";return typeof e=="string"?r=e+":"+t:r=e.host+":"+e.port+":"+(e.localAddress?e.localAddress+":":":"),r}function Lf(e){var t=this;t.options=e||{},t.requests={},t.sockets={},t.freeSockets={},t.maxSockets=t.options.maxSockets||cfe.defaultMaxSockets,t.minSockets=t.options.minSockets||Lf.defaultMinSockets,t.on("free",function(r,n,i){var a=xet(n,i);if(t.requests[a]&&t.requests[a].length)t.requests[a].shift().onSocket(r);else if(t.sockets[a].length<t.minSockets){t.freeSockets[a]||(t.freeSockets[a]=[]),t.freeSockets[a].push(r);var s=function(){r.destroy()};r._onIdleError=s,r.on("error",s)}else r.destroy()})}_et.inherits(Lf,cfe);Lf.defaultMinSockets=5;Lf.prototype.createConnection=Fmr.createConnection;Lf.prototype.addRequestNoreuse=cfe.prototype.addRequest;Lf.prototype.addRequest=function(e,t,r){var n=xet(t,r);if(typeof t!="string"){var i=t;r=i.port,t=i.host}if(this.freeSockets[n]&&this.freeSockets[n].length>0&&!e.useChunkedEncodingByDefault){var a=this.freeSockets[n].pop();a.removeListener("error",a._onIdleError),delete a._onIdleError,e._reusedSocket=!0,e.onSocket(a)}else this.addRequestNoreuse(e,t,r)};Lf.prototype.removeSocket=function(e,t,r,n){if(this.sockets[t]){var i=this.sockets[t].indexOf(e);i!==-1&&this.sockets[t].splice(i,1)}else this.sockets[t]&&this.sockets[t].length===0&&(delete this.sockets[t],delete this.requests[t]);if(this.freeSockets[t]){var i=this.freeSockets[t].indexOf(e);i!==-1&&(this.freeSockets[t].splice(i,1),this.freeSockets[t].length===0&&delete this.freeSockets[t])}this.requests[t]&&this.requests[t].length&&this.createSocket(t,r,n).emit("free")};function Eq(e){Lf.call(this,e)}_et.inherits(Eq,Lf);Eq.prototype.createConnection=qmr;Eq.prototype.addRequestNoreuse=Nmr.prototype.addRequest;function qmr(e,t,r){return typeof e=="object"?r=e:typeof t=="object"?r=t:typeof r=="object"?r=r:r={},typeof e=="number"&&(r.port=e),typeof t=="string"&&(r.host=t),jmr.connect(r)}});var Oet=b((_sn,Tet)=>{var Aet=require("stream").Stream,Lmr=require("util");Tet.exports=$f;function $f(){this.source=null,this.dataSize=0,this.maxDataSize=1024*1024,this.pauseStream=!0,this._maxDataSizeExceeded=!1,this._released=!1,this._bufferedEvents=[]}Lmr.inherits($f,Aet);$f.create=function(e,t){var r=new this;t=t||{};for(var n in t)r[n]=t[n];r.source=e;var i=e.emit;return e.emit=function(){return r._handleEmit(arguments),i.apply(e,arguments)},e.on("error",function(){}),r.pauseStream&&e.pause(),r};Object.defineProperty($f.prototype,"readable",{configurable:!0,enumerable:!0,get:function(){return this.source.readable}});$f.prototype.setEncoding=function(){return this.source.setEncoding.apply(this.source,arguments)};$f.prototype.resume=function(){this._released||this.release(),this.source.resume()};$f.prototype.pause=function(){this.source.pause()};$f.prototype.release=function(){this._released=!0,this._bufferedEvents.forEach(function(e){this.emit.apply(this,e)}.bind(this)),this._bufferedEvents=[]};$f.prototype.pipe=function(){var e=Aet.prototype.pipe.apply(this,arguments);return this.resume(),e};$f.prototype._handleEmit=function(e){if(this._released){this.emit.apply(this,e);return}e[0]==="data"&&(this.dataSize+=e[1].length,this._checkIfMaxDataSizeExceeded()),this._bufferedEvents.push(e)};$f.prototype._checkIfMaxDataSizeExceeded=function(){if(!this._maxDataSizeExceeded&&!(this.dataSize<=this.maxDataSize)){this._maxDataSizeExceeded=!0;var e="DelayedStream#maxDataSize of "+this.maxDataSize+" bytes exceeded.";this.emit("error",new Error(e))}}});var lfe=b((xsn,Pet)=>{var $mr=require("util"),Cet=require("stream").Stream,Det=Oet();Pet.exports=Ha;function Ha(){this.writable=!1,this.readable=!0,this.dataSize=0,this.maxDataSize=2*1024*1024,this.pauseStreams=!0,this._released=!1,this._streams=[],this._currentStream=null,this._insideLoop=!1,this._pendingNext=!1}$mr.inherits(Ha,Cet);Ha.create=function(e){var t=new this;e=e||{};for(var r in e)t[r]=e[r];return t};Ha.isStreamLike=function(e){return typeof e!="function"&&typeof e!="string"&&typeof e!="boolean"&&typeof e!="number"&&!Buffer.isBuffer(e)};Ha.prototype.append=function(e){var t=Ha.isStreamLike(e);if(t){if(!(e instanceof Det)){var r=Det.create(e,{maxDataSize:1/0,pauseStream:this.pauseStreams});e.on("data",this._checkDataSize.bind(this)),e=r}this._handleErrors(e),this.pauseStreams&&e.pause()}return this._streams.push(e),this};Ha.prototype.pipe=function(e,t){return Cet.prototype.pipe.call(this,e,t),this.resume(),e};Ha.prototype._getNext=function(){if(this._currentStream=null,this._insideLoop){this._pendingNext=!0;return}this._insideLoop=!0;try{do this._pendingNext=!1,this._realGetNext();while(this._pendingNext)}finally{this._insideLoop=!1}};Ha.prototype._realGetNext=function(){var e=this._streams.shift();if(typeof e>"u"){this.end();return}if(typeof e!="function"){this._pipeNext(e);return}var t=e;t(function(r){var n=Ha.isStreamLike(r);n&&(r.on("data",this._checkDataSize.bind(this)),this._handleErrors(r)),this._pipeNext(r)}.bind(this))};Ha.prototype._pipeNext=function(e){this._currentStream=e;var t=Ha.isStreamLike(e);if(t){e.on("end",this._getNext.bind(this)),e.pipe(this,{end:!1});return}var r=e;this.write(r),this._getNext()};Ha.prototype._handleErrors=function(e){var t=this;e.on("error",function(r){t._emitError(r)})};Ha.prototype.write=function(e){this.emit("data",e)};Ha.prototype.pause=function(){this.pauseStreams&&(this.pauseStreams&&this._currentStream&&typeof this._currentStream.pause=="function"&&this._currentStream.pause(),this.emit("pause"))};Ha.prototype.resume=function(){this._released||(this._released=!0,this.writable=!0,this._getNext()),this.pauseStreams&&this._currentStream&&typeof this._currentStream.resume=="function"&&this._currentStream.resume(),this.emit("resume")};Ha.prototype.end=function(){this._reset(),this.emit("end")};Ha.prototype.destroy=function(){this._reset(),this.emit("close")};Ha.prototype._reset=function(){this.writable=!1,this._streams=[],this._currentStream=null};Ha.prototype._checkDataSize=function(){if(this._updateDataSize(),!(this.dataSize<=this.maxDataSize)){var e="DelayedStream#maxDataSize of "+this.maxDataSize+" bytes exceeded.";this._emitError(new Error(e))}};Ha.prototype._updateDataSize=function(){this.dataSize=0;var e=this;this._streams.forEach(function(t){t.dataSize&&(e.dataSize+=t.dataSize)}),this._currentStream&&this._currentStream.dataSize&&(this.dataSize+=this._currentStream.dataSize)};Ha.prototype._emitError=function(e){this._reset(),this.emit("error",e)}});var Ret=b((Esn,Iet)=>{Iet.exports=Bmr;function Bmr(e){var t=typeof setImmediate=="function"?setImmediate:typeof process=="object"&&typeof process.nextTick=="function"?process.nextTick:null;t?t(e):setTimeout(e,0)}});var pfe=b((Ssn,jet)=>{var Fet=Ret();jet.exports=Mmr;function Mmr(e){var t=!1;return Fet(function(){t=!0}),function(n,i){t?e(n,i):Fet(function(){e(n,i)})}}});var ffe=b((ksn,Net)=>{Net.exports=Umr;function Umr(e){Object.keys(e.jobs).forEach(zmr.bind(e)),e.jobs={}}function zmr(e){typeof this.jobs[e]=="function"&&this.jobs[e]()}});var dfe=b((Asn,Let)=>{var qet=pfe(),Hmr=ffe();Let.exports=Vmr;function Vmr(e,t,r,n){var i=r.keyedList?r.keyedList[r.index]:r.index;r.jobs[i]=Gmr(t,i,e[i],function(a,s){i in r.jobs&&(delete r.jobs[i],a?Hmr(r):r.results[i]=s,n(a,r.results))})}function Gmr(e,t,r,n){var i;return e.length==2?i=e(r,qet(n)):i=e(r,t,qet(n)),i}});var hfe=b((Tsn,$et)=>{$et.exports=Wmr;function Wmr(e,t){var r=!Array.isArray(e),n={index:0,keyedList:r||t?Object.keys(e):null,jobs:{},results:r?{}:[],size:r?Object.keys(e).length:e.length};return t&&n.keyedList.sort(r?t:function(i,a){return t(e[i],e[a])}),n}});var mfe=b((Osn,Bet)=>{var Kmr=ffe(),Ymr=pfe();Bet.exports=Jmr;function Jmr(e){Object.keys(this.jobs).length&&(this.index=this.size,Kmr(this),Ymr(e)(null,this.results))}});var Uet=b((Dsn,Met)=>{var Xmr=dfe(),Qmr=hfe(),Zmr=mfe();Met.exports=e1r;function e1r(e,t,r){for(var n=Qmr(e);n.index<(n.keyedList||e).length;)Xmr(e,t,n,function(i,a){if(i){r(i,a);return}if(Object.keys(n.jobs).length===0){r(null,n.results);return}}),n.index++;return Zmr.bind(n,r)}});var gfe=b((Csn,Sq)=>{var zet=dfe(),t1r=hfe(),r1r=mfe();Sq.exports=n1r;Sq.exports.ascending=Het;Sq.exports.descending=i1r;function n1r(e,t,r,n){var i=t1r(e,r);return zet(e,t,i,function a(s,o){if(s){n(s,o);return}if(i.index++,i.index<(i.keyedList||e).length){zet(e,t,i,a);return}n(null,i.results)}),r1r.bind(i,n)}function Het(e,t){return e<t?-1:e>t?1:0}function i1r(e,t){return-1*Het(e,t)}});var Get=b((Psn,Vet)=>{var a1r=gfe();Vet.exports=s1r;function s1r(e,t,r){return a1r(e,t,null,r)}});var Ket=b((Isn,Wet)=>{Wet.exports={parallel:Uet(),serial:Get(),serialOrdered:gfe()}});var Jet=b((Rsn,Yet)=>{Yet.exports=function(e,t){return Object.keys(t).forEach(function(r){e[r]=e[r]||t[r]}),e}});var Zet=b((Fsn,Qet)=>{var wfe=lfe(),Xet=require("util"),vfe=require("path"),o1r=require("http"),u1r=require("https"),c1r=require("url").parse,l1r=require("fs"),yfe=ofe(),p1r=Ket(),bfe=Jet();Qet.exports=li;Xet.inherits(li,wfe);function li(e){if(!(this instanceof li))return new li;this._overheadLength=0,this._valueLength=0,this._valuesToMeasure=[],wfe.call(this),e=e||{};for(var t in e)this[t]=e[t]}li.LINE_BREAK=`\r
`;li.DEFAULT_CONTENT_TYPE="application/octet-stream";li.prototype.append=function(e,t,r){r=r||{},typeof r=="string"&&(r={filename:r});var n=wfe.prototype.append.bind(this);if(typeof t=="number"&&(t=""+t),Xet.isArray(t)){this._error(new Error("Arrays are not supported."));return}var i=this._multiPartHeader(e,t,r),a=this._multiPartFooter();n(i),n(t),n(a),this._trackLength(i,t,r)};li.prototype._trackLength=function(e,t,r){var n=0;r.knownLength!=null?n+=+r.knownLength:Buffer.isBuffer(t)?n=t.length:typeof t=="string"&&(n=Buffer.byteLength(t)),this._valueLength+=n,this._overheadLength+=Buffer.byteLength(e)+li.LINE_BREAK.length,!(!t||!t.path&&!(t.readable&&t.hasOwnProperty("httpVersion")))&&(r.knownLength||this._valuesToMeasure.push(t))};li.prototype._lengthRetriever=function(e,t){e.hasOwnProperty("fd")?e.end!=null&&e.end!=1/0&&e.start!=null?t(null,e.end+1-(e.start?e.start:0)):l1r.stat(e.path,function(r,n){var i;if(r){t(r);return}i=n.size-(e.start?e.start:0),t(null,i)}):e.hasOwnProperty("httpVersion")?t(null,+e.headers["content-length"]):e.hasOwnProperty("httpModule")?(e.on("response",function(r){e.pause(),t(null,+r.headers["content-length"])}),e.resume()):t("Unknown stream")};li.prototype._multiPartHeader=function(e,t,r){if(typeof r.header=="string")return r.header;var n=this._getContentDisposition(t,r),i=this._getContentType(t,r),a="",s={"Content-Disposition":["form-data",'name="'+e+'"'].concat(n||[]),"Content-Type":[].concat(i||[])};typeof r.header=="object"&&bfe(s,r.header);var o;for(var c in s)s.hasOwnProperty(c)&&(o=s[c],o!=null&&(Array.isArray(o)||(o=[o]),o.length&&(a+=c+": "+o.join("; ")+li.LINE_BREAK)));return"--"+this.getBoundary()+li.LINE_BREAK+a+li.LINE_BREAK};li.prototype._getContentDisposition=function(e,t){var r,n;return typeof t.filepath=="string"?r=vfe.normalize(t.filepath).replace(/\\/g,"/"):t.filename||e.name||e.path?r=vfe.basename(t.filename||e.name||e.path):e.readable&&e.hasOwnProperty("httpVersion")&&(r=vfe.basename(e.client._httpMessage.path)),r&&(n='filename="'+r+'"'),n};li.prototype._getContentType=function(e,t){var r=t.contentType;return!r&&e.name&&(r=yfe.lookup(e.name)),!r&&e.path&&(r=yfe.lookup(e.path)),!r&&e.readable&&e.hasOwnProperty("httpVersion")&&(r=e.headers["content-type"]),!r&&(t.filepath||t.filename)&&(r=yfe.lookup(t.filepath||t.filename)),!r&&typeof e=="object"&&(r=li.DEFAULT_CONTENT_TYPE),r};li.prototype._multiPartFooter=function(){return function(e){var t=li.LINE_BREAK,r=this._streams.length===0;r&&(t+=this._lastBoundary()),e(t)}.bind(this)};li.prototype._lastBoundary=function(){return"--"+this.getBoundary()+"--"+li.LINE_BREAK};li.prototype.getHeaders=function(e){var t,r={"content-type":"multipart/form-data; boundary="+this.getBoundary()};for(t in e)e.hasOwnProperty(t)&&(r[t.toLowerCase()]=e[t]);return r};li.prototype.getBoundary=function(){return this._boundary||this._generateBoundary(),this._boundary};li.prototype._generateBoundary=function(){for(var e="--------------------------",t=0;t<24;t++)e+=Math.floor(Math.random()*10).toString(16);this._boundary=e};li.prototype.getLengthSync=function(){var e=this._overheadLength+this._valueLength;return this._streams.length&&(e+=this._lastBoundary().length),this.hasKnownLength()||this._error(new Error("Cannot calculate proper length in synchronous way.")),e};li.prototype.hasKnownLength=function(){var e=!0;return this._valuesToMeasure.length&&(e=!1),e};li.prototype.getLength=function(e){var t=this._overheadLength+this._valueLength;if(this._streams.length&&(t+=this._lastBoundary().length),!this._valuesToMeasure.length){process.nextTick(e.bind(this,null,t));return}p1r.parallel(this._valuesToMeasure,this._lengthRetriever,function(r,n){if(r){e(r);return}n.forEach(function(i){t+=i}),e(null,t)})};li.prototype.submit=function(e,t){var r,n,i={method:"post"};return typeof e=="string"?(e=c1r(e),n=bfe({port:e.port,path:e.pathname,host:e.hostname,protocol:e.protocol},i)):(n=bfe(e,i),n.port||(n.port=n.protocol=="https:"?443:80)),n.headers=this.getHeaders(e.headers),n.protocol=="https:"?r=u1r.request(n):r=o1r.request(n),this.getLength(function(a,s){if(a){this._error(a);return}r.setHeader("Content-Length",s),this.pipe(r),t&&(r.on("error",t),r.on("response",t.bind(this,null)))}.bind(this)),r};li.prototype._error=function(e){this.error||(this.error=e,this.pause(),this.emit("error",e))};li.prototype.toString=function(){return"[object FormData]"}});var xfe=b((jsn,pA)=>{var f1r=require("stream");function _fe(e){return e instanceof f1r.Stream}function ett(e){return _fe(e)&&typeof e._read=="function"&&typeof e._readableState=="object"}function ttt(e){return _fe(e)&&typeof e._write=="function"&&typeof e._writableState=="object"}function d1r(e){return ett(e)&&ttt(e)}pA.exports=_fe;pA.exports.isReadable=ett;pA.exports.isWritable=ttt;pA.exports.isDuplex=d1r});var itt=b((Nsn,ntt)=>{"use strict";function rtt(e){return e.replace(/^\.*/,".").toLowerCase()}function h1r(e){e=e.trim().toLowerCase();var t=e.split(":",2),r=rtt(t[0]),n=t[1],i=e.indexOf(":")>-1;return{hostname:r,port:n,hasPort:i}}function m1r(e,t){var r=e.port||(e.protocol==="https:"?"443":"80"),n=rtt(e.hostname),i=t.split(",");return i.map(h1r).some(function(a){var s=n.indexOf(a.hostname),o=s>-1&&s===n.length-a.hostname.length;return a.hasPort?r===a.port&&o:o})}function g1r(e){var t=process.env.NO_PROXY||process.env.no_proxy||"";return t==="*"||t!==""&&m1r(e,t)?null:e.protocol==="http:"?process.env.HTTP_PROXY||process.env.http_proxy||null:e.protocol==="https:"&&(process.env.HTTPS_PROXY||process.env.https_proxy||process.env.HTTP_PROXY||process.env.http_proxy)||null}ntt.exports=g1r});var Sfe=b((qsn,stt)=>{"use strict";var Efe=Object.prototype.hasOwnProperty,lh=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),v1r=function(t){for(var r;t.length;){var n=t.pop();if(r=n.obj[n.prop],Array.isArray(r)){for(var i=[],a=0;a<r.length;++a)typeof r[a]<"u"&&i.push(r[a]);n.obj[n.prop]=i}}return r},att=function(t,r){for(var n=r&&r.plainObjects?Object.create(null):{},i=0;i<t.length;++i)typeof t[i]<"u"&&(n[i]=t[i]);return n},y1r=function e(t,r,n){if(!r)return t;if(typeof r!="object"){if(Array.isArray(t))t.push(r);else if(t&&typeof t=="object")(n&&(n.plainObjects||n.allowPrototypes)||!Efe.call(Object.prototype,r))&&(t[r]=!0);else return[t,r];return t}if(!t||typeof t!="object")return[t].concat(r);var i=t;return Array.isArray(t)&&!Array.isArray(r)&&(i=att(t,n)),Array.isArray(t)&&Array.isArray(r)?(r.forEach(function(a,s){if(Efe.call(t,s)){var o=t[s];o&&typeof o=="object"&&a&&typeof a=="object"?t[s]=e(o,a,n):t.push(a)}else t[s]=a}),t):Object.keys(r).reduce(function(a,s){var o=r[s];return Efe.call(a,s)?a[s]=e(a[s],o,n):a[s]=o,a},i)},b1r=function(t,r){return Object.keys(r).reduce(function(n,i){return n[i]=r[i],n},t)},w1r=function(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch{return e}},_1r=function(t){if(t.length===0)return t;for(var r=typeof t=="string"?t:String(t),n="",i=0;i<r.length;++i){var a=r.charCodeAt(i);if(a===45||a===46||a===95||a===126||a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122){n+=r.charAt(i);continue}if(a<128){n=n+lh[a];continue}if(a<2048){n=n+(lh[192|a>>6]+lh[128|a&63]);continue}if(a<55296||a>=57344){n=n+(lh[224|a>>12]+lh[128|a>>6&63]+lh[128|a&63]);continue}i+=1,a=65536+((a&1023)<<10|r.charCodeAt(i)&1023),n+=lh[240|a>>18]+lh[128|a>>12&63]+lh[128|a>>6&63]+lh[128|a&63]}return n},x1r=function(t){for(var r=[{obj:{o:t},prop:"o"}],n=[],i=0;i<r.length;++i)for(var a=r[i],s=a.obj[a.prop],o=Object.keys(s),c=0;c<o.length;++c){var p=o[c],f=s[p];typeof f=="object"&&f!==null&&n.indexOf(f)===-1&&(r.push({obj:s,prop:p}),n.push(f))}return v1r(r)},E1r=function(t){return Object.prototype.toString.call(t)==="[object RegExp]"},S1r=function(t){return t===null||typeof t>"u"?!1:!!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t))};stt.exports={arrayToObject:att,assign:b1r,compact:x1r,decode:w1r,encode:_1r,isBuffer:S1r,isRegExp:E1r,merge:y1r}});var kfe=b((Lsn,ott)=>{"use strict";var k1r=String.prototype.replace,A1r=/%20/g;ott.exports={default:"RFC3986",formatters:{RFC1738:function(e){return k1r.call(e,A1r,"+")},RFC3986:function(e){return String(e)}},RFC1738:"RFC1738",RFC3986:"RFC3986"}});var ltt=b(($sn,ctt)=>{"use strict";var Ofe=Sfe(),Afe=kfe(),utt={brackets:function(t){return t+"[]"},indices:function(t,r){return t+"["+r+"]"},repeat:function(t){return t}},kq=Array.isArray,T1r=Array.prototype.push,Tfe=function(e,t){T1r.apply(e,kq(t)?t:[t])},O1r=Date.prototype.toISOString,ph={delimiter:"&",encode:!0,encoder:Ofe.encode,encodeValuesOnly:!1,serializeDate:function(t){return O1r.call(t)},skipNulls:!1,strictNullHandling:!1},D1r=function e(t,r,n,i,a,s,o,c,p,f,d,h){var g=t;if(typeof o=="function"?g=o(r,g):g instanceof Date&&(g=f(g)),g===null){if(i)return s&&!h?s(r,ph.encoder):r;g=""}if(typeof g=="string"||typeof g=="number"||typeof g=="boolean"||Ofe.isBuffer(g)){if(s){var v=h?r:s(r,ph.encoder);return[d(v)+"="+d(s(g,ph.encoder))]}return[d(r)+"="+d(String(g))]}var y=[];if(typeof g>"u")return y;var _;if(kq(o))_=o;else{var x=Object.keys(g);_=c?x.sort(c):x}for(var A=0;A<_.length;++A){var D=_[A];a&&g[D]===null||(kq(g)?Tfe(y,e(g[D],n(r,D),n,i,a,s,o,c,p,f,d,h)):Tfe(y,e(g[D],r+(p?"."+D:"["+D+"]"),n,i,a,s,o,c,p,f,d,h)))}return y};ctt.exports=function(e,t){var r=e,n=t?Ofe.assign({},t):{};if(n.encoder!==null&&typeof n.encoder<"u"&&typeof n.encoder!="function")throw new TypeError("Encoder has to be a function.");var i=typeof n.delimiter>"u"?ph.delimiter:n.delimiter,a=typeof n.strictNullHandling=="boolean"?n.strictNullHandling:ph.strictNullHandling,s=typeof n.skipNulls=="boolean"?n.skipNulls:ph.skipNulls,o=typeof n.encode=="boolean"?n.encode:ph.encode,c=typeof n.encoder=="function"?n.encoder:ph.encoder,p=typeof n.sort=="function"?n.sort:null,f=typeof n.allowDots>"u"?!1:n.allowDots,d=typeof n.serializeDate=="function"?n.serializeDate:ph.serializeDate,h=typeof n.encodeValuesOnly=="boolean"?n.encodeValuesOnly:ph.encodeValuesOnly;if(typeof n.format>"u")n.format=Afe.default;else if(!Object.prototype.hasOwnProperty.call(Afe.formatters,n.format))throw new TypeError("Unknown format option provided.");var g=Afe.formatters[n.format],v,y;typeof n.filter=="function"?(y=n.filter,r=y("",r)):kq(n.filter)&&(y=n.filter,v=y);var _=[];if(typeof r!="object"||r===null)return"";var x;n.arrayFormat in utt?x=n.arrayFormat:"indices"in n?x=n.indices?"indices":"repeat":x="indices";var A=utt[x];v||(v=Object.keys(r)),p&&v.sort(p);for(var D=0;D<v.length;++D){var j=v[D];s&&r[j]===null||Tfe(_,D1r(r[j],j,A,a,s,o?c:null,y,p,f,d,g,h))}var H=_.join(i),F=n.addQueryPrefix===!0?"?":"";return H.length>0?F+H:""}});var ftt=b((Bsn,ptt)=>{"use strict";var fA=Sfe(),Dfe=Object.prototype.hasOwnProperty,fp={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:fA.decode,delimiter:"&",depth:5,parameterLimit:1e3,plainObjects:!1,strictNullHandling:!1},C1r=function(t,r){for(var n={},i=r.ignoreQueryPrefix?t.replace(/^\?/,""):t,a=r.parameterLimit===1/0?void 0:r.parameterLimit,s=i.split(r.delimiter,a),o=0;o<s.length;++o){var c=s[o],p=c.indexOf("]="),f=p===-1?c.indexOf("="):p+1,d,h;f===-1?(d=r.decoder(c,fp.decoder),h=r.strictNullHandling?null:""):(d=r.decoder(c.slice(0,f),fp.decoder),h=r.decoder(c.slice(f+1),fp.decoder)),Dfe.call(n,d)?n[d]=[].concat(n[d]).concat(h):n[d]=h}return n},P1r=function(e,t,r){for(var n=t,i=e.length-1;i>=0;--i){var a,s=e[i];if(s==="[]"&&r.parseArrays)a=[].concat(n);else{a=r.plainObjects?Object.create(null):{};var o=s.charAt(0)==="["&&s.charAt(s.length-1)==="]"?s.slice(1,-1):s,c=parseInt(o,10);!r.parseArrays&&o===""?a={0:n}:!isNaN(c)&&s!==o&&String(c)===o&&c>=0&&r.parseArrays&&c<=r.arrayLimit?(a=[],a[c]=n):o!=="__proto__"&&(a[o]=n)}n=a}return n},I1r=function(t,r,n){if(t){var i=n.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t,a=/(\[[^[\]]*])/,s=/(\[[^[\]]*])/g,o=a.exec(i),c=o?i.slice(0,o.index):i,p=[];if(c){if(!n.plainObjects&&Dfe.call(Object.prototype,c)&&!n.allowPrototypes)return;p.push(c)}for(var f=0;(o=s.exec(i))!==null&&f<n.depth;){if(f+=1,!n.plainObjects&&Dfe.call(Object.prototype,o[1].slice(1,-1))&&!n.allowPrototypes)return;p.push(o[1])}return o&&p.push("["+i.slice(o.index)+"]"),P1r(p,r,n)}};ptt.exports=function(e,t){var r=t?fA.assign({},t):{};if(r.decoder!==null&&r.decoder!==void 0&&typeof r.decoder!="function")throw new TypeError("Decoder has to be a function.");if(r.ignoreQueryPrefix=r.ignoreQueryPrefix===!0,r.delimiter=typeof r.delimiter=="string"||fA.isRegExp(r.delimiter)?r.delimiter:fp.delimiter,r.depth=typeof r.depth=="number"?r.depth:fp.depth,r.arrayLimit=typeof r.arrayLimit=="number"?r.arrayLimit:fp.arrayLimit,r.parseArrays=r.parseArrays!==!1,r.decoder=typeof r.decoder=="function"?r.decoder:fp.decoder,r.allowDots=typeof r.allowDots=="boolean"?r.allowDots:fp.allowDots,r.plainObjects=typeof r.plainObjects=="boolean"?r.plainObjects:fp.plainObjects,r.allowPrototypes=typeof r.allowPrototypes=="boolean"?r.allowPrototypes:fp.allowPrototypes,r.parameterLimit=typeof r.parameterLimit=="number"?r.parameterLimit:fp.parameterLimit,r.strictNullHandling=typeof r.strictNullHandling=="boolean"?r.strictNullHandling:fp.strictNullHandling,e===""||e===null||typeof e>"u")return r.plainObjects?Object.create(null):{};for(var n=typeof e=="string"?C1r(e,r):e,i=r.plainObjects?Object.create(null):{},a=Object.keys(n),s=0;s<a.length;++s){var o=a[s],c=I1r(o,n[o],r);i=fA.merge(i,c,r)}return fA.compact(i)}});var Cfe=b((Msn,dtt)=>{"use strict";var R1r=ltt(),F1r=ftt(),j1r=kfe();dtt.exports={formats:j1r,parse:F1r,stringify:R1r}});var gtt=b(mtt=>{"use strict";var N1r=Cfe(),htt=require("querystring");function K3(e){this.request=e,this.lib=null,this.useQuerystring=null,this.parseOptions=null,this.stringifyOptions=null}K3.prototype.init=function(e){this.lib||(this.useQuerystring=e.useQuerystring,this.lib=this.useQuerystring?htt:N1r,this.parseOptions=e.qsParseOptions||{},this.stringifyOptions=e.qsStringifyOptions||{})};K3.prototype.stringify=function(e){return this.useQuerystring?this.rfc3986(this.lib.stringify(e,this.stringifyOptions.sep||null,this.stringifyOptions.eq||null,this.stringifyOptions)):this.lib.stringify(e,this.stringifyOptions)};K3.prototype.parse=function(e){return this.useQuerystring?this.lib.parse(e,this.parseOptions.sep||null,this.parseOptions.eq||null,this.parseOptions):this.lib.parse(e,this.parseOptions)};K3.prototype.rfc3986=function(e){return e.replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})};K3.prototype.unescape=htt.unescape;mtt.Querystring=K3});var btt=b((zsn,ytt)=>{function vtt(e){var t="validation failed";this.name="HARError",this.message=t,this.errors=e,typeof Error.captureStackTrace=="function"?Error.captureStackTrace(this,this.constructor):this.stack=new Error(t).stack}vtt.prototype=Error.prototype;ytt.exports=vtt});var wtt=b((Hsn,q1r)=>{q1r.exports={$id:"afterRequest.json#",$schema:"http://json-schema.org/draft-06/schema#",type:"object",optional:!0,required:["lastAccess","eTag","hitCount"],properties:{expires:{type:"string",pattern:"^(\\d{4})(-)?(\\d\\d)(-)?(\\d\\d)(T)?(\\d\\d)(:)?(\\d\\d)(:)?(\\d\\d)(\\.\\d+)?(Z|([+-])(\\d\\d)(:)?(\\d\\d))?"},lastAccess:{type:"string",pattern:"^(\\d{4})(-)?(\\d\\d)(-)?(\\d\\d)(T)?(\\d\\d)(:)?(\\d\\d)(:)?(\\d\\d)(\\.\\d+)?(Z|([+-])(\\d\\d)(:)?(\\d\\d))?"},eTag:{type:"string"},hitCount:{type:"integer"},comment:{type:"string"}}}});var _tt=b((Vsn,L1r)=>{L1r.exports={$id:"beforeRequest.json#",$schema:"http://json-schema.org/draft-06/schema#",type:"object",optional:!0,required:["lastAccess","eTag","hitCount"],properties:{expires:{type:"string",pattern:"^(\\d{4})(-)?(\\d\\d)(-)?(\\d\\d)(T)?(\\d\\d)(:)?(\\d\\d)(:)?(\\d\\d)(\\.\\d+)?(Z|([+-])(\\d\\d)(:)?(\\d\\d))?"},lastAccess:{type:"string",pattern:"^(\\d{4})(-)?(\\d\\d)(-)?(\\d\\d)(T)?(\\d\\d)(:)?(\\d\\d)(:)?(\\d\\d)(\\.\\d+)?(Z|([+-])(\\d\\d)(:)?(\\d\\d))?"},eTag:{type:"string"},hitCount:{type:"integer"},comment:{type:"string"}}}});var xtt=b((Gsn,$1r)=>{$1r.exports={$id:"browser.json#",$schema:"http://json-schema.org/draft-06/schema#",type:"object",required:["name","version"],properties:{name:{type:"string"},version:{type:"string"},comment:{type:"string"}}}});var Ett=b((Wsn,B1r)=>{B1r.exports={$id:"cache.json#",$schema:"http://json-schema.org/draft-06/schema#",properties:{beforeRequest:{oneOf:[{type:"null"},{$ref:"beforeRequest.json#"}]},afterRequest:{oneOf:[{type:"null"},{$ref:"afterRequest.json#"}]},comment:{type:"string"}}}});var Stt=b((Ksn,M1r)=>{M1r.exports={$id:"content.json#",$schema:"http://json-schema.org/draft-06/schema#",type:"object",required:["size","mimeType"],properties:{size:{type:"integer"},compression:{type:"integer"},mimeType:{type:"string"},text:{type:"string"},encoding:{type:"string"},comment:{type:"string"}}}});var ktt=b((Ysn,U1r)=>{U1r.exports={$id:"cookie.json#",$schema:"http://json-schema.org/draft-06/schema#",type:"object",required:["name","value"],properties:{name:{type:"string"},value:{type:"string"},path:{type:"string"},domain:{type:"string"},expires:{type:["string","null"],format:"date-time"},httpOnly:{type:"boolean"},secure:{type:"boolean"},comment:{type:"string"}}}});var Att=b((Jsn,z1r)=>{z1r.exports={$id:"creator.json#",$schema:"http://json-schema.org/draft-06/schema#",type:"object",required:["name","version"],properties:{name:{type:"string"},version:{type:"string"},comment:{type:"string"}}}});var Ttt=b((Xsn,H1r)=>{H1r.exports={$id:"entry.json#",$schema:"http://json-schema.org/draft-06/schema#",type:"object",optional:!0,required:["startedDateTime","time","request","response","cache","timings"],properties:{pageref:{type:"string"},startedDateTime:{type:"string",format:"date-time",pattern:"^(\\d{4})(-)?(\\d\\d)(-)?(\\d\\d)(T)?(\\d\\d)(:)?(\\d\\d)(:)?(\\d\\d)(\\.\\d+)?(Z|([+-])(\\d\\d)(:)?(\\d\\d))"},time:{type:"number",min:0},request:{$ref:"request.json#"},response:{$ref:"response.json#"},cache:{$ref:"cache.json#"},timings:{$ref:"timings.json#"},serverIPAddress:{type:"string",oneOf:[{format:"ipv4"},{format:"ipv6"}]},connection:{type:"string"},comment:{type:"string"}}}});var Ott=b((Qsn,V1r)=>{V1r.exports={$id:"har.json#",$schema:"http://json-schema.org/draft-06/schema#",type:"object",required:["log"],properties:{log:{$ref:"log.json#"}}}});var Dtt=b((Zsn,G1r)=>{G1r.exports={$id:"header.json#",$schema:"http://json-schema.org/draft-06/schema#",type:"object",required:["name","value"],properties:{name:{type:"string"},value:{type:"string"},comment:{type:"string"}}}});var Ctt=b((eon,W1r)=>{W1r.exports={$id:"log.json#",$schema:"http://json-schema.org/draft-06/schema#",type:"object",required:["version","creator","entries"],properties:{version:{type:"string"},creator:{$ref:"creator.json#"},browser:{$ref:"browser.json#"},pages:{type:"array",items:{$ref:"page.json#"}},entries:{type:"array",items:{$ref:"entry.json#"}},comment:{type:"string"}}}});var Ptt=b((ton,K1r)=>{K1r.exports={$id:"page.json#",$schema:"http://json-schema.org/draft-06/schema#",type:"object",optional:!0,required:["startedDateTime","id","title","pageTimings"],properties:{startedDateTime:{type:"string",format:"date-time",pattern:"^(\\d{4})(-)?(\\d\\d)(-)?(\\d\\d)(T)?(\\d\\d)(:)?(\\d\\d)(:)?(\\d\\d)(\\.\\d+)?(Z|([+-])(\\d\\d)(:)?(\\d\\d))"},id:{type:"string",unique:!0},title:{type:"string"},pageTimings:{$ref:"pageTimings.json#"},comment:{type:"string"}}}});var Itt=b((ron,Y1r)=>{Y1r.exports={$id:"pageTimings.json#",$schema:"http://json-schema.org/draft-06/schema#",type:"object",properties:{onContentLoad:{type:"number",min:-1},onLoad:{type:"number",min:-1},comment:{type:"string"}}}});var Rtt=b((non,J1r)=>{J1r.exports={$id:"postData.json#",$schema:"http://json-schema.org/draft-06/schema#",type:"object",optional:!0,required:["mimeType"],properties:{mimeType:{type:"string"},text:{type:"string"},params:{type:"array",required:["name"],properties:{name:{type:"string"},value:{type:"string"},fileName:{type:"string"},contentType:{type:"string"},comment:{type:"string"}}},comment:{type:"string"}}}});var Ftt=b((ion,X1r)=>{X1r.exports={$id:"query.json#",$schema:"http://json-schema.org/draft-06/schema#",type:"object",required:["name","value"],properties:{name:{type:"string"},value:{type:"string"},comment:{type:"string"}}}});var jtt=b((aon,Q1r)=>{Q1r.exports={$id:"request.json#",$schema:"http://json-schema.org/draft-06/schema#",type:"object",required:["method","url","httpVersion","cookies","headers","queryString","headersSize","bodySize"],properties:{method:{type:"string"},url:{type:"string",format:"uri"},httpVersion:{type:"string"},cookies:{type:"array",items:{$ref:"cookie.json#"}},headers:{type:"array",items:{$ref:"header.json#"}},queryString:{type:"array",items:{$ref:"query.json#"}},postData:{$ref:"postData.json#"},headersSize:{type:"integer"},bodySize:{type:"integer"},comment:{type:"string"}}}});var Ntt=b((son,Z1r)=>{Z1r.exports={$id:"response.json#",$schema:"http://json-schema.org/draft-06/schema#",type:"object",required:["status","statusText","httpVersion","cookies","headers","content","redirectURL","headersSize","bodySize"],properties:{status:{type:"integer"},statusText:{type:"string"},httpVersion:{type:"string"},cookies:{type:"array",items:{$ref:"cookie.json#"}},headers:{type:"array",items:{$ref:"header.json#"}},content:{$ref:"content.json#"},redirectURL:{type:"string"},headersSize:{type:"integer"},bodySize:{type:"integer"},comment:{type:"string"}}}});var qtt=b((oon,e0r)=>{e0r.exports={$id:"timings.json#",$schema:"http://json-schema.org/draft-06/schema#",required:["send","wait","receive"],properties:{dns:{type:"number",min:-1},connect:{type:"number",min:-1},blocked:{type:"number",min:-1},send:{type:"number",min:-1},wait:{type:"number",min:-1},receive:{type:"number",min:-1},ssl:{type:"number",min:-1},comment:{type:"string"}}}});var $tt=b((uon,Ltt)=>{"use strict";Ltt.exports={afterRequest:wtt(),beforeRequest:_tt(),browser:xtt(),cache:Ett(),content:Stt(),cookie:ktt(),creator:Att(),entry:Ttt(),har:Ott(),header:Dtt(),log:Ctt(),page:Ptt(),pageTimings:Itt(),postData:Rtt(),query:Ftt(),request:jtt(),response:Ntt(),timings:qtt()}});var Btt=b((con,t0r)=>{t0r.exports={$schema:"http://json-schema.org/draft-06/schema#",$id:"http://json-schema.org/draft-06/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},title:{type:"string"},description:{type:"string"},default:{},examples:{type:"array",items:{}},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:{}},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:{},enum:{type:"array",minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:{}}});var Mtt=b(Xs=>{var r0r=noe(),n0r=btt(),i0r=$tt(),Pfe;function a0r(){var e=new r0r({allErrors:!0});return e.addMetaSchema(Btt()),e.addSchema(i0r),e}function lo(e,t){t=t||{},Pfe=Pfe||a0r();var r=Pfe.getSchema(e+".json");return new Promise(function(n,i){var a=r(t);a?n(t):i(new n0r(r.errors))})}Xs.afterRequest=function(e){return lo("afterRequest",e)};Xs.beforeRequest=function(e){return lo("beforeRequest",e)};Xs.browser=function(e){return lo("browser",e)};Xs.cache=function(e){return lo("cache",e)};Xs.content=function(e){return lo("content",e)};Xs.cookie=function(e){return lo("cookie",e)};Xs.creator=function(e){return lo("creator",e)};Xs.entry=function(e){return lo("entry",e)};Xs.har=function(e){return lo("har",e)};Xs.header=function(e){return lo("header",e)};Xs.log=function(e){return lo("log",e)};Xs.page=function(e){return lo("page",e)};Xs.pageTimings=function(e){return lo("pageTimings",e)};Xs.postData=function(e){return lo("postData",e)};Xs.query=function(e){return lo("query",e)};Xs.request=function(e){return lo("request",e)};Xs.response=function(e){return lo("response",e)};Xs.timings=function(e){return lo("timings",e)}});var ztt=b(Utt=>{"use strict";var s0r=require("fs"),o0r=require("querystring"),u0r=Mtt(),c0r=v3();function Aq(e){this.request=e}Aq.prototype.reducer=function(e,t){if(e[t.name]===void 0)return e[t.name]=t.value,e;var r=[e[t.name],t.value];return e[t.name]=r,e};Aq.prototype.prep=function(e){if(e.queryObj={},e.headersObj={},e.postData.jsonObj=!1,e.postData.paramsObj=!1,e.queryString&&e.queryString.length&&(e.queryObj=e.queryString.reduce(this.reducer,{})),e.headers&&e.headers.length&&(e.headersObj=e.headers.reduceRight(function(n,i){return n[i.name]=i.value,n},{})),e.cookies&&e.cookies.length){var t=e.cookies.map(function(n){return n.name+"="+n.value});t.length&&(e.headersObj.cookie=t.join("; "))}function r(n){return n.some(function(i){return e.postData.mimeType.indexOf(i)===0})}if(r(["multipart/mixed","multipart/related","multipart/form-data","multipart/alternative"]))e.postData.mimeType="multipart/form-data";else if(r(["application/x-www-form-urlencoded"]))e.postData.params?(e.postData.paramsObj=e.postData.params.reduce(this.reducer,{}),e.postData.text=o0r.stringify(e.postData.paramsObj)):e.postData.text="";else if(r(["text/json","text/x-json","application/json","application/x-json"])&&(e.postData.mimeType="application/json",e.postData.text))try{e.postData.jsonObj=JSON.parse(e.postData.text)}catch(n){this.request.debug(n),e.postData.mimeType="text/plain"}return e};Aq.prototype.options=function(e){if(!e.har)return e;var t={};if(c0r(t,e.har),t.log&&t.log.entries&&(t=t.log.entries[0]),t.url=t.url||e.url||e.uri||e.baseUrl||"/",t.httpVersion=t.httpVersion||"HTTP/1.1",t.queryString=t.queryString||[],t.headers=t.headers||[],t.cookies=t.cookies||[],t.postData=t.postData||{},t.postData.mimeType=t.postData.mimeType||"application/octet-stream",t.bodySize=0,t.headersSize=0,t.postData.size=0,!u0r.request(t))return e;var r=this.prep(t);r.url&&(e.url=r.url),r.method&&(e.method=r.method),Object.keys(r.queryObj).length&&(e.qs=r.queryObj),Object.keys(r.headersObj).length&&(e.headers=r.headersObj);function n(i){return r.postData.mimeType.indexOf(i)===0}return n("application/x-www-form-urlencoded")?e.form=r.postData.paramsObj:n("application/json")?r.postData.jsonObj&&(e.body=r.postData.jsonObj,e.json=!0):n("multipart/form-data")?(e.formData={},r.postData.params.forEach(function(i){var a={};if(!i.fileName&&!i.contentType){e.formData[i.name]=i.value;return}i.fileName&&!i.value?a.value=s0r.createReadStream(i.fileName):i.value&&(a.value=i.value),i.fileName&&(a.options={filename:i.fileName,contentType:i.contentType?i.contentType:null}),e.formData[i.name]=a})):r.postData.text&&(e.body=r.postData.text),e};Utt.Har=Aq});var Vtt=b((fon,Htt)=>{var l0r=require("crypto");Htt.exports=function(){return l0r.randomBytes(16)}});var Ktt=b((don,Wtt)=>{var Gtt=[];for(dA=0;dA<256;++dA)Gtt[dA]=(dA+256).toString(16).substr(1);var dA;function p0r(e,t){var r=t||0,n=Gtt;return[n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]]].join("")}Wtt.exports=p0r});var Tq=b((hon,Ytt)=>{var f0r=Vtt(),d0r=Ktt();function h0r(e,t,r){var n=t&&r||0;typeof e=="string"&&(t=e==="binary"?new Array(16):null,e=null),e=e||{};var i=e.random||(e.rng||f0r)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t)for(var a=0;a<16;++a)t[n+a]=i[a];return t||d0r(i)}Ytt.exports=h0r});var Qtt=b(Xtt=>{"use strict";var m0r=xq(),g0r=Tq(),Jtt=AN(),hA=Jtt.md5,v0r=Jtt.toBase64;function Y3(e){this.request=e,this.hasAuth=!1,this.sentAuth=!1,this.bearerToken=null,this.user=null,this.pass=null}Y3.prototype.basic=function(e,t,r){var n=this;(typeof e!="string"||t!==void 0&&typeof t!="string")&&n.request.emit("error",new Error("auth() received invalid user or password")),n.user=e,n.pass=t,n.hasAuth=!0;var i=e+":"+(t||"");if(r||typeof r>"u"){var a="Basic "+v0r(i);return n.sentAuth=!0,a}};Y3.prototype.bearer=function(e,t){var r=this;if(r.bearerToken=e,r.hasAuth=!0,t||typeof t>"u"){typeof e=="function"&&(e=e());var n="Bearer "+(e||"");return r.sentAuth=!0,n}};Y3.prototype.digest=function(e,t,r){for(var n=this,i={},a=/([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi;;){var s=a.exec(r);if(!s)break;i[s[1]]=s[2]||s[3]}var o=function(_,x,A,D,j,H){var F=hA(x+":"+A+":"+D);return _&&_.toLowerCase()==="md5-sess"?hA(F+":"+j+":"+H):F},c=/(^|,)\s*auth\s*($|,)/.test(i.qop)&&"auth",p=c&&"00000001",f=c&&g0r().replace(/-/g,""),d=o(i.algorithm,n.user,i.realm,n.pass,i.nonce,f),h=hA(e+":"+t),g=hA(c?d+":"+i.nonce+":"+p+":"+f+":"+c+":"+h:d+":"+i.nonce+":"+h),v={username:n.user,realm:i.realm,nonce:i.nonce,uri:t,qop:c,response:g,nc:p,cnonce:f,algorithm:i.algorithm,opaque:i.opaque};r=[];for(var y in v)v[y]&&(y==="qop"||y==="nc"||y==="algorithm"?r.push(y+"="+v[y]):r.push(y+'="'+v[y]+'"'));return r="Digest "+r.join(", "),n.sentAuth=!0,r};Y3.prototype.onRequest=function(e,t,r,n){var i=this,a=i.request,s;n===void 0&&e===void 0?i.request.emit("error",new Error("no auth mechanism defined")):n!==void 0?s=i.bearer(n,r):s=i.basic(e,t,r),s&&a.setHeader("authorization",s)};Y3.prototype.onResponse=function(e){var t=this,r=t.request;if(!t.hasAuth||t.sentAuth)return null;var n=m0r(e.headers),i=n.get("www-authenticate"),a=i&&i.split(" ")[0].toLowerCase();switch(r.debug("reauth",a),a){case"basic":return t.basic(t.user,t.pass,!0);case"bearer":return t.bearer(t.bearerToken,!0);case"digest":return t.digest(r.method,r.path,i)}};Xtt.Auth=Y3});var srt=b(rv=>{var ert=require("crypto");function trt(e,t,r){return ert.createHmac(r,e).update(t).digest("base64")}function y0r(e,t){return ert.createSign("RSA-SHA1").update(t).sign(e,"base64")}function H1(e){return encodeURIComponent(e).replace(/!/g,"%21").replace(/\*/g,"%2A").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/'/g,"%27")}function b0r(e){var t,r,n=[];for(t in e)if(r=e[t],Array.isArray(r))for(var i=0;i<r.length;i++)n.push([t,r[i]]);else if(typeof r=="object")for(var a in r)n.push([t+"["+a+"]",r[a]]);else n.push([t,r]);return n}function Ztt(e,t){return e>t?1:e<t?-1:0}function Oq(e,t,r){var n=b0r(r).map(function(a){return[H1(a[0]),H1(a[1]||"")]}).sort(function(a,s){return Ztt(a[0],s[0])||Ztt(a[1],s[1])}).map(function(a){return a.join("=")}).join("&"),i=[H1(e?e.toUpperCase():"GET"),H1(t),H1(n)].join("&");return i}function rrt(e,t,r,n,i){var a=Oq(e,t,r),s=[n||"",i||""].map(H1).join("&");return trt(s,a,"sha1")}function nrt(e,t,r,n,i){var a=Oq(e,t,r),s=[n||"",i||""].map(H1).join("&");return trt(s,a,"sha256")}function irt(e,t,r,n,i){var a=Oq(e,t,r),s=n||"";return y0r(s,a)}function art(e,t){var r=[e||"",t||""].map(H1).join("&");return r}function w0r(e,t,r,n,i,a){var s,o=1;switch(e){case"RSA-SHA1":s=irt;break;case"HMAC-SHA1":s=rrt;break;case"HMAC-SHA256":s=nrt;break;case"PLAINTEXT":s=art,o=4;break;default:throw new Error("Signature method not supported: "+e)}return s.apply(null,[].slice.call(arguments,o))}rv.hmacsign=rrt;rv.hmacsign256=nrt;rv.rsasign=irt;rv.plaintext=art;rv.sign=w0r;rv.rfc3986=H1;rv.generateBase=Oq});var crt=b(urt=>{"use strict";var _0r=require("url"),x0r=Cfe(),E0r=xq(),S0r=Tq(),ort=srt(),k0r=require("crypto"),A0r=Tf().Buffer;function mA(e){this.request=e,this.params=null}mA.prototype.buildParams=function(e,t,r,n,i,a){var s={};for(var o in e)s["oauth_"+o]=e[o];s.oauth_version||(s.oauth_version="1.0"),s.oauth_timestamp||(s.oauth_timestamp=Math.floor(Date.now()/1e3).toString()),s.oauth_nonce||(s.oauth_nonce=S0r().replace(/-/g,"")),s.oauth_signature_method||(s.oauth_signature_method="HMAC-SHA1");var c=s.oauth_consumer_secret||s.oauth_private_key;delete s.oauth_consumer_secret,delete s.oauth_private_key;var p=s.oauth_token_secret;delete s.oauth_token_secret;var f=s.oauth_realm;delete s.oauth_realm,delete s.oauth_transport_method;var d=t.protocol+"//"+t.host+t.pathname,h=a.parse([].concat(n,i,a.stringify(s)).join("&"));return s.oauth_signature=ort.sign(s.oauth_signature_method,r,d,h,c,p),f&&(s.realm=f),s};mA.prototype.buildBodyHash=function(e,t){["HMAC-SHA1","RSA-SHA1"].indexOf(e.signature_method||"HMAC-SHA1")<0&&this.request.emit("error",new Error("oauth: "+e.signature_method+" signature_method not supported with body_hash signing."));var r=k0r.createHash("sha1");r.update(t||"");var n=r.digest("hex");return A0r.from(n,"hex").toString("base64")};mA.prototype.concatParams=function(e,t,r){r=r||"";var n=Object.keys(e).filter(function(i){return i!=="realm"&&i!=="oauth_signature"}).sort();return e.realm&&n.splice(0,0,"realm"),n.push("oauth_signature"),n.map(function(i){return i+"="+r+ort.rfc3986(e[i])+r}).join(t)};mA.prototype.onRequest=function(e){var t=this;t.params=e;var r=t.request.uri||{},n=t.request.method||"",i=E0r(t.request.headers),a=t.request.body||"",s=t.request.qsLib||x0r,o,c,p=i.get("content-type")||"",f="application/x-www-form-urlencoded",d=e.transport_method||"header";p.slice(0,f.length)===f&&(p=f,o=a),r.query&&(c=r.query),d==="body"&&(n!=="POST"||p!==f)&&t.request.emit("error",new Error("oauth: transport_method of body requires POST and content-type "+f)),!o&&typeof e.body_hash=="boolean"&&(e.body_hash=t.buildBodyHash(e,t.request.body.toString()));var h=t.buildParams(e,r,n,c,o,s);switch(d){case"header":t.request.setHeader("Authorization","OAuth "+t.concatParams(h,",",'"'));break;case"query":var g=t.request.uri.href+=(c?"&":"?")+t.concatParams(h,"&");t.request.uri=_0r.parse(g),t.request.path=t.request.uri.path;break;case"body":t.request.body=(o?o+"&":"")+t.concatParams(h,"&");break;default:t.request.emit("error",new Error("oauth: transport_method invalid"))}};urt.OAuth=mA});var lrt=b(Dq=>{"use strict";var Ife=require("crypto");function T0r(e){var t=(e+1)*6,r=Ife.randomBytes(Math.ceil(t/8)),n=r.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"");return n.slice(0,e)}function O0r(e,t,r){var n=Ife.createHash(t);return n.update(`hawk.1.payload
`),n.update((r?r.split(";")[0].trim().toLowerCase():"")+`
`),n.update(e||""),n.update(`
`),n.digest("base64")}Dq.calculateMac=function(e,t){var r=`hawk.1.header
`+t.ts+`
`+t.nonce+`
`+(t.method||"").toUpperCase()+`
`+t.resource+`
`+t.host.toLowerCase()+`
`+t.port+`
`+(t.hash||"")+`
`;t.ext&&(r=r+t.ext.replace("\\","\\\\").replace(`
`,"\\n")),r=r+`
`,t.app&&(r=r+t.app+`
`+(t.dlg||"")+`
`);var n=Ife.createHmac(e.algorithm,e.key).update(r),i=n.digest("base64");return i};Dq.header=function(e,t,r){var n=r.timestamp||Math.floor((Date.now()+(r.localtimeOffsetMsec||0))/1e3),i=r.credentials;if(!i||!i.id||!i.key||!i.algorithm||["sha1","sha256"].indexOf(i.algorithm)===-1)return"";var a={ts:n,nonce:r.nonce||T0r(6),method:t,resource:e.pathname+(e.search||""),host:e.hostname,port:e.port||(e.protocol==="http:"?80:443),hash:r.hash,ext:r.ext,app:r.app,dlg:r.dlg};!a.hash&&(r.payload||r.payload==="")&&(a.hash=O0r(r.payload,i.algorithm,r.contentType));var s=Dq.calculateMac(i,a),o=a.ext!==null&&a.ext!==void 0&&a.ext!=="",c='Hawk id="'+i.id+'", ts="'+a.ts+'", nonce="'+a.nonce+(a.hash?'", hash="'+a.hash:"")+(o?'", ext="'+a.ext.replace(/\\/g,"\\\\").replace(/"/g,'\\"'):"")+'", mac="'+s+'"';return a.app&&(c=c+', app="'+a.app+(a.dlg?'", dlg="'+a.dlg:"")+'"'),c}});var frt=b(prt=>{"use strict";var D0r=Tq(),C0r=lfe(),P0r=xfe(),I0r=Tf().Buffer;function gA(e){this.request=e,this.boundary=D0r(),this.chunked=!1,this.body=null}gA.prototype.isChunked=function(e){var t=this,r=!1,n=e.data||e;return n.forEach||t.request.emit("error",new Error("Argument error, options.multipart.")),e.chunked!==void 0&&(r=e.chunked),t.request.getHeader("transfer-encoding")==="chunked"&&(r=!0),r||n.forEach(function(i){typeof i.body>"u"&&t.request.emit("error",new Error("Body attribute missing in multipart.")),P0r(i.body)&&(r=!0)}),r};gA.prototype.setHeaders=function(e){var t=this;e&&!t.request.hasHeader("transfer-encoding")&&t.request.setHeader("transfer-encoding","chunked");var r=t.request.getHeader("content-type");!r||r.indexOf("multipart")===-1?t.request.setHeader("content-type","multipart/related; boundary="+t.boundary):r.indexOf("boundary")!==-1?t.boundary=r.replace(/.*boundary=([^\s;]+).*/,"$1"):t.request.setHeader("content-type",r+"; boundary="+t.boundary)};gA.prototype.build=function(e,t){var r=this,n=t?new C0r:[];function i(a){return typeof a=="number"&&(a=a.toString()),t?n.append(a):n.push(I0r.from(a))}return r.request.preambleCRLF&&i(`\r
`),e.forEach(function(a){var s="--"+r.boundary+`\r
`;Object.keys(a).forEach(function(o){o!=="body"&&(s+=o+": "+a[o]+`\r
`)}),s+=`\r
`,i(s),i(a.body),i(`\r
`)}),i("--"+r.boundary+"--"),r.request.postambleCRLF&&i(`\r
`),n};gA.prototype.onRequest=function(e){var t=this,r=t.isChunked(e),n=e.data||e;t.setHeaders(r),t.chunked=r,t.body=t.build(n,r)};prt.Multipart=gA});var mrt=b(hrt=>{"use strict";var drt=require("url"),R0r=/^https?:/;function Cq(e){this.request=e,this.followRedirect=!0,this.followRedirects=!0,this.followAllRedirects=!1,this.followOriginalHttpMethod=!1,this.allowRedirect=function(){return!0},this.maxRedirects=10,this.redirects=[],this.redirectsFollowed=0,this.removeRefererHeader=!1}Cq.prototype.onRequest=function(e){var t=this;e.maxRedirects!==void 0&&(t.maxRedirects=e.maxRedirects),typeof e.followRedirect=="function"&&(t.allowRedirect=e.followRedirect),e.followRedirect!==void 0&&(t.followRedirects=!!e.followRedirect),e.followAllRedirects!==void 0&&(t.followAllRedirects=e.followAllRedirects),(t.followRedirects||t.followAllRedirects)&&(t.redirects=t.redirects||[]),e.removeRefererHeader!==void 0&&(t.removeRefererHeader=e.removeRefererHeader),e.followOriginalHttpMethod!==void 0&&(t.followOriginalHttpMethod=e.followOriginalHttpMethod)};Cq.prototype.redirectTo=function(e){var t=this,r=t.request,n=null;if(e.statusCode>=300&&e.statusCode<400&&e.caseless.has("location")){var i=e.caseless.get("location");if(r.debug("redirect",i),t.followAllRedirects)n=i;else if(t.followRedirects)switch(r.method){case"PATCH":case"PUT":case"POST":case"DELETE":break;default:n=i;break}}else if(e.statusCode===401){var a=r._auth.onResponse(e);a&&(r.setHeader("authorization",a),n=r.uri)}return n};Cq.prototype.onResponse=function(e){var t=this,r=t.request,n=t.redirectTo(e);if(!n||!t.allowRedirect.call(r,e))return!1;if(r.debug("redirect to",n),e.resume&&e.resume(),t.redirectsFollowed>=t.maxRedirects)return r.emit("error",new Error("Exceeded maxRedirects. Probably stuck in a redirect loop "+r.uri.href)),!1;t.redirectsFollowed+=1,R0r.test(n)||(n=drt.resolve(r.uri.href,n));var i=r.uri;return r.uri=drt.parse(n),r.uri.protocol!==i.protocol&&delete r.agent,t.redirects.push({statusCode:e.statusCode,redirectUri:n}),t.followAllRedirects&&r.method!=="HEAD"&&e.statusCode!==401&&e.statusCode!==307&&(r.method=t.followOriginalHttpMethod?r.method:"GET"),delete r.src,delete r.req,delete r._started,e.statusCode!==401&&e.statusCode!==307&&(delete r.body,delete r._form,r.headers&&(r.removeHeader("host"),r.removeHeader("content-type"),r.removeHeader("content-length"),r.uri.hostname!==r.originalHost.split(":")[0]&&r.removeHeader("authorization"))),t.removeRefererHeader||r.setHeader("referer",i.href),r.emit("redirect"),r.init(),!0};hrt.Redirect=Cq});var brt=b(J3=>{"use strict";var _on=require("net"),F0r=require("tls"),Rfe=require("http"),grt=require("https"),j0r=require("events"),N0r=require("assert"),q0r=require("util"),L0r=Tf().Buffer;J3.httpOverHttp=$0r;J3.httpsOverHttp=B0r;J3.httpOverHttps=M0r;J3.httpsOverHttps=U0r;function $0r(e){var t=new fh(e);return t.request=Rfe.request,t}function B0r(e){var t=new fh(e);return t.request=Rfe.request,t.createSocket=vrt,t.defaultPort=443,t}function M0r(e){var t=new fh(e);return t.request=grt.request,t}function U0r(e){var t=new fh(e);return t.request=grt.request,t.createSocket=vrt,t.defaultPort=443,t}function fh(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||Rfe.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",function(n,i,a){for(var s=0,o=t.requests.length;s<o;++s){var c=t.requests[s];if(c.host===i&&c.port===a){t.requests.splice(s,1),c.request.onSocket(n);return}}n.destroy(),t.removeSocket(n)})}q0r.inherits(fh,j0r.EventEmitter);fh.prototype.addRequest=function(t,r){var n=this;if(typeof r=="string"&&(r={host:r,port:arguments[2],path:arguments[3]}),n.sockets.length>=this.maxSockets){n.requests.push({host:r.host,port:r.port,request:t});return}n.createConnection({host:r.host,port:r.port,request:t})};fh.prototype.createConnection=function(t){var r=this;r.createSocket(t,function(n){n.on("free",i),n.on("close",a),n.on("agentRemove",a),t.request.onSocket(n);function i(){r.emit("free",n,t.host,t.port)}function a(s){r.removeSocket(n),n.removeListener("free",i),n.removeListener("close",a),n.removeListener("agentRemove",a)}})};fh.prototype.createSocket=function(t,r){var n=this,i={};n.sockets.push(i);var a=yrt({},n.proxyOptions,{method:"CONNECT",path:t.host+":"+t.port,agent:!1});a.proxyAuth&&(a.headers=a.headers||{},a.headers["Proxy-Authorization"]="Basic "+L0r.from(a.proxyAuth).toString("base64")),yw("making CONNECT request");var s=n.request(a);s.useChunkedEncodingByDefault=!1,s.once("response",o),s.once("upgrade",c),s.once("connect",p),s.once("error",f),s.end();function o(d){d.upgrade=!0}function c(d,h,g){process.nextTick(function(){p(d,h,g)})}function p(d,h,g){if(s.removeAllListeners(),h.removeAllListeners(),d.statusCode===200)N0r.equal(g.length,0),yw("tunneling connection has established"),n.sockets[n.sockets.indexOf(i)]=h,r(h);else{yw("tunneling socket could not be established, statusCode=%d",d.statusCode);var v=new Error("tunneling socket could not be established, statusCode="+d.statusCode);v.code="ECONNRESET",t.request.emit("error",v),n.removeSocket(i)}}function f(d){s.removeAllListeners(),yw(`tunneling socket could not be established, cause=%s
`,d.message,d.stack);var h=new Error("tunneling socket could not be established, cause="+d.message);h.code="ECONNRESET",t.request.emit("error",h),n.removeSocket(i)}};fh.prototype.removeSocket=function(t){var r=this.sockets.indexOf(t);if(r!==-1){this.sockets.splice(r,1);var n=this.requests.shift();n&&this.createConnection(n)}};function vrt(e,t){var r=this;fh.prototype.createSocket.call(r,e,function(n){var i=F0r.connect(0,yrt({},r.options,{servername:e.host,socket:n}));r.sockets[r.sockets.indexOf(n)]=i,t(i)})}function yrt(e){for(var t=1,r=arguments.length;t<r;++t){var n=arguments[t];if(typeof n=="object")for(var i=Object.keys(n),a=0,s=i.length;a<s;++a){var o=i[a];n[o]!==void 0&&(e[o]=n[o])}}return e}var yw;process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?yw=function(){var e=Array.prototype.slice.call(arguments);typeof e[0]=="string"?e[0]="TUNNEL: "+e[0]:e.unshift("TUNNEL:"),console.error.apply(console,e)}:yw=function(){};J3.debug=yw});var Ert=b(xrt=>{"use strict";var z0r=require("url"),H0r=brt(),wrt=["accept","accept-charset","accept-encoding","accept-language","accept-ranges","cache-control","content-encoding","content-language","content-location","content-md5","content-range","content-type","connection","date","expect","max-forwards","pragma","referer","te","user-agent","via"],_rt=["proxy-authorization"];function V0r(e){var t=e.port,r=e.protocol,n=e.hostname+":";return t?n+=t:r==="https:"?n+="443":n+="80",n}function G0r(e,t){var r=t.reduce(function(n,i){return n[i.toLowerCase()]=!0,n},{});return Object.keys(e).filter(function(n){return r[n.toLowerCase()]}).reduce(function(n,i){return n[i]=e[i],n},{})}function W0r(e,t){var r=e.proxy,n={proxy:{host:r.hostname,port:+r.port,proxyAuth:r.auth,headers:t},headers:e.headers,ca:e.ca,cert:e.cert,key:e.key,passphrase:e.passphrase,pfx:e.pfx,ciphers:e.ciphers,rejectUnauthorized:e.rejectUnauthorized,secureOptions:e.secureOptions,secureProtocol:e.secureProtocol};return n}function K0r(e,t){var r=e.protocol==="https:"?"https":"http",n=t.protocol==="https:"?"Https":"Http";return[r,n].join("Over")}function Y0r(e){var t=e.uri,r=e.proxy,n=K0r(t,r);return H0r[n]}function vA(e){this.request=e,this.proxyHeaderWhiteList=wrt,this.proxyHeaderExclusiveList=[],typeof e.tunnel<"u"&&(this.tunnelOverride=e.tunnel)}vA.prototype.isEnabled=function(){var e=this,t=e.request;return typeof e.tunnelOverride<"u"?e.tunnelOverride:t.uri.protocol==="https:"};vA.prototype.setup=function(e){var t=this,r=t.request;if(e=e||{},typeof r.proxy=="string"&&(r.proxy=z0r.parse(r.proxy)),!r.proxy||!r.tunnel)return!1;e.proxyHeaderWhiteList&&(t.proxyHeaderWhiteList=e.proxyHeaderWhiteList),e.proxyHeaderExclusiveList&&(t.proxyHeaderExclusiveList=e.proxyHeaderExclusiveList);var n=t.proxyHeaderExclusiveList.concat(_rt),i=t.proxyHeaderWhiteList.concat(n),a=G0r(r.headers,i);a.host=V0r(r.uri),n.forEach(r.removeHeader,r);var s=Y0r(r),o=W0r(r,a);return r.agent=s(o),!0};vA.defaultProxyHeaderWhiteList=wrt;vA.defaultProxyHeaderExclusiveList=_rt;xrt.Tunnel=vA});var krt=b((Srt,yA)=>{(function(){var e,t,r,n,i,a;typeof performance<"u"&&performance!==null&&performance.now?yA.exports=function(){return performance.now()}:typeof process<"u"&&process!==null&&process.hrtime?(yA.exports=function(){return(e()-i)/1e6},t=process.hrtime,e=function(){var s;return s=t(),s[0]*1e9+s[1]},n=e(),a=process.uptime()*1e9,i=n-a):Date.now?(yA.exports=function(){return Date.now()-r},r=Date.now()):(yA.exports=function(){return new Date().getTime()-r},r=new Date().getTime())}).call(Srt)});var Nrt=b((Son,jrt)=>{"use strict";var J0r=require("http"),Drt=require("https"),bA=require("url"),jfe=require("util"),Iq=require("stream"),Pq=require("zlib"),Ffe=wXe(),X0r=CXe(),Q0r=yet(),Z0r=ofe(),Crt=xq(),Art=ket(),egr=Zet(),tgr=v3(),Trt=xfe(),rgr=CF().strict,Q3=AN(),ngr=Rle(),igr=itt(),agr=gtt().Querystring,sgr=ztt().Har,ogr=Qtt().Auth,ugr=crt().OAuth,cgr=lrt(),lgr=frt().Multipart,pgr=mrt().Redirect,Nfe=Ert().Tunnel,X3=krt(),wA=Tf().Buffer,Ort=Q3.safeStringify,fgr=Q3.isReadStream,dgr=Q3.toBase64,hgr=Q3.defer,Prt=Q3.copy,mgr=Q3.version,Irt=ngr.jar(),Rrt={};function ggr(e,t){var r={};for(var n in t){var i=e.indexOf(n)===-1;i&&(r[n]=t[n])}return r}function vgr(e,t){var r={};for(var n in t){var i=e.indexOf(n)!==-1,a=typeof t[n]=="function";i&&a||(r[n]=t[n])}return r}function Frt(){var e=this;return{uri:e.uri,method:e.method,headers:e.headers}}function ygr(){var e=this;return{statusCode:e.statusCode,body:e.body,headers:e.headers,request:Frt.call(e.request)}}function kn(e){var t=this;e.har&&(t._har=new sgr(t),e=t._har.options(e)),Iq.Stream.call(t);var r=Object.keys(kn.prototype),n=ggr(r,e);tgr(t,n),e=vgr(r,e),t.readable=!0,t.writable=!0,e.method&&(t.explicitMethod=!0),t._qs=new agr(t),t._auth=new ogr(t),t._oauth=new ugr(t),t._multipart=new lgr(t),t._redirect=new pgr(t),t._tunnel=new Nfe(t),t.init(e)}jfe.inherits(kn,Iq.Stream);kn.debug=process.env.NODE_DEBUG&&/\brequest\b/.test(process.env.NODE_DEBUG);function po(){kn.debug&&console.error("REQUEST %s",jfe.format.apply(jfe,arguments))}kn.prototype.debug=po;kn.prototype.init=function(e){var t=this;e||(e={}),t.headers=t.headers?Prt(t.headers):{};for(var r in t.headers)typeof t.headers[r]>"u"&&delete t.headers[r];if(Crt.httpify(t,t.headers),t.method||(t.method=e.method||"GET"),t.localAddress||(t.localAddress=e.localAddress),t._qs.init(e),po(e),!t.pool&&t.pool!==!1&&(t.pool=Rrt),t.dests=t.dests||[],t.__isRequestRequest=!0,!t._callback&&t.callback&&(t._callback=t.callback,t.callback=function(){t._callbackCalled||(t._callbackCalled=!0,t._callback.apply(t,arguments))},t.on("error",t.callback.bind()),t.on("complete",t.callback.bind(t,null))),!t.uri&&t.url&&(t.uri=t.url,delete t.url),t.baseUrl){if(typeof t.baseUrl!="string")return t.emit("error",new Error("options.baseUrl must be a string"));if(typeof t.uri!="string")return t.emit("error",new Error("options.uri must be a string when using options.baseUrl"));if(t.uri.indexOf("//")===0||t.uri.indexOf("://")!==-1)return t.emit("error",new Error("options.uri must be a path when using options.baseUrl"));var n=t.baseUrl.lastIndexOf("/")===t.baseUrl.length-1,i=t.uri.indexOf("/")===0;n&&i?t.uri=t.baseUrl+t.uri.slice(1):n||i?t.uri=t.baseUrl+t.uri:t.uri===""?t.uri=t.baseUrl:t.uri=t.baseUrl+"/"+t.uri,delete t.baseUrl}if(!t.uri)return t.emit("error",new Error("options.uri is a required argument"));if(typeof t.uri=="string"&&(t.uri=bA.parse(t.uri)),t.uri.href||(t.uri.href=bA.format(t.uri)),t.uri.protocol==="unix:")return t.emit("error",new Error("`unix://` URL scheme is no longer supported. Please use the format `http://unix:SOCKET:PATH`"));if(t.uri.host==="unix"&&t.enableUnixSocket(),t.strictSSL===!1&&(t.rejectUnauthorized=!1),t.uri.pathname||(t.uri.pathname="/"),!(t.uri.host||t.uri.hostname&&t.uri.port)&&!t.uri.isUnix){var a=bA.format(t.uri),s='Invalid URI "'+a+'"';return Object.keys(e).length===0&&(s+=". This can be caused by a crappy redirection."),t.abort(),t.emit("error",new Error(s))}if(t.hasOwnProperty("proxy")||(t.proxy=igr(t.uri)),t.tunnel=t._tunnel.isEnabled(),t.proxy&&t._tunnel.setup(e),t._redirect.onRequest(e),t.setHost=!1,!t.hasHeader("host")){var o=t.originalHostHeaderName||"host";t.setHeader(o,t.uri.host),t.uri.port&&(t.uri.port==="80"&&t.uri.protocol==="http:"||t.uri.port==="443"&&t.uri.protocol==="https:")&&t.setHeader(o,t.uri.hostname),t.setHost=!0}if(t.jar(t._jar||e.jar),t.uri.port||(t.uri.protocol==="http:"?t.uri.port=80:t.uri.protocol==="https:"&&(t.uri.port=443)),t.proxy&&!t.tunnel?(t.port=t.proxy.port,t.host=t.proxy.hostname):(t.port=t.uri.port,t.host=t.uri.hostname),e.form&&t.form(e.form),e.formData){var c=e.formData,p=t.form(),f=function(F,z){z&&z.hasOwnProperty("value")&&z.hasOwnProperty("options")?p.append(F,z.value,z.options):p.append(F,z)};for(var d in c)if(c.hasOwnProperty(d)){var h=c[d];if(h instanceof Array)for(var g=0;g<h.length;g++)f(d,h[g]);else f(d,h)}}if(e.qs&&t.qs(e.qs),t.uri.path?t.path=t.uri.path:t.path=t.uri.pathname+(t.uri.search||""),t.path.length===0&&(t.path="/"),e.aws&&t.aws(e.aws),e.hawk&&t.hawk(e.hawk),e.httpSignature&&t.httpSignature(e.httpSignature),e.auth&&(Object.prototype.hasOwnProperty.call(e.auth,"username")&&(e.auth.user=e.auth.username),Object.prototype.hasOwnProperty.call(e.auth,"password")&&(e.auth.pass=e.auth.password),t.auth(e.auth.user,e.auth.pass,e.auth.sendImmediately,e.auth.bearer)),t.gzip&&!t.hasHeader("accept-encoding")&&t.setHeader("accept-encoding","gzip, deflate"),t.uri.auth&&!t.hasHeader("authorization")){var v=t.uri.auth.split(":").map(function(F){return t._qs.unescape(F)});t.auth(v[0],v.slice(1).join(":"),!0)}if(!t.tunnel&&t.proxy&&t.proxy.auth&&!t.hasHeader("proxy-authorization")){var y=t.proxy.auth.split(":").map(function(F){return t._qs.unescape(F)}),_="Basic "+dgr(y.join(":"));t.setHeader("proxy-authorization",_)}t.proxy&&!t.tunnel&&(t.path=t.uri.protocol+"//"+t.uri.host+t.path),e.json&&t.json(e.json),e.multipart&&t.multipart(e.multipart),e.time&&(t.timing=!0,t.elapsedTime=t.elapsedTime||0);function x(){if(rgr(t.body)&&(t.body=wA.from(t.body)),!t.hasHeader("content-length")){var F;typeof t.body=="string"?F=wA.byteLength(t.body):Array.isArray(t.body)?F=t.body.reduce(function(z,P){return z+P.length},0):F=t.body.length,F?t.setHeader("content-length",F):t.emit("error",new Error("Argument error, options.body."))}}t.body&&!Trt(t.body)&&x(),e.oauth?t.oauth(e.oauth):t._oauth.params&&t.hasHeader("authorization")&&t.oauth(t._oauth.params);var A=t.proxy&&!t.tunnel?t.proxy.protocol:t.uri.protocol,D={"http:":J0r,"https:":Drt},j=t.httpModules||{};if(t.httpModule=j[A]||D[A],!t.httpModule)return t.emit("error",new Error("Invalid protocol: "+A));if(e.ca&&(t.ca=e.ca),!t.agent)if(e.agentOptions&&(t.agentOptions=e.agentOptions),e.agentClass)t.agentClass=e.agentClass;else if(e.forever){var H=mgr();H.major===0&&H.minor<=10?t.agentClass=A==="http:"?Art:Art.SSL:(t.agentClass=t.httpModule.Agent,t.agentOptions=t.agentOptions||{},t.agentOptions.keepAlive=!0)}else t.agentClass=t.httpModule.Agent;t.pool===!1?t.agent=!1:t.agent=t.agent||t.getNewAgent(),t.on("pipe",function(F){if(t.ntick&&t._started&&t.emit("error",new Error("You cannot pipe to this stream after the outbound request has started.")),t.src=F,fgr(F))t.hasHeader("content-type")||t.setHeader("content-type",Z0r.lookup(F.path));else{if(F.headers)for(var z in F.headers)t.hasHeader(z)||t.setHeader(z,F.headers[z]);t._json&&!t.hasHeader("content-type")&&t.setHeader("content-type","application/json"),F.method&&!t.explicitMethod&&(t.method=F.method)}}),hgr(function(){if(!t._aborted){var F=function(){if(t._form&&(t._auth.hasAuth?t._auth.hasAuth&&t._auth.sentAuth&&t._form.pipe(t):t._form.pipe(t)),t._multipart&&t._multipart.chunked&&t._multipart.body.pipe(t),t.body)Trt(t.body)?t.body.pipe(t):(x(),Array.isArray(t.body)?t.body.forEach(function(z){t.write(z)}):t.write(t.body),t.end());else if(t.requestBodyStream)console.warn("options.requestBodyStream is deprecated, please pass the request object to stream.pipe."),t.requestBodyStream.pipe(t);else if(!t.src){if(t._auth.hasAuth&&!t._auth.sentAuth){t.end();return}t.method!=="GET"&&typeof t.method<"u"&&t.setHeader("content-length",0),t.end()}};t._form&&!t.hasHeader("content-length")?(t.setHeader(t._form.getHeaders(),!0),t._form.getLength(function(z,P){!z&&!isNaN(P)&&t.setHeader("content-length",P),F()})):F(),t.ntick=!0}})};kn.prototype.getNewAgent=function(){var e=this,t=e.agentClass,r={};if(e.agentOptions)for(var n in e.agentOptions)r[n]=e.agentOptions[n];e.ca&&(r.ca=e.ca),e.ciphers&&(r.ciphers=e.ciphers),e.secureProtocol&&(r.secureProtocol=e.secureProtocol),e.secureOptions&&(r.secureOptions=e.secureOptions),typeof e.rejectUnauthorized<"u"&&(r.rejectUnauthorized=e.rejectUnauthorized),e.cert&&e.key&&(r.key=e.key,r.cert=e.cert),e.pfx&&(r.pfx=e.pfx),e.passphrase&&(r.passphrase=e.passphrase);var i="";t!==e.httpModule.Agent&&(i+=t.name);var a=e.proxy;typeof a=="string"&&(a=bA.parse(a));var s=a&&a.protocol==="https:"||this.uri.protocol==="https:";return s&&(r.ca&&(i&&(i+=":"),i+=r.ca),typeof r.rejectUnauthorized<"u"&&(i&&(i+=":"),i+=r.rejectUnauthorized),r.cert&&(i&&(i+=":"),i+=r.cert.toString("ascii")+r.key.toString("ascii")),r.pfx&&(i&&(i+=":"),i+=r.pfx.toString("ascii")),r.ciphers&&(i&&(i+=":"),i+=r.ciphers),r.secureProtocol&&(i&&(i+=":"),i+=r.secureProtocol),r.secureOptions&&(i&&(i+=":"),i+=r.secureOptions)),e.pool===Rrt&&!i&&Object.keys(r).length===0&&e.httpModule.globalAgent?e.httpModule.globalAgent:(i=e.uri.protocol+i,e.pool[i]||(e.pool[i]=new t(r),e.pool.maxSockets&&(e.pool[i].maxSockets=e.pool.maxSockets)),e.pool[i])};kn.prototype.start=function(){var e=this;if(e.timing)var t=new Date().getTime(),r=X3();if(!e._aborted){e._started=!0,e.method=e.method||"GET",e.href=e.uri.href,e.src&&e.src.stat&&e.src.stat.size&&!e.hasHeader("content-length")&&e.setHeader("content-length",e.src.stat.size),e._aws&&e.aws(e._aws,!0);var n=Prt(e);delete n.auth,po("make request",e.uri.href),delete n.timeout;try{e.req=e.httpModule.request(n)}catch(a){e.emit("error",a);return}e.timing&&(e.startTime=t,e.startTimeNow=r,e.timings={});var i;e.timeout&&!e.timeoutTimer&&(e.timeout<0?i=0:typeof e.timeout=="number"&&isFinite(e.timeout)&&(i=e.timeout)),e.req.on("response",e.onRequestResponse.bind(e)),e.req.on("error",e.onRequestError.bind(e)),e.req.on("drain",function(){e.emit("drain")}),e.req.on("socket",function(a){var s=a._connecting||a.connecting;if(e.timing&&(e.timings.socket=X3()-e.startTimeNow,s)){var o=function(){e.timings.lookup=X3()-e.startTimeNow},c=function(){e.timings.connect=X3()-e.startTimeNow};a.once("lookup",o),a.once("connect",c),e.req.once("error",function(){a.removeListener("lookup",o),a.removeListener("connect",c)})}var p=function(){e.req.setTimeout(i,function(){if(e.req){e.abort();var d=new Error("ESOCKETTIMEDOUT");d.code="ESOCKETTIMEDOUT",d.connect=!1,e.emit("error",d)}})};if(i!==void 0)if(s){var f=function(){a.removeListener("connect",f),e.clearTimeout(),p()};a.on("connect",f),e.req.on("error",function(d){a.removeListener("connect",f)}),e.timeoutTimer=setTimeout(function(){a.removeListener("connect",f),e.abort();var d=new Error("ETIMEDOUT");d.code="ETIMEDOUT",d.connect=!0,e.emit("error",d)},i)}else p();e.emit("socket",a)}),e.emit("request",e.req)}};kn.prototype.onRequestError=function(e){var t=this;if(!t._aborted){if(t.req&&t.req._reusedSocket&&e.code==="ECONNRESET"&&t.agent.addRequestNoreuse){t.agent={addRequest:t.agent.addRequestNoreuse.bind(t.agent)},t.start(),t.req.end();return}t.clearTimeout(),t.emit("error",e)}};kn.prototype.onRequestResponse=function(e){var t=this;if(t.timing&&(t.timings.response=X3()-t.startTimeNow),po("onRequestResponse",t.uri.href,e.statusCode,e.headers),e.on("end",function(){t.timing&&(t.timings.end=X3()-t.startTimeNow,e.timingStart=t.startTime,t.timings.socket||(t.timings.socket=0),t.timings.lookup||(t.timings.lookup=t.timings.socket),t.timings.connect||(t.timings.connect=t.timings.lookup),t.timings.response||(t.timings.response=t.timings.connect),po("elapsed time",t.timings.end),t.elapsedTime+=Math.round(t.timings.end),e.elapsedTime=t.elapsedTime,e.timings=t.timings,e.timingPhases={wait:t.timings.socket,dns:t.timings.lookup-t.timings.socket,tcp:t.timings.connect-t.timings.lookup,firstByte:t.timings.response-t.timings.connect,download:t.timings.end-t.timings.response,total:t.timings.end}),po("response end",t.uri.href,e.statusCode,e.headers)}),t._aborted){po("aborted",t.uri.href),e.resume();return}if(t.response=e,e.request=t,e.toJSON=ygr,t.httpModule===Drt&&t.strictSSL&&(!e.hasOwnProperty("socket")||!e.socket.authorized)){po("strict ssl error",t.uri.href);var r=e.hasOwnProperty("socket")?e.socket.authorizationError:t.uri.href+" does not support SSL";t.emit("error",new Error("SSL Error: "+r));return}t.originalHost=t.getHeader("host"),t.originalHostHeaderName||(t.originalHostHeaderName=t.hasHeader("host")),t.setHost&&t.removeHeader("host"),t.clearTimeout();var n=t._jar&&t._jar.setCookie?t._jar:Irt,i=function(f){try{n.setCookie(f,t.uri.href,{ignoreError:!0})}catch(d){t.emit("error",d)}};if(e.caseless=Crt(e.headers),e.caseless.has("set-cookie")&&!t._disableCookies){var a=e.caseless.has("set-cookie");Array.isArray(e.headers[a])?e.headers[a].forEach(i):i(e.headers[a])}if(!t._redirect.onResponse(e)){{e.on("close",function(){t._ended||t.response.emit("end")}),e.once("end",function(){t._ended=!0});var s=function(f){return t.method==="HEAD"||f>=100&&f<200||f===204||f===304},o;if(t.gzip&&!s(e.statusCode)){var c=e.headers["content-encoding"]||"identity";c=c.trim().toLowerCase();var p={flush:Pq.Z_SYNC_FLUSH,finishFlush:Pq.Z_SYNC_FLUSH};c==="gzip"?(o=Pq.createGunzip(p),e.pipe(o)):c==="deflate"?(o=Pq.createInflate(p),e.pipe(o)):(c!=="identity"&&po("ignoring unrecognized Content-Encoding "+c),o=e)}else o=e;t.encoding&&(t.dests.length!==0?console.error("Ignoring encoding parameter as this stream is being piped to another stream which makes the encoding option invalid."):o.setEncoding(t.encoding)),t._paused&&o.pause(),t.responseContent=o,t.emit("response",e),t.dests.forEach(function(f){t.pipeDest(f)}),o.on("data",function(f){t.timing&&!t.responseStarted&&(t.responseStartTime=new Date().getTime(),e.responseStartTime=t.responseStartTime),t._destdata=!0,t.emit("data",f)}),o.once("end",function(f){t.emit("end",f)}),o.on("error",function(f){t.emit("error",f)}),o.on("close",function(){t.emit("close")}),t.callback?t.readResponseBody(e):t.on("end",function(){if(t._aborted){po("aborted",t.uri.href);return}t.emit("complete",e)})}po("finish init function",t.uri.href)}};kn.prototype.readResponseBody=function(e){var t=this;po("reading response's body");var r=[],n=0,i=[];t.on("data",function(a){wA.isBuffer(a)?a.length&&(n+=a.length,r.push(a)):i.push(a)}),t.on("end",function(){if(po("end event",t.uri.href),t._aborted){po("aborted",t.uri.href),r=[],n=0;return}if(n?(po("has body",t.uri.href,n),e.body=wA.concat(r,n),t.encoding!==null&&(e.body=e.body.toString(t.encoding)),r=[],n=0):i.length&&(t.encoding==="utf8"&&i[0].length>0&&i[0][0]==="\uFEFF"&&(i[0]=i[0].substring(1)),e.body=i.join("")),t._json)try{e.body=JSON.parse(e.body,t._jsonReviver)}catch{po("invalid JSON received",t.uri.href)}po("emitting complete",t.uri.href),typeof e.body>"u"&&!t._json&&(e.body=t.encoding===null?wA.alloc(0):""),t.emit("complete",e,e.body)})};kn.prototype.abort=function(){var e=this;e._aborted=!0,e.req?e.req.abort():e.response&&e.response.destroy(),e.clearTimeout(),e.emit("abort")};kn.prototype.pipeDest=function(e){var t=this,r=t.response;if(e.headers&&!e.headersSent){if(r.caseless.has("content-type")){var n=r.caseless.has("content-type");e.setHeader?e.setHeader(n,r.headers[n]):e.headers[n]=r.headers[n]}if(r.caseless.has("content-length")){var i=r.caseless.has("content-length");e.setHeader?e.setHeader(i,r.headers[i]):e.headers[i]=r.headers[i]}}if(e.setHeader&&!e.headersSent){for(var a in r.headers)(!t.gzip||a!=="content-encoding")&&e.setHeader(a,r.headers[a]);e.statusCode=r.statusCode}t.pipefilter&&t.pipefilter(r,e)};kn.prototype.qs=function(e,t){var r=this,n;!t&&r.uri.query?n=r._qs.parse(r.uri.query):n={};for(var i in e)n[i]=e[i];var a=r._qs.stringify(n);return a===""||(r.uri=bA.parse(r.uri.href.split("?")[0]+"?"+a),r.url=r.uri,r.path=r.uri.path,r.uri.host==="unix"&&r.enableUnixSocket()),r};kn.prototype.form=function(e){var t=this;return e?(/^application\/x-www-form-urlencoded\b/.test(t.getHeader("content-type"))||t.setHeader("content-type","application/x-www-form-urlencoded"),t.body=typeof e=="string"?t._qs.rfc3986(e.toString("utf8")):t._qs.stringify(e).toString("utf8"),t):(t._form=new egr,t._form.on("error",function(r){r.message="form-data: "+r.message,t.emit("error",r),t.abort()}),t._form)};kn.prototype.multipart=function(e){var t=this;return t._multipart.onRequest(e),t._multipart.chunked||(t.body=t._multipart.body),t};kn.prototype.json=function(e){var t=this;return t.hasHeader("accept")||t.setHeader("accept","application/json"),typeof t.jsonReplacer=="function"&&(t._jsonReplacer=t.jsonReplacer),t._json=!0,typeof e=="boolean"?t.body!==void 0&&(/^application\/x-www-form-urlencoded\b/.test(t.getHeader("content-type"))?t.body=t._qs.rfc3986(t.body):t.body=Ort(t.body,t._jsonReplacer),t.hasHeader("content-type")||t.setHeader("content-type","application/json")):(t.body=Ort(e,t._jsonReplacer),t.hasHeader("content-type")||t.setHeader("content-type","application/json")),typeof t.jsonReviver=="function"&&(t._jsonReviver=t.jsonReviver),t};kn.prototype.getHeader=function(e,t){var r=this,n,i,a;return t||(t=r.headers),Object.keys(t).forEach(function(s){s.length===e.length&&(i=new RegExp(e,"i"),a=s.match(i),a&&(n=t[s]))}),n};kn.prototype.enableUnixSocket=function(){var e=this.uri.path.split(":"),t=e[0],r=e[1];this.socketPath=t,this.uri.pathname=r,this.uri.path=r,this.uri.host=t,this.uri.hostname=t,this.uri.isUnix=!0};kn.prototype.auth=function(e,t,r,n){var i=this;return i._auth.onRequest(e,t,r,n),i};kn.prototype.aws=function(e,t){var r=this;if(!t)return r._aws=e,r;if(e.sign_version===4||e.sign_version==="4"){var n={host:r.uri.host,path:r.uri.path,method:r.method,headers:r.headers,body:r.body};e.service&&(n.service=e.service);var i=X0r.sign(n,{accessKeyId:e.key,secretAccessKey:e.secret,sessionToken:e.session});r.setHeader("authorization",i.headers.Authorization),r.setHeader("x-amz-date",i.headers["X-Amz-Date"]),i.headers["X-Amz-Security-Token"]&&r.setHeader("x-amz-security-token",i.headers["X-Amz-Security-Token"])}else{var a=new Date;r.setHeader("date",a.toUTCString());var s={key:e.key,secret:e.secret,verb:r.method.toUpperCase(),date:a,contentType:r.getHeader("content-type")||"",md5:r.getHeader("content-md5")||"",amazonHeaders:Ffe.canonicalizeHeaders(r.headers)},o=r.uri.path;e.bucket&&o?s.resource="/"+e.bucket+o:e.bucket&&!o?s.resource="/"+e.bucket:!e.bucket&&o?s.resource=o:!e.bucket&&!o&&(s.resource="/"),s.resource=Ffe.canonicalizeResource(s.resource),r.setHeader("authorization",Ffe.authorization(s))}return r};kn.prototype.httpSignature=function(e){var t=this;return Q0r.signRequest({getHeader:function(r){return t.getHeader(r,t.headers)},setHeader:function(r,n){t.setHeader(r,n)},method:t.method,path:t.path},e),po("httpSignature authorization",t.getHeader("authorization")),t};kn.prototype.hawk=function(e){var t=this;t.setHeader("Authorization",cgr.header(t.uri,t.method,e))};kn.prototype.oauth=function(e){var t=this;return t._oauth.onRequest(e),t};kn.prototype.jar=function(e){var t=this,r;if(t._redirect.redirectsFollowed===0&&(t.originalCookieHeader=t.getHeader("cookie")),!e)r=!1,t._disableCookies=!0;else{var n=e.getCookieString?e:Irt,i=t.uri.href;n&&(r=n.getCookieString(i))}return r&&r.length&&(t.originalCookieHeader?t.setHeader("cookie",t.originalCookieHeader+"; "+r):t.setHeader("cookie",r)),t._jar=e,t};kn.prototype.pipe=function(e,t){var r=this;if(r.response)if(r._destdata)r.emit("error",new Error("You cannot pipe after data has been emitted from the response."));else if(r._ended)r.emit("error",new Error("You cannot pipe after the response has been ended."));else return Iq.Stream.prototype.pipe.call(r,e,t),r.pipeDest(e),e;else return r.dests.push(e),Iq.Stream.prototype.pipe.call(r,e,t),e};kn.prototype.write=function(){var e=this;if(!e._aborted&&(e._started||e.start(),e.req))return e.req.write.apply(e.req,arguments)};kn.prototype.end=function(e){var t=this;t._aborted||(e&&t.write(e),t._started||t.start(),t.req&&t.req.end())};kn.prototype.pause=function(){var e=this;e.responseContent?e.responseContent.pause.apply(e.responseContent,arguments):e._paused=!0};kn.prototype.resume=function(){var e=this;e.responseContent?e.responseContent.resume.apply(e.responseContent,arguments):e._paused=!1};kn.prototype.destroy=function(){var e=this;this.clearTimeout(),e._ended?e.response&&e.response.destroy():e.end()};kn.prototype.clearTimeout=function(){this.timeoutTimer&&(clearTimeout(this.timeoutTimer),this.timeoutTimer=null)};kn.defaultProxyHeaderWhiteList=Nfe.defaultProxyHeaderWhiteList.slice();kn.defaultProxyHeaderExclusiveList=Nfe.defaultProxyHeaderExclusiveList.slice();kn.prototype.toJSON=Frt;jrt.exports=kn});var $rt=b((kon,Lrt)=>{"use strict";var _A=v3(),qrt=Rle(),bgr=AN(),wgr=bgr.paramsHaveRequestBody;function Rq(e,t,r){typeof t=="function"&&(r=t);var n={};return t!==null&&typeof t=="object"?_A(n,t,{uri:e}):typeof e=="string"?_A(n,{uri:e}):_A(n,e),n.callback=r||n.callback,n}function fs(e,t,r){if(typeof e>"u")throw new Error("undefined is not a valid uri or options object.");var n=Rq(e,t,r);if(n.method==="HEAD"&&wgr(n))throw new Error("HTTP HEAD requests MUST NOT include a request body.");return new fs.Request(n)}function nv(e){var t=e.toUpperCase();return function(r,n,i){var a=Rq(r,n,i);return a.method=t,fs(a,a.callback)}}fs.get=nv("get");fs.head=nv("head");fs.options=nv("options");fs.post=nv("post");fs.put=nv("put");fs.patch=nv("patch");fs.del=nv("delete");fs.delete=nv("delete");fs.jar=function(e){return qrt.jar(e)};fs.cookie=function(e){return qrt.parse(e)};function qfe(e,t,r,n){return function(i,a,s){var o=Rq(i,a,s),c={};return _A(!0,c,t,o),c.pool=o.pool||t.pool,n&&(c.method=n.toUpperCase()),typeof r=="function"&&(e=r),e(c,c.callback)}}fs.defaults=function(e,t){var r=this;e=e||{},typeof e=="function"&&(t=e,e={});var n=qfe(r,e,t),i=["get","head","post","put","patch","del","delete"];return i.forEach(function(a){n[a]=qfe(r[a],e,t,a)}),n.cookie=qfe(r.cookie,e,t),n.jar=r.jar,n.defaults=r.defaults,n};fs.forever=function(e,t){var r={};return t&&_A(r,t),e&&(r.agentOptions=e),r.forever=!0,fs.defaults(r)};Lrt.exports=fs;fs.Request=Nrt();fs.initParams=Rq;Object.defineProperty(fs,"debug",{enumerable:!0,get:function(){return fs.Request.debug},set:function(e){fs.Request.debug=e}})});var $fe=b((Aon,Lfe)=>{"use strict";var Brt=ZYe().getNewLibraryCopy(),_gr=DJe(),xgr=PJe();try{Fq=xgr(require.cache,function(){return $rt()},function(){Ple()},Lfe)}catch(e){throw iv=require("os").EOL,console.error(iv+"###"+iv+'### The "request" library is not installed automatically anymore.'+iv+'### But is a dependency of "request-promise".'+iv+"### Please install it with:"+iv+"### npm install request --save"+iv+"###"+iv),e}var Fq,iv;Brt.config({cancellation:!0});_gr({request:Fq,PromiseImpl:Brt,expose:["then","catch","finally","cancel","promise"],constructorMixin:function(e,t,r){var n=this;r(function(){n.abort()})}});Fq.bindCLS=function(){throw new Error("CLS support was dropped. To get it back read: https://github.com/request/request-promise/wiki/Getting-Back-Support-for-Continuation-Local-Storage")};Lfe.exports=Fq});var Bfe=b((Ton,Mrt)=>{Mrt.exports={waitFor:Egr};function Egr(e){return new Promise(t=>setTimeout(t,e))}});var Hrt=b((Oon,zrt)=>{var Sgr=$fe(),{waitFor:kgr}=Bfe(),Agr=15,Tgr=5;zrt.exports=Ogr;function Ogr(...e){return Urt(0,...e)}async function Urt(e=0,...t){try{return await Sgr(...t)}catch(r){let n=Math.min(e*Tgr,Agr);return console.error(`Request failed : ${r.message}`),console.error(`Retrying in ${n} seconds`),await kgr(n*1e3),await Urt(e+1,...t)}}});var jq=b((Don,Vrt)=>{"use strict";Vrt.exports=Dgr;function Dgr(e,t){for(var r=new Array(arguments.length-1),n=0,i=2,a=!0;i<arguments.length;)r[n++]=arguments[i++];return new Promise(function(o,c){r[n]=function(f){if(a)if(a=!1,f)c(f);else{for(var d=new Array(arguments.length-1),h=0;h<d.length;)d[h++]=arguments[h];o.apply(null,d)}};try{e.apply(t||null,r)}catch(p){a&&(a=!1,c(p))}})}});var Mfe=b(Krt=>{"use strict";var Nq=Krt;Nq.length=function(t){var r=t.length;if(!r)return 0;for(var n=0;--r%4>1&&t.charAt(r)==="=";)++n;return Math.ceil(t.length*3)/4-n};var Z3=new Array(64),Wrt=new Array(123);for(Bf=0;Bf<64;)Wrt[Z3[Bf]=Bf<26?Bf+65:Bf<52?Bf+71:Bf<62?Bf-4:Bf-59|43]=Bf++;var Bf;Nq.encode=function(t,r,n){for(var i=null,a=[],s=0,o=0,c;r<n;){var p=t[r++];switch(o){case 0:a[s++]=Z3[p>>2],c=(p&3)<<4,o=1;break;case 1:a[s++]=Z3[c|p>>4],c=(p&15)<<2,o=2;break;case 2:a[s++]=Z3[c|p>>6],a[s++]=Z3[p&63],o=0;break}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,a)),s=0)}return o&&(a[s++]=Z3[c],a[s++]=61,o===1&&(a[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,a.slice(0,s))),i.join("")):String.fromCharCode.apply(String,a.slice(0,s))};var Grt="invalid encoding";Nq.decode=function(t,r,n){for(var i=n,a=0,s,o=0;o<t.length;){var c=t.charCodeAt(o++);if(c===61&&a>1)break;if((c=Wrt[c])===void 0)throw Error(Grt);switch(a){case 0:s=c,a=1;break;case 1:r[n++]=s<<2|(c&48)>>4,s=c,a=2;break;case 2:r[n++]=(s&15)<<4|(c&60)>>2,s=c,a=3;break;case 3:r[n++]=(s&3)<<6|c,a=0;break}}if(a===1)throw Error(Grt);return n-i};Nq.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}});var Ufe=b((Pon,Yrt)=>{"use strict";Yrt.exports=qq;function qq(){this._listeners={}}qq.prototype.on=function(t,r,n){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:r,ctx:n||this}),this};qq.prototype.off=function(t,r){if(t===void 0)this._listeners={};else if(r===void 0)this._listeners[t]=[];else for(var n=this._listeners[t],i=0;i<n.length;)n[i].fn===r?n.splice(i,1):++i;return this};qq.prototype.emit=function(t){var r=this._listeners[t];if(r){for(var n=[],i=1;i<arguments.length;)n.push(arguments[i++]);for(i=0;i<r.length;)r[i].fn.apply(r[i++].ctx,n)}return this}});var zfe=b((Ion,tnt)=>{"use strict";tnt.exports=Jrt(Jrt);function Jrt(e){return typeof Float32Array<"u"?function(){var t=new Float32Array([-0]),r=new Uint8Array(t.buffer),n=r[3]===128;function i(c,p,f){t[0]=c,p[f]=r[0],p[f+1]=r[1],p[f+2]=r[2],p[f+3]=r[3]}function a(c,p,f){t[0]=c,p[f]=r[3],p[f+1]=r[2],p[f+2]=r[1],p[f+3]=r[0]}e.writeFloatLE=n?i:a,e.writeFloatBE=n?a:i;function s(c,p){return r[0]=c[p],r[1]=c[p+1],r[2]=c[p+2],r[3]=c[p+3],t[0]}function o(c,p){return r[3]=c[p],r[2]=c[p+1],r[1]=c[p+2],r[0]=c[p+3],t[0]}e.readFloatLE=n?s:o,e.readFloatBE=n?o:s}():function(){function t(n,i,a,s){var o=i<0?1:0;if(o&&(i=-i),i===0)n(1/i>0?0:2147483648,a,s);else if(isNaN(i))n(2143289344,a,s);else if(i>34028234663852886e22)n((o<<31|2139095040)>>>0,a,s);else if(i<11754943508222875e-54)n((o<<31|Math.round(i/1401298464324817e-60))>>>0,a,s);else{var c=Math.floor(Math.log(i)/Math.LN2),p=Math.round(i*Math.pow(2,-c)*8388608)&8388607;n((o<<31|c+127<<23|p)>>>0,a,s)}}e.writeFloatLE=t.bind(null,Xrt),e.writeFloatBE=t.bind(null,Qrt);function r(n,i,a){var s=n(i,a),o=(s>>31)*2+1,c=s>>>23&255,p=s&8388607;return c===255?p?NaN:o*(1/0):c===0?o*1401298464324817e-60*p:o*Math.pow(2,c-150)*(p+8388608)}e.readFloatLE=r.bind(null,Zrt),e.readFloatBE=r.bind(null,ent)}(),typeof Float64Array<"u"?function(){var t=new Float64Array([-0]),r=new Uint8Array(t.buffer),n=r[7]===128;function i(c,p,f){t[0]=c,p[f]=r[0],p[f+1]=r[1],p[f+2]=r[2],p[f+3]=r[3],p[f+4]=r[4],p[f+5]=r[5],p[f+6]=r[6],p[f+7]=r[7]}function a(c,p,f){t[0]=c,p[f]=r[7],p[f+1]=r[6],p[f+2]=r[5],p[f+3]=r[4],p[f+4]=r[3],p[f+5]=r[2],p[f+6]=r[1],p[f+7]=r[0]}e.writeDoubleLE=n?i:a,e.writeDoubleBE=n?a:i;function s(c,p){return r[0]=c[p],r[1]=c[p+1],r[2]=c[p+2],r[3]=c[p+3],r[4]=c[p+4],r[5]=c[p+5],r[6]=c[p+6],r[7]=c[p+7],t[0]}function o(c,p){return r[7]=c[p],r[6]=c[p+1],r[5]=c[p+2],r[4]=c[p+3],r[3]=c[p+4],r[2]=c[p+5],r[1]=c[p+6],r[0]=c[p+7],t[0]}e.readDoubleLE=n?s:o,e.readDoubleBE=n?o:s}():function(){function t(n,i,a,s,o,c){var p=s<0?1:0;if(p&&(s=-s),s===0)n(0,o,c+i),n(1/s>0?0:2147483648,o,c+a);else if(isNaN(s))n(0,o,c+i),n(2146959360,o,c+a);else if(s>17976931348623157e292)n(0,o,c+i),n((p<<31|2146435072)>>>0,o,c+a);else{var f;if(s<22250738585072014e-324)f=s/5e-324,n(f>>>0,o,c+i),n((p<<31|f/4294967296)>>>0,o,c+a);else{var d=Math.floor(Math.log(s)/Math.LN2);d===1024&&(d=1023),f=s*Math.pow(2,-d),n(f*4503599627370496>>>0,o,c+i),n((p<<31|d+1023<<20|f*1048576&1048575)>>>0,o,c+a)}}}e.writeDoubleLE=t.bind(null,Xrt,0,4),e.writeDoubleBE=t.bind(null,Qrt,4,0);function r(n,i,a,s,o){var c=n(s,o+i),p=n(s,o+a),f=(p>>31)*2+1,d=p>>>20&2047,h=4294967296*(p&1048575)+c;return d===2047?h?NaN:f*(1/0):d===0?f*5e-324*h:f*Math.pow(2,d-1075)*(h+4503599627370496)}e.readDoubleLE=r.bind(null,Zrt,0,4),e.readDoubleBE=r.bind(null,ent,4,0)}(),e}function Xrt(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function Qrt(e,t,r){t[r]=e>>>24,t[r+1]=e>>>16&255,t[r+2]=e>>>8&255,t[r+3]=e&255}function Zrt(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function ent(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}});var Lq=b((exports,module)=>{"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}});var Vfe=b(rnt=>{"use strict";var Hfe=rnt;Hfe.length=function(t){for(var r=0,n=0,i=0;i<t.length;++i)n=t.charCodeAt(i),n<128?r+=1:n<2048?r+=2:(n&64512)===55296&&(t.charCodeAt(i+1)&64512)===56320?(++i,r+=4):r+=3;return r};Hfe.read=function(t,r,n){var i=n-r;if(i<1)return"";for(var a=null,s=[],o=0,c;r<n;)c=t[r++],c<128?s[o++]=c:c>191&&c<224?s[o++]=(c&31)<<6|t[r++]&63:c>239&&c<365?(c=((c&7)<<18|(t[r++]&63)<<12|(t[r++]&63)<<6|t[r++]&63)-65536,s[o++]=55296+(c>>10),s[o++]=56320+(c&1023)):s[o++]=(c&15)<<12|(t[r++]&63)<<6|t[r++]&63,o>8191&&((a||(a=[])).push(String.fromCharCode.apply(String,s)),o=0);return a?(o&&a.push(String.fromCharCode.apply(String,s.slice(0,o))),a.join("")):String.fromCharCode.apply(String,s.slice(0,o))};Hfe.write=function(t,r,n){for(var i=n,a,s,o=0;o<t.length;++o)a=t.charCodeAt(o),a<128?r[n++]=a:a<2048?(r[n++]=a>>6|192,r[n++]=a&63|128):(a&64512)===55296&&((s=t.charCodeAt(o+1))&64512)===56320?(a=65536+((a&1023)<<10)+(s&1023),++o,r[n++]=a>>18|240,r[n++]=a>>12&63|128,r[n++]=a>>6&63|128,r[n++]=a&63|128):(r[n++]=a>>12|224,r[n++]=a>>6&63|128,r[n++]=a&63|128);return n-i}});var Gfe=b((Fon,nnt)=>{"use strict";nnt.exports=Cgr;function Cgr(e,t,r){var n=r||8192,i=n>>>1,a=null,s=n;return function(c){if(c<1||c>i)return e(c);s+c>n&&(a=e(n),s=0);var p=t.call(a,s,s+=c);return s&7&&(s=(s|7)+1),p}}});var ant=b((jon,int)=>{"use strict";int.exports=fo;var xA=dh();function fo(e,t){this.lo=e>>>0,this.hi=t>>>0}var bw=fo.zero=new fo(0,0);bw.toNumber=function(){return 0};bw.zzEncode=bw.zzDecode=function(){return this};bw.length=function(){return 1};var Pgr=fo.zeroHash="\0\0\0\0\0\0\0\0";fo.fromNumber=function(t){if(t===0)return bw;var r=t<0;r&&(t=-t);var n=t>>>0,i=(t-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new fo(n,i)};fo.from=function(t){if(typeof t=="number")return fo.fromNumber(t);if(xA.isString(t))if(xA.Long)t=xA.Long.fromString(t);else return fo.fromNumber(parseInt(t,10));return t.low||t.high?new fo(t.low>>>0,t.high>>>0):bw};fo.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var r=~this.lo+1>>>0,n=~this.hi>>>0;return r||(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296};fo.prototype.toLong=function(t){return xA.Long?new xA.Long(this.lo|0,this.hi|0,!!t):{low:this.lo|0,high:this.hi|0,unsigned:!!t}};var av=String.prototype.charCodeAt;fo.fromHash=function(t){return t===Pgr?bw:new fo((av.call(t,0)|av.call(t,1)<<8|av.call(t,2)<<16|av.call(t,3)<<24)>>>0,(av.call(t,4)|av.call(t,5)<<8|av.call(t,6)<<16|av.call(t,7)<<24)>>>0)};fo.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};fo.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this};fo.prototype.zzDecode=function(){var t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this};fo.prototype.length=function(){var t=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?t<16384?t<128?1:2:t<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}});var dh=b(Wfe=>{"use strict";var _r=Wfe;_r.asPromise=jq();_r.base64=Mfe();_r.EventEmitter=Ufe();_r.float=zfe();_r.inquire=Lq();_r.utf8=Vfe();_r.pool=Gfe();_r.LongBits=ant();_r.isNode=!!(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node);_r.global=_r.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||Wfe;_r.emptyArray=Object.freeze?Object.freeze([]):[];_r.emptyObject=Object.freeze?Object.freeze({}):{};_r.isInteger=Number.isInteger||function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t};_r.isString=function(t){return typeof t=="string"||t instanceof String};_r.isObject=function(t){return t&&typeof t=="object"};_r.isset=_r.isSet=function(t,r){var n=t[r];return n!=null&&t.hasOwnProperty(r)?typeof n!="object"||(Array.isArray(n)?n.length:Object.keys(n).length)>0:!1};_r.Buffer=function(){try{var e=_r.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch{return null}}();_r._Buffer_from=null;_r._Buffer_allocUnsafe=null;_r.newBuffer=function(t){return typeof t=="number"?_r.Buffer?_r._Buffer_allocUnsafe(t):new _r.Array(t):_r.Buffer?_r._Buffer_from(t):typeof Uint8Array>"u"?t:new Uint8Array(t)};_r.Array=typeof Uint8Array<"u"?Uint8Array:Array;_r.Long=_r.global.dcodeIO&&_r.global.dcodeIO.Long||_r.global.Long||_r.inquire("long");_r.key2Re=/^true|false|0|1$/;_r.key32Re=/^-?(?:0|[1-9][0-9]*)$/;_r.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;_r.longToHash=function(t){return t?_r.LongBits.from(t).toHash():_r.LongBits.zeroHash};_r.longFromHash=function(t,r){var n=_r.LongBits.fromHash(t);return _r.Long?_r.Long.fromBits(n.lo,n.hi,r):n.toNumber(!!r)};function snt(e,t,r){for(var n=Object.keys(t),i=0;i<n.length;++i)(e[n[i]]===void 0||!r)&&(e[n[i]]=t[n[i]]);return e}_r.merge=snt;_r.lcFirst=function(t){return t.charAt(0).toLowerCase()+t.substring(1)};function ont(e){function t(r,n){if(!(this instanceof t))return new t(r,n);Object.defineProperty(this,"message",{get:function(){return r}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:new Error().stack||""}),n&&snt(this,n)}return(t.prototype=Object.create(Error.prototype)).constructor=t,Object.defineProperty(t.prototype,"name",{get:function(){return e}}),t.prototype.toString=function(){return this.name+": "+this.message},t}_r.newError=ont;_r.ProtocolError=ont("ProtocolError");_r.oneOfGetter=function(t){for(var r={},n=0;n<t.length;++n)r[t[n]]=1;return function(){for(var i=Object.keys(this),a=i.length-1;a>-1;--a)if(r[i[a]]===1&&this[i[a]]!==void 0&&this[i[a]]!==null)return i[a]}};_r.oneOfSetter=function(t){return function(r){for(var n=0;n<t.length;++n)t[n]!==r&&delete this[t[n]]}};_r.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};_r._configure=function(){var e=_r.Buffer;if(!e){_r._Buffer_from=_r._Buffer_allocUnsafe=null;return}_r._Buffer_from=e.from!==Uint8Array.from&&e.from||function(r,n){return new e(r,n)},_r._Buffer_allocUnsafe=e.allocUnsafe||function(r){return new e(r)}}});var Bq=b((qon,pnt)=>{"use strict";pnt.exports=Bn;var dp=dh(),Kfe,$q=dp.LongBits,unt=dp.base64,cnt=dp.utf8;function EA(e,t,r){this.fn=e,this.len=t,this.next=void 0,this.val=r}function Jfe(){}function Igr(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function Bn(){this.len=0,this.head=new EA(Jfe,0,0),this.tail=this.head,this.states=null}var lnt=function(){return dp.Buffer?function(){return(Bn.create=function(){return new Kfe})()}:function(){return new Bn}};Bn.create=lnt();Bn.alloc=function(t){return new dp.Array(t)};dp.Array!==Array&&(Bn.alloc=dp.pool(Bn.alloc,dp.Array.prototype.subarray));Bn.prototype._push=function(t,r,n){return this.tail=this.tail.next=new EA(t,r,n),this.len+=r,this};function Xfe(e,t,r){t[r]=e&255}function Rgr(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}function Qfe(e,t){this.len=e,this.next=void 0,this.val=t}Qfe.prototype=Object.create(EA.prototype);Qfe.prototype.fn=Rgr;Bn.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new Qfe((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this};Bn.prototype.int32=function(t){return t<0?this._push(Zfe,10,$q.fromNumber(t)):this.uint32(t)};Bn.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)};function Zfe(e,t,r){for(;e.hi;)t[r++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=e.lo&127|128,e.lo=e.lo>>>7;t[r++]=e.lo}Bn.prototype.uint64=function(t){var r=$q.from(t);return this._push(Zfe,r.length(),r)};Bn.prototype.int64=Bn.prototype.uint64;Bn.prototype.sint64=function(t){var r=$q.from(t).zzEncode();return this._push(Zfe,r.length(),r)};Bn.prototype.bool=function(t){return this._push(Xfe,1,t?1:0)};function Yfe(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}Bn.prototype.fixed32=function(t){return this._push(Yfe,4,t>>>0)};Bn.prototype.sfixed32=Bn.prototype.fixed32;Bn.prototype.fixed64=function(t){var r=$q.from(t);return this._push(Yfe,4,r.lo)._push(Yfe,4,r.hi)};Bn.prototype.sfixed64=Bn.prototype.fixed64;Bn.prototype.float=function(t){return this._push(dp.float.writeFloatLE,4,t)};Bn.prototype.double=function(t){return this._push(dp.float.writeDoubleLE,8,t)};var Fgr=dp.Array.prototype.set?function(t,r,n){r.set(t,n)}:function(t,r,n){for(var i=0;i<t.length;++i)r[n+i]=t[i]};Bn.prototype.bytes=function(t){var r=t.length>>>0;if(!r)return this._push(Xfe,1,0);if(dp.isString(t)){var n=Bn.alloc(r=unt.length(t));unt.decode(t,n,0),t=n}return this.uint32(r)._push(Fgr,r,t)};Bn.prototype.string=function(t){var r=cnt.length(t);return r?this.uint32(r)._push(cnt.write,r,t):this._push(Xfe,1,0)};Bn.prototype.fork=function(){return this.states=new Igr(this),this.head=this.tail=new EA(Jfe,0,0),this.len=0,this};Bn.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new EA(Jfe,0,0),this.len=0),this};Bn.prototype.ldelim=function(){var t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=t.next,this.tail=r,this.len+=n),this};Bn.prototype.finish=function(){for(var t=this.head.next,r=this.constructor.alloc(this.len),n=0;t;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r};Bn._configure=function(e){Kfe=e,Bn.create=lnt(),Kfe._configure()}});var hnt=b((Lon,dnt)=>{"use strict";dnt.exports=hh;var fnt=Bq();(hh.prototype=Object.create(fnt.prototype)).constructor=hh;var sv=dh();function hh(){fnt.call(this)}hh._configure=function(){hh.alloc=sv._Buffer_allocUnsafe,hh.writeBytesBuffer=sv.Buffer&&sv.Buffer.prototype instanceof Uint8Array&&sv.Buffer.prototype.set.name==="set"?function(t,r,n){r.set(t,n)}:function(t,r,n){if(t.copy)t.copy(r,n,0,t.length);else for(var i=0;i<t.length;)r[n++]=t[i++]}};hh.prototype.bytes=function(t){sv.isString(t)&&(t=sv._Buffer_from(t,"base64"));var r=t.length>>>0;return this.uint32(r),r&&this._push(hh.writeBytesBuffer,r,t),this};function jgr(e,t,r){e.length<40?sv.utf8.write(e,t,r):t.utf8Write?t.utf8Write(e,r):t.write(e,r)}hh.prototype.string=function(t){var r=sv.Buffer.byteLength(t);return this.uint32(r),r&&this._push(jgr,r,t),this};hh._configure()});var Uq=b(($on,bnt)=>{"use strict";bnt.exports=ds;var mh=dh(),tde,vnt=mh.LongBits,Ngr=mh.utf8;function Mf(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function ds(e){this.buf=e,this.pos=0,this.len=e.length}var mnt=typeof Uint8Array<"u"?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new ds(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new ds(t);throw Error("illegal buffer")},ynt=function(){return mh.Buffer?function(r){return(ds.create=function(i){return mh.Buffer.isBuffer(i)?new tde(i):mnt(i)})(r)}:mnt};ds.create=ynt();ds.prototype._slice=mh.Array.prototype.subarray||mh.Array.prototype.slice;ds.prototype.uint32=function(){var t=4294967295;return function(){if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Mf(this,10);return t}}();ds.prototype.int32=function(){return this.uint32()|0};ds.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(t&1)|0};function ede(){var e=new vnt(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw Mf(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw Mf(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}ds.prototype.bool=function(){return this.uint32()!==0};function Mq(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}ds.prototype.fixed32=function(){if(this.pos+4>this.len)throw Mf(this,4);return Mq(this.buf,this.pos+=4)};ds.prototype.sfixed32=function(){if(this.pos+4>this.len)throw Mf(this,4);return Mq(this.buf,this.pos+=4)|0};function gnt(){if(this.pos+8>this.len)throw Mf(this,8);return new vnt(Mq(this.buf,this.pos+=4),Mq(this.buf,this.pos+=4))}ds.prototype.float=function(){if(this.pos+4>this.len)throw Mf(this,4);var t=mh.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t};ds.prototype.double=function(){if(this.pos+8>this.len)throw Mf(this,4);var t=mh.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t};ds.prototype.bytes=function(){var t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw Mf(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(r,n):r===n?new this.buf.constructor(0):this._slice.call(this.buf,r,n)};ds.prototype.string=function(){var t=this.bytes();return Ngr.read(t,0,t.length)};ds.prototype.skip=function(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Mf(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Mf(this);while(this.buf[this.pos++]&128);return this};ds.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this};ds._configure=function(e){tde=e,ds.create=ynt(),tde._configure();var t=mh.Long?"toLong":"toNumber";mh.merge(ds.prototype,{int64:function(){return ede.call(this)[t](!1)},uint64:function(){return ede.call(this)[t](!0)},sint64:function(){return ede.call(this).zzDecode()[t](!1)},fixed64:function(){return gnt.call(this)[t](!0)},sfixed64:function(){return gnt.call(this)[t](!1)}})}});var Ent=b((Bon,xnt)=>{"use strict";xnt.exports=ww;var _nt=Uq();(ww.prototype=Object.create(_nt.prototype)).constructor=ww;var wnt=dh();function ww(e){_nt.call(this,e)}ww._configure=function(){wnt.Buffer&&(ww.prototype._slice=wnt.Buffer.prototype.slice)};ww.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))};ww._configure()});var knt=b((Mon,Snt)=>{"use strict";Snt.exports=SA;var rde=dh();(SA.prototype=Object.create(rde.EventEmitter.prototype)).constructor=SA;function SA(e,t,r){if(typeof e!="function")throw TypeError("rpcImpl must be a function");rde.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=!!t,this.responseDelimited=!!r}SA.prototype.rpcCall=function e(t,r,n,i,a){if(!i)throw TypeError("request must be specified");var s=this;if(!a)return rde.asPromise(e,s,t,r,n,i);if(!s.rpcImpl){setTimeout(function(){a(Error("already ended"))},0);return}try{return s.rpcImpl(t,r[s.requestDelimited?"encodeDelimited":"encode"](i).finish(),function(c,p){if(c)return s.emit("error",c,t),a(c);if(p===null){s.end(!0);return}if(!(p instanceof n))try{p=n[s.responseDelimited?"decodeDelimited":"decode"](p)}catch(f){return s.emit("error",f,t),a(f)}return s.emit("data",p,t),a(null,p)})}catch(o){s.emit("error",o,t),setTimeout(function(){a(o)},0);return}};SA.prototype.end=function(t){return this.rpcImpl&&(t||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}});var nde=b(Ant=>{"use strict";var qgr=Ant;qgr.Service=knt()});var ide=b((zon,Tnt)=>{"use strict";Tnt.exports={}});var Cnt=b(Dnt=>{"use strict";var jc=Dnt;jc.build="minimal";jc.Writer=Bq();jc.BufferWriter=hnt();jc.Reader=Uq();jc.BufferReader=Ent();jc.util=dh();jc.rpc=nde();jc.roots=ide();jc.configure=Ont;function Ont(){jc.util._configure(),jc.Writer._configure(jc.BufferWriter),jc.Reader._configure(jc.BufferReader)}Ont()});var sde=b((Von,Pnt)=>{"use strict";Pnt.exports=ade;function ade(e,t){typeof e=="string"&&(t=e,e=void 0);var r=[];function n(a){if(typeof a!="string"){var s=i();if(ade.verbose&&console.log("codegen: "+s),s="return "+s,a){for(var o=Object.keys(a),c=new Array(o.length+1),p=new Array(o.length),f=0;f<o.length;)c[f]=o[f],p[f]=a[o[f++]];return c[f]=s,Function.apply(null,c).apply(null,p)}return Function(s)()}for(var d=new Array(arguments.length-1),h=0;h<d.length;)d[h]=arguments[++h];if(h=0,a=a.replace(/%([%dfijs])/g,function(v,y){var _=d[h++];switch(y){case"d":case"f":return String(Number(_));case"i":return String(Math.floor(_));case"j":return JSON.stringify(_);case"s":return String(_)}return"%"}),h!==d.length)throw Error("parameter count mismatch");return r.push(a),n}function i(a){return"function "+(a||t||"")+"("+(e&&e.join(",")||"")+`){
  `+r.join(`
  `)+`
}`}return n.toString=i,n}ade.verbose=!1});var ude=b((Gon,Int)=>{"use strict";Int.exports=kA;var Lgr=jq(),$gr=Lq(),ode=$gr("fs");function kA(e,t,r){return typeof t=="function"?(r=t,t={}):t||(t={}),r?!t.xhr&&ode&&ode.readFile?ode.readFile(e,function(i,a){return i&&typeof XMLHttpRequest<"u"?kA.xhr(e,t,r):i?r(i):r(null,t.binary?a:a.toString("utf8"))}):kA.xhr(e,t,r):Lgr(kA,this,e,t)}kA.xhr=function(t,r,n){var i=new XMLHttpRequest;i.onreadystatechange=function(){if(i.readyState===4){if(i.status!==0&&i.status!==200)return n(Error("status "+i.status));if(r.binary){var s=i.response;if(!s){s=[];for(var o=0;o<i.responseText.length;++o)s.push(i.responseText.charCodeAt(o)&255)}return n(null,typeof Uint8Array<"u"?new Uint8Array(s):s)}return n(null,i.responseText)}},r.binary&&("overrideMimeType"in i&&i.overrideMimeType("text/plain; charset=x-user-defined"),i.responseType="arraybuffer"),i.open("GET",t),i.send()}});var pde=b(Fnt=>{"use strict";var lde=Fnt,Rnt=lde.isAbsolute=function(t){return/^(?:\/|\w+:)/.test(t)},cde=lde.normalize=function(t){t=t.replace(/\\/g,"/").replace(/\/{2,}/g,"/");var r=t.split("/"),n=Rnt(t),i="";n&&(i=r.shift()+"/");for(var a=0;a<r.length;)r[a]===".."?a>0&&r[a-1]!==".."?r.splice(--a,2):n?r.splice(a,1):++a:r[a]==="."?r.splice(a,1):++a;return i+r.join("/")};lde.resolve=function(t,r,n){return n||(r=cde(r)),Rnt(r)?r:(n||(t=cde(t)),(t=t.replace(/(?:\/|^)[^/]+$/,"")).length?cde(t+"/"+r):r)}});var _w=b(jnt=>{"use strict";var AA=jnt,Bgr=ho(),Mgr=["double","float","int32","uint32","sint32","fixed32","sfixed32","int64","uint64","sint64","fixed64","sfixed64","bool","string","bytes"];function TA(e,t){var r=0,n={};for(t|=0;r<e.length;)n[Mgr[r+t]]=e[r++];return n}AA.basic=TA([1,5,0,0,0,5,5,0,0,0,1,1,0,2,2]);AA.defaults=TA([0,0,0,0,0,0,0,0,0,0,0,0,!1,"",Bgr.emptyArray,null]);AA.long=TA([0,0,0,1,1],7);AA.mapKey=TA([0,0,0,5,5,0,0,0,1,1,0,2],2);AA.packed=TA([1,5,0,0,0,5,5,0,0,0,1,1,0])});var ov=b((Yon,Lnt)=>{"use strict";Lnt.exports=hp;var zq=xw();((hp.prototype=Object.create(zq.prototype)).constructor=hp).className="Field";var Nnt=Uf(),qnt=_w(),Ds=ho(),fde,Ugr=/^required|optional|repeated$/;hp.fromJSON=function(t,r){return new hp(t,r.id,r.type,r.rule,r.extend,r.options,r.comment)};function hp(e,t,r,n,i,a,s){if(Ds.isObject(n)?(s=i,a=n,n=i=void 0):Ds.isObject(i)&&(s=a,a=i,i=void 0),zq.call(this,e,a),!Ds.isInteger(t)||t<0)throw TypeError("id must be a non-negative integer");if(!Ds.isString(r))throw TypeError("type must be a string");if(n!==void 0&&!Ugr.test(n=n.toString().toLowerCase()))throw TypeError("rule must be a string rule");if(i!==void 0&&!Ds.isString(i))throw TypeError("extend must be a string");n==="proto3_optional"&&(n="optional"),this.rule=n&&n!=="optional"?n:void 0,this.type=r,this.id=t,this.extend=i||void 0,this.required=n==="required",this.optional=!this.required,this.repeated=n==="repeated",this.map=!1,this.message=null,this.partOf=null,this.typeDefault=null,this.defaultValue=null,this.long=Ds.Long?qnt.long[r]!==void 0:!1,this.bytes=r==="bytes",this.resolvedType=null,this.extensionField=null,this.declaringField=null,this._packed=null,this.comment=s}Object.defineProperty(hp.prototype,"packed",{get:function(){return this._packed===null&&(this._packed=this.getOption("packed")!==!1),this._packed}});hp.prototype.setOption=function(t,r,n){return t==="packed"&&(this._packed=null),zq.prototype.setOption.call(this,t,r,n)};hp.prototype.toJSON=function(t){var r=t?!!t.keepComments:!1;return Ds.toObject(["rule",this.rule!=="optional"&&this.rule||void 0,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",r?this.comment:void 0])};hp.prototype.resolve=function(){if(this.resolved)return this;if((this.typeDefault=qnt.defaults[this.type])===void 0&&(this.resolvedType=(this.declaringField?this.declaringField.parent:this.parent).lookupTypeOrEnum(this.type),this.resolvedType instanceof fde?this.typeDefault=null:this.typeDefault=this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]),this.options&&this.options.default!=null&&(this.typeDefault=this.options.default,this.resolvedType instanceof Nnt&&typeof this.typeDefault=="string"&&(this.typeDefault=this.resolvedType.values[this.typeDefault])),this.options&&((this.options.packed===!0||this.options.packed!==void 0&&this.resolvedType&&!(this.resolvedType instanceof Nnt))&&delete this.options.packed,Object.keys(this.options).length||(this.options=void 0)),this.long)this.typeDefault=Ds.Long.fromNumber(this.typeDefault,this.type.charAt(0)==="u"),Object.freeze&&Object.freeze(this.typeDefault);else if(this.bytes&&typeof this.typeDefault=="string"){var t;Ds.base64.test(this.typeDefault)?Ds.base64.decode(this.typeDefault,t=Ds.newBuffer(Ds.base64.length(this.typeDefault)),0):Ds.utf8.write(this.typeDefault,t=Ds.newBuffer(Ds.utf8.length(this.typeDefault)),0),this.typeDefault=t}return this.map?this.defaultValue=Ds.emptyObject:this.repeated?this.defaultValue=Ds.emptyArray:this.defaultValue=this.typeDefault,this.parent instanceof fde&&(this.parent.ctor.prototype[this.name]=this.defaultValue),zq.prototype.resolve.call(this)};hp.d=function(t,r,n,i){return typeof r=="function"?r=Ds.decorateType(r).name:r&&typeof r=="object"&&(r=Ds.decorateEnum(r).name),function(s,o){Ds.decorateType(s.constructor).add(new hp(o,t,r,n,{default:i}))}};hp._configure=function(t){fde=t}});var e8=b((Jon,Mnt)=>{"use strict";Mnt.exports=mp;var Vq=xw();((mp.prototype=Object.create(Vq.prototype)).constructor=mp).className="OneOf";var $nt=ov(),Hq=ho();function mp(e,t,r,n){if(Array.isArray(t)||(r=t,t=void 0),Vq.call(this,e,r),!(t===void 0||Array.isArray(t)))throw TypeError("fieldNames must be an Array");this.oneof=t||[],this.fieldsArray=[],this.comment=n}mp.fromJSON=function(t,r){return new mp(t,r.oneof,r.options,r.comment)};mp.prototype.toJSON=function(t){var r=t?!!t.keepComments:!1;return Hq.toObject(["options",this.options,"oneof",this.oneof,"comment",r?this.comment:void 0])};function Bnt(e){if(e.parent)for(var t=0;t<e.fieldsArray.length;++t)e.fieldsArray[t].parent||e.parent.add(e.fieldsArray[t])}mp.prototype.add=function(t){if(!(t instanceof $nt))throw TypeError("field must be a Field");return t.parent&&t.parent!==this.parent&&t.parent.remove(t),this.oneof.push(t.name),this.fieldsArray.push(t),t.partOf=this,Bnt(this),this};mp.prototype.remove=function(t){if(!(t instanceof $nt))throw TypeError("field must be a Field");var r=this.fieldsArray.indexOf(t);if(r<0)throw Error(t+" is not a member of "+this);return this.fieldsArray.splice(r,1),r=this.oneof.indexOf(t.name),r>-1&&this.oneof.splice(r,1),t.partOf=null,this};mp.prototype.onAdd=function(t){Vq.prototype.onAdd.call(this,t);for(var r=this,n=0;n<this.oneof.length;++n){var i=t.get(this.oneof[n]);i&&!i.partOf&&(i.partOf=r,r.fieldsArray.push(i))}Bnt(this)};mp.prototype.onRemove=function(t){for(var r=0,n;r<this.fieldsArray.length;++r)(n=this.fieldsArray[r]).parent&&n.parent.remove(n);Vq.prototype.onRemove.call(this,t)};mp.d=function(){for(var t=new Array(arguments.length),r=0;r<arguments.length;)t[r]=arguments[r++];return function(i,a){Hq.decorateType(i.constructor).add(new mp(a,t)),Object.defineProperty(i,a,{get:Hq.oneOfGetter(t),set:Hq.oneOfSetter(t)})}}});var n8=b((Xon,Vnt)=>{"use strict";Vnt.exports=Yn;var dde=xw();((Yn.prototype=Object.create(dde.prototype)).constructor=Yn).className="Namespace";var Unt=ov(),zgr=e8(),Gq=ho(),t8,OA,r8;Yn.fromJSON=function(t,r){return new Yn(t,r.options).addJSON(r.nested)};function znt(e,t){if(e&&e.length){for(var r={},n=0;n<e.length;++n)r[e[n].name]=e[n].toJSON(t);return r}}Yn.arrayToJSON=znt;Yn.isReservedId=function(t,r){if(t){for(var n=0;n<t.length;++n)if(typeof t[n]!="string"&&t[n][0]<=r&&t[n][1]>r)return!0}return!1};Yn.isReservedName=function(t,r){if(t){for(var n=0;n<t.length;++n)if(t[n]===r)return!0}return!1};function Yn(e,t){dde.call(this,e,t),this.nested=void 0,this._nestedArray=null}function Hnt(e){return e._nestedArray=null,e}Object.defineProperty(Yn.prototype,"nestedArray",{get:function(){return this._nestedArray||(this._nestedArray=Gq.toArray(this.nested))}});Yn.prototype.toJSON=function(t){return Gq.toObject(["options",this.options,"nested",znt(this.nestedArray,t)])};Yn.prototype.addJSON=function(t){var r=this;if(t)for(var n=Object.keys(t),i=0,a;i<n.length;++i)a=t[n[i]],r.add((a.fields!==void 0?t8.fromJSON:a.values!==void 0?r8.fromJSON:a.methods!==void 0?OA.fromJSON:a.id!==void 0?Unt.fromJSON:Yn.fromJSON)(n[i],a));return this};Yn.prototype.get=function(t){return this.nested&&this.nested[t]||null};Yn.prototype.getEnum=function(t){if(this.nested&&this.nested[t]instanceof r8)return this.nested[t].values;throw Error("no such enum: "+t)};Yn.prototype.add=function(t){if(!(t instanceof Unt&&t.extend!==void 0||t instanceof t8||t instanceof r8||t instanceof OA||t instanceof Yn||t instanceof zgr))throw TypeError("object must be a valid nested object");if(!this.nested)this.nested={};else{var r=this.get(t.name);if(r)if(r instanceof Yn&&t instanceof Yn&&!(r instanceof t8||r instanceof OA)){for(var n=r.nestedArray,i=0;i<n.length;++i)t.add(n[i]);this.remove(r),this.nested||(this.nested={}),t.setOptions(r.options,!0)}else throw Error("duplicate name '"+t.name+"' in "+this)}return this.nested[t.name]=t,t.onAdd(this),Hnt(this)};Yn.prototype.remove=function(t){if(!(t instanceof dde))throw TypeError("object must be a ReflectionObject");if(t.parent!==this)throw Error(t+" is not a member of "+this);return delete this.nested[t.name],Object.keys(this.nested).length||(this.nested=void 0),t.onRemove(this),Hnt(this)};Yn.prototype.define=function(t,r){if(Gq.isString(t))t=t.split(".");else if(!Array.isArray(t))throw TypeError("illegal path");if(t&&t.length&&t[0]==="")throw Error("path must be relative");for(var n=this;t.length>0;){var i=t.shift();if(n.nested&&n.nested[i]){if(n=n.nested[i],!(n instanceof Yn))throw Error("path conflicts with non-namespace objects")}else n.add(n=new Yn(i))}return r&&n.addJSON(r),n};Yn.prototype.resolveAll=function(){for(var t=this.nestedArray,r=0;r<t.length;)t[r]instanceof Yn?t[r++].resolveAll():t[r++].resolve();return this.resolve()};Yn.prototype.lookup=function(t,r,n){if(typeof r=="boolean"?(n=r,r=void 0):r&&!Array.isArray(r)&&(r=[r]),Gq.isString(t)&&t.length){if(t===".")return this.root;t=t.split(".")}else if(!t.length)return this;if(t[0]==="")return this.root.lookup(t.slice(1),r);var i=this.get(t[0]);if(i){if(t.length===1){if(!r||r.indexOf(i.constructor)>-1)return i}else if(i instanceof Yn&&(i=i.lookup(t.slice(1),r,!0)))return i}else for(var a=0;a<this.nestedArray.length;++a)if(this._nestedArray[a]instanceof Yn&&(i=this._nestedArray[a].lookup(t,r,!0)))return i;return this.parent===null||n?null:this.parent.lookup(t,r)};Yn.prototype.lookupType=function(t){var r=this.lookup(t,[t8]);if(!r)throw Error("no such type: "+t);return r};Yn.prototype.lookupEnum=function(t){var r=this.lookup(t,[r8]);if(!r)throw Error("no such Enum '"+t+"' in "+this);return r};Yn.prototype.lookupTypeOrEnum=function(t){var r=this.lookup(t,[t8,r8]);if(!r)throw Error("no such Type or Enum '"+t+"' in "+this);return r};Yn.prototype.lookupService=function(t){var r=this.lookup(t,[OA]);if(!r)throw Error("no such Service '"+t+"' in "+this);return r};Yn._configure=function(e,t,r){t8=e,OA=t,r8=r}});var Wq=b((Qon,Gnt)=>{"use strict";Gnt.exports=V1;var hde=ov();((V1.prototype=Object.create(hde.prototype)).constructor=V1).className="MapField";var Hgr=_w(),DA=ho();function V1(e,t,r,n,i,a){if(hde.call(this,e,t,n,void 0,void 0,i,a),!DA.isString(r))throw TypeError("keyType must be a string");this.keyType=r,this.resolvedKeyType=null,this.map=!0}V1.fromJSON=function(t,r){return new V1(t,r.id,r.keyType,r.type,r.options,r.comment)};V1.prototype.toJSON=function(t){var r=t?!!t.keepComments:!1;return DA.toObject(["keyType",this.keyType,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",r?this.comment:void 0])};V1.prototype.resolve=function(){if(this.resolved)return this;if(Hgr.mapKey[this.keyType]===void 0)throw Error("invalid key type: "+this.keyType);return hde.prototype.resolve.call(this)};V1.d=function(t,r,n){return typeof n=="function"?n=DA.decorateType(n).name:n&&typeof n=="object"&&(n=DA.decorateEnum(n).name),function(a,s){DA.decorateType(a.constructor).add(new V1(s,t,r,n))}}});var Kq=b((Zon,Wnt)=>{"use strict";Wnt.exports=Ew;var mde=xw();((Ew.prototype=Object.create(mde.prototype)).constructor=Ew).className="Method";var i8=ho();function Ew(e,t,r,n,i,a,s,o,c){if(i8.isObject(i)?(s=i,i=a=void 0):i8.isObject(a)&&(s=a,a=void 0),!(t===void 0||i8.isString(t)))throw TypeError("type must be a string");if(!i8.isString(r))throw TypeError("requestType must be a string");if(!i8.isString(n))throw TypeError("responseType must be a string");mde.call(this,e,s),this.type=t||"rpc",this.requestType=r,this.requestStream=i?!0:void 0,this.responseType=n,this.responseStream=a?!0:void 0,this.resolvedRequestType=null,this.resolvedResponseType=null,this.comment=o,this.parsedOptions=c}Ew.fromJSON=function(t,r){return new Ew(t,r.type,r.requestType,r.responseType,r.requestStream,r.responseStream,r.options,r.comment,r.parsedOptions)};Ew.prototype.toJSON=function(t){var r=t?!!t.keepComments:!1;return i8.toObject(["type",this.type!=="rpc"&&this.type||void 0,"requestType",this.requestType,"requestStream",this.requestStream,"responseType",this.responseType,"responseStream",this.responseStream,"options",this.options,"comment",r?this.comment:void 0,"parsedOptions",this.parsedOptions])};Ew.prototype.resolve=function(){return this.resolved?this:(this.resolvedRequestType=this.parent.lookupType(this.requestType),this.resolvedResponseType=this.parent.lookupType(this.responseType),mde.prototype.resolve.call(this))}});var Yq=b((eun,Ynt)=>{"use strict";Ynt.exports=gp;var uv=n8();((gp.prototype=Object.create(uv.prototype)).constructor=gp).className="Service";var gde=Kq(),CA=ho(),Vgr=nde();function gp(e,t){uv.call(this,e,t),this.methods={},this._methodsArray=null}gp.fromJSON=function(t,r){var n=new gp(t,r.options);if(r.methods)for(var i=Object.keys(r.methods),a=0;a<i.length;++a)n.add(gde.fromJSON(i[a],r.methods[i[a]]));return r.nested&&n.addJSON(r.nested),n.comment=r.comment,n};gp.prototype.toJSON=function(t){var r=uv.prototype.toJSON.call(this,t),n=t?!!t.keepComments:!1;return CA.toObject(["options",r&&r.options||void 0,"methods",uv.arrayToJSON(this.methodsArray,t)||{},"nested",r&&r.nested||void 0,"comment",n?this.comment:void 0])};Object.defineProperty(gp.prototype,"methodsArray",{get:function(){return this._methodsArray||(this._methodsArray=CA.toArray(this.methods))}});function Knt(e){return e._methodsArray=null,e}gp.prototype.get=function(t){return this.methods[t]||uv.prototype.get.call(this,t)};gp.prototype.resolveAll=function(){for(var t=this.methodsArray,r=0;r<t.length;++r)t[r].resolve();return uv.prototype.resolve.call(this)};gp.prototype.add=function(t){if(this.get(t.name))throw Error("duplicate name '"+t.name+"' in "+this);return t instanceof gde?(this.methods[t.name]=t,t.parent=this,Knt(this)):uv.prototype.add.call(this,t)};gp.prototype.remove=function(t){if(t instanceof gde){if(this.methods[t.name]!==t)throw Error(t+" is not a member of "+this);return delete this.methods[t.name],t.parent=null,Knt(this)}return uv.prototype.remove.call(this,t)};gp.prototype.create=function(t,r,n){for(var i=new Vgr.Service(t,r,n),a=0,s;a<this.methodsArray.length;++a){var o=CA.lcFirst((s=this._methodsArray[a]).resolve().name).replace(/[^$\w_]/g,"");i[o]=CA.codegen(["r","c"],CA.isReserved(o)?o+"_":o)("return this.rpcCall(m,q,s,r,c)")({m:s,q:s.resolvedRequestType.ctor,s:s.resolvedResponseType.ctor})}return i}});var Jq=b((tun,Jnt)=>{"use strict";Jnt.exports=gh;var Ggr=dh();function gh(e){if(e)for(var t=Object.keys(e),r=0;r<t.length;++r)this[t[r]]=e[t[r]]}gh.create=function(t){return this.$type.create(t)};gh.encode=function(t,r){return this.$type.encode(t,r)};gh.encodeDelimited=function(t,r){return this.$type.encodeDelimited(t,r)};gh.decode=function(t){return this.$type.decode(t)};gh.decodeDelimited=function(t){return this.$type.decodeDelimited(t)};gh.verify=function(t){return this.$type.verify(t)};gh.fromObject=function(t){return this.$type.fromObject(t)};gh.toObject=function(t,r){return this.$type.toObject(t,r)};gh.prototype.toJSON=function(){return this.$type.toObject(this,Ggr.toJSONOptions)}});var vde=b((run,Qnt)=>{"use strict";Qnt.exports=Ygr;var Wgr=Uf(),G1=_w(),Xnt=ho();function Kgr(e){return"missing required '"+e.name+"'"}function Ygr(e){var t=Xnt.codegen(["r","l"],e.name+"$decode")("if(!(r instanceof Reader))")("r=Reader.create(r)")("var c=l===undefined?r.len:r.pos+l,m=new this.ctor"+(e.fieldsArray.filter(function(o){return o.map}).length?",k,value":""))("while(r.pos<c){")("var t=r.uint32()");e.group&&t("if((t&7)===4)")("break"),t("switch(t>>>3){");for(var r=0;r<e.fieldsArray.length;++r){var n=e._fieldsArray[r].resolve(),i=n.resolvedType instanceof Wgr?"int32":n.type,a="m"+Xnt.safeProp(n.name);t("case %i:",n.id),n.map?(t("if(%s===util.emptyObject)",a)("%s={}",a)("var c2 = r.uint32()+r.pos"),G1.defaults[n.keyType]!==void 0?t("k=%j",G1.defaults[n.keyType]):t("k=null"),G1.defaults[i]!==void 0?t("value=%j",G1.defaults[i]):t("value=null"),t("while(r.pos<c2){")("var tag2=r.uint32()")("switch(tag2>>>3){")("case 1: k=r.%s(); break",n.keyType)("case 2:"),G1.basic[i]===void 0?t("value=types[%i].decode(r,r.uint32())",r):t("value=r.%s()",i),t("break")("default:")("r.skipType(tag2&7)")("break")("}")("}"),G1.long[n.keyType]!==void 0?t('%s[typeof k==="object"?util.longToHash(k):k]=value',a):t("%s[k]=value",a)):n.repeated?(t("if(!(%s&&%s.length))",a,a)("%s=[]",a),G1.packed[i]!==void 0&&t("if((t&7)===2){")("var c2=r.uint32()+r.pos")("while(r.pos<c2)")("%s.push(r.%s())",a,i)("}else"),G1.basic[i]===void 0?t(n.resolvedType.group?"%s.push(types[%i].decode(r))":"%s.push(types[%i].decode(r,r.uint32()))",a,r):t("%s.push(r.%s())",a,i)):G1.basic[i]===void 0?t(n.resolvedType.group?"%s=types[%i].decode(r)":"%s=types[%i].decode(r,r.uint32())",a,r):t("%s=r.%s()",a,i),t("break")}for(t("default:")("r.skipType(t&7)")("break")("}")("}"),r=0;r<e._fieldsArray.length;++r){var s=e._fieldsArray[r];s.required&&t("if(!m.hasOwnProperty(%j))",s.name)("throw util.ProtocolError(%j,{instance:m})",Kgr(s))}return t("return m")}});var wde=b((nun,Znt)=>{"use strict";Znt.exports=Qgr;var Jgr=Uf(),yde=ho();function vp(e,t){return e.name+": "+t+(e.repeated&&t!=="array"?"[]":e.map&&t!=="object"?"{k:"+e.keyType+"}":"")+" expected"}function bde(e,t,r,n){if(t.resolvedType)if(t.resolvedType instanceof Jgr){e("switch(%s){",n)("default:")("return%j",vp(t,"enum value"));for(var i=Object.keys(t.resolvedType.values),a=0;a<i.length;++a)e("case %i:",t.resolvedType.values[i[a]]);e("break")("}")}else e("{")("var e=types[%i].verify(%s);",r,n)("if(e)")("return%j+e",t.name+".")("}");else switch(t.type){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":e("if(!util.isInteger(%s))",n)("return%j",vp(t,"integer"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":e("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))",n,n,n,n)("return%j",vp(t,"integer|Long"));break;case"float":case"double":e('if(typeof %s!=="number")',n)("return%j",vp(t,"number"));break;case"bool":e('if(typeof %s!=="boolean")',n)("return%j",vp(t,"boolean"));break;case"string":e("if(!util.isString(%s))",n)("return%j",vp(t,"string"));break;case"bytes":e('if(!(%s&&typeof %s.length==="number"||util.isString(%s)))',n,n,n)("return%j",vp(t,"buffer"));break}return e}function Xgr(e,t,r){switch(t.keyType){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":e("if(!util.key32Re.test(%s))",r)("return%j",vp(t,"integer key"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":e("if(!util.key64Re.test(%s))",r)("return%j",vp(t,"integer|Long key"));break;case"bool":e("if(!util.key2Re.test(%s))",r)("return%j",vp(t,"boolean key"));break}return e}function Qgr(e){var t=yde.codegen(["m"],e.name+"$verify")('if(typeof m!=="object"||m===null)')("return%j","object expected"),r=e.oneofsArray,n={};r.length&&t("var p={}");for(var i=0;i<e.fieldsArray.length;++i){var a=e._fieldsArray[i].resolve(),s="m"+yde.safeProp(a.name);if(a.optional&&t("if(%s!=null&&m.hasOwnProperty(%j)){",s,a.name),a.map)t("if(!util.isObject(%s))",s)("return%j",vp(a,"object"))("var k=Object.keys(%s)",s)("for(var i=0;i<k.length;++i){"),Xgr(t,a,"k[i]"),bde(t,a,i,s+"[k[i]]")("}");else if(a.repeated)t("if(!Array.isArray(%s))",s)("return%j",vp(a,"array"))("for(var i=0;i<%s.length;++i){",s),bde(t,a,i,s+"[i]")("}");else{if(a.partOf){var o=yde.safeProp(a.partOf.name);n[a.partOf.name]===1&&t("if(p%s===1)",o)("return%j",a.partOf.name+": multiple values"),n[a.partOf.name]=1,t("p%s=1",o)}bde(t,a,i,s)}a.optional&&t("}")}return t("return null")}});var Ede=b(tit=>{"use strict";var eit=tit,PA=Uf(),vh=ho();function _de(e,t,r,n){if(t.resolvedType)if(t.resolvedType instanceof PA){e("switch(d%s){",n);for(var i=t.resolvedType.values,a=Object.keys(i),s=0;s<a.length;++s)t.repeated&&i[a[s]]===t.typeDefault&&e("default:"),e("case%j:",a[s])("case %i:",i[a[s]])("m%s=%j",n,i[a[s]])("break");e("}")}else e('if(typeof d%s!=="object")',n)("throw TypeError(%j)",t.fullName+": object expected")("m%s=types[%i].fromObject(d%s)",n,r,n);else{var o=!1;switch(t.type){case"double":case"float":e("m%s=Number(d%s)",n,n);break;case"uint32":case"fixed32":e("m%s=d%s>>>0",n,n);break;case"int32":case"sint32":case"sfixed32":e("m%s=d%s|0",n,n);break;case"uint64":o=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e("if(util.Long)")("(m%s=util.Long.fromValue(d%s)).unsigned=%j",n,n,o)('else if(typeof d%s==="string")',n)("m%s=parseInt(d%s,10)",n,n)('else if(typeof d%s==="number")',n)("m%s=d%s",n,n)('else if(typeof d%s==="object")',n)("m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)",n,n,n,o?"true":"");break;case"bytes":e('if(typeof d%s==="string")',n)("util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)",n,n,n)("else if(d%s.length)",n)("m%s=d%s",n,n);break;case"string":e("m%s=String(d%s)",n,n);break;case"bool":e("m%s=Boolean(d%s)",n,n);break}}return e}eit.fromObject=function(t){var r=t.fieldsArray,n=vh.codegen(["d"],t.name+"$fromObject")("if(d instanceof this.ctor)")("return d");if(!r.length)return n("return new this.ctor");n("var m=new this.ctor");for(var i=0;i<r.length;++i){var a=r[i].resolve(),s=vh.safeProp(a.name);a.map?(n("if(d%s){",s)('if(typeof d%s!=="object")',s)("throw TypeError(%j)",a.fullName+": object expected")("m%s={}",s)("for(var ks=Object.keys(d%s),i=0;i<ks.length;++i){",s),_de(n,a,i,s+"[ks[i]]")("}")("}")):a.repeated?(n("if(d%s){",s)("if(!Array.isArray(d%s))",s)("throw TypeError(%j)",a.fullName+": array expected")("m%s=[]",s)("for(var i=0;i<d%s.length;++i){",s),_de(n,a,i,s+"[i]")("}")("}")):(a.resolvedType instanceof PA||n("if(d%s!=null){",s),_de(n,a,i,s),a.resolvedType instanceof PA||n("}"))}return n("return m")};function xde(e,t,r,n){if(t.resolvedType)t.resolvedType instanceof PA?e("d%s=o.enums===String?types[%i].values[m%s]:m%s",n,r,n,n):e("d%s=types[%i].toObject(m%s,o)",n,r,n);else{var i=!1;switch(t.type){case"double":case"float":e("d%s=o.json&&!isFinite(m%s)?String(m%s):m%s",n,n,n,n);break;case"uint64":i=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e('if(typeof m%s==="number")',n)("d%s=o.longs===String?String(m%s):m%s",n,n,n)("else")("d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low>>>0,m%s.high>>>0).toNumber(%s):m%s",n,n,n,n,i?"true":"",n);break;case"bytes":e("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",n,n,n,n,n);break;default:e("d%s=m%s",n,n);break}}return e}eit.toObject=function(t){var r=t.fieldsArray.slice().sort(vh.compareFieldsById);if(!r.length)return vh.codegen()("return {}");for(var n=vh.codegen(["m","o"],t.name+"$toObject")("if(!o)")("o={}")("var d={}"),i=[],a=[],s=[],o=0;o<r.length;++o)r[o].partOf||(r[o].resolve().repeated?i:r[o].map?a:s).push(r[o]);if(i.length){for(n("if(o.arrays||o.defaults){"),o=0;o<i.length;++o)n("d%s=[]",vh.safeProp(i[o].name));n("}")}if(a.length){for(n("if(o.objects||o.defaults){"),o=0;o<a.length;++o)n("d%s={}",vh.safeProp(a[o].name));n("}")}if(s.length){for(n("if(o.defaults){"),o=0;o<s.length;++o){var c=s[o],p=vh.safeProp(c.name);if(c.resolvedType instanceof PA)n("d%s=o.enums===String?%j:%j",p,c.resolvedType.valuesById[c.typeDefault],c.typeDefault);else if(c.long)n("if(util.Long){")("var n=new util.Long(%i,%i,%j)",c.typeDefault.low,c.typeDefault.high,c.typeDefault.unsigned)("d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n",p)("}else")("d%s=o.longs===String?%j:%i",p,c.typeDefault.toString(),c.typeDefault.toNumber());else if(c.bytes){var f="["+Array.prototype.slice.call(c.typeDefault).join(",")+"]";n("if(o.bytes===String)d%s=%j",p,String.fromCharCode.apply(String,c.typeDefault))("else{")("d%s=%s",p,f)("if(o.bytes!==Array)d%s=util.newBuffer(d%s)",p,p)("}")}else n("d%s=%j",p,c.typeDefault)}n("}")}var d=!1;for(o=0;o<r.length;++o){var c=r[o],h=t._fieldsArray.indexOf(c),p=vh.safeProp(c.name);c.map?(d||(d=!0,n("var ks2")),n("if(m%s&&(ks2=Object.keys(m%s)).length){",p,p)("d%s={}",p)("for(var j=0;j<ks2.length;++j){"),xde(n,c,h,p+"[ks2[j]]")("}")):c.repeated?(n("if(m%s&&m%s.length){",p,p)("d%s=[]",p)("for(var j=0;j<m%s.length;++j){",p),xde(n,c,h,p+"[j]")("}")):(n("if(m%s!=null&&m.hasOwnProperty(%j)){",p,c.name),xde(n,c,h,p),c.partOf&&n("if(o.oneofs)")("d%s=%j",vh.safeProp(c.partOf.name),c.name)),n("}")}return n("return d")}});var Sde=b(rit=>{"use strict";var Zgr=rit,evr=Jq();Zgr[".google.protobuf.Any"]={fromObject:function(e){if(e&&e["@type"]){var t=e["@type"].substring(e["@type"].lastIndexOf("/")+1),r=this.lookup(t);if(r){var n=e["@type"].charAt(0)==="."?e["@type"].substr(1):e["@type"];return n.indexOf("/")===-1&&(n="/"+n),this.create({type_url:n,value:r.encode(r.fromObject(e)).finish()})}}return this.fromObject(e)},toObject:function(e,t){var r="type.googleapis.com/",n="",i="";if(t&&t.json&&e.type_url&&e.value){i=e.type_url.substring(e.type_url.lastIndexOf("/")+1),n=e.type_url.substring(0,e.type_url.lastIndexOf("/")+1);var a=this.lookup(i);a&&(e=a.decode(e.value))}if(!(e instanceof this.ctor)&&e instanceof evr){var s=e.$type.toObject(e,t),o=e.$type.fullName[0]==="."?e.$type.fullName.substr(1):e.$type.fullName;return n===""&&(n=r),i=n+o,s["@type"]=i,s}return this.toObject(e,t)}}});var Zq=b((sun,iit)=>{"use strict";iit.exports=Ji;var zf=n8();((Ji.prototype=Object.create(zf.prototype)).constructor=Ji).className="Type";var tvr=Uf(),Tde=e8(),Xq=ov(),rvr=Wq(),nvr=Yq(),kde=Jq(),Ade=Uq(),ivr=Bq(),_u=ho(),avr=Ode(),svr=vde(),ovr=wde(),nit=Ede(),uvr=Sde();function Ji(e,t){zf.call(this,e,t),this.fields={},this.oneofs=void 0,this.extensions=void 0,this.reserved=void 0,this.group=void 0,this._fieldsById=null,this._fieldsArray=null,this._oneofsArray=null,this._ctor=null}Object.defineProperties(Ji.prototype,{fieldsById:{get:function(){if(this._fieldsById)return this._fieldsById;this._fieldsById={};for(var e=Object.keys(this.fields),t=0;t<e.length;++t){var r=this.fields[e[t]],n=r.id;if(this._fieldsById[n])throw Error("duplicate id "+n+" in "+this);this._fieldsById[n]=r}return this._fieldsById}},fieldsArray:{get:function(){return this._fieldsArray||(this._fieldsArray=_u.toArray(this.fields))}},oneofsArray:{get:function(){return this._oneofsArray||(this._oneofsArray=_u.toArray(this.oneofs))}},ctor:{get:function(){return this._ctor||(this.ctor=Ji.generateConstructor(this)())},set:function(e){var t=e.prototype;t instanceof kde||((e.prototype=new kde).constructor=e,_u.merge(e.prototype,t)),e.$type=e.prototype.$type=this,_u.merge(e,kde,!0),this._ctor=e;for(var r=0;r<this.fieldsArray.length;++r)this._fieldsArray[r].resolve();var n={};for(r=0;r<this.oneofsArray.length;++r)n[this._oneofsArray[r].resolve().name]={get:_u.oneOfGetter(this._oneofsArray[r].oneof),set:_u.oneOfSetter(this._oneofsArray[r].oneof)};r&&Object.defineProperties(e.prototype,n)}}});Ji.generateConstructor=function(t){for(var r=_u.codegen(["p"],t.name),n=0,i;n<t.fieldsArray.length;++n)(i=t._fieldsArray[n]).map?r("this%s={}",_u.safeProp(i.name)):i.repeated&&r("this%s=[]",_u.safeProp(i.name));return r("if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)")("this[ks[i]]=p[ks[i]]")};function Qq(e){return e._fieldsById=e._fieldsArray=e._oneofsArray=null,delete e.encode,delete e.decode,delete e.verify,e}Ji.fromJSON=function(t,r){var n=new Ji(t,r.options);n.extensions=r.extensions,n.reserved=r.reserved;for(var i=Object.keys(r.fields),a=0;a<i.length;++a)n.add((typeof r.fields[i[a]].keyType<"u"?rvr.fromJSON:Xq.fromJSON)(i[a],r.fields[i[a]]));if(r.oneofs)for(i=Object.keys(r.oneofs),a=0;a<i.length;++a)n.add(Tde.fromJSON(i[a],r.oneofs[i[a]]));if(r.nested)for(i=Object.keys(r.nested),a=0;a<i.length;++a){var s=r.nested[i[a]];n.add((s.id!==void 0?Xq.fromJSON:s.fields!==void 0?Ji.fromJSON:s.values!==void 0?tvr.fromJSON:s.methods!==void 0?nvr.fromJSON:zf.fromJSON)(i[a],s))}return r.extensions&&r.extensions.length&&(n.extensions=r.extensions),r.reserved&&r.reserved.length&&(n.reserved=r.reserved),r.group&&(n.group=!0),r.comment&&(n.comment=r.comment),n};Ji.prototype.toJSON=function(t){var r=zf.prototype.toJSON.call(this,t),n=t?!!t.keepComments:!1;return _u.toObject(["options",r&&r.options||void 0,"oneofs",zf.arrayToJSON(this.oneofsArray,t),"fields",zf.arrayToJSON(this.fieldsArray.filter(function(i){return!i.declaringField}),t)||{},"extensions",this.extensions&&this.extensions.length?this.extensions:void 0,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"group",this.group||void 0,"nested",r&&r.nested||void 0,"comment",n?this.comment:void 0])};Ji.prototype.resolveAll=function(){for(var t=this.fieldsArray,r=0;r<t.length;)t[r++].resolve();var n=this.oneofsArray;for(r=0;r<n.length;)n[r++].resolve();return zf.prototype.resolveAll.call(this)};Ji.prototype.get=function(t){return this.fields[t]||this.oneofs&&this.oneofs[t]||this.nested&&this.nested[t]||null};Ji.prototype.add=function(t){if(this.get(t.name))throw Error("duplicate name '"+t.name+"' in "+this);if(t instanceof Xq&&t.extend===void 0){if(this._fieldsById?this._fieldsById[t.id]:this.fieldsById[t.id])throw Error("duplicate id "+t.id+" in "+this);if(this.isReservedId(t.id))throw Error("id "+t.id+" is reserved in "+this);if(this.isReservedName(t.name))throw Error("name '"+t.name+"' is reserved in "+this);return t.parent&&t.parent.remove(t),this.fields[t.name]=t,t.message=this,t.onAdd(this),Qq(this)}return t instanceof Tde?(this.oneofs||(this.oneofs={}),this.oneofs[t.name]=t,t.onAdd(this),Qq(this)):zf.prototype.add.call(this,t)};Ji.prototype.remove=function(t){if(t instanceof Xq&&t.extend===void 0){if(!this.fields||this.fields[t.name]!==t)throw Error(t+" is not a member of "+this);return delete this.fields[t.name],t.parent=null,t.onRemove(this),Qq(this)}if(t instanceof Tde){if(!this.oneofs||this.oneofs[t.name]!==t)throw Error(t+" is not a member of "+this);return delete this.oneofs[t.name],t.parent=null,t.onRemove(this),Qq(this)}return zf.prototype.remove.call(this,t)};Ji.prototype.isReservedId=function(t){return zf.isReservedId(this.reserved,t)};Ji.prototype.isReservedName=function(t){return zf.isReservedName(this.reserved,t)};Ji.prototype.create=function(t){return new this.ctor(t)};Ji.prototype.setup=function(){for(var t=this.fullName,r=[],n=0;n<this.fieldsArray.length;++n)r.push(this._fieldsArray[n].resolve().resolvedType);this.encode=avr(this)({Writer:ivr,types:r,util:_u}),this.decode=svr(this)({Reader:Ade,types:r,util:_u}),this.verify=ovr(this)({types:r,util:_u}),this.fromObject=nit.fromObject(this)({types:r,util:_u}),this.toObject=nit.toObject(this)({types:r,util:_u});var i=uvr[t];if(i){var a=Object.create(this);a.fromObject=this.fromObject,this.fromObject=i.fromObject.bind(a),a.toObject=this.toObject,this.toObject=i.toObject.bind(a)}return this};Ji.prototype.encode=function(t,r){return this.setup().encode(t,r)};Ji.prototype.encodeDelimited=function(t,r){return this.encode(t,r&&r.len?r.fork():r).ldelim()};Ji.prototype.decode=function(t,r){return this.setup().decode(t,r)};Ji.prototype.decodeDelimited=function(t){return t instanceof Ade||(t=Ade.create(t)),this.decode(t,t.uint32())};Ji.prototype.verify=function(t){return this.setup().verify(t)};Ji.prototype.fromObject=function(t){return this.setup().fromObject(t)};Ji.prototype.toObject=function(t,r){return this.setup().toObject(t,r)};Ji.d=function(t){return function(n){_u.decorateType(n,t)}}});var rL=b((oun,cit)=>{"use strict";cit.exports=xl;var tL=n8();((xl.prototype=Object.create(tL.prototype)).constructor=xl).className="Root";var Cde=ov(),sit=Uf(),cvr=e8(),cv=ho(),oit,Dde,IA;function xl(e){tL.call(this,"",e),this.deferred=[],this.files=[]}xl.fromJSON=function(t,r){return r||(r=new xl),t.options&&r.setOptions(t.options),r.addJSON(t.nested)};xl.prototype.resolvePath=cv.path.resolve;xl.prototype.fetch=cv.fetch;function uit(){}xl.prototype.load=function e(t,r,n){typeof r=="function"&&(n=r,r=void 0);var i=this;if(!n)return cv.asPromise(e,i,t,r);var a=n===uit;function s(g,v){if(n){var y=n;if(n=null,a)throw g;y(g,v)}}function o(g){var v=g.lastIndexOf("google/protobuf/");if(v>-1){var y=g.substring(v);if(y in IA)return y}return null}function c(g,v){try{if(cv.isString(v)&&v.charAt(0)==="{"&&(v=JSON.parse(v)),!cv.isString(v))i.setOptions(v.options).addJSON(v.nested);else{Dde.filename=g;var y=Dde(v,i,r),_,x=0;if(y.imports)for(;x<y.imports.length;++x)(_=o(y.imports[x])||i.resolvePath(g,y.imports[x]))&&p(_);if(y.weakImports)for(x=0;x<y.weakImports.length;++x)(_=o(y.weakImports[x])||i.resolvePath(g,y.weakImports[x]))&&p(_,!0)}}catch(A){s(A)}!a&&!f&&s(null,i)}function p(g,v){if(!(i.files.indexOf(g)>-1)){if(i.files.push(g),g in IA){a?c(g,IA[g]):(++f,setTimeout(function(){--f,c(g,IA[g])}));return}if(a){var y;try{y=cv.fs.readFileSync(g).toString("utf8")}catch(_){v||s(_);return}c(g,y)}else++f,i.fetch(g,function(_,x){if(--f,!!n){if(_){v?f||s(null,i):s(_);return}c(g,x)}})}}var f=0;cv.isString(t)&&(t=[t]);for(var d=0,h;d<t.length;++d)(h=i.resolvePath("",t[d]))&&p(h);if(a)return i;f||s(null,i)};xl.prototype.loadSync=function(t,r){if(!cv.isNode)throw Error("not supported");return this.load(t,r,uit)};xl.prototype.resolveAll=function(){if(this.deferred.length)throw Error("unresolvable extensions: "+this.deferred.map(function(t){return"'extend "+t.extend+"' in "+t.parent.fullName}).join(", "));return tL.prototype.resolveAll.call(this)};var eL=/^[A-Z]/;function ait(e,t){var r=t.parent.lookup(t.extend);if(r){var n=new Cde(t.fullName,t.id,t.type,t.rule,void 0,t.options);return n.declaringField=t,t.extensionField=n,r.add(n),!0}return!1}xl.prototype._handleAdd=function(t){if(t instanceof Cde)t.extend!==void 0&&!t.extensionField&&(ait(this,t)||this.deferred.push(t));else if(t instanceof sit)eL.test(t.name)&&(t.parent[t.name]=t.values);else if(!(t instanceof cvr)){if(t instanceof oit)for(var r=0;r<this.deferred.length;)ait(this,this.deferred[r])?this.deferred.splice(r,1):++r;for(var n=0;n<t.nestedArray.length;++n)this._handleAdd(t._nestedArray[n]);eL.test(t.name)&&(t.parent[t.name]=t)}};xl.prototype._handleRemove=function(t){if(t instanceof Cde){if(t.extend!==void 0)if(t.extensionField)t.extensionField.parent.remove(t.extensionField),t.extensionField=null;else{var r=this.deferred.indexOf(t);r>-1&&this.deferred.splice(r,1)}}else if(t instanceof sit)eL.test(t.name)&&delete t.parent[t.name];else if(t instanceof tL){for(var n=0;n<t.nestedArray.length;++n)this._handleRemove(t._nestedArray[n]);eL.test(t.name)&&delete t.parent[t.name]}};xl._configure=function(e,t,r){oit=e,Dde=t,IA=r}});var ho=b((uun,pit)=>{"use strict";var hs=pit.exports=dh(),lit=ide(),Pde,Ide;hs.codegen=sde();hs.fetch=ude();hs.path=pde();hs.fs=hs.inquire("fs");hs.toArray=function(t){if(t){for(var r=Object.keys(t),n=new Array(r.length),i=0;i<r.length;)n[i]=t[r[i++]];return n}return[]};hs.toObject=function(t){for(var r={},n=0;n<t.length;){var i=t[n++],a=t[n++];a!==void 0&&(r[i]=a)}return r};var lvr=/\\/g,pvr=/"/g;hs.isReserved=function(t){return/^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(t)};hs.safeProp=function(t){return!/^[$\w_]+$/.test(t)||hs.isReserved(t)?'["'+t.replace(lvr,"\\\\").replace(pvr,'\\"')+'"]':"."+t};hs.ucFirst=function(t){return t.charAt(0).toUpperCase()+t.substring(1)};var fvr=/_([a-z])/g;hs.camelCase=function(t){return t.substring(0,1)+t.substring(1).replace(fvr,function(r,n){return n.toUpperCase()})};hs.compareFieldsById=function(t,r){return t.id-r.id};hs.decorateType=function(t,r){if(t.$type)return r&&t.$type.name!==r&&(hs.decorateRoot.remove(t.$type),t.$type.name=r,hs.decorateRoot.add(t.$type)),t.$type;Pde||(Pde=Zq());var n=new Pde(r||t.name);return hs.decorateRoot.add(n),n.ctor=t,Object.defineProperty(t,"$type",{value:n,enumerable:!1}),Object.defineProperty(t.prototype,"$type",{value:n,enumerable:!1}),n};var dvr=0;hs.decorateEnum=function(t){if(t.$type)return t.$type;Ide||(Ide=Uf());var r=new Ide("Enum"+dvr++,t);return hs.decorateRoot.add(r),Object.defineProperty(t,"$type",{value:r,enumerable:!1}),r};hs.setProperty=function(t,r,n){function i(a,s,o){var c=s.shift();if(c==="__proto__"||c==="prototype")return a;if(s.length>0)a[c]=i(a[c]||{},s,o);else{var p=a[c];p&&(o=[].concat(p).concat(o)),a[c]=o}return a}if(typeof t!="object")throw TypeError("dst must be an object");if(!r)throw TypeError("path must be specified");return r=r.split("."),i(t,r,n)};Object.defineProperty(hs,"decorateRoot",{get:function(){return lit.decorated||(lit.decorated=new(rL()))}})});var xw=b((cun,fit)=>{"use strict";fit.exports=El;El.className="ReflectionObject";var nL=ho(),iL;function El(e,t){if(!nL.isString(e))throw TypeError("name must be a string");if(t&&!nL.isObject(t))throw TypeError("options must be an object");this.options=t,this.parsedOptions=null,this.name=e,this.parent=null,this.resolved=!1,this.comment=null,this.filename=null}Object.defineProperties(El.prototype,{root:{get:function(){for(var e=this;e.parent!==null;)e=e.parent;return e}},fullName:{get:function(){for(var e=[this.name],t=this.parent;t;)e.unshift(t.name),t=t.parent;return e.join(".")}}});El.prototype.toJSON=function(){throw Error()};El.prototype.onAdd=function(t){this.parent&&this.parent!==t&&this.parent.remove(this),this.parent=t,this.resolved=!1;var r=t.root;r instanceof iL&&r._handleAdd(this)};El.prototype.onRemove=function(t){var r=t.root;r instanceof iL&&r._handleRemove(this),this.parent=null,this.resolved=!1};El.prototype.resolve=function(){return this.resolved?this:(this.root instanceof iL&&(this.resolved=!0),this)};El.prototype.getOption=function(t){if(this.options)return this.options[t]};El.prototype.setOption=function(t,r,n){return(!n||!this.options||this.options[t]===void 0)&&((this.options||(this.options={}))[t]=r),this};El.prototype.setParsedOption=function(t,r,n){this.parsedOptions||(this.parsedOptions=[]);var i=this.parsedOptions;if(n){var a=i.find(function(c){return Object.prototype.hasOwnProperty.call(c,t)});if(a){var s=a[t];nL.setProperty(s,n,r)}else a={},a[t]=nL.setProperty({},n,r),i.push(a)}else{var o={};o[t]=r,i.push(o)}return this};El.prototype.setOptions=function(t,r){if(t)for(var n=Object.keys(t),i=0;i<n.length;++i)this.setOption(n[i],t[n[i]],r);return this};El.prototype.toString=function(){var t=this.constructor.className,r=this.fullName;return r.length?t+" "+r:t};El._configure=function(e){iL=e}});var Uf=b((lun,mit)=>{"use strict";mit.exports=yh;var dit=xw();((yh.prototype=Object.create(dit.prototype)).constructor=yh).className="Enum";var hit=n8(),aL=ho();function yh(e,t,r,n,i){if(dit.call(this,e,r),t&&typeof t!="object")throw TypeError("values must be an object");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comment=n,this.comments=i||{},this.reserved=void 0,t)for(var a=Object.keys(t),s=0;s<a.length;++s)typeof t[a[s]]=="number"&&(this.valuesById[this.values[a[s]]=t[a[s]]]=a[s])}yh.fromJSON=function(t,r){var n=new yh(t,r.values,r.options,r.comment,r.comments);return n.reserved=r.reserved,n};yh.prototype.toJSON=function(t){var r=t?!!t.keepComments:!1;return aL.toObject(["options",this.options,"values",this.values,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"comment",r?this.comment:void 0,"comments",r?this.comments:void 0])};yh.prototype.add=function(t,r,n){if(!aL.isString(t))throw TypeError("name must be a string");if(!aL.isInteger(r))throw TypeError("id must be an integer");if(this.values[t]!==void 0)throw Error("duplicate name '"+t+"' in "+this);if(this.isReservedId(r))throw Error("id "+r+" is reserved in "+this);if(this.isReservedName(t))throw Error("name '"+t+"' is reserved in "+this);if(this.valuesById[r]!==void 0){if(!(this.options&&this.options.allow_alias))throw Error("duplicate id "+r+" in "+this);this.values[t]=r}else this.valuesById[this.values[t]=r]=t;return this.comments[t]=n||null,this};yh.prototype.remove=function(t){if(!aL.isString(t))throw TypeError("name must be a string");var r=this.values[t];if(r==null)throw Error("name '"+t+"' does not exist in "+this);return delete this.valuesById[r],delete this.values[t],delete this.comments[t],this};yh.prototype.isReservedId=function(t){return hit.isReservedId(this.reserved,t)};yh.prototype.isReservedName=function(t){return hit.isReservedName(this.reserved,t)}});var Ode=b((pun,vit)=>{"use strict";vit.exports=mvr;var hvr=Uf(),Rde=_w(),Fde=ho();function git(e,t,r,n){return t.resolvedType.group?e("types[%i].encode(%s,w.uint32(%i)).uint32(%i)",r,n,(t.id<<3|3)>>>0,(t.id<<3|4)>>>0):e("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()",r,n,(t.id<<3|2)>>>0)}function mvr(e){for(var t=Fde.codegen(["m","w"],e.name+"$encode")("if(!w)")("w=Writer.create()"),r,n,i=e.fieldsArray.slice().sort(Fde.compareFieldsById),r=0;r<i.length;++r){var a=i[r].resolve(),s=e._fieldsArray.indexOf(a),o=a.resolvedType instanceof hvr?"int32":a.type,c=Rde.basic[o];n="m"+Fde.safeProp(a.name),a.map?(t("if(%s!=null&&Object.hasOwnProperty.call(m,%j)){",n,a.name)("for(var ks=Object.keys(%s),i=0;i<ks.length;++i){",n)("w.uint32(%i).fork().uint32(%i).%s(ks[i])",(a.id<<3|2)>>>0,8|Rde.mapKey[a.keyType],a.keyType),c===void 0?t("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",s,n):t(".uint32(%i).%s(%s[ks[i]]).ldelim()",16|c,o,n),t("}")("}")):a.repeated?(t("if(%s!=null&&%s.length){",n,n),a.packed&&Rde.packed[o]!==void 0?t("w.uint32(%i).fork()",(a.id<<3|2)>>>0)("for(var i=0;i<%s.length;++i)",n)("w.%s(%s[i])",o,n)("w.ldelim()"):(t("for(var i=0;i<%s.length;++i)",n),c===void 0?git(t,a,s,n+"[i]"):t("w.uint32(%i).%s(%s[i])",(a.id<<3|c)>>>0,o,n)),t("}")):(a.optional&&t("if(%s!=null&&Object.hasOwnProperty.call(m,%j))",n,a.name),c===void 0?git(t,a,s,n):t("w.uint32(%i).%s(%s)",(a.id<<3|c)>>>0,o,n))}return t("return w")}});var bit=b((fun,yit)=>{"use strict";var Pn=yit.exports=Cnt();Pn.build="light";function gvr(e,t,r){return typeof t=="function"?(r=t,t=new Pn.Root):t||(t=new Pn.Root),t.load(e,r)}Pn.load=gvr;function vvr(e,t){return t||(t=new Pn.Root),t.loadSync(e)}Pn.loadSync=vvr;Pn.encoder=Ode();Pn.decoder=vde();Pn.verifier=wde();Pn.converter=Ede();Pn.ReflectionObject=xw();Pn.Namespace=n8();Pn.Root=rL();Pn.Enum=Uf();Pn.Type=Zq();Pn.Field=ov();Pn.OneOf=e8();Pn.MapField=Wq();Pn.Service=Yq();Pn.Method=Kq();Pn.Message=Jq();Pn.wrappers=Sde();Pn.types=_w();Pn.util=ho();Pn.ReflectionObject._configure(Pn.Root);Pn.Namespace._configure(Pn.Type,Pn.Service,Pn.Enum);Pn.Root._configure(Pn.Type);Pn.Field._configure(Pn.Type)});var Nde=b((dun,xit)=>{"use strict";xit.exports=_it;var jde=/[\s{}=;:[\],'"()<>]/g,yvr=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,bvr=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,wvr=/^ *[*/]+ */,_vr=/^\s*\*?\/*/,xvr=/\n/g,Evr=/\s/,Svr=/\\(.?)/g,kvr={0:"\0",r:"\r",n:`
`,t:"	"};function wit(e){return e.replace(Svr,function(t,r){switch(r){case"\\":case"":return r;default:return kvr[r]||""}})}_it.unescape=wit;function _it(e,t){e=e.toString();var r=0,n=e.length,i=1,a=null,s=null,o=0,c=!1,p=!1,f=[],d=null;function h(z){return Error("illegal "+z+" (line "+i+")")}function g(){var z=d==="'"?bvr:yvr;z.lastIndex=r-1;var P=z.exec(e);if(!P)throw h("string");return r=z.lastIndex,D(d),d=null,wit(P[1])}function v(z){return e.charAt(z)}function y(z,P,M){a=e.charAt(z++),o=i,c=!1,p=M;var K;t?K=2:K=3;var L=z-K,ve;do if(--L<0||(ve=e.charAt(L))===`
`){c=!0;break}while(ve===" "||ve==="	");for(var U=e.substring(z,P).split(xvr),N=0;N<U.length;++N)U[N]=U[N].replace(t?_vr:wvr,"").trim();s=U.join(`
`).trim()}function _(z){var P=x(z),M=e.substring(z,P),K=/^\s*\/{1,2}/.test(M);return K}function x(z){for(var P=z;P<n&&v(P)!==`
`;)P++;return P}function A(){if(f.length>0)return f.shift();if(d)return g();var z,P,M,K,L,ve=r===0;do{if(r===n)return null;for(z=!1;Evr.test(M=v(r));)if(M===`
`&&(ve=!0,++i),++r===n)return null;if(v(r)==="/"){if(++r===n)throw h("comment");if(v(r)==="/")if(t){if(K=r,L=!1,_(r)){L=!0;do{if(r=x(r),r===n)break;r++}while(_(r))}else r=Math.min(n,x(r)+1);L&&y(K,r,ve),i++,z=!0}else{for(L=v(K=r+1)==="/";v(++r)!==`
`;)if(r===n)return null;++r,L&&y(K,r-1,ve),++i,z=!0}else if((M=v(r))==="*"){K=r+1,L=t||v(K)==="*";do{if(M===`
`&&++i,++r===n)throw h("comment");P=M,M=v(r)}while(P!=="*"||M!=="/");++r,L&&y(K,r-2,ve),z=!0}else return"/"}}while(z);var U=r;jde.lastIndex=0;var N=jde.test(v(U++));if(!N)for(;U<n&&!jde.test(v(U));)++U;var re=e.substring(r,r=U);return(re==='"'||re==="'")&&(d=re),re}function D(z){f.push(z)}function j(){if(!f.length){var z=A();if(z===null)return null;D(z)}return f[0]}function H(z,P){var M=j(),K=M===z;if(K)return A(),!0;if(!P)throw h("token '"+M+"', '"+z+"' expected");return!1}function F(z){var P=null;return z===void 0?o===i-1&&(t||a==="*"||c)&&(P=p?s:null):(o<z&&j(),o===z&&!c&&(t||a==="/")&&(P=p?null:s)),P}return Object.defineProperty({next:A,peek:j,push:D,skip:H,cmnt:F},"line",{get:function(){return i}})}});var Oit=b((hun,Tit)=>{"use strict";Tit.exports=W1;W1.filename=null;W1.defaults={keepCase:!1};var Avr=Nde(),Eit=rL(),Sit=Zq(),kit=ov(),Tvr=Wq(),Ait=e8(),Ovr=Uf(),Dvr=Yq(),Cvr=Kq(),qde=_w(),Lde=ho(),Pvr=/^[1-9][0-9]*$/,Ivr=/^-?[1-9][0-9]*$/,Rvr=/^0[x][0-9a-fA-F]+$/,Fvr=/^-?0[x][0-9a-fA-F]+$/,jvr=/^0[0-7]+$/,Nvr=/^-?0[0-7]+$/,qvr=/^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/,bh=/^[a-zA-Z_][a-zA-Z_0-9]*$/,wh=/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,Lvr=/^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/;function W1(e,t,r){t instanceof Eit||(r=t,t=new Eit),r||(r=W1.defaults);var n=r.preferTrailingComment||!1,i=Avr(e,r.alternateCommentMode||!1),a=i.next,s=i.push,o=i.peek,c=i.skip,p=i.cmnt,f=!0,d,h,g,v,y=!1,_=t,x=r.keepCase?function(S){return S}:Lde.camelCase;function A(S,I,B){var se=W1.filename;return B||(W1.filename=null),Error("illegal "+(I||"token")+" '"+S+"' ("+(se?se+", ":"")+"line "+i.line+")")}function D(){var S=[],I;do{if((I=a())!=='"'&&I!=="'")throw A(I);S.push(a()),c(I),I=o()}while(I==='"'||I==="'");return S.join("")}function j(S){var I=a();switch(I){case"'":case'"':return s(I),D();case"true":case"TRUE":return!0;case"false":case"FALSE":return!1}try{return F(I,!0)}catch{if(S&&wh.test(I))return I;throw A(I,"value")}}function H(S,I){var B,se;do I&&((B=o())==='"'||B==="'")?S.push(D()):S.push([se=z(a()),c("to",!0)?z(a()):se]);while(c(",",!0));c(";")}function F(S,I){var B=1;switch(S.charAt(0)==="-"&&(B=-1,S=S.substring(1)),S){case"inf":case"INF":case"Inf":return B*(1/0);case"nan":case"NAN":case"Nan":case"NaN":return NaN;case"0":return 0}if(Pvr.test(S))return B*parseInt(S,10);if(Rvr.test(S))return B*parseInt(S,16);if(jvr.test(S))return B*parseInt(S,8);if(qvr.test(S))return B*parseFloat(S);throw A(S,"number",I)}function z(S,I){switch(S){case"max":case"MAX":case"Max":return 536870911;case"0":return 0}if(!I&&S.charAt(0)==="-")throw A(S,"id");if(Ivr.test(S))return parseInt(S,10);if(Fvr.test(S))return parseInt(S,16);if(Nvr.test(S))return parseInt(S,8);throw A(S,"id")}function P(){if(d!==void 0)throw A("package");if(d=a(),!wh.test(d))throw A(d,"name");_=_.define(d),c(";")}function M(){var S=o(),I;switch(S){case"weak":I=g||(g=[]),a();break;case"public":a();default:I=h||(h=[]);break}S=D(),c(";"),I.push(S)}function K(){if(c("="),v=D(),y=v==="proto3",!y&&v!=="proto2")throw A(v,"syntax");c(";")}function L(S,I){switch(I){case"option":return de(S,I),c(";"),!0;case"message":return U(S,I),!0;case"enum":return ne(S,I),!0;case"service":return ye(S,I),!0;case"extend":return $(S,I),!0}return!1}function ve(S,I,B){var se=i.line;if(S&&(typeof S.comment!="string"&&(S.comment=p()),S.filename=W1.filename),c("{",!0)){for(var ae;(ae=a())!=="}";)I(ae);c(";",!0)}else B&&B(),c(";"),S&&(typeof S.comment!="string"||n)&&(S.comment=p(se)||S.comment)}function U(S,I){if(!bh.test(I=a()))throw A(I,"type name");var B=new Sit(I);ve(B,function(ae){if(!L(B,ae))switch(ae){case"map":ue(B,ae);break;case"required":case"repeated":N(B,ae);break;case"optional":y?N(B,"proto3_optional"):N(B,"optional");break;case"oneof":Q(B,ae);break;case"extensions":H(B.extensions||(B.extensions=[]));break;case"reserved":H(B.reserved||(B.reserved=[]),!0);break;default:if(!y||!wh.test(ae))throw A(ae);s(ae),N(B,"optional");break}}),S.add(B)}function N(S,I,B){var se=a();if(se==="group"){re(S,I);return}if(!wh.test(se))throw A(se,"type");var ae=a();if(!bh.test(ae))throw A(ae,"name");ae=x(ae),c("=");var me=new kit(ae,z(a()),se,I,B);if(ve(me,function(De){if(De==="option")de(me,De),c(";");else throw A(De)},function(){ce(me)}),I==="proto3_optional"){var Se=new Ait("_"+ae);me.setOption("proto3_optional",!0),Se.add(me),S.add(Se)}else S.add(me);!y&&me.repeated&&(qde.packed[se]!==void 0||qde.basic[se]===void 0)&&me.setOption("packed",!1,!0)}function re(S,I){var B=a();if(!bh.test(B))throw A(B,"name");var se=Lde.lcFirst(B);B===se&&(B=Lde.ucFirst(B)),c("=");var ae=z(a()),me=new Sit(B);me.group=!0;var Se=new kit(se,ae,B,I);Se.filename=W1.filename,ve(me,function(De){switch(De){case"option":de(me,De),c(";");break;case"required":case"repeated":N(me,De);break;case"optional":y?N(me,"proto3_optional"):N(me,"optional");break;default:throw A(De)}}),S.add(me).add(Se)}function ue(S){c("<");var I=a();if(qde.mapKey[I]===void 0)throw A(I,"type");c(",");var B=a();if(!wh.test(B))throw A(B,"type");c(">");var se=a();if(!bh.test(se))throw A(se,"name");c("=");var ae=new Tvr(x(se),z(a()),I,B);ve(ae,function(Se){if(Se==="option")de(ae,Se),c(";");else throw A(Se)},function(){ce(ae)}),S.add(ae)}function Q(S,I){if(!bh.test(I=a()))throw A(I,"name");var B=new Ait(x(I));ve(B,function(ae){ae==="option"?(de(B,ae),c(";")):(s(ae),N(B,"optional"))}),S.add(B)}function ne(S,I){if(!bh.test(I=a()))throw A(I,"name");var B=new Ovr(I);ve(B,function(ae){switch(ae){case"option":de(B,ae),c(";");break;case"reserved":H(B.reserved||(B.reserved=[]),!0);break;default:G(B,ae)}}),S.add(B)}function G(S,I){if(!bh.test(I))throw A(I,"name");c("=");var B=z(a(),!0),se={};ve(se,function(me){if(me==="option")de(se,me),c(";");else throw A(me)},function(){ce(se)}),S.add(I,B,se.comment)}function de(S,I){var B=c("(",!0);if(!wh.test(I=a()))throw A(I,"name");var se=I,ae=se,me;B&&(c(")"),se="("+se+")",ae=se,I=o(),Lvr.test(I)&&(me=I.substr(1),se+=I,a())),c("=");var Se=xe(S,se);V(S,ae,Se,me)}function xe(S,I){if(c("{",!0)){for(var B={};!c("}",!0);){if(!bh.test(ke=a()))throw A(ke,"name");var se,ae=ke;o()==="{"?se=xe(S,I+"."+ke):(c(":"),o()==="{"?se=xe(S,I+"."+ke):(se=j(!0),ge(S,I+"."+ke,se)));var me=B[ae];me&&(se=[].concat(me).concat(se)),B[ae]=se,c(",",!0)}return B}var Se=j(!0);return ge(S,I,Se),Se}function ge(S,I,B){S.setOption&&S.setOption(I,B)}function V(S,I,B,se){S.setParsedOption&&S.setParsedOption(I,B,se)}function ce(S){if(c("[",!0)){do de(S,"option");while(c(",",!0));c("]")}return S}function ye(S,I){if(!bh.test(I=a()))throw A(I,"service name");var B=new Dvr(I);ve(B,function(ae){if(!L(B,ae))if(ae==="rpc")R(B,ae);else throw A(ae)}),S.add(B)}function R(S,I){var B=p(),se=I;if(!bh.test(I=a()))throw A(I,"name");var ae=I,me,Se,Ee,De;if(c("("),c("stream",!0)&&(Se=!0),!wh.test(I=a())||(me=I,c(")"),c("returns"),c("("),c("stream",!0)&&(De=!0),!wh.test(I=a())))throw A(I);Ee=I,c(")");var Le=new Cvr(ae,se,me,Ee,Se,De);Le.comment=B,ve(Le,function(Ve){if(Ve==="option")de(Le,Ve),c(";");else throw A(Ve)}),S.add(Le)}function $(S,I){if(!wh.test(I=a()))throw A(I,"reference");var B=I;ve(null,function(ae){switch(ae){case"required":case"repeated":N(S,ae,B);break;case"optional":y?N(S,"proto3_optional",B):N(S,"optional",B);break;default:if(!y||!wh.test(ae))throw A(ae);s(ae),N(S,"optional",B);break}})}for(var ke;(ke=a())!==null;)switch(ke){case"package":if(!f)throw A(ke);P();break;case"import":if(!f)throw A(ke);M();break;case"syntax":if(!f)throw A(ke);K();break;case"option":de(_,ke),c(";");break;default:if(L(_,ke)){f=!1;continue}throw A(ke)}return W1.filename=null,{package:d,imports:h,weakImports:g,syntax:v,root:t}}});var Pit=b((mun,Cit)=>{"use strict";Cit.exports=Hf;var $vr=/\/|\./;function Hf(e,t){$vr.test(e)||(e="google/protobuf/"+e+".proto",t={nested:{google:{nested:{protobuf:{nested:t}}}}}),Hf[e]=t}Hf("any",{Any:{fields:{type_url:{type:"string",id:1},value:{type:"bytes",id:2}}}});var Dit;Hf("duration",{Duration:Dit={fields:{seconds:{type:"int64",id:1},nanos:{type:"int32",id:2}}}});Hf("timestamp",{Timestamp:Dit});Hf("empty",{Empty:{fields:{}}});Hf("struct",{Struct:{fields:{fields:{keyType:"string",type:"Value",id:1}}},Value:{oneofs:{kind:{oneof:["nullValue","numberValue","stringValue","boolValue","structValue","listValue"]}},fields:{nullValue:{type:"NullValue",id:1},numberValue:{type:"double",id:2},stringValue:{type:"string",id:3},boolValue:{type:"bool",id:4},structValue:{type:"Struct",id:5},listValue:{type:"ListValue",id:6}}},NullValue:{values:{NULL_VALUE:0}},ListValue:{fields:{values:{rule:"repeated",type:"Value",id:1}}}});Hf("wrappers",{DoubleValue:{fields:{value:{type:"double",id:1}}},FloatValue:{fields:{value:{type:"float",id:1}}},Int64Value:{fields:{value:{type:"int64",id:1}}},UInt64Value:{fields:{value:{type:"uint64",id:1}}},Int32Value:{fields:{value:{type:"int32",id:1}}},UInt32Value:{fields:{value:{type:"uint32",id:1}}},BoolValue:{fields:{value:{type:"bool",id:1}}},StringValue:{fields:{value:{type:"string",id:1}}},BytesValue:{fields:{value:{type:"bytes",id:1}}}});Hf("field_mask",{FieldMask:{fields:{paths:{rule:"repeated",type:"string",id:1}}}});Hf.get=function(t){return Hf[t]||null}});var Rit=b((gun,Iit)=>{"use strict";var lv=Iit.exports=bit();lv.build="full";lv.tokenize=Nde();lv.parse=Oit();lv.common=Pit();lv.Root._configure(lv.Type,lv.parse,lv.common)});var sL=b((vun,Fit)=>{"use strict";Fit.exports=Rit()});var $de=b((jit,RA)=>{(function(e,t){typeof define=="function"&&define.amd?define([],t):typeof require=="function"&&typeof RA=="object"&&RA&&RA.exports?RA.exports=t():(e.dcodeIO=e.dcodeIO||{}).Long=t()})(jit,function(){"use strict";function e(M,K,L){this.low=M|0,this.high=K|0,this.unsigned=!!L}e.prototype.__isLong__,Object.defineProperty(e.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1});function t(M){return(M&&M.__isLong__)===!0}e.isLong=t;var r={},n={};function i(M,K){var L,ve,U;return K?(M>>>=0,(U=0<=M&&M<256)&&(ve=n[M],ve)?ve:(L=s(M,(M|0)<0?-1:0,!0),U&&(n[M]=L),L)):(M|=0,(U=-128<=M&&M<128)&&(ve=r[M],ve)?ve:(L=s(M,M<0?-1:0,!1),U&&(r[M]=L),L))}e.fromInt=i;function a(M,K){if(isNaN(M)||!isFinite(M))return K?x:_;if(K){if(M<0)return x;if(M>=g)return F}else{if(M<=-v)return z;if(M+1>=v)return H}return M<0?a(-M,K).neg():s(M%h|0,M/h|0,K)}e.fromNumber=a;function s(M,K,L){return new e(M,K,L)}e.fromBits=s;var o=Math.pow;function c(M,K,L){if(M.length===0)throw Error("empty string");if(M==="NaN"||M==="Infinity"||M==="+Infinity"||M==="-Infinity")return _;if(typeof K=="number"?(L=K,K=!1):K=!!K,L=L||10,L<2||36<L)throw RangeError("radix");var ve;if((ve=M.indexOf("-"))>0)throw Error("interior hyphen");if(ve===0)return c(M.substring(1),K,L).neg();for(var U=a(o(L,8)),N=_,re=0;re<M.length;re+=8){var ue=Math.min(8,M.length-re),Q=parseInt(M.substring(re,re+ue),L);if(ue<8){var ne=a(o(L,ue));N=N.mul(ne).add(a(Q))}else N=N.mul(U),N=N.add(a(Q))}return N.unsigned=K,N}e.fromString=c;function p(M){return M instanceof e?M:typeof M=="number"?a(M):typeof M=="string"?c(M):s(M.low,M.high,M.unsigned)}e.fromValue=p;var f=65536,d=1<<24,h=f*f,g=h*h,v=g/2,y=i(d),_=i(0);e.ZERO=_;var x=i(0,!0);e.UZERO=x;var A=i(1);e.ONE=A;var D=i(1,!0);e.UONE=D;var j=i(-1);e.NEG_ONE=j;var H=s(-1,2147483647,!1);e.MAX_VALUE=H;var F=s(-1,-1,!0);e.MAX_UNSIGNED_VALUE=F;var z=s(0,-2147483648,!1);e.MIN_VALUE=z;var P=e.prototype;return P.toInt=function(){return this.unsigned?this.low>>>0:this.low},P.toNumber=function(){return this.unsigned?(this.high>>>0)*h+(this.low>>>0):this.high*h+(this.low>>>0)},P.toString=function(K){if(K=K||10,K<2||36<K)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(z)){var L=a(K),ve=this.div(L),U=ve.mul(L).sub(this);return ve.toString(K)+U.toInt().toString(K)}else return"-"+this.neg().toString(K);for(var N=a(o(K,6),this.unsigned),re=this,ue="";;){var Q=re.div(N),ne=re.sub(Q.mul(N)).toInt()>>>0,G=ne.toString(K);if(re=Q,re.isZero())return G+ue;for(;G.length<6;)G="0"+G;ue=""+G+ue}},P.getHighBits=function(){return this.high},P.getHighBitsUnsigned=function(){return this.high>>>0},P.getLowBits=function(){return this.low},P.getLowBitsUnsigned=function(){return this.low>>>0},P.getNumBitsAbs=function(){if(this.isNegative())return this.eq(z)?64:this.neg().getNumBitsAbs();for(var K=this.high!=0?this.high:this.low,L=31;L>0&&!(K&1<<L);L--);return this.high!=0?L+33:L+1},P.isZero=function(){return this.high===0&&this.low===0},P.isNegative=function(){return!this.unsigned&&this.high<0},P.isPositive=function(){return this.unsigned||this.high>=0},P.isOdd=function(){return(this.low&1)===1},P.isEven=function(){return(this.low&1)===0},P.equals=function(K){return t(K)||(K=p(K)),this.unsigned!==K.unsigned&&this.high>>>31===1&&K.high>>>31===1?!1:this.high===K.high&&this.low===K.low},P.eq=P.equals,P.notEquals=function(K){return!this.eq(K)},P.neq=P.notEquals,P.lessThan=function(K){return this.comp(K)<0},P.lt=P.lessThan,P.lessThanOrEqual=function(K){return this.comp(K)<=0},P.lte=P.lessThanOrEqual,P.greaterThan=function(K){return this.comp(K)>0},P.gt=P.greaterThan,P.greaterThanOrEqual=function(K){return this.comp(K)>=0},P.gte=P.greaterThanOrEqual,P.compare=function(K){if(t(K)||(K=p(K)),this.eq(K))return 0;var L=this.isNegative(),ve=K.isNegative();return L&&!ve?-1:!L&&ve?1:this.unsigned?K.high>>>0>this.high>>>0||K.high===this.high&&K.low>>>0>this.low>>>0?-1:1:this.sub(K).isNegative()?-1:1},P.comp=P.compare,P.negate=function(){return!this.unsigned&&this.eq(z)?z:this.not().add(A)},P.neg=P.negate,P.add=function(K){t(K)||(K=p(K));var L=this.high>>>16,ve=this.high&65535,U=this.low>>>16,N=this.low&65535,re=K.high>>>16,ue=K.high&65535,Q=K.low>>>16,ne=K.low&65535,G=0,de=0,xe=0,ge=0;return ge+=N+ne,xe+=ge>>>16,ge&=65535,xe+=U+Q,de+=xe>>>16,xe&=65535,de+=ve+ue,G+=de>>>16,de&=65535,G+=L+re,G&=65535,s(xe<<16|ge,G<<16|de,this.unsigned)},P.subtract=function(K){return t(K)||(K=p(K)),this.add(K.neg())},P.sub=P.subtract,P.multiply=function(K){if(this.isZero()||(t(K)||(K=p(K)),K.isZero()))return _;if(this.eq(z))return K.isOdd()?z:_;if(K.eq(z))return this.isOdd()?z:_;if(this.isNegative())return K.isNegative()?this.neg().mul(K.neg()):this.neg().mul(K).neg();if(K.isNegative())return this.mul(K.neg()).neg();if(this.lt(y)&&K.lt(y))return a(this.toNumber()*K.toNumber(),this.unsigned);var L=this.high>>>16,ve=this.high&65535,U=this.low>>>16,N=this.low&65535,re=K.high>>>16,ue=K.high&65535,Q=K.low>>>16,ne=K.low&65535,G=0,de=0,xe=0,ge=0;return ge+=N*ne,xe+=ge>>>16,ge&=65535,xe+=U*ne,de+=xe>>>16,xe&=65535,xe+=N*Q,de+=xe>>>16,xe&=65535,de+=ve*ne,G+=de>>>16,de&=65535,de+=U*Q,G+=de>>>16,de&=65535,de+=N*ue,G+=de>>>16,de&=65535,G+=L*ne+ve*Q+U*ue+N*re,G&=65535,s(xe<<16|ge,G<<16|de,this.unsigned)},P.mul=P.multiply,P.divide=function(K){if(t(K)||(K=p(K)),K.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?x:_;var L,ve,U;if(this.unsigned){if(K.unsigned||(K=K.toUnsigned()),K.gt(this))return x;if(K.gt(this.shru(1)))return D;U=x}else{if(this.eq(z)){if(K.eq(A)||K.eq(j))return z;if(K.eq(z))return A;var N=this.shr(1);return L=N.div(K).shl(1),L.eq(_)?K.isNegative()?A:j:(ve=this.sub(K.mul(L)),U=L.add(ve.div(K)),U)}else if(K.eq(z))return this.unsigned?x:_;if(this.isNegative())return K.isNegative()?this.neg().div(K.neg()):this.neg().div(K).neg();if(K.isNegative())return this.div(K.neg()).neg();U=_}for(ve=this;ve.gte(K);){L=Math.max(1,Math.floor(ve.toNumber()/K.toNumber()));for(var re=Math.ceil(Math.log(L)/Math.LN2),ue=re<=48?1:o(2,re-48),Q=a(L),ne=Q.mul(K);ne.isNegative()||ne.gt(ve);)L-=ue,Q=a(L,this.unsigned),ne=Q.mul(K);Q.isZero()&&(Q=A),U=U.add(Q),ve=ve.sub(ne)}return U},P.div=P.divide,P.modulo=function(K){return t(K)||(K=p(K)),this.sub(this.div(K).mul(K))},P.mod=P.modulo,P.not=function(){return s(~this.low,~this.high,this.unsigned)},P.and=function(K){return t(K)||(K=p(K)),s(this.low&K.low,this.high&K.high,this.unsigned)},P.or=function(K){return t(K)||(K=p(K)),s(this.low|K.low,this.high|K.high,this.unsigned)},P.xor=function(K){return t(K)||(K=p(K)),s(this.low^K.low,this.high^K.high,this.unsigned)},P.shiftLeft=function(K){return t(K)&&(K=K.toInt()),(K&=63)===0?this:K<32?s(this.low<<K,this.high<<K|this.low>>>32-K,this.unsigned):s(0,this.low<<K-32,this.unsigned)},P.shl=P.shiftLeft,P.shiftRight=function(K){return t(K)&&(K=K.toInt()),(K&=63)===0?this:K<32?s(this.low>>>K|this.high<<32-K,this.high>>K,this.unsigned):s(this.high>>K-32,this.high>=0?0:-1,this.unsigned)},P.shr=P.shiftRight,P.shiftRightUnsigned=function(K){if(t(K)&&(K=K.toInt()),K&=63,K===0)return this;var L=this.high;if(K<32){var ve=this.low;return s(ve>>>K|L<<32-K,L>>>K,this.unsigned)}else return K===32?s(L,0,this.unsigned):s(L>>>K-32,0,this.unsigned)},P.shru=P.shiftRightUnsigned,P.toSigned=function(){return this.unsigned?s(this.low,this.high,!1):this},P.toUnsigned=function(){return this.unsigned?this:s(this.low,this.high,!0)},P.toBytes=function(M){return M?this.toBytesLE():this.toBytesBE()},P.toBytesLE=function(){var M=this.high,K=this.low;return[K&255,K>>>8&255,K>>>16&255,K>>>24&255,M&255,M>>>8&255,M>>>16&255,M>>>24&255]},P.toBytesBE=function(){var M=this.high,K=this.low;return[M>>>24&255,M>>>16&255,M>>>8&255,M&255,K>>>24&255,K>>>16&255,K>>>8&255,K&255]},e})});var qit=b((yun,Nit)=>{Nit.exports=[4,51,148,247,223,161,235,177,220,3,162,94,21,113,219,72,211,46,237,237,178,52,219,183,71,58,12,143,196,204,225,111,60,140,132,223,171,182,102,62,242,12,212,139,254,227,249,118,47,20,28,99,8,106,111,45,177,26,149,176,206,55,192,156,110]});var Bde=b((bun,$it)=>{$it.exports={escape:Lit,toBase64:Bvr};function Lit(e){return e.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Bvr(e){return Lit(e.toString("base64"))}});var Hde=b((wun,zit)=>{var Mvr=require("path"),Bit=Hrt(),zde=sL(),Mde=$de(),{waitFor:Uvr}=Bfe(),zvr=qit(),{toBase64:Hvr}=Bde();zde.util.Long=Mde;zde.configure();var Vvr=Hvr(Buffer.from(zvr)),Gvr="https://android.clients.google.com/c2dm/register3",Wvr="https://android.clients.google.com/checkin",FA,Ude;zit.exports={register:Kvr,checkIn:Mit};async function Kvr(e){let t=await Mit();return await Yvr(t,e)}async function Mit(e,t){await Jvr();let r=Xvr(e,t),n=await Bit({url:Wvr,method:"POST",headers:{"Content-Type":"application/x-protobuf"},body:r,encoding:null}),i=Ude.decode(n);return Ude.toObject(i,{longs:String,enums:String,bytes:String})}async function Yvr({androidId:e,securityToken:t},r){return{token:(await Uit({androidId:e,securityToken:t,body:{app:"org.chromium.linux","X-subtype":r,device:e,sender:Vvr}})).split("=")[1],androidId:e,securityToken:t,appId:r}}async function Uit({androidId:e,securityToken:t,body:r,retry:n=0}){let i=await Bit({url:Gvr,method:"POST",headers:{Authorization:`AidLogin ${e}:${t}`,"Content-Type":"application/x-www-form-urlencoded"},form:r});if(i.includes("Error")){if(console.warn(`Register request has failed with ${i}`),n>=5)throw new Error("GCM register has failed");return console.warn(`Retry... ${n+1}`),await Uvr(1e3),Uit({androidId:e,securityToken:t,body:r,retry:n+1})}return i}async function Jvr(){if(!FA)return FA=await zde.load(Mvr.join(__dirname,"checkin.proto")),FA}function Xvr(e,t){let r=FA.lookupType("checkin_proto.AndroidCheckinRequest");Ude=FA.lookupType("checkin_proto.AndroidCheckinResponse");let n={userSerialNumber:0,checkin:{type:3,chromeBuild:{platform:2,chromeVersion:"63.0.3234.0",channel:1}},version:3,id:e?Mde.fromString(e):void 0,securityToken:t?Mde.fromString(t,!0):void 0},i=r.verify(n);if(i)throw Error(i);let a=r.create(n);return r.encode(a).finish()}});var Git=b((_un,Vit)=>{var Hit=require("crypto"),Qvr=$fe(),{escape:Vde}=Bde(),Zvr="https://fcm.googleapis.com/fcm/connect/subscribe",eyr="https://fcm.googleapis.com/fcm/send";Vit.exports=tyr;async function tyr({senderId:e,token:t}){let r=await ryr(),n=await Qvr({url:Zvr,method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},form:{authorized_entity:e,endpoint:`${eyr}/${t}`,encryption_key:r.publicKey.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"),encryption_auth:r.authSecret.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}});return{keys:r,fcm:JSON.parse(n)}}function ryr(){return new Promise((e,t)=>{let r=Hit.createECDH("prime256v1");r.generateKeys(),Hit.randomBytes(16,(n,i)=>n?t(n):e({privateKey:Vde(r.getPrivateKey("base64")),publicKey:Vde(r.getPublicKey("base64")),authSecret:Vde(i.toString("base64"))}))})}});var Kit=b((xun,Wit)=>{var nyr=kKe(),{register:iyr}=Hde(),ayr=Git();Wit.exports=syr;async function syr(e){let t=`wp:receiver.push.com#${nyr()}`,r=await iyr(t),n=await ayr({token:r.token,senderId:e,appId:t});return Object.assign({},n,{gcm:r})}});var Gde=b((Eun,Yit)=>{Yit.exports={MCS_VERSION_TAG_AND_SIZE:0,MCS_TAG_AND_SIZE:1,MCS_SIZE:2,MCS_PROTO_BYTES:3,kVersionPacketLen:1,kTagPacketLen:1,kSizePacketLenMin:1,kSizePacketLenMax:5,kMCSVersion:41,kHeartbeatPingTag:0,kHeartbeatAckTag:1,kLoginRequestTag:2,kLoginResponseTag:3,kCloseTag:4,kMessageStanzaTag:5,kPresenceStanzaTag:6,kIqStanzaTag:7,kDataMessageStanzaTag:8,kBatchPresenceStanzaTag:9,kStreamErrorStanzaTag:10,kHttpRequestTag:11,kHttpResponseTag:12,kBindAccountRequestTag:13,kBindAccountResponseTag:14,kTalkMetadataTag:15,kNumProtoTypes:16}});var eat=b((kun,Zit)=>{var oyr=require("events"),uyr=require("path"),{load:cyr,BufferReader:lyr}=sL(),{MCS_VERSION_TAG_AND_SIZE:Wde,MCS_TAG_AND_SIZE:Kde,MCS_SIZE:Yde,MCS_PROTO_BYTES:oL,kVersionPacketLen:pyr,kTagPacketLen:Jit,kSizePacketLenMin:Xit,kMCSVersion:fyr,kHeartbeatPingTag:dyr,kHeartbeatAckTag:hyr,kLoginRequestTag:myr,kLoginResponseTag:Qit,kCloseTag:gyr,kIqStanzaTag:vyr,kDataMessageStanzaTag:yyr,kStreamErrorStanzaTag:byr}=Gde(),K1=()=>{},_h=null;Zit.exports=class extends oyr{static async init(){_h||(_h=await cyr(uyr.resolve(__dirname,"mcs.proto")))}constructor(t){super(),this._socket=t,this._state=Wde,this._data=Buffer.alloc(0),this._sizePacketSoFar=0,this._messageTag=0,this._messageSize=0,this._handshakeComplete=!1,this._isWaitingForData=!0,this._onData=this._onData.bind(this),this._socket.on("data",this._onData)}destroy(){this._isWaitingForData=!1,this._socket.removeListener("data",this._onData)}_emitError(t){this.destroy(),this.emit("error",t)}_onData(t){K1(`Got data: ${t.length}`),this._data=Buffer.concat([this._data,t]),this._isWaitingForData&&(this._isWaitingForData=!1,this._waitForData())}_waitForData(){K1(`waitForData state: ${this._state}`);let t=0;switch(this._state){case Wde:t=pyr+Jit+Xit;break;case Kde:t=Jit+Xit;break;case Yde:t=this._sizePacketSoFar+1;break;case oL:t=this._messageSize;break;default:this._emitError(new Error(`Unexpected state: ${this._state}`));return}if(this._data.length<t){K1(`Socket read finished prematurely. Waiting for ${t-this._data.length} more bytes`),this._isWaitingForData=!0;return}switch(K1(`Processing MCS data: state == ${this._state}`),this._state){case Wde:this._onGotVersion();break;case Kde:this._onGotMessageTag();break;case Yde:this._onGotMessageSize();break;case oL:this._onGotMessageBytes();break;default:this._emitError(new Error(`Unexpected state: ${this._state}`));return}}_onGotVersion(){let t=this._data.readInt8(0);if(this._data=this._data.slice(1),K1(`VERSION IS ${t}`),t<fyr&&t!==38){this._emitError(new Error(`Got wrong version: ${t}`));return}this._onGotMessageTag()}_onGotMessageTag(){this._messageTag=this._data.readInt8(0),this._data=this._data.slice(1),K1(`RECEIVED PROTO OF TYPE ${this._messageTag}`),this._onGotMessageSize()}_onGotMessageSize(){let t=!1,r=new lyr(this._data);try{this._messageSize=r.int32()}catch(n){if(n.message.startsWith("index out of range:"))t=!0;else{this._emitError(n);return}}if(t){this._sizePacketSoFar=r.pos,this._state=Yde,this._waitForData();return}this._data=this._data.slice(r.pos),K1(`Proto size: ${this._messageSize}`),this._sizePacketSoFar=0,this._messageSize>0?(this._state=oL,this._waitForData()):this._onGotMessageBytes()}_onGotMessageBytes(){let t=this._buildProtobufFromTag(this._messageTag);if(!t){this._emitError(new Error("Unknown tag"));return}if(this._messageSize===0){this.emit("message",{tag:this._messageTag,object:{}}),this._getNextMessage();return}if(this._data.length<this._messageSize){K1(`Continuing data read. Buffer size is ${this._data.length}, expecting ${this._messageSize}`),this._state=oL,this._waitForData();return}let r=this._data.slice(0,this._messageSize);this._data=this._data.slice(this._messageSize);let n=t.decode(r),i=t.toObject(n,{longs:String,enums:String,bytes:Buffer});this.emit("message",{tag:this._messageTag,object:i}),this._messageTag===Qit&&(this._handshakeComplete?console.error("Unexpected login response"):(this._handshakeComplete=!0,K1("GCM Handshake complete."))),this._getNextMessage()}_getNextMessage(){this._messageTag=0,this._messageSize=0,this._state=Kde,this._waitForData()}_buildProtobufFromTag(t){switch(t){case dyr:return _h.lookupType("mcs_proto.HeartbeatPing");case hyr:return _h.lookupType("mcs_proto.HeartbeatAck");case myr:return _h.lookupType("mcs_proto.LoginRequest");case Qit:return _h.lookupType("mcs_proto.LoginResponse");case gyr:return _h.lookupType("mcs_proto.Close");case vyr:return _h.lookupType("mcs_proto.IqStanza");case yyr:return _h.lookupType("mcs_proto.DataMessageStanza");case byr:return _h.lookupType("mcs_proto.StreamErrorStanza");default:return null}}}});var Qde=b((Aun,lat)=>{"use strict";var cL=require("crypto"),rat="aes-128-gcm",lL={aes128gcm:1,aesgcm:2},Sw=16,xh=16,wyr=12,nat=32,jA="encrypt",NA="decrypt",xi;process.env.ECE_KEYLOG==="1"?xi=function(e,t){return console.warn(e+" ["+t.length+"]: "+t.toString("base64url")),t}:xi=function(e,t){return t};function uL(e){return typeof e=="string"?Buffer.from(e,"base64url"):e}function iat(e,t){var r=cL.createHmac("sha256",e);return r.update(t),r.digest()}function aat(e,t){return xi("salt",e),xi("ikm",t),xi("extract",iat(e,t))}function Jde(e,t,r){xi("prk",e),xi("info",t);var n=Buffer.alloc(0),i=Buffer.alloc(0);t=Buffer.from(t,"ascii");for(var a=0,s=Buffer.alloc(1);n.length<r;)s.writeUIntBE(++a,0,1),i=iat(e,Buffer.concat([i,t,s])),n=Buffer.concat([n,i]);return xi("expand",n.slice(0,r))}function sat(e,t,r,n){return Jde(aat(e,t),r,n)}function Xde(e,t){var r=Buffer.concat([Buffer.from("Content-Encoding: "+e+"\0","ascii"),t]);return xi("info "+e,r),r}function tat(e){var t=Buffer.concat([Buffer.alloc(2),e]);return t.writeUIntBE(e.length,0,2),t}function _yr(e,t){var r=e.privateKey,n,i;if(t===jA)n=r.getPublicKey(),i=e.dh;else if(t===NA)n=e.dh,i=r.getPublicKey();else throw new Error("Unknown mode only "+jA+" and "+NA+" supported");return{secret:r.computeSecret(e.dh),context:Buffer.concat([Buffer.from(e.keylabel,"ascii"),Buffer.from([0]),tat(i),tat(n)])}}function xyr(e,t){var r={secret:null,context:Buffer.alloc(0)};if(e.key){if(r.secret=e.key,r.secret.length!==xh)throw new Error("An explicit key must be "+xh+" bytes")}else e.dh?r=_yr(e,t):typeof e.keyid!==void 0&&(r.secret=e.keymap[e.keyid]);if(!r.secret)throw new Error("Unable to determine key");return xi("secret",r.secret),xi("context",r.context),e.authSecret&&(r.secret=sat(e.authSecret,r.secret,Xde("auth",Buffer.alloc(0)),nat),xi("authsecret",r.secret)),r}function Eyr(e,t){if(!e.authSecret)throw new Error("No authentication secret for webpush");xi("authsecret",e.authSecret);var r,n,i;if(t===jA)n=e.privateKey.getPublicKey(),r=i=e.dh;else if(t===NA)r=n=e.keyid,i=e.privateKey.getPublicKey();else throw new Error("Unknown mode only "+jA+" and "+NA+" supported");return xi("remote pubkey",r),xi("sender pubkey",n),xi("receiver pubkey",i),xi("secret dh",sat(e.authSecret,e.privateKey.computeSecret(r),Buffer.concat([Buffer.from("WebPush: info\0"),i,n]),nat))}function Syr(e,t,r){if(r&&!Ryr(r))throw new Error("Callback is not a function");if(e.key){if(e.key.length!==xh)throw new Error("An explicit key must be "+xh+" bytes");return xi("secret key",e.key)}if(!e.privateKey){if(r)var n=r(e.keyid);else var n=e.keymap&&e.keymap[e.keyid];if(!n)throw new Error('No saved key (keyid: "'+e.keyid+'")');return n}return Eyr(e,t)}function oat(e,t,r){if(!e.salt)throw new Error("must include a salt parameter for "+e.version);var n,i,a;if(e.version==="aesgcm"){var s=xyr(e,t,r);n=Xde("aesgcm",s.context),i=Xde("nonce",s.context),a=s.secret}else if(e.version==="aes128gcm")n=Buffer.from("Content-Encoding: aes128gcm\0"),i=Buffer.from("Content-Encoding: nonce\0"),a=Syr(e,t,r);else throw new Error("Unable to set context for mode "+e.version);var o=aat(e.salt,a),c={key:Jde(o,n,xh),nonce:Jde(o,i,wyr)};return xi("key",c.key),xi("nonce base",c.nonce),c}function uat(e){var t={};t.version=e.version||"aes128gcm",t.rs=parseInt(e.rs,10),isNaN(t.rs)&&(t.rs=4096);var r=lL[t.version];if(t.version==="aes128gcm"&&(r+=Sw),t.rs<=r)throw new Error("The rs parameter has to be greater than "+r);if(e.salt&&(t.salt=uL(e.salt),t.salt.length!==xh))throw new Error("The salt parameter must be "+xh+" bytes");return t.keyid=e.keyid,e.key?t.key=uL(e.key):(t.privateKey=e.privateKey,t.privateKey||(t.keymap=e.keymap),t.version!=="aes128gcm"&&(t.keylabel=e.keylabel||"P-256"),e.dh&&(t.dh=uL(e.dh))),e.authSecret&&(t.authSecret=uL(e.authSecret)),t}function cat(e,t){var r=Buffer.from(e),n=r.readUIntBE(r.length-6,6),i=((n^t)&16777215)+((n/16777216^t/16777216)&16777215)*16777216;return r.writeUIntBE(i,r.length-6,6),xi("nonce"+t,r),r}function kyr(e,t){var r=e.readUIntBE(20,1);return t.salt=e.slice(0,xh),t.rs=e.readUIntBE(xh,4),t.keyid=e.slice(21,21+r),21+r}function Ayr(e,t){var r=lL[t],n=e.readUIntBE(0,r);if(n+r>e.length)throw new Error("padding exceeds block size");xi("padding",e.slice(0,r+n));var i=Buffer.alloc(n);if(i.fill(0),i.compare(e.slice(r,r+n))!==0)throw new Error("invalid padding");return e.slice(r+n)}function Tyr(e,t){for(var r=e.length-1;r>=0;){if(e[r]){if(t){if(e[r]!==2)throw new Error("last record needs to start padding with a 2")}else if(e[r]!==1)throw new Error("last record needs to start padding with a 2");return e.slice(0,r)}--r}throw new Error("all zero plaintext")}function Oyr(e,t,r,n,i){xi("decrypt",r);var a=cat(e.nonce,t),s=cL.createDecipheriv(rat,e.key,a);s.setAuthTag(r.slice(r.length-Sw));var o=s.update(r.slice(0,r.length-Sw));return o=Buffer.concat([o,s.final()]),xi("decrypted",o),n.version!=="aes128gcm"?Ayr(o,n.version):Tyr(o,i)}function Dyr(e,t,r){var n=uat(t);if(n.version==="aes128gcm"){var i=kyr(e,n);e=e.slice(i)}var a=oat(n,NA,r),s=0,o=Buffer.alloc(0),c=n.rs;n.version!=="aes128gcm"&&(c+=Sw);for(var p=0;s<e.length;++p){var f=s+c;if(n.version!=="aes128gcm"&&f===e.length)throw new Error("Truncated payload");if(f=Math.min(f,e.length),f-s<=Sw)throw new Error("Invalid block: too small at "+p);var d=Oyr(a,p,e.slice(s,f),n,f>=e.length);o=Buffer.concat([o,d]),s=f}return o}function Cyr(e,t,r,n,i,a){xi("encrypt",r),n=n||0;var s=cat(e.nonce,t),o=cL.createCipheriv(rat,e.key,s),c=[],p=lL[i.version],f=Buffer.alloc(n+p);if(f.fill(0),i.version!=="aes128gcm"){if(f.writeUIntBE(n,0,p),xi("padding",f),c.push(o.update(f)),c.push(o.update(r)),!a&&f.length+r.length<i.rs)throw new Error("Unable to pad to record size")}else c.push(o.update(r)),f.writeUIntBE(a?2:1,0,1),xi("padding",f),c.push(o.update(f));o.final();var d=o.getAuthTag();if(d.length!==Sw)throw new Error("invalid tag generated");return c.push(d),xi("encrypted",Buffer.concat(c))}function Pyr(e){var t=Buffer.alloc(5),r=Buffer.from(e.keyid||[]);if(r.length>255)throw new Error("keyid is too large");return t.writeUIntBE(e.rs,0,4),t.writeUIntBE(r.length,4,1),Buffer.concat([e.salt,t,r])}function Iyr(e,t,r){if(!Buffer.isBuffer(e))throw new Error("buffer argument must be a Buffer");var n=uat(t);n.salt||(n.salt=cL.randomBytes(xh));var i;n.version==="aes128gcm"?(n.privateKey&&!n.keyid&&(n.keyid=n.privateKey.getPublicKey()),i=Pyr(n)):i=Buffer.alloc(0);var a=oat(n,jA,r),s=0,o=lL[n.version],c=o;n.version==="aes128gcm"&&(c+=Sw);for(var p=isNaN(parseInt(t.pad,10))?0:parseInt(t.pad,10),f=0,d=!1;!d;){var h=Math.min(n.rs-c-1,p);n.version!=="aes128gcm"&&(h=Math.min((1<<o*8)-1,h)),p>0&&h===0&&++h,p-=h;var g=s+n.rs-c-h;n.version!=="aes128gcm"?d=g>e.length:d=g>=e.length,d=d&&p<=0;var v=Cyr(a,f,e.slice(s,g),h,n,d);i=Buffer.concat([i,v]),s=g,++f}return i}function Ryr(e){return typeof e=="function"}lat.exports={decrypt:Dyr,encrypt:Iyr}});var fat=b((Tun,pat)=>{var Fyr=require("crypto"),jyr=Qde();pat.exports=Nyr;function Nyr(e,t){let r=e.appData.find(o=>o.key==="crypto-key");if(!r)throw new Error("crypto-key is missing");let n=e.appData.find(o=>o.key==="encryption");if(!n)throw new Error("salt is missing");let i=Fyr.createECDH("prime256v1");i.setPrivateKey(t.privateKey,"base64");let a={version:"aesgcm",authSecret:t.authSecret,dh:r.value.slice(3),privateKey:i,salt:n.value.slice(5)},s=jyr.decrypt(e.rawData,a);return JSON.parse(s)}});var gat=b((Oun,mat)=>{var qyr=require("events"),Lyr=$de(),dat=eat(),$yr=fat(),Byr=require("path"),Myr=require("tls"),{checkIn:Uyr}=Hde(),{kMCSVersion:zyr,kLoginRequestTag:Hyr,kDataMessageStanzaTag:Vyr,kLoginResponseTag:Gyr}=Gde(),{load:Wyr}=sL(),Kyr="mtalk.google.com",Yyr=5228,Jyr=15,Zde=null;mat.exports=class hat extends qyr{static async init(){Zde||(Zde=await Wyr(Byr.resolve(__dirname,"mcs.proto")))}constructor(t,r){super(),this._credentials=t,this._persistentIds=r||[],this._retryCount=0,this._onSocketConnect=this._onSocketConnect.bind(this),this._onSocketClose=this._onSocketClose.bind(this),this._onSocketError=this._onSocketError.bind(this),this._onMessage=this._onMessage.bind(this),this._onParserError=this._onParserError.bind(this)}async connect(){await hat.init(),await this._checkIn(),this._connect(),this._socket&&(await dat.init(),this._socket&&(this._parser=new dat(this._socket),this._parser.on("message",this._onMessage),this._parser.on("error",this._onParserError)))}destroy(){this._destroy()}async _checkIn(){return Uyr(this._credentials.gcm.androidId,this._credentials.gcm.securityToken)}_connect(){this._socket=new Myr.TLSSocket,this._socket.setKeepAlive(!0),this._socket.on("connect",this._onSocketConnect),this._socket.on("close",this._onSocketClose),this._socket.on("error",this._onSocketError),this._socket.connect({host:Kyr,port:Yyr}),this._socket.write(this._loginBuffer())}_destroy(){clearTimeout(this._retryTimeout),this._socket&&(this._socket.removeListener("connect",this._onSocketConnect),this._socket.removeListener("close",this._onSocketClose),this._socket.removeListener("error",this._onSocketError),this._socket.destroy(),this._socket=null),this._parser&&(this._parser.removeListener("message",this._onMessage),this._parser.removeListener("error",this._onParserError),this._parser.destroy(),this._parser=null)}_loginBuffer(){let t=Zde.lookupType("mcs_proto.LoginRequest"),r=Lyr.fromString(this._credentials.gcm.androidId).toString(16),n={adaptiveHeartbeat:!1,authService:2,authToken:this._credentials.gcm.securityToken,id:"chrome-63.0.3234.0",domain:"mcs.android.com",deviceId:`android-${r}`,networkType:1,resource:this._credentials.gcm.androidId,user:this._credentials.gcm.androidId,useRmq2:!0,setting:[{name:"new_vc",value:"1"}],clientEvent:[],receivedPersistentId:this._persistentIds},i=t.verify(n);if(i)throw new Error(i);let a=t.encodeDelimited(n).finish();return Buffer.concat([Buffer.from([zyr,Hyr]),a])}_onSocketConnect(){this._retryCount=0,this.emit("connect")}_onSocketClose(){this.emit("disconnect"),this._retry()}_onSocketError(t){}_onParserError(t){this._retry()}_retry(){this._destroy();let t=Math.min(++this._retryCount,Jyr)*1e3;this._retryTimeout=setTimeout(this.connect.bind(this),t)}_onMessage({tag:t,object:r}){t===Gyr?this._persistentIds=[]:t===Vyr&&this._onDataMessage(r)}_onDataMessage(t){if(this._persistentIds.includes(t.persistentId))return;let r;try{r=$yr(t,this._credentials.keys)}catch(n){switch(!0){case n.message.includes("Unsupported state or unable to authenticate data"):case n.message.includes("crypto-key is missing"):case n.message.includes("salt is missing"):console.warn("Message dropped as it could not be decrypted: "+n.message),this._persistentIds.push(t.persistentId);return;default:throw n}}this._persistentIds.push(t.persistentId),this.emit("ON_NOTIFICATION_RECEIVED",{notification:r,persistentId:t.persistentId})}}});var yat=b((Dun,vat)=>{var Xyr=Kit(),Qyr=gat();vat.exports={listen:Zyr,register:Xyr};async function Zyr(e,t){if(!e)throw new Error("Missing credentials");if(!e.gcm)throw new Error("Missing gcm object in credentials");if(!e.gcm.androidId)throw new Error("Missing gcm.androidId in credentials");if(!e.gcm.securityToken)throw new Error("Missing gcm.securityToken in credentials");if(!e.keys)throw new Error("Missing keys object in credentials");if(!e.keys.privateKey)throw new Error("Missing keys.privateKey in credentials");if(!e.keys.authSecret)throw new Error("Missing keys.authSecret in credentials");let r=new Qyr(e,e.persistentIds);return r.on("ON_NOTIFICATION_RECEIVED",t),r.connect(),r}});var wat=b((Cun,bat)=>{"use strict";bat.exports=function(e){var t=typeof e;return e!==null&&(t==="object"||t==="function")}});var xat=b((Pun,_at)=>{"use strict";var kw=wat(),e2r=["__proto__","prototype","constructor"],t2r=e=>!e.some(t=>e2r.includes(t));function pL(e){let t=e.split("."),r=[];for(let n=0;n<t.length;n++){let i=t[n];for(;i[i.length-1]==="\\"&&t[n+1]!==void 0;)i=i.slice(0,-1)+".",i+=t[++n];r.push(i)}return t2r(r)?r:[]}_at.exports={get(e,t,r){if(!kw(e)||typeof t!="string")return r===void 0?e:r;let n=pL(t);if(n.length!==0){for(let i=0;i<n.length;i++){if(!Object.prototype.propertyIsEnumerable.call(e,n[i]))return r;if(e=e[n[i]],e==null){if(i!==n.length-1)return r;break}}return e}},set(e,t,r){if(!kw(e)||typeof t!="string")return e;let n=e,i=pL(t);if(i.length!==0){for(let a=0;a<i.length;a++){let s=i[a];kw(e[s])||(e[s]={}),a===i.length-1&&(e[s]=r),e=e[s]}return n}},delete(e,t){if(!kw(e)||typeof t!="string")return;let r=pL(t);for(let n=0;n<r.length;n++){let i=r[n];if(n===r.length-1){delete e[i];return}if(e=e[i],!kw(e))return}},has(e,t){if(!kw(e)||typeof t!="string")return!1;let r=pL(t);for(let n=0;n<r.length;n++)if(kw(e)){if(!(r[n]in e))return!1;e=e[r[n]]}else return!1;return!0}}});var kat=b((Iun,Sat)=>{"use strict";var Eat=(e,t)=>function(){let r=t.promiseModule,n=new Array(arguments.length);for(let i=0;i<arguments.length;i++)n[i]=arguments[i];return new r((i,a)=>{t.errorFirst?n.push(function(s,o){if(t.multiArgs){let c=new Array(arguments.length-1);for(let p=1;p<arguments.length;p++)c[p-1]=arguments[p];s?(c.unshift(s),a(c)):i(c)}else s?a(s):i(o)}):n.push(function(s){if(t.multiArgs){let o=new Array(arguments.length-1);for(let c=0;c<arguments.length;c++)o[c]=arguments[c];i(o)}else i(s)}),e.apply(this,n)})};Sat.exports=(e,t)=>{t=Object.assign({exclude:[/.+(Sync|Stream)$/],errorFirst:!0,promiseModule:Promise},t);let r=i=>{let a=s=>typeof s=="string"?i===s:s.test(i);return t.include?t.include.some(a):!t.exclude.some(a)},n;typeof e=="function"?n=function(){return t.excludeMain?e.apply(this,arguments):Eat(e,t).apply(this,arguments)}:n=Object.create(Object.getPrototypeOf(e));for(let i in e){let a=e[i];n[i]=typeof a=="function"&&r(i)?Eat(a,t):a}return n}});var Dat=b((Run,ehe)=>{"use strict";var r2r=require("fs"),Aw=require("path"),Aat=kat(),Tat={mode:511&~process.umask(),fs:r2r},Oat=e=>{if(process.platform==="win32"&&/[<>:"|?*]/.test(e.replace(Aw.parse(e).root,""))){let r=new Error(`Path contains invalid characters: ${e}`);throw r.code="EINVAL",r}};ehe.exports=(e,t)=>Promise.resolve().then(()=>{Oat(e),t=Object.assign({},Tat,t);let r=Aat(t.fs.mkdir),n=Aat(t.fs.stat),i=a=>r(a,t.mode).then(()=>a).catch(s=>{if(s.code==="ENOENT"){if(s.message.includes("null bytes")||Aw.dirname(a)===a)throw s;return i(Aw.dirname(a)).then(()=>i(a))}return n(a).then(o=>o.isDirectory()?a:Promise.reject()).catch(()=>{throw s})});return i(Aw.resolve(e))});ehe.exports.sync=(e,t)=>{Oat(e),t=Object.assign({},Tat,t);let r=n=>{try{t.fs.mkdirSync(n,t.mode)}catch(i){if(i.code==="ENOENT"){if(i.message.includes("null bytes")||Aw.dirname(n)===n)throw i;return r(Aw.dirname(n)),r(n)}try{if(!t.fs.statSync(n).isDirectory())throw new Error("The path is not a directory")}catch{throw i}}return n};return r(Aw.resolve(e))}});var Pat=b((Fun,Cat)=>{"use strict";Cat.exports=e=>new Promise(t=>{t(e())})});var Rat=b((jun,Iat)=>{"use strict";var n2r=Pat();Iat.exports=e=>{if(e<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let t=[],r=0,n=()=>{r--,t.length>0&&t.shift()()};return i=>new Promise((a,s)=>{let o=()=>{r++,n2r(i).then(c=>{a(c),n()},c=>{s(c),n()})};r<e?o():t.push(o)})}});var Nat=b((Nun,jat)=>{"use strict";var Fat=Rat(),fL=class extends Error{constructor(t){super(),this.value=t}},i2r=e=>Promise.all(e).then(t=>t[1]===!0&&Promise.reject(new fL(t[0])));jat.exports=(e,t,r)=>{r=Object.assign({concurrency:1/0,preserveOrder:!0},r);let n=Fat(r.concurrency),i=Array.from(e).map(s=>[s,n(()=>Promise.resolve(s).then(t))]),a=Fat(r.preserveOrder?1:1/0);return Promise.all(i.map(s=>a(()=>i2r(s)))).then(()=>{}).catch(s=>s instanceof fL?s.value:Promise.reject(s))}});var $at=b((qun,the)=>{"use strict";var qat=require("path"),Lat=yse(),a2r=Nat();the.exports=(e,t)=>(t=Object.assign({cwd:process.cwd()},t),a2r(e,r=>Lat(qat.resolve(t.cwd,r)),t));the.exports.sync=(e,t)=>{t=Object.assign({cwd:process.cwd()},t);for(let r of e)if(Lat.sync(qat.resolve(t.cwd,r)))return r}});var Mat=b((Lun,rhe)=>{"use strict";var pv=require("path"),Bat=$at();rhe.exports=(e,t)=>{t=t||{};let r=pv.resolve(t.cwd||""),n=pv.parse(r).root,i=[].concat(e);return new Promise(a=>{(function s(o){Bat(i,{cwd:o}).then(c=>{c?a(pv.join(o,c)):o===n?a(null):s(pv.dirname(o))})})(r)})};rhe.exports.sync=(e,t)=>{t=t||{};let r=pv.resolve(t.cwd||""),n=pv.parse(r).root,i=[].concat(e);for(;;){let a=Bat.sync(i,{cwd:r});if(a)return pv.join(r,a);if(r===n)return null;r=pv.dirname(r)}}});var zat=b(($un,nhe)=>{"use strict";var Uat=Mat();nhe.exports=e=>Uat("package.json",{cwd:e});nhe.exports.sync=e=>Uat.sync("package.json",{cwd:e})});var Gat=b((Bun,Vat)=>{"use strict";var Va=require("path"),Hat=require("os"),Tw=Hat.homedir(),ihe=Hat.tmpdir(),qA=process.env,s2r=e=>{let t=Va.join(Tw,"Library");return{data:Va.join(t,"Application Support",e),config:Va.join(t,"Preferences",e),cache:Va.join(t,"Caches",e),log:Va.join(t,"Logs",e),temp:Va.join(ihe,e)}},o2r=e=>{let t=qA.LOCALAPPDATA||Va.join(Tw,"AppData","Local");return{data:Va.join(t,e,"Data"),config:Va.join(t,e,"Config"),cache:Va.join(t,e,"Cache"),log:Va.join(t,e,"Log"),temp:Va.join(ihe,e)}},u2r=e=>{let t=Va.basename(Tw);return{data:Va.join(qA.XDG_DATA_HOME||Va.join(Tw,".local","share"),e),config:Va.join(qA.XDG_CONFIG_HOME||Va.join(Tw,".config"),e),cache:Va.join(qA.XDG_CACHE_HOME||Va.join(Tw,".cache"),e),log:Va.join(qA.XDG_STATE_HOME||Va.join(Tw,".local","state"),e),temp:Va.join(ihe,t,e)}};Vat.exports=(e,t)=>{if(typeof e!="string")throw new TypeError(`Expected string, got ${typeof e}`);return t=Object.assign({suffix:"nodejs"},t),t.suffix&&(e+=`-${t.suffix}`),process.platform==="darwin"?s2r(e):process.platform==="win32"?o2r(e):u2r(e)}});var Kat=b((Mun,LA)=>{"use strict";LA.exports=d2r;LA.exports.sync=h2r;LA.exports._getTmpname=ahe;LA.exports._cleanupOnExit=she;var Xi=Zs(),c2r=Dse(),Wat=zP(),l2r=require("path"),fv={},p2r=function(){try{var t=require("worker_threads");return t.threadId}catch{return 0}}(),f2r=0;function ahe(e){return e+"."+c2r(__filename).hash(String(process.pid)).hash(String(p2r)).hash(String(++f2r)).result()}function she(e){return function(){try{Xi.unlinkSync(typeof e=="function"?e():e)}catch{}}}function d2r(e,t,r,n){r?r instanceof Function?(n=r,r={}):typeof r=="string"&&(r={encoding:r}):r={};var i=r.Promise||global.Promise,a,s,o,c=Wat(she(()=>o)),p=l2r.resolve(e);new i(function(d){fv[p]||(fv[p]=[]),fv[p].push(d),fv[p].length===1&&d()}).then(function(){return new i(function(d){Xi.realpath(e,function(h,g){a=g||e,o=ahe(a),d()})})}).then(function(){return new i(function(h){r.mode&&r.chown?h():Xi.stat(a,function(g,v){g||!v||(r=Object.assign({},r),r.mode==null&&(r.mode=v.mode),r.chown==null&&process.getuid&&(r.chown={uid:v.uid,gid:v.gid})),h()})})}).then(function(){return new i(function(d,h){Xi.open(o,"w",r.mode,function(g,v){s=v,g?h(g):d()})})}).then(function(){return new i(function(d,h){Buffer.isBuffer(t)?Xi.write(s,t,0,t.length,0,function(g){g?h(g):d()}):t!=null?Xi.write(s,String(t),0,String(r.encoding||"utf8"),function(g){g?h(g):d()}):d()})}).then(function(){return new i(function(d,h){r.fsync!==!1?Xi.fsync(s,function(g){g?Xi.close(s,()=>h(g)):Xi.close(s,d)}):Xi.close(s,d)})}).then(function(){if(s=null,r.chown)return new i(function(d,h){Xi.chown(o,r.chown.uid,r.chown.gid,function(g){g?h(g):d()})})}).then(function(){if(r.mode)return new i(function(d,h){Xi.chmod(o,r.mode,function(g){g?h(g):d()})})}).then(function(){return new i(function(d,h){Xi.rename(o,a,function(g){g?h(g):d()})})}).then(function(){c(),n()},function(d){return new i(h=>s?Xi.close(s,h):h()).then(()=>{c(),Xi.unlink(o,function(){n(d)})})}).then(function(){fv[p].shift(),fv[p].length>0?fv[p][0]():delete fv[p]})}function h2r(e,t,r){typeof r=="string"?r={encoding:r}:r||(r={});try{e=Xi.realpathSync(e)}catch{}var n=ahe(e);if(!r.mode||!r.chown)try{var i=Xi.statSync(e);r=Object.assign({},r),r.mode||(r.mode=i.mode),!r.chown&&process.getuid&&(r.chown={uid:i.uid,gid:i.gid})}catch{}var a,s=she(n),o=Wat(s);try{a=Xi.openSync(n,"w",r.mode),Buffer.isBuffer(t)?Xi.writeSync(a,t,0,t.length,0):t!=null&&Xi.writeSync(a,String(t),0,String(r.encoding||"utf8")),r.fsync!==!1&&Xi.fsyncSync(a),Xi.closeSync(a),r.chown&&Xi.chownSync(n,r.chown.uid,r.chown.gid),r.mode&&Xi.chmodSync(n,r.mode),Xi.renameSync(n,e),o()}catch(c){if(a)try{Xi.closeSync(a)}catch{}throw o(),s(),c}}});var Qat=b((Uun,hL)=>{"use strict";var Yat=require("fs"),dL=require("path"),Jat=require("crypto"),m2r=require("assert"),g2r=require("events"),$A=xat(),Xat=Dat(),v2r=zat(),y2r=Gat(),b2r=Kat(),BA=()=>Object.create(null);delete require.cache[__filename];var w2r=dL.dirname(hL.parent&&hL.parent.filename||"."),ohe=class{constructor(t){let r=v2r.sync(w2r);if(t=Object.assign({projectName:r&&JSON.parse(Yat.readFileSync(r,"utf8")).name},t),!t.projectName&&!t.cwd)throw new Error("Project name could not be inferred. Please specify the `projectName` option.");t=Object.assign({configName:"config"},t),t.cwd||(t.cwd=y2r(t.projectName).config),this.events=new g2r,this.encryptionKey=t.encryptionKey,this.path=dL.resolve(t.cwd,`${t.configName}.json`),this.store=Object.assign(BA(),t.defaults,this.store)}get(t,r){return $A.get(this.store,t,r)}set(t,r){if(typeof t!="string"&&typeof t!="object")throw new TypeError(`Expected \`key\` to be of type \`string\` or \`object\`, got ${typeof t}`);let n=this.store;if(typeof t=="object")for(let i of Object.keys(t))$A.set(n,i,t[i]);else $A.set(n,t,r);this.store=n}has(t){return $A.has(this.store,t)}delete(t){let r=this.store;$A.delete(r,t),this.store=r}clear(){this.store=BA()}onDidChange(t,r){if(typeof t!="string")throw new TypeError(`Expected \`key\` to be of type \`string\`, got ${typeof t}`);if(typeof r!="function")throw new TypeError(`Expected \`callback\` to be of type \`function\`, got ${typeof r}`);let n=this.get(t),i=()=>{let a=n,s=this.get(t);try{m2r.deepEqual(s,a)}catch{n=s,r.call(this,s,a)}};return this.events.on("change",i),()=>this.events.removeListener("change",i)}get size(){return Object.keys(this.store).length}get store(){try{let t=Yat.readFileSync(this.path,this.encryptionKey?null:"utf8");if(this.encryptionKey)try{let r=Jat.createDecipher("aes-256-cbc",this.encryptionKey);t=Buffer.concat([r.update(t),r.final()])}catch{}return Object.assign(BA(),JSON.parse(t))}catch(t){if(t.code==="ENOENT")return Xat.sync(dL.dirname(this.path)),BA();if(t.name==="SyntaxError")return BA();throw t}}set store(t){Xat.sync(dL.dirname(this.path));let r=JSON.stringify(t,null,"	");if(this.encryptionKey){let n=Jat.createCipher("aes-256-cbc",this.encryptionKey);r=Buffer.concat([n.update(Buffer.from(r)),n.final()])}b2r.sync(this.path,r),this.events.emit("change")}*[Symbol.iterator](){let t=this.store;for(let r of Object.keys(t))yield[r,t[r]]}};hL.exports=ohe});var tst=b((zun,est)=>{"use strict";var Zat=require("electron"),_2r=Qat(),uhe=class extends _2r{constructor(t){t=Object.assign({name:"config"},t),t.cwd=(Zat.app||Zat.remote.app).getPath("userData"),t.configName=t.name,delete t.name,super(t)}};est.exports=uhe});var nst=b((Hun,rst)=>{rst.exports={START_NOTIFICATION_SERVICE:"PUSH_RECEIVER:::START_NOTIFICATION_SERVICE",NOTIFICATION_SERVICE_STARTED:"PUSH_RECEIVER:::NOTIFICATION_SERVICE_STARTED",NOTIFICATION_SERVICE_ERROR:"PUSH_RECEIVER:::NOTIFICATION_SERVICE_ERROR",NOTIFICATION_RECEIVED:"PUSH_RECEIVER:::NOTIFICATION_RECEIVED",TOKEN_UPDATED:"PUSH_RECEIVER:::TOKEN_UPDATED"}});var lst=b((Vun,cst)=>{var{register:x2r,listen:E2r}=yat(),{ipcMain:S2r}=require("electron"),k2r=tst(),{START_NOTIFICATION_SERVICE:ast,NOTIFICATION_SERVICE_STARTED:che,NOTIFICATION_SERVICE_ERROR:sst,NOTIFICATION_RECEIVED:ost,TOKEN_UPDATED:ust}=nst(),Ow=new k2r;cst.exports={START_NOTIFICATION_SERVICE:ast,NOTIFICATION_SERVICE_STARTED:che,NOTIFICATION_SERVICE_ERROR:sst,NOTIFICATION_RECEIVED:ost,TOKEN_UPDATED:ust,setup:A2r};var ist=!1;function A2r(e){S2r.on(ast,async(t,r)=>{let n=Ow.get("credentials"),i=Ow.get("senderId");if(ist){e.send(che,(n.fcm||{}).token);return}ist=!0;try{let a=Ow.get("persistentIds")||[];(!n||i!==r)&&(n=await x2r(r),Ow.set("credentials",n),Ow.set("senderId",r),e.send(ust,n.fcm.token)),await E2r(Object.assign({},n,{persistentIds:a}),T2r(e)),e.send(che,n.fcm.token)}catch(a){console.error("PUSH_RECEIVER:::Error while starting the service",a),e.send(sst,a.message)}})}function T2r(e){return({notification:t,persistentId:r})=>{let n=Ow.get("persistentIds")||[];Ow.set("persistentIds",[...n,r]),e.isDestroyed()||e.send(ost,t)}}});var fst=b((Gun,pst)=>{var O2r="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";pst.exports={urlAlphabet:O2r}});var lhe=b((Wun,yst)=>{var dst=require("crypto"),{urlAlphabet:hst}=fst(),D2r=128,dv,hv,mst=e=>{!dv||dv.length<e?(dv=Buffer.allocUnsafe(e*D2r),dst.randomFillSync(dv),hv=0):hv+e>dv.length&&(dst.randomFillSync(dv),hv=0),hv+=e},gst=e=>(mst(e|=0),dv.subarray(hv-e,hv)),vst=(e,t,r)=>{let n=(2<<31-Math.clz32(e.length-1|1))-1,i=Math.ceil(1.6*n*t/e.length);return(a=t)=>{let s="";for(;;){let o=r(i),c=i;for(;c--;)if(s+=e[o[c]&n]||"",s.length===a)return s}}},C2r=(e,t=21)=>vst(e,t,gst),P2r=(e=21)=>{mst(e|=0);let t="";for(let r=hv-e;r<hv;r++)t+=hst[dv[r]&63];return t};yst.exports={nanoid:P2r,customAlphabet:C2r,customRandom:vst,urlAlphabet:hst,random:gst}});var _st=b(mL=>{"use strict";Object.defineProperty(mL,"__esModule",{value:!0});mL.parse=L2r;mL.serialize=$2r;var I2r=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,R2r=/^[\u0021-\u003A\u003C-\u007E]*$/,F2r=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,j2r=/^[\u0020-\u003A\u003D-\u007E]*$/,N2r=Object.prototype.toString,q2r=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function L2r(e,t){let r=new q2r,n=e.length;if(n<2)return r;let i=t?.decode||B2r,a=0;do{let s=e.indexOf("=",a);if(s===-1)break;let o=e.indexOf(";",a),c=o===-1?n:o;if(s>c){a=e.lastIndexOf(";",s-1)+1;continue}let p=bst(e,a,s),f=wst(e,s,p),d=e.slice(p,f);if(r[d]===void 0){let h=bst(e,s+1,c),g=wst(e,c,h),v=i(e.slice(h,g));r[d]=v}a=c+1}while(a<n);return r}function bst(e,t,r){do{let n=e.charCodeAt(t);if(n!==32&&n!==9)return t}while(++t<r);return r}function wst(e,t,r){for(;t>r;){let n=e.charCodeAt(--t);if(n!==32&&n!==9)return t+1}return r}function $2r(e,t,r){let n=r?.encode||encodeURIComponent;if(!I2r.test(e))throw new TypeError(`argument name is invalid: ${e}`);let i=n(t);if(!R2r.test(i))throw new TypeError(`argument val is invalid: ${t}`);let a=e+"="+i;if(!r)return a;if(r.maxAge!==void 0){if(!Number.isInteger(r.maxAge))throw new TypeError(`option maxAge is invalid: ${r.maxAge}`);a+="; Max-Age="+r.maxAge}if(r.domain){if(!F2r.test(r.domain))throw new TypeError(`option domain is invalid: ${r.domain}`);a+="; Domain="+r.domain}if(r.path){if(!j2r.test(r.path))throw new TypeError(`option path is invalid: ${r.path}`);a+="; Path="+r.path}if(r.expires){if(!M2r(r.expires)||!Number.isFinite(r.expires.valueOf()))throw new TypeError(`option expires is invalid: ${r.expires}`);a+="; Expires="+r.expires.toUTCString()}if(r.httpOnly&&(a+="; HttpOnly"),r.secure&&(a+="; Secure"),r.partitioned&&(a+="; Partitioned"),r.priority)switch(typeof r.priority=="string"?r.priority.toLowerCase():void 0){case"low":a+="; Priority=Low";break;case"medium":a+="; Priority=Medium";break;case"high":a+="; Priority=High";break;default:throw new TypeError(`option priority is invalid: ${r.priority}`)}if(r.sameSite)switch(typeof r.sameSite=="string"?r.sameSite.toLowerCase():r.sameSite){case!0:case"strict":a+="; SameSite=Strict";break;case"lax":a+="; SameSite=Lax";break;case"none":a+="; SameSite=None";break;default:throw new TypeError(`option sameSite is invalid: ${r.sameSite}`)}return a}function B2r(e){if(e.indexOf("%")===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function M2r(e){return N2r.call(e)==="[object Date]"}});var gL=b(mv=>{"use strict";Object.defineProperty(mv,"__esModule",{value:!0});var xst={chars:"0123456789ABCDEF",bits:4},Est={chars:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bits:5},Sst={chars:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bits:5},kst={chars:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bits:6},Ast={chars:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bits:6},U2r={parse:function(t,r){return a8(t.toUpperCase(),xst,r)},stringify:function(t,r){return s8(t,xst,r)}},z2r={parse:function(t,r){return r===void 0&&(r={}),a8(r.loose?t.toUpperCase().replace(/0/g,"O").replace(/1/g,"L").replace(/8/g,"B"):t,Est,r)},stringify:function(t,r){return s8(t,Est,r)}},H2r={parse:function(t,r){return a8(t,Sst,r)},stringify:function(t,r){return s8(t,Sst,r)}},V2r={parse:function(t,r){return a8(t,kst,r)},stringify:function(t,r){return s8(t,kst,r)}},G2r={parse:function(t,r){return a8(t,Ast,r)},stringify:function(t,r){return s8(t,Ast,r)}},W2r={parse:a8,stringify:s8};function a8(e,t,r){var n;if(r===void 0&&(r={}),!t.codes){t.codes={};for(var i=0;i<t.chars.length;++i)t.codes[t.chars[i]]=i}if(!r.loose&&e.length*t.bits&7)throw new SyntaxError("Invalid padding");for(var a=e.length;e[a-1]==="=";)if(--a,!r.loose&&!((e.length-a)*t.bits&7))throw new SyntaxError("Invalid padding");for(var s=new((n=r.out)!=null?n:Uint8Array)(a*t.bits/8|0),o=0,c=0,p=0,f=0;f<a;++f){var d=t.codes[e[f]];if(d===void 0)throw new SyntaxError("Invalid character "+e[f]);c=c<<t.bits|d,o+=t.bits,o>=8&&(o-=8,s[p++]=255&c>>o)}if(o>=t.bits||255&c<<8-o)throw new SyntaxError("Unexpected end of data");return s}function s8(e,t,r){r===void 0&&(r={});for(var n=r,i=n.pad,a=i===void 0?!0:i,s=(1<<t.bits)-1,o="",c=0,p=0,f=0;f<e.length;++f)for(p=p<<8|255&e[f],c+=8;c>t.bits;)c-=t.bits,o+=t.chars[s&p>>c];if(c&&(o+=t.chars[s&p<<t.bits-c]),a)for(;o.length*t.bits&7;)o+="=";return o}mv.base16=U2r;mv.base32=z2r;mv.base32hex=H2r;mv.base64=V2r;mv.base64url=G2r;mv.codec=W2r});var qc=b((Jun,Jot)=>{"use strict";var whe=Object.defineProperty,K2r=Object.getOwnPropertyDescriptor,Y2r=Object.getOwnPropertyNames,J2r=Object.prototype.hasOwnProperty,X2r=(e,t)=>{for(var r in t)whe(e,r,{get:t[r],enumerable:!0})},Q2r=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Y2r(t))!J2r.call(e,i)&&i!==r&&whe(e,i,{get:()=>t[i],enumerable:!(n=K2r(t,i))||n.enumerable});return e},Z2r=e=>Q2r(whe({},"__esModule",{value:!0}),e),Pst={};X2r(Pst,{ALPHABET_ALPHANUMERIC:()=>Mst,ALPHABET_HEX_LOWERCASE:()=>kbr,ALPHABET_HEX_UPPERCASE:()=>Abr,ALPHABET_LOWERCASE:()=>$st,ALPHABET_NO_LOOK_ALIKES:()=>Sbr,ALPHABET_NO_LOOK_ALIKES_SAFE:()=>Ebr,ALPHABET_NUMBERS:()=>kL,ALPHABET_UPPERCASE:()=>Bst,AnsiColor:()=>Wst,Appearence:()=>Qbr,AracnaBlob:()=>qhe,AracnaFile:()=>Tot,AsyncStorage:()=>rwr,Cookie:()=>nwr,CoreClassLogger:()=>Pt,CoreConfiguration:()=>VA,CoreFunctionLogger:()=>Dw,CoreLoggerName:()=>Kst,CoreStorageName:()=>Yst,CoreUtilLogger:()=>Uo,DEFAULT_APPEARENCE_STORAGE_KEY:()=>Ist,DEFAULT_LOCALIZATION_STORAGE_KEY:()=>Rst,DEFAULT_QUEUE_CONCURRENCY:()=>Nst,DEFAULT_QUEUE_DELAY:()=>qst,DEFAULT_QUEUE_TIMEOUT:()=>Lst,DEFAULT_TYPEAHEAD_DEBOUNCE_TIME:()=>Hst,DEFAULT_WFP_MS:()=>Vst,DEFAULT_WFP_TIMEOUT:()=>Gst,DEFAULT_WF_MS:()=>Ehe,DEFAULT_WF_TIMEOUT:()=>She,DeferredPromise:()=>uwr,EMPTY_OBJECT:()=>dhe,Environment:()=>cwr,EventEmitter:()=>LL,Fetch:()=>Uot,FetchError:()=>JA,FetchResponse:()=>l8,GraphQlAPI:()=>ywr,History:()=>bwr,LOGGER_LEVELS:()=>Fst,LOGGER_STATUSES:()=>jst,Localization:()=>wwr,Logger:()=>jL,MemoryStorage:()=>Fhe,Queue:()=>kwr,RestAPI:()=>zot,STUB_COOKIE_GET:()=>Zbr,STUB_COOKIE_SET:()=>ewr,STUB_STORAGE:()=>twr,STUB_TEXT_DECODER:()=>_ot,STUB_TEXT_ENCODER:()=>xot,Status:()=>gv,StubBlob:()=>Nhe,StubFile:()=>wot,SyncStorage:()=>got,Typeahead:()=>Wot,VisibilityController:()=>Awr,appendSearchParamsToURL:()=>hwr,cafs:()=>Oot,cafsue:()=>Twr,cafsueof:()=>Dot,chainPromises:()=>iwr,chainTruthyPromises:()=>awr,clearEveryInterval:()=>s_r,clearEveryTimeout:()=>xwr,clearInterval:()=>a_r,clearTimeout:()=>_wr,cloneArray:()=>Hbr,cloneObject:()=>yv,concatURL:()=>Fot,copyObjectProperty:()=>ghe,countFetchRequestInitHeaders:()=>Not,debounce:()=>Vot,decodeBase16:()=>Bwr,decodeBase32:()=>Uwr,decodeBase32Hex:()=>zwr,decodeBase64:()=>Gwr,decodeBase64URL:()=>Wwr,decodeJSON:()=>IL,decodeText:()=>Eot,deleteFetchRequestInitHeader:()=>gwr,deleteObjectProperties:()=>KA,deleteObjectProperty:()=>Ihe,deserializeBlob:()=>Jwr,deserializeCookie:()=>jhe,deserializeFile:()=>e_r,deserializeFormData:()=>FL,deserializeURLSearchParams:()=>XA,encodeBase16:()=>Mwr,encodeBase32:()=>Hwr,encodeBase32Hex:()=>Vwr,encodeBase64:()=>Kwr,encodeBase64URL:()=>Ywr,encodeJSON:()=>Che,encodeText:()=>Sot,flattenObject:()=>fot,generateRandomString:()=>bL,getAbsoluteNumber:()=>c_r,getArrayLastItem:()=>Wbr,getArraysDifference:()=>Vbr,getArraysIntersection:()=>Gbr,getCamelCaseString:()=>qbr,getCapitalizedString:()=>uot,getDateUnixTime:()=>Qwr,getEmojiFromCountryCode:()=>Zwr,getFetchRequestInitHeader:()=>qot,getFetchRequestInitHeadersEntries:()=>QA,getFixedNumber:()=>l_r,getHighestNumber:()=>h_r,getKebabCaseString:()=>Lbr,getLimitedNumber:()=>f_r,getLoggerAnsiColor:()=>hhe,getLowestNumber:()=>m_r,getNodeEnv:()=>_v,getNumberPercentage:()=>d_r,getNumbersDistance:()=>p_r,getObjectProperty:()=>wv,getPascalCaseString:()=>$br,getProcessEnvKey:()=>yL,getSnakeCaseString:()=>Bbr,getSymbolCaseString:()=>Phe,getTextDecoder:()=>kot,getTextEncoder:()=>Aot,gql:()=>Owr,hasFetchRequestInitHeader:()=>Mot,hasObjectProperty:()=>wL,hasProcessEnvKey:()=>Jst,importNodeFetch:()=>Bhe,isArray:()=>yp,isBlobDefined:()=>AL,isBlobNotDefined:()=>TL,isDocumentDefined:()=>Xst,isDocumentNotDefined:()=>Qst,isError:()=>Xbr,isFetchDefined:()=>khe,isFetchNotDefined:()=>Ahe,isFileDefined:()=>OL,isFileNotDefined:()=>GA,isFormDataDefined:()=>DL,isFormDataNotDefined:()=>The,isInstanceOf:()=>r_r,isIntervalSet:()=>o_r,isIntervalUnset:()=>u_r,isJestDefined:()=>Zst,isJestNotDefined:()=>eot,isNodeEnvDevelopment:()=>tot,isNodeEnvNotDevelopment:()=>rot,isNodeEnvNotProduction:()=>not,isNodeEnvNotTest:()=>CL,isNodeEnvProduction:()=>Ohe,isNodeEnvTest:()=>Dhe,isNotError:()=>vot,isNotInstanceOf:()=>n_r,isNotPromise:()=>owr,isNotURL:()=>$L,isNumberEven:()=>v_r,isNumberMultipleOf:()=>y_r,isNumberOdd:()=>b_r,isObject:()=>HA,isObjectClonable:()=>_L,isObjectFlattenable:()=>hot,isObjectKeysPopulated:()=>Ybr,isObjectValuesPopulated:()=>Jbr,isPlainObject:()=>ZA,isProcessDefined:()=>iot,isProcessNotDefined:()=>aot,isPromise:()=>swr,isPromiseLike:()=>Cot,isStringFloat:()=>cot,isStringInt:()=>lot,isStringJSON:()=>RL,isStringNotJSON:()=>Mbr,isStringNotURL:()=>Ubr,isStringURL:()=>pot,isTextDecoderDefined:()=>sot,isTextDecoderNotDefined:()=>Ibr,isTextEncoderDefined:()=>oot,isTextEncoderNotDefined:()=>Rbr,isTimeoutSet:()=>Ewr,isTimeoutUnset:()=>Swr,isURL:()=>jot,isWindowDefined:()=>PL,isWindowNotDefined:()=>WA,joinPaths:()=>Lhe,joinWindowsPaths:()=>lwr,ma:()=>Dwr,mergeFetchRequestInits:()=>Lot,mergeObjects:()=>YA,mtc:()=>vv,mtcp:()=>u8,noop:()=>Got,omitObjectProperties:()=>NL,parseBigInt:()=>g_r,parseNumber:()=>Yot,pickObjectProperties:()=>dot,rc:()=>c8,rcp:()=>Cwr,removeArrayDuplicates:()=>Kbr,removeArrayItems:()=>zA,removeSearchParamsFromURL:()=>mwr,rne:()=>Pwr,rv:()=>Iwr,rvp:()=>Rwr,serializeBlob:()=>Xwr,serializeCookie:()=>bot,serializeFile:()=>t_r,serializeFormData:()=>zbr,serializeURLSearchParams:()=>$he,setFetchRequestInitHeader:()=>xL,setFetchRequestInitHeaderWhenUnset:()=>UA,setInterval:()=>i_r,setObjectProperty:()=>qL,setTimeout:()=>Hot,sleep:()=>EL,tc:()=>Ba,tcp:()=>Ga,throttle:()=>Fwr,tie:()=>jwr,tne:()=>Nwr,toLoggableFetchRequestInit:()=>vwr,toLoggableNativeFetchRequestInit:()=>$ot,toNativeFetchRequestInit:()=>Bot,typeahead:()=>qwr,useNodeFetch:()=>Mhe,wf:()=>Lwr,wfp:()=>$wr});Jot.exports=Z2r(Pst);var ebr=lhe(),dhe=()=>({}),Ist="aracna_core_appearence",tbr="system",vL=(e,t)=>e.includes(t),rbr=(e,t,r)=>r?.includes(t)??!1,nbr=()=>({tc:{log:!0,onCatch:()=>{}},tcp:{log:!0,onCatch:()=>{}}}),Tst="_",Ost=new Map,ibr=10,abr=100,bv=new Map,Rst="aracna_core_localization",sbr=/{[^}]{1,256}}/gm,obr=(e,t)=>t.length-e.length,ubr=" -> ",Fst=["debug","error","info","verbose","warn"],jst=["off","on"],o8=new Map,cbr=/^([0-9]{1,64}\.[0-9]{0,64}|[0-9]{0,64}\.[0-9]{1,64})$/,lbr=/^[0-9]{1,64}$/,pbr=100,fbr=0,dbr=(e,t,r,n)=>n?.includes(t)??!1,hbr=(e,t,r,n)=>n?.includes(t)??!1,mbr=(e,t,r,n)=>n?.includes(t)??!0,_he=/([^.])\[/g,SL=/[[\]]/g,gbr=92,vbr=58,phe=46,xhe=47,ybr=97,bbr=122,wbr=65,_br=90,Nst=1/0,qst=0,Lst=1e4,xbr=e=>e.join("_"),$st="abcdefghijklmnopqrstuvwxyz",Ebr="6789BCDFGHJKLMNPQRTWbcdfghjkmnpqrtwz",Sbr="346789ABCDEFGHJKLMNPQRTUVWXYabcdefghijkmnpqrtwxyz",kL="0123456789",Bst="ABCDEFGHIJKLMNOPQRSTUVWXYZ",Mst=kL+$st+Bst,kbr=kL+"abcdef",Abr=kL+"ABCDEF",Tbr=Mst,Obr=ebr.random,Dbr="-",Cbr=32,Pbr=/[^a-zA-Z0-9]/g,Ust=/[^a-z0-9]/g,zst=/[A-Z]/g,Dst=new Map,Cw=new Map,Hst=100,Cst=new Map,Ehe=100,She=1e4,Vst=Ehe,Gst=She,Wst=(e=>(e.BLACK="\x1B[30m",e.RED="\x1B[31m",e.GREEN="\x1B[32m",e.YELLOW="\x1B[33m",e.BLUE="\x1B[34m",e.MAGENTA="\x1B[35m",e.CYAN="\x1B[36m",e.WHITE="\x1B[37m",e.RESET="\x1B[0m",e))(Wst||{}),Kst=(e=>(e.CLASS="CORE_CLASS",e.FUNCTION="CORE_FUNCTION",e.UTIL="CORE_UTIL",e))(Kst||{}),Yst=(e=>(e.MEMORY="CORE_MEMORY",e))(Yst||{}),VA=class{static functions=nbr()};function Ba(e,t=VA.functions.tc.log){try{return e()}catch(r){return t&&console.error(r),VA.functions.tc.onCatch(r,t),r}}function yL(e){let t;if(t=Ba(()=>process.env[e],!1),!(t instanceof Error))return t}function Jst(e){let t;return t=Ba(()=>process.env[e],!1),!(t instanceof Error||typeof t>"u")}function _v(){let e;if(e=Ba(()=>process.env.NODE_ENV,!1),!(e instanceof Error))return e}function AL(){return typeof Blob<"u"}function TL(){return typeof Blob>"u"}function Xst(){return typeof document<"u"}function Qst(){return typeof document>"u"}function khe(){return typeof fetch<"u"}function Ahe(){return typeof fetch>"u"}function OL(){return typeof File<"u"}function GA(){return typeof File>"u"}function DL(){return typeof FormData<"u"}function The(){return typeof FormData>"u"}function Zst(){return typeof Ba(()=>process.env.JEST_WORKER_ID,!1)=="string"}function eot(){return typeof Ba(()=>process.env.JEST_WORKER_ID,!1)!="string"}function tot(){return _v()==="development"}function rot(){return _v()!=="development"}function Ohe(){return _v()==="production"}function not(){return _v()!=="production"}function Dhe(){return _v()==="test"}function CL(){return _v()!=="test"}function iot(){return typeof process<"u"}function aot(){return typeof process>"u"}function sot(){return typeof TextDecoder=="function"}function Ibr(){return typeof TextDecoder!="function"}function oot(){return typeof TextEncoder=="function"}function Rbr(){return typeof TextEncoder!="function"}function PL(){return typeof window<"u"}function WA(){return typeof window>"u"}function Fbr(e){return(t,r)=>{switch(typeof r){case"number":{if(e?.castUnsafeIntToBigInt&&!Number.isSafeInteger(r)){let n;return n=Ba(()=>BigInt(r),!1),n instanceof Error?r:n}return r}case"string":{let n;if(e?.castFloatStringToNumber&&cbr.test(r.trim()))return Number(r);if(e?.castBigIntStringToBigInt||e?.castIntStringToNumber){let i,a;if(!lbr.test(r.trim()))return r;if(i=Number(r),a=Number.isSafeInteger(i),e.castIntStringToNumber&&a)return i;if(e.castBigIntStringToBigInt&&!a)return n=Ba(()=>BigInt(r),!1),n instanceof Error?r:n}return r}default:return r}}}function IL(e,t,r){let n;return n=Ba(()=>JSON.parse(e,Fbr(t))),n instanceof Error?r??n:n}function jbr(e){return(t,r)=>e?.castBigIntToString&&typeof r=="bigint"?r.toString():r}function Che(e,t,r){let n;return n=Ba(()=>JSON.stringify(e,jbr(t))),n instanceof Error?r??n:n}var Nbr=lhe();function bL(e){let t,r,n,i,a,s;for(t=e?.alphabet??Tbr,r=e?.blacklist??[],n=e?.random??Obr,i=e?.separator??Dbr,a=e?.size??Cbr;s=[e?.prefix,(0,Nbr.customRandom)(t,a,n)(),e?.suffix].filter(Boolean).join(i),!!r.includes(s););return s}function qbr(e){let t,r;t="",r=!1;for(let n=0;n<e.length;n++){if(zst.test(e[n])){t+=n<=0?e[n].toLowerCase():e[n];continue}if(Ust.test(e[n])){r=!0;continue}if(r){t+=e[n].toUpperCase(),r=!1;continue}t+=e[n]}return t}function uot(e,t=!1){return e.charAt(0).toUpperCase()+(t?e.slice(1).toLowerCase():e.slice(1))}function Lbr(e){return Phe(e,"-")}function $br(e){let t,r;t="",r=!1;for(let n of e){if(Pbr.test(n)){r=!0;continue}if(r){t+=n.toUpperCase(),r=!1;continue}t+=n}return uot(t)}function Bbr(e){return Phe(e,"_")}function Phe(e,t){let r="";for(let n=0;n<e.length;n++){if(zst.test(e[n])){r+=(n<=0?"":t)+e[n].toLowerCase();continue}if(Ust.test(e[n])){r+=t;continue}r+=e[n]}return r}function cot(e){return!isNaN(parseFloat(e))}function lot(e){return e.includes(".")?!1:!isNaN(parseInt(e))}function RL(e){return!(Ba(()=>JSON.parse(e),!1)instanceof Error)}function Mbr(e){return!RL(e)}function pot(e){let t;return t=Ba(()=>new URL(e),!1),t instanceof URL}function Ubr(e){return!pot(e)}function FL(e,t){let r={};for(let[n,i]of e.entries()){if(typeof i=="string"&&RL(i)){let a;if(a=IL(i,t?.json),a instanceof Error)continue;r[n]=a;continue}r[n]=i}return r}function zbr(e,t){let r;r=new FormData;for(let[n,i]of Object.entries(e))switch(typeof i){case"bigint":case"boolean":case"number":r.append(n,i.toString());continue;case"function":case"symbol":case"undefined":continue;case"object":{let a;if(i===null)continue;switch(!0){case(AL()&&i instanceof Blob):case(OL()&&i instanceof File):r.append(n,i);continue}if(a=Che(i,t?.json),a instanceof Error)continue;r.append(n,a);continue}case"string":r.append(n,i);continue}return r}function hhe(e){switch(e){case"debug":return"\x1B[35m";case"error":return"\x1B[31m";case"info":return"\x1B[34m";case"verbose":return"\x1B[37m";case"warn":return"\x1B[33m"}}var jL=class mhe{colors;level;name;separator;status;constructor(t,r=mhe.getLevelFromEnvironment(t)??(Ohe()?"error":"warn"),n=mhe.getStatusFromEnvironment(t)??(Dhe()?"off":"on"),i=WA(),a=ubr){this.colors=i,this.level=r,this.name=t,this.separator=a,this.status=n}verbose(...t){this.isDisabled||this.isLevelVerboseDisabled||console.debug(...this.format("verbose",...t))}debug(...t){this.isDisabled||this.isLevelDebugDisabled||console.debug(...this.format("debug",...t))}info(...t){this.isDisabled||this.isLevelInfoDisabled||console.info(...this.format("info",...t))}warn(...t){this.isDisabled||this.isLevelWarnDisabled||console.warn(...this.format("warn",...t))}error(...t){this.isDisabled||console.error(...this.format("error",...t))}disable(){this.status="off"}enable(){this.status="on"}setLevel(t){this.level=t}setSeparator(t){this.separator=t}disableColors(){this.colors=!1}enableColors(){this.colors=!0}format(t,...r){let n,i;return n=[],i=[],this.formatArgs(t,n,i,...r),this.formatPrimitives(t,n,i),n}formatArgs(t,r,n,...i){for(let a of i){if(typeof a!="object"){if(String(a).length<=0)continue;n.push(String(a));continue}if(n.length>0&&(this.colors&&r.push(hhe(t)),r.push(n.join(this.separator)),n.splice(0,n.length),this.colors&&r.push("\x1B[0m")),DL()&&a instanceof FormData){r.push(FL(a));continue}r.push(a)}}formatPrimitives(t,r,n){n.length>0&&(this.colors&&r.push(hhe(t)),r.push(n.join(this.separator)),this.colors&&r.push("\x1B[0m"))}static getLevelFromEnvironment(t){let r;if(r=yL(`LOGGER_${t.toUpperCase()}_LEVEL`),!!Fst.includes(r))return r}static getStatusFromEnvironment(t){let r;if(r=yL(`LOGGER_${t.toUpperCase()}_STATUS`),!!jst.includes(r))return r}get isDisabled(){return this.status==="off"}get isEnabled(){return this.status==="on"}get isLevelVerboseDisabled(){return["debug","info","warn","error"].includes(this.level)}get isLevelDebugDisabled(){return["info","warn","error"].includes(this.level)}get isLevelInfoDisabled(){return["warn","error"].includes(this.level)}get isLevelWarnDisabled(){return["error"].includes(this.level)}},Pt=new jL("CORE_CLASS");function vv(e){return(...t)=>Ba(()=>e(...t))}function Hbr(e){return[...e]}function Vbr(e,t=vL){let r=[];for(let n of e)for(let i of n){let a,s;a=t(r,i),!a&&(s=e.some(o=>o!==n&&t(o,i)),!s&&r.push(i))}return r}function Gbr(e,t=vL){let r=[];for(let n of e)for(let i of n){let a,s;a=t(r,i),!a&&(s=e.every(o=>t(o,i)),s&&r.push(i))}return r}function Wbr(e,t){return e[e.length-1]??t}function Kbr(e,t=vL){let r=[];if(t===vL)return[...new Set(e)];for(let n of e){let i;i=t(r,n),!i&&r.push(n)}return r}function zA(e,...t){let r,n,i=[];r=typeof t[0]=="object"?t[0]:void 0,n=typeof t[0]=="function"?t[0]:rbr;for(let a of e){let s;s=n(i,a,r),!s&&i.push(a)}return i}function yp(e){return Array.isArray(e)}function yv(e,t){let r={};if(t?.deep!==!0)return{...e};if(!_L(e))return e;yp(e)&&(r=[]);for(let n in e){let i=e[n];if(_L(i)){r[n]=yv(i,t);continue}r[n]=i}return r}function ghe(e,t,r){return qL(r,t,wv(e,t))}function Ihe(e,t){switch(typeof t){case"number":case"symbol":delete e[t];break;case"string":if(t.includes(".")){let r,n,i;if(n=t.replace(_he,"$1.[").split("."),i=n[n.length-1].replace(SL,""),r=Rhe(e,n),r instanceof Error)return;delete r[i];return}delete e[t];break}}function KA(e,...t){let r,n,i;if(r=typeof t[0]=="object"?t[0]:void 0,n=typeof t[0]=="function"?t[0]:dbr,i=t[1],r){for(let a of r)Ihe(e,a);return}for(let a in e){let s=e[a];if(n(e,a,s,r)){delete e[a];continue}i?.deep&&ZA(s)&&KA(s,n)}}function fot(e,t,r=[]){let n={};for(let i in e){let a=e[i];if(hot(a,t)){n={...n,...fot(a,t,r.concat(i))};continue}n[r.concat(i).join(".")]=e[i]}return n}function wv(e,t,r){switch(typeof t){case"number":case"symbol":return e[t];case"string":if(t.includes(".")){let n,i,a;return n=t.replace(_he,"$1.[").split("."),i=n[n.length-1].replace(SL,""),a=Rhe(e,n),a instanceof Error?r:a[i]}return t in e?e[t]:r}}function Rhe(e,t,r=!1){let n=e;for(let i=0;i<t.length;i++){let a;if(!(i>=t.length-1))switch(a=t[i],a=a.replace(SL,""),typeof n[a]){case"object":if(n[a]===null)return new Error("The target value is null.");n=n[a];continue;case"undefined":if(r){n[a]=t[i+1].includes("[")?[]:{},n=n[a];continue}return new Error("The target type is undefined.");default:return new Error("The target type is nor undefined nor object.")}}return n}function YA(e,...t){let r=yv(e,{deep:!0});for(let n of t)for(let i in n){let a,s;if(a=wv(r,i,{}),s=n[i],yp(s)&&(a=wv(r,i,[])),_L(s)){r[i]=YA(a,yv(s,{deep:!0}));continue}r[i]=s}return r}function NL(e,...t){let r,n,i,a;return r=typeof t[0]=="object"?t[0]:void 0,n=typeof t[0]=="function"?t[0]:hbr,i=t[1],a=yv(e,i),typeof r=="object"&&KA(a,r),typeof r>"u"&&KA(a,n,i),a}function dot(e,...t){let r,n,i,a;if(r=typeof t[0]=="object"?t[0]:void 0,n=typeof t[0]=="function"?t[0]:mbr,i=t[1],a={},r){for(let s of r)qL(a,s,wv(e,s));return a}for(let s in e){let o=e[s];if(n(a,s,o,r)){a[s]=o;continue}i?.deep&&ZA(o)&&KA(o,n)}return a}function qL(e,t,r){switch(typeof t){case"number":case"symbol":e[t]=r;break;case"string":if(t.includes(".")){let n,i,a;if(n=t.replace(_he,"$1.[").split("."),a=n[n.length-1].replace(SL,""),i=Rhe(e,n,!0),i instanceof Error)return i;i[a]=r;break}e[t]=r;break}}function wL(e,t){let r;return r=Symbol(),wv(e,t,r)!==r}function HA(e){return e===null||Array.isArray(e)?!1:typeof e=="object"}function _L(e){return yp(e)||ZA(e)}function hot(e,t){return t?.array&&yp(e)?!0:ZA(e)}function Ybr(e){return Object.keys(e).length>0}function Jbr(e){return Object.values(e).length>0}function ZA(e){return e===null||typeof e!="object"?!1:Object.getPrototypeOf(e)===Object.prototype}var mot=class{name;_clear;_get;_has;_remove;_set;constructor(e,t,r,n,i,a){this.name=e,this._clear=t,this._get=r,this._has=n,this._remove=i,this._set=a}clear_(e){if(e instanceof Error)return e;Pt.debug(this.name,"get","The storage has been cleared.")}clear(){return this.clear_(this._clear())}get_(e,t){return t instanceof Error||Pt.debug(this.name,"get",`The item ${e} has been retrieved.`,t),t}get(e){return this.get_(e,this._get(e))}remove_(e,t){if(t instanceof Error)return t;Pt.debug(this.name,"remove",`The item ${e} has been removed.`)}remove__(e,t,r){if(!(r instanceof Error)){for(let n of t)Ihe(r,n),Pt.debug(this.name,"remove",`The key ${String(n)} has been removed from the item ${e}.`,t);return r}}remove___(e,t,r){if(r instanceof Error)return r;Pt.debug(this.name,"remove",`The item ${e} has been set.`,t)}remove(e,t){let r;if(typeof t>"u")return this.remove_(e,this._remove(e));if(r=this.remove__(e,t,this._get(e)),!(typeof r>"u"))return this.remove___(e,r,this._set(e,r))}set_(e,t,r){if(t instanceof Error)return t;if(r instanceof Error)return r;Pt.debug(this.name,"set",`The item ${e} has been set.`,t)}set__(e,t,r){if(r instanceof Error)return dot(e,t);for(let n of t)ghe(e,n,r);return r}set(e,t,r){let n;return typeof r>"u"?this.set_(e,t,this._set(e,t)):(n=this.set__(t,r,this._get(e)),n instanceof Error?n:this.set_(e,t,this._set(e,n)))}copy_(e,t,r,n){if(!(n instanceof Error)){Pt.debug(this.name,"get",`The item ${e} has been retrieved.`,n),typeof r>"u"&&(r=Object.keys(n));for(let i of r)wL(n,i)&&(ghe(n,i,t),Pt.debug(this.name,"get",`The ${e} ${String(i)} property has been copied.`,t))}}copy(e,t,r){return this.copy_(e,t,r,this._get(e))}has_(e,t){if(t instanceof Error)return!1;if(typeof e>"u")return!0;for(let r of e)if(!wL(t,r))return!1;return!0}has(e,t){let r;return r=this._has(e),r instanceof Error||!r?!1:this.has_(t,this._get(e))}},got=class extends mot{constructor(e,t,r,n,i,a){super(e,vv(t),vv(r),vv(n),vv(i),vv(a))}clear(){return super.clear()}get(e){return super.get(e)}remove(e,t){return super.remove(e,t)}set(e,t,r){return super.set(e,t,r)}copy(e,t,r){return super.copy(e,t,r)}has(e,t){return super.has(e,t)}},Fhe=new got("CORE_MEMORY",()=>o8.clear(),e=>o8.has(e)?o8.get(e):new Error(`The item "${e}" does not exist in the MemoryStorage.`),e=>o8.has(e),e=>o8.delete(e),(e,t)=>o8.set(e,t));function Xbr(e){return e instanceof Error}function vot(e){return!(e instanceof Error)}var LL=class{listeners;maxListeners;constructor(){this.listeners=[],this.maxListeners=ibr}countListeners(e,t,r){return this.getListeners(e,t,r).length}emit(e,...t){let r;r=this.listeners.filter(n=>n.name===e),Pt.verbose("EventEmitter","emit","The listeners have been filtered.",[e],r);for(let n of r)Ba(()=>n.callback(...t)),Pt.verbose("EventEmitter","emit","The listener has been called.",n,t),n.options?.once&&(this.listeners=this.listeners.filter(i=>i!==n),Pt.verbose("EventEmitter","emit","The listener has been removed.",n));return!0}getEventNames(){return this.listeners.map(e=>e.name)}getListeners(e,t,r){return this.listeners.filter(n=>[typeof e=="string"?n.name===e:!0,typeof t=="function"?n.callback===t:!0,typeof r?.once=="boolean"?!!n.options?.once===r.once:!0,typeof r?.prepend=="boolean"?!!n.options?.prepend===r.prepend:!0].every(Boolean))}getMaxListeners(){return this.maxListeners}hasListeners(e,t,r){return this.countListeners(e,t,r)>0}off(e,t,r){return this.listeners=zA(this.listeners,(n,i)=>[typeof e=="string"?i.name===e:!0,typeof t=="function"?i.callback===t:!0,typeof r?.once=="boolean"?!!i.options?.once===r.once:!0,typeof r?.prepend=="boolean"?!!i.options?.prepend===r.prepend:!0].every(Boolean)),Pt.verbose("EventEmitter","removeListener","The matching listeners have been removed.",[e,t,r]),this}on(e,t,r){let n,i;return n=this.countListeners(e,t,r),i={callback:t,name:e,options:r},n>=this.maxListeners?(Pt.warn("EventEmitter","addListener","The maximum number of listeners has been reached.",i,[n,this.maxListeners]),this):r?.prepend?(this.listeners.unshift(i),Pt.verbose("EventEmitter","addListener","The listener has been unshifted.",i),this):(this.listeners.push(i),Pt.verbose("EventEmitter","addListener","The listener has been pushed.",i),this)}once(e,t,r){return this.on(e,t,{...r,once:!0})}prepend(e,t,r){return this.on(e,t,{...r,prepend:!0})}setListeners(e){return this.listeners=e,Pt.verbose("EventEmitter","setListeners","The listeners have been set.",e),this}setMaxListeners(e){return this.maxListeners=e,Pt.verbose("EventEmitter","setMaxListeners",`The maximum number of listeners has been set to ${e}.`),this}},Qbr=class extends LL{storage;storageKey;theme;constructor(e){super(),this.storage=e?.storage?.instance??Fhe,this.storageKey=e?.storage?.key??Ist,this.theme=e?.theme??tbr,this.registerThemeEventListener()}async initialize(){let e;return e=await this.storage.copy(this.storageKey,this,["theme"]),e instanceof Error?!1:(this.setTheme(this.theme),!0)}toggleTheme(){switch(this.theme){case"dark":return this.setTheme("light");case"light":return this.setTheme("dark");case"system":return this.setTheme(this.themeByPrefersColorScheme==="dark"?"light":"dark");default:return this}}setTheme(e){switch(this.theme=e,Pt.verbose("Appearence","setTheme",`The theme has been set to ${e}.`),e){case"dark":case"light":this.emit("change-theme",e);break;case"system":this.emit("change-theme",this.themeByPrefersColorScheme);break;default:this.emit("change-theme",e);break}return this}async store(){return vot(await this.storage.set(this.storageKey,this,["theme"]))}registerThemeEventListener(){let e;if(WA())return Pt.warn("Appearence","registerThemeEventListener","The window is not defined.");if(typeof window.matchMedia>"u")return Pt.warn("Appearence","registerThemeEventListener","The window.matchMedia function is not defined.");if(e=window.matchMedia("(prefers-color-scheme: dark)"),typeof e.addEventListener!="function")return Pt.warn("Appearence","registerThemeEventListener","The window.matchMedia.addEventListener function is not defined.");e.addEventListener("change",t=>this.isThemeSystem&&this.setTheme("system"))}get themeByPrefersColorScheme(){return WA()?(Pt.warn("Appearence","themeByPrefersColorScheme","window is not defined."),"light"):typeof window.matchMedia>"u"?(Pt.warn("Appearence","themeByPrefersColorScheme","window.matchMedia is not defined."),"light"):window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}get isThemeDark(){switch(this.theme){case"dark":return!0;case"light":return!1;case"system":return this.themeByPrefersColorScheme==="dark";default:return!1}}get isThemeLight(){switch(this.theme){case"dark":return!1;case"light":return!0;case"system":return this.themeByPrefersColorScheme==="light";default:return!1}}get isThemeSystem(){return this.theme==="system"}},yot=_st();function jhe(e,t){let r;return r=Ba(()=>(0,yot.parse)(e,t)),r instanceof Error?{}:r}function bot(e,t,r){return Ba(()=>(0,yot.serialize)(e,t,r))}var Zbr=e=>()=>[...e.entries()].map(([t,r])=>[t,r].join("=")).join(";"),ewr=(e,t=jhe)=>r=>{let n;if(n=t(r),!(n instanceof Error))for(let i in n){if(r.includes("Expires=Thu, 01 Jan 1970 00:00:00 GMT")){e.delete(i);continue}e.set(i,n[i])}},Nhe=class{size;type;constructor(e,t){this.size=0,this.type=t?.type??""}async arrayBuffer(){return new ArrayBuffer(0)}slice(e,t,r){return this}stream(){return new ReadableStream}async text(){return""}},wot=class extends Nhe{lastModified;name;webkitRelativePath;constructor(e,t,r){super(e,r),this.lastModified=r?.lastModified??0,this.name=t??"",this.webkitRelativePath=""}},twr=e=>({clear:()=>e.clear(),getItem:t=>{let r;return r=e.get(t),typeof r>"u"?null:r},key:t=>{let r;return r=[...e.keys()][t],typeof r>"u"?null:r},removeItem:t=>{e.delete(t)},setItem:(t,r)=>{e.set(t,r)},get length(){return e.size}}),_ot=Object.freeze({decode:()=>"",encoding:"",fatal:!1,ignoreBOM:!1}),xot=Object.freeze({encode:()=>new Uint8Array,encodeInto:()=>({read:0,written:0}),encoding:""});async function Ga(e,t=VA.functions.tcp.log){try{return await e()}catch(r){return t&&console.error(r),VA.functions.tcp.onCatch(r,t),r}}function Eot(e,t){return kot().decode(e,t)}function Sot(e){return Aot().encode(e)}function kot(){return sot()?new TextDecoder:_ot}function Aot(){return oot()?new TextEncoder:xot}var qhe=class vhe{_arrayBuffer;blob;id;_text;constructor(...t){let r,n;if(r=t[0],n=t[0],typeof r.arrayBuffer=="function"){this.blob=r,this.id=bL();return}this._arrayBuffer=new Uint8Array(Object.values(n.uInt8Array)).buffer,this.blob=new Blob([this._arrayBuffer],{type:n.type}),this.id=n.id,this._text=Eot(new Uint8Array(Object.values(n.uInt8Array)))}async resolveArrayBuffer(){let t;t=await Ga(()=>this.blob.arrayBuffer()),!(t instanceof Error)&&(this._arrayBuffer=t)}async resolveText(){let t;t=await Ga(()=>this.blob.text()),!(t instanceof Error)&&(this._text=t)}slice(t,r,n){return this.blob.slice(t,r,n)}stream(){return this.blob.stream()}toJSON(){return{id:this.id,size:this.size,type:this.type,uInt8Array:this.uInt8Array}}get arrayBuffer(){return this._arrayBuffer??new ArrayBuffer(0)}get size(){return this.blob.size}get text(){return this._text??""}get type(){return this.blob.type||"application/octet-stream"}get uInt8Array(){return this._arrayBuffer?new Uint8Array(this._arrayBuffer):this._text?Sot(this._text):new Uint8Array}static get EMPTY(){return TL()?new vhe(new Nhe):new vhe(new Blob)}},Tot=class yhe extends qhe{file;constructor(...t){super(t[0]);let r,n;if(r=t[0],n=t[0],GA()||t[0]instanceof File){this.file=r;return}this.file=new File([this.blob],n.name,{type:n.type})}toJSON(){return{...super.toJSON(),lastModified:this.lastModified,name:this.name,webkitRelativePath:this.webkitRelativePath}}get lastModified(){return this.file.lastModified}get lastModifiedDate(){return new Date(this.file.lastModified)}get name(){return this.file.name}get webkitRelativePath(){return this.file.webkitRelativePath}static get EMPTY(){return GA()?new yhe(new wot([],"")):new yhe(new File([],""))}};function u8(e){return(...t)=>Ga(()=>e(...t))}var rwr=class extends mot{constructor(e,t,r,n,i,a){super(e,u8(t),u8(r),u8(n),u8(i),u8(a))}async clear(){return this.clear_(await this._clear())}async get(e){return this.get_(e,await this._get(e))}async remove(e,t){let r;return typeof t>"u"?this.remove_(e,await this._remove(e)):(r=this.remove__(e,t,await this._get(e)),typeof r>"u"?r:this.remove___(e,r,await this._set(e,r)))}async set(e,t,r){let n;return typeof r>"u"?this.set_(e,t,await this._set(e,t)):(n=this.set__(t,r,await this._get(e)),n instanceof Error?n:this.set_(e,t,await this._set(e,n)))}async copy(e,t,r){return this.copy_(e,t,r,await this._get(e))}async has(e,t){let r;return r=await this._has(e),r instanceof Error||!r?!1:this.has_(t,await this._get(e))}},nwr=class{name;separator=Tst;_get;_set;constructor(e,t,r,n=Tst){this.name=e,this.separator=n,this._get=vv(t),this._set=vv(r)}clear(e={}){let t;if(t=this.deserialize(),t instanceof Error)return t;for(let r in t){let n,i;if(n=this.serialize(r,"",{...e,expires:new Date(0)}),n instanceof Error)return n;if(i=this._set(n),i instanceof Error)return i;Pt.debug(this.name,"remove",`The cookie ${r} has been removed.`)}}get(e){let t,r;if(t=this.deserialize(),t instanceof Error)return t;Pt.debug(this.name,"get","The cookies have been parsed.",t),r={};for(let n in t){if(!n.startsWith(e+this.separator)){Pt.debug(this.name,"get",`The cookie ${n} has been skipped.`);continue}qL(r,this.toCookieItemKey(e,n),t[n]),Pt.debug(this.name,"get",`The cookie ${n} has been set to the item.`,r)}return r}remove(e,t={},r){if(typeof r>"u"){let n;if(n=this.deserialize(),n instanceof Error)return n;r=[];for(let i in n){if(!i.startsWith(e)){Pt.debug(this.name,"get",`The key ${i} has been skipped.`);continue}r.push(this.toCookieItemKey(e,i)),Pt.debug(this.name,"get",`The key ${i} has been pushed to the keys.`,r)}}for(let n of r){let i,a;if(i=this.serialize(e,n,"",{...t,expires:new Date(0)}),i instanceof Error)return i;if(a=this._set(i),a instanceof Error)return a;Pt.debug(this.name,"remove",`The key ${String(n)} has been removed.`)}}set(e,t,r={},n){typeof n>"u"&&(n=Object.keys(t),Pt.debug(this.name,"set","The keys have been derived from the item.",n));for(let i of n){let a,s;if(a=this.serialize(e,i,t[i],r),a instanceof Error)return a;if(s=this._set(a),s instanceof Error)return s;Pt.debug(this.name,"set",`The key ${String(i)} has been set.`,this._get(),r)}}copy(e,t,r){let n;if(n=this.deserialize(),n instanceof Error)return n;if(Pt.debug(this.name,"copy","The cookies have been parsed.",n),typeof r>"u"){r=[];for(let i in n){if(!i.startsWith(e)){Pt.debug(this.name,"parse",`The key ${i} has been skipped.`);continue}r.push(this.toCookieItemKey(e,i)),Pt.debug(this.name,"parse",`The key ${i} has been pushed to the keys.`,r)}}for(let i of r)t[i]=n[this.toDocumentCookieName(e,i)],Pt.debug(this.name,"parse",`The cookie ${String(i)} has been copied to the target.`,t)}has(e,t){let r;if(r=this.deserialize(),r instanceof Error)return!1;if(Pt.debug(this.name,"get","The cookies have been parsed.",r),typeof t>"u"){for(let n in r)if(n.startsWith(e+this.separator))return!0;return!1}for(let n of t)if(!(this.toDocumentCookieName(e,n)in r))return!1;return!0}deserialize(e){let t;return t=this._get(),t instanceof Error?t:jhe(t,e)}serialize(e,...t){let r,n,i;return r=HA(t[1])?void 0:t[0],n=HA(t[1])?t[0]:t[1],i=HA(t[1])?t[1]:t[2],bot(typeof r>"u"?e:this.toDocumentCookieName(e,r),String(n),i)}toCookieItemKey(e,t){return String(t).replace(e+this.separator,"")}toDocumentCookieName(e,t){return e+this.separator+String(t)}};async function Oot(...e){for(let t of e)await Ga(()=>t())}async function Dot(...e){let t;for(let r of e)if(t=await Ga(()=>r()),t instanceof Error||(t=!!t,!t))return!1;return!0}async function iwr(...e){return Oot(...e)}async function awr(...e){return Dot(...e)}function swr(e){return e instanceof Promise}function Cot(e){return HA(e)&&typeof e.then=="function"}function owr(e){return!(e instanceof Promise)}var uwr=class{instance;reason;state;value;_reject;_resolve;constructor(){this.state="pending",this.instance=new Promise((e,t)=>{this._reject=t,this._resolve=e})}reject=e=>{this._reject(e),this.reason=e,this.state="rejected"};resolve=e=>{if(this._resolve(e),this.state="fulfilled",Cot(e)){e.then(t=>{this.value=t});return}this.value=e};catch(e){return Ga(()=>this.instance.catch(e),!1),this}finally(e){return Ga(()=>this.instance.finally(e),!1),this}then(e,t){return Ga(()=>this.instance.then(e,t),!1),this}get isFulfilled(){return this.state==="fulfilled"}get isPending(){return this.state==="pending"}get isRejected(){return this.state==="rejected"}get isResolved(){return this.isFulfilled}},cwr=class{static get(e){return yL(e)}static has(e){return Jst(e)}static get isBlobDefined(){return AL()}static get isBlobNotDefined(){return TL()}static get isDevelopment(){return tot()}static get isNotDevelopment(){return rot()}static get isDocumentDefined(){return Xst()}static get isDocumentNotDefined(){return Qst()}static get isFetchDefined(){return khe()}static get isFetchNotDefined(){return Ahe()}static get isFileDefined(){return OL()}static get isFileNotDefined(){return GA()}static get isFormDataDefined(){return DL()}static get isFormDataNotDefined(){return The()}static get isJestDefined(){return Zst()}static get isJestNotDefined(){return eot()}static get isProduction(){return Ohe()}static get isNotProduction(){return not()}static get isTest(){return Dhe()}static get isNotTest(){return CL()}static get isProcessDefined(){return iot()}static get isProcessNotDefined(){return aot()}static get isWindowDefined(){return PL()}static get isWindowNotDefined(){return WA()}static get NODE_ENV(){return _v()}},l8=class bhe{body;bodyUsed;data;headers;ok;redirected;response;status;statusText;type;url;constructor(t,r){this.body=t.body,this.bodyUsed=t.bodyUsed,this.data=r,this.headers=t.headers,this.ok=t.ok,this.redirected=t.redirected,this.response=t,this.status=t.status,this.statusText=t.statusText,this.type=t.type,this.url=t.url}async decode(t){switch(t?.type){case"array-buffer":return this.decodeArrayBuffer();case"blob":return this.decodeBlob();case"form-data":return this.decodeFormData();case"json":return this.decodeJSON(t.json);case"text":return this.decodeText();case"url-search-params":return this.decodeURLSearchParams()}switch(!0){case(this.ContentType.startsWith("application/")&&this.ContentType.includes("octet-stream")):return this.decodeBlob();case(this.ContentType.startsWith("application/")&&this.ContentType.includes("json")):return this.decodeJSON(t?.json);case(this.ContentType.startsWith("application/")&&this.ContentType.includes("x-www-form-urlencoded")):return this.decodeURLSearchParams();case(this.ContentType.startsWith("multipart/")&&this.ContentType.includes("form-data")):return this.decodeFormData();case this.ContentType.startsWith("text/"):return this.decodeText();default:return this.decodeArrayBuffer()}}async decodeArrayBuffer(){let t;if(t=await Ga(()=>this.arrayBuffer()),t instanceof Error)return this.setData(new ArrayBuffer(0));this.setData(t),Pt.debug("FetchResponse","parseArrayBuffer","The data has been parsed as ArrayBuffer.",t)}async decodeBlob(){let t;if(t=await Ga(()=>this.blob()),t instanceof Error)return this.setData(new Blob);this.setData(t),Pt.debug("FetchResponse","parseBlob","The data has been parsed as Blob.",t)}async decodeFormData(){let t;if(t=await Ga(()=>this.formData()),t instanceof Error)return this.setData(new FormData);this.setData(t),Pt.debug("FetchResponse","parseFormData","The data has been parsed as FormData.",[...t.entries()])}async decodeJSON(t){let r,n;if(r=await Ga(()=>this.text()),r instanceof Error)return this.setData({});if(n=IL(r,t),n instanceof Error)return this.setData({});this.setData(n),Pt.debug("FetchResponse","parseJSON","The data has been parsed as JSON.",n)}async decodeText(){let t;if(t=await Ga(()=>this.text()),t instanceof Error)return this.setData("");this.setData(t),Pt.debug("FetchResponse","parseText","The data has been parsed as text.",[t])}async decodeURLSearchParams(){let t;if(t=await Ga(()=>this.text()),t instanceof Error)return this.setData(new URLSearchParams);this.setData(new URLSearchParams(t)),Pt.debug("FetchResponse","parseURLSearchParams","The data has been parsed as URLSearchParams.",new URLSearchParams(t))}arrayBuffer(){return this.response.arrayBuffer()}blob(){return this.response.blob()}clone(){return this.response.clone()}formData(){return this.response.formData()}json(){return this.response.json()}text(){return this.response.text()}setData(t){this.data=t}static from(...t){return t[0]instanceof Response?new bhe(t[0]):new bhe(new Response,t[0])}get ContentType(){return this.headers.get("content-type")??""}},JA=class MA extends Error{response;constructor(t,r){super(t.message),this.name=t.name,this.stack=t.stack,this.response=r}static from(...t){switch(!0){case(t[0]instanceof Error&&t[1]instanceof l8):return new MA(t[0],t[1]);case t[0]instanceof Error:return new MA(t[0],new l8(new Response));case t[0]instanceof l8:return new MA(new Error,t[0]);default:return new MA(new Error,new l8(new Response))}}},Uo=new jL("CORE_UTIL");function Pot(e){if(Iot(e),e.length===0)return"."}function Iot(e){if(typeof e!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(e)}`)}function Lhe(...e){let t,r,n;if(t=typeof e[0]=="string"?e:e[0],r=typeof e[1]=="object"?e[1]:void 0,t.length===0)return".";for(let i=0,a=t.length;i<a;++i){let s;if(s=t[i],Iot(s),s.length>0){if(!n){n=s;continue}n+=`/${s}`}}return n?r?.windows?fwr(n):pwr(n):"."}function lwr(...e){return Lhe(e,{windows:!0})}function pwr(e){Pot(e);let t=fhe(e.charCodeAt(0)),r=fhe(e.charCodeAt(e.length-1));return e=Rot(e,!t,"/",fhe),e.length===0&&!t&&(e="."),e.length>0&&r&&(e+="/"),t?`/${e}`:e}function fwr(e){Pot(e);let t=e.length,r=0,n,i=!1,a=e.charCodeAt(0);if(t>1)if(Y1(a))if(i=!0,Y1(e.charCodeAt(1))){let o=2,c=o;for(;o<t&&!Y1(e.charCodeAt(o));++o);if(o<t&&o!==c){let p=e.slice(c,o);for(c=o;o<t&&Y1(e.charCodeAt(o));++o);if(o<t&&o!==c){for(c=o;o<t&&!Y1(e.charCodeAt(o));++o);if(o===t)return`\\\\${p}\\${e.slice(c)}\\`;o!==c&&(n=`\\\\${p}\\${e.slice(c,o)}`,r=o)}}}else r=1;else dwr(a)&&e.charCodeAt(1)===vbr&&(n=e.slice(0,2),r=2,t>2&&Y1(e.charCodeAt(2))&&(i=!0,r=3));else if(Y1(a))return"\\";let s;return r<t?s=Rot(e.slice(r),!i,"\\",Y1):s="",s.length===0&&!i&&(s="."),s.length>0&&Y1(e.charCodeAt(t-1))&&(s+="\\"),n===void 0?i?s.length>0?`\\${s}`:"\\":s.length>0?s:"":i?s.length>0?`${n}\\${s}`:`${n}\\`:s.length>0?n+s:n}function Rot(e,t,r,n){let i="",a=0,s=-1,o=0,c;for(let p=0,f=e.length;p<=f;++p){if(p<f)c=e.charCodeAt(p);else{if(n(c))break;c=xhe}if(n(c)){if(!(s===p-1||o===1))if(s!==p-1&&o===2){if(i.length<2||a!==2||i.charCodeAt(i.length-1)!==phe||i.charCodeAt(i.length-2)!==phe){if(i.length>2){let d=i.lastIndexOf(r);d===-1?(i="",a=0):(i=i.slice(0,d),a=i.length-1-i.lastIndexOf(r)),s=p,o=0;continue}else if(i.length===2||i.length===1){i="",a=0,s=p,o=0;continue}}t&&(i.length>0?i+=`${r}..`:i="..",a=2)}else i.length>0?i+=r+e.slice(s+1,p):i=e.slice(s+1,p),a=p-s-1;s=p,o=0}else c===phe&&o!==-1?++o:o=-1}return i}function fhe(e){return e===xhe}function Y1(e){return e===xhe||e===gbr}function dwr(e){return e>=ybr&&e<=bbr||e>=wbr&&e<=_br}function hwr(e,t,r){let n;return $L(e,r)?e:(n=new URL(e,r),n.search=$he({...XA(n.searchParams),...XA(t)}).toString(),typeof e=="string"?n.toString():n)}function Fot(e,...t){let r;if($L(e))return Lhe(e.toString(),...t);r=new URL(e);for(let n of t)r=new URL(n,r);return typeof e=="string"?r.toString():r}function XA(e,t="object"){switch(t){case"array":return[...new URLSearchParams(e).entries()];case"object":{let r={};for(let[n,i]of new URLSearchParams(e).entries())r[n]=i;return r}case"string":return new URLSearchParams(e).toString()}}function mwr(e){let t;return $L(e)?e:(t=new URL(e),t.search="",typeof e=="string"?t.toString():t)}function $he(e){switch(typeof e){case"string":return new URLSearchParams(e);case"object":{let t={};if(e instanceof URLSearchParams)return e;if(yp(e))return new URLSearchParams(e);for(let[r,n]of Object.entries(e))switch(typeof n){case"bigint":case"boolean":case"number":t[r]=n.toString();continue;case"function":case"symbol":case"undefined":continue;case"object":yp(n)&&(t[r]=n.join(","));continue;case"string":t[r]=n;continue}return new URLSearchParams(t)}default:return new URLSearchParams}}function jot(e,t){let r;return e instanceof URL?!0:(r=Ba(()=>new URL(String(e),t),!1),r instanceof URL)}function $L(e,t){return!jot(e,t)}function Not(e){return QA(e).length}function gwr(e,t){if(!(typeof e.headers>"u")){if(e.headers instanceof Headers)return e.headers.delete(t);if(yp(e.headers)){e.headers=e.headers.filter(r=>r[0]!==t);return}delete e.headers[t]}}function qot(e,t){let r;if(typeof e.headers>"u")return null;if(e.headers instanceof Headers)return e.headers.get(t);if(yp(e.headers)){let n;return n=e.headers.find(i=>i[0]===t),n?n[1]:null}return r=e.headers[t],r||null}function QA(e){return typeof e.headers>"u"?[]:e.headers instanceof Headers?[...e.headers.entries()]:yp(e.headers)?e.headers:Object.entries(e.headers)}async function Bhe(){return AL()&&khe()&&OL()&&DL()?new Error("The Fetch API is already defined."):CL()&&PL()?new Error("The Fetch API is already defined in the browser."):Ga(()=>new Function("return import('node-fetch')")())}function Lot(e,...t){let r;r=YA(e,...t),r.headers=new Headers;for(let[n,i]of QA(e))xL(r,n,i);for(let n of t)for(let[i,a]of QA(n))xL(r,i,a);return Not(r)<=0&&delete r.headers,r}function xL(e,t,r){if(typeof e.headers>"u"){e.headers=new Headers,e.headers.set(t,r);return}if(e.headers instanceof Headers)return e.headers.set(t,r);if(yp(e.headers)){e.headers=e.headers.filter(n=>n[0]!==t),e.headers.push([t,r]);return}e.headers[t]=r}function UA(e,t,r){Mot(e,t)||xL(e,t,r)}async function Mhe(e){e instanceof Error||CL()&&PL()||(TL()&&(global.Blob=e.Blob,Uo.debug("useNodeFetch","The Blob object has been polyfilled with node-fetch.")),Ahe()&&(global.fetch=e.default,global.Headers=e.Headers,global.Request=e.Request,global.Response=e.Response,Uo.debug("useNodeFetch","The Fetch API has been polyfilled with node-fetch.")),GA()&&(global.File=e.File,Uo.debug("useNodeFetch","The File object has been polyfilled with node-fetch.")),The()&&(global.FormData=e.FormData,Uo.debug("useNodeFetch","The FormData object has been polyfilled with node-fetch.")))}function vwr(e,t){let r;return r=NL(e,["body"]),e.body===void 0?r:e.body instanceof FormData?(r.body=FL(e.body,t?.deserializeFormData),r):e.body instanceof URLSearchParams?(r.body=XA(e.body,t?.deserializeURLSearchParamsType),r):(r.body=e.body,r)}function $ot(e,t){let r;return r=NL(e,["body"]),e.body===void 0?r:(e.headers&&(r.headers=QA(e)),e.body instanceof FormData?(r.body=FL(e.body,t?.deserializeFormData),r):e.body instanceof URLSearchParams?(r.body=XA(e.body,t?.deserializeURLSearchParamsType),r):typeof e.body=="string"&&RL(e.body)?(r.body=IL(e.body,t?.decodeJSON),r):(r.body=e.body,r))}function Bot(e){let t;if(t=NL(e,["body"]),e.body===void 0)return t;if(e.body instanceof ArrayBuffer||e.body instanceof Blob||e.body instanceof Uint8Array)return t.body=e.body,UA(t,"content-type","application/octet-stream"),t;if(e.body instanceof FormData)return t.body=e.body,t;if(e.body instanceof URLSearchParams)return t.body=e.body,UA(t,"content-type","application/x-www-form-urlencoded"),t;switch(typeof e.body){case"bigint":case"boolean":case"function":case"number":case"string":case"symbol":t.body=e.body.toString(),UA(t,"content-type","text/plain");break;case"object":{let r;if(r=Che(e.body,typeof e.encode=="object"?e.encode.json:void 0),r instanceof Error)break;t.body=r,UA(t,"content-type","application/json");break}}return t}function Mot(e,t){return qot(e,t)!==null}var Uot=class Eh{static async send(t,r={}){let n,i;return await Mhe(await Bhe()),n=Bot(r),Pt.debug("Fetch","handle","The request init has been parsed.",$ot(n,r.logNativeOptions)),i=await Ga(async()=>new l8(await fetch(t,n))),i instanceof Error?JA.from(i):(Pt.debug("Fetch","handle","The request has been sent.",t),r.decode!==!1&&await Ga(()=>i.decode(typeof r.decode=="object"?r.decode:void 0)),i.ok===!0?i:JA.from(i))}static async connect(t,r={}){return Eh.send(t,{...r,method:"CONNECT"})}static async delete(t,r,n={}){return Eh.send(t,{...n,body:r,method:"DELETE"})}static async get(t,r={}){return Eh.send(t,{...r,method:"GET"})}static async head(t,r={}){return Eh.send(t,{...r,method:"HEAD"})}static async options(t,r={}){return Eh.send(t,{...r,method:"OPTIONS"})}static async patch(t,r,n={}){return Eh.send(t,{...n,body:r,method:"PATCH"})}static async post(t,r,n={}){return Eh.send(t,{...n,body:r,method:"POST"})}static async put(t,r,n={}){return Eh.send(t,{...n,body:r,method:"PUT"})}static async trace(t,r={}){return Eh.send(t,{...r,method:"TRACE"})}};function c8(e,t){return Ba(()=>e()),t}var gv=class Vf{data;transformer;constructor(t=xbr){this.data=new Map,this.transformer=t}get(...t){return this.data.get(this.transformer(t))??Vf.IDLE}idle(...t){this.set(t,Vf.IDLE)}pending(...t){this.set(t,Vf.PENDING)}success(...t){this.set(t,Vf.SUCCESS)}error(...t){this.set(t,Vf.ERROR)}set(t,r){this.data.set(this.transformer(t),r),Pt.debug("Status","set",`The status for the key ${this.transformer(t)} has been set to ${r}.`)}clear(){this.data.clear(),Pt.debug("Status","clear",`Every status has been set to ${Vf.IDLE}.`)}isIdle(...t){return this.get(...t)===Vf.IDLE}isPending(...t){return this.get(...t)===Vf.PENDING}isSuccess(...t){return this.get(...t)===Vf.SUCCESS}isError(...t){return this.get(...t)===Vf.ERROR}isEveryIdle(...t){return t.every(r=>this.isIdle(...r))}isEveryPending(...t){return t.every(r=>this.isPending(...r))}isEverySuccess(...t){return t.every(r=>this.isSuccess(...r))}isEveryError(...t){return t.every(r=>this.isError(...r))}areSomeIdle(...t){return t.some(r=>this.isIdle(...r))}areSomePending(...t){return t.some(r=>this.isPending(...r))}areSomeSuccess(...t){return t.some(r=>this.isSuccess(...r))}areSomeError(...t){return t.some(r=>this.isError(...r))}static get IDLE(){return"IDLE"}static get PENDING(){return"PENDING"}static get SUCCESS(){return"SUCCESS"}static get ERROR(){return"ERROR"}},zot=class{baseURL;config;status;constructor(e="",t=dhe()){this.baseURL=e,this.config=t,this.status=new gv}async send(e,t,r,n=dhe()){let i,a,s,o,c;return this.setCallStatus(e,t,n,gv.PENDING),await Mhe(await Bhe()),i=await this.transformBody(e,t,r,n),a=await this.transformQueryParameters(e,t,r,n),o=await this.handlePending(e,t,i,n),o?(s=new URL(Fot(this.baseURL,t)),s.search=a,c=await Uot.send(s.toString(),{body:i,method:e,...Lot(this.config,n)}),c instanceof Error?(o=await this.handleError(e,t,i,n,c),c8(o?()=>this.setCallStatus(e,t,n,gv.SUCCESS):()=>this.setCallStatus(e,t,n,gv.ERROR),c)):(o=await this.handleSuccess(e,t,i,n,c),o?c8(()=>this.setCallStatus(e,t,n,gv.SUCCESS),c):c8(()=>this.setCallStatus(e,t,n,gv.ERROR),JA.from(c)))):c8(()=>this.setCallStatus(e,t,n,gv.ERROR),JA.from())}async connect(e,t){return this.send("CONNECT",e,void 0,t)}async delete(e,t){return this.send("DELETE",e,void 0,t)}async get(e,t){return this.send("GET",e,void 0,t)}async head(e,t){return this.send("HEAD",e,void 0,t)}async options(e,t){return this.send("OPTIONS",e,void 0,t)}async patch(e,t,r){return this.send("PATCH",e,t,r)}async post(e,t,r){return this.send("POST",e,t,r)}async put(e,t,r){return this.send("PUT",e,t,r)}async trace(e,t){return this.send("TRACE",e,void 0,t)}async write(e,t,r,n){switch(e){case"create":return this.post(t,r,n);case"update":return this.put(t,r,n)}}async transformBody(e,t,r,n){return r}async transformQueryParameters(e,t,r,n){return typeof n.query=="object"?$he(n.query).toString():n.query??""}async handleError(e,t,r,n,i){return!1}async handlePending(e,t,r,n){return!0}async handleSuccess(e,t,r,n,i){return!0}setCallStatus(e,t,r,n){this.isConfigStatusSettable(r,n)&&this.status.set([e,t],n)}getBaseURL(){return this.baseURL}getConfig(){return this.config}setBaseURL(e){return this.baseURL=e,Pt.verbose("RestAPI","setBaseURL","The base URL has been set.",[this.baseURL]),this}setConfig(e){return this.config=e,Pt.verbose("RestAPI","setConfig","The config has been set.",this.config),this}isConfigStatusSettable(e,t){return e.status?.blacklist?!e.status.blacklist.includes(t):e.status?.whitelist?e.status.whitelist.includes(t):!0}},ywr=class extends zot{async post(e,t,r){let n;return n={query:e,variables:t},this.send("POST","",n,r)}async mutation(e,t,r){return this.post(e,t,r)}async query(e,t,r){return this.post(e,t,r)}},bwr=class{index;key;size;target;versions;constructor(e,t,r=abr){this.index=0,this.key=t,this.size=r,this.target=e,this.versions=[yv(this.target[this.key],{deep:!0})]}redo(){if(this.isNotRedoable)return Pt.warn("History","redo","This is not redoable.");this.setIndex(1)}undo(){if(this.isNotUndoable)return Pt.warn("History","undo","This is not undoable.");this.setIndex(-1)}push(){this.isNotPushable&&(this.versions=this.versions.slice(1,this.size),Pt.debug("History","push","The first version has been removed.")),this.versions=[...this.versions,yv(this.target[this.key],{deep:!0})],this.index=this.versions.length-1}setIndex(e){this.index=this.index+e,this.target[this.key]=yv(this.versions[this.index],{deep:!0})}get isPushable(){return this.versions.length<this.size}get isNotPushable(){return this.isPushable===!1}get isRedoable(){return this.index<this.versions.length-1}get isNotRedoable(){return this.isRedoable===!1}get isUndoable(){return this.index>0}get isNotUndoable(){return this.isUndoable===!1}},wwr=class{language;packs;storage;storageKey;variables;constructor(e){this.language=e?.language??"",this.packs=e?.packs??[],this.storage=e?.storage?.instance??Fhe,this.storageKey=e?.storage?.key??Rst,this.variables=e?.variables??{}}async initialize(){return this.storage.copy(this.storageKey,this,["language"])}async store(){return this.storage.set(this.storageKey,this,["language"])}push(...e){let t;t=yp(e[0])?e[0]:e;for(let r of t){let n;if(n=this.getPackByLanguage(r.language),n.language){n.data=YA(n.data,r.data),Pt.debug("Localization","add",`The pack data has been merged for the language ${r.language}.`,[n.data]);continue}this.packs.push(r),Pt.debug("Localization","add",`The pack for the language ${r.language} has been pushed.`,r)}}get(...e){let t,r,n,i,a,s,o;if(t=typeof e[1]=="string"?e[0]:this.language,r=typeof e[1]=="string"?e[1]:e[0],n=typeof e[1]=="string"?e[2]:e[1],n=n??{},i=this.getPackByLanguage(t),!i.language||(a=wv(i.data,r,""),!a))return r;if(s=a.match(sbr),s===null)return a;s=s.sort(obr),o=YA(i.data,this.variables,n);for(let c of s){let p,f;p=c.slice(1,-1),f=wv(o,p,c),a=a.replace(c,f)}return a}setLanguage(e){this.language=e,Pt.debug("Localization","setLanguage",`The language has been set to ${this.language}.`)}setVariables(e){this.variables=e,Pt.debug("Localization","setVariables","The variables have been set.",e)}has(...e){let t,r,n;return t=typeof e[1]=="string"?e[0]:this.language,r=typeof e[1]=="string"?e[1]:e[0],n=this.getPackByLanguage(t),n.language?wL(n.data,r):!1}getPackByLanguage(e){return this.packs.find(t=>t.language===e)??{data:{},language:""}}};async function EL(e){if(!(e<=0))return new Promise(t=>setTimeout(()=>t(),e))}function Hot(e,t,r=e){Cw.set(r,setTimeout(e,t)),Uo.debug("setTimeout",r,"The timeout has been set.")}function _wr(e){clearTimeout(Cw.get(e)),Uo.debug("clearTimeout",e,"The timeout has been cleared."),Cw.delete(e),Uo.debug("clearTimeout",e,"The timeout has been deleted.")}function xwr(){Cw.forEach(clearTimeout),Uo.debug("clearEveryTimeout","The timeouts have been cleared."),Cw.clear(),Uo.debug("clearEveryTimeout","The map has been cleared.")}function Ewr(e){return Cw.has(e)}function Swr(e){return!Cw.has(e)}var kwr=class extends LL{concurrency;delay;processes;status;timeout;constructor(e){super(),this.concurrency=e?.concurrency??Nst,this.delay=e?.delay??qst,this.processes=[],this.status=e?.autostart?"running":"stopped",this.timeout=e?.timeout??Lst}start(){return this.status==="running"?(Pt.warn("Queue","start","The queue is already running.",[this.status]),this):(this.status="running",Pt.verbose("Queue","start","The status has been set.",[this.status]),Pt.verbose("Queue","start","Running the processes...",this.processes),this.run(),this)}stop(){return this.status==="stopped"?(Pt.warn("Queue","stop","The queue is already stopped.",[this.status]),this):(this.status="stopped",Pt.verbose("Queue","stop","The status has been set.",[this.status]),this)}clear(){return this.processes=[],Pt.verbose("Queue","clear","The processes have been cleared.",this.processes),this}run(){if(this.isStatusStopped)return Pt.warn("Queue","run","The queue is stopped.",[this.status]);for(let e of this.processes.filter(t=>t.status==="pending")){if(this.processes.filter(t=>t.status==="running").length>=this.concurrency)break;if(this.delay>0&&!this.processes.every(t=>t.status==="pending")){this.processes=zA(this.processes,(t,r)=>["fulfilled","rejected","running","timed-out"].includes(r.status)),Pt.verbose("Queue","start","Waiting for the delay...",[this.delay]),EL(this.delay).then(()=>this.runp(e));continue}this.runp(e)}}runp(e){e.status="running",Pt.verbose("Queue","start","Running process.",e),this.emit("process-run",e),e.fn().catch(t=>{e.reason=t,e.status="rejected",Pt.error("Queue",e.id,"The process has been rejected.",e),this.emit("process-reject",e)}).then(t=>{e.status="fulfilled",e.value=t,Pt.verbose("Queue",e.id,"The process has been fulfilled.",e),this.emit("process-fulfill",e)}).finally(()=>{this.delay<=0&&(this.processes=zA(this.processes,[e])),Pt.verbose("Queue",e.id,"Running the processes...",this.processes),this.run()}),Hot(()=>{e.status="timed-out",Pt.verbose("Queue",e.id,"The process has timed out.",e),this.delay<=0&&(this.processes=zA(this.processes,[e])),this.emit("process-timeout",e)},this.timeout)}push(...e){let t;if(t=typeof e[0]=="function"?e:e[0],t.length<=0)return this;for(let r of t){let n;n={fn:r,id:bL({prefix:"process"}),status:"pending"},this.processes.push(n),Pt.verbose("Queue","push","The process has been pushed.",n)}return this.isStatusRunning&&(Pt.verbose("Queue","push","Running the processes...",this.processes),this.run()),this}unshift(...e){let t;if(t=typeof e[0]=="function"?e:e[0],t.length<=0)return this;for(let r of t){let n;n={fn:r,id:bL({prefix:"process"}),status:"pending"},this.processes.unshift(n),Pt.verbose("Queue","unshift","The process has been unshifted.",n)}return this.isStatusRunning&&(Pt.verbose("Queue","unshift","Running the processes...",this.processes),this.run()),this}getConcurrency(){return this.concurrency}getDelay(){return this.delay}getProcesses(){return this.processes}getStatus(){return this.status}getTimeout(){return this.timeout}setConcurrency(e){return this.concurrency=e,Pt.verbose("Queue","setConcurrency","The concurrency has been set.",[this.concurrency]),this}setDelay(e){return this.delay=e,Pt.verbose("Queue","setDelay","The delay has been set.",[this.delay]),this}setTimeout(e){return this.timeout=e,Pt.verbose("Queue","setTimeout","The timeout has been set.",[this.timeout]),this}get isStatusRunning(){return this.status==="running"}get isStatusStopped(){return this.status==="stopped"}},Dw=new jL("CORE_FUNCTION");function Vot(e,t,r=e){clearTimeout(Ost.get(r)),Dw.verbose("debounce",r,"The timeout has been cleared."),Ost.set(r,setTimeout(e,t)),Dw.verbose("debounce",r,"The timeout has been set.",[t])}function Got(...e){}var Wot=class extends LL{chunks;debounceTime;items;key;predicate;constructor(e,t=[],r=Got,n=Hst){super(),this.chunks=[],this.debounceTime=n,this.items=t,this.key=e,this.predicate=r}debouncefn=()=>{let e=this.items.find((t,r,n)=>this.predicate(t,this.getQuery(),r,n));e&&(this.emit("match",e),Pt.verbose("Typeahead",this.key,"The match event has been emitted.",[e])),this.setChunks([])};search(){return Pt.verbose("typeahead",this.key,"Setting the debounce.",[this.debounceTime]),Vot(this.debouncefn,this.debounceTime,this.key),this}getDebounceTime(){return this.debounceTime}getItems(){return this.items}getKey(){return this.key}getPredicate(){return this.predicate}getQuery(){return this.chunks.join("")}pushChunks(...e){return this.chunks.push(...e),this}setDebounceTime(e){return this.debounceTime=e??this.debounceTime,this}setItems(e){return this.items=e??this.items,this}setChunks(e){return this.chunks=e??this.chunks,this}setPredicate(e){return this.predicate=e??this.predicate,this}},Awr=class Nc{data=new Map;async hide(t,r=0){if(this.isHidden(t))return Pt.warn("VisibilityController","hide",`The key ${t} is already hidden.`);r>0&&(this.data.set(t,Nc.HIDING),Pt.verbose("VisibilityController","hide",`The key ${t} is hiding.`),await EL(r)),this.data.set(t,Nc.HIDDEN),Pt.verbose("VisibilityController","hide",`The key ${t} is hidden.`)}async show(t,r=0){if(this.isVisible(t))return Pt.warn("VisibilityController","show",`The key ${t} is already visible.`);r>0&&(this.data.set(t,Nc.SHOWING),Pt.verbose("VisibilityController","hide",`The key ${t} is showing.`),await EL(r)),this.data.set(t,Nc.VISIBLE),Pt.verbose("VisibilityController","hide",`The key ${t} is visible.`)}async toggle(t,r=0){if(this.isHidden(t))return this.show(t,typeof r=="number"?r:r.show);if(this.isVisible(t))return this.hide(t,typeof r=="number"?r:r.hide)}clear(){this.data.clear(),Pt.verbose("VisibilityController","clear","The data has been cleared.")}get(t){return this.data.get(t)??Nc.HIDDEN}isHidden(t){return this.get(t)===Nc.HIDDEN}isHiding(t){return this.get(t)===Nc.HIDING}isShowing(t){return this.get(t)===Nc.SHOWING}isVisible(t){return this.get(t)===Nc.VISIBLE}get hasHidden(){return[...this.data.values()].includes(Nc.HIDDEN)}get hasHiding(){return[...this.data.values()].includes(Nc.HIDING)}get hasShowing(){return[...this.data.values()].includes(Nc.SHOWING)}get hasVisible(){return[...this.data.values()].includes(Nc.VISIBLE)}static get HIDDEN(){return"HIDDEN"}static get HIDING(){return"HIDING"}static get SHOWING(){return"SHOWING"}static get VISIBLE(){return"VISIBLE"}};async function Twr(...e){let t;for(let r of e)if(t=await Ga(()=>r()),t instanceof Error)return}function Owr(e){return e[0]}function Dwr(e){return async(...t)=>e(...t)}async function Cwr(e,t){return await Ga(()=>e()),t}function Pwr(e,t){return new Error(e,t)}function Iwr(e){e&&Ba(()=>e())}async function Rwr(e){e&&await Ga(()=>e())}function Fwr(e,t,r=e){let n;if(n=Dst.get(r)??Date.now()-t,Date.now()-n<t)return Dw.verbose("throttle",r,"The current date minus the stored one is greater than or equal to ms",[Date.now(),n,Date.now()-n,t]);Ba(()=>e()),Dw.verbose("throttle",r,"The fn has been executed."),Dst.set(r,Date.now()),Dw.verbose("throttle",r,"The date has been set.")}function jwr(e){if(e instanceof Error)throw e;return e}function Nwr(e,t){throw new Error(e,t)}function qwr(e,t,r){let n;return n=Cst.get(e),n=n??new Wot(e,r?.items,r?.predicate,r?.debounceTime),n.pushChunks(...t),n.setDebounceTime(r?.debounceTime),n.setItems(r?.items),n.setListeners(r?.listeners??n.getListeners()),n.setPredicate(r?.predicate),Cst.set(e,n),Dw.verbose("typeahead",e,"The instance has been set.",n),n.search()}async function Lwr(e,t=Ehe,r=She){return new Promise(n=>{let i,a;i=0,a=setInterval(()=>{let s;if(i>=r)return clearInterval(a),n(new Error("The wait for timed out."));if(s=Ba(()=>e()),s instanceof Error)return clearInterval(a),n(s);s&&(clearInterval(a),n()),i+=t},t)})}async function $wr(e,t=Vst,r=Gst){return new Promise(n=>{let i,a;i=0,a=setInterval(()=>{if(i>=r)return clearInterval(a),n(new Error("The wait for timed out."));Ga(()=>e()).then(s=>{if(s instanceof Error)return clearInterval(a),n(s);s&&(clearInterval(a),n()),i+=t})},t)})}var Kot=gL();function Bwr(e,t){return Kot.base16.parse(e,t)}function Mwr(e,t){return Kot.base16.stringify(e,t)}var BL=gL();function Uwr(e,t){return BL.base32.parse(e,t)}function zwr(e,t){return BL.base32hex.parse(e,t)}function Hwr(e,t){return BL.base32.stringify(e,t)}function Vwr(e,t){return BL.base32hex.stringify(e,t)}var ML=gL();function Gwr(e,t){return ML.base64.parse(e,t)}function Wwr(e,t){return ML.base64url.parse(e,t)}function Kwr(e,t){return ML.base64.stringify(e,t)}function Ywr(e,t){return ML.base64url.stringify(e,t)}async function Jwr(e,t){let r=new qhe(e);return t?.resolveArrayBuffer&&await r.resolveArrayBuffer(),t?.resolveText&&await r.resolveText(),r}function Xwr(e,t){return new Blob([e.blob],{endings:t,type:e.type})}function Qwr(e,t="ms"){return new Date(e).valueOf()/(t==="ms"?1:100)}function Zwr(e){return String.fromCodePoint(...[...e.toUpperCase()].map(t=>127397+t.charCodeAt(0)))}async function e_r(e,t){let r=new Tot(e);return t?.resolveArrayBuffer&&await r.resolveArrayBuffer(),t?.resolveText&&await r.resolveText(),r}function t_r(e,t){return new File([e.file],e.name,{endings:t,lastModified:e.lastModified,type:e.type})}function r_r(e,t){return e instanceof t}function n_r(e,t){return!(e instanceof t)}function i_r(e,t,r=e,n){clearInterval(bv.get(r)),Uo.debug("setInterval",r,"The interval has been cleared."),n?.autorun&&(Ba(()=>e()),Uo.debug("setInterval",r,"The interval has been executed.")),bv.set(r,setInterval(e,t)),Uo.debug("setInterval",r,`The interval has been set to run every ${t}ms.`)}function a_r(e){clearInterval(bv.get(e)),Uo.debug("clearInterval",e,"The interval has been cleared."),bv.delete(e),Uo.debug("clearInterval",e,"The interval  has been deleted.")}function s_r(){bv.forEach(clearInterval),Uo.debug("clearEveryInterval","The intervals have been cleared."),bv.clear(),Uo.debug("clearEveryInterval","The map has been cleared.")}function o_r(e){return bv.has(e)}function u_r(e){return!bv.has(e)}function c_r(e){return Object.is(e,-0)?0:e<0?e*-1:e}function l_r(e,t){return Yot(e.toFixed(t))}function p_r(e,t){return e>t?e-t:t-e}function f_r(e,t){let r,n;return r=t?.min??Number.MIN_SAFE_INTEGER,n=t?.max??Number.MAX_SAFE_INTEGER,e>=r&&e<=n?e:e<r?r:n}function d_r(e,t){let r,n,i;return r=t?.min??fbr,n=t?.max??pbr,i=e/(n-r)*100,i=t?.round?Math.round(i):i,i}function h_r(...e){let t,r;t=typeof e[0]=="number"?e:e[0],r=Number.MIN_SAFE_INTEGER;for(let n of t)r=n>r?n:r;return r}function m_r(...e){let t,r;t=typeof e[0]=="number"?e:e[0],r=Number.MAX_SAFE_INTEGER;for(let n of t)r=n<r?n:r;return r}function g_r(e,t){let r;switch(typeof e){case"bigint":case"boolean":case"number":case"string":if(r=Ba(()=>BigInt(e)),r instanceof Error)return t??BigInt(0);break;default:r=t??BigInt(0);break}return r}function Yot(e,t=0){let r=String(e);return r.includes(".")?cot(r)?parseFloat(r):t:lot(r)?parseInt(r):t}function v_r(e){return e%2==0}function y_r(e,t){return e%t===0}function b_r(e){return Math.abs(e%2)==1}});var Qot=b((hcn,Xot)=>{"use strict";Xot.exports=mo;var eT=Sh();function mo(e,t){this.lo=e>>>0,this.hi=t>>>0}var Pw=mo.zero=new mo(0,0);Pw.toNumber=function(){return 0};Pw.zzEncode=Pw.zzDecode=function(){return this};Pw.length=function(){return 1};var w_r=mo.zeroHash="\0\0\0\0\0\0\0\0";mo.fromNumber=function(t){if(t===0)return Pw;var r=t<0;r&&(t=-t);var n=t>>>0,i=(t-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new mo(n,i)};mo.from=function(t){if(typeof t=="number")return mo.fromNumber(t);if(eT.isString(t))if(eT.Long)t=eT.Long.fromString(t);else return mo.fromNumber(parseInt(t,10));return t.low||t.high?new mo(t.low>>>0,t.high>>>0):Pw};mo.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var r=~this.lo+1>>>0,n=~this.hi>>>0;return r||(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296};mo.prototype.toLong=function(t){return eT.Long?new eT.Long(this.lo|0,this.hi|0,!!t):{low:this.lo|0,high:this.hi|0,unsigned:!!t}};var xv=String.prototype.charCodeAt;mo.fromHash=function(t){return t===w_r?Pw:new mo((xv.call(t,0)|xv.call(t,1)<<8|xv.call(t,2)<<16|xv.call(t,3)<<24)>>>0,(xv.call(t,4)|xv.call(t,5)<<8|xv.call(t,6)<<16|xv.call(t,7)<<24)>>>0)};mo.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};mo.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this};mo.prototype.zzDecode=function(){var t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this};mo.prototype.length=function(){var t=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?t<16384?t<128?1:2:t<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}});var Sh=b(Uhe=>{"use strict";var xr=Uhe;xr.asPromise=jq();xr.base64=Mfe();xr.EventEmitter=Ufe();xr.float=zfe();xr.inquire=Lq();xr.utf8=Vfe();xr.pool=Gfe();xr.LongBits=Qot();xr.isNode=!!(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node);xr.global=xr.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||Uhe;xr.emptyArray=Object.freeze?Object.freeze([]):[];xr.emptyObject=Object.freeze?Object.freeze({}):{};xr.isInteger=Number.isInteger||function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t};xr.isString=function(t){return typeof t=="string"||t instanceof String};xr.isObject=function(t){return t&&typeof t=="object"};xr.isset=xr.isSet=function(t,r){var n=t[r];return n!=null&&t.hasOwnProperty(r)?typeof n!="object"||(Array.isArray(n)?n.length:Object.keys(n).length)>0:!1};xr.Buffer=function(){try{var e=xr.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch{return null}}();xr._Buffer_from=null;xr._Buffer_allocUnsafe=null;xr.newBuffer=function(t){return typeof t=="number"?xr.Buffer?xr._Buffer_allocUnsafe(t):new xr.Array(t):xr.Buffer?xr._Buffer_from(t):typeof Uint8Array>"u"?t:new Uint8Array(t)};xr.Array=typeof Uint8Array<"u"?Uint8Array:Array;xr.Long=xr.global.dcodeIO&&xr.global.dcodeIO.Long||xr.global.Long||xr.inquire("long");xr.key2Re=/^true|false|0|1$/;xr.key32Re=/^-?(?:0|[1-9][0-9]*)$/;xr.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;xr.longToHash=function(t){return t?xr.LongBits.from(t).toHash():xr.LongBits.zeroHash};xr.longFromHash=function(t,r){var n=xr.LongBits.fromHash(t);return xr.Long?xr.Long.fromBits(n.lo,n.hi,r):n.toNumber(!!r)};function Zot(e,t,r){for(var n=Object.keys(t),i=0;i<n.length;++i)(e[n[i]]===void 0||!r)&&(e[n[i]]=t[n[i]]);return e}xr.merge=Zot;xr.lcFirst=function(t){return t.charAt(0).toLowerCase()+t.substring(1)};function eut(e){function t(r,n){if(!(this instanceof t))return new t(r,n);Object.defineProperty(this,"message",{get:function(){return r}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:new Error().stack||""}),n&&Zot(this,n)}return t.prototype=Object.create(Error.prototype,{constructor:{value:t,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return e},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),t}xr.newError=eut;xr.ProtocolError=eut("ProtocolError");xr.oneOfGetter=function(t){for(var r={},n=0;n<t.length;++n)r[t[n]]=1;return function(){for(var i=Object.keys(this),a=i.length-1;a>-1;--a)if(r[i[a]]===1&&this[i[a]]!==void 0&&this[i[a]]!==null)return i[a]}};xr.oneOfSetter=function(t){return function(r){for(var n=0;n<t.length;++n)t[n]!==r&&delete this[t[n]]}};xr.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};xr._configure=function(){var e=xr.Buffer;if(!e){xr._Buffer_from=xr._Buffer_allocUnsafe=null;return}xr._Buffer_from=e.from!==Uint8Array.from&&e.from||function(r,n){return new e(r,n)},xr._Buffer_allocUnsafe=e.allocUnsafe||function(r){return new e(r)}}});var zL=b((gcn,iut)=>{"use strict";iut.exports=Mn;var bp=Sh(),zhe,UL=bp.LongBits,tut=bp.base64,rut=bp.utf8;function tT(e,t,r){this.fn=e,this.len=t,this.next=void 0,this.val=r}function Vhe(){}function __r(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function Mn(){this.len=0,this.head=new tT(Vhe,0,0),this.tail=this.head,this.states=null}var nut=function(){return bp.Buffer?function(){return(Mn.create=function(){return new zhe})()}:function(){return new Mn}};Mn.create=nut();Mn.alloc=function(t){return new bp.Array(t)};bp.Array!==Array&&(Mn.alloc=bp.pool(Mn.alloc,bp.Array.prototype.subarray));Mn.prototype._push=function(t,r,n){return this.tail=this.tail.next=new tT(t,r,n),this.len+=r,this};function Ghe(e,t,r){t[r]=e&255}function x_r(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}function Whe(e,t){this.len=e,this.next=void 0,this.val=t}Whe.prototype=Object.create(tT.prototype);Whe.prototype.fn=x_r;Mn.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new Whe((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this};Mn.prototype.int32=function(t){return t<0?this._push(Khe,10,UL.fromNumber(t)):this.uint32(t)};Mn.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)};function Khe(e,t,r){for(;e.hi;)t[r++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=e.lo&127|128,e.lo=e.lo>>>7;t[r++]=e.lo}Mn.prototype.uint64=function(t){var r=UL.from(t);return this._push(Khe,r.length(),r)};Mn.prototype.int64=Mn.prototype.uint64;Mn.prototype.sint64=function(t){var r=UL.from(t).zzEncode();return this._push(Khe,r.length(),r)};Mn.prototype.bool=function(t){return this._push(Ghe,1,t?1:0)};function Hhe(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}Mn.prototype.fixed32=function(t){return this._push(Hhe,4,t>>>0)};Mn.prototype.sfixed32=Mn.prototype.fixed32;Mn.prototype.fixed64=function(t){var r=UL.from(t);return this._push(Hhe,4,r.lo)._push(Hhe,4,r.hi)};Mn.prototype.sfixed64=Mn.prototype.fixed64;Mn.prototype.float=function(t){return this._push(bp.float.writeFloatLE,4,t)};Mn.prototype.double=function(t){return this._push(bp.float.writeDoubleLE,8,t)};var E_r=bp.Array.prototype.set?function(t,r,n){r.set(t,n)}:function(t,r,n){for(var i=0;i<t.length;++i)r[n+i]=t[i]};Mn.prototype.bytes=function(t){var r=t.length>>>0;if(!r)return this._push(Ghe,1,0);if(bp.isString(t)){var n=Mn.alloc(r=tut.length(t));tut.decode(t,n,0),t=n}return this.uint32(r)._push(E_r,r,t)};Mn.prototype.string=function(t){var r=rut.length(t);return r?this.uint32(r)._push(rut.write,r,t):this._push(Ghe,1,0)};Mn.prototype.fork=function(){return this.states=new __r(this),this.head=this.tail=new tT(Vhe,0,0),this.len=0,this};Mn.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new tT(Vhe,0,0),this.len=0),this};Mn.prototype.ldelim=function(){var t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=t.next,this.tail=r,this.len+=n),this};Mn.prototype.finish=function(){for(var t=this.head.next,r=this.constructor.alloc(this.len),n=0;t;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r};Mn._configure=function(e){zhe=e,Mn.create=nut(),zhe._configure()}});var out=b((vcn,sut)=>{"use strict";sut.exports=kh;var aut=zL();(kh.prototype=Object.create(aut.prototype)).constructor=kh;var Ev=Sh();function kh(){aut.call(this)}kh._configure=function(){kh.alloc=Ev._Buffer_allocUnsafe,kh.writeBytesBuffer=Ev.Buffer&&Ev.Buffer.prototype instanceof Uint8Array&&Ev.Buffer.prototype.set.name==="set"?function(t,r,n){r.set(t,n)}:function(t,r,n){if(t.copy)t.copy(r,n,0,t.length);else for(var i=0;i<t.length;)r[n++]=t[i++]}};kh.prototype.bytes=function(t){Ev.isString(t)&&(t=Ev._Buffer_from(t,"base64"));var r=t.length>>>0;return this.uint32(r),r&&this._push(kh.writeBytesBuffer,r,t),this};function S_r(e,t,r){e.length<40?Ev.utf8.write(e,t,r):t.utf8Write?t.utf8Write(e,r):t.write(e,r)}kh.prototype.string=function(t){var r=Ev.Buffer.byteLength(t);return this.uint32(r),r&&this._push(S_r,r,t),this};kh._configure()});var VL=b((ycn,fut)=>{"use strict";fut.exports=ms;var Gf=Sh(),Jhe,lut=Gf.LongBits,k_r=Gf.utf8;function Wf(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function ms(e){this.buf=e,this.pos=0,this.len=e.length}var uut=typeof Uint8Array<"u"?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new ms(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new ms(t);throw Error("illegal buffer")},put=function(){return Gf.Buffer?function(r){return(ms.create=function(i){return Gf.Buffer.isBuffer(i)?new Jhe(i):uut(i)})(r)}:uut};ms.create=put();ms.prototype._slice=Gf.Array.prototype.subarray||Gf.Array.prototype.slice;ms.prototype.uint32=function(){var t=4294967295;return function(){if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Wf(this,10);return t}}();ms.prototype.int32=function(){return this.uint32()|0};ms.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(t&1)|0};function Yhe(){var e=new lut(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw Wf(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw Wf(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}ms.prototype.bool=function(){return this.uint32()!==0};function HL(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}ms.prototype.fixed32=function(){if(this.pos+4>this.len)throw Wf(this,4);return HL(this.buf,this.pos+=4)};ms.prototype.sfixed32=function(){if(this.pos+4>this.len)throw Wf(this,4);return HL(this.buf,this.pos+=4)|0};function cut(){if(this.pos+8>this.len)throw Wf(this,8);return new lut(HL(this.buf,this.pos+=4),HL(this.buf,this.pos+=4))}ms.prototype.float=function(){if(this.pos+4>this.len)throw Wf(this,4);var t=Gf.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t};ms.prototype.double=function(){if(this.pos+8>this.len)throw Wf(this,4);var t=Gf.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t};ms.prototype.bytes=function(){var t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw Wf(this,t);if(this.pos+=t,Array.isArray(this.buf))return this.buf.slice(r,n);if(r===n){var i=Gf.Buffer;return i?i.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,r,n)};ms.prototype.string=function(){var t=this.bytes();return k_r.read(t,0,t.length)};ms.prototype.skip=function(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Wf(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Wf(this);while(this.buf[this.pos++]&128);return this};ms.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this};ms._configure=function(e){Jhe=e,ms.create=put(),Jhe._configure();var t=Gf.Long?"toLong":"toNumber";Gf.merge(ms.prototype,{int64:function(){return Yhe.call(this)[t](!1)},uint64:function(){return Yhe.call(this)[t](!0)},sint64:function(){return Yhe.call(this).zzDecode()[t](!1)},fixed64:function(){return cut.call(this)[t](!0)},sfixed64:function(){return cut.call(this)[t](!1)}})}});var gut=b((bcn,mut)=>{"use strict";mut.exports=Iw;var hut=VL();(Iw.prototype=Object.create(hut.prototype)).constructor=Iw;var dut=Sh();function Iw(e){hut.call(this,e)}Iw._configure=function(){dut.Buffer&&(Iw.prototype._slice=dut.Buffer.prototype.slice)};Iw.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))};Iw._configure()});var yut=b((wcn,vut)=>{"use strict";vut.exports=rT;var Xhe=Sh();(rT.prototype=Object.create(Xhe.EventEmitter.prototype)).constructor=rT;function rT(e,t,r){if(typeof e!="function")throw TypeError("rpcImpl must be a function");Xhe.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=!!t,this.responseDelimited=!!r}rT.prototype.rpcCall=function e(t,r,n,i,a){if(!i)throw TypeError("request must be specified");var s=this;if(!a)return Xhe.asPromise(e,s,t,r,n,i);if(!s.rpcImpl){setTimeout(function(){a(Error("already ended"))},0);return}try{return s.rpcImpl(t,r[s.requestDelimited?"encodeDelimited":"encode"](i).finish(),function(c,p){if(c)return s.emit("error",c,t),a(c);if(p===null){s.end(!0);return}if(!(p instanceof n))try{p=n[s.responseDelimited?"decodeDelimited":"decode"](p)}catch(f){return s.emit("error",f,t),a(f)}return s.emit("data",p,t),a(null,p)})}catch(o){s.emit("error",o,t),setTimeout(function(){a(o)},0);return}};rT.prototype.end=function(t){return this.rpcImpl&&(t||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}});var Qhe=b(but=>{"use strict";var A_r=but;A_r.Service=yut()});var Zhe=b((xcn,wut)=>{"use strict";wut.exports={}});var eme=b(xut=>{"use strict";var Lc=xut;Lc.build="minimal";Lc.Writer=zL();Lc.BufferWriter=out();Lc.Reader=VL();Lc.BufferReader=gut();Lc.util=Sh();Lc.rpc=Qhe();Lc.roots=Zhe();Lc.configure=_ut;function _ut(){Lc.util._configure(),Lc.Writer._configure(Lc.BufferWriter),Lc.Reader._configure(Lc.BufferReader)}_ut()});var Rw=b(Eut=>{"use strict";var nT=Eut,T_r=go(),O_r=["double","float","int32","uint32","sint32","fixed32","sfixed32","int64","uint64","sint64","fixed64","sfixed64","bool","string","bytes"];function iT(e,t){var r=0,n={};for(t|=0;r<e.length;)n[O_r[r+t]]=e[r++];return n}nT.basic=iT([1,5,0,0,0,5,5,0,0,0,1,1,0,2,2]);nT.defaults=iT([0,0,0,0,0,0,0,0,0,0,0,0,!1,"",T_r.emptyArray,null]);nT.long=iT([0,0,0,1,1],7);nT.mapKey=iT([0,0,0,5,5,0,0,0,1,1,0,2],2);nT.packed=iT([1,5,0,0,0,5,5,0,0,0,1,1,0])});var Sv=b((kcn,Aut)=>{"use strict";Aut.exports=wp;var GL=Fw();((wp.prototype=Object.create(GL.prototype)).constructor=wp).className="Field";var Sut=Kf(),kut=Rw(),Cs=go(),tme,D_r=/^required|optional|repeated$/;wp.fromJSON=function(t,r){return new wp(t,r.id,r.type,r.rule,r.extend,r.options,r.comment)};function wp(e,t,r,n,i,a,s){if(Cs.isObject(n)?(s=i,a=n,n=i=void 0):Cs.isObject(i)&&(s=a,a=i,i=void 0),GL.call(this,e,a),!Cs.isInteger(t)||t<0)throw TypeError("id must be a non-negative integer");if(!Cs.isString(r))throw TypeError("type must be a string");if(n!==void 0&&!D_r.test(n=n.toString().toLowerCase()))throw TypeError("rule must be a string rule");if(i!==void 0&&!Cs.isString(i))throw TypeError("extend must be a string");n==="proto3_optional"&&(n="optional"),this.rule=n&&n!=="optional"?n:void 0,this.type=r,this.id=t,this.extend=i||void 0,this.required=n==="required",this.optional=!this.required,this.repeated=n==="repeated",this.map=!1,this.message=null,this.partOf=null,this.typeDefault=null,this.defaultValue=null,this.long=Cs.Long?kut.long[r]!==void 0:!1,this.bytes=r==="bytes",this.resolvedType=null,this.extensionField=null,this.declaringField=null,this._packed=null,this.comment=s}Object.defineProperty(wp.prototype,"packed",{get:function(){return this._packed===null&&(this._packed=this.getOption("packed")!==!1),this._packed}});wp.prototype.setOption=function(t,r,n){return t==="packed"&&(this._packed=null),GL.prototype.setOption.call(this,t,r,n)};wp.prototype.toJSON=function(t){var r=t?!!t.keepComments:!1;return Cs.toObject(["rule",this.rule!=="optional"&&this.rule||void 0,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",r?this.comment:void 0])};wp.prototype.resolve=function(){if(this.resolved)return this;if((this.typeDefault=kut.defaults[this.type])===void 0?(this.resolvedType=(this.declaringField?this.declaringField.parent:this.parent).lookupTypeOrEnum(this.type),this.resolvedType instanceof tme?this.typeDefault=null:this.typeDefault=this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]):this.options&&this.options.proto3_optional&&(this.typeDefault=null),this.options&&this.options.default!=null&&(this.typeDefault=this.options.default,this.resolvedType instanceof Sut&&typeof this.typeDefault=="string"&&(this.typeDefault=this.resolvedType.values[this.typeDefault])),this.options&&((this.options.packed===!0||this.options.packed!==void 0&&this.resolvedType&&!(this.resolvedType instanceof Sut))&&delete this.options.packed,Object.keys(this.options).length||(this.options=void 0)),this.long)this.typeDefault=Cs.Long.fromNumber(this.typeDefault,this.type.charAt(0)==="u"),Object.freeze&&Object.freeze(this.typeDefault);else if(this.bytes&&typeof this.typeDefault=="string"){var t;Cs.base64.test(this.typeDefault)?Cs.base64.decode(this.typeDefault,t=Cs.newBuffer(Cs.base64.length(this.typeDefault)),0):Cs.utf8.write(this.typeDefault,t=Cs.newBuffer(Cs.utf8.length(this.typeDefault)),0),this.typeDefault=t}return this.map?this.defaultValue=Cs.emptyObject:this.repeated?this.defaultValue=Cs.emptyArray:this.defaultValue=this.typeDefault,this.parent instanceof tme&&(this.parent.ctor.prototype[this.name]=this.defaultValue),GL.prototype.resolve.call(this)};wp.d=function(t,r,n,i){return typeof r=="function"?r=Cs.decorateType(r).name:r&&typeof r=="object"&&(r=Cs.decorateEnum(r).name),function(s,o){Cs.decorateType(s.constructor).add(new wp(o,t,r,n,{default:i}))}};wp._configure=function(t){tme=t}});var p8=b((Acn,Dut)=>{"use strict";Dut.exports=_p;var KL=Fw();((_p.prototype=Object.create(KL.prototype)).constructor=_p).className="OneOf";var Tut=Sv(),WL=go();function _p(e,t,r,n){if(Array.isArray(t)||(r=t,t=void 0),KL.call(this,e,r),!(t===void 0||Array.isArray(t)))throw TypeError("fieldNames must be an Array");this.oneof=t||[],this.fieldsArray=[],this.comment=n}_p.fromJSON=function(t,r){return new _p(t,r.oneof,r.options,r.comment)};_p.prototype.toJSON=function(t){var r=t?!!t.keepComments:!1;return WL.toObject(["options",this.options,"oneof",this.oneof,"comment",r?this.comment:void 0])};function Out(e){if(e.parent)for(var t=0;t<e.fieldsArray.length;++t)e.fieldsArray[t].parent||e.parent.add(e.fieldsArray[t])}_p.prototype.add=function(t){if(!(t instanceof Tut))throw TypeError("field must be a Field");return t.parent&&t.parent!==this.parent&&t.parent.remove(t),this.oneof.push(t.name),this.fieldsArray.push(t),t.partOf=this,Out(this),this};_p.prototype.remove=function(t){if(!(t instanceof Tut))throw TypeError("field must be a Field");var r=this.fieldsArray.indexOf(t);if(r<0)throw Error(t+" is not a member of "+this);return this.fieldsArray.splice(r,1),r=this.oneof.indexOf(t.name),r>-1&&this.oneof.splice(r,1),t.partOf=null,this};_p.prototype.onAdd=function(t){KL.prototype.onAdd.call(this,t);for(var r=this,n=0;n<this.oneof.length;++n){var i=t.get(this.oneof[n]);i&&!i.partOf&&(i.partOf=r,r.fieldsArray.push(i))}Out(this)};_p.prototype.onRemove=function(t){for(var r=0,n;r<this.fieldsArray.length;++r)(n=this.fieldsArray[r]).parent&&n.parent.remove(n);KL.prototype.onRemove.call(this,t)};_p.d=function(){for(var t=new Array(arguments.length),r=0;r<arguments.length;)t[r]=arguments[r++];return function(i,a){WL.decorateType(i.constructor).add(new _p(a,t)),Object.defineProperty(i,a,{get:WL.oneOfGetter(t),set:WL.oneOfSetter(t)})}}});var h8=b((Tcn,Rut)=>{"use strict";Rut.exports=Jn;var rme=Fw();((Jn.prototype=Object.create(rme.prototype)).constructor=Jn).className="Namespace";var Cut=Sv(),YL=go(),C_r=p8(),f8,aT,d8;Jn.fromJSON=function(t,r){return new Jn(t,r.options).addJSON(r.nested)};function Put(e,t){if(e&&e.length){for(var r={},n=0;n<e.length;++n)r[e[n].name]=e[n].toJSON(t);return r}}Jn.arrayToJSON=Put;Jn.isReservedId=function(t,r){if(t){for(var n=0;n<t.length;++n)if(typeof t[n]!="string"&&t[n][0]<=r&&t[n][1]>r)return!0}return!1};Jn.isReservedName=function(t,r){if(t){for(var n=0;n<t.length;++n)if(t[n]===r)return!0}return!1};function Jn(e,t){rme.call(this,e,t),this.nested=void 0,this._nestedArray=null}function Iut(e){return e._nestedArray=null,e}Object.defineProperty(Jn.prototype,"nestedArray",{get:function(){return this._nestedArray||(this._nestedArray=YL.toArray(this.nested))}});Jn.prototype.toJSON=function(t){return YL.toObject(["options",this.options,"nested",Put(this.nestedArray,t)])};Jn.prototype.addJSON=function(t){var r=this;if(t)for(var n=Object.keys(t),i=0,a;i<n.length;++i)a=t[n[i]],r.add((a.fields!==void 0?f8.fromJSON:a.values!==void 0?d8.fromJSON:a.methods!==void 0?aT.fromJSON:a.id!==void 0?Cut.fromJSON:Jn.fromJSON)(n[i],a));return this};Jn.prototype.get=function(t){return this.nested&&this.nested[t]||null};Jn.prototype.getEnum=function(t){if(this.nested&&this.nested[t]instanceof d8)return this.nested[t].values;throw Error("no such enum: "+t)};Jn.prototype.add=function(t){if(!(t instanceof Cut&&t.extend!==void 0||t instanceof f8||t instanceof C_r||t instanceof d8||t instanceof aT||t instanceof Jn))throw TypeError("object must be a valid nested object");if(!this.nested)this.nested={};else{var r=this.get(t.name);if(r)if(r instanceof Jn&&t instanceof Jn&&!(r instanceof f8||r instanceof aT)){for(var n=r.nestedArray,i=0;i<n.length;++i)t.add(n[i]);this.remove(r),this.nested||(this.nested={}),t.setOptions(r.options,!0)}else throw Error("duplicate name '"+t.name+"' in "+this)}return this.nested[t.name]=t,t.onAdd(this),Iut(this)};Jn.prototype.remove=function(t){if(!(t instanceof rme))throw TypeError("object must be a ReflectionObject");if(t.parent!==this)throw Error(t+" is not a member of "+this);return delete this.nested[t.name],Object.keys(this.nested).length||(this.nested=void 0),t.onRemove(this),Iut(this)};Jn.prototype.define=function(t,r){if(YL.isString(t))t=t.split(".");else if(!Array.isArray(t))throw TypeError("illegal path");if(t&&t.length&&t[0]==="")throw Error("path must be relative");for(var n=this;t.length>0;){var i=t.shift();if(n.nested&&n.nested[i]){if(n=n.nested[i],!(n instanceof Jn))throw Error("path conflicts with non-namespace objects")}else n.add(n=new Jn(i))}return r&&n.addJSON(r),n};Jn.prototype.resolveAll=function(){for(var t=this.nestedArray,r=0;r<t.length;)t[r]instanceof Jn?t[r++].resolveAll():t[r++].resolve();return this.resolve()};Jn.prototype.lookup=function(t,r,n){if(typeof r=="boolean"?(n=r,r=void 0):r&&!Array.isArray(r)&&(r=[r]),YL.isString(t)&&t.length){if(t===".")return this.root;t=t.split(".")}else if(!t.length)return this;if(t[0]==="")return this.root.lookup(t.slice(1),r);var i=this.get(t[0]);if(i){if(t.length===1){if(!r||r.indexOf(i.constructor)>-1)return i}else if(i instanceof Jn&&(i=i.lookup(t.slice(1),r,!0)))return i}else for(var a=0;a<this.nestedArray.length;++a)if(this._nestedArray[a]instanceof Jn&&(i=this._nestedArray[a].lookup(t,r,!0)))return i;return this.parent===null||n?null:this.parent.lookup(t,r)};Jn.prototype.lookupType=function(t){var r=this.lookup(t,[f8]);if(!r)throw Error("no such type: "+t);return r};Jn.prototype.lookupEnum=function(t){var r=this.lookup(t,[d8]);if(!r)throw Error("no such Enum '"+t+"' in "+this);return r};Jn.prototype.lookupTypeOrEnum=function(t){var r=this.lookup(t,[f8,d8]);if(!r)throw Error("no such Type or Enum '"+t+"' in "+this);return r};Jn.prototype.lookupService=function(t){var r=this.lookup(t,[aT]);if(!r)throw Error("no such Service '"+t+"' in "+this);return r};Jn._configure=function(e,t,r){f8=e,aT=t,d8=r}});var JL=b((Ocn,Fut)=>{"use strict";Fut.exports=J1;var nme=Sv();((J1.prototype=Object.create(nme.prototype)).constructor=J1).className="MapField";var P_r=Rw(),sT=go();function J1(e,t,r,n,i,a){if(nme.call(this,e,t,n,void 0,void 0,i,a),!sT.isString(r))throw TypeError("keyType must be a string");this.keyType=r,this.resolvedKeyType=null,this.map=!0}J1.fromJSON=function(t,r){return new J1(t,r.id,r.keyType,r.type,r.options,r.comment)};J1.prototype.toJSON=function(t){var r=t?!!t.keepComments:!1;return sT.toObject(["keyType",this.keyType,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",r?this.comment:void 0])};J1.prototype.resolve=function(){if(this.resolved)return this;if(P_r.mapKey[this.keyType]===void 0)throw Error("invalid key type: "+this.keyType);return nme.prototype.resolve.call(this)};J1.d=function(t,r,n){return typeof n=="function"?n=sT.decorateType(n).name:n&&typeof n=="object"&&(n=sT.decorateEnum(n).name),function(a,s){sT.decorateType(a.constructor).add(new J1(s,t,r,n))}}});var XL=b((Dcn,jut)=>{"use strict";jut.exports=jw;var ime=Fw();((jw.prototype=Object.create(ime.prototype)).constructor=jw).className="Method";var m8=go();function jw(e,t,r,n,i,a,s,o,c){if(m8.isObject(i)?(s=i,i=a=void 0):m8.isObject(a)&&(s=a,a=void 0),!(t===void 0||m8.isString(t)))throw TypeError("type must be a string");if(!m8.isString(r))throw TypeError("requestType must be a string");if(!m8.isString(n))throw TypeError("responseType must be a string");ime.call(this,e,s),this.type=t||"rpc",this.requestType=r,this.requestStream=i?!0:void 0,this.responseType=n,this.responseStream=a?!0:void 0,this.resolvedRequestType=null,this.resolvedResponseType=null,this.comment=o,this.parsedOptions=c}jw.fromJSON=function(t,r){return new jw(t,r.type,r.requestType,r.responseType,r.requestStream,r.responseStream,r.options,r.comment,r.parsedOptions)};jw.prototype.toJSON=function(t){var r=t?!!t.keepComments:!1;return m8.toObject(["type",this.type!=="rpc"&&this.type||void 0,"requestType",this.requestType,"requestStream",this.requestStream,"responseType",this.responseType,"responseStream",this.responseStream,"options",this.options,"comment",r?this.comment:void 0,"parsedOptions",this.parsedOptions])};jw.prototype.resolve=function(){return this.resolved?this:(this.resolvedRequestType=this.parent.lookupType(this.requestType),this.resolvedResponseType=this.parent.lookupType(this.responseType),ime.prototype.resolve.call(this))}});var QL=b((Ccn,qut)=>{"use strict";qut.exports=xp;var kv=h8();((xp.prototype=Object.create(kv.prototype)).constructor=xp).className="Service";var ame=XL(),oT=go(),I_r=Qhe();function xp(e,t){kv.call(this,e,t),this.methods={},this._methodsArray=null}xp.fromJSON=function(t,r){var n=new xp(t,r.options);if(r.methods)for(var i=Object.keys(r.methods),a=0;a<i.length;++a)n.add(ame.fromJSON(i[a],r.methods[i[a]]));return r.nested&&n.addJSON(r.nested),n.comment=r.comment,n};xp.prototype.toJSON=function(t){var r=kv.prototype.toJSON.call(this,t),n=t?!!t.keepComments:!1;return oT.toObject(["options",r&&r.options||void 0,"methods",kv.arrayToJSON(this.methodsArray,t)||{},"nested",r&&r.nested||void 0,"comment",n?this.comment:void 0])};Object.defineProperty(xp.prototype,"methodsArray",{get:function(){return this._methodsArray||(this._methodsArray=oT.toArray(this.methods))}});function Nut(e){return e._methodsArray=null,e}xp.prototype.get=function(t){return this.methods[t]||kv.prototype.get.call(this,t)};xp.prototype.resolveAll=function(){for(var t=this.methodsArray,r=0;r<t.length;++r)t[r].resolve();return kv.prototype.resolve.call(this)};xp.prototype.add=function(t){if(this.get(t.name))throw Error("duplicate name '"+t.name+"' in "+this);return t instanceof ame?(this.methods[t.name]=t,t.parent=this,Nut(this)):kv.prototype.add.call(this,t)};xp.prototype.remove=function(t){if(t instanceof ame){if(this.methods[t.name]!==t)throw Error(t+" is not a member of "+this);return delete this.methods[t.name],t.parent=null,Nut(this)}return kv.prototype.remove.call(this,t)};xp.prototype.create=function(t,r,n){for(var i=new I_r.Service(t,r,n),a=0,s;a<this.methodsArray.length;++a){var o=oT.lcFirst((s=this._methodsArray[a]).resolve().name).replace(/[^$\w_]/g,"");i[o]=oT.codegen(["r","c"],oT.isReserved(o)?o+"_":o)("return this.rpcCall(m,q,s,r,c)")({m:s,q:s.resolvedRequestType.ctor,s:s.resolvedResponseType.ctor})}return i}});var ZL=b((Pcn,Lut)=>{"use strict";Lut.exports=Ah;var R_r=Sh();function Ah(e){if(e)for(var t=Object.keys(e),r=0;r<t.length;++r)this[t[r]]=e[t[r]]}Ah.create=function(t){return this.$type.create(t)};Ah.encode=function(t,r){return this.$type.encode(t,r)};Ah.encodeDelimited=function(t,r){return this.$type.encodeDelimited(t,r)};Ah.decode=function(t){return this.$type.decode(t)};Ah.decodeDelimited=function(t){return this.$type.decodeDelimited(t)};Ah.verify=function(t){return this.$type.verify(t)};Ah.fromObject=function(t){return this.$type.fromObject(t)};Ah.toObject=function(t,r){return this.$type.toObject(t,r)};Ah.prototype.toJSON=function(){return this.$type.toObject(this,R_r.toJSONOptions)}});var sme=b((Icn,But)=>{"use strict";But.exports=N_r;var F_r=Kf(),X1=Rw(),$ut=go();function j_r(e){return"missing required '"+e.name+"'"}function N_r(e){var t=$ut.codegen(["r","l"],e.name+"$decode")("if(!(r instanceof Reader))")("r=Reader.create(r)")("var c=l===undefined?r.len:r.pos+l,m=new this.ctor"+(e.fieldsArray.filter(function(o){return o.map}).length?",k,value":""))("while(r.pos<c){")("var t=r.uint32()");e.group&&t("if((t&7)===4)")("break"),t("switch(t>>>3){");for(var r=0;r<e.fieldsArray.length;++r){var n=e._fieldsArray[r].resolve(),i=n.resolvedType instanceof F_r?"int32":n.type,a="m"+$ut.safeProp(n.name);t("case %i: {",n.id),n.map?(t("if(%s===util.emptyObject)",a)("%s={}",a)("var c2 = r.uint32()+r.pos"),X1.defaults[n.keyType]!==void 0?t("k=%j",X1.defaults[n.keyType]):t("k=null"),X1.defaults[i]!==void 0?t("value=%j",X1.defaults[i]):t("value=null"),t("while(r.pos<c2){")("var tag2=r.uint32()")("switch(tag2>>>3){")("case 1: k=r.%s(); break",n.keyType)("case 2:"),X1.basic[i]===void 0?t("value=types[%i].decode(r,r.uint32())",r):t("value=r.%s()",i),t("break")("default:")("r.skipType(tag2&7)")("break")("}")("}"),X1.long[n.keyType]!==void 0?t('%s[typeof k==="object"?util.longToHash(k):k]=value',a):t("%s[k]=value",a)):n.repeated?(t("if(!(%s&&%s.length))",a,a)("%s=[]",a),X1.packed[i]!==void 0&&t("if((t&7)===2){")("var c2=r.uint32()+r.pos")("while(r.pos<c2)")("%s.push(r.%s())",a,i)("}else"),X1.basic[i]===void 0?t(n.resolvedType.group?"%s.push(types[%i].decode(r))":"%s.push(types[%i].decode(r,r.uint32()))",a,r):t("%s.push(r.%s())",a,i)):X1.basic[i]===void 0?t(n.resolvedType.group?"%s=types[%i].decode(r)":"%s=types[%i].decode(r,r.uint32())",a,r):t("%s=r.%s()",a,i),t("break")("}")}for(t("default:")("r.skipType(t&7)")("break")("}")("}"),r=0;r<e._fieldsArray.length;++r){var s=e._fieldsArray[r];s.required&&t("if(!m.hasOwnProperty(%j))",s.name)("throw util.ProtocolError(%j,{instance:m})",j_r(s))}return t("return m")}});var cme=b((Rcn,Mut)=>{"use strict";Mut.exports=$_r;var q_r=Kf(),ome=go();function Ep(e,t){return e.name+": "+t+(e.repeated&&t!=="array"?"[]":e.map&&t!=="object"?"{k:"+e.keyType+"}":"")+" expected"}function ume(e,t,r,n){if(t.resolvedType)if(t.resolvedType instanceof q_r){e("switch(%s){",n)("default:")("return%j",Ep(t,"enum value"));for(var i=Object.keys(t.resolvedType.values),a=0;a<i.length;++a)e("case %i:",t.resolvedType.values[i[a]]);e("break")("}")}else e("{")("var e=types[%i].verify(%s);",r,n)("if(e)")("return%j+e",t.name+".")("}");else switch(t.type){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":e("if(!util.isInteger(%s))",n)("return%j",Ep(t,"integer"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":e("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))",n,n,n,n)("return%j",Ep(t,"integer|Long"));break;case"float":case"double":e('if(typeof %s!=="number")',n)("return%j",Ep(t,"number"));break;case"bool":e('if(typeof %s!=="boolean")',n)("return%j",Ep(t,"boolean"));break;case"string":e("if(!util.isString(%s))",n)("return%j",Ep(t,"string"));break;case"bytes":e('if(!(%s&&typeof %s.length==="number"||util.isString(%s)))',n,n,n)("return%j",Ep(t,"buffer"));break}return e}function L_r(e,t,r){switch(t.keyType){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":e("if(!util.key32Re.test(%s))",r)("return%j",Ep(t,"integer key"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":e("if(!util.key64Re.test(%s))",r)("return%j",Ep(t,"integer|Long key"));break;case"bool":e("if(!util.key2Re.test(%s))",r)("return%j",Ep(t,"boolean key"));break}return e}function $_r(e){var t=ome.codegen(["m"],e.name+"$verify")('if(typeof m!=="object"||m===null)')("return%j","object expected"),r=e.oneofsArray,n={};r.length&&t("var p={}");for(var i=0;i<e.fieldsArray.length;++i){var a=e._fieldsArray[i].resolve(),s="m"+ome.safeProp(a.name);if(a.optional&&t("if(%s!=null&&m.hasOwnProperty(%j)){",s,a.name),a.map)t("if(!util.isObject(%s))",s)("return%j",Ep(a,"object"))("var k=Object.keys(%s)",s)("for(var i=0;i<k.length;++i){"),L_r(t,a,"k[i]"),ume(t,a,i,s+"[k[i]]")("}");else if(a.repeated)t("if(!Array.isArray(%s))",s)("return%j",Ep(a,"array"))("for(var i=0;i<%s.length;++i){",s),ume(t,a,i,s+"[i]")("}");else{if(a.partOf){var o=ome.safeProp(a.partOf.name);n[a.partOf.name]===1&&t("if(p%s===1)",o)("return%j",a.partOf.name+": multiple values"),n[a.partOf.name]=1,t("p%s=1",o)}ume(t,a,i,s)}a.optional&&t("}")}return t("return null")}});var fme=b(zut=>{"use strict";var Uut=zut,uT=Kf(),Th=go();function lme(e,t,r,n){var i=!1;if(t.resolvedType)if(t.resolvedType instanceof uT){e("switch(d%s){",n);for(var a=t.resolvedType.values,s=Object.keys(a),o=0;o<s.length;++o)a[s[o]]===t.typeDefault&&!i&&(e("default:")('if(typeof(d%s)==="number"){m%s=d%s;break}',n,n,n),t.repeated||e("break"),i=!0),e("case%j:",s[o])("case %i:",a[s[o]])("m%s=%j",n,a[s[o]])("break");e("}")}else e('if(typeof d%s!=="object")',n)("throw TypeError(%j)",t.fullName+": object expected")("m%s=types[%i].fromObject(d%s)",n,r,n);else{var c=!1;switch(t.type){case"double":case"float":e("m%s=Number(d%s)",n,n);break;case"uint32":case"fixed32":e("m%s=d%s>>>0",n,n);break;case"int32":case"sint32":case"sfixed32":e("m%s=d%s|0",n,n);break;case"uint64":c=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e("if(util.Long)")("(m%s=util.Long.fromValue(d%s)).unsigned=%j",n,n,c)('else if(typeof d%s==="string")',n)("m%s=parseInt(d%s,10)",n,n)('else if(typeof d%s==="number")',n)("m%s=d%s",n,n)('else if(typeof d%s==="object")',n)("m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)",n,n,n,c?"true":"");break;case"bytes":e('if(typeof d%s==="string")',n)("util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)",n,n,n)("else if(d%s.length >= 0)",n)("m%s=d%s",n,n);break;case"string":e("m%s=String(d%s)",n,n);break;case"bool":e("m%s=Boolean(d%s)",n,n);break}}return e}Uut.fromObject=function(t){var r=t.fieldsArray,n=Th.codegen(["d"],t.name+"$fromObject")("if(d instanceof this.ctor)")("return d");if(!r.length)return n("return new this.ctor");n("var m=new this.ctor");for(var i=0;i<r.length;++i){var a=r[i].resolve(),s=Th.safeProp(a.name);a.map?(n("if(d%s){",s)('if(typeof d%s!=="object")',s)("throw TypeError(%j)",a.fullName+": object expected")("m%s={}",s)("for(var ks=Object.keys(d%s),i=0;i<ks.length;++i){",s),lme(n,a,i,s+"[ks[i]]")("}")("}")):a.repeated?(n("if(d%s){",s)("if(!Array.isArray(d%s))",s)("throw TypeError(%j)",a.fullName+": array expected")("m%s=[]",s)("for(var i=0;i<d%s.length;++i){",s),lme(n,a,i,s+"[i]")("}")("}")):(a.resolvedType instanceof uT||n("if(d%s!=null){",s),lme(n,a,i,s),a.resolvedType instanceof uT||n("}"))}return n("return m")};function pme(e,t,r,n){if(t.resolvedType)t.resolvedType instanceof uT?e("d%s=o.enums===String?(types[%i].values[m%s]===undefined?m%s:types[%i].values[m%s]):m%s",n,r,n,n,r,n,n):e("d%s=types[%i].toObject(m%s,o)",n,r,n);else{var i=!1;switch(t.type){case"double":case"float":e("d%s=o.json&&!isFinite(m%s)?String(m%s):m%s",n,n,n,n);break;case"uint64":i=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e('if(typeof m%s==="number")',n)("d%s=o.longs===String?String(m%s):m%s",n,n,n)("else")("d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low>>>0,m%s.high>>>0).toNumber(%s):m%s",n,n,n,n,i?"true":"",n);break;case"bytes":e("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",n,n,n,n,n);break;default:e("d%s=m%s",n,n);break}}return e}Uut.toObject=function(t){var r=t.fieldsArray.slice().sort(Th.compareFieldsById);if(!r.length)return Th.codegen()("return {}");for(var n=Th.codegen(["m","o"],t.name+"$toObject")("if(!o)")("o={}")("var d={}"),i=[],a=[],s=[],o=0;o<r.length;++o)r[o].partOf||(r[o].resolve().repeated?i:r[o].map?a:s).push(r[o]);if(i.length){for(n("if(o.arrays||o.defaults){"),o=0;o<i.length;++o)n("d%s=[]",Th.safeProp(i[o].name));n("}")}if(a.length){for(n("if(o.objects||o.defaults){"),o=0;o<a.length;++o)n("d%s={}",Th.safeProp(a[o].name));n("}")}if(s.length){for(n("if(o.defaults){"),o=0;o<s.length;++o){var c=s[o],p=Th.safeProp(c.name);if(c.resolvedType instanceof uT)n("d%s=o.enums===String?%j:%j",p,c.resolvedType.valuesById[c.typeDefault],c.typeDefault);else if(c.long)n("if(util.Long){")("var n=new util.Long(%i,%i,%j)",c.typeDefault.low,c.typeDefault.high,c.typeDefault.unsigned)("d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n",p)("}else")("d%s=o.longs===String?%j:%i",p,c.typeDefault.toString(),c.typeDefault.toNumber());else if(c.bytes){var f="["+Array.prototype.slice.call(c.typeDefault).join(",")+"]";n("if(o.bytes===String)d%s=%j",p,String.fromCharCode.apply(String,c.typeDefault))("else{")("d%s=%s",p,f)("if(o.bytes!==Array)d%s=util.newBuffer(d%s)",p,p)("}")}else n("d%s=%j",p,c.typeDefault)}n("}")}var d=!1;for(o=0;o<r.length;++o){var c=r[o],h=t._fieldsArray.indexOf(c),p=Th.safeProp(c.name);c.map?(d||(d=!0,n("var ks2")),n("if(m%s&&(ks2=Object.keys(m%s)).length){",p,p)("d%s={}",p)("for(var j=0;j<ks2.length;++j){"),pme(n,c,h,p+"[ks2[j]]")("}")):c.repeated?(n("if(m%s&&m%s.length){",p,p)("d%s=[]",p)("for(var j=0;j<m%s.length;++j){",p),pme(n,c,h,p+"[j]")("}")):(n("if(m%s!=null&&m.hasOwnProperty(%j)){",p,c.name),pme(n,c,h,p),c.partOf&&n("if(o.oneofs)")("d%s=%j",Th.safeProp(c.partOf.name),c.name)),n("}")}return n("return d")}});var dme=b(Hut=>{"use strict";var B_r=Hut,M_r=ZL();B_r[".google.protobuf.Any"]={fromObject:function(e){if(e&&e["@type"]){var t=e["@type"].substring(e["@type"].lastIndexOf("/")+1),r=this.lookup(t);if(r){var n=e["@type"].charAt(0)==="."?e["@type"].slice(1):e["@type"];return n.indexOf("/")===-1&&(n="/"+n),this.create({type_url:n,value:r.encode(r.fromObject(e)).finish()})}}return this.fromObject(e)},toObject:function(e,t){var r="type.googleapis.com/",n="",i="";if(t&&t.json&&e.type_url&&e.value){i=e.type_url.substring(e.type_url.lastIndexOf("/")+1),n=e.type_url.substring(0,e.type_url.lastIndexOf("/")+1);var a=this.lookup(i);a&&(e=a.decode(e.value))}if(!(e instanceof this.ctor)&&e instanceof M_r){var s=e.$type.toObject(e,t),o=e.$type.fullName[0]==="."?e.$type.fullName.slice(1):e.$type.fullName;return n===""&&(n=r),i=n+o,s["@type"]=i,s}return this.toObject(e,t)}}});var r$=b((Ncn,Gut)=>{"use strict";Gut.exports=Qi;var Yf=h8();((Qi.prototype=Object.create(Yf.prototype)).constructor=Qi).className="Type";var U_r=Kf(),gme=p8(),e$=Sv(),z_r=JL(),H_r=QL(),hme=ZL(),mme=VL(),V_r=zL(),xu=go(),G_r=vme(),W_r=sme(),K_r=cme(),Vut=fme(),Y_r=dme();function Qi(e,t){Yf.call(this,e,t),this.fields={},this.oneofs=void 0,this.extensions=void 0,this.reserved=void 0,this.group=void 0,this._fieldsById=null,this._fieldsArray=null,this._oneofsArray=null,this._ctor=null}Object.defineProperties(Qi.prototype,{fieldsById:{get:function(){if(this._fieldsById)return this._fieldsById;this._fieldsById={};for(var e=Object.keys(this.fields),t=0;t<e.length;++t){var r=this.fields[e[t]],n=r.id;if(this._fieldsById[n])throw Error("duplicate id "+n+" in "+this);this._fieldsById[n]=r}return this._fieldsById}},fieldsArray:{get:function(){return this._fieldsArray||(this._fieldsArray=xu.toArray(this.fields))}},oneofsArray:{get:function(){return this._oneofsArray||(this._oneofsArray=xu.toArray(this.oneofs))}},ctor:{get:function(){return this._ctor||(this.ctor=Qi.generateConstructor(this)())},set:function(e){var t=e.prototype;t instanceof hme||((e.prototype=new hme).constructor=e,xu.merge(e.prototype,t)),e.$type=e.prototype.$type=this,xu.merge(e,hme,!0),this._ctor=e;for(var r=0;r<this.fieldsArray.length;++r)this._fieldsArray[r].resolve();var n={};for(r=0;r<this.oneofsArray.length;++r)n[this._oneofsArray[r].resolve().name]={get:xu.oneOfGetter(this._oneofsArray[r].oneof),set:xu.oneOfSetter(this._oneofsArray[r].oneof)};r&&Object.defineProperties(e.prototype,n)}}});Qi.generateConstructor=function(t){for(var r=xu.codegen(["p"],t.name),n=0,i;n<t.fieldsArray.length;++n)(i=t._fieldsArray[n]).map?r("this%s={}",xu.safeProp(i.name)):i.repeated&&r("this%s=[]",xu.safeProp(i.name));return r("if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)")("this[ks[i]]=p[ks[i]]")};function t$(e){return e._fieldsById=e._fieldsArray=e._oneofsArray=null,delete e.encode,delete e.decode,delete e.verify,e}Qi.fromJSON=function(t,r){var n=new Qi(t,r.options);n.extensions=r.extensions,n.reserved=r.reserved;for(var i=Object.keys(r.fields),a=0;a<i.length;++a)n.add((typeof r.fields[i[a]].keyType<"u"?z_r.fromJSON:e$.fromJSON)(i[a],r.fields[i[a]]));if(r.oneofs)for(i=Object.keys(r.oneofs),a=0;a<i.length;++a)n.add(gme.fromJSON(i[a],r.oneofs[i[a]]));if(r.nested)for(i=Object.keys(r.nested),a=0;a<i.length;++a){var s=r.nested[i[a]];n.add((s.id!==void 0?e$.fromJSON:s.fields!==void 0?Qi.fromJSON:s.values!==void 0?U_r.fromJSON:s.methods!==void 0?H_r.fromJSON:Yf.fromJSON)(i[a],s))}return r.extensions&&r.extensions.length&&(n.extensions=r.extensions),r.reserved&&r.reserved.length&&(n.reserved=r.reserved),r.group&&(n.group=!0),r.comment&&(n.comment=r.comment),n};Qi.prototype.toJSON=function(t){var r=Yf.prototype.toJSON.call(this,t),n=t?!!t.keepComments:!1;return xu.toObject(["options",r&&r.options||void 0,"oneofs",Yf.arrayToJSON(this.oneofsArray,t),"fields",Yf.arrayToJSON(this.fieldsArray.filter(function(i){return!i.declaringField}),t)||{},"extensions",this.extensions&&this.extensions.length?this.extensions:void 0,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"group",this.group||void 0,"nested",r&&r.nested||void 0,"comment",n?this.comment:void 0])};Qi.prototype.resolveAll=function(){for(var t=this.fieldsArray,r=0;r<t.length;)t[r++].resolve();var n=this.oneofsArray;for(r=0;r<n.length;)n[r++].resolve();return Yf.prototype.resolveAll.call(this)};Qi.prototype.get=function(t){return this.fields[t]||this.oneofs&&this.oneofs[t]||this.nested&&this.nested[t]||null};Qi.prototype.add=function(t){if(this.get(t.name))throw Error("duplicate name '"+t.name+"' in "+this);if(t instanceof e$&&t.extend===void 0){if(this._fieldsById?this._fieldsById[t.id]:this.fieldsById[t.id])throw Error("duplicate id "+t.id+" in "+this);if(this.isReservedId(t.id))throw Error("id "+t.id+" is reserved in "+this);if(this.isReservedName(t.name))throw Error("name '"+t.name+"' is reserved in "+this);return t.parent&&t.parent.remove(t),this.fields[t.name]=t,t.message=this,t.onAdd(this),t$(this)}return t instanceof gme?(this.oneofs||(this.oneofs={}),this.oneofs[t.name]=t,t.onAdd(this),t$(this)):Yf.prototype.add.call(this,t)};Qi.prototype.remove=function(t){if(t instanceof e$&&t.extend===void 0){if(!this.fields||this.fields[t.name]!==t)throw Error(t+" is not a member of "+this);return delete this.fields[t.name],t.parent=null,t.onRemove(this),t$(this)}if(t instanceof gme){if(!this.oneofs||this.oneofs[t.name]!==t)throw Error(t+" is not a member of "+this);return delete this.oneofs[t.name],t.parent=null,t.onRemove(this),t$(this)}return Yf.prototype.remove.call(this,t)};Qi.prototype.isReservedId=function(t){return Yf.isReservedId(this.reserved,t)};Qi.prototype.isReservedName=function(t){return Yf.isReservedName(this.reserved,t)};Qi.prototype.create=function(t){return new this.ctor(t)};Qi.prototype.setup=function(){for(var t=this.fullName,r=[],n=0;n<this.fieldsArray.length;++n)r.push(this._fieldsArray[n].resolve().resolvedType);this.encode=G_r(this)({Writer:V_r,types:r,util:xu}),this.decode=W_r(this)({Reader:mme,types:r,util:xu}),this.verify=K_r(this)({types:r,util:xu}),this.fromObject=Vut.fromObject(this)({types:r,util:xu}),this.toObject=Vut.toObject(this)({types:r,util:xu});var i=Y_r[t];if(i){var a=Object.create(this);a.fromObject=this.fromObject,this.fromObject=i.fromObject.bind(a),a.toObject=this.toObject,this.toObject=i.toObject.bind(a)}return this};Qi.prototype.encode=function(t,r){return this.setup().encode(t,r)};Qi.prototype.encodeDelimited=function(t,r){return this.encode(t,r&&r.len?r.fork():r).ldelim()};Qi.prototype.decode=function(t,r){return this.setup().decode(t,r)};Qi.prototype.decodeDelimited=function(t){return t instanceof mme||(t=mme.create(t)),this.decode(t,t.uint32())};Qi.prototype.verify=function(t){return this.setup().verify(t)};Qi.prototype.fromObject=function(t){return this.setup().fromObject(t)};Qi.prototype.toObject=function(t,r){return this.setup().toObject(t,r)};Qi.d=function(t){return function(n){xu.decorateType(n,t)}}});var a$=b((qcn,Xut)=>{"use strict";Xut.exports=Sl;var i$=h8();((Sl.prototype=Object.create(i$.prototype)).constructor=Sl).className="Root";var bme=Sv(),Kut=Kf(),J_r=p8(),Av=go(),Yut,yme,cT;function Sl(e){i$.call(this,"",e),this.deferred=[],this.files=[]}Sl.fromJSON=function(t,r){return r||(r=new Sl),t.options&&r.setOptions(t.options),r.addJSON(t.nested)};Sl.prototype.resolvePath=Av.path.resolve;Sl.prototype.fetch=Av.fetch;function Jut(){}Sl.prototype.load=function e(t,r,n){typeof r=="function"&&(n=r,r=void 0);var i=this;if(!n)return Av.asPromise(e,i,t,r);var a=n===Jut;function s(g,v){if(n){if(a)throw g;var y=n;n=null,y(g,v)}}function o(g){var v=g.lastIndexOf("google/protobuf/");if(v>-1){var y=g.substring(v);if(y in cT)return y}return null}function c(g,v){try{if(Av.isString(v)&&v.charAt(0)==="{"&&(v=JSON.parse(v)),!Av.isString(v))i.setOptions(v.options).addJSON(v.nested);else{yme.filename=g;var y=yme(v,i,r),_,x=0;if(y.imports)for(;x<y.imports.length;++x)(_=o(y.imports[x])||i.resolvePath(g,y.imports[x]))&&p(_);if(y.weakImports)for(x=0;x<y.weakImports.length;++x)(_=o(y.weakImports[x])||i.resolvePath(g,y.weakImports[x]))&&p(_,!0)}}catch(A){s(A)}!a&&!f&&s(null,i)}function p(g,v){if(g=o(g)||g,!(i.files.indexOf(g)>-1)){if(i.files.push(g),g in cT){a?c(g,cT[g]):(++f,setTimeout(function(){--f,c(g,cT[g])}));return}if(a){var y;try{y=Av.fs.readFileSync(g).toString("utf8")}catch(_){v||s(_);return}c(g,y)}else++f,i.fetch(g,function(_,x){if(--f,!!n){if(_){v?f||s(null,i):s(_);return}c(g,x)}})}}var f=0;Av.isString(t)&&(t=[t]);for(var d=0,h;d<t.length;++d)(h=i.resolvePath("",t[d]))&&p(h);if(a)return i;f||s(null,i)};Sl.prototype.loadSync=function(t,r){if(!Av.isNode)throw Error("not supported");return this.load(t,r,Jut)};Sl.prototype.resolveAll=function(){if(this.deferred.length)throw Error("unresolvable extensions: "+this.deferred.map(function(t){return"'extend "+t.extend+"' in "+t.parent.fullName}).join(", "));return i$.prototype.resolveAll.call(this)};var n$=/^[A-Z]/;function Wut(e,t){var r=t.parent.lookup(t.extend);if(r){var n=new bme(t.fullName,t.id,t.type,t.rule,void 0,t.options);return r.get(n.name)||(n.declaringField=t,t.extensionField=n,r.add(n)),!0}return!1}Sl.prototype._handleAdd=function(t){if(t instanceof bme)t.extend!==void 0&&!t.extensionField&&(Wut(this,t)||this.deferred.push(t));else if(t instanceof Kut)n$.test(t.name)&&(t.parent[t.name]=t.values);else if(!(t instanceof J_r)){if(t instanceof Yut)for(var r=0;r<this.deferred.length;)Wut(this,this.deferred[r])?this.deferred.splice(r,1):++r;for(var n=0;n<t.nestedArray.length;++n)this._handleAdd(t._nestedArray[n]);n$.test(t.name)&&(t.parent[t.name]=t)}};Sl.prototype._handleRemove=function(t){if(t instanceof bme){if(t.extend!==void 0)if(t.extensionField)t.extensionField.parent.remove(t.extensionField),t.extensionField=null;else{var r=this.deferred.indexOf(t);r>-1&&this.deferred.splice(r,1)}}else if(t instanceof Kut)n$.test(t.name)&&delete t.parent[t.name];else if(t instanceof i$){for(var n=0;n<t.nestedArray.length;++n)this._handleRemove(t._nestedArray[n]);n$.test(t.name)&&delete t.parent[t.name]}};Sl._configure=function(e,t,r){Yut=e,yme=t,cT=r}});var go=b((Lcn,Zut)=>{"use strict";var gs=Zut.exports=Sh(),Qut=Zhe(),wme,_me;gs.codegen=sde();gs.fetch=ude();gs.path=pde();gs.fs=gs.inquire("fs");gs.toArray=function(t){if(t){for(var r=Object.keys(t),n=new Array(r.length),i=0;i<r.length;)n[i]=t[r[i++]];return n}return[]};gs.toObject=function(t){for(var r={},n=0;n<t.length;){var i=t[n++],a=t[n++];a!==void 0&&(r[i]=a)}return r};var X_r=/\\/g,Q_r=/"/g;gs.isReserved=function(t){return/^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(t)};gs.safeProp=function(t){return!/^[$\w_]+$/.test(t)||gs.isReserved(t)?'["'+t.replace(X_r,"\\\\").replace(Q_r,'\\"')+'"]':"."+t};gs.ucFirst=function(t){return t.charAt(0).toUpperCase()+t.substring(1)};var Z_r=/_([a-z])/g;gs.camelCase=function(t){return t.substring(0,1)+t.substring(1).replace(Z_r,function(r,n){return n.toUpperCase()})};gs.compareFieldsById=function(t,r){return t.id-r.id};gs.decorateType=function(t,r){if(t.$type)return r&&t.$type.name!==r&&(gs.decorateRoot.remove(t.$type),t.$type.name=r,gs.decorateRoot.add(t.$type)),t.$type;wme||(wme=r$());var n=new wme(r||t.name);return gs.decorateRoot.add(n),n.ctor=t,Object.defineProperty(t,"$type",{value:n,enumerable:!1}),Object.defineProperty(t.prototype,"$type",{value:n,enumerable:!1}),n};var e6r=0;gs.decorateEnum=function(t){if(t.$type)return t.$type;_me||(_me=Kf());var r=new _me("Enum"+e6r++,t);return gs.decorateRoot.add(r),Object.defineProperty(t,"$type",{value:r,enumerable:!1}),r};gs.setProperty=function(t,r,n){function i(a,s,o){var c=s.shift();if(c==="__proto__"||c==="prototype")return a;if(s.length>0)a[c]=i(a[c]||{},s,o);else{var p=a[c];p&&(o=[].concat(p).concat(o)),a[c]=o}return a}if(typeof t!="object")throw TypeError("dst must be an object");if(!r)throw TypeError("path must be specified");return r=r.split("."),i(t,r,n)};Object.defineProperty(gs,"decorateRoot",{get:function(){return Qut.decorated||(Qut.decorated=new(a$()))}})});var Fw=b(($cn,ect)=>{"use strict";ect.exports=kl;kl.className="ReflectionObject";var s$=go(),o$;function kl(e,t){if(!s$.isString(e))throw TypeError("name must be a string");if(t&&!s$.isObject(t))throw TypeError("options must be an object");this.options=t,this.parsedOptions=null,this.name=e,this.parent=null,this.resolved=!1,this.comment=null,this.filename=null}Object.defineProperties(kl.prototype,{root:{get:function(){for(var e=this;e.parent!==null;)e=e.parent;return e}},fullName:{get:function(){for(var e=[this.name],t=this.parent;t;)e.unshift(t.name),t=t.parent;return e.join(".")}}});kl.prototype.toJSON=function(){throw Error()};kl.prototype.onAdd=function(t){this.parent&&this.parent!==t&&this.parent.remove(this),this.parent=t,this.resolved=!1;var r=t.root;r instanceof o$&&r._handleAdd(this)};kl.prototype.onRemove=function(t){var r=t.root;r instanceof o$&&r._handleRemove(this),this.parent=null,this.resolved=!1};kl.prototype.resolve=function(){return this.resolved?this:(this.root instanceof o$&&(this.resolved=!0),this)};kl.prototype.getOption=function(t){if(this.options)return this.options[t]};kl.prototype.setOption=function(t,r,n){return(!n||!this.options||this.options[t]===void 0)&&((this.options||(this.options={}))[t]=r),this};kl.prototype.setParsedOption=function(t,r,n){this.parsedOptions||(this.parsedOptions=[]);var i=this.parsedOptions;if(n){var a=i.find(function(c){return Object.prototype.hasOwnProperty.call(c,t)});if(a){var s=a[t];s$.setProperty(s,n,r)}else a={},a[t]=s$.setProperty({},n,r),i.push(a)}else{var o={};o[t]=r,i.push(o)}return this};kl.prototype.setOptions=function(t,r){if(t)for(var n=Object.keys(t),i=0;i<n.length;++i)this.setOption(n[i],t[n[i]],r);return this};kl.prototype.toString=function(){var t=this.constructor.className,r=this.fullName;return r.length?t+" "+r:t};kl._configure=function(e){o$=e}});var Kf=b((Bcn,nct)=>{"use strict";nct.exports=Oh;var tct=Fw();((Oh.prototype=Object.create(tct.prototype)).constructor=Oh).className="Enum";var rct=h8(),u$=go();function Oh(e,t,r,n,i,a){if(tct.call(this,e,r),t&&typeof t!="object")throw TypeError("values must be an object");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comment=n,this.comments=i||{},this.valuesOptions=a,this.reserved=void 0,t)for(var s=Object.keys(t),o=0;o<s.length;++o)typeof t[s[o]]=="number"&&(this.valuesById[this.values[s[o]]=t[s[o]]]=s[o])}Oh.fromJSON=function(t,r){var n=new Oh(t,r.values,r.options,r.comment,r.comments);return n.reserved=r.reserved,n};Oh.prototype.toJSON=function(t){var r=t?!!t.keepComments:!1;return u$.toObject(["options",this.options,"valuesOptions",this.valuesOptions,"values",this.values,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"comment",r?this.comment:void 0,"comments",r?this.comments:void 0])};Oh.prototype.add=function(t,r,n,i){if(!u$.isString(t))throw TypeError("name must be a string");if(!u$.isInteger(r))throw TypeError("id must be an integer");if(this.values[t]!==void 0)throw Error("duplicate name '"+t+"' in "+this);if(this.isReservedId(r))throw Error("id "+r+" is reserved in "+this);if(this.isReservedName(t))throw Error("name '"+t+"' is reserved in "+this);if(this.valuesById[r]!==void 0){if(!(this.options&&this.options.allow_alias))throw Error("duplicate id "+r+" in "+this);this.values[t]=r}else this.valuesById[this.values[t]=r]=t;return i&&(this.valuesOptions===void 0&&(this.valuesOptions={}),this.valuesOptions[t]=i||null),this.comments[t]=n||null,this};Oh.prototype.remove=function(t){if(!u$.isString(t))throw TypeError("name must be a string");var r=this.values[t];if(r==null)throw Error("name '"+t+"' does not exist in "+this);return delete this.valuesById[r],delete this.values[t],delete this.comments[t],this.valuesOptions&&delete this.valuesOptions[t],this};Oh.prototype.isReservedId=function(t){return rct.isReservedId(this.reserved,t)};Oh.prototype.isReservedName=function(t){return rct.isReservedName(this.reserved,t)}});var vme=b((Mcn,act)=>{"use strict";act.exports=r6r;var t6r=Kf(),xme=Rw(),Eme=go();function ict(e,t,r,n){return t.resolvedType.group?e("types[%i].encode(%s,w.uint32(%i)).uint32(%i)",r,n,(t.id<<3|3)>>>0,(t.id<<3|4)>>>0):e("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()",r,n,(t.id<<3|2)>>>0)}function r6r(e){for(var t=Eme.codegen(["m","w"],e.name+"$encode")("if(!w)")("w=Writer.create()"),r,n,i=e.fieldsArray.slice().sort(Eme.compareFieldsById),r=0;r<i.length;++r){var a=i[r].resolve(),s=e._fieldsArray.indexOf(a),o=a.resolvedType instanceof t6r?"int32":a.type,c=xme.basic[o];n="m"+Eme.safeProp(a.name),a.map?(t("if(%s!=null&&Object.hasOwnProperty.call(m,%j)){",n,a.name)("for(var ks=Object.keys(%s),i=0;i<ks.length;++i){",n)("w.uint32(%i).fork().uint32(%i).%s(ks[i])",(a.id<<3|2)>>>0,8|xme.mapKey[a.keyType],a.keyType),c===void 0?t("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",s,n):t(".uint32(%i).%s(%s[ks[i]]).ldelim()",16|c,o,n),t("}")("}")):a.repeated?(t("if(%s!=null&&%s.length){",n,n),a.packed&&xme.packed[o]!==void 0?t("w.uint32(%i).fork()",(a.id<<3|2)>>>0)("for(var i=0;i<%s.length;++i)",n)("w.%s(%s[i])",o,n)("w.ldelim()"):(t("for(var i=0;i<%s.length;++i)",n),c===void 0?ict(t,a,s,n+"[i]"):t("w.uint32(%i).%s(%s[i])",(a.id<<3|c)>>>0,o,n)),t("}")):(a.optional&&t("if(%s!=null&&Object.hasOwnProperty.call(m,%j))",n,a.name),c===void 0?ict(t,a,s,n):t("w.uint32(%i).%s(%s)",(a.id<<3|c)>>>0,o,n))}return t("return w")}});var oct=b((Ucn,sct)=>{"use strict";var In=sct.exports=eme();In.build="light";function n6r(e,t,r){return typeof t=="function"?(r=t,t=new In.Root):t||(t=new In.Root),t.load(e,r)}In.load=n6r;function i6r(e,t){return t||(t=new In.Root),t.loadSync(e)}In.loadSync=i6r;In.encoder=vme();In.decoder=sme();In.verifier=cme();In.converter=fme();In.ReflectionObject=Fw();In.Namespace=h8();In.Root=a$();In.Enum=Kf();In.Type=r$();In.Field=Sv();In.OneOf=p8();In.MapField=JL();In.Service=QL();In.Method=XL();In.Message=ZL();In.wrappers=dme();In.types=Rw();In.util=go();In.ReflectionObject._configure(In.Root);In.Namespace._configure(In.Type,In.Service,In.Enum);In.Root._configure(In.Type);In.Field._configure(In.Type)});var kme=b((zcn,lct)=>{"use strict";lct.exports=cct;var Sme=/[\s{}=;:[\],'"()<>]/g,a6r=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,s6r=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,o6r=/^ *[*/]+ */,u6r=/^\s*\*?\/*/,c6r=/\n/g,l6r=/\s/,p6r=/\\(.?)/g,f6r={0:"\0",r:"\r",n:`
`,t:"	"};function uct(e){return e.replace(p6r,function(t,r){switch(r){case"\\":case"":return r;default:return f6r[r]||""}})}cct.unescape=uct;function cct(e,t){e=e.toString();var r=0,n=e.length,i=1,a=0,s={},o=[],c=null;function p(j){return Error("illegal "+j+" (line "+i+")")}function f(){var j=c==="'"?s6r:a6r;j.lastIndex=r-1;var H=j.exec(e);if(!H)throw p("string");return r=j.lastIndex,_(c),c=null,uct(H[1])}function d(j){return e.charAt(j)}function h(j,H,F){var z={type:e.charAt(j++),lineEmpty:!1,leading:F},P;t?P=2:P=3;var M=j-P,K;do if(--M<0||(K=e.charAt(M))===`
`){z.lineEmpty=!0;break}while(K===" "||K==="	");for(var L=e.substring(j,H).split(c6r),ve=0;ve<L.length;++ve)L[ve]=L[ve].replace(t?u6r:o6r,"").trim();z.text=L.join(`
`).trim(),s[i]=z,a=i}function g(j){var H=v(j),F=e.substring(j,H),z=/^\s*\/\//.test(F);return z}function v(j){for(var H=j;H<n&&d(H)!==`
`;)H++;return H}function y(){if(o.length>0)return o.shift();if(c)return f();var j,H,F,z,P,M=r===0;do{if(r===n)return null;for(j=!1;l6r.test(F=d(r));)if(F===`
`&&(M=!0,++i),++r===n)return null;if(d(r)==="/"){if(++r===n)throw p("comment");if(d(r)==="/")if(t){if(z=r,P=!1,g(r-1)){P=!0;do if(r=v(r),r===n||(r++,!M))break;while(g(r))}else r=Math.min(n,v(r)+1);P&&(h(z,r,M),M=!0),i++,j=!0}else{for(P=d(z=r+1)==="/";d(++r)!==`
`;)if(r===n)return null;++r,P&&(h(z,r-1,M),M=!0),++i,j=!0}else if((F=d(r))==="*"){z=r+1,P=t||d(z)==="*";do{if(F===`
`&&++i,++r===n)throw p("comment");H=F,F=d(r)}while(H!=="*"||F!=="/");++r,P&&(h(z,r-2,M),M=!0),j=!0}else return"/"}}while(j);var K=r;Sme.lastIndex=0;var L=Sme.test(d(K++));if(!L)for(;K<n&&!Sme.test(d(K));)++K;var ve=e.substring(r,r=K);return(ve==='"'||ve==="'")&&(c=ve),ve}function _(j){o.push(j)}function x(){if(!o.length){var j=y();if(j===null)return null;_(j)}return o[0]}function A(j,H){var F=x(),z=F===j;if(z)return y(),!0;if(!H)throw p("token '"+F+"', '"+j+"' expected");return!1}function D(j){var H=null,F;return j===void 0?(F=s[i-1],delete s[i-1],F&&(t||F.type==="*"||F.lineEmpty)&&(H=F.leading?F.text:null)):(a<j&&x(),F=s[j],delete s[j],F&&!F.lineEmpty&&(t||F.type==="/")&&(H=F.leading?null:F.text)),H}return Object.defineProperty({next:y,peek:x,push:_,skip:A,cmnt:D},"line",{get:function(){return i}})}});var gct=b((Hcn,mct)=>{"use strict";mct.exports=Q1;Q1.filename=null;Q1.defaults={keepCase:!1};var d6r=kme(),pct=a$(),fct=r$(),dct=Sv(),h6r=JL(),hct=p8(),m6r=Kf(),g6r=QL(),v6r=XL(),Ame=Rw(),Tme=go(),y6r=/^[1-9][0-9]*$/,b6r=/^-?[1-9][0-9]*$/,w6r=/^0[x][0-9a-fA-F]+$/,_6r=/^-?0[x][0-9a-fA-F]+$/,x6r=/^0[0-7]+$/,E6r=/^-?0[0-7]+$/,S6r=/^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/,Dh=/^[a-zA-Z_][a-zA-Z_0-9]*$/,Ch=/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,k6r=/^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/;function Q1(e,t,r){t instanceof pct||(r=t,t=new pct),r||(r=Q1.defaults);var n=r.preferTrailingComment||!1,i=d6r(e,r.alternateCommentMode||!1),a=i.next,s=i.push,o=i.peek,c=i.skip,p=i.cmnt,f=!0,d,h,g,v,y=!1,_=t,x=r.keepCase?function(S){return S}:Tme.camelCase;function A(S,I,B){var se=Q1.filename;return B||(Q1.filename=null),Error("illegal "+(I||"token")+" '"+S+"' ("+(se?se+", ":"")+"line "+i.line+")")}function D(){var S=[],I;do{if((I=a())!=='"'&&I!=="'")throw A(I);S.push(a()),c(I),I=o()}while(I==='"'||I==="'");return S.join("")}function j(S){var I=a();switch(I){case"'":case'"':return s(I),D();case"true":case"TRUE":return!0;case"false":case"FALSE":return!1}try{return F(I,!0)}catch{if(S&&Ch.test(I))return I;throw A(I,"value")}}function H(S,I){var B,se;do I&&((B=o())==='"'||B==="'")?S.push(D()):S.push([se=z(a()),c("to",!0)?z(a()):se]);while(c(",",!0));var ae={options:void 0};ae.setOption=function(me,Se){this.options===void 0&&(this.options={}),this.options[me]=Se},ve(ae,function(Se){if(Se==="option")de(ae,Se),c(";");else throw A(Se)},function(){ce(ae)})}function F(S,I){var B=1;switch(S.charAt(0)==="-"&&(B=-1,S=S.substring(1)),S){case"inf":case"INF":case"Inf":return B*(1/0);case"nan":case"NAN":case"Nan":case"NaN":return NaN;case"0":return 0}if(y6r.test(S))return B*parseInt(S,10);if(w6r.test(S))return B*parseInt(S,16);if(x6r.test(S))return B*parseInt(S,8);if(S6r.test(S))return B*parseFloat(S);throw A(S,"number",I)}function z(S,I){switch(S){case"max":case"MAX":case"Max":return 536870911;case"0":return 0}if(!I&&S.charAt(0)==="-")throw A(S,"id");if(b6r.test(S))return parseInt(S,10);if(_6r.test(S))return parseInt(S,16);if(E6r.test(S))return parseInt(S,8);throw A(S,"id")}function P(){if(d!==void 0)throw A("package");if(d=a(),!Ch.test(d))throw A(d,"name");_=_.define(d),c(";")}function M(){var S=o(),I;switch(S){case"weak":I=g||(g=[]),a();break;case"public":a();default:I=h||(h=[]);break}S=D(),c(";"),I.push(S)}function K(){if(c("="),v=D(),y=v==="proto3",!y&&v!=="proto2")throw A(v,"syntax");t.setOption("syntax",v),c(";")}function L(S,I){switch(I){case"option":return de(S,I),c(";"),!0;case"message":return U(S,I),!0;case"enum":return ne(S,I),!0;case"service":return ye(S,I),!0;case"extend":return $(S,I),!0}return!1}function ve(S,I,B){var se=i.line;if(S&&(typeof S.comment!="string"&&(S.comment=p()),S.filename=Q1.filename),c("{",!0)){for(var ae;(ae=a())!=="}";)I(ae);c(";",!0)}else B&&B(),c(";"),S&&(typeof S.comment!="string"||n)&&(S.comment=p(se)||S.comment)}function U(S,I){if(!Dh.test(I=a()))throw A(I,"type name");var B=new fct(I);ve(B,function(ae){if(!L(B,ae))switch(ae){case"map":ue(B,ae);break;case"required":case"repeated":N(B,ae);break;case"optional":y?N(B,"proto3_optional"):N(B,"optional");break;case"oneof":Q(B,ae);break;case"extensions":H(B.extensions||(B.extensions=[]));break;case"reserved":H(B.reserved||(B.reserved=[]),!0);break;default:if(!y||!Ch.test(ae))throw A(ae);s(ae),N(B,"optional");break}}),S.add(B)}function N(S,I,B){var se=a();if(se==="group"){re(S,I);return}for(;se.endsWith(".")||o().startsWith(".");)se+=a();if(!Ch.test(se))throw A(se,"type");var ae=a();if(!Dh.test(ae))throw A(ae,"name");ae=x(ae),c("=");var me=new dct(ae,z(a()),se,I,B);if(ve(me,function(De){if(De==="option")de(me,De),c(";");else throw A(De)},function(){ce(me)}),I==="proto3_optional"){var Se=new hct("_"+ae);me.setOption("proto3_optional",!0),Se.add(me),S.add(Se)}else S.add(me);!y&&me.repeated&&(Ame.packed[se]!==void 0||Ame.basic[se]===void 0)&&me.setOption("packed",!1,!0)}function re(S,I){var B=a();if(!Dh.test(B))throw A(B,"name");var se=Tme.lcFirst(B);B===se&&(B=Tme.ucFirst(B)),c("=");var ae=z(a()),me=new fct(B);me.group=!0;var Se=new dct(se,ae,B,I);Se.filename=Q1.filename,ve(me,function(De){switch(De){case"option":de(me,De),c(";");break;case"required":case"repeated":N(me,De);break;case"optional":y?N(me,"proto3_optional"):N(me,"optional");break;case"message":U(me,De);break;case"enum":ne(me,De);break;default:throw A(De)}}),S.add(me).add(Se)}function ue(S){c("<");var I=a();if(Ame.mapKey[I]===void 0)throw A(I,"type");c(",");var B=a();if(!Ch.test(B))throw A(B,"type");c(">");var se=a();if(!Dh.test(se))throw A(se,"name");c("=");var ae=new h6r(x(se),z(a()),I,B);ve(ae,function(Se){if(Se==="option")de(ae,Se),c(";");else throw A(Se)},function(){ce(ae)}),S.add(ae)}function Q(S,I){if(!Dh.test(I=a()))throw A(I,"name");var B=new hct(x(I));ve(B,function(ae){ae==="option"?(de(B,ae),c(";")):(s(ae),N(B,"optional"))}),S.add(B)}function ne(S,I){if(!Dh.test(I=a()))throw A(I,"name");var B=new m6r(I);ve(B,function(ae){switch(ae){case"option":de(B,ae),c(";");break;case"reserved":H(B.reserved||(B.reserved=[]),!0);break;default:G(B,ae)}}),S.add(B)}function G(S,I){if(!Dh.test(I))throw A(I,"name");c("=");var B=z(a(),!0),se={options:void 0};se.setOption=function(ae,me){this.options===void 0&&(this.options={}),this.options[ae]=me},ve(se,function(me){if(me==="option")de(se,me),c(";");else throw A(me)},function(){ce(se)}),S.add(I,B,se.comment,se.options)}function de(S,I){var B=c("(",!0);if(!Ch.test(I=a()))throw A(I,"name");var se=I,ae=se,me;B&&(c(")"),se="("+se+")",ae=se,I=o(),k6r.test(I)&&(me=I.slice(1),se+=I,a())),c("=");var Se=xe(S,se);V(S,ae,Se,me)}function xe(S,I){if(c("{",!0)){for(var B={};!c("}",!0);){if(!Dh.test(ke=a()))throw A(ke,"name");if(ke===null)throw A(ke,"end of input");var se,ae=ke;if(c(":",!0),o()==="{")se=xe(S,I+"."+ke);else if(o()==="["){se=[];var me;if(c("[",!0)){do me=j(!0),se.push(me);while(c(",",!0));c("]"),typeof me<"u"&&ge(S,I+"."+ke,me)}}else se=j(!0),ge(S,I+"."+ke,se);var Se=B[ae];Se&&(se=[].concat(Se).concat(se)),B[ae]=se,c(",",!0),c(";",!0)}return B}var Ee=j(!0);return ge(S,I,Ee),Ee}function ge(S,I,B){S.setOption&&S.setOption(I,B)}function V(S,I,B,se){S.setParsedOption&&S.setParsedOption(I,B,se)}function ce(S){if(c("[",!0)){do de(S,"option");while(c(",",!0));c("]")}return S}function ye(S,I){if(!Dh.test(I=a()))throw A(I,"service name");var B=new g6r(I);ve(B,function(ae){if(!L(B,ae))if(ae==="rpc")R(B,ae);else throw A(ae)}),S.add(B)}function R(S,I){var B=p(),se=I;if(!Dh.test(I=a()))throw A(I,"name");var ae=I,me,Se,Ee,De;if(c("("),c("stream",!0)&&(Se=!0),!Ch.test(I=a())||(me=I,c(")"),c("returns"),c("("),c("stream",!0)&&(De=!0),!Ch.test(I=a())))throw A(I);Ee=I,c(")");var Le=new v6r(ae,se,me,Ee,Se,De);Le.comment=B,ve(Le,function(Ve){if(Ve==="option")de(Le,Ve),c(";");else throw A(Ve)}),S.add(Le)}function $(S,I){if(!Ch.test(I=a()))throw A(I,"reference");var B=I;ve(null,function(ae){switch(ae){case"required":case"repeated":N(S,ae,B);break;case"optional":y?N(S,"proto3_optional",B):N(S,"optional",B);break;default:if(!y||!Ch.test(ae))throw A(ae);s(ae),N(S,"optional",B);break}})}for(var ke;(ke=a())!==null;)switch(ke){case"package":if(!f)throw A(ke);P();break;case"import":if(!f)throw A(ke);M();break;case"syntax":if(!f)throw A(ke);K();break;case"option":de(_,ke),c(";");break;default:if(L(_,ke)){f=!1;continue}throw A(ke)}return Q1.filename=null,{package:d,imports:h,weakImports:g,syntax:v,root:t}}});var bct=b((Vcn,yct)=>{"use strict";yct.exports=Jf;var A6r=/\/|\./;function Jf(e,t){A6r.test(e)||(e="google/protobuf/"+e+".proto",t={nested:{google:{nested:{protobuf:{nested:t}}}}}),Jf[e]=t}Jf("any",{Any:{fields:{type_url:{type:"string",id:1},value:{type:"bytes",id:2}}}});var vct;Jf("duration",{Duration:vct={fields:{seconds:{type:"int64",id:1},nanos:{type:"int32",id:2}}}});Jf("timestamp",{Timestamp:vct});Jf("empty",{Empty:{fields:{}}});Jf("struct",{Struct:{fields:{fields:{keyType:"string",type:"Value",id:1}}},Value:{oneofs:{kind:{oneof:["nullValue","numberValue","stringValue","boolValue","structValue","listValue"]}},fields:{nullValue:{type:"NullValue",id:1},numberValue:{type:"double",id:2},stringValue:{type:"string",id:3},boolValue:{type:"bool",id:4},structValue:{type:"Struct",id:5},listValue:{type:"ListValue",id:6}}},NullValue:{values:{NULL_VALUE:0}},ListValue:{fields:{values:{rule:"repeated",type:"Value",id:1}}}});Jf("wrappers",{DoubleValue:{fields:{value:{type:"double",id:1}}},FloatValue:{fields:{value:{type:"float",id:1}}},Int64Value:{fields:{value:{type:"int64",id:1}}},UInt64Value:{fields:{value:{type:"uint64",id:1}}},Int32Value:{fields:{value:{type:"int32",id:1}}},UInt32Value:{fields:{value:{type:"uint32",id:1}}},BoolValue:{fields:{value:{type:"bool",id:1}}},StringValue:{fields:{value:{type:"string",id:1}}},BytesValue:{fields:{value:{type:"bytes",id:1}}}});Jf("field_mask",{FieldMask:{fields:{paths:{rule:"repeated",type:"string",id:1}}}});Jf.get=function(t){return Jf[t]||null}});var _ct=b((Gcn,wct)=>{"use strict";var Tv=wct.exports=oct();Tv.build="full";Tv.tokenize=kme();Tv.parse=gct();Tv.common=bct();Tv.Root._configure(Tv.Type,Tv.parse,Tv.common)});var c$=b((Wcn,xct)=>{"use strict";xct.exports=_ct()});var l$=b((lT,Ome)=>{(function(e,t){function r(n){return"default"in n?n.default:n}typeof define=="function"&&define.amd?define([],function(){var n={};return t(n),r(n)}):typeof lT=="object"?(t(lT),typeof Ome=="object"&&(Ome.exports=r(lT))):function(){var n={};t(n),e.Long=r(n)}()})(typeof globalThis<"u"?globalThis:typeof self<"u"?self:lT,function(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=null;try{t=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function r(U,N,re){this.low=U|0,this.high=N|0,this.unsigned=!!re}r.prototype.__isLong__,Object.defineProperty(r.prototype,"__isLong__",{value:!0});function n(U){return(U&&U.__isLong__)===!0}function i(U){var N=Math.clz32(U&-U);return U?31-N:N}r.isLong=n;var a={},s={};function o(U,N){var re,ue,Q;return N?(U>>>=0,(Q=0<=U&&U<256)&&(ue=s[U],ue)?ue:(re=p(U,0,!0),Q&&(s[U]=re),re)):(U|=0,(Q=-128<=U&&U<128)&&(ue=a[U],ue)?ue:(re=p(U,U<0?-1:0,!1),Q&&(a[U]=re),re))}r.fromInt=o;function c(U,N){if(isNaN(U))return N?j:D;if(N){if(U<0)return j;if(U>=_)return M}else{if(U<=-x)return K;if(U+1>=x)return P}return U<0?c(-U,N).neg():p(U%y|0,U/y|0,N)}r.fromNumber=c;function p(U,N,re){return new r(U,N,re)}r.fromBits=p;var f=Math.pow;function d(U,N,re){if(U.length===0)throw Error("empty string");if(typeof N=="number"?(re=N,N=!1):N=!!N,U==="NaN"||U==="Infinity"||U==="+Infinity"||U==="-Infinity")return N?j:D;if(re=re||10,re<2||36<re)throw RangeError("radix");var ue;if((ue=U.indexOf("-"))>0)throw Error("interior hyphen");if(ue===0)return d(U.substring(1),N,re).neg();for(var Q=c(f(re,8)),ne=D,G=0;G<U.length;G+=8){var de=Math.min(8,U.length-G),xe=parseInt(U.substring(G,G+de),re);if(de<8){var ge=c(f(re,de));ne=ne.mul(ge).add(c(xe))}else ne=ne.mul(Q),ne=ne.add(c(xe))}return ne.unsigned=N,ne}r.fromString=d;function h(U,N){return typeof U=="number"?c(U,N):typeof U=="string"?d(U,N):p(U.low,U.high,typeof N=="boolean"?N:U.unsigned)}r.fromValue=h;var g=65536,v=1<<24,y=g*g,_=y*y,x=_/2,A=o(v),D=o(0);r.ZERO=D;var j=o(0,!0);r.UZERO=j;var H=o(1);r.ONE=H;var F=o(1,!0);r.UONE=F;var z=o(-1);r.NEG_ONE=z;var P=p(-1,2147483647,!1);r.MAX_VALUE=P;var M=p(-1,-1,!0);r.MAX_UNSIGNED_VALUE=M;var K=p(0,-2147483648,!1);r.MIN_VALUE=K;var L=r.prototype;L.toInt=function(){return this.unsigned?this.low>>>0:this.low},L.toNumber=function(){return this.unsigned?(this.high>>>0)*y+(this.low>>>0):this.high*y+(this.low>>>0)},L.toString=function(N){if(N=N||10,N<2||36<N)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(K)){var re=c(N),ue=this.div(re),Q=ue.mul(re).sub(this);return ue.toString(N)+Q.toInt().toString(N)}else return"-"+this.neg().toString(N);for(var ne=c(f(N,6),this.unsigned),G=this,de="";;){var xe=G.div(ne),ge=G.sub(xe.mul(ne)).toInt()>>>0,V=ge.toString(N);if(G=xe,G.isZero())return V+de;for(;V.length<6;)V="0"+V;de=""+V+de}},L.getHighBits=function(){return this.high},L.getHighBitsUnsigned=function(){return this.high>>>0},L.getLowBits=function(){return this.low},L.getLowBitsUnsigned=function(){return this.low>>>0},L.getNumBitsAbs=function(){if(this.isNegative())return this.eq(K)?64:this.neg().getNumBitsAbs();for(var N=this.high!=0?this.high:this.low,re=31;re>0&&!(N&1<<re);re--);return this.high!=0?re+33:re+1},L.isSafeInteger=function(){var N=this.high>>21;return N?this.unsigned?!1:N===-1&&!(this.low===0&&this.high===-2097152):!0},L.isZero=function(){return this.high===0&&this.low===0},L.eqz=L.isZero,L.isNegative=function(){return!this.unsigned&&this.high<0},L.isPositive=function(){return this.unsigned||this.high>=0},L.isOdd=function(){return(this.low&1)===1},L.isEven=function(){return(this.low&1)===0},L.equals=function(N){return n(N)||(N=h(N)),this.unsigned!==N.unsigned&&this.high>>>31===1&&N.high>>>31===1?!1:this.high===N.high&&this.low===N.low},L.eq=L.equals,L.notEquals=function(N){return!this.eq(N)},L.neq=L.notEquals,L.ne=L.notEquals,L.lessThan=function(N){return this.comp(N)<0},L.lt=L.lessThan,L.lessThanOrEqual=function(N){return this.comp(N)<=0},L.lte=L.lessThanOrEqual,L.le=L.lessThanOrEqual,L.greaterThan=function(N){return this.comp(N)>0},L.gt=L.greaterThan,L.greaterThanOrEqual=function(N){return this.comp(N)>=0},L.gte=L.greaterThanOrEqual,L.ge=L.greaterThanOrEqual,L.compare=function(N){if(n(N)||(N=h(N)),this.eq(N))return 0;var re=this.isNegative(),ue=N.isNegative();return re&&!ue?-1:!re&&ue?1:this.unsigned?N.high>>>0>this.high>>>0||N.high===this.high&&N.low>>>0>this.low>>>0?-1:1:this.sub(N).isNegative()?-1:1},L.comp=L.compare,L.negate=function(){return!this.unsigned&&this.eq(K)?K:this.not().add(H)},L.neg=L.negate,L.add=function(N){n(N)||(N=h(N));var re=this.high>>>16,ue=this.high&65535,Q=this.low>>>16,ne=this.low&65535,G=N.high>>>16,de=N.high&65535,xe=N.low>>>16,ge=N.low&65535,V=0,ce=0,ye=0,R=0;return R+=ne+ge,ye+=R>>>16,R&=65535,ye+=Q+xe,ce+=ye>>>16,ye&=65535,ce+=ue+de,V+=ce>>>16,ce&=65535,V+=re+G,V&=65535,p(ye<<16|R,V<<16|ce,this.unsigned)},L.subtract=function(N){return n(N)||(N=h(N)),this.add(N.neg())},L.sub=L.subtract,L.multiply=function(N){if(this.isZero())return this;if(n(N)||(N=h(N)),t){var re=t.mul(this.low,this.high,N.low,N.high);return p(re,t.get_high(),this.unsigned)}if(N.isZero())return this.unsigned?j:D;if(this.eq(K))return N.isOdd()?K:D;if(N.eq(K))return this.isOdd()?K:D;if(this.isNegative())return N.isNegative()?this.neg().mul(N.neg()):this.neg().mul(N).neg();if(N.isNegative())return this.mul(N.neg()).neg();if(this.lt(A)&&N.lt(A))return c(this.toNumber()*N.toNumber(),this.unsigned);var ue=this.high>>>16,Q=this.high&65535,ne=this.low>>>16,G=this.low&65535,de=N.high>>>16,xe=N.high&65535,ge=N.low>>>16,V=N.low&65535,ce=0,ye=0,R=0,$=0;return $+=G*V,R+=$>>>16,$&=65535,R+=ne*V,ye+=R>>>16,R&=65535,R+=G*ge,ye+=R>>>16,R&=65535,ye+=Q*V,ce+=ye>>>16,ye&=65535,ye+=ne*ge,ce+=ye>>>16,ye&=65535,ye+=G*xe,ce+=ye>>>16,ye&=65535,ce+=ue*V+Q*ge+ne*xe+G*de,ce&=65535,p(R<<16|$,ce<<16|ye,this.unsigned)},L.mul=L.multiply,L.divide=function(N){if(n(N)||(N=h(N)),N.isZero())throw Error("division by zero");if(t){if(!this.unsigned&&this.high===-2147483648&&N.low===-1&&N.high===-1)return this;var re=(this.unsigned?t.div_u:t.div_s)(this.low,this.high,N.low,N.high);return p(re,t.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?j:D;var ue,Q,ne;if(this.unsigned){if(N.unsigned||(N=N.toUnsigned()),N.gt(this))return j;if(N.gt(this.shru(1)))return F;ne=j}else{if(this.eq(K)){if(N.eq(H)||N.eq(z))return K;if(N.eq(K))return H;var G=this.shr(1);return ue=G.div(N).shl(1),ue.eq(D)?N.isNegative()?H:z:(Q=this.sub(N.mul(ue)),ne=ue.add(Q.div(N)),ne)}else if(N.eq(K))return this.unsigned?j:D;if(this.isNegative())return N.isNegative()?this.neg().div(N.neg()):this.neg().div(N).neg();if(N.isNegative())return this.div(N.neg()).neg();ne=D}for(Q=this;Q.gte(N);){ue=Math.max(1,Math.floor(Q.toNumber()/N.toNumber()));for(var de=Math.ceil(Math.log(ue)/Math.LN2),xe=de<=48?1:f(2,de-48),ge=c(ue),V=ge.mul(N);V.isNegative()||V.gt(Q);)ue-=xe,ge=c(ue,this.unsigned),V=ge.mul(N);ge.isZero()&&(ge=H),ne=ne.add(ge),Q=Q.sub(V)}return ne},L.div=L.divide,L.modulo=function(N){if(n(N)||(N=h(N)),t){var re=(this.unsigned?t.rem_u:t.rem_s)(this.low,this.high,N.low,N.high);return p(re,t.get_high(),this.unsigned)}return this.sub(this.div(N).mul(N))},L.mod=L.modulo,L.rem=L.modulo,L.not=function(){return p(~this.low,~this.high,this.unsigned)},L.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},L.clz=L.countLeadingZeros,L.countTrailingZeros=function(){return this.low?i(this.low):i(this.high)+32},L.ctz=L.countTrailingZeros,L.and=function(N){return n(N)||(N=h(N)),p(this.low&N.low,this.high&N.high,this.unsigned)},L.or=function(N){return n(N)||(N=h(N)),p(this.low|N.low,this.high|N.high,this.unsigned)},L.xor=function(N){return n(N)||(N=h(N)),p(this.low^N.low,this.high^N.high,this.unsigned)},L.shiftLeft=function(N){return n(N)&&(N=N.toInt()),(N&=63)===0?this:N<32?p(this.low<<N,this.high<<N|this.low>>>32-N,this.unsigned):p(0,this.low<<N-32,this.unsigned)},L.shl=L.shiftLeft,L.shiftRight=function(N){return n(N)&&(N=N.toInt()),(N&=63)===0?this:N<32?p(this.low>>>N|this.high<<32-N,this.high>>N,this.unsigned):p(this.high>>N-32,this.high>=0?0:-1,this.unsigned)},L.shr=L.shiftRight,L.shiftRightUnsigned=function(N){return n(N)&&(N=N.toInt()),(N&=63)===0?this:N<32?p(this.low>>>N|this.high<<32-N,this.high>>>N,this.unsigned):N===32?p(this.high,0,this.unsigned):p(this.high>>>N-32,0,this.unsigned)},L.shru=L.shiftRightUnsigned,L.shr_u=L.shiftRightUnsigned,L.rotateLeft=function(N){var re;return n(N)&&(N=N.toInt()),(N&=63)===0?this:N===32?p(this.high,this.low,this.unsigned):N<32?(re=32-N,p(this.low<<N|this.high>>>re,this.high<<N|this.low>>>re,this.unsigned)):(N-=32,re=32-N,p(this.high<<N|this.low>>>re,this.low<<N|this.high>>>re,this.unsigned))},L.rotl=L.rotateLeft,L.rotateRight=function(N){var re;return n(N)&&(N=N.toInt()),(N&=63)===0?this:N===32?p(this.high,this.low,this.unsigned):N<32?(re=32-N,p(this.high<<re|this.low>>>N,this.low<<re|this.high>>>N,this.unsigned)):(N-=32,re=32-N,p(this.low<<re|this.high>>>N,this.high<<re|this.low>>>N,this.unsigned))},L.rotr=L.rotateRight,L.toSigned=function(){return this.unsigned?p(this.low,this.high,!1):this},L.toUnsigned=function(){return this.unsigned?this:p(this.low,this.high,!0)},L.toBytes=function(N){return N?this.toBytesLE():this.toBytesBE()},L.toBytesLE=function(){var N=this.high,re=this.low;return[re&255,re>>>8&255,re>>>16&255,re>>>24,N&255,N>>>8&255,N>>>16&255,N>>>24]},L.toBytesBE=function(){var N=this.high,re=this.low;return[N>>>24,N>>>16&255,N>>>8&255,N&255,re>>>24,re>>>16&255,re>>>8&255,re&255]},r.fromBytes=function(N,re,ue){return ue?r.fromBytesLE(N,re):r.fromBytesBE(N,re)},r.fromBytesLE=function(N,re){return new r(N[0]|N[1]<<8|N[2]<<16|N[3]<<24,N[4]|N[5]<<8|N[6]<<16|N[7]<<24,re)},r.fromBytesBE=function(N,re){return new r(N[4]<<24|N[5]<<16|N[6]<<8|N[7],N[0]<<24|N[1]<<16|N[2]<<8|N[3],re)},typeof BigInt=="function"&&(r.fromBigInt=function(N,re){var ue=Number(BigInt.asIntN(32,N)),Q=Number(BigInt.asIntN(32,N>>BigInt(32)));return p(ue,Q,re)},r.fromValue=function(N,re){return typeof N=="bigint"?fromBigInt(N,re):h(N,re)},L.toBigInt=function(){var N=BigInt(this.low>>>0),re=BigInt(this.unsigned?this.high>>>0:this.high);return re<<BigInt(32)|N});var ve=e.default=r})});var Dme=b((Kcn,Ect)=>{"use strict";Ect.exports=eme()});var Act=b((Ycn,kct)=>{"use strict";var Wa={};kct.exports=Wa;function Sct(e){return e<0?-1:1}function T6r(e){return e%1===.5&&!(e&1)?Math.floor(e):Math.round(e)}function Ov(e,t){t.unsigned||--e;let r=t.unsigned?0:-Math.pow(2,e),n=Math.pow(2,e)-1,i=t.moduloBitLength?Math.pow(2,t.moduloBitLength):Math.pow(2,e),a=t.moduloBitLength?Math.pow(2,t.moduloBitLength-1):Math.pow(2,e-1);return function(s,o){o||(o={});let c=+s;if(o.enforceRange){if(!Number.isFinite(c))throw new TypeError("Argument is not a finite number");if(c=Sct(c)*Math.floor(Math.abs(c)),c<r||c>n)throw new TypeError("Argument is not in byte range");return c}if(!isNaN(c)&&o.clamp)return c=T6r(c),c<r&&(c=r),c>n&&(c=n),c;if(!Number.isFinite(c)||c===0)return 0;if(c=Sct(c)*Math.floor(Math.abs(c)),c=c%i,!t.unsigned&&c>=a)return c-i;if(t.unsigned){if(c<0)c+=i;else if(c===-0)return 0}return c}}Wa.void=function(){};Wa.boolean=function(e){return!!e};Wa.byte=Ov(8,{unsigned:!1});Wa.octet=Ov(8,{unsigned:!0});Wa.short=Ov(16,{unsigned:!1});Wa["unsigned short"]=Ov(16,{unsigned:!0});Wa.long=Ov(32,{unsigned:!1});Wa["unsigned long"]=Ov(32,{unsigned:!0});Wa["long long"]=Ov(32,{unsigned:!1,moduloBitLength:64});Wa["unsigned long long"]=Ov(32,{unsigned:!0,moduloBitLength:64});Wa.double=function(e){let t=+e;if(!Number.isFinite(t))throw new TypeError("Argument is not a finite floating-point value");return t};Wa["unrestricted double"]=function(e){let t=+e;if(isNaN(t))throw new TypeError("Argument is NaN");return t};Wa.float=Wa.double;Wa["unrestricted float"]=Wa["unrestricted double"];Wa.DOMString=function(e,t){return t||(t={}),t.treatNullAsEmptyString&&e===null?"":String(e)};Wa.ByteString=function(e,t){let r=String(e),n;for(let i=0;(n=r.codePointAt(i))!==void 0;++i)if(n>255)throw new TypeError("Argument is not a valid bytestring");return r};Wa.USVString=function(e){let t=String(e),r=t.length,n=[];for(let i=0;i<r;++i){let a=t.charCodeAt(i);if(a<55296||a>57343)n.push(String.fromCodePoint(a));else if(56320<=a&&a<=57343)n.push(String.fromCodePoint(65533));else if(i===r-1)n.push(String.fromCodePoint(65533));else{let s=t.charCodeAt(i+1);if(56320<=s&&s<=57343){let o=a&1023,c=s&1023;n.push(String.fromCodePoint(65536+1024*o+c)),++i}else n.push(String.fromCodePoint(65533))}}return n.join("")};Wa.Date=function(e,t){if(!(e instanceof Date))throw new TypeError("Argument is not a Date object");if(!isNaN(e))return e};Wa.RegExp=function(e,t){return e instanceof RegExp||(e=new RegExp(e)),e}});var Tct=b((Jcn,Dv)=>{"use strict";Dv.exports.mixin=function(t,r){let n=Object.getOwnPropertyNames(r);for(let i=0;i<n.length;++i)Object.defineProperty(t,n[i],Object.getOwnPropertyDescriptor(r,n[i]))};Dv.exports.wrapperSymbol=Symbol("wrapper");Dv.exports.implSymbol=Symbol("impl");Dv.exports.wrapperForImpl=function(e){return e[Dv.exports.wrapperSymbol]};Dv.exports.implForWrapper=function(e){return e[Dv.exports.implSymbol]}});var Oct=b((Xcn,O6r)=>{O6r.exports=[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1e3,1e3],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6e3],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8e3,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8e3]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9e3],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[3e4]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13e3,13e3],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43e3,43e3],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64e3,64e3],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66e3,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[12e4,12e4],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128e3,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23e3]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149e3]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32e3]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195e3,195e3],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[4e4]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918e3,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]});var Fct=b((Qcn,f$)=>{"use strict";var Cct=require("punycode"),Dct=Oct(),g8={TRANSITIONAL:0,NONTRANSITIONAL:1};function Pct(e){return e.split("\0").map(function(t){return t.normalize("NFC")}).join("\0")}function Ict(e){for(var t=0,r=Dct.length-1;t<=r;){var n=Math.floor((t+r)/2),i=Dct[n];if(i[0][0]<=e&&i[0][1]>=e)return i;i[0][0]>e?r=n-1:t=n+1}return null}var D6r=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function Rct(e){return e.replace(D6r,"_").length}function C6r(e,t,r){for(var n=!1,i="",a=Rct(e),s=0;s<a;++s){var o=e.codePointAt(s),c=Ict(o);switch(c[1]){case"disallowed":n=!0,i+=String.fromCodePoint(o);break;case"ignored":break;case"mapped":i+=String.fromCodePoint.apply(String,c[2]);break;case"deviation":r===g8.TRANSITIONAL?i+=String.fromCodePoint.apply(String,c[2]):i+=String.fromCodePoint(o);break;case"valid":i+=String.fromCodePoint(o);break;case"disallowed_STD3_mapped":t?(n=!0,i+=String.fromCodePoint(o)):i+=String.fromCodePoint.apply(String,c[2]);break;case"disallowed_STD3_valid":t&&(n=!0),i+=String.fromCodePoint(o);break}}return{string:i,error:n}}var P6r=/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/;function I6r(e,t){e.substr(0,4)==="xn--"&&(e=Cct.toUnicode(e),t=g8.NONTRANSITIONAL);var r=!1;(Pct(e)!==e||e[3]==="-"&&e[4]==="-"||e[0]==="-"||e[e.length-1]==="-"||e.indexOf(".")!==-1||e.search(P6r)===0)&&(r=!0);for(var n=Rct(e),i=0;i<n;++i){var a=Ict(e.codePointAt(i));if(p$===g8.TRANSITIONAL&&a[1]!=="valid"||p$===g8.NONTRANSITIONAL&&a[1]!=="valid"&&a[1]!=="deviation"){r=!0;break}}return{label:e,error:r}}function p$(e,t,r){var n=C6r(e,t,r);n.string=Pct(n.string);for(var i=n.string.split("."),a=0;a<i.length;++a)try{var s=I6r(i[a]);i[a]=s.label,n.error=n.error||s.error}catch{n.error=!0}return{string:i.join("."),error:n.error}}f$.exports.toASCII=function(e,t,r,n){var i=p$(e,t,r),a=i.string.split(".");if(a=a.map(function(c){try{return Cct.toASCII(c)}catch{return i.error=!0,c}}),n){var s=a.slice(0,a.length-1).join(".").length;(s.length>253||s.length===0)&&(i.error=!0);for(var o=0;o<a.length;++o)if(a.length>63||a.length===0){i.error=!0;break}}return i.error?null:a.join(".")};f$.exports.toUnicode=function(e,t){var r=p$(e,t,g8.NONTRANSITIONAL);return{domain:r.string,error:r.error}};f$.exports.PROCESSING_OPTIONS=g8});var Ph=b((Zcn,Al)=>{"use strict";var v8=require("punycode"),jct=Fct(),$ct={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443},bn=Symbol("failure");function Nct(e){return v8.ucs2.decode(e).length}function qct(e,t){let r=e[t];return isNaN(r)?void 0:String.fromCodePoint(r)}function pT(e){return e>=48&&e<=57}function fT(e){return e>=65&&e<=90||e>=97&&e<=122}function R6r(e){return fT(e)||pT(e)}function Xf(e){return pT(e)||e>=65&&e<=70||e>=97&&e<=102}function Lct(e){return e==="."||e.toLowerCase()==="%2e"}function F6r(e){return e=e.toLowerCase(),e===".."||e==="%2e."||e===".%2e"||e==="%2e%2e"}function j6r(e,t){return fT(e)&&(t===58||t===124)}function Bct(e){return e.length===2&&fT(e.codePointAt(0))&&(e[1]===":"||e[1]==="|")}function N6r(e){return e.length===2&&fT(e.codePointAt(0))&&e[1]===":"}function q6r(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/)!==-1}function L6r(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/)!==-1}function Cme(e){return $ct[e]!==void 0}function Qs(e){return Cme(e.scheme)}function $6r(e){return $ct[e]}function Mct(e){let t=e.toString(16).toUpperCase();return t.length===1&&(t="0"+t),"%"+t}function B6r(e){let t=new Buffer(e),r="";for(let n=0;n<t.length;++n)r+=Mct(t[n]);return r}function M6r(e){let t=new Buffer(e),r=[];for(let n=0;n<t.length;++n)t[n]!==37?r.push(t[n]):t[n]===37&&Xf(t[n+1])&&Xf(t[n+2])?(r.push(parseInt(t.slice(n+1,n+3).toString(),16)),n+=2):r.push(t[n]);return new Buffer(r).toString()}function d$(e){return e<=31||e>126}var U6r=new Set([32,34,35,60,62,63,96,123,125]);function Uct(e){return d$(e)||U6r.has(e)}var z6r=new Set([47,58,59,61,64,91,92,93,94,124]);function Ime(e){return Uct(e)||z6r.has(e)}function Nw(e,t){let r=String.fromCodePoint(e);return t(e)?B6r(r):r}function H6r(e){let t=10;return e.length>=2&&e.charAt(0)==="0"&&e.charAt(1).toLowerCase()==="x"?(e=e.substring(2),t=16):e.length>=2&&e.charAt(0)==="0"&&(e=e.substring(1),t=8),e===""?0:(t===10?/[^0-9]/:t===16?/[^0-9A-Fa-f]/:/[^0-7]/).test(e)?bn:parseInt(e,t)}function V6r(e){let t=e.split(".");if(t[t.length-1]===""&&t.length>1&&t.pop(),t.length>4)return e;let r=[];for(let a of t){if(a==="")return e;let s=H6r(a);if(s===bn)return e;r.push(s)}for(let a=0;a<r.length-1;++a)if(r[a]>255)return bn;if(r[r.length-1]>=Math.pow(256,5-r.length))return bn;let n=r.pop(),i=0;for(let a of r)n+=a*Math.pow(256,3-i),++i;return n}function G6r(e){let t="",r=e;for(let n=1;n<=4;++n)t=String(r%256)+t,n!==4&&(t="."+t),r=Math.floor(r/256);return t}function W6r(e){let t=[0,0,0,0,0,0,0,0],r=0,n=null,i=0;if(e=v8.ucs2.decode(e),e[i]===58){if(e[i+1]!==58)return bn;i+=2,++r,n=r}for(;i<e.length;){if(r===8)return bn;if(e[i]===58){if(n!==null)return bn;++i,++r,n=r;continue}let a=0,s=0;for(;s<4&&Xf(e[i]);)a=a*16+parseInt(qct(e,i),16),++i,++s;if(e[i]===46){if(s===0||(i-=s,r>6))return bn;let o=0;for(;e[i]!==void 0;){let c=null;if(o>0)if(e[i]===46&&o<4)++i;else return bn;if(!pT(e[i]))return bn;for(;pT(e[i]);){let p=parseInt(qct(e,i));if(c===null)c=p;else{if(c===0)return bn;c=c*10+p}if(c>255)return bn;++i}t[r]=t[r]*256+c,++o,(o===2||o===4)&&++r}if(o!==4)return bn;break}else if(e[i]===58){if(++i,e[i]===void 0)return bn}else if(e[i]!==void 0)return bn;t[r]=a,++r}if(n!==null){let a=r-n;for(r=7;r!==0&&a>0;){let s=t[n+a-1];t[n+a-1]=t[r],t[r]=s,--r,--a}}else if(n===null&&r!==8)return bn;return t}function K6r(e){let t="",n=J6r(e).idx,i=!1;for(let a=0;a<=7;++a)if(!(i&&e[a]===0)){if(i&&(i=!1),n===a){t+=a===0?"::":":",i=!0;continue}t+=e[a].toString(16),a!==7&&(t+=":")}return t}function Pme(e,t){if(e[0]==="[")return e[e.length-1]!=="]"?bn:W6r(e.substring(1,e.length-1));if(!t)return Y6r(e);let r=M6r(e),n=jct.toASCII(r,!1,jct.PROCESSING_OPTIONS.NONTRANSITIONAL,!1);if(n===null||q6r(n))return bn;let i=V6r(n);return typeof i=="number"||i===bn?i:n}function Y6r(e){if(L6r(e))return bn;let t="",r=v8.ucs2.decode(e);for(let n=0;n<r.length;++n)t+=Nw(r[n],d$);return t}function J6r(e){let t=null,r=1,n=null,i=0;for(let a=0;a<e.length;++a)e[a]!==0?(i>r&&(t=n,r=i),n=null,i=0):(n===null&&(n=a),++i);return i>r&&(t=n,r=i),{idx:t,len:r}}function Rme(e){return typeof e=="number"?G6r(e):e instanceof Array?"["+K6r(e)+"]":e}function X6r(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}function Q6r(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}function zct(e){let t=e.path;t.length!==0&&(e.scheme==="file"&&t.length===1&&e4r(t[0])||t.pop())}function Hct(e){return e.username!==""||e.password!==""}function Z6r(e){return e.host===null||e.host===""||e.cannotBeABaseURL||e.scheme==="file"}function e4r(e){return/^[A-Za-z]:$/.test(e)}function Ka(e,t,r,n,i){if(this.pointer=0,this.input=e,this.base=t||null,this.encodingOverride=r||"utf-8",this.stateOverride=i,this.url=n,this.failure=!1,this.parseError=!1,!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:!1};let s=X6r(this.input);s!==this.input&&(this.parseError=!0),this.input=s}let a=Q6r(this.input);for(a!==this.input&&(this.parseError=!0),this.input=a,this.state=i||"scheme start",this.buffer="",this.atFlag=!1,this.arrFlag=!1,this.passwordTokenSeenFlag=!1,this.input=v8.ucs2.decode(this.input);this.pointer<=this.input.length;++this.pointer){let s=this.input[this.pointer],o=isNaN(s)?void 0:String.fromCodePoint(s),c=this["parse "+this.state](s,o);if(c){if(c===bn){this.failure=!0;break}}else break}}Ka.prototype["parse scheme start"]=function(t,r){if(fT(t))this.buffer+=r.toLowerCase(),this.state="scheme";else if(!this.stateOverride)this.state="no scheme",--this.pointer;else return this.parseError=!0,bn;return!0};Ka.prototype["parse scheme"]=function(t,r){if(R6r(t)||t===43||t===45||t===46)this.buffer+=r.toLowerCase();else if(t===58){if(this.stateOverride&&(Qs(this.url)&&!Cme(this.buffer)||!Qs(this.url)&&Cme(this.buffer)||(Hct(this.url)||this.url.port!==null)&&this.buffer==="file"||this.url.scheme==="file"&&(this.url.host===""||this.url.host===null))||(this.url.scheme=this.buffer,this.buffer="",this.stateOverride))return!1;this.url.scheme==="file"?((this.input[this.pointer+1]!==47||this.input[this.pointer+2]!==47)&&(this.parseError=!0),this.state="file"):Qs(this.url)&&this.base!==null&&this.base.scheme===this.url.scheme?this.state="special relative or authority":Qs(this.url)?this.state="special authority slashes":this.input[this.pointer+1]===47?(this.state="path or authority",++this.pointer):(this.url.cannotBeABaseURL=!0,this.url.path.push(""),this.state="cannot-be-a-base-URL path")}else if(!this.stateOverride)this.buffer="",this.state="no scheme",this.pointer=-1;else return this.parseError=!0,bn;return!0};Ka.prototype["parse no scheme"]=function(t){return this.base===null||this.base.cannotBeABaseURL&&t!==35?bn:(this.base.cannotBeABaseURL&&t===35?(this.url.scheme=this.base.scheme,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.url.cannotBeABaseURL=!0,this.state="fragment"):this.base.scheme==="file"?(this.state="file",--this.pointer):(this.state="relative",--this.pointer),!0)};Ka.prototype["parse special relative or authority"]=function(t){return t===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="relative",--this.pointer),!0};Ka.prototype["parse path or authority"]=function(t){return t===47?this.state="authority":(this.state="path",--this.pointer),!0};Ka.prototype["parse relative"]=function(t){return this.url.scheme=this.base.scheme,isNaN(t)?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query):t===47?this.state="relative slash":t===63?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):t===35?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):Qs(this.url)&&t===92?(this.parseError=!0,this.state="relative slash"):(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(0,this.base.path.length-1),this.state="path",--this.pointer),!0};Ka.prototype["parse relative slash"]=function(t){return Qs(this.url)&&(t===47||t===92)?(t===92&&(this.parseError=!0),this.state="special authority ignore slashes"):t===47?this.state="authority":(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.state="path",--this.pointer),!0};Ka.prototype["parse special authority slashes"]=function(t){return t===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="special authority ignore slashes",--this.pointer),!0};Ka.prototype["parse special authority ignore slashes"]=function(t){return t!==47&&t!==92?(this.state="authority",--this.pointer):this.parseError=!0,!0};Ka.prototype["parse authority"]=function(t,r){if(t===64){this.parseError=!0,this.atFlag&&(this.buffer="%40"+this.buffer),this.atFlag=!0;let n=Nct(this.buffer);for(let i=0;i<n;++i){let a=this.buffer.codePointAt(i);if(a===58&&!this.passwordTokenSeenFlag){this.passwordTokenSeenFlag=!0;continue}let s=Nw(a,Ime);this.passwordTokenSeenFlag?this.url.password+=s:this.url.username+=s}this.buffer=""}else if(isNaN(t)||t===47||t===63||t===35||Qs(this.url)&&t===92){if(this.atFlag&&this.buffer==="")return this.parseError=!0,bn;this.pointer-=Nct(this.buffer)+1,this.buffer="",this.state="host"}else this.buffer+=r;return!0};Ka.prototype["parse hostname"]=Ka.prototype["parse host"]=function(t,r){if(this.stateOverride&&this.url.scheme==="file")--this.pointer,this.state="file host";else if(t===58&&!this.arrFlag){if(this.buffer==="")return this.parseError=!0,bn;let n=Pme(this.buffer,Qs(this.url));if(n===bn)return bn;if(this.url.host=n,this.buffer="",this.state="port",this.stateOverride==="hostname")return!1}else if(isNaN(t)||t===47||t===63||t===35||Qs(this.url)&&t===92){if(--this.pointer,Qs(this.url)&&this.buffer==="")return this.parseError=!0,bn;if(this.stateOverride&&this.buffer===""&&(Hct(this.url)||this.url.port!==null))return this.parseError=!0,!1;let n=Pme(this.buffer,Qs(this.url));if(n===bn)return bn;if(this.url.host=n,this.buffer="",this.state="path start",this.stateOverride)return!1}else t===91?this.arrFlag=!0:t===93&&(this.arrFlag=!1),this.buffer+=r;return!0};Ka.prototype["parse port"]=function(t,r){if(pT(t))this.buffer+=r;else if(isNaN(t)||t===47||t===63||t===35||Qs(this.url)&&t===92||this.stateOverride){if(this.buffer!==""){let n=parseInt(this.buffer);if(n>Math.pow(2,16)-1)return this.parseError=!0,bn;this.url.port=n===$6r(this.url.scheme)?null:n,this.buffer=""}if(this.stateOverride)return!1;this.state="path start",--this.pointer}else return this.parseError=!0,bn;return!0};var t4r=new Set([47,92,63,35]);Ka.prototype["parse file"]=function(t){return this.url.scheme="file",t===47||t===92?(t===92&&(this.parseError=!0),this.state="file slash"):this.base!==null&&this.base.scheme==="file"?isNaN(t)?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query):t===63?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):t===35?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):(this.input.length-this.pointer-1===0||!j6r(t,this.input[this.pointer+1])||this.input.length-this.pointer-1>=2&&!t4r.has(this.input[this.pointer+2])?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),zct(this.url)):this.parseError=!0,this.state="path",--this.pointer):(this.state="path",--this.pointer),!0};Ka.prototype["parse file slash"]=function(t){return t===47||t===92?(t===92&&(this.parseError=!0),this.state="file host"):(this.base!==null&&this.base.scheme==="file"&&(N6r(this.base.path[0])?this.url.path.push(this.base.path[0]):this.url.host=this.base.host),this.state="path",--this.pointer),!0};Ka.prototype["parse file host"]=function(t,r){if(isNaN(t)||t===47||t===92||t===63||t===35)if(--this.pointer,!this.stateOverride&&Bct(this.buffer))this.parseError=!0,this.state="path";else if(this.buffer===""){if(this.url.host="",this.stateOverride)return!1;this.state="path start"}else{let n=Pme(this.buffer,Qs(this.url));if(n===bn)return bn;if(n==="localhost"&&(n=""),this.url.host=n,this.stateOverride)return!1;this.buffer="",this.state="path start"}else this.buffer+=r;return!0};Ka.prototype["parse path start"]=function(t){return Qs(this.url)?(t===92&&(this.parseError=!0),this.state="path",t!==47&&t!==92&&--this.pointer):!this.stateOverride&&t===63?(this.url.query="",this.state="query"):!this.stateOverride&&t===35?(this.url.fragment="",this.state="fragment"):t!==void 0&&(this.state="path",t!==47&&--this.pointer),!0};Ka.prototype["parse path"]=function(t){if(isNaN(t)||t===47||Qs(this.url)&&t===92||!this.stateOverride&&(t===63||t===35)){if(Qs(this.url)&&t===92&&(this.parseError=!0),F6r(this.buffer)?(zct(this.url),t!==47&&!(Qs(this.url)&&t===92)&&this.url.path.push("")):Lct(this.buffer)&&t!==47&&!(Qs(this.url)&&t===92)?this.url.path.push(""):Lct(this.buffer)||(this.url.scheme==="file"&&this.url.path.length===0&&Bct(this.buffer)&&(this.url.host!==""&&this.url.host!==null&&(this.parseError=!0,this.url.host=""),this.buffer=this.buffer[0]+":"),this.url.path.push(this.buffer)),this.buffer="",this.url.scheme==="file"&&(t===void 0||t===63||t===35))for(;this.url.path.length>1&&this.url.path[0]==="";)this.parseError=!0,this.url.path.shift();t===63&&(this.url.query="",this.state="query"),t===35&&(this.url.fragment="",this.state="fragment")}else t===37&&(!Xf(this.input[this.pointer+1])||!Xf(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=Nw(t,Uct);return!0};Ka.prototype["parse cannot-be-a-base-URL path"]=function(t){return t===63?(this.url.query="",this.state="query"):t===35?(this.url.fragment="",this.state="fragment"):(!isNaN(t)&&t!==37&&(this.parseError=!0),t===37&&(!Xf(this.input[this.pointer+1])||!Xf(this.input[this.pointer+2]))&&(this.parseError=!0),isNaN(t)||(this.url.path[0]=this.url.path[0]+Nw(t,d$))),!0};Ka.prototype["parse query"]=function(t,r){if(isNaN(t)||!this.stateOverride&&t===35){(!Qs(this.url)||this.url.scheme==="ws"||this.url.scheme==="wss")&&(this.encodingOverride="utf-8");let n=new Buffer(this.buffer);for(let i=0;i<n.length;++i)n[i]<33||n[i]>126||n[i]===34||n[i]===35||n[i]===60||n[i]===62?this.url.query+=Mct(n[i]):this.url.query+=String.fromCodePoint(n[i]);this.buffer="",t===35&&(this.url.fragment="",this.state="fragment")}else t===37&&(!Xf(this.input[this.pointer+1])||!Xf(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=r;return!0};Ka.prototype["parse fragment"]=function(t){return isNaN(t)||(t===0?this.parseError=!0:(t===37&&(!Xf(this.input[this.pointer+1])||!Xf(this.input[this.pointer+2]))&&(this.parseError=!0),this.url.fragment+=Nw(t,d$))),!0};function r4r(e,t){let r=e.scheme+":";if(e.host!==null?(r+="//",(e.username!==""||e.password!=="")&&(r+=e.username,e.password!==""&&(r+=":"+e.password),r+="@"),r+=Rme(e.host),e.port!==null&&(r+=":"+e.port)):e.host===null&&e.scheme==="file"&&(r+="//"),e.cannotBeABaseURL)r+=e.path[0];else for(let n of e.path)r+="/"+n;return e.query!==null&&(r+="?"+e.query),!t&&e.fragment!==null&&(r+="#"+e.fragment),r}function n4r(e){let t=e.scheme+"://";return t+=Rme(e.host),e.port!==null&&(t+=":"+e.port),t}Al.exports.serializeURL=r4r;Al.exports.serializeURLOrigin=function(e){switch(e.scheme){case"blob":try{return Al.exports.serializeURLOrigin(Al.exports.parseURL(e.path[0]))}catch{return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return n4r({scheme:e.scheme,host:e.host,port:e.port});case"file":return"file://";default:return"null"}};Al.exports.basicURLParse=function(e,t){t===void 0&&(t={});let r=new Ka(e,t.baseURL,t.encodingOverride,t.url,t.stateOverride);return r.failure?"failure":r.url};Al.exports.setTheUsername=function(e,t){e.username="";let r=v8.ucs2.decode(t);for(let n=0;n<r.length;++n)e.username+=Nw(r[n],Ime)};Al.exports.setThePassword=function(e,t){e.password="";let r=v8.ucs2.decode(t);for(let n=0;n<r.length;++n)e.password+=Nw(r[n],Ime)};Al.exports.serializeHost=Rme;Al.exports.cannotHaveAUsernamePasswordPort=Z6r;Al.exports.serializeInteger=function(e){return String(e)};Al.exports.parseURL=function(e,t){return t===void 0&&(t={}),Al.exports.basicURLParse(e,{baseURL:t.baseURL,encodingOverride:t.encodingOverride})}});var Gct=b(Vct=>{"use strict";var Ya=Ph();Vct.implementation=class{constructor(t){let r=t[0],n=t[1],i=null;if(n!==void 0&&(i=Ya.basicURLParse(n),i==="failure"))throw new TypeError("Invalid base URL");let a=Ya.basicURLParse(r,{baseURL:i});if(a==="failure")throw new TypeError("Invalid URL");this._url=a}get href(){return Ya.serializeURL(this._url)}set href(t){let r=Ya.basicURLParse(t);if(r==="failure")throw new TypeError("Invalid URL");this._url=r}get origin(){return Ya.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(t){Ya.basicURLParse(t+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(t){Ya.cannotHaveAUsernamePasswordPort(this._url)||Ya.setTheUsername(this._url,t)}get password(){return this._url.password}set password(t){Ya.cannotHaveAUsernamePasswordPort(this._url)||Ya.setThePassword(this._url,t)}get host(){let t=this._url;return t.host===null?"":t.port===null?Ya.serializeHost(t.host):Ya.serializeHost(t.host)+":"+Ya.serializeInteger(t.port)}set host(t){this._url.cannotBeABaseURL||Ya.basicURLParse(t,{url:this._url,stateOverride:"host"})}get hostname(){return this._url.host===null?"":Ya.serializeHost(this._url.host)}set hostname(t){this._url.cannotBeABaseURL||Ya.basicURLParse(t,{url:this._url,stateOverride:"hostname"})}get port(){return this._url.port===null?"":Ya.serializeInteger(this._url.port)}set port(t){Ya.cannotHaveAUsernamePasswordPort(this._url)||(t===""?this._url.port=null:Ya.basicURLParse(t,{url:this._url,stateOverride:"port"}))}get pathname(){return this._url.cannotBeABaseURL?this._url.path[0]:this._url.path.length===0?"":"/"+this._url.path.join("/")}set pathname(t){this._url.cannotBeABaseURL||(this._url.path=[],Ya.basicURLParse(t,{url:this._url,stateOverride:"path start"}))}get search(){return this._url.query===null||this._url.query===""?"":"?"+this._url.query}set search(t){let r=this._url;if(t===""){r.query=null;return}let n=t[0]==="?"?t.substring(1):t;r.query="",Ya.basicURLParse(n,{url:r,stateOverride:"query"})}get hash(){return this._url.fragment===null||this._url.fragment===""?"":"#"+this._url.fragment}set hash(t){if(t===""){this._url.fragment=null;return}let r=t[0]==="#"?t.substring(1):t;this._url.fragment="",Ya.basicURLParse(r,{url:this._url,stateOverride:"fragment"})}toJSON(){return this.href}}});var Yct=b((rln,dT)=>{"use strict";var Sp=Act(),Kct=Tct(),Wct=Gct(),$i=Kct.implSymbol;function vo(e){if(!this||this[$i]||!(this instanceof vo))throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");if(arguments.length<1)throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.");let t=[];for(let r=0;r<arguments.length&&r<2;++r)t[r]=arguments[r];t[0]=Sp.USVString(t[0]),t[1]!==void 0&&(t[1]=Sp.USVString(t[1])),dT.exports.setup(this,t)}vo.prototype.toJSON=function(){if(!this||!dT.exports.is(this))throw new TypeError("Illegal invocation");let t=[];for(let r=0;r<arguments.length&&r<0;++r)t[r]=arguments[r];return this[$i].toJSON.apply(this[$i],t)};Object.defineProperty(vo.prototype,"href",{get(){return this[$i].href},set(e){e=Sp.USVString(e),this[$i].href=e},enumerable:!0,configurable:!0});vo.prototype.toString=function(){if(!this||!dT.exports.is(this))throw new TypeError("Illegal invocation");return this.href};Object.defineProperty(vo.prototype,"origin",{get(){return this[$i].origin},enumerable:!0,configurable:!0});Object.defineProperty(vo.prototype,"protocol",{get(){return this[$i].protocol},set(e){e=Sp.USVString(e),this[$i].protocol=e},enumerable:!0,configurable:!0});Object.defineProperty(vo.prototype,"username",{get(){return this[$i].username},set(e){e=Sp.USVString(e),this[$i].username=e},enumerable:!0,configurable:!0});Object.defineProperty(vo.prototype,"password",{get(){return this[$i].password},set(e){e=Sp.USVString(e),this[$i].password=e},enumerable:!0,configurable:!0});Object.defineProperty(vo.prototype,"host",{get(){return this[$i].host},set(e){e=Sp.USVString(e),this[$i].host=e},enumerable:!0,configurable:!0});Object.defineProperty(vo.prototype,"hostname",{get(){return this[$i].hostname},set(e){e=Sp.USVString(e),this[$i].hostname=e},enumerable:!0,configurable:!0});Object.defineProperty(vo.prototype,"port",{get(){return this[$i].port},set(e){e=Sp.USVString(e),this[$i].port=e},enumerable:!0,configurable:!0});Object.defineProperty(vo.prototype,"pathname",{get(){return this[$i].pathname},set(e){e=Sp.USVString(e),this[$i].pathname=e},enumerable:!0,configurable:!0});Object.defineProperty(vo.prototype,"search",{get(){return this[$i].search},set(e){e=Sp.USVString(e),this[$i].search=e},enumerable:!0,configurable:!0});Object.defineProperty(vo.prototype,"hash",{get(){return this[$i].hash},set(e){e=Sp.USVString(e),this[$i].hash=e},enumerable:!0,configurable:!0});dT.exports={is(e){return!!e&&e[$i]instanceof Wct.implementation},create(e,t){let r=Object.create(vo.prototype);return this.setup(r,e,t),r},setup(e,t,r){r||(r={}),r.wrapper=e,e[$i]=new Wct.implementation(t,r),e[$i][Kct.wrapperSymbol]=e},interface:vo,expose:{Window:{URL:vo},Worker:{URL:vo}}}});var Jct=b(Ih=>{"use strict";Ih.URL=Yct().interface;Ih.serializeURL=Ph().serializeURL;Ih.serializeURLOrigin=Ph().serializeURLOrigin;Ih.basicURLParse=Ph().basicURLParse;Ih.setTheUsername=Ph().setTheUsername;Ih.setThePassword=Ph().setThePassword;Ih.serializeHost=Ph().serializeHost;Ih.serializeInteger=Ph().serializeInteger;Ih.parseURL=Ph().parseURL});var Z1=b((iln,Xct)=>{"use strict";var h$=require("buffer"),y8=h$.Buffer,kp={},Ap;for(Ap in h$)h$.hasOwnProperty(Ap)&&(Ap==="SlowBuffer"||Ap==="Buffer"||(kp[Ap]=h$[Ap]));var b8=kp.Buffer={};for(Ap in y8)y8.hasOwnProperty(Ap)&&(Ap==="allocUnsafe"||Ap==="allocUnsafeSlow"||(b8[Ap]=y8[Ap]));kp.Buffer.prototype=y8.prototype;(!b8.from||b8.from===Uint8Array.from)&&(b8.from=function(e,t,r){if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&typeof e.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return y8(e,t,r)});b8.alloc||(b8.alloc=function(e,t,r){if(typeof e!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var n=y8(e);return!t||t.length===0?n.fill(0):typeof r=="string"?n.fill(t,r):n.fill(t),n});if(!kp.kStringMaxLength)try{kp.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}kp.constants||(kp.constants={MAX_LENGTH:kp.kMaxLength},kp.kStringMaxLength&&(kp.constants.MAX_STRING_LENGTH=kp.kStringMaxLength));Xct.exports=kp});var Zct=b(Nme=>{"use strict";var Qct="\uFEFF";Nme.PrependBOM=Fme;function Fme(e,t){this.encoder=e,this.addBOM=!0}Fme.prototype.write=function(e){return this.addBOM&&(e=Qct+e,this.addBOM=!1),this.encoder.write(e)};Fme.prototype.end=function(){return this.encoder.end()};Nme.StripBOM=jme;function jme(e,t){this.decoder=e,this.pass=!1,this.options=t||{}}jme.prototype.write=function(e){var t=this.decoder.write(e);return this.pass||!t||(t[0]===Qct&&(t=t.slice(1),typeof this.options.stripBOM=="function"&&this.options.stripBOM()),this.pass=!0),t};jme.prototype.end=function(){return this.decoder.end()}});var tlt=b((sln,elt)=>{"use strict";var qw=Z1().Buffer;elt.exports={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:Lme};function Lme(e,t){this.enc=e.encodingName,this.bomAware=e.bomAware,this.enc==="base64"?this.encoder=Mme:this.enc==="cesu8"&&(this.enc="utf8",this.encoder=Ume,qw.from("eda0bdedb2a9","hex").toString()!=="\u{1F4A9}"&&(this.decoder=zme,this.defaultCharUnicode=t.defaultCharUnicode))}Lme.prototype.encoder=Bme;Lme.prototype.decoder=$me;var qme=require("string_decoder").StringDecoder;qme.prototype.end||(qme.prototype.end=function(){});function $me(e,t){this.decoder=new qme(t.enc)}$me.prototype.write=function(e){return qw.isBuffer(e)||(e=qw.from(e)),this.decoder.write(e)};$me.prototype.end=function(){return this.decoder.end()};function Bme(e,t){this.enc=t.enc}Bme.prototype.write=function(e){return qw.from(e,this.enc)};Bme.prototype.end=function(){};function Mme(e,t){this.prevStr=""}Mme.prototype.write=function(e){e=this.prevStr+e;var t=e.length-e.length%4;return this.prevStr=e.slice(t),e=e.slice(0,t),qw.from(e,"base64")};Mme.prototype.end=function(){return qw.from(this.prevStr,"base64")};function Ume(e,t){}Ume.prototype.write=function(e){for(var t=qw.alloc(e.length*3),r=0,n=0;n<e.length;n++){var i=e.charCodeAt(n);i<128?t[r++]=i:i<2048?(t[r++]=192+(i>>>6),t[r++]=128+(i&63)):(t[r++]=224+(i>>>12),t[r++]=128+(i>>>6&63),t[r++]=128+(i&63))}return t.slice(0,r)};Ume.prototype.end=function(){};function zme(e,t){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=t.defaultCharUnicode}zme.prototype.write=function(e){for(var t=this.acc,r=this.contBytes,n=this.accBytes,i="",a=0;a<e.length;a++){var s=e[a];(s&192)!==128?(r>0&&(i+=this.defaultCharUnicode,r=0),s<128?i+=String.fromCharCode(s):s<224?(t=s&31,r=1,n=1):s<240?(t=s&15,r=2,n=1):i+=this.defaultCharUnicode):r>0?(t=t<<6|s&63,r--,n++,r===0&&(n===2&&t<128&&t>0?i+=this.defaultCharUnicode:n===3&&t<2048?i+=this.defaultCharUnicode:i+=String.fromCharCode(t))):i+=this.defaultCharUnicode}return this.acc=t,this.contBytes=r,this.accBytes=n,i};zme.prototype.end=function(){var e=0;return this.contBytes>0&&(e+=this.defaultCharUnicode),e}});var ilt=b(Cv=>{"use strict";var m$=Z1().Buffer;Cv._utf32=Hme;function Hme(e,t){this.iconv=t,this.bomAware=!0,this.isLE=e.isLE}Cv.utf32le={type:"_utf32",isLE:!0};Cv.utf32be={type:"_utf32",isLE:!1};Cv.ucs4le="utf32le";Cv.ucs4be="utf32be";Hme.prototype.encoder=Vme;Hme.prototype.decoder=Gme;function Vme(e,t){this.isLE=t.isLE,this.highSurrogate=0}Vme.prototype.write=function(e){for(var t=m$.from(e,"ucs2"),r=m$.alloc(t.length*2),n=this.isLE?r.writeUInt32LE:r.writeUInt32BE,i=0,a=0;a<t.length;a+=2){var s=t.readUInt16LE(a),o=55296<=s&&s<56320,c=56320<=s&&s<57344;if(this.highSurrogate)if(o||!c)n.call(r,this.highSurrogate,i),i+=4;else{var p=(this.highSurrogate-55296<<10|s-56320)+65536;n.call(r,p,i),i+=4,this.highSurrogate=0;continue}o?this.highSurrogate=s:(n.call(r,s,i),i+=4,this.highSurrogate=0)}return i<r.length&&(r=r.slice(0,i)),r};Vme.prototype.end=function(){if(this.highSurrogate){var e=m$.alloc(4);return this.isLE?e.writeUInt32LE(this.highSurrogate,0):e.writeUInt32BE(this.highSurrogate,0),this.highSurrogate=0,e}};function Gme(e,t){this.isLE=t.isLE,this.badChar=t.iconv.defaultCharUnicode.charCodeAt(0),this.overflow=[]}Gme.prototype.write=function(e){if(e.length===0)return"";var t=0,r=0,n=m$.alloc(e.length+4),i=0,a=this.isLE,s=this.overflow,o=this.badChar;if(s.length>0){for(;t<e.length&&s.length<4;t++)s.push(e[t]);s.length===4&&(a?r=s[t]|s[t+1]<<8|s[t+2]<<16|s[t+3]<<24:r=s[t+3]|s[t+2]<<8|s[t+1]<<16|s[t]<<24,s.length=0,i=rlt(n,i,r,o))}for(;t<e.length-3;t+=4)a?r=e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24:r=e[t+3]|e[t+2]<<8|e[t+1]<<16|e[t]<<24,i=rlt(n,i,r,o);for(;t<e.length;t++)s.push(e[t]);return n.slice(0,i).toString("ucs2")};function rlt(e,t,r,n){if((r<0||r>1114111)&&(r=n),r>=65536){r-=65536;var i=55296|r>>10;e[t++]=i&255,e[t++]=i>>8;var r=56320|r&1023}return e[t++]=r&255,e[t++]=r>>8,t}Gme.prototype.end=function(){this.overflow.length=0};Cv.utf32=Wme;Cv.ucs4="utf32";function Wme(e,t){this.iconv=t}Wme.prototype.encoder=Kme;Wme.prototype.decoder=Yme;function Kme(e,t){e=e||{},e.addBOM===void 0&&(e.addBOM=!0),this.encoder=t.iconv.getEncoder(e.defaultEncoding||"utf-32le",e)}Kme.prototype.write=function(e){return this.encoder.write(e)};Kme.prototype.end=function(){return this.encoder.end()};function Yme(e,t){this.decoder=null,this.initialBufs=[],this.initialBufsLen=0,this.options=e||{},this.iconv=t.iconv}Yme.prototype.write=function(e){if(!this.decoder){if(this.initialBufs.push(e),this.initialBufsLen+=e.length,this.initialBufsLen<32)return"";var t=nlt(this.initialBufs,this.options.defaultEncoding);this.decoder=this.iconv.getDecoder(t,this.options);for(var r="",n=0;n<this.initialBufs.length;n++)r+=this.decoder.write(this.initialBufs[n]);return this.initialBufs.length=this.initialBufsLen=0,r}return this.decoder.write(e)};Yme.prototype.end=function(){if(!this.decoder){var e=nlt(this.initialBufs,this.options.defaultEncoding);this.decoder=this.iconv.getDecoder(e,this.options);for(var t="",r=0;r<this.initialBufs.length;r++)t+=this.decoder.write(this.initialBufs[r]);var n=this.decoder.end();return n&&(t+=n),this.initialBufs.length=this.initialBufsLen=0,t}return this.decoder.end()};function nlt(e,t){var r=[],n=0,i=0,a=0,s=0,o=0;e:for(var c=0;c<e.length;c++)for(var p=e[c],f=0;f<p.length;f++)if(r.push(p[f]),r.length===4){if(n===0){if(r[0]===255&&r[1]===254&&r[2]===0&&r[3]===0)return"utf-32le";if(r[0]===0&&r[1]===0&&r[2]===254&&r[3]===255)return"utf-32be"}if((r[0]!==0||r[1]>16)&&a++,(r[3]!==0||r[2]>16)&&i++,r[0]===0&&r[1]===0&&(r[2]!==0||r[3]!==0)&&o++,(r[0]!==0||r[1]!==0)&&r[2]===0&&r[3]===0&&s++,r.length=0,n++,n>=100)break e}return o-a>s-i?"utf-32be":o-a<s-i?"utf-32le":t||"utf-32le"}});var olt=b(t1e=>{"use strict";var alt=Z1().Buffer;t1e.utf16be=g$;function g$(){}g$.prototype.encoder=Jme;g$.prototype.decoder=Xme;g$.prototype.bomAware=!0;function Jme(){}Jme.prototype.write=function(e){for(var t=alt.from(e,"ucs2"),r=0;r<t.length;r+=2){var n=t[r];t[r]=t[r+1],t[r+1]=n}return t};Jme.prototype.end=function(){};function Xme(){this.overflowByte=-1}Xme.prototype.write=function(e){if(e.length==0)return"";var t=alt.alloc(e.length+1),r=0,n=0;for(this.overflowByte!==-1&&(t[0]=e[0],t[1]=this.overflowByte,r=1,n=2);r<e.length-1;r+=2,n+=2)t[n]=e[r+1],t[n+1]=e[r];return this.overflowByte=r==e.length-1?e[e.length-1]:-1,t.slice(0,n).toString("ucs2")};Xme.prototype.end=function(){this.overflowByte=-1};t1e.utf16=Qme;function Qme(e,t){this.iconv=t}Qme.prototype.encoder=Zme;Qme.prototype.decoder=e1e;function Zme(e,t){e=e||{},e.addBOM===void 0&&(e.addBOM=!0),this.encoder=t.iconv.getEncoder("utf-16le",e)}Zme.prototype.write=function(e){return this.encoder.write(e)};Zme.prototype.end=function(){return this.encoder.end()};function e1e(e,t){this.decoder=null,this.initialBufs=[],this.initialBufsLen=0,this.options=e||{},this.iconv=t.iconv}e1e.prototype.write=function(e){if(!this.decoder){if(this.initialBufs.push(e),this.initialBufsLen+=e.length,this.initialBufsLen<16)return"";var t=slt(this.initialBufs,this.options.defaultEncoding);this.decoder=this.iconv.getDecoder(t,this.options);for(var r="",n=0;n<this.initialBufs.length;n++)r+=this.decoder.write(this.initialBufs[n]);return this.initialBufs.length=this.initialBufsLen=0,r}return this.decoder.write(e)};e1e.prototype.end=function(){if(!this.decoder){var e=slt(this.initialBufs,this.options.defaultEncoding);this.decoder=this.iconv.getDecoder(e,this.options);for(var t="",r=0;r<this.initialBufs.length;r++)t+=this.decoder.write(this.initialBufs[r]);var n=this.decoder.end();return n&&(t+=n),this.initialBufs.length=this.initialBufsLen=0,t}return this.decoder.end()};function slt(e,t){var r=[],n=0,i=0,a=0;e:for(var s=0;s<e.length;s++)for(var o=e[s],c=0;c<o.length;c++)if(r.push(o[c]),r.length===2){if(n===0){if(r[0]===255&&r[1]===254)return"utf-16le";if(r[0]===254&&r[1]===255)return"utf-16be"}if(r[0]===0&&r[1]!==0&&a++,r[0]!==0&&r[1]===0&&i++,r.length=0,n++,n>=100)break e}return a>i?"utf-16be":a<i?"utf-16le":t||"utf-16le"}});var clt=b(b$=>{"use strict";var Rh=Z1().Buffer;b$.utf7=v$;b$.unicode11utf7="utf7";function v$(e,t){this.iconv=t}v$.prototype.encoder=n1e;v$.prototype.decoder=i1e;v$.prototype.bomAware=!0;var i4r=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function n1e(e,t){this.iconv=t.iconv}n1e.prototype.write=function(e){return Rh.from(e.replace(i4r,function(t){return"+"+(t==="+"?"":this.iconv.encode(t,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))};n1e.prototype.end=function(){};function i1e(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=""}var a4r=/[A-Za-z0-9\/+]/,a1e=[];for(hT=0;hT<256;hT++)a1e[hT]=a4r.test(String.fromCharCode(hT));var hT,s4r="+".charCodeAt(0),Lw="-".charCodeAt(0),r1e="&".charCodeAt(0);i1e.prototype.write=function(e){for(var t="",r=0,n=this.inBase64,i=this.base64Accum,a=0;a<e.length;a++)if(!n)e[a]==s4r&&(t+=this.iconv.decode(e.slice(r,a),"ascii"),r=a+1,n=!0);else if(!a1e[e[a]]){if(a==r&&e[a]==Lw)t+="+";else{var s=i+this.iconv.decode(e.slice(r,a),"ascii");t+=this.iconv.decode(Rh.from(s,"base64"),"utf16-be")}e[a]!=Lw&&a--,r=a+1,n=!1,i=""}if(!n)t+=this.iconv.decode(e.slice(r),"ascii");else{var s=i+this.iconv.decode(e.slice(r),"ascii"),o=s.length-s.length%8;i=s.slice(o),s=s.slice(0,o),t+=this.iconv.decode(Rh.from(s,"base64"),"utf16-be")}return this.inBase64=n,this.base64Accum=i,t};i1e.prototype.end=function(){var e="";return this.inBase64&&this.base64Accum.length>0&&(e=this.iconv.decode(Rh.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e};b$.utf7imap=y$;function y$(e,t){this.iconv=t}y$.prototype.encoder=s1e;y$.prototype.decoder=o1e;y$.prototype.bomAware=!0;function s1e(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=Rh.alloc(6),this.base64AccumIdx=0}s1e.prototype.write=function(e){for(var t=this.inBase64,r=this.base64Accum,n=this.base64AccumIdx,i=Rh.alloc(e.length*5+10),a=0,s=0;s<e.length;s++){var o=e.charCodeAt(s);32<=o&&o<=126?(t&&(n>0&&(a+=i.write(r.slice(0,n).toString("base64").replace(/\//g,",").replace(/=+$/,""),a),n=0),i[a++]=Lw,t=!1),t||(i[a++]=o,o===r1e&&(i[a++]=Lw))):(t||(i[a++]=r1e,t=!0),t&&(r[n++]=o>>8,r[n++]=o&255,n==r.length&&(a+=i.write(r.toString("base64").replace(/\//g,","),a),n=0)))}return this.inBase64=t,this.base64AccumIdx=n,i.slice(0,a)};s1e.prototype.end=function(){var e=Rh.alloc(10),t=0;return this.inBase64&&(this.base64AccumIdx>0&&(t+=e.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),t),this.base64AccumIdx=0),e[t++]=Lw,this.inBase64=!1),e.slice(0,t)};function o1e(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=""}var ult=a1e.slice();ult[",".charCodeAt(0)]=!0;o1e.prototype.write=function(e){for(var t="",r=0,n=this.inBase64,i=this.base64Accum,a=0;a<e.length;a++)if(!n)e[a]==r1e&&(t+=this.iconv.decode(e.slice(r,a),"ascii"),r=a+1,n=!0);else if(!ult[e[a]]){if(a==r&&e[a]==Lw)t+="&";else{var s=i+this.iconv.decode(e.slice(r,a),"ascii").replace(/,/g,"/");t+=this.iconv.decode(Rh.from(s,"base64"),"utf16-be")}e[a]!=Lw&&a--,r=a+1,n=!1,i=""}if(!n)t+=this.iconv.decode(e.slice(r),"ascii");else{var s=i+this.iconv.decode(e.slice(r),"ascii").replace(/,/g,"/"),o=s.length-s.length%8;i=s.slice(o),s=s.slice(0,o),t+=this.iconv.decode(Rh.from(s,"base64"),"utf16-be")}return this.inBase64=n,this.base64Accum=i,t};o1e.prototype.end=function(){var e="";return this.inBase64&&this.base64Accum.length>0&&(e=this.iconv.decode(Rh.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e}});var plt=b(llt=>{"use strict";var w$=Z1().Buffer;llt._sbcs=u1e;function u1e(e,t){if(!e)throw new Error("SBCS codec is called without the data.");if(!e.chars||e.chars.length!==128&&e.chars.length!==256)throw new Error("Encoding '"+e.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(e.chars.length===128){for(var r="",n=0;n<128;n++)r+=String.fromCharCode(n);e.chars=r+e.chars}this.decodeBuf=w$.from(e.chars,"ucs2");for(var i=w$.alloc(65536,t.defaultCharSingleByte.charCodeAt(0)),n=0;n<e.chars.length;n++)i[e.chars.charCodeAt(n)]=n;this.encodeBuf=i}u1e.prototype.encoder=c1e;u1e.prototype.decoder=l1e;function c1e(e,t){this.encodeBuf=t.encodeBuf}c1e.prototype.write=function(e){for(var t=w$.alloc(e.length),r=0;r<e.length;r++)t[r]=this.encodeBuf[e.charCodeAt(r)];return t};c1e.prototype.end=function(){};function l1e(e,t){this.decodeBuf=t.decodeBuf}l1e.prototype.write=function(e){for(var t=this.decodeBuf,r=w$.alloc(e.length*2),n=0,i=0,a=0;a<e.length;a++)n=e[a]*2,i=a*2,r[i]=t[n],r[i+1]=t[n+1];return r.toString("ucs2")};l1e.prototype.end=function(){}});var dlt=b((pln,flt)=>{"use strict";flt.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"},mik:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},cp720:{type:"_sbcs",chars:"\x80\x81\xE9\xE2\x84\xE0\x86\xE7\xEA\xEB\xE8\xEF\xEE\x8D\x8E\x8F\x90\u0651\u0652\xF4\xA4\u0640\xFB\xF9\u0621\u0622\u0623\u0624\xA3\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0636\u0637\u0638\u0639\u063A\u0641\xB5\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u2261\u064B\u064C\u064D\u064E\u064F\u0650\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}});var mlt=b((fln,hlt)=>{"use strict";hlt.exports={437:"cp437",737:"cp737",775:"cp775",850:"cp850",852:"cp852",855:"cp855",856:"cp856",857:"cp857",858:"cp858",860:"cp860",861:"cp861",862:"cp862",863:"cp863",864:"cp864",865:"cp865",866:"cp866",869:"cp869",874:"windows874",922:"cp922",1046:"cp1046",1124:"cp1124",1125:"cp1125",1129:"cp1129",1133:"cp1133",1161:"cp1161",1162:"cp1162",1163:"cp1163",1250:"windows1250",1251:"windows1251",1252:"windows1252",1253:"windows1253",1254:"windows1254",1255:"windows1255",1256:"windows1256",1257:"windows1257",1258:"windows1258",28591:"iso88591",28592:"iso88592",28593:"iso88593",28594:"iso88594",28595:"iso88595",28596:"iso88596",28597:"iso88597",28598:"iso88598",28599:"iso88599",28600:"iso885910",28601:"iso885911",28603:"iso885913",28604:"iso885914",28605:"iso885915",28606:"iso885916",windows874:{type:"_sbcs",chars:"\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},win874:"windows874",cp874:"windows874",windows1250:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},win1250:"windows1250",cp1250:"windows1250",windows1251:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},win1251:"windows1251",cp1251:"windows1251",windows1252:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},win1252:"windows1252",cp1252:"windows1252",windows1253:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},win1253:"windows1253",cp1253:"windows1253",windows1254:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},win1254:"windows1254",cp1254:"windows1254",windows1255:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},win1255:"windows1255",cp1255:"windows1255",windows1256:{type:"_sbcs",chars:"\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"},win1256:"windows1256",cp1256:"windows1256",windows1257:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"},win1257:"windows1257",cp1257:"windows1257",windows1258:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},win1258:"windows1258",cp1258:"windows1258",iso88591:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28591:"iso88591",iso88592:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},cp28592:"iso88592",iso88593:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"},cp28593:"iso88593",iso88594:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"},cp28594:"iso88594",iso88595:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},cp28595:"iso88595",iso88596:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},cp28596:"iso88596",iso88597:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},cp28597:"iso88597",iso88598:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},cp28598:"iso88598",iso88599:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},cp28599:"iso88599",iso885910:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"},cp28600:"iso885910",iso885911:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},cp28601:"iso885911",iso885913:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"},cp28603:"iso885913",iso885914:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"},cp28604:"iso885914",iso885915:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28605:"iso885915",iso885916:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"},cp28606:"iso885916",cp437:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm437:"cp437",csibm437:"cp437",cp737:{type:"_sbcs",chars:"\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm737:"cp737",csibm737:"cp737",cp775:{type:"_sbcs",chars:"\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm775:"cp775",csibm775:"cp775",cp850:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm850:"cp850",csibm850:"cp850",cp852:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"},ibm852:"cp852",csibm852:"cp852",cp855:{type:"_sbcs",chars:"\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"},ibm855:"cp855",csibm855:"cp855",cp856:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm856:"cp856",csibm856:"cp856",cp857:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm857:"cp857",csibm857:"cp857",cp858:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm858:"cp858",csibm858:"cp858",cp860:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm860:"cp860",csibm860:"cp860",cp861:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm861:"cp861",csibm861:"cp861",cp862:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm862:"cp862",csibm862:"cp862",cp863:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm863:"cp863",csibm863:"cp863",cp864:{type:"_sbcs",chars:`\0\x07\b	
\v\f\r\x1B !"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD`},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0"},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0"},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},ibm1124:"cp1124",csibm1124:"cp1124",cp1125:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xB7\u221A\u2116\xA4\u25A0\xA0"},ibm1125:"cp1125",csibm1125:"cp1125",cp1129:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},ibm1129:"cp1129",csibm1129:"cp1129",cp1133:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAB\u0EAD\u0EAE\uFFFD\uFFFD\uFFFD\u0EAF\u0EB0\u0EB2\u0EB3\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBC\u0EB1\u0EBB\u0EBD\uFFFD\uFFFD\uFFFD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0EC6\uFFFD\u0EDC\u0EDD\u20AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\uFFFD\uFFFD\xA2\xAC\xA6\uFFFD"},ibm1133:"cp1133",csibm1133:"cp1133",cp1161:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u20AC\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\xA2\xAC\xA6\xA0"},ibm1161:"cp1161",csibm1161:"cp1161",cp1162:{type:"_sbcs",chars:"\u20AC\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},ibm1162:"cp1162",csibm1162:"cp1162",cp1163:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},ibm1163:"cp1163",csibm1163:"cp1163",maccroatian:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u2126\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uFFFD\xA9\u2044\xA4\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7"},maccyrillic:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\xA2\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"},macgreek:{type:"_sbcs",chars:"\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\xAD\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\u0387\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD"},maciceland:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macroman:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macromania:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u015E\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\u0103\u015F\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\u0162\u0163\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macthai:{type:"_sbcs",chars:"\xAB\xBB\u2026\uF88C\uF88F\uF892\uF895\uF898\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\xAE\xA9\uFFFD\uFFFD\uFFFD\uFFFD"},macturkish:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\uFFFD\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macukraine:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"},koi8r:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8u:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8ru:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u045E\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u040E\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8t:{type:"_sbcs",chars:"\u049B\u0493\u201A\u0492\u201E\u2026\u2020\u2021\uFFFD\u2030\u04B3\u2039\u04B2\u04B7\u04B6\uFFFD\u049A\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04EF\u04EE\u0451\xA4\u04E3\xA6\xA7\uFFFD\uFFFD\uFFFD\xAB\xAC\xAD\xAE\uFFFD\xB0\xB1\xB2\u0401\uFFFD\u04E2\xB6\xB7\uFFFD\u2116\uFFFD\xBB\uFFFD\uFFFD\uFFFD\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},armscii8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\u0587\u0589)(\xBB\xAB\u2014.\u055D,-\u058A\u2026\u055C\u055B\u055E\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053A\u056A\u053B\u056B\u053C\u056C\u053D\u056D\u053E\u056E\u053F\u056F\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054A\u057A\u054B\u057B\u054C\u057C\u054D\u057D\u054E\u057E\u054F\u057F\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055A\uFFFD"},rk1048:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u049A\u04BA\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u049B\u04BB\u045F\xA0\u04B0\u04B1\u04D8\xA4\u04E8\xA6\xA7\u0401\xA9\u0492\xAB\xAC\xAD\xAE\u04AE\xB0\xB1\u0406\u0456\u04E9\xB5\xB6\xB7\u0451\u2116\u0493\xBB\u04D9\u04A2\u04A3\u04AF\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},tcvn:{type:"_sbcs",chars:`\0\xDA\u1EE4\u1EEA\u1EEC\u1EEE\x07\b	
\v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0`},georgianacademy:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},georgianps:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},pt154:{type:"_sbcs",chars:"\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},viscii:{type:"_sbcs",chars:`\0\u1EB2\u1EB4\u1EAA\x07\b	
\v\f\r\u1EF6\u1EF8\x1B\u1EF4 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE`},iso646cn:{type:"_sbcs",chars:`\0\x07\b	
\v\f\r\x1B !"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},iso646jp:{type:"_sbcs",chars:`\0\x07\b	
\v\f\r\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"},macintosh:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},ascii:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},tis620:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"}}});var ylt=b(vlt=>{"use strict";var p1e=Z1().Buffer;vlt._dbcs=e0;var zo=-1,glt=-2,Tp=-10,rc=-1e3,w8=new Array(256),mT=-1;for(_$=0;_$<256;_$++)w8[_$]=zo;var _$;function e0(e,t){if(this.encodingName=e.encodingName,!e)throw new Error("DBCS codec is called without the data.");if(!e.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=e.table();this.decodeTables=[],this.decodeTables[0]=w8.slice(0),this.decodeTableSeq=[];for(var n=0;n<r.length;n++)this._addDecodeChunk(r[n]);if(typeof e.gb18030=="function"){this.gb18030=e.gb18030();var i=this.decodeTables.length;this.decodeTables.push(w8.slice(0));var a=this.decodeTables.length;this.decodeTables.push(w8.slice(0));for(var s=this.decodeTables[0],n=129;n<=254;n++)for(var o=this.decodeTables[rc-s[n]],c=48;c<=57;c++){if(o[c]===zo)o[c]=rc-i;else if(o[c]>rc)throw new Error("gb18030 decode tables conflict at byte 2");for(var p=this.decodeTables[rc-o[c]],f=129;f<=254;f++){if(p[f]===zo)p[f]=rc-a;else{if(p[f]===rc-a)continue;if(p[f]>rc)throw new Error("gb18030 decode tables conflict at byte 3")}for(var d=this.decodeTables[rc-p[f]],h=48;h<=57;h++)d[h]===zo&&(d[h]=glt)}}}this.defaultCharUnicode=t.defaultCharUnicode,this.encodeTable=[],this.encodeTableSeq=[];var g={};if(e.encodeSkipVals)for(var n=0;n<e.encodeSkipVals.length;n++){var v=e.encodeSkipVals[n];if(typeof v=="number")g[v]=!0;else for(var c=v.from;c<=v.to;c++)g[c]=!0}if(this._fillEncodeTable(0,0,g),e.encodeAdd)for(var y in e.encodeAdd)Object.prototype.hasOwnProperty.call(e.encodeAdd,y)&&this._setEncodeChar(y.charCodeAt(0),e.encodeAdd[y]);this.defCharSB=this.encodeTable[0][t.defaultCharSingleByte.charCodeAt(0)],this.defCharSB===zo&&(this.defCharSB=this.encodeTable[0]["?"]),this.defCharSB===zo&&(this.defCharSB="?".charCodeAt(0))}e0.prototype.encoder=x$;e0.prototype.decoder=f1e;e0.prototype._getDecodeTrieNode=function(e){for(var t=[];e>0;e>>>=8)t.push(e&255);t.length==0&&t.push(0);for(var r=this.decodeTables[0],n=t.length-1;n>0;n--){var i=r[t[n]];if(i==zo)r[t[n]]=rc-this.decodeTables.length,this.decodeTables.push(r=w8.slice(0));else if(i<=rc)r=this.decodeTables[rc-i];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+e.toString(16))}return r};e0.prototype._addDecodeChunk=function(e){var t=parseInt(e[0],16),r=this._getDecodeTrieNode(t);t=t&255;for(var n=1;n<e.length;n++){var i=e[n];if(typeof i=="string")for(var a=0;a<i.length;){var s=i.charCodeAt(a++);if(55296<=s&&s<56320){var o=i.charCodeAt(a++);if(56320<=o&&o<57344)r[t++]=65536+(s-55296)*1024+(o-56320);else throw new Error("Incorrect surrogate pair in "+this.encodingName+" at chunk "+e[0])}else if(4080<s&&s<=4095){for(var c=4095-s+2,p=[],f=0;f<c;f++)p.push(i.charCodeAt(a++));r[t++]=Tp-this.decodeTableSeq.length,this.decodeTableSeq.push(p)}else r[t++]=s}else if(typeof i=="number")for(var d=r[t-1]+1,a=0;a<i;a++)r[t++]=d++;else throw new Error("Incorrect type '"+typeof i+"' given in "+this.encodingName+" at chunk "+e[0])}if(t>255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+e[0]+": too long"+t)};e0.prototype._getEncodeBucket=function(e){var t=e>>8;return this.encodeTable[t]===void 0&&(this.encodeTable[t]=w8.slice(0)),this.encodeTable[t]};e0.prototype._setEncodeChar=function(e,t){var r=this._getEncodeBucket(e),n=e&255;r[n]<=Tp?this.encodeTableSeq[Tp-r[n]][mT]=t:r[n]==zo&&(r[n]=t)};e0.prototype._setEncodeSequence=function(e,t){var r=e[0],n=this._getEncodeBucket(r),i=r&255,a;n[i]<=Tp?a=this.encodeTableSeq[Tp-n[i]]:(a={},n[i]!==zo&&(a[mT]=n[i]),n[i]=Tp-this.encodeTableSeq.length,this.encodeTableSeq.push(a));for(var s=1;s<e.length-1;s++){var o=a[r];typeof o=="object"?a=o:(a=a[r]={},o!==void 0&&(a[mT]=o))}r=e[e.length-1],a[r]=t};e0.prototype._fillEncodeTable=function(e,t,r){for(var n=this.decodeTables[e],i=!1,a={},s=0;s<256;s++){var o=n[s],c=t+s;if(!r[c])if(o>=0)this._setEncodeChar(o,c),i=!0;else if(o<=rc){var p=rc-o;if(!a[p]){var f=c<<8>>>0;this._fillEncodeTable(p,f,r)?i=!0:a[p]=!0}}else o<=Tp&&(this._setEncodeSequence(this.decodeTableSeq[Tp-o],c),i=!0)}return i};function x$(e,t){this.leadSurrogate=-1,this.seqObj=void 0,this.encodeTable=t.encodeTable,this.encodeTableSeq=t.encodeTableSeq,this.defaultCharSingleByte=t.defCharSB,this.gb18030=t.gb18030}x$.prototype.write=function(e){for(var t=p1e.alloc(e.length*(this.gb18030?4:3)),r=this.leadSurrogate,n=this.seqObj,i=-1,a=0,s=0;;){if(i===-1){if(a==e.length)break;var o=e.charCodeAt(a++)}else{var o=i;i=-1}if(55296<=o&&o<57344)if(o<56320)if(r===-1){r=o;continue}else r=o,o=zo;else r!==-1?(o=65536+(r-55296)*1024+(o-56320),r=-1):o=zo;else r!==-1&&(i=o,o=zo,r=-1);var c=zo;if(n!==void 0&&o!=zo){var p=n[o];if(typeof p=="object"){n=p;continue}else typeof p=="number"?c=p:p==null&&(p=n[mT],p!==void 0&&(c=p,i=o));n=void 0}else if(o>=0){var f=this.encodeTable[o>>8];if(f!==void 0&&(c=f[o&255]),c<=Tp){n=this.encodeTableSeq[Tp-c];continue}if(c==zo&&this.gb18030){var d=d1e(this.gb18030.uChars,o);if(d!=-1){var c=this.gb18030.gbChars[d]+(o-this.gb18030.uChars[d]);t[s++]=129+Math.floor(c/12600),c=c%12600,t[s++]=48+Math.floor(c/1260),c=c%1260,t[s++]=129+Math.floor(c/10),c=c%10,t[s++]=48+c;continue}}}c===zo&&(c=this.defaultCharSingleByte),c<256?t[s++]=c:c<65536?(t[s++]=c>>8,t[s++]=c&255):c<16777216?(t[s++]=c>>16,t[s++]=c>>8&255,t[s++]=c&255):(t[s++]=c>>>24,t[s++]=c>>>16&255,t[s++]=c>>>8&255,t[s++]=c&255)}return this.seqObj=n,this.leadSurrogate=r,t.slice(0,s)};x$.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var e=p1e.alloc(10),t=0;if(this.seqObj){var r=this.seqObj[mT];r!==void 0&&(r<256?e[t++]=r:(e[t++]=r>>8,e[t++]=r&255)),this.seqObj=void 0}return this.leadSurrogate!==-1&&(e[t++]=this.defaultCharSingleByte,this.leadSurrogate=-1),e.slice(0,t)}};x$.prototype.findIdx=d1e;function f1e(e,t){this.nodeIdx=0,this.prevBytes=[],this.decodeTables=t.decodeTables,this.decodeTableSeq=t.decodeTableSeq,this.defaultCharUnicode=t.defaultCharUnicode,this.gb18030=t.gb18030}f1e.prototype.write=function(e){for(var t=p1e.alloc(e.length*2),r=this.nodeIdx,n=this.prevBytes,i=this.prevBytes.length,a=-this.prevBytes.length,s,o=0,c=0;o<e.length;o++){var p=o>=0?e[o]:n[o+i],s=this.decodeTables[r][p];if(!(s>=0))if(s===zo)s=this.defaultCharUnicode.charCodeAt(0),o=a;else if(s===glt){if(o>=3)var f=(e[o-3]-129)*12600+(e[o-2]-48)*1260+(e[o-1]-129)*10+(p-48);else var f=(n[o-3+i]-129)*12600+((o-2>=0?e[o-2]:n[o-2+i])-48)*1260+((o-1>=0?e[o-1]:n[o-1+i])-129)*10+(p-48);var d=d1e(this.gb18030.gbChars,f);s=this.gb18030.uChars[d]+f-this.gb18030.gbChars[d]}else if(s<=rc){r=rc-s;continue}else if(s<=Tp){for(var h=this.decodeTableSeq[Tp-s],g=0;g<h.length-1;g++)s=h[g],t[c++]=s&255,t[c++]=s>>8;s=h[h.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+s+" at "+r+"/"+p);if(s>=65536){s-=65536;var v=55296|s>>10;t[c++]=v&255,t[c++]=v>>8,s=56320|s&1023}t[c++]=s&255,t[c++]=s>>8,r=0,a=o+1}return this.nodeIdx=r,this.prevBytes=a>=0?Array.prototype.slice.call(e,a):n.slice(a+i).concat(Array.prototype.slice.call(e)),t.slice(0,c).toString("ucs2")};f1e.prototype.end=function(){for(var e="";this.prevBytes.length>0;){e+=this.defaultCharUnicode;var t=this.prevBytes.slice(1);this.prevBytes=[],this.nodeIdx=0,t.length>0&&(e+=this.write(t))}return this.prevBytes=[],this.nodeIdx=0,e};function d1e(e,t){if(e[0]>t)return-1;for(var r=0,n=e.length;r<n-1;){var i=r+(n-r+1>>1);e[i]<=t?r=i:n=i}return r}});var blt=b((hln,o4r)=>{o4r.exports=[["0","\0",128],["a1","\uFF61",62],["8140","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7"],["8180","\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["81b8","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["81c8","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["81da","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["81f0","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["81fc","\u25EF"],["824f","\uFF10",9],["8260","\uFF21",25],["8281","\uFF41",25],["829f","\u3041",82],["8340","\u30A1",62],["8380","\u30E0",22],["839f","\u0391",16,"\u03A3",6],["83bf","\u03B1",16,"\u03C3",6],["8440","\u0410",5,"\u0401\u0416",25],["8470","\u0430",5,"\u0451\u0436",7],["8480","\u043E",17],["849f","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["8740","\u2460",19,"\u2160",9],["875f","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["877e","\u337B"],["8780","\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["889f","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["8940","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],["8980","\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["8a40","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],["8a80","\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["8b40","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],["8b80","\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["8c40","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],["8c80","\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["8d40","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],["8d80","\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["8e40","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],["8e80","\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["8f40","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],["8f80","\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["9040","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],["9080","\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["9140","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],["9180","\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["9240","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],["9280","\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["9340","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],["9380","\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["9440","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],["9480","\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["9540","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],["9580","\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["9640","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],["9680","\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["9740","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],["9780","\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["9840","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["989f","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["9940","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],["9980","\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["9a40","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],["9a80","\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["9b40","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],["9b80","\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["9c40","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],["9c80","\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["9d40","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],["9d80","\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["9e40","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],["9e80","\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["9f40","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],["9f80","\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["e040","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],["e080","\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e140","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],["e180","\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e240","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],["e280","\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e340","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],["e380","\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e440","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],["e480","\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e540","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],["e580","\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["e640","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],["e680","\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["e740","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],["e780","\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["e840","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],["e880","\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["e940","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],["e980","\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["ea40","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],["ea80","\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],["ed40","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],["ed80","\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["ee40","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],["ee80","\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["eeef","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["f040","\uE000",62],["f080","\uE03F",124],["f140","\uE0BC",62],["f180","\uE0FB",124],["f240","\uE178",62],["f280","\uE1B7",124],["f340","\uE234",62],["f380","\uE273",124],["f440","\uE2F0",62],["f480","\uE32F",124],["f540","\uE3AC",62],["f580","\uE3EB",124],["f640","\uE468",62],["f680","\uE4A7",124],["f740","\uE524",62],["f780","\uE563",124],["f840","\uE5E0",62],["f880","\uE61F",124],["f940","\uE69C"],["fa40","\u2170",9,"\u2160",9,"\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],["fa80","\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],["fb40","\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],["fb80","\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],["fc40","\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]]});var wlt=b((mln,u4r)=>{u4r.exports=[["0","\0",127],["8ea1","\uFF61",62],["a1a1","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],["a2a1","\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["a2ba","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["a2ca","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["a2dc","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["a2f2","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["a2fe","\u25EF"],["a3b0","\uFF10",9],["a3c1","\uFF21",25],["a3e1","\uFF41",25],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a8a1","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["ada1","\u2460",19,"\u2160",9],["adc0","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["addf","\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["b0a1","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["b1a1","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],["b2a1","\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["b3a1","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],["b4a1","\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["b5a1","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],["b6a1","\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["b7a1","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],["b8a1","\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["b9a1","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],["baa1","\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["bba1","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],["bca1","\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["bda1","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],["bea1","\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["bfa1","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],["c0a1","\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["c1a1","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],["c2a1","\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["c3a1","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],["c4a1","\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["c5a1","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],["c6a1","\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["c7a1","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],["c8a1","\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["c9a1","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],["caa1","\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["cba1","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],["cca1","\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["cda1","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],["cea1","\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["cfa1","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["d0a1","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["d1a1","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],["d2a1","\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["d3a1","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],["d4a1","\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["d5a1","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],["d6a1","\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["d7a1","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],["d8a1","\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["d9a1","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],["daa1","\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["dba1","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],["dca1","\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["dda1","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],["dea1","\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["dfa1","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],["e0a1","\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e1a1","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],["e2a1","\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e3a1","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],["e4a1","\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e5a1","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],["e6a1","\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e7a1","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],["e8a1","\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e9a1","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],["eaa1","\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["eba1","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],["eca1","\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["eda1","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],["eea1","\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["efa1","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],["f0a1","\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["f1a1","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],["f2a1","\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["f3a1","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],["f4a1","\u582F\u69C7\u9059\u7464\u51DC\u7199"],["f9a1","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],["faa1","\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["fba1","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],["fca1","\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["fcf1","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["8fa2af","\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],["8fa2c2","\xA1\xA6\xBF"],["8fa2eb","\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],["8fa6e1","\u0386\u0388\u0389\u038A\u03AA"],["8fa6e7","\u038C"],["8fa6e9","\u038E\u03AB"],["8fa6ec","\u038F"],["8fa6f1","\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],["8fa7c2","\u0402",10,"\u040E\u040F"],["8fa7f2","\u0452",10,"\u045E\u045F"],["8fa9a1","\xC6\u0110"],["8fa9a4","\u0126"],["8fa9a6","\u0132"],["8fa9a8","\u0141\u013F"],["8fa9ab","\u014A\xD8\u0152"],["8fa9af","\u0166\xDE"],["8fa9c1","\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],["8faaa1","\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],["8faaba","\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],["8faba1","\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],["8fabbd","\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],["8fabc5","\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],["8fb0a1","\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],["8fb1a1","\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],["8fb2a1","\u5092\u5093\u5094\u5096\u509B\u509C\u509E",4,"\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],["8fb3a1","\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],["8fb4a1","\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],["8fb5a1","\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],["8fb6a1","\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D",5,"\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4",4,"\u56F1\u56EB\u56ED"],["8fb7a1","\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D",4,"\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],["8fb8a1","\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],["8fb9a1","\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],["8fbaa1","\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6",4,"\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],["8fbba1","\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],["8fbca1","\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A",4,"\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],["8fbda1","\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0",4,"\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],["8fbea1","\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110",4,"\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],["8fbfa1","\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],["8fc0a1","\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],["8fc1a1","\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],["8fc2a1","\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],["8fc3a1","\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E",4,"\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],["8fc4a1","\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],["8fc5a1","\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],["8fc6a1","\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],["8fc7a1","\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],["8fc8a1","\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],["8fc9a1","\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094",4,"\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103",4,"\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],["8fcaa1","\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],["8fcba1","\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],["8fcca1","\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428",9,"\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],["8fcda1","\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579",5,"\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],["8fcea1","\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2",6,"\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],["8fcfa1","\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],["8fd0a1","\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],["8fd1a1","\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],["8fd2a1","\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59",5],["8fd3a1","\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],["8fd4a1","\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2",4,"\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],["8fd5a1","\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],["8fd6a1","\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],["8fd7a1","\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],["8fd8a1","\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],["8fd9a1","\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F",4,"\u8556\u8559\u855C",6,"\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],["8fdaa1","\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660",4,"\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],["8fdba1","\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783",6,"\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],["8fdca1","\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA",4,"\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],["8fdda1","\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4",4,"\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],["8fdea1","\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42",4,"\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],["8fdfa1","\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],["8fe0a1","\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],["8fe1a1","\u8F43\u8F47\u8F4F\u8F51",4,"\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],["8fe2a1","\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],["8fe3a1","\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC",5,"\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275",4,"\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],["8fe4a1","\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF",4,"\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],["8fe5a1","\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9",4,"\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],["8fe6a1","\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],["8fe7a1","\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],["8fe8a1","\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931",4,"\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],["8fe9a1","\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF",4],["8feaa1","\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A",4,"\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],["8feba1","\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26",4,"\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],["8feca1","\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],["8feda1","\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43",4,"\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D",4,"\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]]});var E$=b((gln,c4r)=>{c4r.exports=[["0","\0",127,"\u20AC"],["8140","\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A",5,"\u4E72\u4E74",9,"\u4E7F",6,"\u4E87\u4E8A"],["8180","\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02",6,"\u4F0B\u4F0C\u4F12",4,"\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E",4,"\u4F44\u4F45\u4F47",5,"\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],["8240","\u4FA4\u4FAB\u4FAD\u4FB0",4,"\u4FB6",8,"\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2",4,"\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF",11],["8280","\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F",10,"\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050",4,"\u5056\u5057\u5058\u5059\u505B\u505D",7,"\u5066",5,"\u506D",8,"\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E",20,"\u50A4\u50A6\u50AA\u50AB\u50AD",4,"\u50B3",6,"\u50BC"],["8340","\u50BD",17,"\u50D0",5,"\u50D7\u50D8\u50D9\u50DB",10,"\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6",4,"\u50FC",9,"\u5108"],["8380","\u5109\u510A\u510C",5,"\u5113",13,"\u5122",28,"\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D",4,"\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6",4,"\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2",5],["8440","\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5",5,"\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244",5,"\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],["8480","\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273",9,"\u527E\u5280\u5283",4,"\u5289",6,"\u5291\u5292\u5294",6,"\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4",9,"\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9",5,"\u52E0\u52E1\u52E2\u52E3\u52E5",10,"\u52F1",7,"\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],["8540","\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F",9,"\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],["8580","\u5390",4,"\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF",6,"\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3",4,"\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D",4,"\u5463\u5465\u5467\u5469",7,"\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],["8640","\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0",4,"\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4",5,"\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A",4,"\u5512\u5513\u5515",5,"\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],["8680","\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B",4,"\u5551\u5552\u5553\u5554\u5557",4,"\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F",5,"\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0",6,"\u55A8",8,"\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF",4,"\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7",4,"\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8",4,"\u55FF\u5602\u5603\u5604\u5605"],["8740","\u5606\u5607\u560A\u560B\u560D\u5610",7,"\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640",11,"\u564F",4,"\u5655\u5656\u565A\u565B\u565D",4],["8780","\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D",7,"\u5687",6,"\u5690\u5691\u5692\u5694",14,"\u56A4",10,"\u56B0",6,"\u56B8\u56B9\u56BA\u56BB\u56BD",12,"\u56CB",8,"\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5",5,"\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B",6],["8840","\u5712",9,"\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734",4,"\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752",4,"\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],["8880","\u5781\u5787\u5788\u5789\u578A\u578D",4,"\u5794",6,"\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9",8,"\u57C4",6,"\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5",7,"\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825",4,"\u582B",4,"\u5831\u5832\u5833\u5834\u5836",7],["8940","\u583E",5,"\u5845",6,"\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859",4,"\u585F",5,"\u5866",4,"\u586D",16,"\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],["8980","\u588D",4,"\u5894",4,"\u589B\u589C\u589D\u58A0",7,"\u58AA",17,"\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6",10,"\u58D2\u58D3\u58D4\u58D6",13,"\u58E5",5,"\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA",7,"\u5903\u5905\u5906\u5908",4,"\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],["8a40","\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B",4,"\u5961\u5963\u5964\u5966",12,"\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],["8a80","\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3",5,"\u59BA\u59BC\u59BD\u59BF",6,"\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE",4,"\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED",11,"\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A",6,"\u5A33\u5A35\u5A37",4,"\u5A3D\u5A3E\u5A3F\u5A41",4,"\u5A47\u5A48\u5A4B",9,"\u5A56\u5A57\u5A58\u5A59\u5A5B",5],["8b40","\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B",8,"\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80",17,"\u5A93",6,"\u5A9C",13,"\u5AAB\u5AAC"],["8b80","\u5AAD",4,"\u5AB4\u5AB6\u5AB7\u5AB9",4,"\u5ABF\u5AC0\u5AC3",5,"\u5ACA\u5ACB\u5ACD",4,"\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC",4,"\u5AF2",22,"\u5B0A",11,"\u5B18",25,"\u5B33\u5B35\u5B36\u5B38",7,"\u5B41",6],["8c40","\u5B48",7,"\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],["8c80","\u5BD1\u5BD4",8,"\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9",4,"\u5BEF\u5BF1",6,"\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67",6,"\u5C70\u5C72",6,"\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83",4,"\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D",4,"\u5CA4",4],["8d40","\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5",5,"\u5CCC",5,"\u5CD3",5,"\u5CDA",6,"\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1",9,"\u5CFC",4],["8d80","\u5D01\u5D04\u5D05\u5D08",5,"\u5D0F",4,"\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F",4,"\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F",4,"\u5D35",7,"\u5D3F",7,"\u5D48\u5D49\u5D4D",10,"\u5D59\u5D5A\u5D5C\u5D5E",10,"\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75",12,"\u5D83",21,"\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],["8e40","\u5DA1",21,"\u5DB8",12,"\u5DC6",6,"\u5DCE",12,"\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],["8e80","\u5DF0\u5DF5\u5DF6\u5DF8",4,"\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E",7,"\u5E28",4,"\u5E2F\u5E30\u5E32",4,"\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46",5,"\u5E4D",6,"\u5E56",4,"\u5E5C\u5E5D\u5E5F\u5E60\u5E63",14,"\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8",4,"\u5EAE",4,"\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF",6],["8f40","\u5EC6\u5EC7\u5EC8\u5ECB",5,"\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC",11,"\u5EE9\u5EEB",8,"\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],["8f80","\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32",6,"\u5F3B\u5F3D\u5F3E\u5F3F\u5F41",14,"\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2",5,"\u5FA9\u5FAB\u5FAC\u5FAF",5,"\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE",4,"\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],["9040","\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030",4,"\u6036",4,"\u603D\u603E\u6040\u6044",6,"\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],["9080","\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD",7,"\u60C7\u60C8\u60C9\u60CC",4,"\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1",4,"\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB",4,"\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110",4,"\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C",18,"\u6140",6],["9140","\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156",6,"\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169",6,"\u6171\u6172\u6173\u6174\u6176\u6178",18,"\u618C\u618D\u618F",4,"\u6195"],["9180","\u6196",6,"\u619E",8,"\u61AA\u61AB\u61AD",9,"\u61B8",5,"\u61BF\u61C0\u61C1\u61C3",4,"\u61C9\u61CC",4,"\u61D3\u61D5",16,"\u61E7",13,"\u61F6",8,"\u6200",5,"\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238",4,"\u6242\u6244\u6245\u6246\u624A"],["9240","\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C",6,"\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B",5,"\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],["9280","\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333",5,"\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356",7,"\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399",6,"\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],["9340","\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7",6,"\u63DF\u63E2\u63E4",4,"\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406",4,"\u640D\u640E\u6411\u6412\u6415",5,"\u641D\u641F\u6422\u6423\u6424"],["9380","\u6425\u6427\u6428\u6429\u642B\u642E",5,"\u6435",4,"\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B",6,"\u6453\u6455\u6456\u6457\u6459",4,"\u645F",7,"\u6468\u646A\u646B\u646C\u646E",9,"\u647B",6,"\u6483\u6486\u6488",8,"\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F",4,"\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6",6,"\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],["9440","\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7",24,"\u6501",7,"\u650A",7,"\u6513",4,"\u6519",8],["9480","\u6522\u6523\u6524\u6526",4,"\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540",4,"\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578",14,"\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1",7,"\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8",7,"\u65E1\u65E3\u65E4\u65EA\u65EB"],["9540","\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB",4,"\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637",4,"\u663D\u663F\u6640\u6642\u6644",6,"\u664D\u664E\u6650\u6651\u6658"],["9580","\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669",4,"\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698",4,"\u669E",8,"\u66A9",4,"\u66AF",4,"\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF",25,"\u66DA\u66DE",7,"\u66E7\u66E8\u66EA",5,"\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],["9640","\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720",5,"\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757",4,"\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],["9680","\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9",7,"\u67C2\u67C5",9,"\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5",7,"\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818",4,"\u681E\u681F\u6820\u6822",6,"\u682B",6,"\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856",5],["9740","\u685C\u685D\u685E\u685F\u686A\u686C",7,"\u6875\u6878",8,"\u6882\u6884\u6887",7,"\u6890\u6891\u6892\u6894\u6895\u6896\u6898",9,"\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],["9780","\u68B9",6,"\u68C1\u68C3",5,"\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB",4,"\u68E1\u68E2\u68E4",9,"\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906",4,"\u690C\u690F\u6911\u6913",11,"\u6921\u6922\u6923\u6925",7,"\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943",16,"\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],["9840","\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972",4,"\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E",5,"\u6996\u6997\u6999\u699A\u699D",9,"\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],["9880","\u69BE\u69BF\u69C0\u69C2",7,"\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5",5,"\u69DC\u69DD\u69DE\u69E1",11,"\u69EE\u69EF\u69F0\u69F1\u69F3",9,"\u69FE\u6A00",9,"\u6A0B",11,"\u6A19",5,"\u6A20\u6A22",5,"\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36",6,"\u6A3F",4,"\u6A45\u6A46\u6A48",7,"\u6A51",6,"\u6A5A"],["9940","\u6A5C",4,"\u6A62\u6A63\u6A64\u6A66",10,"\u6A72",6,"\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85",8,"\u6A8F\u6A92",4,"\u6A98",7,"\u6AA1",5],["9980","\u6AA7\u6AA8\u6AAA\u6AAD",114,"\u6B25\u6B26\u6B28",6],["9a40","\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D",11,"\u6B5A",7,"\u6B68\u6B69\u6B6B",13,"\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],["9a80","\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C",4,"\u6BA2",7,"\u6BAB",7,"\u6BB6\u6BB8",6,"\u6BC0\u6BC3\u6BC4\u6BC6",4,"\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC",4,"\u6BE2",7,"\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE",6,"\u6C08",4,"\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B",4,"\u6C51\u6C52\u6C53\u6C56\u6C58"],["9b40","\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B",4,"\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],["9b80","\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F",5,"\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D",4,"\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96",4,"\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9",5,"\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],["9c40","\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD",7,"\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],["9c80","\u6E36\u6E37\u6E39\u6E3B",7,"\u6E45",7,"\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60",10,"\u6E6C\u6E6D\u6E6F",14,"\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A",4,"\u6E91",6,"\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA",5],["9d40","\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA",7,"\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A",4,"\u6F10\u6F11\u6F12\u6F16",9,"\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37",6,"\u6F3F\u6F40\u6F41\u6F42"],["9d80","\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E",9,"\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67",5,"\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D",6,"\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F",12,"\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2",4,"\u6FA8",10,"\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA",5,"\u6FC1\u6FC3",5,"\u6FCA",6,"\u6FD3",10,"\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],["9e40","\u6FE6",7,"\u6FF0",32,"\u7012",7,"\u701C",6,"\u7024",6],["9e80","\u702B",9,"\u7036\u7037\u7038\u703A",17,"\u704D\u704E\u7050",13,"\u705F",11,"\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E",12,"\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB",12,"\u70DA"],["9f40","\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0",6,"\u70F8\u70FA\u70FB\u70FC\u70FE",10,"\u710B",4,"\u7111\u7112\u7114\u7117\u711B",10,"\u7127",7,"\u7132\u7133\u7134"],["9f80","\u7135\u7137",13,"\u7146\u7147\u7148\u7149\u714B\u714D\u714F",12,"\u715D\u715F",4,"\u7165\u7169",4,"\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E",5,"\u7185",4,"\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A",4,"\u71A1",6,"\u71A9\u71AA\u71AB\u71AD",5,"\u71B4\u71B6\u71B7\u71B8\u71BA",8,"\u71C4",9,"\u71CF",4],["a040","\u71D6",9,"\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8",5,"\u71EF",9,"\u71FA",11,"\u7207",19],["a080","\u721B\u721C\u721E",9,"\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240",6,"\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285",4,"\u728C\u728E\u7290\u7291\u7293",11,"\u72A0",11,"\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA",6,"\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],["a1a1","\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008",7,"\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],["a2a1","\u2170",9],["a2b1","\u2488",19,"\u2474",19,"\u2460",9],["a2e5","\u3220",9],["a2f1","\u2160",11],["a3a1","\uFF01\uFF02\uFF03\uFFE5\uFF05",88,"\uFFE3"],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a6e0","\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],["a6ee","\uFE3B\uFE3C\uFE37\uFE38\uFE31"],["a6f4","\uFE33\uFE34"],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a840","\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550",35,"\u2581",6],["a880","\u2588",7,"\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],["a8a1","\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],["a8bd","\u0144\u0148"],["a8c0","\u0261"],["a8c5","\u3105",36],["a940","\u3021",8,"\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],["a959","\u2121\u3231"],["a95c","\u2010"],["a960","\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49",9,"\uFE54\uFE55\uFE56\uFE57\uFE59",8],["a980","\uFE62",4,"\uFE68\uFE69\uFE6A\uFE6B"],["a996","\u3007"],["a9a4","\u2500",75],["aa40","\u72DC\u72DD\u72DF\u72E2",5,"\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304",5,"\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340",8],["aa80","\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358",7,"\u7361",10,"\u736E\u7370\u7371"],["ab40","\u7372",11,"\u737F",4,"\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3",5,"\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3",4],["ab80","\u73CB\u73CC\u73CE\u73D2",6,"\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3",4],["ac40","\u73F8",10,"\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411",8,"\u741C",5,"\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437",4,"\u743D\u743E\u743F\u7440\u7442",11],["ac80","\u744E",6,"\u7456\u7458\u745D\u7460",12,"\u746E\u746F\u7471",4,"\u7478\u7479\u747A"],["ad40","\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491",10,"\u749D\u749F",7,"\u74AA",15,"\u74BB",12],["ad80","\u74C8",9,"\u74D3",8,"\u74DD\u74DF\u74E1\u74E5\u74E7",6,"\u74F0\u74F1\u74F2"],["ae40","\u74F3\u74F5\u74F8",6,"\u7500\u7501\u7502\u7503\u7505",7,"\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520",4,"\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],["ae80","\u755D",7,"\u7567\u7568\u7569\u756B",6,"\u7573\u7575\u7576\u7577\u757A",4,"\u7580\u7581\u7582\u7584\u7585\u7587"],["af40","\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6",4,"\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],["af80","\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],["b040","\u7645",6,"\u764E",5,"\u7655\u7657",4,"\u765D\u765F\u7660\u7661\u7662\u7664",6,"\u766C\u766D\u766E\u7670",7,"\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],["b080","\u769C",7,"\u76A5",8,"\u76AF\u76B0\u76B3\u76B5",9,"\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],["b140","\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0",4,"\u76E6",7,"\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E",10,"\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],["b180","\u772C\u772E\u7730",4,"\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748",7,"\u7752",7,"\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],["b240","\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D",11,"\u777A\u777B\u777C\u7781\u7782\u7783\u7786",5,"\u778F\u7790\u7793",11,"\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6",4],["b280","\u77BC\u77BE\u77C0",12,"\u77CE",8,"\u77D8\u77D9\u77DA\u77DD",4,"\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],["b340","\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803",5,"\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],["b380","\u785B\u785C\u785E",11,"\u786F",7,"\u7878\u7879\u787A\u787B\u787D",6,"\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],["b440","\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8",7,"\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA",9],["b480","\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED",4,"\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB",5,"\u7902\u7903\u7904\u7906",6,"\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],["b540","\u790D",5,"\u7914",9,"\u791F",4,"\u7925",14,"\u7935",4,"\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A",8,"\u7954\u7955\u7958\u7959\u7961\u7963"],["b580","\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970",6,"\u7979\u797B",4,"\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],["b640","\u7993",6,"\u799B",11,"\u79A8",10,"\u79B4",4,"\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9",5,"\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],["b680","\u79EC\u79EE\u79F1",6,"\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F",4,"\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],["b740","\u7A1D\u7A1F\u7A21\u7A22\u7A24",14,"\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40",5,"\u7A47",9,"\u7A52",4,"\u7A58",16],["b780","\u7A69",6,"\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],["b840","\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE",4,"\u7AB4",10,"\u7AC0",10,"\u7ACC",9,"\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7",5,"\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],["b880","\u7AF4",4,"\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],["b940","\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F",5,"\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63",10,"\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86",6,"\u7B8E\u7B8F"],["b980","\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9",7,"\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],["ba40","\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4",4,"\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2",4,"\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF",7,"\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10",5,"\u7C17\u7C18\u7C19"],["ba80","\u7C1A",4,"\u7C20",5,"\u7C28\u7C29\u7C2B",12,"\u7C39",5,"\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],["bb40","\u7C43",9,"\u7C4E",36,"\u7C75",5,"\u7C7E",9],["bb80","\u7C88\u7C8A",6,"\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4",4,"\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],["bc40","\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE",6,"\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1",6,"\u7CE9",5,"\u7CF0",7,"\u7CF9\u7CFA\u7CFC",13,"\u7D0B",5],["bc80","\u7D11",14,"\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30",6,"\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],["bd40","\u7D37",54,"\u7D6F",7],["bd80","\u7D78",32,"\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],["be40","\u7D99",12,"\u7DA7",6,"\u7DAF",42],["be80","\u7DDA",32,"\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],["bf40","\u7DFB",62],["bf80","\u7E3A\u7E3C",4,"\u7E42",4,"\u7E48",21,"\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],["c040","\u7E5E",35,"\u7E83",23,"\u7E9C\u7E9D\u7E9E"],["c080","\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B",6,"\u7F43\u7F46",9,"\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],["c140","\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63",4,"\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82",7,"\u7F8B\u7F8D\u7F8F",4,"\u7F95",4,"\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8",6,"\u7FB1"],["c180","\u7FB3",4,"\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF",4,"\u7FD6\u7FD7\u7FD9",5,"\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],["c240","\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4",6,"\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B",5,"\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],["c280","\u8059\u805B",13,"\u806B",5,"\u8072",11,"\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],["c340","\u807E\u8081\u8082\u8085\u8088\u808A\u808D",5,"\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7",4,"\u80CF",6,"\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],["c380","\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F",12,"\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139",4,"\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],["c440","\u8140",5,"\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B",4,"\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183",4,"\u8189\u818B\u818C\u818D\u818E\u8190\u8192",5,"\u8199\u819A\u819E",4,"\u81A4\u81A5"],["c480","\u81A7\u81A9\u81AB",7,"\u81B4",5,"\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD",6,"\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],["c540","\u81D4",14,"\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE",4,"\u81F5",5,"\u81FD\u81FF\u8203\u8207",4,"\u820E\u820F\u8211\u8213\u8215",5,"\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],["c580","\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250",7,"\u8259\u825B\u825C\u825D\u825E\u8260",7,"\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],["c640","\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],["c680","\u82FA\u82FC",4,"\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D",9,"\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],["c740","\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A",4,"\u8353\u8355",4,"\u835D\u8362\u8370",6,"\u8379\u837A\u837E",6,"\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1",6,"\u83AC\u83AD\u83AE"],["c780","\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],["c840","\u83EE\u83EF\u83F3",4,"\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412",5,"\u8419\u841A\u841B\u841E",5,"\u8429",7,"\u8432",5,"\u8439\u843A\u843B\u843E",7,"\u8447\u8448\u8449"],["c880","\u844A",6,"\u8452",4,"\u8458\u845D\u845E\u845F\u8460\u8462\u8464",4,"\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],["c940","\u847D",4,"\u8483\u8484\u8485\u8486\u848A\u848D\u848F",7,"\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2",12,"\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],["c980","\u84D8",4,"\u84DE\u84E1\u84E2\u84E4\u84E7",4,"\u84ED\u84EE\u84EF\u84F1",10,"\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],["ca40","\u8503",8,"\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522",8,"\u852D",9,"\u853E",4,"\u8544\u8545\u8546\u8547\u854B",10],["ca80","\u8557\u8558\u855A\u855B\u855C\u855D\u855F",4,"\u8565\u8566\u8567\u8569",8,"\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],["cb40","\u8582\u8583\u8586\u8588",6,"\u8590",10,"\u859D",6,"\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1",5,"\u85B8\u85BA",6,"\u85C2",6,"\u85CA",4,"\u85D1\u85D2"],["cb80","\u85D4\u85D6",5,"\u85DD",6,"\u85E5\u85E6\u85E7\u85E8\u85EA",14,"\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],["cc40","\u85F9\u85FA\u85FC\u85FD\u85FE\u8600",4,"\u8606",10,"\u8612\u8613\u8614\u8615\u8617",15,"\u8628\u862A",13,"\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],["cc80","\u8641",11,"\u8652\u8653\u8655",4,"\u865B\u865C\u865D\u865F\u8660\u8661\u8663",7,"\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],["cd40","\u866D\u866F\u8670\u8672",6,"\u8683",6,"\u868E",4,"\u8694\u8696",5,"\u869E",4,"\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB",4,"\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],["cd80","\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],["ce40","\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740",6,"\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A",5,"\u8761\u8762\u8766",7,"\u876F\u8771\u8772\u8773\u8775"],["ce80","\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E",4,"\u8794\u8795\u8796\u8798",6,"\u87A0",4,"\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],["cf40","\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1",4,"\u87C7\u87C8\u87C9\u87CC",4,"\u87D4",6,"\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF",9],["cf80","\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804",5,"\u880B",7,"\u8814\u8817\u8818\u8819\u881A\u881C",4,"\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],["d040","\u8824",13,"\u8833",5,"\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846",5,"\u884E",5,"\u8855\u8856\u8858\u885A",6,"\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],["d080","\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897",4,"\u889D",4,"\u88A3\u88A5",5,"\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],["d140","\u88AC\u88AE\u88AF\u88B0\u88B2",4,"\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA",4,"\u88E0\u88E1\u88E6\u88E7\u88E9",6,"\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903",5],["d180","\u8909\u890B",4,"\u8911\u8914",4,"\u891C",4,"\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],["d240","\u8938",8,"\u8942\u8943\u8945",24,"\u8960",5,"\u8967",19,"\u897C"],["d280","\u897D\u897E\u8980\u8982\u8984\u8985\u8987",26,"\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],["d340","\u89A2",30,"\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4",6],["d380","\u89FB",4,"\u8A01",5,"\u8A08",21,"\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],["d440","\u8A1E",31,"\u8A3F",8,"\u8A49",21],["d480","\u8A5F",25,"\u8A7A",6,"\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],["d540","\u8A81",7,"\u8A8B",7,"\u8A94",46],["d580","\u8AC3",32,"\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],["d640","\u8AE4",34,"\u8B08",27],["d680","\u8B24\u8B25\u8B27",30,"\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],["d740","\u8B46",31,"\u8B67",4,"\u8B6D",25],["d780","\u8B87",24,"\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],["d840","\u8C38",8,"\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D",7,"\u8C56\u8C57\u8C58\u8C59\u8C5B",5,"\u8C63",6,"\u8C6C",6,"\u8C74\u8C75\u8C76\u8C77\u8C7B",6,"\u8C83\u8C84\u8C86\u8C87"],["d880","\u8C88\u8C8B\u8C8D",6,"\u8C95\u8C96\u8C97\u8C99",20,"\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],["d940","\u8CAE",62],["d980","\u8CED",32,"\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],["da40","\u8D0E",14,"\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78",8,"\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C",4,"\u8D92\u8D93\u8D95",9,"\u8DA0\u8DA1"],["da80","\u8DA2\u8DA4",12,"\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],["db40","\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE",6,"\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15",7,"\u8E20\u8E21\u8E24",4,"\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],["db80","\u8E3F\u8E43\u8E45\u8E46\u8E4C",4,"\u8E53",5,"\u8E5A",11,"\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],["dc40","\u8E73\u8E75\u8E77",4,"\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88",6,"\u8E91\u8E92\u8E93\u8E95",6,"\u8E9D\u8E9F",11,"\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3",6,"\u8EBB",7],["dc80","\u8EC3",10,"\u8ECF",21,"\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],["dd40","\u8EE5",62],["dd80","\u8F24",32,"\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],["de40","\u8F45",32,"\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],["de80","\u8FC9",4,"\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],["df40","\u9019\u901C\u9023\u9024\u9025\u9027",5,"\u9030",4,"\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048",4,"\u904E\u9054\u9055\u9056\u9059\u905A\u905C",5,"\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F",4,"\u9076",6,"\u907E\u9081"],["df80","\u9084\u9085\u9086\u9087\u9089\u908A\u908C",4,"\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],["e040","\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105",19,"\u911A\u911B\u911C"],["e080","\u911D\u911F\u9120\u9121\u9124",10,"\u9130\u9132",6,"\u913A",8,"\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],["e140","\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180",4,"\u9186\u9188\u918A\u918E\u918F\u9193",6,"\u919C",5,"\u91A4",5,"\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],["e180","\u91BC",10,"\u91C8\u91CB\u91D0\u91D2",9,"\u91DD",8,"\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],["e240","\u91E6",62],["e280","\u9225",32,"\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967",5,"\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],["e340","\u9246",45,"\u9275",16],["e380","\u9286",7,"\u928F",24,"\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],["e440","\u92A8",5,"\u92AF",24,"\u92C9",31],["e480","\u92E9",32,"\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],["e540","\u930A",51,"\u933F",10],["e580","\u934A",31,"\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],["e640","\u936C",34,"\u9390",27],["e680","\u93AC",29,"\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],["e740","\u93CE",7,"\u93D7",54],["e780","\u940E",32,"\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21",6,"\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F",4,"\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],["e840","\u942F",14,"\u943F",43,"\u946C\u946D\u946E\u946F"],["e880","\u9470",20,"\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],["e940","\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577",7,"\u9580",42],["e980","\u95AB",32,"\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],["ea40","\u95CC",27,"\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623",6,"\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],["ea80","\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D",4,"\u9673\u9678",12,"\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],["eb40","\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D",9,"\u96A8",7,"\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6",9,"\u96E1",6,"\u96EB"],["eb80","\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717",4,"\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],["ec40","\u9721",8,"\u972B\u972C\u972E\u972F\u9731\u9733",4,"\u973A\u973B\u973C\u973D\u973F",18,"\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A",7],["ec80","\u9772\u9775\u9777",4,"\u977D",7,"\u9786",4,"\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799",4,"\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],["ed40","\u979E\u979F\u97A1\u97A2\u97A4",6,"\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5",46],["ed80","\u97E4\u97E5\u97E8\u97EE",4,"\u97F4\u97F7",23,"\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],["ee40","\u980F",62],["ee80","\u984E",32,"\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6",4,"\u94BC\u94BD\u94BF\u94C4\u94C8",6,"\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],["ef40","\u986F",5,"\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8",37,"\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0",4],["ef80","\u98E5\u98E6\u98E9",30,"\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512",4,"\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564",8,"\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],["f040","\u9908",4,"\u990E\u990F\u9911",28,"\u992F",26],["f080","\u994A",9,"\u9956",12,"\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28",4,"\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66",6,"\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],["f140","\u998C\u998E\u999A",10,"\u99A6\u99A7\u99A9",47],["f180","\u99D9",32,"\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],["f240","\u99FA",62],["f280","\u9A39",32,"\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],["f340","\u9A5A",17,"\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9",6,"\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6",4,"\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],["f380","\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0",8,"\u9AFA\u9AFC",6,"\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],["f440","\u9B07\u9B09",5,"\u9B10\u9B11\u9B12\u9B14",10,"\u9B20\u9B21\u9B22\u9B24",10,"\u9B30\u9B31\u9B33",7,"\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55",5],["f480","\u9B5B",32,"\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],["f540","\u9B7C",62],["f580","\u9BBB",32,"\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],["f640","\u9BDC",62],["f680","\u9C1B",32,"\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85",5,"\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E",5,"\u9CA5",4,"\u9CAB\u9CAD\u9CAE\u9CB0",7,"\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],["f740","\u9C3C",62],["f780","\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE",4,"\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC",4,"\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],["f840","\u9CE3",62],["f880","\u9D22",32],["f940","\u9D43",62],["f980","\u9D82",32],["fa40","\u9DA3",62],["fa80","\u9DE2",32],["fb40","\u9E03",27,"\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74",9,"\u9E80"],["fb80","\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C",5,"\u9E94",8,"\u9E9E\u9EA0",5,"\u9EA7\u9EA8\u9EA9\u9EAA"],["fc40","\u9EAB",8,"\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF",4,"\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0",8,"\u9EFA\u9EFD\u9EFF",6],["fc80","\u9F06",4,"\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A",5,"\u9F21\u9F23",8,"\u9F2D\u9F2E\u9F30\u9F31"],["fd40","\u9F32",4,"\u9F38\u9F3A\u9F3C\u9F3F",4,"\u9F45",10,"\u9F52",38],["fd80","\u9F79",5,"\u9F81\u9F82\u9F8D",11,"\u9F9C\u9F9D\u9F9E\u9FA1",4,"\uF92C\uF979\uF995\uF9E7\uF9F1"],["fe40","\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]]});var h1e=b((vln,l4r)=>{l4r.exports=[["a140","\uE4C6",62],["a180","\uE505",32],["a240","\uE526",62],["a280","\uE565",32],["a2ab","\uE766",5],["a2e3","\u20AC\uE76D"],["a2ef","\uE76E\uE76F"],["a2fd","\uE770\uE771"],["a340","\uE586",62],["a380","\uE5C5",31,"\u3000"],["a440","\uE5E6",62],["a480","\uE625",32],["a4f4","\uE772",10],["a540","\uE646",62],["a580","\uE685",32],["a5f7","\uE77D",7],["a640","\uE6A6",62],["a680","\uE6E5",32],["a6b9","\uE785",7],["a6d9","\uE78D",6],["a6ec","\uE794\uE795"],["a6f3","\uE796"],["a6f6","\uE797",8],["a740","\uE706",62],["a780","\uE745",32],["a7c2","\uE7A0",14],["a7f2","\uE7AF",12],["a896","\uE7BC",10],["a8bc","\u1E3F"],["a8bf","\u01F9"],["a8c1","\uE7C9\uE7CA\uE7CB\uE7CC"],["a8ea","\uE7CD",20],["a958","\uE7E2"],["a95b","\uE7E3"],["a95d","\uE7E4\uE7E5\uE7E6"],["a989","\u303E\u2FF0",11],["a997","\uE7F4",12],["a9f0","\uE801",14],["aaa1","\uE000",93],["aba1","\uE05E",93],["aca1","\uE0BC",93],["ada1","\uE11A",93],["aea1","\uE178",93],["afa1","\uE1D6",93],["d7fa","\uE810",4],["f8a1","\uE234",93],["f9a1","\uE292",93],["faa1","\uE2F0",93],["fba1","\uE34E",93],["fca1","\uE3AC",93],["fda1","\uE40A",93],["fe50","\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],["fe80","\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13",6,"\u4DAE\uE864\uE468",93],["8135f437","\uE7C7"]]});var _lt=b((yln,p4r)=>{p4r.exports={uChars:[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],gbChars:[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189e3]}});var xlt=b((bln,f4r)=>{f4r.exports=[["0","\0",127],["8141","\uAC02\uAC03\uAC05\uAC06\uAC0B",4,"\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25",6,"\uAC2E\uAC32\uAC33\uAC34"],["8161","\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41",9,"\uAC4C\uAC4E",5,"\uAC55"],["8181","\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D",18,"\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B",4,"\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95",6,"\uAC9E\uACA2",5,"\uACAB\uACAD\uACAE\uACB1",6,"\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD",7,"\uACD6\uACD8",7,"\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7",4,"\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07",4,"\uAD0E\uAD10\uAD12\uAD13"],["8241","\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21",7,"\uAD2A\uAD2B\uAD2E",5],["8261","\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D",6,"\uAD46\uAD48\uAD4A",5,"\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],["8281","\uAD59",7,"\uAD62\uAD64",7,"\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83",4,"\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91",10,"\uAD9E",5,"\uADA5",17,"\uADB8",7,"\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9",6,"\uADD2\uADD4",7,"\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5",18],["8341","\uADFA\uADFB\uADFD\uADFE\uAE02",5,"\uAE0A\uAE0C\uAE0E",5,"\uAE15",7],["8361","\uAE1D",18,"\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],["8381","\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57",4,"\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71",6,"\uAE7A\uAE7E",5,"\uAE86",5,"\uAE8D",46,"\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5",6,"\uAECE\uAED2",5,"\uAEDA\uAEDB\uAEDD",8],["8441","\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE",5,"\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD",8],["8461","\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11",18],["8481","\uAF24",7,"\uAF2E\uAF2F\uAF31\uAF33\uAF35",6,"\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A",5,"\uAF51",10,"\uAF5E",5,"\uAF66",18,"\uAF7A",5,"\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89",6,"\uAF92\uAF93\uAF94\uAF96",5,"\uAF9D",26,"\uAFBA\uAFBB\uAFBD\uAFBE"],["8541","\uAFBF\uAFC1",5,"\uAFCA\uAFCC\uAFCF",4,"\uAFD5",6,"\uAFDD",4],["8561","\uAFE2",5,"\uAFEA",5,"\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9",6,"\uB002\uB003"],["8581","\uB005",6,"\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015",6,"\uB01E",9,"\uB029",26,"\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E",29,"\uB07E\uB07F\uB081\uB082\uB083\uB085",6,"\uB08E\uB090\uB092",5,"\uB09B\uB09D\uB09E\uB0A3\uB0A4"],["8641","\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD",6,"\uB0C6\uB0CA",5,"\uB0D2"],["8661","\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9",6,"\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6",10],["8681","\uB0F1",22,"\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E",4,"\uB126\uB127\uB129\uB12A\uB12B\uB12D",6,"\uB136\uB13A",5,"\uB142\uB143\uB145\uB146\uB147\uB149",6,"\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161",22,"\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183",4,"\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],["8741","\uB19E",9,"\uB1A9",15],["8761","\uB1B9",18,"\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],["8781","\uB1D6",5,"\uB1DE\uB1E0",7,"\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1",7,"\uB1FA\uB1FC\uB1FE",5,"\uB206\uB207\uB209\uB20A\uB20D",6,"\uB216\uB218\uB21A",5,"\uB221",18,"\uB235",6,"\uB23D",26,"\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261",6,"\uB26A",4],["8841","\uB26F",4,"\uB276",5,"\uB27D",6,"\uB286\uB287\uB288\uB28A",4],["8861","\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B",4,"\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],["8881","\uB2B8",15,"\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3",4,"\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309",6,"\uB312\uB316",5,"\uB31D",54,"\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],["8941","\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379",6,"\uB382\uB386",5,"\uB38D"],["8961","\uB38E\uB38F\uB391\uB392\uB393\uB395",10,"\uB3A2",5,"\uB3A9\uB3AA\uB3AB\uB3AD"],["8981","\uB3AE",21,"\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9",18,"\uB3FD",18,"\uB411",6,"\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421",6,"\uB42A\uB42C",7,"\uB435",15],["8a41","\uB445",10,"\uB452\uB453\uB455\uB456\uB457\uB459",6,"\uB462\uB464\uB466"],["8a61","\uB467",4,"\uB46D",18,"\uB481\uB482"],["8a81","\uB483",4,"\uB489",19,"\uB49E",5,"\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD",7,"\uB4B6\uB4B8\uB4BA",5,"\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9",6,"\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6",5,"\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7",4,"\uB4EE\uB4F0\uB4F2",5,"\uB4F9",26,"\uB516\uB517\uB519\uB51A\uB51D"],["8b41","\uB51E",5,"\uB526\uB52B",4,"\uB532\uB533\uB535\uB536\uB537\uB539",6,"\uB542\uB546"],["8b61","\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555",6,"\uB55E\uB562",8],["8b81","\uB56B",52,"\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6",4,"\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5",6,"\uB5CE\uB5D2",5,"\uB5D9",18,"\uB5ED",18],["8c41","\uB600",15,"\uB612\uB613\uB615\uB616\uB617\uB619",4],["8c61","\uB61E",6,"\uB626",5,"\uB62D",6,"\uB635",5],["8c81","\uB63B",12,"\uB649",26,"\uB665\uB666\uB667\uB669",50,"\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5",5,"\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2",16],["8d41","\uB6C3",16,"\uB6D5",8],["8d61","\uB6DE",17,"\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],["8d81","\uB6FB",4,"\uB702\uB703\uB704\uB706",33,"\uB72A\uB72B\uB72D\uB72E\uB731",6,"\uB73A\uB73C",7,"\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D",6,"\uB756",9,"\uB761\uB762\uB763\uB765\uB766\uB767\uB769",6,"\uB772\uB774\uB776",5,"\uB77E\uB77F\uB781\uB782\uB783\uB785",6,"\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],["8e41","\uB79F\uB7A1",6,"\uB7AA\uB7AE",5,"\uB7B6\uB7B7\uB7B9",8],["8e61","\uB7C2",4,"\uB7C8\uB7CA",19],["8e81","\uB7DE",13,"\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5",6,"\uB7FE\uB802",4,"\uB80A\uB80B\uB80D\uB80E\uB80F\uB811",6,"\uB81A\uB81C\uB81E",5,"\uB826\uB827\uB829\uB82A\uB82B\uB82D",6,"\uB836\uB83A",5,"\uB841\uB842\uB843\uB845",11,"\uB852\uB854",7,"\uB85E\uB85F\uB861\uB862\uB863\uB865",6,"\uB86E\uB870\uB872",5,"\uB879\uB87A\uB87B\uB87D",7],["8f41","\uB885",7,"\uB88E",17],["8f61","\uB8A0",7,"\uB8A9",6,"\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9",4],["8f81","\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6",5,"\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5",7,"\uB8DE\uB8E0\uB8E2",5,"\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1",6,"\uB8FA\uB8FC\uB8FE",5,"\uB905",18,"\uB919",6,"\uB921",26,"\uB93E\uB93F\uB941\uB942\uB943\uB945",6,"\uB94D\uB94E\uB950\uB952",5],["9041","\uB95A\uB95B\uB95D\uB95E\uB95F\uB961",6,"\uB96A\uB96C\uB96E",5,"\uB976\uB977\uB979\uB97A\uB97B\uB97D"],["9061","\uB97E",5,"\uB986\uB988\uB98B\uB98C\uB98F",15],["9081","\uB99F",12,"\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5",6,"\uB9BE\uB9C0\uB9C2",5,"\uB9CA\uB9CB\uB9CD\uB9D3",4,"\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED",6,"\uB9F6\uB9FB",4,"\uBA02",5,"\uBA09",11,"\uBA16",33,"\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],["9141","\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D",6,"\uBA66\uBA6A",5],["9161","\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79",9,"\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D",5],["9181","\uBA93",20,"\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3",4,"\uBABA\uBABC\uBABE",5,"\uBAC5\uBAC6\uBAC7\uBAC9",14,"\uBADA",33,"\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05",7,"\uBB0E\uBB10\uBB12",5,"\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21",6],["9241","\uBB28\uBB2A\uBB2C",7,"\uBB37\uBB39\uBB3A\uBB3F",4,"\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],["9261","\uBB53\uBB55\uBB56\uBB57\uBB59",7,"\uBB62\uBB64",7,"\uBB6D",4],["9281","\uBB72",21,"\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91",18,"\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD",6,"\uBBB5\uBBB6\uBBB8",7,"\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9",6,"\uBBD1\uBBD2\uBBD4",35,"\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],["9341","\uBC03",4,"\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],["9361","\uBC36\uBC37\uBC39",6,"\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51",8],["9381","\uBC5A\uBC5B\uBC5C\uBC5E",37,"\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F",4,"\uBC96\uBC98\uBC9B",4,"\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9",6,"\uBCB2\uBCB6",5,"\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5",7,"\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD",22,"\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],["9441","\uBCFE",5,"\uBD06\uBD08\uBD0A",5,"\uBD11\uBD12\uBD13\uBD15",8],["9461","\uBD1E",5,"\uBD25",6,"\uBD2D",12],["9481","\uBD3A",5,"\uBD41",6,"\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51",6,"\uBD5A",9,"\uBD65\uBD66\uBD67\uBD69",22,"\uBD82\uBD83\uBD85\uBD86\uBD8B",4,"\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D",6,"\uBDA5",10,"\uBDB1",6,"\uBDB9",24],["9541","\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD",11,"\uBDEA",5,"\uBDF1"],["9561","\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9",6,"\uBE01\uBE02\uBE04\uBE06",5,"\uBE0E\uBE0F\uBE11\uBE12\uBE13"],["9581","\uBE15",6,"\uBE1E\uBE20",35,"\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F",4,"\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B",4,"\uBE72\uBE76",4,"\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85",6,"\uBE8E\uBE92",5,"\uBE9A",13,"\uBEA9",14],["9641","\uBEB8",23,"\uBED2\uBED3"],["9661","\uBED5\uBED6\uBED9",6,"\uBEE1\uBEE2\uBEE6",5,"\uBEED",8],["9681","\uBEF6",10,"\uBF02",5,"\uBF0A",13,"\uBF1A\uBF1E",33,"\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49",6,"\uBF52\uBF53\uBF54\uBF56",44],["9741","\uBF83",16,"\uBF95",8],["9761","\uBF9E",17,"\uBFB1",7],["9781","\uBFB9",11,"\uBFC6",5,"\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5",6,"\uBFDD\uBFDE\uBFE0\uBFE2",89,"\uC03D\uC03E\uC03F"],["9841","\uC040",16,"\uC052",5,"\uC059\uC05A\uC05B"],["9861","\uC05D\uC05E\uC05F\uC061",6,"\uC06A",15],["9881","\uC07A",21,"\uC092\uC093\uC095\uC096\uC097\uC099",6,"\uC0A2\uC0A4\uC0A6",5,"\uC0AE\uC0B1\uC0B2\uC0B7",4,"\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1",6,"\uC0DA\uC0DE",5,"\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED",6,"\uC0F6\uC0F8\uC0FA",5,"\uC101\uC102\uC103\uC105\uC106\uC107\uC109",6,"\uC111\uC112\uC113\uC114\uC116",5,"\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],["9941","\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141",6,"\uC14A\uC14E",5,"\uC156\uC157"],["9961","\uC159\uC15A\uC15B\uC15D",6,"\uC166\uC16A",5,"\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],["9981","\uC17C",8,"\uC186",5,"\uC18F\uC191\uC192\uC193\uC195\uC197",4,"\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1",11,"\uC1BE",5,"\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD",6,"\uC1D5\uC1D6\uC1D9",6,"\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9",6,"\uC1F2\uC1F4",7,"\uC1FE\uC1FF\uC201\uC202\uC203\uC205",6,"\uC20E\uC210\uC212",5,"\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],["9a41","\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235",16],["9a61","\uC246\uC247\uC249",6,"\uC252\uC253\uC255\uC256\uC257\uC259",6,"\uC261\uC262\uC263\uC264\uC266"],["9a81","\uC267",4,"\uC26E\uC26F\uC271\uC272\uC273\uC275",6,"\uC27E\uC280\uC282",5,"\uC28A",5,"\uC291",6,"\uC299\uC29A\uC29C\uC29E",5,"\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE",5,"\uC2B6\uC2B8\uC2BA",33,"\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5",5,"\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301",6,"\uC30A\uC30B\uC30E\uC30F"],["9b41","\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D",6,"\uC326\uC327\uC32A",8],["9b61","\uC333",17,"\uC346",7],["9b81","\uC34E",25,"\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373",4,"\uC37A\uC37B\uC37E",5,"\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D",50,"\uC3C1",22,"\uC3DA"],["9c41","\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3",4,"\uC3EA\uC3EB\uC3EC\uC3EE",5,"\uC3F6\uC3F7\uC3F9",5],["9c61","\uC3FF",8,"\uC409",6,"\uC411",9],["9c81","\uC41B",8,"\uC425",6,"\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435",6,"\uC43E",9,"\uC449",26,"\uC466\uC467\uC469\uC46A\uC46B\uC46D",6,"\uC476\uC477\uC478\uC47A",5,"\uC481",18,"\uC495",6,"\uC49D",12],["9d41","\uC4AA",13,"\uC4B9\uC4BA\uC4BB\uC4BD",8],["9d61","\uC4C6",25],["9d81","\uC4E0",8,"\uC4EA",5,"\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502",9,"\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515",6,"\uC51D",10,"\uC52A\uC52B\uC52D\uC52E\uC52F\uC531",6,"\uC53A\uC53C\uC53E",5,"\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569",6,"\uC572\uC576",5,"\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],["9e41","\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1",7,"\uC5AA",9,"\uC5B6"],["9e61","\uC5B7\uC5BA\uC5BF",4,"\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9",6,"\uC5E2\uC5E4\uC5E6\uC5E7"],["9e81","\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611",6,"\uC61A\uC61D",6,"\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649",6,"\uC652\uC656",5,"\uC65E\uC65F\uC661",10,"\uC66D\uC66E\uC670\uC672",5,"\uC67A\uC67B\uC67D\uC67E\uC67F\uC681",6,"\uC68A\uC68C\uC68E",5,"\uC696\uC697\uC699\uC69A\uC69B\uC69D",6,"\uC6A6"],["9f41","\uC6A8\uC6AA",5,"\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB",4,"\uC6C2\uC6C4\uC6C6",5,"\uC6CE"],["9f61","\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5",6,"\uC6DE\uC6DF\uC6E2",5,"\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],["9f81","\uC6F3",4,"\uC6FA\uC6FB\uC6FC\uC6FE",5,"\uC706\uC707\uC709\uC70A\uC70B\uC70D",6,"\uC716\uC718\uC71A",5,"\uC722\uC723\uC725\uC726\uC727\uC729",6,"\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745",4,"\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761",6,"\uC769\uC76A\uC76C",7,"\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B",4,"\uC7A2\uC7A7",4,"\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],["a041","\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2",5,"\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1",6,"\uC7D9\uC7DA\uC7DB\uC7DC"],["a061","\uC7DE",5,"\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED",13],["a081","\uC7FB",4,"\uC802\uC803\uC805\uC806\uC807\uC809\uC80B",4,"\uC812\uC814\uC817",4,"\uC81E\uC81F\uC821\uC822\uC823\uC825",6,"\uC82E\uC830\uC832",5,"\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841",6,"\uC84A\uC84B\uC84E",5,"\uC855",26,"\uC872\uC873\uC875\uC876\uC877\uC879\uC87B",4,"\uC882\uC884\uC888\uC889\uC88A\uC88E",5,"\uC895",7,"\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],["a141","\uC8A5\uC8A6\uC8A7\uC8A9",18,"\uC8BE\uC8BF\uC8C0\uC8C1"],["a161","\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD",6,"\uC8D6\uC8D8\uC8DA",5,"\uC8E2\uC8E3\uC8E5"],["a181","\uC8E6",14,"\uC8F6",5,"\uC8FE\uC8FF\uC901\uC902\uC903\uC907",4,"\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008",9,"\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],["a241","\uC910\uC912",5,"\uC919",18],["a261","\uC92D",6,"\uC935",18],["a281","\uC948",7,"\uC952\uC953\uC955\uC956\uC957\uC959",6,"\uC962\uC964",7,"\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],["a341","\uC971\uC972\uC973\uC975",6,"\uC97D",10,"\uC98A\uC98B\uC98D\uC98E\uC98F"],["a361","\uC991",6,"\uC99A\uC99C\uC99E",16],["a381","\uC9AF",16,"\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB",4,"\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01",58,"\uFFE6\uFF3D",32,"\uFFE3"],["a441","\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2",5,"\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],["a461","\uCA05\uCA06\uCA07\uCA0A\uCA0E",5,"\uCA15\uCA16\uCA17\uCA19",12],["a481","\uCA26\uCA27\uCA28\uCA2A",28,"\u3131",93],["a541","\uCA47",4,"\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55",6,"\uCA5E\uCA62",5,"\uCA69\uCA6A"],["a561","\uCA6B",17,"\uCA7E",5,"\uCA85\uCA86"],["a581","\uCA87",16,"\uCA99",14,"\u2170",9],["a5b0","\u2160",9],["a5c1","\u0391",16,"\u03A3",6],["a5e1","\u03B1",16,"\u03C3",6],["a641","\uCAA8",19,"\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],["a661","\uCAC6",5,"\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA",5,"\uCAE1",6],["a681","\uCAE8\uCAE9\uCAEA\uCAEB\uCAED",6,"\uCAF5",18,"\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543",7],["a741","\uCB0B",4,"\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19",6,"\uCB22",7],["a761","\uCB2A",22,"\uCB42\uCB43\uCB44"],["a781","\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51",6,"\uCB5A\uCB5B\uCB5C\uCB5E",5,"\uCB65",7,"\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399",9,"\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0",9,"\u3380",4,"\u33BA",5,"\u3390",4,"\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],["a841","\uCB6D",10,"\uCB7A",14],["a861","\uCB89",18,"\uCB9D",6],["a881","\uCBA4",19,"\uCBB9",11,"\xC6\xD0\xAA\u0126"],["a8a6","\u0132"],["a8a8","\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],["a8b1","\u3260",27,"\u24D0",25,"\u2460",14,"\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],["a941","\uCBC5",14,"\uCBD5",10],["a961","\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA",18],["a981","\uCBFD",14,"\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15",6,"\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200",27,"\u249C",25,"\u2474",14,"\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],["aa41","\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31",6,"\uCC3A\uCC3F",4,"\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],["aa61","\uCC4F",4,"\uCC56\uCC5A",5,"\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69",6,"\uCC71\uCC72"],["aa81","\uCC73\uCC74\uCC76",29,"\u3041",82],["ab41","\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1",6,"\uCCAA\uCCAE",5,"\uCCB6\uCCB7\uCCB9"],["ab61","\uCCBA\uCCBB\uCCBD",6,"\uCCC6\uCCC8\uCCCA",5,"\uCCD1\uCCD2\uCCD3\uCCD5",5],["ab81","\uCCDB",8,"\uCCE5",6,"\uCCED\uCCEE\uCCEF\uCCF1",12,"\u30A1",85],["ac41","\uCCFE\uCCFF\uCD00\uCD02",5,"\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11",6,"\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],["ac61","\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D",11,"\uCD3A",4],["ac81","\uCD3F",28,"\uCD5D\uCD5E\uCD5F\u0410",5,"\u0401\u0416",25],["acd1","\u0430",5,"\u0451\u0436",25],["ad41","\uCD61\uCD62\uCD63\uCD65",6,"\uCD6E\uCD70\uCD72",5,"\uCD79",7],["ad61","\uCD81",6,"\uCD89",10,"\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],["ad81","\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA",5,"\uCDB1",18,"\uCDC5"],["ae41","\uCDC6",5,"\uCDCD\uCDCE\uCDCF\uCDD1",16],["ae61","\uCDE2",5,"\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1",6,"\uCDFA\uCDFC\uCDFE",4],["ae81","\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D",6,"\uCE15\uCE16\uCE17\uCE18\uCE1A",5,"\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],["af41","\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36",19],["af61","\uCE4A",13,"\uCE5A\uCE5B\uCE5D\uCE5E\uCE62",5,"\uCE6A\uCE6C"],["af81","\uCE6E",5,"\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D",6,"\uCE86\uCE88\uCE8A",5,"\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],["b041","\uCE9A",5,"\uCEA2\uCEA6",5,"\uCEAE",12],["b061","\uCEBB",5,"\uCEC2",19],["b081","\uCED6",13,"\uCEE6\uCEE7\uCEE9\uCEEA\uCEED",6,"\uCEF6\uCEFA",5,"\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10",7,"\uAC19",4,"\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],["b141","\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09",6,"\uCF12\uCF14\uCF16",5,"\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],["b161","\uCF25",6,"\uCF2E\uCF32",5,"\uCF39",11],["b181","\uCF45",14,"\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D",6,"\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],["b241","\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79",6,"\uCF81\uCF82\uCF83\uCF84\uCF86",5,"\uCF8D"],["b261","\uCF8E",18,"\uCFA2",5,"\uCFA9"],["b281","\uCFAA",5,"\uCFB1",18,"\uCFC5",6,"\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],["b341","\uCFCC",19,"\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],["b361","\uCFEA",5,"\uCFF2\uCFF4\uCFF6",5,"\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005",5],["b381","\uD00B",5,"\uD012",5,"\uD019",19,"\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB",4,"\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],["b441","\uD02E",5,"\uD036\uD037\uD039\uD03A\uD03B\uD03D",6,"\uD046\uD048\uD04A",5],["b461","\uD051\uD052\uD053\uD055\uD056\uD057\uD059",6,"\uD061",10,"\uD06E\uD06F"],["b481","\uD071\uD072\uD073\uD075",6,"\uD07E\uD07F\uD080\uD082",18,"\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB",4,"\uB2F3\uB2F4\uB2F5\uB2F7",4,"\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],["b541","\uD095",14,"\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD",5],["b561","\uD0B3\uD0B6\uD0B8\uD0BA",5,"\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA",5,"\uD0D2\uD0D6",4],["b581","\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5",6,"\uD0EE\uD0F2",5,"\uD0F9",11,"\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],["b641","\uD105",7,"\uD10E",17],["b661","\uD120",15,"\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],["b681","\uD13F\uD142\uD146",5,"\uD14E\uD14F\uD151\uD152\uD153\uD155",6,"\uD15E\uD160\uD162",5,"\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],["b741","\uD16E",13,"\uD17D",6,"\uD185\uD186\uD187\uD189\uD18A"],["b761","\uD18B",20,"\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],["b781","\uD1A9",6,"\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1",14,"\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],["b841","\uD1D0",7,"\uD1D9",17],["b861","\uD1EB",8,"\uD1F5\uD1F6\uD1F7\uD1F9",13],["b881","\uD208\uD20A",5,"\uD211",24,"\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE",4,"\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],["b941","\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235",6,"\uD23E\uD240\uD242",5,"\uD249\uD24A\uD24B\uD24C"],["b961","\uD24D",14,"\uD25D",6,"\uD265\uD266\uD267\uD268"],["b981","\uD269",22,"\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14",4,"\uBC1B",4,"\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],["ba41","\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296",5,"\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5",6,"\uD2AD"],["ba61","\uD2AE\uD2AF\uD2B0\uD2B2",5,"\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3",4,"\uD2CA\uD2CC",5],["ba81","\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD",6,"\uD2E6",9,"\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],["bb41","\uD2FB",4,"\uD302\uD304\uD306",5,"\uD30F\uD311\uD312\uD313\uD315\uD317",4,"\uD31E\uD322\uD323"],["bb61","\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331",6,"\uD33A\uD33E",5,"\uD346\uD347\uD348\uD349"],["bb81","\uD34A",31,"\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],["bc41","\uD36A",17,"\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],["bc61","\uD388\uD389\uD38A\uD38B\uD38E\uD392",5,"\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1",6,"\uD3AA\uD3AC\uD3AE"],["bc81","\uD3AF",4,"\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD",6,"\uD3C6\uD3C7\uD3CA",5,"\uD3D1",5,"\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C",4,"\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],["bd41","\uD3D7\uD3D9",7,"\uD3E2\uD3E4",7,"\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],["bd61","\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402",5,"\uD409",13],["bd81","\uD417",5,"\uD41E",25,"\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],["be41","\uD438",7,"\uD441\uD442\uD443\uD445",14],["be61","\uD454",7,"\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465",7,"\uD46E\uD470\uD471\uD472"],["be81","\uD473",4,"\uD47A\uD47B\uD47D\uD47E\uD481\uD483",4,"\uD48A\uD48C\uD48E",5,"\uD495",8,"\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4",6,"\uC5CC\uC5CE"],["bf41","\uD49E",10,"\uD4AA",14],["bf61","\uD4B9",18,"\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],["bf81","\uD4D6",5,"\uD4DD\uD4DE\uD4E0",7,"\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1",6,"\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC",5,"\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],["c041","\uD4FE",5,"\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D",6,"\uD516\uD518",5],["c061","\uD51E",25],["c081","\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545",6,"\uD54E\uD550\uD552",5,"\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751",7,"\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],["c141","\uD564\uD566\uD567\uD56A\uD56C\uD56E",5,"\uD576\uD577\uD579\uD57A\uD57B\uD57D",6,"\uD586\uD58A\uD58B"],["c161","\uD58C\uD58D\uD58E\uD58F\uD591",19,"\uD5A6\uD5A7"],["c181","\uD5A8",31,"\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],["c241","\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3",4,"\uD5DA\uD5DC\uD5DE",5,"\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],["c261","\uD5EF",4,"\uD5F6\uD5F8\uD5FA",5,"\uD602\uD603\uD605\uD606\uD607\uD609",6,"\uD612"],["c281","\uD616",5,"\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625",7,"\uD62E",9,"\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],["c341","\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D",4],["c361","\uD662",4,"\uD668\uD66A",5,"\uD672\uD673\uD675",11],["c381","\uD681\uD682\uD684\uD686",5,"\uD68E\uD68F\uD691\uD692\uD693\uD695",7,"\uD69E\uD6A0\uD6A2",5,"\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],["c441","\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1",7,"\uD6BA\uD6BC",7,"\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],["c461","\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA",5,"\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9",4],["c481","\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6",5,"\uD6FE\uD6FF\uD701\uD702\uD703\uD705",11,"\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],["c541","\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721",6,"\uD72A\uD72C\uD72E",5,"\uD736\uD737\uD739"],["c561","\uD73A\uD73B\uD73D",6,"\uD745\uD746\uD748\uD74A",5,"\uD752\uD753\uD755\uD75A",4],["c581","\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775",6,"\uD77E\uD77F\uD780\uD782",5,"\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],["c641","\uD78D\uD78E\uD78F\uD791",6,"\uD79A\uD79C\uD79E",5],["c6a1","\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],["c7a1","\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],["c8a1","\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],["caa1","\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],["cba1","\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],["cca1","\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],["cda1","\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],["cea1","\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],["cfa1","\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],["d0a1","\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],["d1a1","\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E",5,"\u90A3\uF914",4,"\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],["d2a1","\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928",4,"\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933",5,"\u99D1\uF939",10,"\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A",7,"\u5AE9\u8A25\u677B\u7D10\uF952",5,"\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],["d3a1","\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],["d4a1","\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],["d5a1","\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],["d6a1","\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],["d7a1","\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],["d8a1","\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],["d9a1","\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],["daa1","\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],["dba1","\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],["dca1","\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],["dda1","\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],["dea1","\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],["dfa1","\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],["e0a1","\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],["e1a1","\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],["e2a1","\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],["e3a1","\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],["e4a1","\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],["e5a1","\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],["e6a1","\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],["e7a1","\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],["e8a1","\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],["e9a1","\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],["eaa1","\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],["eba1","\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],["eca1","\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],["eda1","\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],["eea1","\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],["efa1","\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],["f0a1","\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],["f1a1","\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],["f2a1","\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],["f3a1","\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],["f4a1","\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],["f5a1","\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],["f6a1","\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],["f7a1","\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],["f8a1","\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],["f9a1","\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],["faa1","\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],["fba1","\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],["fca1","\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],["fda1","\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]]});var m1e=b((wln,d4r)=>{d4r.exports=[["0","\0",127],["a140","\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],["a1a1","\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62",4,"\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],["a240","\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581",7,"\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],["a2a1","\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10",9,"\u2160",9,"\u3021",8,"\u5341\u5344\u5345\uFF21",25,"\uFF41",21],["a340","\uFF57\uFF58\uFF59\uFF5A\u0391",16,"\u03A3",6,"\u03B1",16,"\u03C3",6,"\u3105",10],["a3a1","\u3110",25,"\u02D9\u02C9\u02CA\u02C7\u02CB"],["a3e1","\u20AC"],["a440","\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],["a4a1","\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],["a540","\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],["a5a1","\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],["a640","\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],["a6a1","\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],["a740","\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],["a7a1","\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],["a840","\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],["a8a1","\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],["a940","\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],["a9a1","\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],["aa40","\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],["aaa1","\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],["ab40","\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],["aba1","\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],["ac40","\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],["aca1","\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],["ad40","\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],["ada1","\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],["ae40","\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],["aea1","\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],["af40","\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],["afa1","\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],["b040","\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],["b0a1","\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],["b140","\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],["b1a1","\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],["b240","\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],["b2a1","\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],["b340","\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],["b3a1","\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],["b440","\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],["b4a1","\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],["b540","\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],["b5a1","\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],["b640","\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],["b6a1","\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],["b740","\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],["b7a1","\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],["b840","\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],["b8a1","\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],["b940","\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],["b9a1","\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],["ba40","\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],["baa1","\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],["bb40","\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],["bba1","\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],["bc40","\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],["bca1","\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],["bd40","\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],["bda1","\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],["be40","\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],["bea1","\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],["bf40","\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],["bfa1","\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],["c040","\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],["c0a1","\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],["c140","\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],["c1a1","\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],["c240","\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],["c2a1","\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],["c340","\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],["c3a1","\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],["c440","\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],["c4a1","\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],["c540","\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],["c5a1","\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],["c640","\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],["c940","\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],["c9a1","\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],["ca40","\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],["caa1","\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],["cb40","\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],["cba1","\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],["cc40","\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],["cca1","\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],["cd40","\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],["cda1","\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],["ce40","\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],["cea1","\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],["cf40","\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],["cfa1","\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],["d040","\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],["d0a1","\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],["d140","\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],["d1a1","\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],["d240","\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],["d2a1","\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],["d340","\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],["d3a1","\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],["d440","\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],["d4a1","\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],["d540","\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],["d5a1","\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],["d640","\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],["d6a1","\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],["d740","\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],["d7a1","\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],["d840","\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],["d8a1","\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],["d940","\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],["d9a1","\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],["da40","\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],["daa1","\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],["db40","\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],["dba1","\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],["dc40","\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],["dca1","\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],["dd40","\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],["dda1","\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],["de40","\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],["dea1","\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],["df40","\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],["dfa1","\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],["e040","\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],["e0a1","\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],["e140","\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],["e1a1","\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],["e240","\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],["e2a1","\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],["e340","\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],["e3a1","\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],["e440","\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],["e4a1","\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],["e540","\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],["e5a1","\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],["e640","\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],["e6a1","\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],["e740","\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],["e7a1","\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],["e840","\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],["e8a1","\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],["e940","\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],["e9a1","\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],["ea40","\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],["eaa1","\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],["eb40","\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],["eba1","\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],["ec40","\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],["eca1","\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],["ed40","\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],["eda1","\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],["ee40","\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],["eea1","\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],["ef40","\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],["efa1","\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],["f040","\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],["f0a1","\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],["f140","\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],["f1a1","\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],["f240","\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],["f2a1","\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],["f340","\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],["f3a1","\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],["f440","\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],["f4a1","\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],["f540","\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],["f5a1","\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],["f640","\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],["f6a1","\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],["f740","\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],["f7a1","\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],["f840","\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],["f8a1","\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],["f940","\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],["f9a1","\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]]});var Elt=b((_ln,h4r)=>{h4r.exports=[["8740","\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],["8767","\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],["87a1","\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],["8840","\u31C0",4,"\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],["88a1","\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],["8940","\u{2A3A9}\u{21145}"],["8943","\u650A"],["8946","\u4E3D\u6EDD\u9D4E\u91DF"],["894c","\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],["89a1","\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],["89ab","\u918C\u78B8\u915E\u80BC"],["89b0","\u8D0B\u80F6\u{209E7}"],["89b5","\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],["89c1","\u6E9A\u823E\u7519"],["89c5","\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],["8a40","\u{27D84}\u5525"],["8a43","\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],["8a64","\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],["8a76","\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],["8aa1","\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],["8aac","\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],["8ab2","\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],["8abb","\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],["8ac9","\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],["8ace","\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],["8adf","\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],["8af6","\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],["8b40","\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],["8b55","\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],["8ba1","\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],["8bde","\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],["8c40","\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],["8ca1","\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],["8ca7","\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],["8cc9","\u9868\u676B\u4276\u573D"],["8cce","\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],["8ce6","\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],["8d40","\u{20B9F}"],["8d42","\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],["8da1","\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],["8e40","\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],["8ea1","\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],["8f40","\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],["8fa1","\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],["9040","\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],["90a1","\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],["9140","\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],["91a1","\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],["9240","\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],["92a1","\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],["9340","\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],["93a1","\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],["9440","\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],["94a1","\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],["9540","\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],["95a1","\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],["9640","\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],["96a1","\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],["9740","\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],["97a1","\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],["9840","\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],["98a1","\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],["9940","\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],["99a1","\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],["9a40","\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],["9aa1","\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],["9b40","\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],["9b62","\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],["9ba1","\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],["9c40","\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],["9ca1","\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],["9d40","\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],["9da1","\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],["9e40","\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],["9ea1","\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],["9ead","\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],["9ec5","\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],["9ef5","\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],["9f40","\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],["9f4f","\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],["9fa1","\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],["9fae","\u9159\u9681\u915C"],["9fb2","\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],["9fc1","\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],["9fc9","\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],["9fdb","\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],["9fe7","\u6BFA\u8818\u7F78"],["9feb","\u5620\u{2A64A}\u8E77\u9F53"],["9ff0","\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],["a040","\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],["a055","\u{2183B}\u{26E05}"],["a058","\u8A7E\u{2251B}"],["a05b","\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],["a063","\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],["a073","\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],["a0a1","\u5D57\u{28BC2}\u8FDA\u{28E39}"],["a0a6","\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],["a0ae","\u77FE"],["a0b0","\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],["a0d4","\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],["a0e2","\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],["a3c0","\u2400",31,"\u2421"],["c6a1","\u2460",9,"\u2474",9,"\u2170",9,"\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041",23],["c740","\u3059",58,"\u30A1\u30A2\u30A3\u30A4"],["c7a1","\u30A5",81,"\u0410",5,"\u0401\u0416",4],["c840","\u041B",26,"\u0451\u0436",25,"\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],["c8a1","\u9FB0\u5188\u9FB1\u{27607}"],["c8cd","\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],["c8f5","\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],["f9fe","\uFFED"],["fa40","\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],["faa1","\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],["fb40","\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],["fba1","\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],["fc40","\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],["fca1","\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],["fd40","\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],["fda1","\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],["fe40","\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],["fea1","\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]]});var klt=b((xln,Slt)=>{"use strict";Slt.exports={shiftjis:{type:"_dbcs",table:function(){return blt()},encodeAdd:{"\xA5":92,"\u203E":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return wlt()},encodeAdd:{"\xA5":92,"\u203E":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return E$()}},gbk:{type:"_dbcs",table:function(){return E$().concat(h1e())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return E$().concat(h1e())},gb18030:function(){return _lt()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return xlt()}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return m1e()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return m1e().concat(Elt())},encodeSkipVals:[36457,36463,36478,36523,36532,36557,36560,36695,36713,36718,36811,36862,36973,36986,37060,37084,37105,37311,37551,37552,37553,37554,37585,37959,38090,38361,38652,39285,39798,39800,39803,39878,39902,39916,39926,40002,40019,40034,40040,40043,40055,40124,40125,40144,40279,40282,40388,40431,40443,40617,40687,40701,40800,40907,41079,41180,41183,36812,37576,38468,38637,41636,41637,41639,41638,41676,41678]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var Olt=b((Tlt,_8)=>{"use strict";var Alt=[tlt(),ilt(),olt(),clt(),plt(),dlt(),mlt(),ylt(),klt()];for(S$=0;S$<Alt.length;S$++){_8=Alt[S$];for(k$ in _8)Object.prototype.hasOwnProperty.call(_8,k$)&&(Tlt[k$]=_8[k$])}var _8,k$,S$});var Plt=b((Eln,Clt)=>{"use strict";var Dlt=Z1().Buffer;Clt.exports=function(e){var t=e.Transform;function r(i,a){this.conv=i,a=a||{},a.decodeStrings=!1,t.call(this,a)}r.prototype=Object.create(t.prototype,{constructor:{value:r}}),r.prototype._transform=function(i,a,s){if(typeof i!="string")return s(new Error("Iconv encoding stream needs strings as its input."));try{var o=this.conv.write(i);o&&o.length&&this.push(o),s()}catch(c){s(c)}},r.prototype._flush=function(i){try{var a=this.conv.end();a&&a.length&&this.push(a),i()}catch(s){i(s)}},r.prototype.collect=function(i){var a=[];return this.on("error",i),this.on("data",function(s){a.push(s)}),this.on("end",function(){i(null,Dlt.concat(a))}),this};function n(i,a){this.conv=i,a=a||{},a.encoding=this.encoding="utf8",t.call(this,a)}return n.prototype=Object.create(t.prototype,{constructor:{value:n}}),n.prototype._transform=function(i,a,s){if(!Dlt.isBuffer(i)&&!(i instanceof Uint8Array))return s(new Error("Iconv decoding stream needs buffers as its input."));try{var o=this.conv.write(i);o&&o.length&&this.push(o,this.encoding),s()}catch(c){s(c)}},n.prototype._flush=function(i){try{var a=this.conv.end();a&&a.length&&this.push(a,this.encoding),i()}catch(s){i(s)}},n.prototype.collect=function(i){var a="";return this.on("error",i),this.on("data",function(s){a+=s}),this.on("end",function(){i(null,a)}),this},{IconvLiteEncoderStream:r,IconvLiteDecoderStream:n}}});var jlt=b((Sln,Flt)=>{"use strict";var Ilt=Z1().Buffer,Rlt=Zct(),Zr=Flt.exports;Zr.encodings=null;Zr.defaultCharUnicode="\uFFFD";Zr.defaultCharSingleByte="?";Zr.encode=function(t,r,n){t=""+(t||"");var i=Zr.getEncoder(r,n),a=i.write(t),s=i.end();return s&&s.length>0?Ilt.concat([a,s]):a};Zr.decode=function(t,r,n){typeof t=="string"&&(Zr.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),Zr.skipDecodeWarning=!0),t=Ilt.from(""+(t||""),"binary"));var i=Zr.getDecoder(r,n),a=i.write(t),s=i.end();return s?a+s:a};Zr.encodingExists=function(t){try{return Zr.getCodec(t),!0}catch{return!1}};Zr.toEncoding=Zr.encode;Zr.fromEncoding=Zr.decode;Zr._codecDataCache={};Zr.getCodec=function(t){Zr.encodings||(Zr.encodings=Olt());for(var r=Zr._canonicalizeEncoding(t),n={};;){var i=Zr._codecDataCache[r];if(i)return i;var a=Zr.encodings[r];switch(typeof a){case"string":r=a;break;case"object":for(var s in a)n[s]=a[s];n.encodingName||(n.encodingName=r),r=a.type;break;case"function":return n.encodingName||(n.encodingName=r),i=new a(n,Zr),Zr._codecDataCache[n.encodingName]=i,i;default:throw new Error("Encoding not recognized: '"+t+"' (searched as: '"+r+"')")}}};Zr._canonicalizeEncoding=function(e){return(""+e).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};Zr.getEncoder=function(t,r){var n=Zr.getCodec(t),i=new n.encoder(r,n);return n.bomAware&&r&&r.addBOM&&(i=new Rlt.PrependBOM(i,r)),i};Zr.getDecoder=function(t,r){var n=Zr.getCodec(t),i=new n.decoder(r,n);return n.bomAware&&!(r&&r.stripBOM===!1)&&(i=new Rlt.StripBOM(i,r)),i};Zr.enableStreamingAPI=function(t){if(!Zr.supportsStreams){var r=Plt()(t);Zr.IconvLiteEncoderStream=r.IconvLiteEncoderStream,Zr.IconvLiteDecoderStream=r.IconvLiteDecoderStream,Zr.encodeStream=function(i,a){return new Zr.IconvLiteEncoderStream(Zr.getEncoder(i,a),a)},Zr.decodeStream=function(i,a){return new Zr.IconvLiteDecoderStream(Zr.getDecoder(i,a),a)},Zr.supportsStreams=!0}};var A$;try{A$=require("stream")}catch{}A$&&A$.Transform?Zr.enableStreamingAPI(A$):Zr.encodeStream=Zr.decodeStream=function(){throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.")}});var Llt=b((kln,qlt)=>{"use strict";var T$=jlt();qlt.exports.convert=m4r;function m4r(e,t,r){r=Nlt(r||"UTF-8"),t=Nlt(t||"UTF-8"),e=e||"";var n;if(r!=="UTF-8"&&typeof e=="string"&&(e=Buffer.from(e,"binary")),r===t)typeof e=="string"?n=Buffer.from(e):n=e;else try{n=g4r(e,t,r)}catch(i){console.error(i),n=e}return typeof n=="string"&&(n=Buffer.from(n,"utf-8")),n}function g4r(e,t,r){return t==="UTF-8"?T$.decode(e,r):r==="UTF-8"?T$.encode(e,t):T$.encode(T$.decode(e,r),t)}function Nlt(e){return(e||"").toString().trim().replace(/^latin[\-_]?(\d+)$/i,"ISO-8859-$1").replace(/^win(?:dows)?[\-_]?(\d+)$/i,"WINDOWS-$1").replace(/^utf[\-_]?(\d+)$/i,"UTF-$1").replace(/^ks_c_5601\-1987$/i,"CP949").replace(/^us[\-_]?ascii$/i,"ASCII").toUpperCase()}});var Jlt=b((Zf,Ylt)=>{"use strict";Object.defineProperty(Zf,"__esModule",{value:!0});function k8(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var Qf=k8(require("stream")),Ult=k8(require("http")),D$=k8(require("url")),zlt=k8(Jct()),v4r=k8(require("https")),$w=k8(require("zlib")),y4r=Qf.Readable,t0=Symbol("buffer"),g1e=Symbol("type"),vT=class e{constructor(){this[g1e]="";let t=arguments[0],r=arguments[1],n=[],i=0;if(t){let s=t,o=Number(s.length);for(let c=0;c<o;c++){let p=s[c],f;p instanceof Buffer?f=p:ArrayBuffer.isView(p)?f=Buffer.from(p.buffer,p.byteOffset,p.byteLength):p instanceof ArrayBuffer?f=Buffer.from(p):p instanceof e?f=p[t0]:f=Buffer.from(typeof p=="string"?p:String(p)),i+=f.length,n.push(f)}}this[t0]=Buffer.concat(n);let a=r&&r.type!==void 0&&String(r.type).toLowerCase();a&&!/[^\u0020-\u007E]/.test(a)&&(this[g1e]=a)}get size(){return this[t0].length}get type(){return this[g1e]}text(){return Promise.resolve(this[t0].toString())}arrayBuffer(){let t=this[t0],r=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);return Promise.resolve(r)}stream(){let t=new y4r;return t._read=function(){},t.push(this[t0]),t.push(null),t}toString(){return"[object Blob]"}slice(){let t=this.size,r=arguments[0],n=arguments[1],i,a;r===void 0?i=0:r<0?i=Math.max(t+r,0):i=Math.min(r,t),n===void 0?a=t:n<0?a=Math.max(t+n,0):a=Math.min(n,t);let s=Math.max(a-i,0),c=this[t0].slice(i,i+s),p=new e([],{type:arguments[2]});return p[t0]=c,p}};Object.defineProperties(vT.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}});Object.defineProperty(vT.prototype,Symbol.toStringTag,{value:"Blob",writable:!1,enumerable:!1,configurable:!0});function Ho(e,t,r){Error.call(this,e),this.message=e,this.type=t,r&&(this.code=this.errno=r.code),Error.captureStackTrace(this,this.constructor)}Ho.prototype=Object.create(Error.prototype);Ho.prototype.constructor=Ho;Ho.prototype.name="FetchError";var w1e;try{w1e=Llt().convert}catch{}var n0=Symbol("Body internals"),$lt=Qf.PassThrough;function yo(e){var t=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=r.size;let i=n===void 0?0:n;var a=r.timeout;let s=a===void 0?0:a;e==null?e=null:Hlt(e)?e=Buffer.from(e.toString()):bT(e)||Buffer.isBuffer(e)||(Object.prototype.toString.call(e)==="[object ArrayBuffer]"?e=Buffer.from(e):ArrayBuffer.isView(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof Qf||(e=Buffer.from(String(e)))),this[n0]={body:e,disturbed:!1,error:null},this.size=i,this.timeout=s,e instanceof Qf&&e.on("error",function(o){let c=o.name==="AbortError"?o:new Ho(`Invalid response body while trying to fetch ${t.url}: ${o.message}`,"system",o);t[n0].error=c})}yo.prototype={get body(){return this[n0].body},get bodyUsed(){return this[n0].disturbed},arrayBuffer(){return x8.call(this).then(function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)})},blob(){let e=this.headers&&this.headers.get("content-type")||"";return x8.call(this).then(function(t){return Object.assign(new vT([],{type:e.toLowerCase()}),{[t0]:t})})},json(){var e=this;return x8.call(this).then(function(t){try{return JSON.parse(t.toString())}catch(r){return yo.Promise.reject(new Ho(`invalid json response body at ${e.url} reason: ${r.message}`,"invalid-json"))}})},text(){return x8.call(this).then(function(e){return e.toString()})},buffer(){return x8.call(this)},textConverted(){var e=this;return x8.call(this).then(function(t){return b4r(t,e.headers)})}};Object.defineProperties(yo.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});yo.mixIn=function(e){for(let t of Object.getOwnPropertyNames(yo.prototype))if(!(t in e)){let r=Object.getOwnPropertyDescriptor(yo.prototype,t);Object.defineProperty(e,t,r)}};function x8(){var e=this;if(this[n0].disturbed)return yo.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[n0].disturbed=!0,this[n0].error)return yo.Promise.reject(this[n0].error);let t=this.body;if(t===null)return yo.Promise.resolve(Buffer.alloc(0));if(bT(t)&&(t=t.stream()),Buffer.isBuffer(t))return yo.Promise.resolve(t);if(!(t instanceof Qf))return yo.Promise.resolve(Buffer.alloc(0));let r=[],n=0,i=!1;return new yo.Promise(function(a,s){let o;e.timeout&&(o=setTimeout(function(){i=!0,s(new Ho(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))},e.timeout)),t.on("error",function(c){c.name==="AbortError"?(i=!0,s(c)):s(new Ho(`Invalid response body while trying to fetch ${e.url}: ${c.message}`,"system",c))}),t.on("data",function(c){if(!(i||c===null)){if(e.size&&n+c.length>e.size){i=!0,s(new Ho(`content size at ${e.url} over limit: ${e.size}`,"max-size"));return}n+=c.length,r.push(c)}}),t.on("end",function(){if(!i){clearTimeout(o);try{a(Buffer.concat(r,n))}catch(c){s(new Ho(`Could not create Buffer from response body for ${e.url}: ${c.message}`,"system",c))}}})})}function b4r(e,t){if(typeof w1e!="function")throw new Error("The package `encoding` must be installed to use the textConverted() function");let r=t.get("content-type"),n="utf-8",i,a;return r&&(i=/charset=([^;]*)/i.exec(r)),a=e.slice(0,1024).toString(),!i&&a&&(i=/<meta.+?charset=(['"])(.+?)\1/i.exec(a)),!i&&a&&(i=/<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(a),i||(i=/<meta[\s]+?content=(['"])(.+?)\1[\s]+?http-equiv=(['"])content-type\3/i.exec(a),i&&i.pop()),i&&(i=/charset=(.*)/i.exec(i.pop()))),!i&&a&&(i=/<\?xml.+?encoding=(['"])(.+?)\1/i.exec(a)),i&&(n=i.pop(),(n==="gb2312"||n==="gbk")&&(n="gb18030")),w1e(e,"UTF-8",n).toString()}function Hlt(e){return typeof e!="object"||typeof e.append!="function"||typeof e.delete!="function"||typeof e.get!="function"||typeof e.getAll!="function"||typeof e.has!="function"||typeof e.set!="function"?!1:e.constructor.name==="URLSearchParams"||Object.prototype.toString.call(e)==="[object URLSearchParams]"||typeof e.sort=="function"}function bT(e){return typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&typeof e.constructor=="function"&&typeof e.constructor.name=="string"&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function Vlt(e){let t,r,n=e.body;if(e.bodyUsed)throw new Error("cannot clone body after it is used");return n instanceof Qf&&typeof n.getBoundary!="function"&&(t=new $lt,r=new $lt,n.pipe(t),n.pipe(r),e[n0].body=t,n=r),n}function Glt(e){return e===null?null:typeof e=="string"?"text/plain;charset=UTF-8":Hlt(e)?"application/x-www-form-urlencoded;charset=UTF-8":bT(e)?e.type||null:Buffer.isBuffer(e)||Object.prototype.toString.call(e)==="[object ArrayBuffer]"||ArrayBuffer.isView(e)?null:typeof e.getBoundary=="function"?`multipart/form-data;boundary=${e.getBoundary()}`:e instanceof Qf?null:"text/plain;charset=UTF-8"}function Wlt(e){let t=e.body;return t===null?0:bT(t)?t.size:Buffer.isBuffer(t)?t.length:t&&typeof t.getLengthSync=="function"&&(t._lengthRetrievers&&t._lengthRetrievers.length==0||t.hasKnownLength&&t.hasKnownLength())?t.getLengthSync():null}function w4r(e,t){let r=t.body;r===null?e.end():bT(r)?r.stream().pipe(e):Buffer.isBuffer(r)?(e.write(r),e.end()):r.pipe(e)}yo.Promise=global.Promise;var Klt=/[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/,_1e=/[^\t\x20-\x7e\x80-\xff]/;function gT(e){if(e=`${e}`,Klt.test(e)||e==="")throw new TypeError(`${e} is not a legal HTTP header name`)}function Blt(e){if(e=`${e}`,_1e.test(e))throw new TypeError(`${e} is not a legal HTTP header value`)}function E8(e,t){t=t.toLowerCase();for(let r in e)if(r.toLowerCase()===t)return r}var vs=Symbol("map"),Dp=class e{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:void 0;if(this[vs]=Object.create(null),t instanceof e){let r=t.raw(),n=Object.keys(r);for(let i of n)for(let a of r[i])this.append(i,a);return}if(t!=null)if(typeof t=="object"){let r=t[Symbol.iterator];if(r!=null){if(typeof r!="function")throw new TypeError("Header pairs must be iterable");let n=[];for(let i of t){if(typeof i!="object"||typeof i[Symbol.iterator]!="function")throw new TypeError("Each header pair must be iterable");n.push(Array.from(i))}for(let i of n){if(i.length!==2)throw new TypeError("Each header pair must be a name/value tuple");this.append(i[0],i[1])}}else for(let n of Object.keys(t)){let i=t[n];this.append(n,i)}}else throw new TypeError("Provided initializer must be an object")}get(t){t=`${t}`,gT(t);let r=E8(this[vs],t);return r===void 0?null:this[vs][r].join(", ")}forEach(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,n=x1e(this),i=0;for(;i<n.length;){var a=n[i];let s=a[0],o=a[1];t.call(r,o,s,this),n=x1e(this),i++}}set(t,r){t=`${t}`,r=`${r}`,gT(t),Blt(r);let n=E8(this[vs],t);this[vs][n!==void 0?n:t]=[r]}append(t,r){t=`${t}`,r=`${r}`,gT(t),Blt(r);let n=E8(this[vs],t);n!==void 0?this[vs][n].push(r):this[vs][t]=[r]}has(t){return t=`${t}`,gT(t),E8(this[vs],t)!==void 0}delete(t){t=`${t}`,gT(t);let r=E8(this[vs],t);r!==void 0&&delete this[vs][r]}raw(){return this[vs]}keys(){return v1e(this,"key")}values(){return v1e(this,"value")}[Symbol.iterator](){return v1e(this,"key+value")}};Dp.prototype.entries=Dp.prototype[Symbol.iterator];Object.defineProperty(Dp.prototype,Symbol.toStringTag,{value:"Headers",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(Dp.prototype,{get:{enumerable:!0},forEach:{enumerable:!0},set:{enumerable:!0},append:{enumerable:!0},has:{enumerable:!0},delete:{enumerable:!0},keys:{enumerable:!0},values:{enumerable:!0},entries:{enumerable:!0}});function x1e(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"key+value";return Object.keys(e[vs]).sort().map(t==="key"?function(n){return n.toLowerCase()}:t==="value"?function(n){return e[vs][n].join(", ")}:function(n){return[n.toLowerCase(),e[vs][n].join(", ")]})}var E1e=Symbol("internal");function v1e(e,t){let r=Object.create(S1e);return r[E1e]={target:e,kind:t,index:0},r}var S1e=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==S1e)throw new TypeError("Value of `this` is not a HeadersIterator");var e=this[E1e];let t=e.target,r=e.kind,n=e.index,i=x1e(t,r),a=i.length;return n>=a?{value:void 0,done:!0}:(this[E1e].index=n+1,{value:i[n],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(S1e,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});function _4r(e){let t=Object.assign({__proto__:null},e[vs]),r=E8(e[vs],"Host");return r!==void 0&&(t[r]=t[r][0]),t}function x4r(e){let t=new Dp;for(let r of Object.keys(e))if(!Klt.test(r))if(Array.isArray(e[r]))for(let n of e[r])_1e.test(n)||(t[vs][r]===void 0?t[vs][r]=[n]:t[vs][r].push(n));else _1e.test(e[r])||(t[vs][r]=[e[r]]);return t}var Pv=Symbol("Response internals"),E4r=Ult.STATUS_CODES,Op=class e{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};yo.call(this,t,r);let n=r.status||200,i=new Dp(r.headers);if(t!=null&&!i.has("Content-Type")){let a=Glt(t);a&&i.append("Content-Type",a)}this[Pv]={url:r.url,status:n,statusText:r.statusText||E4r[n],headers:i,counter:r.counter}}get url(){return this[Pv].url||""}get status(){return this[Pv].status}get ok(){return this[Pv].status>=200&&this[Pv].status<300}get redirected(){return this[Pv].counter>0}get statusText(){return this[Pv].statusText}get headers(){return this[Pv].headers}clone(){return new e(Vlt(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}};yo.mixIn(Op.prototype);Object.defineProperties(Op.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});Object.defineProperty(Op.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});var r0=Symbol("Request internals"),S4r=D$.URL||zlt.URL,k4r=D$.parse,A4r=D$.format;function y1e(e){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)&&(e=new S4r(e).toString()),k4r(e)}var T4r="destroy"in Qf.Readable.prototype;function O$(e){return typeof e=="object"&&typeof e[r0]=="object"}function O4r(e){let t=e&&typeof e=="object"&&Object.getPrototypeOf(e);return!!(t&&t.constructor.name==="AbortSignal")}var Rv=class e{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n;O$(t)?n=y1e(t.url):(t&&t.href?n=y1e(t.href):n=y1e(`${t}`),t={});let i=r.method||t.method||"GET";if(i=i.toUpperCase(),(r.body!=null||O$(t)&&t.body!==null)&&(i==="GET"||i==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let a=r.body!=null?r.body:O$(t)&&t.body!==null?Vlt(t):null;yo.call(this,a,{timeout:r.timeout||t.timeout||0,size:r.size||t.size||0});let s=new Dp(r.headers||t.headers||{});if(a!=null&&!s.has("Content-Type")){let c=Glt(a);c&&s.append("Content-Type",c)}let o=O$(t)?t.signal:null;if("signal"in r&&(o=r.signal),o!=null&&!O4r(o))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[r0]={method:i,redirect:r.redirect||t.redirect||"follow",headers:s,parsedURL:n,signal:o},this.follow=r.follow!==void 0?r.follow:t.follow!==void 0?t.follow:20,this.compress=r.compress!==void 0?r.compress:t.compress!==void 0?t.compress:!0,this.counter=r.counter||t.counter||0,this.agent=r.agent||t.agent}get method(){return this[r0].method}get url(){return A4r(this[r0].parsedURL)}get headers(){return this[r0].headers}get redirect(){return this[r0].redirect}get signal(){return this[r0].signal}clone(){return new e(this)}};yo.mixIn(Rv.prototype);Object.defineProperty(Rv.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(Rv.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}});function D4r(e){let t=e[r0].parsedURL,r=new Dp(e[r0].headers);if(r.has("Accept")||r.set("Accept","*/*"),!t.protocol||!t.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(t.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof Qf.Readable&&!T4r)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let n=null;if(e.body==null&&/^(POST|PUT)$/i.test(e.method)&&(n="0"),e.body!=null){let a=Wlt(e);typeof a=="number"&&(n=String(a))}n&&r.set("Content-Length",n),r.has("User-Agent")||r.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!r.has("Accept-Encoding")&&r.set("Accept-Encoding","gzip,deflate");let i=e.agent;return typeof i=="function"&&(i=i(t)),Object.assign({},t,{method:e.method,headers:_4r(r),agent:i})}function S8(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}S8.prototype=Object.create(Error.prototype);S8.prototype.constructor=S8;S8.prototype.name="AbortError";var yT=D$.URL||zlt.URL,Mlt=Qf.PassThrough,C4r=function(t,r){let n=new yT(r).hostname,i=new yT(t).hostname;return n===i||n[n.length-i.length-1]==="."&&n.endsWith(i)},P4r=function(t,r){let n=new yT(r).protocol,i=new yT(t).protocol;return n===i};function Iv(e,t){if(!Iv.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return yo.Promise=Iv.Promise,new Iv.Promise(function(r,n){let i=new Rv(e,t),a=D4r(i),s=(a.protocol==="https:"?v4r:Ult).request,o=i.signal,c=null,p=function(){let y=new S8("The user aborted a request.");n(y),i.body&&i.body instanceof Qf.Readable&&b1e(i.body,y),!(!c||!c.body)&&c.body.emit("error",y)};if(o&&o.aborted){p();return}let f=function(){p(),g()},d=s(a),h;o&&o.addEventListener("abort",f);function g(){d.abort(),o&&o.removeEventListener("abort",f),clearTimeout(h)}i.timeout&&d.once("socket",function(v){h=setTimeout(function(){n(new Ho(`network timeout at: ${i.url}`,"request-timeout")),g()},i.timeout)}),d.on("error",function(v){n(new Ho(`request to ${i.url} failed, reason: ${v.message}`,"system",v)),c&&c.body&&b1e(c.body,v),g()}),I4r(d,function(v){o&&o.aborted||c&&c.body&&b1e(c.body,v)}),parseInt(process.version.substring(1))<14&&d.on("socket",function(v){v.addListener("close",function(y){let _=v.listenerCount("data")>0;if(c&&_&&!y&&!(o&&o.aborted)){let x=new Error("Premature close");x.code="ERR_STREAM_PREMATURE_CLOSE",c.body.emit("error",x)}})}),d.on("response",function(v){clearTimeout(h);let y=x4r(v.headers);if(Iv.isRedirect(v.statusCode)){let j=y.get("Location"),H=null;try{H=j===null?null:new yT(j,i.url).toString()}catch{if(i.redirect!=="manual"){n(new Ho(`uri requested responds with an invalid redirect URL: ${j}`,"invalid-redirect")),g();return}}switch(i.redirect){case"error":n(new Ho(`uri requested responds with a redirect, redirect mode is set to error: ${i.url}`,"no-redirect")),g();return;case"manual":if(H!==null)try{y.set("Location",H)}catch(z){n(z)}break;case"follow":if(H===null)break;if(i.counter>=i.follow){n(new Ho(`maximum redirect reached at: ${i.url}`,"max-redirect")),g();return}let F={headers:new Dp(i.headers),follow:i.follow,counter:i.counter+1,agent:i.agent,compress:i.compress,method:i.method,body:i.body,signal:i.signal,timeout:i.timeout,size:i.size};if(!C4r(i.url,H)||!P4r(i.url,H))for(let z of["authorization","www-authenticate","cookie","cookie2"])F.headers.delete(z);if(v.statusCode!==303&&i.body&&Wlt(i)===null){n(new Ho("Cannot follow redirect with body being a readable stream","unsupported-redirect")),g();return}(v.statusCode===303||(v.statusCode===301||v.statusCode===302)&&i.method==="POST")&&(F.method="GET",F.body=void 0,F.headers.delete("content-length")),r(Iv(new Rv(H,F))),g();return}}v.once("end",function(){o&&o.removeEventListener("abort",f)});let _=v.pipe(new Mlt),x={url:i.url,status:v.statusCode,statusText:v.statusMessage,headers:y,size:i.size,timeout:i.timeout,counter:i.counter},A=y.get("Content-Encoding");if(!i.compress||i.method==="HEAD"||A===null||v.statusCode===204||v.statusCode===304){c=new Op(_,x),r(c);return}let D={flush:$w.Z_SYNC_FLUSH,finishFlush:$w.Z_SYNC_FLUSH};if(A=="gzip"||A=="x-gzip"){_=_.pipe($w.createGunzip(D)),c=new Op(_,x),r(c);return}if(A=="deflate"||A=="x-deflate"){let j=v.pipe(new Mlt);j.once("data",function(H){(H[0]&15)===8?_=_.pipe($w.createInflate()):_=_.pipe($w.createInflateRaw()),c=new Op(_,x),r(c)}),j.on("end",function(){c||(c=new Op(_,x),r(c))});return}if(A=="br"&&typeof $w.createBrotliDecompress=="function"){_=_.pipe($w.createBrotliDecompress()),c=new Op(_,x),r(c);return}c=new Op(_,x),r(c)}),w4r(d,i)})}function I4r(e,t){let r;e.on("socket",function(n){r=n}),e.on("response",function(n){let i=n.headers;i["transfer-encoding"]==="chunked"&&!i["content-length"]&&n.once("close",function(a){if(r&&r.listenerCount("data")>0&&!a){let o=new Error("Premature close");o.code="ERR_STREAM_PREMATURE_CLOSE",t(o)}})})}function b1e(e,t){e.destroy?e.destroy(t):(e.emit("error",t),e.end())}Iv.isRedirect=function(e){return e===301||e===302||e===303||e===307||e===308};Iv.Promise=global.Promise;Ylt.exports=Zf=Iv;Object.defineProperty(Zf,"__esModule",{value:!0});Zf.default=Zf;Zf.Headers=Dp;Zf.Request=Rv;Zf.Response=Op;Zf.FetchError=Ho;Zf.AbortError=S8});var Xlt=b((Aln,R4r)=>{R4r.exports={name:"gaxios",version:"6.7.1",description:"A simple common HTTP client specifically for Google APIs and services.",main:"build/src/index.js",types:"build/src/index.d.ts",files:["build/src"],scripts:{lint:"gts check",test:"c8 mocha build/test","presystem-test":"npm run compile","system-test":"mocha build/system-test --timeout 80000",compile:"tsc -p .",fix:"gts fix",prepare:"npm run compile",pretest:"npm run compile",webpack:"webpack","prebrowser-test":"npm run compile","browser-test":"node build/browser-test/browser-test-runner.js",docs:"compodoc src/","docs-test":"linkinator docs","predocs-test":"npm run docs","samples-test":"cd samples/ && npm link ../ && npm test && cd ../",prelint:"cd samples; npm link ../; npm install",clean:"gts clean",precompile:"gts clean"},repository:"googleapis/gaxios",keywords:["google"],engines:{node:">=14"},author:"Google, LLC",license:"Apache-2.0",devDependencies:{"@babel/plugin-proposal-private-methods":"^7.18.6","@compodoc/compodoc":"1.1.19","@types/cors":"^2.8.6","@types/express":"^4.16.1","@types/extend":"^3.0.1","@types/mocha":"^9.0.0","@types/multiparty":"0.0.36","@types/mv":"^2.1.0","@types/ncp":"^2.0.1","@types/node":"^20.0.0","@types/node-fetch":"^2.5.7","@types/sinon":"^17.0.0","@types/tmp":"0.2.6","@types/uuid":"^10.0.0","abort-controller":"^3.0.0",assert:"^2.0.0",browserify:"^17.0.0",c8:"^8.0.0",cheerio:"1.0.0-rc.10",cors:"^2.8.5",execa:"^5.0.0",express:"^4.16.4","form-data":"^4.0.0",gts:"^5.0.0","is-docker":"^2.0.0",karma:"^6.0.0","karma-chrome-launcher":"^3.0.0","karma-coverage":"^2.0.0","karma-firefox-launcher":"^2.0.0","karma-mocha":"^2.0.0","karma-remap-coverage":"^0.1.5","karma-sourcemap-loader":"^0.4.0","karma-webpack":"5.0.0",linkinator:"^3.0.0",mocha:"^8.0.0",multiparty:"^4.2.1",mv:"^2.1.1",ncp:"^2.0.0",nock:"^13.0.0","null-loader":"^4.0.0",puppeteer:"^19.0.0",sinon:"^18.0.0","stream-browserify":"^3.0.0",tmp:"0.2.3","ts-loader":"^8.0.0",typescript:"^5.1.6",webpack:"^5.35.0","webpack-cli":"^4.0.0"},dependencies:{extend:"^3.0.2","https-proxy-agent":"^7.0.1","is-stream":"^2.0.0","node-fetch":"^2.6.9",uuid:"^9.0.1"}}});var Qlt=b(C$=>{"use strict";Object.defineProperty(C$,"__esModule",{value:!0});C$.pkg=void 0;C$.pkg=Xlt()});var T1e=b(Cp=>{"use strict";var F4r=Cp&&Cp.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},Zlt;Object.defineProperty(Cp,"__esModule",{value:!0});Cp.GaxiosError=Cp.GAXIOS_ERROR_SYMBOL=void 0;Cp.defaultErrorRedactor=tpt;var j4r=require("url"),k1e=Qlt(),ept=F4r(v3());Cp.GAXIOS_ERROR_SYMBOL=Symbol.for(`${k1e.pkg.name}-gaxios-error`);var A1e=class e extends Error{static[(Zlt=Cp.GAXIOS_ERROR_SYMBOL,Symbol.hasInstance)](t){return t&&typeof t=="object"&&Cp.GAXIOS_ERROR_SYMBOL in t&&t[Cp.GAXIOS_ERROR_SYMBOL]===k1e.pkg.version?!0:Function.prototype[Symbol.hasInstance].call(e,t)}constructor(t,r,n,i){var a;if(super(t),this.config=r,this.response=n,this.error=i,this[Zlt]=k1e.pkg.version,this.config=(0,ept.default)(!0,{},r),this.response&&(this.response.config=(0,ept.default)(!0,{},this.response.config)),this.response){try{this.response.data=N4r(this.config.responseType,(a=this.response)===null||a===void 0?void 0:a.data)}catch{}this.status=this.response.status}i&&"code"in i&&i.code&&(this.code=i.code),r.errorRedactor&&r.errorRedactor({config:this.config,response:this.response})}};Cp.GaxiosError=A1e;function N4r(e,t){switch(e){case"stream":return t;case"json":return JSON.parse(JSON.stringify(t));case"arraybuffer":return JSON.parse(Buffer.from(t).toString("utf8"));case"blob":return JSON.parse(t.text());default:return t}}function tpt(e){let t="<<REDACTED> - See `errorRedactor` option in `gaxios` for configuration>.";function r(a){if(a)for(let s of Object.keys(a))/^authentication$/i.test(s)&&(a[s]=t),/^authorization$/i.test(s)&&(a[s]=t),/secret/i.test(s)&&(a[s]=t)}function n(a,s){if(typeof a=="object"&&a!==null&&typeof a[s]=="string"){let o=a[s];(/grant_type=/i.test(o)||/assertion=/i.test(o)||/secret/i.test(o))&&(a[s]=t)}}function i(a){typeof a=="object"&&a!==null&&("grant_type"in a&&(a.grant_type=t),"assertion"in a&&(a.assertion=t),"client_secret"in a&&(a.client_secret=t))}if(e.config){r(e.config.headers),n(e.config,"data"),i(e.config.data),n(e.config,"body"),i(e.config.body);try{let a=new j4r.URL("",e.config.url);a.searchParams.has("token")&&a.searchParams.set("token",t),a.searchParams.has("client_secret")&&a.searchParams.set("client_secret",t),e.config.url=a.toString()}catch{}}return e.response&&(tpt({config:e.response.config}),r(e.response.headers),n(e.response,"data"),i(e.response.data)),e}});var npt=b(O1e=>{"use strict";Object.defineProperty(O1e,"__esModule",{value:!0});O1e.getRetryConfig=q4r;async function q4r(e){let t=rpt(e);if(!e||!e.config||!t&&!e.config.retry)return{shouldRetry:!1};t=t||{},t.currentRetryAttempt=t.currentRetryAttempt||0,t.retry=t.retry===void 0||t.retry===null?3:t.retry,t.httpMethodsToRetry=t.httpMethodsToRetry||["GET","HEAD","PUT","OPTIONS","DELETE"],t.noResponseRetries=t.noResponseRetries===void 0||t.noResponseRetries===null?2:t.noResponseRetries,t.retryDelayMultiplier=t.retryDelayMultiplier?t.retryDelayMultiplier:2,t.timeOfFirstRequest=t.timeOfFirstRequest?t.timeOfFirstRequest:Date.now(),t.totalTimeout=t.totalTimeout?t.totalTimeout:Number.MAX_SAFE_INTEGER,t.maxRetryDelay=t.maxRetryDelay?t.maxRetryDelay:Number.MAX_SAFE_INTEGER;let r=[[100,199],[408,408],[429,429],[500,599]];if(t.statusCodesToRetry=t.statusCodesToRetry||r,e.config.retryConfig=t,!await(t.shouldRetry||L4r)(e))return{shouldRetry:!1,config:e.config};let i=$4r(t);e.config.retryConfig.currentRetryAttempt+=1;let a=t.retryBackoff?t.retryBackoff(e,i):new Promise(s=>{setTimeout(s,i)});return t.onRetryAttempt&&t.onRetryAttempt(e),await a,{shouldRetry:!0,config:e.config}}function L4r(e){var t;let r=rpt(e);if(e.name==="AbortError"||((t=e.error)===null||t===void 0?void 0:t.name)==="AbortError"||!r||r.retry===0||!e.response&&(r.currentRetryAttempt||0)>=r.noResponseRetries||!e.config.method||r.httpMethodsToRetry.indexOf(e.config.method.toUpperCase())<0)return!1;if(e.response&&e.response.status){let n=!1;for(let[i,a]of r.statusCodesToRetry){let s=e.response.status;if(s>=i&&s<=a){n=!0;break}}if(!n)return!1}return r.currentRetryAttempt=r.currentRetryAttempt||0,!(r.currentRetryAttempt>=r.retry)}function rpt(e){if(e&&e.config&&e.config.retryConfig)return e.config.retryConfig}function $4r(e){var t;let n=(e.currentRetryAttempt?0:(t=e.retryDelay)!==null&&t!==void 0?t:100)+(Math.pow(e.retryDelayMultiplier,e.currentRetryAttempt)-1)/2*1e3,i=e.totalTimeout-(Date.now()-e.timeOfFirstRequest);return Math.min(n,i,e.maxRetryDelay)}});function wT(){return P$>I$.length-16&&(ipt.default.randomFillSync(I$),P$=0),I$.slice(P$,P$+=16)}var ipt,I$,P$,D1e=ns(()=>{ipt=dt(require("crypto")),I$=new Uint8Array(256),P$=I$.length});var apt,spt=ns(()=>{apt=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i});function B4r(e){return typeof e=="string"&&apt.test(e)}var Fv,_T=ns(()=>{spt();Fv=B4r});function Bw(e,t=0){return Vo[e[t+0]]+Vo[e[t+1]]+Vo[e[t+2]]+Vo[e[t+3]]+"-"+Vo[e[t+4]]+Vo[e[t+5]]+"-"+Vo[e[t+6]]+Vo[e[t+7]]+"-"+Vo[e[t+8]]+Vo[e[t+9]]+"-"+Vo[e[t+10]]+Vo[e[t+11]]+Vo[e[t+12]]+Vo[e[t+13]]+Vo[e[t+14]]+Vo[e[t+15]]}function M4r(e,t=0){let r=Bw(e,t);if(!Fv(r))throw TypeError("Stringified UUID is invalid");return r}var Vo,opt,xT=ns(()=>{_T();Vo=[];for(let e=0;e<256;++e)Vo.push((e+256).toString(16).slice(1));opt=M4r});function U4r(e,t,r){let n=t&&r||0,i=t||new Array(16);e=e||{};let a=e.node||upt,s=e.clockseq!==void 0?e.clockseq:C1e;if(a==null||s==null){let h=e.random||(e.rng||wT)();a==null&&(a=upt=[h[0]|1,h[1],h[2],h[3],h[4],h[5]]),s==null&&(s=C1e=(h[6]<<8|h[7])&16383)}let o=e.msecs!==void 0?e.msecs:Date.now(),c=e.nsecs!==void 0?e.nsecs:I1e+1,p=o-P1e+(c-I1e)/1e4;if(p<0&&e.clockseq===void 0&&(s=s+1&16383),(p<0||o>P1e)&&e.nsecs===void 0&&(c=0),c>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");P1e=o,I1e=c,C1e=s,o+=122192928e5;let f=((o&268435455)*1e4+c)%4294967296;i[n++]=f>>>24&255,i[n++]=f>>>16&255,i[n++]=f>>>8&255,i[n++]=f&255;let d=o/4294967296*1e4&268435455;i[n++]=d>>>8&255,i[n++]=d&255,i[n++]=d>>>24&15|16,i[n++]=d>>>16&255,i[n++]=s>>>8|128,i[n++]=s&255;for(let h=0;h<6;++h)i[n+h]=a[h];return t||Bw(i)}var upt,C1e,P1e,I1e,cpt,lpt=ns(()=>{D1e();xT();P1e=0,I1e=0;cpt=U4r});function z4r(e){if(!Fv(e))throw TypeError("Invalid UUID");let t,r=new Uint8Array(16);return r[0]=(t=parseInt(e.slice(0,8),16))>>>24,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=t&255,r[4]=(t=parseInt(e.slice(9,13),16))>>>8,r[5]=t&255,r[6]=(t=parseInt(e.slice(14,18),16))>>>8,r[7]=t&255,r[8]=(t=parseInt(e.slice(19,23),16))>>>8,r[9]=t&255,r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,r[11]=t/4294967296&255,r[12]=t>>>24&255,r[13]=t>>>16&255,r[14]=t>>>8&255,r[15]=t&255,r}var R$,R1e=ns(()=>{_T();R$=z4r});function H4r(e){e=unescape(encodeURIComponent(e));let t=[];for(let r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t}function ET(e,t,r){function n(i,a,s,o){var c;if(typeof i=="string"&&(i=H4r(i)),typeof a=="string"&&(a=R$(a)),((c=a)===null||c===void 0?void 0:c.length)!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let p=new Uint8Array(16+i.length);if(p.set(a),p.set(i,a.length),p=r(p),p[6]=p[6]&15|t,p[8]=p[8]&63|128,s){o=o||0;for(let f=0;f<16;++f)s[o+f]=p[f];return s}return Bw(p)}try{n.name=e}catch{}return n.DNS=V4r,n.URL=G4r,n}var V4r,G4r,F1e=ns(()=>{xT();R1e();V4r="6ba7b810-9dad-11d1-80b4-00c04fd430c8",G4r="6ba7b811-9dad-11d1-80b4-00c04fd430c8"});function W4r(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),ppt.default.createHash("md5").update(e).digest()}var ppt,fpt,dpt=ns(()=>{ppt=dt(require("crypto"));fpt=W4r});var K4r,hpt,mpt=ns(()=>{F1e();dpt();K4r=ET("v3",48,fpt),hpt=K4r});var gpt,j1e,vpt=ns(()=>{gpt=dt(require("crypto")),j1e={randomUUID:gpt.default.randomUUID}});function Y4r(e,t,r){if(j1e.randomUUID&&!t&&!e)return j1e.randomUUID();e=e||{};let n=e.random||(e.rng||wT)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){r=r||0;for(let i=0;i<16;++i)t[r+i]=n[i];return t}return Bw(n)}var ypt,bpt=ns(()=>{vpt();D1e();xT();ypt=Y4r});function J4r(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),wpt.default.createHash("sha1").update(e).digest()}var wpt,_pt,xpt=ns(()=>{wpt=dt(require("crypto"));_pt=J4r});var X4r,Ept,Spt=ns(()=>{F1e();xpt();X4r=ET("v5",80,_pt),Ept=X4r});var kpt,Apt=ns(()=>{kpt="00000000-0000-0000-0000-000000000000"});function Q4r(e){if(!Fv(e))throw TypeError("Invalid UUID");return parseInt(e.slice(14,15),16)}var Tpt,Opt=ns(()=>{_T();Tpt=Q4r});var Dpt={};g2(Dpt,{NIL:()=>kpt,parse:()=>R$,stringify:()=>opt,v1:()=>cpt,v3:()=>hpt,v4:()=>ypt,v5:()=>Ept,validate:()=>Fv,version:()=>Tpt});var Cpt=ns(()=>{lpt();mpt();bpt();Spt();Apt();Opt();_T();xT();R1e()});var q1e=b(F$=>{"use strict";Object.defineProperty(F$,"__esModule",{value:!0});F$.GaxiosInterceptorManager=void 0;var N1e=class extends Set{};F$.GaxiosInterceptorManager=N1e});var Rpt=b($c=>{"use strict";var Z4r=$c&&$c.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),e3r=$c&&$c.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Ppt=$c&&$c.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&Z4r(t,e,r);return e3r(t,e),t};Object.defineProperty($c,"__esModule",{value:!0});$c.req=$c.json=$c.toBuffer=void 0;var t3r=Ppt(require("http")),r3r=Ppt(require("https"));async function Ipt(e){let t=0,r=[];for await(let n of e)t+=n.length,r.push(n);return Buffer.concat(r,t)}$c.toBuffer=Ipt;async function n3r(e){let r=(await Ipt(e)).toString("utf8");try{return JSON.parse(r)}catch(n){let i=n;throw i.message+=` (input: ${r})`,i}}$c.json=n3r;function i3r(e,t={}){let n=((typeof e=="string"?e:e.href).startsWith("https:")?r3r:t3r).request(e,t),i=new Promise((a,s)=>{n.once("response",a).once("error",s).end()});return n.then=i.then.bind(i),n}$c.req=i3r});var qpt=b(Tl=>{"use strict";var jpt=Tl&&Tl.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),a3r=Tl&&Tl.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Npt=Tl&&Tl.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&jpt(t,e,r);return a3r(t,e),t},s3r=Tl&&Tl.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&jpt(t,e,r)};Object.defineProperty(Tl,"__esModule",{value:!0});Tl.Agent=void 0;var o3r=Npt(require("net")),Fpt=Npt(require("http")),u3r=require("https");s3r(Rpt(),Tl);var Fh=Symbol("AgentBaseInternalState"),L1e=class extends Fpt.Agent{constructor(t){super(t),this[Fh]={}}isSecureEndpoint(t){if(t){if(typeof t.secureEndpoint=="boolean")return t.secureEndpoint;if(typeof t.protocol=="string")return t.protocol==="https:"}let{stack:r}=new Error;return typeof r!="string"?!1:r.split(`
`).some(n=>n.indexOf("(https.js:")!==-1||n.indexOf("node:https:")!==-1)}incrementSockets(t){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[t]||(this.sockets[t]=[]);let r=new o3r.Socket({writable:!1});return this.sockets[t].push(r),this.totalSocketCount++,r}decrementSockets(t,r){if(!this.sockets[t]||r===null)return;let n=this.sockets[t],i=n.indexOf(r);i!==-1&&(n.splice(i,1),this.totalSocketCount--,n.length===0&&delete this.sockets[t])}getName(t){return(typeof t.secureEndpoint=="boolean"?t.secureEndpoint:this.isSecureEndpoint(t))?u3r.Agent.prototype.getName.call(this,t):super.getName(t)}createSocket(t,r,n){let i={...r,secureEndpoint:this.isSecureEndpoint(r)},a=this.getName(i),s=this.incrementSockets(a);Promise.resolve().then(()=>this.connect(t,i)).then(o=>{if(this.decrementSockets(a,s),o instanceof Fpt.Agent)try{return o.addRequest(t,i)}catch(c){return n(c)}this[Fh].currentSocket=o,super.createSocket(t,r,n)},o=>{this.decrementSockets(a,s),n(o)})}createConnection(){let t=this[Fh].currentSocket;if(this[Fh].currentSocket=void 0,!t)throw new Error("No socket was returned in the `connect()` function");return t}get defaultPort(){return this[Fh].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(t){this[Fh]&&(this[Fh].defaultPort=t)}get protocol(){return this[Fh].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(t){this[Fh]&&(this[Fh].protocol=t)}};Tl.Agent=L1e});var Lpt=b(A8=>{"use strict";var c3r=A8&&A8.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(A8,"__esModule",{value:!0});A8.parseProxyResponse=void 0;var l3r=c3r(_2()),j$=(0,l3r.default)("https-proxy-agent:parse-proxy-response");function p3r(e){return new Promise((t,r)=>{let n=0,i=[];function a(){let f=e.read();f?p(f):e.once("readable",a)}function s(){e.removeListener("end",o),e.removeListener("error",c),e.removeListener("readable",a)}function o(){s(),j$("onend"),r(new Error("Proxy connection ended before receiving CONNECT response"))}function c(f){s(),j$("onerror %o",f),r(f)}function p(f){i.push(f),n+=f.length;let d=Buffer.concat(i,n),h=d.indexOf(`\r
\r
`);if(h===-1){j$("have not received end of HTTP headers yet..."),a();return}let g=d.slice(0,h).toString("ascii").split(`\r
`),v=g.shift();if(!v)return e.destroy(),r(new Error("No header received from proxy CONNECT response"));let y=v.split(" "),_=+y[1],x=y.slice(2).join(" "),A={};for(let D of g){if(!D)continue;let j=D.indexOf(":");if(j===-1)return e.destroy(),r(new Error(`Invalid header from proxy CONNECT response: "${D}"`));let H=D.slice(0,j).toLowerCase(),F=D.slice(j+1).trimStart(),z=A[H];typeof z=="string"?A[H]=[z,F]:Array.isArray(z)?z.push(F):A[H]=F}j$("got proxy server response: %o %o",v,A),s(),t({connect:{statusCode:_,statusText:x,headers:A},buffered:d})}e.on("error",c),e.on("end",o),a()})}A8.parseProxyResponse=p3r});var Hpt=b(Pp=>{"use strict";var f3r=Pp&&Pp.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),d3r=Pp&&Pp.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Upt=Pp&&Pp.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&f3r(t,e,r);return d3r(t,e),t},zpt=Pp&&Pp.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Pp,"__esModule",{value:!0});Pp.HttpsProxyAgent=void 0;var N$=Upt(require("net")),$pt=Upt(require("tls")),h3r=zpt(require("assert")),m3r=zpt(_2()),g3r=qpt(),v3r=require("url"),y3r=Lpt(),ST=(0,m3r.default)("https-proxy-agent"),Bpt=e=>e.servername===void 0&&e.host&&!N$.isIP(e.host)?{...e,servername:e.host}:e,q$=class extends g3r.Agent{constructor(t,r){super(r),this.options={path:void 0},this.proxy=typeof t=="string"?new v3r.URL(t):t,this.proxyHeaders=r?.headers??{},ST("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let n=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),i=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...r?Mpt(r,"headers"):null,host:n,port:i}}async connect(t,r){let{proxy:n}=this;if(!r.host)throw new TypeError('No "host" provided');let i;n.protocol==="https:"?(ST("Creating `tls.Socket`: %o",this.connectOpts),i=$pt.connect(Bpt(this.connectOpts))):(ST("Creating `net.Socket`: %o",this.connectOpts),i=N$.connect(this.connectOpts));let a=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},s=N$.isIPv6(r.host)?`[${r.host}]`:r.host,o=`CONNECT ${s}:${r.port} HTTP/1.1\r
`;if(n.username||n.password){let h=`${decodeURIComponent(n.username)}:${decodeURIComponent(n.password)}`;a["Proxy-Authorization"]=`Basic ${Buffer.from(h).toString("base64")}`}a.Host=`${s}:${r.port}`,a["Proxy-Connection"]||(a["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let h of Object.keys(a))o+=`${h}: ${a[h]}\r
`;let c=(0,y3r.parseProxyResponse)(i);i.write(`${o}\r
`);let{connect:p,buffered:f}=await c;if(t.emit("proxyConnect",p),this.emit("proxyConnect",p,t),p.statusCode===200)return t.once("socket",b3r),r.secureEndpoint?(ST("Upgrading socket connection to TLS"),$pt.connect({...Mpt(Bpt(r),"host","path","port"),socket:i})):i;i.destroy();let d=new N$.Socket({writable:!1});return d.readable=!0,t.once("socket",h=>{ST("Replaying proxy buffer for failed request"),(0,h3r.default)(h.listenerCount("data")>0),h.push(f),h.push(null)}),d}};q$.protocols=["http","https"];Pp.HttpsProxyAgent=q$;function b3r(e){e.resume()}function Mpt(e,...t){let r={},n;for(n in e)t.includes(n)||(r[n]=e[n]);return r}});var tft=b(Eu=>{"use strict";var w3r=Eu&&Eu.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),_3r=Eu&&Eu.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),x3r=Eu&&Eu.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&w3r(t,e,r);return _3r(t,e),t},Uw=Eu&&Eu.__classPrivateFieldGet||function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},E3r=Eu&&Eu.__classPrivateFieldSet||function(e,t,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},M$=Eu&&Eu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},T8,Mw,Vpt,Xpt,Qpt,Zpt,L$,Gpt;Object.defineProperty(Eu,"__esModule",{value:!0});Eu.Gaxios=void 0;var S3r=M$(v3()),k3r=require("https"),A3r=M$(Jlt()),T3r=M$(require("querystring")),O3r=M$(Hee()),Wpt=require("url"),$$=T1e(),D3r=npt(),Kpt=require("stream"),C3r=(Cpt(),_n(Dpt)),Ypt=q1e(),P3r=R3r()?window.fetch:A3r.default;function I3r(){return typeof window<"u"&&!!window}function R3r(){return I3r()&&!!window.fetch}function F3r(){return typeof Buffer<"u"}function Jpt(e,t){return!!eft(e,t)}function eft(e,t){t=t.toLowerCase();for(let r of Object.keys(e?.headers||{}))if(t===r.toLowerCase())return e.headers[r]}var B$=class{constructor(t){T8.add(this),this.agentCache=new Map,this.defaults=t||{},this.interceptors={request:new Ypt.GaxiosInterceptorManager,response:new Ypt.GaxiosInterceptorManager}}async request(t={}){return t=await Uw(this,T8,"m",Zpt).call(this,t),t=await Uw(this,T8,"m",Xpt).call(this,t),Uw(this,T8,"m",Qpt).call(this,this._request(t))}async _defaultAdapter(t){let n=await(t.fetchImplementation||P3r)(t.url,t),i=await this.getResponseData(t,n);return this.translateResponse(t,n,i)}async _request(t={}){var r;try{let n;if(t.adapter?n=await t.adapter(t,this._defaultAdapter.bind(this)):n=await this._defaultAdapter(t),!t.validateStatus(n.status)){if(t.responseType==="stream"){let i="";await new Promise(a=>{(n?.data).on("data",s=>{i+=s}),(n?.data).on("end",a)}),n.data=i}throw new $$.GaxiosError(`Request failed with status code ${n.status}`,t,n)}return n}catch(n){let i=n instanceof $$.GaxiosError?n:new $$.GaxiosError(n.message,t,void 0,n),{shouldRetry:a,config:s}=await(0,D3r.getRetryConfig)(i);if(a&&s)return i.config.retryConfig.currentRetryAttempt=s.retryConfig.currentRetryAttempt,t.retryConfig=(r=i.config)===null||r===void 0?void 0:r.retryConfig,this._request(t);throw i}}async getResponseData(t,r){switch(t.responseType){case"stream":return r.body;case"json":{let n=await r.text();try{n=JSON.parse(n)}catch{}return n}case"arraybuffer":return r.arrayBuffer();case"blob":return r.blob();case"text":return r.text();default:return this.getResponseDataFromContentType(r)}}validateStatus(t){return t>=200&&t<300}paramsSerializer(t){return T3r.default.stringify(t)}translateResponse(t,r,n){let i={};return r.headers.forEach((a,s)=>{i[s]=a}),{config:t,data:n,headers:i,status:r.status,statusText:r.statusText,request:{responseURL:r.url}}}async getResponseDataFromContentType(t){let r=t.headers.get("Content-Type");if(r===null)return t.text();if(r=r.toLowerCase(),r.includes("application/json")){let n=await t.text();try{n=JSON.parse(n)}catch{}return n}else return r.match(/^text\//)?t.text():t.blob()}async*getMultipartRequest(t,r){let n=`--${r}--`;for(let i of t){let a=i.headers["Content-Type"]||"application/octet-stream";yield`--${r}\r
Content-Type: ${a}\r
\r
`,typeof i.content=="string"?yield i.content:yield*i.content,yield`\r
`}yield n}};Eu.Gaxios=B$;Mw=B$,T8=new WeakSet,Vpt=function(t,r=[]){var n,i;let a=new Wpt.URL(t),s=[...r],o=((i=(n=process.env.NO_PROXY)!==null&&n!==void 0?n:process.env.no_proxy)===null||i===void 0?void 0:i.split(","))||[];for(let c of o)s.push(c.trim());for(let c of s)if(c instanceof RegExp){if(c.test(a.toString()))return!1}else if(c instanceof Wpt.URL){if(c.origin===a.origin)return!1}else if(c.startsWith("*.")||c.startsWith(".")){let p=c.replace(/^\*\./,".");if(a.hostname.endsWith(p))return!1}else if(c===a.origin||c===a.hostname||c===a.href)return!1;return!0},Xpt=async function(t){let r=Promise.resolve(t);for(let n of this.interceptors.request.values())n&&(r=r.then(n.resolved,n.rejected));return r},Qpt=async function(t){let r=Promise.resolve(t);for(let n of this.interceptors.response.values())n&&(r=r.then(n.resolved,n.rejected));return r},Zpt=async function(t){var r,n,i,a;let s=(0,S3r.default)(!0,{},this.defaults,t);if(!s.url)throw new Error("URL is required.");let o=s.baseUrl||s.baseURL;if(o&&(s.url=o.toString()+s.url),s.paramsSerializer=s.paramsSerializer||this.paramsSerializer,s.params&&Object.keys(s.params).length>0){let f=s.paramsSerializer(s.params);f.startsWith("?")&&(f=f.slice(1));let d=s.url.toString().includes("?")?"&":"?";s.url=s.url+d+f}if(typeof t.maxContentLength=="number"&&(s.size=t.maxContentLength),typeof t.maxRedirects=="number"&&(s.follow=t.maxRedirects),s.headers=s.headers||{},s.multipart===void 0&&s.data){let f=typeof FormData>"u"?!1:s?.data instanceof FormData;O3r.default.readable(s.data)?s.body=s.data:F3r()&&Buffer.isBuffer(s.data)?(s.body=s.data,Jpt(s,"Content-Type")||(s.headers["Content-Type"]="application/json")):typeof s.data=="object"?f||(eft(s,"content-type")==="application/x-www-form-urlencoded"?s.body=s.paramsSerializer(s.data):(Jpt(s,"Content-Type")||(s.headers["Content-Type"]="application/json"),s.body=JSON.stringify(s.data))):s.body=s.data}else if(s.multipart&&s.multipart.length>0){let f=(0,C3r.v4)();s.headers["Content-Type"]=`multipart/related; boundary=${f}`;let d=new Kpt.PassThrough;s.body=d,(0,Kpt.pipeline)(this.getMultipartRequest(s.multipart,f),d,()=>{})}s.validateStatus=s.validateStatus||this.validateStatus,s.responseType=s.responseType||"unknown",!s.headers.Accept&&s.responseType==="json"&&(s.headers.Accept="application/json"),s.method=s.method||"GET";let c=s.proxy||((r=process==null?void 0:process.env)===null||r===void 0?void 0:r.HTTPS_PROXY)||((n=process==null?void 0:process.env)===null||n===void 0?void 0:n.https_proxy)||((i=process==null?void 0:process.env)===null||i===void 0?void 0:i.HTTP_PROXY)||((a=process==null?void 0:process.env)===null||a===void 0?void 0:a.http_proxy),p=Uw(this,T8,"m",Vpt).call(this,s.url,s.noProxy);if(!s.agent)if(c&&p){let f=await Uw(Mw,Mw,"m",Gpt).call(Mw);this.agentCache.has(c)?s.agent=this.agentCache.get(c):(s.agent=new f(c,{cert:s.cert,key:s.key}),this.agentCache.set(c,s.agent))}else s.cert&&s.key&&(this.agentCache.has(s.key)?s.agent=this.agentCache.get(s.key):(s.agent=new k3r.Agent({cert:s.cert,key:s.key}),this.agentCache.set(s.key,s.agent)));return typeof s.errorRedactor!="function"&&s.errorRedactor!==!1&&(s.errorRedactor=$$.defaultErrorRedactor),s},Gpt=async function(){return E3r(this,Mw,Uw(this,Mw,"f",L$)||(await Promise.resolve().then(()=>x3r(Hpt()))).HttpsProxyAgent,"f",L$),Uw(this,Mw,"f",L$)};L$={value:void 0}});var ed=b(nc=>{"use strict";var j3r=nc&&nc.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),N3r=nc&&nc.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&j3r(t,e,r)};Object.defineProperty(nc,"__esModule",{value:!0});nc.instance=nc.Gaxios=nc.GaxiosError=void 0;nc.request=L3r;var rft=tft();Object.defineProperty(nc,"Gaxios",{enumerable:!0,get:function(){return rft.Gaxios}});var q3r=T1e();Object.defineProperty(nc,"GaxiosError",{enumerable:!0,get:function(){return q3r.GaxiosError}});N3r(q1e(),nc);nc.instance=new rft.Gaxios;async function L3r(e){return nc.instance.request(e)}});var $1e=b((nft,U$)=>{(function(e){"use strict";var t,r=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,n=Math.ceil,i=Math.floor,a="[BigNumber Error] ",s=a+"Number primitive has more than 15 significant digits: ",o=1e14,c=14,p=9007199254740991,f=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],d=1e7,h=1e9;function g(H){var F,z,P,M=V.prototype={constructor:V,toString:null,valueOf:null},K=new V(1),L=20,ve=4,U=-7,N=21,re=-1e7,ue=1e7,Q=!1,ne=1,G=0,de={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xA0",suffix:""},xe="0123456789abcdefghijklmnopqrstuvwxyz",ge=!0;function V(S,I){var B,se,ae,me,Se,Ee,De,Le,Ne=this;if(!(Ne instanceof V))return new V(S,I);if(I==null){if(S&&S._isBigNumber===!0){Ne.s=S.s,!S.c||S.e>ue?Ne.c=Ne.e=null:S.e<re?Ne.c=[Ne.e=0]:(Ne.e=S.e,Ne.c=S.c.slice());return}if((Ee=typeof S=="number")&&S*0==0){if(Ne.s=1/S<0?(S=-S,-1):1,S===~~S){for(me=0,Se=S;Se>=10;Se/=10,me++);me>ue?Ne.c=Ne.e=null:(Ne.e=me,Ne.c=[S]);return}Le=String(S)}else{if(!r.test(Le=String(S)))return P(Ne,Le,Ee);Ne.s=Le.charCodeAt(0)==45?(Le=Le.slice(1),-1):1}(me=Le.indexOf("."))>-1&&(Le=Le.replace(".","")),(Se=Le.search(/e/i))>0?(me<0&&(me=Se),me+=+Le.slice(Se+1),Le=Le.substring(0,Se)):me<0&&(me=Le.length)}else{if(x(I,2,xe.length,"Base"),I==10&&ge)return Ne=new V(S),$(Ne,L+Ne.e+1,ve);if(Le=String(S),Ee=typeof S=="number"){if(S*0!=0)return P(Ne,Le,Ee,I);if(Ne.s=1/S<0?(Le=Le.slice(1),-1):1,V.DEBUG&&Le.replace(/^0\.0*|\./,"").length>15)throw Error(s+S)}else Ne.s=Le.charCodeAt(0)===45?(Le=Le.slice(1),-1):1;for(B=xe.slice(0,I),me=Se=0,De=Le.length;Se<De;Se++)if(B.indexOf(se=Le.charAt(Se))<0){if(se=="."){if(Se>me){me=De;continue}}else if(!ae&&(Le==Le.toUpperCase()&&(Le=Le.toLowerCase())||Le==Le.toLowerCase()&&(Le=Le.toUpperCase()))){ae=!0,Se=-1,me=0;continue}return P(Ne,String(S),Ee,I)}Ee=!1,Le=z(Le,I,10,Ne.s),(me=Le.indexOf("."))>-1?Le=Le.replace(".",""):me=Le.length}for(Se=0;Le.charCodeAt(Se)===48;Se++);for(De=Le.length;Le.charCodeAt(--De)===48;);if(Le=Le.slice(Se,++De)){if(De-=Se,Ee&&V.DEBUG&&De>15&&(S>p||S!==i(S)))throw Error(s+Ne.s*S);if((me=me-Se-1)>ue)Ne.c=Ne.e=null;else if(me<re)Ne.c=[Ne.e=0];else{if(Ne.e=me,Ne.c=[],Se=(me+1)%c,me<0&&(Se+=c),Se<De){for(Se&&Ne.c.push(+Le.slice(0,Se)),De-=c;Se<De;)Ne.c.push(+Le.slice(Se,Se+=c));Se=c-(Le=Le.slice(Se)).length}else Se-=De;for(;Se--;Le+="0");Ne.c.push(+Le)}}else Ne.c=[Ne.e=0]}V.clone=g,V.ROUND_UP=0,V.ROUND_DOWN=1,V.ROUND_CEIL=2,V.ROUND_FLOOR=3,V.ROUND_HALF_UP=4,V.ROUND_HALF_DOWN=5,V.ROUND_HALF_EVEN=6,V.ROUND_HALF_CEIL=7,V.ROUND_HALF_FLOOR=8,V.EUCLID=9,V.config=V.set=function(S){var I,B;if(S!=null)if(typeof S=="object"){if(S.hasOwnProperty(I="DECIMAL_PLACES")&&(B=S[I],x(B,0,h,I),L=B),S.hasOwnProperty(I="ROUNDING_MODE")&&(B=S[I],x(B,0,8,I),ve=B),S.hasOwnProperty(I="EXPONENTIAL_AT")&&(B=S[I],B&&B.pop?(x(B[0],-h,0,I),x(B[1],0,h,I),U=B[0],N=B[1]):(x(B,-h,h,I),U=-(N=B<0?-B:B))),S.hasOwnProperty(I="RANGE"))if(B=S[I],B&&B.pop)x(B[0],-h,-1,I),x(B[1],1,h,I),re=B[0],ue=B[1];else if(x(B,-h,h,I),B)re=-(ue=B<0?-B:B);else throw Error(a+I+" cannot be zero: "+B);if(S.hasOwnProperty(I="CRYPTO"))if(B=S[I],B===!!B)if(B)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))Q=B;else throw Q=!B,Error(a+"crypto unavailable");else Q=B;else throw Error(a+I+" not true or false: "+B);if(S.hasOwnProperty(I="MODULO_MODE")&&(B=S[I],x(B,0,9,I),ne=B),S.hasOwnProperty(I="POW_PRECISION")&&(B=S[I],x(B,0,h,I),G=B),S.hasOwnProperty(I="FORMAT"))if(B=S[I],typeof B=="object")de=B;else throw Error(a+I+" not an object: "+B);if(S.hasOwnProperty(I="ALPHABET"))if(B=S[I],typeof B=="string"&&!/^.?$|[+\-.\s]|(.).*\1/.test(B))ge=B.slice(0,10)=="0123456789",xe=B;else throw Error(a+I+" invalid: "+B)}else throw Error(a+"Object expected: "+S);return{DECIMAL_PLACES:L,ROUNDING_MODE:ve,EXPONENTIAL_AT:[U,N],RANGE:[re,ue],CRYPTO:Q,MODULO_MODE:ne,POW_PRECISION:G,FORMAT:de,ALPHABET:xe}},V.isBigNumber=function(S){if(!S||S._isBigNumber!==!0)return!1;if(!V.DEBUG)return!0;var I,B,se=S.c,ae=S.e,me=S.s;e:if({}.toString.call(se)=="[object Array]"){if((me===1||me===-1)&&ae>=-h&&ae<=h&&ae===i(ae)){if(se[0]===0){if(ae===0&&se.length===1)return!0;break e}if(I=(ae+1)%c,I<1&&(I+=c),String(se[0]).length==I){for(I=0;I<se.length;I++)if(B=se[I],B<0||B>=o||B!==i(B))break e;if(B!==0)return!0}}}else if(se===null&&ae===null&&(me===null||me===1||me===-1))return!0;throw Error(a+"Invalid BigNumber: "+S)},V.maximum=V.max=function(){return ye(arguments,-1)},V.minimum=V.min=function(){return ye(arguments,1)},V.random=function(){var S=9007199254740992,I=Math.random()*S&2097151?function(){return i(Math.random()*S)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(B){var se,ae,me,Se,Ee,De=0,Le=[],Ne=new V(K);if(B==null?B=L:x(B,0,h),Se=n(B/c),Q)if(crypto.getRandomValues){for(se=crypto.getRandomValues(new Uint32Array(Se*=2));De<Se;)Ee=se[De]*131072+(se[De+1]>>>11),Ee>=9e15?(ae=crypto.getRandomValues(new Uint32Array(2)),se[De]=ae[0],se[De+1]=ae[1]):(Le.push(Ee%1e14),De+=2);De=Se/2}else if(crypto.randomBytes){for(se=crypto.randomBytes(Se*=7);De<Se;)Ee=(se[De]&31)*281474976710656+se[De+1]*1099511627776+se[De+2]*4294967296+se[De+3]*16777216+(se[De+4]<<16)+(se[De+5]<<8)+se[De+6],Ee>=9e15?crypto.randomBytes(7).copy(se,De):(Le.push(Ee%1e14),De+=7);De=Se/7}else throw Q=!1,Error(a+"crypto unavailable");if(!Q)for(;De<Se;)Ee=I(),Ee<9e15&&(Le[De++]=Ee%1e14);for(Se=Le[--De],B%=c,Se&&B&&(Ee=f[c-B],Le[De]=i(Se/Ee)*Ee);Le[De]===0;Le.pop(),De--);if(De<0)Le=[me=0];else{for(me=-1;Le[0]===0;Le.splice(0,1),me-=c);for(De=1,Ee=Le[0];Ee>=10;Ee/=10,De++);De<c&&(me-=c-De)}return Ne.e=me,Ne.c=Le,Ne}}(),V.sum=function(){for(var S=1,I=arguments,B=new V(I[0]);S<I.length;)B=B.plus(I[S++]);return B},z=function(){var S="0123456789";function I(B,se,ae,me){for(var Se,Ee=[0],De,Le=0,Ne=B.length;Le<Ne;){for(De=Ee.length;De--;Ee[De]*=se);for(Ee[0]+=me.indexOf(B.charAt(Le++)),Se=0;Se<Ee.length;Se++)Ee[Se]>ae-1&&(Ee[Se+1]==null&&(Ee[Se+1]=0),Ee[Se+1]+=Ee[Se]/ae|0,Ee[Se]%=ae)}return Ee.reverse()}return function(B,se,ae,me,Se){var Ee,De,Le,Ne,Ve,kt,Ft,rr,Or=B.indexOf("."),kr=L,dr=ve;for(Or>=0&&(Ne=G,G=0,B=B.replace(".",""),rr=new V(se),kt=rr.pow(B.length-Or),G=Ne,rr.c=I(j(y(kt.c),kt.e,"0"),10,ae,S),rr.e=rr.c.length),Ft=I(B,se,ae,Se?(Ee=xe,S):(Ee=S,xe)),Le=Ne=Ft.length;Ft[--Ne]==0;Ft.pop());if(!Ft[0])return Ee.charAt(0);if(Or<0?--Le:(kt.c=Ft,kt.e=Le,kt.s=me,kt=F(kt,rr,kr,dr,ae),Ft=kt.c,Ve=kt.r,Le=kt.e),De=Le+kr+1,Or=Ft[De],Ne=ae/2,Ve=Ve||De<0||Ft[De+1]!=null,Ve=dr<4?(Or!=null||Ve)&&(dr==0||dr==(kt.s<0?3:2)):Or>Ne||Or==Ne&&(dr==4||Ve||dr==6&&Ft[De-1]&1||dr==(kt.s<0?8:7)),De<1||!Ft[0])B=Ve?j(Ee.charAt(1),-kr,Ee.charAt(0)):Ee.charAt(0);else{if(Ft.length=De,Ve)for(--ae;++Ft[--De]>ae;)Ft[De]=0,De||(++Le,Ft=[1].concat(Ft));for(Ne=Ft.length;!Ft[--Ne];);for(Or=0,B="";Or<=Ne;B+=Ee.charAt(Ft[Or++]));B=j(B,Le,Ee.charAt(0))}return B}}(),F=function(){function S(se,ae,me){var Se,Ee,De,Le,Ne=0,Ve=se.length,kt=ae%d,Ft=ae/d|0;for(se=se.slice();Ve--;)De=se[Ve]%d,Le=se[Ve]/d|0,Se=Ft*De+Le*kt,Ee=kt*De+Se%d*d+Ne,Ne=(Ee/me|0)+(Se/d|0)+Ft*Le,se[Ve]=Ee%me;return Ne&&(se=[Ne].concat(se)),se}function I(se,ae,me,Se){var Ee,De;if(me!=Se)De=me>Se?1:-1;else for(Ee=De=0;Ee<me;Ee++)if(se[Ee]!=ae[Ee]){De=se[Ee]>ae[Ee]?1:-1;break}return De}function B(se,ae,me,Se){for(var Ee=0;me--;)se[me]-=Ee,Ee=se[me]<ae[me]?1:0,se[me]=Ee*Se+se[me]-ae[me];for(;!se[0]&&se.length>1;se.splice(0,1));}return function(se,ae,me,Se,Ee){var De,Le,Ne,Ve,kt,Ft,rr,Or,kr,dr,$t,$e,Ue,ct,ut,Dt,Zt,hr=se.s==ae.s?1:-1,Bt=se.c,pr=ae.c;if(!Bt||!Bt[0]||!pr||!pr[0])return new V(!se.s||!ae.s||(Bt?pr&&Bt[0]==pr[0]:!pr)?NaN:Bt&&Bt[0]==0||!pr?hr*0:hr/0);for(Or=new V(hr),kr=Or.c=[],Le=se.e-ae.e,hr=me+Le+1,Ee||(Ee=o,Le=v(se.e/c)-v(ae.e/c),hr=hr/c|0),Ne=0;pr[Ne]==(Bt[Ne]||0);Ne++);if(pr[Ne]>(Bt[Ne]||0)&&Le--,hr<0)kr.push(1),Ve=!0;else{for(ct=Bt.length,Dt=pr.length,Ne=0,hr+=2,kt=i(Ee/(pr[0]+1)),kt>1&&(pr=S(pr,kt,Ee),Bt=S(Bt,kt,Ee),Dt=pr.length,ct=Bt.length),Ue=Dt,dr=Bt.slice(0,Dt),$t=dr.length;$t<Dt;dr[$t++]=0);Zt=pr.slice(),Zt=[0].concat(Zt),ut=pr[0],pr[1]>=Ee/2&&ut++;do{if(kt=0,De=I(pr,dr,Dt,$t),De<0){if($e=dr[0],Dt!=$t&&($e=$e*Ee+(dr[1]||0)),kt=i($e/ut),kt>1)for(kt>=Ee&&(kt=Ee-1),Ft=S(pr,kt,Ee),rr=Ft.length,$t=dr.length;I(Ft,dr,rr,$t)==1;)kt--,B(Ft,Dt<rr?Zt:pr,rr,Ee),rr=Ft.length,De=1;else kt==0&&(De=kt=1),Ft=pr.slice(),rr=Ft.length;if(rr<$t&&(Ft=[0].concat(Ft)),B(dr,Ft,$t,Ee),$t=dr.length,De==-1)for(;I(pr,dr,Dt,$t)<1;)kt++,B(dr,Dt<$t?Zt:pr,$t,Ee),$t=dr.length}else De===0&&(kt++,dr=[0]);kr[Ne++]=kt,dr[0]?dr[$t++]=Bt[Ue]||0:(dr=[Bt[Ue]],$t=1)}while((Ue++<ct||dr[0]!=null)&&hr--);Ve=dr[0]!=null,kr[0]||kr.splice(0,1)}if(Ee==o){for(Ne=1,hr=kr[0];hr>=10;hr/=10,Ne++);$(Or,me+(Or.e=Ne+Le*c-1)+1,Se,Ve)}else Or.e=Le,Or.r=+Ve;return Or}}();function ce(S,I,B,se){var ae,me,Se,Ee,De;if(B==null?B=ve:x(B,0,8),!S.c)return S.toString();if(ae=S.c[0],Se=S.e,I==null)De=y(S.c),De=se==1||se==2&&(Se<=U||Se>=N)?D(De,Se):j(De,Se,"0");else if(S=$(new V(S),I,B),me=S.e,De=y(S.c),Ee=De.length,se==1||se==2&&(I<=me||me<=U)){for(;Ee<I;De+="0",Ee++);De=D(De,me)}else if(I-=Se,De=j(De,me,"0"),me+1>Ee){if(--I>0)for(De+=".";I--;De+="0");}else if(I+=me-Ee,I>0)for(me+1==Ee&&(De+=".");I--;De+="0");return S.s<0&&ae?"-"+De:De}function ye(S,I){for(var B,se,ae=1,me=new V(S[0]);ae<S.length;ae++)se=new V(S[ae]),(!se.s||(B=_(me,se))===I||B===0&&me.s===I)&&(me=se);return me}function R(S,I,B){for(var se=1,ae=I.length;!I[--ae];I.pop());for(ae=I[0];ae>=10;ae/=10,se++);return(B=se+B*c-1)>ue?S.c=S.e=null:B<re?S.c=[S.e=0]:(S.e=B,S.c=I),S}P=function(){var S=/^(-?)0([xbo])(?=\w[\w.]*$)/i,I=/^([^.]+)\.$/,B=/^\.([^.]+)$/,se=/^-?(Infinity|NaN)$/,ae=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(me,Se,Ee,De){var Le,Ne=Ee?Se:Se.replace(ae,"");if(se.test(Ne))me.s=isNaN(Ne)?null:Ne<0?-1:1;else{if(!Ee&&(Ne=Ne.replace(S,function(Ve,kt,Ft){return Le=(Ft=Ft.toLowerCase())=="x"?16:Ft=="b"?2:8,!De||De==Le?kt:Ve}),De&&(Le=De,Ne=Ne.replace(I,"$1").replace(B,"0.$1")),Se!=Ne))return new V(Ne,Le);if(V.DEBUG)throw Error(a+"Not a"+(De?" base "+De:"")+" number: "+Se);me.s=null}me.c=me.e=null}}();function $(S,I,B,se){var ae,me,Se,Ee,De,Le,Ne,Ve=S.c,kt=f;if(Ve){e:{for(ae=1,Ee=Ve[0];Ee>=10;Ee/=10,ae++);if(me=I-ae,me<0)me+=c,Se=I,De=Ve[Le=0],Ne=i(De/kt[ae-Se-1]%10);else if(Le=n((me+1)/c),Le>=Ve.length)if(se){for(;Ve.length<=Le;Ve.push(0));De=Ne=0,ae=1,me%=c,Se=me-c+1}else break e;else{for(De=Ee=Ve[Le],ae=1;Ee>=10;Ee/=10,ae++);me%=c,Se=me-c+ae,Ne=Se<0?0:i(De/kt[ae-Se-1]%10)}if(se=se||I<0||Ve[Le+1]!=null||(Se<0?De:De%kt[ae-Se-1]),se=B<4?(Ne||se)&&(B==0||B==(S.s<0?3:2)):Ne>5||Ne==5&&(B==4||se||B==6&&(me>0?Se>0?De/kt[ae-Se]:0:Ve[Le-1])%10&1||B==(S.s<0?8:7)),I<1||!Ve[0])return Ve.length=0,se?(I-=S.e+1,Ve[0]=kt[(c-I%c)%c],S.e=-I||0):Ve[0]=S.e=0,S;if(me==0?(Ve.length=Le,Ee=1,Le--):(Ve.length=Le+1,Ee=kt[c-me],Ve[Le]=Se>0?i(De/kt[ae-Se]%kt[Se])*Ee:0),se)for(;;)if(Le==0){for(me=1,Se=Ve[0];Se>=10;Se/=10,me++);for(Se=Ve[0]+=Ee,Ee=1;Se>=10;Se/=10,Ee++);me!=Ee&&(S.e++,Ve[0]==o&&(Ve[0]=1));break}else{if(Ve[Le]+=Ee,Ve[Le]!=o)break;Ve[Le--]=0,Ee=1}for(me=Ve.length;Ve[--me]===0;Ve.pop());}S.e>ue?S.c=S.e=null:S.e<re&&(S.c=[S.e=0])}return S}function ke(S){var I,B=S.e;return B===null?S.toString():(I=y(S.c),I=B<=U||B>=N?D(I,B):j(I,B,"0"),S.s<0?"-"+I:I)}return M.absoluteValue=M.abs=function(){var S=new V(this);return S.s<0&&(S.s=1),S},M.comparedTo=function(S,I){return _(this,new V(S,I))},M.decimalPlaces=M.dp=function(S,I){var B,se,ae,me=this;if(S!=null)return x(S,0,h),I==null?I=ve:x(I,0,8),$(new V(me),S+me.e+1,I);if(!(B=me.c))return null;if(se=((ae=B.length-1)-v(this.e/c))*c,ae=B[ae])for(;ae%10==0;ae/=10,se--);return se<0&&(se=0),se},M.dividedBy=M.div=function(S,I){return F(this,new V(S,I),L,ve)},M.dividedToIntegerBy=M.idiv=function(S,I){return F(this,new V(S,I),0,1)},M.exponentiatedBy=M.pow=function(S,I){var B,se,ae,me,Se,Ee,De,Le,Ne,Ve=this;if(S=new V(S),S.c&&!S.isInteger())throw Error(a+"Exponent not an integer: "+ke(S));if(I!=null&&(I=new V(I)),Ee=S.e>14,!Ve.c||!Ve.c[0]||Ve.c[0]==1&&!Ve.e&&Ve.c.length==1||!S.c||!S.c[0])return Ne=new V(Math.pow(+ke(Ve),Ee?S.s*(2-A(S)):+ke(S))),I?Ne.mod(I):Ne;if(De=S.s<0,I){if(I.c?!I.c[0]:!I.s)return new V(NaN);se=!De&&Ve.isInteger()&&I.isInteger(),se&&(Ve=Ve.mod(I))}else{if(S.e>9&&(Ve.e>0||Ve.e<-1||(Ve.e==0?Ve.c[0]>1||Ee&&Ve.c[1]>=24e7:Ve.c[0]<8e13||Ee&&Ve.c[0]<=9999975e7)))return me=Ve.s<0&&A(S)?-0:0,Ve.e>-1&&(me=1/me),new V(De?1/me:me);G&&(me=n(G/c+2))}for(Ee?(B=new V(.5),De&&(S.s=1),Le=A(S)):(ae=Math.abs(+ke(S)),Le=ae%2),Ne=new V(K);;){if(Le){if(Ne=Ne.times(Ve),!Ne.c)break;me?Ne.c.length>me&&(Ne.c.length=me):se&&(Ne=Ne.mod(I))}if(ae){if(ae=i(ae/2),ae===0)break;Le=ae%2}else if(S=S.times(B),$(S,S.e+1,1),S.e>14)Le=A(S);else{if(ae=+ke(S),ae===0)break;Le=ae%2}Ve=Ve.times(Ve),me?Ve.c&&Ve.c.length>me&&(Ve.c.length=me):se&&(Ve=Ve.mod(I))}return se?Ne:(De&&(Ne=K.div(Ne)),I?Ne.mod(I):me?$(Ne,G,ve,Se):Ne)},M.integerValue=function(S){var I=new V(this);return S==null?S=ve:x(S,0,8),$(I,I.e+1,S)},M.isEqualTo=M.eq=function(S,I){return _(this,new V(S,I))===0},M.isFinite=function(){return!!this.c},M.isGreaterThan=M.gt=function(S,I){return _(this,new V(S,I))>0},M.isGreaterThanOrEqualTo=M.gte=function(S,I){return(I=_(this,new V(S,I)))===1||I===0},M.isInteger=function(){return!!this.c&&v(this.e/c)>this.c.length-2},M.isLessThan=M.lt=function(S,I){return _(this,new V(S,I))<0},M.isLessThanOrEqualTo=M.lte=function(S,I){return(I=_(this,new V(S,I)))===-1||I===0},M.isNaN=function(){return!this.s},M.isNegative=function(){return this.s<0},M.isPositive=function(){return this.s>0},M.isZero=function(){return!!this.c&&this.c[0]==0},M.minus=function(S,I){var B,se,ae,me,Se=this,Ee=Se.s;if(S=new V(S,I),I=S.s,!Ee||!I)return new V(NaN);if(Ee!=I)return S.s=-I,Se.plus(S);var De=Se.e/c,Le=S.e/c,Ne=Se.c,Ve=S.c;if(!De||!Le){if(!Ne||!Ve)return Ne?(S.s=-I,S):new V(Ve?Se:NaN);if(!Ne[0]||!Ve[0])return Ve[0]?(S.s=-I,S):new V(Ne[0]?Se:ve==3?-0:0)}if(De=v(De),Le=v(Le),Ne=Ne.slice(),Ee=De-Le){for((me=Ee<0)?(Ee=-Ee,ae=Ne):(Le=De,ae=Ve),ae.reverse(),I=Ee;I--;ae.push(0));ae.reverse()}else for(se=(me=(Ee=Ne.length)<(I=Ve.length))?Ee:I,Ee=I=0;I<se;I++)if(Ne[I]!=Ve[I]){me=Ne[I]<Ve[I];break}if(me&&(ae=Ne,Ne=Ve,Ve=ae,S.s=-S.s),I=(se=Ve.length)-(B=Ne.length),I>0)for(;I--;Ne[B++]=0);for(I=o-1;se>Ee;){if(Ne[--se]<Ve[se]){for(B=se;B&&!Ne[--B];Ne[B]=I);--Ne[B],Ne[se]+=o}Ne[se]-=Ve[se]}for(;Ne[0]==0;Ne.splice(0,1),--Le);return Ne[0]?R(S,Ne,Le):(S.s=ve==3?-1:1,S.c=[S.e=0],S)},M.modulo=M.mod=function(S,I){var B,se,ae=this;return S=new V(S,I),!ae.c||!S.s||S.c&&!S.c[0]?new V(NaN):!S.c||ae.c&&!ae.c[0]?new V(ae):(ne==9?(se=S.s,S.s=1,B=F(ae,S,0,3),S.s=se,B.s*=se):B=F(ae,S,0,ne),S=ae.minus(B.times(S)),!S.c[0]&&ne==1&&(S.s=ae.s),S)},M.multipliedBy=M.times=function(S,I){var B,se,ae,me,Se,Ee,De,Le,Ne,Ve,kt,Ft,rr,Or,kr,dr=this,$t=dr.c,$e=(S=new V(S,I)).c;if(!$t||!$e||!$t[0]||!$e[0])return!dr.s||!S.s||$t&&!$t[0]&&!$e||$e&&!$e[0]&&!$t?S.c=S.e=S.s=null:(S.s*=dr.s,!$t||!$e?S.c=S.e=null:(S.c=[0],S.e=0)),S;for(se=v(dr.e/c)+v(S.e/c),S.s*=dr.s,De=$t.length,Ve=$e.length,De<Ve&&(rr=$t,$t=$e,$e=rr,ae=De,De=Ve,Ve=ae),ae=De+Ve,rr=[];ae--;rr.push(0));for(Or=o,kr=d,ae=Ve;--ae>=0;){for(B=0,kt=$e[ae]%kr,Ft=$e[ae]/kr|0,Se=De,me=ae+Se;me>ae;)Le=$t[--Se]%kr,Ne=$t[Se]/kr|0,Ee=Ft*Le+Ne*kt,Le=kt*Le+Ee%kr*kr+rr[me]+B,B=(Le/Or|0)+(Ee/kr|0)+Ft*Ne,rr[me--]=Le%Or;rr[me]=B}return B?++se:rr.splice(0,1),R(S,rr,se)},M.negated=function(){var S=new V(this);return S.s=-S.s||null,S},M.plus=function(S,I){var B,se=this,ae=se.s;if(S=new V(S,I),I=S.s,!ae||!I)return new V(NaN);if(ae!=I)return S.s=-I,se.minus(S);var me=se.e/c,Se=S.e/c,Ee=se.c,De=S.c;if(!me||!Se){if(!Ee||!De)return new V(ae/0);if(!Ee[0]||!De[0])return De[0]?S:new V(Ee[0]?se:ae*0)}if(me=v(me),Se=v(Se),Ee=Ee.slice(),ae=me-Se){for(ae>0?(Se=me,B=De):(ae=-ae,B=Ee),B.reverse();ae--;B.push(0));B.reverse()}for(ae=Ee.length,I=De.length,ae-I<0&&(B=De,De=Ee,Ee=B,I=ae),ae=0;I;)ae=(Ee[--I]=Ee[I]+De[I]+ae)/o|0,Ee[I]=o===Ee[I]?0:Ee[I]%o;return ae&&(Ee=[ae].concat(Ee),++Se),R(S,Ee,Se)},M.precision=M.sd=function(S,I){var B,se,ae,me=this;if(S!=null&&S!==!!S)return x(S,1,h),I==null?I=ve:x(I,0,8),$(new V(me),S,I);if(!(B=me.c))return null;if(ae=B.length-1,se=ae*c+1,ae=B[ae]){for(;ae%10==0;ae/=10,se--);for(ae=B[0];ae>=10;ae/=10,se++);}return S&&me.e+1>se&&(se=me.e+1),se},M.shiftedBy=function(S){return x(S,-p,p),this.times("1e"+S)},M.squareRoot=M.sqrt=function(){var S,I,B,se,ae,me=this,Se=me.c,Ee=me.s,De=me.e,Le=L+4,Ne=new V("0.5");if(Ee!==1||!Se||!Se[0])return new V(!Ee||Ee<0&&(!Se||Se[0])?NaN:Se?me:1/0);if(Ee=Math.sqrt(+ke(me)),Ee==0||Ee==1/0?(I=y(Se),(I.length+De)%2==0&&(I+="0"),Ee=Math.sqrt(+I),De=v((De+1)/2)-(De<0||De%2),Ee==1/0?I="5e"+De:(I=Ee.toExponential(),I=I.slice(0,I.indexOf("e")+1)+De),B=new V(I)):B=new V(Ee+""),B.c[0]){for(De=B.e,Ee=De+Le,Ee<3&&(Ee=0);;)if(ae=B,B=Ne.times(ae.plus(F(me,ae,Le,1))),y(ae.c).slice(0,Ee)===(I=y(B.c)).slice(0,Ee))if(B.e<De&&--Ee,I=I.slice(Ee-3,Ee+1),I=="9999"||!se&&I=="4999"){if(!se&&($(ae,ae.e+L+2,0),ae.times(ae).eq(me))){B=ae;break}Le+=4,Ee+=4,se=1}else{(!+I||!+I.slice(1)&&I.charAt(0)=="5")&&($(B,B.e+L+2,1),S=!B.times(B).eq(me));break}}return $(B,B.e+L+1,ve,S)},M.toExponential=function(S,I){return S!=null&&(x(S,0,h),S++),ce(this,S,I,1)},M.toFixed=function(S,I){return S!=null&&(x(S,0,h),S=S+this.e+1),ce(this,S,I)},M.toFormat=function(S,I,B){var se,ae=this;if(B==null)S!=null&&I&&typeof I=="object"?(B=I,I=null):S&&typeof S=="object"?(B=S,S=I=null):B=de;else if(typeof B!="object")throw Error(a+"Argument not an object: "+B);if(se=ae.toFixed(S,I),ae.c){var me,Se=se.split("."),Ee=+B.groupSize,De=+B.secondaryGroupSize,Le=B.groupSeparator||"",Ne=Se[0],Ve=Se[1],kt=ae.s<0,Ft=kt?Ne.slice(1):Ne,rr=Ft.length;if(De&&(me=Ee,Ee=De,De=me,rr-=me),Ee>0&&rr>0){for(me=rr%Ee||Ee,Ne=Ft.substr(0,me);me<rr;me+=Ee)Ne+=Le+Ft.substr(me,Ee);De>0&&(Ne+=Le+Ft.slice(me)),kt&&(Ne="-"+Ne)}se=Ve?Ne+(B.decimalSeparator||"")+((De=+B.fractionGroupSize)?Ve.replace(new RegExp("\\d{"+De+"}\\B","g"),"$&"+(B.fractionGroupSeparator||"")):Ve):Ne}return(B.prefix||"")+se+(B.suffix||"")},M.toFraction=function(S){var I,B,se,ae,me,Se,Ee,De,Le,Ne,Ve,kt,Ft=this,rr=Ft.c;if(S!=null&&(Ee=new V(S),!Ee.isInteger()&&(Ee.c||Ee.s!==1)||Ee.lt(K)))throw Error(a+"Argument "+(Ee.isInteger()?"out of range: ":"not an integer: ")+ke(Ee));if(!rr)return new V(Ft);for(I=new V(K),Le=B=new V(K),se=De=new V(K),kt=y(rr),me=I.e=kt.length-Ft.e-1,I.c[0]=f[(Se=me%c)<0?c+Se:Se],S=!S||Ee.comparedTo(I)>0?me>0?I:Le:Ee,Se=ue,ue=1/0,Ee=new V(kt),De.c[0]=0;Ne=F(Ee,I,0,1),ae=B.plus(Ne.times(se)),ae.comparedTo(S)!=1;)B=se,se=ae,Le=De.plus(Ne.times(ae=Le)),De=ae,I=Ee.minus(Ne.times(ae=I)),Ee=ae;return ae=F(S.minus(B),se,0,1),De=De.plus(ae.times(Le)),B=B.plus(ae.times(se)),De.s=Le.s=Ft.s,me=me*2,Ve=F(Le,se,me,ve).minus(Ft).abs().comparedTo(F(De,B,me,ve).minus(Ft).abs())<1?[Le,se]:[De,B],ue=Se,Ve},M.toNumber=function(){return+ke(this)},M.toPrecision=function(S,I){return S!=null&&x(S,1,h),ce(this,S,I,2)},M.toString=function(S){var I,B=this,se=B.s,ae=B.e;return ae===null?se?(I="Infinity",se<0&&(I="-"+I)):I="NaN":(S==null?I=ae<=U||ae>=N?D(y(B.c),ae):j(y(B.c),ae,"0"):S===10&&ge?(B=$(new V(B),L+ae+1,ve),I=j(y(B.c),B.e,"0")):(x(S,2,xe.length,"Base"),I=z(j(y(B.c),ae,"0"),10,S,se,!0)),se<0&&B.c[0]&&(I="-"+I)),I},M.valueOf=M.toJSON=function(){return ke(this)},M._isBigNumber=!0,H!=null&&V.set(H),V}function v(H){var F=H|0;return H>0||H===F?F:F-1}function y(H){for(var F,z,P=1,M=H.length,K=H[0]+"";P<M;){for(F=H[P++]+"",z=c-F.length;z--;F="0"+F);K+=F}for(M=K.length;K.charCodeAt(--M)===48;);return K.slice(0,M+1||1)}function _(H,F){var z,P,M=H.c,K=F.c,L=H.s,ve=F.s,U=H.e,N=F.e;if(!L||!ve)return null;if(z=M&&!M[0],P=K&&!K[0],z||P)return z?P?0:-ve:L;if(L!=ve)return L;if(z=L<0,P=U==N,!M||!K)return P?0:!M^z?1:-1;if(!P)return U>N^z?1:-1;for(ve=(U=M.length)<(N=K.length)?U:N,L=0;L<ve;L++)if(M[L]!=K[L])return M[L]>K[L]^z?1:-1;return U==N?0:U>N^z?1:-1}function x(H,F,z,P){if(H<F||H>z||H!==i(H))throw Error(a+(P||"Argument")+(typeof H=="number"?H<F||H>z?" out of range: ":" not an integer: ":" not a primitive number: ")+String(H))}function A(H){var F=H.c.length-1;return v(H.e/c)==F&&H.c[F]%2!=0}function D(H,F){return(H.length>1?H.charAt(0)+"."+H.slice(1):H)+(F<0?"e":"e+")+F}function j(H,F,z){var P,M;if(F<0){for(M=z+".";++F;M+=z);H=M+H}else if(P=H.length,++F>P){for(M=z,F-=P;--F;M+=z);H+=M}else F<P&&(H=H.slice(0,F)+"."+H.slice(F));return H}t=g(),t.default=t.BigNumber=t,typeof define=="function"&&define.amd?define(function(){return t}):typeof U$<"u"&&U$.exports?U$.exports=t:(e||(e=typeof self<"u"&&self?self:window),e.BigNumber=t)})(nft)});var oft=b((xpn,sft)=>{var ift=$1e(),aft=sft.exports;(function(){"use strict";function e(p){return p<10?"0"+p:p}var t=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,r=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,n,i,a={"\b":"\\b","	":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},s;function o(p){return r.lastIndex=0,r.test(p)?'"'+p.replace(r,function(f){var d=a[f];return typeof d=="string"?d:"\\u"+("0000"+f.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+p+'"'}function c(p,f){var d,h,g,v,y=n,_,x=f[p],A=x!=null&&(x instanceof ift||ift.isBigNumber(x));switch(x&&typeof x=="object"&&typeof x.toJSON=="function"&&(x=x.toJSON(p)),typeof s=="function"&&(x=s.call(f,p,x)),typeof x){case"string":return A?x:o(x);case"number":return isFinite(x)?String(x):"null";case"boolean":case"null":case"bigint":return String(x);case"object":if(!x)return"null";if(n+=i,_=[],Object.prototype.toString.apply(x)==="[object Array]"){for(v=x.length,d=0;d<v;d+=1)_[d]=c(d,x)||"null";return g=_.length===0?"[]":n?`[
`+n+_.join(`,
`+n)+`
`+y+"]":"["+_.join(",")+"]",n=y,g}if(s&&typeof s=="object")for(v=s.length,d=0;d<v;d+=1)typeof s[d]=="string"&&(h=s[d],g=c(h,x),g&&_.push(o(h)+(n?": ":":")+g));else Object.keys(x).forEach(function(D){var j=c(D,x);j&&_.push(o(D)+(n?": ":":")+j)});return g=_.length===0?"{}":n?`{
`+n+_.join(`,
`+n)+`
`+y+"}":"{"+_.join(",")+"}",n=y,g}}typeof aft.stringify!="function"&&(aft.stringify=function(p,f,d){var h;if(n="",i="",typeof d=="number")for(h=0;h<d;h+=1)i+=" ";else typeof d=="string"&&(i=d);if(s=f,f&&typeof f!="function"&&(typeof f!="object"||typeof f.length!="number"))throw new Error("JSON.stringify");return c("",{"":p})})})()});var cft=b((Epn,uft)=>{var z$=null,$3r=/(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])/,B3r=/(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)/,M3r=function(e){"use strict";var t={strict:!1,storeAsString:!1,alwaysParseAsBig:!1,useNativeBigInt:!1,protoAction:"error",constructorAction:"error"};if(e!=null){if(e.strict===!0&&(t.strict=!0),e.storeAsString===!0&&(t.storeAsString=!0),t.alwaysParseAsBig=e.alwaysParseAsBig===!0?e.alwaysParseAsBig:!1,t.useNativeBigInt=e.useNativeBigInt===!0?e.useNativeBigInt:!1,typeof e.constructorAction<"u")if(e.constructorAction==="error"||e.constructorAction==="ignore"||e.constructorAction==="preserve")t.constructorAction=e.constructorAction;else throw new Error(`Incorrect value for constructorAction option, must be "error", "ignore" or undefined but passed ${e.constructorAction}`);if(typeof e.protoAction<"u")if(e.protoAction==="error"||e.protoAction==="ignore"||e.protoAction==="preserve")t.protoAction=e.protoAction;else throw new Error(`Incorrect value for protoAction option, must be "error", "ignore" or undefined but passed ${e.protoAction}`)}var r,n,i={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
`,r:"\r",t:"	"},a,s=function(y){throw{name:"SyntaxError",message:y,at:r,text:a}},o=function(y){return y&&y!==n&&s("Expected '"+y+"' instead of '"+n+"'"),n=a.charAt(r),r+=1,n},c=function(){var y,_="";for(n==="-"&&(_="-",o("-"));n>="0"&&n<="9";)_+=n,o();if(n===".")for(_+=".";o()&&n>="0"&&n<="9";)_+=n;if(n==="e"||n==="E")for(_+=n,o(),(n==="-"||n==="+")&&(_+=n,o());n>="0"&&n<="9";)_+=n,o();if(y=+_,!isFinite(y))s("Bad number");else return z$==null&&(z$=$1e()),_.length>15?t.storeAsString?_:t.useNativeBigInt?BigInt(_):new z$(_):t.alwaysParseAsBig?t.useNativeBigInt?BigInt(y):new z$(y):y},p=function(){var y,_,x="",A;if(n==='"')for(var D=r;o();){if(n==='"')return r-1>D&&(x+=a.substring(D,r-1)),o(),x;if(n==="\\"){if(r-1>D&&(x+=a.substring(D,r-1)),o(),n==="u"){for(A=0,_=0;_<4&&(y=parseInt(o(),16),!!isFinite(y));_+=1)A=A*16+y;x+=String.fromCharCode(A)}else if(typeof i[n]=="string")x+=i[n];else break;D=r}}s("Bad string")},f=function(){for(;n&&n<=" ";)o()},d=function(){switch(n){case"t":return o("t"),o("r"),o("u"),o("e"),!0;case"f":return o("f"),o("a"),o("l"),o("s"),o("e"),!1;case"n":return o("n"),o("u"),o("l"),o("l"),null}s("Unexpected '"+n+"'")},h,g=function(){var y=[];if(n==="["){if(o("["),f(),n==="]")return o("]"),y;for(;n;){if(y.push(h()),f(),n==="]")return o("]"),y;o(","),f()}}s("Bad array")},v=function(){var y,_=Object.create(null);if(n==="{"){if(o("{"),f(),n==="}")return o("}"),_;for(;n;){if(y=p(),f(),o(":"),t.strict===!0&&Object.hasOwnProperty.call(_,y)&&s('Duplicate key "'+y+'"'),$3r.test(y)===!0?t.protoAction==="error"?s("Object contains forbidden prototype property"):t.protoAction==="ignore"?h():_[y]=h():B3r.test(y)===!0?t.constructorAction==="error"?s("Object contains forbidden constructor property"):t.constructorAction==="ignore"?h():_[y]=h():_[y]=h(),f(),n==="}")return o("}"),_;o(","),f()}}s("Bad object")};return h=function(){switch(f(),n){case"{":return v();case"[":return g();case'"':return p();case"-":return c();default:return n>="0"&&n<="9"?c():d()}},function(y,_){var x;return a=y+"",r=0,n=" ",x=h(),f(),n&&s("Syntax error"),typeof _=="function"?function A(D,j){var H,F,z=D[j];return z&&typeof z=="object"&&Object.keys(z).forEach(function(P){F=A(z,P),F!==void 0?z[P]=F:delete z[P]}),_.call(D,j,z)}({"":x},""):x}};uft.exports=M3r});var fft=b((Spn,H$)=>{var lft=oft().stringify,pft=cft();H$.exports=function(e){return{parse:pft(e),stringify:lft}};H$.exports.parse=pft();H$.exports.stringify=lft});var B1e=b(td=>{"use strict";Object.defineProperty(td,"__esModule",{value:!0});td.GCE_LINUX_BIOS_PATHS=void 0;td.isGoogleCloudServerless=mft;td.isGoogleComputeEngineLinux=gft;td.isGoogleComputeEngineMACAddress=vft;td.isGoogleComputeEngine=yft;td.detectGCPResidency=z3r;var dft=require("fs"),hft=require("os");td.GCE_LINUX_BIOS_PATHS={BIOS_DATE:"/sys/class/dmi/id/bios_date",BIOS_VENDOR:"/sys/class/dmi/id/bios_vendor"};var U3r=/^42:01/;function mft(){return!!(process.env.CLOUD_RUN_JOB||process.env.FUNCTION_NAME||process.env.K_SERVICE)}function gft(){if((0,hft.platform)()!=="linux")return!1;try{(0,dft.statSync)(td.GCE_LINUX_BIOS_PATHS.BIOS_DATE);let e=(0,dft.readFileSync)(td.GCE_LINUX_BIOS_PATHS.BIOS_VENDOR,"utf8");return/Google/.test(e)}catch{return!1}}function vft(){let e=(0,hft.networkInterfaces)();for(let t of Object.values(e))if(t){for(let{mac:r}of t)if(U3r.test(r))return!0}return!1}function yft(){return gft()||vft()}function z3r(){return mft()||yft()}});var bft=b(V$=>{"use strict";Object.defineProperty(V$,"__esModule",{value:!0});V$.Colours=void 0;var Su=class e{static isEnabled(t){return t.isTTY&&(typeof t.getColorDepth=="function"?t.getColorDepth()>2:!0)}static refresh(){e.enabled=e.isEnabled(process.stderr),this.enabled?(e.reset="\x1B[0m",e.bright="\x1B[1m",e.dim="\x1B[2m",e.red="\x1B[31m",e.green="\x1B[32m",e.yellow="\x1B[33m",e.blue="\x1B[34m",e.magenta="\x1B[35m",e.cyan="\x1B[36m",e.white="\x1B[37m",e.grey="\x1B[90m"):(e.reset="",e.bright="",e.dim="",e.red="",e.green="",e.yellow="",e.blue="",e.magenta="",e.cyan="",e.white="",e.grey="")}};V$.Colours=Su;Su.enabled=!1;Su.reset="";Su.bright="";Su.dim="";Su.red="";Su.green="";Su.yellow="";Su.blue="";Su.magenta="";Su.cyan="";Su.white="";Su.grey="";Su.refresh()});var Eft=b(Ei=>{"use strict";var H3r=Ei&&Ei.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),V3r=Ei&&Ei.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),wft=Ei&&Ei.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&H3r(t,e,r);return V3r(t,e),t};Object.defineProperty(Ei,"__esModule",{value:!0});Ei.env=Ei.DebugLogBackendBase=Ei.placeholder=Ei.AdhocDebugLogger=Ei.LogSeverity=void 0;Ei.getNodeBackend=M1e;Ei.getDebugBackend=W3r;Ei.getStructuredBackend=K3r;Ei.setBackend=Y3r;Ei.log=xft;var G3r=require("node:events"),kT=wft(require("node:process")),_ft=wft(require("node:util")),Ol=bft(),rd;(function(e){e.DEFAULT="DEFAULT",e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR"})(rd||(Ei.LogSeverity=rd={}));var AT=class extends G3r.EventEmitter{constructor(t,r){super(),this.namespace=t,this.upstream=r,this.func=Object.assign(this.invoke.bind(this),{instance:this,on:(n,i)=>this.on(n,i)}),this.func.debug=(...n)=>this.invokeSeverity(rd.DEBUG,...n),this.func.info=(...n)=>this.invokeSeverity(rd.INFO,...n),this.func.warn=(...n)=>this.invokeSeverity(rd.WARNING,...n),this.func.error=(...n)=>this.invokeSeverity(rd.ERROR,...n),this.func.sublog=n=>xft(n,this.func)}invoke(t,...r){this.upstream&&this.upstream(t,...r),this.emit("log",t,r)}invokeSeverity(t,...r){this.invoke({severity:t},...r)}};Ei.AdhocDebugLogger=AT;Ei.placeholder=new AT("",()=>{}).func;var O8=class{constructor(){var t;this.cached=new Map,this.filters=[],this.filtersSet=!1;let r=(t=kT.env[Ei.env.nodeEnables])!==null&&t!==void 0?t:"*";r==="all"&&(r="*"),this.filters=r.split(",")}log(t,r,...n){try{this.filtersSet||(this.setFilters(),this.filtersSet=!0);let i=this.cached.get(t);i||(i=this.makeLogger(t),this.cached.set(t,i)),i(r,...n)}catch(i){console.error(i)}}};Ei.DebugLogBackendBase=O8;var G$=class extends O8{constructor(){super(...arguments),this.enabledRegexp=/.*/g}isEnabled(t){return this.enabledRegexp.test(t)}makeLogger(t){return this.enabledRegexp.test(t)?(r,...n)=>{var i;let a=`${Ol.Colours.green}${t}${Ol.Colours.reset}`,s=`${Ol.Colours.yellow}${kT.pid}${Ol.Colours.reset}`,o;switch(r.severity){case rd.ERROR:o=`${Ol.Colours.red}${r.severity}${Ol.Colours.reset}`;break;case rd.INFO:o=`${Ol.Colours.magenta}${r.severity}${Ol.Colours.reset}`;break;case rd.WARNING:o=`${Ol.Colours.yellow}${r.severity}${Ol.Colours.reset}`;break;default:o=(i=r.severity)!==null&&i!==void 0?i:rd.DEFAULT;break}let c=_ft.formatWithOptions({colors:Ol.Colours.enabled},...n),p=Object.assign({},r);delete p.severity;let f=Object.getOwnPropertyNames(p).length?JSON.stringify(p):"",d=f?`${Ol.Colours.grey}${f}${Ol.Colours.reset}`:"";console.error("%s [%s|%s] %s%s",s,a,o,c,f?` ${d}`:"")}:()=>{}}setFilters(){let r=this.filters.join(",").replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^");this.enabledRegexp=new RegExp(`^${r}$`,"i")}};function M1e(){return new G$}var U1e=class extends O8{constructor(t){super(),this.debugPkg=t}makeLogger(t){let r=this.debugPkg(t);return(n,...i)=>{r(i[0],...i.slice(1))}}setFilters(){var t;let r=(t=kT.env.NODE_DEBUG)!==null&&t!==void 0?t:"";kT.env.NODE_DEBUG=`${r}${r?",":""}${this.filters.join(",")}`}};function W3r(e){return new U1e(e)}var z1e=class extends O8{constructor(t){var r;super(),this.upstream=(r=t)!==null&&r!==void 0?r:new G$}makeLogger(t){let r=this.upstream.makeLogger(t);return(n,...i)=>{var a;let s=(a=n.severity)!==null&&a!==void 0?a:rd.INFO,o=Object.assign({severity:s,message:_ft.format(...i)},n),c=JSON.stringify(o);r(n,c)}}setFilters(){this.upstream.setFilters()}};function K3r(e){return new z1e(e)}Ei.env={nodeEnables:"GOOGLE_SDK_NODE_LOGGING"};var H1e=new Map,Ip;function Y3r(e){Ip=e,H1e.clear()}function xft(e,t){if(!kT.env[Ei.env.nodeEnables]||!e)return Ei.placeholder;t&&(e=`${t.instance.namespace}:${e}`);let n=H1e.get(e);if(n)return n.func;if(Ip===null)return Ei.placeholder;Ip===void 0&&(Ip=M1e());let i=(()=>{let a;return new AT(e,(o,...c)=>{if(a!==Ip){if(Ip===null)return;Ip===void 0&&(Ip=M1e()),a=Ip}Ip?.log(e,o,...c)})})();return H1e.set(e,i),i.func}});var Sft=b(zw=>{"use strict";var J3r=zw&&zw.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),X3r=zw&&zw.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&J3r(t,e,r)};Object.defineProperty(zw,"__esModule",{value:!0});X3r(Eft(),zw)});var OT=b(Fr=>{"use strict";var Q3r=Fr&&Fr.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Z3r=Fr&&Fr.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Q3r(t,e,r)};Object.defineProperty(Fr,"__esModule",{value:!0});Fr.gcpResidencyCache=Fr.METADATA_SERVER_DETECTION=Fr.HEADERS=Fr.HEADER_VALUE=Fr.HEADER_NAME=Fr.SECONDARY_HOST_ADDRESS=Fr.HOST_ADDRESS=Fr.BASE_PATH=void 0;Fr.instance=a8r;Fr.project=s8r;Fr.universe=o8r;Fr.bulk=u8r;Fr.isAvailable=l8r;Fr.resetIsAvailableCache=p8r;Fr.getGCPResidency=W1e;Fr.setGCPResidency=Aft;Fr.requestTimeout=Tft;var V1e=ed(),e8r=fft(),t8r=B1e(),r8r=Sft();Fr.BASE_PATH="/computeMetadata/v1";Fr.HOST_ADDRESS="http://169.254.169.254";Fr.SECONDARY_HOST_ADDRESS="http://metadata.google.internal.";Fr.HEADER_NAME="Metadata-Flavor";Fr.HEADER_VALUE="Google";Fr.HEADERS=Object.freeze({[Fr.HEADER_NAME]:Fr.HEADER_VALUE});var kft=r8r.log("gcp metadata");Fr.METADATA_SERVER_DETECTION=Object.freeze({"assume-present":"don't try to ping the metadata server, but assume it's present",none:"don't try to ping the metadata server, but don't try to use it either","bios-only":"treat the result of a BIOS probe as canonical (don't fall back to pinging)","ping-only":"skip the BIOS probe, and go straight to pinging"});function G1e(e){return e||(e=process.env.GCE_METADATA_IP||process.env.GCE_METADATA_HOST||Fr.HOST_ADDRESS),/^https?:\/\//.test(e)||(e=`http://${e}`),new URL(Fr.BASE_PATH,e).href}function n8r(e){Object.keys(e).forEach(t=>{switch(t){case"params":case"property":case"headers":break;case"qs":throw new Error("'qs' is not a valid configuration option. Please use 'params' instead.");default:throw new Error(`'${t}' is not a valid configuration option.`)}})}async function TT(e,t={},r=3,n=!1){let i="",a={},s={};if(typeof e=="object"){let f=e;i=f.metadataKey,a=f.params||a,s=f.headers||s,r=f.noResponseRetries||r,n=f.fastFail||n}else i=e;typeof t=="string"?i+=`/${t}`:(n8r(t),t.property&&(i+=`/${t.property}`),s=t.headers||s,a=t.params||a);let o=n?i8r:V1e.request,c={url:`${G1e()}/${i}`,headers:{...Fr.HEADERS,...s},retryConfig:{noResponseRetries:r},params:a,responseType:"text",timeout:Tft()};kft.info("instance request %j",c);let p=await o(c);if(kft.info("instance metadata is %s",p.data),p.headers[Fr.HEADER_NAME.toLowerCase()]!==Fr.HEADER_VALUE)throw new Error(`Invalid response from metadata service: incorrect ${Fr.HEADER_NAME} header. Expected '${Fr.HEADER_VALUE}', got ${p.headers[Fr.HEADER_NAME.toLowerCase()]?`'${p.headers[Fr.HEADER_NAME.toLowerCase()]}'`:"no header"}`);if(typeof p.data=="string")try{return e8r.parse(p.data)}catch{}return p.data}async function i8r(e){var t;let r={...e,url:(t=e.url)===null||t===void 0?void 0:t.toString().replace(G1e(),G1e(Fr.SECONDARY_HOST_ADDRESS))},n=!1,i=(0,V1e.request)(e).then(s=>(n=!0,s)).catch(s=>{if(n)return a;throw n=!0,s}),a=(0,V1e.request)(r).then(s=>(n=!0,s)).catch(s=>{if(n)return i;throw n=!0,s});return Promise.race([i,a])}function a8r(e){return TT("instance",e)}function s8r(e){return TT("project",e)}function o8r(e){return TT("universe",e)}async function u8r(e){let t={};return await Promise.all(e.map(r=>(async()=>{let n=await TT(r),i=r.metadataKey;t[i]=n})())),t}function c8r(){return process.env.DETECT_GCP_RETRIES?Number(process.env.DETECT_GCP_RETRIES):0}var W$;async function l8r(){if(process.env.METADATA_SERVER_DETECTION){let e=process.env.METADATA_SERVER_DETECTION.trim().toLocaleLowerCase();if(!(e in Fr.METADATA_SERVER_DETECTION))throw new RangeError(`Unknown \`METADATA_SERVER_DETECTION\` env variable. Got \`${e}\`, but it should be \`${Object.keys(Fr.METADATA_SERVER_DETECTION).join("`, `")}\`, or unset`);switch(e){case"assume-present":return!0;case"none":return!1;case"bios-only":return W1e();case"ping-only":}}try{return W$===void 0&&(W$=TT("instance",void 0,c8r(),!(process.env.GCE_METADATA_IP||process.env.GCE_METADATA_HOST))),await W$,!0}catch(e){let t=e;if(process.env.DEBUG_AUTH&&console.info(t),t.type==="request-timeout"||t.response&&t.response.status===404)return!1;if(!(t.response&&t.response.status===404)&&(!t.code||!["EHOSTDOWN","EHOSTUNREACH","ENETUNREACH","ENOENT","ENOTFOUND","ECONNREFUSED"].includes(t.code))){let r="UNKNOWN";t.code&&(r=t.code),process.emitWarning(`received unexpected error = ${t.message} code = ${r}`,"MetadataLookupWarning")}return!1}}function p8r(){W$=void 0}Fr.gcpResidencyCache=null;function W1e(){return Fr.gcpResidencyCache===null&&Aft(),Fr.gcpResidencyCache}function Aft(e=null){Fr.gcpResidencyCache=e!==null?e:(0,t8r.detectGCPResidency)()}function Tft(){return W1e()?0:3e3}Z3r(B1e(),Fr)});var Cft=b(K$=>{"use strict";K$.byteLength=d8r;K$.toByteArray=m8r;K$.fromByteArray=y8r;var jh=[],Rp=[],f8r=typeof Uint8Array<"u"?Uint8Array:Array,K1e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Hw=0,Oft=K1e.length;Hw<Oft;++Hw)jh[Hw]=K1e[Hw],Rp[K1e.charCodeAt(Hw)]=Hw;var Hw,Oft;Rp["-".charCodeAt(0)]=62;Rp["_".charCodeAt(0)]=63;function Dft(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");r===-1&&(r=t);var n=r===t?0:4-r%4;return[r,n]}function d8r(e){var t=Dft(e),r=t[0],n=t[1];return(r+n)*3/4-n}function h8r(e,t,r){return(t+r)*3/4-r}function m8r(e){var t,r=Dft(e),n=r[0],i=r[1],a=new f8r(h8r(e,n,i)),s=0,o=i>0?n-4:n,c;for(c=0;c<o;c+=4)t=Rp[e.charCodeAt(c)]<<18|Rp[e.charCodeAt(c+1)]<<12|Rp[e.charCodeAt(c+2)]<<6|Rp[e.charCodeAt(c+3)],a[s++]=t>>16&255,a[s++]=t>>8&255,a[s++]=t&255;return i===2&&(t=Rp[e.charCodeAt(c)]<<2|Rp[e.charCodeAt(c+1)]>>4,a[s++]=t&255),i===1&&(t=Rp[e.charCodeAt(c)]<<10|Rp[e.charCodeAt(c+1)]<<4|Rp[e.charCodeAt(c+2)]>>2,a[s++]=t>>8&255,a[s++]=t&255),a}function g8r(e){return jh[e>>18&63]+jh[e>>12&63]+jh[e>>6&63]+jh[e&63]}function v8r(e,t,r){for(var n,i=[],a=t;a<r;a+=3)n=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(e[a+2]&255),i.push(g8r(n));return i.join("")}function y8r(e){for(var t,r=e.length,n=r%3,i=[],a=16383,s=0,o=r-n;s<o;s+=a)i.push(v8r(e,s,s+a>o?o:s+a));return n===1?(t=e[r-1],i.push(jh[t>>2]+jh[t<<4&63]+"==")):n===2&&(t=(e[r-2]<<8)+e[r-1],i.push(jh[t>>10]+jh[t>>4&63]+jh[t<<2&63]+"=")),i.join("")}});var Pft=b(Y$=>{"use strict";Object.defineProperty(Y$,"__esModule",{value:!0});Y$.BrowserCrypto=void 0;var D8=Cft(),b8r=C8(),Y1e=class e{constructor(){if(typeof window>"u"||window.crypto===void 0||window.crypto.subtle===void 0)throw new Error("SubtleCrypto not found. Make sure it's an https:// website.")}async sha256DigestBase64(t){let r=new TextEncoder().encode(t),n=await window.crypto.subtle.digest("SHA-256",r);return D8.fromByteArray(new Uint8Array(n))}randomBytesBase64(t){let r=new Uint8Array(t);return window.crypto.getRandomValues(r),D8.fromByteArray(r)}static padBase64(t){for(;t.length%4!==0;)t+="=";return t}async verify(t,r,n){let i={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},a=new TextEncoder().encode(r),s=D8.toByteArray(e.padBase64(n)),o=await window.crypto.subtle.importKey("jwk",t,i,!0,["verify"]);return await window.crypto.subtle.verify(i,o,s,a)}async sign(t,r){let n={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},i=new TextEncoder().encode(r),a=await window.crypto.subtle.importKey("jwk",t,n,!0,["sign"]),s=await window.crypto.subtle.sign(n,a,i);return D8.fromByteArray(new Uint8Array(s))}decodeBase64StringUtf8(t){let r=D8.toByteArray(e.padBase64(t));return new TextDecoder().decode(r)}encodeBase64StringUtf8(t){let r=new TextEncoder().encode(t);return D8.fromByteArray(r)}async sha256DigestHex(t){let r=new TextEncoder().encode(t),n=await window.crypto.subtle.digest("SHA-256",r);return(0,b8r.fromArrayBufferToHex)(n)}async signWithHmacSha256(t,r){let n=typeof t=="string"?t:String.fromCharCode(...new Uint16Array(t)),i=new TextEncoder,a=await window.crypto.subtle.importKey("raw",i.encode(n),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]);return window.crypto.subtle.sign("HMAC",a,i.encode(r))}};Y$.BrowserCrypto=Y1e});var Ift=b(J$=>{"use strict";Object.defineProperty(J$,"__esModule",{value:!0});J$.NodeCrypto=void 0;var P8=require("crypto"),J1e=class{async sha256DigestBase64(t){return P8.createHash("sha256").update(t).digest("base64")}randomBytesBase64(t){return P8.randomBytes(t).toString("base64")}async verify(t,r,n){let i=P8.createVerify("RSA-SHA256");return i.update(r),i.end(),i.verify(t,n,"base64")}async sign(t,r){let n=P8.createSign("RSA-SHA256");return n.update(r),n.end(),n.sign(t,"base64")}decodeBase64StringUtf8(t){return Buffer.from(t,"base64").toString("utf-8")}encodeBase64StringUtf8(t){return Buffer.from(t,"utf-8").toString("base64")}async sha256DigestHex(t){return P8.createHash("sha256").update(t).digest("hex")}async signWithHmacSha256(t,r){let n=typeof t=="string"?t:_8r(t);return w8r(P8.createHmac("sha256",n).update(r).digest())}};J$.NodeCrypto=J1e;function w8r(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function _8r(e){return Buffer.from(e)}});var C8=b(DT=>{"use strict";Object.defineProperty(DT,"__esModule",{value:!0});DT.createCrypto=S8r;DT.hasBrowserCrypto=Rft;DT.fromArrayBufferToHex=k8r;var x8r=Pft(),E8r=Ift();function S8r(){return Rft()?new x8r.BrowserCrypto:new E8r.NodeCrypto}function Rft(){return typeof window<"u"&&typeof window.crypto<"u"&&typeof window.crypto.subtle<"u"}function k8r(e){return Array.from(new Uint8Array(e)).map(r=>r.toString(16).padStart(2,"0")).join("")}});var Fft=b(X1e=>{"use strict";Object.defineProperty(X1e,"__esModule",{value:!0});X1e.validate=A8r;function A8r(e){let t=[{invalid:"uri",expected:"url"},{invalid:"json",expected:"data"},{invalid:"qs",expected:"params"}];for(let r of t)if(e[r.invalid]){let n=`'${r.invalid}' is not a valid configuration option. Please use '${r.expected}' instead. This library is using Axios for requests. Please see https://github.com/axios/axios to learn more about the valid request options.`;throw new Error(n)}}});var Q1e=b((jpn,T8r)=>{T8r.exports={name:"google-auth-library",version:"9.15.1",author:"Google Inc.",description:"Google APIs Authentication Client Library for Node.js",engines:{node:">=14"},main:"./build/src/index.js",types:"./build/src/index.d.ts",repository:"googleapis/google-auth-library-nodejs.git",keywords:["google","api","google apis","client","client library"],dependencies:{"base64-js":"^1.3.0","ecdsa-sig-formatter":"^1.0.11",gaxios:"^6.1.1","gcp-metadata":"^6.1.0",gtoken:"^7.0.0",jws:"^4.0.0"},devDependencies:{"@types/base64-js":"^1.2.5","@types/chai":"^4.1.7","@types/jws":"^3.1.0","@types/mocha":"^9.0.0","@types/mv":"^2.1.0","@types/ncp":"^2.0.1","@types/node":"^20.4.2","@types/sinon":"^17.0.0","assert-rejects":"^1.0.0",c8:"^8.0.0",chai:"^4.2.0",cheerio:"1.0.0-rc.12",codecov:"^3.0.2","engine.io":"6.6.2",gts:"^5.0.0","is-docker":"^2.0.0",jsdoc:"^4.0.0","jsdoc-fresh":"^3.0.0","jsdoc-region-tag":"^3.0.0",karma:"^6.0.0","karma-chrome-launcher":"^3.0.0","karma-coverage":"^2.0.0","karma-firefox-launcher":"^2.0.0","karma-mocha":"^2.0.0","karma-sourcemap-loader":"^0.4.0","karma-webpack":"5.0.0",keypair:"^1.0.4",linkinator:"^4.0.0",mocha:"^9.2.2",mv:"^2.1.1",ncp:"^2.0.0",nock:"^13.0.0","null-loader":"^4.0.0",pdfmake:"0.2.12",puppeteer:"^21.0.0",sinon:"^18.0.0","ts-loader":"^8.0.0",typescript:"^5.1.6",webpack:"^5.21.2","webpack-cli":"^4.0.0"},files:["build/src","!build/src/**/*.map"],scripts:{test:"c8 mocha build/test",clean:"gts clean",prepare:"npm run compile",lint:"gts check",compile:"tsc -p .",fix:"gts fix",pretest:"npm run compile -- --sourceMap",docs:"jsdoc -c .jsdoc.json","samples-setup":"cd samples/ && npm link ../ && npm run setup && cd ../","samples-test":"cd samples/ && npm link ../ && npm test && cd ../","system-test":"mocha build/system-test --timeout 60000","presystem-test":"npm run compile -- --sourceMap",webpack:"webpack","browser-test":"karma start","docs-test":"linkinator docs","predocs-test":"npm run docs",prelint:"cd samples; npm link ../; npm install",precompile:"gts clean"},license:"Apache-2.0"}});var CT=b(Q$=>{"use strict";Object.defineProperty(Q$,"__esModule",{value:!0});Q$.DefaultTransporter=void 0;var O8r=ed(),D8r=Fft(),C8r=Q1e(),jft="google-api-nodejs-client",X$=class e{constructor(){this.instance=new O8r.Gaxios}configure(t={}){if(t.headers=t.headers||{},typeof window>"u"){let r=t.headers["User-Agent"];if(r?r.includes(`${jft}/`)||(t.headers["User-Agent"]=`${r} ${e.USER_AGENT}`):t.headers["User-Agent"]=e.USER_AGENT,!t.headers["x-goog-api-client"]){let n=process.version.replace(/^v/,"");t.headers["x-goog-api-client"]=`gl-node/${n}`}}return t}request(t){return t=this.configure(t),(0,D8r.validate)(t),this.instance.request(t).catch(r=>{throw this.processError(r)})}get defaults(){return this.instance.defaults}set defaults(t){this.instance.defaults=t}processError(t){let r=t.response,n=t,i=r?r.data:null;return r&&i&&i.error&&r.status!==200?typeof i.error=="string"?(n.message=i.error,n.status=r.status):Array.isArray(i.error.errors)?(n.message=i.error.errors.map(a=>a.message).join(`
`),n.code=i.error.code,n.errors=i.error.errors):(n.message=i.error.message,n.code=i.error.code):r&&r.status>=400&&(n.message=i,n.status=r.status),n}};Q$.DefaultTransporter=X$;X$.USER_AGENT=`${jft}/${C8r.version}`});var qft=b((qpn,Nft)=>{"use strict";function Z1e(e){var t=(e/8|0)+(e%8===0?0:1);return t}var P8r={ES256:Z1e(256),ES384:Z1e(384),ES512:Z1e(521)};function I8r(e){var t=P8r[e];if(t)return t;throw new Error('Unknown algorithm "'+e+'"')}Nft.exports=I8r});var e0e=b((Lpn,zft)=>{"use strict";var Z$=Tf().Buffer,$ft=qft(),eB=128,Bft=0,R8r=32,F8r=16,j8r=2,Mft=F8r|R8r|Bft<<6,tB=j8r|Bft<<6;function N8r(e){return e.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Uft(e){if(Z$.isBuffer(e))return e;if(typeof e=="string")return Z$.from(e,"base64");throw new TypeError("ECDSA signature must be a Base64 string or a Buffer")}function q8r(e,t){e=Uft(e);var r=$ft(t),n=r+1,i=e.length,a=0;if(e[a++]!==Mft)throw new Error('Could not find expected "seq"');var s=e[a++];if(s===(eB|1)&&(s=e[a++]),i-a<s)throw new Error('"seq" specified length of "'+s+'", only "'+(i-a)+'" remaining');if(e[a++]!==tB)throw new Error('Could not find expected "int" for "r"');var o=e[a++];if(i-a-2<o)throw new Error('"r" specified length of "'+o+'", only "'+(i-a-2)+'" available');if(n<o)throw new Error('"r" specified length of "'+o+'", max of "'+n+'" is acceptable');var c=a;if(a+=o,e[a++]!==tB)throw new Error('Could not find expected "int" for "s"');var p=e[a++];if(i-a!==p)throw new Error('"s" specified length of "'+p+'", expected "'+(i-a)+'"');if(n<p)throw new Error('"s" specified length of "'+p+'", max of "'+n+'" is acceptable');var f=a;if(a+=p,a!==i)throw new Error('Expected to consume entire buffer, but "'+(i-a)+'" bytes remain');var d=r-o,h=r-p,g=Z$.allocUnsafe(d+o+h+p);for(a=0;a<d;++a)g[a]=0;e.copy(g,a,c+Math.max(-d,0),c+o),a=r;for(var v=a;a<v+h;++a)g[a]=0;return e.copy(g,a,f+Math.max(-h,0),f+p),g=g.toString("base64"),g=N8r(g),g}function Lft(e,t,r){for(var n=0;t+n<r&&e[t+n]===0;)++n;var i=e[t+n]>=eB;return i&&--n,n}function L8r(e,t){e=Uft(e);var r=$ft(t),n=e.length;if(n!==r*2)throw new TypeError('"'+t+'" signatures must be "'+r*2+'" bytes, saw "'+n+'"');var i=Lft(e,0,r),a=Lft(e,r,e.length),s=r-i,o=r-a,c=1+1+s+1+1+o,p=c<eB,f=Z$.allocUnsafe((p?2:3)+c),d=0;return f[d++]=Mft,p?f[d++]=c:(f[d++]=eB|1,f[d++]=c&255),f[d++]=tB,f[d++]=s,i<0?(f[d++]=0,d+=e.copy(f,d,0,r)):d+=e.copy(f,d,i,r),f[d++]=tB,f[d++]=o,a<0?(f[d++]=0,e.copy(f,d,r)):e.copy(f,d,r+a),f}zft.exports={derToJose:q8r,joseToDer:L8r}});var Nv=b(jv=>{"use strict";var nd=jv&&jv.__classPrivateFieldGet||function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},I8,i0,t0e,r0e;Object.defineProperty(jv,"__esModule",{value:!0});jv.LRUCache=void 0;jv.snakeToCamel=Hft;jv.originalOrCamelOptions=$8r;function Hft(e){return e.replace(/([_][^_])/g,t=>t.slice(1).toUpperCase())}function $8r(e){function t(r){var n;let i=e||{};return(n=i[r])!==null&&n!==void 0?n:i[Hft(r)]}return{get:t}}var n0e=class{constructor(t){I8.add(this),i0.set(this,new Map),this.capacity=t.capacity,this.maxAge=t.maxAge}set(t,r){nd(this,I8,"m",t0e).call(this,t,r),nd(this,I8,"m",r0e).call(this)}get(t){let r=nd(this,i0,"f").get(t);if(r)return nd(this,I8,"m",t0e).call(this,t,r.value),nd(this,I8,"m",r0e).call(this),r.value}};jv.LRUCache=n0e;i0=new WeakMap,I8=new WeakSet,t0e=function(t,r){nd(this,i0,"f").delete(t),nd(this,i0,"f").set(t,{value:r,lastAccessed:Date.now()})},r0e=function(){let t=this.maxAge?Date.now()-this.maxAge:0,r=nd(this,i0,"f").entries().next();for(;!r.done&&(nd(this,i0,"f").size>this.capacity||r.value[1].lastAccessed<t);)nd(this,i0,"f").delete(r.value[0]),r=nd(this,i0,"f").entries().next()}});var Nh=b(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.AuthClient=id.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS=id.DEFAULT_UNIVERSE=void 0;var B8r=require("events"),Vft=ed(),Gft=CT(),M8r=Nv();id.DEFAULT_UNIVERSE="googleapis.com";id.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS=5*60*1e3;var i0e=class extends B8r.EventEmitter{constructor(t={}){var r,n,i,a,s;super(),this.credentials={},this.eagerRefreshThresholdMillis=id.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS,this.forceRefreshOnFailure=!1,this.universeDomain=id.DEFAULT_UNIVERSE;let o=(0,M8r.originalOrCamelOptions)(t);this.apiKey=t.apiKey,this.projectId=(r=o.get("project_id"))!==null&&r!==void 0?r:null,this.quotaProjectId=o.get("quota_project_id"),this.credentials=(n=o.get("credentials"))!==null&&n!==void 0?n:{},this.universeDomain=(i=o.get("universe_domain"))!==null&&i!==void 0?i:id.DEFAULT_UNIVERSE,this.transporter=(a=t.transporter)!==null&&a!==void 0?a:new Gft.DefaultTransporter,t.transporterOptions&&(this.transporter.defaults=t.transporterOptions),t.eagerRefreshThresholdMillis&&(this.eagerRefreshThresholdMillis=t.eagerRefreshThresholdMillis),this.forceRefreshOnFailure=(s=t.forceRefreshOnFailure)!==null&&s!==void 0?s:!1}get gaxios(){return this.transporter instanceof Vft.Gaxios?this.transporter:this.transporter instanceof Gft.DefaultTransporter?this.transporter.instance:"instance"in this.transporter&&this.transporter.instance instanceof Vft.Gaxios?this.transporter.instance:null}setCredentials(t){this.credentials=t}addSharedMetadataHeaders(t){return!t["x-goog-user-project"]&&this.quotaProjectId&&(t["x-goog-user-project"]=this.quotaProjectId),t}static get RETRY_CONFIG(){return{retry:!0,retryConfig:{httpMethodsToRetry:["GET","PUT","POST","HEAD","OPTIONS","DELETE"]}}}};id.AuthClient=i0e});var s0e=b(rB=>{"use strict";Object.defineProperty(rB,"__esModule",{value:!0});rB.LoginTicket=void 0;var a0e=class{constructor(t,r){this.envelope=t,this.payload=r}getEnvelope(){return this.envelope}getPayload(){return this.payload}getUserId(){let t=this.getPayload();return t&&t.sub?t.sub:null}getAttributes(){return{envelope:this.getEnvelope(),payload:this.getPayload()}}};rB.LoginTicket=a0e});var Vw=b(qh=>{"use strict";Object.defineProperty(qh,"__esModule",{value:!0});qh.OAuth2Client=qh.ClientAuthentication=qh.CertificateFormat=qh.CodeChallengeMethod=void 0;var U8r=ed(),o0e=require("querystring"),z8r=require("stream"),H8r=e0e(),u0e=C8(),V8r=Nh(),G8r=s0e(),Wft;(function(e){e.Plain="plain",e.S256="S256"})(Wft||(qh.CodeChallengeMethod=Wft={}));var a0;(function(e){e.PEM="PEM",e.JWK="JWK"})(a0||(qh.CertificateFormat=a0={}));var PT;(function(e){e.ClientSecretPost="ClientSecretPost",e.ClientSecretBasic="ClientSecretBasic",e.None="None"})(PT||(qh.ClientAuthentication=PT={}));var R8=class e extends V8r.AuthClient{constructor(t,r,n){let i=t&&typeof t=="object"?t:{clientId:t,clientSecret:r,redirectUri:n};super(i),this.certificateCache={},this.certificateExpiry=null,this.certificateCacheFormat=a0.PEM,this.refreshTokenPromises=new Map,this._clientId=i.clientId,this._clientSecret=i.clientSecret,this.redirectUri=i.redirectUri,this.endpoints={tokenInfoUrl:"https://oauth2.googleapis.com/tokeninfo",oauth2AuthBaseUrl:"https://accounts.google.com/o/oauth2/v2/auth",oauth2TokenUrl:"https://oauth2.googleapis.com/token",oauth2RevokeUrl:"https://oauth2.googleapis.com/revoke",oauth2FederatedSignonPemCertsUrl:"https://www.googleapis.com/oauth2/v1/certs",oauth2FederatedSignonJwkCertsUrl:"https://www.googleapis.com/oauth2/v3/certs",oauth2IapPublicKeyUrl:"https://www.gstatic.com/iap/verify/public_key",...i.endpoints},this.clientAuthentication=i.clientAuthentication||PT.ClientSecretPost,this.issuers=i.issuers||["accounts.google.com","https://accounts.google.com",this.universeDomain]}generateAuthUrl(t={}){if(t.code_challenge_method&&!t.code_challenge)throw new Error("If a code_challenge_method is provided, code_challenge must be included.");return t.response_type=t.response_type||"code",t.client_id=t.client_id||this._clientId,t.redirect_uri=t.redirect_uri||this.redirectUri,Array.isArray(t.scope)&&(t.scope=t.scope.join(" ")),this.endpoints.oauth2AuthBaseUrl.toString()+"?"+o0e.stringify(t)}generateCodeVerifier(){throw new Error("generateCodeVerifier is removed, please use generateCodeVerifierAsync instead.")}async generateCodeVerifierAsync(){let t=(0,u0e.createCrypto)(),n=t.randomBytesBase64(96).replace(/\+/g,"~").replace(/=/g,"_").replace(/\//g,"-"),a=(await t.sha256DigestBase64(n)).split("=")[0].replace(/\+/g,"-").replace(/\//g,"_");return{codeVerifier:n,codeChallenge:a}}getToken(t,r){let n=typeof t=="string"?{code:t}:t;if(r)this.getTokenAsync(n).then(i=>r(null,i.tokens,i.res),i=>r(i,null,i.response));else return this.getTokenAsync(n)}async getTokenAsync(t){let r=this.endpoints.oauth2TokenUrl.toString(),n={"Content-Type":"application/x-www-form-urlencoded"},i={client_id:t.client_id||this._clientId,code_verifier:t.codeVerifier,code:t.code,grant_type:"authorization_code",redirect_uri:t.redirect_uri||this.redirectUri};if(this.clientAuthentication===PT.ClientSecretBasic){let o=Buffer.from(`${this._clientId}:${this._clientSecret}`);n.Authorization=`Basic ${o.toString("base64")}`}this.clientAuthentication===PT.ClientSecretPost&&(i.client_secret=this._clientSecret);let a=await this.transporter.request({...e.RETRY_CONFIG,method:"POST",url:r,data:o0e.stringify(i),headers:n}),s=a.data;return a.data&&a.data.expires_in&&(s.expiry_date=new Date().getTime()+a.data.expires_in*1e3,delete s.expires_in),this.emit("tokens",s),{tokens:s,res:a}}async refreshToken(t){if(!t)return this.refreshTokenNoCache(t);if(this.refreshTokenPromises.has(t))return this.refreshTokenPromises.get(t);let r=this.refreshTokenNoCache(t).then(n=>(this.refreshTokenPromises.delete(t),n),n=>{throw this.refreshTokenPromises.delete(t),n});return this.refreshTokenPromises.set(t,r),r}async refreshTokenNoCache(t){var r;if(!t)throw new Error("No refresh token is set.");let n=this.endpoints.oauth2TokenUrl.toString(),i={refresh_token:t,client_id:this._clientId,client_secret:this._clientSecret,grant_type:"refresh_token"},a;try{a=await this.transporter.request({...e.RETRY_CONFIG,method:"POST",url:n,data:o0e.stringify(i),headers:{"Content-Type":"application/x-www-form-urlencoded"}})}catch(o){throw o instanceof U8r.GaxiosError&&o.message==="invalid_grant"&&(!((r=o.response)===null||r===void 0)&&r.data)&&/ReAuth/i.test(o.response.data.error_description)&&(o.message=JSON.stringify(o.response.data)),o}let s=a.data;return a.data&&a.data.expires_in&&(s.expiry_date=new Date().getTime()+a.data.expires_in*1e3,delete s.expires_in),this.emit("tokens",s),{tokens:s,res:a}}refreshAccessToken(t){if(t)this.refreshAccessTokenAsync().then(r=>t(null,r.credentials,r.res),t);else return this.refreshAccessTokenAsync()}async refreshAccessTokenAsync(){let t=await this.refreshToken(this.credentials.refresh_token),r=t.tokens;return r.refresh_token=this.credentials.refresh_token,this.credentials=r,{credentials:this.credentials,res:t.res}}getAccessToken(t){if(t)this.getAccessTokenAsync().then(r=>t(null,r.token,r.res),t);else return this.getAccessTokenAsync()}async getAccessTokenAsync(){if(!this.credentials.access_token||this.isTokenExpiring()){if(!this.credentials.refresh_token)if(this.refreshHandler){let n=await this.processAndValidateRefreshHandler();if(n?.access_token)return this.setCredentials(n),{token:this.credentials.access_token}}else throw new Error("No refresh token or refresh handler callback is set.");let r=await this.refreshAccessTokenAsync();if(!r.credentials||r.credentials&&!r.credentials.access_token)throw new Error("Could not refresh access token.");return{token:r.credentials.access_token,res:r.res}}else return{token:this.credentials.access_token}}async getRequestHeaders(t){return(await this.getRequestMetadataAsync(t)).headers}async getRequestMetadataAsync(t){let r=this.credentials;if(!r.access_token&&!r.refresh_token&&!this.apiKey&&!this.refreshHandler)throw new Error("No access, refresh token, API key or refresh handler callback is set.");if(r.access_token&&!this.isTokenExpiring()){r.token_type=r.token_type||"Bearer";let o={Authorization:r.token_type+" "+r.access_token};return{headers:this.addSharedMetadataHeaders(o)}}if(this.refreshHandler){let o=await this.processAndValidateRefreshHandler();if(o?.access_token){this.setCredentials(o);let c={Authorization:"Bearer "+this.credentials.access_token};return{headers:this.addSharedMetadataHeaders(c)}}}if(this.apiKey)return{headers:{"X-Goog-Api-Key":this.apiKey}};let n=null,i=null;try{n=await this.refreshToken(r.refresh_token),i=n.tokens}catch(o){let c=o;throw c.response&&(c.response.status===403||c.response.status===404)&&(c.message=`Could not refresh access token: ${c.message}`),c}let a=this.credentials;a.token_type=a.token_type||"Bearer",i.refresh_token=a.refresh_token,this.credentials=i;let s={Authorization:a.token_type+" "+i.access_token};return{headers:this.addSharedMetadataHeaders(s),res:n.res}}static getRevokeTokenUrl(t){return new e().getRevokeTokenURL(t).toString()}getRevokeTokenURL(t){let r=new URL(this.endpoints.oauth2RevokeUrl);return r.searchParams.append("token",t),r}revokeToken(t,r){let n={...e.RETRY_CONFIG,url:this.getRevokeTokenURL(t).toString(),method:"POST"};if(r)this.transporter.request(n).then(i=>r(null,i),r);else return this.transporter.request(n)}revokeCredentials(t){if(t)this.revokeCredentialsAsync().then(r=>t(null,r),t);else return this.revokeCredentialsAsync()}async revokeCredentialsAsync(){let t=this.credentials.access_token;if(this.credentials={},t)return this.revokeToken(t);throw new Error("No access token to revoke.")}request(t,r){if(r)this.requestAsync(t).then(n=>r(null,n),n=>r(n,n.response));else return this.requestAsync(t)}async requestAsync(t,r=!1){let n;try{let i=await this.getRequestMetadataAsync(t.url);t.headers=t.headers||{},i.headers&&i.headers["x-goog-user-project"]&&(t.headers["x-goog-user-project"]=i.headers["x-goog-user-project"]),i.headers&&i.headers.Authorization&&(t.headers.Authorization=i.headers.Authorization),this.apiKey&&(t.headers["X-Goog-Api-Key"]=this.apiKey),n=await this.transporter.request(t)}catch(i){let a=i.response;if(a){let s=a.status,o=this.credentials&&this.credentials.access_token&&this.credentials.refresh_token&&(!this.credentials.expiry_date||this.forceRefreshOnFailure),c=this.credentials&&this.credentials.access_token&&!this.credentials.refresh_token&&(!this.credentials.expiry_date||this.forceRefreshOnFailure)&&this.refreshHandler,p=a.config.data instanceof z8r.Readable,f=s===401||s===403;if(!r&&f&&!p&&o)return await this.refreshAccessTokenAsync(),this.requestAsync(t,!0);if(!r&&f&&!p&&c){let d=await this.processAndValidateRefreshHandler();return d?.access_token&&this.setCredentials(d),this.requestAsync(t,!0)}}throw i}return n}verifyIdToken(t,r){if(r&&typeof r!="function")throw new Error("This method accepts an options object as the first parameter, which includes the idToken, audience, and maxExpiry.");if(r)this.verifyIdTokenAsync(t).then(n=>r(null,n),r);else return this.verifyIdTokenAsync(t)}async verifyIdTokenAsync(t){if(!t.idToken)throw new Error("The verifyIdToken method requires an ID Token");let r=await this.getFederatedSignonCertsAsync();return await this.verifySignedJwtWithCertsAsync(t.idToken,r.certs,t.audience,this.issuers,t.maxExpiry)}async getTokenInfo(t){let{data:r}=await this.transporter.request({...e.RETRY_CONFIG,method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Authorization:`Bearer ${t}`},url:this.endpoints.tokenInfoUrl.toString()}),n=Object.assign({expiry_date:new Date().getTime()+r.expires_in*1e3,scopes:r.scope.split(" ")},r);return delete n.expires_in,delete n.scope,n}getFederatedSignonCerts(t){if(t)this.getFederatedSignonCertsAsync().then(r=>t(null,r.certs,r.res),t);else return this.getFederatedSignonCertsAsync()}async getFederatedSignonCertsAsync(){let t=new Date().getTime(),r=(0,u0e.hasBrowserCrypto)()?a0.JWK:a0.PEM;if(this.certificateExpiry&&t<this.certificateExpiry.getTime()&&this.certificateCacheFormat===r)return{certs:this.certificateCache,format:r};let n,i;switch(r){case a0.PEM:i=this.endpoints.oauth2FederatedSignonPemCertsUrl.toString();break;case a0.JWK:i=this.endpoints.oauth2FederatedSignonJwkCertsUrl.toString();break;default:throw new Error(`Unsupported certificate format ${r}`)}try{n=await this.transporter.request({...e.RETRY_CONFIG,url:i})}catch(p){throw p instanceof Error&&(p.message=`Failed to retrieve verification certificates: ${p.message}`),p}let a=n?n.headers["cache-control"]:void 0,s=-1;if(a){let f=new RegExp("max-age=([0-9]*)").exec(a);f&&f.length===2&&(s=Number(f[1])*1e3)}let o={};switch(r){case a0.PEM:o=n.data;break;case a0.JWK:for(let p of n.data.keys)o[p.kid]=p;break;default:throw new Error(`Unsupported certificate format ${r}`)}let c=new Date;return this.certificateExpiry=s===-1?null:new Date(c.getTime()+s),this.certificateCache=o,this.certificateCacheFormat=r,{certs:o,format:r,res:n}}getIapPublicKeys(t){if(t)this.getIapPublicKeysAsync().then(r=>t(null,r.pubkeys,r.res),t);else return this.getIapPublicKeysAsync()}async getIapPublicKeysAsync(){let t,r=this.endpoints.oauth2IapPublicKeyUrl.toString();try{t=await this.transporter.request({...e.RETRY_CONFIG,url:r})}catch(n){throw n instanceof Error&&(n.message=`Failed to retrieve verification certificates: ${n.message}`),n}return{pubkeys:t.data,res:t}}verifySignedJwtWithCerts(){throw new Error("verifySignedJwtWithCerts is removed, please use verifySignedJwtWithCertsAsync instead.")}async verifySignedJwtWithCertsAsync(t,r,n,i,a){let s=(0,u0e.createCrypto)();a||(a=e.DEFAULT_MAX_TOKEN_LIFETIME_SECS_);let o=t.split(".");if(o.length!==3)throw new Error("Wrong number of segments in token: "+t);let c=o[0]+"."+o[1],p=o[2],f,d;try{f=JSON.parse(s.decodeBase64StringUtf8(o[0]))}catch(D){throw D instanceof Error&&(D.message=`Can't parse token envelope: ${o[0]}': ${D.message}`),D}if(!f)throw new Error("Can't parse token envelope: "+o[0]);try{d=JSON.parse(s.decodeBase64StringUtf8(o[1]))}catch(D){throw D instanceof Error&&(D.message=`Can't parse token payload '${o[0]}`),D}if(!d)throw new Error("Can't parse token payload: "+o[1]);if(!Object.prototype.hasOwnProperty.call(r,f.kid))throw new Error("No pem found for envelope: "+JSON.stringify(f));let h=r[f.kid];if(f.alg==="ES256"&&(p=H8r.joseToDer(p,"ES256").toString("base64")),!await s.verify(h,c,p))throw new Error("Invalid token signature: "+t);if(!d.iat)throw new Error("No issue time in token: "+JSON.stringify(d));if(!d.exp)throw new Error("No expiration time in token: "+JSON.stringify(d));let v=Number(d.iat);if(isNaN(v))throw new Error("iat field using invalid format");let y=Number(d.exp);if(isNaN(y))throw new Error("exp field using invalid format");let _=new Date().getTime()/1e3;if(y>=_+a)throw new Error("Expiration time too far in future: "+JSON.stringify(d));let x=v-e.CLOCK_SKEW_SECS_,A=y+e.CLOCK_SKEW_SECS_;if(_<x)throw new Error("Token used too early, "+_+" < "+x+": "+JSON.stringify(d));if(_>A)throw new Error("Token used too late, "+_+" > "+A+": "+JSON.stringify(d));if(i&&i.indexOf(d.iss)<0)throw new Error("Invalid issuer, expected one of ["+i+"], but got "+d.iss);if(typeof n<"u"&&n!==null){let D=d.aud,j=!1;if(n.constructor===Array?j=n.indexOf(D)>-1:j=D===n,!j)throw new Error("Wrong recipient, payload audience != requiredAudience")}return new G8r.LoginTicket(f,d)}async processAndValidateRefreshHandler(){if(this.refreshHandler){let t=await this.refreshHandler();if(!t.access_token)throw new Error("No access token is returned by the refreshHandler callback.");return t}}isTokenExpiring(){let t=this.credentials.expiry_date;return t?t<=new Date().getTime()+this.eagerRefreshThresholdMillis:!1}};qh.OAuth2Client=R8;R8.GOOGLE_TOKEN_INFO_URL="https://oauth2.googleapis.com/tokeninfo";R8.CLOCK_SKEW_SECS_=300;R8.DEFAULT_MAX_TOKEN_LIFETIME_SECS_=86400});var l0e=b(nB=>{"use strict";Object.defineProperty(nB,"__esModule",{value:!0});nB.Compute=void 0;var W8r=ed(),Kft=OT(),K8r=Vw(),c0e=class extends K8r.OAuth2Client{constructor(t={}){super(t),this.credentials={expiry_date:1,refresh_token:"compute-placeholder"},this.serviceAccountEmail=t.serviceAccountEmail||"default",this.scopes=Array.isArray(t.scopes)?t.scopes:t.scopes?[t.scopes]:[]}async refreshTokenNoCache(t){let r=`service-accounts/${this.serviceAccountEmail}/token`,n;try{let a={property:r};this.scopes.length>0&&(a.params={scopes:this.scopes.join(",")}),n=await Kft.instance(a)}catch(a){throw a instanceof W8r.GaxiosError&&(a.message=`Could not refresh access token: ${a.message}`,this.wrapError(a)),a}let i=n;return n&&n.expires_in&&(i.expiry_date=new Date().getTime()+n.expires_in*1e3,delete i.expires_in),this.emit("tokens",i),{tokens:i,res:null}}async fetchIdToken(t){let r=`service-accounts/${this.serviceAccountEmail}/identity?format=full&audience=${t}`,n;try{let i={property:r};n=await Kft.instance(i)}catch(i){throw i instanceof Error&&(i.message=`Could not fetch ID token: ${i.message}`),i}return n}wrapError(t){let r=t.response;r&&r.status&&(t.status=r.status,r.status===403?t.message="A Forbidden error was returned while attempting to retrieve an access token for the Compute Engine built-in service account. This may be because the Compute Engine instance does not have the correct permission scopes specified: "+t.message:r.status===404&&(t.message="A Not Found error was returned while attempting to retrieve an accesstoken for the Compute Engine built-in service account. This may be because the Compute Engine instance does not have any permission scopes specified: "+t.message))}};nB.Compute=c0e});var f0e=b(iB=>{"use strict";Object.defineProperty(iB,"__esModule",{value:!0});iB.IdTokenClient=void 0;var Y8r=Vw(),p0e=class extends Y8r.OAuth2Client{constructor(t){super(t),this.targetAudience=t.targetAudience,this.idTokenProvider=t.idTokenProvider}async getRequestMetadataAsync(t){if(!this.credentials.id_token||!this.credentials.expiry_date||this.isTokenExpiring()){let n=await this.idTokenProvider.fetchIdToken(this.targetAudience);this.credentials={id_token:n,expiry_date:this.getIdTokenExpiryDate(n)}}return{headers:{Authorization:"Bearer "+this.credentials.id_token}}}getIdTokenExpiryDate(t){let r=t.split(".")[1];if(r)return JSON.parse(Buffer.from(r,"base64").toString("ascii")).exp*1e3}};iB.IdTokenClient=p0e});var d0e=b(F8=>{"use strict";Object.defineProperty(F8,"__esModule",{value:!0});F8.GCPEnv=void 0;F8.clear=J8r;F8.getEnv=X8r;var Yft=OT(),s0;(function(e){e.APP_ENGINE="APP_ENGINE",e.KUBERNETES_ENGINE="KUBERNETES_ENGINE",e.CLOUD_FUNCTIONS="CLOUD_FUNCTIONS",e.COMPUTE_ENGINE="COMPUTE_ENGINE",e.CLOUD_RUN="CLOUD_RUN",e.NONE="NONE"})(s0||(F8.GCPEnv=s0={}));var IT;function J8r(){IT=void 0}async function X8r(){return IT||(IT=Q8r(),IT)}async function Q8r(){let e=s0.NONE;return Z8r()?e=s0.APP_ENGINE:exr()?e=s0.CLOUD_FUNCTIONS:await nxr()?await rxr()?e=s0.KUBERNETES_ENGINE:txr()?e=s0.CLOUD_RUN:e=s0.COMPUTE_ENGINE:e=s0.NONE,e}function Z8r(){return!!(process.env.GAE_SERVICE||process.env.GAE_MODULE_NAME)}function exr(){return!!(process.env.FUNCTION_NAME||process.env.FUNCTION_TARGET)}function txr(){return!!process.env.K_CONFIGURATION}async function rxr(){try{return await Yft.instance("attributes/cluster-name"),!0}catch{return!1}}async function nxr(){return Yft.isAvailable()}});var h0e=b((Gpn,Jft)=>{var aB=Tf().Buffer,ixr=require("stream"),axr=require("util");function sB(e){if(this.buffer=null,this.writable=!0,this.readable=!0,!e)return this.buffer=aB.alloc(0),this;if(typeof e.pipe=="function")return this.buffer=aB.alloc(0),e.pipe(this),this;if(e.length||typeof e=="object")return this.buffer=e,this.writable=!1,process.nextTick(function(){this.emit("end",e),this.readable=!1,this.emit("close")}.bind(this)),this;throw new TypeError("Unexpected data type ("+typeof e+")")}axr.inherits(sB,ixr);sB.prototype.write=function(t){this.buffer=aB.concat([this.buffer,aB.from(t)]),this.emit("data",t)};sB.prototype.end=function(t){t&&this.write(t),this.emit("end",t),this.emit("close"),this.writable=!1,this.readable=!1};Jft.exports=sB});var Qft=b((Wpn,Xft)=>{"use strict";var RT=require("buffer").Buffer,m0e=require("buffer").SlowBuffer;Xft.exports=oB;function oB(e,t){if(!RT.isBuffer(e)||!RT.isBuffer(t)||e.length!==t.length)return!1;for(var r=0,n=0;n<e.length;n++)r|=e[n]^t[n];return r===0}oB.install=function(){RT.prototype.equal=m0e.prototype.equal=function(t){return oB(this,t)}};var sxr=RT.prototype.equal,oxr=m0e.prototype.equal;oB.restore=function(){RT.prototype.equal=sxr,m0e.prototype.equal=oxr}});var y0e=b((Kpn,odt)=>{var uxr=Qft(),N8=Tf().Buffer,Lh=require("crypto"),edt=e0e(),Zft=require("util"),cxr=`"%s" is not a valid algorithm.
  Supported algorithms are:
  "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512" and "none".`,FT="secret must be a string or buffer",j8="key must be a string or a buffer",lxr="key must be a string, a buffer or an object",g0e=typeof Lh.createPublicKey=="function";g0e&&(j8+=" or a KeyObject",FT+="or a KeyObject");function tdt(e){if(!N8.isBuffer(e)&&typeof e!="string"&&(!g0e||typeof e!="object"||typeof e.type!="string"||typeof e.asymmetricKeyType!="string"||typeof e.export!="function"))throw ad(j8)}function rdt(e){if(!N8.isBuffer(e)&&typeof e!="string"&&typeof e!="object")throw ad(lxr)}function pxr(e){if(!N8.isBuffer(e)){if(typeof e=="string")return e;if(!g0e||typeof e!="object"||e.type!=="secret"||typeof e.export!="function")throw ad(FT)}}function v0e(e){return e.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function ndt(e){e=e.toString();var t=4-e.length%4;if(t!==4)for(var r=0;r<t;++r)e+="=";return e.replace(/\-/g,"+").replace(/_/g,"/")}function ad(e){var t=[].slice.call(arguments,1),r=Zft.format.bind(Zft,e).apply(null,t);return new TypeError(r)}function fxr(e){return N8.isBuffer(e)||typeof e=="string"}function jT(e){return fxr(e)||(e=JSON.stringify(e)),e}function idt(e){return function(r,n){pxr(n),r=jT(r);var i=Lh.createHmac("sha"+e,n),a=(i.update(r),i.digest("base64"));return v0e(a)}}function dxr(e){return function(r,n,i){var a=idt(e)(r,i);return uxr(N8.from(n),N8.from(a))}}function adt(e){return function(r,n){rdt(n),r=jT(r);var i=Lh.createSign("RSA-SHA"+e),a=(i.update(r),i.sign(n,"base64"));return v0e(a)}}function sdt(e){return function(r,n,i){tdt(i),r=jT(r),n=ndt(n);var a=Lh.createVerify("RSA-SHA"+e);return a.update(r),a.verify(i,n,"base64")}}function hxr(e){return function(r,n){rdt(n),r=jT(r);var i=Lh.createSign("RSA-SHA"+e),a=(i.update(r),i.sign({key:n,padding:Lh.constants.RSA_PKCS1_PSS_PADDING,saltLength:Lh.constants.RSA_PSS_SALTLEN_DIGEST},"base64"));return v0e(a)}}function mxr(e){return function(r,n,i){tdt(i),r=jT(r),n=ndt(n);var a=Lh.createVerify("RSA-SHA"+e);return a.update(r),a.verify({key:i,padding:Lh.constants.RSA_PKCS1_PSS_PADDING,saltLength:Lh.constants.RSA_PSS_SALTLEN_DIGEST},n,"base64")}}function gxr(e){var t=adt(e);return function(){var n=t.apply(null,arguments);return n=edt.derToJose(n,"ES"+e),n}}function vxr(e){var t=sdt(e);return function(n,i,a){i=edt.joseToDer(i,"ES"+e).toString("base64");var s=t(n,i,a);return s}}function yxr(){return function(){return""}}function bxr(){return function(t,r){return r===""}}odt.exports=function(t){var r={hs:idt,rs:adt,ps:hxr,es:gxr,none:yxr},n={hs:dxr,rs:sdt,ps:mxr,es:vxr,none:bxr},i=t.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/);if(!i)throw ad(cxr,t);var a=(i[1]||i[3]).toLowerCase(),s=i[2];return{sign:r[a](s),verify:n[a](s)}}});var b0e=b((Ypn,udt)=>{var wxr=require("buffer").Buffer;udt.exports=function(t){return typeof t=="string"?t:typeof t=="number"||wxr.isBuffer(t)?t.toString():JSON.stringify(t)}});var hdt=b((Jpn,ddt)=>{var _xr=Tf().Buffer,cdt=h0e(),xxr=y0e(),Exr=require("stream"),ldt=b0e(),w0e=require("util");function pdt(e,t){return _xr.from(e,t).toString("base64").replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Sxr(e,t,r){r=r||"utf8";var n=pdt(ldt(e),"binary"),i=pdt(ldt(t),r);return w0e.format("%s.%s",n,i)}function fdt(e){var t=e.header,r=e.payload,n=e.secret||e.privateKey,i=e.encoding,a=xxr(t.alg),s=Sxr(t,r,i),o=a.sign(s,n);return w0e.format("%s.%s",s,o)}function uB(e){var t=e.secret||e.privateKey||e.key,r=new cdt(t);this.readable=!0,this.header=e.header,this.encoding=e.encoding,this.secret=this.privateKey=this.key=r,this.payload=new cdt(e.payload),this.secret.once("close",function(){!this.payload.writable&&this.readable&&this.sign()}.bind(this)),this.payload.once("close",function(){!this.secret.writable&&this.readable&&this.sign()}.bind(this))}w0e.inherits(uB,Exr);uB.prototype.sign=function(){try{var t=fdt({header:this.header,payload:this.payload.buffer,secret:this.secret.buffer,encoding:this.encoding});return this.emit("done",t),this.emit("data",t),this.emit("end"),this.readable=!1,t}catch(r){this.readable=!1,this.emit("error",r),this.emit("close")}};uB.sign=fdt;ddt.exports=uB});var Sdt=b((Xpn,Edt)=>{var gdt=Tf().Buffer,mdt=h0e(),kxr=y0e(),Axr=require("stream"),vdt=b0e(),Txr=require("util"),Oxr=/^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/;function Dxr(e){return Object.prototype.toString.call(e)==="[object Object]"}function Cxr(e){if(Dxr(e))return e;try{return JSON.parse(e)}catch{return}}function ydt(e){var t=e.split(".",1)[0];return Cxr(gdt.from(t,"base64").toString("binary"))}function Pxr(e){return e.split(".",2).join(".")}function bdt(e){return e.split(".")[2]}function Ixr(e,t){t=t||"utf8";var r=e.split(".")[1];return gdt.from(r,"base64").toString(t)}function wdt(e){return Oxr.test(e)&&!!ydt(e)}function _dt(e,t,r){if(!t){var n=new Error("Missing algorithm parameter for jws.verify");throw n.code="MISSING_ALGORITHM",n}e=vdt(e);var i=bdt(e),a=Pxr(e),s=kxr(t);return s.verify(a,i,r)}function xdt(e,t){if(t=t||{},e=vdt(e),!wdt(e))return null;var r=ydt(e);if(!r)return null;var n=Ixr(e);return(r.typ==="JWT"||t.json)&&(n=JSON.parse(n,t.encoding)),{header:r,payload:n,signature:bdt(e)}}function q8(e){e=e||{};var t=e.secret||e.publicKey||e.key,r=new mdt(t);this.readable=!0,this.algorithm=e.algorithm,this.encoding=e.encoding,this.secret=this.publicKey=this.key=r,this.signature=new mdt(e.signature),this.secret.once("close",function(){!this.signature.writable&&this.readable&&this.verify()}.bind(this)),this.signature.once("close",function(){!this.secret.writable&&this.readable&&this.verify()}.bind(this))}Txr.inherits(q8,Axr);q8.prototype.verify=function(){try{var t=_dt(this.signature.buffer,this.algorithm,this.key.buffer),r=xdt(this.signature.buffer,this.encoding);return this.emit("done",t,r),this.emit("data",t),this.emit("end"),this.readable=!1,t}catch(n){this.readable=!1,this.emit("error",n),this.emit("close")}};q8.decode=xdt;q8.isValid=wdt;q8.verify=_dt;Edt.exports=q8});var _0e=b(qv=>{var kdt=hdt(),cB=Sdt(),Rxr=["HS256","HS384","HS512","RS256","RS384","RS512","PS256","PS384","PS512","ES256","ES384","ES512"];qv.ALGORITHMS=Rxr;qv.sign=kdt.sign;qv.verify=cB.verify;qv.decode=cB.decode;qv.isValid=cB.isValid;qv.createSign=function(t){return new kdt(t)};qv.createVerify=function(t){return new cB(t)}});var Rdt=b(Lv=>{"use strict";var sd=Lv&&Lv.__classPrivateFieldGet||function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Adt=Lv&&Lv.__classPrivateFieldSet||function(e,t,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},od,L8,x0e,Tdt,Odt,E0e,S0e,Ddt;Object.defineProperty(Lv,"__esModule",{value:!0});Lv.GoogleToken=void 0;var Cdt=require("fs"),Fxr=ed(),jxr=_0e(),Nxr=require("path"),qxr=require("util"),Pdt=Cdt.readFile?(0,qxr.promisify)(Cdt.readFile):async()=>{throw new Gw("use key rather than keyFile.","MISSING_CREDENTIALS")},Idt="https://www.googleapis.com/oauth2/v4/token",Lxr="https://accounts.google.com/o/oauth2/revoke?token=",Gw=class extends Error{constructor(t,r){super(t),this.code=r}},k0e=class{get accessToken(){return this.rawToken?this.rawToken.access_token:void 0}get idToken(){return this.rawToken?this.rawToken.id_token:void 0}get tokenType(){return this.rawToken?this.rawToken.token_type:void 0}get refreshToken(){return this.rawToken?this.rawToken.refresh_token:void 0}constructor(t){od.add(this),this.transporter={request:r=>(0,Fxr.request)(r)},L8.set(this,void 0),sd(this,od,"m",S0e).call(this,t)}hasExpired(){let t=new Date().getTime();return this.rawToken&&this.expiresAt?t>=this.expiresAt:!0}isTokenExpiring(){var t;let r=new Date().getTime(),n=(t=this.eagerRefreshThresholdMillis)!==null&&t!==void 0?t:0;return this.rawToken&&this.expiresAt?this.expiresAt<=r+n:!0}getToken(t,r={}){if(typeof t=="object"&&(r=t,t=void 0),r=Object.assign({forceRefresh:!1},r),t){let n=t;sd(this,od,"m",x0e).call(this,r).then(i=>n(null,i),t);return}return sd(this,od,"m",x0e).call(this,r)}async getCredentials(t){switch(Nxr.extname(t)){case".json":{let n=await Pdt(t,"utf8"),i=JSON.parse(n),a=i.private_key,s=i.client_email;if(!a||!s)throw new Gw("private_key and client_email are required.","MISSING_CREDENTIALS");return{privateKey:a,clientEmail:s}}case".der":case".crt":case".pem":return{privateKey:await Pdt(t,"utf8")};case".p12":case".pfx":throw new Gw("*.p12 certificates are not supported after v6.1.2. Consider utilizing *.json format or converting *.p12 to *.pem using the OpenSSL CLI.","UNKNOWN_CERTIFICATE_TYPE");default:throw new Gw("Unknown certificate type. Type is determined based on file extension. Current supported extensions are *.json, and *.pem.","UNKNOWN_CERTIFICATE_TYPE")}}revokeToken(t){if(t){sd(this,od,"m",E0e).call(this).then(()=>t(),t);return}return sd(this,od,"m",E0e).call(this)}};Lv.GoogleToken=k0e;L8=new WeakMap,od=new WeakSet,x0e=async function(t){if(sd(this,L8,"f")&&!t.forceRefresh)return sd(this,L8,"f");try{return await Adt(this,L8,sd(this,od,"m",Tdt).call(this,t),"f")}finally{Adt(this,L8,void 0,"f")}},Tdt=async function(t){if(this.isTokenExpiring()===!1&&t.forceRefresh===!1)return Promise.resolve(this.rawToken);if(!this.key&&!this.keyFile)throw new Error("No key or keyFile set.");if(!this.key&&this.keyFile){let r=await this.getCredentials(this.keyFile);this.key=r.privateKey,this.iss=r.clientEmail||this.iss,r.clientEmail||sd(this,od,"m",Odt).call(this)}return sd(this,od,"m",Ddt).call(this)},Odt=function(){if(!this.iss)throw new Gw("email is required.","MISSING_CREDENTIALS")},E0e=async function(){if(!this.accessToken)throw new Error("No token to revoke.");let t=Lxr+this.accessToken;await this.transporter.request({url:t,retry:!0}),sd(this,od,"m",S0e).call(this,{email:this.iss,sub:this.sub,key:this.key,keyFile:this.keyFile,scope:this.scope,additionalClaims:this.additionalClaims})},S0e=function(t={}){this.keyFile=t.keyFile,this.key=t.key,this.rawToken=void 0,this.iss=t.email||t.iss,this.sub=t.sub,this.additionalClaims=t.additionalClaims,typeof t.scope=="object"?this.scope=t.scope.join(" "):this.scope=t.scope,this.eagerRefreshThresholdMillis=t.eagerRefreshThresholdMillis,t.transporter&&(this.transporter=t.transporter)},Ddt=async function(){var t,r;let n=Math.floor(new Date().getTime()/1e3),i=this.additionalClaims||{},a=Object.assign({iss:this.iss,scope:this.scope,aud:Idt,exp:n+3600,iat:n,sub:this.sub},i),s=jxr.sign({header:{alg:"RS256"},payload:a,secret:this.key});try{let o=await this.transporter.request({method:"POST",url:Idt,data:{grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:s},headers:{"Content-Type":"application/x-www-form-urlencoded"},responseType:"json",retryConfig:{httpMethodsToRetry:["POST"]}});return this.rawToken=o.data,this.expiresAt=o.data.expires_in===null||o.data.expires_in===void 0?void 0:(n+o.data.expires_in)*1e3,this.rawToken}catch(o){this.rawToken=void 0,this.tokenExpires=void 0;let c=o.response&&(!((t=o.response)===null||t===void 0)&&t.data)?(r=o.response)===null||r===void 0?void 0:r.data:{};if(c.error){let p=c.error_description?`: ${c.error_description}`:"";o.message=`${c.error}${p}`}throw o}}});var T0e=b(lB=>{"use strict";Object.defineProperty(lB,"__esModule",{value:!0});lB.JWTAccess=void 0;var $xr=_0e(),Bxr=Nv(),Fdt={alg:"RS256",typ:"JWT"},A0e=class e{constructor(t,r,n,i){this.cache=new Bxr.LRUCache({capacity:500,maxAge:60*60*1e3}),this.email=t,this.key=r,this.keyId=n,this.eagerRefreshThresholdMillis=i??5*60*1e3}getCachedKey(t,r){let n=t;if(r&&Array.isArray(r)&&r.length?n=t?`${t}_${r.join("_")}`:`${r.join("_")}`:typeof r=="string"&&(n=t?`${t}_${r}`:r),!n)throw Error("Scopes or url must be provided");return n}getRequestHeaders(t,r,n){let i=this.getCachedKey(t,n),a=this.cache.get(i),s=Date.now();if(a&&a.expiration-s>this.eagerRefreshThresholdMillis)return a.headers;let o=Math.floor(Date.now()/1e3),c=e.getExpirationTime(o),p;if(Array.isArray(n)&&(n=n.join(" ")),n?p={iss:this.email,sub:this.email,scope:n,exp:c,iat:o}:p={iss:this.email,sub:this.email,aud:t,exp:c,iat:o},r){for(let v in p)if(r[v])throw new Error(`The '${v}' property is not allowed when passing additionalClaims. This claim is included in the JWT by default.`)}let f=this.keyId?{...Fdt,kid:this.keyId}:Fdt,d=Object.assign(p,r),g={Authorization:`Bearer ${$xr.sign({header:f,payload:d,secret:this.key})}`};return this.cache.set(i,{expiration:c*1e3,headers:g}),g}static getExpirationTime(t){return t+3600}fromJSON(t){if(!t)throw new Error("Must pass in a JSON object containing the service account auth settings.");if(!t.client_email)throw new Error("The incoming JSON object does not contain a client_email field");if(!t.private_key)throw new Error("The incoming JSON object does not contain a private_key field");this.email=t.client_email,this.key=t.private_key,this.keyId=t.private_key_id,this.projectId=t.project_id}fromStream(t,r){if(r)this.fromStreamAsync(t).then(()=>r(),r);else return this.fromStreamAsync(t)}fromStreamAsync(t){return new Promise((r,n)=>{t||n(new Error("Must pass in a stream containing the service account auth settings."));let i="";t.setEncoding("utf8").on("data",a=>i+=a).on("error",n).on("end",()=>{try{let a=JSON.parse(i);this.fromJSON(a),r()}catch(a){n(a)}})})}};lB.JWTAccess=A0e});var D0e=b(fB=>{"use strict";Object.defineProperty(fB,"__esModule",{value:!0});fB.JWT=void 0;var jdt=Rdt(),Mxr=T0e(),Uxr=Vw(),pB=Nh(),O0e=class e extends Uxr.OAuth2Client{constructor(t,r,n,i,a,s){let o=t&&typeof t=="object"?t:{email:t,keyFile:r,key:n,keyId:s,scopes:i,subject:a};super(o),this.email=o.email,this.keyFile=o.keyFile,this.key=o.key,this.keyId=o.keyId,this.scopes=o.scopes,this.subject=o.subject,this.additionalClaims=o.additionalClaims,this.credentials={refresh_token:"jwt-placeholder",expiry_date:1}}createScoped(t){let r=new e(this);return r.scopes=t,r}async getRequestMetadataAsync(t){t=this.defaultServicePath?`https://${this.defaultServicePath}/`:t;let r=!this.hasUserScopes()&&t||this.useJWTAccessWithScope&&this.hasAnyScopes()||this.universeDomain!==pB.DEFAULT_UNIVERSE;if(this.subject&&this.universeDomain!==pB.DEFAULT_UNIVERSE)throw new RangeError(`Service Account user is configured for the credential. Domain-wide delegation is not supported in universes other than ${pB.DEFAULT_UNIVERSE}`);if(!this.apiKey&&r)if(this.additionalClaims&&this.additionalClaims.target_audience){let{tokens:n}=await this.refreshToken();return{headers:this.addSharedMetadataHeaders({Authorization:`Bearer ${n.id_token}`})}}else{this.access||(this.access=new Mxr.JWTAccess(this.email,this.key,this.keyId,this.eagerRefreshThresholdMillis));let n;this.hasUserScopes()?n=this.scopes:t||(n=this.defaultScopes);let i=this.useJWTAccessWithScope||this.universeDomain!==pB.DEFAULT_UNIVERSE,a=await this.access.getRequestHeaders(t??void 0,this.additionalClaims,i?n:void 0);return{headers:this.addSharedMetadataHeaders(a)}}else return this.hasAnyScopes()||this.apiKey?super.getRequestMetadataAsync(t):{headers:{}}}async fetchIdToken(t){let r=new jdt.GoogleToken({iss:this.email,sub:this.subject,scope:this.scopes||this.defaultScopes,keyFile:this.keyFile,key:this.key,additionalClaims:{target_audience:t},transporter:this.transporter});if(await r.getToken({forceRefresh:!0}),!r.idToken)throw new Error("Unknown error: Failed to fetch ID token");return r.idToken}hasUserScopes(){return this.scopes?this.scopes.length>0:!1}hasAnyScopes(){return!!(this.scopes&&this.scopes.length>0||this.defaultScopes&&this.defaultScopes.length>0)}authorize(t){if(t)this.authorizeAsync().then(r=>t(null,r),t);else return this.authorizeAsync()}async authorizeAsync(){let t=await this.refreshToken();if(!t)throw new Error("No result returned");return this.credentials=t.tokens,this.credentials.refresh_token="jwt-placeholder",this.key=this.gtoken.key,this.email=this.gtoken.iss,t.tokens}async refreshTokenNoCache(t){let r=this.createGToken(),i={access_token:(await r.getToken({forceRefresh:this.isTokenExpiring()})).access_token,token_type:"Bearer",expiry_date:r.expiresAt,id_token:r.idToken};return this.emit("tokens",i),{res:null,tokens:i}}createGToken(){return this.gtoken||(this.gtoken=new jdt.GoogleToken({iss:this.email,sub:this.subject,scope:this.scopes||this.defaultScopes,keyFile:this.keyFile,key:this.key,additionalClaims:this.additionalClaims,transporter:this.transporter})),this.gtoken}fromJSON(t){if(!t)throw new Error("Must pass in a JSON object containing the service account auth settings.");if(!t.client_email)throw new Error("The incoming JSON object does not contain a client_email field");if(!t.private_key)throw new Error("The incoming JSON object does not contain a private_key field");this.email=t.client_email,this.key=t.private_key,this.keyId=t.private_key_id,this.projectId=t.project_id,this.quotaProjectId=t.quota_project_id,this.universeDomain=t.universe_domain||this.universeDomain}fromStream(t,r){if(r)this.fromStreamAsync(t).then(()=>r(),r);else return this.fromStreamAsync(t)}fromStreamAsync(t){return new Promise((r,n)=>{if(!t)throw new Error("Must pass in a stream containing the service account auth settings.");let i="";t.setEncoding("utf8").on("error",n).on("data",a=>i+=a).on("end",()=>{try{let a=JSON.parse(i);this.fromJSON(a),r()}catch(a){n(a)}})})}fromAPIKey(t){if(typeof t!="string")throw new Error("Must provide an API Key string.");this.apiKey=t}async getCredentials(){if(this.key)return{private_key:this.key,client_email:this.email};if(this.keyFile){let r=await this.createGToken().getCredentials(this.keyFile);return{private_key:r.privateKey,client_email:r.clientEmail}}throw new Error("A key or a keyFile must be provided to getCredentials.")}};fB.JWT=O0e});var P0e=b($8=>{"use strict";Object.defineProperty($8,"__esModule",{value:!0});$8.UserRefreshClient=$8.USER_REFRESH_ACCOUNT_TYPE=void 0;var zxr=Vw(),Hxr=require("querystring");$8.USER_REFRESH_ACCOUNT_TYPE="authorized_user";var C0e=class e extends zxr.OAuth2Client{constructor(t,r,n,i,a){let s=t&&typeof t=="object"?t:{clientId:t,clientSecret:r,refreshToken:n,eagerRefreshThresholdMillis:i,forceRefreshOnFailure:a};super(s),this._refreshToken=s.refreshToken,this.credentials.refresh_token=s.refreshToken}async refreshTokenNoCache(t){return super.refreshTokenNoCache(this._refreshToken)}async fetchIdToken(t){return(await this.transporter.request({...e.RETRY_CONFIG,url:this.endpoints.oauth2TokenUrl,headers:{"Content-Type":"application/x-www-form-urlencoded"},method:"POST",data:(0,Hxr.stringify)({client_id:this._clientId,client_secret:this._clientSecret,grant_type:"refresh_token",refresh_token:this._refreshToken,target_audience:t})})).data.id_token}fromJSON(t){if(!t)throw new Error("Must pass in a JSON object containing the user refresh token");if(t.type!=="authorized_user")throw new Error('The incoming JSON object does not have the "authorized_user" type');if(!t.client_id)throw new Error("The incoming JSON object does not contain a client_id field");if(!t.client_secret)throw new Error("The incoming JSON object does not contain a client_secret field");if(!t.refresh_token)throw new Error("The incoming JSON object does not contain a refresh_token field");this._clientId=t.client_id,this._clientSecret=t.client_secret,this._refreshToken=t.refresh_token,this.credentials.refresh_token=t.refresh_token,this.quotaProjectId=t.quota_project_id,this.universeDomain=t.universe_domain||this.universeDomain}fromStream(t,r){if(r)this.fromStreamAsync(t).then(()=>r(),r);else return this.fromStreamAsync(t)}async fromStreamAsync(t){return new Promise((r,n)=>{if(!t)return n(new Error("Must pass in a stream containing the user refresh token."));let i="";t.setEncoding("utf8").on("error",n).on("data",a=>i+=a).on("end",()=>{try{let a=JSON.parse(i);return this.fromJSON(a),r()}catch(a){return n(a)}})})}static fromJSON(t){let r=new e;return r.fromJSON(t),r}};$8.UserRefreshClient=C0e});var R0e=b(B8=>{"use strict";Object.defineProperty(B8,"__esModule",{value:!0});B8.Impersonated=B8.IMPERSONATED_ACCOUNT_TYPE=void 0;var Ndt=Vw(),Vxr=ed(),Gxr=Nv();B8.IMPERSONATED_ACCOUNT_TYPE="impersonated_service_account";var I0e=class e extends Ndt.OAuth2Client{constructor(t={}){var r,n,i,a,s,o;if(super(t),this.credentials={expiry_date:1,refresh_token:"impersonated-placeholder"},this.sourceClient=(r=t.sourceClient)!==null&&r!==void 0?r:new Ndt.OAuth2Client,this.targetPrincipal=(n=t.targetPrincipal)!==null&&n!==void 0?n:"",this.delegates=(i=t.delegates)!==null&&i!==void 0?i:[],this.targetScopes=(a=t.targetScopes)!==null&&a!==void 0?a:[],this.lifetime=(s=t.lifetime)!==null&&s!==void 0?s:3600,!!!(0,Gxr.originalOrCamelOptions)(t).get("universe_domain"))this.universeDomain=this.sourceClient.universeDomain;else if(this.sourceClient.universeDomain!==this.universeDomain)throw new RangeError(`Universe domain ${this.sourceClient.universeDomain} in source credentials does not match ${this.universeDomain} universe domain set for impersonated credentials.`);this.endpoint=(o=t.endpoint)!==null&&o!==void 0?o:`https://iamcredentials.${this.universeDomain}`}async sign(t){await this.sourceClient.getAccessToken();let r=`projects/-/serviceAccounts/${this.targetPrincipal}`,n=`${this.endpoint}/v1/${r}:signBlob`,i={delegates:this.delegates,payload:Buffer.from(t).toString("base64")};return(await this.sourceClient.request({...e.RETRY_CONFIG,url:n,data:i,method:"POST"})).data}getTargetPrincipal(){return this.targetPrincipal}async refreshToken(){var t,r,n,i,a,s;try{await this.sourceClient.getAccessToken();let o="projects/-/serviceAccounts/"+this.targetPrincipal,c=`${this.endpoint}/v1/${o}:generateAccessToken`,p={delegates:this.delegates,scope:this.targetScopes,lifetime:this.lifetime+"s"},f=await this.sourceClient.request({...e.RETRY_CONFIG,url:c,data:p,method:"POST"}),d=f.data;return this.credentials.access_token=d.accessToken,this.credentials.expiry_date=Date.parse(d.expireTime),{tokens:this.credentials,res:f}}catch(o){if(!(o instanceof Error))throw o;let c=0,p="";throw o instanceof Vxr.GaxiosError&&(c=(n=(r=(t=o?.response)===null||t===void 0?void 0:t.data)===null||r===void 0?void 0:r.error)===null||n===void 0?void 0:n.status,p=(s=(a=(i=o?.response)===null||i===void 0?void 0:i.data)===null||a===void 0?void 0:a.error)===null||s===void 0?void 0:s.message),c&&p?(o.message=`${c}: unable to impersonate: ${p}`,o):(o.message=`unable to impersonate: ${o}`,o)}}async fetchIdToken(t,r){var n,i;await this.sourceClient.getAccessToken();let a=`projects/-/serviceAccounts/${this.targetPrincipal}`,s=`${this.endpoint}/v1/${a}:generateIdToken`,o={delegates:this.delegates,audience:t,includeEmail:(n=r?.includeEmail)!==null&&n!==void 0?n:!0,useEmailAzp:(i=r?.includeEmail)!==null&&i!==void 0?i:!0};return(await this.sourceClient.request({...e.RETRY_CONFIG,url:s,data:o,method:"POST"})).data.token}};B8.Impersonated=I0e});var j0e=b(NT=>{"use strict";Object.defineProperty(NT,"__esModule",{value:!0});NT.OAuthClientAuthHandler=void 0;NT.getErrorFromOAuthErrorResponse=Yxr;var qdt=require("querystring"),Wxr=C8(),Kxr=["PUT","POST","PATCH"],F0e=class{constructor(t){this.clientAuthentication=t,this.crypto=(0,Wxr.createCrypto)()}applyClientAuthenticationOptions(t,r){this.injectAuthenticatedHeaders(t,r),r||this.injectAuthenticatedRequestBody(t)}injectAuthenticatedHeaders(t,r){var n;if(r)t.headers=t.headers||{},Object.assign(t.headers,{Authorization:`Bearer ${r}}`});else if(((n=this.clientAuthentication)===null||n===void 0?void 0:n.confidentialClientType)==="basic"){t.headers=t.headers||{};let i=this.clientAuthentication.clientId,a=this.clientAuthentication.clientSecret||"",s=this.crypto.encodeBase64StringUtf8(`${i}:${a}`);Object.assign(t.headers,{Authorization:`Basic ${s}`})}}injectAuthenticatedRequestBody(t){var r;if(((r=this.clientAuthentication)===null||r===void 0?void 0:r.confidentialClientType)==="request-body"){let n=(t.method||"GET").toUpperCase();if(Kxr.indexOf(n)!==-1){let i,a=t.headers||{};for(let s in a)if(s.toLowerCase()==="content-type"&&a[s]){i=a[s].toLowerCase();break}if(i==="application/x-www-form-urlencoded"){t.data=t.data||"";let s=qdt.parse(t.data);Object.assign(s,{client_id:this.clientAuthentication.clientId,client_secret:this.clientAuthentication.clientSecret||""}),t.data=qdt.stringify(s)}else if(i==="application/json")t.data=t.data||{},Object.assign(t.data,{client_id:this.clientAuthentication.clientId,client_secret:this.clientAuthentication.clientSecret||""});else throw new Error(`${i} content-types are not supported with ${this.clientAuthentication.confidentialClientType} client authentication`)}else throw new Error(`${n} HTTP method does not support ${this.clientAuthentication.confidentialClientType} client authentication`)}}static get RETRY_CONFIG(){return{retry:!0,retryConfig:{httpMethodsToRetry:["GET","PUT","POST","HEAD","OPTIONS","DELETE"]}}}};NT.OAuthClientAuthHandler=F0e;function Yxr(e,t){let r=e.error,n=e.error_description,i=e.error_uri,a=`Error code ${r}`;typeof n<"u"&&(a+=`: ${n}`),typeof i<"u"&&(a+=` - ${i}`);let s=new Error(a);if(t){let o=Object.keys(t);t.stack&&o.push("stack"),o.forEach(c=>{c!=="message"&&Object.defineProperty(s,c,{value:t[c],writable:!1,enumerable:!0})})}return s}});var q0e=b(dB=>{"use strict";Object.defineProperty(dB,"__esModule",{value:!0});dB.StsCredentials=void 0;var Jxr=ed(),Xxr=require("querystring"),Qxr=CT(),Ldt=j0e(),N0e=class e extends Ldt.OAuthClientAuthHandler{constructor(t,r){super(r),this.tokenExchangeEndpoint=t,this.transporter=new Qxr.DefaultTransporter}async exchangeToken(t,r,n){var i,a,s;let o={grant_type:t.grantType,resource:t.resource,audience:t.audience,scope:(i=t.scope)===null||i===void 0?void 0:i.join(" "),requested_token_type:t.requestedTokenType,subject_token:t.subjectToken,subject_token_type:t.subjectTokenType,actor_token:(a=t.actingParty)===null||a===void 0?void 0:a.actorToken,actor_token_type:(s=t.actingParty)===null||s===void 0?void 0:s.actorTokenType,options:n&&JSON.stringify(n)};Object.keys(o).forEach(f=>{typeof o[f]>"u"&&delete o[f]});let c={"Content-Type":"application/x-www-form-urlencoded"};Object.assign(c,r||{});let p={...e.RETRY_CONFIG,url:this.tokenExchangeEndpoint.toString(),method:"POST",headers:c,data:Xxr.stringify(o),responseType:"json"};this.applyClientAuthenticationOptions(p);try{let f=await this.transporter.request(p),d=f.data;return d.res=f,d}catch(f){throw f instanceof Jxr.GaxiosError&&f.response?(0,Ldt.getErrorFromOAuthErrorResponse)(f.response.data,f):f}}};dB.StsCredentials=N0e});var $v=b(bo=>{"use strict";var L0e=bo&&bo.__classPrivateFieldGet||function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},$dt=bo&&bo.__classPrivateFieldSet||function(e,t,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},$0e,M8,Mdt;Object.defineProperty(bo,"__esModule",{value:!0});bo.BaseExternalAccountClient=bo.DEFAULT_UNIVERSE=bo.CLOUD_RESOURCE_MANAGER=bo.EXTERNAL_ACCOUNT_TYPE=bo.EXPIRATION_TIME_OFFSET=void 0;var Zxr=require("stream"),eEr=Nh(),tEr=q0e(),Bdt=Nv(),rEr="urn:ietf:params:oauth:grant-type:token-exchange",nEr="urn:ietf:params:oauth:token-type:access_token",B0e="https://www.googleapis.com/auth/cloud-platform",iEr=3600;bo.EXPIRATION_TIME_OFFSET=5*60*1e3;bo.EXTERNAL_ACCOUNT_TYPE="external_account";bo.CLOUD_RESOURCE_MANAGER="https://cloudresourcemanager.googleapis.com/v1/projects/";var aEr="//iam\\.googleapis\\.com/locations/[^/]+/workforcePools/[^/]+/providers/.+",sEr="https://sts.{universeDomain}/v1/token",oEr=Q1e(),uEr=Nh();Object.defineProperty(bo,"DEFAULT_UNIVERSE",{enumerable:!0,get:function(){return uEr.DEFAULT_UNIVERSE}});var M0e=class e extends eEr.AuthClient{constructor(t,r){var n;super({...t,...r}),$0e.add(this),M8.set(this,null);let i=(0,Bdt.originalOrCamelOptions)(t),a=i.get("type");if(a&&a!==bo.EXTERNAL_ACCOUNT_TYPE)throw new Error(`Expected "${bo.EXTERNAL_ACCOUNT_TYPE}" type but received "${t.type}"`);let s=i.get("client_id"),o=i.get("client_secret"),c=(n=i.get("token_url"))!==null&&n!==void 0?n:sEr.replace("{universeDomain}",this.universeDomain),p=i.get("subject_token_type"),f=i.get("workforce_pool_user_project"),d=i.get("service_account_impersonation_url"),h=i.get("service_account_impersonation"),g=(0,Bdt.originalOrCamelOptions)(h).get("token_lifetime_seconds");this.cloudResourceManagerURL=new URL(i.get("cloud_resource_manager_url")||`https://cloudresourcemanager.${this.universeDomain}/v1/projects/`),s&&(this.clientAuth={confidentialClientType:"basic",clientId:s,clientSecret:o}),this.stsCredential=new tEr.StsCredentials(c,this.clientAuth),this.scopes=i.get("scopes")||[B0e],this.cachedAccessToken=null,this.audience=i.get("audience"),this.subjectTokenType=p,this.workforcePoolUserProject=f;let v=new RegExp(aEr);if(this.workforcePoolUserProject&&!this.audience.match(v))throw new Error("workforcePoolUserProject should not be set for non-workforce pool credentials.");this.serviceAccountImpersonationUrl=d,this.serviceAccountImpersonationLifetime=g,this.serviceAccountImpersonationLifetime?this.configLifetimeRequested=!0:(this.configLifetimeRequested=!1,this.serviceAccountImpersonationLifetime=iEr),this.projectNumber=this.getProjectNumber(this.audience),this.supplierContext={audience:this.audience,subjectTokenType:this.subjectTokenType,transporter:this.transporter}}getServiceAccountEmail(){var t;if(this.serviceAccountImpersonationUrl){if(this.serviceAccountImpersonationUrl.length>256)throw new RangeError(`URL is too long: ${this.serviceAccountImpersonationUrl}`);let n=/serviceAccounts\/(?<email>[^:]+):generateAccessToken$/.exec(this.serviceAccountImpersonationUrl);return((t=n?.groups)===null||t===void 0?void 0:t.email)||null}return null}setCredentials(t){super.setCredentials(t),this.cachedAccessToken=t}async getAccessToken(){return(!this.cachedAccessToken||this.isExpired(this.cachedAccessToken))&&await this.refreshAccessTokenAsync(),{token:this.cachedAccessToken.access_token,res:this.cachedAccessToken.res}}async getRequestHeaders(){let r={Authorization:`Bearer ${(await this.getAccessToken()).token}`};return this.addSharedMetadataHeaders(r)}request(t,r){if(r)this.requestAsync(t).then(n=>r(null,n),n=>r(n,n.response));else return this.requestAsync(t)}async getProjectId(){let t=this.projectNumber||this.workforcePoolUserProject;if(this.projectId)return this.projectId;if(t){let r=await this.getRequestHeaders(),n=await this.transporter.request({...e.RETRY_CONFIG,headers:r,url:`${this.cloudResourceManagerURL.toString()}${t}`,responseType:"json"});return this.projectId=n.data.projectId,this.projectId}return null}async requestAsync(t,r=!1){let n;try{let i=await this.getRequestHeaders();t.headers=t.headers||{},i&&i["x-goog-user-project"]&&(t.headers["x-goog-user-project"]=i["x-goog-user-project"]),i&&i.Authorization&&(t.headers.Authorization=i.Authorization),n=await this.transporter.request(t)}catch(i){let a=i.response;if(a){let s=a.status,o=a.config.data instanceof Zxr.Readable;if(!r&&(s===401||s===403)&&!o&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(t,!0)}throw i}return n}async refreshAccessTokenAsync(){$dt(this,M8,L0e(this,M8,"f")||L0e(this,$0e,"m",Mdt).call(this),"f");try{return await L0e(this,M8,"f")}finally{$dt(this,M8,null,"f")}}getProjectNumber(t){let r=t.match(/\/projects\/([^/]+)/);return r?r[1]:null}async getImpersonatedAccessToken(t){let r={...e.RETRY_CONFIG,url:this.serviceAccountImpersonationUrl,method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`},data:{scope:this.getScopesArray(),lifetime:this.serviceAccountImpersonationLifetime+"s"},responseType:"json"},n=await this.transporter.request(r),i=n.data;return{access_token:i.accessToken,expiry_date:new Date(i.expireTime).getTime(),res:n}}isExpired(t){let r=new Date().getTime();return t.expiry_date?r>=t.expiry_date-this.eagerRefreshThresholdMillis:!1}getScopesArray(){return typeof this.scopes=="string"?[this.scopes]:this.scopes||[B0e]}getMetricsHeaderValue(){let t=process.version.replace(/^v/,""),r=this.serviceAccountImpersonationUrl!==void 0,n=this.credentialSourceType?this.credentialSourceType:"unknown";return`gl-node/${t} auth/${oEr.version} google-byoid-sdk source/${n} sa-impersonation/${r} config-lifetime/${this.configLifetimeRequested}`}};bo.BaseExternalAccountClient=M0e;M8=new WeakMap,$0e=new WeakSet,Mdt=async function(){let t=await this.retrieveSubjectToken(),r={grantType:rEr,audience:this.audience,requestedTokenType:nEr,subjectToken:t,subjectTokenType:this.subjectTokenType,scope:this.serviceAccountImpersonationUrl?[B0e]:this.getScopesArray()},n=!this.clientAuth&&this.workforcePoolUserProject?{userProject:this.workforcePoolUserProject}:void 0,i={"x-goog-api-client":this.getMetricsHeaderValue()},a=await this.stsCredential.exchangeToken(r,i,n);return this.serviceAccountImpersonationUrl?this.cachedAccessToken=await this.getImpersonatedAccessToken(a.access_token):a.expires_in?this.cachedAccessToken={access_token:a.access_token,expiry_date:new Date().getTime()+a.expires_in*1e3,res:a.res}:this.cachedAccessToken={access_token:a.access_token,res:a.res},this.credentials={},Object.assign(this.credentials,this.cachedAccessToken),delete this.credentials.res,this.emit("tokens",{refresh_token:null,expiry_date:this.cachedAccessToken.expiry_date,access_token:this.cachedAccessToken.access_token,token_type:"Bearer",id_token:null}),this.cachedAccessToken}});var Udt=b(hB=>{"use strict";var U0e,z0e,H0e;Object.defineProperty(hB,"__esModule",{value:!0});hB.FileSubjectTokenSupplier=void 0;var G0e=require("util"),W0e=require("fs"),cEr=(0,G0e.promisify)((U0e=W0e.readFile)!==null&&U0e!==void 0?U0e:()=>{}),lEr=(0,G0e.promisify)((z0e=W0e.realpath)!==null&&z0e!==void 0?z0e:()=>{}),pEr=(0,G0e.promisify)((H0e=W0e.lstat)!==null&&H0e!==void 0?H0e:()=>{}),V0e=class{constructor(t){this.filePath=t.filePath,this.formatType=t.formatType,this.subjectTokenFieldName=t.subjectTokenFieldName}async getSubjectToken(t){let r=this.filePath;try{if(r=await lEr(r),!(await pEr(r)).isFile())throw new Error}catch(a){throw a instanceof Error&&(a.message=`The file at ${r} does not exist, or it is not a file. ${a.message}`),a}let n,i=await cEr(r,{encoding:"utf8"});if(this.formatType==="text"?n=i:this.formatType==="json"&&this.subjectTokenFieldName&&(n=JSON.parse(i)[this.subjectTokenFieldName]),!n)throw new Error("Unable to parse the subject_token from the credential_source file");return n}};hB.FileSubjectTokenSupplier=V0e});var zdt=b(mB=>{"use strict";Object.defineProperty(mB,"__esModule",{value:!0});mB.UrlSubjectTokenSupplier=void 0;var K0e=class{constructor(t){this.url=t.url,this.formatType=t.formatType,this.subjectTokenFieldName=t.subjectTokenFieldName,this.headers=t.headers,this.additionalGaxiosOptions=t.additionalGaxiosOptions}async getSubjectToken(t){let r={...this.additionalGaxiosOptions,url:this.url,method:"GET",headers:this.headers,responseType:this.formatType},n;if(this.formatType==="text"?n=(await t.transporter.request(r)).data:this.formatType==="json"&&this.subjectTokenFieldName&&(n=(await t.transporter.request(r)).data[this.subjectTokenFieldName]),!n)throw new Error("Unable to parse the subject_token from the credential_source URL");return n}};mB.UrlSubjectTokenSupplier=K0e});var X0e=b(gB=>{"use strict";Object.defineProperty(gB,"__esModule",{value:!0});gB.IdentityPoolClient=void 0;var fEr=$v(),Y0e=Nv(),dEr=Udt(),hEr=zdt(),J0e=class e extends fEr.BaseExternalAccountClient{constructor(t,r){super(t,r);let n=(0,Y0e.originalOrCamelOptions)(t),i=n.get("credential_source"),a=n.get("subject_token_supplier");if(!i&&!a)throw new Error("A credential source or subject token supplier must be specified.");if(i&&a)throw new Error("Only one of credential source or subject token supplier can be specified.");if(a)this.subjectTokenSupplier=a,this.credentialSourceType="programmatic";else{let s=(0,Y0e.originalOrCamelOptions)(i),o=(0,Y0e.originalOrCamelOptions)(s.get("format")),c=o.get("type")||"text",p=o.get("subject_token_field_name");if(c!=="json"&&c!=="text")throw new Error(`Invalid credential_source format "${c}"`);if(c==="json"&&!p)throw new Error("Missing subject_token_field_name for JSON credential_source format");let f=s.get("file"),d=s.get("url"),h=s.get("headers");if(f&&d)throw new Error('No valid Identity Pool "credential_source" provided, must be either file or url.');if(f&&!d)this.credentialSourceType="file",this.subjectTokenSupplier=new dEr.FileSubjectTokenSupplier({filePath:f,formatType:c,subjectTokenFieldName:p});else if(!f&&d)this.credentialSourceType="url",this.subjectTokenSupplier=new hEr.UrlSubjectTokenSupplier({url:d,formatType:c,subjectTokenFieldName:p,headers:h,additionalGaxiosOptions:e.RETRY_CONFIG});else throw new Error('No valid Identity Pool "credential_source" provided, must be either file or url.')}}async retrieveSubjectToken(){return this.subjectTokenSupplier.getSubjectToken(this.supplierContext)}};gB.IdentityPoolClient=J0e});var Z0e=b(vB=>{"use strict";Object.defineProperty(vB,"__esModule",{value:!0});vB.AwsRequestSigner=void 0;var Vdt=C8(),Hdt="AWS4-HMAC-SHA256",mEr="aws4_request",Q0e=class{constructor(t,r){this.getCredentials=t,this.region=r,this.crypto=(0,Vdt.createCrypto)()}async getRequestOptions(t){if(!t.url)throw new Error('"url" is required in "amzOptions"');let r=typeof t.data=="object"?JSON.stringify(t.data):t.data,n=t.url,i=t.method||"GET",a=t.body||r,s=t.headers,o=await this.getCredentials(),c=new URL(n),p=await vEr({crypto:this.crypto,host:c.host,canonicalUri:c.pathname,canonicalQuerystring:c.search.substr(1),method:i,region:this.region,securityCredentials:o,requestPayload:a,additionalAmzHeaders:s}),f=Object.assign(p.amzDate?{"x-amz-date":p.amzDate}:{},{Authorization:p.authorizationHeader,host:c.host},s||{});o.token&&Object.assign(f,{"x-amz-security-token":o.token});let d={url:n,method:i,headers:f};return typeof a<"u"&&(d.body=a),d}};vB.AwsRequestSigner=Q0e;async function qT(e,t,r){return await e.signWithHmacSha256(t,r)}async function gEr(e,t,r,n,i){let a=await qT(e,`AWS4${t}`,r),s=await qT(e,a,n),o=await qT(e,s,i);return await qT(e,o,"aws4_request")}async function vEr(e){let t=e.additionalAmzHeaders||{},r=e.requestPayload||"",n=e.host.split(".")[0],i=new Date,a=i.toISOString().replace(/[-:]/g,"").replace(/\.[0-9]+/,""),s=i.toISOString().replace(/[-]/g,"").replace(/T.*/,""),o={};Object.keys(t).forEach(D=>{o[D.toLowerCase()]=t[D]}),e.securityCredentials.token&&(o["x-amz-security-token"]=e.securityCredentials.token);let c=Object.assign({host:e.host},o.date?{}:{"x-amz-date":a},o),p="",f=Object.keys(c).sort();f.forEach(D=>{p+=`${D}:${c[D]}
`});let d=f.join(";"),h=await e.crypto.sha256DigestHex(r),g=`${e.method}
${e.canonicalUri}
${e.canonicalQuerystring}
${p}
${d}
${h}`,v=`${s}/${e.region}/${n}/${mEr}`,y=`${Hdt}
${a}
${v}
`+await e.crypto.sha256DigestHex(g),_=await gEr(e.crypto,e.securityCredentials.secretAccessKey,s,e.region,n),x=await qT(e.crypto,_,y),A=`${Hdt} Credential=${e.securityCredentials.accessKeyId}/${v}, SignedHeaders=${d}, Signature=${(0,Vdt.fromArrayBufferToHex)(x)}`;return{amzDate:o.date?void 0:a,authorizationHeader:A,canonicalQuerystring:e.canonicalQuerystring}}});var Kdt=b(U8=>{"use strict";var o0=U8&&U8.__classPrivateFieldGet||function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},ud,ege,Gdt,Wdt,yB,tge;Object.defineProperty(U8,"__esModule",{value:!0});U8.DefaultAwsSecurityCredentialsSupplier=void 0;var rge=class{constructor(t){ud.add(this),this.regionUrl=t.regionUrl,this.securityCredentialsUrl=t.securityCredentialsUrl,this.imdsV2SessionTokenUrl=t.imdsV2SessionTokenUrl,this.additionalGaxiosOptions=t.additionalGaxiosOptions}async getAwsRegion(t){if(o0(this,ud,"a",yB))return o0(this,ud,"a",yB);let r={};if(!o0(this,ud,"a",yB)&&this.imdsV2SessionTokenUrl&&(r["x-aws-ec2-metadata-token"]=await o0(this,ud,"m",ege).call(this,t.transporter)),!this.regionUrl)throw new Error('Unable to determine AWS region due to missing "options.credential_source.region_url"');let n={...this.additionalGaxiosOptions,url:this.regionUrl,method:"GET",responseType:"text",headers:r},i=await t.transporter.request(n);return i.data.substr(0,i.data.length-1)}async getAwsSecurityCredentials(t){if(o0(this,ud,"a",tge))return o0(this,ud,"a",tge);let r={};this.imdsV2SessionTokenUrl&&(r["x-aws-ec2-metadata-token"]=await o0(this,ud,"m",ege).call(this,t.transporter));let n=await o0(this,ud,"m",Gdt).call(this,r,t.transporter),i=await o0(this,ud,"m",Wdt).call(this,n,r,t.transporter);return{accessKeyId:i.AccessKeyId,secretAccessKey:i.SecretAccessKey,token:i.Token}}};U8.DefaultAwsSecurityCredentialsSupplier=rge;ud=new WeakSet,ege=async function(t){let r={...this.additionalGaxiosOptions,url:this.imdsV2SessionTokenUrl,method:"PUT",responseType:"text",headers:{"x-aws-ec2-metadata-token-ttl-seconds":"300"}};return(await t.request(r)).data},Gdt=async function(t,r){if(!this.securityCredentialsUrl)throw new Error('Unable to determine AWS role name due to missing "options.credential_source.url"');let n={...this.additionalGaxiosOptions,url:this.securityCredentialsUrl,method:"GET",responseType:"text",headers:t};return(await r.request(n)).data},Wdt=async function(t,r,n){return(await n.request({...this.additionalGaxiosOptions,url:`${this.securityCredentialsUrl}/${t}`,responseType:"json",headers:r})).data},yB=function(){return process.env.AWS_REGION||process.env.AWS_DEFAULT_REGION||null},tge=function(){return process.env.AWS_ACCESS_KEY_ID&&process.env.AWS_SECRET_ACCESS_KEY?{accessKeyId:process.env.AWS_ACCESS_KEY_ID,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY,token:process.env.AWS_SESSION_TOKEN}:null}});var nge=b(H8=>{"use strict";var yEr=H8&&H8.__classPrivateFieldGet||function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},bB,Jdt;Object.defineProperty(H8,"__esModule",{value:!0});H8.AwsClient=void 0;var bEr=Z0e(),wEr=$v(),_Er=Kdt(),Ydt=Nv(),z8=class extends wEr.BaseExternalAccountClient{constructor(t,r){super(t,r);let n=(0,Ydt.originalOrCamelOptions)(t),i=n.get("credential_source"),a=n.get("aws_security_credentials_supplier");if(!i&&!a)throw new Error("A credential source or AWS security credentials supplier must be specified.");if(i&&a)throw new Error("Only one of credential source or AWS security credentials supplier can be specified.");if(a)this.awsSecurityCredentialsSupplier=a,this.regionalCredVerificationUrl=yEr(bB,bB,"f",Jdt),this.credentialSourceType="programmatic";else{let s=(0,Ydt.originalOrCamelOptions)(i);this.environmentId=s.get("environment_id");let o=s.get("region_url"),c=s.get("url"),p=s.get("imdsv2_session_token_url");this.awsSecurityCredentialsSupplier=new _Er.DefaultAwsSecurityCredentialsSupplier({regionUrl:o,securityCredentialsUrl:c,imdsV2SessionTokenUrl:p}),this.regionalCredVerificationUrl=s.get("regional_cred_verification_url"),this.credentialSourceType="aws",this.validateEnvironmentId()}this.awsRequestSigner=null,this.region=""}validateEnvironmentId(){var t;let r=(t=this.environmentId)===null||t===void 0?void 0:t.match(/^(aws)(\d+)$/);if(!r||!this.regionalCredVerificationUrl)throw new Error('No valid AWS "credential_source" provided');if(parseInt(r[2],10)!==1)throw new Error(`aws version "${r[2]}" is not supported in the current build.`)}async retrieveSubjectToken(){this.awsRequestSigner||(this.region=await this.awsSecurityCredentialsSupplier.getAwsRegion(this.supplierContext),this.awsRequestSigner=new bEr.AwsRequestSigner(async()=>this.awsSecurityCredentialsSupplier.getAwsSecurityCredentials(this.supplierContext),this.region));let t=await this.awsRequestSigner.getRequestOptions({...bB.RETRY_CONFIG,url:this.regionalCredVerificationUrl.replace("{region}",this.region),method:"POST"}),r=[],n=Object.assign({"x-goog-cloud-target-resource":this.audience},t.headers);for(let i in n)r.push({key:i,value:n[i]});return encodeURIComponent(JSON.stringify({url:t.url,method:t.method,headers:r}))}};H8.AwsClient=z8;bB=z8;Jdt={value:"https://sts.{region}.amazonaws.com?Action=GetCallerIdentity&Version=2011-06-15"};z8.AWS_EC2_METADATA_IPV4_ADDRESS="169.254.169.254";z8.AWS_EC2_METADATA_IPV6_ADDRESS="fd00:ec2::254"});var uge=b(Ps=>{"use strict";Object.defineProperty(Ps,"__esModule",{value:!0});Ps.InvalidSubjectTokenError=Ps.InvalidMessageFieldError=Ps.InvalidCodeFieldError=Ps.InvalidTokenTypeFieldError=Ps.InvalidExpirationTimeFieldError=Ps.InvalidSuccessFieldError=Ps.InvalidVersionFieldError=Ps.ExecutableResponseError=Ps.ExecutableResponse=void 0;var wB="urn:ietf:params:oauth:token-type:saml2",ige="urn:ietf:params:oauth:token-type:id_token",age="urn:ietf:params:oauth:token-type:jwt",sge=class{constructor(t){if(!t.version)throw new _B("Executable response must contain a 'version' field.");if(t.success===void 0)throw new xB("Executable response must contain a 'success' field.");if(this.version=t.version,this.success=t.success,this.success){if(this.expirationTime=t.expiration_time,this.tokenType=t.token_type,this.tokenType!==wB&&this.tokenType!==ige&&this.tokenType!==age)throw new EB(`Executable response must contain a 'token_type' field when successful and it must be one of ${ige}, ${age}, or ${wB}.`);if(this.tokenType===wB){if(!t.saml_response)throw new LT(`Executable response must contain a 'saml_response' field when token_type=${wB}.`);this.subjectToken=t.saml_response}else{if(!t.id_token)throw new LT(`Executable response must contain a 'id_token' field when token_type=${ige} or ${age}.`);this.subjectToken=t.id_token}}else{if(!t.code)throw new SB("Executable response must contain a 'code' field when unsuccessful.");if(!t.message)throw new kB("Executable response must contain a 'message' field when unsuccessful.");this.errorCode=t.code,this.errorMessage=t.message}}isValid(){return!this.isExpired()&&this.success}isExpired(){return this.expirationTime!==void 0&&this.expirationTime<Math.round(Date.now()/1e3)}};Ps.ExecutableResponse=sge;var $h=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,new.target.prototype)}};Ps.ExecutableResponseError=$h;var _B=class extends $h{};Ps.InvalidVersionFieldError=_B;var xB=class extends $h{};Ps.InvalidSuccessFieldError=xB;var oge=class extends $h{};Ps.InvalidExpirationTimeFieldError=oge;var EB=class extends $h{};Ps.InvalidTokenTypeFieldError=EB;var SB=class extends $h{};Ps.InvalidCodeFieldError=SB;var kB=class extends $h{};Ps.InvalidMessageFieldError=kB;var LT=class extends $h{};Ps.InvalidSubjectTokenError=LT});var Xdt=b(AB=>{"use strict";Object.defineProperty(AB,"__esModule",{value:!0});AB.PluggableAuthHandler=void 0;var xEr=TB(),Ww=uge(),EEr=require("child_process"),cge=require("fs"),lge=class e{constructor(t){if(!t.command)throw new Error("No command provided.");if(this.commandComponents=e.parseCommand(t.command),this.timeoutMillis=t.timeoutMillis,!this.timeoutMillis)throw new Error("No timeoutMillis provided.");this.outputFile=t.outputFile}retrieveResponseFromExecutable(t){return new Promise((r,n)=>{let i=EEr.spawn(this.commandComponents[0],this.commandComponents.slice(1),{env:{...process.env,...Object.fromEntries(t)}}),a="";i.stdout.on("data",o=>{a+=o}),i.stderr.on("data",o=>{a+=o});let s=setTimeout(()=>(i.removeAllListeners(),i.kill(),n(new Error("The executable failed to finish within the timeout specified."))),this.timeoutMillis);i.on("close",o=>{if(clearTimeout(s),o===0)try{let c=JSON.parse(a),p=new Ww.ExecutableResponse(c);return r(p)}catch(c){return c instanceof Ww.ExecutableResponseError?n(c):n(new Ww.ExecutableResponseError(`The executable returned an invalid response: ${a}`))}else return n(new xEr.ExecutableError(a,o.toString()))})})}async retrieveCachedResponse(){if(!this.outputFile||this.outputFile.length===0)return;let t;try{t=await cge.promises.realpath(this.outputFile)}catch{return}if(!(await cge.promises.lstat(t)).isFile())return;let r=await cge.promises.readFile(t,{encoding:"utf8"});if(r!=="")try{let n=JSON.parse(r);return new Ww.ExecutableResponse(n).isValid()?new Ww.ExecutableResponse(n):void 0}catch(n){throw n instanceof Ww.ExecutableResponseError?n:new Ww.ExecutableResponseError(`The output file contained an invalid response: ${r}`)}}static parseCommand(t){let r=t.match(/(?:[^\s"]+|"[^"]*")+/g);if(!r)throw new Error(`Provided command: "${t}" could not be parsed.`);for(let n=0;n<r.length;n++)r[n][0]==='"'&&r[n].slice(-1)==='"'&&(r[n]=r[n].slice(1,-1));return r}};AB.PluggableAuthHandler=lge});var TB=b(V8=>{"use strict";Object.defineProperty(V8,"__esModule",{value:!0});V8.PluggableAuthClient=V8.ExecutableError=void 0;var SEr=$v(),kEr=uge(),AEr=Xdt(),OB=class extends Error{constructor(t,r){super(`The executable failed with exit code: ${r} and error message: ${t}.`),this.code=r,Object.setPrototypeOf(this,new.target.prototype)}};V8.ExecutableError=OB;var TEr=30*1e3,Qdt=5*1e3,Zdt=120*1e3,OEr="GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES",eht=1,pge=class extends SEr.BaseExternalAccountClient{constructor(t,r){if(super(t,r),!t.credential_source.executable)throw new Error('No valid Pluggable Auth "credential_source" provided.');if(this.command=t.credential_source.executable.command,!this.command)throw new Error('No valid Pluggable Auth "credential_source" provided.');if(t.credential_source.executable.timeout_millis===void 0)this.timeoutMillis=TEr;else if(this.timeoutMillis=t.credential_source.executable.timeout_millis,this.timeoutMillis<Qdt||this.timeoutMillis>Zdt)throw new Error(`Timeout must be between ${Qdt} and ${Zdt} milliseconds.`);this.outputFile=t.credential_source.executable.output_file,this.handler=new AEr.PluggableAuthHandler({command:this.command,timeoutMillis:this.timeoutMillis,outputFile:this.outputFile}),this.credentialSourceType="executable"}async retrieveSubjectToken(){if(process.env[OEr]!=="1")throw new Error("Pluggable Auth executables need to be explicitly allowed to run by setting the GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES environment Variable to 1.");let t;if(this.outputFile&&(t=await this.handler.retrieveCachedResponse()),!t){let r=new Map;r.set("GOOGLE_EXTERNAL_ACCOUNT_AUDIENCE",this.audience),r.set("GOOGLE_EXTERNAL_ACCOUNT_TOKEN_TYPE",this.subjectTokenType),r.set("GOOGLE_EXTERNAL_ACCOUNT_INTERACTIVE","0"),this.outputFile&&r.set("GOOGLE_EXTERNAL_ACCOUNT_OUTPUT_FILE",this.outputFile);let n=this.getServiceAccountEmail();n&&r.set("GOOGLE_EXTERNAL_ACCOUNT_IMPERSONATED_EMAIL",n),t=await this.handler.retrieveResponseFromExecutable(r)}if(t.version>eht)throw new Error(`Version of executable is not currently supported, maximum supported version is ${eht}.`);if(!t.success)throw new OB(t.errorMessage,t.errorCode);if(this.outputFile&&!t.expirationTime)throw new kEr.InvalidExpirationTimeFieldError("The executable response must contain the `expiration_time` field for successful responses when an output_file has been specified in the configuration.");if(t.isExpired())throw new Error("Executable response is expired.");return t.subjectToken}};V8.PluggableAuthClient=pge});var dge=b(DB=>{"use strict";Object.defineProperty(DB,"__esModule",{value:!0});DB.ExternalAccountClient=void 0;var DEr=$v(),CEr=X0e(),PEr=nge(),IEr=TB(),fge=class{constructor(){throw new Error("ExternalAccountClients should be initialized via: ExternalAccountClient.fromJSON(), directly via explicit constructors, eg. new AwsClient(options), new IdentityPoolClient(options), newPluggableAuthClientOptions, or via new GoogleAuth(options).getClient()")}static fromJSON(t,r){var n,i;return t&&t.type===DEr.EXTERNAL_ACCOUNT_TYPE?!((n=t.credential_source)===null||n===void 0)&&n.environment_id?new PEr.AwsClient(t,r):!((i=t.credential_source)===null||i===void 0)&&i.executable?new IEr.PluggableAuthClient(t,r):new CEr.IdentityPoolClient(t,r):null}};DB.ExternalAccountClient=fge});var rht=b(G8=>{"use strict";Object.defineProperty(G8,"__esModule",{value:!0});G8.ExternalAccountAuthorizedUserClient=G8.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE=void 0;var REr=Nh(),tht=j0e(),FEr=ed(),jEr=require("stream"),NEr=$v();G8.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE="external_account_authorized_user";var qEr="https://sts.{universeDomain}/v1/oauthtoken",hge=class e extends tht.OAuthClientAuthHandler{constructor(t,r,n){super(n),this.url=t,this.transporter=r}async refreshToken(t,r){let n=new URLSearchParams({grant_type:"refresh_token",refresh_token:t}),i={"Content-Type":"application/x-www-form-urlencoded",...r},a={...e.RETRY_CONFIG,url:this.url,method:"POST",headers:i,data:n.toString(),responseType:"json"};this.applyClientAuthenticationOptions(a);try{let s=await this.transporter.request(a),o=s.data;return o.res=s,o}catch(s){throw s instanceof FEr.GaxiosError&&s.response?(0,tht.getErrorFromOAuthErrorResponse)(s.response.data,s):s}}},mge=class extends REr.AuthClient{constructor(t,r){var n;super({...t,...r}),t.universe_domain&&(this.universeDomain=t.universe_domain),this.refreshToken=t.refresh_token;let i={confidentialClientType:"basic",clientId:t.client_id,clientSecret:t.client_secret};this.externalAccountAuthorizedUserHandler=new hge((n=t.token_url)!==null&&n!==void 0?n:qEr.replace("{universeDomain}",this.universeDomain),this.transporter,i),this.cachedAccessToken=null,this.quotaProjectId=t.quota_project_id,typeof r?.eagerRefreshThresholdMillis!="number"?this.eagerRefreshThresholdMillis=NEr.EXPIRATION_TIME_OFFSET:this.eagerRefreshThresholdMillis=r.eagerRefreshThresholdMillis,this.forceRefreshOnFailure=!!r?.forceRefreshOnFailure}async getAccessToken(){return(!this.cachedAccessToken||this.isExpired(this.cachedAccessToken))&&await this.refreshAccessTokenAsync(),{token:this.cachedAccessToken.access_token,res:this.cachedAccessToken.res}}async getRequestHeaders(){let r={Authorization:`Bearer ${(await this.getAccessToken()).token}`};return this.addSharedMetadataHeaders(r)}request(t,r){if(r)this.requestAsync(t).then(n=>r(null,n),n=>r(n,n.response));else return this.requestAsync(t)}async requestAsync(t,r=!1){let n;try{let i=await this.getRequestHeaders();t.headers=t.headers||{},i&&i["x-goog-user-project"]&&(t.headers["x-goog-user-project"]=i["x-goog-user-project"]),i&&i.Authorization&&(t.headers.Authorization=i.Authorization),n=await this.transporter.request(t)}catch(i){let a=i.response;if(a){let s=a.status,o=a.config.data instanceof jEr.Readable;if(!r&&(s===401||s===403)&&!o&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(t,!0)}throw i}return n}async refreshAccessTokenAsync(){let t=await this.externalAccountAuthorizedUserHandler.refreshToken(this.refreshToken);return this.cachedAccessToken={access_token:t.access_token,expiry_date:new Date().getTime()+t.expires_in*1e3,res:t.res},t.refresh_token!==void 0&&(this.refreshToken=t.refresh_token),this.cachedAccessToken}isExpired(t){let r=new Date().getTime();return t.expiry_date?r>=t.expiry_date-this.eagerRefreshThresholdMillis:!1}};G8.ExternalAccountAuthorizedUserClient=mge});var uht=b(Go=>{"use strict";var Bv=Go&&Go.__classPrivateFieldGet||function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},nht=Go&&Go.__classPrivateFieldSet||function(e,t,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},Mv,Y8,J8,oht;Object.defineProperty(Go,"__esModule",{value:!0});Go.GoogleAuth=Go.GoogleAuthExceptionMessages=Go.CLOUD_SDK_CLIENT_ID=void 0;var LEr=require("child_process"),MT=require("fs"),$T=OT(),$Er=require("os"),vge=require("path"),BEr=C8(),MEr=CT(),UEr=l0e(),zEr=f0e(),HEr=d0e(),W8=D0e(),iht=P0e(),K8=R0e(),VEr=dge(),BT=$v(),gge=Nh(),aht=rht(),sht=Nv();Go.CLOUD_SDK_CLIENT_ID="764086051850-6qr4p6gpi6hn506pt8ejuq83di341hur.apps.googleusercontent.com";Go.GoogleAuthExceptionMessages={API_KEY_WITH_CREDENTIALS:"API Keys and Credentials are mutually exclusive authentication methods and cannot be used together.",NO_PROJECT_ID_FOUND:`Unable to detect a Project Id in the current environment. 
To learn more about authentication and Google APIs, visit: 
https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. 
To learn more about authentication and Google APIs, visit: 
https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.",NO_UNIVERSE_DOMAIN_FOUND:`Unable to detect a Universe Domain in the current environment.
To learn more about Universe Domain retrieval, visit: 
https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};var CB=class{get isGCE(){return this.checkIsGCE}constructor(t={}){if(Mv.add(this),this.checkIsGCE=void 0,this.jsonContent=null,this.cachedCredential=null,Y8.set(this,null),this.clientOptions={},this._cachedProjectId=t.projectId||null,this.cachedCredential=t.authClient||null,this.keyFilename=t.keyFilename||t.keyFile,this.scopes=t.scopes,this.clientOptions=t.clientOptions||{},this.jsonContent=t.credentials||null,this.apiKey=t.apiKey||this.clientOptions.apiKey||null,this.apiKey&&(this.jsonContent||this.clientOptions.credentials))throw new RangeError(Go.GoogleAuthExceptionMessages.API_KEY_WITH_CREDENTIALS);t.universeDomain&&(this.clientOptions.universeDomain=t.universeDomain)}setGapicJWTValues(t){t.defaultServicePath=this.defaultServicePath,t.useJWTAccessWithScope=this.useJWTAccessWithScope,t.defaultScopes=this.defaultScopes}getProjectId(t){if(t)this.getProjectIdAsync().then(r=>t(null,r),t);else return this.getProjectIdAsync()}async getProjectIdOptional(){try{return await this.getProjectId()}catch(t){if(t instanceof Error&&t.message===Go.GoogleAuthExceptionMessages.NO_PROJECT_ID_FOUND)return null;throw t}}async findAndCacheProjectId(){let t=null;if(t||(t=await this.getProductionProjectId()),t||(t=await this.getFileProjectId()),t||(t=await this.getDefaultServiceProjectId()),t||(t=await this.getGCEProjectId()),t||(t=await this.getExternalAccountClientProjectId()),t)return this._cachedProjectId=t,t;throw new Error(Go.GoogleAuthExceptionMessages.NO_PROJECT_ID_FOUND)}async getProjectIdAsync(){return this._cachedProjectId?this._cachedProjectId:(this._findProjectIdPromise||(this._findProjectIdPromise=this.findAndCacheProjectId()),this._findProjectIdPromise)}async getUniverseDomainFromMetadataServer(){var t;let r;try{r=await $T.universe("universe-domain"),r||(r=gge.DEFAULT_UNIVERSE)}catch(n){if(n&&((t=n?.response)===null||t===void 0?void 0:t.status)===404)r=gge.DEFAULT_UNIVERSE;else throw n}return r}async getUniverseDomain(){let t=(0,sht.originalOrCamelOptions)(this.clientOptions).get("universe_domain");try{t??(t=(await this.getClient()).universeDomain)}catch{t??(t=gge.DEFAULT_UNIVERSE)}return t}getAnyScopes(){return this.scopes||this.defaultScopes}getApplicationDefault(t={},r){let n;if(typeof t=="function"?r=t:n=t,r)this.getApplicationDefaultAsync(n).then(i=>r(null,i.credential,i.projectId),r);else return this.getApplicationDefaultAsync(n)}async getApplicationDefaultAsync(t={}){if(this.cachedCredential)return await Bv(this,Mv,"m",J8).call(this,this.cachedCredential,null);let r;if(r=await this._tryGetApplicationCredentialsFromEnvironmentVariable(t),r)return r instanceof W8.JWT?r.scopes=this.scopes:r instanceof BT.BaseExternalAccountClient&&(r.scopes=this.getAnyScopes()),await Bv(this,Mv,"m",J8).call(this,r);if(r=await this._tryGetApplicationCredentialsFromWellKnownFile(t),r)return r instanceof W8.JWT?r.scopes=this.scopes:r instanceof BT.BaseExternalAccountClient&&(r.scopes=this.getAnyScopes()),await Bv(this,Mv,"m",J8).call(this,r);if(await this._checkIsGCE())return t.scopes=this.getAnyScopes(),await Bv(this,Mv,"m",J8).call(this,new UEr.Compute(t));throw new Error(Go.GoogleAuthExceptionMessages.NO_ADC_FOUND)}async _checkIsGCE(){return this.checkIsGCE===void 0&&(this.checkIsGCE=$T.getGCPResidency()||await $T.isAvailable()),this.checkIsGCE}async _tryGetApplicationCredentialsFromEnvironmentVariable(t){let r=process.env.GOOGLE_APPLICATION_CREDENTIALS||process.env.google_application_credentials;if(!r||r.length===0)return null;try{return this._getApplicationCredentialsFromFilePath(r,t)}catch(n){throw n instanceof Error&&(n.message=`Unable to read the credential file specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable: ${n.message}`),n}}async _tryGetApplicationCredentialsFromWellKnownFile(t){let r=null;if(this._isWindows())r=process.env.APPDATA;else{let i=process.env.HOME;i&&(r=vge.join(i,".config"))}return r&&(r=vge.join(r,"gcloud","application_default_credentials.json"),MT.existsSync(r)||(r=null)),r?await this._getApplicationCredentialsFromFilePath(r,t):null}async _getApplicationCredentialsFromFilePath(t,r={}){if(!t||t.length===0)throw new Error("The file path is invalid.");try{if(t=MT.realpathSync(t),!MT.lstatSync(t).isFile())throw new Error}catch(i){throw i instanceof Error&&(i.message=`The file at ${t} does not exist, or it is not a file. ${i.message}`),i}let n=MT.createReadStream(t);return this.fromStream(n,r)}fromImpersonatedJSON(t){var r,n,i,a;if(!t)throw new Error("Must pass in a JSON object containing an  impersonated refresh token");if(t.type!==K8.IMPERSONATED_ACCOUNT_TYPE)throw new Error(`The incoming JSON object does not have the "${K8.IMPERSONATED_ACCOUNT_TYPE}" type`);if(!t.source_credentials)throw new Error("The incoming JSON object does not contain a source_credentials field");if(!t.service_account_impersonation_url)throw new Error("The incoming JSON object does not contain a service_account_impersonation_url field");let s=this.fromJSON(t.source_credentials);if(((r=t.service_account_impersonation_url)===null||r===void 0?void 0:r.length)>256)throw new RangeError(`Target principal is too long: ${t.service_account_impersonation_url}`);let o=(i=(n=/(?<target>[^/]+):(generateAccessToken|generateIdToken)$/.exec(t.service_account_impersonation_url))===null||n===void 0?void 0:n.groups)===null||i===void 0?void 0:i.target;if(!o)throw new RangeError(`Cannot extract target principal from ${t.service_account_impersonation_url}`);let c=(a=this.getAnyScopes())!==null&&a!==void 0?a:[];return new K8.Impersonated({...t,sourceClient:s,targetPrincipal:o,targetScopes:Array.isArray(c)?c:[c]})}fromJSON(t,r={}){let n,i=(0,sht.originalOrCamelOptions)(r).get("universe_domain");return t.type===iht.USER_REFRESH_ACCOUNT_TYPE?(n=new iht.UserRefreshClient(r),n.fromJSON(t)):t.type===K8.IMPERSONATED_ACCOUNT_TYPE?n=this.fromImpersonatedJSON(t):t.type===BT.EXTERNAL_ACCOUNT_TYPE?(n=VEr.ExternalAccountClient.fromJSON(t,r),n.scopes=this.getAnyScopes()):t.type===aht.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE?n=new aht.ExternalAccountAuthorizedUserClient(t,r):(r.scopes=this.scopes,n=new W8.JWT(r),this.setGapicJWTValues(n),n.fromJSON(t)),i&&(n.universeDomain=i),n}_cacheClientFromJSON(t,r){let n=this.fromJSON(t,r);return this.jsonContent=t,this.cachedCredential=n,n}fromStream(t,r={},n){let i={};if(typeof r=="function"?n=r:i=r,n)this.fromStreamAsync(t,i).then(a=>n(null,a),n);else return this.fromStreamAsync(t,i)}fromStreamAsync(t,r){return new Promise((n,i)=>{if(!t)throw new Error("Must pass in a stream containing the Google auth settings.");let a=[];t.setEncoding("utf8").on("error",i).on("data",s=>a.push(s)).on("end",()=>{try{try{let s=JSON.parse(a.join("")),o=this._cacheClientFromJSON(s,r);return n(o)}catch(s){if(!this.keyFilename)throw s;let o=new W8.JWT({...this.clientOptions,keyFile:this.keyFilename});return this.cachedCredential=o,this.setGapicJWTValues(o),n(o)}}catch(s){return i(s)}})})}fromAPIKey(t,r={}){return new W8.JWT({...r,apiKey:t})}_isWindows(){let t=$Er.platform();return!!(t&&t.length>=3&&t.substring(0,3).toLowerCase()==="win")}async getDefaultServiceProjectId(){return new Promise(t=>{(0,LEr.exec)("gcloud config config-helper --format json",(r,n)=>{if(!r&&n)try{let i=JSON.parse(n).configuration.properties.core.project;t(i);return}catch{}t(null)})})}getProductionProjectId(){return process.env.GCLOUD_PROJECT||process.env.GOOGLE_CLOUD_PROJECT||process.env.gcloud_project||process.env.google_cloud_project}async getFileProjectId(){if(this.cachedCredential)return this.cachedCredential.projectId;if(this.keyFilename){let r=await this.getClient();if(r&&r.projectId)return r.projectId}let t=await this._tryGetApplicationCredentialsFromEnvironmentVariable();return t?t.projectId:null}async getExternalAccountClientProjectId(){return!this.jsonContent||this.jsonContent.type!==BT.EXTERNAL_ACCOUNT_TYPE?null:await(await this.getClient()).getProjectId()}async getGCEProjectId(){try{return await $T.project("project-id")}catch{return null}}getCredentials(t){if(t)this.getCredentialsAsync().then(r=>t(null,r),t);else return this.getCredentialsAsync()}async getCredentialsAsync(){let t=await this.getClient();if(t instanceof K8.Impersonated)return{client_email:t.getTargetPrincipal()};if(t instanceof BT.BaseExternalAccountClient){let r=t.getServiceAccountEmail();if(r)return{client_email:r,universe_domain:t.universeDomain}}if(this.jsonContent)return{client_email:this.jsonContent.client_email,private_key:this.jsonContent.private_key,universe_domain:this.jsonContent.universe_domain};if(await this._checkIsGCE()){let[r,n]=await Promise.all([$T.instance("service-accounts/default/email"),this.getUniverseDomain()]);return{client_email:r,universe_domain:n}}throw new Error(Go.GoogleAuthExceptionMessages.NO_CREDENTIALS_FOUND)}async getClient(){if(this.cachedCredential)return this.cachedCredential;nht(this,Y8,Bv(this,Y8,"f")||Bv(this,Mv,"m",oht).call(this),"f");try{return await Bv(this,Y8,"f")}finally{nht(this,Y8,null,"f")}}async getIdTokenClient(t){let r=await this.getClient();if(!("fetchIdToken"in r))throw new Error("Cannot fetch ID token in this environment, use GCE or set the GOOGLE_APPLICATION_CREDENTIALS environment variable to a service account credentials JSON file.");return new zEr.IdTokenClient({targetAudience:t,idTokenProvider:r})}async getAccessToken(){return(await(await this.getClient()).getAccessToken()).token}async getRequestHeaders(t){return(await this.getClient()).getRequestHeaders(t)}async authorizeRequest(t){t=t||{};let r=t.url||t.uri,i=await(await this.getClient()).getRequestHeaders(r);return t.headers=Object.assign(t.headers||{},i),t}async request(t){return(await this.getClient()).request(t)}getEnv(){return(0,HEr.getEnv)()}async sign(t,r){let n=await this.getClient(),i=await this.getUniverseDomain();if(r=r||`https://iamcredentials.${i}/v1/projects/-/serviceAccounts/`,n instanceof K8.Impersonated)return(await n.sign(t)).signedBlob;let a=(0,BEr.createCrypto)();if(n instanceof W8.JWT&&n.key)return await a.sign(n.key,t);let s=await this.getCredentials();if(!s.client_email)throw new Error("Cannot sign data without `client_email`.");return this.signBlob(a,s.client_email,t,r)}async signBlob(t,r,n,i){let a=new URL(i+`${r}:signBlob`);return(await this.request({method:"POST",url:a.href,data:{payload:t.encodeBase64StringUtf8(n)},retry:!0,retryConfig:{httpMethodsToRetry:["POST"]}})).data.signedBlob}};Go.GoogleAuth=CB;Y8=new WeakMap,Mv=new WeakSet,J8=async function(t,r=process.env.GOOGLE_CLOUD_QUOTA_PROJECT||null){let n=await this.getProjectIdOptional();return r&&(t.quotaProjectId=r),this.cachedCredential=t,{credential:t,projectId:n}},oht=async function(){if(this.jsonContent)return this._cacheClientFromJSON(this.jsonContent,this.clientOptions);if(this.keyFilename){let t=vge.resolve(this.keyFilename),r=MT.createReadStream(t);return await this.fromStreamAsync(r,this.clientOptions)}else if(this.apiKey){let t=await this.fromAPIKey(this.apiKey,this.clientOptions);t.scopes=this.scopes;let{credential:r}=await Bv(this,Mv,"m",J8).call(this,t);return r}else{let{credential:t}=await this.getApplicationDefaultAsync(this.clientOptions);return t}};CB.DefaultTransporter=MEr.DefaultTransporter});var cht=b(PB=>{"use strict";Object.defineProperty(PB,"__esModule",{value:!0});PB.IAMAuth=void 0;var yge=class{constructor(t,r){this.selector=t,this.token=r,this.selector=t,this.token=r}getRequestHeaders(){return{"x-goog-iam-authority-selector":this.selector,"x-goog-iam-authorization-token":this.token}}};PB.IAMAuth=yge});var lht=b(Bh=>{"use strict";Object.defineProperty(Bh,"__esModule",{value:!0});Bh.DownscopedClient=Bh.EXPIRATION_TIME_OFFSET=Bh.MAX_ACCESS_BOUNDARY_RULES_COUNT=void 0;var GEr=require("stream"),WEr=Nh(),KEr=q0e(),YEr="urn:ietf:params:oauth:grant-type:token-exchange",JEr="urn:ietf:params:oauth:token-type:access_token",XEr="urn:ietf:params:oauth:token-type:access_token";Bh.MAX_ACCESS_BOUNDARY_RULES_COUNT=10;Bh.EXPIRATION_TIME_OFFSET=5*60*1e3;var bge=class extends WEr.AuthClient{constructor(t,r,n,i){if(super({...n,quotaProjectId:i}),this.authClient=t,this.credentialAccessBoundary=r,r.accessBoundary.accessBoundaryRules.length===0)throw new Error("At least one access boundary rule needs to be defined.");if(r.accessBoundary.accessBoundaryRules.length>Bh.MAX_ACCESS_BOUNDARY_RULES_COUNT)throw new Error(`The provided access boundary has more than ${Bh.MAX_ACCESS_BOUNDARY_RULES_COUNT} access boundary rules.`);for(let a of r.accessBoundary.accessBoundaryRules)if(a.availablePermissions.length===0)throw new Error("At least one permission should be defined in access boundary rules.");this.stsCredential=new KEr.StsCredentials(`https://sts.${this.universeDomain}/v1/token`),this.cachedDownscopedAccessToken=null}setCredentials(t){if(!t.expiry_date)throw new Error("The access token expiry_date field is missing in the provided credentials.");super.setCredentials(t),this.cachedDownscopedAccessToken=t}async getAccessToken(){return(!this.cachedDownscopedAccessToken||this.isExpired(this.cachedDownscopedAccessToken))&&await this.refreshAccessTokenAsync(),{token:this.cachedDownscopedAccessToken.access_token,expirationTime:this.cachedDownscopedAccessToken.expiry_date,res:this.cachedDownscopedAccessToken.res}}async getRequestHeaders(){let r={Authorization:`Bearer ${(await this.getAccessToken()).token}`};return this.addSharedMetadataHeaders(r)}request(t,r){if(r)this.requestAsync(t).then(n=>r(null,n),n=>r(n,n.response));else return this.requestAsync(t)}async requestAsync(t,r=!1){let n;try{let i=await this.getRequestHeaders();t.headers=t.headers||{},i&&i["x-goog-user-project"]&&(t.headers["x-goog-user-project"]=i["x-goog-user-project"]),i&&i.Authorization&&(t.headers.Authorization=i.Authorization),n=await this.transporter.request(t)}catch(i){let a=i.response;if(a){let s=a.status,o=a.config.data instanceof GEr.Readable;if(!r&&(s===401||s===403)&&!o&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(t,!0)}throw i}return n}async refreshAccessTokenAsync(){var t;let r=(await this.authClient.getAccessToken()).token,n={grantType:YEr,requestedTokenType:JEr,subjectToken:r,subjectTokenType:XEr},i=await this.stsCredential.exchangeToken(n,void 0,this.credentialAccessBoundary),a=((t=this.authClient.credentials)===null||t===void 0?void 0:t.expiry_date)||null,s=i.expires_in?new Date().getTime()+i.expires_in*1e3:a;return this.cachedDownscopedAccessToken={access_token:i.access_token,expiry_date:s,res:i.res},this.credentials={},Object.assign(this.credentials,this.cachedDownscopedAccessToken),delete this.credentials.res,this.emit("tokens",{refresh_token:null,expiry_date:this.cachedDownscopedAccessToken.expiry_date,access_token:this.cachedDownscopedAccessToken.access_token,token_type:"Bearer",id_token:null}),this.cachedDownscopedAccessToken}isExpired(t){let r=new Date().getTime();return t.expiry_date?r>=t.expiry_date-this.eagerRefreshThresholdMillis:!1}};Bh.DownscopedClient=bge});var pht=b(RB=>{"use strict";Object.defineProperty(RB,"__esModule",{value:!0});RB.PassThroughClient=void 0;var QEr=Nh(),IB=class extends QEr.AuthClient{async request(t){return this.transporter.request(t)}async getAccessToken(){return{}}async getRequestHeaders(){return{}}};RB.PassThroughClient=IB;var ZEr=new IB;ZEr.getAccessToken()});var mht=b(yr=>{"use strict";Object.defineProperty(yr,"__esModule",{value:!0});yr.GoogleAuth=yr.auth=yr.DefaultTransporter=yr.PassThroughClient=yr.ExecutableError=yr.PluggableAuthClient=yr.DownscopedClient=yr.BaseExternalAccountClient=yr.ExternalAccountClient=yr.IdentityPoolClient=yr.AwsRequestSigner=yr.AwsClient=yr.UserRefreshClient=yr.LoginTicket=yr.ClientAuthentication=yr.OAuth2Client=yr.CodeChallengeMethod=yr.Impersonated=yr.JWT=yr.JWTAccess=yr.IdTokenClient=yr.IAMAuth=yr.GCPEnv=yr.Compute=yr.DEFAULT_UNIVERSE=yr.AuthClient=yr.gaxios=yr.gcpMetadata=void 0;var fht=uht();Object.defineProperty(yr,"GoogleAuth",{enumerable:!0,get:function(){return fht.GoogleAuth}});yr.gcpMetadata=OT();yr.gaxios=ed();var dht=Nh();Object.defineProperty(yr,"AuthClient",{enumerable:!0,get:function(){return dht.AuthClient}});Object.defineProperty(yr,"DEFAULT_UNIVERSE",{enumerable:!0,get:function(){return dht.DEFAULT_UNIVERSE}});var e5r=l0e();Object.defineProperty(yr,"Compute",{enumerable:!0,get:function(){return e5r.Compute}});var t5r=d0e();Object.defineProperty(yr,"GCPEnv",{enumerable:!0,get:function(){return t5r.GCPEnv}});var r5r=cht();Object.defineProperty(yr,"IAMAuth",{enumerable:!0,get:function(){return r5r.IAMAuth}});var n5r=f0e();Object.defineProperty(yr,"IdTokenClient",{enumerable:!0,get:function(){return n5r.IdTokenClient}});var i5r=T0e();Object.defineProperty(yr,"JWTAccess",{enumerable:!0,get:function(){return i5r.JWTAccess}});var a5r=D0e();Object.defineProperty(yr,"JWT",{enumerable:!0,get:function(){return a5r.JWT}});var s5r=R0e();Object.defineProperty(yr,"Impersonated",{enumerable:!0,get:function(){return s5r.Impersonated}});var wge=Vw();Object.defineProperty(yr,"CodeChallengeMethod",{enumerable:!0,get:function(){return wge.CodeChallengeMethod}});Object.defineProperty(yr,"OAuth2Client",{enumerable:!0,get:function(){return wge.OAuth2Client}});Object.defineProperty(yr,"ClientAuthentication",{enumerable:!0,get:function(){return wge.ClientAuthentication}});var o5r=s0e();Object.defineProperty(yr,"LoginTicket",{enumerable:!0,get:function(){return o5r.LoginTicket}});var u5r=P0e();Object.defineProperty(yr,"UserRefreshClient",{enumerable:!0,get:function(){return u5r.UserRefreshClient}});var c5r=nge();Object.defineProperty(yr,"AwsClient",{enumerable:!0,get:function(){return c5r.AwsClient}});var l5r=Z0e();Object.defineProperty(yr,"AwsRequestSigner",{enumerable:!0,get:function(){return l5r.AwsRequestSigner}});var p5r=X0e();Object.defineProperty(yr,"IdentityPoolClient",{enumerable:!0,get:function(){return p5r.IdentityPoolClient}});var f5r=dge();Object.defineProperty(yr,"ExternalAccountClient",{enumerable:!0,get:function(){return f5r.ExternalAccountClient}});var d5r=$v();Object.defineProperty(yr,"BaseExternalAccountClient",{enumerable:!0,get:function(){return d5r.BaseExternalAccountClient}});var h5r=lht();Object.defineProperty(yr,"DownscopedClient",{enumerable:!0,get:function(){return h5r.DownscopedClient}});var hht=TB();Object.defineProperty(yr,"PluggableAuthClient",{enumerable:!0,get:function(){return hht.PluggableAuthClient}});Object.defineProperty(yr,"ExecutableError",{enumerable:!0,get:function(){return hht.ExecutableError}});var m5r=pht();Object.defineProperty(yr,"PassThroughClient",{enumerable:!0,get:function(){return m5r.PassThroughClient}});var g5r=CT();Object.defineProperty(yr,"DefaultTransporter",{enumerable:!0,get:function(){return g5r.DefaultTransporter}});var v5r=new fht.GoogleAuth;yr.auth=v5r});var Lht=b((Efn,qht)=>{"use strict";var y5r=Object.create,jB=Object.defineProperty,b5r=Object.getOwnPropertyDescriptor,w5r=Object.getOwnPropertyNames,_5r=Object.getPrototypeOf,x5r=Object.prototype.hasOwnProperty,E5r=(e,t)=>{for(var r in t)jB(e,r,{get:t[r],enumerable:!0})},kht=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of w5r(t))!x5r.call(e,i)&&i!==r&&jB(e,i,{get:()=>t[i],enumerable:!(n=b5r(t,i))||n.enumerable});return e},zv=(e,t,r)=>(r=e!=null?y5r(_5r(e)):{},kht(t||!e||!e.__esModule?jB(r,"default",{value:e,enumerable:!0}):r,e)),S5r=e=>kht(jB({},"__esModule",{value:!0}),e),Aht={};E5r(Aht,{FcmApiAndroidErrorCode:()=>T5r,FcmApiAndroidMessagePriority:()=>O5r,FcmApiAndroidNotificationPriority:()=>D5r,FcmApiAndroidVisibility:()=>C5r,FcmClassLogger:()=>lr,FcmClient:()=>Q5r,FcmFunctionLogger:()=>Rht,FcmLoggerName:()=>Tht,FcmRequestLogger:()=>Mh,createFcmECDH:()=>b9r,generateFcmAuthSecret:()=>w9r,registerToFCM:()=>l9r,sendFcmMessage:()=>d9r,subscribeToFcmTopic:()=>v9r,unsubscribeFromFcmTopic:()=>y9r});qht.exports=S5r(Aht);var Wo=qc(),ght=require("crypto"),vht=Qde(),k5r=require("tls"),A5r=zv(c$(),1),zT;(e=>{let t;(r=>{let n;(o=>(o.NORMAL="NORMAL",o.HIGH="HIGH"))(n=r.AndroidMessagePriority||={});let i;(o=>(o.UNSPECIFIED_ERROR="UNSPECIFIED_ERROR",o.INVALID_ARGUMENT="INVALID_ARGUMENT",o.UNREGISTERED="UNREGISTERED",o.SENDER_ID_MISMATCH="SENDER_ID_MISMATCH",o.QUOTA_EXCEEDED="QUOTA_EXCEEDED",o.UNAVAILABLE="UNAVAILABLE",o.INTERNAL="INTERNAL",o.THIRD_PARTY_AUTH_ERROR="THIRD_PARTY_AUTH_ERROR"))(i=r.ErrorCode||={});let a;(o=>(o.PRIORITY_UNSPECIFIED="PRIORITY_UNSPECIFIED",o.PRIORITY_MIN="PRIORITY_MIN",o.PRIORITY_LOW="PRIORITY_LOW",o.PRIORITY_DEFAULT="PRIORITY_DEFAULT",o.PRIORITY_HIGH="PRIORITY_HIGH",o.PRIORITY_MAX="PRIORITY_MAX"))(a=r.NotificationPriority||={});let s;(o=>(o.VISIBILITY_UNSPECIFIED="VISIBILITY_UNSPECIFIED",o.PRIVATE="PRIVATE",o.PUBLIC="PUBLIC",o.SECRET="SECRET"))(s=r.Visibility||={})})(t=e.V1||={})})(zT||={});var T5r=zT.V1.ErrorCode,O5r=zT.V1.AndroidMessagePriority,D5r=zT.V1.NotificationPriority,C5r=zT.V1.Visibility,Tht=(e=>(e.CLASS="FCM_CLASS",e.FUNCTION="FCM_FUNCTION",e.REQUEST="FCM_REQUEST",e))(Tht||{}),Sge=(e=>(e[e.HEARTBEAT_PING=0]="HEARTBEAT_PING",e[e.HEARTBEAT_ACK=1]="HEARTBEAT_ACK",e[e.LOGIN_REQUEST=2]="LOGIN_REQUEST",e[e.LOGIN_RESPONSE=3]="LOGIN_RESPONSE",e[e.CLOSE=4]="CLOSE",e[e.IQ_STANZA=7]="IQ_STANZA",e[e.DATA_MESSAGE_STANZA=8]="DATA_MESSAGE_STANZA",e))(Sge||{}),Oht="87.0.4280.66",P5r=[4,51,148,247,223,161,235,177,220,3,162,94,21,113,219,72,211,46,237,237,178,52,219,183,71,58,12,143,196,204,225,111,60,140,132,223,171,182,102,62,242,12,212,139,254,227,249,118,47,20,28,99,8,106,111,45,177,26,149,176,206,55,192,156,110],I5r=10,R5r=250,kge="prime256v1",F5r=["https://www.googleapis.com/auth/firebase.messaging"],j5r="mtalk.google.com",N5r=5228,q5r=5,X8=1,L5r=1e3,yht=1,bht=41,$5r=1,B5r=()=>({id:0n,securityToken:0n}),M5r=()=>({authSecret:[],privateKey:[]}),wht=()=>({cursor:0,received:{pids:[]},size:{packets:X8},state:0,tag:3,value:Buffer.alloc(0),version:0}),U5r=1e4*60,z5r="aracna_fcm_client",Fp=new A5r.default.Root,_ht=zv(l$(),1),_ge=zv(Dme(),1),Dht;(e=>{e.protobufPackage="mcs_proto";let t;(i=>(i[i.UNKNOWN=0]="UNKNOWN",i[i.DISCARDED_EVENTS=1]="DISCARDED_EVENTS",i[i.FAILED_CONNECTION=2]="FAILED_CONNECTION",i[i.SUCCESSFUL_CONNECTION=3]="SUCCESSFUL_CONNECTION",i[i.UNRECOGNIZED=-1]="UNRECOGNIZED"))(t=e.ClientEventType||={});let r;(i=>(i[i.ANDROID_ID=2]="ANDROID_ID",i[i.UNRECOGNIZED=-1]="UNRECOGNIZED"))(r=e.LoginRequestAuthService||={});let n;(i=>(i[i.GET=0]="GET",i[i.SET=1]="SET",i[i.RESULT=2]="RESULT",i[i.IQ_ERROR=3]="IQ_ERROR",i[i.UNRECOGNIZED=-1]="UNRECOGNIZED"))(n=e.IqStanzaIqType||={})})(Dht||={});_ge.default.util.Long!==_ht.default&&(_ge.default.util.Long=_ht.default,_ge.default.configure());var H5r=qc(),lr=new H5r.Logger("FCM_CLASS"),V5r=zv(c$(),1),G5r={options:{optimize_for:"LITE_RUNTIME"},nested:{mcs_proto:{nested:{HeartbeatPing:{fields:{stream_id:{type:"int32",id:1},last_stream_id_received:{type:"int32",id:2},status:{type:"int64",id:3}}},HeartbeatAck:{fields:{stream_id:{type:"int32",id:1},last_stream_id_received:{type:"int32",id:2},status:{type:"int64",id:3}}},ErrorInfo:{fields:{code:{rule:"required",type:"int32",id:1},message:{type:"string",id:2},type:{type:"string",id:3},extension:{type:"Extension",id:4}}},Setting:{fields:{name:{rule:"required",type:"string",id:1},value:{rule:"required",type:"string",id:2}}},HeartbeatStat:{fields:{ip:{rule:"required",type:"string",id:1},timeout:{rule:"required",type:"bool",id:2},interval_ms:{rule:"required",type:"int32",id:3}}},HeartbeatConfig:{fields:{upload_stat:{type:"bool",id:1},ip:{type:"string",id:2},interval_ms:{type:"int32",id:3}}},ClientEvent:{fields:{type:{type:"Type",id:1},number_discarded_events:{type:"uint32",id:100},network_type:{type:"int32",id:200},time_connection_started_ms:{type:"uint64",id:202},time_connection_ended_ms:{type:"uint64",id:203},error_code:{type:"int32",id:204},time_connection_established_ms:{type:"uint64",id:300}},reserved:[[201,201]],nested:{Type:{values:{UNKNOWN:0,DISCARDED_EVENTS:1,FAILED_CONNECTION:2,SUCCESSFUL_CONNECTION:3}}}},LoginRequest:{fields:{id:{rule:"required",type:"string",id:1},domain:{rule:"required",type:"string",id:2},user:{rule:"required",type:"string",id:3},resource:{rule:"required",type:"string",id:4},auth_token:{rule:"required",type:"string",id:5},device_id:{type:"string",id:6},last_rmq_id:{type:"int64",id:7},setting:{rule:"repeated",type:"Setting",id:8},received_persistent_id:{rule:"repeated",type:"string",id:10},adaptive_heartbeat:{type:"bool",id:12},heartbeat_stat:{type:"HeartbeatStat",id:13},use_rmq2:{type:"bool",id:14},account_id:{type:"int64",id:15},auth_service:{type:"AuthService",id:16},network_type:{type:"int32",id:17},status:{type:"int64",id:18},client_event:{rule:"repeated",type:"ClientEvent",id:22}},reserved:[[19,19],[20,20],[21,21]],nested:{AuthService:{values:{ANDROID_ID:2}}}},LoginResponse:{fields:{id:{rule:"required",type:"string",id:1},jid:{type:"string",id:2},error:{type:"ErrorInfo",id:3},setting:{rule:"repeated",type:"Setting",id:4},stream_id:{type:"int32",id:5},last_stream_id_received:{type:"int32",id:6},heartbeat_config:{type:"HeartbeatConfig",id:7},server_timestamp:{type:"int64",id:8}}},StreamErrorStanza:{fields:{type:{rule:"required",type:"string",id:1},text:{type:"string",id:2}}},Close:{fields:{}},Extension:{fields:{id:{rule:"required",type:"int32",id:1},data:{rule:"required",type:"bytes",id:2}}},IqStanza:{fields:{rmq_id:{type:"int64",id:1},type:{rule:"required",type:"IqType",id:2},id:{rule:"required",type:"string",id:3},from:{type:"string",id:4},to:{type:"string",id:5},error:{type:"ErrorInfo",id:6},extension:{type:"Extension",id:7},persistent_id:{type:"string",id:8},stream_id:{type:"int32",id:9},last_stream_id_received:{type:"int32",id:10},account_id:{type:"int64",id:11},status:{type:"int64",id:12}},nested:{IqType:{values:{GET:0,SET:1,RESULT:2,IQ_ERROR:3}}}},AppData:{fields:{key:{rule:"required",type:"string",id:1},value:{rule:"required",type:"string",id:2}}},DataMessageStanza:{fields:{id:{type:"string",id:2},from:{rule:"required",type:"string",id:3},to:{type:"string",id:4},category:{rule:"required",type:"string",id:5},token:{type:"string",id:6},app_data:{rule:"repeated",type:"AppData",id:7},from_trusted_server:{type:"bool",id:8},persistent_id:{type:"string",id:9},stream_id:{type:"int32",id:10},last_stream_id_received:{type:"int32",id:11},reg_id:{type:"string",id:13},device_user_id:{type:"int64",id:16},ttl:{type:"int32",id:17},sent:{type:"int64",id:18},queued:{type:"int32",id:19},status:{type:"int64",id:20},raw_data:{type:"bytes",id:21},immediate_ack:{type:"bool",id:24}}},StreamAck:{fields:{}},SelectiveAck:{fields:{id:{rule:"repeated",type:"string",id:1}}}}}}};V5r.default.Root.fromJSON(G5r,Fp);var wo={HeartbeatPing:Fp.lookupType("mcs_proto.HeartbeatPing"),HeartbeatAck:Fp.lookupType("mcs_proto.HeartbeatAck"),LoginRequest:Fp.lookupType("mcs_proto.LoginRequest"),LoginResponse:Fp.lookupType("mcs_proto.LoginResponse"),Close:Fp.lookupType("mcs_proto.Close"),IqStanza:Fp.lookupType("mcs_proto.IqStanza"),DataMessageStanza:Fp.lookupType("mcs_proto.DataMessageStanza")},UT=qc(),W5r=qc(),Cht=new W5r.RestAPI("https://android.clients.google.com/"),xht=zv(l$(),1),xge=zv(Dme(),1),FB;(e=>{e.protobufPackage="checkin_proto";let t;(i=>(i[i.DEVICE_ANDROID_OS=1]="DEVICE_ANDROID_OS",i[i.DEVICE_IOS_OS=2]="DEVICE_IOS_OS",i[i.DEVICE_CHROME_BROWSER=3]="DEVICE_CHROME_BROWSER",i[i.DEVICE_CHROME_OS=4]="DEVICE_CHROME_OS",i[i.UNRECOGNIZED=-1]="UNRECOGNIZED"))(t=e.DeviceType||={});let r;(i=>(i[i.PLATFORM_WIN=1]="PLATFORM_WIN",i[i.PLATFORM_MAC=2]="PLATFORM_MAC",i[i.PLATFORM_LINUX=3]="PLATFORM_LINUX",i[i.PLATFORM_CROS=4]="PLATFORM_CROS",i[i.PLATFORM_IOS=5]="PLATFORM_IOS",i[i.PLATFORM_ANDROID=6]="PLATFORM_ANDROID",i[i.UNRECOGNIZED=-1]="UNRECOGNIZED"))(r=e.ChromeBuildProtoPlatform||={});let n;(i=>(i[i.CHANNEL_STABLE=1]="CHANNEL_STABLE",i[i.CHANNEL_BETA=2]="CHANNEL_BETA",i[i.CHANNEL_DEV=3]="CHANNEL_DEV",i[i.CHANNEL_CANARY=4]="CHANNEL_CANARY",i[i.CHANNEL_UNKNOWN=5]="CHANNEL_UNKNOWN",i[i.UNRECOGNIZED=-1]="UNRECOGNIZED"))(n=e.ChromeBuildProtoChannel||={})})(FB||={});xge.default.util.Long!==xht.default&&(xge.default.util.Long=xht.default,xge.default.configure());var K5r=qc(),Mh=new K5r.Logger("FCM_REQUEST"),Y5r=zv(c$(),1),J5r={options:{optimize_for:"LITE_RUNTIME"},nested:{checkin_proto:{nested:{GservicesSetting:{fields:{name:{rule:"required",type:"bytes",id:1},value:{rule:"required",type:"bytes",id:2}}},AndroidCheckinRequest:{fields:{imei:{type:"string",id:1},meid:{type:"string",id:10},mac_addr:{rule:"repeated",type:"string",id:9},mac_addr_type:{rule:"repeated",type:"string",id:19},serial_number:{type:"string",id:16},esn:{type:"string",id:17},id:{type:"int64",id:2},logging_id:{type:"int64",id:7},digest:{type:"string",id:3},locale:{type:"string",id:6},checkin:{rule:"required",type:"AndroidCheckinProto",id:4},desired_build:{type:"string",id:5},market_checkin:{type:"string",id:8},account_cookie:{rule:"repeated",type:"string",id:11},time_zone:{type:"string",id:12},security_token:{type:"fixed64",id:13},version:{type:"int32",id:14},ota_cert:{rule:"repeated",type:"string",id:15},fragment:{type:"int32",id:20},user_name:{type:"string",id:21},user_serial_number:{type:"int32",id:22}}},AndroidCheckinResponse:{fields:{stats_ok:{rule:"required",type:"bool",id:1},time_msec:{type:"int64",id:3},digest:{type:"string",id:4},settings_diff:{type:"bool",id:9},delete_setting:{rule:"repeated",type:"string",id:10},setting:{rule:"repeated",type:"GservicesSetting",id:5},market_ok:{type:"bool",id:6},android_id:{type:"fixed64",id:7},security_token:{type:"fixed64",id:8},version_info:{type:"string",id:11}}},ChromeBuildProto:{fields:{platform:{type:"Platform",id:1},chrome_version:{type:"string",id:2},channel:{type:"Channel",id:3}},nested:{Platform:{values:{PLATFORM_WIN:1,PLATFORM_MAC:2,PLATFORM_LINUX:3,PLATFORM_CROS:4,PLATFORM_IOS:5,PLATFORM_ANDROID:6}},Channel:{values:{CHANNEL_STABLE:1,CHANNEL_BETA:2,CHANNEL_DEV:3,CHANNEL_CANARY:4,CHANNEL_UNKNOWN:5}}}},AndroidCheckinProto:{fields:{last_checkin_msec:{type:"int64",id:2},cell_operator:{type:"string",id:6},sim_operator:{type:"string",id:7},roaming:{type:"string",id:8},user_number:{type:"int32",id:9},type:{type:"DeviceType",id:12,options:{default:"DEVICE_ANDROID_OS"}},chrome_build:{type:"checkin_proto.ChromeBuildProto",id:13}}},DeviceType:{values:{DEVICE_ANDROID_OS:1,DEVICE_IOS_OS:2,DEVICE_CHROME_BROWSER:3,DEVICE_CHROME_OS:4}}}}}};Y5r.default.Root.fromJSON(J5r,Fp);var Eht={GservicesSetting:Fp.lookupType("checkin_proto.GservicesSetting"),Request:Fp.lookupType("checkin_proto.AndroidCheckinRequest"),Response:Fp.lookupType("checkin_proto.AndroidCheckinResponse")},X5r=zv(l$(),1);function Uv(e,t,r){return X5r.default.fromString(e.toString(),t,r)}function Kw(e,t,r){return e.decode(t,r)}async function Pht(e=0n,t=0n){let r,n,i,a,s,o;return r={account_cookie:[],checkin:{cell_operator:"",chrome_build:{channel:FB.ChromeBuildProtoChannel.CHANNEL_STABLE,chrome_version:Oht,platform:FB.ChromeBuildProtoPlatform.PLATFORM_MAC},last_checkin_msec:Uv(0n),roaming:"",sim_operator:"",type:FB.DeviceType.DEVICE_CHROME_BROWSER,user_number:0},desired_build:"",digest:"",fragment:0,id:Uv(e,!0),locale:"",logging_id:Uv(0n),mac_addr:[],mac_addr_type:[],market_checkin:"",ota_cert:[],security_token:Uv(t,!0),time_zone:"",user_name:"",user_serial_number:0,version:3},Mh.verbose("postAcgCheckin","The request has been created.",r),n=Eht.Request.encode(r).finish(),i={"content-type":"application/x-protobuf"},a=await Cht.post("checkin",n,{headers:i}),a instanceof Error?a:(s=Kw(Eht.Response,new Uint8Array(a.data)),Mh.info("postAcgCheckin","The response data has been decoded.",s),o={...s,android_id:BigInt(s.android_id.toString()),security_token:BigInt(s.security_token.toString())},Mh.info("postAcgCheckin","The checkin response has been defined.",o),o)}async function Iht(e,t,r,n,i=0){let a,s,o,c;if(a=(0,UT.serializeURLSearchParams)({app:"org.chromium.linux",device:e,sender:(0,UT.encodeBase64URL)(P5r,{pad:!1}),"X-subtype":r}),s={authorization:`AidLogin ${e}:${t}`},o=await Cht.post("c2dm/register3",a,{headers:s}),o instanceof Error||!o.data.startsWith("token=")){let p,f;return p=n?.retry?.delay??R5r,f=n?.retry?.max??I5r,o instanceof Error&&Mh.error("postAcgRegister","The request failed.",[o]),o instanceof UT.FetchResponse&&Mh.error("postAcgRegister","The response data does not contain the token.",[o.data]),i<f?(Mh.verbose("postAcgRegister",`Waiting ${p}ms before trying again...`),await(0,UT.sleep)(p),Mh.verbose("postAcgRegister","Trying again...",[i+1,f]),Iht(e,t,r,n,i+1)):o instanceof Error?o:UT.FetchError.from(o)}return c=o.data.slice(6).trim(),Mh.info("postAcgRegister","The token has been defined.",[c]),c}var Q5r=class extends Wo.EventEmitter{acg;data;ece;options;socket;storage;storageKey;constructor(e){super(),this.acg=e?.acg??B5r(),this.ece=e?.ece??M5r(),this.data=wht(),this.options={heartbeat:{frequency:e?.heartbeat?.frequency??U5r}},this.storage=e?.storage?.instance??Wo.MemoryStorage,this.storageKey=e?.storage?.key??z5r}async connect(e){let t,r;if(this.socket?.connecting||this.socket?.writable)return lr.warn("FcmClient","connect","The socket is already connected or is connecting.");if(t=await this.storage.copy(this.storageKey,this.data,["received"]),t instanceof Error)return t;if(r=await Pht(this.acg.id,this.acg.securityToken),r instanceof Error)return r;this.socket=(0,k5r.connect)(N5r,j5r,{rejectUnauthorized:!1,...e}),this.socket.setKeepAlive(!0),this.socket.on("close",this.onSocketClose),this.socket.on("connect",this.onSocketConnect),this.socket.on("data",this.onSocketData),this.socket.on("drain",this.onSocketDrain),this.socket.on("end",this.onSocketEnd),this.socket.on("error",this.onSocketError),this.socket.on("lookup",this.onSocketLookup),this.socket.on("ready",this.onSocketReady),this.socket.on("timeout",this.onSocketTimeout),this.socket.on("keylog",this.onSocketKeylog),this.socket.on("OCSPResponse",this.onSocketOCSPResponse),this.socket.on("secureConnect",this.onSocketSecureConnect),this.socket.on("session",this.onSocketSession)}async disconnect(e){let t=new Wo.DeferredPromise;return await this.storage.set(this.storageKey,this.data,["received"]),lr.verbose("FcmClient","disconnect","The received pids have been stored."),this.socket?.closed||this.socket?.destroyed?lr.warn("FcmClient","disconnect","The socket is already disconnected."):(this.socket?.on("close",()=>{this.socket=void 0,t.resolve()}),this.socket=this.socket?.destroy(e),t.instance)}login(){let e,t,r;e={account_id:Uv(0n),adaptive_heartbeat:!1,auth_service:Dht.LoginRequestAuthService.ANDROID_ID,auth_token:this.acg.securityToken.toString(),client_event:[],device_id:`android-${this.acg.id.toString(16)}`,domain:"mcs.android.com",heartbeat_stat:void 0,id:`chrome-${Oht}`,last_rmq_id:Uv(0n),network_type:1,received_persistent_id:this.data.received.pids,resource:this.acg.id.toString(),setting:[{name:"new_vc",value:"1"}],status:Uv(0n),user:this.acg.id.toString(),use_rmq2:!0},lr.verbose("FcmClient","onSocketReady","The login request has been created.",e),t=wo.LoginRequest.encodeDelimited(e).finish(),lr.verbose("FcmClient","onSocketReady","The login request has been encoded",t),r=Buffer.from([bht,2,...t]),lr.verbose("FcmClient","onSocketReady","The login request buffer is ready.",r),this.data=wht(),lr.verbose("FcmClient","onSocketReady","The data has been reset.",this.data),this.socket?.write(r),lr.info("FcmClient","onSocketReady","The login request has been sent.")}heartbeat(){let e,t,r;e={stream_id:this.data.heartbeat?.stream_id??this.data.login?.stream_id??0,last_stream_id_received:this.data.heartbeat?.last_stream_id_received??this.data.login?.last_stream_id_received??0,status:this.data.heartbeat?.status??Uv(0n)},lr.verbose("FcmClient","onHeartbeat","The heartbeat ping has been created.",e),t=wo.HeartbeatPing.encodeDelimited(e).finish(),lr.verbose("FcmClient","onHeartbeat","The heartbeat ping has been encoded.",t),r=Buffer.from([0,...t]),lr.verbose("FcmClient","onHeartbeat","The heartbeat ping buffer is ready",r),this.socket?.write(r),lr.info("FcmClient","onHeartbeat","HeartbeatPing","The heartbeat ping has been sent.")}prepareForNextMessage(){this.data.cursor=0,this.data.size.packets=X8,this.data.state=1,this.data.value=Buffer.alloc(0)}onSocketClose=e=>{if(e)return lr.error("FcmClient","onSocketClose","The socket has been closed with errors.",[e]);lr.info("FcmClient","onSocketClose","The socket has been closed.")};onSocketConnect=()=>{lr.info("FcmClient","onSocketConnect","The socket has been connected.")};onSocketData=e=>{switch(this.data.value=Buffer.concat([this.data.value,e]),lr.verbose("FcmClient","onSocketData",e,this.data.value,[e.length,this.data.value.length]),this.data.state){case 0:if(this.data.value.length<$5r+yht+X8)return;this.onSocketDataVersion(),this.onSocketDataTag(),this.onSocketDataSize();break;case 1:if(this.data.value.length<yht+X8)return;this.onSocketDataTag(),this.onSocketDataSize();break;case 2:this.onSocketDataSize();break;case 3:this.onSocketDataBytes();break;default:lr.warn("FcmClient","onSocketData","This state is not handled.",[this.data.state]);return}};onSocketDataVersion=()=>{if(this.data.version=this.data.value.readUInt8(0),lr.info("FcmClient","onSocketDataVersion",this.data.version),this.data.version<bht){this.socket?.destroy(new Error("Unsupported MCS version")),lr.error("FcmClient","onSocketDataVersion","Unsupported MCS version",this.data.version);return}this.data.cursor++,lr.verbose("FcmClient","onSocketDataVersion","Increasing the cursor by 1.",[this.data.cursor]),this.data.state=1,lr.info("FcmClient","onSocketDataVersion","Setting state to TAG_AND_SIZE.",[this.data.state])};onSocketDataTag=()=>{this.data.tag=this.data.value.readUInt8(this.data.cursor),lr.info("FcmClient","onSocketDataTag",[this.data.tag,Sge[this.data.tag]]),this.data.cursor++,lr.verbose("FcmClient","onSocketDataTag","Increasing the cursor by 1.",[this.data.cursor]),this.data.state=2,lr.info("FcmClient","onSocketDataTag","Setting state to SIZE.",[this.data.state])};onSocketDataSize=()=>{let e,t;if(this.data.value.length-this.data.cursor<X8){lr.warn("FcmClient","onSocketDataSize","Failed to read current message, not enough size packets.");return}if(this.data.size.packets>q5r){this.data.size.packets=X8,lr.warn("FcmClient","onSocketDataBytes","Failed to read current message, resetting size packets and waiting for more bytes."),(0,Wo.setTimeout)(this.onSocketDataSizeTimeout,L5r);return}switch(this.data.tag){case 4:e=(0,Wo.tc)(()=>wo.Close.verify(wo.Close.decode(this.data.value.subarray(this.data.cursor+this.data.size.packets))),!1);break;case 8:e=(0,Wo.tc)(()=>wo.DataMessageStanza.verify(wo.DataMessageStanza.decode(this.data.value.subarray(this.data.cursor+this.data.size.packets))),!1),t=(0,Wo.tc)(()=>{let r,n;r=(0,Wo.tc)(()=>Kw(wo.DataMessageStanza,this.data.value.subarray(this.data.cursor+this.data.size.packets)),!1),!(r instanceof Error)&&(n=(0,vht.decrypt)(Buffer.from(r.raw_data),{authSecret:(0,Wo.encodeBase64)(this.ece.authSecret),dh:r.app_data.find(i=>i.key==="crypto-key")?.value.slice(3),privateKey:(0,ght.createECDH)(kge).setPrivateKey(new Uint8Array(this.ece.privateKey)),salt:r.app_data.find(i=>i.key==="encryption")?.value.slice(5),version:"aesgcm"}),JSON.parse((0,Wo.decodeText)(n)))},!1);break;case 1:e=(0,Wo.tc)(()=>wo.HeartbeatAck.verify(wo.HeartbeatAck.decode(this.data.value.subarray(this.data.cursor+this.data.size.packets))),!1);break;case 7:e=(0,Wo.tc)(()=>wo.IqStanza.verify(wo.IqStanza.decode(this.data.value.subarray(this.data.cursor+this.data.size.packets))),!1);break;case 3:e=(0,Wo.tc)(()=>wo.LoginResponse.verify(wo.LoginResponse.decode(this.data.value.subarray(this.data.cursor+this.data.size.packets))),!1);break;default:e=null;break}if(e instanceof Error||typeof e=="string"||t instanceof Error){lr.verbose("FcmClient","onSocketDataSize","Failed to decode the message with current size and bytes.",[this.data.size.packets,e,t]),this.data.size.packets++,lr.verbose("FcmClient","onSocketDataSize","Increasing the packets by 1 and trying again.",[this.data.size.packets]),this.onSocketDataSize();return}(0,Wo.clearTimeout)(this.onSocketDataSizeTimeout),this.data.cursor+=this.data.size.packets,lr.verbose("FcmClient","onSocketDataSize",`Increasing the cursor by ${this.data.size.packets}.`,[this.data.cursor]),this.data.state=3,lr.info("FcmClient","onSocketDataSize","Setting state to BYTES.",[this.data.state]),this.onSocketDataBytes()};onSocketDataSizeTimeout=()=>{this.prepareForNextMessage(),lr.warn("FcmClient","onSocketDataSizeTimeout","The size state has timed out, ready for the next message.")};onSocketDataBytes=()=>{switch(this.data.tag){case 4:{let e;e=Kw(wo.Close,this.data.value.subarray(this.data.cursor)),lr.info("FcmClient","onSocketDataBytes","CLOSE","The bytes have been decoded.",e),this.emit("close"),lr.verbose("FcmClient","onSocketDataBytes","CLOSE","The close event has been emitted.");break}case 8:{let e,t,r,n;e=Kw(wo.DataMessageStanza,this.data.value.subarray(this.data.cursor)),lr.info("FcmClient","onSocketDataBytes","DATA_MESSAGE_STANZA","The bytes have been decoded.",e),this.emit("message",e),lr.verbose("FcmClient","onSocketDataBytes","DATA_MESSAGE_STANZA","The message event has been emitted."),this.data.received.pids.push(e.persistent_id),lr.verbose("FcmClient","onSocketDataBytes","DATA_MESSAGE_STANZA","The persistent id has been pushed.",this.data.received.pids),this.storage.set(this.storageKey,this.data,["received"]),lr.verbose("FcmClient","onSocketDataBytes","DATA_MESSAGE_STANZA","The received pids have been stored."),t=(0,ght.createECDH)(kge),t.setPrivateKey(new Uint8Array(this.ece.privateKey)),r=(0,vht.decrypt)(Buffer.from(e.raw_data),{authSecret:(0,Wo.encodeBase64)(this.ece.authSecret),dh:e.app_data.find(i=>i.key==="crypto-key")?.value.slice(3),privateKey:t,salt:e.app_data.find(i=>i.key==="encryption")?.value.slice(5),version:"aesgcm"}),lr.verbose("FcmClient","onSocketDataBytes","DATA_MESSAGE_STANZA","The message data has been decrypted.",r),n=JSON.parse((0,Wo.decodeText)(r)),lr.info("FcmClient","onSocketDataBytes","DATA_MESSAGE_STANZA","The message data has been parsed.",n),this.emit("message-data",n),lr.verbose("FcmClient","onSocketDataBytes","DATA_MESSAGE_STANZA","The message event has been emitted.");break}case 1:{let e;e=Kw(wo.HeartbeatAck,this.data.value.subarray(this.data.cursor)),lr.info("FcmClient","onSocketDataBytes","HEARTBEAT_ACK","The bytes have been decoded.",e),this.emit("heartbeat",e),lr.verbose("FcmClient","onSocketDataBytes","HEARTBEAT_ACK","The heartbeat event has been emitted."),this.data.heartbeat=e,lr.verbose("FcmClient","onSocketDataBytes","HEARTBEAT_ACK","The heartbeat ack has been set inside data."),(0,Wo.setTimeout)(this.heartbeat.bind(this),this.options.heartbeat?.frequency);break}case 7:{let e;e=Kw(wo.IqStanza,this.data.value.subarray(this.data.cursor)),lr.info("FcmClient","onSocketDataBytes","IQ_STANZA","The bytes have been decoded.",e),this.emit("iq",e),lr.verbose("FcmClient","onSocketDataBytes","IQ_STANZA","The iq event has been emitted.");break}case 3:{let e;if(e=Kw(wo.LoginResponse,this.data.value.subarray(this.data.cursor)),lr.info("FcmClient","onSocketDataBytes","LOGIN_RESPONSE","The bytes have been decoded.",e),e.error||e.last_stream_id_received!==1){lr.error("FcmClient","onSocketDataBytes","LOGIN_RESPONSE","Failed to login.");break}this.emit("login",e),lr.verbose("FcmClient","onSocketDataBytes","LOGIN_RESPONSE","The login event has been emitted."),this.data.login=e,lr.verbose("FcmClient","onSocketDataBytes","LOGIN_RESPONSE","The login response has been set inside data."),this.data.received.pids=[],lr.verbose("FcmClient","onSocketDataBytes","LOGIN_RESPONSE","The received pids have been reset."),this.storage.set(this.storageKey,this.data,["received"]),lr.verbose("FcmClient","onSocketDataBytes","LOGIN_RESPONSE","The received pids have been stored."),this.heartbeat();break}default:lr.warn("FcmClient","onSocketDataBytes","This tag is not handled.",[this.data.tag,Sge[this.data.tag]]);break}this.prepareForNextMessage(),lr.verbose("FcmClient","onSocketDataBytes","Ready for the next message.")};onSocketDrain=()=>{lr.verbose("FcmClient","onSocketDrain","The socket has been drained.")};onSocketEnd=()=>{lr.info("FcmClient","onSocketEnd","The socket connection has ended.")};onSocketError=e=>{lr.error("FcmClient","onSocketError",e)};onSocketKeylog=e=>{lr.verbose("FcmClient","onSocketKeylog",e)};onSocketLookup=(e,t,r,n)=>{lr.verbose("FcmClient","onSocketLookup",[e,t,r,n])};onSocketOCSPResponse=e=>{lr.verbose("FcmClient","onSocketOCSPResponse",e)};onSocketReady=()=>{lr.info("FcmClient","onSocketReady","The socket is ready."),this.login(),lr.verbose("FcmClient","onSocketReady","The login request has been sent.")};onSocketSecureConnect=()=>{lr.verbose("FcmClient","onSocketSecureConnect","The socket has been securely connected.")};onSocketSession=e=>{lr.verbose("FcmClient","onSocketSession",e)};onSocketTimeout=()=>{lr.warn("FcmClient","onSocketTimeout","The socket has timed out.")};getAcgID(){return this.acg.id}getAcgSecurityToken(){return this.acg.securityToken}getAuthSecret(){return this.ece.authSecret}getEcdhPrivateKey(){return this.ece.privateKey}getHeartbeatFrequency(){return this.options.heartbeat.frequency}getSocket(){return this.socket}getStorage(){return this.storage}getStorageKey(){return this.storageKey}setAcgID(e){return this.acg.id=e,this}setAcgSecurityToken(e){return this.acg.securityToken=e,this}setAuthSecret(e){return this.ece.authSecret=e,this}setEcdhPrivateKey(e){return this.ece.privateKey=e,this}setHeartbeatFrequency(e){return this.options.heartbeat.frequency=e,this}},Z5r=qc(),Rht=new Z5r.Logger("FCM_FUNCTION"),Ege=qc(),e9r=qc(),Fht=new e9r.RestAPI("https://fcm.googleapis.com/"),t9r=qc(),r9r=new t9r.RestAPI("https://fcmregistrations.googleapis.com/v1/");async function n9r(e,t,r,n,i,a,s){let o,c,p;return o={web:{applicationPubKey:r,auth:(0,Ege.encodeBase64URL)(n,{pad:!1}),endpoint:(0,Ege.concatURL)(Fht.getBaseURL(),`fcm/send/${s}`),p256dh:(0,Ege.encodeBase64URL)(a,{pad:!1})}},c={"x-goog-api-key":t,"x-goog-firebase-installations-auth":i},p=await r9r.post(`projects/${e}/registrations`,o,{headers:c}),p instanceof Error?p:p.data}var Sht=qc(),i9r=qc(),a9r=new i9r.RestAPI("https://firebaseinstallations.googleapis.com/v1/"),s9r=qc(),o9r=require("crypto");function u9r(){let e;return e=(0,o9r.randomBytes)(17),e[0]=112+e[0]%16,(0,s9r.encodeBase64URL)(e,{pad:!1})}async function c9r(e,t,r){let n,i,a,s;return n={appId:e,authVersion:"FIS_v2",fid:u9r(),sdkVersion:"w:0.6.4"},i={heartbeats:[],version:2},Mh.verbose("postFirebaseInstallations","The heartbeat has been created.",i),a={"x-firebase-client":(0,Sht.encodeBase64URL)((0,Sht.encodeText)(JSON.stringify(i)),{pad:!1}),"x-goog-api-key":r},s=await a9r.post(`projects/${t}/installations`,n,{headers:a}),s instanceof Error?s:s.data}async function l9r(e,t){let r,n,i,a,s;return r=await Pht(e.acg?.id,e.acg?.securityToken),r instanceof Error?r:(n=await Iht(r.android_id,r.security_token,e.appID,t?.acg?.register),n instanceof Error?n:(i=await c9r(e.firebase.appID,e.firebase.projectID,e.firebase.apiKey),i instanceof Error?i:(a=await n9r(e.firebase.projectID,e.firebase.apiKey,e.vapidKey,e.ece.authSecret,i.authToken.token,e.ece.publicKey,n),a instanceof Error?a:(s={acg:{id:r.android_id,securityToken:r.security_token},token:a.token},Rht.info("registerToFCM","The registration has been completed.",s),s))))}var p9r=mht();async function Age(e,t){let r,n;return r=new p9r.JWT(e,void 0,t,F5r),n=await r.authorize(),n.access_token??void 0}async function f9r(e,t,r){let n,i,a;return n={message:t,validate_only:r},i={authorization:`Bearer ${await Age(e.client_email,e.private_key)}`},a=await Fht.post(`v1/projects/${e.project_id}/messages:send`,n,{headers:i}),a instanceof Error?a:a.data}async function d9r(e,t,r){return f9r(e,t,r)}var h9r=qc(),jht=new h9r.RestAPI("https://iid.googleapis.com/");async function m9r(e,t,...r){let n,i,a;return n={registration_tokens:r[0]instanceof Array?r[0]:r,to:t.startsWith("/topics/")?t:`/topics/${t}`},i={access_token_auth:"true",authorization:`Bearer ${await Age(e.client_email,e.private_key)}`},a=await jht.post("iid/v1:batchAdd",n,{headers:i}),a instanceof Error?a:a.data}async function g9r(e,t,...r){let n,i,a;return n={registration_tokens:r[0]instanceof Array?r[0]:r,to:t.startsWith("/topics/")?t:`/topics/${t}`},i={access_token_auth:"true",authorization:`Bearer ${await Age(e.client_email,e.private_key)}`},a=await jht.post("iid/v1:batchRemove",n,{headers:i}),a instanceof Error?a:a.data}async function v9r(e,t,...r){return m9r(e,t,...r)}async function y9r(e,t,...r){return g9r(e,t,...r)}var Nht=require("crypto");function b9r(){let e;return e=(0,Nht.createECDH)(kge),e.generateKeys(),e}function w9r(){return(0,Nht.randomBytes)(16)}});var Bht=b((kfn,$ht)=>{"use strict";var Yw=use(),_9r=new Set(["__proto__","prototype","constructor"]),x9r=e=>!e.some(t=>_9r.has(t));function NB(e){let t=e.split("."),r=[];for(let n=0;n<t.length;n++){let i=t[n];for(;i[i.length-1]==="\\"&&t[n+1]!==void 0;)i=i.slice(0,-1)+".",i+=t[++n];r.push(i)}return x9r(r)?r:[]}$ht.exports={get(e,t,r){if(!Yw(e)||typeof t!="string")return r===void 0?e:r;let n=NB(t);if(n.length!==0){for(let i=0;i<n.length;i++)if(e=e[n[i]],e==null){if(i!==n.length-1)return r;break}return e===void 0?r:e}},set(e,t,r){if(!Yw(e)||typeof t!="string")return e;let n=e,i=NB(t);for(let a=0;a<i.length;a++){let s=i[a];Yw(e[s])||(e[s]={}),a===i.length-1&&(e[s]=r),e=e[s]}return n},delete(e,t){if(!Yw(e)||typeof t!="string")return!1;let r=NB(t);for(let n=0;n<r.length;n++){let i=r[n];if(n===r.length-1)return delete e[i],!0;if(e=e[i],!Yw(e))return!1}},has(e,t){if(!Yw(e)||typeof t!="string")return!1;let r=NB(t);if(r.length===0)return!1;for(let n=0;n<r.length;n++)if(Yw(e)){if(!(r[n]in e))return!1;e=e[r[n]]}else return!1;return!0}}});var Q8=b(Zi=>{"use strict";Object.defineProperty(Zi,"__esModule",{value:!0});Zi.NOOP=Zi.LIMIT_FILES_DESCRIPTORS=Zi.LIMIT_BASENAME_LENGTH=Zi.IS_USER_ROOT=Zi.IS_POSIX=Zi.DEFAULT_TIMEOUT_SYNC=Zi.DEFAULT_TIMEOUT_ASYNC=Zi.DEFAULT_WRITE_OPTIONS=Zi.DEFAULT_READ_OPTIONS=Zi.DEFAULT_FOLDER_MODE=Zi.DEFAULT_FILE_MODE=Zi.DEFAULT_ENCODING=void 0;var E9r="utf8";Zi.DEFAULT_ENCODING=E9r;var S9r=438;Zi.DEFAULT_FILE_MODE=S9r;var k9r=511;Zi.DEFAULT_FOLDER_MODE=k9r;var A9r={};Zi.DEFAULT_READ_OPTIONS=A9r;var T9r={};Zi.DEFAULT_WRITE_OPTIONS=T9r;var O9r=5e3;Zi.DEFAULT_TIMEOUT_ASYNC=O9r;var D9r=100;Zi.DEFAULT_TIMEOUT_SYNC=D9r;var C9r=!!process.getuid;Zi.IS_POSIX=C9r;var P9r=process.getuid?!process.getuid():!1;Zi.IS_USER_ROOT=P9r;var I9r=128;Zi.LIMIT_BASENAME_LENGTH=I9r;var R9r=1e4;Zi.LIMIT_FILES_DESCRIPTORS=R9r;var F9r=()=>{};Zi.NOOP=F9r});var Uht=b(Z8=>{"use strict";Object.defineProperty(Z8,"__esModule",{value:!0});Z8.attemptifySync=Z8.attemptifyAsync=void 0;var Mht=Q8(),j9r=(e,t=Mht.NOOP)=>function(){return e.apply(void 0,arguments).catch(t)};Z8.attemptifyAsync=j9r;var N9r=(e,t=Mht.NOOP)=>function(){try{return e.apply(void 0,arguments)}catch(r){return t(r)}};Z8.attemptifySync=N9r});var Hht=b(Tge=>{"use strict";Object.defineProperty(Tge,"__esModule",{value:!0});var q9r=Q8(),zht={isChangeErrorOk:e=>{let{code:t}=e;return t==="ENOSYS"||!q9r.IS_USER_ROOT&&(t==="EINVAL"||t==="EPERM")},isRetriableError:e=>{let{code:t}=e;return t==="EMFILE"||t==="ENFILE"||t==="EAGAIN"||t==="EBUSY"||t==="EACCESS"||t==="EACCS"||t==="EPERM"},onChangeError:e=>{if(!zht.isChangeErrorOk(e))throw e}};Tge.default=zht});var Vht=b(Oge=>{"use strict";Object.defineProperty(Oge,"__esModule",{value:!0});var L9r=Q8(),ea={interval:25,intervalId:void 0,limit:L9r.LIMIT_FILES_DESCRIPTORS,queueActive:new Set,queueWaiting:new Set,init:()=>{ea.intervalId||(ea.intervalId=setInterval(ea.tick,ea.interval))},reset:()=>{ea.intervalId&&(clearInterval(ea.intervalId),delete ea.intervalId)},add:e=>{ea.queueWaiting.add(e),ea.queueActive.size<ea.limit/2?ea.tick():ea.init()},remove:e=>{ea.queueWaiting.delete(e),ea.queueActive.delete(e)},schedule:()=>new Promise(e=>{let t=()=>ea.remove(r),r=()=>e(t);ea.add(r)}),tick:()=>{if(!(ea.queueActive.size>=ea.limit)){if(!ea.queueWaiting.size)return ea.reset();for(let e of ea.queueWaiting){if(ea.queueActive.size>=ea.limit)break;ea.queueWaiting.delete(e),ea.queueActive.add(e),e()}}}};Oge.default=ea});var Ght=b(ex=>{"use strict";Object.defineProperty(ex,"__esModule",{value:!0});ex.retryifySync=ex.retryifyAsync=void 0;var $9r=Vht(),B9r=(e,t)=>function(r){return function n(){return $9r.default.schedule().then(i=>e.apply(void 0,arguments).then(a=>(i(),a),a=>{if(i(),Date.now()>=r)throw a;if(t(a)){let s=Math.round(100+400*Math.random());return new Promise(c=>setTimeout(c,s)).then(()=>n.apply(void 0,arguments))}throw a}))}};ex.retryifyAsync=B9r;var M9r=(e,t)=>function(r){return function n(){try{return e.apply(void 0,arguments)}catch(i){if(Date.now()>r)throw i;if(t(i))return n.apply(void 0,arguments);throw i}}};ex.retryifySync=M9r});var Cge=b(Dge=>{"use strict";Object.defineProperty(Dge,"__esModule",{value:!0});var vi=require("fs"),ac=require("util"),sc=Uht(),_o=Hht(),Bc=Ght(),U9r={chmodAttempt:sc.attemptifyAsync(ac.promisify(vi.chmod),_o.default.onChangeError),chownAttempt:sc.attemptifyAsync(ac.promisify(vi.chown),_o.default.onChangeError),closeAttempt:sc.attemptifyAsync(ac.promisify(vi.close)),fsyncAttempt:sc.attemptifyAsync(ac.promisify(vi.fsync)),mkdirAttempt:sc.attemptifyAsync(ac.promisify(vi.mkdir)),realpathAttempt:sc.attemptifyAsync(ac.promisify(vi.realpath)),statAttempt:sc.attemptifyAsync(ac.promisify(vi.stat)),unlinkAttempt:sc.attemptifyAsync(ac.promisify(vi.unlink)),closeRetry:Bc.retryifyAsync(ac.promisify(vi.close),_o.default.isRetriableError),fsyncRetry:Bc.retryifyAsync(ac.promisify(vi.fsync),_o.default.isRetriableError),openRetry:Bc.retryifyAsync(ac.promisify(vi.open),_o.default.isRetriableError),readFileRetry:Bc.retryifyAsync(ac.promisify(vi.readFile),_o.default.isRetriableError),renameRetry:Bc.retryifyAsync(ac.promisify(vi.rename),_o.default.isRetriableError),statRetry:Bc.retryifyAsync(ac.promisify(vi.stat),_o.default.isRetriableError),writeRetry:Bc.retryifyAsync(ac.promisify(vi.write),_o.default.isRetriableError),chmodSyncAttempt:sc.attemptifySync(vi.chmodSync,_o.default.onChangeError),chownSyncAttempt:sc.attemptifySync(vi.chownSync,_o.default.onChangeError),closeSyncAttempt:sc.attemptifySync(vi.closeSync),mkdirSyncAttempt:sc.attemptifySync(vi.mkdirSync),realpathSyncAttempt:sc.attemptifySync(vi.realpathSync),statSyncAttempt:sc.attemptifySync(vi.statSync),unlinkSyncAttempt:sc.attemptifySync(vi.unlinkSync),closeSyncRetry:Bc.retryifySync(vi.closeSync,_o.default.isRetriableError),fsyncSyncRetry:Bc.retryifySync(vi.fsyncSync,_o.default.isRetriableError),openSyncRetry:Bc.retryifySync(vi.openSync,_o.default.isRetriableError),readFileSyncRetry:Bc.retryifySync(vi.readFileSync,_o.default.isRetriableError),renameSyncRetry:Bc.retryifySync(vi.renameSync,_o.default.isRetriableError),statSyncRetry:Bc.retryifySync(vi.statSync,_o.default.isRetriableError),writeSyncRetry:Bc.retryifySync(vi.writeSync,_o.default.isRetriableError)};Dge.default=U9r});var Wht=b(Pge=>{"use strict";Object.defineProperty(Pge,"__esModule",{value:!0});var z9r={isFunction:e=>typeof e=="function",isString:e=>typeof e=="string",isUndefined:e=>typeof e>"u"};Pge.default=z9r});var Kht=b(Rge=>{"use strict";Object.defineProperty(Rge,"__esModule",{value:!0});var qB={},Ige={next:e=>{let t=qB[e];if(!t)return;t.shift();let r=t[0];r?r(()=>Ige.next(e)):delete qB[e]},schedule:e=>new Promise(t=>{let r=qB[e];r||(r=qB[e]=[]),r.push(t),!(r.length>1)&&t(()=>Ige.next(e))})};Rge.default=Ige});var Xht=b(Fge=>{"use strict";Object.defineProperty(Fge,"__esModule",{value:!0});var H9r=require("path"),Yht=Q8(),Jht=Cge(),Dl={store:{},create:e=>{let t=`000000${Math.floor(Math.random()*16777215).toString(16)}`.slice(-6),r=Date.now().toString().slice(-10),n="tmp-",i=`.${n}${r}${t}`;return`${e}${i}`},get:(e,t,r=!0)=>{let n=Dl.truncate(t(e));return n in Dl.store?Dl.get(e,t,r):(Dl.store[n]=r,[n,()=>delete Dl.store[n]])},purge:e=>{Dl.store[e]&&(delete Dl.store[e],Jht.default.unlinkAttempt(e))},purgeSync:e=>{Dl.store[e]&&(delete Dl.store[e],Jht.default.unlinkSyncAttempt(e))},purgeSyncAll:()=>{for(let e in Dl.store)Dl.purgeSync(e)},truncate:e=>{let t=H9r.basename(e);if(t.length<=Yht.LIMIT_BASENAME_LENGTH)return e;let r=/^(\.?)(.*?)((?:\.[^.]+)?(?:\.tmp-\d{10}[a-f0-9]{6})?)$/.exec(t);if(!r)return e;let n=t.length-Yht.LIMIT_BASENAME_LENGTH;return`${e.slice(0,-t.length)}${r[1]}${r[2].slice(0,-n)}${r[3]}`}};process.on("exit",Dl.purgeSyncAll);Fge.default=Dl});var imt=b(Uh=>{"use strict";Object.defineProperty(Uh,"__esModule",{value:!0});Uh.writeFileSync=Uh.writeFile=Uh.readFileSync=Uh.readFile=void 0;var Qht=require("path"),Ko=Q8(),pi=Cge(),Cl=Wht(),V9r=Kht(),Hv=Xht();function Zht(e,t=Ko.DEFAULT_READ_OPTIONS){var r;if(Cl.default.isString(t))return Zht(e,{encoding:t});let n=Date.now()+((r=t.timeout)!==null&&r!==void 0?r:Ko.DEFAULT_TIMEOUT_ASYNC);return pi.default.readFileRetry(n)(e,t)}Uh.readFile=Zht;function emt(e,t=Ko.DEFAULT_READ_OPTIONS){var r;if(Cl.default.isString(t))return emt(e,{encoding:t});let n=Date.now()+((r=t.timeout)!==null&&r!==void 0?r:Ko.DEFAULT_TIMEOUT_SYNC);return pi.default.readFileSyncRetry(n)(e,t)}Uh.readFileSync=emt;var tmt=(e,t,r,n)=>{if(Cl.default.isFunction(r))return tmt(e,t,Ko.DEFAULT_WRITE_OPTIONS,r);let i=rmt(e,t,r);return n&&i.then(n,n),i};Uh.writeFile=tmt;var rmt=async(e,t,r=Ko.DEFAULT_WRITE_OPTIONS)=>{var n;if(Cl.default.isString(r))return rmt(e,t,{encoding:r});let i=Date.now()+((n=r.timeout)!==null&&n!==void 0?n:Ko.DEFAULT_TIMEOUT_ASYNC),a=null,s=null,o=null,c=null,p=null;try{r.schedule&&(a=await r.schedule(e)),s=await V9r.default.schedule(e),e=await pi.default.realpathAttempt(e)||e,[c,o]=Hv.default.get(e,r.tmpCreate||Hv.default.create,r.tmpPurge!==!1);let f=Ko.IS_POSIX&&Cl.default.isUndefined(r.chown),d=Cl.default.isUndefined(r.mode);if(f||d){let g=await pi.default.statAttempt(e);g&&(r={...r},f&&(r.chown={uid:g.uid,gid:g.gid}),d&&(r.mode=g.mode))}let h=Qht.dirname(e);await pi.default.mkdirAttempt(h,{mode:Ko.DEFAULT_FOLDER_MODE,recursive:!0}),p=await pi.default.openRetry(i)(c,"w",r.mode||Ko.DEFAULT_FILE_MODE),r.tmpCreated&&r.tmpCreated(c),Cl.default.isString(t)?await pi.default.writeRetry(i)(p,t,0,r.encoding||Ko.DEFAULT_ENCODING):Cl.default.isUndefined(t)||await pi.default.writeRetry(i)(p,t,0,t.length,0),r.fsync!==!1&&(r.fsyncWait!==!1?await pi.default.fsyncRetry(i)(p):pi.default.fsyncAttempt(p)),await pi.default.closeRetry(i)(p),p=null,r.chown&&await pi.default.chownAttempt(c,r.chown.uid,r.chown.gid),r.mode&&await pi.default.chmodAttempt(c,r.mode);try{await pi.default.renameRetry(i)(c,e)}catch(g){if(g.code!=="ENAMETOOLONG")throw g;await pi.default.renameRetry(i)(c,Hv.default.truncate(e))}o(),c=null}finally{p&&await pi.default.closeAttempt(p),c&&Hv.default.purge(c),a&&a(),s&&s()}},nmt=(e,t,r=Ko.DEFAULT_WRITE_OPTIONS)=>{var n;if(Cl.default.isString(r))return nmt(e,t,{encoding:r});let i=Date.now()+((n=r.timeout)!==null&&n!==void 0?n:Ko.DEFAULT_TIMEOUT_SYNC),a=null,s=null,o=null;try{e=pi.default.realpathSyncAttempt(e)||e,[s,a]=Hv.default.get(e,r.tmpCreate||Hv.default.create,r.tmpPurge!==!1);let c=Ko.IS_POSIX&&Cl.default.isUndefined(r.chown),p=Cl.default.isUndefined(r.mode);if(c||p){let d=pi.default.statSyncAttempt(e);d&&(r={...r},c&&(r.chown={uid:d.uid,gid:d.gid}),p&&(r.mode=d.mode))}let f=Qht.dirname(e);pi.default.mkdirSyncAttempt(f,{mode:Ko.DEFAULT_FOLDER_MODE,recursive:!0}),o=pi.default.openSyncRetry(i)(s,"w",r.mode||Ko.DEFAULT_FILE_MODE),r.tmpCreated&&r.tmpCreated(s),Cl.default.isString(t)?pi.default.writeSyncRetry(i)(o,t,0,r.encoding||Ko.DEFAULT_ENCODING):Cl.default.isUndefined(t)||pi.default.writeSyncRetry(i)(o,t,0,t.length,0),r.fsync!==!1&&(r.fsyncWait!==!1?pi.default.fsyncSyncRetry(i)(o):pi.default.fsyncAttempt(o)),pi.default.closeSyncRetry(i)(o),o=null,r.chown&&pi.default.chownSyncAttempt(s,r.chown.uid,r.chown.gid),r.mode&&pi.default.chmodSyncAttempt(s,r.mode);try{pi.default.renameSyncRetry(i)(s,e)}catch(d){if(d.code!=="ENAMETOOLONG")throw d;pi.default.renameSyncRetry(i)(s,Hv.default.truncate(e))}a(),s=null}finally{o&&pi.default.closeSyncAttempt(o),s&&Hv.default.purge(s)}};Uh.writeFileSync=nmt});var GT=b(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});Un.regexpCode=Un.getEsmExportName=Un.getProperty=Un.safeStringify=Un.stringify=Un.strConcat=Un.addCodeArg=Un.str=Un._=Un.nil=Un._Code=Un.Name=Un.IDENTIFIER=Un._CodeOrName=void 0;var HT=class{};Un._CodeOrName=HT;Un.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Jw=class extends HT{constructor(t){if(super(),!Un.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};Un.Name=Jw;var jp=class extends HT{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((r,n)=>(n instanceof Jw&&(r[n.str]=(r[n.str]||0)+1),r),{})}};Un._Code=jp;Un.nil=new jp("");function amt(e,...t){let r=[e[0]],n=0;for(;n<t.length;)Nge(r,t[n]),r.push(e[++n]);return new jp(r)}Un._=amt;var jge=new jp("+");function smt(e,...t){let r=[VT(e[0])],n=0;for(;n<t.length;)r.push(jge),Nge(r,t[n]),r.push(jge,VT(e[++n]));return G9r(r),new jp(r)}Un.str=smt;function Nge(e,t){t instanceof jp?e.push(...t._items):t instanceof Jw?e.push(t):e.push(Y9r(t))}Un.addCodeArg=Nge;function G9r(e){let t=1;for(;t<e.length-1;){if(e[t]===jge){let r=W9r(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function W9r(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof Jw||e[e.length-1]!=='"'?void 0:typeof t!="string"?`${e.slice(0,-1)}${t}"`:t[0]==='"'?e.slice(0,-1)+t.slice(1):void 0;if(typeof t=="string"&&t[0]==='"'&&!(e instanceof Jw))return`"${e}${t.slice(1)}`}function K9r(e,t){return t.emptyStr()?e:e.emptyStr()?t:smt`${e}${t}`}Un.strConcat=K9r;function Y9r(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:VT(Array.isArray(e)?e.join(","):e)}function J9r(e){return new jp(VT(e))}Un.stringify=J9r;function VT(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}Un.safeStringify=VT;function X9r(e){return typeof e=="string"&&Un.IDENTIFIER.test(e)?new jp(`.${e}`):amt`[${e}]`}Un.getProperty=X9r;function Q9r(e){if(typeof e=="string"&&Un.IDENTIFIER.test(e))return new jp(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}Un.getEsmExportName=Q9r;function Z9r(e){return new jp(e.toString())}Un.regexpCode=Z9r});var $ge=b(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});Uc.ValueScope=Uc.ValueScopeName=Uc.Scope=Uc.varKinds=Uc.UsedValueState=void 0;var Mc=GT(),qge=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},LB;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(LB||(Uc.UsedValueState=LB={}));Uc.varKinds={const:new Mc.Name("const"),let:new Mc.Name("let"),var:new Mc.Name("var")};var $B=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof Mc.Name?t:this.name(t)}name(t){return new Mc.Name(this._newName(t))}_newName(t){let r=this._names[t]||this._nameGroup(t);return`${t}${r.index++}`}_nameGroup(t){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};Uc.Scope=$B;var BB=class extends Mc.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,Mc._)`.${new Mc.Name(r)}[${n}]`}};Uc.ValueScopeName=BB;var eSr=(0,Mc._)`\n`,Lge=class extends $B{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?eSr:Mc.nil}}get(){return this._scope}name(t){return new BB(t,this._newName(t))}value(t,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let i=this.toName(t),{prefix:a}=i,s=(n=r.key)!==null&&n!==void 0?n:r.ref,o=this._values[a];if(o){let f=o.get(s);if(f)return f}else o=this._values[a]=new Map;o.set(s,i);let c=this._scope[a]||(this._scope[a]=[]),p=c.length;return c[p]=r.ref,i.setValue(r,{property:a,itemIndex:p}),i}getValue(t,r){let n=this._values[t];if(n)return n.get(r)}scopeRefs(t,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,Mc._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},r,n)}_reduceValues(t,r,n={},i){let a=Mc.nil;for(let s in t){let o=t[s];if(!o)continue;let c=n[s]=n[s]||new Map;o.forEach(p=>{if(c.has(p))return;c.set(p,LB.Started);let f=r(p);if(f){let d=this.opts.es5?Uc.varKinds.var:Uc.varKinds.const;a=(0,Mc._)`${a}${d} ${p} = ${f};${this.opts._n}`}else if(f=i?.(p))a=(0,Mc._)`${a}${f}${this.opts._n}`;else throw new qge(p);c.set(p,LB.Completed)})}return a}};Uc.ValueScope=Lge});var dn=b(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.or=cn.and=cn.not=cn.CodeGen=cn.operators=cn.varKinds=cn.ValueScopeName=cn.ValueScope=cn.Scope=cn.Name=cn.regexpCode=cn.stringify=cn.getProperty=cn.nil=cn.strConcat=cn.str=cn._=void 0;var On=GT(),cd=$ge(),Vv=GT();Object.defineProperty(cn,"_",{enumerable:!0,get:function(){return Vv._}});Object.defineProperty(cn,"str",{enumerable:!0,get:function(){return Vv.str}});Object.defineProperty(cn,"strConcat",{enumerable:!0,get:function(){return Vv.strConcat}});Object.defineProperty(cn,"nil",{enumerable:!0,get:function(){return Vv.nil}});Object.defineProperty(cn,"getProperty",{enumerable:!0,get:function(){return Vv.getProperty}});Object.defineProperty(cn,"stringify",{enumerable:!0,get:function(){return Vv.stringify}});Object.defineProperty(cn,"regexpCode",{enumerable:!0,get:function(){return Vv.regexpCode}});Object.defineProperty(cn,"Name",{enumerable:!0,get:function(){return Vv.Name}});var HB=$ge();Object.defineProperty(cn,"Scope",{enumerable:!0,get:function(){return HB.Scope}});Object.defineProperty(cn,"ValueScope",{enumerable:!0,get:function(){return HB.ValueScope}});Object.defineProperty(cn,"ValueScopeName",{enumerable:!0,get:function(){return HB.ValueScopeName}});Object.defineProperty(cn,"varKinds",{enumerable:!0,get:function(){return HB.varKinds}});cn.operators={GT:new On._Code(">"),GTE:new On._Code(">="),LT:new On._Code("<"),LTE:new On._Code("<="),EQ:new On._Code("==="),NEQ:new On._Code("!=="),NOT:new On._Code("!"),OR:new On._Code("||"),AND:new On._Code("&&"),ADD:new On._Code("+")};var u0=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},Bge=class extends u0{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?cd.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${i};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=rx(this.rhs,t,r)),this}get names(){return this.rhs instanceof On._CodeOrName?this.rhs.names:{}}},MB=class extends u0{constructor(t,r,n){super(),this.lhs=t,this.rhs=r,this.sideEffects=n}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof On.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=rx(this.rhs,t,r),this}get names(){let t=this.lhs instanceof On.Name?{}:{...this.lhs.names};return zB(t,this.rhs)}},Mge=class extends MB{constructor(t,r,n,i){super(t,n,i),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},Uge=class extends u0{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},zge=class extends u0{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},Hge=class extends u0{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},Vge=class extends u0{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,r){return this.code=rx(this.code,t,r),this}get names(){return this.code instanceof On._CodeOrName?this.code.names:{}}},WT=class extends u0{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((r,n)=>r+n.render(t),"")}optimizeNodes(){let{nodes:t}=this,r=t.length;for(;r--;){let n=t[r].optimizeNodes();Array.isArray(n)?t.splice(r,1,...n):n?t[r]=n:t.splice(r,1)}return t.length>0?this:void 0}optimizeNames(t,r){let{nodes:n}=this,i=n.length;for(;i--;){let a=n[i];a.optimizeNames(t,r)||(tSr(t,a.names),n.splice(i,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>Zw(t,r.names),{})}},c0=class extends WT{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Gge=class extends WT{},tx=class extends c0{};tx.kind="else";var Xw=class e extends c0{constructor(t,r){super(r),this.condition=t}render(t){let r=`if(${this.condition})`+super.render(t);return this.else&&(r+="else "+this.else.render(t)),r}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new tx(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(omt(t),r instanceof e?[r]:r.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(t,r),!!(super.optimizeNames(t,r)||this.else))return this.condition=rx(this.condition,t,r),this}get names(){let t=super.names;return zB(t,this.condition),this.else&&Zw(t,this.else.names),t}};Xw.kind="if";var Qw=class extends c0{};Qw.kind="for";var Wge=class extends Qw{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iteration=rx(this.iteration,t,r),this}get names(){return Zw(super.names,this.iteration.names)}},Kge=class extends Qw{constructor(t,r,n,i){super(),this.varKind=t,this.name=r,this.from=n,this.to=i}render(t){let r=t.es5?cd.varKinds.var:this.varKind,{name:n,from:i,to:a}=this;return`for(${r} ${n}=${i}; ${n}<${a}; ${n}++)`+super.render(t)}get names(){let t=zB(super.names,this.from);return zB(t,this.to)}},UB=class extends Qw{constructor(t,r,n,i){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=i}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=rx(this.iterable,t,r),this}get names(){return Zw(super.names,this.iterable.names)}},KT=class extends c0{constructor(t,r,n){super(),this.name=t,this.args=r,this.async=n}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};KT.kind="func";var YT=class extends WT{render(t){return"return "+super.render(t)}};YT.kind="return";var Yge=class extends c0{render(t){let r="try"+super.render(t);return this.catch&&(r+=this.catch.render(t)),this.finally&&(r+=this.finally.render(t)),r}optimizeNodes(){var t,r;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(t,r){var n,i;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(i=this.finally)===null||i===void 0||i.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&Zw(t,this.catch.names),this.finally&&Zw(t,this.finally.names),t}},JT=class extends c0{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};JT.kind="catch";var XT=class extends c0{render(t){return"finally"+super.render(t)}};XT.kind="finally";var Jge=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
`:""},this._extScope=t,this._scope=new cd.Scope({parent:t}),this._nodes=[new Gge]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,r){let n=this._extScope.value(t,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(t,r){return this._extScope.getValue(t,r)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,r,n,i){let a=this._scope.toName(r);return n!==void 0&&i&&(this._constants[a.str]=n),this._leafNode(new Bge(t,a,n)),a}const(t,r,n){return this._def(cd.varKinds.const,t,r,n)}let(t,r,n){return this._def(cd.varKinds.let,t,r,n)}var(t,r,n){return this._def(cd.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new MB(t,r,n))}add(t,r){return this._leafNode(new Mge(t,cn.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==On.nil&&this._leafNode(new Vge(t)),this}object(...t){let r=["{"];for(let[n,i]of t)r.length>1&&r.push(","),r.push(n),(n!==i||this.opts.es5)&&(r.push(":"),(0,On.addCodeArg)(r,i));return r.push("}"),new On._Code(r)}if(t,r,n){if(this._blockNode(new Xw(t)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(t){return this._elseNode(new Xw(t))}else(){return this._elseNode(new tx)}endIf(){return this._endBlockNode(Xw,tx)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new Wge(t),r)}forRange(t,r,n,i,a=this.opts.es5?cd.varKinds.var:cd.varKinds.let){let s=this._scope.toName(t);return this._for(new Kge(a,s,r,n),()=>i(s))}forOf(t,r,n,i=cd.varKinds.const){let a=this._scope.toName(t);if(this.opts.es5){let s=r instanceof On.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,On._)`${s}.length`,o=>{this.var(a,(0,On._)`${s}[${o}]`),n(a)})}return this._for(new UB("of",i,a,r),()=>n(a))}forIn(t,r,n,i=this.opts.es5?cd.varKinds.var:cd.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,On._)`Object.keys(${r})`,n);let a=this._scope.toName(t);return this._for(new UB("in",i,a,r),()=>n(a))}endFor(){return this._endBlockNode(Qw)}label(t){return this._leafNode(new Uge(t))}break(t){return this._leafNode(new zge(t))}return(t){let r=new YT;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(YT)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new Yge;if(this._blockNode(i),this.code(t),r){let a=this.name("e");this._currNode=i.catch=new JT(a),r(a)}return n&&(this._currNode=i.finally=new XT,this.code(n)),this._endBlockNode(JT,XT)}throw(t){return this._leafNode(new Hge(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=On.nil,n,i){return this._blockNode(new KT(t,r,n)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(KT)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,r){let n=this._currNode;if(n instanceof t||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${t.kind}/${r.kind}`:t.kind}"`)}_elseNode(t){let r=this._currNode;if(!(r instanceof Xw))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let r=this._nodes;r[r.length-1]=t}};cn.CodeGen=Jge;function Zw(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function zB(e,t){return t instanceof On._CodeOrName?Zw(e,t.names):e}function rx(e,t,r){if(e instanceof On.Name)return n(e);if(!i(e))return e;return new On._Code(e._items.reduce((a,s)=>(s instanceof On.Name&&(s=n(s)),s instanceof On._Code?a.push(...s._items):a.push(s),a),[]));function n(a){let s=r[a.str];return s===void 0||t[a.str]!==1?a:(delete t[a.str],s)}function i(a){return a instanceof On._Code&&a._items.some(s=>s instanceof On.Name&&t[s.str]===1&&r[s.str]!==void 0)}}function tSr(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function omt(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,On._)`!${Xge(e)}`}cn.not=omt;var rSr=umt(cn.operators.AND);function nSr(...e){return e.reduce(rSr)}cn.and=nSr;var iSr=umt(cn.operators.OR);function aSr(...e){return e.reduce(iSr)}cn.or=aSr;function umt(e){return(t,r)=>t===On.nil?r:r===On.nil?t:(0,On._)`${Xge(t)} ${e} ${Xge(r)}`}function Xge(e){return e instanceof On.Name?e:(0,On._)`(${e})`}});var zn=b(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.checkStrictMode=hn.getErrorPath=hn.Type=hn.useFunc=hn.setEvaluated=hn.evaluatedPropsToName=hn.mergeEvaluated=hn.eachItem=hn.unescapeJsonPointer=hn.escapeJsonPointer=hn.escapeFragment=hn.unescapeFragment=hn.schemaRefOrVal=hn.schemaHasRulesButRef=hn.schemaHasRules=hn.checkUnknownRules=hn.alwaysValidSchema=hn.toHash=void 0;var Bi=dn(),sSr=GT();function oSr(e){let t={};for(let r of e)t[r]=!0;return t}hn.toHash=oSr;function uSr(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(pmt(e,t),!fmt(t,e.self.RULES.all))}hn.alwaysValidSchema=uSr;function pmt(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let i=n.RULES.keywords;for(let a in t)i[a]||mmt(e,`unknown keyword: "${a}"`)}hn.checkUnknownRules=pmt;function fmt(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}hn.schemaHasRules=fmt;function cSr(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}hn.schemaHasRulesButRef=cSr;function lSr({topSchemaRef:e,schemaPath:t},r,n,i){if(!i){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,Bi._)`${r}`}return(0,Bi._)`${e}${t}${(0,Bi.getProperty)(n)}`}hn.schemaRefOrVal=lSr;function pSr(e){return dmt(decodeURIComponent(e))}hn.unescapeFragment=pSr;function fSr(e){return encodeURIComponent(Zge(e))}hn.escapeFragment=fSr;function Zge(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}hn.escapeJsonPointer=Zge;function dmt(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}hn.unescapeJsonPointer=dmt;function dSr(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}hn.eachItem=dSr;function cmt({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(i,a,s,o)=>{let c=s===void 0?a:s instanceof Bi.Name?(a instanceof Bi.Name?e(i,a,s):t(i,a,s),s):a instanceof Bi.Name?(t(i,s,a),a):r(a,s);return o===Bi.Name&&!(c instanceof Bi.Name)?n(i,c):c}}hn.mergeEvaluated={props:cmt({mergeNames:(e,t,r)=>e.if((0,Bi._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,Bi._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,Bi._)`${r} || {}`).code((0,Bi._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,Bi._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,Bi._)`${r} || {}`),eve(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:hmt}),items:cmt({mergeNames:(e,t,r)=>e.if((0,Bi._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,Bi._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,Bi._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,Bi._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function hmt(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,Bi._)`{}`);return t!==void 0&&eve(e,r,t),r}hn.evaluatedPropsToName=hmt;function eve(e,t,r){Object.keys(r).forEach(n=>e.assign((0,Bi._)`${t}${(0,Bi.getProperty)(n)}`,!0))}hn.setEvaluated=eve;var lmt={};function hSr(e,t){return e.scopeValue("func",{ref:t,code:lmt[t.code]||(lmt[t.code]=new sSr._Code(t.code))})}hn.useFunc=hSr;var Qge;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(Qge||(hn.Type=Qge={}));function mSr(e,t,r){if(e instanceof Bi.Name){let n=t===Qge.Num;return r?n?(0,Bi._)`"[" + ${e} + "]"`:(0,Bi._)`"['" + ${e} + "']"`:n?(0,Bi._)`"/" + ${e}`:(0,Bi._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,Bi.getProperty)(e).toString():"/"+Zge(e)}hn.getErrorPath=mSr;function mmt(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}hn.checkStrictMode=mmt});var l0=b(tve=>{"use strict";Object.defineProperty(tve,"__esModule",{value:!0});var ku=dn(),gSr={data:new ku.Name("data"),valCxt:new ku.Name("valCxt"),instancePath:new ku.Name("instancePath"),parentData:new ku.Name("parentData"),parentDataProperty:new ku.Name("parentDataProperty"),rootData:new ku.Name("rootData"),dynamicAnchors:new ku.Name("dynamicAnchors"),vErrors:new ku.Name("vErrors"),errors:new ku.Name("errors"),this:new ku.Name("this"),self:new ku.Name("self"),scope:new ku.Name("scope"),json:new ku.Name("json"),jsonPos:new ku.Name("jsonPos"),jsonLen:new ku.Name("jsonLen"),jsonPart:new ku.Name("jsonPart")};tve.default=gSr});var QT=b(Au=>{"use strict";Object.defineProperty(Au,"__esModule",{value:!0});Au.extendErrors=Au.resetErrorsCount=Au.reportExtraError=Au.reportError=Au.keyword$DataError=Au.keywordError=void 0;var Rn=dn(),VB=zn(),oc=l0();Au.keywordError={message:({keyword:e})=>(0,Rn.str)`must pass "${e}" keyword validation`};Au.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,Rn.str)`"${e}" keyword must be ${t} ($data)`:(0,Rn.str)`"${e}" keyword is invalid ($data)`};function vSr(e,t=Au.keywordError,r,n){let{it:i}=e,{gen:a,compositeRule:s,allErrors:o}=i,c=ymt(e,t,r);n??(s||o)?gmt(a,c):vmt(i,(0,Rn._)`[${c}]`)}Au.reportError=vSr;function ySr(e,t=Au.keywordError,r){let{it:n}=e,{gen:i,compositeRule:a,allErrors:s}=n,o=ymt(e,t,r);gmt(i,o),a||s||vmt(n,oc.default.vErrors)}Au.reportExtraError=ySr;function bSr(e,t){e.assign(oc.default.errors,t),e.if((0,Rn._)`${oc.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,Rn._)`${oc.default.vErrors}.length`,t),()=>e.assign(oc.default.vErrors,null)))}Au.resetErrorsCount=bSr;function wSr({gen:e,keyword:t,schemaValue:r,data:n,errsCount:i,it:a}){if(i===void 0)throw new Error("ajv implementation error");let s=e.name("err");e.forRange("i",i,oc.default.errors,o=>{e.const(s,(0,Rn._)`${oc.default.vErrors}[${o}]`),e.if((0,Rn._)`${s}.instancePath === undefined`,()=>e.assign((0,Rn._)`${s}.instancePath`,(0,Rn.strConcat)(oc.default.instancePath,a.errorPath))),e.assign((0,Rn._)`${s}.schemaPath`,(0,Rn.str)`${a.errSchemaPath}/${t}`),a.opts.verbose&&(e.assign((0,Rn._)`${s}.schema`,r),e.assign((0,Rn._)`${s}.data`,n))})}Au.extendErrors=wSr;function gmt(e,t){let r=e.const("err",t);e.if((0,Rn._)`${oc.default.vErrors} === null`,()=>e.assign(oc.default.vErrors,(0,Rn._)`[${r}]`),(0,Rn._)`${oc.default.vErrors}.push(${r})`),e.code((0,Rn._)`${oc.default.errors}++`)}function vmt(e,t){let{gen:r,validateName:n,schemaEnv:i}=e;i.$async?r.throw((0,Rn._)`new ${e.ValidationError}(${t})`):(r.assign((0,Rn._)`${n}.errors`,t),r.return(!1))}var e_={keyword:new Rn.Name("keyword"),schemaPath:new Rn.Name("schemaPath"),params:new Rn.Name("params"),propertyName:new Rn.Name("propertyName"),message:new Rn.Name("message"),schema:new Rn.Name("schema"),parentSchema:new Rn.Name("parentSchema")};function ymt(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,Rn._)`{}`:_Sr(e,t,r)}function _Sr(e,t,r={}){let{gen:n,it:i}=e,a=[xSr(i,r),ESr(e,r)];return SSr(e,t,a),n.object(...a)}function xSr({errorPath:e},{instancePath:t}){let r=t?(0,Rn.str)`${e}${(0,VB.getErrorPath)(t,VB.Type.Str)}`:e;return[oc.default.instancePath,(0,Rn.strConcat)(oc.default.instancePath,r)]}function ESr({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let i=n?t:(0,Rn.str)`${t}/${e}`;return r&&(i=(0,Rn.str)`${i}${(0,VB.getErrorPath)(r,VB.Type.Str)}`),[e_.schemaPath,i]}function SSr(e,{params:t,message:r},n){let{keyword:i,data:a,schemaValue:s,it:o}=e,{opts:c,propertyName:p,topSchemaRef:f,schemaPath:d}=o;n.push([e_.keyword,i],[e_.params,typeof t=="function"?t(e):t||(0,Rn._)`{}`]),c.messages&&n.push([e_.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([e_.schema,s],[e_.parentSchema,(0,Rn._)`${f}${d}`],[oc.default.data,a]),p&&n.push([e_.propertyName,p])}});var wmt=b(nx=>{"use strict";Object.defineProperty(nx,"__esModule",{value:!0});nx.boolOrEmptySchema=nx.topBoolOrEmptySchema=void 0;var kSr=QT(),ASr=dn(),TSr=l0(),OSr={message:"boolean schema is false"};function DSr(e){let{gen:t,schema:r,validateName:n}=e;r===!1?bmt(e,!1):typeof r=="object"&&r.$async===!0?t.return(TSr.default.data):(t.assign((0,ASr._)`${n}.errors`,null),t.return(!0))}nx.topBoolOrEmptySchema=DSr;function CSr(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),bmt(e)):r.var(t,!0)}nx.boolOrEmptySchema=CSr;function bmt(e,t){let{gen:r,data:n}=e,i={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,kSr.reportError)(i,OSr,void 0,t)}});var rve=b(ix=>{"use strict";Object.defineProperty(ix,"__esModule",{value:!0});ix.getRules=ix.isJSONType=void 0;var PSr=["string","number","integer","boolean","null","object","array"],ISr=new Set(PSr);function RSr(e){return typeof e=="string"&&ISr.has(e)}ix.isJSONType=RSr;function FSr(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}ix.getRules=FSr});var nve=b(Gv=>{"use strict";Object.defineProperty(Gv,"__esModule",{value:!0});Gv.shouldUseRule=Gv.shouldUseGroup=Gv.schemaHasRulesForType=void 0;function jSr({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&_mt(e,n)}Gv.schemaHasRulesForType=jSr;function _mt(e,t){return t.rules.some(r=>xmt(e,r))}Gv.shouldUseGroup=_mt;function xmt(e,t){var r;return e[t.keyword]!==void 0||((r=t.definition.implements)===null||r===void 0?void 0:r.some(n=>e[n]!==void 0))}Gv.shouldUseRule=xmt});var ZT=b(Tu=>{"use strict";Object.defineProperty(Tu,"__esModule",{value:!0});Tu.reportTypeError=Tu.checkDataTypes=Tu.checkDataType=Tu.coerceAndCheckDataType=Tu.getJSONTypes=Tu.getSchemaTypes=Tu.DataType=void 0;var NSr=rve(),qSr=nve(),LSr=QT(),tn=dn(),Emt=zn(),ax;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(ax||(Tu.DataType=ax={}));function $Sr(e){let t=Smt(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}Tu.getSchemaTypes=$Sr;function Smt(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(NSr.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}Tu.getJSONTypes=Smt;function BSr(e,t){let{gen:r,data:n,opts:i}=e,a=MSr(t,i.coerceTypes),s=t.length>0&&!(a.length===0&&t.length===1&&(0,qSr.schemaHasRulesForType)(e,t[0]));if(s){let o=ave(t,n,i.strictNumbers,ax.Wrong);r.if(o,()=>{a.length?USr(e,t,a):sve(e)})}return s}Tu.coerceAndCheckDataType=BSr;var kmt=new Set(["string","number","integer","boolean","null"]);function MSr(e,t){return t?e.filter(r=>kmt.has(r)||t==="array"&&r==="array"):[]}function USr(e,t,r){let{gen:n,data:i,opts:a}=e,s=n.let("dataType",(0,tn._)`typeof ${i}`),o=n.let("coerced",(0,tn._)`undefined`);a.coerceTypes==="array"&&n.if((0,tn._)`${s} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>n.assign(i,(0,tn._)`${i}[0]`).assign(s,(0,tn._)`typeof ${i}`).if(ave(t,i,a.strictNumbers),()=>n.assign(o,i))),n.if((0,tn._)`${o} !== undefined`);for(let p of r)(kmt.has(p)||p==="array"&&a.coerceTypes==="array")&&c(p);n.else(),sve(e),n.endIf(),n.if((0,tn._)`${o} !== undefined`,()=>{n.assign(i,o),zSr(e,o)});function c(p){switch(p){case"string":n.elseIf((0,tn._)`${s} == "number" || ${s} == "boolean"`).assign(o,(0,tn._)`"" + ${i}`).elseIf((0,tn._)`${i} === null`).assign(o,(0,tn._)`""`);return;case"number":n.elseIf((0,tn._)`${s} == "boolean" || ${i} === null
              || (${s} == "string" && ${i} && ${i} == +${i})`).assign(o,(0,tn._)`+${i}`);return;case"integer":n.elseIf((0,tn._)`${s} === "boolean" || ${i} === null
              || (${s} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(o,(0,tn._)`+${i}`);return;case"boolean":n.elseIf((0,tn._)`${i} === "false" || ${i} === 0 || ${i} === null`).assign(o,!1).elseIf((0,tn._)`${i} === "true" || ${i} === 1`).assign(o,!0);return;case"null":n.elseIf((0,tn._)`${i} === "" || ${i} === 0 || ${i} === false`),n.assign(o,null);return;case"array":n.elseIf((0,tn._)`${s} === "string" || ${s} === "number"
              || ${s} === "boolean" || ${i} === null`).assign(o,(0,tn._)`[${i}]`)}}}function zSr({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,tn._)`${t} !== undefined`,()=>e.assign((0,tn._)`${t}[${r}]`,n))}function ive(e,t,r,n=ax.Correct){let i=n===ax.Correct?tn.operators.EQ:tn.operators.NEQ,a;switch(e){case"null":return(0,tn._)`${t} ${i} null`;case"array":a=(0,tn._)`Array.isArray(${t})`;break;case"object":a=(0,tn._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":a=s((0,tn._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":a=s();break;default:return(0,tn._)`typeof ${t} ${i} ${e}`}return n===ax.Correct?a:(0,tn.not)(a);function s(o=tn.nil){return(0,tn.and)((0,tn._)`typeof ${t} == "number"`,o,r?(0,tn._)`isFinite(${t})`:tn.nil)}}Tu.checkDataType=ive;function ave(e,t,r,n){if(e.length===1)return ive(e[0],t,r,n);let i,a=(0,Emt.toHash)(e);if(a.array&&a.object){let s=(0,tn._)`typeof ${t} != "object"`;i=a.null?s:(0,tn._)`!${t} || ${s}`,delete a.null,delete a.array,delete a.object}else i=tn.nil;a.number&&delete a.integer;for(let s in a)i=(0,tn.and)(i,ive(s,t,r,n));return i}Tu.checkDataTypes=ave;var HSr={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,tn._)`{type: ${e}}`:(0,tn._)`{type: ${t}}`};function sve(e){let t=VSr(e);(0,LSr.reportError)(t,HSr)}Tu.reportTypeError=sve;function VSr(e){let{gen:t,data:r,schema:n}=e,i=(0,Emt.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:i,schemaValue:i,parentSchema:n,params:{},it:e}}});var Tmt=b(GB=>{"use strict";Object.defineProperty(GB,"__esModule",{value:!0});GB.assignDefaults=void 0;var sx=dn(),GSr=zn();function WSr(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let i in r)Amt(e,i,r[i].default);else t==="array"&&Array.isArray(n)&&n.forEach((i,a)=>Amt(e,a,i.default))}GB.assignDefaults=WSr;function Amt(e,t,r){let{gen:n,compositeRule:i,data:a,opts:s}=e;if(r===void 0)return;let o=(0,sx._)`${a}${(0,sx.getProperty)(t)}`;if(i){(0,GSr.checkStrictMode)(e,`default is ignored for: ${o}`);return}let c=(0,sx._)`${o} === undefined`;s.useDefaults==="empty"&&(c=(0,sx._)`${c} || ${o} === null || ${o} === ""`),n.if(c,(0,sx._)`${o} = ${(0,sx.stringify)(r)}`)}});var Np=b(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.validateUnion=Si.validateArray=Si.usePattern=Si.callValidateCode=Si.schemaProperties=Si.allSchemaProperties=Si.noPropertyInData=Si.propertyInData=Si.isOwnProperty=Si.hasPropFunc=Si.reportMissingProp=Si.checkMissingProp=Si.checkReportMissingProp=void 0;var ga=dn(),ove=zn(),Wv=l0(),KSr=zn();function YSr(e,t){let{gen:r,data:n,it:i}=e;r.if(cve(r,n,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,ga._)`${t}`},!0),e.error()})}Si.checkReportMissingProp=YSr;function JSr({gen:e,data:t,it:{opts:r}},n,i){return(0,ga.or)(...n.map(a=>(0,ga.and)(cve(e,t,a,r.ownProperties),(0,ga._)`${i} = ${a}`)))}Si.checkMissingProp=JSr;function XSr(e,t){e.setParams({missingProperty:t},!0),e.error()}Si.reportMissingProp=XSr;function Omt(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,ga._)`Object.prototype.hasOwnProperty`})}Si.hasPropFunc=Omt;function uve(e,t,r){return(0,ga._)`${Omt(e)}.call(${t}, ${r})`}Si.isOwnProperty=uve;function QSr(e,t,r,n){let i=(0,ga._)`${t}${(0,ga.getProperty)(r)} !== undefined`;return n?(0,ga._)`${i} && ${uve(e,t,r)}`:i}Si.propertyInData=QSr;function cve(e,t,r,n){let i=(0,ga._)`${t}${(0,ga.getProperty)(r)} === undefined`;return n?(0,ga.or)(i,(0,ga.not)(uve(e,t,r))):i}Si.noPropertyInData=cve;function Dmt(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}Si.allSchemaProperties=Dmt;function ZSr(e,t){return Dmt(t).filter(r=>!(0,ove.alwaysValidSchema)(e,t[r]))}Si.schemaProperties=ZSr;function e7r({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:i,errorPath:a},it:s},o,c,p){let f=p?(0,ga._)`${e}, ${t}, ${n}${i}`:t,d=[[Wv.default.instancePath,(0,ga.strConcat)(Wv.default.instancePath,a)],[Wv.default.parentData,s.parentData],[Wv.default.parentDataProperty,s.parentDataProperty],[Wv.default.rootData,Wv.default.rootData]];s.opts.dynamicRef&&d.push([Wv.default.dynamicAnchors,Wv.default.dynamicAnchors]);let h=(0,ga._)`${f}, ${r.object(...d)}`;return c!==ga.nil?(0,ga._)`${o}.call(${c}, ${h})`:(0,ga._)`${o}(${h})`}Si.callValidateCode=e7r;var t7r=(0,ga._)`new RegExp`;function r7r({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:i}=t.code,a=i(r,n);return e.scopeValue("pattern",{key:a.toString(),ref:a,code:(0,ga._)`${i.code==="new RegExp"?t7r:(0,KSr.useFunc)(e,i)}(${r}, ${n})`})}Si.usePattern=r7r;function n7r(e){let{gen:t,data:r,keyword:n,it:i}=e,a=t.name("valid");if(i.allErrors){let o=t.let("valid",!0);return s(()=>t.assign(o,!1)),o}return t.var(a,!0),s(()=>t.break()),a;function s(o){let c=t.const("len",(0,ga._)`${r}.length`);t.forRange("i",0,c,p=>{e.subschema({keyword:n,dataProp:p,dataPropType:ove.Type.Num},a),t.if((0,ga.not)(a),o)})}}Si.validateArray=n7r;function i7r(e){let{gen:t,schema:r,keyword:n,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,ove.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let s=t.let("valid",!1),o=t.name("_valid");t.block(()=>r.forEach((c,p)=>{let f=e.subschema({keyword:n,schemaProp:p,compositeRule:!0},o);t.assign(s,(0,ga._)`${s} || ${o}`),e.mergeValidEvaluated(f,o)||t.if((0,ga.not)(s))})),e.result(s,()=>e.reset(),()=>e.error(!0))}Si.validateUnion=i7r});var Imt=b(zh=>{"use strict";Object.defineProperty(zh,"__esModule",{value:!0});zh.validateKeywordUsage=zh.validSchemaType=zh.funcKeywordCode=zh.macroKeywordCode=void 0;var uc=dn(),t_=l0(),a7r=Np(),s7r=QT();function o7r(e,t){let{gen:r,keyword:n,schema:i,parentSchema:a,it:s}=e,o=t.macro.call(s.self,i,a,s),c=Pmt(r,n,o);s.opts.validateSchema!==!1&&s.self.validateSchema(o,!0);let p=r.name("valid");e.subschema({schema:o,schemaPath:uc.nil,errSchemaPath:`${s.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},p),e.pass(p,()=>e.error(!0))}zh.macroKeywordCode=o7r;function u7r(e,t){var r;let{gen:n,keyword:i,schema:a,parentSchema:s,$data:o,it:c}=e;l7r(c,t);let p=!o&&t.compile?t.compile.call(c.self,a,s,c):t.validate,f=Pmt(n,i,p),d=n.let("valid");e.block$data(d,h),e.ok((r=t.valid)!==null&&r!==void 0?r:d);function h(){if(t.errors===!1)y(),t.modifying&&Cmt(e),_(()=>e.error());else{let x=t.async?g():v();t.modifying&&Cmt(e),_(()=>c7r(e,x))}}function g(){let x=n.let("ruleErrs",null);return n.try(()=>y((0,uc._)`await `),A=>n.assign(d,!1).if((0,uc._)`${A} instanceof ${c.ValidationError}`,()=>n.assign(x,(0,uc._)`${A}.errors`),()=>n.throw(A))),x}function v(){let x=(0,uc._)`${f}.errors`;return n.assign(x,null),y(uc.nil),x}function y(x=t.async?(0,uc._)`await `:uc.nil){let A=c.opts.passContext?t_.default.this:t_.default.self,D=!("compile"in t&&!o||t.schema===!1);n.assign(d,(0,uc._)`${x}${(0,a7r.callValidateCode)(e,f,A,D)}`,t.modifying)}function _(x){var A;n.if((0,uc.not)((A=t.valid)!==null&&A!==void 0?A:d),x)}}zh.funcKeywordCode=u7r;function Cmt(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,uc._)`${n.parentData}[${n.parentDataProperty}]`))}function c7r(e,t){let{gen:r}=e;r.if((0,uc._)`Array.isArray(${t})`,()=>{r.assign(t_.default.vErrors,(0,uc._)`${t_.default.vErrors} === null ? ${t} : ${t_.default.vErrors}.concat(${t})`).assign(t_.default.errors,(0,uc._)`${t_.default.vErrors}.length`),(0,s7r.extendErrors)(e)},()=>e.error())}function l7r({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function Pmt(e,t,r){if(r===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,uc.stringify)(r)})}function p7r(e,t,r=!1){return!t.length||t.some(n=>n==="array"?Array.isArray(e):n==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==n||r&&typeof e>"u")}zh.validSchemaType=p7r;function f7r({schema:e,opts:t,self:r,errSchemaPath:n},i,a){if(Array.isArray(i.keyword)?!i.keyword.includes(a):i.keyword!==a)throw new Error("ajv implementation error");let s=i.dependencies;if(s?.some(o=>!Object.prototype.hasOwnProperty.call(e,o)))throw new Error(`parent schema must have dependencies of ${a}: ${s.join(",")}`);if(i.validateSchema&&!i.validateSchema(e[a])){let c=`keyword "${a}" value is invalid at path "${n}": `+r.errorsText(i.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}zh.validateKeywordUsage=f7r});var Fmt=b(Kv=>{"use strict";Object.defineProperty(Kv,"__esModule",{value:!0});Kv.extendSubschemaMode=Kv.extendSubschemaData=Kv.getSubschema=void 0;var Hh=dn(),Rmt=zn();function d7r(e,{keyword:t,schemaProp:r,schema:n,schemaPath:i,errSchemaPath:a,topSchemaRef:s}){if(t!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let o=e.schema[t];return r===void 0?{schema:o,schemaPath:(0,Hh._)`${e.schemaPath}${(0,Hh.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:o[r],schemaPath:(0,Hh._)`${e.schemaPath}${(0,Hh.getProperty)(t)}${(0,Hh.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,Rmt.escapeFragment)(r)}`}}if(n!==void 0){if(i===void 0||a===void 0||s===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:i,topSchemaRef:s,errSchemaPath:a}}throw new Error('either "keyword" or "schema" must be passed')}Kv.getSubschema=d7r;function h7r(e,t,{dataProp:r,dataPropType:n,data:i,dataTypes:a,propertyName:s}){if(i!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:o}=t;if(r!==void 0){let{errorPath:p,dataPathArr:f,opts:d}=t,h=o.let("data",(0,Hh._)`${t.data}${(0,Hh.getProperty)(r)}`,!0);c(h),e.errorPath=(0,Hh.str)`${p}${(0,Rmt.getErrorPath)(r,n,d.jsPropertySyntax)}`,e.parentDataProperty=(0,Hh._)`${r}`,e.dataPathArr=[...f,e.parentDataProperty]}if(i!==void 0){let p=i instanceof Hh.Name?i:o.let("data",i,!0);c(p),s!==void 0&&(e.propertyName=s)}a&&(e.dataTypes=a);function c(p){e.data=p,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,p]}}Kv.extendSubschemaData=h7r;function m7r(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:i,allErrors:a}){n!==void 0&&(e.compositeRule=n),i!==void 0&&(e.createErrors=i),a!==void 0&&(e.allErrors=a),e.jtdDiscriminator=t,e.jtdMetadata=r}Kv.extendSubschemaMode=m7r});var Nmt=b((Jfn,jmt)=>{"use strict";var Yv=jmt.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},i=r.post||function(){};WB(t,n,i,e,"",e)};Yv.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Yv.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Yv.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Yv.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function WB(e,t,r,n,i,a,s,o,c,p){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,i,a,s,o,c,p);for(var f in n){var d=n[f];if(Array.isArray(d)){if(f in Yv.arrayKeywords)for(var h=0;h<d.length;h++)WB(e,t,r,d[h],i+"/"+f+"/"+h,a,i,f,n,h)}else if(f in Yv.propsKeywords){if(d&&typeof d=="object")for(var g in d)WB(e,t,r,d[g],i+"/"+f+"/"+g7r(g),a,i,f,n,g)}else(f in Yv.keywords||e.allKeys&&!(f in Yv.skipKeywords))&&WB(e,t,r,d,i+"/"+f,a,i,f,n)}r(n,i,a,s,o,c,p)}}function g7r(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var eO=b(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});zc.getSchemaRefs=zc.resolveUrl=zc.normalizeId=zc._getFullPath=zc.getFullPath=zc.inlineRef=void 0;var v7r=zn(),y7r=kg(),b7r=Nmt(),w7r=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function _7r(e,t=!0){return typeof e=="boolean"?!0:t===!0?!lve(e):t?qmt(e)<=t:!1}zc.inlineRef=_7r;var x7r=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function lve(e){for(let t in e){if(x7r.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(lve)||typeof r=="object"&&lve(r))return!0}return!1}function qmt(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!w7r.has(r)&&(typeof e[r]=="object"&&(0,v7r.eachItem)(e[r],n=>t+=qmt(n)),t===1/0))return 1/0}return t}function Lmt(e,t="",r){r!==!1&&(t=ox(t));let n=e.parse(t);return $mt(e,n)}zc.getFullPath=Lmt;function $mt(e,t){return e.serialize(t).split("#")[0]+"#"}zc._getFullPath=$mt;var E7r=/#\/?$/;function ox(e){return e?e.replace(E7r,""):""}zc.normalizeId=ox;function S7r(e,t,r){return r=ox(r),e.resolve(t,r)}zc.resolveUrl=S7r;var k7r=/^[a-z_][-a-z0-9._]*$/i;function A7r(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,i=ox(e[r]||t),a={"":i},s=Lmt(n,i,!1),o={},c=new Set;return b7r(e,{allKeys:!0},(d,h,g,v)=>{if(v===void 0)return;let y=s+h,_=a[v];typeof d[r]=="string"&&(_=x.call(this,d[r])),A.call(this,d.$anchor),A.call(this,d.$dynamicAnchor),a[h]=_;function x(D){let j=this.opts.uriResolver.resolve;if(D=ox(_?j(_,D):D),c.has(D))throw f(D);c.add(D);let H=this.refs[D];return typeof H=="string"&&(H=this.refs[H]),typeof H=="object"?p(d,H.schema,D):D!==ox(y)&&(D[0]==="#"?(p(d,o[D],D),o[D]=d):this.refs[D]=y),D}function A(D){if(typeof D=="string"){if(!k7r.test(D))throw new Error(`invalid anchor "${D}"`);x.call(this,`#${D}`)}}}),o;function p(d,h,g){if(h!==void 0&&!y7r(d,h))throw f(g)}function f(d){return new Error(`reference "${d}" resolves to more than one schema`)}}zc.getSchemaRefs=A7r});var nO=b(Jv=>{"use strict";Object.defineProperty(Jv,"__esModule",{value:!0});Jv.getData=Jv.KeywordCxt=Jv.validateFunctionCode=void 0;var Hmt=wmt(),Bmt=ZT(),fve=nve(),KB=ZT(),T7r=Tmt(),rO=Imt(),pve=Fmt(),br=dn(),Mr=l0(),O7r=eO(),p0=zn(),tO=QT();function D7r(e){if(Wmt(e)&&(Kmt(e),Gmt(e))){I7r(e);return}Vmt(e,()=>(0,Hmt.topBoolOrEmptySchema)(e))}Jv.validateFunctionCode=D7r;function Vmt({gen:e,validateName:t,schema:r,schemaEnv:n,opts:i},a){i.code.es5?e.func(t,(0,br._)`${Mr.default.data}, ${Mr.default.valCxt}`,n.$async,()=>{e.code((0,br._)`"use strict"; ${Mmt(r,i)}`),P7r(e,i),e.code(a)}):e.func(t,(0,br._)`${Mr.default.data}, ${C7r(i)}`,n.$async,()=>e.code(Mmt(r,i)).code(a))}function C7r(e){return(0,br._)`{${Mr.default.instancePath}="", ${Mr.default.parentData}, ${Mr.default.parentDataProperty}, ${Mr.default.rootData}=${Mr.default.data}${e.dynamicRef?(0,br._)`, ${Mr.default.dynamicAnchors}={}`:br.nil}}={}`}function P7r(e,t){e.if(Mr.default.valCxt,()=>{e.var(Mr.default.instancePath,(0,br._)`${Mr.default.valCxt}.${Mr.default.instancePath}`),e.var(Mr.default.parentData,(0,br._)`${Mr.default.valCxt}.${Mr.default.parentData}`),e.var(Mr.default.parentDataProperty,(0,br._)`${Mr.default.valCxt}.${Mr.default.parentDataProperty}`),e.var(Mr.default.rootData,(0,br._)`${Mr.default.valCxt}.${Mr.default.rootData}`),t.dynamicRef&&e.var(Mr.default.dynamicAnchors,(0,br._)`${Mr.default.valCxt}.${Mr.default.dynamicAnchors}`)},()=>{e.var(Mr.default.instancePath,(0,br._)`""`),e.var(Mr.default.parentData,(0,br._)`undefined`),e.var(Mr.default.parentDataProperty,(0,br._)`undefined`),e.var(Mr.default.rootData,Mr.default.data),t.dynamicRef&&e.var(Mr.default.dynamicAnchors,(0,br._)`{}`)})}function I7r(e){let{schema:t,opts:r,gen:n}=e;Vmt(e,()=>{r.$comment&&t.$comment&&Jmt(e),q7r(e),n.let(Mr.default.vErrors,null),n.let(Mr.default.errors,0),r.unevaluated&&R7r(e),Ymt(e),B7r(e)})}function R7r(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,br._)`${r}.evaluated`),t.if((0,br._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,br._)`${e.evaluated}.props`,(0,br._)`undefined`)),t.if((0,br._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,br._)`${e.evaluated}.items`,(0,br._)`undefined`))}function Mmt(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,br._)`/*# sourceURL=${r} */`:br.nil}function F7r(e,t){if(Wmt(e)&&(Kmt(e),Gmt(e))){j7r(e,t);return}(0,Hmt.boolOrEmptySchema)(e,t)}function Gmt({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let r in e)if(t.RULES.all[r])return!0;return!1}function Wmt(e){return typeof e.schema!="boolean"}function j7r(e,t){let{schema:r,gen:n,opts:i}=e;i.$comment&&r.$comment&&Jmt(e),L7r(e),$7r(e);let a=n.const("_errs",Mr.default.errors);Ymt(e,a),n.var(t,(0,br._)`${a} === ${Mr.default.errors}`)}function Kmt(e){(0,p0.checkUnknownRules)(e),N7r(e)}function Ymt(e,t){if(e.opts.jtd)return Umt(e,[],!1,t);let r=(0,Bmt.getSchemaTypes)(e.schema),n=(0,Bmt.coerceAndCheckDataType)(e,r);Umt(e,r,!n,t)}function N7r(e){let{schema:t,errSchemaPath:r,opts:n,self:i}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,p0.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function q7r(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,p0.checkStrictMode)(e,"default is ignored in the schema root")}function L7r(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,O7r.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function $7r(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function Jmt({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:i}){let a=r.$comment;if(i.$comment===!0)e.code((0,br._)`${Mr.default.self}.logger.log(${a})`);else if(typeof i.$comment=="function"){let s=(0,br.str)`${n}/$comment`,o=e.scopeValue("root",{ref:t.root});e.code((0,br._)`${Mr.default.self}.opts.$comment(${a}, ${s}, ${o}.schema)`)}}function B7r(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:i,opts:a}=e;r.$async?t.if((0,br._)`${Mr.default.errors} === 0`,()=>t.return(Mr.default.data),()=>t.throw((0,br._)`new ${i}(${Mr.default.vErrors})`)):(t.assign((0,br._)`${n}.errors`,Mr.default.vErrors),a.unevaluated&&M7r(e),t.return((0,br._)`${Mr.default.errors} === 0`))}function M7r({gen:e,evaluated:t,props:r,items:n}){r instanceof br.Name&&e.assign((0,br._)`${t}.props`,r),n instanceof br.Name&&e.assign((0,br._)`${t}.items`,n)}function Umt(e,t,r,n){let{gen:i,schema:a,data:s,allErrors:o,opts:c,self:p}=e,{RULES:f}=p;if(a.$ref&&(c.ignoreKeywordsWithRef||!(0,p0.schemaHasRulesButRef)(a,f))){i.block(()=>Qmt(e,"$ref",f.all.$ref.definition));return}c.jtd||U7r(e,t),i.block(()=>{for(let h of f.rules)d(h);d(f.post)});function d(h){(0,fve.shouldUseGroup)(a,h)&&(h.type?(i.if((0,KB.checkDataType)(h.type,s,c.strictNumbers)),zmt(e,h),t.length===1&&t[0]===h.type&&r&&(i.else(),(0,KB.reportTypeError)(e)),i.endIf()):zmt(e,h),o||i.if((0,br._)`${Mr.default.errors} === ${n||0}`))}}function zmt(e,t){let{gen:r,schema:n,opts:{useDefaults:i}}=e;i&&(0,T7r.assignDefaults)(e,t.type),r.block(()=>{for(let a of t.rules)(0,fve.shouldUseRule)(n,a)&&Qmt(e,a.keyword,a.definition,t.type)})}function U7r(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(z7r(e,t),e.opts.allowUnionTypes||H7r(e,t),V7r(e,e.dataTypes))}function z7r(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{Xmt(e.dataTypes,r)||dve(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),W7r(e,t)}}function H7r(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&dve(e,"use allowUnionTypes to allow union type keyword")}function V7r(e,t){let r=e.self.RULES.all;for(let n in r){let i=r[n];if(typeof i=="object"&&(0,fve.shouldUseRule)(e.schema,i)){let{type:a}=i.definition;a.length&&!a.some(s=>G7r(t,s))&&dve(e,`missing type "${a.join(",")}" for keyword "${n}"`)}}}function G7r(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function Xmt(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function W7r(e,t){let r=[];for(let n of e.dataTypes)Xmt(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function dve(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,p0.checkStrictMode)(e,t,e.opts.strictTypes)}var YB=class{constructor(t,r,n){if((0,rO.validateKeywordUsage)(t,r,n),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=n,this.data=t.data,this.schema=t.schema[n],this.$data=r.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,p0.schemaRefOrVal)(t,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=r,this.$data)this.schemaCode=t.gen.const("vSchema",Zmt(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,rO.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=t.gen.const("_errs",Mr.default.errors))}result(t,r,n){this.failResult((0,br.not)(t),r,n)}failResult(t,r,n){this.gen.if(t),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,br.not)(t),void 0,r)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:r}=this;this.fail((0,br._)`${r} !== undefined && (${(0,br.or)(this.invalid$data(),t)})`)}error(t,r,n){if(r){this.setParams(r),this._error(t,n),this.setParams({});return}this._error(t,n)}_error(t,r){(t?tO.reportExtraError:tO.reportError)(this,this.def.error,r)}$dataError(){(0,tO.reportError)(this,this.def.$dataError||tO.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,tO.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,n=br.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=br.nil,r=br.nil){if(!this.$data)return;let{gen:n,schemaCode:i,schemaType:a,def:s}=this;n.if((0,br.or)((0,br._)`${i} === undefined`,r)),t!==br.nil&&n.assign(t,!0),(a.length||s.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==br.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:i,it:a}=this;return(0,br.or)(s(),o());function s(){if(n.length){if(!(r instanceof br.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,br._)`${(0,KB.checkDataTypes)(c,r,a.opts.strictNumbers,KB.DataType.Wrong)}`}return br.nil}function o(){if(i.validateSchema){let c=t.scopeValue("validate$data",{ref:i.validateSchema});return(0,br._)`!${c}(${r})`}return br.nil}}subschema(t,r){let n=(0,pve.getSubschema)(this.it,t);(0,pve.extendSubschemaData)(n,this.it,t),(0,pve.extendSubschemaMode)(n,t);let i={...this.it,...n,items:void 0,props:void 0};return F7r(i,r),i}mergeEvaluated(t,r){let{it:n,gen:i}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=p0.mergeEvaluated.props(i,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=p0.mergeEvaluated.items(i,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:i}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return i.if(r,()=>this.mergeEvaluated(t,br.Name)),!0}};Jv.KeywordCxt=YB;function Qmt(e,t,r,n){let i=new YB(e,r,t);"code"in r?r.code(i,n):i.$data&&r.validate?(0,rO.funcKeywordCode)(i,r):"macro"in r?(0,rO.macroKeywordCode)(i,r):(r.compile||r.validate)&&(0,rO.funcKeywordCode)(i,r)}var K7r=/^\/(?:[^~]|~0|~1)*$/,Y7r=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Zmt(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let i,a;if(e==="")return Mr.default.rootData;if(e[0]==="/"){if(!K7r.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,a=Mr.default.rootData}else{let p=Y7r.exec(e);if(!p)throw new Error(`Invalid JSON-pointer: ${e}`);let f=+p[1];if(i=p[2],i==="#"){if(f>=t)throw new Error(c("property/index",f));return n[t-f]}if(f>t)throw new Error(c("data",f));if(a=r[t-f],!i)return a}let s=a,o=i.split("/");for(let p of o)p&&(a=(0,br._)`${a}${(0,br.getProperty)((0,p0.unescapeJsonPointer)(p))}`,s=(0,br._)`${s} && ${a}`);return s;function c(p,f){return`Cannot access ${p} ${f} levels up, current level is ${t}`}}Jv.getData=Zmt});var JB=b(mve=>{"use strict";Object.defineProperty(mve,"__esModule",{value:!0});var hve=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};mve.default=hve});var iO=b(yve=>{"use strict";Object.defineProperty(yve,"__esModule",{value:!0});var gve=eO(),vve=class extends Error{constructor(t,r,n,i){super(i||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,gve.resolveUrl)(t,r,n),this.missingSchema=(0,gve.normalizeId)((0,gve.getFullPath)(t,this.missingRef))}};yve.default=vve});var QB=b(qp=>{"use strict";Object.defineProperty(qp,"__esModule",{value:!0});qp.resolveSchema=qp.getCompilingSchema=qp.resolveRef=qp.compileSchema=qp.SchemaEnv=void 0;var ld=dn(),J7r=JB(),r_=l0(),pd=eO(),e1t=zn(),X7r=nO(),ux=class{constructor(t){var r;this.refs={},this.dynamicAnchors={};let n;typeof t.schema=="object"&&(n=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(r=t.baseId)!==null&&r!==void 0?r:(0,pd.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};qp.SchemaEnv=ux;function wve(e){let t=t1t.call(this,e);if(t)return t;let r=(0,pd.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:i}=this.opts.code,{ownProperties:a}=this.opts,s=new ld.CodeGen(this.scope,{es5:n,lines:i,ownProperties:a}),o;e.$async&&(o=s.scopeValue("Error",{ref:J7r.default,code:(0,ld._)`require("ajv/dist/runtime/validation_error").default`}));let c=s.scopeName("validate");e.validateName=c;let p={gen:s,allErrors:this.opts.allErrors,data:r_.default.data,parentData:r_.default.parentData,parentDataProperty:r_.default.parentDataProperty,dataNames:[r_.default.data],dataPathArr:[ld.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:s.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,ld.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:o,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:ld.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,ld._)`""`,opts:this.opts,self:this},f;try{this._compilations.add(e),(0,X7r.validateFunctionCode)(p),s.optimize(this.opts.code.optimize);let d=s.toString();f=`${s.scopeRefs(r_.default.scope)}return ${d}`,this.opts.code.process&&(f=this.opts.code.process(f,e));let g=new Function(`${r_.default.self}`,`${r_.default.scope}`,f)(this,this.scope.get());if(this.scope.value(c,{ref:g}),g.errors=null,g.schema=e.schema,g.schemaEnv=e,e.$async&&(g.$async=!0),this.opts.code.source===!0&&(g.source={validateName:c,validateCode:d,scopeValues:s._values}),this.opts.unevaluated){let{props:v,items:y}=p;g.evaluated={props:v instanceof ld.Name?void 0:v,items:y instanceof ld.Name?void 0:y,dynamicProps:v instanceof ld.Name,dynamicItems:y instanceof ld.Name},g.source&&(g.source.evaluated=(0,ld.stringify)(g.evaluated))}return e.validate=g,e}catch(d){throw delete e.validate,delete e.validateName,f&&this.logger.error("Error compiling schema, function code:",f),d}finally{this._compilations.delete(e)}}qp.compileSchema=wve;function Q7r(e,t,r){var n;r=(0,pd.resolveUrl)(this.opts.uriResolver,t,r);let i=e.refs[r];if(i)return i;let a=tkr.call(this,e,r);if(a===void 0){let s=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:o}=this.opts;s&&(a=new ux({schema:s,schemaId:o,root:e,baseId:t}))}if(a!==void 0)return e.refs[r]=Z7r.call(this,a)}qp.resolveRef=Q7r;function Z7r(e){return(0,pd.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:wve.call(this,e)}function t1t(e){for(let t of this._compilations)if(ekr(t,e))return t}qp.getCompilingSchema=t1t;function ekr(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function tkr(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||XB.call(this,e,t)}function XB(e,t){let r=this.opts.uriResolver.parse(t),n=(0,pd._getFullPath)(this.opts.uriResolver,r),i=(0,pd.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===i)return bve.call(this,r,e);let a=(0,pd.normalizeId)(n),s=this.refs[a]||this.schemas[a];if(typeof s=="string"){let o=XB.call(this,e,s);return typeof o?.schema!="object"?void 0:bve.call(this,r,o)}if(typeof s?.schema=="object"){if(s.validate||wve.call(this,s),a===(0,pd.normalizeId)(t)){let{schema:o}=s,{schemaId:c}=this.opts,p=o[c];return p&&(i=(0,pd.resolveUrl)(this.opts.uriResolver,i,p)),new ux({schema:o,schemaId:c,root:e,baseId:i})}return bve.call(this,r,s)}}qp.resolveSchema=XB;var rkr=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function bve(e,{baseId:t,schema:r,root:n}){var i;if(((i=e.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let o of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,e1t.unescapeFragment)(o)];if(c===void 0)return;r=c;let p=typeof r=="object"&&r[this.opts.schemaId];!rkr.has(o)&&p&&(t=(0,pd.resolveUrl)(this.opts.uriResolver,t,p))}let a;if(typeof r!="boolean"&&r.$ref&&!(0,e1t.schemaHasRulesButRef)(r,this.RULES)){let o=(0,pd.resolveUrl)(this.opts.uriResolver,t,r.$ref);a=XB.call(this,n,o)}let{schemaId:s}=this.opts;if(a=a||new ux({schema:r,schemaId:s,root:n,baseId:t}),a.schema!==a.root.schema)return a}});var r1t=b((rdn,nkr)=>{nkr.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var i1t=b((ndn,n1t)=>{"use strict";var ikr={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};n1t.exports={HEX:ikr}});var f1t=b((idn,p1t)=>{"use strict";var{HEX:akr}=i1t();function u1t(e){if(l1t(e,".")<3)return{host:e,isIPV4:!1};let t=e.match(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/u)||[],[r]=t;return r?{host:okr(r,"."),isIPV4:!0}:{host:e,isIPV4:!1}}function _ve(e,t=!1){let r="",n=!0;for(let i of e){if(akr[i]===void 0)return;i!=="0"&&n===!0&&(n=!1),n||(r+=i)}return t&&r.length===0&&(r="0"),r}function skr(e){let t=0,r={error:!1,address:"",zone:""},n=[],i=[],a=!1,s=!1,o=!1;function c(){if(i.length){if(a===!1){let p=_ve(i);if(p!==void 0)n.push(p);else return r.error=!0,!1}i.length=0}return!0}for(let p=0;p<e.length;p++){let f=e[p];if(!(f==="["||f==="]"))if(f===":"){if(s===!0&&(o=!0),!c())break;if(t++,n.push(":"),t>7){r.error=!0;break}p-1>=0&&e[p-1]===":"&&(s=!0);continue}else if(f==="%"){if(!c())break;a=!0}else{i.push(f);continue}}return i.length&&(a?r.zone=i.join(""):o?n.push(i.join("")):n.push(_ve(i))),r.address=n.join(""),r}function c1t(e,t={}){if(l1t(e,":")<2)return{host:e,isIPV6:!1};let r=skr(e);if(r.error)return{host:e,isIPV6:!1};{let n=r.address,i=r.address;return r.zone&&(n+="%"+r.zone,i+="%25"+r.zone),{host:n,escapedHost:i,isIPV6:!0}}}function okr(e,t){let r="",n=!0,i=e.length;for(let a=0;a<i;a++){let s=e[a];s==="0"&&n?(a+1<=i&&e[a+1]===t||a+1===i)&&(r+=s,n=!1):(s===t?n=!0:n=!1,r+=s)}return r}function l1t(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}var a1t=/^\.\.?\//u,s1t=/^\/\.(?:\/|$)/u,o1t=/^\/\.\.(?:\/|$)/u,ukr=/^\/?(?:.|\n)*?(?=\/|$)/u;function ckr(e){let t=[];for(;e.length;)if(e.match(a1t))e=e.replace(a1t,"");else if(e.match(s1t))e=e.replace(s1t,"/");else if(e.match(o1t))e=e.replace(o1t,"/"),t.pop();else if(e==="."||e==="..")e="";else{let r=e.match(ukr);if(r){let n=r[0];e=e.slice(n.length),t.push(n)}else throw new Error("Unexpected dot segment condition")}return t.join("")}function lkr(e,t){let r=t!==!0?escape:unescape;return e.scheme!==void 0&&(e.scheme=r(e.scheme)),e.userinfo!==void 0&&(e.userinfo=r(e.userinfo)),e.host!==void 0&&(e.host=r(e.host)),e.path!==void 0&&(e.path=r(e.path)),e.query!==void 0&&(e.query=r(e.query)),e.fragment!==void 0&&(e.fragment=r(e.fragment)),e}function pkr(e,t){let r=[];if(e.userinfo!==void 0&&(r.push(e.userinfo),r.push("@")),e.host!==void 0){let n=unescape(e.host),i=u1t(n);if(i.isIPV4)n=i.host;else{let a=c1t(i.host,{isIPV4:!1});a.isIPV6===!0?n=`[${a.escapedHost}]`:n=e.host}r.push(n)}return(typeof e.port=="number"||typeof e.port=="string")&&(r.push(":"),r.push(String(e.port))),r.length?r.join(""):void 0}p1t.exports={recomposeAuthority:pkr,normalizeComponentEncoding:lkr,removeDotSegments:ckr,normalizeIPv4:u1t,normalizeIPv6:c1t,stringArrayToHexStripped:_ve}});var y1t=b((adn,v1t)=>{"use strict";var fkr=/^[\da-f]{8}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{12}$/iu,dkr=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function d1t(e){return typeof e.secure=="boolean"?e.secure:String(e.scheme).toLowerCase()==="wss"}function h1t(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function m1t(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function hkr(e){return e.secure=d1t(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function mkr(e){if((e.port===(d1t(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,r]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=r,e.resourceName=void 0}return e.fragment=void 0,e}function gkr(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(dkr);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let i=`${n}:${t.nid||e.nid}`,a=xve[i];e.path=void 0,a&&(e=a.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function vkr(e,t){let r=t.scheme||e.scheme||"urn",n=e.nid.toLowerCase(),i=`${r}:${t.nid||n}`,a=xve[i];a&&(e=a.serialize(e,t));let s=e,o=e.nss;return s.path=`${n||t.nid}:${o}`,t.skipEscape=!0,s}function ykr(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!fkr.test(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function bkr(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var g1t={scheme:"http",domainHost:!0,parse:h1t,serialize:m1t},wkr={scheme:"https",domainHost:g1t.domainHost,parse:h1t,serialize:m1t},ZB={scheme:"ws",domainHost:!0,parse:hkr,serialize:mkr},_kr={scheme:"wss",domainHost:ZB.domainHost,parse:ZB.parse,serialize:ZB.serialize},xkr={scheme:"urn",parse:gkr,serialize:vkr,skipNormalize:!0},Ekr={scheme:"urn:uuid",parse:ykr,serialize:bkr,skipNormalize:!0},xve={http:g1t,https:wkr,ws:ZB,wss:_kr,urn:xkr,"urn:uuid":Ekr};v1t.exports=xve});var kve=b((sdn,tM)=>{"use strict";var{normalizeIPv6:Skr,normalizeIPv4:kkr,removeDotSegments:aO,recomposeAuthority:Akr,normalizeComponentEncoding:eM}=f1t(),Eve=y1t();function Tkr(e,t){return typeof e=="string"?e=Vh(f0(e,t),t):typeof e=="object"&&(e=f0(Vh(e,t),t)),e}function Okr(e,t,r){let n=Object.assign({scheme:"null"},r),i=b1t(f0(e,n),f0(t,n),n,!0);return Vh(i,{...n,skipEscape:!0})}function b1t(e,t,r,n){let i={};return n||(e=f0(Vh(e,r),r),t=f0(Vh(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(i.scheme=t.scheme,i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=aO(t.path||""),i.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=aO(t.path||""),i.query=t.query):(t.path?(t.path.charAt(0)==="/"?i.path=aO(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?i.path="/"+t.path:e.path?i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:i.path=t.path,i.path=aO(i.path)),i.query=t.query):(i.path=e.path,t.query!==void 0?i.query=t.query:i.query=e.query),i.userinfo=e.userinfo,i.host=e.host,i.port=e.port),i.scheme=e.scheme),i.fragment=t.fragment,i}function Dkr(e,t,r){return typeof e=="string"?(e=unescape(e),e=Vh(eM(f0(e,r),!0),{...r,skipEscape:!0})):typeof e=="object"&&(e=Vh(eM(e,!0),{...r,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=Vh(eM(f0(t,r),!0),{...r,skipEscape:!0})):typeof t=="object"&&(t=Vh(eM(t,!0),{...r,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()}function Vh(e,t){let r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},n=Object.assign({},t),i=[],a=Eve[(n.scheme||r.scheme||"").toLowerCase()];a&&a.serialize&&a.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&(i.push(r.scheme),i.push(":"));let s=Akr(r,n);if(s!==void 0&&(n.reference!=="suffix"&&i.push("//"),i.push(s),r.path&&r.path.charAt(0)!=="/"&&i.push("/")),r.path!==void 0){let o=r.path;!n.absolutePath&&(!a||!a.absolutePath)&&(o=aO(o)),s===void 0&&(o=o.replace(/^\/\//u,"/%2F")),i.push(o)}return r.query!==void 0&&(i.push("?"),i.push(r.query)),r.fragment!==void 0&&(i.push("#"),i.push(r.fragment)),i.join("")}var Ckr=Array.from({length:127},(e,t)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(t)));function Pkr(e){let t=0;for(let r=0,n=e.length;r<n;++r)if(t=e.charCodeAt(r),t>126||Ckr[t])return!0;return!1}var Ikr=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function f0(e,t){let r=Object.assign({},t),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},i=e.indexOf("%")!==-1,a=!1;r.reference==="suffix"&&(e=(r.scheme?r.scheme+":":"")+"//"+e);let s=e.match(Ikr);if(s){if(n.scheme=s[1],n.userinfo=s[3],n.host=s[4],n.port=parseInt(s[5],10),n.path=s[6]||"",n.query=s[7],n.fragment=s[8],isNaN(n.port)&&(n.port=s[5]),n.host){let c=kkr(n.host);if(c.isIPV4===!1){let p=Skr(c.host,{isIPV4:!1});n.host=p.host.toLowerCase(),a=p.isIPV6}else n.host=c.host,a=!0}n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&!n.path&&n.query===void 0?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let o=Eve[(r.scheme||n.scheme||"").toLowerCase()];if(!r.unicodeSupport&&(!o||!o.unicodeSupport)&&n.host&&(r.domainHost||o&&o.domainHost)&&a===!1&&Pkr(n.host))try{n.host=URL.domainToASCII(n.host.toLowerCase())}catch(c){n.error=n.error||"Host's domain name can not be converted to ASCII: "+c}(!o||o&&!o.skipNormalize)&&(i&&n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),i&&n.userinfo!==void 0&&(n.userinfo=unescape(n.userinfo)),i&&n.host!==void 0&&(n.host=unescape(n.host)),n.path!==void 0&&n.path.length&&(n.path=escape(unescape(n.path))),n.fragment!==void 0&&n.fragment.length&&(n.fragment=encodeURI(decodeURIComponent(n.fragment)))),o&&o.parse&&o.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return n}var Sve={SCHEMES:Eve,normalize:Tkr,resolve:Okr,resolveComponents:b1t,equal:Dkr,serialize:Vh,parse:f0};tM.exports=Sve;tM.exports.default=Sve;tM.exports.fastUri=Sve});var _1t=b(Ave=>{"use strict";Object.defineProperty(Ave,"__esModule",{value:!0});var w1t=kve();w1t.code='require("ajv/dist/runtime/uri").default';Ave.default=w1t});var D1t=b(Yo=>{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});Yo.CodeGen=Yo.Name=Yo.nil=Yo.stringify=Yo.str=Yo._=Yo.KeywordCxt=void 0;var Rkr=nO();Object.defineProperty(Yo,"KeywordCxt",{enumerable:!0,get:function(){return Rkr.KeywordCxt}});var cx=dn();Object.defineProperty(Yo,"_",{enumerable:!0,get:function(){return cx._}});Object.defineProperty(Yo,"str",{enumerable:!0,get:function(){return cx.str}});Object.defineProperty(Yo,"stringify",{enumerable:!0,get:function(){return cx.stringify}});Object.defineProperty(Yo,"nil",{enumerable:!0,get:function(){return cx.nil}});Object.defineProperty(Yo,"Name",{enumerable:!0,get:function(){return cx.Name}});Object.defineProperty(Yo,"CodeGen",{enumerable:!0,get:function(){return cx.CodeGen}});var Fkr=JB(),A1t=iO(),jkr=rve(),sO=QB(),Nkr=dn(),oO=eO(),rM=ZT(),Ove=zn(),x1t=r1t(),qkr=_1t(),T1t=(e,t)=>new RegExp(e,t);T1t.code="new RegExp";var Lkr=["removeAdditional","useDefaults","coerceTypes"],$kr=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),Bkr={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},Mkr={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},E1t=200;function Ukr(e){var t,r,n,i,a,s,o,c,p,f,d,h,g,v,y,_,x,A,D,j,H,F,z,P,M;let K=e.strict,L=(t=e.code)===null||t===void 0?void 0:t.optimize,ve=L===!0||L===void 0?1:L||0,U=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:T1t,N=(i=e.uriResolver)!==null&&i!==void 0?i:qkr.default;return{strictSchema:(s=(a=e.strictSchema)!==null&&a!==void 0?a:K)!==null&&s!==void 0?s:!0,strictNumbers:(c=(o=e.strictNumbers)!==null&&o!==void 0?o:K)!==null&&c!==void 0?c:!0,strictTypes:(f=(p=e.strictTypes)!==null&&p!==void 0?p:K)!==null&&f!==void 0?f:"log",strictTuples:(h=(d=e.strictTuples)!==null&&d!==void 0?d:K)!==null&&h!==void 0?h:"log",strictRequired:(v=(g=e.strictRequired)!==null&&g!==void 0?g:K)!==null&&v!==void 0?v:!1,code:e.code?{...e.code,optimize:ve,regExp:U}:{optimize:ve,regExp:U},loopRequired:(y=e.loopRequired)!==null&&y!==void 0?y:E1t,loopEnum:(_=e.loopEnum)!==null&&_!==void 0?_:E1t,meta:(x=e.meta)!==null&&x!==void 0?x:!0,messages:(A=e.messages)!==null&&A!==void 0?A:!0,inlineRefs:(D=e.inlineRefs)!==null&&D!==void 0?D:!0,schemaId:(j=e.schemaId)!==null&&j!==void 0?j:"$id",addUsedSchema:(H=e.addUsedSchema)!==null&&H!==void 0?H:!0,validateSchema:(F=e.validateSchema)!==null&&F!==void 0?F:!0,validateFormats:(z=e.validateFormats)!==null&&z!==void 0?z:!0,unicodeRegExp:(P=e.unicodeRegExp)!==null&&P!==void 0?P:!0,int32range:(M=e.int32range)!==null&&M!==void 0?M:!0,uriResolver:N}}var uO=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...Ukr(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new Nkr.ValueScope({scope:{},prefixes:$kr,es5:r,lines:n}),this.logger=Kkr(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,jkr.getRules)(),S1t.call(this,Bkr,t,"NOT SUPPORTED"),S1t.call(this,Mkr,t,"DEPRECATED","warn"),this._metaOpts=Gkr.call(this),t.formats&&Hkr.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&Vkr.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),zkr.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,i=x1t;n==="id"&&(i={...x1t},i.id=i.$id,delete i.$id),r&&t&&this.addMetaSchema(i,i[n],!1)}defaultMeta(){let{meta:t,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[r]||t:void 0}validate(t,r){let n;if(typeof t=="string"){if(n=this.getSchema(t),!n)throw new Error(`no schema with key or ref "${t}"`)}else n=this.compile(t);let i=n(r);return"$async"in n||(this.errors=n.errors),i}compile(t,r){let n=this._addSchema(t,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(t,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return i.call(this,t,r);async function i(f,d){await a.call(this,f.$schema);let h=this._addSchema(f,d);return h.validate||s.call(this,h)}async function a(f){f&&!this.getSchema(f)&&await i.call(this,{$ref:f},!0)}async function s(f){try{return this._compileSchemaEnv(f)}catch(d){if(!(d instanceof A1t.default))throw d;return o.call(this,d),await c.call(this,d.missingSchema),s.call(this,f)}}function o({missingSchema:f,missingRef:d}){if(this.refs[f])throw new Error(`AnySchema ${f} is loaded but ${d} cannot be resolved`)}async function c(f){let d=await p.call(this,f);this.refs[f]||await a.call(this,d.$schema),this.refs[f]||this.addSchema(d,f,r)}async function p(f){let d=this._loading[f];if(d)return d;try{return await(this._loading[f]=n(f))}finally{delete this._loading[f]}}}addSchema(t,r,n,i=this.opts.validateSchema){if(Array.isArray(t)){for(let s of t)this.addSchema(s,void 0,n,i);return this}let a;if(typeof t=="object"){let{schemaId:s}=this.opts;if(a=t[s],a!==void 0&&typeof a!="string")throw new Error(`schema ${s} must be string`)}return r=(0,oO.normalizeId)(r||a),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,i,!0),this}addMetaSchema(t,r,n=this.opts.validateSchema){return this.addSchema(t,r,!0,n),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let n;if(n=t.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let i=this.validate(n,t);if(!i&&r){let a="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(a);else throw new Error(a)}return i}getSchema(t){let r;for(;typeof(r=k1t.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,i=new sO.SchemaEnv({schema:{},schemaId:n});if(r=sO.resolveSchema.call(this,i,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=k1t.call(this,t);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let r=t;this._cache.delete(r);let n=t[this.opts.schemaId];return n&&(n=(0,oO.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let r of t)this.addKeyword(r);return this}addKeyword(t,r){let n;if(typeof t=="string")n=t,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof t=="object"&&r===void 0){if(r=t,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(Jkr.call(this,n,r),!r)return(0,Ove.eachItem)(n,a=>Tve.call(this,a)),this;Qkr.call(this,r);let i={...r,type:(0,rM.getJSONTypes)(r.type),schemaType:(0,rM.getJSONTypes)(r.schemaType)};return(0,Ove.eachItem)(n,i.type.length===0?a=>Tve.call(this,a,i):a=>i.type.forEach(s=>Tve.call(this,a,i,s))),this}getKeyword(t){let r=this.RULES.all[t];return typeof r=="object"?r.definition:!!r}removeKeyword(t){let{RULES:r}=this;delete r.keywords[t],delete r.all[t];for(let n of r.rules){let i=n.rules.findIndex(a=>a.keyword===t);i>=0&&n.rules.splice(i,1)}return this}addFormat(t,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[t]=r,this}errorsText(t=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!t||t.length===0?"No errors":t.map(i=>`${n}${i.instancePath} ${i.message}`).reduce((i,a)=>i+r+a)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let i of r){let a=i.split("/").slice(1),s=t;for(let o of a)s=s[o];for(let o in n){let c=n[o];if(typeof c!="object")continue;let{$data:p}=c.definition,f=s[o];p&&f&&(s[o]=O1t(f))}}return t}_removeAllSchemas(t,r){for(let n in t){let i=t[n];(!r||r.test(n))&&(typeof i=="string"?delete t[n]:i&&!i.meta&&(this._cache.delete(i.schema),delete t[n]))}}_addSchema(t,r,n,i=this.opts.validateSchema,a=this.opts.addUsedSchema){let s,{schemaId:o}=this.opts;if(typeof t=="object")s=t[o];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(t);if(c!==void 0)return c;n=(0,oO.normalizeId)(s||n);let p=oO.getSchemaRefs.call(this,t,n);return c=new sO.SchemaEnv({schema:t,schemaId:o,meta:r,baseId:n,localRefs:p}),this._cache.set(c.schema,c),a&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),i&&this.validateSchema(t,!0),c}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):sO.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let r=this.opts;this.opts=this._metaOpts;try{sO.compileSchema.call(this,t)}finally{this.opts=r}}};uO.ValidationError=Fkr.default;uO.MissingRefError=A1t.default;Yo.default=uO;function S1t(e,t,r,n="error"){for(let i in e){let a=i;a in t&&this.logger[n](`${r}: option ${i}. ${e[a]}`)}}function k1t(e){return e=(0,oO.normalizeId)(e),this.schemas[e]||this.refs[e]}function zkr(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function Hkr(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function Vkr(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}function Gkr(){let e={...this.opts};for(let t of Lkr)delete e[t];return e}var Wkr={log(){},warn(){},error(){}};function Kkr(e){if(e===!1)return Wkr;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var Ykr=/^[a-z_$][a-z0-9_$:-]*$/i;function Jkr(e,t){let{RULES:r}=this;if((0,Ove.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!Ykr.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function Tve(e,t,r){var n;let i=t?.post;if(r&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:a}=this,s=i?a.post:a.rules.find(({type:c})=>c===r);if(s||(s={type:r,rules:[]},a.rules.push(s)),a.keywords[e]=!0,!t)return;let o={keyword:e,definition:{...t,type:(0,rM.getJSONTypes)(t.type),schemaType:(0,rM.getJSONTypes)(t.schemaType)}};t.before?Xkr.call(this,s,o,t.before):s.rules.push(o),a.all[e]=o,(n=t.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function Xkr(e,t,r){let n=e.rules.findIndex(i=>i.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function Qkr(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=O1t(t)),e.validateSchema=this.compile(t,!0))}var Zkr={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function O1t(e){return{anyOf:[e,Zkr]}}});var C1t=b(Dve=>{"use strict";Object.defineProperty(Dve,"__esModule",{value:!0});var eAr={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Dve.default=eAr});var F1t=b(n_=>{"use strict";Object.defineProperty(n_,"__esModule",{value:!0});n_.callRef=n_.getValidate=void 0;var tAr=iO(),P1t=Np(),Hc=dn(),lx=l0(),I1t=QB(),nM=zn(),rAr={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:i,schemaEnv:a,validateName:s,opts:o,self:c}=n,{root:p}=a;if((r==="#"||r==="#/")&&i===p.baseId)return d();let f=I1t.resolveRef.call(c,p,i,r);if(f===void 0)throw new tAr.default(n.opts.uriResolver,i,r);if(f instanceof I1t.SchemaEnv)return h(f);return g(f);function d(){if(a===p)return iM(e,s,a,a.$async);let v=t.scopeValue("root",{ref:p});return iM(e,(0,Hc._)`${v}.validate`,p,p.$async)}function h(v){let y=R1t(e,v);iM(e,y,v,v.$async)}function g(v){let y=t.scopeValue("schema",o.code.source===!0?{ref:v,code:(0,Hc.stringify)(v)}:{ref:v}),_=t.name("valid"),x=e.subschema({schema:v,dataTypes:[],schemaPath:Hc.nil,topSchemaRef:y,errSchemaPath:r},_);e.mergeEvaluated(x),e.ok(_)}}};function R1t(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,Hc._)`${r.scopeValue("wrapper",{ref:t})}.validate`}n_.getValidate=R1t;function iM(e,t,r,n){let{gen:i,it:a}=e,{allErrors:s,schemaEnv:o,opts:c}=a,p=c.passContext?lx.default.this:Hc.nil;n?f():d();function f(){if(!o.$async)throw new Error("async schema referenced by sync schema");let v=i.let("valid");i.try(()=>{i.code((0,Hc._)`await ${(0,P1t.callValidateCode)(e,t,p)}`),g(t),s||i.assign(v,!0)},y=>{i.if((0,Hc._)`!(${y} instanceof ${a.ValidationError})`,()=>i.throw(y)),h(y),s||i.assign(v,!1)}),e.ok(v)}function d(){e.result((0,P1t.callValidateCode)(e,t,p),()=>g(t),()=>h(t))}function h(v){let y=(0,Hc._)`${v}.errors`;i.assign(lx.default.vErrors,(0,Hc._)`${lx.default.vErrors} === null ? ${y} : ${lx.default.vErrors}.concat(${y})`),i.assign(lx.default.errors,(0,Hc._)`${lx.default.vErrors}.length`)}function g(v){var y;if(!a.opts.unevaluated)return;let _=(y=r?.validate)===null||y===void 0?void 0:y.evaluated;if(a.props!==!0)if(_&&!_.dynamicProps)_.props!==void 0&&(a.props=nM.mergeEvaluated.props(i,_.props,a.props));else{let x=i.var("props",(0,Hc._)`${v}.evaluated.props`);a.props=nM.mergeEvaluated.props(i,x,a.props,Hc.Name)}if(a.items!==!0)if(_&&!_.dynamicItems)_.items!==void 0&&(a.items=nM.mergeEvaluated.items(i,_.items,a.items));else{let x=i.var("items",(0,Hc._)`${v}.evaluated.items`);a.items=nM.mergeEvaluated.items(i,x,a.items,Hc.Name)}}}n_.callRef=iM;n_.default=rAr});var j1t=b(Cve=>{"use strict";Object.defineProperty(Cve,"__esModule",{value:!0});var nAr=C1t(),iAr=F1t(),aAr=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",nAr.default,iAr.default];Cve.default=aAr});var N1t=b(Pve=>{"use strict";Object.defineProperty(Pve,"__esModule",{value:!0});var aM=dn(),Xv=aM.operators,sM={maximum:{okStr:"<=",ok:Xv.LTE,fail:Xv.GT},minimum:{okStr:">=",ok:Xv.GTE,fail:Xv.LT},exclusiveMaximum:{okStr:"<",ok:Xv.LT,fail:Xv.GTE},exclusiveMinimum:{okStr:">",ok:Xv.GT,fail:Xv.LTE}},sAr={message:({keyword:e,schemaCode:t})=>(0,aM.str)`must be ${sM[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,aM._)`{comparison: ${sM[e].okStr}, limit: ${t}}`},oAr={keyword:Object.keys(sM),type:"number",schemaType:"number",$data:!0,error:sAr,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,aM._)`${r} ${sM[t].fail} ${n} || isNaN(${r})`)}};Pve.default=oAr});var q1t=b(Ive=>{"use strict";Object.defineProperty(Ive,"__esModule",{value:!0});var cO=dn(),uAr={message:({schemaCode:e})=>(0,cO.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,cO._)`{multipleOf: ${e}}`},cAr={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:uAr,code(e){let{gen:t,data:r,schemaCode:n,it:i}=e,a=i.opts.multipleOfPrecision,s=t.let("res"),o=a?(0,cO._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${a}`:(0,cO._)`${s} !== parseInt(${s})`;e.fail$data((0,cO._)`(${n} === 0 || (${s} = ${r}/${n}, ${o}))`)}};Ive.default=cAr});var $1t=b(Rve=>{"use strict";Object.defineProperty(Rve,"__esModule",{value:!0});function L1t(e){let t=e.length,r=0,n=0,i;for(;n<t;)r++,i=e.charCodeAt(n++),i>=55296&&i<=56319&&n<t&&(i=e.charCodeAt(n),(i&64512)===56320&&n++);return r}Rve.default=L1t;L1t.code='require("ajv/dist/runtime/ucs2length").default'});var B1t=b(Fve=>{"use strict";Object.defineProperty(Fve,"__esModule",{value:!0});var i_=dn(),lAr=zn(),pAr=$1t(),fAr={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,i_.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,i_._)`{limit: ${e}}`},dAr={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:fAr,code(e){let{keyword:t,data:r,schemaCode:n,it:i}=e,a=t==="maxLength"?i_.operators.GT:i_.operators.LT,s=i.opts.unicode===!1?(0,i_._)`${r}.length`:(0,i_._)`${(0,lAr.useFunc)(e.gen,pAr.default)}(${r})`;e.fail$data((0,i_._)`${s} ${a} ${n}`)}};Fve.default=dAr});var M1t=b(jve=>{"use strict";Object.defineProperty(jve,"__esModule",{value:!0});var hAr=Np(),oM=dn(),mAr={message:({schemaCode:e})=>(0,oM.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,oM._)`{pattern: ${e}}`},gAr={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:mAr,code(e){let{data:t,$data:r,schema:n,schemaCode:i,it:a}=e,s=a.opts.unicodeRegExp?"u":"",o=r?(0,oM._)`(new RegExp(${i}, ${s}))`:(0,hAr.usePattern)(e,n);e.fail$data((0,oM._)`!${o}.test(${t})`)}};jve.default=gAr});var U1t=b(Nve=>{"use strict";Object.defineProperty(Nve,"__esModule",{value:!0});var lO=dn(),vAr={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,lO.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,lO._)`{limit: ${e}}`},yAr={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:vAr,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxProperties"?lO.operators.GT:lO.operators.LT;e.fail$data((0,lO._)`Object.keys(${r}).length ${i} ${n}`)}};Nve.default=yAr});var z1t=b(qve=>{"use strict";Object.defineProperty(qve,"__esModule",{value:!0});var pO=Np(),fO=dn(),bAr=zn(),wAr={message:({params:{missingProperty:e}})=>(0,fO.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,fO._)`{missingProperty: ${e}}`},_Ar={keyword:"required",type:"object",schemaType:"array",$data:!0,error:wAr,code(e){let{gen:t,schema:r,schemaCode:n,data:i,$data:a,it:s}=e,{opts:o}=s;if(!a&&r.length===0)return;let c=r.length>=o.loopRequired;if(s.allErrors?p():f(),o.strictRequired){let g=e.parentSchema.properties,{definedProperties:v}=e.it;for(let y of r)if(g?.[y]===void 0&&!v.has(y)){let _=s.schemaEnv.baseId+s.errSchemaPath,x=`required property "${y}" is not defined at "${_}" (strictRequired)`;(0,bAr.checkStrictMode)(s,x,s.opts.strictRequired)}}function p(){if(c||a)e.block$data(fO.nil,d);else for(let g of r)(0,pO.checkReportMissingProp)(e,g)}function f(){let g=t.let("missing");if(c||a){let v=t.let("valid",!0);e.block$data(v,()=>h(g,v)),e.ok(v)}else t.if((0,pO.checkMissingProp)(e,r,g)),(0,pO.reportMissingProp)(e,g),t.else()}function d(){t.forOf("prop",n,g=>{e.setParams({missingProperty:g}),t.if((0,pO.noPropertyInData)(t,i,g,o.ownProperties),()=>e.error())})}function h(g,v){e.setParams({missingProperty:g}),t.forOf(g,n,()=>{t.assign(v,(0,pO.propertyInData)(t,i,g,o.ownProperties)),t.if((0,fO.not)(v),()=>{e.error(),t.break()})},fO.nil)}}};qve.default=_Ar});var H1t=b(Lve=>{"use strict";Object.defineProperty(Lve,"__esModule",{value:!0});var dO=dn(),xAr={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,dO.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,dO._)`{limit: ${e}}`},EAr={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:xAr,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxItems"?dO.operators.GT:dO.operators.LT;e.fail$data((0,dO._)`${r}.length ${i} ${n}`)}};Lve.default=EAr});var uM=b($ve=>{"use strict";Object.defineProperty($ve,"__esModule",{value:!0});var V1t=kg();V1t.code='require("ajv/dist/runtime/equal").default';$ve.default=V1t});var G1t=b(Mve=>{"use strict";Object.defineProperty(Mve,"__esModule",{value:!0});var Bve=ZT(),Jo=dn(),SAr=zn(),kAr=uM(),AAr={message:({params:{i:e,j:t}})=>(0,Jo.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Jo._)`{i: ${e}, j: ${t}}`},TAr={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:AAr,code(e){let{gen:t,data:r,$data:n,schema:i,parentSchema:a,schemaCode:s,it:o}=e;if(!n&&!i)return;let c=t.let("valid"),p=a.items?(0,Bve.getSchemaTypes)(a.items):[];e.block$data(c,f,(0,Jo._)`${s} === false`),e.ok(c);function f(){let v=t.let("i",(0,Jo._)`${r}.length`),y=t.let("j");e.setParams({i:v,j:y}),t.assign(c,!0),t.if((0,Jo._)`${v} > 1`,()=>(d()?h:g)(v,y))}function d(){return p.length>0&&!p.some(v=>v==="object"||v==="array")}function h(v,y){let _=t.name("item"),x=(0,Bve.checkDataTypes)(p,_,o.opts.strictNumbers,Bve.DataType.Wrong),A=t.const("indices",(0,Jo._)`{}`);t.for((0,Jo._)`;${v}--;`,()=>{t.let(_,(0,Jo._)`${r}[${v}]`),t.if(x,(0,Jo._)`continue`),p.length>1&&t.if((0,Jo._)`typeof ${_} == "string"`,(0,Jo._)`${_} += "_"`),t.if((0,Jo._)`typeof ${A}[${_}] == "number"`,()=>{t.assign(y,(0,Jo._)`${A}[${_}]`),e.error(),t.assign(c,!1).break()}).code((0,Jo._)`${A}[${_}] = ${v}`)})}function g(v,y){let _=(0,SAr.useFunc)(t,kAr.default),x=t.name("outer");t.label(x).for((0,Jo._)`;${v}--;`,()=>t.for((0,Jo._)`${y} = ${v}; ${y}--;`,()=>t.if((0,Jo._)`${_}(${r}[${v}], ${r}[${y}])`,()=>{e.error(),t.assign(c,!1).break(x)})))}}};Mve.default=TAr});var W1t=b(zve=>{"use strict";Object.defineProperty(zve,"__esModule",{value:!0});var Uve=dn(),OAr=zn(),DAr=uM(),CAr={message:"must be equal to constant",params:({schemaCode:e})=>(0,Uve._)`{allowedValue: ${e}}`},PAr={keyword:"const",$data:!0,error:CAr,code(e){let{gen:t,data:r,$data:n,schemaCode:i,schema:a}=e;n||a&&typeof a=="object"?e.fail$data((0,Uve._)`!${(0,OAr.useFunc)(t,DAr.default)}(${r}, ${i})`):e.fail((0,Uve._)`${a} !== ${r}`)}};zve.default=PAr});var K1t=b(Hve=>{"use strict";Object.defineProperty(Hve,"__esModule",{value:!0});var hO=dn(),IAr=zn(),RAr=uM(),FAr={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,hO._)`{allowedValues: ${e}}`},jAr={keyword:"enum",schemaType:"array",$data:!0,error:FAr,code(e){let{gen:t,data:r,$data:n,schema:i,schemaCode:a,it:s}=e;if(!n&&i.length===0)throw new Error("enum must have non-empty array");let o=i.length>=s.opts.loopEnum,c,p=()=>c??(c=(0,IAr.useFunc)(t,RAr.default)),f;if(o||n)f=t.let("valid"),e.block$data(f,d);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let g=t.const("vSchema",a);f=(0,hO.or)(...i.map((v,y)=>h(g,y)))}e.pass(f);function d(){t.assign(f,!1),t.forOf("v",a,g=>t.if((0,hO._)`${p()}(${r}, ${g})`,()=>t.assign(f,!0).break()))}function h(g,v){let y=i[v];return typeof y=="object"&&y!==null?(0,hO._)`${p()}(${r}, ${g}[${v}])`:(0,hO._)`${r} === ${y}`}}};Hve.default=jAr});var Y1t=b(Vve=>{"use strict";Object.defineProperty(Vve,"__esModule",{value:!0});var NAr=N1t(),qAr=q1t(),LAr=B1t(),$Ar=M1t(),BAr=U1t(),MAr=z1t(),UAr=H1t(),zAr=G1t(),HAr=W1t(),VAr=K1t(),GAr=[NAr.default,qAr.default,LAr.default,$Ar.default,BAr.default,MAr.default,UAr.default,zAr.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},HAr.default,VAr.default];Vve.default=GAr});var Wve=b(mO=>{"use strict";Object.defineProperty(mO,"__esModule",{value:!0});mO.validateAdditionalItems=void 0;var a_=dn(),Gve=zn(),WAr={message:({params:{len:e}})=>(0,a_.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,a_._)`{limit: ${e}}`},KAr={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:WAr,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,Gve.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}J1t(e,n)}};function J1t(e,t){let{gen:r,schema:n,data:i,keyword:a,it:s}=e;s.items=!0;let o=r.const("len",(0,a_._)`${i}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,a_._)`${o} <= ${t.length}`);else if(typeof n=="object"&&!(0,Gve.alwaysValidSchema)(s,n)){let p=r.var("valid",(0,a_._)`${o} <= ${t.length}`);r.if((0,a_.not)(p),()=>c(p)),e.ok(p)}function c(p){r.forRange("i",t.length,o,f=>{e.subschema({keyword:a,dataProp:f,dataPropType:Gve.Type.Num},p),s.allErrors||r.if((0,a_.not)(p),()=>r.break())})}}mO.validateAdditionalItems=J1t;mO.default=KAr});var Kve=b(gO=>{"use strict";Object.defineProperty(gO,"__esModule",{value:!0});gO.validateTuple=void 0;var X1t=dn(),cM=zn(),YAr=Np(),JAr={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return Q1t(e,"additionalItems",t);r.items=!0,!(0,cM.alwaysValidSchema)(r,t)&&e.ok((0,YAr.validateArray)(e))}};function Q1t(e,t,r=e.schema){let{gen:n,parentSchema:i,data:a,keyword:s,it:o}=e;f(i),o.opts.unevaluated&&r.length&&o.items!==!0&&(o.items=cM.mergeEvaluated.items(n,r.length,o.items));let c=n.name("valid"),p=n.const("len",(0,X1t._)`${a}.length`);r.forEach((d,h)=>{(0,cM.alwaysValidSchema)(o,d)||(n.if((0,X1t._)`${p} > ${h}`,()=>e.subschema({keyword:s,schemaProp:h,dataProp:h},c)),e.ok(c))});function f(d){let{opts:h,errSchemaPath:g}=o,v=r.length,y=v===d.minItems&&(v===d.maxItems||d[t]===!1);if(h.strictTuples&&!y){let _=`"${s}" is ${v}-tuple, but minItems or maxItems/${t} are not specified or different at path "${g}"`;(0,cM.checkStrictMode)(o,_,h.strictTuples)}}}gO.validateTuple=Q1t;gO.default=JAr});var Z1t=b(Yve=>{"use strict";Object.defineProperty(Yve,"__esModule",{value:!0});var XAr=Kve(),QAr={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,XAr.validateTuple)(e,"items")};Yve.default=QAr});var t0t=b(Jve=>{"use strict";Object.defineProperty(Jve,"__esModule",{value:!0});var e0t=dn(),ZAr=zn(),eTr=Np(),tTr=Wve(),rTr={message:({params:{len:e}})=>(0,e0t.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,e0t._)`{limit: ${e}}`},nTr={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:rTr,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:i}=r;n.items=!0,!(0,ZAr.alwaysValidSchema)(n,t)&&(i?(0,tTr.validateAdditionalItems)(e,i):e.ok((0,eTr.validateArray)(e)))}};Jve.default=nTr});var r0t=b(Xve=>{"use strict";Object.defineProperty(Xve,"__esModule",{value:!0});var Lp=dn(),lM=zn(),iTr={message:({params:{min:e,max:t}})=>t===void 0?(0,Lp.str)`must contain at least ${e} valid item(s)`:(0,Lp.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,Lp._)`{minContains: ${e}}`:(0,Lp._)`{minContains: ${e}, maxContains: ${t}}`},aTr={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:iTr,code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:a}=e,s,o,{minContains:c,maxContains:p}=n;a.opts.next?(s=c===void 0?1:c,o=p):s=1;let f=t.const("len",(0,Lp._)`${i}.length`);if(e.setParams({min:s,max:o}),o===void 0&&s===0){(0,lM.checkStrictMode)(a,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(o!==void 0&&s>o){(0,lM.checkStrictMode)(a,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,lM.alwaysValidSchema)(a,r)){let y=(0,Lp._)`${f} >= ${s}`;o!==void 0&&(y=(0,Lp._)`${y} && ${f} <= ${o}`),e.pass(y);return}a.items=!0;let d=t.name("valid");o===void 0&&s===1?g(d,()=>t.if(d,()=>t.break())):s===0?(t.let(d,!0),o!==void 0&&t.if((0,Lp._)`${i}.length > 0`,h)):(t.let(d,!1),h()),e.result(d,()=>e.reset());function h(){let y=t.name("_valid"),_=t.let("count",0);g(y,()=>t.if(y,()=>v(_)))}function g(y,_){t.forRange("i",0,f,x=>{e.subschema({keyword:"contains",dataProp:x,dataPropType:lM.Type.Num,compositeRule:!0},y),_()})}function v(y){t.code((0,Lp._)`${y}++`),o===void 0?t.if((0,Lp._)`${y} >= ${s}`,()=>t.assign(d,!0).break()):(t.if((0,Lp._)`${y} > ${o}`,()=>t.assign(d,!1).break()),s===1?t.assign(d,!0):t.if((0,Lp._)`${y} >= ${s}`,()=>t.assign(d,!0)))}}};Xve.default=aTr});var a0t=b(Gh=>{"use strict";Object.defineProperty(Gh,"__esModule",{value:!0});Gh.validateSchemaDeps=Gh.validatePropertyDeps=Gh.error=void 0;var Qve=dn(),sTr=zn(),vO=Np();Gh.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,Qve.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,Qve._)`{property: ${e},
    missingProperty: ${n},
    depsCount: ${t},
    deps: ${r}}`};var oTr={keyword:"dependencies",type:"object",schemaType:"object",error:Gh.error,code(e){let[t,r]=uTr(e);n0t(e,t),i0t(e,r)}};function uTr({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let i=Array.isArray(e[n])?t:r;i[n]=e[n]}return[t,r]}function n0t(e,t=e.schema){let{gen:r,data:n,it:i}=e;if(Object.keys(t).length===0)return;let a=r.let("missing");for(let s in t){let o=t[s];if(o.length===0)continue;let c=(0,vO.propertyInData)(r,n,s,i.opts.ownProperties);e.setParams({property:s,depsCount:o.length,deps:o.join(", ")}),i.allErrors?r.if(c,()=>{for(let p of o)(0,vO.checkReportMissingProp)(e,p)}):(r.if((0,Qve._)`${c} && (${(0,vO.checkMissingProp)(e,o,a)})`),(0,vO.reportMissingProp)(e,a),r.else())}}Gh.validatePropertyDeps=n0t;function i0t(e,t=e.schema){let{gen:r,data:n,keyword:i,it:a}=e,s=r.name("valid");for(let o in t)(0,sTr.alwaysValidSchema)(a,t[o])||(r.if((0,vO.propertyInData)(r,n,o,a.opts.ownProperties),()=>{let c=e.subschema({keyword:i,schemaProp:o},s);e.mergeValidEvaluated(c,s)},()=>r.var(s,!0)),e.ok(s))}Gh.validateSchemaDeps=i0t;Gh.default=oTr});var o0t=b(Zve=>{"use strict";Object.defineProperty(Zve,"__esModule",{value:!0});var s0t=dn(),cTr=zn(),lTr={message:"property name must be valid",params:({params:e})=>(0,s0t._)`{propertyName: ${e.propertyName}}`},pTr={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:lTr,code(e){let{gen:t,schema:r,data:n,it:i}=e;if((0,cTr.alwaysValidSchema)(i,r))return;let a=t.name("valid");t.forIn("key",n,s=>{e.setParams({propertyName:s}),e.subschema({keyword:"propertyNames",data:s,dataTypes:["string"],propertyName:s,compositeRule:!0},a),t.if((0,s0t.not)(a),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(a)}};Zve.default=pTr});var tye=b(eye=>{"use strict";Object.defineProperty(eye,"__esModule",{value:!0});var pM=Np(),fd=dn(),fTr=l0(),fM=zn(),dTr={message:"must NOT have additional properties",params:({params:e})=>(0,fd._)`{additionalProperty: ${e.additionalProperty}}`},hTr={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:dTr,code(e){let{gen:t,schema:r,parentSchema:n,data:i,errsCount:a,it:s}=e;if(!a)throw new Error("ajv implementation error");let{allErrors:o,opts:c}=s;if(s.props=!0,c.removeAdditional!=="all"&&(0,fM.alwaysValidSchema)(s,r))return;let p=(0,pM.allSchemaProperties)(n.properties),f=(0,pM.allSchemaProperties)(n.patternProperties);d(),e.ok((0,fd._)`${a} === ${fTr.default.errors}`);function d(){t.forIn("key",i,_=>{!p.length&&!f.length?v(_):t.if(h(_),()=>v(_))})}function h(_){let x;if(p.length>8){let A=(0,fM.schemaRefOrVal)(s,n.properties,"properties");x=(0,pM.isOwnProperty)(t,A,_)}else p.length?x=(0,fd.or)(...p.map(A=>(0,fd._)`${_} === ${A}`)):x=fd.nil;return f.length&&(x=(0,fd.or)(x,...f.map(A=>(0,fd._)`${(0,pM.usePattern)(e,A)}.test(${_})`))),(0,fd.not)(x)}function g(_){t.code((0,fd._)`delete ${i}[${_}]`)}function v(_){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){g(_);return}if(r===!1){e.setParams({additionalProperty:_}),e.error(),o||t.break();return}if(typeof r=="object"&&!(0,fM.alwaysValidSchema)(s,r)){let x=t.name("valid");c.removeAdditional==="failing"?(y(_,x,!1),t.if((0,fd.not)(x),()=>{e.reset(),g(_)})):(y(_,x),o||t.if((0,fd.not)(x),()=>t.break()))}}function y(_,x,A){let D={keyword:"additionalProperties",dataProp:_,dataPropType:fM.Type.Str};A===!1&&Object.assign(D,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(D,x)}}};eye.default=hTr});var l0t=b(nye=>{"use strict";Object.defineProperty(nye,"__esModule",{value:!0});var mTr=nO(),u0t=Np(),rye=zn(),c0t=tye(),gTr={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:a}=e;a.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&c0t.default.code(new mTr.KeywordCxt(a,c0t.default,"additionalProperties"));let s=(0,u0t.allSchemaProperties)(r);for(let d of s)a.definedProperties.add(d);a.opts.unevaluated&&s.length&&a.props!==!0&&(a.props=rye.mergeEvaluated.props(t,(0,rye.toHash)(s),a.props));let o=s.filter(d=>!(0,rye.alwaysValidSchema)(a,r[d]));if(o.length===0)return;let c=t.name("valid");for(let d of o)p(d)?f(d):(t.if((0,u0t.propertyInData)(t,i,d,a.opts.ownProperties)),f(d),a.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(d),e.ok(c);function p(d){return a.opts.useDefaults&&!a.compositeRule&&r[d].default!==void 0}function f(d){e.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};nye.default=gTr});var h0t=b(iye=>{"use strict";Object.defineProperty(iye,"__esModule",{value:!0});var p0t=Np(),dM=dn(),f0t=zn(),d0t=zn(),vTr={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:i,it:a}=e,{opts:s}=a,o=(0,p0t.allSchemaProperties)(r),c=o.filter(y=>(0,f0t.alwaysValidSchema)(a,r[y]));if(o.length===0||c.length===o.length&&(!a.opts.unevaluated||a.props===!0))return;let p=s.strictSchema&&!s.allowMatchingProperties&&i.properties,f=t.name("valid");a.props!==!0&&!(a.props instanceof dM.Name)&&(a.props=(0,d0t.evaluatedPropsToName)(t,a.props));let{props:d}=a;h();function h(){for(let y of o)p&&g(y),a.allErrors?v(y):(t.var(f,!0),v(y),t.if(f))}function g(y){for(let _ in p)new RegExp(y).test(_)&&(0,f0t.checkStrictMode)(a,`property ${_} matches pattern ${y} (use allowMatchingProperties)`)}function v(y){t.forIn("key",n,_=>{t.if((0,dM._)`${(0,p0t.usePattern)(e,y)}.test(${_})`,()=>{let x=c.includes(y);x||e.subschema({keyword:"patternProperties",schemaProp:y,dataProp:_,dataPropType:d0t.Type.Str},f),a.opts.unevaluated&&d!==!0?t.assign((0,dM._)`${d}[${_}]`,!0):!x&&!a.allErrors&&t.if((0,dM.not)(f),()=>t.break())})})}}};iye.default=vTr});var m0t=b(aye=>{"use strict";Object.defineProperty(aye,"__esModule",{value:!0});var yTr=zn(),bTr={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,yTr.alwaysValidSchema)(n,r)){e.fail();return}let i=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),e.failResult(i,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};aye.default=bTr});var g0t=b(sye=>{"use strict";Object.defineProperty(sye,"__esModule",{value:!0});var wTr=Np(),_Tr={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:wTr.validateUnion,error:{message:"must match a schema in anyOf"}};sye.default=_Tr});var v0t=b(oye=>{"use strict";Object.defineProperty(oye,"__esModule",{value:!0});var hM=dn(),xTr=zn(),ETr={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,hM._)`{passingSchemas: ${e.passing}}`},STr={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:ETr,code(e){let{gen:t,schema:r,parentSchema:n,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(i.opts.discriminator&&n.discriminator)return;let a=r,s=t.let("valid",!1),o=t.let("passing",null),c=t.name("_valid");e.setParams({passing:o}),t.block(p),e.result(s,()=>e.reset(),()=>e.error(!0));function p(){a.forEach((f,d)=>{let h;(0,xTr.alwaysValidSchema)(i,f)?t.var(c,!0):h=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,hM._)`${c} && ${s}`).assign(s,!1).assign(o,(0,hM._)`[${o}, ${d}]`).else(),t.if(c,()=>{t.assign(s,!0),t.assign(o,d),h&&e.mergeEvaluated(h,hM.Name)})})}}};oye.default=STr});var y0t=b(uye=>{"use strict";Object.defineProperty(uye,"__esModule",{value:!0});var kTr=zn(),ATr={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");let i=t.name("valid");r.forEach((a,s)=>{if((0,kTr.alwaysValidSchema)(n,a))return;let o=e.subschema({keyword:"allOf",schemaProp:s},i);e.ok(i),e.mergeEvaluated(o)})}};uye.default=ATr});var _0t=b(cye=>{"use strict";Object.defineProperty(cye,"__esModule",{value:!0});var mM=dn(),w0t=zn(),TTr={message:({params:e})=>(0,mM.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,mM._)`{failingKeyword: ${e.ifClause}}`},OTr={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:TTr,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,w0t.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let i=b0t(n,"then"),a=b0t(n,"else");if(!i&&!a)return;let s=t.let("valid",!0),o=t.name("_valid");if(c(),e.reset(),i&&a){let f=t.let("ifClause");e.setParams({ifClause:f}),t.if(o,p("then",f),p("else",f))}else i?t.if(o,p("then")):t.if((0,mM.not)(o),p("else"));e.pass(s,()=>e.error(!0));function c(){let f=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},o);e.mergeEvaluated(f)}function p(f,d){return()=>{let h=e.subschema({keyword:f},o);t.assign(s,o),e.mergeValidEvaluated(h,s),d?t.assign(d,(0,mM._)`${f}`):e.setParams({ifClause:f})}}}};function b0t(e,t){let r=e.schema[t];return r!==void 0&&!(0,w0t.alwaysValidSchema)(e,r)}cye.default=OTr});var x0t=b(lye=>{"use strict";Object.defineProperty(lye,"__esModule",{value:!0});var DTr=zn(),CTr={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,DTr.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};lye.default=CTr});var E0t=b(pye=>{"use strict";Object.defineProperty(pye,"__esModule",{value:!0});var PTr=Wve(),ITr=Z1t(),RTr=Kve(),FTr=t0t(),jTr=r0t(),NTr=a0t(),qTr=o0t(),LTr=tye(),$Tr=l0t(),BTr=h0t(),MTr=m0t(),UTr=g0t(),zTr=v0t(),HTr=y0t(),VTr=_0t(),GTr=x0t();function WTr(e=!1){let t=[MTr.default,UTr.default,zTr.default,HTr.default,VTr.default,GTr.default,qTr.default,LTr.default,NTr.default,$Tr.default,BTr.default];return e?t.push(ITr.default,FTr.default):t.push(PTr.default,RTr.default),t.push(jTr.default),t}pye.default=WTr});var S0t=b(fye=>{"use strict";Object.defineProperty(fye,"__esModule",{value:!0});var ys=dn(),KTr={message:({schemaCode:e})=>(0,ys.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,ys._)`{format: ${e}}`},YTr={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:KTr,code(e,t){let{gen:r,data:n,$data:i,schema:a,schemaCode:s,it:o}=e,{opts:c,errSchemaPath:p,schemaEnv:f,self:d}=o;if(!c.validateFormats)return;i?h():g();function h(){let v=r.scopeValue("formats",{ref:d.formats,code:c.code.formats}),y=r.const("fDef",(0,ys._)`${v}[${s}]`),_=r.let("fType"),x=r.let("format");r.if((0,ys._)`typeof ${y} == "object" && !(${y} instanceof RegExp)`,()=>r.assign(_,(0,ys._)`${y}.type || "string"`).assign(x,(0,ys._)`${y}.validate`),()=>r.assign(_,(0,ys._)`"string"`).assign(x,y)),e.fail$data((0,ys.or)(A(),D()));function A(){return c.strictSchema===!1?ys.nil:(0,ys._)`${s} && !${x}`}function D(){let j=f.$async?(0,ys._)`(${y}.async ? await ${x}(${n}) : ${x}(${n}))`:(0,ys._)`${x}(${n})`,H=(0,ys._)`(typeof ${x} == "function" ? ${j} : ${x}.test(${n}))`;return(0,ys._)`${x} && ${x} !== true && ${_} === ${t} && !${H}`}}function g(){let v=d.formats[a];if(!v){A();return}if(v===!0)return;let[y,_,x]=D(v);y===t&&e.pass(j());function A(){if(c.strictSchema===!1){d.logger.warn(H());return}throw new Error(H());function H(){return`unknown format "${a}" ignored in schema at path "${p}"`}}function D(H){let F=H instanceof RegExp?(0,ys.regexpCode)(H):c.code.formats?(0,ys._)`${c.code.formats}${(0,ys.getProperty)(a)}`:void 0,z=r.scopeValue("formats",{key:a,ref:H,code:F});return typeof H=="object"&&!(H instanceof RegExp)?[H.type||"string",H.validate,(0,ys._)`${z}.validate`]:["string",H,z]}function j(){if(typeof v=="object"&&!(v instanceof RegExp)&&v.async){if(!f.$async)throw new Error("async format in sync schema");return(0,ys._)`await ${x}(${n})`}return typeof _=="function"?(0,ys._)`${x}(${n})`:(0,ys._)`${x}.test(${n})`}}}};fye.default=YTr});var k0t=b(dye=>{"use strict";Object.defineProperty(dye,"__esModule",{value:!0});var JTr=S0t(),XTr=[JTr.default];dye.default=XTr});var A0t=b(px=>{"use strict";Object.defineProperty(px,"__esModule",{value:!0});px.contentVocabulary=px.metadataVocabulary=void 0;px.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];px.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var O0t=b(hye=>{"use strict";Object.defineProperty(hye,"__esModule",{value:!0});var QTr=j1t(),ZTr=Y1t(),eOr=E0t(),tOr=k0t(),T0t=A0t(),rOr=[QTr.default,ZTr.default,(0,eOr.default)(),tOr.default,T0t.metadataVocabulary,T0t.contentVocabulary];hye.default=rOr});var C0t=b(gM=>{"use strict";Object.defineProperty(gM,"__esModule",{value:!0});gM.DiscrError=void 0;var D0t;(function(e){e.Tag="tag",e.Mapping="mapping"})(D0t||(gM.DiscrError=D0t={}))});var I0t=b(gye=>{"use strict";Object.defineProperty(gye,"__esModule",{value:!0});var fx=dn(),mye=C0t(),P0t=QB(),nOr=iO(),iOr=zn(),aOr={message:({params:{discrError:e,tagName:t}})=>e===mye.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,fx._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},sOr={keyword:"discriminator",type:"object",schemaType:"object",error:aOr,code(e){let{gen:t,data:r,schema:n,parentSchema:i,it:a}=e,{oneOf:s}=i;if(!a.opts.discriminator)throw new Error("discriminator: requires discriminator option");let o=n.propertyName;if(typeof o!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!s)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),p=t.const("tag",(0,fx._)`${r}${(0,fx.getProperty)(o)}`);t.if((0,fx._)`typeof ${p} == "string"`,()=>f(),()=>e.error(!1,{discrError:mye.DiscrError.Tag,tag:p,tagName:o})),e.ok(c);function f(){let g=h();t.if(!1);for(let v in g)t.elseIf((0,fx._)`${p} === ${v}`),t.assign(c,d(g[v]));t.else(),e.error(!1,{discrError:mye.DiscrError.Mapping,tag:p,tagName:o}),t.endIf()}function d(g){let v=t.name("valid"),y=e.subschema({keyword:"oneOf",schemaProp:g},v);return e.mergeEvaluated(y,fx.Name),v}function h(){var g;let v={},y=x(i),_=!0;for(let j=0;j<s.length;j++){let H=s[j];if(H?.$ref&&!(0,iOr.schemaHasRulesButRef)(H,a.self.RULES)){let z=H.$ref;if(H=P0t.resolveRef.call(a.self,a.schemaEnv.root,a.baseId,z),H instanceof P0t.SchemaEnv&&(H=H.schema),H===void 0)throw new nOr.default(a.opts.uriResolver,a.baseId,z)}let F=(g=H?.properties)===null||g===void 0?void 0:g[o];if(typeof F!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${o}"`);_=_&&(y||x(H)),A(F,j)}if(!_)throw new Error(`discriminator: "${o}" must be required`);return v;function x({required:j}){return Array.isArray(j)&&j.includes(o)}function A(j,H){if(j.const)D(j.const,H);else if(j.enum)for(let F of j.enum)D(F,H);else throw new Error(`discriminator: "properties/${o}" must have "const" or "enum"`)}function D(j,H){if(typeof j!="string"||j in v)throw new Error(`discriminator: "${o}" values must be unique strings`);v[j]=H}}}};gye.default=sOr});var R0t=b((Kdn,oOr)=>{oOr.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var j0t=b((va,vye)=>{"use strict";Object.defineProperty(va,"__esModule",{value:!0});va.MissingRefError=va.ValidationError=va.CodeGen=va.Name=va.nil=va.stringify=va.str=va._=va.KeywordCxt=va.Ajv=void 0;var uOr=D1t(),cOr=O0t(),lOr=I0t(),F0t=R0t(),pOr=["/properties"],vM="http://json-schema.org/draft-07/schema",dx=class extends uOr.default{_addVocabularies(){super._addVocabularies(),cOr.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(lOr.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(F0t,pOr):F0t;this.addMetaSchema(t,vM,!1),this.refs["http://json-schema.org/schema"]=vM}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(vM)?vM:void 0)}};va.Ajv=dx;vye.exports=va=dx;vye.exports.Ajv=dx;Object.defineProperty(va,"__esModule",{value:!0});va.default=dx;var fOr=nO();Object.defineProperty(va,"KeywordCxt",{enumerable:!0,get:function(){return fOr.KeywordCxt}});var hx=dn();Object.defineProperty(va,"_",{enumerable:!0,get:function(){return hx._}});Object.defineProperty(va,"str",{enumerable:!0,get:function(){return hx.str}});Object.defineProperty(va,"stringify",{enumerable:!0,get:function(){return hx.stringify}});Object.defineProperty(va,"nil",{enumerable:!0,get:function(){return hx.nil}});Object.defineProperty(va,"Name",{enumerable:!0,get:function(){return hx.Name}});Object.defineProperty(va,"CodeGen",{enumerable:!0,get:function(){return hx.CodeGen}});var dOr=JB();Object.defineProperty(va,"ValidationError",{enumerable:!0,get:function(){return dOr.default}});var hOr=iO();Object.defineProperty(va,"MissingRefError",{enumerable:!0,get:function(){return hOr.default}})});var M0t=b(Wh=>{"use strict";Object.defineProperty(Wh,"__esModule",{value:!0});Wh.formatNames=Wh.fastFormats=Wh.fullFormats=void 0;function mx(e,t){return{validate:e,compare:t}}Wh.fullFormats={date:mx(L0t,wye),time:mx($0t,_ye),"date-time":mx(yOr,B0t),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:_Or,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:OOr,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:xOr,int32:{type:"number",validate:kOr},int64:{type:"number",validate:AOr},float:{type:"number",validate:q0t},double:{type:"number",validate:q0t},password:!0,binary:!0};Wh.fastFormats={...Wh.fullFormats,date:mx(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,wye),time:mx(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,_ye),"date-time":mx(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,B0t),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};Wh.formatNames=Object.keys(Wh.fullFormats);function mOr(e){return e%4===0&&(e%100!==0||e%400===0)}var gOr=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,vOr=[0,31,28,31,30,31,30,31,31,30,31,30,31];function L0t(e){let t=gOr.exec(e);if(!t)return!1;let r=+t[1],n=+t[2],i=+t[3];return n>=1&&n<=12&&i>=1&&i<=(n===2&&mOr(r)?29:vOr[n])}function wye(e,t){if(e&&t)return e>t?1:e<t?-1:0}var yye=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i;function $0t(e,t){let r=yye.exec(e);if(!r)return!1;let n=+r[1],i=+r[2],a=+r[3],s=r[5];return(n<=23&&i<=59&&a<=59||n===23&&i===59&&a===60)&&(!t||s!=="")}function _ye(e,t){if(!(e&&t))return;let r=yye.exec(e),n=yye.exec(t);if(r&&n)return e=r[1]+r[2]+r[3]+(r[4]||""),t=n[1]+n[2]+n[3]+(n[4]||""),e>t?1:e<t?-1:0}var bye=/t|\s/i;function yOr(e){let t=e.split(bye);return t.length===2&&L0t(t[0])&&$0t(t[1],!0)}function B0t(e,t){if(!(e&&t))return;let[r,n]=e.split(bye),[i,a]=t.split(bye),s=wye(r,i);if(s!==void 0)return s||_ye(n,a)}var bOr=/\/|:/,wOr=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function _Or(e){return bOr.test(e)&&wOr.test(e)}var N0t=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function xOr(e){return N0t.lastIndex=0,N0t.test(e)}var EOr=-(2**31),SOr=2**31-1;function kOr(e){return Number.isInteger(e)&&e<=SOr&&e>=EOr}function AOr(e){return Number.isInteger(e)}function q0t(){return!0}var TOr=/[^\\]\\Z/;function OOr(e){if(TOr.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var wO=b(Hn=>{"use strict";Object.defineProperty(Hn,"__esModule",{value:!0});Hn.regexpCode=Hn.getEsmExportName=Hn.getProperty=Hn.safeStringify=Hn.stringify=Hn.strConcat=Hn.addCodeArg=Hn.str=Hn._=Hn.nil=Hn._Code=Hn.Name=Hn.IDENTIFIER=Hn._CodeOrName=void 0;var yO=class{};Hn._CodeOrName=yO;Hn.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var s_=class extends yO{constructor(t){if(super(),!Hn.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};Hn.Name=s_;var $p=class extends yO{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((r,n)=>(n instanceof s_&&(r[n.str]=(r[n.str]||0)+1),r),{})}};Hn._Code=$p;Hn.nil=new $p("");function U0t(e,...t){let r=[e[0]],n=0;for(;n<t.length;)Eye(r,t[n]),r.push(e[++n]);return new $p(r)}Hn._=U0t;var xye=new $p("+");function z0t(e,...t){let r=[bO(e[0])],n=0;for(;n<t.length;)r.push(xye),Eye(r,t[n]),r.push(xye,bO(e[++n]));return DOr(r),new $p(r)}Hn.str=z0t;function Eye(e,t){t instanceof $p?e.push(...t._items):t instanceof s_?e.push(t):e.push(IOr(t))}Hn.addCodeArg=Eye;function DOr(e){let t=1;for(;t<e.length-1;){if(e[t]===xye){let r=COr(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function COr(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof s_||e[e.length-1]!=='"'?void 0:typeof t!="string"?`${e.slice(0,-1)}${t}"`:t[0]==='"'?e.slice(0,-1)+t.slice(1):void 0;if(typeof t=="string"&&t[0]==='"'&&!(e instanceof s_))return`"${e}${t.slice(1)}`}function POr(e,t){return t.emptyStr()?e:e.emptyStr()?t:z0t`${e}${t}`}Hn.strConcat=POr;function IOr(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:bO(Array.isArray(e)?e.join(","):e)}function ROr(e){return new $p(bO(e))}Hn.stringify=ROr;function bO(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}Hn.safeStringify=bO;function FOr(e){return typeof e=="string"&&Hn.IDENTIFIER.test(e)?new $p(`.${e}`):U0t`[${e}]`}Hn.getProperty=FOr;function jOr(e){if(typeof e=="string"&&Hn.IDENTIFIER.test(e))return new $p(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}Hn.getEsmExportName=jOr;function NOr(e){return new $p(e.toString())}Hn.regexpCode=NOr});var Aye=b(Gc=>{"use strict";Object.defineProperty(Gc,"__esModule",{value:!0});Gc.ValueScope=Gc.ValueScopeName=Gc.Scope=Gc.varKinds=Gc.UsedValueState=void 0;var Vc=wO(),Sye=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},yM;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(yM||(Gc.UsedValueState=yM={}));Gc.varKinds={const:new Vc.Name("const"),let:new Vc.Name("let"),var:new Vc.Name("var")};var bM=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof Vc.Name?t:this.name(t)}name(t){return new Vc.Name(this._newName(t))}_newName(t){let r=this._names[t]||this._nameGroup(t);return`${t}${r.index++}`}_nameGroup(t){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};Gc.Scope=bM;var wM=class extends Vc.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,Vc._)`.${new Vc.Name(r)}[${n}]`}};Gc.ValueScopeName=wM;var qOr=(0,Vc._)`\n`,kye=class extends bM{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?qOr:Vc.nil}}get(){return this._scope}name(t){return new wM(t,this._newName(t))}value(t,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let i=this.toName(t),{prefix:a}=i,s=(n=r.key)!==null&&n!==void 0?n:r.ref,o=this._values[a];if(o){let f=o.get(s);if(f)return f}else o=this._values[a]=new Map;o.set(s,i);let c=this._scope[a]||(this._scope[a]=[]),p=c.length;return c[p]=r.ref,i.setValue(r,{property:a,itemIndex:p}),i}getValue(t,r){let n=this._values[t];if(n)return n.get(r)}scopeRefs(t,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,Vc._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},r,n)}_reduceValues(t,r,n={},i){let a=Vc.nil;for(let s in t){let o=t[s];if(!o)continue;let c=n[s]=n[s]||new Map;o.forEach(p=>{if(c.has(p))return;c.set(p,yM.Started);let f=r(p);if(f){let d=this.opts.es5?Gc.varKinds.var:Gc.varKinds.const;a=(0,Vc._)`${a}${d} ${p} = ${f};${this.opts._n}`}else if(f=i?.(p))a=(0,Vc._)`${a}${f}${this.opts._n}`;else throw new Sye(p);c.set(p,yM.Completed)})}return a}};Gc.ValueScope=kye});var sn=b(ln=>{"use strict";Object.defineProperty(ln,"__esModule",{value:!0});ln.or=ln.and=ln.not=ln.CodeGen=ln.operators=ln.varKinds=ln.ValueScopeName=ln.ValueScope=ln.Scope=ln.Name=ln.regexpCode=ln.stringify=ln.getProperty=ln.nil=ln.strConcat=ln.str=ln._=void 0;var Dn=wO(),dd=Aye(),Qv=wO();Object.defineProperty(ln,"_",{enumerable:!0,get:function(){return Qv._}});Object.defineProperty(ln,"str",{enumerable:!0,get:function(){return Qv.str}});Object.defineProperty(ln,"strConcat",{enumerable:!0,get:function(){return Qv.strConcat}});Object.defineProperty(ln,"nil",{enumerable:!0,get:function(){return Qv.nil}});Object.defineProperty(ln,"getProperty",{enumerable:!0,get:function(){return Qv.getProperty}});Object.defineProperty(ln,"stringify",{enumerable:!0,get:function(){return Qv.stringify}});Object.defineProperty(ln,"regexpCode",{enumerable:!0,get:function(){return Qv.regexpCode}});Object.defineProperty(ln,"Name",{enumerable:!0,get:function(){return Qv.Name}});var SM=Aye();Object.defineProperty(ln,"Scope",{enumerable:!0,get:function(){return SM.Scope}});Object.defineProperty(ln,"ValueScope",{enumerable:!0,get:function(){return SM.ValueScope}});Object.defineProperty(ln,"ValueScopeName",{enumerable:!0,get:function(){return SM.ValueScopeName}});Object.defineProperty(ln,"varKinds",{enumerable:!0,get:function(){return SM.varKinds}});ln.operators={GT:new Dn._Code(">"),GTE:new Dn._Code(">="),LT:new Dn._Code("<"),LTE:new Dn._Code("<="),EQ:new Dn._Code("==="),NEQ:new Dn._Code("!=="),NOT:new Dn._Code("!"),OR:new Dn._Code("||"),AND:new Dn._Code("&&"),ADD:new Dn._Code("+")};var d0=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},Tye=class extends d0{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?dd.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${i};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=vx(this.rhs,t,r)),this}get names(){return this.rhs instanceof Dn._CodeOrName?this.rhs.names:{}}},_M=class extends d0{constructor(t,r,n){super(),this.lhs=t,this.rhs=r,this.sideEffects=n}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof Dn.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=vx(this.rhs,t,r),this}get names(){let t=this.lhs instanceof Dn.Name?{}:{...this.lhs.names};return EM(t,this.rhs)}},Oye=class extends _M{constructor(t,r,n,i){super(t,n,i),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},Dye=class extends d0{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},Cye=class extends d0{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},Pye=class extends d0{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},Iye=class extends d0{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,r){return this.code=vx(this.code,t,r),this}get names(){return this.code instanceof Dn._CodeOrName?this.code.names:{}}},_O=class extends d0{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((r,n)=>r+n.render(t),"")}optimizeNodes(){let{nodes:t}=this,r=t.length;for(;r--;){let n=t[r].optimizeNodes();Array.isArray(n)?t.splice(r,1,...n):n?t[r]=n:t.splice(r,1)}return t.length>0?this:void 0}optimizeNames(t,r){let{nodes:n}=this,i=n.length;for(;i--;){let a=n[i];a.optimizeNames(t,r)||(LOr(t,a.names),n.splice(i,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>c_(t,r.names),{})}},h0=class extends _O{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Rye=class extends _O{},gx=class extends h0{};gx.kind="else";var o_=class e extends h0{constructor(t,r){super(r),this.condition=t}render(t){let r=`if(${this.condition})`+super.render(t);return this.else&&(r+="else "+this.else.render(t)),r}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new gx(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(H0t(t),r instanceof e?[r]:r.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(t,r),!!(super.optimizeNames(t,r)||this.else))return this.condition=vx(this.condition,t,r),this}get names(){let t=super.names;return EM(t,this.condition),this.else&&c_(t,this.else.names),t}};o_.kind="if";var u_=class extends h0{};u_.kind="for";var Fye=class extends u_{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iteration=vx(this.iteration,t,r),this}get names(){return c_(super.names,this.iteration.names)}},jye=class extends u_{constructor(t,r,n,i){super(),this.varKind=t,this.name=r,this.from=n,this.to=i}render(t){let r=t.es5?dd.varKinds.var:this.varKind,{name:n,from:i,to:a}=this;return`for(${r} ${n}=${i}; ${n}<${a}; ${n}++)`+super.render(t)}get names(){let t=EM(super.names,this.from);return EM(t,this.to)}},xM=class extends u_{constructor(t,r,n,i){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=i}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=vx(this.iterable,t,r),this}get names(){return c_(super.names,this.iterable.names)}},xO=class extends h0{constructor(t,r,n){super(),this.name=t,this.args=r,this.async=n}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};xO.kind="func";var EO=class extends _O{render(t){return"return "+super.render(t)}};EO.kind="return";var Nye=class extends h0{render(t){let r="try"+super.render(t);return this.catch&&(r+=this.catch.render(t)),this.finally&&(r+=this.finally.render(t)),r}optimizeNodes(){var t,r;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(t,r){var n,i;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(i=this.finally)===null||i===void 0||i.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&c_(t,this.catch.names),this.finally&&c_(t,this.finally.names),t}},SO=class extends h0{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};SO.kind="catch";var kO=class extends h0{render(t){return"finally"+super.render(t)}};kO.kind="finally";var qye=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?`
`:""},this._extScope=t,this._scope=new dd.Scope({parent:t}),this._nodes=[new Rye]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,r){let n=this._extScope.value(t,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(t,r){return this._extScope.getValue(t,r)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,r,n,i){let a=this._scope.toName(r);return n!==void 0&&i&&(this._constants[a.str]=n),this._leafNode(new Tye(t,a,n)),a}const(t,r,n){return this._def(dd.varKinds.const,t,r,n)}let(t,r,n){return this._def(dd.varKinds.let,t,r,n)}var(t,r,n){return this._def(dd.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new _M(t,r,n))}add(t,r){return this._leafNode(new Oye(t,ln.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==Dn.nil&&this._leafNode(new Iye(t)),this}object(...t){let r=["{"];for(let[n,i]of t)r.length>1&&r.push(","),r.push(n),(n!==i||this.opts.es5)&&(r.push(":"),(0,Dn.addCodeArg)(r,i));return r.push("}"),new Dn._Code(r)}if(t,r,n){if(this._blockNode(new o_(t)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(t){return this._elseNode(new o_(t))}else(){return this._elseNode(new gx)}endIf(){return this._endBlockNode(o_,gx)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new Fye(t),r)}forRange(t,r,n,i,a=this.opts.es5?dd.varKinds.var:dd.varKinds.let){let s=this._scope.toName(t);return this._for(new jye(a,s,r,n),()=>i(s))}forOf(t,r,n,i=dd.varKinds.const){let a=this._scope.toName(t);if(this.opts.es5){let s=r instanceof Dn.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,Dn._)`${s}.length`,o=>{this.var(a,(0,Dn._)`${s}[${o}]`),n(a)})}return this._for(new xM("of",i,a,r),()=>n(a))}forIn(t,r,n,i=this.opts.es5?dd.varKinds.var:dd.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,Dn._)`Object.keys(${r})`,n);let a=this._scope.toName(t);return this._for(new xM("in",i,a,r),()=>n(a))}endFor(){return this._endBlockNode(u_)}label(t){return this._leafNode(new Dye(t))}break(t){return this._leafNode(new Cye(t))}return(t){let r=new EO;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(EO)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new Nye;if(this._blockNode(i),this.code(t),r){let a=this.name("e");this._currNode=i.catch=new SO(a),r(a)}return n&&(this._currNode=i.finally=new kO,this.code(n)),this._endBlockNode(SO,kO)}throw(t){return this._leafNode(new Pye(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=Dn.nil,n,i){return this._blockNode(new xO(t,r,n)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(xO)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,r){let n=this._currNode;if(n instanceof t||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${t.kind}/${r.kind}`:t.kind}"`)}_elseNode(t){let r=this._currNode;if(!(r instanceof o_))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let r=this._nodes;r[r.length-1]=t}};ln.CodeGen=qye;function c_(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function EM(e,t){return t instanceof Dn._CodeOrName?c_(e,t.names):e}function vx(e,t,r){if(e instanceof Dn.Name)return n(e);if(!i(e))return e;return new Dn._Code(e._items.reduce((a,s)=>(s instanceof Dn.Name&&(s=n(s)),s instanceof Dn._Code?a.push(...s._items):a.push(s),a),[]));function n(a){let s=r[a.str];return s===void 0||t[a.str]!==1?a:(delete t[a.str],s)}function i(a){return a instanceof Dn._Code&&a._items.some(s=>s instanceof Dn.Name&&t[s.str]===1&&r[s.str]!==void 0)}}function LOr(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function H0t(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,Dn._)`!${Lye(e)}`}ln.not=H0t;var $Or=V0t(ln.operators.AND);function BOr(...e){return e.reduce($Or)}ln.and=BOr;var MOr=V0t(ln.operators.OR);function UOr(...e){return e.reduce(MOr)}ln.or=UOr;function V0t(e){return(t,r)=>t===Dn.nil?r:r===Dn.nil?t:(0,Dn._)`${Lye(t)} ${e} ${Lye(r)}`}function Lye(e){return e instanceof Dn.Name?e:(0,Dn._)`(${e})`}});var Vn=b(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});mn.checkStrictMode=mn.getErrorPath=mn.Type=mn.useFunc=mn.setEvaluated=mn.evaluatedPropsToName=mn.mergeEvaluated=mn.eachItem=mn.unescapeJsonPointer=mn.escapeJsonPointer=mn.escapeFragment=mn.unescapeFragment=mn.schemaRefOrVal=mn.schemaHasRulesButRef=mn.schemaHasRules=mn.checkUnknownRules=mn.alwaysValidSchema=mn.toHash=void 0;var Mi=sn(),zOr=wO();function HOr(e){let t={};for(let r of e)t[r]=!0;return t}mn.toHash=HOr;function VOr(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(K0t(e,t),!Y0t(t,e.self.RULES.all))}mn.alwaysValidSchema=VOr;function K0t(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let i=n.RULES.keywords;for(let a in t)i[a]||Q0t(e,`unknown keyword: "${a}"`)}mn.checkUnknownRules=K0t;function Y0t(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}mn.schemaHasRules=Y0t;function GOr(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}mn.schemaHasRulesButRef=GOr;function WOr({topSchemaRef:e,schemaPath:t},r,n,i){if(!i){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,Mi._)`${r}`}return(0,Mi._)`${e}${t}${(0,Mi.getProperty)(n)}`}mn.schemaRefOrVal=WOr;function KOr(e){return J0t(decodeURIComponent(e))}mn.unescapeFragment=KOr;function YOr(e){return encodeURIComponent(Bye(e))}mn.escapeFragment=YOr;function Bye(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}mn.escapeJsonPointer=Bye;function J0t(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}mn.unescapeJsonPointer=J0t;function JOr(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}mn.eachItem=JOr;function G0t({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(i,a,s,o)=>{let c=s===void 0?a:s instanceof Mi.Name?(a instanceof Mi.Name?e(i,a,s):t(i,a,s),s):a instanceof Mi.Name?(t(i,s,a),a):r(a,s);return o===Mi.Name&&!(c instanceof Mi.Name)?n(i,c):c}}mn.mergeEvaluated={props:G0t({mergeNames:(e,t,r)=>e.if((0,Mi._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,Mi._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,Mi._)`${r} || {}`).code((0,Mi._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,Mi._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,Mi._)`${r} || {}`),Mye(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:X0t}),items:G0t({mergeNames:(e,t,r)=>e.if((0,Mi._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,Mi._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,Mi._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,Mi._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function X0t(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,Mi._)`{}`);return t!==void 0&&Mye(e,r,t),r}mn.evaluatedPropsToName=X0t;function Mye(e,t,r){Object.keys(r).forEach(n=>e.assign((0,Mi._)`${t}${(0,Mi.getProperty)(n)}`,!0))}mn.setEvaluated=Mye;var W0t={};function XOr(e,t){return e.scopeValue("func",{ref:t,code:W0t[t.code]||(W0t[t.code]=new zOr._Code(t.code))})}mn.useFunc=XOr;var $ye;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})($ye||(mn.Type=$ye={}));function QOr(e,t,r){if(e instanceof Mi.Name){let n=t===$ye.Num;return r?n?(0,Mi._)`"[" + ${e} + "]"`:(0,Mi._)`"['" + ${e} + "']"`:n?(0,Mi._)`"/" + ${e}`:(0,Mi._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,Mi.getProperty)(e).toString():"/"+Bye(e)}mn.getErrorPath=QOr;function Q0t(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}mn.checkStrictMode=Q0t});var m0=b(Uye=>{"use strict";Object.defineProperty(Uye,"__esModule",{value:!0});var Ou=sn(),ZOr={data:new Ou.Name("data"),valCxt:new Ou.Name("valCxt"),instancePath:new Ou.Name("instancePath"),parentData:new Ou.Name("parentData"),parentDataProperty:new Ou.Name("parentDataProperty"),rootData:new Ou.Name("rootData"),dynamicAnchors:new Ou.Name("dynamicAnchors"),vErrors:new Ou.Name("vErrors"),errors:new Ou.Name("errors"),this:new Ou.Name("this"),self:new Ou.Name("self"),scope:new Ou.Name("scope"),json:new Ou.Name("json"),jsonPos:new Ou.Name("jsonPos"),jsonLen:new Ou.Name("jsonLen"),jsonPart:new Ou.Name("jsonPart")};Uye.default=ZOr});var AO=b(Du=>{"use strict";Object.defineProperty(Du,"__esModule",{value:!0});Du.extendErrors=Du.resetErrorsCount=Du.reportExtraError=Du.reportError=Du.keyword$DataError=Du.keywordError=void 0;var Fn=sn(),kM=Vn(),cc=m0();Du.keywordError={message:({keyword:e})=>(0,Fn.str)`must pass "${e}" keyword validation`};Du.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,Fn.str)`"${e}" keyword must be ${t} ($data)`:(0,Fn.str)`"${e}" keyword is invalid ($data)`};function eDr(e,t=Du.keywordError,r,n){let{it:i}=e,{gen:a,compositeRule:s,allErrors:o}=i,c=tgt(e,t,r);n??(s||o)?Z0t(a,c):egt(i,(0,Fn._)`[${c}]`)}Du.reportError=eDr;function tDr(e,t=Du.keywordError,r){let{it:n}=e,{gen:i,compositeRule:a,allErrors:s}=n,o=tgt(e,t,r);Z0t(i,o),a||s||egt(n,cc.default.vErrors)}Du.reportExtraError=tDr;function rDr(e,t){e.assign(cc.default.errors,t),e.if((0,Fn._)`${cc.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,Fn._)`${cc.default.vErrors}.length`,t),()=>e.assign(cc.default.vErrors,null)))}Du.resetErrorsCount=rDr;function nDr({gen:e,keyword:t,schemaValue:r,data:n,errsCount:i,it:a}){if(i===void 0)throw new Error("ajv implementation error");let s=e.name("err");e.forRange("i",i,cc.default.errors,o=>{e.const(s,(0,Fn._)`${cc.default.vErrors}[${o}]`),e.if((0,Fn._)`${s}.instancePath === undefined`,()=>e.assign((0,Fn._)`${s}.instancePath`,(0,Fn.strConcat)(cc.default.instancePath,a.errorPath))),e.assign((0,Fn._)`${s}.schemaPath`,(0,Fn.str)`${a.errSchemaPath}/${t}`),a.opts.verbose&&(e.assign((0,Fn._)`${s}.schema`,r),e.assign((0,Fn._)`${s}.data`,n))})}Du.extendErrors=nDr;function Z0t(e,t){let r=e.const("err",t);e.if((0,Fn._)`${cc.default.vErrors} === null`,()=>e.assign(cc.default.vErrors,(0,Fn._)`[${r}]`),(0,Fn._)`${cc.default.vErrors}.push(${r})`),e.code((0,Fn._)`${cc.default.errors}++`)}function egt(e,t){let{gen:r,validateName:n,schemaEnv:i}=e;i.$async?r.throw((0,Fn._)`new ${e.ValidationError}(${t})`):(r.assign((0,Fn._)`${n}.errors`,t),r.return(!1))}var l_={keyword:new Fn.Name("keyword"),schemaPath:new Fn.Name("schemaPath"),params:new Fn.Name("params"),propertyName:new Fn.Name("propertyName"),message:new Fn.Name("message"),schema:new Fn.Name("schema"),parentSchema:new Fn.Name("parentSchema")};function tgt(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,Fn._)`{}`:iDr(e,t,r)}function iDr(e,t,r={}){let{gen:n,it:i}=e,a=[aDr(i,r),sDr(e,r)];return oDr(e,t,a),n.object(...a)}function aDr({errorPath:e},{instancePath:t}){let r=t?(0,Fn.str)`${e}${(0,kM.getErrorPath)(t,kM.Type.Str)}`:e;return[cc.default.instancePath,(0,Fn.strConcat)(cc.default.instancePath,r)]}function sDr({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let i=n?t:(0,Fn.str)`${t}/${e}`;return r&&(i=(0,Fn.str)`${i}${(0,kM.getErrorPath)(r,kM.Type.Str)}`),[l_.schemaPath,i]}function oDr(e,{params:t,message:r},n){let{keyword:i,data:a,schemaValue:s,it:o}=e,{opts:c,propertyName:p,topSchemaRef:f,schemaPath:d}=o;n.push([l_.keyword,i],[l_.params,typeof t=="function"?t(e):t||(0,Fn._)`{}`]),c.messages&&n.push([l_.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([l_.schema,s],[l_.parentSchema,(0,Fn._)`${f}${d}`],[cc.default.data,a]),p&&n.push([l_.propertyName,p])}});var ngt=b(yx=>{"use strict";Object.defineProperty(yx,"__esModule",{value:!0});yx.boolOrEmptySchema=yx.topBoolOrEmptySchema=void 0;var uDr=AO(),cDr=sn(),lDr=m0(),pDr={message:"boolean schema is false"};function fDr(e){let{gen:t,schema:r,validateName:n}=e;r===!1?rgt(e,!1):typeof r=="object"&&r.$async===!0?t.return(lDr.default.data):(t.assign((0,cDr._)`${n}.errors`,null),t.return(!0))}yx.topBoolOrEmptySchema=fDr;function dDr(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),rgt(e)):r.var(t,!0)}yx.boolOrEmptySchema=dDr;function rgt(e,t){let{gen:r,data:n}=e,i={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,uDr.reportError)(i,pDr,void 0,t)}});var zye=b(bx=>{"use strict";Object.defineProperty(bx,"__esModule",{value:!0});bx.getRules=bx.isJSONType=void 0;var hDr=["string","number","integer","boolean","null","object","array"],mDr=new Set(hDr);function gDr(e){return typeof e=="string"&&mDr.has(e)}bx.isJSONType=gDr;function vDr(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}bx.getRules=vDr});var Hye=b(Zv=>{"use strict";Object.defineProperty(Zv,"__esModule",{value:!0});Zv.shouldUseRule=Zv.shouldUseGroup=Zv.schemaHasRulesForType=void 0;function yDr({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&igt(e,n)}Zv.schemaHasRulesForType=yDr;function igt(e,t){return t.rules.some(r=>agt(e,r))}Zv.shouldUseGroup=igt;function agt(e,t){var r;return e[t.keyword]!==void 0||((r=t.definition.implements)===null||r===void 0?void 0:r.some(n=>e[n]!==void 0))}Zv.shouldUseRule=agt});var TO=b(Cu=>{"use strict";Object.defineProperty(Cu,"__esModule",{value:!0});Cu.reportTypeError=Cu.checkDataTypes=Cu.checkDataType=Cu.coerceAndCheckDataType=Cu.getJSONTypes=Cu.getSchemaTypes=Cu.DataType=void 0;var bDr=zye(),wDr=Hye(),_Dr=AO(),rn=sn(),sgt=Vn(),wx;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(wx||(Cu.DataType=wx={}));function xDr(e){let t=ogt(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}Cu.getSchemaTypes=xDr;function ogt(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(bDr.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}Cu.getJSONTypes=ogt;function EDr(e,t){let{gen:r,data:n,opts:i}=e,a=SDr(t,i.coerceTypes),s=t.length>0&&!(a.length===0&&t.length===1&&(0,wDr.schemaHasRulesForType)(e,t[0]));if(s){let o=Gye(t,n,i.strictNumbers,wx.Wrong);r.if(o,()=>{a.length?kDr(e,t,a):Wye(e)})}return s}Cu.coerceAndCheckDataType=EDr;var ugt=new Set(["string","number","integer","boolean","null"]);function SDr(e,t){return t?e.filter(r=>ugt.has(r)||t==="array"&&r==="array"):[]}function kDr(e,t,r){let{gen:n,data:i,opts:a}=e,s=n.let("dataType",(0,rn._)`typeof ${i}`),o=n.let("coerced",(0,rn._)`undefined`);a.coerceTypes==="array"&&n.if((0,rn._)`${s} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>n.assign(i,(0,rn._)`${i}[0]`).assign(s,(0,rn._)`typeof ${i}`).if(Gye(t,i,a.strictNumbers),()=>n.assign(o,i))),n.if((0,rn._)`${o} !== undefined`);for(let p of r)(ugt.has(p)||p==="array"&&a.coerceTypes==="array")&&c(p);n.else(),Wye(e),n.endIf(),n.if((0,rn._)`${o} !== undefined`,()=>{n.assign(i,o),ADr(e,o)});function c(p){switch(p){case"string":n.elseIf((0,rn._)`${s} == "number" || ${s} == "boolean"`).assign(o,(0,rn._)`"" + ${i}`).elseIf((0,rn._)`${i} === null`).assign(o,(0,rn._)`""`);return;case"number":n.elseIf((0,rn._)`${s} == "boolean" || ${i} === null
              || (${s} == "string" && ${i} && ${i} == +${i})`).assign(o,(0,rn._)`+${i}`);return;case"integer":n.elseIf((0,rn._)`${s} === "boolean" || ${i} === null
              || (${s} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(o,(0,rn._)`+${i}`);return;case"boolean":n.elseIf((0,rn._)`${i} === "false" || ${i} === 0 || ${i} === null`).assign(o,!1).elseIf((0,rn._)`${i} === "true" || ${i} === 1`).assign(o,!0);return;case"null":n.elseIf((0,rn._)`${i} === "" || ${i} === 0 || ${i} === false`),n.assign(o,null);return;case"array":n.elseIf((0,rn._)`${s} === "string" || ${s} === "number"
              || ${s} === "boolean" || ${i} === null`).assign(o,(0,rn._)`[${i}]`)}}}function ADr({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,rn._)`${t} !== undefined`,()=>e.assign((0,rn._)`${t}[${r}]`,n))}function Vye(e,t,r,n=wx.Correct){let i=n===wx.Correct?rn.operators.EQ:rn.operators.NEQ,a;switch(e){case"null":return(0,rn._)`${t} ${i} null`;case"array":a=(0,rn._)`Array.isArray(${t})`;break;case"object":a=(0,rn._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":a=s((0,rn._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":a=s();break;default:return(0,rn._)`typeof ${t} ${i} ${e}`}return n===wx.Correct?a:(0,rn.not)(a);function s(o=rn.nil){return(0,rn.and)((0,rn._)`typeof ${t} == "number"`,o,r?(0,rn._)`isFinite(${t})`:rn.nil)}}Cu.checkDataType=Vye;function Gye(e,t,r,n){if(e.length===1)return Vye(e[0],t,r,n);let i,a=(0,sgt.toHash)(e);if(a.array&&a.object){let s=(0,rn._)`typeof ${t} != "object"`;i=a.null?s:(0,rn._)`!${t} || ${s}`,delete a.null,delete a.array,delete a.object}else i=rn.nil;a.number&&delete a.integer;for(let s in a)i=(0,rn.and)(i,Vye(s,t,r,n));return i}Cu.checkDataTypes=Gye;var TDr={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,rn._)`{type: ${e}}`:(0,rn._)`{type: ${t}}`};function Wye(e){let t=ODr(e);(0,_Dr.reportError)(t,TDr)}Cu.reportTypeError=Wye;function ODr(e){let{gen:t,data:r,schema:n}=e,i=(0,sgt.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:i,schemaValue:i,parentSchema:n,params:{},it:e}}});var lgt=b(AM=>{"use strict";Object.defineProperty(AM,"__esModule",{value:!0});AM.assignDefaults=void 0;var _x=sn(),DDr=Vn();function CDr(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let i in r)cgt(e,i,r[i].default);else t==="array"&&Array.isArray(n)&&n.forEach((i,a)=>cgt(e,a,i.default))}AM.assignDefaults=CDr;function cgt(e,t,r){let{gen:n,compositeRule:i,data:a,opts:s}=e;if(r===void 0)return;let o=(0,_x._)`${a}${(0,_x.getProperty)(t)}`;if(i){(0,DDr.checkStrictMode)(e,`default is ignored for: ${o}`);return}let c=(0,_x._)`${o} === undefined`;s.useDefaults==="empty"&&(c=(0,_x._)`${c} || ${o} === null || ${o} === ""`),n.if(c,(0,_x._)`${o} = ${(0,_x.stringify)(r)}`)}});var Bp=b(ki=>{"use strict";Object.defineProperty(ki,"__esModule",{value:!0});ki.validateUnion=ki.validateArray=ki.usePattern=ki.callValidateCode=ki.schemaProperties=ki.allSchemaProperties=ki.noPropertyInData=ki.propertyInData=ki.isOwnProperty=ki.hasPropFunc=ki.reportMissingProp=ki.checkMissingProp=ki.checkReportMissingProp=void 0;var ya=sn(),Kye=Vn(),ey=m0(),PDr=Vn();function IDr(e,t){let{gen:r,data:n,it:i}=e;r.if(Jye(r,n,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,ya._)`${t}`},!0),e.error()})}ki.checkReportMissingProp=IDr;function RDr({gen:e,data:t,it:{opts:r}},n,i){return(0,ya.or)(...n.map(a=>(0,ya.and)(Jye(e,t,a,r.ownProperties),(0,ya._)`${i} = ${a}`)))}ki.checkMissingProp=RDr;function FDr(e,t){e.setParams({missingProperty:t},!0),e.error()}ki.reportMissingProp=FDr;function pgt(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,ya._)`Object.prototype.hasOwnProperty`})}ki.hasPropFunc=pgt;function Yye(e,t,r){return(0,ya._)`${pgt(e)}.call(${t}, ${r})`}ki.isOwnProperty=Yye;function jDr(e,t,r,n){let i=(0,ya._)`${t}${(0,ya.getProperty)(r)} !== undefined`;return n?(0,ya._)`${i} && ${Yye(e,t,r)}`:i}ki.propertyInData=jDr;function Jye(e,t,r,n){let i=(0,ya._)`${t}${(0,ya.getProperty)(r)} === undefined`;return n?(0,ya.or)(i,(0,ya.not)(Yye(e,t,r))):i}ki.noPropertyInData=Jye;function fgt(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}ki.allSchemaProperties=fgt;function NDr(e,t){return fgt(t).filter(r=>!(0,Kye.alwaysValidSchema)(e,t[r]))}ki.schemaProperties=NDr;function qDr({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:i,errorPath:a},it:s},o,c,p){let f=p?(0,ya._)`${e}, ${t}, ${n}${i}`:t,d=[[ey.default.instancePath,(0,ya.strConcat)(ey.default.instancePath,a)],[ey.default.parentData,s.parentData],[ey.default.parentDataProperty,s.parentDataProperty],[ey.default.rootData,ey.default.rootData]];s.opts.dynamicRef&&d.push([ey.default.dynamicAnchors,ey.default.dynamicAnchors]);let h=(0,ya._)`${f}, ${r.object(...d)}`;return c!==ya.nil?(0,ya._)`${o}.call(${c}, ${h})`:(0,ya._)`${o}(${h})`}ki.callValidateCode=qDr;var LDr=(0,ya._)`new RegExp`;function $Dr({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:i}=t.code,a=i(r,n);return e.scopeValue("pattern",{key:a.toString(),ref:a,code:(0,ya._)`${i.code==="new RegExp"?LDr:(0,PDr.useFunc)(e,i)}(${r}, ${n})`})}ki.usePattern=$Dr;function BDr(e){let{gen:t,data:r,keyword:n,it:i}=e,a=t.name("valid");if(i.allErrors){let o=t.let("valid",!0);return s(()=>t.assign(o,!1)),o}return t.var(a,!0),s(()=>t.break()),a;function s(o){let c=t.const("len",(0,ya._)`${r}.length`);t.forRange("i",0,c,p=>{e.subschema({keyword:n,dataProp:p,dataPropType:Kye.Type.Num},a),t.if((0,ya.not)(a),o)})}}ki.validateArray=BDr;function MDr(e){let{gen:t,schema:r,keyword:n,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,Kye.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let s=t.let("valid",!1),o=t.name("_valid");t.block(()=>r.forEach((c,p)=>{let f=e.subschema({keyword:n,schemaProp:p,compositeRule:!0},o);t.assign(s,(0,ya._)`${s} || ${o}`),e.mergeValidEvaluated(f,o)||t.if((0,ya.not)(s))})),e.result(s,()=>e.reset(),()=>e.error(!0))}ki.validateUnion=MDr});var mgt=b(Kh=>{"use strict";Object.defineProperty(Kh,"__esModule",{value:!0});Kh.validateKeywordUsage=Kh.validSchemaType=Kh.funcKeywordCode=Kh.macroKeywordCode=void 0;var lc=sn(),p_=m0(),UDr=Bp(),zDr=AO();function HDr(e,t){let{gen:r,keyword:n,schema:i,parentSchema:a,it:s}=e,o=t.macro.call(s.self,i,a,s),c=hgt(r,n,o);s.opts.validateSchema!==!1&&s.self.validateSchema(o,!0);let p=r.name("valid");e.subschema({schema:o,schemaPath:lc.nil,errSchemaPath:`${s.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},p),e.pass(p,()=>e.error(!0))}Kh.macroKeywordCode=HDr;function VDr(e,t){var r;let{gen:n,keyword:i,schema:a,parentSchema:s,$data:o,it:c}=e;WDr(c,t);let p=!o&&t.compile?t.compile.call(c.self,a,s,c):t.validate,f=hgt(n,i,p),d=n.let("valid");e.block$data(d,h),e.ok((r=t.valid)!==null&&r!==void 0?r:d);function h(){if(t.errors===!1)y(),t.modifying&&dgt(e),_(()=>e.error());else{let x=t.async?g():v();t.modifying&&dgt(e),_(()=>GDr(e,x))}}function g(){let x=n.let("ruleErrs",null);return n.try(()=>y((0,lc._)`await `),A=>n.assign(d,!1).if((0,lc._)`${A} instanceof ${c.ValidationError}`,()=>n.assign(x,(0,lc._)`${A}.errors`),()=>n.throw(A))),x}function v(){let x=(0,lc._)`${f}.errors`;return n.assign(x,null),y(lc.nil),x}function y(x=t.async?(0,lc._)`await `:lc.nil){let A=c.opts.passContext?p_.default.this:p_.default.self,D=!("compile"in t&&!o||t.schema===!1);n.assign(d,(0,lc._)`${x}${(0,UDr.callValidateCode)(e,f,A,D)}`,t.modifying)}function _(x){var A;n.if((0,lc.not)((A=t.valid)!==null&&A!==void 0?A:d),x)}}Kh.funcKeywordCode=VDr;function dgt(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,lc._)`${n.parentData}[${n.parentDataProperty}]`))}function GDr(e,t){let{gen:r}=e;r.if((0,lc._)`Array.isArray(${t})`,()=>{r.assign(p_.default.vErrors,(0,lc._)`${p_.default.vErrors} === null ? ${t} : ${p_.default.vErrors}.concat(${t})`).assign(p_.default.errors,(0,lc._)`${p_.default.vErrors}.length`),(0,zDr.extendErrors)(e)},()=>e.error())}function WDr({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function hgt(e,t,r){if(r===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,lc.stringify)(r)})}function KDr(e,t,r=!1){return!t.length||t.some(n=>n==="array"?Array.isArray(e):n==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==n||r&&typeof e>"u")}Kh.validSchemaType=KDr;function YDr({schema:e,opts:t,self:r,errSchemaPath:n},i,a){if(Array.isArray(i.keyword)?!i.keyword.includes(a):i.keyword!==a)throw new Error("ajv implementation error");let s=i.dependencies;if(s?.some(o=>!Object.prototype.hasOwnProperty.call(e,o)))throw new Error(`parent schema must have dependencies of ${a}: ${s.join(",")}`);if(i.validateSchema&&!i.validateSchema(e[a])){let c=`keyword "${a}" value is invalid at path "${n}": `+r.errorsText(i.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Kh.validateKeywordUsage=YDr});var vgt=b(ty=>{"use strict";Object.defineProperty(ty,"__esModule",{value:!0});ty.extendSubschemaMode=ty.extendSubschemaData=ty.getSubschema=void 0;var Yh=sn(),ggt=Vn();function JDr(e,{keyword:t,schemaProp:r,schema:n,schemaPath:i,errSchemaPath:a,topSchemaRef:s}){if(t!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let o=e.schema[t];return r===void 0?{schema:o,schemaPath:(0,Yh._)`${e.schemaPath}${(0,Yh.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:o[r],schemaPath:(0,Yh._)`${e.schemaPath}${(0,Yh.getProperty)(t)}${(0,Yh.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,ggt.escapeFragment)(r)}`}}if(n!==void 0){if(i===void 0||a===void 0||s===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:i,topSchemaRef:s,errSchemaPath:a}}throw new Error('either "keyword" or "schema" must be passed')}ty.getSubschema=JDr;function XDr(e,t,{dataProp:r,dataPropType:n,data:i,dataTypes:a,propertyName:s}){if(i!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:o}=t;if(r!==void 0){let{errorPath:p,dataPathArr:f,opts:d}=t,h=o.let("data",(0,Yh._)`${t.data}${(0,Yh.getProperty)(r)}`,!0);c(h),e.errorPath=(0,Yh.str)`${p}${(0,ggt.getErrorPath)(r,n,d.jsPropertySyntax)}`,e.parentDataProperty=(0,Yh._)`${r}`,e.dataPathArr=[...f,e.parentDataProperty]}if(i!==void 0){let p=i instanceof Yh.Name?i:o.let("data",i,!0);c(p),s!==void 0&&(e.propertyName=s)}a&&(e.dataTypes=a);function c(p){e.data=p,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,p]}}ty.extendSubschemaData=XDr;function QDr(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:i,allErrors:a}){n!==void 0&&(e.compositeRule=n),i!==void 0&&(e.createErrors=i),a!==void 0&&(e.allErrors=a),e.jtdDiscriminator=t,e.jtdMetadata=r}ty.extendSubschemaMode=QDr});var bgt=b((lhn,ygt)=>{"use strict";var ry=ygt.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},i=r.post||function(){};TM(t,n,i,e,"",e)};ry.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};ry.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};ry.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};ry.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function TM(e,t,r,n,i,a,s,o,c,p){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,i,a,s,o,c,p);for(var f in n){var d=n[f];if(Array.isArray(d)){if(f in ry.arrayKeywords)for(var h=0;h<d.length;h++)TM(e,t,r,d[h],i+"/"+f+"/"+h,a,i,f,n,h)}else if(f in ry.propsKeywords){if(d&&typeof d=="object")for(var g in d)TM(e,t,r,d[g],i+"/"+f+"/"+ZDr(g),a,i,f,n,g)}else(f in ry.keywords||e.allKeys&&!(f in ry.skipKeywords))&&TM(e,t,r,d,i+"/"+f,a,i,f,n)}r(n,i,a,s,o,c,p)}}function ZDr(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var OO=b(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});Wc.getSchemaRefs=Wc.resolveUrl=Wc.normalizeId=Wc._getFullPath=Wc.getFullPath=Wc.inlineRef=void 0;var eCr=Vn(),tCr=kg(),rCr=bgt(),nCr=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function iCr(e,t=!0){return typeof e=="boolean"?!0:t===!0?!Xye(e):t?wgt(e)<=t:!1}Wc.inlineRef=iCr;var aCr=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Xye(e){for(let t in e){if(aCr.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(Xye)||typeof r=="object"&&Xye(r))return!0}return!1}function wgt(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!nCr.has(r)&&(typeof e[r]=="object"&&(0,eCr.eachItem)(e[r],n=>t+=wgt(n)),t===1/0))return 1/0}return t}function _gt(e,t="",r){r!==!1&&(t=xx(t));let n=e.parse(t);return xgt(e,n)}Wc.getFullPath=_gt;function xgt(e,t){return e.serialize(t).split("#")[0]+"#"}Wc._getFullPath=xgt;var sCr=/#\/?$/;function xx(e){return e?e.replace(sCr,""):""}Wc.normalizeId=xx;function oCr(e,t,r){return r=xx(r),e.resolve(t,r)}Wc.resolveUrl=oCr;var uCr=/^[a-z_][-a-z0-9._]*$/i;function cCr(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,i=xx(e[r]||t),a={"":i},s=_gt(n,i,!1),o={},c=new Set;return rCr(e,{allKeys:!0},(d,h,g,v)=>{if(v===void 0)return;let y=s+h,_=a[v];typeof d[r]=="string"&&(_=x.call(this,d[r])),A.call(this,d.$anchor),A.call(this,d.$dynamicAnchor),a[h]=_;function x(D){let j=this.opts.uriResolver.resolve;if(D=xx(_?j(_,D):D),c.has(D))throw f(D);c.add(D);let H=this.refs[D];return typeof H=="string"&&(H=this.refs[H]),typeof H=="object"?p(d,H.schema,D):D!==xx(y)&&(D[0]==="#"?(p(d,o[D],D),o[D]=d):this.refs[D]=y),D}function A(D){if(typeof D=="string"){if(!uCr.test(D))throw new Error(`invalid anchor "${D}"`);x.call(this,`#${D}`)}}}),o;function p(d,h,g){if(h!==void 0&&!tCr(d,h))throw f(g)}function f(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Wc.getSchemaRefs=cCr});var PO=b(ny=>{"use strict";Object.defineProperty(ny,"__esModule",{value:!0});ny.getData=ny.KeywordCxt=ny.validateFunctionCode=void 0;var Tgt=ngt(),Egt=TO(),Zye=Hye(),OM=TO(),lCr=lgt(),CO=mgt(),Qye=vgt(),wr=sn(),Ur=m0(),pCr=OO(),g0=Vn(),DO=AO();function fCr(e){if(Cgt(e)&&(Pgt(e),Dgt(e))){mCr(e);return}Ogt(e,()=>(0,Tgt.topBoolOrEmptySchema)(e))}ny.validateFunctionCode=fCr;function Ogt({gen:e,validateName:t,schema:r,schemaEnv:n,opts:i},a){i.code.es5?e.func(t,(0,wr._)`${Ur.default.data}, ${Ur.default.valCxt}`,n.$async,()=>{e.code((0,wr._)`"use strict"; ${Sgt(r,i)}`),hCr(e,i),e.code(a)}):e.func(t,(0,wr._)`${Ur.default.data}, ${dCr(i)}`,n.$async,()=>e.code(Sgt(r,i)).code(a))}function dCr(e){return(0,wr._)`{${Ur.default.instancePath}="", ${Ur.default.parentData}, ${Ur.default.parentDataProperty}, ${Ur.default.rootData}=${Ur.default.data}${e.dynamicRef?(0,wr._)`, ${Ur.default.dynamicAnchors}={}`:wr.nil}}={}`}function hCr(e,t){e.if(Ur.default.valCxt,()=>{e.var(Ur.default.instancePath,(0,wr._)`${Ur.default.valCxt}.${Ur.default.instancePath}`),e.var(Ur.default.parentData,(0,wr._)`${Ur.default.valCxt}.${Ur.default.parentData}`),e.var(Ur.default.parentDataProperty,(0,wr._)`${Ur.default.valCxt}.${Ur.default.parentDataProperty}`),e.var(Ur.default.rootData,(0,wr._)`${Ur.default.valCxt}.${Ur.default.rootData}`),t.dynamicRef&&e.var(Ur.default.dynamicAnchors,(0,wr._)`${Ur.default.valCxt}.${Ur.default.dynamicAnchors}`)},()=>{e.var(Ur.default.instancePath,(0,wr._)`""`),e.var(Ur.default.parentData,(0,wr._)`undefined`),e.var(Ur.default.parentDataProperty,(0,wr._)`undefined`),e.var(Ur.default.rootData,Ur.default.data),t.dynamicRef&&e.var(Ur.default.dynamicAnchors,(0,wr._)`{}`)})}function mCr(e){let{schema:t,opts:r,gen:n}=e;Ogt(e,()=>{r.$comment&&t.$comment&&Rgt(e),wCr(e),n.let(Ur.default.vErrors,null),n.let(Ur.default.errors,0),r.unevaluated&&gCr(e),Igt(e),ECr(e)})}function gCr(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,wr._)`${r}.evaluated`),t.if((0,wr._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,wr._)`${e.evaluated}.props`,(0,wr._)`undefined`)),t.if((0,wr._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,wr._)`${e.evaluated}.items`,(0,wr._)`undefined`))}function Sgt(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,wr._)`/*# sourceURL=${r} */`:wr.nil}function vCr(e,t){if(Cgt(e)&&(Pgt(e),Dgt(e))){yCr(e,t);return}(0,Tgt.boolOrEmptySchema)(e,t)}function Dgt({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let r in e)if(t.RULES.all[r])return!0;return!1}function Cgt(e){return typeof e.schema!="boolean"}function yCr(e,t){let{schema:r,gen:n,opts:i}=e;i.$comment&&r.$comment&&Rgt(e),_Cr(e),xCr(e);let a=n.const("_errs",Ur.default.errors);Igt(e,a),n.var(t,(0,wr._)`${a} === ${Ur.default.errors}`)}function Pgt(e){(0,g0.checkUnknownRules)(e),bCr(e)}function Igt(e,t){if(e.opts.jtd)return kgt(e,[],!1,t);let r=(0,Egt.getSchemaTypes)(e.schema),n=(0,Egt.coerceAndCheckDataType)(e,r);kgt(e,r,!n,t)}function bCr(e){let{schema:t,errSchemaPath:r,opts:n,self:i}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,g0.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function wCr(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,g0.checkStrictMode)(e,"default is ignored in the schema root")}function _Cr(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,pCr.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function xCr(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function Rgt({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:i}){let a=r.$comment;if(i.$comment===!0)e.code((0,wr._)`${Ur.default.self}.logger.log(${a})`);else if(typeof i.$comment=="function"){let s=(0,wr.str)`${n}/$comment`,o=e.scopeValue("root",{ref:t.root});e.code((0,wr._)`${Ur.default.self}.opts.$comment(${a}, ${s}, ${o}.schema)`)}}function ECr(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:i,opts:a}=e;r.$async?t.if((0,wr._)`${Ur.default.errors} === 0`,()=>t.return(Ur.default.data),()=>t.throw((0,wr._)`new ${i}(${Ur.default.vErrors})`)):(t.assign((0,wr._)`${n}.errors`,Ur.default.vErrors),a.unevaluated&&SCr(e),t.return((0,wr._)`${Ur.default.errors} === 0`))}function SCr({gen:e,evaluated:t,props:r,items:n}){r instanceof wr.Name&&e.assign((0,wr._)`${t}.props`,r),n instanceof wr.Name&&e.assign((0,wr._)`${t}.items`,n)}function kgt(e,t,r,n){let{gen:i,schema:a,data:s,allErrors:o,opts:c,self:p}=e,{RULES:f}=p;if(a.$ref&&(c.ignoreKeywordsWithRef||!(0,g0.schemaHasRulesButRef)(a,f))){i.block(()=>jgt(e,"$ref",f.all.$ref.definition));return}c.jtd||kCr(e,t),i.block(()=>{for(let h of f.rules)d(h);d(f.post)});function d(h){(0,Zye.shouldUseGroup)(a,h)&&(h.type?(i.if((0,OM.checkDataType)(h.type,s,c.strictNumbers)),Agt(e,h),t.length===1&&t[0]===h.type&&r&&(i.else(),(0,OM.reportTypeError)(e)),i.endIf()):Agt(e,h),o||i.if((0,wr._)`${Ur.default.errors} === ${n||0}`))}}function Agt(e,t){let{gen:r,schema:n,opts:{useDefaults:i}}=e;i&&(0,lCr.assignDefaults)(e,t.type),r.block(()=>{for(let a of t.rules)(0,Zye.shouldUseRule)(n,a)&&jgt(e,a.keyword,a.definition,t.type)})}function kCr(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(ACr(e,t),e.opts.allowUnionTypes||TCr(e,t),OCr(e,e.dataTypes))}function ACr(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{Fgt(e.dataTypes,r)||e2e(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),CCr(e,t)}}function TCr(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&e2e(e,"use allowUnionTypes to allow union type keyword")}function OCr(e,t){let r=e.self.RULES.all;for(let n in r){let i=r[n];if(typeof i=="object"&&(0,Zye.shouldUseRule)(e.schema,i)){let{type:a}=i.definition;a.length&&!a.some(s=>DCr(t,s))&&e2e(e,`missing type "${a.join(",")}" for keyword "${n}"`)}}}function DCr(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function Fgt(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function CCr(e,t){let r=[];for(let n of e.dataTypes)Fgt(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function e2e(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,g0.checkStrictMode)(e,t,e.opts.strictTypes)}var DM=class{constructor(t,r,n){if((0,CO.validateKeywordUsage)(t,r,n),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=n,this.data=t.data,this.schema=t.schema[n],this.$data=r.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,g0.schemaRefOrVal)(t,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=r,this.$data)this.schemaCode=t.gen.const("vSchema",Ngt(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,CO.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=t.gen.const("_errs",Ur.default.errors))}result(t,r,n){this.failResult((0,wr.not)(t),r,n)}failResult(t,r,n){this.gen.if(t),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,wr.not)(t),void 0,r)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:r}=this;this.fail((0,wr._)`${r} !== undefined && (${(0,wr.or)(this.invalid$data(),t)})`)}error(t,r,n){if(r){this.setParams(r),this._error(t,n),this.setParams({});return}this._error(t,n)}_error(t,r){(t?DO.reportExtraError:DO.reportError)(this,this.def.error,r)}$dataError(){(0,DO.reportError)(this,this.def.$dataError||DO.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,DO.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,n=wr.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=wr.nil,r=wr.nil){if(!this.$data)return;let{gen:n,schemaCode:i,schemaType:a,def:s}=this;n.if((0,wr.or)((0,wr._)`${i} === undefined`,r)),t!==wr.nil&&n.assign(t,!0),(a.length||s.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==wr.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:i,it:a}=this;return(0,wr.or)(s(),o());function s(){if(n.length){if(!(r instanceof wr.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,wr._)`${(0,OM.checkDataTypes)(c,r,a.opts.strictNumbers,OM.DataType.Wrong)}`}return wr.nil}function o(){if(i.validateSchema){let c=t.scopeValue("validate$data",{ref:i.validateSchema});return(0,wr._)`!${c}(${r})`}return wr.nil}}subschema(t,r){let n=(0,Qye.getSubschema)(this.it,t);(0,Qye.extendSubschemaData)(n,this.it,t),(0,Qye.extendSubschemaMode)(n,t);let i={...this.it,...n,items:void 0,props:void 0};return vCr(i,r),i}mergeEvaluated(t,r){let{it:n,gen:i}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=g0.mergeEvaluated.props(i,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=g0.mergeEvaluated.items(i,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:i}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return i.if(r,()=>this.mergeEvaluated(t,wr.Name)),!0}};ny.KeywordCxt=DM;function jgt(e,t,r,n){let i=new DM(e,r,t);"code"in r?r.code(i,n):i.$data&&r.validate?(0,CO.funcKeywordCode)(i,r):"macro"in r?(0,CO.macroKeywordCode)(i,r):(r.compile||r.validate)&&(0,CO.funcKeywordCode)(i,r)}var PCr=/^\/(?:[^~]|~0|~1)*$/,ICr=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Ngt(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let i,a;if(e==="")return Ur.default.rootData;if(e[0]==="/"){if(!PCr.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,a=Ur.default.rootData}else{let p=ICr.exec(e);if(!p)throw new Error(`Invalid JSON-pointer: ${e}`);let f=+p[1];if(i=p[2],i==="#"){if(f>=t)throw new Error(c("property/index",f));return n[t-f]}if(f>t)throw new Error(c("data",f));if(a=r[t-f],!i)return a}let s=a,o=i.split("/");for(let p of o)p&&(a=(0,wr._)`${a}${(0,wr.getProperty)((0,g0.unescapeJsonPointer)(p))}`,s=(0,wr._)`${s} && ${a}`);return s;function c(p,f){return`Cannot access ${p} ${f} levels up, current level is ${t}`}}ny.getData=Ngt});var CM=b(r2e=>{"use strict";Object.defineProperty(r2e,"__esModule",{value:!0});var t2e=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};r2e.default=t2e});var IO=b(a2e=>{"use strict";Object.defineProperty(a2e,"__esModule",{value:!0});var n2e=OO(),i2e=class extends Error{constructor(t,r,n,i){super(i||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,n2e.resolveUrl)(t,r,n),this.missingSchema=(0,n2e.normalizeId)((0,n2e.getFullPath)(t,this.missingRef))}};a2e.default=i2e});var IM=b(Mp=>{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});Mp.resolveSchema=Mp.getCompilingSchema=Mp.resolveRef=Mp.compileSchema=Mp.SchemaEnv=void 0;var hd=sn(),RCr=CM(),f_=m0(),md=OO(),qgt=Vn(),FCr=PO(),Ex=class{constructor(t){var r;this.refs={},this.dynamicAnchors={};let n;typeof t.schema=="object"&&(n=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(r=t.baseId)!==null&&r!==void 0?r:(0,md.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};Mp.SchemaEnv=Ex;function o2e(e){let t=Lgt.call(this,e);if(t)return t;let r=(0,md.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:i}=this.opts.code,{ownProperties:a}=this.opts,s=new hd.CodeGen(this.scope,{es5:n,lines:i,ownProperties:a}),o;e.$async&&(o=s.scopeValue("Error",{ref:RCr.default,code:(0,hd._)`require("ajv/dist/runtime/validation_error").default`}));let c=s.scopeName("validate");e.validateName=c;let p={gen:s,allErrors:this.opts.allErrors,data:f_.default.data,parentData:f_.default.parentData,parentDataProperty:f_.default.parentDataProperty,dataNames:[f_.default.data],dataPathArr:[hd.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:s.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,hd.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:o,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:hd.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,hd._)`""`,opts:this.opts,self:this},f;try{this._compilations.add(e),(0,FCr.validateFunctionCode)(p),s.optimize(this.opts.code.optimize);let d=s.toString();f=`${s.scopeRefs(f_.default.scope)}return ${d}`,this.opts.code.process&&(f=this.opts.code.process(f,e));let g=new Function(`${f_.default.self}`,`${f_.default.scope}`,f)(this,this.scope.get());if(this.scope.value(c,{ref:g}),g.errors=null,g.schema=e.schema,g.schemaEnv=e,e.$async&&(g.$async=!0),this.opts.code.source===!0&&(g.source={validateName:c,validateCode:d,scopeValues:s._values}),this.opts.unevaluated){let{props:v,items:y}=p;g.evaluated={props:v instanceof hd.Name?void 0:v,items:y instanceof hd.Name?void 0:y,dynamicProps:v instanceof hd.Name,dynamicItems:y instanceof hd.Name},g.source&&(g.source.evaluated=(0,hd.stringify)(g.evaluated))}return e.validate=g,e}catch(d){throw delete e.validate,delete e.validateName,f&&this.logger.error("Error compiling schema, function code:",f),d}finally{this._compilations.delete(e)}}Mp.compileSchema=o2e;function jCr(e,t,r){var n;r=(0,md.resolveUrl)(this.opts.uriResolver,t,r);let i=e.refs[r];if(i)return i;let a=LCr.call(this,e,r);if(a===void 0){let s=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:o}=this.opts;s&&(a=new Ex({schema:s,schemaId:o,root:e,baseId:t}))}if(a!==void 0)return e.refs[r]=NCr.call(this,a)}Mp.resolveRef=jCr;function NCr(e){return(0,md.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:o2e.call(this,e)}function Lgt(e){for(let t of this._compilations)if(qCr(t,e))return t}Mp.getCompilingSchema=Lgt;function qCr(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function LCr(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||PM.call(this,e,t)}function PM(e,t){let r=this.opts.uriResolver.parse(t),n=(0,md._getFullPath)(this.opts.uriResolver,r),i=(0,md.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===i)return s2e.call(this,r,e);let a=(0,md.normalizeId)(n),s=this.refs[a]||this.schemas[a];if(typeof s=="string"){let o=PM.call(this,e,s);return typeof o?.schema!="object"?void 0:s2e.call(this,r,o)}if(typeof s?.schema=="object"){if(s.validate||o2e.call(this,s),a===(0,md.normalizeId)(t)){let{schema:o}=s,{schemaId:c}=this.opts,p=o[c];return p&&(i=(0,md.resolveUrl)(this.opts.uriResolver,i,p)),new Ex({schema:o,schemaId:c,root:e,baseId:i})}return s2e.call(this,r,s)}}Mp.resolveSchema=PM;var $Cr=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function s2e(e,{baseId:t,schema:r,root:n}){var i;if(((i=e.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let o of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,qgt.unescapeFragment)(o)];if(c===void 0)return;r=c;let p=typeof r=="object"&&r[this.opts.schemaId];!$Cr.has(o)&&p&&(t=(0,md.resolveUrl)(this.opts.uriResolver,t,p))}let a;if(typeof r!="boolean"&&r.$ref&&!(0,qgt.schemaHasRulesButRef)(r,this.RULES)){let o=(0,md.resolveUrl)(this.opts.uriResolver,t,r.$ref);a=PM.call(this,n,o)}let{schemaId:s}=this.opts;if(a=a||new Ex({schema:r,schemaId:s,root:n,baseId:t}),a.schema!==a.root.schema)return a}});var $gt=b((ghn,BCr)=>{BCr.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var Mgt=b(u2e=>{"use strict";Object.defineProperty(u2e,"__esModule",{value:!0});var Bgt=kve();Bgt.code='require("ajv/dist/runtime/uri").default';u2e.default=Bgt});var Ygt=b(Xo=>{"use strict";Object.defineProperty(Xo,"__esModule",{value:!0});Xo.CodeGen=Xo.Name=Xo.nil=Xo.stringify=Xo.str=Xo._=Xo.KeywordCxt=void 0;var MCr=PO();Object.defineProperty(Xo,"KeywordCxt",{enumerable:!0,get:function(){return MCr.KeywordCxt}});var Sx=sn();Object.defineProperty(Xo,"_",{enumerable:!0,get:function(){return Sx._}});Object.defineProperty(Xo,"str",{enumerable:!0,get:function(){return Sx.str}});Object.defineProperty(Xo,"stringify",{enumerable:!0,get:function(){return Sx.stringify}});Object.defineProperty(Xo,"nil",{enumerable:!0,get:function(){return Sx.nil}});Object.defineProperty(Xo,"Name",{enumerable:!0,get:function(){return Sx.Name}});Object.defineProperty(Xo,"CodeGen",{enumerable:!0,get:function(){return Sx.CodeGen}});var UCr=CM(),Ggt=IO(),zCr=zye(),RO=IM(),HCr=sn(),FO=OO(),RM=TO(),l2e=Vn(),Ugt=$gt(),VCr=Mgt(),Wgt=(e,t)=>new RegExp(e,t);Wgt.code="new RegExp";var GCr=["removeAdditional","useDefaults","coerceTypes"],WCr=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),KCr={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},YCr={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},zgt=200;function JCr(e){var t,r,n,i,a,s,o,c,p,f,d,h,g,v,y,_,x,A,D,j,H,F,z,P,M;let K=e.strict,L=(t=e.code)===null||t===void 0?void 0:t.optimize,ve=L===!0||L===void 0?1:L||0,U=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:Wgt,N=(i=e.uriResolver)!==null&&i!==void 0?i:VCr.default;return{strictSchema:(s=(a=e.strictSchema)!==null&&a!==void 0?a:K)!==null&&s!==void 0?s:!0,strictNumbers:(c=(o=e.strictNumbers)!==null&&o!==void 0?o:K)!==null&&c!==void 0?c:!0,strictTypes:(f=(p=e.strictTypes)!==null&&p!==void 0?p:K)!==null&&f!==void 0?f:"log",strictTuples:(h=(d=e.strictTuples)!==null&&d!==void 0?d:K)!==null&&h!==void 0?h:"log",strictRequired:(v=(g=e.strictRequired)!==null&&g!==void 0?g:K)!==null&&v!==void 0?v:!1,code:e.code?{...e.code,optimize:ve,regExp:U}:{optimize:ve,regExp:U},loopRequired:(y=e.loopRequired)!==null&&y!==void 0?y:zgt,loopEnum:(_=e.loopEnum)!==null&&_!==void 0?_:zgt,meta:(x=e.meta)!==null&&x!==void 0?x:!0,messages:(A=e.messages)!==null&&A!==void 0?A:!0,inlineRefs:(D=e.inlineRefs)!==null&&D!==void 0?D:!0,schemaId:(j=e.schemaId)!==null&&j!==void 0?j:"$id",addUsedSchema:(H=e.addUsedSchema)!==null&&H!==void 0?H:!0,validateSchema:(F=e.validateSchema)!==null&&F!==void 0?F:!0,validateFormats:(z=e.validateFormats)!==null&&z!==void 0?z:!0,unicodeRegExp:(P=e.unicodeRegExp)!==null&&P!==void 0?P:!0,int32range:(M=e.int32range)!==null&&M!==void 0?M:!0,uriResolver:N}}var jO=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...JCr(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new HCr.ValueScope({scope:{},prefixes:WCr,es5:r,lines:n}),this.logger=rPr(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,zCr.getRules)(),Hgt.call(this,KCr,t,"NOT SUPPORTED"),Hgt.call(this,YCr,t,"DEPRECATED","warn"),this._metaOpts=ePr.call(this),t.formats&&QCr.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&ZCr.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),XCr.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,i=Ugt;n==="id"&&(i={...Ugt},i.id=i.$id,delete i.$id),r&&t&&this.addMetaSchema(i,i[n],!1)}defaultMeta(){let{meta:t,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[r]||t:void 0}validate(t,r){let n;if(typeof t=="string"){if(n=this.getSchema(t),!n)throw new Error(`no schema with key or ref "${t}"`)}else n=this.compile(t);let i=n(r);return"$async"in n||(this.errors=n.errors),i}compile(t,r){let n=this._addSchema(t,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(t,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return i.call(this,t,r);async function i(f,d){await a.call(this,f.$schema);let h=this._addSchema(f,d);return h.validate||s.call(this,h)}async function a(f){f&&!this.getSchema(f)&&await i.call(this,{$ref:f},!0)}async function s(f){try{return this._compileSchemaEnv(f)}catch(d){if(!(d instanceof Ggt.default))throw d;return o.call(this,d),await c.call(this,d.missingSchema),s.call(this,f)}}function o({missingSchema:f,missingRef:d}){if(this.refs[f])throw new Error(`AnySchema ${f} is loaded but ${d} cannot be resolved`)}async function c(f){let d=await p.call(this,f);this.refs[f]||await a.call(this,d.$schema),this.refs[f]||this.addSchema(d,f,r)}async function p(f){let d=this._loading[f];if(d)return d;try{return await(this._loading[f]=n(f))}finally{delete this._loading[f]}}}addSchema(t,r,n,i=this.opts.validateSchema){if(Array.isArray(t)){for(let s of t)this.addSchema(s,void 0,n,i);return this}let a;if(typeof t=="object"){let{schemaId:s}=this.opts;if(a=t[s],a!==void 0&&typeof a!="string")throw new Error(`schema ${s} must be string`)}return r=(0,FO.normalizeId)(r||a),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,i,!0),this}addMetaSchema(t,r,n=this.opts.validateSchema){return this.addSchema(t,r,!0,n),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let n;if(n=t.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let i=this.validate(n,t);if(!i&&r){let a="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(a);else throw new Error(a)}return i}getSchema(t){let r;for(;typeof(r=Vgt.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,i=new RO.SchemaEnv({schema:{},schemaId:n});if(r=RO.resolveSchema.call(this,i,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=Vgt.call(this,t);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let r=t;this._cache.delete(r);let n=t[this.opts.schemaId];return n&&(n=(0,FO.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let r of t)this.addKeyword(r);return this}addKeyword(t,r){let n;if(typeof t=="string")n=t,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof t=="object"&&r===void 0){if(r=t,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(iPr.call(this,n,r),!r)return(0,l2e.eachItem)(n,a=>c2e.call(this,a)),this;sPr.call(this,r);let i={...r,type:(0,RM.getJSONTypes)(r.type),schemaType:(0,RM.getJSONTypes)(r.schemaType)};return(0,l2e.eachItem)(n,i.type.length===0?a=>c2e.call(this,a,i):a=>i.type.forEach(s=>c2e.call(this,a,i,s))),this}getKeyword(t){let r=this.RULES.all[t];return typeof r=="object"?r.definition:!!r}removeKeyword(t){let{RULES:r}=this;delete r.keywords[t],delete r.all[t];for(let n of r.rules){let i=n.rules.findIndex(a=>a.keyword===t);i>=0&&n.rules.splice(i,1)}return this}addFormat(t,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[t]=r,this}errorsText(t=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!t||t.length===0?"No errors":t.map(i=>`${n}${i.instancePath} ${i.message}`).reduce((i,a)=>i+r+a)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let i of r){let a=i.split("/").slice(1),s=t;for(let o of a)s=s[o];for(let o in n){let c=n[o];if(typeof c!="object")continue;let{$data:p}=c.definition,f=s[o];p&&f&&(s[o]=Kgt(f))}}return t}_removeAllSchemas(t,r){for(let n in t){let i=t[n];(!r||r.test(n))&&(typeof i=="string"?delete t[n]:i&&!i.meta&&(this._cache.delete(i.schema),delete t[n]))}}_addSchema(t,r,n,i=this.opts.validateSchema,a=this.opts.addUsedSchema){let s,{schemaId:o}=this.opts;if(typeof t=="object")s=t[o];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(t);if(c!==void 0)return c;n=(0,FO.normalizeId)(s||n);let p=FO.getSchemaRefs.call(this,t,n);return c=new RO.SchemaEnv({schema:t,schemaId:o,meta:r,baseId:n,localRefs:p}),this._cache.set(c.schema,c),a&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),i&&this.validateSchema(t,!0),c}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):RO.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let r=this.opts;this.opts=this._metaOpts;try{RO.compileSchema.call(this,t)}finally{this.opts=r}}};jO.ValidationError=UCr.default;jO.MissingRefError=Ggt.default;Xo.default=jO;function Hgt(e,t,r,n="error"){for(let i in e){let a=i;a in t&&this.logger[n](`${r}: option ${i}. ${e[a]}`)}}function Vgt(e){return e=(0,FO.normalizeId)(e),this.schemas[e]||this.refs[e]}function XCr(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function QCr(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function ZCr(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}function ePr(){let e={...this.opts};for(let t of GCr)delete e[t];return e}var tPr={log(){},warn(){},error(){}};function rPr(e){if(e===!1)return tPr;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var nPr=/^[a-z_$][a-z0-9_$:-]*$/i;function iPr(e,t){let{RULES:r}=this;if((0,l2e.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!nPr.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function c2e(e,t,r){var n;let i=t?.post;if(r&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:a}=this,s=i?a.post:a.rules.find(({type:c})=>c===r);if(s||(s={type:r,rules:[]},a.rules.push(s)),a.keywords[e]=!0,!t)return;let o={keyword:e,definition:{...t,type:(0,RM.getJSONTypes)(t.type),schemaType:(0,RM.getJSONTypes)(t.schemaType)}};t.before?aPr.call(this,s,o,t.before):s.rules.push(o),a.all[e]=o,(n=t.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function aPr(e,t,r){let n=e.rules.findIndex(i=>i.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function sPr(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=Kgt(t)),e.validateSchema=this.compile(t,!0))}var oPr={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Kgt(e){return{anyOf:[e,oPr]}}});var Jgt=b(p2e=>{"use strict";Object.defineProperty(p2e,"__esModule",{value:!0});var uPr={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};p2e.default=uPr});var evt=b(d_=>{"use strict";Object.defineProperty(d_,"__esModule",{value:!0});d_.callRef=d_.getValidate=void 0;var cPr=IO(),Xgt=Bp(),Kc=sn(),kx=m0(),Qgt=IM(),FM=Vn(),lPr={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:i,schemaEnv:a,validateName:s,opts:o,self:c}=n,{root:p}=a;if((r==="#"||r==="#/")&&i===p.baseId)return d();let f=Qgt.resolveRef.call(c,p,i,r);if(f===void 0)throw new cPr.default(n.opts.uriResolver,i,r);if(f instanceof Qgt.SchemaEnv)return h(f);return g(f);function d(){if(a===p)return jM(e,s,a,a.$async);let v=t.scopeValue("root",{ref:p});return jM(e,(0,Kc._)`${v}.validate`,p,p.$async)}function h(v){let y=Zgt(e,v);jM(e,y,v,v.$async)}function g(v){let y=t.scopeValue("schema",o.code.source===!0?{ref:v,code:(0,Kc.stringify)(v)}:{ref:v}),_=t.name("valid"),x=e.subschema({schema:v,dataTypes:[],schemaPath:Kc.nil,topSchemaRef:y,errSchemaPath:r},_);e.mergeEvaluated(x),e.ok(_)}}};function Zgt(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,Kc._)`${r.scopeValue("wrapper",{ref:t})}.validate`}d_.getValidate=Zgt;function jM(e,t,r,n){let{gen:i,it:a}=e,{allErrors:s,schemaEnv:o,opts:c}=a,p=c.passContext?kx.default.this:Kc.nil;n?f():d();function f(){if(!o.$async)throw new Error("async schema referenced by sync schema");let v=i.let("valid");i.try(()=>{i.code((0,Kc._)`await ${(0,Xgt.callValidateCode)(e,t,p)}`),g(t),s||i.assign(v,!0)},y=>{i.if((0,Kc._)`!(${y} instanceof ${a.ValidationError})`,()=>i.throw(y)),h(y),s||i.assign(v,!1)}),e.ok(v)}function d(){e.result((0,Xgt.callValidateCode)(e,t,p),()=>g(t),()=>h(t))}function h(v){let y=(0,Kc._)`${v}.errors`;i.assign(kx.default.vErrors,(0,Kc._)`${kx.default.vErrors} === null ? ${y} : ${kx.default.vErrors}.concat(${y})`),i.assign(kx.default.errors,(0,Kc._)`${kx.default.vErrors}.length`)}function g(v){var y;if(!a.opts.unevaluated)return;let _=(y=r?.validate)===null||y===void 0?void 0:y.evaluated;if(a.props!==!0)if(_&&!_.dynamicProps)_.props!==void 0&&(a.props=FM.mergeEvaluated.props(i,_.props,a.props));else{let x=i.var("props",(0,Kc._)`${v}.evaluated.props`);a.props=FM.mergeEvaluated.props(i,x,a.props,Kc.Name)}if(a.items!==!0)if(_&&!_.dynamicItems)_.items!==void 0&&(a.items=FM.mergeEvaluated.items(i,_.items,a.items));else{let x=i.var("items",(0,Kc._)`${v}.evaluated.items`);a.items=FM.mergeEvaluated.items(i,x,a.items,Kc.Name)}}}d_.callRef=jM;d_.default=lPr});var tvt=b(f2e=>{"use strict";Object.defineProperty(f2e,"__esModule",{value:!0});var pPr=Jgt(),fPr=evt(),dPr=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",pPr.default,fPr.default];f2e.default=dPr});var rvt=b(d2e=>{"use strict";Object.defineProperty(d2e,"__esModule",{value:!0});var NM=sn(),iy=NM.operators,qM={maximum:{okStr:"<=",ok:iy.LTE,fail:iy.GT},minimum:{okStr:">=",ok:iy.GTE,fail:iy.LT},exclusiveMaximum:{okStr:"<",ok:iy.LT,fail:iy.GTE},exclusiveMinimum:{okStr:">",ok:iy.GT,fail:iy.LTE}},hPr={message:({keyword:e,schemaCode:t})=>(0,NM.str)`must be ${qM[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,NM._)`{comparison: ${qM[e].okStr}, limit: ${t}}`},mPr={keyword:Object.keys(qM),type:"number",schemaType:"number",$data:!0,error:hPr,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,NM._)`${r} ${qM[t].fail} ${n} || isNaN(${r})`)}};d2e.default=mPr});var nvt=b(h2e=>{"use strict";Object.defineProperty(h2e,"__esModule",{value:!0});var NO=sn(),gPr={message:({schemaCode:e})=>(0,NO.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,NO._)`{multipleOf: ${e}}`},vPr={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:gPr,code(e){let{gen:t,data:r,schemaCode:n,it:i}=e,a=i.opts.multipleOfPrecision,s=t.let("res"),o=a?(0,NO._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${a}`:(0,NO._)`${s} !== parseInt(${s})`;e.fail$data((0,NO._)`(${n} === 0 || (${s} = ${r}/${n}, ${o}))`)}};h2e.default=vPr});var avt=b(m2e=>{"use strict";Object.defineProperty(m2e,"__esModule",{value:!0});function ivt(e){let t=e.length,r=0,n=0,i;for(;n<t;)r++,i=e.charCodeAt(n++),i>=55296&&i<=56319&&n<t&&(i=e.charCodeAt(n),(i&64512)===56320&&n++);return r}m2e.default=ivt;ivt.code='require("ajv/dist/runtime/ucs2length").default'});var svt=b(g2e=>{"use strict";Object.defineProperty(g2e,"__esModule",{value:!0});var h_=sn(),yPr=Vn(),bPr=avt(),wPr={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,h_.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,h_._)`{limit: ${e}}`},_Pr={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:wPr,code(e){let{keyword:t,data:r,schemaCode:n,it:i}=e,a=t==="maxLength"?h_.operators.GT:h_.operators.LT,s=i.opts.unicode===!1?(0,h_._)`${r}.length`:(0,h_._)`${(0,yPr.useFunc)(e.gen,bPr.default)}(${r})`;e.fail$data((0,h_._)`${s} ${a} ${n}`)}};g2e.default=_Pr});var ovt=b(v2e=>{"use strict";Object.defineProperty(v2e,"__esModule",{value:!0});var xPr=Bp(),LM=sn(),EPr={message:({schemaCode:e})=>(0,LM.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,LM._)`{pattern: ${e}}`},SPr={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:EPr,code(e){let{data:t,$data:r,schema:n,schemaCode:i,it:a}=e,s=a.opts.unicodeRegExp?"u":"",o=r?(0,LM._)`(new RegExp(${i}, ${s}))`:(0,xPr.usePattern)(e,n);e.fail$data((0,LM._)`!${o}.test(${t})`)}};v2e.default=SPr});var uvt=b(y2e=>{"use strict";Object.defineProperty(y2e,"__esModule",{value:!0});var qO=sn(),kPr={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,qO.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,qO._)`{limit: ${e}}`},APr={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:kPr,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxProperties"?qO.operators.GT:qO.operators.LT;e.fail$data((0,qO._)`Object.keys(${r}).length ${i} ${n}`)}};y2e.default=APr});var cvt=b(b2e=>{"use strict";Object.defineProperty(b2e,"__esModule",{value:!0});var LO=Bp(),$O=sn(),TPr=Vn(),OPr={message:({params:{missingProperty:e}})=>(0,$O.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,$O._)`{missingProperty: ${e}}`},DPr={keyword:"required",type:"object",schemaType:"array",$data:!0,error:OPr,code(e){let{gen:t,schema:r,schemaCode:n,data:i,$data:a,it:s}=e,{opts:o}=s;if(!a&&r.length===0)return;let c=r.length>=o.loopRequired;if(s.allErrors?p():f(),o.strictRequired){let g=e.parentSchema.properties,{definedProperties:v}=e.it;for(let y of r)if(g?.[y]===void 0&&!v.has(y)){let _=s.schemaEnv.baseId+s.errSchemaPath,x=`required property "${y}" is not defined at "${_}" (strictRequired)`;(0,TPr.checkStrictMode)(s,x,s.opts.strictRequired)}}function p(){if(c||a)e.block$data($O.nil,d);else for(let g of r)(0,LO.checkReportMissingProp)(e,g)}function f(){let g=t.let("missing");if(c||a){let v=t.let("valid",!0);e.block$data(v,()=>h(g,v)),e.ok(v)}else t.if((0,LO.checkMissingProp)(e,r,g)),(0,LO.reportMissingProp)(e,g),t.else()}function d(){t.forOf("prop",n,g=>{e.setParams({missingProperty:g}),t.if((0,LO.noPropertyInData)(t,i,g,o.ownProperties),()=>e.error())})}function h(g,v){e.setParams({missingProperty:g}),t.forOf(g,n,()=>{t.assign(v,(0,LO.propertyInData)(t,i,g,o.ownProperties)),t.if((0,$O.not)(v),()=>{e.error(),t.break()})},$O.nil)}}};b2e.default=DPr});var lvt=b(w2e=>{"use strict";Object.defineProperty(w2e,"__esModule",{value:!0});var BO=sn(),CPr={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,BO.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,BO._)`{limit: ${e}}`},PPr={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:CPr,code(e){let{keyword:t,data:r,schemaCode:n}=e,i=t==="maxItems"?BO.operators.GT:BO.operators.LT;e.fail$data((0,BO._)`${r}.length ${i} ${n}`)}};w2e.default=PPr});var $M=b(_2e=>{"use strict";Object.defineProperty(_2e,"__esModule",{value:!0});var pvt=kg();pvt.code='require("ajv/dist/runtime/equal").default';_2e.default=pvt});var fvt=b(E2e=>{"use strict";Object.defineProperty(E2e,"__esModule",{value:!0});var x2e=TO(),Qo=sn(),IPr=Vn(),RPr=$M(),FPr={message:({params:{i:e,j:t}})=>(0,Qo.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Qo._)`{i: ${e}, j: ${t}}`},jPr={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:FPr,code(e){let{gen:t,data:r,$data:n,schema:i,parentSchema:a,schemaCode:s,it:o}=e;if(!n&&!i)return;let c=t.let("valid"),p=a.items?(0,x2e.getSchemaTypes)(a.items):[];e.block$data(c,f,(0,Qo._)`${s} === false`),e.ok(c);function f(){let v=t.let("i",(0,Qo._)`${r}.length`),y=t.let("j");e.setParams({i:v,j:y}),t.assign(c,!0),t.if((0,Qo._)`${v} > 1`,()=>(d()?h:g)(v,y))}function d(){return p.length>0&&!p.some(v=>v==="object"||v==="array")}function h(v,y){let _=t.name("item"),x=(0,x2e.checkDataTypes)(p,_,o.opts.strictNumbers,x2e.DataType.Wrong),A=t.const("indices",(0,Qo._)`{}`);t.for((0,Qo._)`;${v}--;`,()=>{t.let(_,(0,Qo._)`${r}[${v}]`),t.if(x,(0,Qo._)`continue`),p.length>1&&t.if((0,Qo._)`typeof ${_} == "string"`,(0,Qo._)`${_} += "_"`),t.if((0,Qo._)`typeof ${A}[${_}] == "number"`,()=>{t.assign(y,(0,Qo._)`${A}[${_}]`),e.error(),t.assign(c,!1).break()}).code((0,Qo._)`${A}[${_}] = ${v}`)})}function g(v,y){let _=(0,IPr.useFunc)(t,RPr.default),x=t.name("outer");t.label(x).for((0,Qo._)`;${v}--;`,()=>t.for((0,Qo._)`${y} = ${v}; ${y}--;`,()=>t.if((0,Qo._)`${_}(${r}[${v}], ${r}[${y}])`,()=>{e.error(),t.assign(c,!1).break(x)})))}}};E2e.default=jPr});var dvt=b(k2e=>{"use strict";Object.defineProperty(k2e,"__esModule",{value:!0});var S2e=sn(),NPr=Vn(),qPr=$M(),LPr={message:"must be equal to constant",params:({schemaCode:e})=>(0,S2e._)`{allowedValue: ${e}}`},$Pr={keyword:"const",$data:!0,error:LPr,code(e){let{gen:t,data:r,$data:n,schemaCode:i,schema:a}=e;n||a&&typeof a=="object"?e.fail$data((0,S2e._)`!${(0,NPr.useFunc)(t,qPr.default)}(${r}, ${i})`):e.fail((0,S2e._)`${a} !== ${r}`)}};k2e.default=$Pr});var hvt=b(A2e=>{"use strict";Object.defineProperty(A2e,"__esModule",{value:!0});var MO=sn(),BPr=Vn(),MPr=$M(),UPr={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,MO._)`{allowedValues: ${e}}`},zPr={keyword:"enum",schemaType:"array",$data:!0,error:UPr,code(e){let{gen:t,data:r,$data:n,schema:i,schemaCode:a,it:s}=e;if(!n&&i.length===0)throw new Error("enum must have non-empty array");let o=i.length>=s.opts.loopEnum,c,p=()=>c??(c=(0,BPr.useFunc)(t,MPr.default)),f;if(o||n)f=t.let("valid"),e.block$data(f,d);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let g=t.const("vSchema",a);f=(0,MO.or)(...i.map((v,y)=>h(g,y)))}e.pass(f);function d(){t.assign(f,!1),t.forOf("v",a,g=>t.if((0,MO._)`${p()}(${r}, ${g})`,()=>t.assign(f,!0).break()))}function h(g,v){let y=i[v];return typeof y=="object"&&y!==null?(0,MO._)`${p()}(${r}, ${g}[${v}])`:(0,MO._)`${r} === ${y}`}}};A2e.default=zPr});var mvt=b(T2e=>{"use strict";Object.defineProperty(T2e,"__esModule",{value:!0});var HPr=rvt(),VPr=nvt(),GPr=svt(),WPr=ovt(),KPr=uvt(),YPr=cvt(),JPr=lvt(),XPr=fvt(),QPr=dvt(),ZPr=hvt(),eIr=[HPr.default,VPr.default,GPr.default,WPr.default,KPr.default,YPr.default,JPr.default,XPr.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},QPr.default,ZPr.default];T2e.default=eIr});var D2e=b(UO=>{"use strict";Object.defineProperty(UO,"__esModule",{value:!0});UO.validateAdditionalItems=void 0;var m_=sn(),O2e=Vn(),tIr={message:({params:{len:e}})=>(0,m_.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,m_._)`{limit: ${e}}`},rIr={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:tIr,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,O2e.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}gvt(e,n)}};function gvt(e,t){let{gen:r,schema:n,data:i,keyword:a,it:s}=e;s.items=!0;let o=r.const("len",(0,m_._)`${i}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,m_._)`${o} <= ${t.length}`);else if(typeof n=="object"&&!(0,O2e.alwaysValidSchema)(s,n)){let p=r.var("valid",(0,m_._)`${o} <= ${t.length}`);r.if((0,m_.not)(p),()=>c(p)),e.ok(p)}function c(p){r.forRange("i",t.length,o,f=>{e.subschema({keyword:a,dataProp:f,dataPropType:O2e.Type.Num},p),s.allErrors||r.if((0,m_.not)(p),()=>r.break())})}}UO.validateAdditionalItems=gvt;UO.default=rIr});var C2e=b(zO=>{"use strict";Object.defineProperty(zO,"__esModule",{value:!0});zO.validateTuple=void 0;var vvt=sn(),BM=Vn(),nIr=Bp(),iIr={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return yvt(e,"additionalItems",t);r.items=!0,!(0,BM.alwaysValidSchema)(r,t)&&e.ok((0,nIr.validateArray)(e))}};function yvt(e,t,r=e.schema){let{gen:n,parentSchema:i,data:a,keyword:s,it:o}=e;f(i),o.opts.unevaluated&&r.length&&o.items!==!0&&(o.items=BM.mergeEvaluated.items(n,r.length,o.items));let c=n.name("valid"),p=n.const("len",(0,vvt._)`${a}.length`);r.forEach((d,h)=>{(0,BM.alwaysValidSchema)(o,d)||(n.if((0,vvt._)`${p} > ${h}`,()=>e.subschema({keyword:s,schemaProp:h,dataProp:h},c)),e.ok(c))});function f(d){let{opts:h,errSchemaPath:g}=o,v=r.length,y=v===d.minItems&&(v===d.maxItems||d[t]===!1);if(h.strictTuples&&!y){let _=`"${s}" is ${v}-tuple, but minItems or maxItems/${t} are not specified or different at path "${g}"`;(0,BM.checkStrictMode)(o,_,h.strictTuples)}}}zO.validateTuple=yvt;zO.default=iIr});var bvt=b(P2e=>{"use strict";Object.defineProperty(P2e,"__esModule",{value:!0});var aIr=C2e(),sIr={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,aIr.validateTuple)(e,"items")};P2e.default=sIr});var _vt=b(I2e=>{"use strict";Object.defineProperty(I2e,"__esModule",{value:!0});var wvt=sn(),oIr=Vn(),uIr=Bp(),cIr=D2e(),lIr={message:({params:{len:e}})=>(0,wvt.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,wvt._)`{limit: ${e}}`},pIr={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:lIr,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:i}=r;n.items=!0,!(0,oIr.alwaysValidSchema)(n,t)&&(i?(0,cIr.validateAdditionalItems)(e,i):e.ok((0,uIr.validateArray)(e)))}};I2e.default=pIr});var xvt=b(R2e=>{"use strict";Object.defineProperty(R2e,"__esModule",{value:!0});var Up=sn(),MM=Vn(),fIr={message:({params:{min:e,max:t}})=>t===void 0?(0,Up.str)`must contain at least ${e} valid item(s)`:(0,Up.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,Up._)`{minContains: ${e}}`:(0,Up._)`{minContains: ${e}, maxContains: ${t}}`},dIr={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:fIr,code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:a}=e,s,o,{minContains:c,maxContains:p}=n;a.opts.next?(s=c===void 0?1:c,o=p):s=1;let f=t.const("len",(0,Up._)`${i}.length`);if(e.setParams({min:s,max:o}),o===void 0&&s===0){(0,MM.checkStrictMode)(a,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(o!==void 0&&s>o){(0,MM.checkStrictMode)(a,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,MM.alwaysValidSchema)(a,r)){let y=(0,Up._)`${f} >= ${s}`;o!==void 0&&(y=(0,Up._)`${y} && ${f} <= ${o}`),e.pass(y);return}a.items=!0;let d=t.name("valid");o===void 0&&s===1?g(d,()=>t.if(d,()=>t.break())):s===0?(t.let(d,!0),o!==void 0&&t.if((0,Up._)`${i}.length > 0`,h)):(t.let(d,!1),h()),e.result(d,()=>e.reset());function h(){let y=t.name("_valid"),_=t.let("count",0);g(y,()=>t.if(y,()=>v(_)))}function g(y,_){t.forRange("i",0,f,x=>{e.subschema({keyword:"contains",dataProp:x,dataPropType:MM.Type.Num,compositeRule:!0},y),_()})}function v(y){t.code((0,Up._)`${y}++`),o===void 0?t.if((0,Up._)`${y} >= ${s}`,()=>t.assign(d,!0).break()):(t.if((0,Up._)`${y} > ${o}`,()=>t.assign(d,!1).break()),s===1?t.assign(d,!0):t.if((0,Up._)`${y} >= ${s}`,()=>t.assign(d,!0)))}}};R2e.default=dIr});var kvt=b(Jh=>{"use strict";Object.defineProperty(Jh,"__esModule",{value:!0});Jh.validateSchemaDeps=Jh.validatePropertyDeps=Jh.error=void 0;var F2e=sn(),hIr=Vn(),HO=Bp();Jh.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,F2e.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,F2e._)`{property: ${e},
    missingProperty: ${n},
    depsCount: ${t},
    deps: ${r}}`};var mIr={keyword:"dependencies",type:"object",schemaType:"object",error:Jh.error,code(e){let[t,r]=gIr(e);Evt(e,t),Svt(e,r)}};function gIr({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let i=Array.isArray(e[n])?t:r;i[n]=e[n]}return[t,r]}function Evt(e,t=e.schema){let{gen:r,data:n,it:i}=e;if(Object.keys(t).length===0)return;let a=r.let("missing");for(let s in t){let o=t[s];if(o.length===0)continue;let c=(0,HO.propertyInData)(r,n,s,i.opts.ownProperties);e.setParams({property:s,depsCount:o.length,deps:o.join(", ")}),i.allErrors?r.if(c,()=>{for(let p of o)(0,HO.checkReportMissingProp)(e,p)}):(r.if((0,F2e._)`${c} && (${(0,HO.checkMissingProp)(e,o,a)})`),(0,HO.reportMissingProp)(e,a),r.else())}}Jh.validatePropertyDeps=Evt;function Svt(e,t=e.schema){let{gen:r,data:n,keyword:i,it:a}=e,s=r.name("valid");for(let o in t)(0,hIr.alwaysValidSchema)(a,t[o])||(r.if((0,HO.propertyInData)(r,n,o,a.opts.ownProperties),()=>{let c=e.subschema({keyword:i,schemaProp:o},s);e.mergeValidEvaluated(c,s)},()=>r.var(s,!0)),e.ok(s))}Jh.validateSchemaDeps=Svt;Jh.default=mIr});var Tvt=b(j2e=>{"use strict";Object.defineProperty(j2e,"__esModule",{value:!0});var Avt=sn(),vIr=Vn(),yIr={message:"property name must be valid",params:({params:e})=>(0,Avt._)`{propertyName: ${e.propertyName}}`},bIr={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:yIr,code(e){let{gen:t,schema:r,data:n,it:i}=e;if((0,vIr.alwaysValidSchema)(i,r))return;let a=t.name("valid");t.forIn("key",n,s=>{e.setParams({propertyName:s}),e.subschema({keyword:"propertyNames",data:s,dataTypes:["string"],propertyName:s,compositeRule:!0},a),t.if((0,Avt.not)(a),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(a)}};j2e.default=bIr});var q2e=b(N2e=>{"use strict";Object.defineProperty(N2e,"__esModule",{value:!0});var UM=Bp(),gd=sn(),wIr=m0(),zM=Vn(),_Ir={message:"must NOT have additional properties",params:({params:e})=>(0,gd._)`{additionalProperty: ${e.additionalProperty}}`},xIr={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:_Ir,code(e){let{gen:t,schema:r,parentSchema:n,data:i,errsCount:a,it:s}=e;if(!a)throw new Error("ajv implementation error");let{allErrors:o,opts:c}=s;if(s.props=!0,c.removeAdditional!=="all"&&(0,zM.alwaysValidSchema)(s,r))return;let p=(0,UM.allSchemaProperties)(n.properties),f=(0,UM.allSchemaProperties)(n.patternProperties);d(),e.ok((0,gd._)`${a} === ${wIr.default.errors}`);function d(){t.forIn("key",i,_=>{!p.length&&!f.length?v(_):t.if(h(_),()=>v(_))})}function h(_){let x;if(p.length>8){let A=(0,zM.schemaRefOrVal)(s,n.properties,"properties");x=(0,UM.isOwnProperty)(t,A,_)}else p.length?x=(0,gd.or)(...p.map(A=>(0,gd._)`${_} === ${A}`)):x=gd.nil;return f.length&&(x=(0,gd.or)(x,...f.map(A=>(0,gd._)`${(0,UM.usePattern)(e,A)}.test(${_})`))),(0,gd.not)(x)}function g(_){t.code((0,gd._)`delete ${i}[${_}]`)}function v(_){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){g(_);return}if(r===!1){e.setParams({additionalProperty:_}),e.error(),o||t.break();return}if(typeof r=="object"&&!(0,zM.alwaysValidSchema)(s,r)){let x=t.name("valid");c.removeAdditional==="failing"?(y(_,x,!1),t.if((0,gd.not)(x),()=>{e.reset(),g(_)})):(y(_,x),o||t.if((0,gd.not)(x),()=>t.break()))}}function y(_,x,A){let D={keyword:"additionalProperties",dataProp:_,dataPropType:zM.Type.Str};A===!1&&Object.assign(D,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(D,x)}}};N2e.default=xIr});var Cvt=b($2e=>{"use strict";Object.defineProperty($2e,"__esModule",{value:!0});var EIr=PO(),Ovt=Bp(),L2e=Vn(),Dvt=q2e(),SIr={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:i,it:a}=e;a.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&Dvt.default.code(new EIr.KeywordCxt(a,Dvt.default,"additionalProperties"));let s=(0,Ovt.allSchemaProperties)(r);for(let d of s)a.definedProperties.add(d);a.opts.unevaluated&&s.length&&a.props!==!0&&(a.props=L2e.mergeEvaluated.props(t,(0,L2e.toHash)(s),a.props));let o=s.filter(d=>!(0,L2e.alwaysValidSchema)(a,r[d]));if(o.length===0)return;let c=t.name("valid");for(let d of o)p(d)?f(d):(t.if((0,Ovt.propertyInData)(t,i,d,a.opts.ownProperties)),f(d),a.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(d),e.ok(c);function p(d){return a.opts.useDefaults&&!a.compositeRule&&r[d].default!==void 0}function f(d){e.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};$2e.default=SIr});var Fvt=b(B2e=>{"use strict";Object.defineProperty(B2e,"__esModule",{value:!0});var Pvt=Bp(),HM=sn(),Ivt=Vn(),Rvt=Vn(),kIr={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:i,it:a}=e,{opts:s}=a,o=(0,Pvt.allSchemaProperties)(r),c=o.filter(y=>(0,Ivt.alwaysValidSchema)(a,r[y]));if(o.length===0||c.length===o.length&&(!a.opts.unevaluated||a.props===!0))return;let p=s.strictSchema&&!s.allowMatchingProperties&&i.properties,f=t.name("valid");a.props!==!0&&!(a.props instanceof HM.Name)&&(a.props=(0,Rvt.evaluatedPropsToName)(t,a.props));let{props:d}=a;h();function h(){for(let y of o)p&&g(y),a.allErrors?v(y):(t.var(f,!0),v(y),t.if(f))}function g(y){for(let _ in p)new RegExp(y).test(_)&&(0,Ivt.checkStrictMode)(a,`property ${_} matches pattern ${y} (use allowMatchingProperties)`)}function v(y){t.forIn("key",n,_=>{t.if((0,HM._)`${(0,Pvt.usePattern)(e,y)}.test(${_})`,()=>{let x=c.includes(y);x||e.subschema({keyword:"patternProperties",schemaProp:y,dataProp:_,dataPropType:Rvt.Type.Str},f),a.opts.unevaluated&&d!==!0?t.assign((0,HM._)`${d}[${_}]`,!0):!x&&!a.allErrors&&t.if((0,HM.not)(f),()=>t.break())})})}}};B2e.default=kIr});var jvt=b(M2e=>{"use strict";Object.defineProperty(M2e,"__esModule",{value:!0});var AIr=Vn(),TIr={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,AIr.alwaysValidSchema)(n,r)){e.fail();return}let i=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),e.failResult(i,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};M2e.default=TIr});var Nvt=b(U2e=>{"use strict";Object.defineProperty(U2e,"__esModule",{value:!0});var OIr=Bp(),DIr={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:OIr.validateUnion,error:{message:"must match a schema in anyOf"}};U2e.default=DIr});var qvt=b(z2e=>{"use strict";Object.defineProperty(z2e,"__esModule",{value:!0});var VM=sn(),CIr=Vn(),PIr={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,VM._)`{passingSchemas: ${e.passing}}`},IIr={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:PIr,code(e){let{gen:t,schema:r,parentSchema:n,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(i.opts.discriminator&&n.discriminator)return;let a=r,s=t.let("valid",!1),o=t.let("passing",null),c=t.name("_valid");e.setParams({passing:o}),t.block(p),e.result(s,()=>e.reset(),()=>e.error(!0));function p(){a.forEach((f,d)=>{let h;(0,CIr.alwaysValidSchema)(i,f)?t.var(c,!0):h=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,VM._)`${c} && ${s}`).assign(s,!1).assign(o,(0,VM._)`[${o}, ${d}]`).else(),t.if(c,()=>{t.assign(s,!0),t.assign(o,d),h&&e.mergeEvaluated(h,VM.Name)})})}}};z2e.default=IIr});var Lvt=b(H2e=>{"use strict";Object.defineProperty(H2e,"__esModule",{value:!0});var RIr=Vn(),FIr={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");let i=t.name("valid");r.forEach((a,s)=>{if((0,RIr.alwaysValidSchema)(n,a))return;let o=e.subschema({keyword:"allOf",schemaProp:s},i);e.ok(i),e.mergeEvaluated(o)})}};H2e.default=FIr});var Mvt=b(V2e=>{"use strict";Object.defineProperty(V2e,"__esModule",{value:!0});var GM=sn(),Bvt=Vn(),jIr={message:({params:e})=>(0,GM.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,GM._)`{failingKeyword: ${e.ifClause}}`},NIr={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:jIr,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,Bvt.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let i=$vt(n,"then"),a=$vt(n,"else");if(!i&&!a)return;let s=t.let("valid",!0),o=t.name("_valid");if(c(),e.reset(),i&&a){let f=t.let("ifClause");e.setParams({ifClause:f}),t.if(o,p("then",f),p("else",f))}else i?t.if(o,p("then")):t.if((0,GM.not)(o),p("else"));e.pass(s,()=>e.error(!0));function c(){let f=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},o);e.mergeEvaluated(f)}function p(f,d){return()=>{let h=e.subschema({keyword:f},o);t.assign(s,o),e.mergeValidEvaluated(h,s),d?t.assign(d,(0,GM._)`${f}`):e.setParams({ifClause:f})}}}};function $vt(e,t){let r=e.schema[t];return r!==void 0&&!(0,Bvt.alwaysValidSchema)(e,r)}V2e.default=NIr});var Uvt=b(G2e=>{"use strict";Object.defineProperty(G2e,"__esModule",{value:!0});var qIr=Vn(),LIr={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,qIr.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};G2e.default=LIr});var zvt=b(W2e=>{"use strict";Object.defineProperty(W2e,"__esModule",{value:!0});var $Ir=D2e(),BIr=bvt(),MIr=C2e(),UIr=_vt(),zIr=xvt(),HIr=kvt(),VIr=Tvt(),GIr=q2e(),WIr=Cvt(),KIr=Fvt(),YIr=jvt(),JIr=Nvt(),XIr=qvt(),QIr=Lvt(),ZIr=Mvt(),eRr=Uvt();function tRr(e=!1){let t=[YIr.default,JIr.default,XIr.default,QIr.default,ZIr.default,eRr.default,VIr.default,GIr.default,HIr.default,WIr.default,KIr.default];return e?t.push(BIr.default,UIr.default):t.push($Ir.default,MIr.default),t.push(zIr.default),t}W2e.default=tRr});var Hvt=b(K2e=>{"use strict";Object.defineProperty(K2e,"__esModule",{value:!0});var bs=sn(),rRr={message:({schemaCode:e})=>(0,bs.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,bs._)`{format: ${e}}`},nRr={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:rRr,code(e,t){let{gen:r,data:n,$data:i,schema:a,schemaCode:s,it:o}=e,{opts:c,errSchemaPath:p,schemaEnv:f,self:d}=o;if(!c.validateFormats)return;i?h():g();function h(){let v=r.scopeValue("formats",{ref:d.formats,code:c.code.formats}),y=r.const("fDef",(0,bs._)`${v}[${s}]`),_=r.let("fType"),x=r.let("format");r.if((0,bs._)`typeof ${y} == "object" && !(${y} instanceof RegExp)`,()=>r.assign(_,(0,bs._)`${y}.type || "string"`).assign(x,(0,bs._)`${y}.validate`),()=>r.assign(_,(0,bs._)`"string"`).assign(x,y)),e.fail$data((0,bs.or)(A(),D()));function A(){return c.strictSchema===!1?bs.nil:(0,bs._)`${s} && !${x}`}function D(){let j=f.$async?(0,bs._)`(${y}.async ? await ${x}(${n}) : ${x}(${n}))`:(0,bs._)`${x}(${n})`,H=(0,bs._)`(typeof ${x} == "function" ? ${j} : ${x}.test(${n}))`;return(0,bs._)`${x} && ${x} !== true && ${_} === ${t} && !${H}`}}function g(){let v=d.formats[a];if(!v){A();return}if(v===!0)return;let[y,_,x]=D(v);y===t&&e.pass(j());function A(){if(c.strictSchema===!1){d.logger.warn(H());return}throw new Error(H());function H(){return`unknown format "${a}" ignored in schema at path "${p}"`}}function D(H){let F=H instanceof RegExp?(0,bs.regexpCode)(H):c.code.formats?(0,bs._)`${c.code.formats}${(0,bs.getProperty)(a)}`:void 0,z=r.scopeValue("formats",{key:a,ref:H,code:F});return typeof H=="object"&&!(H instanceof RegExp)?[H.type||"string",H.validate,(0,bs._)`${z}.validate`]:["string",H,z]}function j(){if(typeof v=="object"&&!(v instanceof RegExp)&&v.async){if(!f.$async)throw new Error("async format in sync schema");return(0,bs._)`await ${x}(${n})`}return typeof _=="function"?(0,bs._)`${x}(${n})`:(0,bs._)`${x}.test(${n})`}}}};K2e.default=nRr});var Vvt=b(Y2e=>{"use strict";Object.defineProperty(Y2e,"__esModule",{value:!0});var iRr=Hvt(),aRr=[iRr.default];Y2e.default=aRr});var Gvt=b(Ax=>{"use strict";Object.defineProperty(Ax,"__esModule",{value:!0});Ax.contentVocabulary=Ax.metadataVocabulary=void 0;Ax.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];Ax.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var Kvt=b(J2e=>{"use strict";Object.defineProperty(J2e,"__esModule",{value:!0});var sRr=tvt(),oRr=mvt(),uRr=zvt(),cRr=Vvt(),Wvt=Gvt(),lRr=[sRr.default,oRr.default,(0,uRr.default)(),cRr.default,Wvt.metadataVocabulary,Wvt.contentVocabulary];J2e.default=lRr});var Jvt=b(WM=>{"use strict";Object.defineProperty(WM,"__esModule",{value:!0});WM.DiscrError=void 0;var Yvt;(function(e){e.Tag="tag",e.Mapping="mapping"})(Yvt||(WM.DiscrError=Yvt={}))});var Qvt=b(Q2e=>{"use strict";Object.defineProperty(Q2e,"__esModule",{value:!0});var Tx=sn(),X2e=Jvt(),Xvt=IM(),pRr=IO(),fRr=Vn(),dRr={message:({params:{discrError:e,tagName:t}})=>e===X2e.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,Tx._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},hRr={keyword:"discriminator",type:"object",schemaType:"object",error:dRr,code(e){let{gen:t,data:r,schema:n,parentSchema:i,it:a}=e,{oneOf:s}=i;if(!a.opts.discriminator)throw new Error("discriminator: requires discriminator option");let o=n.propertyName;if(typeof o!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!s)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),p=t.const("tag",(0,Tx._)`${r}${(0,Tx.getProperty)(o)}`);t.if((0,Tx._)`typeof ${p} == "string"`,()=>f(),()=>e.error(!1,{discrError:X2e.DiscrError.Tag,tag:p,tagName:o})),e.ok(c);function f(){let g=h();t.if(!1);for(let v in g)t.elseIf((0,Tx._)`${p} === ${v}`),t.assign(c,d(g[v]));t.else(),e.error(!1,{discrError:X2e.DiscrError.Mapping,tag:p,tagName:o}),t.endIf()}function d(g){let v=t.name("valid"),y=e.subschema({keyword:"oneOf",schemaProp:g},v);return e.mergeEvaluated(y,Tx.Name),v}function h(){var g;let v={},y=x(i),_=!0;for(let j=0;j<s.length;j++){let H=s[j];if(H?.$ref&&!(0,fRr.schemaHasRulesButRef)(H,a.self.RULES)){let z=H.$ref;if(H=Xvt.resolveRef.call(a.self,a.schemaEnv.root,a.baseId,z),H instanceof Xvt.SchemaEnv&&(H=H.schema),H===void 0)throw new pRr.default(a.opts.uriResolver,a.baseId,z)}let F=(g=H?.properties)===null||g===void 0?void 0:g[o];if(typeof F!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${o}"`);_=_&&(y||x(H)),A(F,j)}if(!_)throw new Error(`discriminator: "${o}" must be required`);return v;function x({required:j}){return Array.isArray(j)&&j.includes(o)}function A(j,H){if(j.const)D(j.const,H);else if(j.enum)for(let F of j.enum)D(F,H);else throw new Error(`discriminator: "properties/${o}" must have "const" or "enum"`)}function D(j,H){if(typeof j!="string"||j in v)throw new Error(`discriminator: "${o}" values must be unique strings`);v[j]=H}}}};Q2e.default=hRr});var Zvt=b((imn,mRr)=>{mRr.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var tyt=b((ba,Z2e)=>{"use strict";Object.defineProperty(ba,"__esModule",{value:!0});ba.MissingRefError=ba.ValidationError=ba.CodeGen=ba.Name=ba.nil=ba.stringify=ba.str=ba._=ba.KeywordCxt=ba.Ajv=void 0;var gRr=Ygt(),vRr=Kvt(),yRr=Qvt(),eyt=Zvt(),bRr=["/properties"],KM="http://json-schema.org/draft-07/schema",Ox=class extends gRr.default{_addVocabularies(){super._addVocabularies(),vRr.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(yRr.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(eyt,bRr):eyt;this.addMetaSchema(t,KM,!1),this.refs["http://json-schema.org/schema"]=KM}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(KM)?KM:void 0)}};ba.Ajv=Ox;Z2e.exports=ba=Ox;Z2e.exports.Ajv=Ox;Object.defineProperty(ba,"__esModule",{value:!0});ba.default=Ox;var wRr=PO();Object.defineProperty(ba,"KeywordCxt",{enumerable:!0,get:function(){return wRr.KeywordCxt}});var Dx=sn();Object.defineProperty(ba,"_",{enumerable:!0,get:function(){return Dx._}});Object.defineProperty(ba,"str",{enumerable:!0,get:function(){return Dx.str}});Object.defineProperty(ba,"stringify",{enumerable:!0,get:function(){return Dx.stringify}});Object.defineProperty(ba,"nil",{enumerable:!0,get:function(){return Dx.nil}});Object.defineProperty(ba,"Name",{enumerable:!0,get:function(){return Dx.Name}});Object.defineProperty(ba,"CodeGen",{enumerable:!0,get:function(){return Dx.CodeGen}});var _Rr=CM();Object.defineProperty(ba,"ValidationError",{enumerable:!0,get:function(){return _Rr.default}});var xRr=IO();Object.defineProperty(ba,"MissingRefError",{enumerable:!0,get:function(){return xRr.default}})});var ryt=b(Cx=>{"use strict";Object.defineProperty(Cx,"__esModule",{value:!0});Cx.formatLimitDefinition=void 0;var ERr=tyt(),vd=sn(),ay=vd.operators,YM={formatMaximum:{okStr:"<=",ok:ay.LTE,fail:ay.GT},formatMinimum:{okStr:">=",ok:ay.GTE,fail:ay.LT},formatExclusiveMaximum:{okStr:"<",ok:ay.LT,fail:ay.GTE},formatExclusiveMinimum:{okStr:">",ok:ay.GT,fail:ay.LTE}},SRr={message:({keyword:e,schemaCode:t})=>vd.str`should be ${YM[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>vd._`{comparison: ${YM[e].okStr}, limit: ${t}}`};Cx.formatLimitDefinition={keyword:Object.keys(YM),type:"string",schemaType:"string",$data:!0,error:SRr,code(e){let{gen:t,data:r,schemaCode:n,keyword:i,it:a}=e,{opts:s,self:o}=a;if(!s.validateFormats)return;let c=new ERr.KeywordCxt(a,o.RULES.all.format.definition,"format");c.$data?p():f();function p(){let h=t.scopeValue("formats",{ref:o.formats,code:s.code.formats}),g=t.const("fmt",vd._`${h}[${c.schemaCode}]`);e.fail$data(vd.or(vd._`typeof ${g} != "object"`,vd._`${g} instanceof RegExp`,vd._`typeof ${g}.compare != "function"`,d(g)))}function f(){let h=c.schema,g=o.formats[h];if(!g||g===!0)return;if(typeof g!="object"||g instanceof RegExp||typeof g.compare!="function")throw new Error(`"${i}": format "${h}" does not define "compare" function`);let v=t.scopeValue("formats",{key:h,ref:g,code:s.code.formats?vd._`${s.code.formats}${vd.getProperty(h)}`:void 0});e.fail$data(d(v))}function d(h){return vd._`${h}.compare(${r}, ${n}) ${YM[i].fail} 0`}},dependencies:["format"]};var kRr=e=>(e.addKeyword(Cx.formatLimitDefinition),e);Cx.default=kRr});var syt=b((VO,ayt)=>{"use strict";Object.defineProperty(VO,"__esModule",{value:!0});var Px=M0t(),ARr=ryt(),ebe=sn(),nyt=new ebe.Name("fullFormats"),TRr=new ebe.Name("fastFormats"),tbe=(e,t={keywords:!0})=>{if(Array.isArray(t))return iyt(e,t,Px.fullFormats,nyt),e;let[r,n]=t.mode==="fast"?[Px.fastFormats,TRr]:[Px.fullFormats,nyt],i=t.formats||Px.formatNames;return iyt(e,i,r,n),t.keywords&&ARr.default(e),e};tbe.get=(e,t="full")=>{let n=(t==="fast"?Px.fastFormats:Px.fullFormats)[e];if(!n)throw new Error(`Unknown format "${e}"`);return n};function iyt(e,t,r,n){var i,a;(i=(a=e.opts.code).formats)!==null&&i!==void 0||(a.formats=ebe._`require("ajv-formats/dist/formats").${n}`);for(let s of t)e.addFormat(s,r[s])}ayt.exports=VO=tbe;Object.defineProperty(VO,"__esModule",{value:!0});VO.default=tbe});var uyt=b((smn,oyt)=>{"use strict";var ORr=(e,t,r,n)=>{if(r==="length"||r==="prototype"||r==="arguments"||r==="caller")return;let i=Object.getOwnPropertyDescriptor(e,r),a=Object.getOwnPropertyDescriptor(t,r);!DRr(i,a)&&n||Object.defineProperty(e,r,a)},DRr=function(e,t){return e===void 0||e.configurable||e.writable===t.writable&&e.enumerable===t.enumerable&&e.configurable===t.configurable&&(e.writable||e.value===t.value)},CRr=(e,t)=>{let r=Object.getPrototypeOf(t);r!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,r)},PRr=(e,t)=>`/* Wrapped ${e}*/
${t}`,IRr=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),RRr=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),FRr=(e,t,r)=>{let n=r===""?"":`with ${r.trim()}() `,i=PRr.bind(null,n,t.toString());Object.defineProperty(i,"name",RRr),Object.defineProperty(e,"toString",{...IRr,value:i})},jRr=(e,t,{ignoreNonConfigurable:r=!1}={})=>{let{name:n}=e;for(let i of Reflect.ownKeys(t))ORr(e,t,i,r);return CRr(e,t),FRr(e,t,n),e};oyt.exports=jRr});var lyt=b((omn,cyt)=>{"use strict";var NRr=uyt();cyt.exports=(e,t={})=>{if(typeof e!="function")throw new TypeError(`Expected the first argument to be a function, got \`${typeof e}\``);let{wait:r=0,before:n=!1,after:i=!0}=t;if(!n&&!i)throw new Error("Both `before` and `after` are false, function wouldn't be called.");let a,s,o=function(...c){let p=this,f=()=>{a=void 0,i&&(s=e.apply(p,c))},d=n&&!a;return clearTimeout(a),a=setTimeout(f,r),d&&(s=e.apply(p,c)),s};return NRr(o,e),o.cancel=()=>{a&&(clearTimeout(a),a=void 0)},o}});var dyt=b((v_,QM)=>{"use strict";var JM=v_&&v_.__classPrivateFieldSet||function(e,t,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},wa=v_&&v_.__classPrivateFieldGet||function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},rbe,nbe,g_,Xh,zp,sy;Object.defineProperty(v_,"__esModule",{value:!0});var qRr=require("util"),oy=require("fs"),sbe=require("path"),Ix=require("crypto"),LRr=require("assert"),$Rr=require("events"),GO=Bht(),BRr=Sse(),MRr=Tse(),URr=imt(),zRr=j0t(),HRr=syt(),pyt=lyt(),Rx=$_(),VRr=jP(),ibe="aes-256-cbc",Fx=()=>Object.create(null),GRr=e=>e!=null,fyt="";try{delete require.cache[__filename],fyt=sbe.dirname((nbe=(rbe=QM.parent)===null||rbe===void 0?void 0:rbe.filename)!==null&&nbe!==void 0?nbe:".")}catch{}var WRr=(e,t)=>{let r=new Set(["undefined","symbol","function"]),n=typeof t;if(r.has(n))throw new TypeError(`Setting a value of type \`${n}\` for key \`${e}\` is not allowed as it's not supported by JSON`)},XM="__internal__",abe=`${XM}.migrations.version`,WO=class{constructor(t={}){var r;g_.set(this,void 0),Xh.set(this,void 0),zp.set(this,void 0),sy.set(this,{}),this._deserialize=c=>JSON.parse(c),this._serialize=c=>JSON.stringify(c,void 0,"	");let n={configName:"config",fileExtension:"json",projectSuffix:"nodejs",clearInvalidConfig:!1,accessPropertiesByDotNotation:!0,configFileMode:438,...t},i=VRr(()=>{let c=BRr.sync({cwd:fyt}),p=c&&JSON.parse(oy.readFileSync(c,"utf8"));return p??{}});if(!n.cwd){if(n.projectName||(n.projectName=i().name),!n.projectName)throw new Error("Project name could not be inferred. Please specify the `projectName` option.");n.cwd=MRr(n.projectName,{suffix:n.projectSuffix}).config}if(JM(this,zp,n,"f"),n.schema){if(typeof n.schema!="object")throw new TypeError("The `schema` option must be an object.");let c=new zRr.default({allErrors:!0,useDefaults:!0});(0,HRr.default)(c);let p={type:"object",properties:n.schema};JM(this,g_,c.compile(p),"f");for(let[f,d]of Object.entries(n.schema))d?.default&&(wa(this,sy,"f")[f]=d.default)}n.defaults&&JM(this,sy,{...wa(this,sy,"f"),...n.defaults},"f"),n.serialize&&(this._serialize=n.serialize),n.deserialize&&(this._deserialize=n.deserialize),this.events=new $Rr.EventEmitter,JM(this,Xh,n.encryptionKey,"f");let a=n.fileExtension?`.${n.fileExtension}`:"";this.path=sbe.resolve(n.cwd,`${(r=n.configName)!==null&&r!==void 0?r:"config"}${a}`);let s=this.store,o=Object.assign(Fx(),n.defaults,s);this._validate(o);try{LRr.deepEqual(s,o)}catch{this.store=o}if(n.watch&&this._watch(),n.migrations){if(n.projectVersion||(n.projectVersion=i().version),!n.projectVersion)throw new Error("Project version could not be inferred. Please specify the `projectVersion` option.");this._migrate(n.migrations,n.projectVersion,n.beforeEachMigration)}}get(t,r){if(wa(this,zp,"f").accessPropertiesByDotNotation)return this._get(t,r);let{store:n}=this;return t in n?n[t]:r}set(t,r){if(typeof t!="string"&&typeof t!="object")throw new TypeError(`Expected \`key\` to be of type \`string\` or \`object\`, got ${typeof t}`);if(typeof t!="object"&&r===void 0)throw new TypeError("Use `delete()` to clear values");if(this._containsReservedKey(t))throw new TypeError(`Please don't use the ${XM} key, as it's used to manage this module internal operations.`);let{store:n}=this,i=(a,s)=>{WRr(a,s),wa(this,zp,"f").accessPropertiesByDotNotation?GO.set(n,a,s):n[a]=s};if(typeof t=="object"){let a=t;for(let[s,o]of Object.entries(a))i(s,o)}else i(t,r);this.store=n}has(t){return wa(this,zp,"f").accessPropertiesByDotNotation?GO.has(this.store,t):t in this.store}reset(...t){for(let r of t)GRr(wa(this,sy,"f")[r])&&this.set(r,wa(this,sy,"f")[r])}delete(t){let{store:r}=this;wa(this,zp,"f").accessPropertiesByDotNotation?GO.delete(r,t):delete r[t],this.store=r}clear(){this.store=Fx();for(let t of Object.keys(wa(this,sy,"f")))this.reset(t)}onDidChange(t,r){if(typeof t!="string")throw new TypeError(`Expected \`key\` to be of type \`string\`, got ${typeof t}`);if(typeof r!="function")throw new TypeError(`Expected \`callback\` to be of type \`function\`, got ${typeof r}`);return this._handleChange(()=>this.get(t),r)}onDidAnyChange(t){if(typeof t!="function")throw new TypeError(`Expected \`callback\` to be of type \`function\`, got ${typeof t}`);return this._handleChange(()=>this.store,t)}get size(){return Object.keys(this.store).length}get store(){try{let t=oy.readFileSync(this.path,wa(this,Xh,"f")?null:"utf8"),r=this._encryptData(t),n=this._deserialize(r);return this._validate(n),Object.assign(Fx(),n)}catch(t){if(t?.code==="ENOENT")return this._ensureDirectory(),Fx();if(wa(this,zp,"f").clearInvalidConfig&&t.name==="SyntaxError")return Fx();throw t}}set store(t){this._ensureDirectory(),this._validate(t),this._write(t),this.events.emit("change")}*[(g_=new WeakMap,Xh=new WeakMap,zp=new WeakMap,sy=new WeakMap,Symbol.iterator)](){for(let[t,r]of Object.entries(this.store))yield[t,r]}_encryptData(t){if(!wa(this,Xh,"f"))return t.toString();try{if(wa(this,Xh,"f"))try{if(t.slice(16,17).toString()===":"){let r=t.slice(0,16),n=Ix.pbkdf2Sync(wa(this,Xh,"f"),r.toString(),1e4,32,"sha512"),i=Ix.createDecipheriv(ibe,n,r);t=Buffer.concat([i.update(Buffer.from(t.slice(17))),i.final()]).toString("utf8")}else{let r=Ix.createDecipher(ibe,wa(this,Xh,"f"));t=Buffer.concat([r.update(Buffer.from(t)),r.final()]).toString("utf8")}}catch{}}catch{}return t.toString()}_handleChange(t,r){let n=t(),i=()=>{let a=n,s=t();(0,qRr.isDeepStrictEqual)(s,a)||(n=s,r.call(this,s,a))};return this.events.on("change",i),()=>this.events.removeListener("change",i)}_validate(t){if(!wa(this,g_,"f")||wa(this,g_,"f").call(this,t)||!wa(this,g_,"f").errors)return;let n=wa(this,g_,"f").errors.map(({instancePath:i,message:a=""})=>`\`${i.slice(1)}\` ${a}`);throw new Error("Config schema violation: "+n.join("; "))}_ensureDirectory(){oy.mkdirSync(sbe.dirname(this.path),{recursive:!0})}_write(t){let r=this._serialize(t);if(wa(this,Xh,"f")){let n=Ix.randomBytes(16),i=Ix.pbkdf2Sync(wa(this,Xh,"f"),n.toString(),1e4,32,"sha512"),a=Ix.createCipheriv(ibe,i,n);r=Buffer.concat([n,Buffer.from(":"),a.update(Buffer.from(r)),a.final()])}if(process.env.SNAP)oy.writeFileSync(this.path,r,{mode:wa(this,zp,"f").configFileMode});else try{URr.writeFileSync(this.path,r,{mode:wa(this,zp,"f").configFileMode})}catch(n){if(n?.code==="EXDEV"){oy.writeFileSync(this.path,r,{mode:wa(this,zp,"f").configFileMode});return}throw n}}_watch(){this._ensureDirectory(),oy.existsSync(this.path)||this._write(Fx()),process.platform==="win32"?oy.watch(this.path,{persistent:!1},pyt(()=>{this.events.emit("change")},{wait:100})):oy.watchFile(this.path,{persistent:!1},pyt(()=>{this.events.emit("change")},{wait:5e3}))}_migrate(t,r,n){let i=this._get(abe,"0.0.0"),a=Object.keys(t).filter(o=>this._shouldPerformMigration(o,i,r)),s={...this.store};for(let o of a)try{n&&n(this,{fromVersion:i,toVersion:o,finalVersion:r,versions:a});let c=t[o];c(this),this._set(abe,o),i=o,s={...this.store}}catch(c){throw this.store=s,new Error(`Something went wrong during the migration! Changes applied to the store until this failed migration will be restored. ${c}`)}(this._isVersionInRangeFormat(i)||!Rx.eq(i,r))&&this._set(abe,r)}_containsReservedKey(t){return typeof t=="object"&&Object.keys(t)[0]===XM?!0:typeof t!="string"?!1:wa(this,zp,"f").accessPropertiesByDotNotation?!!t.startsWith(`${XM}.`):!1}_isVersionInRangeFormat(t){return Rx.clean(t)===null}_shouldPerformMigration(t,r,n){return this._isVersionInRangeFormat(t)?r!=="0.0.0"&&Rx.satisfies(r,t)?!1:Rx.satisfies(n,t):!(Rx.lte(t,r)||Rx.gt(t,n))}_get(t,r){return GO.get(this.store,t,r)}_set(t,r){let{store:n}=this;GO.set(n,t,r),this.store=n}};v_.default=WO;QM.exports=WO;QM.exports.default=WO});var byt=b((umn,yyt)=>{"use strict";var hyt=require("path"),{app:ZM,ipcMain:obe,ipcRenderer:myt,shell:KRr}=require("electron"),YRr=dyt(),gyt=!1,vyt=()=>{if(!obe||!ZM)throw new Error("Electron Store: You need to call `.initRenderer()` from the main process.");let e={defaultCwd:ZM.getPath("userData"),appVersion:ZM.getVersion()};return gyt||(obe.on("electron-store-get-data",t=>{t.returnValue=e}),gyt=!0),e},ube=class extends YRr{constructor(t){let r,n;if(myt){let i=myt.sendSync("electron-store-get-data");if(!i)throw new Error("Electron Store: You need to call `.initRenderer()` from the main process.");({defaultCwd:r,appVersion:n}=i)}else obe&&ZM&&({defaultCwd:r,appVersion:n}=vyt());t={name:"config",...t},t.projectVersion||(t.projectVersion=n),t.cwd?t.cwd=hyt.isAbsolute(t.cwd)?t.cwd:hyt.join(r,t.cwd):t.cwd=r,t.configName=t.name,delete t.name,super(t)}static initRenderer(){vyt()}async openInEditor(){let t=await KRr.openPath(this.path);if(t)throw new Error(t)}};yyt.exports=ube});var _yt=b((cmn,wyt)=>{wyt.exports={START_NOTIFICATION_SERVICE:"PUSH_RECEIVER:::START_NOTIFICATION_SERVICE",NOTIFICATION_SERVICE_STARTED:"PUSH_RECEIVER:::NOTIFICATION_SERVICE_STARTED",NOTIFICATION_SERVICE_RESTARTED:"PUSH_RECEIVER:::NOTIFICATION_SERVICE_RESTARTED",NOTIFICATION_SERVICE_ERROR:"PUSH_RECEIVER:::NOTIFICATION_SERVICE_ERROR",NOTIFICATION_RECEIVED:"PUSH_RECEIVER:::NOTIFICATION_RECEIVED",TOKEN_UPDATED:"PUSH_RECEIVER:::TOKEN_UPDATED"}});var Cyt=b((lmn,Dyt)=>{var{createFcmECDH:JRr,generateFcmAuthSecret:XRr,registerToFCM:QRr,FcmClient:ZRr}=Lht(),{ipcMain:eFr}=require("electron"),tFr=byt(),{START_NOTIFICATION_SERVICE:Eyt,NOTIFICATION_SERVICE_STARTED:pbe,NOTIFICATION_SERVICE_RESTARTED:Syt,NOTIFICATION_SERVICE_ERROR:KO,NOTIFICATION_RECEIVED:kyt,TOKEN_UPDATED:Ayt}=_yt(),fbe=new tFr,dbe,eU=null,hbe=!1,cbe=null,rFr=1e4,xyt=0,lbe=!1;Dyt.exports={START_NOTIFICATION_SERVICE:Eyt,NOTIFICATION_SERVICE_STARTED:pbe,NOTIFICATION_SERVICE_RESTARTED:Syt,NOTIFICATION_SERVICE_ERROR:KO,NOTIFICATION_RECEIVED:kyt,TOKEN_UPDATED:Ayt,setup:nFr};function nFr(e){eFr.on(Eyt,async(t,r,n,i,a)=>{let s=fbe.get("credentials");if(hbe){e.send(pbe,(s||{}).token);return}hbe=!0;let o=XRr(),c=JRr();s=null,dbe={appID:r,ece:{authSecret:o,publicKey:c.getPublicKey()},firebase:{apiKey:i,appID:r,projectID:n},vapidKey:a};try{s=await iFr(e),await Tyt(e,s,o,c),eU=s,e.send(pbe,s.token)}catch(p){Oyt(e,p)}})}async function iFr(e){let r=(await Promise.all([QRr(dbe)]))[0],n=r;return n.acg.id=n.acg.id.toString(),n.acg.securityToken=n.acg.securityToken.toString(),fbe.set("credentials",n),fbe.set("appID",dbe.appID),e.send(Ayt,r.token),r.acg.id=BigInt(r.acg.id),r.acg.securityToken=BigInt(r.acg.securityToken),r}async function Tyt(e,t,r,n){hbe&&cbe!=null&&cbe.disconnect();let i=new ZRr({acg:t.acg,ece:{authSecret:r,privateKey:n.getPrivateKey()}});i.on("message-data",s=>{e.isDestroyed()||e.send(kyt,s)}),await i.connect();function a(){let s=Date.now(),o=s-xyt>rFr;return xyt=s,o}i.getSocket().on("close",()=>{a()&&!lbe?(lbe=!0,aFr(e,r,n),lbe=!1):e.send(KO,"PUSH_RECEIVER:::Socket closed, But not reconnect since already trying reconnection")}),cbe=i}async function aFr(e,t,r){if(e.send(KO,"PUSH_RECEIVER:::Socket closed, Trying to reopen fcm socket"),!e.isDestroyed()&&eU!=null)try{await Tyt(e,eU,t,r),e.send(Syt,eU.token)}catch(n){Oyt(e,n)}else e.send(KO,"PUSH_RECEIVER:::Socket reopen failed due to webContent or lastCredential instance is not initialized")}function Oyt(e,t){console.error("PUSH_RECEIVER:::Error while starting the service",t),e.send(KO,t.message)}});var Uyt=b((Myt,nU)=>{(function(e,t,r){typeof nU<"u"&&nU.exports?nU.exports=r():typeof define=="function"&&define.amd?define(r):t[e]=r()})("urljoin",Myt,function(){function e(t){var r=[];if(t.length===0)return"";if(typeof t[0]!="string")throw new TypeError("Url must be a string. Received "+t[0]);if(t[0].match(/^[^/:]+:\/*$/)&&t.length>1){var n=t.shift();t[0]=n+t[0]}t[0].match(/^file:\/\/\//)?t[0]=t[0].replace(/^([^/:]+):\/*/,"$1:///"):t[0]=t[0].replace(/^([^/:]+):\/*/,"$1://");for(var i=0;i<t.length;i++){var a=t[i];if(typeof a!="string")throw new TypeError("Url must be a string. Received "+a);a!==""&&(i>0&&(a=a.replace(/^[\/]+/,"")),i<t.length-1?a=a.replace(/[\/]+$/,""):a=a.replace(/[\/]+$/,"/"),r.push(a))}var s=r.join("/");s=s.replace(/\/(\?|&|#[^!])/g,"$1");var o=s.split("?");return s=o.shift()+(o.length>0?"?":"")+o.join("&"),s}return function(){var t;return typeof arguments[0]=="object"?t=arguments[0]:t=[].slice.call(arguments),e(t)}})});var Xyt=b((Wmn,ybe)=>{"use strict";var Jyt=require("fs"),{promisify:cFr}=require("util"),lFr=cFr(Jyt.access);ybe.exports=async e=>{try{return await lFr(e),!0}catch{return!1}};ybe.exports.sync=e=>{try{return Jyt.accessSync(e),!0}catch{return!1}}});var Zyt=b((Kmn,Qyt)=>{"use strict";var aU=require("path");Qyt.exports=function e(t,r){if(arguments.length!==2)throw new Error("`path` and `modifier` required");if(Array.isArray(t))return t.map(function(i){return e(i,r)});var n=aU.extname(t);return aU.join(aU.dirname(t),r(aU.basename(t,n),n))}});var n2t=b((Ymn,sU)=>{"use strict";var e2t=Xyt(),pFr=Zyt(),t2t=e=>{let t=0;return()=>pFr(e,(r,n)=>`${r} (${++t})${n}`)},r2t=e=>{let t=t2t(e),r=async n=>await e2t(n)?r(t()):n;return r(e)};sU.exports=r2t;sU.exports.default=r2t;sU.exports.sync=e=>{let t=t2t(e),r=n=>e2t.sync(n)?r(t()):n;return r(e)}});var i2t=b(b_=>{"use strict";b_.htmlEscape=e=>e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;");b_.htmlUnescape=e=>e.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&#0?39;/g,"'").replace(/&quot;/g,'"').replace(/&amp;/g,"&");b_.htmlEscapeTag=(e,...t)=>{let r=e[0];for(let n=0;n<t.length;n++)r=r+b_.htmlEscape(String(t[n]))+e[n+1];return r};b_.htmlUnescapeTag=(e,...t)=>{let r=e[0];for(let n=0;n<t.length;n++)r=r+b_.htmlUnescape(String(t[n]))+e[n+1];return r}});var s2t=b((Xmn,a2t)=>{"use strict";var{htmlEscape:fFr}=i2t();a2t.exports=(e,t)=>{if(typeof e!="string")throw new TypeError(`Expected a \`string\` in the first argument, got \`${typeof e}\``);if(typeof t!="object")throw new TypeError(`Expected an \`object\` or \`Array\` in the second argument, got \`${typeof t}\``);let r=/{{(\d+|[a-z$_][a-z\d$_]*?(?:\.[a-z\d$_]*?)*?)}}/gi;r.test(e)&&(e=e.replace(r,(i,a)=>{let s=t;for(let o of a.split("."))s=s?s[o]:"";return fFr(String(s))}));let n=/{(\d+|[a-z$_][a-z\d$_]*?(?:\.[a-z\d$_]*?)*?)}/gi;return e.replace(n,(i,a)=>{let s=t;for(let o of a.split("."))s=s?s[o]:"";return String(s)})}});var u2t=b((Qmn,bbe)=>{"use strict";var oU=require("path"),{app:ZO,BrowserWindow:uU,shell:dFr,dialog:hFr}=require("electron"),mFr=n2t(),gFr=s2t(),vFr=rue(),yFr=(e,t)=>{let r=vFr.mime(t);return r.length!==1?e:`${e}.${r[0].ext}`},bFr=()=>{let e=process.versions.electron.split(".");return parseInt(e[0],10)},wFr=e=>{for(let t of uU.getAllWindows())for(let r of t.getBrowserViews())if(r.webContents.id===e.id)return t},_Fr=e=>{let t;switch(e.getType()){case"webview":t=uU.fromWebContents(e.hostWebContents);break;case"browserView":t=wFr(e);break;default:t=uU.fromWebContents(e);break}return t};function o2t(e,t,r=()=>{}){let n=new Set,i=0,a=0,s=0,o=()=>n.size,c=()=>i/s;t={showBadge:!0,...t};let p=(f,d,h)=>{n.add(d),s+=d.getTotalBytes();let g=bFr()>=12?uU.fromWebContents(h):_Fr(h),v=t.directory||ZO.getPath("downloads"),y;if(t.filename)y=oU.join(v,t.filename);else{let x=d.getFilename(),A=oU.extname(x)?x:yFr(x,d.getMimeType());y=mFr.sync(oU.join(v,A))}let _=t.errorMessage||"The download of {filename} was interrupted";t.saveAs?d.setSaveDialogOptions({defaultPath:y}):d.setSavePath(y),typeof t.onStarted=="function"&&t.onStarted(d),d.on("updated",()=>{i=a;for(let x of n)i+=x.getReceivedBytes();if(t.showBadge&&["darwin","linux"].includes(process.platform)&&(ZO.badgeCount=o()),g.isDestroyed()||g.setProgressBar(c()),typeof t.onProgress=="function"){let x=d.getReceivedBytes(),A=d.getTotalBytes();t.onProgress({percent:A?x/A:0,transferredBytes:x,totalBytes:A})}typeof t.onTotalProgress=="function"&&t.onTotalProgress({percent:c(),transferredBytes:i,totalBytes:s})}),d.on("done",(x,A)=>{if(a+=d.getTotalBytes(),n.delete(d),t.showBadge&&["darwin","linux"].includes(process.platform)&&(ZO.badgeCount=o()),!g.isDestroyed()&&!o()&&(g.setProgressBar(-1),i=0,a=0,s=0),t.unregisterWhenDone&&e.removeListener("will-download",p),A==="cancelled")typeof t.onCancel=="function"&&t.onCancel(d);else if(A==="interrupted"){let D=gFr(_,{filename:oU.basename(y)});r(new Error(D))}else A==="completed"&&(process.platform==="darwin"&&ZO.dock.downloadFinished(y),t.openFolderWhenDone&&dFr.showItemInFolder(y),typeof t.onCompleted=="function"&&t.onCompleted({fileName:d.getFilename(),path:d.getSavePath(),fileSize:d.getReceivedBytes(),mimeType:d.getMimeType(),url:d.getURL()}),r(null,d))})};e.on("will-download",p)}bbe.exports=(e={})=>{ZO.on("session-created",t=>{o2t(t,e,(r,n)=>{if(r){let i=e.errorTitle||"Download Error";hFr.showErrorBox(i,r.message)}})})};bbe.exports.download=(e,t,r)=>new Promise((n,i)=>{r={...r,unregisterWhenDone:!0},o2t(e.webContents.session,r,(a,s)=>{a?i(a):n(s)}),e.webContents.downloadURL(t)})});var kbe=b((x0n,pbt)=>{"use strict";pbt.exports=class{constructor(t){this.browserWindow=t,this.electronScreen=require("electron").screen}_getCoords(t,r){let n=this._getScreenSize(r),i=this._getWindowSize();r===void 0&&(r={});let a={trayLeft:{x:Math.floor(r.x),y:n.y},trayBottomLeft:{x:Math.floor(r.x),y:Math.floor(n.height-(i[1]-n.y))},trayRight:{x:Math.floor(r.x-i[0]+r.width),y:n.y},trayBottomRight:{x:Math.floor(r.x-i[0]+r.width),y:Math.floor(n.height-(i[1]-n.y))},trayCenter:{x:Math.floor(r.x-i[0]/2+r.width/2),y:n.y},trayBottomCenter:{x:Math.floor(r.x-i[0]/2+r.width/2),y:Math.floor(n.height-(i[1]-n.y))},topLeft:{x:n.x,y:n.y},topRight:{x:Math.floor(n.x+(n.width-i[0])),y:n.y},bottomLeft:{x:n.x,y:Math.floor(n.height-(i[1]-n.y))},bottomRight:{x:Math.floor(n.x+(n.width-i[0])),y:Math.floor(n.height-(i[1]-n.y))},topCenter:{x:Math.floor(n.x+(n.width/2-i[0]/2)),y:n.y},bottomCenter:{x:Math.floor(n.x+(n.width/2-i[0]/2)),y:Math.floor(n.height-(i[1]-n.y))},leftCenter:{x:n.x,y:n.y+Math.floor(n.height/2)-Math.floor(i[1]/2)},rightCenter:{x:Math.floor(n.x+(n.width-i[0])),y:n.y+Math.floor(n.height/2)-Math.floor(i[1]/2)},center:{x:Math.floor(n.x+(n.width/2-i[0]/2)),y:Math.floor((n.height+n.y)/2-i[1]/2)}};return t.substr(0,4)==="tray"&&a[t].x+i[0]>n.width+n.x?{x:a.topRight.x,y:a[t].y}:a[t]}_getWindowSize(){return this.browserWindow.getSize()}_getScreenSize(t){return t?this.electronScreen.getDisplayMatching(t).workArea:this.electronScreen.getDisplayNearestPoint(this.electronScreen.getCursorScreenPoint()).workArea}move(t,r){var n=this._getCoords(t,r);this.browserWindow.setPosition(n.x,n.y)}calculate(t,r){var n=this._getCoords(t,r);return{x:n.x,y:n.y}}}});var zd=dt(uTe()),Yb=require("electron");var CI=dt(rPe());var nPe=dt(require("fs")),iPe=dt(require("path"));function wS(e){return JSON.parse(nPe.default.readFileSync(iPe.default.join(__dirname,e),"utf-8"))}var pre=wS("todesktop.json");pre.windows.forEach(e=>{Object.keys(e.options).forEach(t=>{let r=t;CI.allowedBrowserWindowConstructorOptions.includes(r)||delete e.options[r]}),e.options.webPreferences&&Object.keys(e.options.webPreferences).forEach(t=>{CI.allowedWebPreferencesOptions.includes(t)||e.options.webPreferences&&delete e.options.webPreferences[t]})});function fre(e){let t=pre?.appStrings?.[e];if(t){if("en"in t)return t.en;if("default"in t)return t.default}return null}var Me=pre;var jo=process.env.TODESKTOP_BUILD_SERVER_STAGE==="dev";var mIe=require("electron");var dre=require("electron");var PI=require("electron"),sPe=dt(xS()),t1={},eg={},L6={},oPe=[],aPe=(e,t,r)=>{L6[t][e]=r,oPe.filter(n=>n.event===e&&n.id===t).forEach(({callback:n})=>n(r))},lf=e=>(0,sPe.throttle)(()=>{if(e.isDestroyed())return;Object.prototype.hasOwnProperty.call(L6,e.id)||(L6[e.id]={focus:!1,visibility:!1});let t=e.isFocused();t!==L6[e.id].focus&&aPe("focus",e.id,t);let r=e.isVisible();r!==L6[e.id].visibility&&aPe("visibility",e.id,r)},10),uPe=()=>{PI.app.on("browser-window-created",(e,t)=>{lf(t)(),t.on("show",lf(t)),t.on("closed",lf(t)),t.on("hide",lf(t))}),PI.app.on("browser-window-focus",(e,t)=>lf(t)()),PI.app.on("browser-window-blur",(e,t)=>lf(t)())},tg=(e,t)=>L6[e][t],ES=(e,t,r)=>{oPe.push({callback:r,event:t,id:e})};var ob=e=>!!(e&&!e.isDestroyed()),II=(e,t)=>{Ma(e,t),e.focus()},Ma=(e,t)=>{let r=e?eg[e.id]:null,n=t.windows.find(i=>i.id===r);if(kS(n)&&e){let i=dre.screen.getCursorScreenPoint(),a=dre.screen.getDisplayNearestPoint(i).bounds,[s,o]=e.getSize(),c=Math.round(a.x+(a.width-s)/2),p=Math.round(a.y+(a.height-o)/2);typeof c=="number"&&typeof p=="number"&&e.setPosition(c,p),e.showInactive()}else e&&e.show()},kS=e=>e?.type==="panel"&&process.platform==="darwin";var FS;Promise.resolve().then(()=>dt(dIe())).then(e=>FS=e).catch(()=>null);var $I,hIe=e=>typeof e=="string"?e:JSON.stringify(e,null,2),gIe=function(e){$I=e},Rt=function(e,...t){if(!t.length){let n=`console.log("[logger]: ! Message omitted. Source: ${e}")`;console.log(n),$I.webContents.executeJavaScript(n);return}let r=`[${e}]: ${hIe(t[0])}`;if(t.length>1){let n=`  
- `;r+=`${n}${t.slice(1).map(hIe).join(n)}`}if(FS&&(e==="preload"&&!jo&&(FS.transports.console.level=!1),FS.info(r),e==="preload"&&!jo&&(FS.transports.console.level="info")),e==="preload")mIe.ipcRenderer.invoke("log-from-preload",r);else if(e==="main"){if(!jo||!ob($I))return;$I.webContents.executeJavaScript(`console.log(${JSON.stringify(r)})`)}};var z$t=jo?"../":"./",Id=Object.freeze(wS(`${z$t}package.json`));var Aqe=dt(vIe()),Tqe=dt(zRe());var WS="sentry-ipc",hb;(function(e){e.PING="sentry-electron.ping",e.EVENT="sentry-electron.event",e.SCOPE="sentry-electron.scope"})(hb||(hb={}));function KS(e,t){let r=t.replace(/\\/g,"/").replace(/[|\\{}()[\]^$+*?.]/g,"\\$&"),n=e;try{n=decodeURI(e)}catch{}return n.replace(/\\/g,"/").replace(/webpack:\/?/g,"").replace(new RegExp(`(file://)?/*${r}/*`,"ig"),"app:///")}function mR(e,t){let r=CUt(e);r&&r.frames&&r.frames.forEach(a=>{a.filename&&(a.filename=KS(a.filename,t))}),e.transaction&&(e.transaction=KS(e.transaction,t));let{request:n={}}=e;n.url&&(n.url=KS(n.url,t)),n.headers&&delete n.headers["User-Agent"];let{tags:i={}}=e;return delete i.server_name,e}function CUt(e){let{stacktrace:t,exception:r}=e;if(t)return t;if(r){if(r[0])return r[0].stacktrace;let n=r;if(n.values&&n.values[0])return n.values[0].stacktrace}}var KRe=dt(WRe());function HUt(e){for(let t of e.spans||[])delete t.spanRecorder,delete t.transaction}function gf(e,t){HUt(t);let r=(0,KRe.default)(e,t);return(t.spans||e.spans)&&(r.spans=t.spans||e.spans),Object.assign(Object.assign({},r),{sdk:Object.assign(Object.assign({},e.sdk),t.sdk)})}var vf;(function(e){e[e.Classic=1]="Classic",e[e.Protocol=2]="Protocol",e[e.Both=3]="Both"})(vf||(vf={}));function gR(e){let t=typeof window<"u"?"renderer":"main";if(t!==e)throw new Error(`This code is intended to run in the Electron ${e} process but is currently running in the ${t} process.
This can occur if a bundler picks the wrong entry point.

You can work around this by using a relative import:
import * as Sentry from '@sentry/electron/${t}';`)}var kqe=dt(u4());var ese={};g2(ese,{AdditionalContext:()=>Nb,ChildProcess:()=>Lb,ElectronBreadcrumbs:()=>Tb,ElectronMinidump:()=>N7,MainContext:()=>Ib,MainProcessSession:()=>jb,Net:()=>qb,OnUncaughtException:()=>Ob,PreloadInjection:()=>Fb,SentryMinidump:()=>Rb});var oF=dt(Wn()),mg=require("electron");var ONe=dt(Vr()),Gl=require("electron"),DNe=require("path"),Uae=(0,ONe.parseSemver)(process.versions.electron),Oc={major:Uae.major||0,minor:Uae.minor||0,patch:Uae.patch||0},CNe=(()=>{let e=(0,DNe.basename)(process.execPath).toLowerCase();return process.platform==="win32"?e!=="electron.exe":e!=="electron"})(),hg=(()=>Gl.app.isReady()?Promise.resolve():new Promise(e=>{Gl.app.once("ready",()=>{e()})}))();function zae(){return Oc.major>=5}var PNe=["clean-exit","abnormal-exit","killed","crashed","oom","launch-failed","integrity-failure"],O7=["crashed","oom"];function c4(e,t){Oc.major>=10||Oc.major===9&&Oc.minor>=1||Oc.major===8&&Oc.minor>=4?Gl.app.on("render-process-gone",(n,i,a)=>{e.includes(a.reason)&&t(i,a)}):D7(n=>{n.on("crashed",(i,a)=>{let s=l4()&&a?"killed":"crashed";e.includes(s)&&t(n,{reason:s})})})}function rF(e,t){Oc.major>=11?Gl.app.on("child-process-gone",(r,n)=>{e.includes(n.reason)&&t(n)}):Gl.app.on("gpu-process-crashed",(r,n)=>{let i=n?"killed":"crashed";e.includes(i)&&t({type:"GPU",reason:i})})}function INe(e){Gl.app.on("browser-window-created",(t,r)=>{Oc.major>=3?e(r):setImmediate(()=>{r.isDestroyed()||e(r)})})}function D7(e){Gl.app.on("web-contents-created",(t,r)=>{Oc.major>=3?e(r):setImmediate(()=>{r.isDestroyed()||e(r)})})}function nF(){return process.platform==="darwin"?!1:Oc.major<9}function PJt(){return Oc.major>=16?!0:Oc.major<15?!1:Gl.app.commandLine.hasSwitch("enable-crashpad")}function l4(){return process.platform==="darwin"||process.platform==="win32"&&Oc.major>=6||process.platform==="linux"&&PJt()}function iF(){return Oc.major>=9?Gl.app.getPath("crashDumps"):Gl.crashReporter.getCrashesDirectory()}var RNe=require("electron");var C7;function aF(){if(C7)return;let e=C7=new Map;function t(n,i){let a=e.get(n)||{id:n};a.url=KS(i,RNe.app.getAppPath()),e.set(n,a)}function r(n,i){let a=e.get(n)||{id:n};a.title=i,e.set(n,a)}D7(n=>{let i=n.id;n.on("did-navigate",(a,s)=>t(i,s)),n.on("did-navigate-in-page",(a,s)=>t(i,s)),n.on("page-title-updated",(a,s)=>r(i,s)),n.on("destroyed",()=>{setTimeout(()=>{e.delete(i)},5e3)})})}function sF(e){return C7?.get(e)}var IJt={app:e=>!e.startsWith("remote-"),autoUpdater:()=>!0,webContents:e=>["dom-ready","context-menu","load-url","destroyed"].includes(e),browserWindow:e=>["closed","close","unresponsive","responsive","show","blur","focus","hide","maximize","minimize","restore","enter-full-screen","leave-full-screen"].includes(e),screen:()=>!0,powerMonitor:()=>!0,captureWindowTitles:!1};function RJt(e){return Object.keys(e).reduce((t,r)=>{if(r==="captureWindowTitles")t[r]=!!e[r];else{let n=e[r];Array.isArray(n)?t[r]=i=>n.includes(i):(typeof n=="function"||n===!1)&&(t[r]=n)}return t},{})}var Tb=class e{constructor(t={}){this.name=e.id,this._options=Object.assign(Object.assign({},IJt),RJt(t))}setupOnce(){var t;let r=(t=(0,oF.getCurrentHub)().getClient())===null||t===void 0?void 0:t.getOptions();aF(),hg.then(()=>{this._options.screen&&this._patchEventEmitter(mg.screen,"screen",this._options.screen),this._options.powerMonitor&&this._patchEventEmitter(mg.powerMonitor,"powerMonitor",this._options.powerMonitor)}),this._options.app&&this._patchEventEmitter(mg.app,"app",this._options.app),this._options.autoUpdater&&this._patchEventEmitter(mg.autoUpdater,"autoUpdater",this._options.autoUpdater),this._options.browserWindow&&INe(n=>{var i;let a=n.webContents.id,s=((i=r?.getRendererName)===null||i===void 0?void 0:i.call(r,n.webContents))||"window";this._patchEventEmitter(n,s,this._options.browserWindow,a)}),this._options.webContents&&D7(n=>{var i;let a=n.id,s=((i=r?.getRendererName)===null||i===void 0?void 0:i.call(r,n))||"renderer";this._patchEventEmitter(n,s,this._options.webContents,a)})}_patchEventEmitter(t,r,n,i){let a=t.emit.bind(t);t.emit=(s,...o)=>{var c,p;if(n&&n(s)){let f={category:"electron",message:`${r}.${s}`,timestamp:new Date().getTime()/1e3,type:"ui"};i&&(f.data=Object.assign({},sF(i)),!this._options.captureWindowTitles&&(!((c=f.data)===null||c===void 0)&&c.title)&&((p=f.data)===null||p===void 0||delete p.title)),(0,oF.addBreadcrumb)(f)}return a(s,...o)}}};Tb.id="ElectronBreadcrumbs";function jr(e,t,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(f){try{p(n.next(f))}catch(d){s(d)}}function c(f){try{p(n.throw(f))}catch(d){s(d)}}function p(f){f.done?a(f.value):i(f.value).then(o,c)}p((n=n.apply(e,t||[])).next())})}var p4=dt(Wn()),FNe=dt(Fd()),jNe=dt(Vr()),NNe=require("electron"),Ob=class e{constructor(){this.name=e.id}setupOnce(){var t;let r=(t=(0,p4.getCurrentHub)().getClient())===null||t===void 0?void 0:t.getOptions();global.process.on("uncaughtException",n=>{(0,p4.getCurrentHub)().getIntegration(e)&&(0,p4.getCurrentHub)().withScope(a=>jr(this,void 0,void 0,function*(){a.addEventProcessor(c=>jr(this,void 0,void 0,function*(){return Object.assign(Object.assign({},c),{level:FNe.Severity.Fatal})}));let s=n;!(0,jNe.isError)(n)&&n.stack&&(s=new Error,s.message=n.message,s.stack=n.stack,s.name=n.name);let o=(0,p4.getCurrentHub)().getClient();if(o.captureException(s,{originalException:n},(0,p4.getCurrentHub)().getScope()),yield o.flush(o.getOptions().shutdownTimeout||2e3),r?.onFatalError)r.onFatalError(n);else if(global.process.listenerCount("uncaughtException")<=2){console.error("Uncaught Exception:"),console.error(n);let c=n.stack,f=`Uncaught Exception:
${c!==void 0?c:`${n.name}: ${n.message}`}`;NNe.dialog.showErrorBox("A JavaScript error occurred in the main process",f)}}))})}};Ob.id="OnUncaughtException";var zNe=dt(Wn()),HNe=require("electron");var MNe=dt(require("child_process")),Db=require("electron"),Cb=require("os"),UNe=require("path");var qNe=require("electron"),Hs=require("fs"),f4=require("path"),gg=require("util"),d4=(0,f4.join)(qNe.app.getPath("userData"),"sentry"),LNe=(0,gg.promisify)(Hs.writeFile),h4=(0,gg.promisify)(Hs.readFile),hVr=(0,gg.promisify)(Hs.mkdir),$Ne=(0,gg.promisify)(Hs.stat),y1=(0,gg.promisify)(Hs.unlink),m4=(0,gg.promisify)(Hs.readdir),mVr=(0,gg.promisify)(Hs.rename);function Hae(e){let t=(0,f4.resolve)(e);try{(0,Hs.mkdirSync)(t,511)}catch(r){let n=r;if(n&&n.code==="ENOENT")Hae((0,f4.dirname)(t)),(0,Hs.mkdirSync)(t,511);else try{if(!(0,Hs.statSync)(t).isDirectory())throw r}catch{throw r}}}var Vae="3.0.8";var FJt="sentry.javascript.electron",jJt={aix:"IBM AIX",freebsd:"FreeBSD",openbsd:"OpenBSD",sunos:"SunOS",win32:"Windows"},NJt=[{name:"fedora-release",distros:["Fedora"]},{name:"redhat-release",distros:["Red Hat Linux","Centos"]},{name:"redhat_version",distros:["Red Hat Linux"]},{name:"SuSE-release",distros:["SUSE Linux"]},{name:"lsb-release",distros:["Ubuntu Linux","Arch Linux"]},{name:"debian_version",distros:["Debian"]},{name:"debian_release",distros:["Debian"]},{name:"arch-release",distros:["Arch Linux"]},{name:"gentoo-release",distros:["Gentoo Linux"]},{name:"novell-release",distros:["SUSE Linux"]},{name:"alpine-release",distros:["Alpine Linux"]}],qJt={alpine:e=>e,arch:e=>Ld(/distrib_release=(.*)/,e),centos:e=>Ld(/release ([^ ]+)/,e),debian:e=>e,fedora:e=>Ld(/release (..)/,e),mint:e=>Ld(/distrib_release=(.*)/,e),red:e=>Ld(/release ([^ ]+)/,e),suse:e=>Ld(/VERSION = (.*)\n/,e),ubuntu:e=>Ld(/distrib_release=(.*)/,e)};function Ld(e,t){let r=e.exec(t);return r?r[1]:void 0}function LJt(){return jr(this,void 0,void 0,function*(){let e={kernel_version:(0,Cb.release)(),name:"Mac OS X",version:`10.${Number((0,Cb.release)().split(".")[0])-4}`};try{let t=yield new Promise((r,n)=>{MNe.execFile("/usr/bin/sw_vers",(i,a)=>{if(i){n(i);return}r(a)})});e.name=Ld(/^ProductName:\s+(.*)$/m,t),e.version=Ld(/^ProductVersion:\s+(.*)$/m,t),e.build=Ld(/^BuildVersion:\s+(.*)$/m,t)}catch{}return e})}function BNe(e){return e.split(" ")[0].toLowerCase()}function $Jt(){return jr(this,void 0,void 0,function*(){let e={kernel_version:(0,Cb.release)(),name:"Linux"};try{let t=yield m4("/etc"),r=NJt.find(o=>t.includes(o.name));if(!r)return e;let n=(0,UNe.join)("/etc",r.name),i=(yield h4(n,{encoding:"utf-8"})).toLowerCase(),{distros:a}=r;e.name=a.find(o=>i.indexOf(BNe(o))>=0)||a[0];let s=BNe(e.name);e.version=qJt[s](i)}catch{}return e})}function BJt(){return jr(this,void 0,void 0,function*(){let e=(0,Cb.platform)();switch(e){case"darwin":return LJt();case"linux":return $Jt();default:return{name:jJt[e]||e,version:(0,Cb.release)()}}})}function Wae(){return{name:FJt,packages:[{name:"npm:@sentry/electron",version:Vae}],version:Vae}}function MJt(){let e={app_name:Db.app.name||Db.app.getName(),app_version:Db.app.getVersion(),app_start_time:new Date(Date.now()-process.uptime()*1e3).toISOString()};return process.mas&&(e.build_type="app-store"),process.windowsStore&&(e.build_type="windows-store"),e}function UJt(){return jr(this,void 0,void 0,function*(){return{app:MJt(),os:yield BJt(),browser:{name:"Chrome"},chrome:{name:"Chrome",type:"runtime",version:process.versions.chrome},device:{arch:process.arch,family:"Desktop"},node:{name:"Node",type:"runtime",version:process.versions.node},runtime:{name:"Electron",version:process.versions.electron}}})}function Kae(){return`${(Db.app.name||Db.app.getName()).replace(/\W/g,"-")}@${Db.app.getVersion()}`}function Yae(){return CNe?"production":"development"}function zJt(e){return jr(this,void 0,void 0,function*(){return{sdk:Wae(),contexts:yield UJt(),environment:Yae(),release:e||Kae(),user:{ip_address:"{{auto}}"},tags:{"event.origin":"electron","event.environment":"javascript","event.process":"browser",event_type:"javascript"}}})}var Gae;function Pb(e){return jr(this,void 0,void 0,function*(){return Gae||(Gae=zJt(e)),yield Gae})}var Ib=class e{constructor(){this.name=e.id}setupOnce(t){var r;let n=(r=(0,zNe.getCurrentHub)().getClient())===null||r===void 0?void 0:r.getOptions();t(i=>jr(this,void 0,void 0,function*(){let a=mR(i,HNe.app.getAppPath()),s=yield Pb(n?.release);return gf(s,a)}))}};Ib.id="MainContext";var w1=dt(Wn()),hF=dt(Fd()),os=dt(Vr()),j7=require("electron");var R7=dt(Wn()),WNe=dt(u4()),b1=dt(Vr());var VNe=dt(Vr()),$d=require("fs"),uF=require("path");var HJt=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.*\d{0,10}Z$/;function VJt(e,t){return typeof t=="string"&&HJt.test(t)?new Date(t):t}var vg=class{constructor(t,r,n){this._path=(0,uF.join)(t,`${r}.json`),this._initial=n,this._flushing=!1}set(t,r=!1){this._data=t,this._flushing||(this._flushing=!0,r?this._flush():setImmediate(()=>{this._flush()}))}update(t){this.set(t(this.get()))}get(){if(this._data===void 0)try{this._data=(0,$d.existsSync)(this._path)?JSON.parse((0,$d.readFileSync)(this._path,"utf8"),VJt):this._initial}catch{this._data=this._initial}return this._data}clear(){this.set(this._initial)}getModifiedDate(){var t;try{return(t=(0,$d.statSync)(this._path))===null||t===void 0?void 0:t.mtime}catch{return}}_flush(){try{this._data===void 0?(0,$d.unlinkSync)(this._path):(Hae((0,uF.dirname)(this._path)),(0,$d.writeFileSync)(this._path,JSON.stringify(this._data)))}catch(t){VNe.logger.warn("Failed to flush store",t)}finally{this._flushing=!1}}};var KNe=6e4,P7=new vg(d4,"session",void 0),g4=P7.get(),GNe=P7.getModifiedDate(),I7;function YNe(){let e=(0,R7.getCurrentHub)();P7.set(e.startSession()),I7=setInterval(()=>{var t;let r=(t=e.getScope())===null||t===void 0?void 0:t.getSession();r&&r.status==="ok"&&P7.set(r)},KNe)}function JNe(){var e;return jr(this,void 0,void 0,function*(){I7&&clearInterval(I7);let t=(0,R7.getCurrentHub)(),r=(e=t.getScope())===null||e===void 0?void 0:e.getSession();r?r.status==="ok"?(b1.logger.log("Ending session"),t.endSession()):b1.logger.log("Session was already ended"):b1.logger.log("No session"),P7.set(void 0,!0),yield(0,WNe.flush)()})}function XNe(e){if(!e||!GNe)return!1;let t=GNe.getTime(),r=e.getTime(),n=t+KNe,i=t-2e3;return r>i&&r<n}function cF(e){return jr(this,void 0,void 0,function*(){if(g4){if(g4.status!=="ok"){g4=void 0;return}let t=e?"crashed":"abnormal";b1.logger.log(`Found previous ${t} session`),yield(0,R7.getCurrentHub)().getClient()._getBackend().getTransport().sendSession(Object.assign(Object.assign({},g4),{status:t,errors:(g4.errors||0)+1})),g4=void 0}})}function F7(){var e;I7&&clearInterval(I7),b1.logger.log("Session Crashed");let t=(0,R7.getCurrentHub)(),r=(e=t.getScope())===null||e===void 0?void 0:e.getSession();if(!r){b1.logger.log("No session to update");return}r.status==="ok"?(b1.logger.log("Setting session as crashed"),r.update({status:"crashed",errors:r.errors+=1})):b1.logger.log("Session already ended"),t.captureSession()}var eqe=dt(Vr()),Jae=require("path");var QNe=dt(Wn()),Vs=dt(Vr()),ZNe=require("path");var GJt=30,v4=class{constructor(t,r){if(this._options=t,this._transport=r,this._knownPaths=[],!t.dsn)throw new Vs.SentryError("Attempted to enable Electron native crash reporter but no DSN was supplied");this._dsn=(0,Vs.makeDsn)(t.dsn)}uploadMinidump(t){return jr(this,void 0,void 0,function*(){if(typeof this._transport.sendRequest!="function"){Vs.logger.warn("Your transport doesn't implement sendRequest"),Vs.logger.warn("Skipping sending minidump");return}if(this._options.beforeSend&&t.event){let n=this._options.beforeSend(t.event);(yield(0,Vs.isThenable)(n)?n.then(a=>a):Promise.resolve(n))===null&&(Vs.logger.warn("`beforeSend` returned `null`, will not send minidump."),t.event=null)}let r=this._transport;try{if(t.event&&!r.isRateLimited("event")){Vs.logger.log("Sending minidump",t.path);let n=yield this._toMinidumpRequest(r,t.event,t.path);yield r.sendRequest(n)}try{yield y1(t.path),Vs.logger.log("Deleted minidump",t.path)}catch(n){Vs.logger.warn("Could not delete",t.path,n)}this._knownPaths.splice(this._knownPaths.indexOf(t.path),1)}catch(n){Vs.logger.warn("Failed to upload minidump",n)}})}getNewMinidumps(){return jr(this,void 0,void 0,function*(){let t=yield this._getMinidumpPaths();Vs.logger.log(`Found ${t.length} minidumps`);let r=new Date().getTime()-GJt*24*3600*1e3;return this._filterAsync(t,n=>jr(this,void 0,void 0,function*(){if(this._knownPaths.indexOf(n)>=0)return!1;if(this._knownPaths.push(n),(yield $Ne(n)).birthtimeMs<r){try{yield y1(n)}catch{Vs.logger.warn("Could not delete",n)}return this._knownPaths.splice(this._knownPaths.indexOf(n),1),!1}return!0}))})}_filterAsync(t,r,n){return jr(this,void 0,void 0,function*(){let i=yield Promise.all(t.map(r,n));return t.filter((a,s)=>i[s])})}_toMinidumpRequest(t,r,n){var i;return jr(this,void 0,void 0,function*(){let a=JSON.stringify({event_id:r.event_id,sent_at:new Date((0,Vs.timestampWithMs)()*1e3).toISOString()});t.isRateLimited("attachment")&&(r.message="Ratelimited - Minidump Event");let s=JSON.stringify({content_type:"application/json",type:"event"}),o=JSON.stringify(r),c=Buffer.from(`${a}
${s}
${o}
`);if(t.isRateLimited("attachment"))Vs.logger.warn("Will not add minidump to request since they are rate limited.");else{let p=yield h4(n);p=(yield(i=this._preProcessFile)===null||i===void 0?void 0:i.call(this,p))||p;let f=JSON.stringify({attachment_type:"event.minidump",length:p.length,type:"attachment",filename:(0,ZNe.basename)(n)});c=Buffer.concat([c,Buffer.from(`${f}
`),p,Buffer.from(`
`)])}return{url:(0,QNe.getEnvelopeEndpointWithUrlEncodedAuth)(this._dsn),body:c,type:"event"}})}};var lF=class extends v4{constructor(t,r){super(t,r),this._crashesDirectory=iF()}_getMinidumpPaths(){return jr(this,void 0,void 0,function*(){let t=yield m4(this._crashesDirectory);return Promise.all(t.filter(r=>r.endsWith(".txt")&&!r.endsWith("log.txt")).map(r=>jr(this,void 0,void 0,function*(){let n=(0,Jae.join)(this._crashesDirectory,r);try{yield y1(n)}catch{eqe.logger.warn("Could not delete",n)}}))),t.filter(r=>r.endsWith(".dmp")).map(r=>(0,Jae.join)(this._crashesDirectory,r))})}_preProcessFile(t){let r=t.lastIndexOf("Content-Type: application/octet-stream");if(r>0){let n=t.indexOf("MDMP",r),i=t.lastIndexOf("----------------------------");if(n>0&&i>0&&i>n)return t.slice(n,i)}}};var dF=dt(Vr()),pF=require("path");var fF=class extends v4{constructor(t,r){super(t,r),this._crashesDirectory=iF(),this._crashpadSubDirectory=process.platform==="win32"?"reports":"completed"}_getMinidumpPaths(){return jr(this,void 0,void 0,function*(){(0,dF.forget)(this._deleteCrashpadMetadataFile());let t=(0,pF.join)(this._crashesDirectory,this._crashpadSubDirectory);return(yield m4(t)).filter(n=>n.endsWith(".dmp")).map(n=>(0,pF.join)(t,n))})}_preProcessFile(t){return t}_deleteCrashpadMetadataFile(t=100){return jr(this,void 0,void 0,function*(){if(t>2e3)return;let r=(0,pF.join)(this._crashesDirectory,"metadata");try{yield y1(r),dF.logger.log("Deleted Crashpad metadata file",r)}catch(n){n.code&&n.code=="EBUSY"&&setTimeout(()=>jr(this,void 0,void 0,function*(){yield this._deleteCrashpadMetadataFile(t*2)}),t)}})}};var Rb=class e{constructor(){this.name=e.id}setupOnce(){if(process.mas)return;this._startCrashReporter(),this._scopeStore=new vg(d4,"scope_v2",new w1.Scope),this._scopeLastRun=this._scopeStore.get(),this._setupScopeListener();let t=(0,w1.getCurrentHub)().getClient(),r=t?.getOptions();if(!r?.dsn)throw new os.SentryError("Attempted to enable Electron native crash reporter but no DSN was supplied");aF();let n=t._getBackend().getTransport();this._uploader=l4()?new fF(r,n):new lF(r,n),c4(O7,(i,a)=>this._sendRendererCrash(r,i,a)),rF(O7,i=>this._sendChildProcessCrash(r,i)),(0,os.forget)(this._sendNativeCrashes(r,{level:hF.Severity.Fatal,platform:"native",tags:{"event.environment":"native","event.process":"browser",event_type:"native"}}).then(i=>cF(i)))}_startCrashReporter(){os.logger.log("Starting Electron crashReporter"),j7.crashReporter.start({companyName:"",ignoreSystemCrashHandler:!0,productName:j7.app.name||j7.app.getName(),submitURL:"https://f.a.k/e",uploadToServer:!1,compress:!0})}_sendRendererCrash(t,r,n){var i;return jr(this,void 0,void 0,function*(){let{getRendererName:a,release:s}=t,o=a?.(r)||"renderer";os.logger.log(`'${o}' process '${n.reason}'`);let c=gf(yield Pb(s),{contexts:{electron:{crashed_url:((i=sF(r.id))===null||i===void 0?void 0:i.url)||"unknown",details:n}},level:hF.Severity.Fatal,platform:"native",tags:{"event.environment":"native","event.process":o,event_type:"native"}});(yield this._sendNativeCrashes(t,c))&&F7()})}_sendChildProcessCrash(t,r){return jr(this,void 0,void 0,function*(){os.logger.log(`${r.type} process has ${r.reason}`);let n=gf(yield Pb(t.release),{contexts:{electron:{details:r}},level:hF.Severity.Fatal,platform:"native",tags:{"event.environment":"native","event.process":r.type,event_type:"native"}});(yield this._sendNativeCrashes(t,n))&&F7()})}_setupScopeListener(){let t=(0,w1.getCurrentHub)().getScope();t&&t.addScopeListener(r=>{var n;let i=w1.Scope.clone(r);i._eventProcessors=[],i._scopeListeners=[],(n=this._scopeStore)===null||n===void 0||n.set(i)})}_sendNativeCrashes(t,r){return jr(this,void 0,void 0,function*(){let n=this._uploader;if(n===void 0)throw new os.SentryError("Invariant violation: Native crashes not enabled");try{let i=yield n.getNewMinidumps();if(i.length>0){let a=w1.Scope.clone((0,w1.getCurrentHub)().getScope()),o=yield w1.Scope.clone(this._scopeLastRun).applyToEvent(r);if(o){o=yield a.applyToEvent(o);let{beforeSend:c,sampleRate:p}=t;if(typeof p=="number"&&Math.random()>p)return os.logger.warn(`Discarding event because it's not included in the random sample (sampling rate = ${p})`),!0;if(o&&c){let f=yield this._ensureBeforeSendRv(c(r));if(f===null)return os.logger.warn("`beforeSend` returned `null`, will not send event."),!0;o=f}i.forEach(f=>{(0,os.forget)(n.uploadMinidump({path:f,event:o||{}}))})}return this._scopeLastRun=void 0,!0}}catch{os.logger.error("Error while sending native crash.")}return!1})}_ensureBeforeSendRv(t){let r="`beforeSend` method has to return `null` or a valid event.";if((0,os.isThenable)(t))return t.then(n=>{if(!((0,os.isPlainObject)(n)||n===null))throw new os.SentryError(r);return n},n=>{throw new os.SentryError(`beforeSend rejected with ${n}`)});if(!((0,os.isPlainObject)(t)||t===null))throw new os.SentryError(r);return t}};Rb.id="SentryMinidump";var y4=dt(Wn()),tqe=dt(Fd()),Bd=dt(Vr()),yg=require("electron");function Xae(e){return e!=null&&Object.keys(e).length>0}function WJt(e){let t=(0,y4.getCurrentHub)().getScope();return t?Object.assign(Object.assign(Object.assign({release:e.release,environment:e.environment},Xae(t._user)&&{user:t._user}),Xae(t._tags)&&{tags:t._tags}),Xae(t._extra)&&{extra:t._extra}):{}}function KJt(e){let{host:t,path:r,projectId:n,port:i,protocol:a,user:s}=(0,Bd.makeDsn)(e);return`${a}://${t}${i!==""?`:${i}`:""}${r!==""?`/${r}`:""}/api/${n}/minidump/?sentry_key=${s}`}var N7=class e{constructor(){this.name=e.id,this._updateEpoch=0}setupOnce(){var t,r;if(process.mas)return;if(nF())throw new Bd.SentryError(`The '${this.name}' integration is only supported with Electron >= v9`);let n=(t=(0,y4.getCurrentHub)().getClient())===null||t===void 0?void 0:t.getOptions();if(!n?.dsn)throw new Bd.SentryError("Attempted to enable Electron native crash reporter but no DSN was supplied");this._customRelease=n.release,this._startCrashReporter(n),c4(O7,(a,s)=>{F7()}),l4()&&this._setupScopeListener();let i=XNe((r=yg.crashReporter.getLastCrashReport())===null||r===void 0?void 0:r.date);(0,Bd.forget)(cF(i))}_startCrashReporter(t){let r=l4()?{sentry___initialScope:JSON.stringify(WJt(t))}:void 0;Bd.logger.log("Starting Electron crashReporter"),yg.crashReporter.start({companyName:"",ignoreSystemCrashHandler:!0,productName:yg.app.name||yg.app.getName(),submitURL:KJt(t.dsn||""),uploadToServer:!0,compress:!0,globalExtra:r})}_setupScopeListener(){let t=(0,y4.getCurrentHub)().getScope();t&&t.addScopeListener(r=>{let n=y4.Scope.clone(r);n._eventProcessors=[],n._scopeListeners=[],this._updateExtraParams(n)})}_updateExtraParams(t){this._updateEpoch+=1;let r=this._updateEpoch;(0,Bd.forget)(this._getNativeUploaderEvent(t).then(n=>{if(r!==this._updateEpoch)return;let i=this._getNativeUploaderExtraParams(n);for(let a of Object.keys(i))yg.crashReporter.addExtraParameter(a,i[a])}))}_getNativeUploaderEvent(t){return jr(this,void 0,void 0,function*(){let r=gf(yield Pb(this._customRelease),{level:tqe.Severity.Fatal,platform:"native",tags:{"event.environment":"native",event_type:"native"}});return yield t.applyToEvent(r),mR(r,yg.app.getAppPath())})}_getNativeUploaderExtraParams(t){let n=Buffer.from(JSON.stringify(t)),i=[];for(;n.length;){let a=n.lastIndexOf(34,20301);a<0&&(a=n.lastIndexOf(32,20300+1)),a<0&&(a=n.indexOf(34,20300)),a<0&&(a=n.indexOf(32,20300)),a<0&&(a=20300),i.push(n.slice(0,a+1).toString()),n=n.slice(a+1)}return i.reduce((a,s,o)=>(a[`sentry__${o+1}`]=s,a),{})}};N7.id="ElectronMinidump";var rqe=dt(Wn()),nqe=dt(Vr()),iqe=require("electron"),aqe=require("fs");var Fb=class e{constructor(){this.name=e.id}setupOnce(){var t;let r=(t=(0,rqe.getCurrentHub)().getClient())===null||t===void 0?void 0:t.getOptions();r.ipcMode&vf.Classic&&iqe.app.once("ready",()=>{this._addPreloadToSessions(r)})}_addPreloadToSessions(t){let r;try{r=nF()?require.resolve("../../preload/legacy.js"):require.resolve("../../preload/index.js")}catch{}if(r&&typeof r=="string"&&(0,aqe.existsSync)(r))for(let n of t.getSessions()){let i=n.getPreloads();n.setPreloads([r,...i])}else nqe.logger.log("The preload script could not be injected automatically. This is most likely caused by bundling of the main process")}};Fb.id="PreloadInjection";var Qae=dt(Vr()),q7=require("electron");var jb=class e{constructor(){this.name=e.id,this._exitHandler=t=>jr(this,void 0,void 0,function*(){if(!t.defaultPrevented){Qae.logger.log("[MainProcessSession] Exit Handler"),t.preventDefault();try{yield JNe()}catch(r){Qae.logger.warn("[MainProcessSession] Error ending session:",r)}q7.app.exit()}})}setupOnce(){YNe(),this._ensureExitHandlerLast(),q7.app.on("before-quit",()=>{this._ensureExitHandlerLast()})}_ensureExitHandlerLast(){q7.app.removeListener("will-quit",this._exitHandler),q7.app.on("will-quit",this._exitHandler)}};jb.id="MainProcessSession";var b4=require("electron"),sqe=require("os");var YJt={cpu:!0,screen:!0,memory:!0,language:!0},Nb=class e{constructor(t={}){this.name=e.id,this._lazyDeviceContext={},this._options=Object.assign(Object.assign({},YJt),t)}setupOnce(t){t(r=>jr(this,void 0,void 0,function*(){return this._addAdditionalContext(r)})),hg.then(()=>{let{language:r,screen:n}=this._options;r&&(this._lazyDeviceContext.language=b4.app.getLocale()),n&&(this._setPrimaryDisplayInfo(),b4.screen.on("display-metrics-changed",()=>{this._setPrimaryDisplayInfo()}))})}_addAdditionalContext(t){let r=this._lazyDeviceContext,{memory:n,cpu:i}=this._options;if(n){let{total:a,free:s}=process.getSystemMemoryInfo();r.memory_size=a*1024,r.free_memory=s*1024}if(i){let a=(0,sqe.cpus)();if(a&&a.length){let s=a[0];r.processor_count=a.length,r.cpu_description=s.model,r.processor_frequency=s.speed,b4.app.runningUnderARM64Translation&&(r.machine_arch="arm64")}}return gf(t,{contexts:{device:r}})}_setPrimaryDisplayInfo(){let t=b4.screen.getPrimaryDisplay(),r=Math.floor(t.size.width*t.scaleFactor),n=Math.floor(t.size.height*t.scaleFactor);this._lazyDeviceContext.screen_density=t.scaleFactor,this._lazyDeviceContext.screen_resolution=`${r}x${n}`}};Nb.id="AdditionalContext";var Zae=dt(Wn()),uqe=dt(Vr()),cqe=require("electron"),L7=dt(require("url")),JJt={breadcrumbs:!0,tracing:(e,t)=>!0,tracingOrigins:(e,t)=>!0};function XJt(e){return Object.keys(e).reduce((t,r)=>((typeof e[r]=="function"||e[r]===!1)&&(t[r]=e[r]),t),{})}var qb=class e{constructor(t={}){this.name=e.id,this._options=Object.assign(Object.assign({},JJt),XJt(t))}setupOnce(){(this._options.breadcrumbs||this._options.tracing)&&(0,uqe.fill)(cqe.net,"request",ZJt(this._options))}};qb.id="Net";function QJt(e){let{method:t,options:r}=typeof e=="string"?{method:"GET",options:L7.parse(e)}:{method:(e.method||"GET").toUpperCase(),options:e},n="url"in r?r.url:void 0;if(!n){let i={};i.protocol=r.protocol||"http:",r.host?i.host=r.host:(r.hostname?i.hostname=r.hostname:i.hostname="localhost",r.port&&(i.port=r.port));let a=L7.parse(r.path||"/");i.pathname=a.pathname,i.search=a.search,i.hash=a.hash,n=L7.format(i)}return{method:t,url:n}}function ZJt(e){return function(r){return function(i){let a=this,{url:s,method:o}=QJt(i),c=r.apply(a,[i]);if(s.match(/sentry_key/)||c.getHeader("x-sentry-auth"))return c;let p,f=(0,Zae.getCurrentHub)().getScope();if(f&&e.tracing&&e.tracing(o,s)){let d=f.getSpan();d&&(p=d.startChild({description:`${o} ${s}`,op:"http.client"}),e.tracingOrigins&&e.tracingOrigins(o,s)&&c.setHeader("sentry-trace",p.toTraceparent()))}return c.once("response",function(d){let h=this;e.breadcrumbs&&oqe("response",o,s,h,d),p&&(d.statusCode&&p.setHttpStatus(d.statusCode),p.finish())}).once("error",function(d){let h=this;e.breadcrumbs&&oqe("error",o,s,h,void 0),p&&(p.setHttpStatus(500),p.finish())})}}}function oqe(e,t,r,n,i){(0,Zae.getCurrentHub)().addBreadcrumb({type:"http",category:"electron.net",data:{url:r,method:t,status_code:i&&i.statusCode}},{event:e,request:n,response:i})}var bg=dt(Wn()),gF=dt(Fd());var lqe={breadcrumbs:PNe,events:["abnormal-exit","launch-failed","integrity-failure"]};function mF(e,t){let r=`'${t}' process exited with '${e}'`;switch(e){case"abnormal-exit":case"killed":return{message:r,level:gF.Severity.Warning};case"crashed":case"oom":case"launch-failed":case"integrity-failure":return{message:r,level:gF.Severity.Critical};default:return{message:r,level:gF.Severity.Debug}}}var Lb=class e{constructor(t={}){this.name=e.id;let{breadcrumbs:r,events:n}=t;this._options={breadcrumbs:Array.isArray(r)?r:r==!1?[]:lqe.breadcrumbs,events:Array.isArray(n)?n:n==!1?[]:lqe.events}}setupOnce(){var t;let{breadcrumbs:r,events:n}=this._options,i=Array.from(new Set([...r,...n]));if(i.length>0){let a=(t=(0,bg.getCurrentHub)().getClient())===null||t===void 0?void 0:t.getOptions();rF(i,s=>{let{reason:o}=s;if(n.includes(o)){let{message:c,level:p}=mF(s.reason,s.type);(0,bg.captureMessage)(c,{level:p,tags:{"event.process":s.type}})}r.includes(o)&&(0,bg.addBreadcrumb)(Object.assign(Object.assign({type:"process",category:"child-process"},mF(s.reason,s.type)),{data:s}))}),c4(i,(s,o)=>{var c;let{reason:p}=o,f=((c=a?.getRendererName)===null||c===void 0?void 0:c.call(a,s))||"renderer";if(n.includes(p)){let{message:d,level:h}=mF(o.reason,f);(0,bg.captureMessage)(d,h)}r.includes(p)&&(0,bg.addBreadcrumb)(Object.assign(Object.assign({type:"process",category:"child-process"},mF(o.reason,f)),{data:o}))})}}};Lb.id="ChildProcess";var Sa=dt(Wn()),ase=dt(u4());var tse=dt(Wn()),pqe=dt(u4()),$b=dt(Vr()),fqe=require("electron"),dqe=require("stream"),hqe=dt(require("url")),mqe=require("zlib");var eXt=1024*32,wg=class extends Error{constructor(t,r){super(r),this.status=t}};function tXt(e){return new dqe.Readable({read(){this.push(e),this.push(null)}})}var $7=class extends pqe.Transports.BaseTransport{constructor(t){super(t),this.options=t,this._buffer=(0,$b.makePromiseBuffer)(30)}sendEvent(t){return jr(this,void 0,void 0,function*(){let r=JSON.stringify({event_id:t.event_id,sent_at:new Date().toISOString()}),n=t.type||"event",i=JSON.stringify({type:n});if(this._isRateLimited(n))throw new wg("rate_limit",`Transport locked till ${JSON.stringify(this._rateLimits,null,2)} due to too many requests.`);delete t.sdkProcessingMetadata;let a=JSON.stringify(t),s=Buffer.from(`${r}
${i}
${a}
`);return this.sendRequest({url:(0,tse.getEnvelopeEndpointWithUrlEncodedAuth)(this._api.dsn),body:s,type:n})})}sendSession(t){let{name:r,version:n}=Wae(),i=JSON.stringify({sent_at:new Date().toISOString(),sdk:{name:r,version:n}}),a="aggregates"in t?"sessions":"session",s=JSON.stringify({type:a}),o=JSON.stringify(t),c=Buffer.from(`${i}
${s}
${o}
`);return this.sendRequest({url:(0,tse.getEnvelopeEndpointWithUrlEncodedAuth)(this._api.dsn),body:c,type:a})}isRateLimited(t){return this._isRateLimited(t)}sendRequest(t){return jr(this,void 0,void 0,function*(){if($b.logger.log(`Sending '${t.type}' request`),this._isRateLimited(t.type))throw new wg("rate_limit",`Transport for ${t.type} requests locked till ${this._disabledUntil(t.type)} due to too many requests.`);let r=this._getRequestOptions(new hqe.URL(t.url));r.headers=Object.assign(Object.assign({},r.headers),{"Content-Type":"application/x-sentry-envelope"});let n=tXt(t.body);return t.body.length>eXt&&(r.headers["Content-Encoding"]="gzip",n=n.pipe((0,mqe.createGzip)())),yield hg,this._buffer.add(()=>new Promise((i,a)=>{let s=fqe.net.request(r);s.on("error",a),s.on("response",o=>{o.on("error",a);let c=(0,$b.eventStatusFromHttpCode)(o.statusCode);if(c==="success")i({status:c});else{if(c==="rate_limit"){let p=o.headers?o.headers["retry-after"]:"";p=Array.isArray(p)?p[0]:p;let f=o.headers?o.headers["x-sentry-rate-limits"]:"";f=Array.isArray(f)?f[0]:f,this._handleRateLimit({"x-sentry-rate-limits":f,"retry-after":p})&&$b.logger.warn(`Too many requests, backing off until: ${this._disabledUntil(t.type)}`)}if(o.headers&&o.headers["x-sentry-error"]){let p=o.headers["x-sentry-error"];Array.isArray(p)&&(p=p.join(", ")),a(new wg(c,`HTTP Error (${o.statusCode}): ${p}`))}else a(new wg(c,`HTTP Error (${o.statusCode})`))}o.on("data",()=>{}),o.on("end",()=>{})}),n.pipe(s)}))})}};var yqe=dt(Wn()),Bb=dt(Vr()),rse=require("electron"),bqe=require("path");var bF=dt(Vr()),vF=require("path");var rXt=864e5,yF=class{constructor(t,r=30,n=30){this._queuePath=t,this._maxAgeDays=r,this._maxCount=n,this._queue=new vg(this._queuePath,"queue",[])}add(t){return jr(this,void 0,void 0,function*(){let r=(0,bF.uuid4)();this._queue.update(n=>{for(n.push({bodyPath:r,type:t.type,date:t.date||new Date});n.length>this._maxCount;){let i=n.shift();i&&this._removeBody(i.bodyPath)}return n});try{yield LNe((0,vF.join)(this._queuePath,r),t.body)}catch{}})}pop(t){return jr(this,void 0,void 0,function*(){let r,n=Date.now()-rXt*this._maxAgeDays;if(this._queue.update(i=>{for(;(r=i.shift())&&r.date.getTime()<n;)this._removeBody(r.bodyPath),r=void 0;return i}),r)try{let i=yield h4((0,vF.join)(this._queuePath,r.bodyPath));return this._removeBody(r.bodyPath),{body:i,date:r.date,type:r.type,url:t}}catch(i){bF.logger.warn("Filed to read queued request body",i)}})}_removeBody(t){return jr(this,void 0,void 0,function*(){try{yield y1((0,vF.join)(this._queuePath,t))}catch{}})}};var gqe=5e3,vqe=2e9;function nXt(){return!("online"in rse.net)||rse.net.online===!0}var B7=class extends $7{constructor(t){super(t),this.options=t,this._queue=new yF((0,bqe.join)(d4,"queue")),this._url=(0,yqe.getEnvelopeEndpointWithUrlEncodedAuth)(this._api.dsn),this._retryDelay=gqe,this._flushQueue()}sendRequest(t){let r=Object.create(null,{sendRequest:{get:()=>super.sendRequest}});return jr(this,void 0,void 0,function*(){if(nXt())try{let n=yield r.sendRequest.call(this,t);return this._requestSuccess(),n}catch(n){if(n instanceof wg&&n.status!=="rate_limit")return Bb.logger.warn("Dropping request:",n),{status:"failed"};Bb.logger.log("Error sending:",n)}else Bb.logger.log(`Currently Offline. Not sending '${t.type}' request. `);return yield this._queueRequest(t)})}_requestSuccess(){Bb.logger.log("Successfully sent"),this._retryDelay=gqe,this._flushQueue()}_queueRequest(t){return jr(this,void 0,void 0,function*(){return Bb.logger.log("Queuing request"),yield this._queue.add(t),setTimeout(()=>{this._flushQueue()},this._retryDelay),this._retryDelay*=3,this._retryDelay>vqe&&(this._retryDelay=vqe),{status:"unknown"}})}_flushQueue(){this._queue.pop(this._url).then(t=>{t&&(Bb.logger.log("Found a request in the queue"),this.sendRequest(t))})}};var wF=dt(u4()),Eqe=require("electron");var w4=dt(Wn()),_g=dt(Vr()),Mb=require("electron");function wqe(e,t,r){var n;let i;try{i=JSON.parse(t)}catch{_g.logger.warn("sentry-electron received an invalid event message");return}let a=r&&((n=e?.getRendererName)===null||n===void 0?void 0:n.call(e,r))||"renderer";(0,w4.captureEvent)(gf(i,{tags:{"event.process":a}}))}function nse(e){return e!=null&&Object.keys(e).length>0}function _qe(e,t){let r;try{r=JSON.parse(t)}catch{_g.logger.warn("sentry-electron received an invalid scope message");return}let n=w4.Scope.clone(r);(0,w4.configureScope)(i=>{nse(n._user)&&i.setUser(n._user),nse(n._tags)&&i.setTags(n._tags),nse(n._extra)&&i.setExtras(n._extra);let a=n._breadcrumbs.pop();a&&i.addBreadcrumb(a,e?.maxBreadcrumbs||100)})}function iXt(e){if(Mb.app.isReady())throw new _g.SentryError("Sentry SDK should be initialized before the Electron app 'ready' event is fired");Mb.protocol.registerSchemesAsPrivileged([{scheme:WS,privileges:{bypassCSP:!0,corsEnabled:!0,supportFetchAPI:!0}}]),(0,_g.forget)(hg.then(()=>{for(let t of e.getSessions())t.protocol.registerStringProtocol(WS,(r,n)=>{var i,a;let s=(a=(i=r.uploadData)===null||i===void 0?void 0:i[0])===null||a===void 0?void 0:a.bytes.toString();r.url.startsWith(`${WS}://${hb.EVENT}`)&&s?wqe(e,s):r.url.startsWith(`${WS}://${hb.SCOPE}`)&&s&&_qe(e,s),n("")})}))}function aXt(e){Mb.ipcMain.on(hb.EVENT,({sender:t},r)=>wqe(e,r,t)),Mb.ipcMain.on(hb.SCOPE,(t,r)=>_qe(e,r))}function xqe(e){if(!zae()&&e.ipcMode===vf.Protocol)throw new _g.SentryError("IPCMode.Protocol is only supported in Electron >= v5");zae()&&(e.ipcMode&vf.Protocol)>0&&iXt(e),(e.ipcMode&vf.Classic)>0&&aXt(e)}gR("main");var Sqe=[new Rb,new Tb,new qb,new Ib,new Lb,new Ob,new Fb,new Nb,...wF.defaultIntegrations.filter(e=>e.name!=="OnUncaughtException")],sXt={ipcMode:vf.Both,getSessions:()=>[Eqe.session.defaultSession]};function ise(e){let t=Object.assign(sXt,e),r=Sqe;t.release===void 0&&(t.release=Kae()),t.environment===void 0&&(t.environment=Yae()),t.autoSessionTracking!==!1&&(r.push(new jb),t.autoSessionTracking=!1),oXt(r,t),t.dsn&&t.transport===void 0&&(t.transport=B7),xqe(t),(0,wF.init)(t)}function oXt(e,t){if(t.defaultIntegrations===void 0){if(Array.isArray(t.integrations)&&t.integrations.some(r=>r.name==="ElectronMinidump")){t.defaultIntegrations=e.filter(r=>r.name!=="SentryMinidump");return}else if(typeof t.integrations=="function"){let r=t.integrations;t.integrations=n=>{let i=r(n);return i.some(a=>a.name==="ElectronMinidump")?i.filter(a=>a.name!=="SentryMinidump"):i}}t.defaultIntegrations=e}}gR("main");var tWr=Object.assign(Object.assign({},ese),kqe.Integrations);var Oqe=!jo&&process.env.NODE_ENV!=="dev"&&!Me.disableErrorTracking;if(Oqe){ise({beforeSend(e){let t=!1;return e.request&&e.request.url&&!e.request.url.includes("todesktop")&&(t=!0),t?null:e},dsn:"https://3f70b4c842dd4eeda545b01171b0d666@sentry.io/1889009",integrations:[new Tqe.Dedupe],release:Id.desktopifyVersion});try{Sa.setUser({id:(0,Aqe.machineIdSync)()})}catch{}Sa.setExtra("appOptions",Me)}var _F=(e,t)=>{Rt(e,t instanceof Error?t.stack:t),Oqe&&Sa.captureException(t)};var sse=require("electron");function M7(){sse.BrowserWindow.getAllWindows().forEach(t=>{t.removeAllListeners("close")}),Me.windows?.forEach(t=>{if(t.type==="panel"&&process.platform==="darwin"){let r=t1[t.id],n=sse.BrowserWindow.fromId(r);n&&n.setClosable(!0)}})}var ose=require("electron"),Dqe=dt(require("path"));function xF(){let e=ose.app.getAppPath(),t=Dqe.default.join(ose.app.getPath("appData"),"ToDesktop Builder","apps");return e.startsWith(t)}var DBe=dt(OBe()),yl=new DBe.default;var CBe=require("electron"),rj=require("fs"),goe=dt(require("path")),X7=null;function nj(){if(X7!==null)return X7;try{(0,rj.accessSync)(goe.default.join(goe.default.dirname(CBe.app.getPath("exe")),"installed_using_msi.txt"),rj.constants.R_OK),X7=!0}catch{X7=!1}return X7}var Mer=e=>{let t=e.title||fre("updateNotification.title")||"A new update is ready to install",r=e.body||fre("updateNotification.body")||`${Me.name} has been downloaded and will be automatically installed on exit.`;return{title:t,body:r}},PBe=e=>({message:e.message||"Update Available",detail:e.detail||`A new version of ${Me.name} is ready to be installed.`,installOnNextLaunchButton:e.installOnNextLaunchButton||"Install on next launch",restartAndInstallButton:e.restartAndInstallButton||`Install now and restart ${Me.name}`}),IBe=()=>{let e=Me.autoUpdates,{shouldAutoCheckInterval:t,autoCheckIntervalMins:r,autoUpdater:n,shouldAutoCheckOnLaunch:i,updateReadyAction:a}=e,s=Me.pollForAppUpdatesEveryXMinutes,o=t?r:s,c={autoUpdater:n,autoCheckInterval:o?o*60*1e3:0,shouldAutoCheckOnLaunch:i,updateReadyAction:{showInstallAndRestartPrompt:({appIsInForeground:p})=>{let{mode:f,options:d}=a.showInstallAndRestartPrompt;if(f!=="never"&&!(f==="whenInForeground"&&!p))return PBe(d)},showNotification:({appIsInForeground:p})=>{let{mode:f,options:d}=a.showNotification;if(f!=="never"&&!(f==="whenInBackground"&&p))return Mer(d)}}};return{configuration:e,runtimeParams:c}};async function RBe(){if(!zd.default.autoUpdater)return;let{configuration:e}=IBe(),t=zd.default.autoUpdater;if(!t)return;let r=setTimeout(()=>{new Yb.Notification({title:"Checking for update..."}).show()},2e3),{updateInfo:n}=await t.checkForUpdates({disableUpdateReadyAction:!0});if(clearTimeout(r),n){let{showInstallAndRestartPrompt:i}=e.updateReadyAction,{message:a,detail:s,installOnNextLaunchButton:o,restartAndInstallButton:c}=PBe(i.options),{response:p}=await Yb.dialog.showMessageBox({type:"info",buttons:[o,c],message:a,detail:s});p===1&&setImmediate(()=>{try{zd.default.autoUpdater?.restartAndInstall()}catch{}})}else Yb.dialog.showMessageBox({type:"info",buttons:["Ok"],message:"You\u2019re all good",detail:`You\u2019ve got the latest version of ${Yb.app.getName()}.`})}var Uer=()=>{let e=Id.version,t=yl.get("lastSeenAppVersion");if(t!==e){yl.set("lastSeenAppVersion",e);let r=yl.get("autoUpdateDownloaded");r&&(e===r.version&&Rt("main","App auto-update complete",{currentAppVersion:e,oldAppVersion:t}),yl.delete("autoUpdateDownloaded"))}return{currentAppVersion:e}};function zer(){let{runtimeParams:e}=IBe();if(process.platform==="win32"&&nj()&&(Rt("main","Detected as MSI, skipping auto-update initialisation."),e.autoUpdater=!1),xF()&&(process.argv.some(r=>r.includes("--runtime-simulate-updates"))||process.argv.push("--runtime-simulate-updates=update-not-available")),zd.default.init(e),e.autoUpdater&&zd.default.autoUpdater){let{currentAppVersion:t}=Uer(),r=zd.default.autoUpdater;r.on("before-quit-for-update",M7),r.on("error",n=>{Rt("main","App auto-update failed",{currentAppVersion:t,updateInfo:yl.get("autoUpdateDownloaded")}),_F("main",n)}),r.on("update-downloaded",({updateInfo:n})=>{yl.set("autoUpdateDownloaded",n),Rt("main","App auto-update downloaded",{currentAppVersion:t,updateInfo:n})})}}zer();var $x=require("electron");var sMe=require("electron"),$oe=dt(require("fs")),F4=dt(require("path"));var FBe=e=>typeof e!="string"?e:{package:e};var ij=dt(require("path")),Her=[1,2,3],jBe=e=>{console.log(`
***
Fetching files for ${e}`);let t=voe(e);console.log("[pluginDir]",t);let r=require(ij.default.join(t,"package.json"));console.log("[packageJson]",r);let n=r.todesktop?.main||r.main;console.log("[pluginFile]",n);let i=ij.default.join(t,n);console.log("[entryPath",i);let a=require(i);console.log("[file]",a);let{config:s,...o}=a;console.log("[functions]",o);let c=r.todesktop||s;console.log("[todesktop]",c);let p=/^[a-zA-Z][a-zA-Z0-9-_]*$/;if(!c)throw new Error(`${e}: "todesktop" config needs to be exported from index file or package.json'`);if(console.log("[passed todesktop export check]"),!c.namespace)throw new Error(`${e}: config namespace is required`);if(console.log("[passed todesktop namespace exists]"),!p.test(c.namespace))throw new Error(`"${e}: config namespace has an invalid value`);if(console.log("[passed todesktop namespace valid]"),!Her.includes(c.version))throw new Error(`${e}: config version has an invalid value`);return console.log("[passed todesktop version valid]"),console.log(`Fetched files for ${e}
***
`),{file:a,functions:o,todesktop:c,packageJson:r}};var voe=(e,t=__dirname)=>{let r=i=>i.replace(/@.*$/,""),n=e[0]==="@"?"@"+r(e.substring(1)):r(e);return ij.default.join(t,"node_modules",n)};var iMe=dt(yoe()),cj=require("electron");var rMe=dt(Doe()),S1=require("electron");var Coe=dt(require("crypto"),1);var HBe="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var Yer=128,Xb,P4,Jer=e=>{!Xb||Xb.length<e?(Xb=Buffer.allocUnsafe(e*Yer),Coe.default.randomFillSync(Xb),P4=0):P4+e>Xb.length&&(Coe.default.randomFillSync(Xb),P4=0),P4+=e};var Cg=(e=21)=>{Jer(e|=0);let t="";for(let r=P4-e;r<P4;r++)t+=HBe[Xb[r]&63];return t};function VBe(e){return typeof e=="function"}var Poe=class{objectStore={};referenceStore={};teardownStore={};storeObject(t,r={}){let{objectId:n=Cg(),namespaceString:i}=r,a=i||t.constructor?.name||"undefined-namespace";this.objectStore[n]=t;let s={id:n,namespace:a,type:"customId"};return this.referenceStore[n]=s,s}retrieveObject(t){return this.objectStore[t]}retrieveReference(t){return this.referenceStore[t]}deleteObject(t){t in this.objectStore&&(delete this.objectStore[t],t in this.referenceStore&&delete this.referenceStore[t]),t in this.teardownStore&&this.teardown(t)}registerForTeardown(t,r){if(t in this.teardownStore)throw new Error(`Object for ID ${t} already exists in the store`);if(!VBe(r))throw new Error("Callback is not a function");this.teardownStore[t]=r}teardown(t){if(!(t in this.teardownStore))return;let r=this.teardownStore[t];VBe(r)&&r(),delete this.teardownStore[t]}},Jl=new Poe;var GBe=require("electron"),WBe=dt(require("events"));function Ioe(e){return e instanceof WBe.default||e instanceof GBe.BrowserView?!1:typeof e=="object"&&e!==null?Object.values(e).every(oj):oj(e)}function oj(e){let t={}.toString.call(e).slice(8,-1);return!(["symbol","function"].includes(typeof e)||["Arguments","Module","Error","Promise","WeakMap","WeakSet","Event","MessageChannel"].includes(t)||e&&typeof e=="object"&&e!==null&&"nodeType"in e&&"insertBefore"in e&&typeof e.nodeType=="number"&&typeof e.insertBefore=="function")}function KBe(e){return{async handle(t,r){return e.handle(t,r)}}}var Roe=class{channel;constructor(t){this.channel=t}off(...t){return this.channel.off(...t)}on(...t){return this.channel.on(...t)}once(...t){return this.channel.once(...t)}},Foe=class extends Roe{constructor(t){super(t)}handle(...t){this.channel.handle(...t)}};function YBe(e){return new Foe(e)}var QBe=dt(Doe()),uj=require("electron");var Hd=new QBe.default,joe=e=>({...e}),JBe=(e,t)=>typeof e=="object"&&e!==null&&"constructor"in e&&"name"in e.constructor&&e.constructor.name===t,XBe=(e,t,r)=>{let n={namespace:e,type:"nativeId",id:t};return r&&(n.content=r),n};Hd.register({CustomComplexObj:{test:e=>!Ioe(e),replace:e=>Jl.storeObject(e),revive:joe},EBrowserWindow:{test:e=>JBe(e,"BrowserWindow"),replace:e=>XBe(e.constructor.name,String(e.id)),revive:joe},EWebContents:{test:e=>JBe(e,"WebContents"),replace:e=>XBe(e.constructor.name,String(e.id)),revive:joe},Function:{test:e=>typeof e=="function",replace:e=>{let t=Cg();return uj.ipcMain.on(t,(r,...n)=>{e(...n)}),{id:t}},revive:({id:e})=>(...t)=>{process.type==="renderer"&&uj.ipcRenderer.send(e,...t)}}});var Xer=e=>e.endsWith("find-in-page.html"),Qer=e=>e.endsWith("td-password-form.html");var ZBe=e=>!Xer(e)&&!Qer(e);var Pg=new rMe.default,nMe=e=>typeof e=="object"&&e!==null&&"type"in e&&"namespace"in e&&"id"in e,eMe=e=>nMe(e)&&e.type==="nativeId",Zer=e=>nMe(e)&&e.type==="customId",Noe=e=>({...e}),qoe;process?.type==="renderer"&&ZBe(window.location.href)&&S1.ipcRenderer.invoke("window.id").then(e=>{qoe=e});Pg.register({NotClonable:{test:e=>{if(!oj(e))throw new DOMException("The object cannot be cloned.","DataCloneError");return!1}},CustomComplexObj:{testPlainObjects:!0,test:Zer,replace:Noe,revive:e=>Jl.retrieveObject(e.id)},Uint8Array:{test:e=>e instanceof Uint8Array,replace:e=>[...e],revive:e=>new Uint8Array(e)},EBrowserWindow:{testPlainObjects:!0,test:e=>eMe(e)&&e.namespace==="BrowserWindow",replace:Noe,revive:e=>{let t=S1.BrowserWindow.fromId(parseInt(e.id));if(!t)throw new Error(`BrowserWindow ${e.id} not found`);return t}},EWebContents:{testPlainObjects:!0,test:e=>eMe(e)&&e.namespace==="WebContents",replace:Noe,revive:e=>S1.webContents.fromId(parseInt(e.id))},Function:{test:e=>typeof e=="function",replace:e=>{if(!qoe)throw new Error("Window ID not found");let t=Cg();return S1.ipcRenderer.on(t,(r,n)=>e(...Hd.revive(n))),Jl.registerForTeardown(t,()=>{S1.ipcRenderer.removeAllListeners(t)}),{id:t,windowId:qoe}},revive:({id:e,windowId:t})=>(...r)=>{if(!t)throw new Error("Window ID not found");S1.BrowserWindow.fromId(t)?.webContents.send(e,Hd.encapsulate(r))}}});var I4=class{version=1;execMain(t){for(let r in t.dependenciesMap){let n=t.dependenciesMap[r];n.plugin.todesktop?.version===this.version&&this.execMainDependency(r,n)}}execMainDependency(t,{plugin:r,functions:n}){n.forEach(([i,a])=>{if(!a)throw new Error(`${t}: expected function for ${i}`);let s=`${r.todesktop?.namespace}:${i}`;cj.ipcMain.handle(s,async(o,...c)=>a(...c.map(p=>Pg.revive(p))))})}execPreload(t){let r={};for(let n in t.dependenciesMap){let i=t.dependenciesMap[n];i.plugin.todesktop?.version===this.version&&(0,iMe.merge)(r,this.execPreloadDependency(n,i))}return r}execPreloadDependency(t,{plugin:r,functions:n,packageJson:i}){let a={meta:{plugin:r,packageJson:i}};if(n.forEach(([s])=>{a[s]=(...o)=>cj.ipcRenderer.invoke(`${r.todesktop?.namespace}:${s}`,...o.map(c=>Pg.encapsulate(c)))}),r.todesktop?.namespace)return{[r.todesktop?.namespace]:a};throw new Error(`${r.package}: missing namespace`)}};var Loe=dt(yoe());var R4=class{v1Strategy=new I4;version=2;appOptions;loadEntryFileFn;constructor({appOptions:t,loadEntryFileFn:r}){this.appOptions=t,this.loadEntryFileFn=r}execMain(t){this.onPluginEntryPoints(t,{onSingleEntryPoint:(r,n)=>{this.v1Strategy.execMainDependency(r,n)},onMultipleEntryPoints:(r,{plugin:n})=>{let i=this.loadEntryFileFn(r,n.todesktop?.main,n);i&&this.callDefaultFunction(i,n)}})}execPreload(t){let r={};return this.onPluginEntryPoints(t,{onSingleEntryPoint:(n,i)=>{(0,Loe.merge)(r,this.v1Strategy.execPreloadDependency(n,i))},onMultipleEntryPoints:(n,{plugin:i,packageJson:a})=>{let s=this.loadEntryFileFn(n,i.todesktop?.preload,i);if(!s)return;this.callDefaultFunction(s,i);let o={meta:{plugin:i,packageJson:a}};if(Object.entries(s).forEach(([c,p])=>{typeof p=="function"&&(o[c]=p)}),i.todesktop)(0,Loe.merge)(r,{[i.todesktop.namespace]:o});else throw new Error(`Plugin ${i.package} is missing a todesktop namespace`)}}),r}callDefaultFunction(t,r){typeof t=="object"&&typeof t.default=="function"?t.default({plugin:r,appOptions:this.appOptions}):typeof t=="function"&&t({plugin:r,appOptions:this.appOptions})}onPluginEntryPoints(t,r){for(let n in t.dependenciesMap){let{functions:i,plugin:a,packageJson:s}=t.dependenciesMap[n],o;if(a.todesktop)o=a.todesktop;else throw new Error(`Plugin ${a.package} is missing a todesktop config`);if(o.version===this.version){if(!o.main&&!o.preload){r.onSingleEntryPoint(n,{functions:i,plugin:a,packageJson:s});continue}r.onMultipleEntryPoints(n,{functions:[],plugin:a,packageJson:s})}}}};var lj=class extends R4{version=3};var Boe=class{constructor(t=[],r){this.strategies=r;this.dependencies=t.map(FBe)}dependenciesMap={};dependencies=[];initialize(){this.setupPlugins(),sMe.ipcMain.on("get-plugins",t=>t.returnValue=this.serializePlugins())}inject(){this.strategies.forEach(t=>t.execMain(this))}setupPlugins(){for(let t of this.dependencies){let r=t.package;try{let{functions:n,todesktop:i,packageJson:a}=jBe(r);t={...t,todesktop:t.todesktop||i},this.dependenciesMap[r]={packageJson:a,plugin:t,functions:Object.entries(n).filter(([,s])=>typeof s=="function")}}catch(n){let i=`Error injecting plugin ${r}: ${n?.message}`;throw console.error(i),new Error(i)}}}serializePlugins(){let t={};for(let r in this.dependenciesMap){let{functions:n,plugin:i,packageJson:a}=this.dependenciesMap[r];t[r]={packageJson:a,plugin:i,functions:n.map(([s])=>[s,null])}}return t}};function Moe(){let e=[new I4,new R4({appOptions:Me,loadEntryFileFn:aMe}),new lj({appOptions:Me,loadEntryFileFn:aMe})],t=new Boe(Me.plugins,e);return t.initialize(),t.inject()}var aMe=(e,t)=>{if(!t)return;let r=voe(e),n=F4.default.join(r,t);if(!$oe.default.existsSync(n)){let i=require(F4.default.join(r,"package.json")).main,a=F4.default.dirname(F4.default.join(r,i)),s=F4.default.join(a,t);return $oe.default.existsSync(s)?require(s):void 0}return require(n)};var fj=require("electron");var pj=require("electron"),oMe=()=>{let e=pj.BrowserWindow.getAllWindows().filter(t=>!t.isDestroyed()&&t.isVisible());e.length>0?e[0].focus():process.platform==="darwin"&&pj.app.hide()};var etr=function({callback:e,shortcuts:t,appStateConditions:r=[]}){let n=()=>{fj.globalShortcut.registerAll(t,e)},i=()=>{t.forEach(a=>fj.globalShortcut.unregister(a))};r.forEach(({id:a,event:s,desiredValue:o})=>{tg(a,s)===o&&n(),ES(a,s,c=>{if(c===o){n();return}i()})})};function Uoe(e,t){if((jo||!Me.disableDevTools)&&etr({callback:()=>{e.webContents.toggleDevTools(),Rt("main","App DevTools toggled",{source:"keyboard shortcut"})},shortcuts:[process.platform==="darwin"?"Alt+Command+I":"Ctrl+Shift+I"],appStateConditions:[{event:"focus",desiredValue:!0,id:e.id},{event:"visibility",desiredValue:!0,id:e.id}]}),t.toggleVisibilityKeyboardShortcut){let r=ttr(t.toggleVisibilityKeyboardShortcut),n=!1;fj.globalShortcut.register(r,()=>{let i=e?.id;if(!i)return;if(t.type==="panel"&&process.platform==="darwin"){let o=e.isVisible();o&&n?e.hide():(Ma(e,Me),n||(n=!0)),Rt("main","Panel visibility toggled via keyboard shortcut",{isVisible:e.isVisible(),wasVisible:o});return}let a=tg(i,"visibility"),s=tg(i,"focus");if(a&&(s||t.type==="desktop")){e.hide(),oMe(),Rt("main","App visibility toggled via keyboard shortcut",{wasVisible:tg(i,"visibility")});return}Ma(e,Me),e.focus(),Rt("main","App visibility toggled via keyboard shortcut",{wasVisible:tg(i,"visibility")})})}}function ttr(e){return e?.includes("Shift")?e.split("+").map(n=>n.length===1?n.toUpperCase():n).join("+"):e}var j4=require("electron");var uMe=()=>{process.platform!=="darwin"&&(j4.app.requestSingleInstanceLock()||j4.app.quit(),j4.app.on("second-instance",()=>{if(ob(global.mainWindow))II(mainWindow,Me);else if(ob(global.app?.focusedWindow))II(global.app.focusedWindow,Me);else{let e=j4.BrowserWindow.getAllWindows();e.length>0&&II(e[0],Me)}}))};var mbe=dt(require("fs"));var Xl=()=>process.platform==="darwin";var Ig=require("electron"),nk=dt(require("fs")),fMe=dt(require("os")),hj=dt(require("path"));var dj,cMe=()=>{dj=!yl.get("hasLaunchedEver"),dj&&yl.set("hasLaunchedEver",!0)},lMe=()=>{if(dj===void 0)throw new Error("Not yet initialized");return dj};var pMe=dt(require("path"));function k1(){let{iconAssetDetails:e}=Me;if(e)return pMe.default.join(__dirname,e.relativeLocalPath)}var zoe=!["darwin","win32"].includes(process.platform),dMe=[],ik=async()=>zoe?rtr():Ig.app.getLoginItemSettings().openAtLogin,ak=(e,t)=>{if(jo){Rt("main","Ignoring launchAtStartup.set() call in dev");return}zoe?ntr(e):Ig.app.setLoginItemSettings({openAtLogin:e}),dMe.forEach(r=>r(e)),t&&Rt("main","App launch at startup setting updated",{willLaunchAtStartup:e,source:t})},hMe=()=>{jo||zoe||lMe()&&Me.shouldLaunchAtStartupByDefault&&(Rt("main","Enabling launch at startup (first launch)"),ak(Me.shouldLaunchAtStartupByDefault))},mMe=e=>dMe.push(e);function rtr(){return nk.default.existsSync(gMe(Ig.app.getName()))}function ntr(e){let t=gMe(Id.name||Ig.app.getName());if(e)nk.default.mkdirSync(hj.default.dirname(t),{recursive:!0}),nk.default.writeFileSync(t,itr({autoStart:!0,name:Ig.app.getName(),iconPath:k1()}),"utf8");else try{nk.default.unlinkSync(t)}catch(r){if(r?.code==="ENOENT")return;throw r}}function gMe(e){return hj.default.join(process.env.XDG_CONFIG_HOME||hj.default.join(fMe.default.homedir(),".config"),"autostart",`${e}.desktop`)}function itr({autoStart:e=!1,comment:t,categories:r=["Utility"],exeArgs:n=Ig.app.isPackaged?[]:[Ig.app.getAppPath()],exePath:i=process.execPath,iconPath:a,mimeTypes:s,name:o}){let c="";return n?.length>0&&(c=" "+n.map(f=>p(f))),["[Desktop Entry]","Version=1.0","Type=Application",`Name=${o}`,`TryExec=${i}`,`Exec=${p(i)}${c} %U`,`Icon=${a}`,"Terminal=false",`Categories=${r.join(";")};`,e?"X-GNOME-Autostart-enabled=true":"",s?`MimeType=${s.join(";")};`:"",t?`Comment=${t}`:""].filter(Boolean).join(`
`);function p(f){return f.startsWith('"')&&f.endsWith('"')?f:/\s|["`$\\]/.test(f)?'"'+f.replace(/"/g,'\\"')+'"':f}}function vMe(e){return e.type!=="menubar"&&!["hidden","hiddenInset","customButtonsOnHover"].includes(e.options.titleBarStyle||"")&&!e.disableTabs}var Ql=vMe;function yMe(e,t){return vMe(e)&&Xl()&&["background-tab","foreground-tab"].includes(t)}var Gr=require("electron"),Lyt=require("url"),tU=dt(require("path")),XO=dt(require("os"));var nGe=require("electron");var tGe=require("electron"),rGe=dt(CMe());var L4=require("electron"),PMe=dt(require("path"));var IMe=require("os"),$4=({id:e,isMainWindow:t=!1,isWindowCreatedOnAppLoad:r})=>{let n,i,a=Me.windows.find(M=>M.id===e);if(!a)throw new Error(`No window with id ${e}!`);let s=a.type==="menubar";s?(i=400,n=600):(i=1280,n=800);let o,c=L4.BrowserWindow.getAllWindows().filter(M=>M.id===t1[e]),p=L4.BrowserWindow.getAllWindows();c.length>0&&!c[0].isDestroyed()&&(o=c[0].getBounds());let f=a.options.fullscreen&&t&&!s,d=f?void 0:o&&o.width||a.options.width||i,h=f?void 0:o&&o.height||a.options.height||n,g=99999,v=0,y,_,x,A,D=a.options.resizable===void 0?!0:a.options.resizable;if(f)y=void 0,_=void 0,x=void 0,A=void 0;else{let M=!s&&D,K=!s&&D;M?(_=a.hasMaxWidth?a.options.maxWidth:g,A=a.hasMinWidth?a.options.minWidth:v):(_=d,A=d),K?(y=a.hasMaxHeight?a.options.maxHeight:g,x=a.hasMinHeight?a.options.minHeight:v):(y=h,x=h)}let j,H,F=p.length,z=a.type==="menubar"?2:1;if(!s&&typeof d=="number"&&typeof h=="number"&&F>=z)if(o)j=o.x+15,H=o.y+15;else{let K=L4.screen.getDisplayNearestPoint(L4.screen.getCursorScreenPoint()).bounds,L=15*(F-(z-1));j=Math.floor(K.width/2-d/2+L),H=Math.floor(K.height/2-h/2+L)}let P={frame:!s,fullscreenable:!s,minimizable:!s,movable:!s,maximizable:!s,...a.options,height:h,maxHeight:y,minHeight:x,width:d,maxWidth:_,minWidth:A,x:j,y:H,fullscreen:f,resizable:D,icon:k1(),show:a.visibility==="visible",tabbingIdentifier:Ql(a)&&Xl()?a.name:void 0,title:a.name,type:a.type==="panel"?"panel":a.type==="desktop"&&(0,IMe.platform)()!=="win32"?"desktop":void 0,webPreferences:{...a.options.webPreferences?a.options.webPreferences:{},contextIsolation:!0,nodeIntegration:!1,preload:PMe.default.join(__dirname,"preload.js"),webSecurity:!Me.insecure,sandbox:!1}};return r||(P.show=!0),ftr(s,P)};function ftr(e,t){return e?{...t,frame:!1,fullscreenable:!1,minimizable:!1,movable:!1,maximizable:!1,resizable:!1,kiosk:!1,titleBarStyle:"default"}:t}var z4=dt(require("node:process"),1),Zl=dt(require("electron"),1);function Hoe(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}var RMe=(e=0)=>t=>`\x1B[${t+e}m`,FMe=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,jMe=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,Aa={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},JYr=Object.keys(Aa.modifier),dtr=Object.keys(Aa.color),htr=Object.keys(Aa.bgColor),XYr=[...dtr,...htr];function mtr(){let e=new Map;for(let[t,r]of Object.entries(Aa)){for(let[n,i]of Object.entries(r))Aa[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=Aa[n],e.set(i[0],i[1]);Object.defineProperty(Aa,t,{value:r,enumerable:!1})}return Object.defineProperty(Aa,"codes",{value:e,enumerable:!1}),Aa.color.close="\x1B[39m",Aa.bgColor.close="\x1B[49m",Aa.color.ansi=RMe(),Aa.color.ansi256=FMe(),Aa.color.ansi16m=jMe(),Aa.bgColor.ansi=RMe(10),Aa.bgColor.ansi256=FMe(10),Aa.bgColor.ansi16m=jMe(10),Object.defineProperties(Aa,{rgbToAnsi256:{value:(t,r,n)=>t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5),enumerable:!1},hexToRgb:{value:t=>{let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(a=>a+a).join(""));let i=Number.parseInt(n,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:t=>Aa.rgbToAnsi256(...Aa.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value:t=>{if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,i;if(t>=232)r=((t-232)*10+8)/255,n=r,i=r;else{t-=16;let o=t%36;r=Math.floor(t/36)/5,n=Math.floor(o/6)/5,i=o%6/5}let a=Math.max(r,n,i)*2;if(a===0)return 30;let s=30+(Math.round(i)<<2|Math.round(n)<<1|Math.round(r));return a===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>Aa.ansi256ToAnsi(Aa.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>Aa.ansi256ToAnsi(Aa.hexToAnsi256(t)),enumerable:!1}}),Aa}var gtr=mtr(),Voe=gtr;var vtr=/^[\uD800-\uDBFF][\uDC00-\uDFFF]$/,qMe=["\x1B","\x9B"],gj=e=>`${qMe[0]}[${e}m`,NMe=(e,t,r)=>{let n=[];e=[...e];for(let i of e){let a=i;i.includes(";")&&(i=i.split(";")[0][0]+"0");let s=Voe.codes.get(Number.parseInt(i,10));if(s){let o=e.indexOf(s.toString());o===-1?n.push(gj(t?s:a)):e.splice(o,1)}else if(t){n.push(gj(0));break}else n.push(gj(a))}if(t&&(n=n.filter((i,a)=>n.indexOf(i)===a),r!==void 0)){let i=gj(Voe.codes.get(Number.parseInt(r,10)));n=n.reduce((a,s)=>s===i?[s,...a]:[...a,s],[])}return n.join("")};function Vd(e,t,r){let n=[...e],i=[],a=typeof r=="number"?r:n.length,s=!1,o,c=0,p="";for(let[f,d]of n.entries()){let h=!1;if(qMe.includes(d)){let g=/\d[^m]*/.exec(e.slice(f,f+18));o=g&&g.length>0?g[0]:void 0,c<a&&(s=!0,o!==void 0&&i.push(o))}else s&&d==="m"&&(s=!1,h=!0);if(!s&&!h&&c++,!vtr.test(d)&&Hoe(d.codePointAt())&&(c++,typeof r!="number"&&a++),c>t&&c<=a)p+=d;else if(c===t&&!s&&o!==void 0)p=NMe(i);else if(c>=a){p+=NMe(i,!0,o);break}}return p}function Goe({onlyFirst:e=!1}={}){let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}var ytr=Goe();function Woe(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(ytr,"")}function LMe(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function $Me(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function BMe(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9800&&e<=9811||e===9855||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101632&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129672||e>=129680&&e<=129725||e>=129727&&e<=129733||e>=129742&&e<=129755||e>=129760&&e<=129768||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}function btr(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function MMe(e,{ambiguousAsWide:t=!1}={}){return btr(e),$Me(e)||BMe(e)||t&&LMe(e)?2:1}var HMe=dt(zMe(),1),wtr=new Intl.Segmenter;function B4(e,t={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:r=!0,countAnsiEscapeCodes:n=!1}=t;if(n||(e=Woe(e)),e.length===0)return 0;let i=0,a={ambiguousAsWide:!r};for(let{segment:s}of wtr.segment(e)){let o=s.codePointAt(0);if(!(o<=31||o>=127&&o<=159)&&!(o>=768&&o<=879)){if((0,HMe.default)().test(s)){i+=2;continue}i+=MMe(o,a)}}return i}function vj(e,t,r){if(e.charAt(t)===" ")return t;let n=r?1:-1;for(let i=0;i<=3;i++){let a=t+i*n;if(e.charAt(a)===" ")return a}return t}function Koe(e,t,r={}){let{position:n="end",space:i=!1,preferTruncationOnSpace:a=!1}=r,{truncationCharacter:s="\u2026"}=r;if(typeof e!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof e}`);if(typeof t!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof t}`);if(t<1)return"";if(t===1)return s;let o=B4(e);if(o<=t)return e;if(n==="start"){if(a){let c=vj(e,o-t+1,!0);return s+Vd(e,c,o).trim()}return i===!0&&(s+=" "),s+Vd(e,o-t+B4(s),o)}if(n==="middle"){i===!0&&(s=` ${s} `);let c=Math.floor(t/2);if(a){let p=vj(e,c),f=vj(e,o-(t-c)+1,!0);return Vd(e,0,p)+s+Vd(e,f,o).trim()}return Vd(e,0,c)+s+Vd(e,o-(t-c)+B4(s),o)}if(n==="end"){if(a){let c=vj(e,t-1);return Vd(e,0,c)+s}return i===!0&&(s=` ${s}`),Vd(e,0,t-B4(s))+s}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${n}`)}var yj=dt(require("node:process"),1),Qb=dt(require("node:path"),1),Gd=require("electron");var M4=dt(require("node:path"),1);var Yoe=dt(require("node:fs"),1);function VMe(e){try{return Yoe.default.accessSync(e),!0}catch{return!1}}var Joe=class extends Error{constructor(t,r){super("Max tries reached."),this.originalPath=t,this.lastTriedPath=r}},_tr=(e,t)=>{let r=e.match(/^(?<filename>.*)\((?<index>\d+)\)$/),{filename:n,index:i}=r?r.groups:{filename:e,index:0};return n=n.trim(),[`${n}${t}`,`${n} (${++i})${t}`]},GMe=(e,t)=>{let r=M4.default.extname(e),n=M4.default.dirname(e),[i,a]=t(M4.default.basename(e,r),r);return[M4.default.join(n,i),M4.default.join(n,a)]};function WMe(e,{incrementer:t=_tr,maxTries:r=Number.POSITIVE_INFINITY}={}){let n=0,[i]=GMe(e,t),a=e;for(;;){if(!VMe(a))return a;if(++n>r)throw new Joe(i,a);[i,a]=GMe(a,t)}}var KMe=e=>e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;");function YMe(e,...t){if(typeof e=="string")return KMe(e);let r=e[0];for(let[n,i]of t.entries())r=r+KMe(String(i))+e[n+1];return r}var Xoe=class extends Error{constructor(t){super(`Missing a value for ${t?`the placeholder: ${t}`:"a placeholder"}`,t),this.name="MissingValueError",this.key=t}};function Qoe(e,t,{ignoreMissing:r=!1,transform:n=({value:i})=>i}={}){if(typeof e!="string")throw new TypeError(`Expected a \`string\` in the first argument, got \`${typeof e}\``);if(typeof t!="object")throw new TypeError(`Expected an \`object\` or \`Array\` in the second argument, got \`${typeof t}\``);let i=(c,p)=>{let f=t;for(let h of p.split("."))f=f?f[h]:void 0;let d=n({value:f,key:p});if(d===void 0){if(r)return c;throw new Xoe(p)}return String(d)},a=c=>(...p)=>YMe(c(...p)),s=/{{(\d+|[a-z$_][\w\-$]*?(?:\.[\w\-$]*?)*?)}}/gi;s.test(e)&&(e=e.replace(s,a(i)));let o=/{(\d+|[a-z$_][\w\-$]*?(?:\.[\w\-$]*?)*?)}/gi;return e.replace(o,i)}var lUe=dt(rue(),1),nue=class extends Error{},Str=(e,t)=>{let r=lUe.default.mime(t);return r.length!==1?e:`${e}.${r[0].ext}`};function ktr(e,t,r=()=>{}){let n=new Set,i=0,a=0,s=0,o=()=>n.size,c=()=>i/s;t={showBadge:!0,showProgressBar:!0,...t};let p=(f,d,h)=>{n.add(d),s+=d.getTotalBytes();let g=Gd.BrowserWindow.fromWebContents(h);if(!g)throw new Error("Failed to get window from web contents.");if(t.directory&&!Qb.default.isAbsolute(t.directory))throw new Error("The `directory` option must be an absolute path");let v=t.directory??Gd.app.getPath("downloads"),y;if(t.filename)y=Qb.default.join(v,t.filename);else{let x=d.getFilename(),A=Qb.default.extname(x)?x:Str(x,d.getMimeType());y=t.overwrite?Qb.default.join(v,A):WMe(Qb.default.join(v,A))}let _=t.errorMessage??"The download of {filename} was interrupted";t.saveAs?d.setSaveDialogOptions({defaultPath:y,...t.dialogOptions}):d.setSavePath(y),d.on("updated",()=>{i=a;for(let x of n)i+=x.getReceivedBytes();if(t.showBadge&&["darwin","linux"].includes(yj.default.platform)&&(Gd.app.badgeCount=o()),!g.isDestroyed()&&t.showProgressBar&&g.setProgressBar(c()),typeof t.onProgress=="function"){let x=d.getReceivedBytes(),A=d.getTotalBytes();t.onProgress({percent:A?x/A:0,transferredBytes:x,totalBytes:A})}typeof t.onTotalProgress=="function"&&t.onTotalProgress({percent:c(),transferredBytes:i,totalBytes:s})}),d.on("done",(x,A)=>{if(a+=d.getTotalBytes(),n.delete(d),t.showBadge&&["darwin","linux"].includes(yj.default.platform)&&(Gd.app.badgeCount=o()),!g.isDestroyed()&&!o()&&(g.setProgressBar(-1),i=0,a=0,s=0),t.unregisterWhenDone&&e.removeListener("will-download",p),A==="cancelled")typeof t.onCancel=="function"&&t.onCancel(d),r(new nue);else if(A==="interrupted"){let D=Qoe(_,{filename:Qb.default.basename(y)});r(new Error(D))}else if(A==="completed"){let D=d.getSavePath();yj.default.platform==="darwin"&&Gd.app.dock.downloadFinished(D),t.openFolderWhenDone&&Gd.shell.showItemInFolder(D),typeof t.onCompleted=="function"&&t.onCompleted({fileName:d.getFilename(),filename:d.getFilename(),path:D,fileSize:d.getReceivedBytes(),mimeType:d.getMimeType(),url:d.getURL()}),r(null,d)}}),typeof t.onStarted=="function"&&t.onStarted(d)};e.on("will-download",p)}async function U4(e,t,r){return new Promise((n,i)=>{r={...r,unregisterWhenDone:!0},ktr(e.webContents.session,r,(a,s)=>{a?i(a):n(s)}),e.webContents.downloadURL(t)})}var iue=dt(require("electron"),1);if(typeof iue.default=="string")throw new TypeError("Not running in an Electron environment!");var{env:pUe}=process,Atr="ELECTRON_IS_DEV"in pUe,Ttr=Number.parseInt(pUe.ELECTRON_IS_DEV,10)===1,Otr=Atr?Ttr:!iue.default.app.isPackaged,fUe=Otr;var Cc=e=>e.webContents??(e.id&&e),fu=e=>(t={})=>(t.transform&&!t.click&&(e.transform=t.transform),e),Dtr=e=>{let t;return e.filter(r=>r!==void 0&&r!==!1&&r.visible!==!1&&r.visible!=="").filter((r,n,i)=>{let a=r.type==="separator"&&(!t||n===i.length-1||i[n+1].type==="separator");return t=a?t:r,!a})},Ctr=(e,t)=>{let r=(n,i)=>{if(typeof t.shouldShowMenu=="function"&&t.shouldShowMenu(n,i)===!1)return;let{editFlags:a}=i,s=i.selectionText.length>0,o=!!i.linkURL,c=y=>a[`can${y}`]&&s,p={separator:()=>({type:"separator"}),learnSpelling:fu({id:"learnSpelling",label:"&Learn Spelling",visible:!!(i.isEditable&&s&&i.misspelledWord),click(){Cc(e).session.addWordToSpellCheckerDictionary(i.misspelledWord)}}),lookUpSelection:fu({id:"lookUpSelection",label:"Look Up \u201C{selection}\u201D",visible:z4.default.platform==="darwin"&&s&&!o,click(){z4.default.platform==="darwin"&&Cc(e).showDefinitionForSelection()}}),searchWithGoogle:fu({id:"searchWithGoogle",label:"&Search with Google",visible:s,click(){let y=new URL("https://www.google.com/search");y.searchParams.set("q",i.selectionText),Zl.default.shell.openExternal(y.toString())}}),cut:fu({id:"cut",label:"Cu&t",enabled:c("Cut"),visible:i.isEditable,click(y){let _=Cc(e);!y.transform&&_?_.cut():(i.selectionText=y.transform?y.transform(i.selectionText):i.selectionText,Zl.default.clipboard.writeText(i.selectionText))}}),copy:fu({id:"copy",label:"&Copy",enabled:c("Copy"),visible:i.isEditable||s,click(y){let _=Cc(e);!y.transform&&_?_.copy():(i.selectionText=y.transform?y.transform(i.selectionText):i.selectionText,Zl.default.clipboard.writeText(i.selectionText))}}),paste:fu({id:"paste",label:"&Paste",enabled:a.canPaste,visible:i.isEditable,click(y){let _=Cc(e);if(y.transform){let x=Zl.default.clipboard.readText(i.selectionText);x=y.transform?y.transform(x):x,_.insertText(x)}else _.paste()}}),selectAll:fu({id:"selectAll",label:"Select &All",click(){Cc(e).selectAll()}}),saveImage:fu({id:"saveImage",label:"Save I&mage",visible:i.mediaType==="image",click(y){i.srcURL=y.transform?y.transform(i.srcURL):i.srcURL,U4(e,i.srcURL)}}),saveImageAs:fu({id:"saveImageAs",label:"Sa&ve Image As\u2026",visible:i.mediaType==="image",click(y){i.srcURL=y.transform?y.transform(i.srcURL):i.srcURL,U4(e,i.srcURL,{saveAs:!0})}}),saveVideo:fu({id:"saveVideo",label:"Save Vide&o",visible:i.mediaType==="video",click(y){i.srcURL=y.transform?y.transform(i.srcURL):i.srcURL,U4(e,i.srcURL)}}),saveVideoAs:fu({id:"saveVideoAs",label:"Save Video& As\u2026",visible:i.mediaType==="video",click(y){i.srcURL=y.transform?y.transform(i.srcURL):i.srcURL,U4(e,i.srcURL,{saveAs:!0})}}),copyLink:fu({id:"copyLink",label:"Copy Lin&k",visible:i.linkURL.length>0&&i.mediaType==="none",click(y){i.linkURL=y.transform?y.transform(i.linkURL):i.linkURL,Zl.default.clipboard.write({bookmark:i.linkText,text:i.linkURL})}}),saveLinkAs:fu({id:"saveLinkAs",label:"Save Link As\u2026",visible:i.linkURL.length>0&&i.mediaType==="none",click(y){i.linkURL=y.transform?y.transform(i.linkURL):i.linkURL,U4(e,i.linkURL,{saveAs:!0})}}),copyImage:fu({id:"copyImage",label:"Cop&y Image",visible:i.mediaType==="image",click(){Cc(e).copyImageAt(i.x,i.y)}}),copyImageAddress:fu({id:"copyImageAddress",label:"C&opy Image Address",visible:i.mediaType==="image",click(y){i.srcURL=y.transform?y.transform(i.srcURL):i.srcURL,Zl.default.clipboard.write({bookmark:i.srcURL,text:i.srcURL})}}),copyVideoAddress:fu({id:"copyVideoAddress",label:"Copy Video Ad&dress",visible:i.mediaType==="video",click(y){i.srcURL=y.transform?y.transform(i.srcURL):i.srcURL,Zl.default.clipboard.write({bookmark:i.srcURL,text:i.srcURL})}}),inspect:()=>({id:"inspect",label:"I&nspect Element",click(){Cc(e).inspectElement(i.x,i.y),Cc(e).isDevToolsOpened()&&Cc(e).devToolsWebContents.focus()}}),services:()=>({id:"services",label:"Services",role:"services",visible:z4.default.platform==="darwin"&&(i.isEditable||s)})},f=typeof t.showInspectElement=="boolean"?t.showInspectElement:fUe,d=t.showSelectAll||t.showSelectAll!==!1&&z4.default.platform!=="darwin";function h(y){return{id:"dictionarySuggestions",label:y,visible:!!(i.isEditable&&s&&i.misspelledWord),click(_){Cc(e).replaceMisspelling(_.label)}}}let g=[];s&&i.misspelledWord&&i.dictionarySuggestions.length>0?g=i.dictionarySuggestions.map(y=>h(y)):g.push({id:"dictionarySuggestions",label:"No Guesses Found",visible:!!(s&&i.misspelledWord),enabled:!1});let v=[g.length>0&&p.separator(),...g,p.separator(),t.showLearnSpelling!==!1&&p.learnSpelling(),p.separator(),t.showLookUpSelection!==!1&&p.lookUpSelection(),p.separator(),t.showSearchWithGoogle!==!1&&p.searchWithGoogle(),p.separator(),p.cut(),p.copy(),p.paste(),d&&p.selectAll(),p.separator(),t.showSaveImage&&p.saveImage(),t.showSaveImageAs&&p.saveImageAs(),t.showCopyImage!==!1&&p.copyImage(),t.showCopyImageAddress&&p.copyImageAddress(),t.showSaveVideo&&p.saveVideo(),t.showSaveVideoAs&&p.saveVideoAs(),t.showCopyVideoAddress&&p.copyVideoAddress(),p.separator(),t.showCopyLink!==!1&&p.copyLink(),t.showSaveLinkAs&&p.saveLinkAs(),p.separator(),f&&p.inspect(),t.showServices&&p.services(),p.separator()];if(t.menu&&(v=t.menu(p,i,e,g,n)),t.prepend){let y=t.prepend(p,i,e,n);Array.isArray(y)&&v.unshift(...y)}if(t.append){let y=t.append(p,i,e,n);Array.isArray(y)&&v.push(...y)}v=Dtr(v);for(let y of v)if(t.labels&&t.labels[y.id]&&(y.label=t.labels[y.id]),typeof y.label=="string"&&y.label.includes("{selection}")){let _=typeof i.selectionText=="string"?i.selectionText.trim():"";y.label=y.label.replace("{selection}",Koe(_,25).replaceAll("&","&&"))}if(v.length>0){let y=Zl.default.Menu.buildFromTemplate(v);typeof t.onShow=="function"&&y.on("menu-will-show",t.onShow),typeof t.onClose=="function"&&y.on("menu-will-close",t.onClose),y.popup(e)}};return Cc(e).on("context-menu",r),()=>{e.isDestroyed()||Cc(e).removeListener("context-menu",r)}};function aue(e={}){if(z4.default.type==="renderer")throw new Error("Cannot use electron-context-menu in the renderer process!");let t=!1,r=[],n=s=>{if(t)return;let o=Ctr(s,e);r.push(o);let c=()=>{let p=r.indexOf(o);p!==-1&&r.splice(p,1)};s.once!==void 0&&s.once("closed",c),r.push(()=>{s.off("closed",c)})},i=()=>{for(let s of r)s();r.length=0,t=!0};if(e.window){let s=e.window;if(Cc(s)===void 0){let o=()=>{n(s)};return(s.addEventListener??s.addListener)("dom-ready",o,{once:!0}),r.push(()=>{s.removeEventListener("dom-ready",o,{once:!0})}),i}return n(s),i}for(let s of Zl.default.BrowserWindow.getAllWindows())n(s);let a=(s,o)=>{n(o)};return Zl.default.app.on("browser-window-created",a),r.push(()=>{Zl.default.app.removeListener("browser-window-created",a)}),i}var Zb=require("electron");var dUe=Object.freeze(["https:","http:","mailto:"]),hUe=Object.freeze(["tel:","ftp:","onenote:","evernote:","mindnode:","file:","figma:","message:","facetime:","lastfm:","rtmp:","rtsp:","sftp:","skypev:","spotify:","clickup:","notion:","slack:","daylite:","aaa:","aaas:","about:","acap:","acct:","acd:","acr:","adiumxtra:","adt:","afp:","afs:","aim:","amss:","android:","appdata:","apt:","ark:","attachment:","aw:","barion:","beshare:","bitcoin:","bitcoincash:","blob:","bolo:","browserext:","cabal:","calculator:","callto:","cap:","cast:","casts:","chrome:","chrome-extension:","cid:","coap:","coap+tcp:","coap+ws:","coaps:","coaps+tcp:","coaps+ws:","com-eventbrite-attendee:","content:","conti:","crid:","cvs:","dab:","dat:","data:","dav:","diaspora:","dict:","did:","dis:","dlna-playcontainer:","dlna-playsingle:","dns:","dntp:","doi:","dpp:","drm:","drop:","dtmi:","dtn:","dvb:","dweb:","ed2k:","elsi:","embedded:","ens:","ethereum:","example:","facetime:","fax:","feed:","feedready:","file:","filesystem:","finger:","first-run-pen-experience:","fish:","fm:","ftp:","fuchsia-pkg:","geo:","gg:","git:","gizmoproject:","go:","gopher:","graph:","gtalk:","h323:","ham:","hcap:","hcp:","http:","https:","hxxp:","hxxps:","hydrazone:","hyper:","iax:","icap:","icon:","im:","imap:","info:","iotdisco:","ipfs:","ipn:","ipns:","ipp:","ipps:","irc:","irc6:","ircs:","iris:","iris.beep:","iris.lwz:","iris.xpc:","iris.xpcs:","isostore:","itms:","jabber:","jar:","jms:","keyparc:","lastfm:","lbry:","ldap:","ldaps:","leaptofrogans:","lorawan:","lvlt:","magnet:","mailserver:","mailto:","maps:","market:","matrix:","message:","microsoft.windows.camera:","microsoft.windows.camera.multipicker:","microsoft.windows.camera.picker:","mid:","mms:","modem:","mongodb:","moz:","ms-access:","ms-browser-extension:","ms-calculator:","ms-drive-to:","ms-enrollment:","ms-excel:","ms-eyecontrolspeech:","ms-gamebarservices:","ms-gamingoverlay:","ms-getoffice:","ms-help:","ms-infopath:","ms-inputapp:","ms-lockscreencomponent-config:","ms-media-stream-id:","ms-mixedrealitycapture:","ms-mobileplans:","ms-officeapp:","ms-people:","ms-project:","ms-powerpoint:","ms-publisher:","ms-restoretabcompanion:","ms-screenclip:","ms-screensketch:","ms-secondary-screen-controller:","ms-secondary-screen-setup:","ms-settings:","ms-settings-airplanemode:","ms-settings-bluetooth:","ms-settings-camera:","ms-settings-cellular:","ms-settings-cloudstorage:","ms-settings-connectabledevices:","ms-settings-displays-topology:","ms-settings-emailandaccounts:","ms-settings-language:","ms-settings-location:","ms-settings-lock:","ms-settings-nfctransactions:","ms-settings-notifications:","ms-settings-power:","ms-settings-privacy:","ms-settings-proximity:","ms-settings-screenrotation:","ms-settings-wifi:","ms-settings-workplace:","ms-spd:","ms-sttoverlay:","ms-transit-to:","ms-useractivityset:","ms-virtualtouchpad:","ms-visio:","ms-walk-to:","ms-whiteboard:","ms-word:","msnim:","msrp:","msrps:","mss:","mt:","mtqp:","mumble:","mupdate:","mvn:","news:","nfs:","ni:","nih:","nntp:","notes:","num:","ocf:","oid:","onenote:","opaquelocktoken:","openpgp4fpr:","otpauth:","pack:","palm:","paparazzi:","payment:","payto:","pkcs11:","platform:","pop:","pres:","prospero:","proxy:","pwid:","psyc:","pttp:","qb:","query:","quic-transport:","redis:","rediss:","reload:","res:","resource:","rmi:","rsync:","rtmfp:","rtmp:","rtsp:","rtsps:","rtspu:","sarif:","secondlife:","secret-token:","service:","session:","sftp:","sgn:","shc:","shttp:","sieve:","simpleledger:","sip:","sips:","skype:","smb:","sms:","smtp:","snews:","snmp:","soap.beep:","soap.beeps:","soldat:","spiffe:","spotify:","ssb:","ssh:","steam:","stun:","stuns:","submit:","swh:","svn:","tag:","teamspeak:","tel:","teliaeid:","telnet:","tftp:","things:","thismessage:","tip:","tn3270:","tool:","turn:","turns:","tv:","udp:","unreal:","upt:","urn:","ut2004:","v-event:","vemmi:","ventrilo:","videotex:","vnc:","view-source:","vscode:","vscode-insiders:","vsls:","wais:","wcr:","webcal:","wifi:","wpid:","ws:","wss:","wtai:","wyciwyg:","xcon:","xcon-userid:","xfire:","xmlrpc.beep:","xmlrpc.beeps:","xmpp:","xri:","ymsgr:","z39.50:","z39.50r:","z39.50s:"]);async function Wd(e,t){let r=new URL(e).protocol,n=!Me.shouldOnlyAllowVerifiedProtocols,i=yl.get("userVerifiedProtocols",[]);if(i.includes(r)){Rt("main","User has previously verified protocol, opening external URL",{url:e}),Zb.shell.openExternal(e);return}if(dUe.includes(r)){Zb.shell.openExternal(e);return}if(hUe.includes(r)||n){let a="Open External App",s="Cancel",o=[a,s],c={type:"warning",message:`Open "${r.slice(0,-1)}"?`,detail:`Are you sure you want to open the following URL in an external app?
      
 ${e}`,buttons:o,defaultId:1,checkboxLabel:"Don't ask me again"},p;if(t?p=await Zb.dialog.showMessageBox(t,c):p=await Zb.dialog.showMessageBox(c),p.response===o.indexOf(a)){p.checkboxChecked&&(Rt("main","User accepted request to open external URL and checked 'Don't ask me again' checkbox",{url:e}),yl.set("userVerifiedProtocols",[...i,r])),Zb.shell.openExternal(e),Rt("main","User accepted request to open external URL on maybeAllowList",{url:e,accepted:!0});return}else if(p.response===o.indexOf(s)){Rt("main","User declined to open external URL on maybeAllowList",{url:e,accepted:!1});return}}Rt("main","App prevented from opening external URL because protocol is not on allowList or maybeAllowList",{url:e})}var mUe=({window:e,id:t})=>{let r=Me.windows.find(n=>n.id===t);if(!r)throw new Error(`No window with id ${t}`);aue({window:e,showSearchWithGoogle:!1,showSaveImageAs:!0,prepend:(n,i)=>{let a=[];return i.linkURL&&(a.push({label:"Open Link in Default Browser",click:(s,o)=>{Wd(i.linkURL,o)}}),r.disableContextMenuOpenInWindow||a.push({label:"Open Link in New Window",click:()=>ep({newUrl:i.linkURL,id:t})}),Ql(r)&&Xl()&&a.push({label:"Open Link in New Tab",click:()=>Kd({newUrl:i.linkURL,id:t})})),a}})};var sue=require("electron"),bj=(e,t=!1)=>{process.platform==="darwin"&&(sue.app.dock.setBadge(e),t&&sue.app.dock.bounce())};var JUe=require("electron");var oue="ac>com,edu,gov,net,mil,org<ad>nom<ae>co,net,org,sch,ac,gov,mil<aero>accident-investigation,accident-prevention,aerobatic,aeroclub,aerodrome,agents,aircraft,airline,airport,air-surveillance,airtraffic,air-traffic-control,ambulance,amusement,association,author,ballooning,broker,caa,cargo,catering,certification,championship,charter,civilaviation,club,conference,consultant,consulting,control,council,crew,design,dgca,educator,emergency,engine,engineer,entertainment,equipment,exchange,express,federation,flight,fuel,gliding,government,groundhandling,group,hanggliding,homebuilt,insurance,journal,journalist,leasing,logistics,magazine,maintenance,media,microlight,modelling,navigation,parachuting,paragliding,passenger-association,pilot,press,production,recreation,repbody,res,research,rotorcraft,safety,scientist,services,show,skydiving,software,student,trader,trading,trainer,union,workinggroup,works<af>gov,com,org,net,edu<ag>com,org,net,co,nom<ai>off,com,net,org<al>com,edu,gov,mil,net,org<am>co,com,commune,net,org<ao>ed,gv,og,co,pb,it<aq,ar>bet,com,coop,edu,gob,gov,int,mil,musica,mutual,net,org,senasa,tur<arpa>e164,in-addr,ip6,iris,uri,urn<as>gov<asia,at>ac>sth<co,gv,or<au>com,net,org,edu>act,catholic,nsw>schools<nt,qld,sa,tas,vic,wa<gov>qld,sa,tas,vic,wa<asn,id,info,conf,oz,act,nsw,nt,qld,sa,tas,vic,wa<aw>com<ax,az>com,net,int,gov,org,edu,info,pp,mil,name,pro,biz<ba>com,edu,gov,mil,net,org<bb>biz,co,com,edu,gov,info,net,org,store,tv<bd>*<be>ac<bf>gov<bg>a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9<bh>com,edu,net,org,gov<bi>co,com,edu,or,org<biz,bj>asso,barreau,gouv<bm>com,edu,gov,net,org<bn>com,edu,gov,net,org<bo>com,edu,gob,int,org,net,mil,tv,web,academia,agro,arte,blog,bolivia,ciencia,cooperativa,democracia,deporte,ecologia,economia,empresa,indigena,industria,info,medicina,movimiento,musica,natural,nombre,noticias,patria,politica,profesional,plurinacional,pueblo,revista,salud,tecnologia,tksat,transporte,wiki<br>9guacu,abc,adm,adv,agr,aju,am,anani,aparecida,app,arq,art,ato,b,barueri,belem,bhz,bib,bio,blog,bmd,boavista,bsb,campinagrande,campinas,caxias,cim,cng,cnt,com,contagem,coop,coz,cri,cuiaba,curitiba,def,des,det,dev,ecn,eco,edu,emp,enf,eng,esp,etc,eti,far,feira,flog,floripa,fm,fnd,fortal,fot,foz,fst,g12,geo,ggf,goiania,gov>ac,al,am,ap,ba,ce,df,es,go,ma,mg,ms,mt,pa,pb,pe,pi,pr,rj,rn,ro,rr,rs,sc,se,sp,to<gru,imb,ind,inf,jab,jampa,jdf,joinville,jor,jus,leg,lel,log,londrina,macapa,maceio,manaus,maringa,mat,med,mil,morena,mp,mus,natal,net,niteroi,nom>*<not,ntr,odo,ong,org,osasco,palmas,poa,ppg,pro,psc,psi,pvh,qsl,radio,rec,recife,rep,ribeirao,rio,riobranco,riopreto,salvador,sampa,santamaria,santoandre,saobernardo,saogonca,seg,sjc,slg,slz,sorocaba,srv,taxi,tc,tec,teo,the,tmp,trd,tur,tv,udi,vet,vix,vlog,wiki,zlg<bs>com,net,org,edu,gov<bt>com,edu,gov,net,org<bv,bw>co,org<by>gov,mil,com,of<bz>com,net,org,edu,gov<ca>ab,bc,mb,nb,nf,nl,ns,nt,nu,on,pe,qc,sk,yk,gc<cat,cc,cd>gov<cf,cg,ch,ci>org,or,com,co,edu,ed,ac,net,go,asso,xn--aroport-bya,int,presse,md,gouv<ck>*,!www<cl>co,gob,gov,mil<cm>co,com,gov,net<cn>ac,com,edu,gov,net,org,mil,xn--55qx5d,xn--io0a7i,xn--od0alg,ah,bj,cq,fj,gd,gs,gz,gx,ha,hb,he,hi,hl,hn,jl,js,jx,ln,nm,nx,qh,sc,sd,sh,sn,sx,tj,xj,xz,yn,zj,hk,mo,tw<co>arts,com,edu,firm,gov,info,int,mil,net,nom,org,rec,web<com,coop,cr>ac,co,ed,fi,go,or,sa<cu>com,edu,org,net,gov,inf<cv>com,edu,int,nome,org<cw>com,edu,net,org<cx>gov<cy>ac,biz,com,ekloges,gov,ltd,mil,net,org,press,pro,tm<cz,de,dj,dk,dm>com,net,org,edu,gov<do>art,com,edu,gob,gov,mil,net,org,sld,web<dz>art,asso,com,edu,gov,org,net,pol,soc,tm<ec>com,info,net,fin,k12,med,pro,org,edu,gov,gob,mil<edu,ee>edu,gov,riik,lib,med,com,pri,aip,org,fie<eg>com,edu,eun,gov,mil,name,net,org,sci<er>*<es>com,nom,org,gob,edu<et>com,gov,org,edu,biz,name,info,net<eu,fi>aland<fj>ac,biz,com,gov,info,mil,name,net,org,pro<fk>*<fm>com,edu,net,org<fo,fr>asso,com,gouv,nom,prd,tm,aeroport,avocat,avoues,cci,chambagri,chirurgiens-dentistes,experts-comptables,geometre-expert,greta,huissier-justice,medecin,notaires,pharmacien,port,veterinaire<ga,gb,gd>edu,gov<ge>com,edu,gov,org,mil,net,pvt<gf,gg>co,net,org<gh>com,edu,gov,org,mil<gi>com,ltd,gov,mod,edu,org<gl>co,com,edu,net,org<gm,gn>ac,com,edu,gov,org,net<gov,gp>com,net,mobi,edu,org,asso<gq,gr>com,edu,net,org,gov<gs,gt>com,edu,gob,ind,mil,net,org<gu>com,edu,gov,guam,info,net,org,web<gw,gy>co,com,edu,gov,net,org<hk>com,edu,gov,idv,net,org,xn--55qx5d,xn--wcvs22d,xn--lcvr32d,xn--mxtq1m,xn--gmqw5a,xn--ciqpn,xn--gmq050i,xn--zf0avx,xn--io0a7i,xn--mk0axi,xn--od0alg,xn--od0aq3b,xn--tn0ag,xn--uc0atv,xn--uc0ay4a<hm,hn>com,edu,org,net,mil,gob<hr>iz,from,name,com<ht>com,shop,firm,info,adult,net,pro,org,med,art,coop,pol,asso,edu,rel,gouv,perso<hu>co,info,org,priv,sport,tm,2000,agrar,bolt,casino,city,erotica,erotika,film,forum,games,hotel,ingatlan,jogasz,konyvelo,lakas,media,news,reklam,sex,shop,suli,szex,tozsde,utazas,video<id>ac,biz,co,desa,go,mil,my,net,or,ponpes,sch,web<ie>gov<il>ac,co,gov,idf,k12,muni,net,org<im>ac,co>ltd,plc<com,net,org,tt,tv<in>co,firm,net,org,gen,ind,nic,ac,edu,res,gov,mil<info,int>eu<io>com<iq>gov,edu,mil,com,org,net<ir>ac,co,gov,id,net,org,sch,xn--mgba3a4f16a,xn--mgba3a4fra<is>net,com,edu,gov,org,int<it>gov,edu,abr,abruzzo,aosta-valley,aostavalley,bas,basilicata,cal,calabria,cam,campania,emilia-romagna,emiliaromagna,emr,friuli-v-giulia,friuli-ve-giulia,friuli-vegiulia,friuli-venezia-giulia,friuli-veneziagiulia,friuli-vgiulia,friuliv-giulia,friulive-giulia,friulivegiulia,friulivenezia-giulia,friuliveneziagiulia,friulivgiulia,fvg,laz,lazio,lig,liguria,lom,lombardia,lombardy,lucania,mar,marche,mol,molise,piedmont,piemonte,pmn,pug,puglia,sar,sardegna,sardinia,sic,sicilia,sicily,taa,tos,toscana,trentin-sud-tirol,xn--trentin-sd-tirol-rzb,trentin-sudtirol,xn--trentin-sdtirol-7vb,trentin-sued-tirol,trentin-suedtirol,trentino-a-adige,trentino-aadige,trentino-alto-adige,trentino-altoadige,trentino-s-tirol,trentino-stirol,trentino-sud-tirol,xn--trentino-sd-tirol-c3b,trentino-sudtirol,xn--trentino-sdtirol-szb,trentino-sued-tirol,trentino-suedtirol,trentino,trentinoa-adige,trentinoaadige,trentinoalto-adige,trentinoaltoadige,trentinos-tirol,trentinostirol,trentinosud-tirol,xn--trentinosd-tirol-rzb,trentinosudtirol,xn--trentinosdtirol-7vb,trentinosued-tirol,trentinosuedtirol,trentinsud-tirol,xn--trentinsd-tirol-6vb,trentinsudtirol,xn--trentinsdtirol-nsb,trentinsued-tirol,trentinsuedtirol,tuscany,umb,umbria,val-d-aosta,val-daosta,vald-aosta,valdaosta,valle-aosta,valle-d-aosta,valle-daosta,valleaosta,valled-aosta,valledaosta,vallee-aoste,xn--valle-aoste-ebb,vallee-d-aoste,xn--valle-d-aoste-ehb,valleeaoste,xn--valleaoste-e7a,valleedaoste,xn--valledaoste-ebb,vao,vda,ven,veneto,ag,agrigento,al,alessandria,alto-adige,altoadige,an,ancona,andria-barletta-trani,andria-trani-barletta,andriabarlettatrani,andriatranibarletta,ao,aosta,aoste,ap,aq,aquila,ar,arezzo,ascoli-piceno,ascolipiceno,asti,at,av,avellino,ba,balsan-sudtirol,xn--balsan-sdtirol-nsb,balsan-suedtirol,balsan,bari,barletta-trani-andria,barlettatraniandria,belluno,benevento,bergamo,bg,bi,biella,bl,bn,bo,bologna,bolzano-altoadige,bolzano,bozen-sudtirol,xn--bozen-sdtirol-2ob,bozen-suedtirol,bozen,br,brescia,brindisi,bs,bt,bulsan-sudtirol,xn--bulsan-sdtirol-nsb,bulsan-suedtirol,bulsan,bz,ca,cagliari,caltanissetta,campidano-medio,campidanomedio,campobasso,carbonia-iglesias,carboniaiglesias,carrara-massa,carraramassa,caserta,catania,catanzaro,cb,ce,cesena-forli,xn--cesena-forl-mcb,cesenaforli,xn--cesenaforl-i8a,ch,chieti,ci,cl,cn,co,como,cosenza,cr,cremona,crotone,cs,ct,cuneo,cz,dell-ogliastra,dellogliastra,en,enna,fc,fe,fermo,ferrara,fg,fi,firenze,florence,fm,foggia,forli-cesena,xn--forl-cesena-fcb,forlicesena,xn--forlcesena-c8a,fr,frosinone,ge,genoa,genova,go,gorizia,gr,grosseto,iglesias-carbonia,iglesiascarbonia,im,imperia,is,isernia,kr,la-spezia,laquila,laspezia,latina,lc,le,lecce,lecco,li,livorno,lo,lodi,lt,lu,lucca,macerata,mantova,massa-carrara,massacarrara,matera,mb,mc,me,medio-campidano,mediocampidano,messina,mi,milan,milano,mn,mo,modena,monza-brianza,monza-e-della-brianza,monza,monzabrianza,monzaebrianza,monzaedellabrianza,ms,mt,na,naples,napoli,no,novara,nu,nuoro,og,ogliastra,olbia-tempio,olbiatempio,or,oristano,ot,pa,padova,padua,palermo,parma,pavia,pc,pd,pe,perugia,pesaro-urbino,pesarourbino,pescara,pg,pi,piacenza,pisa,pistoia,pn,po,pordenone,potenza,pr,prato,pt,pu,pv,pz,ra,ragusa,ravenna,rc,re,reggio-calabria,reggio-emilia,reggiocalabria,reggioemilia,rg,ri,rieti,rimini,rm,rn,ro,roma,rome,rovigo,sa,salerno,sassari,savona,si,siena,siracusa,so,sondrio,sp,sr,ss,suedtirol,xn--sdtirol-n2a,sv,ta,taranto,te,tempio-olbia,tempioolbia,teramo,terni,tn,to,torino,tp,tr,trani-andria-barletta,trani-barletta-andria,traniandriabarletta,tranibarlettaandria,trapani,trento,treviso,trieste,ts,turin,tv,ud,udine,urbino-pesaro,urbinopesaro,va,varese,vb,vc,ve,venezia,venice,verbania,vercelli,verona,vi,vibo-valentia,vibovalentia,vicenza,viterbo,vr,vs,vt,vv<je>co,net,org<jm>*<jo>com,org,net,edu,sch,gov,mil,name<jobs,jp>ac,ad,co,ed,go,gr,lg,ne,or,aichi>aisai,ama,anjo,asuke,chiryu,chita,fuso,gamagori,handa,hazu,hekinan,higashiura,ichinomiya,inazawa,inuyama,isshiki,iwakura,kanie,kariya,kasugai,kira,kiyosu,komaki,konan,kota,mihama,miyoshi,nishio,nisshin,obu,oguchi,oharu,okazaki,owariasahi,seto,shikatsu,shinshiro,shitara,tahara,takahama,tobishima,toei,togo,tokai,tokoname,toyoake,toyohashi,toyokawa,toyone,toyota,tsushima,yatomi<akita>akita,daisen,fujisato,gojome,hachirogata,happou,higashinaruse,honjo,honjyo,ikawa,kamikoani,kamioka,katagami,kazuno,kitaakita,kosaka,kyowa,misato,mitane,moriyoshi,nikaho,noshiro,odate,oga,ogata,semboku,yokote,yurihonjo<aomori>aomori,gonohe,hachinohe,hashikami,hiranai,hirosaki,itayanagi,kuroishi,misawa,mutsu,nakadomari,noheji,oirase,owani,rokunohe,sannohe,shichinohe,shingo,takko,towada,tsugaru,tsuruta<chiba>abiko,asahi,chonan,chosei,choshi,chuo,funabashi,futtsu,hanamigawa,ichihara,ichikawa,ichinomiya,inzai,isumi,kamagaya,kamogawa,kashiwa,katori,katsuura,kimitsu,kisarazu,kozaki,kujukuri,kyonan,matsudo,midori,mihama,minamiboso,mobara,mutsuzawa,nagara,nagareyama,narashino,narita,noda,oamishirasato,omigawa,onjuku,otaki,sakae,sakura,shimofusa,shirako,shiroi,shisui,sodegaura,sosa,tako,tateyama,togane,tohnosho,tomisato,urayasu,yachimata,yachiyo,yokaichiba,yokoshibahikari,yotsukaido<ehime>ainan,honai,ikata,imabari,iyo,kamijima,kihoku,kumakogen,masaki,matsuno,matsuyama,namikata,niihama,ozu,saijo,seiyo,shikokuchuo,tobe,toon,uchiko,uwajima,yawatahama<fukui>echizen,eiheiji,fukui,ikeda,katsuyama,mihama,minamiechizen,obama,ohi,ono,sabae,sakai,takahama,tsuruga,wakasa<fukuoka>ashiya,buzen,chikugo,chikuho,chikujo,chikushino,chikuzen,chuo,dazaifu,fukuchi,hakata,higashi,hirokawa,hisayama,iizuka,inatsuki,kaho,kasuga,kasuya,kawara,keisen,koga,kurate,kurogi,kurume,minami,miyako,miyama,miyawaka,mizumaki,munakata,nakagawa,nakama,nishi,nogata,ogori,okagaki,okawa,oki,omuta,onga,onojo,oto,saigawa,sasaguri,shingu,shinyoshitomi,shonai,soeda,sue,tachiarai,tagawa,takata,toho,toyotsu,tsuiki,ukiha,umi,usui,yamada,yame,yanagawa,yukuhashi<fukushima>aizubange,aizumisato,aizuwakamatsu,asakawa,bandai,date,fukushima,furudono,futaba,hanawa,higashi,hirata,hirono,iitate,inawashiro,ishikawa,iwaki,izumizaki,kagamiishi,kaneyama,kawamata,kitakata,kitashiobara,koori,koriyama,kunimi,miharu,mishima,namie,nango,nishiaizu,nishigo,okuma,omotego,ono,otama,samegawa,shimogo,shirakawa,showa,soma,sukagawa,taishin,tamakawa,tanagura,tenei,yabuki,yamato,yamatsuri,yanaizu,yugawa<gifu>anpachi,ena,gifu,ginan,godo,gujo,hashima,hichiso,hida,higashishirakawa,ibigawa,ikeda,kakamigahara,kani,kasahara,kasamatsu,kawaue,kitagata,mino,minokamo,mitake,mizunami,motosu,nakatsugawa,ogaki,sakahogi,seki,sekigahara,shirakawa,tajimi,takayama,tarui,toki,tomika,wanouchi,yamagata,yaotsu,yoro<gunma>annaka,chiyoda,fujioka,higashiagatsuma,isesaki,itakura,kanna,kanra,katashina,kawaba,kiryu,kusatsu,maebashi,meiwa,midori,minakami,naganohara,nakanojo,nanmoku,numata,oizumi,ora,ota,shibukawa,shimonita,shinto,showa,takasaki,takayama,tamamura,tatebayashi,tomioka,tsukiyono,tsumagoi,ueno,yoshioka<hiroshima>asaminami,daiwa,etajima,fuchu,fukuyama,hatsukaichi,higashihiroshima,hongo,jinsekikogen,kaita,kui,kumano,kure,mihara,miyoshi,naka,onomichi,osakikamijima,otake,saka,sera,seranishi,shinichi,shobara,takehara<hokkaido>abashiri,abira,aibetsu,akabira,akkeshi,asahikawa,ashibetsu,ashoro,assabu,atsuma,bibai,biei,bifuka,bihoro,biratori,chippubetsu,chitose,date,ebetsu,embetsu,eniwa,erimo,esan,esashi,fukagawa,fukushima,furano,furubira,haboro,hakodate,hamatonbetsu,hidaka,higashikagura,higashikawa,hiroo,hokuryu,hokuto,honbetsu,horokanai,horonobe,ikeda,imakane,ishikari,iwamizawa,iwanai,kamifurano,kamikawa,kamishihoro,kamisunagawa,kamoenai,kayabe,kembuchi,kikonai,kimobetsu,kitahiroshima,kitami,kiyosato,koshimizu,kunneppu,kuriyama,kuromatsunai,kushiro,kutchan,kyowa,mashike,matsumae,mikasa,minamifurano,mombetsu,moseushi,mukawa,muroran,naie,nakagawa,nakasatsunai,nakatombetsu,nanae,nanporo,nayoro,nemuro,niikappu,niki,nishiokoppe,noboribetsu,numata,obihiro,obira,oketo,okoppe,otaru,otobe,otofuke,otoineppu,oumu,ozora,pippu,rankoshi,rebun,rikubetsu,rishiri,rishirifuji,saroma,sarufutsu,shakotan,shari,shibecha,shibetsu,shikabe,shikaoi,shimamaki,shimizu,shimokawa,shinshinotsu,shintoku,shiranuka,shiraoi,shiriuchi,sobetsu,sunagawa,taiki,takasu,takikawa,takinoue,teshikaga,tobetsu,tohma,tomakomai,tomari,toya,toyako,toyotomi,toyoura,tsubetsu,tsukigata,urakawa,urausu,uryu,utashinai,wakkanai,wassamu,yakumo,yoichi<hyogo>aioi,akashi,ako,amagasaki,aogaki,asago,ashiya,awaji,fukusaki,goshiki,harima,himeji,ichikawa,inagawa,itami,kakogawa,kamigori,kamikawa,kasai,kasuga,kawanishi,miki,minamiawaji,nishinomiya,nishiwaki,ono,sanda,sannan,sasayama,sayo,shingu,shinonsen,shiso,sumoto,taishi,taka,takarazuka,takasago,takino,tamba,tatsuno,toyooka,yabu,yashiro,yoka,yokawa<ibaraki>ami,asahi,bando,chikusei,daigo,fujishiro,hitachi,hitachinaka,hitachiomiya,hitachiota,ibaraki,ina,inashiki,itako,iwama,joso,kamisu,kasama,kashima,kasumigaura,koga,miho,mito,moriya,naka,namegata,oarai,ogawa,omitama,ryugasaki,sakai,sakuragawa,shimodate,shimotsuma,shirosato,sowa,suifu,takahagi,tamatsukuri,tokai,tomobe,tone,toride,tsuchiura,tsukuba,uchihara,ushiku,yachiyo,yamagata,yawara,yuki<ishikawa>anamizu,hakui,hakusan,kaga,kahoku,kanazawa,kawakita,komatsu,nakanoto,nanao,nomi,nonoichi,noto,shika,suzu,tsubata,tsurugi,uchinada,wajima<iwate>fudai,fujisawa,hanamaki,hiraizumi,hirono,ichinohe,ichinoseki,iwaizumi,iwate,joboji,kamaishi,kanegasaki,karumai,kawai,kitakami,kuji,kunohe,kuzumaki,miyako,mizusawa,morioka,ninohe,noda,ofunato,oshu,otsuchi,rikuzentakata,shiwa,shizukuishi,sumita,tanohata,tono,yahaba,yamada<kagawa>ayagawa,higashikagawa,kanonji,kotohira,manno,marugame,mitoyo,naoshima,sanuki,tadotsu,takamatsu,tonosho,uchinomi,utazu,zentsuji<kagoshima>akune,amami,hioki,isa,isen,izumi,kagoshima,kanoya,kawanabe,kinko,kouyama,makurazaki,matsumoto,minamitane,nakatane,nishinoomote,satsumasendai,soo,tarumizu,yusui<kanagawa>aikawa,atsugi,ayase,chigasaki,ebina,fujisawa,hadano,hakone,hiratsuka,isehara,kaisei,kamakura,kiyokawa,matsuda,minamiashigara,miura,nakai,ninomiya,odawara,oi,oiso,sagamihara,samukawa,tsukui,yamakita,yamato,yokosuka,yugawara,zama,zushi<kochi>aki,geisei,hidaka,higashitsuno,ino,kagami,kami,kitagawa,kochi,mihara,motoyama,muroto,nahari,nakamura,nankoku,nishitosa,niyodogawa,ochi,okawa,otoyo,otsuki,sakawa,sukumo,susaki,tosa,tosashimizu,toyo,tsuno,umaji,yasuda,yusuhara<kumamoto>amakusa,arao,aso,choyo,gyokuto,kamiamakusa,kikuchi,kumamoto,mashiki,mifune,minamata,minamioguni,nagasu,nishihara,oguni,ozu,sumoto,takamori,uki,uto,yamaga,yamato,yatsushiro<kyoto>ayabe,fukuchiyama,higashiyama,ide,ine,joyo,kameoka,kamo,kita,kizu,kumiyama,kyotamba,kyotanabe,kyotango,maizuru,minami,minamiyamashiro,miyazu,muko,nagaokakyo,nakagyo,nantan,oyamazaki,sakyo,seika,tanabe,uji,ujitawara,wazuka,yamashina,yawata<mie>asahi,inabe,ise,kameyama,kawagoe,kiho,kisosaki,kiwa,komono,kumano,kuwana,matsusaka,meiwa,mihama,minamiise,misugi,miyama,nabari,shima,suzuka,tado,taiki,taki,tamaki,toba,tsu,udono,ureshino,watarai,yokkaichi<miyagi>furukawa,higashimatsushima,ishinomaki,iwanuma,kakuda,kami,kawasaki,marumori,matsushima,minamisanriku,misato,murata,natori,ogawara,ohira,onagawa,osaki,rifu,semine,shibata,shichikashuku,shikama,shiogama,shiroishi,tagajo,taiwa,tome,tomiya,wakuya,watari,yamamoto,zao<miyazaki>aya,ebino,gokase,hyuga,kadogawa,kawaminami,kijo,kitagawa,kitakata,kitaura,kobayashi,kunitomi,kushima,mimata,miyakonojo,miyazaki,morotsuka,nichinan,nishimera,nobeoka,saito,shiiba,shintomi,takaharu,takanabe,takazaki,tsuno<nagano>achi,agematsu,anan,aoki,asahi,azumino,chikuhoku,chikuma,chino,fujimi,hakuba,hara,hiraya,iida,iijima,iiyama,iizuna,ikeda,ikusaka,ina,karuizawa,kawakami,kiso,kisofukushima,kitaaiki,komagane,komoro,matsukawa,matsumoto,miasa,minamiaiki,minamimaki,minamiminowa,minowa,miyada,miyota,mochizuki,nagano,nagawa,nagiso,nakagawa,nakano,nozawaonsen,obuse,ogawa,okaya,omachi,omi,ookuwa,ooshika,otaki,otari,sakae,sakaki,saku,sakuho,shimosuwa,shinanomachi,shiojiri,suwa,suzaka,takagi,takamori,takayama,tateshina,tatsuno,togakushi,togura,tomi,ueda,wada,yamagata,yamanouchi,yasaka,yasuoka<nagasaki>chijiwa,futsu,goto,hasami,hirado,iki,isahaya,kawatana,kuchinotsu,matsuura,nagasaki,obama,omura,oseto,saikai,sasebo,seihi,shimabara,shinkamigoto,togitsu,tsushima,unzen<nara>ando,gose,heguri,higashiyoshino,ikaruga,ikoma,kamikitayama,kanmaki,kashiba,kashihara,katsuragi,kawai,kawakami,kawanishi,koryo,kurotaki,mitsue,miyake,nara,nosegawa,oji,ouda,oyodo,sakurai,sango,shimoichi,shimokitayama,shinjo,soni,takatori,tawaramoto,tenkawa,tenri,uda,yamatokoriyama,yamatotakada,yamazoe,yoshino<niigata>aga,agano,gosen,itoigawa,izumozaki,joetsu,kamo,kariwa,kashiwazaki,minamiuonuma,mitsuke,muika,murakami,myoko,nagaoka,niigata,ojiya,omi,sado,sanjo,seiro,seirou,sekikawa,shibata,tagami,tainai,tochio,tokamachi,tsubame,tsunan,uonuma,yahiko,yoita,yuzawa<oita>beppu,bungoono,bungotakada,hasama,hiji,himeshima,hita,kamitsue,kokonoe,kuju,kunisaki,kusu,oita,saiki,taketa,tsukumi,usa,usuki,yufu<okayama>akaiwa,asakuchi,bizen,hayashima,ibara,kagamino,kasaoka,kibichuo,kumenan,kurashiki,maniwa,misaki,nagi,niimi,nishiawakura,okayama,satosho,setouchi,shinjo,shoo,soja,takahashi,tamano,tsuyama,wake,yakage<okinawa>aguni,ginowan,ginoza,gushikami,haebaru,higashi,hirara,iheya,ishigaki,ishikawa,itoman,izena,kadena,kin,kitadaito,kitanakagusuku,kumejima,kunigami,minamidaito,motobu,nago,naha,nakagusuku,nakijin,nanjo,nishihara,ogimi,okinawa,onna,shimoji,taketomi,tarama,tokashiki,tomigusuku,tonaki,urasoe,uruma,yaese,yomitan,yonabaru,yonaguni,zamami<osaka>abeno,chihayaakasaka,chuo,daito,fujiidera,habikino,hannan,higashiosaka,higashisumiyoshi,higashiyodogawa,hirakata,ibaraki,ikeda,izumi,izumiotsu,izumisano,kadoma,kaizuka,kanan,kashiwara,katano,kawachinagano,kishiwada,kita,kumatori,matsubara,minato,minoh,misaki,moriguchi,neyagawa,nishi,nose,osakasayama,sakai,sayama,sennan,settsu,shijonawate,shimamoto,suita,tadaoka,taishi,tajiri,takaishi,takatsuki,tondabayashi,toyonaka,toyono,yao<saga>ariake,arita,fukudomi,genkai,hamatama,hizen,imari,kamimine,kanzaki,karatsu,kashima,kitagata,kitahata,kiyama,kouhoku,kyuragi,nishiarita,ogi,omachi,ouchi,saga,shiroishi,taku,tara,tosu,yoshinogari<saitama>arakawa,asaka,chichibu,fujimi,fujimino,fukaya,hanno,hanyu,hasuda,hatogaya,hatoyama,hidaka,higashichichibu,higashimatsuyama,honjo,ina,iruma,iwatsuki,kamiizumi,kamikawa,kamisato,kasukabe,kawagoe,kawaguchi,kawajima,kazo,kitamoto,koshigaya,kounosu,kuki,kumagaya,matsubushi,minano,misato,miyashiro,miyoshi,moroyama,nagatoro,namegawa,niiza,ogano,ogawa,ogose,okegawa,omiya,otaki,ranzan,ryokami,saitama,sakado,satte,sayama,shiki,shiraoka,soka,sugito,toda,tokigawa,tokorozawa,tsurugashima,urawa,warabi,yashio,yokoze,yono,yorii,yoshida,yoshikawa,yoshimi<shiga>aisho,gamo,higashiomi,hikone,koka,konan,kosei,koto,kusatsu,maibara,moriyama,nagahama,nishiazai,notogawa,omihachiman,otsu,ritto,ryuoh,takashima,takatsuki,torahime,toyosato,yasu<shimane>akagi,ama,gotsu,hamada,higashiizumo,hikawa,hikimi,izumo,kakinoki,masuda,matsue,misato,nishinoshima,ohda,okinoshima,okuizumo,shimane,tamayu,tsuwano,unnan,yakumo,yasugi,yatsuka<shizuoka>arai,atami,fuji,fujieda,fujikawa,fujinomiya,fukuroi,gotemba,haibara,hamamatsu,higashiizu,ito,iwata,izu,izunokuni,kakegawa,kannami,kawanehon,kawazu,kikugawa,kosai,makinohara,matsuzaki,minamiizu,mishima,morimachi,nishiizu,numazu,omaezaki,shimada,shimizu,shimoda,shizuoka,susono,yaizu,yoshida<tochigi>ashikaga,bato,haga,ichikai,iwafune,kaminokawa,kanuma,karasuyama,kuroiso,mashiko,mibu,moka,motegi,nasu,nasushiobara,nikko,nishikata,nogi,ohira,ohtawara,oyama,sakura,sano,shimotsuke,shioya,takanezawa,tochigi,tsuga,ujiie,utsunomiya,yaita<tokushima>aizumi,anan,ichiba,itano,kainan,komatsushima,matsushige,mima,minami,miyoshi,mugi,nakagawa,naruto,sanagochi,shishikui,tokushima,wajiki<tokyo>adachi,akiruno,akishima,aogashima,arakawa,bunkyo,chiyoda,chofu,chuo,edogawa,fuchu,fussa,hachijo,hachioji,hamura,higashikurume,higashimurayama,higashiyamato,hino,hinode,hinohara,inagi,itabashi,katsushika,kita,kiyose,kodaira,koganei,kokubunji,komae,koto,kouzushima,kunitachi,machida,meguro,minato,mitaka,mizuho,musashimurayama,musashino,nakano,nerima,ogasawara,okutama,ome,oshima,ota,setagaya,shibuya,shinagawa,shinjuku,suginami,sumida,tachikawa,taito,tama,toshima<tottori>chizu,hino,kawahara,koge,kotoura,misasa,nanbu,nichinan,sakaiminato,tottori,wakasa,yazu,yonago<toyama>asahi,fuchu,fukumitsu,funahashi,himi,imizu,inami,johana,kamiichi,kurobe,nakaniikawa,namerikawa,nanto,nyuzen,oyabe,taira,takaoka,tateyama,toga,tonami,toyama,unazuki,uozu,yamada<wakayama>arida,aridagawa,gobo,hashimoto,hidaka,hirogawa,inami,iwade,kainan,kamitonda,katsuragi,kimino,kinokawa,kitayama,koya,koza,kozagawa,kudoyama,kushimoto,mihama,misato,nachikatsuura,shingu,shirahama,taiji,tanabe,wakayama,yuasa,yura<yamagata>asahi,funagata,higashine,iide,kahoku,kaminoyama,kaneyama,kawanishi,mamurogawa,mikawa,murayama,nagai,nakayama,nanyo,nishikawa,obanazawa,oe,oguni,ohkura,oishida,sagae,sakata,sakegawa,shinjo,shirataka,shonai,takahata,tendo,tozawa,tsuruoka,yamagata,yamanobe,yonezawa,yuza<yamaguchi>abu,hagi,hikari,hofu,iwakuni,kudamatsu,mitou,nagato,oshima,shimonoseki,shunan,tabuse,tokuyama,toyota,ube,yuu<yamanashi>chuo,doshi,fuefuki,fujikawa,fujikawaguchiko,fujiyoshida,hayakawa,hokuto,ichikawamisato,kai,kofu,koshu,kosuge,minami-alps,minobu,nakamichi,nanbu,narusawa,nirasaki,nishikatsura,oshino,otsuki,showa,tabayama,tsuru,uenohara,yamanakako,yamanashi<xn--4pvxs,xn--vgu402c,xn--c3s14m,xn--f6qx53a,xn--8pvr4u,xn--uist22h,xn--djrs72d6uy,xn--mkru45i,xn--0trq7p7nn,xn--8ltr62k,xn--2m4a15e,xn--efvn9s,xn--32vp30h,xn--4it797k,xn--1lqs71d,xn--5rtp49c,xn--5js045d,xn--ehqz56n,xn--1lqs03n,xn--qqqt11m,xn--kbrq7o,xn--pssu33l,xn--ntsq17g,xn--uisz3g,xn--6btw5a,xn--1ctwo,xn--6orx2r,xn--rht61e,xn--rht27z,xn--djty4k,xn--nit225k,xn--rht3d,xn--klty5x,xn--kltx9a,xn--kltp7d,xn--uuwu58a,xn--zbx025d,xn--ntso0iqx3a,xn--elqq16h,xn--4it168d,xn--klt787d,xn--rny31h,xn--7t0a264c,xn--5rtq34k,xn--k7yn95e,xn--tor131o,xn--d5qv7z876c,kawasaki>*,!city<kitakyushu>*,!city<kobe>*,!city<nagoya>*,!city<sapporo>*,!city<sendai>*,!city<yokohama>*,!city<<ke>ac,co,go,info,me,mobi,ne,or,sc<kg>org,net,com,edu,gov,mil<kh>*<ki>edu,biz,net,org,gov,info,com<km>org,nom,gov,prd,tm,edu,mil,ass,com,coop,asso,presse,medecin,notaires,pharmaciens,veterinaire,gouv<kn>net,org,edu,gov<kp>com,edu,gov,org,rep,tra<kr>ac,co,es,go,hs,kg,mil,ms,ne,or,pe,re,sc,busan,chungbuk,chungnam,daegu,daejeon,gangwon,gwangju,gyeongbuk,gyeonggi,gyeongnam,incheon,jeju,jeonbuk,jeonnam,seoul,ulsan<kw>com,edu,emb,gov,ind,net,org<ky>com,edu,net,org<kz>org,edu,net,gov,mil,com<la>int,net,info,edu,gov,per,com,org<lb>com,edu,gov,net,org<lc>com,net,co,org,edu,gov<li,lk>gov,sch,net,int,com,org,edu,ngo,soc,web,ltd,assn,grp,hotel,ac<lr>com,edu,gov,org,net<ls>ac,biz,co,edu,gov,info,net,org,sc<lt>gov<lu,lv>com,edu,gov,org,mil,id,net,asn,conf<ly>com,net,gov,plc,edu,sch,med,org,id<ma>co,net,gov,org,ac,press<mc>tm,asso<md,me>co,net,org,edu,ac,gov,its,priv<mg>org,nom,gov,prd,tm,edu,mil,com,co<mh,mil,mk>com,org,net,edu,gov,inf,name<ml>com,edu,gouv,gov,net,org,presse<mm>*<mn>gov,edu,org<mo>com,net,org,edu,gov<mobi,mp,mq,mr>gov<ms>com,edu,gov,net,org<mt>com,edu,net,org<mu>com,net,org,gov,ac,co,or<museum>academy,agriculture,air,airguard,alabama,alaska,amber,ambulance,american,americana,americanantiques,americanart,amsterdam,and,annefrank,anthro,anthropology,antiques,aquarium,arboretum,archaeological,archaeology,architecture,art,artanddesign,artcenter,artdeco,arteducation,artgallery,arts,artsandcrafts,asmatart,assassination,assisi,association,astronomy,atlanta,austin,australia,automotive,aviation,axis,badajoz,baghdad,bahn,bale,baltimore,barcelona,baseball,basel,baths,bauern,beauxarts,beeldengeluid,bellevue,bergbau,berkeley,berlin,bern,bible,bilbao,bill,birdart,birthplace,bonn,boston,botanical,botanicalgarden,botanicgarden,botany,brandywinevalley,brasil,bristol,british,britishcolumbia,broadcast,brunel,brussel,brussels,bruxelles,building,burghof,bus,bushey,cadaques,california,cambridge,can,canada,capebreton,carrier,cartoonart,casadelamoneda,castle,castres,celtic,center,chattanooga,cheltenham,chesapeakebay,chicago,children,childrens,childrensgarden,chiropractic,chocolate,christiansburg,cincinnati,cinema,circus,civilisation,civilization,civilwar,clinton,clock,coal,coastaldefence,cody,coldwar,collection,colonialwilliamsburg,coloradoplateau,columbia,columbus,communication,communications,community,computer,computerhistory,xn--comunicaes-v6a2o,contemporary,contemporaryart,convent,copenhagen,corporation,xn--correios-e-telecomunicaes-ghc29a,corvette,costume,countryestate,county,crafts,cranbrook,creation,cultural,culturalcenter,culture,cyber,cymru,dali,dallas,database,ddr,decorativearts,delaware,delmenhorst,denmark,depot,design,detroit,dinosaur,discovery,dolls,donostia,durham,eastafrica,eastcoast,education,educational,egyptian,eisenbahn,elburg,elvendrell,embroidery,encyclopedic,england,entomology,environment,environmentalconservation,epilepsy,essex,estate,ethnology,exeter,exhibition,family,farm,farmequipment,farmers,farmstead,field,figueres,filatelia,film,fineart,finearts,finland,flanders,florida,force,fortmissoula,fortworth,foundation,francaise,frankfurt,franziskaner,freemasonry,freiburg,fribourg,frog,fundacio,furniture,gallery,garden,gateway,geelvinck,gemological,geology,georgia,giessen,glas,glass,gorge,grandrapids,graz,guernsey,halloffame,hamburg,handson,harvestcelebration,hawaii,health,heimatunduhren,hellas,helsinki,hembygdsforbund,heritage,histoire,historical,historicalsociety,historichouses,historisch,historisches,history,historyofscience,horology,house,humanities,illustration,imageandsound,indian,indiana,indianapolis,indianmarket,intelligence,interactive,iraq,iron,isleofman,jamison,jefferson,jerusalem,jewelry,jewish,jewishart,jfk,journalism,judaica,judygarland,juedisches,juif,karate,karikatur,kids,koebenhavn,koeln,kunst,kunstsammlung,kunstunddesign,labor,labour,lajolla,lancashire,landes,lans,xn--lns-qla,larsson,lewismiller,lincoln,linz,living,livinghistory,localhistory,london,losangeles,louvre,loyalist,lucerne,luxembourg,luzern,mad,madrid,mallorca,manchester,mansion,mansions,manx,marburg,maritime,maritimo,maryland,marylhurst,media,medical,medizinhistorisches,meeres,memorial,mesaverde,michigan,midatlantic,military,mill,miners,mining,minnesota,missile,missoula,modern,moma,money,monmouth,monticello,montreal,moscow,motorcycle,muenchen,muenster,mulhouse,muncie,museet,museumcenter,museumvereniging,music,national,nationalfirearms,nationalheritage,nativeamerican,naturalhistory,naturalhistorymuseum,naturalsciences,nature,naturhistorisches,natuurwetenschappen,naumburg,naval,nebraska,neues,newhampshire,newjersey,newmexico,newport,newspaper,newyork,niepce,norfolk,north,nrw,nyc,nyny,oceanographic,oceanographique,omaha,online,ontario,openair,oregon,oregontrail,otago,oxford,pacific,paderborn,palace,paleo,palmsprings,panama,paris,pasadena,pharmacy,philadelphia,philadelphiaarea,philately,phoenix,photography,pilots,pittsburgh,planetarium,plantation,plants,plaza,portal,portland,portlligat,posts-and-telecommunications,preservation,presidio,press,project,public,pubol,quebec,railroad,railway,research,resistance,riodejaneiro,rochester,rockart,roma,russia,saintlouis,salem,salvadordali,salzburg,sandiego,sanfrancisco,santabarbara,santacruz,santafe,saskatchewan,satx,savannahga,schlesisches,schoenbrunn,schokoladen,school,schweiz,science,scienceandhistory,scienceandindustry,sciencecenter,sciencecenters,science-fiction,sciencehistory,sciences,sciencesnaturelles,scotland,seaport,settlement,settlers,shell,sherbrooke,sibenik,silk,ski,skole,society,sologne,soundandvision,southcarolina,southwest,space,spy,square,stadt,stalbans,starnberg,state,stateofdelaware,station,steam,steiermark,stjohn,stockholm,stpetersburg,stuttgart,suisse,surgeonshall,surrey,svizzera,sweden,sydney,tank,tcm,technology,telekommunikation,television,texas,textile,theater,time,timekeeping,topology,torino,touch,town,transport,tree,trolley,trust,trustee,uhren,ulm,undersea,university,usa,usantiques,usarts,uscountryestate,usculture,usdecorativearts,usgarden,ushistory,ushuaia,uslivinghistory,utah,uvic,valley,vantaa,versailles,viking,village,virginia,virtual,virtuel,vlaanderen,volkenkunde,wales,wallonie,war,washingtondc,watchandclock,watch-and-clock,western,westfalen,whaling,wildlife,williamsburg,windmill,workshop,york,yorkshire,yosemite,youth,zoological,zoology,xn--9dbhblg6di,xn--h1aegh<mv>aero,biz,com,coop,edu,gov,info,int,mil,museum,name,net,org,pro<mw>ac,biz,co,com,coop,edu,gov,int,museum,net,org<mx>com,org,gob,edu,net<my>biz,com,edu,gov,mil,name,net,org<mz>ac,adv,co,edu,gov,mil,net,org<na>info,pro,name,school,or,dr,us,mx,ca,in,cc,tv,ws,mobi,co,com,org<name,nc>asso,nom<ne,net,nf>com,net,per,rec,web,arts,firm,info,other,store<ng>com,edu,gov,i,mil,mobi,name,net,org,sch<ni>ac,biz,co,com,edu,gob,in,info,int,mil,net,nom,org,web<nl,no>fhs,vgs,fylkesbibl,folkebibl,museum,idrett,priv,mil,stat,dep,kommune,herad,aa>gs<ah>gs<bu>gs<fm>gs<hl>gs<hm>gs<jan-mayen>gs<mr>gs<nl>gs<nt>gs<of>gs<ol>gs<oslo>gs<rl>gs<sf>gs<st>gs<svalbard>gs<tm>gs<tr>gs<va>gs<vf>gs<akrehamn,xn--krehamn-dxa,algard,xn--lgrd-poac,arna,brumunddal,bryne,bronnoysund,xn--brnnysund-m8ac,drobak,xn--drbak-wua,egersund,fetsund,floro,xn--flor-jra,fredrikstad,hokksund,honefoss,xn--hnefoss-q1a,jessheim,jorpeland,xn--jrpeland-54a,kirkenes,kopervik,krokstadelva,langevag,xn--langevg-jxa,leirvik,mjondalen,xn--mjndalen-64a,mo-i-rana,mosjoen,xn--mosjen-eya,nesoddtangen,orkanger,osoyro,xn--osyro-wua,raholt,xn--rholt-mra,sandnessjoen,xn--sandnessjen-ogb,skedsmokorset,slattum,spjelkavik,stathelle,stavern,stjordalshalsen,xn--stjrdalshalsen-sqb,tananger,tranby,vossevangen,afjord,xn--fjord-lra,agdenes,al,xn--l-1fa,alesund,xn--lesund-hua,alstahaug,alta,xn--lt-liac,alaheadju,xn--laheadju-7ya,alvdal,amli,xn--mli-tla,amot,xn--mot-tla,andebu,andoy,xn--andy-ira,andasuolo,ardal,xn--rdal-poa,aremark,arendal,xn--s-1fa,aseral,xn--seral-lra,asker,askim,askvoll,askoy,xn--asky-ira,asnes,xn--snes-poa,audnedaln,aukra,aure,aurland,aurskog-holand,xn--aurskog-hland-jnb,austevoll,austrheim,averoy,xn--avery-yua,balestrand,ballangen,balat,xn--blt-elab,balsfjord,bahccavuotna,xn--bhccavuotna-k7a,bamble,bardu,beardu,beiarn,bajddar,xn--bjddar-pta,baidar,xn--bidr-5nac,berg,bergen,berlevag,xn--berlevg-jxa,bearalvahki,xn--bearalvhki-y4a,bindal,birkenes,bjarkoy,xn--bjarky-fya,bjerkreim,bjugn,bodo,xn--bod-2na,badaddja,xn--bdddj-mrabd,budejju,bokn,bremanger,bronnoy,xn--brnny-wuac,bygland,bykle,barum,xn--brum-voa,telemark>bo,xn--b-5ga<nordland>bo,xn--b-5ga,heroy,xn--hery-ira<bievat,xn--bievt-0qa,bomlo,xn--bmlo-gra,batsfjord,xn--btsfjord-9za,bahcavuotna,xn--bhcavuotna-s4a,dovre,drammen,drangedal,dyroy,xn--dyry-ira,donna,xn--dnna-gra,eid,eidfjord,eidsberg,eidskog,eidsvoll,eigersund,elverum,enebakk,engerdal,etne,etnedal,evenes,evenassi,xn--eveni-0qa01ga,evje-og-hornnes,farsund,fauske,fuossko,fuoisku,fedje,fet,finnoy,xn--finny-yua,fitjar,fjaler,fjell,flakstad,flatanger,flekkefjord,flesberg,flora,fla,xn--fl-zia,folldal,forsand,fosnes,frei,frogn,froland,frosta,frana,xn--frna-woa,froya,xn--frya-hra,fusa,fyresdal,forde,xn--frde-gra,gamvik,gangaviika,xn--ggaviika-8ya47h,gaular,gausdal,gildeskal,xn--gildeskl-g0a,giske,gjemnes,gjerdrum,gjerstad,gjesdal,gjovik,xn--gjvik-wua,gloppen,gol,gran,grane,granvin,gratangen,grimstad,grong,kraanghke,xn--kranghke-b0a,grue,gulen,hadsel,halden,halsa,hamar,hamaroy,habmer,xn--hbmer-xqa,hapmir,xn--hpmir-xqa,hammerfest,hammarfeasta,xn--hmmrfeasta-s4ac,haram,hareid,harstad,hasvik,aknoluokta,xn--koluokta-7ya57h,hattfjelldal,aarborte,haugesund,hemne,hemnes,hemsedal,more-og-romsdal>heroy,sande<xn--mre-og-romsdal-qqb>xn--hery-ira,sande<hitra,hjartdal,hjelmeland,hobol,xn--hobl-ira,hof,hol,hole,holmestrand,holtalen,xn--holtlen-hxa,hornindal,horten,hurdal,hurum,hvaler,hyllestad,hagebostad,xn--hgebostad-g3a,hoyanger,xn--hyanger-q1a,hoylandet,xn--hylandet-54a,ha,xn--h-2fa,ibestad,inderoy,xn--indery-fya,iveland,jevnaker,jondal,jolster,xn--jlster-bya,karasjok,karasjohka,xn--krjohka-hwab49j,karlsoy,galsa,xn--gls-elac,karmoy,xn--karmy-yua,kautokeino,guovdageaidnu,klepp,klabu,xn--klbu-woa,kongsberg,kongsvinger,kragero,xn--krager-gya,kristiansand,kristiansund,krodsherad,xn--krdsherad-m8a,kvalsund,rahkkeravju,xn--rhkkervju-01af,kvam,kvinesdal,kvinnherad,kviteseid,kvitsoy,xn--kvitsy-fya,kvafjord,xn--kvfjord-nxa,giehtavuoatna,kvanangen,xn--kvnangen-k0a,navuotna,xn--nvuotna-hwa,kafjord,xn--kfjord-iua,gaivuotna,xn--givuotna-8ya,larvik,lavangen,lavagis,loabat,xn--loabt-0qa,lebesby,davvesiida,leikanger,leirfjord,leka,leksvik,lenvik,leangaviika,xn--leagaviika-52b,lesja,levanger,lier,lierne,lillehammer,lillesand,lindesnes,lindas,xn--linds-pra,lom,loppa,lahppi,xn--lhppi-xqa,lund,lunner,luroy,xn--lury-ira,luster,lyngdal,lyngen,ivgu,lardal,lerdal,xn--lrdal-sra,lodingen,xn--ldingen-q1a,lorenskog,xn--lrenskog-54a,loten,xn--lten-gra,malvik,masoy,xn--msy-ula0h,muosat,xn--muost-0qa,mandal,marker,marnardal,masfjorden,meland,meldal,melhus,meloy,xn--mely-ira,meraker,xn--merker-kua,moareke,xn--moreke-jua,midsund,midtre-gauldal,modalen,modum,molde,moskenes,moss,mosvik,malselv,xn--mlselv-iua,malatvuopmi,xn--mlatvuopmi-s4a,namdalseid,aejrie,namsos,namsskogan,naamesjevuemie,xn--nmesjevuemie-tcba,laakesvuemie,nannestad,narvik,narviika,naustdal,nedre-eiker,akershus>nes<buskerud>nes<nesna,nesodden,nesseby,unjarga,xn--unjrga-rta,nesset,nissedal,nittedal,nord-aurdal,nord-fron,nord-odal,norddal,nordkapp,davvenjarga,xn--davvenjrga-y4a,nordre-land,nordreisa,raisa,xn--risa-5na,nore-og-uvdal,notodden,naroy,xn--nry-yla5g,notteroy,xn--nttery-byae,odda,oksnes,xn--ksnes-uua,oppdal,oppegard,xn--oppegrd-ixa,orkdal,orland,xn--rland-uua,orskog,xn--rskog-uua,orsta,xn--rsta-fra,hedmark>os,valer,xn--vler-qoa<hordaland>os<osen,osteroy,xn--ostery-fya,ostre-toten,xn--stre-toten-zcb,overhalla,ovre-eiker,xn--vre-eiker-k8a,oyer,xn--yer-zna,oygarden,xn--ygarden-p1a,oystre-slidre,xn--ystre-slidre-ujb,porsanger,porsangu,xn--porsgu-sta26f,porsgrunn,radoy,xn--rady-ira,rakkestad,rana,ruovat,randaberg,rauma,rendalen,rennebu,rennesoy,xn--rennesy-v1a,rindal,ringebu,ringerike,ringsaker,rissa,risor,xn--risr-ira,roan,rollag,rygge,ralingen,xn--rlingen-mxa,rodoy,xn--rdy-0nab,romskog,xn--rmskog-bya,roros,xn--rros-gra,rost,xn--rst-0na,royken,xn--ryken-vua,royrvik,xn--ryrvik-bya,rade,xn--rde-ula,salangen,siellak,saltdal,salat,xn--slt-elab,xn--slat-5na,samnanger,vestfold>sande<sandefjord,sandnes,sandoy,xn--sandy-yua,sarpsborg,sauda,sauherad,sel,selbu,selje,seljord,sigdal,siljan,sirdal,skaun,skedsmo,ski,skien,skiptvet,skjervoy,xn--skjervy-v1a,skierva,xn--skierv-uta,skjak,xn--skjk-soa,skodje,skanland,xn--sknland-fxa,skanit,xn--sknit-yqa,smola,xn--smla-hra,snillfjord,snasa,xn--snsa-roa,snoasa,snaase,xn--snase-nra,sogndal,sokndal,sola,solund,songdalen,sortland,spydeberg,stange,stavanger,steigen,steinkjer,stjordal,xn--stjrdal-s1a,stokke,stor-elvdal,stord,stordal,storfjord,omasvuotna,strand,stranda,stryn,sula,suldal,sund,sunndal,surnadal,sveio,svelvik,sykkylven,sogne,xn--sgne-gra,somna,xn--smna-gra,sondre-land,xn--sndre-land-0cb,sor-aurdal,xn--sr-aurdal-l8a,sor-fron,xn--sr-fron-q1a,sor-odal,xn--sr-odal-q1a,sor-varanger,xn--sr-varanger-ggb,matta-varjjat,xn--mtta-vrjjat-k7af,sorfold,xn--srfold-bya,sorreisa,xn--srreisa-q1a,sorum,xn--srum-gra,tana,deatnu,time,tingvoll,tinn,tjeldsund,dielddanuorri,tjome,xn--tjme-hra,tokke,tolga,torsken,tranoy,xn--trany-yua,tromso,xn--troms-zua,tromsa,romsa,trondheim,troandin,trysil,trana,xn--trna-woa,trogstad,xn--trgstad-r1a,tvedestrand,tydal,tynset,tysfjord,divtasvuodna,divttasvuotna,tysnes,tysvar,xn--tysvr-vra,tonsberg,xn--tnsberg-q1a,ullensaker,ullensvang,ulvik,utsira,vadso,xn--vads-jra,cahcesuolo,xn--hcesuolo-7ya35b,vaksdal,valle,vang,vanylven,vardo,xn--vard-jra,varggat,xn--vrggt-xqad,vefsn,vaapste,vega,vegarshei,xn--vegrshei-c0a,vennesla,verdal,verran,vestby,vestnes,vestre-slidre,vestre-toten,vestvagoy,xn--vestvgy-ixa6o,vevelstad,vik,vikna,vindafjord,volda,voss,varoy,xn--vry-yla5g,vagan,xn--vgan-qoa,voagat,vagsoy,xn--vgsy-qoa0j,vaga,xn--vg-yiab,ostfold>valer<xn--stfold-9xa>xn--vler-qoa<<np>*<nr>biz,info,gov,edu,org,net,com<nu,nz>ac,co,cri,geek,gen,govt,health,iwi,kiwi,maori,mil,xn--mori-qsa,net,org,parliament,school<om>co,com,edu,gov,med,museum,net,org,pro<onion,org,pa>ac,gob,com,org,sld,edu,net,ing,abo,med,nom<pe>edu,gob,nom,mil,org,com,net<pf>com,org,edu<pg>*<ph>com,net,org,gov,edu,ngo,mil,i<pk>com,net,edu,org,fam,biz,web,gov,gob,gok,gon,gop,gos,info<pl>com,net,org,aid,agro,atm,auto,biz,edu,gmina,gsm,info,mail,miasta,media,mil,nieruchomosci,nom,pc,powiat,priv,realestate,rel,sex,shop,sklep,sos,szkola,targi,tm,tourism,travel,turystyka,gov>ap,ic,is,us,kmpsp,kppsp,kwpsp,psp,wskr,kwp,mw,ug,um,umig,ugim,upow,uw,starostwo,pa,po,psse,pup,rzgw,sa,so,sr,wsa,sko,uzs,wiih,winb,pinb,wios,witd,wzmiuw,piw,wiw,griw,wif,oum,sdn,zp,uppo,mup,wuoz,konsulat,oirm<augustow,babia-gora,bedzin,beskidy,bialowieza,bialystok,bielawa,bieszczady,boleslawiec,bydgoszcz,bytom,cieszyn,czeladz,czest,dlugoleka,elblag,elk,glogow,gniezno,gorlice,grajewo,ilawa,jaworzno,jelenia-gora,jgora,kalisz,kazimierz-dolny,karpacz,kartuzy,kaszuby,katowice,kepno,ketrzyn,klodzko,kobierzyce,kolobrzeg,konin,konskowola,kutno,lapy,lebork,legnica,lezajsk,limanowa,lomza,lowicz,lubin,lukow,malbork,malopolska,mazowsze,mazury,mielec,mielno,mragowo,naklo,nowaruda,nysa,olawa,olecko,olkusz,olsztyn,opoczno,opole,ostroda,ostroleka,ostrowiec,ostrowwlkp,pila,pisz,podhale,podlasie,polkowice,pomorze,pomorskie,prochowice,pruszkow,przeworsk,pulawy,radom,rawa-maz,rybnik,rzeszow,sanok,sejny,slask,slupsk,sosnowiec,stalowa-wola,skoczow,starachowice,stargard,suwalki,swidnica,swiebodzin,swinoujscie,szczecin,szczytno,tarnobrzeg,tgory,turek,tychy,ustka,walbrzych,warmia,warszawa,waw,wegrow,wielun,wlocl,wloclawek,wodzislaw,wolomin,wroclaw,zachpomor,zagan,zarow,zgora,zgorzelec<pm,pn>gov,co,org,edu,net<post,pr>com,net,org,gov,edu,isla,pro,biz,info,name,est,prof,ac<pro>aaa,aca,acct,avocat,bar,cpa,eng,jur,law,med,recht<ps>edu,gov,sec,plo,com,org,net<pt>net,gov,org,edu,int,publ,com,nome<pw>co,ne,or,ed,go,belau<py>com,coop,edu,gov,mil,net,org<qa>com,edu,gov,mil,name,net,org,sch<re>asso,com,nom<ro>arts,com,firm,info,nom,nt,org,rec,store,tm,www<rs>ac,co,edu,gov,in,org<ru,rw>ac,co,coop,gov,mil,net,org<sa>com,net,org,gov,med,pub,edu,sch<sb>com,edu,gov,net,org<sc>com,gov,net,org,edu<sd>com,net,org,edu,med,tv,gov,info<se>a,ac,b,bd,brand,c,d,e,f,fh,fhsk,fhv,g,h,i,k,komforb,kommunalforbund,komvux,l,lanbib,m,n,naturbruksgymn,o,org,p,parti,pp,press,r,s,t,tm,u,w,x,y,z<sg>com,net,org,gov,edu,per<sh>com,net,gov,org,mil<si,sj,sk,sl>com,net,edu,gov,org<sm,sn>art,com,edu,gouv,org,perso,univ<so>com,edu,gov,me,net,org<sr,ss>biz,com,edu,gov,me,net,org,sch<st>co,com,consulado,edu,embaixada,mil,net,org,principe,saotome,store<su,sv>com,edu,gob,org,red<sx>gov<sy>edu,gov,net,mil,com,org<sz>co,ac,org<tc,td,tel,tf,tg,th>ac,co,go,in,mi,net,or<tj>ac,biz,co,com,edu,go,gov,int,mil,name,net,nic,org,test,web<tk,tl>gov<tm>com,co,org,net,nom,gov,mil,edu<tn>com,ens,fin,gov,ind,info,intl,mincom,nat,net,org,perso,tourism<to>com,gov,net,org,edu,mil<tr>av,bbs,bel,biz,com,dr,edu,gen,gov,info,mil,k12,kep,name,net,org,pol,tel,tsk,tv,web,nc>gov<<tt>co,com,org,net,biz,info,pro,int,coop,jobs,mobi,travel,museum,aero,name,gov,edu<tv,tw>edu,gov,mil,com,net,org,idv,game,ebiz,club,xn--zf0ao64a,xn--uc0atv,xn--czrw28b<tz>ac,co,go,hotel,info,me,mil,mobi,ne,or,sc,tv<ua>com,edu,gov,in,net,org,cherkassy,cherkasy,chernigov,chernihiv,chernivtsi,chernovtsy,ck,cn,cr,crimea,cv,dn,dnepropetrovsk,dnipropetrovsk,donetsk,dp,if,ivano-frankivsk,kh,kharkiv,kharkov,kherson,khmelnitskiy,khmelnytskyi,kiev,kirovograd,km,kr,krym,ks,kv,kyiv,lg,lt,lugansk,lutsk,lv,lviv,mk,mykolaiv,nikolaev,od,odesa,odessa,pl,poltava,rivne,rovno,rv,sb,sebastopol,sevastopol,sm,sumy,te,ternopil,uz,uzhgorod,vinnica,vinnytsia,vn,volyn,yalta,zaporizhzhe,zaporizhzhia,zhitomir,zhytomyr,zp,zt<ug>co,or,ac,sc,go,ne,com,org<uk>ac,co,gov,ltd,me,net,nhs,org,plc,police,sch>*<<us>dni,fed,isa,kids,nsn,ak>k12,cc,lib<al>k12,cc,lib<ar>k12,cc,lib<as>k12,cc,lib<az>k12,cc,lib<ca>k12,cc,lib<co>k12,cc,lib<ct>k12,cc,lib<dc>k12,cc,lib<de>k12,cc<fl>k12,cc,lib<ga>k12,cc,lib<gu>k12,cc,lib<hi>cc,lib<ia>k12,cc,lib<id>k12,cc,lib<il>k12,cc,lib<in>k12,cc,lib<ks>k12,cc,lib<ky>k12,cc,lib<la>k12,cc,lib<ma>k12>pvt,chtr,paroch<cc,lib<md>k12,cc,lib<me>k12,cc,lib<mi>k12,cc,lib,ann-arbor,cog,dst,eaton,gen,mus,tec,washtenaw<mn>k12,cc,lib<mo>k12,cc,lib<ms>k12,cc,lib<mt>k12,cc,lib<nc>k12,cc,lib<nd>cc,lib<ne>k12,cc,lib<nh>k12,cc,lib<nj>k12,cc,lib<nm>k12,cc,lib<nv>k12,cc,lib<ny>k12,cc,lib<oh>k12,cc,lib<ok>k12,cc,lib<or>k12,cc,lib<pa>k12,cc,lib<pr>k12,cc,lib<ri>cc,lib<sc>k12,cc,lib<sd>cc,lib<tn>k12,cc,lib<tx>k12,cc,lib<ut>k12,cc,lib<vi>k12,cc,lib<vt>k12,cc,lib<va>k12,cc,lib<wa>k12,cc,lib<wi>k12,cc,lib<wv>cc<wy>k12,cc,lib<<uy>com,edu,gub,mil,net,org<uz>co,com,net,org<va,vc>com,net,org,gov,mil,edu<ve>arts,bib,co,com,e12,edu,firm,gob,gov,info,int,mil,net,nom,org,rar,rec,store,tec,web<vg,vi>co,com,k12,net,org<vn>com,net,org,edu,gov,int,ac,biz,info,name,pro,health<vu>com,edu,net,org<wf,ws>com,net,org,gov,edu<yt,xn--mgbaam7a8h,xn--y9a3aq,xn--54b7fta0cc,xn--90ae,xn--mgbcpq6gpa1a,xn--90ais,xn--fiqs8s,xn--fiqz9s,xn--lgbbat1ad8j,xn--wgbh1c,xn--e1a4c,xn--qxa6a,xn--mgbah1a3hjkrd,xn--node,xn--qxam,xn--j6w193g>xn--55qx5d,xn--wcvs22d,xn--mxtq1m,xn--gmqw5a,xn--od0alg,xn--uc0atv<xn--2scrj9c,xn--3hcrj9c,xn--45br5cyl,xn--h2breg3eve,xn--h2brj9c8c,xn--mgbgu82a,xn--rvc1e0am3e,xn--h2brj9c,xn--mgbbh1a,xn--mgbbh1a71e,xn--fpcrj9c3d,xn--gecrj9c,xn--s9brj9c,xn--45brj9c,xn--xkc2dl3a5ee0h,xn--mgba3a4f16a,xn--mgba3a4fra,xn--mgbtx2b,xn--mgbayh7gpa,xn--3e0b707e,xn--80ao21a,xn--q7ce6a,xn--fzc2c9e2c,xn--xkc2al3hye2a,xn--mgbc0a9azcg,xn--d1alf,xn--l1acc,xn--mix891f,xn--mix082f,xn--mgbx4cd0ab,xn--mgb9awbf,xn--mgbai9azgqp6j,xn--mgbai9a5eva00b,xn--ygbi2ammx,xn--90a3ac>xn--o1ac,xn--c1avg,xn--90azh,xn--d1at,xn--o1ach,xn--80au<xn--p1ai,xn--wgbl6a,xn--mgberp4a5d4ar,xn--mgberp4a5d4a87g,xn--mgbqly7c0a67fbc,xn--mgbqly7cvafr,xn--mgbpl2fh,xn--yfro4i67o,xn--clchc0ea0b2g2a9gcd,xn--ogbpf8fl,xn--mgbtf8fl,xn--o3cw4h>xn--12c1fe0br,xn--12co0c3b4eva,xn--h3cuzk1di,xn--o3cyx2a,xn--m3ch0j3a,xn--12cfi8ixb8l<xn--pgbs0dh,xn--kpry57d,xn--kprw13d,xn--nnx388a,xn--j1amh,xn--mgb2ddes,xxx,ye>com,edu,gov,net,mil,org<za>ac,agric,alt,co,edu,gov,grondar,law,mil,net,ngo,nic,nis,nom,org,school,tm,web<zm>ac,biz,co,com,edu,gov,info,mil,net,org,sch<zw>ac,co,gov,mil,org<aaa,aarp,abarth,abb,abbott,abbvie,abc,able,abogado,abudhabi,academy,accenture,accountant,accountants,aco,actor,adac,ads,adult,aeg,aetna,afl,africa,agakhan,agency,aig,airbus,airforce,airtel,akdn,alfaromeo,alibaba,alipay,allfinanz,allstate,ally,alsace,alstom,amazon,americanexpress,americanfamily,amex,amfam,amica,amsterdam,analytics,android,anquan,anz,aol,apartments,app,apple,aquarelle,arab,aramco,archi,army,art,arte,asda,associates,athleta,attorney,auction,audi,audible,audio,auspost,author,auto,autos,avianca,aws,axa,azure,baby,baidu,banamex,bananarepublic,band,bank,bar,barcelona,barclaycard,barclays,barefoot,bargains,baseball,basketball,bauhaus,bayern,bbc,bbt,bbva,bcg,bcn,beats,beauty,beer,bentley,berlin,best,bestbuy,bet,bharti,bible,bid,bike,bing,bingo,bio,black,blackfriday,blockbuster,blog,bloomberg,blue,bms,bmw,bnpparibas,boats,boehringer,bofa,bom,bond,boo,book,booking,bosch,bostik,boston,bot,boutique,box,bradesco,bridgestone,broadway,broker,brother,brussels,bugatti,build,builders,business,buy,buzz,bzh,cab,cafe,cal,call,calvinklein,cam,camera,camp,cancerresearch,canon,capetown,capital,capitalone,car,caravan,cards,care,career,careers,cars,casa,case,cash,casino,catering,catholic,cba,cbn,cbre,cbs,center,ceo,cern,cfa,cfd,chanel,channel,charity,chase,chat,cheap,chintai,christmas,chrome,church,cipriani,circle,cisco,citadel,citi,citic,city,cityeats,claims,cleaning,click,clinic,clinique,clothing,cloud,club,clubmed,coach,codes,coffee,college,cologne,comcast,commbank,community,company,compare,computer,comsec,condos,construction,consulting,contact,contractors,cooking,cookingchannel,cool,corsica,country,coupon,coupons,courses,cpa,credit,creditcard,creditunion,cricket,crown,crs,cruise,cruises,cuisinella,cymru,cyou,dabur,dad,dance,data,date,dating,datsun,day,dclk,dds,deal,dealer,deals,degree,delivery,dell,deloitte,delta,democrat,dental,dentist,desi,design,dev,dhl,diamonds,diet,digital,direct,directory,discount,discover,dish,diy,dnp,docs,doctor,dog,domains,dot,download,drive,dtv,dubai,dunlop,dupont,durban,dvag,dvr,earth,eat,eco,edeka,education,email,emerck,energy,engineer,engineering,enterprises,epson,equipment,ericsson,erni,esq,estate,etisalat,eurovision,eus,events,exchange,expert,exposed,express,extraspace,fage,fail,fairwinds,faith,family,fan,fans,farm,farmers,fashion,fast,fedex,feedback,ferrari,ferrero,fiat,fidelity,fido,film,final,finance,financial,fire,firestone,firmdale,fish,fishing,fit,fitness,flickr,flights,flir,florist,flowers,fly,foo,food,foodnetwork,football,ford,forex,forsale,forum,foundation,fox,free,fresenius,frl,frogans,frontdoor,frontier,ftr,fujitsu,fun,fund,furniture,futbol,fyi,gal,gallery,gallo,gallup,game,games,gap,garden,gay,gbiz,gdn,gea,gent,genting,george,ggee,gift,gifts,gives,giving,glass,gle,global,globo,gmail,gmbh,gmo,gmx,godaddy,gold,goldpoint,golf,goo,goodyear,goog,google,gop,got,grainger,graphics,gratis,green,gripe,grocery,group,guardian,gucci,guge,guide,guitars,guru,hair,hamburg,hangout,haus,hbo,hdfc,hdfcbank,health,healthcare,help,helsinki,here,hermes,hgtv,hiphop,hisamitsu,hitachi,hiv,hkt,hockey,holdings,holiday,homedepot,homegoods,homes,homesense,honda,horse,hospital,host,hosting,hot,hoteles,hotels,hotmail,house,how,hsbc,hughes,hyatt,hyundai,ibm,icbc,ice,icu,ieee,ifm,ikano,imamat,imdb,immo,immobilien,inc,industries,infiniti,ing,ink,institute,insurance,insure,international,intuit,investments,ipiranga,irish,ismaili,ist,istanbul,itau,itv,jaguar,java,jcb,jeep,jetzt,jewelry,jio,jll,jmp,jnj,joburg,jot,joy,jpmorgan,jprs,juegos,juniper,kaufen,kddi,kerryhotels,kerrylogistics,kerryproperties,kfh,kia,kids,kim,kinder,kindle,kitchen,kiwi,koeln,komatsu,kosher,kpmg,kpn,krd,kred,kuokgroup,kyoto,lacaixa,lamborghini,lamer,lancaster,lancia,land,landrover,lanxess,lasalle,lat,latino,latrobe,law,lawyer,lds,lease,leclerc,lefrak,legal,lego,lexus,lgbt,lidl,life,lifeinsurance,lifestyle,lighting,like,lilly,limited,limo,lincoln,linde,link,lipsy,live,living,llc,llp,loan,loans,locker,locus,loft,lol,london,lotte,lotto,love,lpl,lplfinancial,ltd,ltda,lundbeck,luxe,luxury,macys,madrid,maif,maison,makeup,man,management,mango,map,market,marketing,markets,marriott,marshalls,maserati,mattel,mba,mckinsey,med,media,meet,melbourne,meme,memorial,men,menu,merckmsd,miami,microsoft,mini,mint,mit,mitsubishi,mlb,mls,mma,mobile,moda,moe,moi,mom,monash,money,monster,mormon,mortgage,moscow,moto,motorcycles,mov,movie,msd,mtn,mtr,music,mutual,nab,nagoya,natura,navy,nba,nec,netbank,netflix,network,neustar,new,news,next,nextdirect,nexus,nfl,ngo,nhk,nico,nike,nikon,ninja,nissan,nissay,nokia,northwesternmutual,norton,now,nowruz,nowtv,nra,nrw,ntt,nyc,obi,observer,office,okinawa,olayan,olayangroup,oldnavy,ollo,omega,one,ong,onl,online,ooo,open,oracle,orange,organic,origins,osaka,otsuka,ott,ovh,page,panasonic,paris,pars,partners,parts,party,passagens,pay,pccw,pet,pfizer,pharmacy,phd,philips,phone,photo,photography,photos,physio,pics,pictet,pictures,pid,pin,ping,pink,pioneer,pizza,place,play,playstation,plumbing,plus,pnc,pohl,poker,politie,porn,pramerica,praxi,press,prime,prod,productions,prof,progressive,promo,properties,property,protection,pru,prudential,pub,pwc,qpon,quebec,quest,racing,radio,read,realestate,realtor,realty,recipes,red,redstone,redumbrella,rehab,reise,reisen,reit,reliance,ren,rent,rentals,repair,report,republican,rest,restaurant,review,reviews,rexroth,rich,richardli,ricoh,ril,rio,rip,rocher,rocks,rodeo,rogers,room,rsvp,rugby,ruhr,run,rwe,ryukyu,saarland,safe,safety,sakura,sale,salon,samsclub,samsung,sandvik,sandvikcoromant,sanofi,sap,sarl,sas,save,saxo,sbi,sbs,sca,scb,schaeffler,schmidt,scholarships,school,schule,schwarz,science,scot,search,seat,secure,security,seek,select,sener,services,ses,seven,sew,sex,sexy,sfr,shangrila,sharp,shaw,shell,shia,shiksha,shoes,shop,shopping,shouji,show,showtime,silk,sina,singles,site,ski,skin,sky,skype,sling,smart,smile,sncf,soccer,social,softbank,software,sohu,solar,solutions,song,sony,soy,spa,space,sport,spot,srl,stada,staples,star,statebank,statefarm,stc,stcgroup,stockholm,storage,store,stream,studio,study,style,sucks,supplies,supply,support,surf,surgery,suzuki,swatch,swiss,sydney,systems,tab,taipei,talk,taobao,target,tatamotors,tatar,tattoo,tax,taxi,tci,tdk,team,tech,technology,temasek,tennis,teva,thd,theater,theatre,tiaa,tickets,tienda,tiffany,tips,tires,tirol,tjmaxx,tjx,tkmaxx,tmall,today,tokyo,tools,top,toray,toshiba,total,tours,town,toyota,toys,trade,trading,training,travel,travelchannel,travelers,travelersinsurance,trust,trv,tube,tui,tunes,tushu,tvs,ubank,ubs,unicom,university,uno,uol,ups,vacations,vana,vanguard,vegas,ventures,verisign,versicherung,vet,viajes,video,vig,viking,villas,vin,vip,virgin,visa,vision,viva,vivo,vlaanderen,vodka,volkswagen,volvo,vote,voting,voto,voyage,vuelos,wales,walmart,walter,wang,wanggou,watch,watches,weather,weatherchannel,webcam,weber,website,wedding,weibo,weir,whoswho,wien,wiki,williamhill,win,windows,wine,winners,wme,wolterskluwer,woodside,work,works,world,wow,wtc,wtf,xbox,xerox,xfinity,xihuan,xin,xn--11b4c3d,xn--1ck2e1b,xn--1qqw23a,xn--30rr7y,xn--3bst00m,xn--3ds443g,xn--3pxu8k,xn--42c2d9a,xn--45q11c,xn--4gbrim,xn--55qw42g,xn--55qx5d,xn--5su34j936bgsg,xn--5tzm5g,xn--6frz82g,xn--6qq986b3xl,xn--80adxhks,xn--80aqecdr1a,xn--80asehdb,xn--80aswg,xn--8y0a063a,xn--9dbq2a,xn--9et52u,xn--9krt00a,xn--b4w605ferd,xn--bck1b9a5dre4c,xn--c1avg,xn--c2br7g,xn--cck2b3b,xn--cckwcxetd,xn--cg4bki,xn--czr694b,xn--czrs0t,xn--czru2d,xn--d1acj3b,xn--eckvdtc9d,xn--efvy88h,xn--fct429k,xn--fhbei,xn--fiq228c5hs,xn--fiq64b,xn--fjq720a,xn--flw351e,xn--fzys8d69uvgm,xn--g2xx48c,xn--gckr3f0f,xn--gk3at1e,xn--hxt814e,xn--i1b6b1a6a2e,xn--imr513n,xn--io0a7i,xn--j1aef,xn--jlq480n2rg,xn--jlq61u9w7b,xn--jvr189m,xn--kcrx77d1x4a,xn--kput3i,xn--mgba3a3ejt,xn--mgba7c0bbn0a,xn--mgbaakc7dvf,xn--mgbab2bd,xn--mgbca7dzdo,xn--mgbi4ecexp,xn--mgbt3dhd,xn--mk1bu44c,xn--mxtq1m,xn--ngbc5azd,xn--ngbe9e0a,xn--ngbrx,xn--nqv7f,xn--nqv7fs00ema,xn--nyqy26a,xn--otu796d,xn--p1acf,xn--pssy2u,xn--q9jyb4c,xn--qcka1pmc,xn--rhqv96g,xn--rovu88b,xn--ses554g,xn--t60b56a,xn--tckwe,xn--tiq49xqyj,xn--unup4y,xn--vermgensberater-ctb,xn--vermgensberatung-pwb,xn--vhquv,xn--vuq861b,xn--w4r85el8fhu5dnra,xn--w4rs40l,xn--xhq521b,xn--zfr164b,xyz,yachts,yahoo,yamaxun,yandex,yodobashi,yoga,yokohama,you,youtube,yun,zappos,zara,zero,zip,zone,zuerich";var uue="ua>cc,inf,ltd,cx,biz,co,pp,v<to>611,oya,rdv,vpnplus,quickconnect>direct<nyan<us>graphox,cloudns,drud,is-by,land-4-sale,stuff-4-sale,enscaled>phx<mircloud,freeddns,golffan,noip,pointto,platterp,de>lib<<com>devcdnaccesso>*<adobeaemcloud>dev>*<<airkitapps,airkitapps-au,aivencloud,kasserver,amazonaws>compute>*<compute-1>*<us-east-1>dualstack>s3<<elb>*<s3,s3-ap-northeast-1,s3-ap-northeast-2,s3-ap-south-1,s3-ap-southeast-1,s3-ap-southeast-2,s3-ca-central-1,s3-eu-central-1,s3-eu-west-1,s3-eu-west-2,s3-eu-west-3,s3-external-1,s3-fips-us-gov-west-1,s3-sa-east-1,s3-us-gov-west-1,s3-us-east-2,s3-us-west-1,s3-us-west-2,ap-northeast-2>s3,dualstack>s3<s3-website<ap-south-1>s3,dualstack>s3<s3-website<ca-central-1>s3,dualstack>s3<s3-website<eu-central-1>s3,dualstack>s3<s3-website<eu-west-2>s3,dualstack>s3<s3-website<eu-west-3>s3,dualstack>s3<s3-website<us-east-2>s3,dualstack>s3<s3-website<ap-northeast-1>dualstack>s3<<ap-southeast-1>dualstack>s3<<ap-southeast-2>dualstack>s3<<eu-west-1>dualstack>s3<<sa-east-1>dualstack>s3<<s3-website-us-east-1,s3-website-us-west-1,s3-website-us-west-2,s3-website-ap-northeast-1,s3-website-ap-southeast-1,s3-website-ap-southeast-2,s3-website-eu-west-1,s3-website-sa-east-1<elasticbeanstalk>ap-northeast-1,ap-northeast-2,ap-northeast-3,ap-south-1,ap-southeast-1,ap-southeast-2,ca-central-1,eu-central-1,eu-west-1,eu-west-2,eu-west-3,sa-east-1,us-east-1,us-east-2,us-gov-west-1,us-west-1,us-west-2<awsglobalaccelerator,siiites,appspacehosted,appspaceusercontent,on-aptible,myasustor,balena-devices,betainabox,boutir,bplaced,cafjs,br,cn,de,eu,jpn,mex,ru,sa,uk,us,za,ar,hu,kr,no,qc,uy,africa,gr,co,jdevcloud,wpdevcloud,cloudcontrolled,cloudcontrolapp,trycloudflare,customer-oci>*,oci>*<ocp>*<ocs>*<<dattolocal,dattorelay,dattoweb,mydatto,builtwithdark,datadetect>demo,instance<ddns5,discordsays,discordsez,drayddns,dreamhosters,mydrobo,dyndns-at-home,dyndns-at-work,dyndns-blog,dyndns-free,dyndns-home,dyndns-ip,dyndns-mail,dyndns-office,dyndns-pics,dyndns-remote,dyndns-server,dyndns-web,dyndns-wiki,dyndns-work,blogdns,cechire,dnsalias,dnsdojo,doesntexist,dontexist,doomdns,dyn-o-saur,dynalias,est-a-la-maison,est-a-la-masion,est-le-patron,est-mon-blogueur,from-ak,from-al,from-ar,from-ca,from-ct,from-dc,from-de,from-fl,from-ga,from-hi,from-ia,from-id,from-il,from-in,from-ks,from-ky,from-ma,from-md,from-mi,from-mn,from-mo,from-ms,from-mt,from-nc,from-nd,from-ne,from-nh,from-nj,from-nm,from-nv,from-oh,from-ok,from-or,from-pa,from-pr,from-ri,from-sc,from-sd,from-tn,from-tx,from-ut,from-va,from-vt,from-wa,from-wi,from-wv,from-wy,getmyip,gotdns,hobby-site,homelinux,homeunix,iamallama,is-a-anarchist,is-a-blogger,is-a-bookkeeper,is-a-bulls-fan,is-a-caterer,is-a-chef,is-a-conservative,is-a-cpa,is-a-cubicle-slave,is-a-democrat,is-a-designer,is-a-doctor,is-a-financialadvisor,is-a-geek,is-a-green,is-a-guru,is-a-hard-worker,is-a-hunter,is-a-landscaper,is-a-lawyer,is-a-liberal,is-a-libertarian,is-a-llama,is-a-musician,is-a-nascarfan,is-a-nurse,is-a-painter,is-a-personaltrainer,is-a-photographer,is-a-player,is-a-republican,is-a-rockstar,is-a-socialist,is-a-student,is-a-teacher,is-a-techie,is-a-therapist,is-an-accountant,is-an-actor,is-an-actress,is-an-anarchist,is-an-artist,is-an-engineer,is-an-entertainer,is-certified,is-gone,is-into-anime,is-into-cars,is-into-cartoons,is-into-games,is-leet,is-not-certified,is-slick,is-uberleet,is-with-theband,isa-geek,isa-hockeynut,issmarterthanyou,likes-pie,likescandy,neat-url,saves-the-whales,selfip,sells-for-less,sells-for-u,servebbs,simple-url,space-to-rent,teaches-yoga,writesthisblog,digitaloceanspaces>*<ddnsfree,ddnsgeek,giize,gleeze,kozow,loseyourip,ooguy,theworkpc,mytuleap,tuleap-partners,encoreapi,evennode>eu-1,eu-2,eu-3,eu-4,us-1,us-2,us-3,us-4<onfabrica,fbsbx>apps<fastly-terrarium,fastvps-server,mydobiss,firebaseapp,fldrv,forgeblocks,framercanvas,freebox-os,freeboxos,freemyip,gentapps,gentlentapis,githubusercontent,0emm>*<appspot>r>*<<codespot,googleapis,googlecode,pagespeedmobilizer,publishproxy,withgoogle,withyoutube,blogspot,awsmppl,herokuapp,herokussl,myravendb,impertrixcdn,impertrix,smushcdn,wphostedmail,wpmucdn,pixolino,amscompute,clicketcloud,dopaas,hidora,hosted-by-previder>paas<hosteur>rag-cloud,rag-cloud-ch<ik-server>jcloud,jcloud-ver-jpc<jelastic>demo<kilatiron,massivegrid>paas<wafaicloud>jed,lon,ryd<joyent>cns>*<<ktistory,lpusercontent,lmpm>app<linode>members,nodebalancer>*<<linodeobjects>*<linodeusercontent>ip<barsycenter,barsyonline,mazeplay,miniserver,meteorapp>eu<hostedpi,mythic-beasts>customer,caracal,fentiger,lynx,ocelot,oncilla,onza,sphinx,vs,x,yali<nospamproxy>cloud<4u,nfshost,001www,ddnslive,myiphost,blogsyte,ciscofreak,damnserver,ditchyourip,dnsiskinky,dynns,geekgalaxy,health-carereform,homesecuritymac,homesecuritypc,myactivedirectory,mysecuritycamera,net-freaks,onthewifi,point2this,quicksytes,securitytactics,serveexchange,servehumour,servep2p,servesarcasm,stufftoread,unusualperson,workisboring,3utilities,ddnsking,myvnc,servebeer,servecounterstrike,serveftp,servegame,servehalflife,servehttp,serveirc,servemp3,servepics,servequake,observableusercontent>static<orsites,operaunite,authgear-staging,authgearapps,skygearapp,outsystemscloud,ownprovider,pgfog,pagefrontapp,pagexl,paywhirl>*<gotpantheon,platter-app,pleskns,postman-echo,prgmr>xen<pythonanywhere>eu<qualifioapp,qbuser,qa2,dev-myqnapcloud,alpha-myqnapcloud,myqnapcloud,quipelements>*<rackmaze,rhcloud,render>app<onrender,code>builder>*<dev-builder>*<stg-builder>*<<logoip,scrysec,firewall-gateway,myshopblocks,myshopify,shopitsite,1kapp,appchizi,applinzi,sinaapp,vipsinaapp,bounty-full>alpha,beta<try-snowplow,stackhero-network,playstation-cloud,myspreadshop,stdlib>api<temp-dns,dsmynas,familyds,tb-hosting>site<reservd,thingdustdata,bloxcms,townnews-staging,typeform>pro<hk,vultrobjects>*<wafflecell,reserve-online,hotelwithflight,remotewd,wiardweb>pages<messwithdns,woltlab-demo,wpenginepowered>js<wixsite,xnbay>u2,u2-local<yolasite<live>hlx<net>adobeaemcloud,alwaysdata,cloudfront,t3l3p0rt,appudo,atlassian-dev>prod>cdn<<myfritz,onavstack,shopselect,blackbaudcdn,boomla,bplaced,square7,gb,hu,jp,se,uk,in,clickrising,cloudaccess,cdn77-ssl,cdn77>r<feste-ip,knx-server,static-access,cryptonomic>*<dattolocal,mydatto,debian,bitbridge,at-band-camp,blogdns,broke-it,buyshouses,dnsalias,dnsdojo,does-it,dontexist,dynalias,dynathome,endofinternet,from-az,from-co,from-la,from-ny,gets-it,ham-radio-op,homeftp,homeip,homelinux,homeunix,in-the-band,is-a-chef,is-a-geek,isa-geek,kicks-ass,office-on-the,podzone,scrapper-site,selfip,sells-it,servebbs,serveftp,thruhere,webhop,definima,casacam,dynu,dynv6,twmail,ru,channelsdvr>u<fastlylb>map<fastly>freetls,map,prod>a,global<ssl>a,b,global<<edgeapp,flynnhosting,cdn-edges,heteml,cloudfunctions,moonscale,in-dsl,in-vpn,ipifony,iobb,cloudjiffy>fra1-de,west1-us<elastx>jls-sto1,jls-sto2,jls-sto3<faststacks,massivegrid>paas>fr-1,lon-1,lon-2,ny-1,ny-2,sg-1<<saveincloud>jelastic,nordeste-idc<scaleforce>j<tsukaeru>jelastic<kinghost,uni5,krellian,barsy,memset,azurewebsites,azure-mobile,cloudapp,azurestaticapps>1,centralus,eastasia,eastus2,westeurope,westus2<dnsup,hicam,now-dns,ownip,vpndns,eating-organic,mydissent,myeffect,mymediapc,mypsx,mysecuritycamera,nhlfan,no-ip,pgafan,privatizehealthinsurance,bounceme,ddns,redirectme,serveblog,serveminecraft,sytes,cloudycluster,ovh>webpaas>*<hosting>*<<bar0,bar1,bar2,rackmaze,schokokeks,firewall-gateway,seidat,senseering,siteleaf,vps-host>jelastic>atl,njs,ric<<myspreadshop,srcf>soc,user<supabase,dsmynas,familyds,tailscale>beta<ts,torproject>pages<reserve-online,community-pro,meinforum,yandexcloud>storage,website<za<page>hlx,hlx3,translated,codeberg,pdns,plesk,prvcy,rocky,magnet<pl>beep,ecommerce-shop,shoparena,homesklep,sdscloud,unicloud,krasnik,leczna,lubartow,lublin,poniatowa,swidnik,co,art,gliwice,krakow,poznan,wroc,zakopane,myspreadshop,gda,gdansk,gdynia,med,sopot<eu>airkitapps,mycd,cloudns,dogado>jelastic<barsy,wellbeingzone,spdns,transurl>*<diskstation<ca>barsy,awdev>*<co,blogspot,no-ip,myspreadshop<estate>compute>*<<network>alces>*<co,arvo,azimuth,tlon<org>altervista,amune>tele<pimienta,poivron,potager,sweetpepper,ae,us,certmgr,cdn77>c,rsc<cdn77-secure>origin>ssl<<cloudns,duckdns,tunk,dyndns>go,home<blogdns,blogsite,boldlygoingnowhere,dnsalias,dnsdojo,doesntexist,dontexist,doomdns,dvrdns,dynalias,endofinternet,endoftheinternet,from-me,game-host,gotdns,hobby-site,homedns,homeftp,homelinux,homeunix,is-a-bruinsfan,is-a-candidate,is-a-celticsfan,is-a-chef,is-a-geek,is-a-knight,is-a-linux-user,is-a-patsfan,is-a-soxfan,is-found,is-lost,is-saved,is-very-bad,is-very-evil,is-very-good,is-very-nice,is-very-sweet,isa-geek,kicks-ass,misconfused,podzone,readmyblog,selfip,sellsyourhome,servebbs,serveftp,servegame,stuff-4-sale,webhop,ddnss,accesscam,camdvr,freeddns,mywire,webredirect,eu>al,asso,at,au,be,bg,ca,cd,ch,cn,cy,cz,de,dk,edu,ee,es,fi,fr,gr,hr,hu,ie,il,in,int,is,it,jp,kr,lt,lu,lv,mc,me,mk,mt,my,net,ng,nl,no,nz,paris,pl,pt,q-a,ro,ru,se,si,sk,tr,uk,us<twmail,fedorainfracloud,fedorapeople,fedoraproject>cloud,os>app<stg>os>app<<<freedesktop,hepforge,in-dsl,in-vpn,js,barsy,mayfirst,mozilla-iot,bmoattachments,dynserv,now-dns,cable-modem,collegefan,couchpotatofries,mlbfan,mysecuritycamera,nflfan,read-books,ufcfan,hopto,myftp,no-ip,zapto,httpbin,pubtls,my-firewall,myfirewall,spdns,small-web,dsmynas,familyds,teckids>s3<tuxfamily,diskstation,hk,wmflabs,toolforge,wmcloud,za<cn>com>amazonaws>compute>*<eb>cn-north-1,cn-northwest-1<elb>*<cn-north-1>s3<<<instantcloud,quickconnect>direct<<io>apigee,b-data,backplaneapp,banzaicloud>app,backyards>*<<bitbucket,bluebite,boxfuse,browsersafetymark,bigv>uk0<cleverapps,dappnode>dyndns<dedyn,drud,definima,fh-muenster,shw,forgerock>id<ghost,github,gitlab,lolipop,hasura-app,hostyhosting,moonscale>*<beebyte>paas<beebyteapp>sekd1<jele,unispace>cloud-fr1<webthings,loginline,barsy,azurecontainer>*<ngrok,nodeart>stage<nid,pantheonsite,dyn53,pstmn>mock<protonet,qoto,qcx>sys>*<<vaporcloud,vbrplsbx>g<on-k3s>*<on-rio>*<readthedocs,resindevice,resinstaging>devices<hzc,sandcats,shiftcrypto,shiftedit,mo-siemens,musician,lair>apps<stolos>*<spacekit,utwente,s5y>*<edugit,telebit,thingdust>dev>cust,reservd<disrec>cust,reservd<prod>cust<testing>cust,reservd<<tickets,upli,2038,wedeploy,editorx,basicserver,virtualserver<jp>ne>aseinet>user<gehirn<buyshop,fashionstore,handcrafted,kawaiishop,supersale,theshop,usercontent,angry,babyblue,babymilk,backdrop,bambina,bitter,blush,boo,boy,boyfriend,but,candypop,capoo,catfood,cheap,chicappa,chillout,chips,chowder,chu,ciao,cocotte,coolblog,cranky,cutegirl,daa,deca,deci,digick,egoism,fakefur,fem,flier,floppy,fool,frenchkiss,girlfriend,girly,gloomy,gonna,greater,hacca,heavy,her,hiho,hippy,holy,hungry,icurus,itigo,jellybean,kikirara,kill,kilo,kuron,littlestar,lolipopmc,lolitapunk,lomo,lovepop,lovesick,main,mods,mond,mongolian,moo,namaste,nikita,nobushi,noor,oops,parallel,parasite,pecori,peewee,penne,pepper,perma,pigboat,pinoko,punyu,pupu,pussycat,pya,raindrop,readymade,sadist,schoolbus,secret,staba,stripper,sub,sunnyday,thick,tonkotsu,under,upper,velvet,verse,versus,vivian,watson,weblike,whitesnow,zombie,blogspot<vc>gv>d<0e<eus>party>user<<ws>advisor>*<cloud66,dyndns,mypets<ba>rs,blogspot<cloud>banzai>*<elementor,encoway>eu<statics>*<ravendb,axarnet>es-1<diadem,jelastic>vip<jele,jenv-aruba>aruba>eur>it1<<it1<keliweb>cs<oxa>tn,uk<primetel>uk<reclaim>ca,uk,us<trendhosting>ch,de<jotelulu,kuleuven,linkyard,magentosite>*<perspecta,vapor,on-rancher>*<scw>baremetal>fr-par-1,fr-par-2,nl-ams-1<fr-par>fnc>functions<k8s>nodes<s3,s3-website,whm<instances>priv,pub<k8s,nl-ams>k8s>nodes<s3,s3-website,whm<pl-waw>k8s>nodes<s3,s3-website<scalebook,smartlabeling<sensiosite>*<trafficplex,urown,voorloper<ec>base,official<shop>base,hoplix,barsy<app>beget>*<clerk,clerkstage,wnext,platform0,deta,ondigitalocean,encr,edgecompute,fireweb,onflashdrive,framer,run>a<web,hasura,loginline,messerli,netlify,developer>*<noop,northflank>*<telebit,typedream,vercel,bookonline<la>bnr,c<je>of<ch>square7,blogspot,flow>ae>alp1<appengine<linkyard-cloud,dnsking,gotdns,myspreadshop,firenet>*,svc>*<<12hp,2ix,4lima,lima-city<de>bplaced,square7,com,cosidns>dyn<dynamisches-dns,dnsupdater,internet-dns,l-o-g-i-n,dnshome,fuettertdasnetz,isteingeek,istmein,lebtimnetz,leitungsen,traeumtgerade,ddnss>dyn,dyndns<dyndns1,dyn-ip24,home-webserver>dyn<myhome-server,frusky>*<goip,blogspot,xn--gnstigbestellen-zvb,xn--gnstigliefern-wob,hs-heilbronn>it>pages<<dyn-berlin,in-berlin,in-brb,in-butter,in-dsl,in-vpn,iservschule,mein-iserv,schulplattform,schulserver,test-iserv,keymachine,git-repos,lcube-server,svn-repos,barsy,logoip,firewall-gateway,my-gateway,my-router,spdns,speedpartner>customer<myspreadshop,taifun-dns,12hp,2ix,4lima,lima-city,dd-dns,dray-dns,draydns,dyn-vpn,dynvpn,mein-vigor,my-vigor,my-wan,syno-ds,synology-diskstation,synology-ds,uberspace>*<virtualuser,virtual-user,community-pro,diskussionsbereich<rs>brendly>shop<blogspot,ua,ox<uk>co>bytemark>dh,vm<blogspot,layershift>j<barsy,barsyonline,retrosnub>cust<nh-serv,no-ip,wellbeingzone,adimo,myspreadshop,gwiddle<conn,copro,hosp,independent-commission,independent-inquest,independent-inquiry,independent-panel,independent-review,public-inquiry,royal-commission,gov>campaign,service,api,homeoffice<pymnt,org>glug,lug,lugs,affinitylottery,raffleentry,weeklylottery<barsy<ac>drr<ai>uwu<co>carrd,crd,otap>*<com>blogspot<leadpages,lpages,mypi,n4t,repl>id<supabase<mp>ju<se>com,blogspot,conf,iopsys,itcouldbewor,myspreadshop,paba>su<<bz>za,gsj<in>web,cloudns,blogspot,barsy,supabase<basketball>aus,nz<am>radio,blogspot,neko,nyaa<fm>radio<group>discourse<team>discourse,jelastic<dev>lcl>*<lclstage>*<stg>*<stgstage>*<pages,workers,curv,deno,deno-staging,deta,fly,githubpreview,gateway>*<iserv,localcert>user>*<<loginline,mediatech,platter-app,shiftcrypto,vercel,webhare>*<<me>c66,daplie>localhost<edgestack,filegear,filegear-au,filegear-de,filegear-gb,filegear-ie,filegear-jp,filegear-sg,glitch,ravendb,lohmus,barsy,mcpe,mcdir,soundcast,tcp4,brasilia,ddns,dnsfor,hopto,loginto,noip,webhop,vp4,diskstation,dscloud,i234,myds,synology,tbits,transip>site<wedeploy,yombo,nohost<zone>cloud66,hs,triton>*<lima<host>cloudaccess,freesite,fastvps,myfast,tempurl,wpmudev,jele,mircloud,pcloud,half<site>cloudera>*<cyon,fnwk,folionetwork,fastvps,jele,lelux,loginline,barsy,mintere,omniwe,opensocial,platformsh>*<tst>*<byen,srht,novecore<cz>co,realm,e4,blogspot,metacentrum>cloud>*<custom<muni>cloud>flt,usr<<<asia>cloudns<biz>cloudns,jozi,dyndns,for-better,for-more,for-some,for-the,selfip,webhop,orx,mmafan,myftp,no-ip,dscloud<club>cloudns,jele,barsy,pony<cc>cloudns,ftpaccess,game-server,myphotos,scrapping,twmail,csx,fantasyleague,spawn>instances<<info>cloudns,dynamic-dns,dyndns,barrel-of-knowledge,barrell-of-knowledge,for-our,groks-the,groks-this,here-for-more,knowsitall,selfip,webhop,barsy,mayfirst,forumz,nsupdate,dvrcam,ilovecollege,no-ip,dnsupdate,v-info<pro>cloudns,dnstrace>bci<barsy<pw>cloudns,x443<gdn>cnpy<nl>co,hosting-cluster,blogspot,gov,khplay,myspreadshop,transurl>*<cistron,demon<no>co,blogspot,myspreadshop<be>webhosting,blogspot,interhostsolutions>cloud<kuleuven>ezproxy<myspreadshop,transurl>*<<ru>ac,edu,gov,int,mil,test,eurodir,adygeya,bashkiria,bir,cbg,com,dagestan,grozny,kalmykia,kustanai,marine,mordovia,msk,mytis,nalchik,nov,pyatigorsk,spb,vladikavkaz,vladimir,blogspot,na4u,mircloud,regruhosting>jelastic<myjino>hosting>*<landing>*<spectrum>*<vps>*<<cldmail>hb<mcdir>vps<mcpre,net,org,pp,lk3,ras<is>cupcake,blogspot<link>cyon,mypep,dweb>*<<dk>biz,co,firm,reg,store,blogspot,myspreadshop<earth>dapps>*,bzz>*<<<id>my>rss>*<<flap,co>blogspot<forte<solutions>diher>*<<th>online,shop<sh>bip,hashbang,platform>bc,ent,eu,us<now,vxl,wedeploy<fi>dy,blogspot,xn--hkkinen-5wa,iki,cloudplatform>fi<datacenter>demo,paas<kapsi,myspreadshop<tv>dyndns,better-than,on-the-web,worse-than<cx>ath,info<name>her>forgot<his>forgot<<nu>merseine,mine,shacknet,enterprisecloud<rocks>myddns,lima-city,webspace<xyz>blogsite,localzone,crafting,zapto,telebit>*<<online>eero,eero-stage,barsy<cool>elementor,de<fr>en-root,fbx-os,fbxos,freebox-os,freeboxos,blogspot,goupile,on-web,chirurgiens-dentistes-en-france,dedibox,myspreadshop,ynh<one>onred>staging<for,under,service,homelink<tw>com>mymailer<url,blogspot<su>abkhazia,adygeya,aktyubinsk,arkhangelsk,armenia,ashgabad,azerbaijan,balashov,bashkiria,bryansk,bukhara,chimkent,dagestan,east-kazakhstan,exnet,georgia,grozny,ivanovo,jambyl,kalmykia,kaluga,karacol,karaganda,karelia,khakassia,krasnodar,kurgan,kustanai,lenug,mangyshlak,mordovia,msk,murmansk,nalchik,navoi,north-kazakhstan,nov,obninsk,penza,pokrovsk,sochi,spb,tashkent,termez,togliatti,troitsk,tselinograd,tula,tuva,vladikavkaz,vladimir,vologda<space>myfast,uber,xs4all<il>co>ravpage,blogspot,tabitorder<<at>funkfeuer>wien<futurecms>*,ex>*<in>*<<futurehosting,futuremailing,ortsinfo>ex>*<kunden>*<<co>blogspot<biz,info,priv,myspreadshop,12hp,2ix,4lima,lima-city<ms>lab,minisite<si>gitapp,gitpage,blogspot<community>nog,ravendb,myforum<ro>co,shop,blogspot,barsy<digital>cloudapps>london<<im>ro<goog>cloud,translate,usercontent>*<<ae>blogspot<al>blogspot<bg>blogspot,barsy<bj>blogspot<cf>blogspot<cl>blogspot<ke>co>blogspot<<nz>co>blogspot<<za>co>blogspot<<ar>com>blogspot<<au>com>blogspot,cloudlets>mel<myspreadshop<<br>com>blogspot,virtualcloud>scale>users<<<leg>ac,al,am,ap,ba,ce,df,es,go,ma,mg,ms,mt,pa,pb,pe,pi,pr,rj,rn,ro,rr,rs,sc,se,sp,to<<by>com>blogspot<mycloud,mediatech<cy>com>blogspot,scaleforce>j<<<ee>com>blogspot<<eg>com>blogspot<<es>com>blogspot<myspreadshop<mt>com>blogspot<<ng>com>blogspot<col,firm,gen,ltd,ngo<tr>com>blogspot<<uy>com>blogspot<<cv>blogspot<gr>blogspot<hk>blogspot,secaas,ltd,inc<hr>blogspot,free<hu>blogspot<ie>blogspot,myspreadshop<it>blogspot,ibxos,iliadboxos,neen>jc<tim>open>jelastic>cloud<<<16-b,32-b,64-b,myspreadshop,syncloud<kr>blogspot<li>blogspot,caa<lt>blogspot<lu>blogspot<md>blogspot,at,de,jp,to<mk>blogspot<mr>blogspot<mx>blogspot<my>blogspot<pe>blogspot<pt>blogspot<qa>blogspot<re>blogspot<sg>blogspot,enscaled<sk>blogspot<sn>blogspot<td>blogspot<ug>blogspot<vn>blogspot<ci>fin,nl<run>hs,development,ravendb,servers,build>*<code>*<database>*<migration>*<onporter,repl<gl>biz,xx<scot>edu,gov>service<<so>sch<kz>jcloud,kazteleport>upaas<<tn>orangecloud<gg>kaas,cya,panel>daemon<<systems>knightpoint<events>koobin,co<krd>co,edu<business>co<education>co<financial>co<place>co<technology>co<bs>we<services>loginline<menu>barsy<mobi>barsy,dscloud<pub>barsy<support>barsy<vu>cn,blog,dev,me<health>hra<casa>nabu>ui<<fashion>of<london>in,of<marketing>from,with<men>for,repair<mom>and,for<sale>for<win>that<work>from,to<news>noticeable<top>now-dns,ntdll<ovh>nerdpol<mn>nyc<lol>omg<hosting>opencraft<orange>tech<pm>own,name<codes>owo>*<<lc>oy<bn>co<today>prequalifyme<builders>cloudsite<edu>rit>git-pages<<xn--p1acf>xn--90amc,xn--j1aef,xn--j1ael8b,xn--h1ahn,xn--j1adp,xn--c1avg,xn--80aaa0cvac,xn--h1aliz,xn--90a1af,xn--41a<store>sellfy,shopware,storebase<land>static>dev,sites<<farm>storj<pictures>1337<rip>clan<tf>sch<wf>biz,sch<yt>org<management>router<ax>be,cat,es,eu,gg,mc,us,xy<gp>app<gt>blog,de,to<gy>be<hn>cc<kg>blog,io,jp,tv,uk,us<ls>de<porn>indie<tc>ch,me,we<vg>at<academy>official<faith>ybo<party>ybo<review>ybo<science>ybo<trade>ybo<st>noho<design>bss";var gUe="<",vUe=",",yUe=">",bUe="|",cue="*",wUe="!";var lue=(e,t)=>{let r=e.slice(),n=[],i=t;for(;r.length!==0;){let a=r.pop(),s=a.toLowerCase();if(i.children.has(cue)){if(i.children.has(wUe+s))break;i=i.children.get(cue)}else{if(i.children.has(s)===!1)break;i=i.children.get(s)}n.unshift(a)}return n};var xUe="[a-fA-F\\d:]",Rg=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${xUe})|(?<=${xUe})(?=\\s|$))`:"",Ef="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",Ss="[a-fA-F\\d]{1,4}",wj=`
(?:
(?:${Ss}:){7}(?:${Ss}|:)|                                    // 1:2:3:4:5:6:7::  1:2:3:4:5:6:7:8
(?:${Ss}:){6}(?:${Ef}|:${Ss}|:)|                             // 1:2:3:4:5:6::    1:2:3:4:5:6::8   1:2:3:4:5:6::8  1:2:3:4:5:6::1.2.3.4
(?:${Ss}:){5}(?::${Ef}|(?::${Ss}){1,2}|:)|                   // 1:2:3:4:5::      1:2:3:4:5::7:8   1:2:3:4:5::8    1:2:3:4:5::7:1.2.3.4
(?:${Ss}:){4}(?:(?::${Ss}){0,1}:${Ef}|(?::${Ss}){1,3}|:)| // 1:2:3:4::        1:2:3:4::6:7:8   1:2:3:4::8      1:2:3:4::6:7:1.2.3.4
(?:${Ss}:){3}(?:(?::${Ss}){0,2}:${Ef}|(?::${Ss}){1,4}|:)| // 1:2:3::          1:2:3::5:6:7:8   1:2:3::8        1:2:3::5:6:7:1.2.3.4
(?:${Ss}:){2}(?:(?::${Ss}){0,3}:${Ef}|(?::${Ss}){1,5}|:)| // 1:2::            1:2::4:5:6:7:8   1:2::8          1:2::4:5:6:7:1.2.3.4
(?:${Ss}:){1}(?:(?::${Ss}){0,4}:${Ef}|(?::${Ss}){1,6}|:)| // 1::              1::3:4:5:6:7:8   1::8            1::3:4:5:6:7:1.2.3.4
(?::(?:(?::${Ss}){0,5}:${Ef}|(?::${Ss}){1,7}|:))             // ::2:3:4:5:6:7:8  ::2:3:4:5:6:7:8  ::8             ::1.2.3.4
)(?:%[0-9a-zA-Z]{1,})?                                             // %eth0            %1
`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),Ptr=new RegExp(`(?:^${Ef}$)|(?:^${wj}$)`),Itr=new RegExp(`^${Ef}$`),Rtr=new RegExp(`^${wj}$`),pue=e=>e&&e.exact?Ptr:new RegExp(`(?:${Rg(e)}${Ef}${Rg(e)})|(?:${Rg(e)}${wj}${Rg(e)})`,"g");pue.v4=e=>e&&e.exact?Itr:new RegExp(`${Rg(e)}${Ef}${Rg(e)}`,"g");pue.v6=e=>e&&e.exact?Rtr:new RegExp(`${Rg(e)}${wj}${Rg(e)}`,"g");var fue=pue;function Ftr(e){return fue({exact:!0}).test(e)}function jtr(e){return fue.v6({exact:!0}).test(e)}function EUe(e){return Ftr(e)?jtr(e)?6:4:void 0}var ok=".",hue=1,mue=63,AUe=253,Ntr=new TextEncoder,uk;(function(e){e.Lax="LAX",e.Strict="STRICT"})(uk||(uk={}));var Fg;(function(e){e.NoHostname="NO_HOSTNAME",e.DomainMaxLength="DOMAIN_MAX_LENGTH",e.LabelMinLength="LABEL_MIN_LENGTH",e.LabelMaxLength="LABEL_MAX_LENGTH",e.LabelInvalidCharacter="LABEL_INVALID_CHARACTER",e.LastLabelInvalid="LAST_LABEL_INVALID"})(Fg||(Fg={}));var Sf;(function(e){e.ValidIp="VALID_IP",e.ValidDomain="VALID_DOMAIN",e.Error="ERROR"})(Sf||(Sf={}));var qtr=e=>({type:Fg.NoHostname,message:`The given input ${String(e)} does not look like a hostname.`,column:1}),Ltr=(e,t)=>({type:Fg.DomainMaxLength,message:`Domain "${e}" is too long. Domain is ${t} octets long but should not be longer than ${AUe}.`,column:t}),SUe=(e,t)=>{let r=e.length;return{type:Fg.LabelMinLength,message:`Label "${e}" is too short. Label is ${r} octets long but should be at least ${hue}.`,column:t}},kUe=(e,t)=>{let r=e.length;return{type:Fg.LabelMaxLength,message:`Label "${e}" is too long. Label is ${r} octets long but should not be longer than ${mue}.`,column:t}},due=(e,t,r)=>({type:Fg.LabelInvalidCharacter,message:`Label "${e}" contains invalid character "${t}" at column ${r}.`,column:r}),$tr=(e,t)=>({type:Fg.LabelInvalidCharacter,message:`Last label "${e}" must not be all-numeric.`,column:t}),TUe=(e,t={})=>{if(typeof e!="string")return{type:Sf.Error,errors:[qtr(e)]};if(e==="")return{type:Sf.ValidDomain,domain:e,labels:[]};let r=e.replace(/^\[|]$/g,""),n=EUe(r);if(n!==void 0)return{type:Sf.ValidIp,ip:r,ipVersion:n};let a=e.charAt(e.length-1)===ok?e.slice(0,-1):e,s=new TextEncoder().encode(a);if(s.length>AUe)return{type:Sf.Error,errors:[Ltr(e,s.length)]};let o=a.split(ok),{validation:c=uk.Strict}=t,p=Btr[c](o);return p.length>0?{type:Sf.Error,errors:p}:{type:Sf.ValidDomain,domain:e,labels:o}},Btr={[uk.Lax]:e=>{let t=[],r=1;for(let n of e){let i=Ntr.encode(n);i.length<hue?t.push(SUe(n,r)):i.length>mue&&t.push(kUe(n,r)),r+=n.length+ok.length}return t},[uk.Strict]:e=>{let t=[],r=1,n;for(let i of e){let a=/[^\da-z-]/i.exec(i);a&&t.push(due(i,a[0],a.index+1)),i.startsWith("-")?t.push(due(i,"-",r)):i.endsWith("-")&&t.push(due(i,"-",r+i.length-1)),i.length<hue?t.push(SUe(i,r)):i.length>mue&&t.push(kUe(i,r)),r+=i.length+ok.length,n=i}return n!==void 0&&/[a-z-]/iu.test(n)===!1&&t.push($tr(n,r-n.length-ok.length)),t}};var gue=Symbol("ROOT"),Mtr=Symbol("CHILD"),OUe=()=>({type:gue,children:new Map}),DUe=(e,t)=>{let r=e.children.get(t);return r===void 0&&(r={type:Mtr,label:t,children:new Map,parent:e},e.children.set(t,r)),r};var vue=e=>{let t=OUe(),r="",n=t,i=t,a=()=>{i=DUe(n,r),r=""};for(let s=0;s<e.length;s++){let o=e.charAt(s);switch(o){case vUe:{a();continue}case yUe:{a(),n=i;continue}case bUe:{a(),n=t;continue}case gUe:{if(n.type===gue)throw new Error(`Error in serialized trie at position ${s}: Cannot go up, current parent node is already root`);a(),n=n.parent;continue}}r+=o}return r!==""&&a(),t};var Utr=["localhost","local","example","invalid","test"],kf;(function(e){e.Invalid="INVALID",e.Ip="IP",e.Reserved="RESERVED",e.NotListed="NOT_LISTED",e.Listed="LISTED"})(kf||(kf={}));var ztr=(e,t)=>t>=0&&t<e.length?e[t]:void 0,CUe=(e,t)=>({subDomains:e.slice(0,Math.max(0,t)),domain:ztr(e,t),topLevelDomains:e.slice(t+1)}),ck,lk,yue=(e,t)=>{let r=TUe(e,t);if(r.type===Sf.Error)return{type:kf.Invalid,hostname:e,errors:r.errors};if(r.type===Sf.ValidIp)return{type:kf.Ip,hostname:r.ip,ipVersion:r.ipVersion};let{labels:n,domain:i}=r;if(e===""||Utr.includes(n[n.length-1]))return{type:kf.Reserved,hostname:i,labels:n};ck=ck??vue(oue),lk=lk??vue(uue);let a=lue(n,ck),s=lue(n,lk);if(a.length===0&&s.length===0)return{type:kf.NotListed,hostname:i,labels:n};let o=n.length-Math.max(s.length,a.length)-1,c=n.length-a.length-1;return Object.assign({type:kf.Listed,hostname:i,labels:n,icann:CUe(n,c)},CUe(n,o))};var Htr=/^[a-z][*+.a-z-]+:\/\//i,Vtr=/^([a-z][*+.a-z-]+:\/\/)([^[][^/?]*:[^/?]*:[^/?]*)(.*)/i,bue=Symbol("NO_HOSTNAME"),wue=e=>{if(typeof URL!="function")throw new Error("Looks like the new URL() constructor is not globally available in your environment. Please make sure to use a polyfill.");if(typeof e!="string")return bue;let t=e.startsWith("//")?`http:${e}`:e.startsWith("/")||Htr.test(e)?e:`http://${e}`;t=t.replace(Vtr,"$1[$2]$3");try{return new URL(t).hostname}catch{return bue}};var xue=require("electron"),H4=Me.internalUrls?.enabled?Me.internalUrls?.value:null;xue.ipcMain.handle("app:updateInternalUrlRegex",(e,t)=>{H4=t});xue.ipcMain.handle("app:getInternalUrlRegex",()=>H4);function Gtr(e){let t=new URL(e),r=a=>t.hostname.endsWith(a);return!!(["facebook.com","linkedin.com","github.com"].some(r)&&(t.pathname.endsWith("/oauth")||t.pathname.includes("/oauth/"))||["api.twitter.com","accounts.google.com","login.live.com","login.microsoftonline.com"].some(r))}function _ue(e){let t=wue(e),r=yue(t);if(r.type===kf.Listed){let{domain:n,topLevelDomains:i}=r;return`${n}.${i.join(".")}`}else if(r.type===kf.Reserved)return r.hostname}function V4(e,t,r,n){if(n){let p=new URLSearchParams(n);if(p.has("openInApp")&&p.get("openInApp")!=="false")return!0}if(r==="about:blank")return!0;let i=_ue(r),a=_ue(e),s=_ue(t);return!Me.shouldMakeSameDomainAnExternalLink&&(i===s||i===a)?!0:Me.googleOAuthIsExternal&&(r.includes("accounts.google.com/o/oauth")||r.startsWith("https://accounts.google.com/gsi/")||r.startsWith("https://accounts.google.com/ServiceLogin")||r.startsWith("https://accounts.google.com/v3/signin"))?!1:!!(H4&&new RegExp(H4,"i").test(r)||!(H4&&new RegExp(H4,"i").test(e))&&!(a===s)||Gtr(r))}var jg=require("electron");var _j=e=>{let t=ep({newUrl:"about:blank",id:e});return t.hide(),t.webContents.once("did-stop-loading",()=>{t.webContents.getURL()==="about:blank"?t.close():Ma(t,Me)}),t};var PUe=require("electron");function IUe(e,t){switch(e){case"about:blank#blocked":return{action:"allow",overrideBrowserWindowOptions:{frame:!0}};case"about:blank":return Me.allowAboutBlankWindowOpenHandler?{action:"allow",overrideBrowserWindowOptions:{frame:!0}}:(_j(t),{action:"deny"})}}function RUe(e,t,r,n,i){if(!n){Rt("main","Desktopify parent window does not exist, this should never happen",{url:e,id:t});return}if(i.once("did-create-window",a=>{G4({id:t,newWindow:a,isMainWindow:!1})}),yMe(n,r)){let a=r==="foreground-tab";i.once("did-create-window",s=>{let o=PUe.BrowserWindow.fromWebContents(i);o&&(o.addTabbedWindow(s),a&&s.focus())}),Rt("main","App opened new tab",{isForeground:a,url:e})}else Rt("main","App opened new window",{url:e})}function W4({isMainWindow:e=!1,webContents:t,id:r}){let n=Me.windows.find(a=>a.id===r);if(!n)throw new Error(`No window with id ${r}`);t.on("render-process-gone",(a,s)=>{Rt("main","Render process has crashed",{exitCode:s.exitCode,reason:s.reason,id:r,url:t?.getURL()})}),t.on("will-navigate",(a,s)=>{let o=t.getURL(),c=V4(o,n.url,s);c||(Wd(s,jg.BrowserWindow.fromWebContents(t)),a.preventDefault()),Rt("main","App attempted to navigate",{isLinkInternal:c,isMainWindow:e,newUrl:s})}),t.on("will-redirect",(a,s,o,c)=>{if(!c)return;let p=t.getURL(),f=V4(p,n.url,s);if(!f){let d=jg.BrowserWindow.fromWebContents(t);Wd(s,d),e||d?.close(),a.preventDefault()}Rt("main","App attempted to redirect",{isLinkInternal:f,isMainWindow:e,newUrl:s})}),t.session.setDevicePermissionHandler(a=>a.deviceType==="serial"&&a.origin==="file://"),t.setWindowOpenHandler(({url:a,disposition:s,features:o})=>{let c=IUe(a,r);if(c)return c;let p=t.getURL();return V4(p,n.url,a,o)?(RUe(a,r,s,n,t),{action:"allow",outlivesOpener:!0,overrideBrowserWindowOptions:{...$4({id:r})}}):(Wd(a,jg.BrowserWindow.fromWebContents(t)),{action:"deny"})});function i(a){let s=jg.Menu.getApplicationMenu()?.getMenuItemById("history-back");s&&(s.enabled=a.canGoBack());let o=jg.Menu.getApplicationMenu()?.getMenuItemById("history-forward");o&&(o.enabled=a.canGoForward())}t.on("did-navigate",(a,s)=>{i(t),t.send("api-event",{event:"did-navigate",args:[{newUrl:s,wasInPageNavigation:!1}]})}),t.on("did-navigate-in-page",(a,s,o)=>{o&&(Rt("main",`did-navigate-in-page (${s})`),i(t),t.send("api-event",{event:"did-navigate",args:[{newUrl:s,wasInPageNavigation:!0}]}))}),t.on("found-in-page",(a,s)=>{let{requestId:o,activeMatchOrdinal:c,matches:p,selectionArea:f,finalUpdate:d}=s,h=[{requestId:o,activeMatchOrdinal:c,matches:p,selectionArea:f,finalUpdate:d}];t.send("api-event",{event:"found-in-page",args:h});let g=jg.BrowserWindow.fromWebContents(t)?.getBrowserViews();Array.isArray(g)&&g.forEach(v=>{v.webContents.send("api-event",{event:"found-in-page",args:h})})})}var qUe=require("electron"),LUe=dt(require("path")),FUe="todesktop-find-in-page-active",jUe="__todesktop-undraggable-section",K4=[],NUe=(...e)=>e.join(";"),Eue=(e,t,r)=>{let a={x:Math.floor(e/2-170),y:0,width:340,height:62};if(!r)return a;let{horizontalPlacement:s,verticalPlacement:o}=r;if(s?.type==="left"?a.x=s.left.offset:s?.type==="right"&&(a.x=e-340-s.right.offset),o?.type==="top")a.y=o.top.offset;else if(o?.type==="bottom"){let c=t.getContentSize()[1];a.y=c-62-o.bottom.offset}return a};function Wtr(e,t){function r(n,i){let a=document.createElement("div");a.id=i,a.style.appRegion="no-drag",a.style.width=`${n.width}px`,a.style.height=`${n.height}px`,a.style.position="fixed",a.style.top=`${n.y}px`,a.style.left=`${n.x}px`,a.style.zIndex="2147483647",document.body.appendChild(a)}return`(${r.toString()}(
    ${JSON.stringify(e)},
    "${t}"
  ))`}function xj(e,t){if(K4[e.id])return;let[r]=e.getSize(),n={preload:LUe.default.join(__dirname,"preload.js"),contextIsolation:!0,sandbox:!1,zoomFactor:1},i=new qUe.BrowserView({webPreferences:n});K4[e.id]=i,i.setBounds(Eue(r,e,t));let a=()=>{let[p]=e.getSize();i.setBounds(Eue(p,e,t))};e.on("resize",a),i.webContents.once("destroyed",()=>{e.off("resize",a)}),i.webContents.once("did-finish-load",()=>{i.webContents.setVisualZoomLevelLimits(1,1)});let s=t?.verticalPlacement,o=s&&s.type!=="default"?s[s.type].offset!==0:!1,c=s?.type==="bottom"?"bottom":"top";i.webContents.loadFile("find-in-page.html",{query:{placement:o?"":c}})}function Ej(e,t){let r=K4[e.id];if(!r)return;e.addBrowserView(r);let[n]=e.getSize(),i=Eue(n,e,t);r.setBounds(i),r.webContents.focus();let a=Wtr(i,jUe);e.webContents.executeJavaScript(NUe(`if (document?.documentElement) document.documentElement.classList.add('${FUe}')`,a)),e.once("view-removed",s=>{typeof s?.id>"u"||typeof r?.webContents?.id>"u"||s.id===r.webContents?.id&&(e.webContents.executeJavaScript(NUe(`if (document?.documentElement) document.documentElement.classList.remove('${FUe}');`,`document.getElementById('${jUe}')?.remove()`)),e.webContents.focus())}),e.once("closed",()=>{setImmediate(()=>{r.webContents?.destroy(),K4[e.id]=void 0,delete K4[e.id]})})}function $Ue(e){let t=K4[e.id];t&&t.webContents.send("api-event",{event:"find-in-page-close",args:[]})}var pk=require("electron");var WUe=dt(xS());var BUe=!1;async function MUe(e,t){BUe=t}function UUe(){return BUe}var fk=Me.shouldMinimizeToTray,kue=(e,t)=>{let r=["menubar","panel"].includes(e.type);return fk&&(r||t)},Ktr=()=>pk.BrowserWindow.getAllWindows().filter(e=>e.isVisible()||e.isMinimized()).length,Sue=(0,WUe.throttle)(e=>e?pk.app.dock.show():pk.app.dock.hide(),1e3),zUe=()=>{Ktr()===0&&!UUe()&&!Me.shouldAlwaysDisplayDockIcon&&Sue(!1)},KUe=(e,t)=>{fk&&(Me.shouldAlwaysDisplayDockIcon||process.platform==="darwin"&&(e.on("closed",zUe),e.on("hide",zUe),kue(t,!1)||e.on("show",()=>{Sue.cancel(),Sue(!0)})))},HUe={role:"todesktop:quit-completely"},VUe=e=>e?.some(t=>t.role==="todesktop:quit-completely"),YUe=(e,t)=>{if(!fk)return e;let r=e[0];return t==="tray"&&!VUe(e)?e.push(HUe):r?.submenu&&!VUe(r.submenu)&&r.submenu.push(HUe),e.forEach(n=>{GUe(n),n.submenu&&n.submenu.forEach(GUe)}),e},GUe=e=>{e.role&&["quit","todesktop:quit"].includes(e.role)&&(e.label="Minimize to Tray",e.role="todesktop:close-all-windows",process.platform==="win32"?e.accelerator="Alt+F4":e.accelerator="Command+Q")};function G4({isMainWindow:e,newWindow:t,id:r}){W4({isMainWindow:e,webContents:t.webContents,id:r});let n=Me.windows.find(i=>i.id===r);if(!n)throw new Error(`No window found with id ${r}`);Me.shouldProtectContent&&t.setContentProtection(!0),Ql(n)&&Xl()&&t.on("new-window-for-tab",()=>Kd({isForeground:!0,id:r})),t.on("enter-full-screen",()=>{t.webContents.send("api-event",{event:"window.enter-full-screen"}),t.setAutoHideMenuBar(!0)}),t.on("leave-full-screen",()=>{t?.webContents&&!t.webContents.isDestroyed()&&t.webContents.send("api-event",{event:"window.leave-full-screen"}),t.setAutoHideMenuBar(!!Me.autoHideMenuBar),t.setMenuBarVisibility(!0)}),KUe(t,n),n.type!=="menubar"&&(t.on("close",i=>{Ytr(e,t,n,i)}),t.on("focus",()=>{process.platform==="darwin"&&JUe.app.dock.getBadge()==="\u2022"&&bj("")})),n.disableContextMenu||mUe({window:t,id:r}),n.isFindInPageEnabled&&xj(t,n.findInPageOptions)}var Ytr=(e,t,r,n)=>{if(process.platform==="darwin"&&e||kue(r,e)){if(t.isFullScreen()){t.setFullScreen(!1),n.preventDefault();return}n.preventDefault(),t.hide()}};var a3=require("electron"),JVe=dt(KVe());var YVe={loadOnlineScreen:"offline:loadOnlineScreen"};async function XVe(e,t=1,r=2e3){for(let n=0;n<=t;n++){if(await(0,JVe.default)(e))return!0;n<t&&await new Promise(a=>setTimeout(a,r))}return!1}var Nce=(e,t)=>{if(!Me.offlineScreen?.enabled)return;let r="data:text/html;charset=UTF-8,"+encodeURIComponent(Car({targetUrl:t}));e.loadURL(r)},Car=({targetUrl:e})=>{let t="",r=k1();if(r)try{t=`
      <img src="${a3.nativeImage.createFromPath(r).resize({height:96,width:96}).toDataURL()}" alt="${name} icon" width="48" height="48" />
        `}catch{}let{buttonBackgroundColor:n="#FAFAFA",buttonTextColor:i="#111827"}=Me.offlineScreen||{};return`
    <!DOCTYPE html>
    <html>
      <style>
        body {
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
          width: 100vw;
          height: 100vh;
          gap: 24px;
          box-sizing: border-box;
          margin: 0;
          background: linear-gradient(170.42deg, #FFFFFF 23.71%, rgba(247, 247, 247, 0.5) 64.49%, rgba(234, 234, 234, 0) 124.01%);
          -webkit-app-region: drag
        }

        .offline-message {
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
          gap: 8px;
        }

        h1, p, button {
          font-family: "Inter var",ui-sans-serif,system-ui,-apple-system,system-ui,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
          padding: 0;
          margin: 0;
          color: #111827;
        }

        h1 {
          font-weight: 400;
          font-size: 20px;
        }

        p {
          font-weight: 300;
        }

        .button {
          background-color: ${n};
          color: ${i};
          border: 1px solid rgb(209,213,219);
          border-radius: .5rem;
          box-sizing: border-box;
          font-size: 13px;
          font-weight: 600;
          line-height: 1.25rem;
          padding: .6rem 1rem;
          text-align: center;
          text-decoration: none #D1D5DB solid;
          text-decoration-thickness: auto;
          box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
          cursor: pointer;
          user-select: none;
          -webkit-user-select: none;
          -webkit-app-region: no-drag;
          touch-action: manipulation;
        }

        .button:hover {
          opacity: 0.9;
        }

        .button:focus {
          outline: 2px solid transparent;
          outline-offset: 2px;
        }

        .button:focus-visible {
          box-shadow: none;
        }
      </style>
      <head>
        <title>${Me.name}</title>
        <meta charset="UTF-8">
      </head>
      <body>
        ${t}
        <div class="offline-message">
          <h1>
            No connection detected
          </h1>
          <p>
            Check your network cables, modem, or router.
          </p>
        </div>
        <button class="button" onclick='(function(e) { 
          if (!navigator.onLine) return;
          window.todesktop.offline.loadOnlineScreen("${e}");
        })();'>
          Try again
        </button>
      </body>
      <script>
        window.addEventListener('online', () => {
          window.todesktop.offline.loadOnlineScreen('${e}');
        });
      </script>
    </html>
  `};a3.ipcMain.handle(YVe.loadOnlineScreen,(e,t)=>{let r=a3.BrowserWindow.fromWebContents(e.sender);r&&r.loadURL(t)});var s3=require("electron"),qce=dt(require("path")),QVe="todesktop-fs";function Par(e){return e.replace(`${QVe}://`,"")}function Iar(e){return qce.default.join(s3.app.getAppPath(),"files",Par(e))}function ZVe(e){return qce.default.join(s3.app.getAppPath(),e)}function Rar(){s3.app.whenReady().then(()=>{s3.protocol.registerFileProtocol(QVe,(e,t)=>{t(Iar(e.url))})})}var eGe=Rar;var ep=({id:e,isMainWindow:t=!1,newUrl:r,shouldRememberWindowState:n=!1,visibleOnAllWorkspaces:i=!1,isWindowCreatedOnAppLoad:a})=>{let s=$4({id:e,isMainWindow:t,isWindowCreatedOnAppLoad:a}),o=Me.windows.find(g=>g.id===e);if(!o)throw new Error(`No window with id ${e}`);let c=r||o.url,p;n&&(p=(0,rGe.default)({file:`${e}.json`,defaultWidth:s.width,defaultHeight:s.height}),s.x=p.x,s.y=p.y,o.options.fullscreen||(s.width=p.width<10?100:p.width,s.height=p.height<10?100:p.height));let f=new tGe.BrowserWindow({...s,show:kS(o)?!1:s.show});kS(o)&&s.show&&f.showInactive(),Rt("main",`Window opened at {x: ${s.x}, y: ${s.y}, width: ${s.width}, height: ${s.height}}`),o.type==="panel"&&(f.on("show",()=>f.focus()),f.on("blur",()=>f.hide())),i&&f.setVisibleOnAllWorkspaces(!0),n&&p?.manage(f),o.isTitleStatic&&f.on("page-title-updated",g=>{g.preventDefault()});let d=()=>{G4({isMainWindow:t,newWindow:f,id:e})};s.show&&!kS(o)?(f.focus(),d()):f.once("show",()=>{d()});let h=c;if(f.webContents.on("did-navigate-in-page",(g,v,y)=>{y&&v.startsWith("http")&&(h=v)}),f.webContents.on("did-fail-load",(g,v,y,_,x)=>{if(x&&v!==-3)if(_.startsWith("http")){h=_;let{host:A}=new URL(_);XVe(A).then(D=>{D?f.loadURL(_):Nce(f,h)})}else Nce(f,h)}),!r&&o.shouldUseFileInsteadOfUrl&&o.file){let g=ZVe(o.file);f.loadFile(g)}else f.loadURL(c);return f.once("ready-to-show",()=>{o.visibility==="show-when-contents-loaded"&&Ma(f,Me)}),f};var Far=e=>{let t=nGe.BrowserWindow.getFocusedWindow();if(t)return e(t)},Kd=({isForeground:e,newUrl:t,id:r})=>Far(n=>{let i=ep({newUrl:t,id:r});return n.addTabbedWindow(i),e||n.focus(),i});var y_=require("electron");var Xce=dt($_());var qGe=require("electron");var jGe=dt(require("util")),NGe=dt(IGe());var RGe=dt(require("util")),ip=e=>e?.constructor?.name||RGe.inspect(e,{depth:0,colors:!0,maxStringLength:50,maxArrayLength:3}),Qu=console.log.bind(console);var l3=class{eventListeners=new Map;getHandler;constructor(t){this.getHandler=t.getHandler||Oor}subscribe(t){let{eventName:r,instance:n}=t;Qu(`Setting up event listener on ${r}`);let i=Cg(),a=this.getHandler({...t,eventId:i});return this.coerceEmitter(n).on(r,a),this.eventListeners.set(i,a),i}unsubscribe({eventId:t,eventName:r,instance:n}){let i=this.coerceEmitter(n),a=this.eventListeners.get(t);a&&(Qu(`Removing event listener on ${r}`),i.removeListener(r,a),this.eventListeners.delete(t))}coerceEmitter=t=>t},Oor=({event:e,eventName:t,eventId:r,eventOptions:n})=>(i,...a)=>{n?.preventDefault&&i.preventDefault();let s=Hd.encapsulate(a);e.sender.send("api-event",{event:r,args:s}),Qu({eventId:r,eventName:t,args:s})};var p3=class{instanceMethods;instanceProps;instanceEvents;classMethods;hasConstructor;constructor(t){this.instanceMethods=t.instanceMethods||[],this.instanceProps=t.instanceProps||[],this.instanceEvents=t.instanceEvents||[],this.classMethods=t.classMethods||[],this.hasConstructor=t.hasConstructor||!1}get whitelist(){return[...this.hasConstructor?[":new"]:[],...this.instanceMethods,...this.instanceProps,...this.instanceEvents,...this.classMethods]}isInstanceMethod(t){return this.instanceMethods.includes(t)}isInstanceProp(t){return this.instanceProps.includes(t)}isInstanceEvent(t){return this.instanceEvents.includes(t)}isClassMethod(t){return this.classMethods.includes(t)}};var f3=class{beforeEncapsulate;constructor({beforeEncapsulate:t=(r,n)=>n}={}){this.beforeEncapsulate=t}async encapsulate(t,r){let n=await r;return this.beforeEncapsulate(t,n),Hd.encapsulate(n)}};var FGe=e=>typeof e=="object"&&e!==null,Sn=class{constructor(t,r,n={},i={}){this.namespace=t;Object.assign(this,r),this.attrs=new p3(r),this.commands=new f3(n),this.emitter=new l3(i)}emitter;attrs;commands;namespaceString=void 0;constructorOptions=void 0;constructorOptionsOverride=void 0;defaultInstance=()=>{throw new Error("defaultInstance not implemented!")};requestInstance=()=>{throw new Error("requestInstance not implemented!")};onInstanceCreated;getInstance(t,r,n){return n||this.defaultInstance(t,r,n)}getClass(){return this.namespace}sanitizeConstructorOptions(t){if(t[0]&&this.constructorOptions){let r=t[0];if(FGe(r)){let n=[...this.constructorOptions];Object.entries(r).forEach(([i,a])=>{if(FGe(a)&&i==="webPreferences"){Object.keys(a).forEach(s=>{n.includes(`${i}.${s}`)||(Rt("main",`Removing \`${i}.${s}\` constructor option from ${JSON.stringify(t[0])} because it is not in whitelist`),delete r[i][s])});return}n.includes(i)||(Rt("main",`Removing \`${i}\` constructor option from ${JSON.stringify(t[0])} because it is not in whitelist`),delete r[i])}),this.constructorOptionsOverride&&(0,NGe.default)(r,this.constructorOptionsOverride)}t[0]=r}return t}_executeCommand(t,{method:r,property:n,args:i,instanceRef:a,value:s}){if(this.attrs.hasConstructor&&r===":new"){let o=this.getClass();Qu(`constructing class ${ip(this.namespace)} with args ${jGe.default.inspect(i)}`);let c=new o(...this.sanitizeConstructorOptions(i));return this.onInstanceCreated?.(c),c}else if(r&&this.attrs.isClassMethod(r)&&!a){let o=this.getClass();return Qu(`calling class ${ip(this.namespace)} method ${String(r)} with args ${ip(i)}`),o[r](...i)}else{let o=this.getInstance(t,i,a);if(r&&this.attrs.isInstanceMethod(r))return Qu(`calling ${ip(this.namespace)} instance method ${String(r)} with args ${ip(i)}`),o[r](...i);if(n&&this.attrs.isInstanceProp(n))return Qu(`calling ${ip(this.namespace)} instance prop ${String(n)}`),s!==void 0&&(Qu(`setting ${ip(this.namespace)} ${String(n)} instance prop to "${s}" (previous value: "${o[n]}")`),o[n]=s),o[n]}}executeCommand(t,r){let{eventName:n,eventId:i,instanceRef:a,method:s,property:o,args:c,eventOptions:p}=r;if(n&&this.attrs.isInstanceEvent(n)){let d=this.getInstance(t,c,a);return i?this.emitter.unsubscribe({eventId:i,eventName:n,instance:d}):this.emitter.subscribe({event:t,eventName:n,instance:d,eventOptions:p})}if(s||o)return this.commands.encapsulate(r,this._executeCommand(t,r))}};var Dor=["kiosk"],Cor=["previewFile","closeFilePreview","setSkipTaskbar","getMediaSourceId","getNativeWindowHandle","hookWindowMessage","isWindowMessageHooked","unhookWindowMessage","unhookAllWindowMessages","setRepresentedFilename","getRepresentedFilename","setThumbarButtons","setThumbnailClip","setThumbnailToolTip","setAppDetails","setIgnoreMouseEvents","setTouchBar"],Por=["excludedFromShownWindowsMenu"],Ior=["system-context-menu"],LGe=new Sn(qGe.BaseWindow,{hasConstructor:!0,constructorOptions:["width","height","x","y","useContentSize","center","minWidth","minHeight","maxWidth","maxHeight","resizable","movable","minimizable","maximizable","closable","focusable","alwaysOnTop","fullscreen","fullscreenable","simpleFullscreen","skipTaskbar","icon","show","frame","acceptFirstMouse","disableAutoHideCursor","autoHideMenuBar","enableLargerThanScreen","backgroundColor","hasShadow","opacity","darkTheme","transparent","visualEffectState","title","titleBarStyle","trafficLightPosition","roundedCorners","thickFrame","type","vibrancy","zoomToPageWidth","tabbingIdentifier",...Me.shouldHaveFullAccessToElectronAPIs?Dor:[]],classMethods:["getAllWindows","getFocusedWindow","fromId"],instanceMethods:["show","focus","hide","maximize","unmaximize","minimize","restore","setFullScreen","setAspectRatio","isFullScreen","destroy","close","focus","blur","isFocused","isDestroyed","show","showInactive","hide","isVisible","isModal","maximize","unmaximize","isMaximized","minimize","restore","isMinimized","setFullScreen","isFullScreen","setSimpleFullScreen","isSimpleFullScreen","isNormal","setAspectRatio","setBackgroundColor","setBounds","getBounds","getBackgroundColor","setContentBounds","getContentBounds","getNormalBounds","setEnabled","isEnabled","setSize","getSize","setContentSize","getContentSize","setMinimumSize","getMinimumSize","setMaximumSize","getMaximumSize","setResizable","isResizable","setMovable","isMovable","setMinimizable","isMinimizable","setMaximizable","isMaximizable","setFullScreenable","isFullScreenable","setClosable","isClosable","setAlwaysOnTop","isAlwaysOnTop","moveAbove","moveTop","center","setPosition","getPosition","setTitle","getTitle","setSheetOffset","flashFrame","setKiosk","isKiosk","isTabletMode","setDocumentEdited","isDocumentEdited","setMenu","removeMenu","setProgressBar","setOverlayIcon","setHasShadow","hasShadow","setOpacity","getOpacity","setShape","setIcon","setWindowButtonVisibility","setAutoHideMenuBar","isMenuBarAutoHide","setMenuBarVisibility","isMenuBarVisible","setVisibleOnAllWorkspaces","isVisibleOnAllWorkspaces","setContentProtection","setFocusable","setParentWindow","getParentWindow","getChildWindows","setAutoHideCursor","selectPreviousTab","selectNextTab","mergeAllWindows","moveTabToNewWindow","toggleTabBar","addTabbedWindow","setVibrancy","setWindowButtonPosition","getWindowButtonPosition","setContentView","getContentView","setTitleBarOverlay","showAllTabs",...Me.shouldHaveFullAccessToElectronAPIs?Cor:[]],instanceProps:["id","contentView","autoHideMenuBar","simpleFullScreen","fullScreen","visibleOnAllWorkspaces","shadow","menuBarVisible","kiosk","documentEdited","representedFilename","title","minimizable","maximizable","fullScreenable","resizable","closable","movable","accessibleTitle","tabbingIdentifier",...Me.shouldHaveFullAccessToElectronAPIs?Por:[]],instanceEvents:["page-title-updated","close","closed","session-end","unresponsive","responsive","blur","focus","show","hide","ready-to-show","maximize","unmaximize","minimize","restore","will-resize","resize","resized","will-move","move","moved","enter-full-screen","leave-full-screen","enter-html-full-screen","leave-html-full-screen","always-on-top-changed","app-command","swipe","rotate-gesture","sheet-begin","sheet-end","new-window-for-tab",...Me.shouldHaveFullAccessToElectronAPIs?Ior:[]]});var BGe=require("electron");var $Ge=dt(require("path"));var Ror=["nodeIntegration","nodeIntegrationInWorker","nodeIntegrationInSubFrames","preload","webSecurity","allowRunningInsecureContent","plugins","experimentalFeatures","enableBlinkFeatures","contextIsolation","webviewTag","additionalArguments"],For=["devTools","sandbox","session","partition","zoomFactor","javascript","images","textAreasAreResizable","webgl","scrollBounce","disableBlinkFeatures","defaultFontFamily","defaultFontSize","defaultMonospaceFontSize","minimumFontSize","defaultEncoding","backgroundThrottling","offscreen","safeDialogs","safeDialogsMessage","disableDialogs","navigateOnDragDrop","autoplayPolicy","disableHtmlFullscreenWindowResize","accessibleTitle","spellcheck","enableWebSQL","v8CacheOptions","enablePreferredSizeMode",...Me.shouldHaveFullAccessToElectronAPIs?Ror:[]],d3=For.map(e=>`webPreferences.${e}`),Bg={webPreferences:{preload:$Ge.default.join(__dirname,"preload.js"),contextIsolation:!0,sandbox:!1}};var MGe=new Sn(BGe.BrowserView,{namespaceString:"BrowserView",hasConstructor:!0,constructorOptions:[...d3],constructorOptionsOverride:Bg,instanceMethods:["setAutoResize","setBounds","getBounds","setBackgroundColor"],instanceProps:["webContents"]});var pN=require("electron");var jor=["kiosk"],Nor=["previewFile","closeFilePreview","setSkipTaskbar","getMediaSourceId","getNativeWindowHandle","hookWindowMessage","isWindowMessageHooked","unhookWindowMessage","unhookAllWindowMessages","setRepresentedFilename","getRepresentedFilename","capturePage","loadFile","setThumbarButtons","setThumbnailClip","setThumbnailToolTip","setAppDetails","setIgnoreMouseEvents","setTouchBar"],qor=["excludedFromShownWindowsMenu"],Lor=["system-context-menu"],UGe=new Sn(pN.BrowserWindow,{hasConstructor:!0,constructorOptions:["width","height","x","y","useContentSize","center","minWidth","minHeight","maxWidth","maxHeight","resizable","movable","minimizable","maximizable","closable","focusable","alwaysOnTop","fullscreen","fullscreenable","simpleFullscreen","skipTaskbar","icon","show","paintWhenInitiallyHidden","frame","acceptFirstMouse","disableAutoHideCursor","autoHideMenuBar","enableLargerThanScreen","backgroundColor","hasShadow","opacity","darkTheme","transparent","visualEffectState","title","titleBarStyle","trafficLightPosition","roundedCorners","fullscreenWindowTitle","thickFrame","type","vibrancy","zoomToPageWidth","tabbingIdentifier",...Me.shouldHaveFullAccessToElectronAPIs?jor:[],...d3],constructorOptionsOverride:Bg,classMethods:["getAllWindows","getFocusedWindow","fromWebContents","fromBrowserView","fromId"],instanceMethods:["loadURL","show","focus","hide","maximize","unmaximize","minimize","restore","setFullScreen","setAspectRatio","isFullScreen","destroy","close","focus","blur","isFocused","isDestroyed","show","showInactive","hide","isVisible","isModal","maximize","unmaximize","isMaximized","minimize","restore","isMinimized","setFullScreen","isFullScreen","setSimpleFullScreen","isSimpleFullScreen","isNormal","setAspectRatio","setBackgroundColor","setBounds","getBounds","getBackgroundColor","setContentBounds","getContentBounds","getNormalBounds","setEnabled","isEnabled","setSize","getSize","setContentSize","getContentSize","setMinimumSize","getMinimumSize","setMaximumSize","getMaximumSize","setResizable","isResizable","setMovable","isMovable","setMinimizable","isMinimizable","setMaximizable","isMaximizable","setFullScreenable","isFullScreenable","setClosable","isClosable","setAlwaysOnTop","isAlwaysOnTop","moveAbove","moveTop","center","setPosition","getPosition","setTitle","getTitle","setSheetOffset","flashFrame","setKiosk","isKiosk","isTabletMode","setDocumentEdited","isDocumentEdited","focusOnWebView","blurWebView","loadURL","reload","setMenu","removeMenu","setProgressBar","setOverlayIcon","setHasShadow","hasShadow","setOpacity","getOpacity","setShape","showDefinitionForSelection","setIcon","setWindowButtonVisibility","setAutoHideMenuBar","isMenuBarAutoHide","setMenuBarVisibility","isMenuBarVisible","setVisibleOnAllWorkspaces","isVisibleOnAllWorkspaces","setContentProtection","setFocusable","setParentWindow","getParentWindow","getChildWindows","setAutoHideCursor","selectPreviousTab","selectNextTab","mergeAllWindows","moveTabToNewWindow","toggleTabBar","addTabbedWindow","setVibrancy","setWindowButtonPosition","getWindowButtonPosition","setBrowserView","getBrowserView","addBrowserView","removeBrowserView","setTopBrowserView","getBrowserViews","setTitleBarOverlay","showAllTabs","getContentView","setContentView",...Me.shouldHaveFullAccessToElectronAPIs?Nor:[]],instanceProps:["webContents","id","contentView","autoHideMenuBar","simpleFullScreen","fullScreen","visibleOnAllWorkspaces","shadow","menuBarVisible","kiosk","documentEdited","representedFilename","title","minimizable","maximizable","fullScreenable","resizable","closable","movable","accessibleTitle","tabbingIdentifier",...Me.shouldHaveFullAccessToElectronAPIs?qor:[]],instanceEvents:["page-title-updated","close","closed","session-end","unresponsive","responsive","blur","focus","show","hide","ready-to-show","maximize","unmaximize","minimize","restore","will-resize","resize","resized","will-move","move","moved","enter-full-screen","leave-full-screen","enter-html-full-screen","leave-html-full-screen","always-on-top-changed","app-command","swipe","rotate-gesture","sheet-begin","sheet-end","new-window-for-tab",...Me.shouldHaveFullAccessToElectronAPIs?Lor:[]],defaultInstance:e=>{let t=pN.BrowserWindow.fromWebContents(e.sender)||pN.BrowserWindow.fromWebContents(e.sender.hostWebContents);if(!t)throw new Error("Window destroyed before IPC call could complete");return t},onInstanceCreated:e=>{let t=Me.windows.find(r=>r.isMain);t&&(Rt("main","Equip new web contents for window created via API"),W4({isMainWindow:!0,id:t.id,webContents:e.webContents}))}});var Kce=require("electron");var fN=class e{constructor(t,r){this.win=t;this.options=r;xj(t,r),e.registry.set(t.id,this)}static registry=new Map;static fromWebContents(t){let r=Kce.BrowserWindow.fromWebContents(t)||Kce.BrowserWindow.fromWebContents(t.hostWebContents);if(!r)return null;let n=e.registry.get(r.id);return n||(n=new e(r,{})),n}open=()=>{Ej(this.win,this.options)};close=()=>{$Ue(this.win)}},zGe=new Sn(fN,{namespaceString:"FindInPageView",hasConstructor:!0,instanceMethods:["open","close"],instanceProps:[],defaultInstance:e=>{let t=fN.fromWebContents(e.sender);if(!t)throw new Error("Window destroyed before IPC call could complete");return t}});var HGe=require("electron");var VGe=new Sn(HGe.Menu,{namespaceString:"Menu",hasConstructor:!0,classMethods:["setApplicationMenu","getApplicationMenu","sendActionToFirstResponder","buildFromTemplate"],instanceProps:["items"],instanceMethods:["popup","closePopup","append","getMenuItemById","insert"],instanceEvents:["menu-will-show","menu-will-close"]});var GGe=require("electron");var WGe=new Sn(GGe.MenuItem,{namespaceString:"MenuItem",hasConstructor:!0,instanceProps:["id","label","click","submenu","type","role","accelerator","icon","sublabel","toolTip","enabled","visible","checked","registerAccelerator","sharingItem","commandId","menu"]});var KGe=require("electron");var YGe=new Sn(KGe.MessageChannelMain,{namespaceString:"MessageChannelMain",hasConstructor:!0,instanceProps:["port1","port2"]});var JGe=require("electron");var XGe=new Sn(JGe.nativeImage,{namespaceString:"NativeImage",hasConstructor:!0,classMethods:["createEmpty","createThumbnailFromPath","createFromPath","createFromBitmap","createFromBuffer","createFromDataURL","createFromNamedImage"],instanceProps:["isMacTemplateImage"],instanceMethods:["toPNG","toJPEG","toBitmap","toDataURL","getBitmap","getNativeHandle","isEmpty","getSize","setTemplateImage","isTemplateImage","crop","resize","getAspectRatio","getScaleFactors","addRepresentation"],instanceEvents:[]});var QGe=require("electron");var Ir=class{constructor(t,r,n={},i={}){this.namespace=t;Object.assign(this,r),this.attrs=new p3(r),this.commands=new f3(n),this.emitter=new l3(i)}emitter;attrs;commands;getClass(){return this.namespace}executeCommand(t,r){let{method:n,property:i,args:a=[],eventName:s,eventId:o,eventOptions:c}=r,p=this.getClass();if(s&&this.attrs.isInstanceEvent(s))return o?this.emitter.unsubscribe({eventId:o,eventName:s,instance:p}):this.emitter.subscribe({event:t,eventName:s,instance:p,eventOptions:c});if(n&&this.attrs.isInstanceMethod(n)){Qu(`calling ${ip(this.namespace)} instance method ${String(n)} with args ${ip(a)}`);let f=p[n];if(typeof f!="function")throw new Error(`${String(n)} is not a function`);let h=f.bind(p)(...a);return this.commands.encapsulate(r,h)}else if(i&&this.attrs.isInstanceProp(i))return Qu(`calling ${ip(this.namespace)} instance prop ${String(i)}`),this.commands.encapsulate(r,p[i])}};var ZGe=new Ir(QGe.nativeTheme,{instanceProps:["shouldUseDarkColors","themeSource","shouldUseHighContrastColors","shouldUseInvertedColorScheme"]});var eWe=require("electron");var tWe=new Sn(eWe.Notification,{namespaceString:"Notification",hasConstructor:!0,classMethods:[],instanceProps:["actions","toastXml","timeoutType","urgency","hasReply","silent","closeButtonText","sound","replyPlaceholder","body","subtitle","title"],instanceMethods:["close","show","removeAllListeners"],instanceEvents:["show","click","close","reply","action","failed"]});var rWe=require("electron");var nWe=new Sn(rWe.ShareMenu,{namespaceString:"ShareMenu",hasConstructor:!0,classMethods:[],instanceProps:[],instanceMethods:["popup","closePopup"],instanceEvents:[]});var iWe=require("electron");var aWe=new Sn(iWe.TouchBar,{namespaceString:"TouchBar",hasConstructor:!0,classMethods:[],instanceProps:["escapeItem"],instanceMethods:[],instanceEvents:[]});var sWe=require("electron");var oWe=new Sn(sWe.Tray,{namespaceString:"Tray",hasConstructor:!0,classMethods:[],instanceProps:[],instanceMethods:["destroy","setImage","setPressedImage","setToolTip","setTitle","getTitle","setIgnoreDoubleClickEvents","getIgnoreDoubleClickEvents","displayBalloon","removeBalloon","focus","popUpContextMenu","closeContextMenu","setContextMenu","getBounds","isDestroyed"],instanceEvents:["click","right-click","double-click","balloon-show","balloon-click","balloon-closed","drop","drop-files","drop-text","drag-enter","drag-leave","drag-end","mouse-up","mouse-down","mouse-enter","mouse-leave","mouse-move"]});var uWe=require("electron");var cWe=new Sn(uWe.View,{namespaceString:"View",hasConstructor:!0,constructorOptions:[],instanceMethods:["setBounds","getBounds","setBackgroundColor","addChildView","removeChildView","setVisible"],instanceProps:["children"]});var lWe=require("electron");var $or=["loadFile","executeJavaScript","executeJavaScriptInIsolatedWorld","addWorkSpace","removeWorkSpace","setDevToolsWebContents","inspectSharedWorker","inspectSharedWorkerById","getAllSharedWorkers","inspectServiceWorker","sendInputEvent","beginFrameSubscription","endFrameSubscription","takeHeapSnapshot"],Bor=["devToolsWebContents","debugger"],Mor=["before-input-event","certificate-error","select-client-certificate","select-bluetooth-device","console-message","ipc-message","ipc-message-sync","remote-require","remote-get-global","remote-get-builtin","remote-get-current-window","remote-get-current-web-contents"],pWe=new Sn(lWe.webContents,{classMethods:["getAllWebContents","getFocusedWebContents","fromId"],instanceMethods:["loadURL","downloadURL","getURL","getTitle","isDestroyed","focus","isFocused","isLoading","isLoadingMainFrame","isWaitingForResponse","stop","reload","reloadIgnoringCache","canGoBack","canGoForward","canGoToOffset","clearHistory","goBack","goForward","goToIndex","goToOffset","isCrashed","forcefullyCrashRenderer","setUserAgent","getUserAgent","insertCSS","removeInsertedCSS","setIgnoreMenuShortcuts","setWindowOpenHandler","setAudioMuted","isAudioMuted","isCurrentlyAudible","setZoomFactor","getZoomFactor","setZoomLevel","getZoomLevel","setVisualZoomLevelLimits","undo","redo","cut","copy","copyImageAt","paste","pasteAndMatchStyle","delete","selectAll","unselect","replace","replaceMisspelling","insertText","findInPage","stopFindInPage","capturePage","isBeingCaptured","getPrintersAsync","print","printToPDF","openDevTools","closeDevTools","isDevToolsOpened","isDevToolsFocused","toggleDevTools","inspectElement","send","sendToFrame","postMessage","enableDeviceEmulation","disableDeviceEmulation","startDrag","savePage","showDefinitionForSelection","isOffscreen","startPainting","stopPainting","isPainting","setFrameRate","getFrameRate","invalidate","getWebRTCIPHandlingPolicy","setWebRTCIPHandlingPolicy","getOSProcessId","getProcessId","getBackgroundThrottling","setBackgroundThrottling","getType",...Me.shouldHaveFullAccessToElectronAPIs?$or:[]],instanceProps:["audioMuted","userAgent","zoomLevel","zoomFactor","frameRate","id","session","hostWebContents","backgroundThrottling","mainFrame",...Me.shouldHaveFullAccessToElectronAPIs?Bor:[]],instanceEvents:["did-finish-load","did-fail-load","did-fail-provisional-load","did-frame-finish-load","did-start-loading","did-stop-loading","dom-ready","page-title-updated","page-favicon-updated","new-window","did-create-window","will-navigate","did-start-navigation","will-redirect","did-redirect-navigation","did-navigate","did-frame-navigate","did-navigate-in-page","will-prevent-unload","crashed","render-process-gone","unresponsive","responsive","plugin-crashed","destroyed","enter-html-full-screen","leave-html-full-screen","zoom-changed","devtools-opened","devtools-closed","devtools-focused","login","found-in-page","media-started-playing","media-paused","did-change-theme-color","update-target-url","cursor-changed","context-menu","paint","devtools-reload-page","will-attach-webview","did-attach-webview","preload-error","desktop-capturer-get-sources","preferred-size-changed",...Me.shouldHaveFullAccessToElectronAPIs?Mor:[]],defaultInstance:e=>e.sender});var fWe=require("electron");var dWe=new Sn(fWe.WebContentsView,{namespaceString:"WebContentsView",hasConstructor:!0,constructorOptions:[...d3],constructorOptionsOverride:Bg,instanceMethods:["setBounds","getBounds","setBackgroundColor","addChildView","removeChildView","setVisible"],instanceProps:["children","webContents"]});var hWe=require("electron");var Uor=["executeJavaScript","send","postMessage"],mWe=new Sn(hWe.webFrameMain,{classMethods:["fromId"],instanceMethods:["reload",...Me.shouldHaveFullAccessToElectronAPIs?Uor:[]],instanceProps:["url","top","parent","frames","framesInSubtree","frameTreeNodeId","name","osProcessId","processId","routingId","visibilityState"],instanceEvents:["dom-ready"]});var gWe=require("electron");var zor=["setAppLogsPath","getAppPath","getPath","getFileIcon","setPath","clearRecentDocuments","getApplicationNameForProtocol","getApplicationInfoForProtocol","setUserTasks","getJumpListSettings","setJumpList","importCertificate","disableDomainBlockingFor3DAPIs","setLoginItemSettings"],Hor=["certificate-error","select-client-certificate","remote-require","remote-get-global","remote-get-builtin","remote-get-current-window","remote-get-current-web-contents"],vWe=new Ir(gWe.app,{instanceMethods:["getLoginItemSettings","quit","exit","relaunch","isReady","whenReady","focus","hide","show","getVersion","getName","setName","getLocale","getLocaleCountryCode","addRecentDocument","setAsDefaultProtocolClient","removeAsDefaultProtocolClient","isDefaultProtocolClient","requestSingleInstanceLock","hasSingleInstanceLock","releaseSingleInstanceLock","setUserActivity","getCurrentActivityType","invalidateCurrentActivity","resignCurrentActivity","updateCurrentActivity","setAppUserModelId","setActivationPolicy","disableHardwareAcceleration","getAppMetrics","getGPUFeatureStatus","getGPUInfo","setBadgeCount","getBadgeCount","isUnityRunning","isAccessibilitySupportEnabled","setAccessibilitySupportEnabled","showAboutPanel","setAboutPanelOptions","isEmojiPanelSupported","showEmojiPanel","startAccessingSecurityScopedResource","enableSandbox","isInApplicationsFolder","moveToApplicationsFolder","isSecureKeyboardEntryEnabled","setSecureKeyboardEntryEnabled",...Me.shouldHaveFullAccessToElectronAPIs?zor:[]],instanceProps:["accessibilitySupportEnabled","applicationMenu","badgeCount","commandLine","dock","isPackaged","name","userAgentFallback"],instanceEvents:["will-finish-launching","ready","window-all-closed","before-quit","will-quit","quit","open-file","open-url","activate","did-become-active","continue-activity","will-continue-activity","continue-activity-error","activity-was-continued","update-activity-state","new-window-for-tab","browser-window-blur","browser-window-focus","browser-window-created","web-contents-created","login","gpu-info-update","render-process-gone","child-process-gone","accessibility-support-changed","session-created","second-instance","desktop-capturer-get-sources",...Me.shouldHaveFullAccessToElectronAPIs?Hor:[]]});var yWe=require("electron");var Vor=["setFeedURL"],bWe=new Ir(yWe.autoUpdater,{instanceMethods:["getFeedURL","checkForUpdates","quitAndInstall",...Me.shouldHaveFullAccessToElectronAPIs?Vor:[]],instanceProps:[],instanceEvents:["error","checking-for-update","update-available","update-not-available","update-downloaded","before-quit-for-update"]});var wWe=require("electron");var Gor=["read","readBookmark","readBuffer","readFindText","readHTML","readImage","readRTF","readText","writeHTML"],_We=new Ir(wWe.clipboard,{instanceMethods:["availableFormats","clear","has","write","writeBookmark","writeBuffer","writeFindText","writeImage","writeRTF","writeText",...Me.shouldHaveFullAccessToElectronAPIs?Gor:[]],instanceProps:[],instanceEvents:[]});var xWe=require("electron");var EWe=new Ir(xWe.contentTracing,{instanceMethods:["getCategories","getTraceBufferUsage","startRecording","stopRecording"],instanceProps:[],instanceEvents:[]});var SWe=require("electron");var Wor=["start","getLastCrashReport","getUploadedReports","getUploadToServer","setUploadToServer","addExtraParameter","removeExtraParameter","getParameters"],kWe=new Ir(SWe.crashReporter,{instanceMethods:[...Me.shouldHaveFullAccessToElectronAPIs?Wor:[]],instanceProps:[],instanceEvents:[]});var AWe=require("electron");var TWe=new Ir(AWe.desktopCapturer,{instanceMethods:["getSources"],instanceProps:[],instanceEvents:[]});var OWe=require("electron");var Kor=["showOpenDialogSync","showSaveDialogSync","showMessageBoxSync","showOpenDialog","showSaveDialog","showCertificateTrustDialog"],DWe=new Ir(OWe.dialog,{instanceMethods:["showMessageBox","showErrorBox",...Me.isSecure||Me.shouldHaveFullAccessToElectronAPIs?Kor:[]],instanceProps:[],instanceEvents:[]});var CWe=require("electron");var PWe=new Ir(CWe.app.dock,{instanceMethods:["bounce","cancelBounce","downloadFinished","setBadge","getBadge","hide","show","isVisible","setMenu","getMenu","setIcon"],instanceProps:[],instanceEvents:[]});var RWe=dt(MC());var IWe=(e,t,r)=>e===t,FWe=new Ir(RWe.autoUpdater,{instanceMethods:["checkForUpdates","checkForUpdatesAndNotify","quitAndInstall","isUpdaterActive","downloadUpdate"],instanceProps:["allowDowngrade","allowPrerelease","autoDownload","autoInstallOnAppQuit","channel","currentVersion"],instanceEvents:["error","checking-for-update","update-available","update-not-available","download-progress","update-downloaded"]},{beforeEncapsulate:(e,t)=>{(t&&IWe(e.method,"checkForUpdates",t)||IWe(e.method,"checkForUpdatesAndNotify",t)&&t)&&delete t.downloadPromise}});var jWe=require("electron");var NWe=new Ir(jWe.globalShortcut,{instanceMethods:["register","registerAll","isRegistered","unregister","unregisterAll"],instanceProps:[],instanceEvents:[]});var qWe=require("electron");var LWe=new Ir(qWe.inAppPurchase,{instanceMethods:["purchaseProduct","getProducts","canMakePayments","restoreCompletedTransactions","getReceiptURL","finishAllTransactions","finishTransactionByDate"],instanceProps:[],instanceEvents:["transactions-updated"]});var $We=require("electron");var Yor=["on","once","removeListener","removeAllListeners","handle","handleOnce","removeHandler"],BWe=new Ir($We.ipcMain,{instanceMethods:[...Me.shouldHaveFullAccessToElectronAPIs?Yor:[]],instanceProps:[],instanceEvents:[]});var MWe=require("electron");var Jor=["request"],UWe=new Ir(MWe.net,{instanceMethods:["isOnline",...Me.shouldHaveFullAccessToElectronAPIs?Jor:[]],instanceProps:["online"],instanceEvents:[]});var zWe=require("electron");var Xor=["startLogging","stopLogging"],Qor=["currentlyLogging"],HWe=new Ir(zWe.netLog,{instanceMethods:[...Me.shouldHaveFullAccessToElectronAPIs?Xor:[]],instanceProps:[...Me.shouldHaveFullAccessToElectronAPIs?Qor:[]],instanceEvents:[]});var VWe=require("electron");var GWe=new Ir(VWe.powerMonitor,{instanceMethods:["getSystemIdleState","getSystemIdleState","isOnBatteryPower"],instanceProps:["onBatteryPower"],instanceEvents:["suspend","resume","on-ac","on-battery","shutdown","lock-screen","unlock-screen","user-did-become-active","user-did-resign-active"]});var WWe=require("electron");var KWe=new Ir(WWe.powerSaveBlocker,{instanceMethods:["start","stop","isStarted"],instanceProps:[],instanceEvents:[]});var Zor=["uptime","crash","hang","takeHeapSnapshot","setFdLimit"],eur=["resourcesPath","contextId","traceProcessWarnings","traceDeprecation","throwDeprecation","noDeprecation","noAsar","env","argv","execPath","pid"],YWe=new Ir(process,{instanceMethods:["getCreationTime","getHeapStatistics","getBlinkMemoryInfo","getProcessMemoryInfo","getSystemMemoryInfo","getCPUUsage","getSystemVersion",...Me.shouldHaveFullAccessToElectronAPIs?Zor:[]],instanceProps:["defaultApp","isMainFrame","mas","sandboxed","contextIsolated","type","version","versions","windowsStore","contextId","platform","arch","resourceUsage",...Me.shouldHaveFullAccessToElectronAPIs?eur:[]],instanceEvents:["loaded"]});var JWe=require("electron");var tur=["registerSchemesAsPrivileged","handle","unhandle"],XWe=new Ir(JWe.protocol,{instanceMethods:[...Me.shouldHaveFullAccessToElectronAPIs?tur:[]],instanceProps:[],instanceEvents:[]});var QWe=require("electron");var ZWe=new Ir(QWe.safeStorage,{instanceMethods:["isEncryptionAvailable","encryptString","decryptString"],instanceProps:[],instanceEvents:[]});var eKe=require("electron");var tKe=new Ir(eKe.screen,{instanceMethods:["getCursorScreenPoint","getPrimaryDisplay","getAllDisplays","getDisplayNearestPoint","getDisplayMatching","screenToDipPoint","dipToScreenPoint","screenToDipRect","dipToScreenRect"],instanceProps:[],instanceEvents:["display-added","display-removed","display-metrics-changed"]});var Yce=require("electron");var rur=["setProxy","resolveProxy","forceReloadProxyConfig","setDownloadPath","getBlobData","downloadURL","createInterruptedDownload","setPreloads","getPreloads","setCodeCachePath","clearCodeCaches","setSpellCheckerDictionaryDownloadURL","loadExtension","removeExtension","getExtension","getAllExtensions","getStoragePath"],nur=["storagePath","netLog"],rKe=new Sn(Yce.session,{classMethods:["fromPartition"],instanceMethods:["getCacheSize","clearCache","clearStorageData","flushStorageData","enableNetworkEmulation","preconnect","closeAllConnections","disableNetworkEmulation","setCertificateVerifyProc","setPermissionRequestHandler","setPermissionCheckHandler","setDevicePermissionHandler","clearHostResolverCache","allowNTLMCredentialsForDomains","setUserAgent","isPersistent","getUserAgent","setSSLConfig","clearAuthCache","setSpellCheckerEnabled","isSpellCheckerEnabled","setSpellCheckerLanguages","getSpellCheckerLanguages","listWordsInSpellCheckerDictionary","addWordToSpellCheckerDictionary","removeWordFromSpellCheckerDictionary","setDisplayMediaRequestHandler",...Me.shouldHaveFullAccessToElectronAPIs?rur:[]],instanceProps:["defaultSession","availableSpellCheckerLanguages","spellCheckerEnabled","cookies","serviceWorkers","webRequest","protocol",...Me.shouldHaveFullAccessToElectronAPIs?nur:[]],instanceEvents:["will-download","extension-loaded","extension-unloaded","extension-ready","preconnect","spellcheck-dictionary-initialized","spellcheck-dictionary-download-begin","spellcheck-dictionary-download-success","spellcheck-dictionary-download-failure","select-hid-device","hid-device-added","hid-device-removed","select-serial-port","serial-port-added","serial-port-removed"],defaultInstance:e=>e?.sender?e?.sender.session:Yce.session.defaultSession});var nKe=require("electron");var iur=["showItemInFolder","openPath","openExternal","trashItem","beep","writeShortcutLink","readShortcutLink"],iKe=new Ir(nKe.shell,{instanceMethods:[...Me.shouldHaveFullAccessToElectronAPIs?iur:[]],instanceProps:[],instanceEvents:[]});var aKe=require("electron");var aur=["postNotification","postLocalNotification","postWorkspaceNotification","registerDefaults","setUserDefault","removeUserDefault"],sKe=new Ir(aKe.systemPreferences,{instanceMethods:["isSwipeTrackingFromScrollEventsEnabled","subscribeNotification","subscribeLocalNotification","subscribeWorkspaceNotification","unsubscribeNotification","unsubscribeLocalNotification","unsubscribeWorkspaceNotification","getUserDefault","isAeroGlassEnabled","getAccentColor","getColor","getSystemColor","getEffectiveAppearance","canPromptTouchID","promptTouchID","isTrustedAccessibilityClient","getMediaAccessStatus","askForMediaAccess","getAnimationSettings",...Me.shouldHaveFullAccessToElectronAPIs?aur:[]],instanceProps:["effectiveAppearance"],instanceEvents:["accent-color-changed","color-changed"]});var sur=({event:e,eventName:t,eventId:r})=>(...n)=>{let i=Hd.encapsulate(n);e.sender.send("api-event",{event:r,args:i}),Qu({eventId:r,eventName:t,args:i})},{autoUpdater:our}=zd.default;if(!our)throw new Error("autoUpdater is not available");var oKe=new Ir(zd.default.autoUpdater,{instanceMethods:["checkForUpdates","restartAndInstall"],instanceProps:[],instanceEvents:["before-quit-for-update","error","checking-for-update","update-available","update-not-available","download-progress","update-downloaded"]},{},{getHandler:sur});var Jce={todesktopUpdater:oKe,autoUpdater:bWe,electronUpdater:FWe,BaseWindow:LGe,BrowserWindow:UGe,BrowserView:MGe,WebContentsView:dWe,WebContents:pWe,WebFrameMain:mWe,nativeTheme:ZGe,NativeImage:XGe,Notification:tWe,Menu:VGe,ShareMenu:nWe,MenuItem:WGe,Tray:oWe,TouchBar:aWe,View:cWe,app:vWe,clipboard:_We,contentTracing:EWe,crashReporter:kWe,desktopCapturer:TWe,dialog:DWe,globalShortcut:NWe,inAppPurchase:LWe,powerMonitor:GWe,powerSaveBlocker:KWe,protocol:XWe,safeStorage:ZWe,screen:tKe,session:rKe,shell:iKe,systemPreferences:sKe,process:YWe,ipcMain:BWe,MessageChannelMain:YGe,net:UWe,netLog:HWe,dock:PWe,FindInPageView:zGe},uKe=Object.fromEntries(Object.entries(Jce).map(([e,t])=>[e,t.attrs.whitelist]));var cKe={1:uKe};var lKe={1:Jce};function pKe(e,t){if(!uur(t))throw new Error("[ToDesktop] API was invoked with invalid options");if(!cur(t.metadata))throw new Error("[ToDesktop] API was invoked with invalid options metadata");let r=Xce.default.parse(t.metadata.invoke.version);if(!r)throw new Error("[ToDesktop ] Failed to parse version number on options metadata");let n=Xce.default.major(r);if(!lur(t.payload))throw new Error("[ToDesktop ] Failed to parse payload");if(!pur(t.payload.command,n))throw new Error(`[ToDesktop ] Failed to validate command on payload: ${JSON.stringify(t.payload.command)}`);let i=Pg.revive(t.payload.command);return lKe[n][i.namespace].executeCommand(e,i)}function uur(e){return typeof e=="object"&&e!==null&&P1(e,"metadata")&&P1(e,"payload")}function cur(e){return typeof e=="object"&&e!==null&&P1(e,"invoke")&&typeof e.invoke=="object"&&e.invoke!==null&&P1(e.invoke,"version")&&e.invoke.version!==null&&typeof e.invoke.version=="string"}function lur(e){if(!(typeof e=="object"&&e!==null)||!(P1(e,"command")&&typeof e.command=="object"&&e.command!==null))return!1;let t=P1(e.command,"namespace")&&typeof e.command.namespace=="string",r=P1(e.command,"method")&&typeof e.command.method=="string",n=P1(e.command,"property")&&typeof e.command.property=="string",i=P1(e.command,"eventName")&&typeof e.command.eventName=="string";return t&&(r||n||i)}function P1(e,t){return e.hasOwnProperty(t)}function pur(e,t){if(t!==1)return!1;let r=cKe[t];if(!r||typeof e.namespace!="string"||!(typeof r[e.namespace]<"u"))return!1;let i=e.method&&r[e.namespace].includes(e.method),a=e.property&&r[e.namespace].includes(e.property),s=e.eventName&&r[e.namespace].includes(e.eventName);return!!(i||a||s)}function fKe(e){return Array.isArray(e)?e.every(t=>typeof t=="string"):!1}function dKe(e,t){fKe(t)&&t.forEach(r=>Jl.deleteObject(r))}var mKe=require("electron");var hKe=e=>`object:${e}`;function dN(e){let t=hKe(e);mKe.BrowserWindow.getAllWindows().forEach(r=>{r.webContents.send(t),r.getBrowserViews().forEach(n=>{n.webContents.send(t)})})}function gKe(e,t){switch(t.action){case"retrieve":return Jl.retrieveReference(t.payload.id)}}var vKe=require("electron");async function yKe(e,t,r,n){let i=t?Pg.revive(t):e.sender;if(!r.length&&n){i.setWindowOpenHandler(a=>Qce(a,i,n));return}for(let a of r)i.setWindowOpenHandler(s=>a.regex&&new RegExp(a.regex,"i").test(s.url)?Qce(s,i,a.options):Qce(s,i,n))}var Qce=(e,t,r)=>r?.action==="openInBrowser"?(Wd(e.url,vKe.BrowserWindow.fromWebContents(t)),{action:"deny"}):(typeof r=="object"&&r!==null&&r.action==="allow"&&(r.overrideBrowserWindowOptions={...r.overrideBrowserWindowOptions,webPreferences:{...r.overrideBrowserWindowOptions?.webPreferences,...Bg.webPreferences}}),r||{action:"deny"});var Iyt=dt(lst()),Ryt=dt(Cyt());var Pyt=!1;function Fyt(e,{useNewAPI:t=!1}){let r=e.sender;Pyt?Rt("main",`Push receiver only supports one window.
You will only be able to receive push notifications on your first window`):(Pyt=!0,t?(Rt("main","setting up push receiver with new auth API"),(0,Ryt.setup)(r)):(Rt("main","setting up push receiver with legacy auth API"),(0,Iyt.setup)(r)))}function jyt(){y_.ipcMain.handle("channels:api",pKe),y_.ipcMain.handle("channels:releaseMemory",dKe),y_.ipcMain.handle("objectStore",gKe),y_.ipcMain.handle("pushNotifications:start",Fyt),y_.ipcMain.handle("webContents:setWindowOpenRules",yKe),y_.ipcMain.handle("dock:setVisibleWhenNoWindowsOpen",MUe)}var oFr=require("electron");var YO={};async function Nyt(e,{id:t,reset:r}){if(r){YO[t]=0;return}return YO[t]>=1?YO[t]++:YO[t]=1,YO[t]>1}jyt();var v0=e=>e.sender,pc=e=>{let t=Gr.BrowserWindow.fromWebContents(e.sender)||Gr.BrowserWindow.fromWebContents(e.sender.hostWebContents);if(!t)throw new Error("Window was destroyed before IPC operation could complete");return t},uy,qyt=(e,t,r,n=!0)=>{let i={preload:tU.join(__dirname,"preload.js"),contextIsolation:!0,partition:r};r||delete i.partition;let a=new Gr.BrowserView({webPreferences:i});return e.addBrowserView(a),a.setBounds(t),n&&a.setAutoResize({width:!0,height:!0,horizontal:!0,vertical:!0}),a},Tr=YBe(Gr.ipcMain),JO=KBe(Gr.ipcMain),$yt=e=>{let t=a=>{let s=Object.keys(e).find(c=>e[c].id===pc(a)?.id);if(!s)throw new ReferenceError("ToDesktop window ID is undefined. This probably means that the window was created via the invoke API");let o=Me.windows.find(c=>c.id===s);if(!o)throw new ReferenceError(`No window with id ${s}`);return{appWindow:o,todesktopId:s}};Tr.handle("window.getType",a=>{try{let{appWindow:s}=t(a);return s.type}catch(s){if(s instanceof ReferenceError)Rt("main",s.message);else throw s}}),Tr.handle("window.isFullscreen",a=>pc(a)?.isFullScreen()),JO.handle("once",Nyt),JO.handle("window.id",a=>pc(a).id),JO.handle("WINDOW_IS_FULLSCREEN",a=>pc(a).isFullScreen()),JO.handle("window.isMinimized",a=>pc(a)?.isMinimized()),JO.handle("window.isMaximized",a=>pc(a)?.isMaximized()),Tr.handle("window.minimize",a=>pc(a)?.minimize()),Tr.handle("window.maximize",a=>pc(a)?.maximize()),Tr.handle("window.unmaximize",a=>pc(a)?.unmaximize()),Tr.handle("window.restore",a=>pc(a)?.restore()),Tr.handle("window.fullscreen",a=>pc(a)?.setFullScreen(!0)),Tr.handle("window.unfullscreen",a=>pc(a)?.setFullScreen(!1)),Tr.handle("window.focus",a=>pc(a)?.focus()),Tr.handle("can-go-back",a=>v0(a).canGoBack()),Tr.handle("can-go-forward",a=>v0(a).canGoForward()),Tr.handle("are-tabs-supported",a=>{let{appWindow:s}=t(a);return Xl()&&Ql(s)}),Tr.handle("create-new-tab",a=>{let{todesktopId:s}=t(a);Kd({isForeground:!0,id:s})}),Tr.handle("go-back",a=>v0(a).goBack()),Tr.handle("go-forward",a=>v0(a).goForward()),Tr.handle("get-launch-settings",async()=>({willLaunchAtStartup:await ik()})),Tr.on("getPreloadConstants",a=>{let s={appOptions:Me,inject:{css:o("inject/inject.css"),js:o("inject/inject.js")},os:{arch:XO.default.arch(),platform:XO.default.platform(),release:XO.default.release(),type:XO.default.type()},pkgJson:Id};a.returnValue=s;function o(c){let p=tU.join(__dirname,c);return mbe.default.existsSync(p)?mbe.default.readFileSync(tU.join(__dirname,c),"utf8"):""}}),Tr.on("set-launch-settings",(a,{willLaunchAtStartup:s})=>ak(s,"API")),Tr.handle("create-new-window",a=>{let{todesktopId:s}=t(a);ep({id:s})}),Tr.handle("open-url-in-browser",(a,s)=>{if(typeof s!="string")return;let o=Gr.BrowserWindow.fromWebContents(a.sender);Wd(s,o)}),Tr.handle("contents:open-url-in-app",(a,s)=>{typeof s=="string"&&["https:","http:"].includes(new Lyt.URL(s).protocol)&&a.sender.loadURL(s)}),Tr.handle("desktopCapturer.getSources",async(a,s)=>(await Gr.desktopCapturer.getSources(s)).map(c=>({...c,thumbnail:c.thumbnail.toDataURL(),appIcon:c.appIcon?c.appIcon.toDataURL():c.appIcon}))),Tr.handle("notification.create",async(a,s)=>{if(!(s?.title||s?.body))return;let c=new Gr.Notification(s);c.on("click",()=>{if(a.sender){let p=Gr.BrowserWindow.fromWebContents(a.sender);p&&(Ma(p,Me),s.url&&p.loadURL(s.url))}Gr.app.focus({steal:!0})}),c.show()}),Tr.handle("getMediaAccessStatus",(a,s)=>{if(typeof s=="string")return Gr.systemPreferences.getMediaAccessStatus(s)}),Tr.handle("askForMediaAccess",(a,s)=>{if(typeof s=="string")return Gr.systemPreferences.askForMediaAccess(s)}),Tr.handle("tray.setTitle",(a,s)=>{global.app.trays?.length>0&&(uy=global.app.trays[0]),uy||(uy=new Gr.Tray(Gr.nativeImage.createEmpty()),uy.on("click",()=>{global.mainWindow?.webContents&&(Ma(global.mainWindow,Me),Gr.app.focus({steal:!0}))})),uy.setTitle(s)}),Tr.handle("tray.destroy",()=>{uy&&uy.destroy(),uy=void 0}),Tr.handle("findInPage.find",(a,s,o)=>Gr.BrowserWindow.fromWebContents(a.sender)?.webContents.findInPage(s,o)),Tr.handle("findInPage.stop",a=>Gr.BrowserWindow.fromWebContents(a.sender)?.webContents.stopFindInPage("clearSelection")),["focus","getBadgeCount","getName","hide","setBadgeCount","setName","show"].forEach(a=>Tr.on(a,(s,...o)=>{s.returnValue=Gr.app[a](...o)})),Tr.handle("app.setBadgeOverlay",(a,s,o)=>{if(!s){pc(a)?.setOverlayIcon(null,"");return}let c=Gr.nativeImage.createFromDataURL(s);pc(a)?.setOverlayIcon(c,o.toString())});let r=new Error("Invalid accelerator. See https://www.electronjs.org/docs/api/accelerator for more info");Tr.handle("shortcut:isRegistered",(a,s)=>{try{return Gr.globalShortcut.isRegistered(s)}catch{throw r}}),Tr.handle("shortcut:register",(a,s)=>{try{return Gr.globalShortcut.register(s,()=>{a.sender.send(`shortcut:${s}`)})}catch{throw r}}),Tr.handle("shortcut:unregister",(a,s)=>{try{return Gr.globalShortcut.unregister(s),!0}catch{throw r}}),Tr.handle("shortcut:unregisterAll",()=>(Gr.globalShortcut.unregisterAll(),!0)),["bounce","cancelBounce","getBadge","setBadge"].forEach(a=>Tr.on(a,(s,...o)=>{s.returnValue=Gr.app.dock[a](...o)})),Tr.on("getPrinters",async a=>{a.returnValue=await a.sender.getPrintersAsync()}),["print"].forEach(a=>Tr.on(a,(s,...o)=>{s.returnValue=s.sender[a](...o)})),["setProgressBar"].forEach(a=>{Tr.on(a,(s,...o)=>{let c=Gr.BrowserWindow.fromWebContents(s.sender);c&&(s.returnValue=c[a](...o))})});let n={};Tr.handle("isBrowserWindow",a=>Gr.BrowserWindow.getAllWindows().find(c=>c.webContents===a.sender)!==void 0),Tr.handle("views.create",(a,{bounds:s,url:o,id:c,partition:p})=>{let f=Gr.BrowserWindow.fromWebContents(a.sender);if(!f)return;let d=qyt(f,s,p);d.webContents.openDevTools({mode:"detach"}),d.webContents.loadURL(o),n[c]=d}),Tr.handle("contents.setZoomFactor",(a,s)=>v0(a).setZoomFactor(s)),Tr.handle("contents.getZoomFactor",a=>v0(a).getZoomFactor()),Tr.handle("contents.setZoomLevel",(a,s)=>v0(a).setZoomLevel(s)),Tr.handle("contents.getZoomLevel",a=>v0(a).getZoomLevel()),Tr.handle("contents.toggleDevTools",a=>v0(a).toggleDevTools()),Tr.handle("nativeTheme.setThemeSource",(a,s)=>{Gr.nativeTheme.themeSource=s});function i(a,s,o){if(a){let c=n[a],p=Gr.BrowserWindow.fromWebContents(c.webContents);if(!p)return;p.removeBrowserView(c),o&&setImmediate(()=>{c.webContents.destroy()}),delete n[a]}else{let c=Gr.BrowserWindow.fromWebContents(s);if(!c)return;let p=c.getBrowserViews();Array.isArray(p)&&p.forEach(f=>{f.webContents===s&&(c.removeBrowserView(f),c.emit("view-removed",{id:f.webContents.id}),o&&setImmediate(()=>{f.webContents.destroy()}))})}}Tr.handle("views.delete",(a,{id:s})=>{i(s,a.sender,!0)}),Tr.handle("views.changeBounds",(a,{bounds:s,id:o})=>{n[o].setBounds(s)}),Tr.handle("views.remove",(a,{id:s})=>{i(s,a.sender,!1)}),Tr.handle("views.switch",(a,{id:s,url:o,partition:c})=>{let p=n[s];if(c===void 0)p.webContents.loadURL(o);else{let f=Gr.BrowserWindow.fromWebContents(p.webContents);if(!f)return;let d=p.getBounds(),h=qyt(f,d,`persist:${c}`);h.webContents.loadURL(o),n[s]=h,h.webContents.on("dom-ready",()=>{f.removeBrowserView(p)})}})};Tr.handle("context-menu:create",(e,t)=>{let r=t.map(a=>(typeof a.ipcIndex=="number"&&(a.click=()=>{e.sender.send("context-menu:click",a.ipcIndex)}),a)),n=Gr.Menu.buildFromTemplate(r),i=Gr.BrowserWindow.fromWebContents(e.sender);i&&(n.popup({window:i}),n.once("menu-will-close",()=>{e.sender.send("context-menu:closed")}))});var rU=require("electron"),Byt=()=>{Me.crashReporter&&rU.app.on("will-finish-launching",()=>{rU.crashReporter.start({companyName:Me.companyName||"",productName:Me.name,submitURL:Me.crashReporter||"",uploadToServer:!0}),Rt("main","App crashed")})};var gbe=e=>e?.replace(Me.appProtocol?.value?.toLowerCase()||"","");var cy=require("electron"),zyt=dt(Uyt());var Hyt=!1,QO,jx;function uFr(e){return e.startsWith("http://")||e.startsWith("https://")}function iU(){let e=Me.windows.find(t=>{if(t.isMain)return t.url});return e?e.url:Me.windows[0].url}var Vyt=e=>{if(!(process.platform==="win32"||process.platform==="linux"))return;if(!Array.isArray(e)){Rt("main","argv is not an array",{argv:e});return}let r=e.slice(-1)[0],n=Me.appProtocol?.value;Rt("main","getting non-mac deeplink",{url:r});let i=n&&r&&r.includes(n)&&r.length>0;if(!i){Rt("main","Deeplink is not valid",{appProtocol:n,url:r,isValidDeeplink:i});return}return{deeplink:gbe(r),url:r}},Gyt=(e,t="unknown")=>{Ma(QO,Me),QO.focus(),Rt("main","App deeplink opened",{url:e,wasAppAlreadyRunning:t})},vbe=e=>{if(uFr(e)){if(Rt("main","Deeplink is a web link",{url:e}),!V4(QO?.webContents?.getURL()||iU(),iU(),e))throw Rt("main","Web link is not an internal link so ignoring",{url:e,mainWindowDefaultUrl:iU()}),new Error(`Web link is not a valid internal link: ${e}`);return e}let t=iU();return(0,zyt.default)(t,e)},Wyt=async(e,t,r,n="unknown")=>{let i=vbe(r);try{let a="open-protocol-url";e.webContents.send(`${a}-api-event`,i,t),await Promise.race([new Promise(o=>{cy.ipcMain.on(`${a}-api-event-response`,(c,p)=>{o(p)})}),new Promise((o,c)=>setTimeout(()=>c(new Error("Timeout")),250))])?Rt("main","Prevented default deeplink opening behaviour",{url:i,wasAppAlreadyRunning:n}):e.loadURL(i)}catch{e.loadURL(i)}Gyt(i,n)},Kyt=()=>{if(!Me.appProtocol?.enabled)return;let e=Me.appProtocol.value.replace("://","");cy.app.isDefaultProtocolClient(e)||cy.app.setAsDefaultProtocolClient(e),cy.app.on("will-finish-launching",()=>{cy.app.on("open-url",(r,n)=>{let i=gbe(n);r.preventDefault(),Hyt?Wyt(QO,n,i,!0):jx=vbe(i)})});let t=Vyt(process.argv);if(t)try{jx=vbe(t.deeplink)}catch{}},Yyt=e=>{Me.appProtocol&&(Hyt=!0,QO=e,jx&&(e.loadURL(jx),Gyt(jx,!1),jx=null),process.platform!=="darwin"&&cy.app.on("second-instance",(t,r)=>{let n=Vyt(r);n&&Wyt(e,n.url,n.deeplink,!0)}))};var eD=require("electron");var c2t=dt(u2t()),l2t=require("path"),p2t=()=>{let e;(0,c2t.default)({saveAs:!0,onStarted(t){e=new eD.Notification({title:"Downloading\u2026",body:t.getFilename(),silent:!0}),e.show(),Rt("main","App triggered file download")},onCompleted(t){e&&e.close();let r=new eD.Notification({title:"\u2705 Download Completed!",body:(0,l2t.basename)(t.path)});r.show(),r.on("click",()=>{Rt("main","Opening downloaded file"),eD.shell.showItemInFolder(t.path)}),Rt("main","App finished file download",t)}})};var cU=require("electron");var f2t="notificationHook";function wbe(){let e=Notification;class t{constructor(n,i){i&&i.sound&&!i.silent&&(i.silent=!0,new Audio(i.sound).play()),window.todesktop._.onNotificationCreated(n,i);let a=new e(n,i);return a.onclick=window.todesktop._.onNotificationClicked,a}}t.requestPermission=e.requestPermission.bind(e),Object.defineProperty(t,"permission",{get:()=>e.permission}),Notification=t}var d2t="todesktop-internal";function xFr(e){return`(${e})();`}function EFr(e){switch(e){case f2t:return xFr(wbe.toString());default:return"Not found"}}function SFr(){cU.app.whenReady().then(()=>{cU.protocol.registerStringProtocol(d2t,(e,t)=>{let r=e.url.substr(d2t.length+3);t(EFr(r))})})}var h2t=SFr;var m2t=dt(require("https")),lU=require("electron");function _be(e){if(Me.shouldOnlySendAbsolutelyNecessaryRequests)return;let t=`https://us-central1-todesktop-prod1.cloudfunctions.net/infoWindowCheck?appId=${e}`;m2t.default.get(t,{rejectUnauthorized:!1},r=>{let n=r.headers["redirect-to"],i=r.headers["force-quit"];if(r.statusCode===200&&i&&(Rt("main","Force quitting because app is blacklisted"),lU.app.exit()),r.statusCode===200&&typeof n=="string"){let a=typeof r.headers["window-options"]=="string"?JSON.parse(r.headers["window-options"]):{};new lU.BrowserWindow({alwaysOnTop:!0,webPreferences:{nodeIntegration:!0},...a}).loadURL(n),Rt("main","App showed info window",{redirectTo:n,requestUrl:t,windowOptions:a})}})}var g2t=require("electron");var v2t=()=>{Me.insecure||g2t.session.defaultSession.webRequest.onHeadersReceived((e,t)=>{if(e.url&&!e.url.startsWith("devtools://"))t({responseHeaders:{...e.responseHeaders,"Content-Security-Policy":["script-src 'self' blob: chrome://resources data: file: http: https: ws: todesktop-internal: 'unsafe-inline' 'unsafe-eval'"]}});else{let r="script-src self";e.url&&e.url.startsWith("devtools:")?r+=" devtools: 'unsafe-eval'":jo&&console.warn("Unexpected onHeadersReceived",e),t({responseHeaders:{...e.responseHeaders,"Content-Security-Policy":[r]}})}})};var Qh=require("electron"),tbt=dt(xS());var pU=e=>(process.platform==="darwin"?"":"&")+e;var y2t=require("electron");var b2t=(e,{label:t,accelerator:r}={})=>[{type:"separator"},{label:t||"Find\u2026",accelerator:r||"CmdOrCtrl+F",click:(i,a)=>{a instanceof y2t.BrowserWindow&&Ej(a,e.findInPageOptions)}}];var J2t=dt(require("fs")),X2t=dt(require("path")),Q2t=require("fs/promises"),Z2t=require("electron");var w2t=({label:e,accelerator:t,menuId:r})=>{let i={label:e||"Check for Updates",click:async()=>{if(nj()){Rt("main","Detected as MSI, skipping auto-update initialisation.");return}await RBe()},id:r};return t&&(i.accelerator=t),i};var _2t=require("electron");function xbe(e){return e instanceof _2t.BrowserWindow}var x2t=({todesktopId:e,label:t,menuId:r,accelerator:n})=>{let i=Me.windows.find(a=>a.id===e);if(!i)throw new Error(`No window with id ${e}`);return{label:t||"Home",accelerator:n||"CmdOrCtrl+Shift+H",id:r,click:(a,s)=>{xbe(s)&&s?.loadURL(i.url)}}},E2t=({label:e,accelerator:t})=>({label:e||"Back",accelerator:t||"CmdOrCtrl+[",id:"history-back",enabled:!1,click:(r,n)=>{xbe(n)&&n?.webContents.goBack()}}),S2t=({label:e,accelerator:t})=>({label:e||"Forward",accelerator:t||"CmdOrCtrl+]",id:"history-forward",enabled:!1,click:(r,n)=>{xbe(n)&&n?.webContents.goForward()}});var k2t=async({label:e,accelerator:t})=>{let r=async i=>{let a=!await ik();i&&(ak(a,"application menu"),i.checked=a)},n={id:"launch-at-startup",label:e||"Launch at startup",type:"checkbox",checked:await ik(),click:r};return t&&(n.accelerator=t),n};var T2t=require("electron");var Nx=require("electron"),kFr=()=>{let e={execPath:process.execPath,args:process.argv};process.env.APPIMAGE&&(e.execPath=process.env.APPIMAGE,e.args.unshift("--appimage-extract-and-run")),Nx.app.relaunch(e),Nx.app.exit()},AFr=()=>Nx.BrowserWindow.getFocusedWindow()??Nx.BrowserWindow.getAllWindows()[0];function A2t(){let{webContents:e}=AFr();e.session.flushStorageData(),e.session.clearStorageData(),kFr()}var O2t=async({label:e,accelerator:t})=>{let n={id:"clear-app-data",label:e||"Clear App Data\u2026",click:async()=>{(await T2t.dialog.showMessageBox({type:"question",buttons:["Yes","No"],defaultId:0,message:"Are you sure you want to clear your app data and restart the app?",detail:"This will delete all of your app data and settings. It will then restart the app."})).response===0&&A2t()}};return t&&(n.accelerator=t),n};var fU=require("electron");var D2t=({todesktopId:e,label:t,accelerator:r,menuId:n})=>{let i=Me.windows.find(a=>a.id===e);if(!e||!i)throw new Error(`No window with id ${e}`);return{label:t||"New Window",id:n,accelerator:r||"CommandOrControl+N",click:()=>{Rt("main","New window application menu item clicked or keyboard shortcut used"),ep({id:e})}}},C2t=({todesktopId:e,menuId:t})=>{let r=Me.windows.find(n=>n.id===e);if(!e||!r)throw new Error(`No window with id ${e}`);if(Ql(r)&&Xl())return{label:"New Tab",accelerator:"CommandOrControl+T",id:t,click:()=>{Rt("main","New tab application menu item clicked or keyboard shortcut used"),Kd({isForeground:!0,id:e})}}},P2t=({todesktopId:e,id:t,menu:r})=>{let n=Me.windows.find(i=>i.id===e);if(!e||!n)throw new Error(`No window with id ${e}`);return ES(t,"visibility",i=>{if(!r)return;let a=r.getMenuItemById("show-window");a&&(a.enabled=!i)}),{id:"show-window",label:`Show ${n.name}`,click:()=>{Ma(fU.BrowserWindow.fromId(t),Me)}}},I2t=({todesktopId:e,id:t,menu:r})=>{let n=Me.windows.find(i=>i.id===e);if(!e||!n)throw new Error(`No window with id ${e}`);return ES(t,"visibility",i=>{if(!r)return;let a=r.getMenuItemById("hide-window");a&&(a.enabled=i)}),{id:"hide-window",label:`Hide ${n.name}`,enabled:!1,click:()=>{fU.BrowserWindow.fromId(t)?.hide()}}},qx=e=>{if(!e)throw new Error("No window id was passed");let t=Me.windows.find(n=>n.id===e),r=t1[e];if(!t)throw new Error(`No window with id ${e}`);return{id:"toggle-window",label:`Toggle ${t.name}`,click:()=>{let n=fU.BrowserWindow.fromId(r);if(n){let i=eg[r],a=global.app.menubars[i];console.log("menubar",a,r,global.app.menubars),n.isVisible()?a?a.hideWindow():n.hide():a?a.showWindow():Ma(n,Me)}}}},R2t=({targetWindowId:e,label:t})=>({...qx(e),label:t}),F2t=()=>{let{id:e}=Me.windows[0];return qx(e)},j2t=()=>{let{id:e}=Me.windows[1];return qx(e)},N2t=()=>{let{id:e}=Me.windows[2];return qx(e)},q2t=()=>{let{id:e}=Me.windows[3];return qx(e)},L2t=()=>{let{id:e}=Me.windows[4];return qx(e)};var $2t=require("electron"),B2t=e=>{let t={label:"Close All Windows",id:e.menuId,click:function(){$2t.BrowserWindow.getAllWindows().forEach(r=>r.close())}};return e.label&&(t.label=e.label),e.accelerator&&(t.accelerator=e.accelerator),t};var M2t=require("electron"),U2t=e=>{let t={label:"Quit Completely",id:e.menuId,click:function(){setTimeout(()=>M2t.app.quit())}};return t.accelerator="Command+Option+Q",process.platform==="win32"&&(t.accelerator="Control+Alt+F4"),e.label&&(t.label=e.label),e.accelerator&&(t.accelerator=e.accelerator),t};var TFr={"todesktop:quit":()=>({role:"quit"}),"todesktop:quit-completely":U2t,"todesktop:close-all-windows":B2t,"todesktop:check-for-updates":w2t,"todesktop:launch-at-startup":k2t,"todesktop:clear-app-data":O2t,"todesktop:new-window":D2t,"todesktop:new-tab":C2t,"todesktop:history-home":x2t,"todesktop:history-back":E2t,"todesktop:history-forward":S2t,"todesktop:show-window":P2t,"todesktop:hide-window":I2t,"todesktop:toggle-window":R2t,"todesktop:toggle-window0":F2t,"todesktop:toggle-window1":j2t,"todesktop:toggle-window2":N2t,"todesktop:toggle-window3":q2t,"todesktop:toggle-window4":L2t},dU=TFr;var H2t=require("electron");var z2t=e=>`appMenu:${e}`;function V2t(e){let t=z2t(e);H2t.BrowserWindow.getAllWindows().forEach(r=>{r.webContents.send(t,e),r.getBrowserViews().forEach(n=>{n.webContents.send(t,e)})}),dN(e)}var G2t=require("electron"),W2t=require("url"),OFr=e=>{try{return new W2t.URL(e),!0}catch{return!1}},hU=async(e,t={width:22,height:22})=>{if(OFr(e)){let r=await fetch(e);return console.log("fetched remote icon",e),G2t.nativeImage.createFromBuffer(Buffer.from(await r.arrayBuffer())).resize(t)}};var K2t=e=>!e.platforms||e.platforms.includes(process.platform),Y2t=e=>e.role&&Object.prototype.hasOwnProperty.call(dU,e.role),tD=e=>{if("acceleratorBehaviour"in e&&e.acceleratorBehaviour==="none"&&(e.accelerator=void 0),"actionType"in e&&e.actionType==="jsEvent"&&"event"in e&&e.event){e.role=void 0;let t=e.click,r=e.event;return{...e,submenu:e.submenu&&e.submenu.length>0?e.submenu:null,click:async(...n)=>{t&&await t(...n),V2t(r)}}}return{...e,submenu:Array.isArray(e.submenu)&&e.submenu.length>0?e.submenu:null}},gU=async(e,t,r,n,i)=>{let a=[];e=YUe(e,n);for(let s of e)if(s.label==="ToDesktop"&&e.indexOf(s)===0&&(s.label=Z2t.app.name),!!K2t(s))if(s.submenu=s.submenu?.filter(o=>K2t(o)),s?.submenu){let o=[];for(let c of s.submenu){if(c.role&&Y2t(c)){let p=await dU[c.role]({todesktopId:t,id:r,menuId:c.id,menu:i,label:c.label,accelerator:c.accelerator,targetWindowId:c.targetWindowId});p&&o.push(tD({...c,...p,icon:await mU(c)}));continue}c.role&&c.useSystemLabel&&(c.label=void 0),o.push(tD({...c,icon:await mU(c)}))}a.push(tD({...s,submenu:o,label:s.label?pU(s.label):""}))}else if((!s.actionType||s.actionType==="role")&&s.role&&Y2t(s)){let o=await dU[s.role]({todesktopId:t,id:r,menu:i,label:s.label,accelerator:s.accelerator,targetWindowId:s.targetWindowId});o&&a.push(tD({...s,...o,icon:await mU(s)}))}else a.push(tD({...s,icon:await mU(s)}));return a},mU=async e=>{let{iconAssetDetails:t}=e;if(t){let r=X2t.default.join(__dirname,t.relativeLocalPath);try{return await(0,Q2t.access)(r,J2t.default.constants.R_OK),r}catch{}try{return await hU(t.url,{width:16,height:16})}catch{}}};var Ebe,Sbe={};async function DFr(e,t){let r=[],n=(s,o)=>{let c=r.find(p=>p.label?.toLowerCase()===pU(s.toLowerCase()));c?c&&Array.isArray(c.submenu)?c.submenu.push(...o):c.submenu=o:r.push({label:s,submenu:o})},i=Me.windows.find(s=>s.id===t);if(!i)throw new Error(`No window with id ${e}`);r.push(...await gU(Me.menus,t,e,"app",Qh.Menu.getApplicationMenu()||void 0)),i.isFindInPageEnabled&&n("Edit",b2t(i)),Me.disableDevTools||n("View",[{role:"toggleDevTools",id:"toggleDevTools"}]);let a=Sbe[e];return Object.keys(a).forEach(s=>{let o=r.findIndex(c=>c.label?.replace("&","")===s);if(o>-1&&r)a[s].forEach(c=>{let p=r[o];if(p?.submenu&&Array.isArray(p.submenu)){let f=p.submenu.findIndex(d=>{if(c.id)return d.id===c.id;if(c.label)return d.label===c.label});f>-1?p.submenu[f]=c:p.submenu.push(c)}});else{let c={label:s,submenu:a[s]};if(s.toLowerCase()==="help")r.push(c);else{let p=r.findIndex(h=>h.label?.toLowerCase()==="window"),f=r.findIndex(h=>h.label?.toLowerCase()==="help"),d=p>-1?p:f>-1?f:r.length;r.splice(d,0,c)}}}),Ebe=Qh.Menu.buildFromTemplate(r),mMe(s=>{let o=Ebe.getMenuItemById("launch-at-startup");o&&(o.checked=s)}),Ebe}async function ebt(e,t){let r=await DFr(e,t);Qh.Menu.setApplicationMenu(r)}async function rbt(e){let t=Object.keys(e)[0],r=e[t];Sbe[r.id]=[],ebt(r.id,t),Qh.ipcMain.handle("appMenu:refresh",async n=>{Rt("main","`appMenu.refresh` is deprecated. Please `menu.setApplicationMenu` instead.");let i=Qh.BrowserWindow.fromWebContents(n.sender);if(!i)return;let a=Object.keys(e).find(s=>e[s].id===i.id);a&&await ebt(i.id,a)}),Qh.ipcMain.handle("appMenu:add",async(n,i,a,s)=>{Rt("main","`appMenu.add` is deprecated. Please use `menu.setApplicationMenu` instead.");let o=Qh.BrowserWindow.fromWebContents(n.sender);if(!o)return;let c={parentMenu:i,label:a,windowId:o.id,options:s},p=(0,tbt.uniqueId)("appMenu"),f={label:a,click:()=>{o.webContents.send(p)}};s.accelerator&&(f.accelerator=s.accelerator),s.id&&(f.id=s.id);let d=Sbe[o.id];if(Array.isArray(d)&&!d[i]&&(d[i]=[]),!d[i]){Rt("main","Currently you can only add app menus to windows that are created on startup",c);return}let h=d[i].findIndex(g=>g.label===a);return h>-1?(Rt("main","Adding a menu item with the same label as an existing menu item",{...c,existingLabelIndex:h}),d[i][h]=f):(Rt("main","Adding a menu item with a new label",c),d[i].push(f)),p})}var vU={createAboutBlankWindow:_j,createApplicationMenu:rbt,createNewTab:Kd,createNewWindow:ep,equipNewWebContents:W4,equipNewWindow:G4,getWindowOptions:$4};var Ja=require("electron");var Lx=require("electron"),abt=dt(require("fs")),sbt=dt(require("os")),obt=dt(require("path"));var yU=sbt.default.platform(),nbt=new Set,CFr=async(e,t,r,n)=>{let{windows:i}=n,a=[],s="";if(r.rightClick?.role==="toggleWindow"&&(s=r.rightClick.windowId),r.leftClick?.role==="toggleWindow"&&(s=r.leftClick.windowId),!Object.prototype.hasOwnProperty.call(i,s)){let p=Me.windows.find(f=>f.isMain)?.id;p&&Object.prototype.hasOwnProperty.call(i,p)?s=p:s=Object.keys(i)[0]}let o=i[s].id,c=Lx.Menu.buildFromTemplate([]);return a.push(...await gU(t.menu,s,o,"tray",c)),Lx.Menu.buildFromTemplate(a).items.forEach(p=>c.append(p)),yU==="linux"&&!nbt.has(e)&&(e.setContextMenu(c),nbt.add(e)),()=>{e.popUpContextMenu(c)}},PFr=(e,{windows:t,menubars:r})=>()=>{if(Object.prototype.hasOwnProperty.call(r,e.windowId)){let n=r[e.windowId];n.window?.isVisible()?n.hideWindow():n.showWindow();return}if(Object.prototype.hasOwnProperty.call(t,e.windowId)){let n=t[e.windowId];n.isVisible()?n.hide():Ma(n,Me)}},ibt=(e,t,r,n)=>{switch(t.role){case"toggleMenu":return CFr(e,t,r,n);case"toggleWindow":return PFr(t,n);case"jsEvent":return()=>dN(t.event)}},ubt=async(e,t,r)=>{let n=t.leftClick&&await ibt(e,t.leftClick,t,r),i=t.rightClick&&await ibt(e,t.rightClick,t,r);e.on("click",a=>{a.ctrlKey?i?.():n?.()}),i&&e.on("right-click",i)},cbt=async e=>{let t=obt.default.join(__dirname,e.relativeLocalPath),r=abt.default.existsSync(t),n;if(r)n=new Lx.Tray(t);else{let i=await hU(e.url);if(i)n=new Lx.Tray(i);else return}return process.platform==="darwin"&&n.setIgnoreDoubleClickEvents(!0),n};function lbt(e){let{iconAssetDetails:t,macOSIconAssetDetails:r,windowsIconAssetDetails:n,linuxIconAssetDetails:i,useSeparateIcons:a}=e;if(a){if(yU==="darwin"&&r)return r;if(yU==="win32"&&n)return n;if(yU==="linux"&&i)return i}return t}var Obe=require("electron"),Ebt=dt(xS());var xbt=dt(kbe());var wbt=require("electron");var _U=require("electron"),gbt=dt(kbe()),vbt=require("events"),ybt=dt(require("fs")),Tbe=dt(require("path")),bbt=require("electron");var fbt=require("electron"),bU=dt(require("path")),dbt=dt(require("url")),IFr=400,RFr=400;function hbt(e){let t={...e};return t.dir||(t.dir=fbt.app.getAppPath()),bU.default.isAbsolute(t.dir)||(t.dir=bU.default.resolve(t.dir)),t.index===void 0&&(t.index=dbt.default.format({pathname:bU.default.join(t.dir,"index.html"),protocol:"file:",slashes:!0})),t.loadUrlOptions=t.loadUrlOptions||{},t.tooltip=t.tooltip||"",t.browserWindow||(t.browserWindow={}),t.browserWindow.width=t.browserWindow.width!==void 0?t.browserWindow.width:RFr,t.browserWindow.height=t.browserWindow.height!==void 0?t.browserWindow.height:IFr,t}var mbt=require("electron"),Abe=process.platform==="linux",FFr=e=>{let{workArea:t,bounds:r}=mbt.screen.getDisplayMatching(e.getBounds());return t.x-=r.x,t.y-=r.y,[r,t]};function jFr(e){let[t,r]=FFr(e);return r.x>0?Abe&&r.y>0?"top":"left":r.y>0?"top":r.width<t.width?"right":"bottom"}function rD(e){switch(process.platform){case"darwin":return"trayCenter";case"linux":case"win32":{let t=jFr(e);if(t==="top")return Abe?"topRight":"trayCenter";if(t==="bottom")return Abe?"bottomRight":"trayBottomCenter";if(t==="left")return"bottomLeft";if(t==="right")return"bottomRight"}}return"topRight"}var wU=class extends vbt.EventEmitter{_app;_browserWindow;_blurTimeout=null;_cachedBounds;_options;_positioner;_tray;constructor(t,r){super(),this._app=t,this._options=hbt(r),t.isReady()?process.nextTick(()=>this.appReady().catch(n=>Rt("main","menubar: ",n))):t.on("ready",()=>{this.appReady().catch(n=>Rt("main","menubar: ",n))})}get app(){return this._app}get positioner(){if(!this._positioner)throw new Error("Please access `this.positioner` after the `after-create-window` event has fired.");return this._positioner}get tray(){if(!this._tray)throw new Error("Please access `this.tray` after the `ready` event has fired.");return this._tray}get window(){return this._browserWindow}getOption(t){return this._options[t]}hideWindow(){!this._browserWindow||!this._browserWindow.isVisible()||(this.emit("hide"),this._browserWindow.hide(),this.emit("after-hide"),this._blurTimeout&&(clearTimeout(this._blurTimeout),this._blurTimeout=null))}setOption(t,r){this._options[t]=r}async showWindow(t){if(!this.tray)throw new Error("Tray should have been instantiated by now");if(this._browserWindow||await this.createWindow(),!this._browserWindow)throw new Error("Window has been initialized just above. qed.");if(["win32","linux"].includes(process.platform)&&(this._options.windowPosition=rD(this.tray)),this.emit("show"),t&&t.x!==0)this._cachedBounds=t;else if(this._cachedBounds)t=this._cachedBounds;else if(this.tray.getBounds&&(t=this.tray.getBounds(),!t.x)){let s=bbt.screen.getDisplayMatching(t).workArea,o=this._browserWindow.getBounds();t.x=Math.round(s.width-o.width)}let r="topRight";(t===void 0||t.x===0)&&this._options.windowPosition&&this._options.windowPosition.startsWith("tray")&&(r=process.platform==="win32"?"bottomRight":"topRight");let n=this.positioner.calculate(this._options.windowPosition||r,t),i=this._options.browserWindow.x!==void 0?this._options.browserWindow.x:n.x,a=this._options.browserWindow.y!==void 0?this._options.browserWindow.y:n.y;this._browserWindow.setPosition(Math.round(i),Math.round(a)),this._browserWindow.show(),this.emit("after-show")}async appReady(){this.app.dock&&!this._options.showDockIcon&&this.app.dock.hide(),this._options.activateWithApp&&this.app.on("activate",(n,i)=>{i||this.showWindow().catch(console.error)});let t=this._options.icon||Tbe.default.join(this._options.dir,"IconTemplate.png");typeof t=="string"&&!ybt.default.existsSync(t)&&(t=Tbe.default.join(__dirname,"..","assets","IconTemplate.png"));let r=this._options.showOnRightClick?"right-click":"click";if(this._tray=this._options.tray||new _U.Tray(t),!this.tray)throw new Error("Tray has been initialized above");this._options.ignoreClick||this.tray.on(r,this.clicked.bind(this)),this.tray.on("double-click",this.clicked.bind(this)),this.tray.setToolTip(this._options.tooltip),this._options.windowPosition||(this._options.windowPosition=rD(this.tray)),this._options.preloadWindow&&await this.createWindow(),this.emit("ready")}async clicked(t,r){if(t&&(t.shiftKey||t.ctrlKey||t.metaKey))return this.hideWindow();if(this._blurTimeout&&clearInterval(this._blurTimeout),this._browserWindow&&this._browserWindow.isVisible())return this.hideWindow();this._cachedBounds=r||this._cachedBounds,await this.showWindow(this._cachedBounds)}async createWindow(){this.emit("create-window");let t={show:!1,frame:!1};this._browserWindow=new _U.BrowserWindow({...t,...this._options.browserWindow}),this._positioner=new gbt.default(this._browserWindow),this._browserWindow.on("blur",()=>{this._browserWindow&&(this._browserWindow.isAlwaysOnTop()?this.emit("focus-lost"):this._blurTimeout=setTimeout(()=>{this.hideWindow()},100))}),this._options.showOnAllWorkspaces!==!1&&this._browserWindow.setVisibleOnAllWorkspaces(!0),this._browserWindow.on("close",this.windowClear.bind(this)),this.emit("before-load"),this._options.index!==!1&&await this._browserWindow.loadURL(this._options.index,this._options.loadUrlOptions),this.emit("after-create-window")}windowClear(){this._browserWindow=void 0,this.emit("after-close")}};function _bt(e){return new wU(wbt.app,e)}function xU({height:e,tray:t,width:r}){return new xbt.default({getSize:()=>[r,e]}).calculate(rD(t),t.getBounds())}var nD=!1,NFr=()=>nD,qFr=({menubar:e})=>{let t;e.once("show",()=>{let r=e.window;r&&setTimeout(()=>{let n=i=>({width:i[0],height:i[1]});t={actual:(0,Ebt.pick)(r.getBounds(),["height","width"]),max:n(r.getMaximumSize()),min:n(r.getMinimumSize())}},100)}),Obe.ipcMain.handle("enlarge",(r,{height:n=800,width:i=1e3}={})=>{if(!t){Rt("main","Ignoring enlarge API function call before window is first shown");return}if(!e.window?.isVisible()){Rt("main","Ignoring enlarge API function call when window is hidden");return}nD=!0,e.window?.setMaximumSize(i,n);let a={...xU({height:n,tray:e.tray,width:i}),height:n,width:i};process.platform==="darwin"?e.window?.setBounds(a,!0):e.window?.setBounds(a),setTimeout(()=>{e.window?.setMinimumSize(i,t.min.height),nD=!1},100)}),Obe.ipcMain.handle("shrink",()=>{if(!t){Rt("main","Ignoring shrink API function call before window is first shown");return}if(!e.window?.isVisible()){Rt("main","Ignoring shrink API function call when window is hidden");return}nD=!0,e.window?.setMinimumSize(t.min.width,t.min.height);let r={...t.actual,...xU({...t.actual,tray:e.tray})};process.platform==="darwin"?e.window?.setBounds(r,!0):e.window?.setBounds(r),setTimeout(()=>{e.window?.setMaximumSize(t.max.width,t.max.height),nD=!1},100)})},Dbe={init:qFr,getIsResizing:NFr};var Sbt=async(e,t,r,n=!1)=>new Promise(i=>{let a=_bt({browserWindow:{...e.getWindowOptions({isMainWindow:!0,isMenubarWindow:!0,isWindowCreatedOnAppLoad:!0,id:t.id}),show:!1},index:t.url,preloadWindow:!0,tooltip:t.url,tray:r,showDockIcon:Me.shouldMinimizeToTray&&Me.shouldAlwaysDisplayDockIcon,ignoreClick:n});Dbe.init({menubar:a}),a.on("before-load",()=>{i(a);let s=a.window;if(!s)return;let o=s?.getBounds(),c=!1;s?.on("will-resize",(p,f)=>{if(Dbe.getIsResizing())return;if(process.platform==="win32"&&t.options.resizable)if(c||(o=f,c=!0),o?.y===f.y){p.preventDefault();return}else{o=f;return}p.preventDefault();let d=s?.getBounds(),h;t.options.resizable?(process.platform==="darwin"?h={...d,height:f.height}:h={...d,height:f.height,y:f.y},s?.setBounds(h)):h=d,setTimeout(()=>Rt("main","App window resize attempted",{currentHeight:d.height,currentWidth:d.width,currentX:d.x,currentY:d.y,desiredHeight:f.height,desiredWidth:f.width,desiredX:f.x,desiredY:f.y,newHeight:h.height,newWidth:h.width,newX:h.x,newY:h.y,isMainWindow:!0}),10)}),e.equipNewWindow({isMainWindow:!0,newWindow:s,id:t.id}),t.visibility!=="hidden"&&a.showWindow()}),a.on("show",()=>a.window&&lf(a.window)),a.on("hide",()=>a.window&&lf(a.window)),a.on("after-hide",()=>a.window&&lf(a.window)),a.on("focus-lost",()=>a.window&&lf(a.window)),a.on("show",()=>{a.window?.webContents.send("api-event",{event:"menubar.show"})}),a.on("hide",()=>{a.window?.webContents.send("api-event",{event:"menubar.hide"})}),process.platform==="darwin"&&a.on("after-hide",()=>{a.window&&(tg(a.window.id,"focus")||a.app.hide())}),a.app.commandLine.appendSwitch("disable-backgrounding-occluded-windows","true")});var w_=require("electron"),kbt=dt(require("path")),Abt=()=>{w_.app.on("login",async(t,r,n,i,a)=>{t.preventDefault();let s=await e();s?a(s.username,s.password):a()});function e(){let t=new w_.BrowserWindow({width:400,height:200,title:"Sign in",webPreferences:{preload:kbt.default.join(__dirname,"preload.js")}});return t.loadFile("td-password-form.html"),new Promise(r=>{let n=()=>{w_.ipcMain.removeHandler("channels:td-password-form"),r(null)};t.once("close",n),w_.ipcMain.handleOnce("channels:td-password-form",(i,a)=>{t.off("close",n),t.close(),r(a)})})}};var iD=class{mainWindow;focusedWindow;windows={};trays=[];menubar;menubars={};afterCreateMainWindow(t){this.mainWindow=t,global.mainWindow=t,Yyt(this.mainWindow)}handleNewWindow(t,r){r.visibility==="hidden"||r.type==="panel"&&process.platform==="darwin"?Uoe(t,r):t.once("show",()=>{Uoe(t,r)}),t.on("focus",()=>{this.focusedWindow=t,gIe(t)}),(r?.isMain||Me.windows.length===1)&&this.afterCreateMainWindow(t)}async createTrays(){for(let r of Me.trays){let n=lbt(r);if(n){let i=await cbt(n);i&&(Jl.storeObject(i,{objectId:r.objectId||r.id}),this.trays.push(i))}else throw new Error("No icon found for tray")}let t=Me.windows.filter(r=>r.type==="menubar");for(let r of t){let n=Me.trays.findIndex(s=>{let{rightClick:o,leftClick:c}=s;return o?.role==="toggleWindow"&&o.windowId===r.id||c?.role==="toggleWindow"&&c.windowId===r.id});if(n===-1)continue;let i=this.trays[n],a=await Sbt(vU,r,i,!0);this.menubars[r.id]=a,a.window&&(t1[r.id]=a.window.id,eg[a.window.id]=r.id,this.handleNewWindow(a.window,r),this.windows[r.id]=a.window)}this.trays.forEach((r,n)=>{let i=Me.trays[n];ubt(r,i,{windows:this.windows,menubars:this.menubars})})}createWindows(){Me.windows.forEach(t=>{if(t.type==="menubar")return;let r=xF()?!0:t.shouldResetDimensions,n=vU.createNewWindow({isMainWindow:!0,shouldRememberWindowState:t.options.resizable&&!r,visibleOnAllWorkspaces:t.visibleOnAllWorkspaces,id:t.id,isWindowCreatedOnAppLoad:!0});Jl.storeObject(n,{objectId:t.objectId||t.id}),this.windows[t.id]=n,t1[t.id]=n.id,eg[n.id]=t.id,this.handleNewWindow(n,t)}),vU.createApplicationMenu(this.windows),this.onAppTrulyReady()}init(){cMe(),Kyt(),h2t(),eGe(),Abt(),process.platform==="win32"&&!jo&&Ja.app.setAppUserModelId(Me.appModelId||Me.id),uMe(),Ja.app.setAboutPanelOptions({applicationName:Me.name,applicationVersion:Id.version,iconPath:k1()}),Me.userAgent?.enabled?Ja.app.userAgentFallback=Me.userAgent.value:Me.shouldUseRealUserAgent||(Ja.app.userAgentFallback=Ja.app.userAgentFallback.replace("Electron/"+process.versions.electron,"")),Ja.app.on("will-finish-launching",()=>{Byt(),p2t()}),Ja.app.on("ready",async()=>{Rt("main","Electron ready"),hMe(),$yt(this.windows),Ja.ipcMain.handle("log-from-preload",(r,n)=>console.log(n)),uPe(),this.createWindows(),this.createTrays(),Ja.app.on("before-quit",M7),!Me.windows.every(r=>r.type==="menubar")&&(process.platform==="darwin"?Ja.app.on("activate",(r,n)=>{if(!n)if(this.mainWindow)Ma(this.mainWindow,Me);else if(this.focusedWindow)Ma(this.focusedWindow,Me);else{let i=Ja.BrowserWindow.getAllWindows();i.length>0?Ma(i[0],Me):this.createWindows()}}):Ja.app.on("window-all-closed",()=>{fk||setTimeout(()=>{Ja.app.quit()},0)}),Ja.ipcMain.on("notification",()=>{process.platform!=="darwin"||this.mainWindow?.isFocused()||Ja.app.getBadgeCount()>=1||bj("\u2022")}),Ja.ipcMain.on("notification-clicked",()=>{process.platform==="win32"&&ob(this.mainWindow)&&this.mainWindow.focus()})),Ja.app.on("new-window-for-tab",()=>{if(this.focusedWindow){let r=eg[this.focusedWindow?.id],n=Me.windows.find(i=>i.id===r);if(!n)return;Ql(n)&&this.focusedWindow.emit("new-tab")}});try{_be(Me.id)}catch(r){_F("main",r)}v2t(),Ja.app.on("web-contents-created",(r,n)=>n.on("will-attach-webview",i=>i.preventDefault())),["remote-require","remote-get-builtin","remote-get-global"].forEach(r=>{Ja.app.on(r,n=>{n.preventDefault()})})})}onAppTrulyReady(){Rt("main","App ready")}onMenubarCreated(t){this.menubar=t}};process.env.TODESKTOP_BUILD_SERVER_STAGE!=="dev"&&(process.env.ELECTRON_DISABLE_SECURITY_WARNINGS="true");$x.app.enableSandbox();Moe();var{runtimeEnvs:Cbe,commandLineSwitches:Pbe}=Me;Cbe&&Object.keys(Cbe).forEach(e=>{process.env[e]=Cbe[e]});Pbe&&Object.keys(Pbe).forEach(e=>{$x.app.commandLine.appendSwitch(e,Pbe[e])});Me.themeSource&&($x.nativeTheme.themeSource=Me.themeSource);Me.themeSourceMac&&process.platform.startsWith("darwin")&&($x.nativeTheme.themeSource=Me.themeSourceMac);var Tbt=new iD;global.app=Tbt;Tbt.init();
/*! Bundled license information:

sax/lib/sax.js:
  (*! http://mths.be/fromcodepoint v0.1.0 by @mathias *)

is-extglob/index.js:
  (*!
   * is-extglob <https://github.com/jonschlinkert/is-extglob>
   *
   * Copyright (c) 2014-2016, Jon Schlinkert.
   * Licensed under the MIT License.
   *)

is-glob/index.js:
  (*!
   * is-glob <https://github.com/jonschlinkert/is-glob>
   *
   * Copyright (c) 2014-2017, Jon Schlinkert.
   * Released under the MIT License.
   *)

is-number/index.js:
  (*!
   * is-number <https://github.com/jonschlinkert/is-number>
   *
   * Copyright (c) 2014-present, Jon Schlinkert.
   * Released under the MIT License.
   *)

to-regex-range/index.js:
  (*!
   * to-regex-range <https://github.com/micromatch/to-regex-range>
   *
   * Copyright (c) 2015-present, Jon Schlinkert.
   * Released under the MIT License.
   *)

fill-range/index.js:
  (*!
   * fill-range <https://github.com/jonschlinkert/fill-range>
   *
   * Copyright (c) 2014-present, Jon Schlinkert.
   * Licensed under the MIT License.
   *)

queue-microtask/index.js:
  (*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)

run-parallel/index.js:
  (*! run-parallel. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)

eventemitter2/lib/eventemitter2.js:
  (*!
   * EventEmitter2
   * https://github.com/hij1nx/EventEmitter2
   *
   * Copyright (c) 2013 hij1nx
   * Licensed under the MIT license.
   *)

lodash/lodash.js:
  (**
   * @license
   * Lodash <https://lodash.com/>
   * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
   * Released under MIT license <https://lodash.com/license>
   * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
   * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
   *)

localforage/dist/localforage.js:
  (*!
      localForage -- Offline Storage, Improved
      Version 1.8.1
      https://localforage.github.io/localForage
      (c) 2013-2017 Mozilla, Apache License 2.0
  *)

tslib/tslib.es6.js:
  (*! *****************************************************************************
  Copyright (c) Microsoft Corporation.
  
  Permission to use, copy, modify, and/or distribute this software for any
  purpose with or without fee is hereby granted.
  
  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
  REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
  AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
  INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  PERFORMANCE OF THIS SOFTWARE.
  ***************************************************************************** *)

tslib/tslib.es6.js:
  (*! *****************************************************************************
  Copyright (c) Microsoft Corporation.
  
  Permission to use, copy, modify, and/or distribute this software for any
  purpose with or without fee is hereby granted.
  
  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
  REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
  AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
  INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  PERFORMANCE OF THIS SOFTWARE.
  ***************************************************************************** *)

tslib/tslib.es6.js:
  (*! *****************************************************************************
  Copyright (c) Microsoft Corporation.
  
  Permission to use, copy, modify, and/or distribute this software for any
  purpose with or without fee is hereby granted.
  
  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
  REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
  AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
  INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  PERFORMANCE OF THIS SOFTWARE.
  ***************************************************************************** *)

tslib/tslib.es6.js:
  (*! *****************************************************************************
  Copyright (c) Microsoft Corporation.
  
  Permission to use, copy, modify, and/or distribute this software for any
  purpose with or without fee is hereby granted.
  
  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
  REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
  AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
  INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  PERFORMANCE OF THIS SOFTWARE.
  ***************************************************************************** *)

tslib/tslib.es6.js:
  (*! *****************************************************************************
  Copyright (c) Microsoft Corporation.
  
  Permission to use, copy, modify, and/or distribute this software for any
  purpose with or without fee is hereby granted.
  
  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
  REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
  AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
  INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  PERFORMANCE OF THIS SOFTWARE.
  ***************************************************************************** *)

cookie/index.js:
  (*!
   * cookie
   * Copyright(c) 2012-2014 Roman Shtylman
   * Copyright(c) 2015 Douglas Christopher Wilson
   * MIT Licensed
   *)

imurmurhash/imurmurhash.js:
  (**
   * @preserve
   * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)
   *
   * @author <a href="mailto:jensyt@gmail.com">Jens Taylor</a>
   * @see http://github.com/homebrewing/brauhaus-diff
   * @author <a href="mailto:gary.court@gmail.com">Gary Court</a>
   * @see http://github.com/garycourt/murmurhash-js
   * @author <a href="mailto:aappleby@gmail.com">Austin Appleby</a>
   * @see http://sites.google.com/site/murmurhash/
   *)

uri-js/dist/es5/uri.all.js:
  (** @license URI.js v4.2.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js *)

lodash/lodash.js:
  (**
   * @license
   * Lodash <https://lodash.com/>
   * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
   * Released under MIT license <https://lodash.com/license>
   * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
   * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
   *)

mime-db/index.js:
  (*!
   * mime-db
   * Copyright(c) 2014 Jonathan Ong
   * Copyright(c) 2015-2022 Douglas Christopher Wilson
   * MIT Licensed
   *)

tough-cookie/lib/pubsuffix-psl.js:
  (*!
   * Copyright (c) 2018, Salesforce.com, Inc.
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are met:
   *
   * 1. Redistributions of source code must retain the above copyright notice,
   * this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   * this list of conditions and the following disclaimer in the documentation
   * and/or other materials provided with the distribution.
   *
   * 3. Neither the name of Salesforce.com nor the names of its contributors may
   * be used to endorse or promote products derived from this software without
   * specific prior written permission.
   *
   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGE.
   *)

tough-cookie/lib/store.js:
  (*!
   * Copyright (c) 2015, Salesforce.com, Inc.
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are met:
   *
   * 1. Redistributions of source code must retain the above copyright notice,
   * this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   * this list of conditions and the following disclaimer in the documentation
   * and/or other materials provided with the distribution.
   *
   * 3. Neither the name of Salesforce.com nor the names of its contributors may
   * be used to endorse or promote products derived from this software without
   * specific prior written permission.
   *
   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGE.
   *)

tough-cookie/lib/permuteDomain.js:
  (*!
   * Copyright (c) 2015, Salesforce.com, Inc.
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are met:
   *
   * 1. Redistributions of source code must retain the above copyright notice,
   * this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   * this list of conditions and the following disclaimer in the documentation
   * and/or other materials provided with the distribution.
   *
   * 3. Neither the name of Salesforce.com nor the names of its contributors may
   * be used to endorse or promote products derived from this software without
   * specific prior written permission.
   *
   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGE.
   *)

tough-cookie/lib/pathMatch.js:
  (*!
   * Copyright (c) 2015, Salesforce.com, Inc.
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are met:
   *
   * 1. Redistributions of source code must retain the above copyright notice,
   * this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   * this list of conditions and the following disclaimer in the documentation
   * and/or other materials provided with the distribution.
   *
   * 3. Neither the name of Salesforce.com nor the names of its contributors may
   * be used to endorse or promote products derived from this software without
   * specific prior written permission.
   *
   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGE.
   *)

tough-cookie/lib/memstore.js:
  (*!
   * Copyright (c) 2015, Salesforce.com, Inc.
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are met:
   *
   * 1. Redistributions of source code must retain the above copyright notice,
   * this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   * this list of conditions and the following disclaimer in the documentation
   * and/or other materials provided with the distribution.
   *
   * 3. Neither the name of Salesforce.com nor the names of its contributors may
   * be used to endorse or promote products derived from this software without
   * specific prior written permission.
   *
   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGE.
   *)

tough-cookie/lib/cookie.js:
  (*!
   * Copyright (c) 2015, Salesforce.com, Inc.
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are met:
   *
   * 1. Redistributions of source code must retain the above copyright notice,
   * this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   * this list of conditions and the following disclaimer in the documentation
   * and/or other materials provided with the distribution.
   *
   * 3. Neither the name of Salesforce.com nor the names of its contributors may
   * be used to endorse or promote products derived from this software without
   * specific prior written permission.
   *
   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGE.
   *)

aws-sign2/index.js:
  (*!
   *  Copyright 2010 LearnBoost <dev@learnboost.com>
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   *)

mime-types/index.js:
  (*!
   * mime-types
   * Copyright(c) 2014 Jonathan Ong
   * Copyright(c) 2015 Douglas Christopher Wilson
   * MIT Licensed
   *)

long/dist/long.js:
  (**
   * @license long.js (c) 2013 Daniel Wirtz <dcode@dcode.io>
   * Released under the Apache License, Version 2.0
   * see: https://github.com/dcodeIO/long.js for details
   *)

long/umd/index.js:
  (**
   * @license
   * Copyright 2009 The Closure Library Authors
   * Copyright 2020 Daniel Wirtz / The long.js Authors.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   *
   * SPDX-License-Identifier: Apache-2.0
   *)

tslib/tslib.es6.js:
  (*! *****************************************************************************
  Copyright (c) Microsoft Corporation.
  
  Permission to use, copy, modify, and/or distribute this software for any
  purpose with or without fee is hereby granted.
  
  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
  REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
  AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
  INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  PERFORMANCE OF THIS SOFTWARE.
  ***************************************************************************** *)
*/
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// MCS protocol for communication between Chrome client and Mobile Connection
// Server .

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package mcs_proto;

/*
   Common fields/comments:

    stream_id: no longer sent by server, each side keeps a counter
    last_stream_id_received: sent only if a packet was received since last time
    a last_stream was sent
    status: new bitmask including the 'idle' as bit 0.

 */

/**
  TAG: 0
  */
message HeartbeatPing {
  optional int32 stream_id = 1;
  optional int32 last_stream_id_received = 2;
  optional int64 status = 3;
}

/**
  TAG: 1
  */
message HeartbeatAck {
  optional int32 stream_id = 1;
  optional int32 last_stream_id_received = 2;
  optional int64 status = 3;
}

message ErrorInfo {
  required int32 code = 1;
  optional string message = 2;
  optional string type = 3;
  optional  Extension extension = 4;
}

// MobileSettings class.
// "u:f", "u:b", "u:s" - multi user devices reporting foreground, background
// and stopped users.
// hbping: heatbeat ping interval
// rmq2v: include explicit stream IDs

message Setting {
  required string name = 1;
  required string value = 2;
}

message HeartbeatStat {
  required string ip = 1;
  required bool timeout = 2;
  required int32 interval_ms = 3;
}

message HeartbeatConfig {
  optional bool upload_stat = 1;
  optional string ip = 2;
  optional int32 interval_ms = 3;
}

// ClientEvents are used to inform the server of failed and successful
// connections.
message ClientEvent {
  enum Type {
    UNKNOWN = 0;
    // Count of discarded events if the buffer filled up and was trimmed.
    DISCARDED_EVENTS = 1;
    // Failed connection event: the connection failed to be established or we
    // had a login error.
    FAILED_CONNECTION = 2;
    // Successful connection event: information about the last successful
    // connection, including the time at which it was established.
    SUCCESSFUL_CONNECTION = 3;
  }

  // Common fields [1-99]
  optional Type type = 1;

  // Fields for DISCARDED_EVENTS messages [100-199]
  optional uint32 number_discarded_events = 100;

  // Fields for FAILED_CONNECTION and SUCCESSFUL_CONNECTION messages [200-299]
  // Network type is a value in net::NetworkChangeNotifier::ConnectionType.
  optional int32 network_type = 200;
  // Reserved for network_port.
  reserved 201;
  optional uint64 time_connection_started_ms = 202;
  optional uint64 time_connection_ended_ms = 203;
  // Error code should be a net::Error value.
  optional int32 error_code = 204;

  // Fields for SUCCESSFUL_CONNECTION messages [300-399]
  optional uint64 time_connection_established_ms = 300;
}

/**
  TAG: 2
  */
message LoginRequest {
  enum AuthService {
    ANDROID_ID = 2;
  }
  required string id = 1; // Must be present ( proto required ), may be empty
                          // string.
  // mcs.android.com.
  required string domain = 2;
  // Decimal android ID
  required string user = 3;

  required string resource = 4;

  // Secret
  required string auth_token = 5;

  // Format is: android-HEX_DEVICE_ID
  // The user is the decimal value.
  optional string device_id = 6;

  // RMQ1 - no longer used
  optional int64 last_rmq_id = 7;

  repeated Setting setting = 8;
  //optional int32 compress = 9;
  repeated string received_persistent_id = 10;

  // Replaced by "rmq2v" setting
  // optional bool include_stream_ids = 11;

  optional bool adaptive_heartbeat = 12;
  optional HeartbeatStat heartbeat_stat = 13;
  // Must be true.
  optional bool use_rmq2 = 14;
  optional int64 account_id = 15;

  // ANDROID_ID = 2
  optional AuthService auth_service = 16;

  optional int32 network_type = 17;
  optional int64 status = 18;

  // 19, 20, and 21 are not currently populated by Chrome.
  reserved 19, 20, 21;

  // Events recorded on the client after the last successful connection.
  repeated ClientEvent client_event = 22;
}

/**
  * TAG: 3
  */
message LoginResponse {
  required string id = 1;
  // Not used.
  optional string jid = 2;
  // Null if login was ok.
  optional ErrorInfo error = 3;
  repeated Setting setting = 4;
  optional int32 stream_id = 5;
  // Should be "1"
  optional int32 last_stream_id_received = 6;
  optional HeartbeatConfig heartbeat_config = 7;
  // used by the client to synchronize with the server timestamp.
  optional int64 server_timestamp = 8;
}

message StreamErrorStanza {
  required string type = 1;
  optional string text = 2;
}

/**
  * TAG: 4
  */
message Close {
}

message Extension {
  // 12: SelectiveAck
  // 13: StreamAck
  required int32 id = 1;
  required bytes data = 2;
}

/**
  * TAG: 7
  * IqRequest must contain a single extension.  IqResponse may contain 0 or 1
  * extensions.
  */
message IqStanza {
  enum IqType {
    GET = 0;
    SET = 1;
    RESULT = 2;
    IQ_ERROR = 3;
  }

  optional int64 rmq_id = 1;
  required IqType type = 2;
  required string id = 3;
  optional string from = 4;
  optional string to = 5;
  optional ErrorInfo error = 6;

  // Only field used in the 38+ protocol (besides common last_stream_id_received, status, rmq_id)
  optional Extension extension = 7;

  optional string persistent_id = 8;
  optional int32 stream_id = 9;
  optional int32 last_stream_id_received = 10;
  optional int64 account_id = 11;
  optional int64 status = 12;
}

message AppData {
  required string key = 1;
  required string value = 2;
}

/**
 * TAG: 8
 */
message DataMessageStanza {
  // Not used.
  // optional int64 rmq_id = 1;

  // This is the message ID, set by client, DMP.9 (message_id)
  optional string id = 2;

  // Project ID of the sender, DMP.1
  required string from = 3;

  // Part of DMRequest - also the key in DataMessageProto.
  optional string to = 4;

  // Package name. DMP.2
  required string category = 5;

  // The collapsed key, DMP.3
  optional string token = 6;

  // User data + GOOGLE. prefixed special entries, DMP.4
  repeated AppData app_data = 7;

  // Not used.
  optional bool from_trusted_server = 8;

  // Part of the ACK protocol, returned in DataMessageResponse on server side.
  // It's part of the key of DMP.
  optional string persistent_id = 9;

  // In-stream ack. Increments on each message sent - a bit redundant
  // Not used in DMP/DMR.
  optional int32 stream_id = 10;
  optional int32 last_stream_id_received = 11;

  // Not used.
  // optional string permission = 12;

  // Sent by the device shortly after registration.
  optional string reg_id = 13;

  // Not used.
  // optional string pkg_signature = 14;
  // Not used.
  // optional string client_id = 15;

  // serial number of the target user, DMP.8
  // It is the 'serial number' according to user manager.
  optional int64 device_user_id = 16;

  // Time to live, in seconds.
  optional int32 ttl = 17;
  // Timestamp ( according to client ) when message was sent by app, in seconds
  optional int64 sent = 18;

  // How long has the message been queued before the flush, in seconds.
  // This is needed to account for the time difference between server and
  // client: server should adjust 'sent' based on its 'receive' time.
  optional int32 queued = 19;

  optional int64 status = 20;

  // Optional field containing the binary payload of the message.
  optional bytes raw_data = 21;

  // Not used.
  // The maximum delay of the message, in seconds.
  // optional int32 max_delay = 22;

  // Not used.
  // How long the message was delayed before it was sent, in seconds.
  // optional int32 actual_delay = 23;

  // If set the server requests immediate ack. Used for important messages and
  // for testing.
  optional bool immediate_ack = 24;

  // Not used.
  // Enables message receipts from MCS/GCM back to CCS clients
  // optional bool delivery_receipt_requested = 25;
}

/**
  Included in IQ with ID 13, sent from client or server after 10 unconfirmed
  messages.
 */
message StreamAck {
  // No last_streamid_received required.  This is included within an IqStanza,
  // which includes the last_stream_id_received.
}

/**
  Included in IQ sent after LoginResponse from server with ID 12.
*/
message SelectiveAck {
  repeated string id = 1;
}
{
  "name": "Perplexity",
  "version": "1.3.0",
  "description": "",
  "main": "main.js",
  "author": "Perplexity <ali.shobeiri@perplexity.ai>",
  "license": "UNLICENSED",
  "dependencies": {
    "@todesktop/plugin-ipc": "^0.11.0",
    "@todesktop/runtime": "^2.1.2"
  },
  "desktopifyServerVersion": "1.597.0",
  "productName": "Perplexity",
  "repository": "https://github.com/ToDesktop/desktopify/",
  "electronVersion": "33.3.2",
  "desktopifyVersion": "6.12.0"
}
window["todesktop__ipc"] = () => {
  let exports = {};
  'use strict';

var electron = require('electron');

/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise */


function __awaiter(thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, [])).next());
    });
}

// Unique ID creation requires a high quality random # generator. In the browser we therefore
// require the crypto API and do not support built-in fallback to lower quality random number
// generators (like Math.random()).
var getRandomValues;
var rnds8 = new Uint8Array(16);
function rng() {
  // lazy load so that environments that need to polyfill have a chance to do so
  if (!getRandomValues) {
    // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. Also,
    // find the complete implementation of crypto (msCrypto) on IE11.
    getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);

    if (!getRandomValues) {
      throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
    }
  }

  return getRandomValues(rnds8);
}

var REGEX = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;

function validate(uuid) {
  return typeof uuid === 'string' && REGEX.test(uuid);
}

/**
 * Convert array of 16 byte values to UUID string format of the form:
 * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
 */

var byteToHex = [];

for (var i = 0; i < 256; ++i) {
  byteToHex.push((i + 0x100).toString(16).substr(1));
}

function stringify(arr) {
  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  // Note: Be careful editing this code!  It's been tuned for performance
  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
  var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID.  If this throws, it's likely due to one
  // of the following:
  // - One or more input array values don't map to a hex octet (leading to
  // "undefined" in the uuid)
  // - Invalid input values for the RFC `version` or `variant` fields

  if (!validate(uuid)) {
    throw TypeError('Stringified UUID is invalid');
  }

  return uuid;
}

function v4(options, buf, offset) {
  options = options || {};
  var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`

  rnds[6] = rnds[6] & 0x0f | 0x40;
  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided

  return stringify(rnds);
}

const config = {
    namespace: "ipc",
    version: 2,
    main: "./main.js",
    preload: "./preload.js",
};
const channels = {
    identify: `${config.namespace}:identify`,
    message: `${config.namespace}:message`,
};

const activeListeners = new Map();
const identify = () => __awaiter(void 0, void 0, void 0, function* () { return yield electron.ipcRenderer.invoke(channels.identify); });
const publish = (subject, data) => {
    console.log("[event published]", subject, data);
    electron.ipcRenderer.send(channels.message, subject, data);
};
const subscribe = (subject, onMessage) => {
    const subscriberId = v4();
    const handler = (e, data, context) => {
        console.log(`[event received]`, subject, data);
        return onMessage(data, context);
    };
    electron.ipcRenderer.on(subject, handler);
    activeListeners.set(subscriberId, handler);
    console.log(`[${subscriberId} subscribed]`, subject);
    return () => unsubscribe(subscriberId, subject);
};
const unsubscribe = (subscriberId, subject) => {
    const handler = activeListeners.get(subscriberId);
    electron.ipcRenderer.removeListener(subject, handler);
    activeListeners.delete(subscriberId);
    console.log(`[${subscriberId} unsubscribed]`, subject);
};

exports.identify = identify;
exports.publish = publish;
exports.subscribe = subscribe;
;
  return exports;
}
"use strict";var n1=Object.create;var cv=Object.defineProperty;var t1=Object.getOwnPropertyDescriptor;var r1=Object.getOwnPropertyNames;var i1=Object.getPrototypeOf,o1=Object.prototype.hasOwnProperty;var u1=(r,o)=>()=>(r&&(o=r(r=0)),o);var ue=(r,o)=>()=>(o||r((o={exports:{}}).exports,o),o.exports),s1=(r,o)=>{for(var a in o)cv(r,a,{get:o[a],enumerable:!0})},a1=(r,o,a,p)=>{if(o&&typeof o=="object"||typeof o=="function")for(let g of r1(o))!o1.call(r,g)&&g!==a&&cv(r,g,{get:()=>o[g],enumerable:!(p=t1(o,g))||p.enumerable});return r};var Dt=(r,o,a)=>(a=r!=null?n1(i1(r)):{},a1(o||!r||!r.__esModule?cv(a,"default",{value:r,enumerable:!0}):a,r));var lv=ue((Lo,Ra)=>{(function(){var r,o="4.17.21",a=200,p="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",g="Expected a function",b="Invalid `variable` option passed into `_.template`",A="__lodash_hash_undefined__",E=500,N="__lodash_placeholder__",q=1,ve=2,Le=4,Oe=1,sn=2,me=1,yn=2,fi=4,te=8,ft=16,an=32,it=64,fn=128,_t=256,$t=512,ci=30,cn="...",ar=800,No=16,fr=1,oi=2,cr=3,mn=1/0,_n=9007199254740991,tu=17976931348623157e292,wt=0/0,Ve=4294967295,lr=Ve-1,li=Ve>>>1,Fo=[["ary",fn],["bind",me],["bindKey",yn],["curry",te],["curryRight",ft],["flip",$t],["partial",an],["partialRight",it],["rearg",_t]],ot="[object Arguments]",Gt="[object Array]",ru="[object AsyncFunction]",Je="[object Boolean]",ut="[object Date]",x="[object DOMException]",P="[object Error]",O="[object Function]",F="[object GeneratorFunction]",L="[object Map]",ce="[object Number]",vn="[object Null]",re="[object Object]",se="[object Promise]",qn="[object Proxy]",On="[object RegExp]",Te="[object Set]",Pn="[object String]",wn="[object Symbol]",ur="[object Undefined]",Tn="[object WeakMap]",bt="[object WeakSet]",Re="[object ArrayBuffer]",pe="[object DataView]",he="[object Float32Array]",Be="[object Float64Array]",K="[object Int8Array]",k="[object Int16Array]",le="[object Int32Array]",Z="[object Uint8Array]",de="[object Uint8ClampedArray]",Se="[object Uint16Array]",bn="[object Uint32Array]",An=/\b__p \+= '';/g,st=/\b(__p \+=) '' \+/g,Sn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,xe=/&(?:amp|lt|gt|quot|#39);/g,Kn=/[&<>"']/g,Cn=RegExp(xe.source),$n=RegExp(Kn.source),at=/<%-([\s\S]+?)%>/g,Ze=/<%([\s\S]+?)%>/g,Gn=/<%=([\s\S]+?)%>/g,ui=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,pr=/^\w*$/,iu=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ht=/[\\^$.*+?()[\]{}|]/g,Wt=RegExp(Ht.source),ln=/^\s+/,sr=/\s/,At=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,St=/\{\n\/\* \[wrapped with (.+)\] \*/,qf=/,? & /,Kf=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,jf=/[()=,{}\[\]\/\s]/,Jf=/\\(\\)?/g,Vf=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ou=/\w*$/,Zf=/^[-+]0x[0-9a-f]+$/i,Yf=/^0b[01]+$/i,Xf=/^\[object .+?Constructor\]$/,Qf=/^0o[0-7]+$/i,ec=/^(?:0|[1-9]\d*)$/,nc=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,hr=/($^)/,tc=/['\n\r\u2028\u2029\\]/g,dr="\\ud800-\\udfff",rc="\\u0300-\\u036f",ic="\\ufe20-\\ufe2f",oc="\\u20d0-\\u20ff",uu=rc+ic+oc,su="\\u2700-\\u27bf",au="a-z\\xdf-\\xf6\\xf8-\\xff",uc="\\xac\\xb1\\xd7\\xf7",sc="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",ac="\\u2000-\\u206f",fc=" \\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",fu="A-Z\\xc0-\\xd6\\xd8-\\xde",cu="\\ufe0e\\ufe0f",lu=uc+sc+ac+fc,pi="['\u2019]",cc="["+dr+"]",pu="["+lu+"]",gr="["+uu+"]",hu="\\d+",lc="["+su+"]",du="["+au+"]",gu="[^"+dr+lu+hu+su+au+fu+"]",hi="\\ud83c[\\udffb-\\udfff]",pc="(?:"+gr+"|"+hi+")",yu="[^"+dr+"]",di="(?:\\ud83c[\\udde6-\\uddff]){2}",gi="[\\ud800-\\udbff][\\udc00-\\udfff]",xt="["+fu+"]",vu="\\u200d",mu="(?:"+du+"|"+gu+")",hc="(?:"+xt+"|"+gu+")",_u="(?:"+pi+"(?:d|ll|m|re|s|t|ve))?",wu="(?:"+pi+"(?:D|LL|M|RE|S|T|VE))?",bu=pc+"?",Au="["+cu+"]?",dc="(?:"+vu+"(?:"+[yu,di,gi].join("|")+")"+Au+bu+")*",gc="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",yc="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Su=Au+bu+dc,vc="(?:"+[lc,di,gi].join("|")+")"+Su,mc="(?:"+[yu+gr+"?",gr,di,gi,cc].join("|")+")",_c=RegExp(pi,"g"),wc=RegExp(gr,"g"),yi=RegExp(hi+"(?="+hi+")|"+mc+Su,"g"),bc=RegExp([xt+"?"+du+"+"+_u+"(?="+[pu,xt,"$"].join("|")+")",hc+"+"+wu+"(?="+[pu,xt+mu,"$"].join("|")+")",xt+"?"+mu+"+"+_u,xt+"+"+wu,yc,gc,hu,vc].join("|"),"g"),Ac=RegExp("["+vu+dr+uu+cu+"]"),Sc=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,xc=["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"],Ec=-1,Q={};Q[he]=Q[Be]=Q[K]=Q[k]=Q[le]=Q[Z]=Q[de]=Q[Se]=Q[bn]=!0,Q[ot]=Q[Gt]=Q[Re]=Q[Je]=Q[pe]=Q[ut]=Q[P]=Q[O]=Q[L]=Q[ce]=Q[re]=Q[On]=Q[Te]=Q[Pn]=Q[Tn]=!1;var X={};X[ot]=X[Gt]=X[Re]=X[pe]=X[Je]=X[ut]=X[he]=X[Be]=X[K]=X[k]=X[le]=X[L]=X[ce]=X[re]=X[On]=X[Te]=X[Pn]=X[wn]=X[Z]=X[de]=X[Se]=X[bn]=!0,X[P]=X[O]=X[Tn]=!1;var Ic={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Oc={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Tc={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},Pc={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Cc=parseFloat,Rc=parseInt,xu=typeof global=="object"&&global&&global.Object===Object&&global,Mc=typeof self=="object"&&self&&self.Object===Object&&self,_e=xu||Mc||Function("return this")(),vi=typeof Lo=="object"&&Lo&&!Lo.nodeType&&Lo,ct=vi&&typeof Ra=="object"&&Ra&&!Ra.nodeType&&Ra,Eu=ct&&ct.exports===vi,mi=Eu&&xu.process,Ye=function(){try{var h=ct&&ct.require&&ct.require("util").types;return h||mi&&mi.binding&&mi.binding("util")}catch{}}(),Iu=Ye&&Ye.isArrayBuffer,Ou=Ye&&Ye.isDate,Tu=Ye&&Ye.isMap,Pu=Ye&&Ye.isRegExp,Cu=Ye&&Ye.isSet,Ru=Ye&&Ye.isTypedArray;function Ge(h,v,y){switch(y.length){case 0:return h.call(v);case 1:return h.call(v,y[0]);case 2:return h.call(v,y[0],y[1]);case 3:return h.call(v,y[0],y[1],y[2])}return h.apply(v,y)}function Nc(h,v,y,I){for(var B=-1,j=h==null?0:h.length;++B<j;){var ge=h[B];v(I,ge,y(ge),h)}return I}function Xe(h,v){for(var y=-1,I=h==null?0:h.length;++y<I&&v(h[y],y,h)!==!1;);return h}function Fc(h,v){for(var y=h==null?0:h.length;y--&&v(h[y],y,h)!==!1;);return h}function Mu(h,v){for(var y=-1,I=h==null?0:h.length;++y<I;)if(!v(h[y],y,h))return!1;return!0}function jn(h,v){for(var y=-1,I=h==null?0:h.length,B=0,j=[];++y<I;){var ge=h[y];v(ge,y,h)&&(j[B++]=ge)}return j}function yr(h,v){var y=h==null?0:h.length;return!!y&&Et(h,v,0)>-1}function _i(h,v,y){for(var I=-1,B=h==null?0:h.length;++I<B;)if(y(v,h[I]))return!0;return!1}function ne(h,v){for(var y=-1,I=h==null?0:h.length,B=Array(I);++y<I;)B[y]=v(h[y],y,h);return B}function Jn(h,v){for(var y=-1,I=v.length,B=h.length;++y<I;)h[B+y]=v[y];return h}function wi(h,v,y,I){var B=-1,j=h==null?0:h.length;for(I&&j&&(y=h[++B]);++B<j;)y=v(y,h[B],B,h);return y}function Lc(h,v,y,I){var B=h==null?0:h.length;for(I&&B&&(y=h[--B]);B--;)y=v(y,h[B],B,h);return y}function bi(h,v){for(var y=-1,I=h==null?0:h.length;++y<I;)if(v(h[y],y,h))return!0;return!1}var Bc=Ai("length");function Dc(h){return h.split("")}function Wc(h){return h.match(Kf)||[]}function Nu(h,v,y){var I;return y(h,function(B,j,ge){if(v(B,j,ge))return I=j,!1}),I}function vr(h,v,y,I){for(var B=h.length,j=y+(I?1:-1);I?j--:++j<B;)if(v(h[j],j,h))return j;return-1}function Et(h,v,y){return v===v?Zc(h,v,y):vr(h,Fu,y)}function Uc(h,v,y,I){for(var B=y-1,j=h.length;++B<j;)if(I(h[B],v))return B;return-1}function Fu(h){return h!==h}function Lu(h,v){var y=h==null?0:h.length;return y?xi(h,v)/y:wt}function Ai(h){return function(v){return v==null?r:v[h]}}function Si(h){return function(v){return h==null?r:h[v]}}function Bu(h,v,y,I,B){return B(h,function(j,ge,Y){y=I?(I=!1,j):v(y,j,ge,Y)}),y}function kc(h,v){var y=h.length;for(h.sort(v);y--;)h[y]=h[y].value;return h}function xi(h,v){for(var y,I=-1,B=h.length;++I<B;){var j=v(h[I]);j!==r&&(y=y===r?j:y+j)}return y}function Ei(h,v){for(var y=-1,I=Array(h);++y<h;)I[y]=v(y);return I}function $c(h,v){return ne(v,function(y){return[y,h[y]]})}function Du(h){return h&&h.slice(0,$u(h)+1).replace(ln,"")}function He(h){return function(v){return h(v)}}function Ii(h,v){return ne(v,function(y){return h[y]})}function zt(h,v){return h.has(v)}function Wu(h,v){for(var y=-1,I=h.length;++y<I&&Et(v,h[y],0)>-1;);return y}function Uu(h,v){for(var y=h.length;y--&&Et(v,h[y],0)>-1;);return y}function Gc(h,v){for(var y=h.length,I=0;y--;)h[y]===v&&++I;return I}var Hc=Si(Ic),zc=Si(Oc);function qc(h){return"\\"+Pc[h]}function Kc(h,v){return h==null?r:h[v]}function It(h){return Ac.test(h)}function jc(h){return Sc.test(h)}function Jc(h){for(var v,y=[];!(v=h.next()).done;)y.push(v.value);return y}function Oi(h){var v=-1,y=Array(h.size);return h.forEach(function(I,B){y[++v]=[B,I]}),y}function ku(h,v){return function(y){return h(v(y))}}function Vn(h,v){for(var y=-1,I=h.length,B=0,j=[];++y<I;){var ge=h[y];(ge===v||ge===N)&&(h[y]=N,j[B++]=y)}return j}function mr(h){var v=-1,y=Array(h.size);return h.forEach(function(I){y[++v]=I}),y}function Vc(h){var v=-1,y=Array(h.size);return h.forEach(function(I){y[++v]=[I,I]}),y}function Zc(h,v,y){for(var I=y-1,B=h.length;++I<B;)if(h[I]===v)return I;return-1}function Yc(h,v,y){for(var I=y+1;I--;)if(h[I]===v)return I;return I}function Ot(h){return It(h)?Qc(h):Bc(h)}function pn(h){return It(h)?el(h):Dc(h)}function $u(h){for(var v=h.length;v--&&sr.test(h.charAt(v)););return v}var Xc=Si(Tc);function Qc(h){for(var v=yi.lastIndex=0;yi.test(h);)++v;return v}function el(h){return h.match(yi)||[]}function nl(h){return h.match(bc)||[]}var tl=function h(v){v=v==null?_e:Zn.defaults(_e.Object(),v,Zn.pick(_e,xc));var y=v.Array,I=v.Date,B=v.Error,j=v.Function,ge=v.Math,Y=v.Object,Ti=v.RegExp,rl=v.String,Qe=v.TypeError,_r=y.prototype,il=j.prototype,Tt=Y.prototype,wr=v["__core-js_shared__"],br=il.toString,V=Tt.hasOwnProperty,ol=0,Gu=function(){var e=/[^.]+$/.exec(wr&&wr.keys&&wr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Ar=Tt.toString,ul=br.call(Y),sl=_e._,al=Ti("^"+br.call(V).replace(Ht,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Sr=Eu?v.Buffer:r,Yn=v.Symbol,xr=v.Uint8Array,Hu=Sr?Sr.allocUnsafe:r,Er=ku(Y.getPrototypeOf,Y),zu=Y.create,qu=Tt.propertyIsEnumerable,Ir=_r.splice,Ku=Yn?Yn.isConcatSpreadable:r,qt=Yn?Yn.iterator:r,lt=Yn?Yn.toStringTag:r,Or=function(){try{var e=yt(Y,"defineProperty");return e({},"",{}),e}catch{}}(),fl=v.clearTimeout!==_e.clearTimeout&&v.clearTimeout,cl=I&&I.now!==_e.Date.now&&I.now,ll=v.setTimeout!==_e.setTimeout&&v.setTimeout,Tr=ge.ceil,Pr=ge.floor,Pi=Y.getOwnPropertySymbols,pl=Sr?Sr.isBuffer:r,ju=v.isFinite,hl=_r.join,dl=ku(Y.keys,Y),ye=ge.max,Pe=ge.min,gl=I.now,yl=v.parseInt,Ju=ge.random,vl=_r.reverse,Ci=yt(v,"DataView"),Kt=yt(v,"Map"),Ri=yt(v,"Promise"),Pt=yt(v,"Set"),jt=yt(v,"WeakMap"),Jt=yt(Y,"create"),Cr=jt&&new jt,Ct={},ml=vt(Ci),_l=vt(Kt),wl=vt(Ri),bl=vt(Pt),Al=vt(jt),Rr=Yn?Yn.prototype:r,Vt=Rr?Rr.valueOf:r,Vu=Rr?Rr.toString:r;function s(e){if(oe(e)&&!D(e)&&!(e instanceof H)){if(e instanceof en)return e;if(V.call(e,"__wrapped__"))return Zs(e)}return new en(e)}var Rt=function(){function e(){}return function(n){if(!ie(n))return{};if(zu)return zu(n);e.prototype=n;var t=new e;return e.prototype=r,t}}();function Mr(){}function en(e,n){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=r}s.templateSettings={escape:at,evaluate:Ze,interpolate:Gn,variable:"",imports:{_:s}},s.prototype=Mr.prototype,s.prototype.constructor=s,en.prototype=Rt(Mr.prototype),en.prototype.constructor=en;function H(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Ve,this.__views__=[]}function Sl(){var e=new H(this.__wrapped__);return e.__actions__=De(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=De(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=De(this.__views__),e}function xl(){if(this.__filtered__){var e=new H(this);e.__dir__=-1,e.__filtered__=!0}else e=this.clone(),e.__dir__*=-1;return e}function El(){var e=this.__wrapped__.value(),n=this.__dir__,t=D(e),i=n<0,u=t?e.length:0,f=Dp(0,u,this.__views__),c=f.start,l=f.end,d=l-c,m=i?l:c-1,_=this.__iteratees__,w=_.length,S=0,T=Pe(d,this.__takeCount__);if(!t||!i&&u==d&&T==d)return _s(e,this.__actions__);var R=[];e:for(;d--&&S<T;){m+=n;for(var U=-1,M=e[m];++U<w;){var G=_[U],z=G.iteratee,Ke=G.type,Fe=z(M);if(Ke==oi)M=Fe;else if(!Fe){if(Ke==fr)continue e;break e}}R[S++]=M}return R}H.prototype=Rt(Mr.prototype),H.prototype.constructor=H;function pt(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var i=e[n];this.set(i[0],i[1])}}function Il(){this.__data__=Jt?Jt(null):{},this.size=0}function Ol(e){var n=this.has(e)&&delete this.__data__[e];return this.size-=n?1:0,n}function Tl(e){var n=this.__data__;if(Jt){var t=n[e];return t===A?r:t}return V.call(n,e)?n[e]:r}function Pl(e){var n=this.__data__;return Jt?n[e]!==r:V.call(n,e)}function Cl(e,n){var t=this.__data__;return this.size+=this.has(e)?0:1,t[e]=Jt&&n===r?A:n,this}pt.prototype.clear=Il,pt.prototype.delete=Ol,pt.prototype.get=Tl,pt.prototype.has=Pl,pt.prototype.set=Cl;function Rn(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var i=e[n];this.set(i[0],i[1])}}function Rl(){this.__data__=[],this.size=0}function Ml(e){var n=this.__data__,t=Nr(n,e);if(t<0)return!1;var i=n.length-1;return t==i?n.pop():Ir.call(n,t,1),--this.size,!0}function Nl(e){var n=this.__data__,t=Nr(n,e);return t<0?r:n[t][1]}function Fl(e){return Nr(this.__data__,e)>-1}function Ll(e,n){var t=this.__data__,i=Nr(t,e);return i<0?(++this.size,t.push([e,n])):t[i][1]=n,this}Rn.prototype.clear=Rl,Rn.prototype.delete=Ml,Rn.prototype.get=Nl,Rn.prototype.has=Fl,Rn.prototype.set=Ll;function Mn(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var i=e[n];this.set(i[0],i[1])}}function Bl(){this.size=0,this.__data__={hash:new pt,map:new(Kt||Rn),string:new pt}}function Dl(e){var n=qr(this,e).delete(e);return this.size-=n?1:0,n}function Wl(e){return qr(this,e).get(e)}function Ul(e){return qr(this,e).has(e)}function kl(e,n){var t=qr(this,e),i=t.size;return t.set(e,n),this.size+=t.size==i?0:1,this}Mn.prototype.clear=Bl,Mn.prototype.delete=Dl,Mn.prototype.get=Wl,Mn.prototype.has=Ul,Mn.prototype.set=kl;function ht(e){var n=-1,t=e==null?0:e.length;for(this.__data__=new Mn;++n<t;)this.add(e[n])}function $l(e){return this.__data__.set(e,A),this}function Gl(e){return this.__data__.has(e)}ht.prototype.add=ht.prototype.push=$l,ht.prototype.has=Gl;function hn(e){var n=this.__data__=new Rn(e);this.size=n.size}function Hl(){this.__data__=new Rn,this.size=0}function zl(e){var n=this.__data__,t=n.delete(e);return this.size=n.size,t}function ql(e){return this.__data__.get(e)}function Kl(e){return this.__data__.has(e)}function jl(e,n){var t=this.__data__;if(t instanceof Rn){var i=t.__data__;if(!Kt||i.length<a-1)return i.push([e,n]),this.size=++t.size,this;t=this.__data__=new Mn(i)}return t.set(e,n),this.size=t.size,this}hn.prototype.clear=Hl,hn.prototype.delete=zl,hn.prototype.get=ql,hn.prototype.has=Kl,hn.prototype.set=jl;function Zu(e,n){var t=D(e),i=!t&&mt(e),u=!t&&!i&&tt(e),f=!t&&!i&&!u&&Lt(e),c=t||i||u||f,l=c?Ei(e.length,rl):[],d=l.length;for(var m in e)(n||V.call(e,m))&&!(c&&(m=="length"||u&&(m=="offset"||m=="parent")||f&&(m=="buffer"||m=="byteLength"||m=="byteOffset")||Bn(m,d)))&&l.push(m);return l}function Yu(e){var n=e.length;return n?e[Gi(0,n-1)]:r}function Jl(e,n){return Kr(De(e),dt(n,0,e.length))}function Vl(e){return Kr(De(e))}function Mi(e,n,t){(t!==r&&!dn(e[n],t)||t===r&&!(n in e))&&Nn(e,n,t)}function Zt(e,n,t){var i=e[n];(!(V.call(e,n)&&dn(i,t))||t===r&&!(n in e))&&Nn(e,n,t)}function Nr(e,n){for(var t=e.length;t--;)if(dn(e[t][0],n))return t;return-1}function Zl(e,n,t,i){return Xn(e,function(u,f,c){n(i,u,t(u),c)}),i}function Xu(e,n){return e&&En(n,we(n),e)}function Yl(e,n){return e&&En(n,Ue(n),e)}function Nn(e,n,t){n=="__proto__"&&Or?Or(e,n,{configurable:!0,enumerable:!0,value:t,writable:!0}):e[n]=t}function Ni(e,n){for(var t=-1,i=n.length,u=y(i),f=e==null;++t<i;)u[t]=f?r:ho(e,n[t]);return u}function dt(e,n,t){return e===e&&(t!==r&&(e=e<=t?e:t),n!==r&&(e=e>=n?e:n)),e}function nn(e,n,t,i,u,f){var c,l=n&q,d=n&ve,m=n&Le;if(t&&(c=u?t(e,i,u,f):t(e)),c!==r)return c;if(!ie(e))return e;var _=D(e);if(_){if(c=Up(e),!l)return De(e,c)}else{var w=Ce(e),S=w==O||w==F;if(tt(e))return As(e,l);if(w==re||w==ot||S&&!u){if(c=d||S?{}:$s(e),!l)return d?Tp(e,Yl(c,e)):Op(e,Xu(c,e))}else{if(!X[w])return u?e:{};c=kp(e,w,l)}}f||(f=new hn);var T=f.get(e);if(T)return T;f.set(e,c),ya(e)?e.forEach(function(M){c.add(nn(M,n,t,M,e,f))}):da(e)&&e.forEach(function(M,G){c.set(G,nn(M,n,t,G,e,f))});var R=m?d?Qi:Xi:d?Ue:we,U=_?r:R(e);return Xe(U||e,function(M,G){U&&(G=M,M=e[G]),Zt(c,G,nn(M,n,t,G,e,f))}),c}function Xl(e){var n=we(e);return function(t){return Qu(t,e,n)}}function Qu(e,n,t){var i=t.length;if(e==null)return!i;for(e=Y(e);i--;){var u=t[i],f=n[u],c=e[u];if(c===r&&!(u in e)||!f(c))return!1}return!0}function es(e,n,t){if(typeof e!="function")throw new Qe(g);return rr(function(){e.apply(r,t)},n)}function Yt(e,n,t,i){var u=-1,f=yr,c=!0,l=e.length,d=[],m=n.length;if(!l)return d;t&&(n=ne(n,He(t))),i?(f=_i,c=!1):n.length>=a&&(f=zt,c=!1,n=new ht(n));e:for(;++u<l;){var _=e[u],w=t==null?_:t(_);if(_=i||_!==0?_:0,c&&w===w){for(var S=m;S--;)if(n[S]===w)continue e;d.push(_)}else f(n,w,i)||d.push(_)}return d}var Xn=Os(xn),ns=Os(Li,!0);function Ql(e,n){var t=!0;return Xn(e,function(i,u,f){return t=!!n(i,u,f),t}),t}function Fr(e,n,t){for(var i=-1,u=e.length;++i<u;){var f=e[i],c=n(f);if(c!=null&&(l===r?c===c&&!qe(c):t(c,l)))var l=c,d=f}return d}function ep(e,n,t,i){var u=e.length;for(t=W(t),t<0&&(t=-t>u?0:u+t),i=i===r||i>u?u:W(i),i<0&&(i+=u),i=t>i?0:ma(i);t<i;)e[t++]=n;return e}function ts(e,n){var t=[];return Xn(e,function(i,u,f){n(i,u,f)&&t.push(i)}),t}function Ie(e,n,t,i,u){var f=-1,c=e.length;for(t||(t=Gp),u||(u=[]);++f<c;){var l=e[f];n>0&&t(l)?n>1?Ie(l,n-1,t,i,u):Jn(u,l):i||(u[u.length]=l)}return u}var Fi=Ts(),rs=Ts(!0);function xn(e,n){return e&&Fi(e,n,we)}function Li(e,n){return e&&rs(e,n,we)}function Lr(e,n){return jn(n,function(t){return Dn(e[t])})}function gt(e,n){n=et(n,e);for(var t=0,i=n.length;e!=null&&t<i;)e=e[In(n[t++])];return t&&t==i?e:r}function is(e,n,t){var i=n(e);return D(e)?i:Jn(i,t(e))}function Me(e){return e==null?e===r?ur:vn:lt&&lt in Y(e)?Bp(e):Vp(e)}function Bi(e,n){return e>n}function np(e,n){return e!=null&&V.call(e,n)}function tp(e,n){return e!=null&&n in Y(e)}function rp(e,n,t){return e>=Pe(n,t)&&e<ye(n,t)}function Di(e,n,t){for(var i=t?_i:yr,u=e[0].length,f=e.length,c=f,l=y(f),d=1/0,m=[];c--;){var _=e[c];c&&n&&(_=ne(_,He(n))),d=Pe(_.length,d),l[c]=!t&&(n||u>=120&&_.length>=120)?new ht(c&&_):r}_=e[0];var w=-1,S=l[0];e:for(;++w<u&&m.length<d;){var T=_[w],R=n?n(T):T;if(T=t||T!==0?T:0,!(S?zt(S,R):i(m,R,t))){for(c=f;--c;){var U=l[c];if(!(U?zt(U,R):i(e[c],R,t)))continue e}S&&S.push(R),m.push(T)}}return m}function ip(e,n,t,i){return xn(e,function(u,f,c){n(i,t(u),f,c)}),i}function Xt(e,n,t){n=et(n,e),e=qs(e,n);var i=e==null?e:e[In(rn(n))];return i==null?r:Ge(i,e,t)}function os(e){return oe(e)&&Me(e)==ot}function op(e){return oe(e)&&Me(e)==Re}function up(e){return oe(e)&&Me(e)==ut}function Qt(e,n,t,i,u){return e===n?!0:e==null||n==null||!oe(e)&&!oe(n)?e!==e&&n!==n:sp(e,n,t,i,Qt,u)}function sp(e,n,t,i,u,f){var c=D(e),l=D(n),d=c?Gt:Ce(e),m=l?Gt:Ce(n);d=d==ot?re:d,m=m==ot?re:m;var _=d==re,w=m==re,S=d==m;if(S&&tt(e)){if(!tt(n))return!1;c=!0,_=!1}if(S&&!_)return f||(f=new hn),c||Lt(e)?Ws(e,n,t,i,u,f):Fp(e,n,d,t,i,u,f);if(!(t&Oe)){var T=_&&V.call(e,"__wrapped__"),R=w&&V.call(n,"__wrapped__");if(T||R){var U=T?e.value():e,M=R?n.value():n;return f||(f=new hn),u(U,M,t,i,f)}}return S?(f||(f=new hn),Lp(e,n,t,i,u,f)):!1}function ap(e){return oe(e)&&Ce(e)==L}function Wi(e,n,t,i){var u=t.length,f=u,c=!i;if(e==null)return!f;for(e=Y(e);u--;){var l=t[u];if(c&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++u<f;){l=t[u];var d=l[0],m=e[d],_=l[1];if(c&&l[2]){if(m===r&&!(d in e))return!1}else{var w=new hn;if(i)var S=i(m,_,d,e,n,w);if(!(S===r?Qt(_,m,Oe|sn,i,w):S))return!1}}return!0}function us(e){if(!ie(e)||zp(e))return!1;var n=Dn(e)?al:Xf;return n.test(vt(e))}function fp(e){return oe(e)&&Me(e)==On}function cp(e){return oe(e)&&Ce(e)==Te}function lp(e){return oe(e)&&Xr(e.length)&&!!Q[Me(e)]}function ss(e){return typeof e=="function"?e:e==null?ke:typeof e=="object"?D(e)?cs(e[0],e[1]):fs(e):Pa(e)}function Ui(e){if(!tr(e))return dl(e);var n=[];for(var t in Y(e))V.call(e,t)&&t!="constructor"&&n.push(t);return n}function pp(e){if(!ie(e))return Jp(e);var n=tr(e),t=[];for(var i in e)i=="constructor"&&(n||!V.call(e,i))||t.push(i);return t}function ki(e,n){return e<n}function as(e,n){var t=-1,i=We(e)?y(e.length):[];return Xn(e,function(u,f,c){i[++t]=n(u,f,c)}),i}function fs(e){var n=no(e);return n.length==1&&n[0][2]?Hs(n[0][0],n[0][1]):function(t){return t===e||Wi(t,e,n)}}function cs(e,n){return ro(e)&&Gs(n)?Hs(In(e),n):function(t){var i=ho(t,e);return i===r&&i===n?go(t,e):Qt(n,i,Oe|sn)}}function Br(e,n,t,i,u){e!==n&&Fi(n,function(f,c){if(u||(u=new hn),ie(f))hp(e,n,c,t,Br,i,u);else{var l=i?i(oo(e,c),f,c+"",e,n,u):r;l===r&&(l=f),Mi(e,c,l)}},Ue)}function hp(e,n,t,i,u,f,c){var l=oo(e,t),d=oo(n,t),m=c.get(d);if(m){Mi(e,t,m);return}var _=f?f(l,d,t+"",e,n,c):r,w=_===r;if(w){var S=D(d),T=!S&&tt(d),R=!S&&!T&&Lt(d);_=d,S||T||R?D(l)?_=l:ae(l)?_=De(l):T?(w=!1,_=As(d,!0)):R?(w=!1,_=Ss(d,!0)):_=[]:ir(d)||mt(d)?(_=l,mt(l)?_=_a(l):(!ie(l)||Dn(l))&&(_=$s(d))):w=!1}w&&(c.set(d,_),u(_,d,i,f,c),c.delete(d)),Mi(e,t,_)}function ls(e,n){var t=e.length;if(t)return n+=n<0?t:0,Bn(n,t)?e[n]:r}function ps(e,n,t){n.length?n=ne(n,function(f){return D(f)?function(c){return gt(c,f.length===1?f[0]:f)}:f}):n=[ke];var i=-1;n=ne(n,He(C()));var u=as(e,function(f,c,l){var d=ne(n,function(m){return m(f)});return{criteria:d,index:++i,value:f}});return kc(u,function(f,c){return Ip(f,c,t)})}function dp(e,n){return hs(e,n,function(t,i){return go(e,i)})}function hs(e,n,t){for(var i=-1,u=n.length,f={};++i<u;){var c=n[i],l=gt(e,c);t(l,c)&&er(f,et(c,e),l)}return f}function gp(e){return function(n){return gt(n,e)}}function $i(e,n,t,i){var u=i?Uc:Et,f=-1,c=n.length,l=e;for(e===n&&(n=De(n)),t&&(l=ne(e,He(t)));++f<c;)for(var d=0,m=n[f],_=t?t(m):m;(d=u(l,_,d,i))>-1;)l!==e&&Ir.call(l,d,1),Ir.call(e,d,1);return e}function ds(e,n){for(var t=e?n.length:0,i=t-1;t--;){var u=n[t];if(t==i||u!==f){var f=u;Bn(u)?Ir.call(e,u,1):qi(e,u)}}return e}function Gi(e,n){return e+Pr(Ju()*(n-e+1))}function yp(e,n,t,i){for(var u=-1,f=ye(Tr((n-e)/(t||1)),0),c=y(f);f--;)c[i?f:++u]=e,e+=t;return c}function Hi(e,n){var t="";if(!e||n<1||n>_n)return t;do n%2&&(t+=e),n=Pr(n/2),n&&(e+=e);while(n);return t}function $(e,n){return uo(zs(e,n,ke),e+"")}function vp(e){return Yu(Bt(e))}function mp(e,n){var t=Bt(e);return Kr(t,dt(n,0,t.length))}function er(e,n,t,i){if(!ie(e))return e;n=et(n,e);for(var u=-1,f=n.length,c=f-1,l=e;l!=null&&++u<f;){var d=In(n[u]),m=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return e;if(u!=c){var _=l[d];m=i?i(_,d,l):r,m===r&&(m=ie(_)?_:Bn(n[u+1])?[]:{})}Zt(l,d,m),l=l[d]}return e}var gs=Cr?function(e,n){return Cr.set(e,n),e}:ke,_p=Or?function(e,n){return Or(e,"toString",{configurable:!0,enumerable:!1,value:vo(n),writable:!0})}:ke;function wp(e){return Kr(Bt(e))}function tn(e,n,t){var i=-1,u=e.length;n<0&&(n=-n>u?0:u+n),t=t>u?u:t,t<0&&(t+=u),u=n>t?0:t-n>>>0,n>>>=0;for(var f=y(u);++i<u;)f[i]=e[i+n];return f}function bp(e,n){var t;return Xn(e,function(i,u,f){return t=n(i,u,f),!t}),!!t}function Dr(e,n,t){var i=0,u=e==null?i:e.length;if(typeof n=="number"&&n===n&&u<=li){for(;i<u;){var f=i+u>>>1,c=e[f];c!==null&&!qe(c)&&(t?c<=n:c<n)?i=f+1:u=f}return u}return zi(e,n,ke,t)}function zi(e,n,t,i){var u=0,f=e==null?0:e.length;if(f===0)return 0;n=t(n);for(var c=n!==n,l=n===null,d=qe(n),m=n===r;u<f;){var _=Pr((u+f)/2),w=t(e[_]),S=w!==r,T=w===null,R=w===w,U=qe(w);if(c)var M=i||R;else m?M=R&&(i||S):l?M=R&&S&&(i||!T):d?M=R&&S&&!T&&(i||!U):T||U?M=!1:M=i?w<=n:w<n;M?u=_+1:f=_}return Pe(f,lr)}function ys(e,n){for(var t=-1,i=e.length,u=0,f=[];++t<i;){var c=e[t],l=n?n(c):c;if(!t||!dn(l,d)){var d=l;f[u++]=c===0?0:c}}return f}function vs(e){return typeof e=="number"?e:qe(e)?wt:+e}function ze(e){if(typeof e=="string")return e;if(D(e))return ne(e,ze)+"";if(qe(e))return Vu?Vu.call(e):"";var n=e+"";return n=="0"&&1/e==-mn?"-0":n}function Qn(e,n,t){var i=-1,u=yr,f=e.length,c=!0,l=[],d=l;if(t)c=!1,u=_i;else if(f>=a){var m=n?null:Mp(e);if(m)return mr(m);c=!1,u=zt,d=new ht}else d=n?[]:l;e:for(;++i<f;){var _=e[i],w=n?n(_):_;if(_=t||_!==0?_:0,c&&w===w){for(var S=d.length;S--;)if(d[S]===w)continue e;n&&d.push(w),l.push(_)}else u(d,w,t)||(d!==l&&d.push(w),l.push(_))}return l}function qi(e,n){return n=et(n,e),e=qs(e,n),e==null||delete e[In(rn(n))]}function ms(e,n,t,i){return er(e,n,t(gt(e,n)),i)}function Wr(e,n,t,i){for(var u=e.length,f=i?u:-1;(i?f--:++f<u)&&n(e[f],f,e););return t?tn(e,i?0:f,i?f+1:u):tn(e,i?f+1:0,i?u:f)}function _s(e,n){var t=e;return t instanceof H&&(t=t.value()),wi(n,function(i,u){return u.func.apply(u.thisArg,Jn([i],u.args))},t)}function Ki(e,n,t){var i=e.length;if(i<2)return i?Qn(e[0]):[];for(var u=-1,f=y(i);++u<i;)for(var c=e[u],l=-1;++l<i;)l!=u&&(f[u]=Yt(f[u]||c,e[l],n,t));return Qn(Ie(f,1),n,t)}function ws(e,n,t){for(var i=-1,u=e.length,f=n.length,c={};++i<u;){var l=i<f?n[i]:r;t(c,e[i],l)}return c}function ji(e){return ae(e)?e:[]}function Ji(e){return typeof e=="function"?e:ke}function et(e,n){return D(e)?e:ro(e,n)?[e]:Vs(J(e))}var Ap=$;function nt(e,n,t){var i=e.length;return t=t===r?i:t,!n&&t>=i?e:tn(e,n,t)}var bs=fl||function(e){return _e.clearTimeout(e)};function As(e,n){if(n)return e.slice();var t=e.length,i=Hu?Hu(t):new e.constructor(t);return e.copy(i),i}function Vi(e){var n=new e.constructor(e.byteLength);return new xr(n).set(new xr(e)),n}function Sp(e,n){var t=n?Vi(e.buffer):e.buffer;return new e.constructor(t,e.byteOffset,e.byteLength)}function xp(e){var n=new e.constructor(e.source,ou.exec(e));return n.lastIndex=e.lastIndex,n}function Ep(e){return Vt?Y(Vt.call(e)):{}}function Ss(e,n){var t=n?Vi(e.buffer):e.buffer;return new e.constructor(t,e.byteOffset,e.length)}function xs(e,n){if(e!==n){var t=e!==r,i=e===null,u=e===e,f=qe(e),c=n!==r,l=n===null,d=n===n,m=qe(n);if(!l&&!m&&!f&&e>n||f&&c&&d&&!l&&!m||i&&c&&d||!t&&d||!u)return 1;if(!i&&!f&&!m&&e<n||m&&t&&u&&!i&&!f||l&&t&&u||!c&&u||!d)return-1}return 0}function Ip(e,n,t){for(var i=-1,u=e.criteria,f=n.criteria,c=u.length,l=t.length;++i<c;){var d=xs(u[i],f[i]);if(d){if(i>=l)return d;var m=t[i];return d*(m=="desc"?-1:1)}}return e.index-n.index}function Es(e,n,t,i){for(var u=-1,f=e.length,c=t.length,l=-1,d=n.length,m=ye(f-c,0),_=y(d+m),w=!i;++l<d;)_[l]=n[l];for(;++u<c;)(w||u<f)&&(_[t[u]]=e[u]);for(;m--;)_[l++]=e[u++];return _}function Is(e,n,t,i){for(var u=-1,f=e.length,c=-1,l=t.length,d=-1,m=n.length,_=ye(f-l,0),w=y(_+m),S=!i;++u<_;)w[u]=e[u];for(var T=u;++d<m;)w[T+d]=n[d];for(;++c<l;)(S||u<f)&&(w[T+t[c]]=e[u++]);return w}function De(e,n){var t=-1,i=e.length;for(n||(n=y(i));++t<i;)n[t]=e[t];return n}function En(e,n,t,i){var u=!t;t||(t={});for(var f=-1,c=n.length;++f<c;){var l=n[f],d=i?i(t[l],e[l],l,t,e):r;d===r&&(d=e[l]),u?Nn(t,l,d):Zt(t,l,d)}return t}function Op(e,n){return En(e,to(e),n)}function Tp(e,n){return En(e,Us(e),n)}function Ur(e,n){return function(t,i){var u=D(t)?Nc:Zl,f=n?n():{};return u(t,e,C(i,2),f)}}function Mt(e){return $(function(n,t){var i=-1,u=t.length,f=u>1?t[u-1]:r,c=u>2?t[2]:r;for(f=e.length>3&&typeof f=="function"?(u--,f):r,c&&Ne(t[0],t[1],c)&&(f=u<3?r:f,u=1),n=Y(n);++i<u;){var l=t[i];l&&e(n,l,i,f)}return n})}function Os(e,n){return function(t,i){if(t==null)return t;if(!We(t))return e(t,i);for(var u=t.length,f=n?u:-1,c=Y(t);(n?f--:++f<u)&&i(c[f],f,c)!==!1;);return t}}function Ts(e){return function(n,t,i){for(var u=-1,f=Y(n),c=i(n),l=c.length;l--;){var d=c[e?l:++u];if(t(f[d],d,f)===!1)break}return n}}function Pp(e,n,t){var i=n&me,u=nr(e);function f(){var c=this&&this!==_e&&this instanceof f?u:e;return c.apply(i?t:this,arguments)}return f}function Ps(e){return function(n){n=J(n);var t=It(n)?pn(n):r,i=t?t[0]:n.charAt(0),u=t?nt(t,1).join(""):n.slice(1);return i[e]()+u}}function Nt(e){return function(n){return wi(Oa(Ia(n).replace(_c,"")),e,"")}}function nr(e){return function(){var n=arguments;switch(n.length){case 0:return new e;case 1:return new e(n[0]);case 2:return new e(n[0],n[1]);case 3:return new e(n[0],n[1],n[2]);case 4:return new e(n[0],n[1],n[2],n[3]);case 5:return new e(n[0],n[1],n[2],n[3],n[4]);case 6:return new e(n[0],n[1],n[2],n[3],n[4],n[5]);case 7:return new e(n[0],n[1],n[2],n[3],n[4],n[5],n[6])}var t=Rt(e.prototype),i=e.apply(t,n);return ie(i)?i:t}}function Cp(e,n,t){var i=nr(e);function u(){for(var f=arguments.length,c=y(f),l=f,d=Ft(u);l--;)c[l]=arguments[l];var m=f<3&&c[0]!==d&&c[f-1]!==d?[]:Vn(c,d);if(f-=m.length,f<t)return Fs(e,n,kr,u.placeholder,r,c,m,r,r,t-f);var _=this&&this!==_e&&this instanceof u?i:e;return Ge(_,this,c)}return u}function Cs(e){return function(n,t,i){var u=Y(n);if(!We(n)){var f=C(t,3);n=we(n),t=function(l){return f(u[l],l,u)}}var c=e(n,t,i);return c>-1?u[f?n[c]:c]:r}}function Rs(e){return Ln(function(n){var t=n.length,i=t,u=en.prototype.thru;for(e&&n.reverse();i--;){var f=n[i];if(typeof f!="function")throw new Qe(g);if(u&&!c&&zr(f)=="wrapper")var c=new en([],!0)}for(i=c?i:t;++i<t;){f=n[i];var l=zr(f),d=l=="wrapper"?eo(f):r;d&&io(d[0])&&d[1]==(fn|te|an|_t)&&!d[4].length&&d[9]==1?c=c[zr(d[0])].apply(c,d[3]):c=f.length==1&&io(f)?c[l]():c.thru(f)}return function(){var m=arguments,_=m[0];if(c&&m.length==1&&D(_))return c.plant(_).value();for(var w=0,S=t?n[w].apply(this,m):_;++w<t;)S=n[w].call(this,S);return S}})}function kr(e,n,t,i,u,f,c,l,d,m){var _=n&fn,w=n&me,S=n&yn,T=n&(te|ft),R=n&$t,U=S?r:nr(e);function M(){for(var G=arguments.length,z=y(G),Ke=G;Ke--;)z[Ke]=arguments[Ke];if(T)var Fe=Ft(M),je=Gc(z,Fe);if(i&&(z=Es(z,i,u,T)),f&&(z=Is(z,f,c,T)),G-=je,T&&G<m){var fe=Vn(z,Fe);return Fs(e,n,kr,M.placeholder,t,z,fe,l,d,m-G)}var gn=w?t:this,Un=S?gn[e]:e;return G=z.length,l?z=Zp(z,l):R&&G>1&&z.reverse(),_&&d<G&&(z.length=d),this&&this!==_e&&this instanceof M&&(Un=U||nr(Un)),Un.apply(gn,z)}return M}function Ms(e,n){return function(t,i){return ip(t,e,n(i),{})}}function $r(e,n){return function(t,i){var u;if(t===r&&i===r)return n;if(t!==r&&(u=t),i!==r){if(u===r)return i;typeof t=="string"||typeof i=="string"?(t=ze(t),i=ze(i)):(t=vs(t),i=vs(i)),u=e(t,i)}return u}}function Zi(e){return Ln(function(n){return n=ne(n,He(C())),$(function(t){var i=this;return e(n,function(u){return Ge(u,i,t)})})})}function Gr(e,n){n=n===r?" ":ze(n);var t=n.length;if(t<2)return t?Hi(n,e):n;var i=Hi(n,Tr(e/Ot(n)));return It(n)?nt(pn(i),0,e).join(""):i.slice(0,e)}function Rp(e,n,t,i){var u=n&me,f=nr(e);function c(){for(var l=-1,d=arguments.length,m=-1,_=i.length,w=y(_+d),S=this&&this!==_e&&this instanceof c?f:e;++m<_;)w[m]=i[m];for(;d--;)w[m++]=arguments[++l];return Ge(S,u?t:this,w)}return c}function Ns(e){return function(n,t,i){return i&&typeof i!="number"&&Ne(n,t,i)&&(t=i=r),n=Wn(n),t===r?(t=n,n=0):t=Wn(t),i=i===r?n<t?1:-1:Wn(i),yp(n,t,i,e)}}function Hr(e){return function(n,t){return typeof n=="string"&&typeof t=="string"||(n=on(n),t=on(t)),e(n,t)}}function Fs(e,n,t,i,u,f,c,l,d,m){var _=n&te,w=_?c:r,S=_?r:c,T=_?f:r,R=_?r:f;n|=_?an:it,n&=~(_?it:an),n&fi||(n&=~(me|yn));var U=[e,n,u,T,w,R,S,l,d,m],M=t.apply(r,U);return io(e)&&Ks(M,U),M.placeholder=i,js(M,e,n)}function Yi(e){var n=ge[e];return function(t,i){if(t=on(t),i=i==null?0:Pe(W(i),292),i&&ju(t)){var u=(J(t)+"e").split("e"),f=n(u[0]+"e"+(+u[1]+i));return u=(J(f)+"e").split("e"),+(u[0]+"e"+(+u[1]-i))}return n(t)}}var Mp=Pt&&1/mr(new Pt([,-0]))[1]==mn?function(e){return new Pt(e)}:wo;function Ls(e){return function(n){var t=Ce(n);return t==L?Oi(n):t==Te?Vc(n):$c(n,e(n))}}function Fn(e,n,t,i,u,f,c,l){var d=n&yn;if(!d&&typeof e!="function")throw new Qe(g);var m=i?i.length:0;if(m||(n&=~(an|it),i=u=r),c=c===r?c:ye(W(c),0),l=l===r?l:W(l),m-=u?u.length:0,n&it){var _=i,w=u;i=u=r}var S=d?r:eo(e),T=[e,n,t,i,u,_,w,f,c,l];if(S&&jp(T,S),e=T[0],n=T[1],t=T[2],i=T[3],u=T[4],l=T[9]=T[9]===r?d?0:e.length:ye(T[9]-m,0),!l&&n&(te|ft)&&(n&=~(te|ft)),!n||n==me)var R=Pp(e,n,t);else n==te||n==ft?R=Cp(e,n,l):(n==an||n==(me|an))&&!u.length?R=Rp(e,n,t,i):R=kr.apply(r,T);var U=S?gs:Ks;return js(U(R,T),e,n)}function Bs(e,n,t,i){return e===r||dn(e,Tt[t])&&!V.call(i,t)?n:e}function Ds(e,n,t,i,u,f){return ie(e)&&ie(n)&&(f.set(n,e),Br(e,n,r,Ds,f),f.delete(n)),e}function Np(e){return ir(e)?r:e}function Ws(e,n,t,i,u,f){var c=t&Oe,l=e.length,d=n.length;if(l!=d&&!(c&&d>l))return!1;var m=f.get(e),_=f.get(n);if(m&&_)return m==n&&_==e;var w=-1,S=!0,T=t&sn?new ht:r;for(f.set(e,n),f.set(n,e);++w<l;){var R=e[w],U=n[w];if(i)var M=c?i(U,R,w,n,e,f):i(R,U,w,e,n,f);if(M!==r){if(M)continue;S=!1;break}if(T){if(!bi(n,function(G,z){if(!zt(T,z)&&(R===G||u(R,G,t,i,f)))return T.push(z)})){S=!1;break}}else if(!(R===U||u(R,U,t,i,f))){S=!1;break}}return f.delete(e),f.delete(n),S}function Fp(e,n,t,i,u,f,c){switch(t){case pe:if(e.byteLength!=n.byteLength||e.byteOffset!=n.byteOffset)return!1;e=e.buffer,n=n.buffer;case Re:return!(e.byteLength!=n.byteLength||!f(new xr(e),new xr(n)));case Je:case ut:case ce:return dn(+e,+n);case P:return e.name==n.name&&e.message==n.message;case On:case Pn:return e==n+"";case L:var l=Oi;case Te:var d=i&Oe;if(l||(l=mr),e.size!=n.size&&!d)return!1;var m=c.get(e);if(m)return m==n;i|=sn,c.set(e,n);var _=Ws(l(e),l(n),i,u,f,c);return c.delete(e),_;case wn:if(Vt)return Vt.call(e)==Vt.call(n)}return!1}function Lp(e,n,t,i,u,f){var c=t&Oe,l=Xi(e),d=l.length,m=Xi(n),_=m.length;if(d!=_&&!c)return!1;for(var w=d;w--;){var S=l[w];if(!(c?S in n:V.call(n,S)))return!1}var T=f.get(e),R=f.get(n);if(T&&R)return T==n&&R==e;var U=!0;f.set(e,n),f.set(n,e);for(var M=c;++w<d;){S=l[w];var G=e[S],z=n[S];if(i)var Ke=c?i(z,G,S,n,e,f):i(G,z,S,e,n,f);if(!(Ke===r?G===z||u(G,z,t,i,f):Ke)){U=!1;break}M||(M=S=="constructor")}if(U&&!M){var Fe=e.constructor,je=n.constructor;Fe!=je&&"constructor"in e&&"constructor"in n&&!(typeof Fe=="function"&&Fe instanceof Fe&&typeof je=="function"&&je instanceof je)&&(U=!1)}return f.delete(e),f.delete(n),U}function Ln(e){return uo(zs(e,r,Qs),e+"")}function Xi(e){return is(e,we,to)}function Qi(e){return is(e,Ue,Us)}var eo=Cr?function(e){return Cr.get(e)}:wo;function zr(e){for(var n=e.name+"",t=Ct[n],i=V.call(Ct,n)?t.length:0;i--;){var u=t[i],f=u.func;if(f==null||f==e)return u.name}return n}function Ft(e){var n=V.call(s,"placeholder")?s:e;return n.placeholder}function C(){var e=s.iteratee||mo;return e=e===mo?ss:e,arguments.length?e(arguments[0],arguments[1]):e}function qr(e,n){var t=e.__data__;return Hp(n)?t[typeof n=="string"?"string":"hash"]:t.map}function no(e){for(var n=we(e),t=n.length;t--;){var i=n[t],u=e[i];n[t]=[i,u,Gs(u)]}return n}function yt(e,n){var t=Kc(e,n);return us(t)?t:r}function Bp(e){var n=V.call(e,lt),t=e[lt];try{e[lt]=r;var i=!0}catch{}var u=Ar.call(e);return i&&(n?e[lt]=t:delete e[lt]),u}var to=Pi?function(e){return e==null?[]:(e=Y(e),jn(Pi(e),function(n){return qu.call(e,n)}))}:bo,Us=Pi?function(e){for(var n=[];e;)Jn(n,to(e)),e=Er(e);return n}:bo,Ce=Me;(Ci&&Ce(new Ci(new ArrayBuffer(1)))!=pe||Kt&&Ce(new Kt)!=L||Ri&&Ce(Ri.resolve())!=se||Pt&&Ce(new Pt)!=Te||jt&&Ce(new jt)!=Tn)&&(Ce=function(e){var n=Me(e),t=n==re?e.constructor:r,i=t?vt(t):"";if(i)switch(i){case ml:return pe;case _l:return L;case wl:return se;case bl:return Te;case Al:return Tn}return n});function Dp(e,n,t){for(var i=-1,u=t.length;++i<u;){var f=t[i],c=f.size;switch(f.type){case"drop":e+=c;break;case"dropRight":n-=c;break;case"take":n=Pe(n,e+c);break;case"takeRight":e=ye(e,n-c);break}}return{start:e,end:n}}function Wp(e){var n=e.match(St);return n?n[1].split(qf):[]}function ks(e,n,t){n=et(n,e);for(var i=-1,u=n.length,f=!1;++i<u;){var c=In(n[i]);if(!(f=e!=null&&t(e,c)))break;e=e[c]}return f||++i!=u?f:(u=e==null?0:e.length,!!u&&Xr(u)&&Bn(c,u)&&(D(e)||mt(e)))}function Up(e){var n=e.length,t=new e.constructor(n);return n&&typeof e[0]=="string"&&V.call(e,"index")&&(t.index=e.index,t.input=e.input),t}function $s(e){return typeof e.constructor=="function"&&!tr(e)?Rt(Er(e)):{}}function kp(e,n,t){var i=e.constructor;switch(n){case Re:return Vi(e);case Je:case ut:return new i(+e);case pe:return Sp(e,t);case he:case Be:case K:case k:case le:case Z:case de:case Se:case bn:return Ss(e,t);case L:return new i;case ce:case Pn:return new i(e);case On:return xp(e);case Te:return new i;case wn:return Ep(e)}}function $p(e,n){var t=n.length;if(!t)return e;var i=t-1;return n[i]=(t>1?"& ":"")+n[i],n=n.join(t>2?", ":" "),e.replace(At,`{
/* [wrapped with `+n+`] */
`)}function Gp(e){return D(e)||mt(e)||!!(Ku&&e&&e[Ku])}function Bn(e,n){var t=typeof e;return n=n??_n,!!n&&(t=="number"||t!="symbol"&&ec.test(e))&&e>-1&&e%1==0&&e<n}function Ne(e,n,t){if(!ie(t))return!1;var i=typeof n;return(i=="number"?We(t)&&Bn(n,t.length):i=="string"&&n in t)?dn(t[n],e):!1}function ro(e,n){if(D(e))return!1;var t=typeof e;return t=="number"||t=="symbol"||t=="boolean"||e==null||qe(e)?!0:pr.test(e)||!ui.test(e)||n!=null&&e in Y(n)}function Hp(e){var n=typeof e;return n=="string"||n=="number"||n=="symbol"||n=="boolean"?e!=="__proto__":e===null}function io(e){var n=zr(e),t=s[n];if(typeof t!="function"||!(n in H.prototype))return!1;if(e===t)return!0;var i=eo(t);return!!i&&e===i[0]}function zp(e){return!!Gu&&Gu in e}var qp=wr?Dn:Ao;function tr(e){var n=e&&e.constructor,t=typeof n=="function"&&n.prototype||Tt;return e===t}function Gs(e){return e===e&&!ie(e)}function Hs(e,n){return function(t){return t==null?!1:t[e]===n&&(n!==r||e in Y(t))}}function Kp(e){var n=Zr(e,function(i){return t.size===E&&t.clear(),i}),t=n.cache;return n}function jp(e,n){var t=e[1],i=n[1],u=t|i,f=u<(me|yn|fn),c=i==fn&&t==te||i==fn&&t==_t&&e[7].length<=n[8]||i==(fn|_t)&&n[7].length<=n[8]&&t==te;if(!(f||c))return e;i&me&&(e[2]=n[2],u|=t&me?0:fi);var l=n[3];if(l){var d=e[3];e[3]=d?Es(d,l,n[4]):l,e[4]=d?Vn(e[3],N):n[4]}return l=n[5],l&&(d=e[5],e[5]=d?Is(d,l,n[6]):l,e[6]=d?Vn(e[5],N):n[6]),l=n[7],l&&(e[7]=l),i&fn&&(e[8]=e[8]==null?n[8]:Pe(e[8],n[8])),e[9]==null&&(e[9]=n[9]),e[0]=n[0],e[1]=u,e}function Jp(e){var n=[];if(e!=null)for(var t in Y(e))n.push(t);return n}function Vp(e){return Ar.call(e)}function zs(e,n,t){return n=ye(n===r?e.length-1:n,0),function(){for(var i=arguments,u=-1,f=ye(i.length-n,0),c=y(f);++u<f;)c[u]=i[n+u];u=-1;for(var l=y(n+1);++u<n;)l[u]=i[u];return l[n]=t(c),Ge(e,this,l)}}function qs(e,n){return n.length<2?e:gt(e,tn(n,0,-1))}function Zp(e,n){for(var t=e.length,i=Pe(n.length,t),u=De(e);i--;){var f=n[i];e[i]=Bn(f,t)?u[f]:r}return e}function oo(e,n){if(!(n==="constructor"&&typeof e[n]=="function")&&n!="__proto__")return e[n]}var Ks=Js(gs),rr=ll||function(e,n){return _e.setTimeout(e,n)},uo=Js(_p);function js(e,n,t){var i=n+"";return uo(e,$p(i,Yp(Wp(i),t)))}function Js(e){var n=0,t=0;return function(){var i=gl(),u=No-(i-t);if(t=i,u>0){if(++n>=ar)return arguments[0]}else n=0;return e.apply(r,arguments)}}function Kr(e,n){var t=-1,i=e.length,u=i-1;for(n=n===r?i:n;++t<n;){var f=Gi(t,u),c=e[f];e[f]=e[t],e[t]=c}return e.length=n,e}var Vs=Kp(function(e){var n=[];return e.charCodeAt(0)===46&&n.push(""),e.replace(iu,function(t,i,u,f){n.push(u?f.replace(Jf,"$1"):i||t)}),n});function In(e){if(typeof e=="string"||qe(e))return e;var n=e+"";return n=="0"&&1/e==-mn?"-0":n}function vt(e){if(e!=null){try{return br.call(e)}catch{}try{return e+""}catch{}}return""}function Yp(e,n){return Xe(Fo,function(t){var i="_."+t[0];n&t[1]&&!yr(e,i)&&e.push(i)}),e.sort()}function Zs(e){if(e instanceof H)return e.clone();var n=new en(e.__wrapped__,e.__chain__);return n.__actions__=De(e.__actions__),n.__index__=e.__index__,n.__values__=e.__values__,n}function Xp(e,n,t){(t?Ne(e,n,t):n===r)?n=1:n=ye(W(n),0);var i=e==null?0:e.length;if(!i||n<1)return[];for(var u=0,f=0,c=y(Tr(i/n));u<i;)c[f++]=tn(e,u,u+=n);return c}function Qp(e){for(var n=-1,t=e==null?0:e.length,i=0,u=[];++n<t;){var f=e[n];f&&(u[i++]=f)}return u}function eh(){var e=arguments.length;if(!e)return[];for(var n=y(e-1),t=arguments[0],i=e;i--;)n[i-1]=arguments[i];return Jn(D(t)?De(t):[t],Ie(n,1))}var nh=$(function(e,n){return ae(e)?Yt(e,Ie(n,1,ae,!0)):[]}),th=$(function(e,n){var t=rn(n);return ae(t)&&(t=r),ae(e)?Yt(e,Ie(n,1,ae,!0),C(t,2)):[]}),rh=$(function(e,n){var t=rn(n);return ae(t)&&(t=r),ae(e)?Yt(e,Ie(n,1,ae,!0),r,t):[]});function ih(e,n,t){var i=e==null?0:e.length;return i?(n=t||n===r?1:W(n),tn(e,n<0?0:n,i)):[]}function oh(e,n,t){var i=e==null?0:e.length;return i?(n=t||n===r?1:W(n),n=i-n,tn(e,0,n<0?0:n)):[]}function uh(e,n){return e&&e.length?Wr(e,C(n,3),!0,!0):[]}function sh(e,n){return e&&e.length?Wr(e,C(n,3),!0):[]}function ah(e,n,t,i){var u=e==null?0:e.length;return u?(t&&typeof t!="number"&&Ne(e,n,t)&&(t=0,i=u),ep(e,n,t,i)):[]}function Ys(e,n,t){var i=e==null?0:e.length;if(!i)return-1;var u=t==null?0:W(t);return u<0&&(u=ye(i+u,0)),vr(e,C(n,3),u)}function Xs(e,n,t){var i=e==null?0:e.length;if(!i)return-1;var u=i-1;return t!==r&&(u=W(t),u=t<0?ye(i+u,0):Pe(u,i-1)),vr(e,C(n,3),u,!0)}function Qs(e){var n=e==null?0:e.length;return n?Ie(e,1):[]}function fh(e){var n=e==null?0:e.length;return n?Ie(e,mn):[]}function ch(e,n){var t=e==null?0:e.length;return t?(n=n===r?1:W(n),Ie(e,n)):[]}function lh(e){for(var n=-1,t=e==null?0:e.length,i={};++n<t;){var u=e[n];i[u[0]]=u[1]}return i}function ea(e){return e&&e.length?e[0]:r}function ph(e,n,t){var i=e==null?0:e.length;if(!i)return-1;var u=t==null?0:W(t);return u<0&&(u=ye(i+u,0)),Et(e,n,u)}function hh(e){var n=e==null?0:e.length;return n?tn(e,0,-1):[]}var dh=$(function(e){var n=ne(e,ji);return n.length&&n[0]===e[0]?Di(n):[]}),gh=$(function(e){var n=rn(e),t=ne(e,ji);return n===rn(t)?n=r:t.pop(),t.length&&t[0]===e[0]?Di(t,C(n,2)):[]}),yh=$(function(e){var n=rn(e),t=ne(e,ji);return n=typeof n=="function"?n:r,n&&t.pop(),t.length&&t[0]===e[0]?Di(t,r,n):[]});function vh(e,n){return e==null?"":hl.call(e,n)}function rn(e){var n=e==null?0:e.length;return n?e[n-1]:r}function mh(e,n,t){var i=e==null?0:e.length;if(!i)return-1;var u=i;return t!==r&&(u=W(t),u=u<0?ye(i+u,0):Pe(u,i-1)),n===n?Yc(e,n,u):vr(e,Fu,u,!0)}function _h(e,n){return e&&e.length?ls(e,W(n)):r}var wh=$(na);function na(e,n){return e&&e.length&&n&&n.length?$i(e,n):e}function bh(e,n,t){return e&&e.length&&n&&n.length?$i(e,n,C(t,2)):e}function Ah(e,n,t){return e&&e.length&&n&&n.length?$i(e,n,r,t):e}var Sh=Ln(function(e,n){var t=e==null?0:e.length,i=Ni(e,n);return ds(e,ne(n,function(u){return Bn(u,t)?+u:u}).sort(xs)),i});function xh(e,n){var t=[];if(!(e&&e.length))return t;var i=-1,u=[],f=e.length;for(n=C(n,3);++i<f;){var c=e[i];n(c,i,e)&&(t.push(c),u.push(i))}return ds(e,u),t}function so(e){return e==null?e:vl.call(e)}function Eh(e,n,t){var i=e==null?0:e.length;return i?(t&&typeof t!="number"&&Ne(e,n,t)?(n=0,t=i):(n=n==null?0:W(n),t=t===r?i:W(t)),tn(e,n,t)):[]}function Ih(e,n){return Dr(e,n)}function Oh(e,n,t){return zi(e,n,C(t,2))}function Th(e,n){var t=e==null?0:e.length;if(t){var i=Dr(e,n);if(i<t&&dn(e[i],n))return i}return-1}function Ph(e,n){return Dr(e,n,!0)}function Ch(e,n,t){return zi(e,n,C(t,2),!0)}function Rh(e,n){var t=e==null?0:e.length;if(t){var i=Dr(e,n,!0)-1;if(dn(e[i],n))return i}return-1}function Mh(e){return e&&e.length?ys(e):[]}function Nh(e,n){return e&&e.length?ys(e,C(n,2)):[]}function Fh(e){var n=e==null?0:e.length;return n?tn(e,1,n):[]}function Lh(e,n,t){return e&&e.length?(n=t||n===r?1:W(n),tn(e,0,n<0?0:n)):[]}function Bh(e,n,t){var i=e==null?0:e.length;return i?(n=t||n===r?1:W(n),n=i-n,tn(e,n<0?0:n,i)):[]}function Dh(e,n){return e&&e.length?Wr(e,C(n,3),!1,!0):[]}function Wh(e,n){return e&&e.length?Wr(e,C(n,3)):[]}var Uh=$(function(e){return Qn(Ie(e,1,ae,!0))}),kh=$(function(e){var n=rn(e);return ae(n)&&(n=r),Qn(Ie(e,1,ae,!0),C(n,2))}),$h=$(function(e){var n=rn(e);return n=typeof n=="function"?n:r,Qn(Ie(e,1,ae,!0),r,n)});function Gh(e){return e&&e.length?Qn(e):[]}function Hh(e,n){return e&&e.length?Qn(e,C(n,2)):[]}function zh(e,n){return n=typeof n=="function"?n:r,e&&e.length?Qn(e,r,n):[]}function ao(e){if(!(e&&e.length))return[];var n=0;return e=jn(e,function(t){if(ae(t))return n=ye(t.length,n),!0}),Ei(n,function(t){return ne(e,Ai(t))})}function ta(e,n){if(!(e&&e.length))return[];var t=ao(e);return n==null?t:ne(t,function(i){return Ge(n,r,i)})}var qh=$(function(e,n){return ae(e)?Yt(e,n):[]}),Kh=$(function(e){return Ki(jn(e,ae))}),jh=$(function(e){var n=rn(e);return ae(n)&&(n=r),Ki(jn(e,ae),C(n,2))}),Jh=$(function(e){var n=rn(e);return n=typeof n=="function"?n:r,Ki(jn(e,ae),r,n)}),Vh=$(ao);function Zh(e,n){return ws(e||[],n||[],Zt)}function Yh(e,n){return ws(e||[],n||[],er)}var Xh=$(function(e){var n=e.length,t=n>1?e[n-1]:r;return t=typeof t=="function"?(e.pop(),t):r,ta(e,t)});function ra(e){var n=s(e);return n.__chain__=!0,n}function Qh(e,n){return n(e),e}function jr(e,n){return n(e)}var ed=Ln(function(e){var n=e.length,t=n?e[0]:0,i=this.__wrapped__,u=function(f){return Ni(f,e)};return n>1||this.__actions__.length||!(i instanceof H)||!Bn(t)?this.thru(u):(i=i.slice(t,+t+(n?1:0)),i.__actions__.push({func:jr,args:[u],thisArg:r}),new en(i,this.__chain__).thru(function(f){return n&&!f.length&&f.push(r),f}))});function nd(){return ra(this)}function td(){return new en(this.value(),this.__chain__)}function rd(){this.__values__===r&&(this.__values__=va(this.value()));var e=this.__index__>=this.__values__.length,n=e?r:this.__values__[this.__index__++];return{done:e,value:n}}function id(){return this}function od(e){for(var n,t=this;t instanceof Mr;){var i=Zs(t);i.__index__=0,i.__values__=r,n?u.__wrapped__=i:n=i;var u=i;t=t.__wrapped__}return u.__wrapped__=e,n}function ud(){var e=this.__wrapped__;if(e instanceof H){var n=e;return this.__actions__.length&&(n=new H(this)),n=n.reverse(),n.__actions__.push({func:jr,args:[so],thisArg:r}),new en(n,this.__chain__)}return this.thru(so)}function sd(){return _s(this.__wrapped__,this.__actions__)}var ad=Ur(function(e,n,t){V.call(e,t)?++e[t]:Nn(e,t,1)});function fd(e,n,t){var i=D(e)?Mu:Ql;return t&&Ne(e,n,t)&&(n=r),i(e,C(n,3))}function cd(e,n){var t=D(e)?jn:ts;return t(e,C(n,3))}var ld=Cs(Ys),pd=Cs(Xs);function hd(e,n){return Ie(Jr(e,n),1)}function dd(e,n){return Ie(Jr(e,n),mn)}function gd(e,n,t){return t=t===r?1:W(t),Ie(Jr(e,n),t)}function ia(e,n){var t=D(e)?Xe:Xn;return t(e,C(n,3))}function oa(e,n){var t=D(e)?Fc:ns;return t(e,C(n,3))}var yd=Ur(function(e,n,t){V.call(e,t)?e[t].push(n):Nn(e,t,[n])});function vd(e,n,t,i){e=We(e)?e:Bt(e),t=t&&!i?W(t):0;var u=e.length;return t<0&&(t=ye(u+t,0)),Qr(e)?t<=u&&e.indexOf(n,t)>-1:!!u&&Et(e,n,t)>-1}var md=$(function(e,n,t){var i=-1,u=typeof n=="function",f=We(e)?y(e.length):[];return Xn(e,function(c){f[++i]=u?Ge(n,c,t):Xt(c,n,t)}),f}),_d=Ur(function(e,n,t){Nn(e,t,n)});function Jr(e,n){var t=D(e)?ne:as;return t(e,C(n,3))}function wd(e,n,t,i){return e==null?[]:(D(n)||(n=n==null?[]:[n]),t=i?r:t,D(t)||(t=t==null?[]:[t]),ps(e,n,t))}var bd=Ur(function(e,n,t){e[t?0:1].push(n)},function(){return[[],[]]});function Ad(e,n,t){var i=D(e)?wi:Bu,u=arguments.length<3;return i(e,C(n,4),t,u,Xn)}function Sd(e,n,t){var i=D(e)?Lc:Bu,u=arguments.length<3;return i(e,C(n,4),t,u,ns)}function xd(e,n){var t=D(e)?jn:ts;return t(e,Yr(C(n,3)))}function Ed(e){var n=D(e)?Yu:vp;return n(e)}function Id(e,n,t){(t?Ne(e,n,t):n===r)?n=1:n=W(n);var i=D(e)?Jl:mp;return i(e,n)}function Od(e){var n=D(e)?Vl:wp;return n(e)}function Td(e){if(e==null)return 0;if(We(e))return Qr(e)?Ot(e):e.length;var n=Ce(e);return n==L||n==Te?e.size:Ui(e).length}function Pd(e,n,t){var i=D(e)?bi:bp;return t&&Ne(e,n,t)&&(n=r),i(e,C(n,3))}var Cd=$(function(e,n){if(e==null)return[];var t=n.length;return t>1&&Ne(e,n[0],n[1])?n=[]:t>2&&Ne(n[0],n[1],n[2])&&(n=[n[0]]),ps(e,Ie(n,1),[])}),Vr=cl||function(){return _e.Date.now()};function Rd(e,n){if(typeof n!="function")throw new Qe(g);return e=W(e),function(){if(--e<1)return n.apply(this,arguments)}}function ua(e,n,t){return n=t?r:n,n=e&&n==null?e.length:n,Fn(e,fn,r,r,r,r,n)}function sa(e,n){var t;if(typeof n!="function")throw new Qe(g);return e=W(e),function(){return--e>0&&(t=n.apply(this,arguments)),e<=1&&(n=r),t}}var fo=$(function(e,n,t){var i=me;if(t.length){var u=Vn(t,Ft(fo));i|=an}return Fn(e,i,n,t,u)}),aa=$(function(e,n,t){var i=me|yn;if(t.length){var u=Vn(t,Ft(aa));i|=an}return Fn(n,i,e,t,u)});function fa(e,n,t){n=t?r:n;var i=Fn(e,te,r,r,r,r,r,n);return i.placeholder=fa.placeholder,i}function ca(e,n,t){n=t?r:n;var i=Fn(e,ft,r,r,r,r,r,n);return i.placeholder=ca.placeholder,i}function la(e,n,t){var i,u,f,c,l,d,m=0,_=!1,w=!1,S=!0;if(typeof e!="function")throw new Qe(g);n=on(n)||0,ie(t)&&(_=!!t.leading,w="maxWait"in t,f=w?ye(on(t.maxWait)||0,n):f,S="trailing"in t?!!t.trailing:S);function T(fe){var gn=i,Un=u;return i=u=r,m=fe,c=e.apply(Un,gn),c}function R(fe){return m=fe,l=rr(G,n),_?T(fe):c}function U(fe){var gn=fe-d,Un=fe-m,Ca=n-gn;return w?Pe(Ca,f-Un):Ca}function M(fe){var gn=fe-d,Un=fe-m;return d===r||gn>=n||gn<0||w&&Un>=f}function G(){var fe=Vr();if(M(fe))return z(fe);l=rr(G,U(fe))}function z(fe){return l=r,S&&i?T(fe):(i=u=r,c)}function Ke(){l!==r&&bs(l),m=0,i=d=u=l=r}function Fe(){return l===r?c:z(Vr())}function je(){var fe=Vr(),gn=M(fe);if(i=arguments,u=this,d=fe,gn){if(l===r)return R(d);if(w)return bs(l),l=rr(G,n),T(d)}return l===r&&(l=rr(G,n)),c}return je.cancel=Ke,je.flush=Fe,je}var Md=$(function(e,n){return es(e,1,n)}),Nd=$(function(e,n,t){return es(e,on(n)||0,t)});function Fd(e){return Fn(e,$t)}function Zr(e,n){if(typeof e!="function"||n!=null&&typeof n!="function")throw new Qe(g);var t=function(){var i=arguments,u=n?n.apply(this,i):i[0],f=t.cache;if(f.has(u))return f.get(u);var c=e.apply(this,i);return t.cache=f.set(u,c)||f,c};return t.cache=new(Zr.Cache||Mn),t}Zr.Cache=Mn;function Yr(e){if(typeof e!="function")throw new Qe(g);return function(){var n=arguments;switch(n.length){case 0:return!e.call(this);case 1:return!e.call(this,n[0]);case 2:return!e.call(this,n[0],n[1]);case 3:return!e.call(this,n[0],n[1],n[2])}return!e.apply(this,n)}}function Ld(e){return sa(2,e)}var Bd=Ap(function(e,n){n=n.length==1&&D(n[0])?ne(n[0],He(C())):ne(Ie(n,1),He(C()));var t=n.length;return $(function(i){for(var u=-1,f=Pe(i.length,t);++u<f;)i[u]=n[u].call(this,i[u]);return Ge(e,this,i)})}),co=$(function(e,n){var t=Vn(n,Ft(co));return Fn(e,an,r,n,t)}),pa=$(function(e,n){var t=Vn(n,Ft(pa));return Fn(e,it,r,n,t)}),Dd=Ln(function(e,n){return Fn(e,_t,r,r,r,n)});function Wd(e,n){if(typeof e!="function")throw new Qe(g);return n=n===r?n:W(n),$(e,n)}function Ud(e,n){if(typeof e!="function")throw new Qe(g);return n=n==null?0:ye(W(n),0),$(function(t){var i=t[n],u=nt(t,0,n);return i&&Jn(u,i),Ge(e,this,u)})}function kd(e,n,t){var i=!0,u=!0;if(typeof e!="function")throw new Qe(g);return ie(t)&&(i="leading"in t?!!t.leading:i,u="trailing"in t?!!t.trailing:u),la(e,n,{leading:i,maxWait:n,trailing:u})}function $d(e){return ua(e,1)}function Gd(e,n){return co(Ji(n),e)}function Hd(){if(!arguments.length)return[];var e=arguments[0];return D(e)?e:[e]}function zd(e){return nn(e,Le)}function qd(e,n){return n=typeof n=="function"?n:r,nn(e,Le,n)}function Kd(e){return nn(e,q|Le)}function jd(e,n){return n=typeof n=="function"?n:r,nn(e,q|Le,n)}function Jd(e,n){return n==null||Qu(e,n,we(n))}function dn(e,n){return e===n||e!==e&&n!==n}var Vd=Hr(Bi),Zd=Hr(function(e,n){return e>=n}),mt=os(function(){return arguments}())?os:function(e){return oe(e)&&V.call(e,"callee")&&!qu.call(e,"callee")},D=y.isArray,Yd=Iu?He(Iu):op;function We(e){return e!=null&&Xr(e.length)&&!Dn(e)}function ae(e){return oe(e)&&We(e)}function Xd(e){return e===!0||e===!1||oe(e)&&Me(e)==Je}var tt=pl||Ao,Qd=Ou?He(Ou):up;function eg(e){return oe(e)&&e.nodeType===1&&!ir(e)}function ng(e){if(e==null)return!0;if(We(e)&&(D(e)||typeof e=="string"||typeof e.splice=="function"||tt(e)||Lt(e)||mt(e)))return!e.length;var n=Ce(e);if(n==L||n==Te)return!e.size;if(tr(e))return!Ui(e).length;for(var t in e)if(V.call(e,t))return!1;return!0}function tg(e,n){return Qt(e,n)}function rg(e,n,t){t=typeof t=="function"?t:r;var i=t?t(e,n):r;return i===r?Qt(e,n,r,t):!!i}function lo(e){if(!oe(e))return!1;var n=Me(e);return n==P||n==x||typeof e.message=="string"&&typeof e.name=="string"&&!ir(e)}function ig(e){return typeof e=="number"&&ju(e)}function Dn(e){if(!ie(e))return!1;var n=Me(e);return n==O||n==F||n==ru||n==qn}function ha(e){return typeof e=="number"&&e==W(e)}function Xr(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=_n}function ie(e){var n=typeof e;return e!=null&&(n=="object"||n=="function")}function oe(e){return e!=null&&typeof e=="object"}var da=Tu?He(Tu):ap;function og(e,n){return e===n||Wi(e,n,no(n))}function ug(e,n,t){return t=typeof t=="function"?t:r,Wi(e,n,no(n),t)}function sg(e){return ga(e)&&e!=+e}function ag(e){if(qp(e))throw new B(p);return us(e)}function fg(e){return e===null}function cg(e){return e==null}function ga(e){return typeof e=="number"||oe(e)&&Me(e)==ce}function ir(e){if(!oe(e)||Me(e)!=re)return!1;var n=Er(e);if(n===null)return!0;var t=V.call(n,"constructor")&&n.constructor;return typeof t=="function"&&t instanceof t&&br.call(t)==ul}var po=Pu?He(Pu):fp;function lg(e){return ha(e)&&e>=-_n&&e<=_n}var ya=Cu?He(Cu):cp;function Qr(e){return typeof e=="string"||!D(e)&&oe(e)&&Me(e)==Pn}function qe(e){return typeof e=="symbol"||oe(e)&&Me(e)==wn}var Lt=Ru?He(Ru):lp;function pg(e){return e===r}function hg(e){return oe(e)&&Ce(e)==Tn}function dg(e){return oe(e)&&Me(e)==bt}var gg=Hr(ki),yg=Hr(function(e,n){return e<=n});function va(e){if(!e)return[];if(We(e))return Qr(e)?pn(e):De(e);if(qt&&e[qt])return Jc(e[qt]());var n=Ce(e),t=n==L?Oi:n==Te?mr:Bt;return t(e)}function Wn(e){if(!e)return e===0?e:0;if(e=on(e),e===mn||e===-mn){var n=e<0?-1:1;return n*tu}return e===e?e:0}function W(e){var n=Wn(e),t=n%1;return n===n?t?n-t:n:0}function ma(e){return e?dt(W(e),0,Ve):0}function on(e){if(typeof e=="number")return e;if(qe(e))return wt;if(ie(e)){var n=typeof e.valueOf=="function"?e.valueOf():e;e=ie(n)?n+"":n}if(typeof e!="string")return e===0?e:+e;e=Du(e);var t=Yf.test(e);return t||Qf.test(e)?Rc(e.slice(2),t?2:8):Zf.test(e)?wt:+e}function _a(e){return En(e,Ue(e))}function vg(e){return e?dt(W(e),-_n,_n):e===0?e:0}function J(e){return e==null?"":ze(e)}var mg=Mt(function(e,n){if(tr(n)||We(n)){En(n,we(n),e);return}for(var t in n)V.call(n,t)&&Zt(e,t,n[t])}),wa=Mt(function(e,n){En(n,Ue(n),e)}),ei=Mt(function(e,n,t,i){En(n,Ue(n),e,i)}),_g=Mt(function(e,n,t,i){En(n,we(n),e,i)}),wg=Ln(Ni);function bg(e,n){var t=Rt(e);return n==null?t:Xu(t,n)}var Ag=$(function(e,n){e=Y(e);var t=-1,i=n.length,u=i>2?n[2]:r;for(u&&Ne(n[0],n[1],u)&&(i=1);++t<i;)for(var f=n[t],c=Ue(f),l=-1,d=c.length;++l<d;){var m=c[l],_=e[m];(_===r||dn(_,Tt[m])&&!V.call(e,m))&&(e[m]=f[m])}return e}),Sg=$(function(e){return e.push(r,Ds),Ge(ba,r,e)});function xg(e,n){return Nu(e,C(n,3),xn)}function Eg(e,n){return Nu(e,C(n,3),Li)}function Ig(e,n){return e==null?e:Fi(e,C(n,3),Ue)}function Og(e,n){return e==null?e:rs(e,C(n,3),Ue)}function Tg(e,n){return e&&xn(e,C(n,3))}function Pg(e,n){return e&&Li(e,C(n,3))}function Cg(e){return e==null?[]:Lr(e,we(e))}function Rg(e){return e==null?[]:Lr(e,Ue(e))}function ho(e,n,t){var i=e==null?r:gt(e,n);return i===r?t:i}function Mg(e,n){return e!=null&&ks(e,n,np)}function go(e,n){return e!=null&&ks(e,n,tp)}var Ng=Ms(function(e,n,t){n!=null&&typeof n.toString!="function"&&(n=Ar.call(n)),e[n]=t},vo(ke)),Fg=Ms(function(e,n,t){n!=null&&typeof n.toString!="function"&&(n=Ar.call(n)),V.call(e,n)?e[n].push(t):e[n]=[t]},C),Lg=$(Xt);function we(e){return We(e)?Zu(e):Ui(e)}function Ue(e){return We(e)?Zu(e,!0):pp(e)}function Bg(e,n){var t={};return n=C(n,3),xn(e,function(i,u,f){Nn(t,n(i,u,f),i)}),t}function Dg(e,n){var t={};return n=C(n,3),xn(e,function(i,u,f){Nn(t,u,n(i,u,f))}),t}var Wg=Mt(function(e,n,t){Br(e,n,t)}),ba=Mt(function(e,n,t,i){Br(e,n,t,i)}),Ug=Ln(function(e,n){var t={};if(e==null)return t;var i=!1;n=ne(n,function(f){return f=et(f,e),i||(i=f.length>1),f}),En(e,Qi(e),t),i&&(t=nn(t,q|ve|Le,Np));for(var u=n.length;u--;)qi(t,n[u]);return t});function kg(e,n){return Aa(e,Yr(C(n)))}var $g=Ln(function(e,n){return e==null?{}:dp(e,n)});function Aa(e,n){if(e==null)return{};var t=ne(Qi(e),function(i){return[i]});return n=C(n),hs(e,t,function(i,u){return n(i,u[0])})}function Gg(e,n,t){n=et(n,e);var i=-1,u=n.length;for(u||(u=1,e=r);++i<u;){var f=e==null?r:e[In(n[i])];f===r&&(i=u,f=t),e=Dn(f)?f.call(e):f}return e}function Hg(e,n,t){return e==null?e:er(e,n,t)}function zg(e,n,t,i){return i=typeof i=="function"?i:r,e==null?e:er(e,n,t,i)}var Sa=Ls(we),xa=Ls(Ue);function qg(e,n,t){var i=D(e),u=i||tt(e)||Lt(e);if(n=C(n,4),t==null){var f=e&&e.constructor;u?t=i?new f:[]:ie(e)?t=Dn(f)?Rt(Er(e)):{}:t={}}return(u?Xe:xn)(e,function(c,l,d){return n(t,c,l,d)}),t}function Kg(e,n){return e==null?!0:qi(e,n)}function jg(e,n,t){return e==null?e:ms(e,n,Ji(t))}function Jg(e,n,t,i){return i=typeof i=="function"?i:r,e==null?e:ms(e,n,Ji(t),i)}function Bt(e){return e==null?[]:Ii(e,we(e))}function Vg(e){return e==null?[]:Ii(e,Ue(e))}function Zg(e,n,t){return t===r&&(t=n,n=r),t!==r&&(t=on(t),t=t===t?t:0),n!==r&&(n=on(n),n=n===n?n:0),dt(on(e),n,t)}function Yg(e,n,t){return n=Wn(n),t===r?(t=n,n=0):t=Wn(t),e=on(e),rp(e,n,t)}function Xg(e,n,t){if(t&&typeof t!="boolean"&&Ne(e,n,t)&&(n=t=r),t===r&&(typeof n=="boolean"?(t=n,n=r):typeof e=="boolean"&&(t=e,e=r)),e===r&&n===r?(e=0,n=1):(e=Wn(e),n===r?(n=e,e=0):n=Wn(n)),e>n){var i=e;e=n,n=i}if(t||e%1||n%1){var u=Ju();return Pe(e+u*(n-e+Cc("1e-"+((u+"").length-1))),n)}return Gi(e,n)}var Qg=Nt(function(e,n,t){return n=n.toLowerCase(),e+(t?Ea(n):n)});function Ea(e){return yo(J(e).toLowerCase())}function Ia(e){return e=J(e),e&&e.replace(nc,Hc).replace(wc,"")}function ey(e,n,t){e=J(e),n=ze(n);var i=e.length;t=t===r?i:dt(W(t),0,i);var u=t;return t-=n.length,t>=0&&e.slice(t,u)==n}function ny(e){return e=J(e),e&&$n.test(e)?e.replace(Kn,zc):e}function ty(e){return e=J(e),e&&Wt.test(e)?e.replace(Ht,"\\$&"):e}var ry=Nt(function(e,n,t){return e+(t?"-":"")+n.toLowerCase()}),iy=Nt(function(e,n,t){return e+(t?" ":"")+n.toLowerCase()}),oy=Ps("toLowerCase");function uy(e,n,t){e=J(e),n=W(n);var i=n?Ot(e):0;if(!n||i>=n)return e;var u=(n-i)/2;return Gr(Pr(u),t)+e+Gr(Tr(u),t)}function sy(e,n,t){e=J(e),n=W(n);var i=n?Ot(e):0;return n&&i<n?e+Gr(n-i,t):e}function ay(e,n,t){e=J(e),n=W(n);var i=n?Ot(e):0;return n&&i<n?Gr(n-i,t)+e:e}function fy(e,n,t){return t||n==null?n=0:n&&(n=+n),yl(J(e).replace(ln,""),n||0)}function cy(e,n,t){return(t?Ne(e,n,t):n===r)?n=1:n=W(n),Hi(J(e),n)}function ly(){var e=arguments,n=J(e[0]);return e.length<3?n:n.replace(e[1],e[2])}var py=Nt(function(e,n,t){return e+(t?"_":"")+n.toLowerCase()});function hy(e,n,t){return t&&typeof t!="number"&&Ne(e,n,t)&&(n=t=r),t=t===r?Ve:t>>>0,t?(e=J(e),e&&(typeof n=="string"||n!=null&&!po(n))&&(n=ze(n),!n&&It(e))?nt(pn(e),0,t):e.split(n,t)):[]}var dy=Nt(function(e,n,t){return e+(t?" ":"")+yo(n)});function gy(e,n,t){return e=J(e),t=t==null?0:dt(W(t),0,e.length),n=ze(n),e.slice(t,t+n.length)==n}function yy(e,n,t){var i=s.templateSettings;t&&Ne(e,n,t)&&(n=r),e=J(e),n=ei({},n,i,Bs);var u=ei({},n.imports,i.imports,Bs),f=we(u),c=Ii(u,f),l,d,m=0,_=n.interpolate||hr,w="__p += '",S=Ti((n.escape||hr).source+"|"+_.source+"|"+(_===Gn?Vf:hr).source+"|"+(n.evaluate||hr).source+"|$","g"),T="//# sourceURL="+(V.call(n,"sourceURL")?(n.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Ec+"]")+`
`;e.replace(S,function(M,G,z,Ke,Fe,je){return z||(z=Ke),w+=e.slice(m,je).replace(tc,qc),G&&(l=!0,w+=`' +
__e(`+G+`) +
'`),Fe&&(d=!0,w+=`';
`+Fe+`;
__p += '`),z&&(w+=`' +
((__t = (`+z+`)) == null ? '' : __t) +
'`),m=je+M.length,M}),w+=`';
`;var R=V.call(n,"variable")&&n.variable;if(!R)w=`with (obj) {
`+w+`
}
`;else if(jf.test(R))throw new B(b);w=(d?w.replace(An,""):w).replace(st,"$1").replace(Sn,"$1;"),w="function("+(R||"obj")+`) {
`+(R?"":`obj || (obj = {});
`)+"var __t, __p = ''"+(l?", __e = _.escape":"")+(d?`, __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
`:`;
`)+w+`return __p
}`;var U=Ta(function(){return j(f,T+"return "+w).apply(r,c)});if(U.source=w,lo(U))throw U;return U}function vy(e){return J(e).toLowerCase()}function my(e){return J(e).toUpperCase()}function _y(e,n,t){if(e=J(e),e&&(t||n===r))return Du(e);if(!e||!(n=ze(n)))return e;var i=pn(e),u=pn(n),f=Wu(i,u),c=Uu(i,u)+1;return nt(i,f,c).join("")}function wy(e,n,t){if(e=J(e),e&&(t||n===r))return e.slice(0,$u(e)+1);if(!e||!(n=ze(n)))return e;var i=pn(e),u=Uu(i,pn(n))+1;return nt(i,0,u).join("")}function by(e,n,t){if(e=J(e),e&&(t||n===r))return e.replace(ln,"");if(!e||!(n=ze(n)))return e;var i=pn(e),u=Wu(i,pn(n));return nt(i,u).join("")}function Ay(e,n){var t=ci,i=cn;if(ie(n)){var u="separator"in n?n.separator:u;t="length"in n?W(n.length):t,i="omission"in n?ze(n.omission):i}e=J(e);var f=e.length;if(It(e)){var c=pn(e);f=c.length}if(t>=f)return e;var l=t-Ot(i);if(l<1)return i;var d=c?nt(c,0,l).join(""):e.slice(0,l);if(u===r)return d+i;if(c&&(l+=d.length-l),po(u)){if(e.slice(l).search(u)){var m,_=d;for(u.global||(u=Ti(u.source,J(ou.exec(u))+"g")),u.lastIndex=0;m=u.exec(_);)var w=m.index;d=d.slice(0,w===r?l:w)}}else if(e.indexOf(ze(u),l)!=l){var S=d.lastIndexOf(u);S>-1&&(d=d.slice(0,S))}return d+i}function Sy(e){return e=J(e),e&&Cn.test(e)?e.replace(xe,Xc):e}var xy=Nt(function(e,n,t){return e+(t?" ":"")+n.toUpperCase()}),yo=Ps("toUpperCase");function Oa(e,n,t){return e=J(e),n=t?r:n,n===r?jc(e)?nl(e):Wc(e):e.match(n)||[]}var Ta=$(function(e,n){try{return Ge(e,r,n)}catch(t){return lo(t)?t:new B(t)}}),Ey=Ln(function(e,n){return Xe(n,function(t){t=In(t),Nn(e,t,fo(e[t],e))}),e});function Iy(e){var n=e==null?0:e.length,t=C();return e=n?ne(e,function(i){if(typeof i[1]!="function")throw new Qe(g);return[t(i[0]),i[1]]}):[],$(function(i){for(var u=-1;++u<n;){var f=e[u];if(Ge(f[0],this,i))return Ge(f[1],this,i)}})}function Oy(e){return Xl(nn(e,q))}function vo(e){return function(){return e}}function Ty(e,n){return e==null||e!==e?n:e}var Py=Rs(),Cy=Rs(!0);function ke(e){return e}function mo(e){return ss(typeof e=="function"?e:nn(e,q))}function Ry(e){return fs(nn(e,q))}function My(e,n){return cs(e,nn(n,q))}var Ny=$(function(e,n){return function(t){return Xt(t,e,n)}}),Fy=$(function(e,n){return function(t){return Xt(e,t,n)}});function _o(e,n,t){var i=we(n),u=Lr(n,i);t==null&&!(ie(n)&&(u.length||!i.length))&&(t=n,n=e,e=this,u=Lr(n,we(n)));var f=!(ie(t)&&"chain"in t)||!!t.chain,c=Dn(e);return Xe(u,function(l){var d=n[l];e[l]=d,c&&(e.prototype[l]=function(){var m=this.__chain__;if(f||m){var _=e(this.__wrapped__),w=_.__actions__=De(this.__actions__);return w.push({func:d,args:arguments,thisArg:e}),_.__chain__=m,_}return d.apply(e,Jn([this.value()],arguments))})}),e}function Ly(){return _e._===this&&(_e._=sl),this}function wo(){}function By(e){return e=W(e),$(function(n){return ls(n,e)})}var Dy=Zi(ne),Wy=Zi(Mu),Uy=Zi(bi);function Pa(e){return ro(e)?Ai(In(e)):gp(e)}function ky(e){return function(n){return e==null?r:gt(e,n)}}var $y=Ns(),Gy=Ns(!0);function bo(){return[]}function Ao(){return!1}function Hy(){return{}}function zy(){return""}function qy(){return!0}function Ky(e,n){if(e=W(e),e<1||e>_n)return[];var t=Ve,i=Pe(e,Ve);n=C(n),e-=Ve;for(var u=Ei(i,n);++t<e;)n(t);return u}function jy(e){return D(e)?ne(e,In):qe(e)?[e]:De(Vs(J(e)))}function Jy(e){var n=++ol;return J(e)+n}var Vy=$r(function(e,n){return e+n},0),Zy=Yi("ceil"),Yy=$r(function(e,n){return e/n},1),Xy=Yi("floor");function Qy(e){return e&&e.length?Fr(e,ke,Bi):r}function ev(e,n){return e&&e.length?Fr(e,C(n,2),Bi):r}function nv(e){return Lu(e,ke)}function tv(e,n){return Lu(e,C(n,2))}function rv(e){return e&&e.length?Fr(e,ke,ki):r}function iv(e,n){return e&&e.length?Fr(e,C(n,2),ki):r}var ov=$r(function(e,n){return e*n},1),uv=Yi("round"),sv=$r(function(e,n){return e-n},0);function av(e){return e&&e.length?xi(e,ke):0}function fv(e,n){return e&&e.length?xi(e,C(n,2)):0}return s.after=Rd,s.ary=ua,s.assign=mg,s.assignIn=wa,s.assignInWith=ei,s.assignWith=_g,s.at=wg,s.before=sa,s.bind=fo,s.bindAll=Ey,s.bindKey=aa,s.castArray=Hd,s.chain=ra,s.chunk=Xp,s.compact=Qp,s.concat=eh,s.cond=Iy,s.conforms=Oy,s.constant=vo,s.countBy=ad,s.create=bg,s.curry=fa,s.curryRight=ca,s.debounce=la,s.defaults=Ag,s.defaultsDeep=Sg,s.defer=Md,s.delay=Nd,s.difference=nh,s.differenceBy=th,s.differenceWith=rh,s.drop=ih,s.dropRight=oh,s.dropRightWhile=uh,s.dropWhile=sh,s.fill=ah,s.filter=cd,s.flatMap=hd,s.flatMapDeep=dd,s.flatMapDepth=gd,s.flatten=Qs,s.flattenDeep=fh,s.flattenDepth=ch,s.flip=Fd,s.flow=Py,s.flowRight=Cy,s.fromPairs=lh,s.functions=Cg,s.functionsIn=Rg,s.groupBy=yd,s.initial=hh,s.intersection=dh,s.intersectionBy=gh,s.intersectionWith=yh,s.invert=Ng,s.invertBy=Fg,s.invokeMap=md,s.iteratee=mo,s.keyBy=_d,s.keys=we,s.keysIn=Ue,s.map=Jr,s.mapKeys=Bg,s.mapValues=Dg,s.matches=Ry,s.matchesProperty=My,s.memoize=Zr,s.merge=Wg,s.mergeWith=ba,s.method=Ny,s.methodOf=Fy,s.mixin=_o,s.negate=Yr,s.nthArg=By,s.omit=Ug,s.omitBy=kg,s.once=Ld,s.orderBy=wd,s.over=Dy,s.overArgs=Bd,s.overEvery=Wy,s.overSome=Uy,s.partial=co,s.partialRight=pa,s.partition=bd,s.pick=$g,s.pickBy=Aa,s.property=Pa,s.propertyOf=ky,s.pull=wh,s.pullAll=na,s.pullAllBy=bh,s.pullAllWith=Ah,s.pullAt=Sh,s.range=$y,s.rangeRight=Gy,s.rearg=Dd,s.reject=xd,s.remove=xh,s.rest=Wd,s.reverse=so,s.sampleSize=Id,s.set=Hg,s.setWith=zg,s.shuffle=Od,s.slice=Eh,s.sortBy=Cd,s.sortedUniq=Mh,s.sortedUniqBy=Nh,s.split=hy,s.spread=Ud,s.tail=Fh,s.take=Lh,s.takeRight=Bh,s.takeRightWhile=Dh,s.takeWhile=Wh,s.tap=Qh,s.throttle=kd,s.thru=jr,s.toArray=va,s.toPairs=Sa,s.toPairsIn=xa,s.toPath=jy,s.toPlainObject=_a,s.transform=qg,s.unary=$d,s.union=Uh,s.unionBy=kh,s.unionWith=$h,s.uniq=Gh,s.uniqBy=Hh,s.uniqWith=zh,s.unset=Kg,s.unzip=ao,s.unzipWith=ta,s.update=jg,s.updateWith=Jg,s.values=Bt,s.valuesIn=Vg,s.without=qh,s.words=Oa,s.wrap=Gd,s.xor=Kh,s.xorBy=jh,s.xorWith=Jh,s.zip=Vh,s.zipObject=Zh,s.zipObjectDeep=Yh,s.zipWith=Xh,s.entries=Sa,s.entriesIn=xa,s.extend=wa,s.extendWith=ei,_o(s,s),s.add=Vy,s.attempt=Ta,s.camelCase=Qg,s.capitalize=Ea,s.ceil=Zy,s.clamp=Zg,s.clone=zd,s.cloneDeep=Kd,s.cloneDeepWith=jd,s.cloneWith=qd,s.conformsTo=Jd,s.deburr=Ia,s.defaultTo=Ty,s.divide=Yy,s.endsWith=ey,s.eq=dn,s.escape=ny,s.escapeRegExp=ty,s.every=fd,s.find=ld,s.findIndex=Ys,s.findKey=xg,s.findLast=pd,s.findLastIndex=Xs,s.findLastKey=Eg,s.floor=Xy,s.forEach=ia,s.forEachRight=oa,s.forIn=Ig,s.forInRight=Og,s.forOwn=Tg,s.forOwnRight=Pg,s.get=ho,s.gt=Vd,s.gte=Zd,s.has=Mg,s.hasIn=go,s.head=ea,s.identity=ke,s.includes=vd,s.indexOf=ph,s.inRange=Yg,s.invoke=Lg,s.isArguments=mt,s.isArray=D,s.isArrayBuffer=Yd,s.isArrayLike=We,s.isArrayLikeObject=ae,s.isBoolean=Xd,s.isBuffer=tt,s.isDate=Qd,s.isElement=eg,s.isEmpty=ng,s.isEqual=tg,s.isEqualWith=rg,s.isError=lo,s.isFinite=ig,s.isFunction=Dn,s.isInteger=ha,s.isLength=Xr,s.isMap=da,s.isMatch=og,s.isMatchWith=ug,s.isNaN=sg,s.isNative=ag,s.isNil=cg,s.isNull=fg,s.isNumber=ga,s.isObject=ie,s.isObjectLike=oe,s.isPlainObject=ir,s.isRegExp=po,s.isSafeInteger=lg,s.isSet=ya,s.isString=Qr,s.isSymbol=qe,s.isTypedArray=Lt,s.isUndefined=pg,s.isWeakMap=hg,s.isWeakSet=dg,s.join=vh,s.kebabCase=ry,s.last=rn,s.lastIndexOf=mh,s.lowerCase=iy,s.lowerFirst=oy,s.lt=gg,s.lte=yg,s.max=Qy,s.maxBy=ev,s.mean=nv,s.meanBy=tv,s.min=rv,s.minBy=iv,s.stubArray=bo,s.stubFalse=Ao,s.stubObject=Hy,s.stubString=zy,s.stubTrue=qy,s.multiply=ov,s.nth=_h,s.noConflict=Ly,s.noop=wo,s.now=Vr,s.pad=uy,s.padEnd=sy,s.padStart=ay,s.parseInt=fy,s.random=Xg,s.reduce=Ad,s.reduceRight=Sd,s.repeat=cy,s.replace=ly,s.result=Gg,s.round=uv,s.runInContext=h,s.sample=Ed,s.size=Td,s.snakeCase=py,s.some=Pd,s.sortedIndex=Ih,s.sortedIndexBy=Oh,s.sortedIndexOf=Th,s.sortedLastIndex=Ph,s.sortedLastIndexBy=Ch,s.sortedLastIndexOf=Rh,s.startCase=dy,s.startsWith=gy,s.subtract=sv,s.sum=av,s.sumBy=fv,s.template=yy,s.times=Ky,s.toFinite=Wn,s.toInteger=W,s.toLength=ma,s.toLower=vy,s.toNumber=on,s.toSafeInteger=vg,s.toString=J,s.toUpper=my,s.trim=_y,s.trimEnd=wy,s.trimStart=by,s.truncate=Ay,s.unescape=Sy,s.uniqueId=Jy,s.upperCase=xy,s.upperFirst=yo,s.each=ia,s.eachRight=oa,s.first=ea,_o(s,function(){var e={};return xn(s,function(n,t){V.call(s.prototype,t)||(e[t]=n)}),e}(),{chain:!1}),s.VERSION=o,Xe(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){s[e].placeholder=s}),Xe(["drop","take"],function(e,n){H.prototype[e]=function(t){t=t===r?1:ye(W(t),0);var i=this.__filtered__&&!n?new H(this):this.clone();return i.__filtered__?i.__takeCount__=Pe(t,i.__takeCount__):i.__views__.push({size:Pe(t,Ve),type:e+(i.__dir__<0?"Right":"")}),i},H.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}}),Xe(["filter","map","takeWhile"],function(e,n){var t=n+1,i=t==fr||t==cr;H.prototype[e]=function(u){var f=this.clone();return f.__iteratees__.push({iteratee:C(u,3),type:t}),f.__filtered__=f.__filtered__||i,f}}),Xe(["head","last"],function(e,n){var t="take"+(n?"Right":"");H.prototype[e]=function(){return this[t](1).value()[0]}}),Xe(["initial","tail"],function(e,n){var t="drop"+(n?"":"Right");H.prototype[e]=function(){return this.__filtered__?new H(this):this[t](1)}}),H.prototype.compact=function(){return this.filter(ke)},H.prototype.find=function(e){return this.filter(e).head()},H.prototype.findLast=function(e){return this.reverse().find(e)},H.prototype.invokeMap=$(function(e,n){return typeof e=="function"?new H(this):this.map(function(t){return Xt(t,e,n)})}),H.prototype.reject=function(e){return this.filter(Yr(C(e)))},H.prototype.slice=function(e,n){e=W(e);var t=this;return t.__filtered__&&(e>0||n<0)?new H(t):(e<0?t=t.takeRight(-e):e&&(t=t.drop(e)),n!==r&&(n=W(n),t=n<0?t.dropRight(-n):t.take(n-e)),t)},H.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},H.prototype.toArray=function(){return this.take(Ve)},xn(H.prototype,function(e,n){var t=/^(?:filter|find|map|reject)|While$/.test(n),i=/^(?:head|last)$/.test(n),u=s[i?"take"+(n=="last"?"Right":""):n],f=i||/^find/.test(n);u&&(s.prototype[n]=function(){var c=this.__wrapped__,l=i?[1]:arguments,d=c instanceof H,m=l[0],_=d||D(c),w=function(G){var z=u.apply(s,Jn([G],l));return i&&S?z[0]:z};_&&t&&typeof m=="function"&&m.length!=1&&(d=_=!1);var S=this.__chain__,T=!!this.__actions__.length,R=f&&!S,U=d&&!T;if(!f&&_){c=U?c:new H(this);var M=e.apply(c,l);return M.__actions__.push({func:jr,args:[w],thisArg:r}),new en(M,S)}return R&&U?e.apply(this,l):(M=this.thru(w),R?i?M.value()[0]:M.value():M)})}),Xe(["pop","push","shift","sort","splice","unshift"],function(e){var n=_r[e],t=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:pop|shift)$/.test(e);s.prototype[e]=function(){var u=arguments;if(i&&!this.__chain__){var f=this.value();return n.apply(D(f)?f:[],u)}return this[t](function(c){return n.apply(D(c)?c:[],u)})}}),xn(H.prototype,function(e,n){var t=s[n];if(t){var i=t.name+"";V.call(Ct,i)||(Ct[i]=[]),Ct[i].push({name:n,func:t})}}),Ct[kr(r,yn).name]=[{name:"wrapper",func:r}],H.prototype.clone=Sl,H.prototype.reverse=xl,H.prototype.value=El,s.prototype.at=ed,s.prototype.chain=nd,s.prototype.commit=td,s.prototype.next=rd,s.prototype.plant=od,s.prototype.reverse=ud,s.prototype.toJSON=s.prototype.valueOf=s.prototype.value=sd,s.prototype.first=s.prototype.head,qt&&(s.prototype[qt]=id),s},Zn=tl();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(_e._=Zn,define(function(){return Zn})):ct?((ct.exports=Zn)._=Zn,vi._=Zn):_e._=Zn}).call(Lo)});var Cm=ue((Gx,Pm)=>{"use strict";Pm.exports=p1;function p1(r){return Object.defineProperties(o,{defaultLabel:{value:"",writable:!0},labelPadding:{value:!0,writable:!0},maxLabelLength:{value:0,writable:!0},labelLength:{get(){switch(typeof o.labelPadding){case"boolean":return o.labelPadding?o.maxLabelLength:0;case"number":return o.labelPadding;default:return 0}}}});function o(a){o.maxLabelLength=Math.max(o.maxLabelLength,a.length);let p={};for(let g of[...r.levels,"log"])p[g]=(...b)=>r.logData(b,{level:g,scope:a});return p}}});var Mm=ue((Hx,Rm)=>{"use strict";var h1=Cm(),pv=class r{static instances={};functions={};hooks=[];isDev=!1;levels=null;logId=null;scope=null;transports={};variables={};constructor({allowUnknownLevel:o=!1,errorHandler:a,initializeFn:p,isDev:g=!1,levels:b=["error","warn","info","verbose","debug","silly"],logId:A,transportFactories:E={},variables:N}={}){this.addLevel=this.addLevel.bind(this),this.create=this.create.bind(this),this.logData=this.logData.bind(this),this.processMessage=this.processMessage.bind(this),this.allowUnknownLevel=o,this.initializeFn=p,this.isDev=g,this.levels=b,this.logId=A,this.transportFactories=E,this.variables=N||{},this.scope=h1(this),this.addLevel("log",!1);for(let q of this.levels)this.addLevel(q,!1);this.errorHandler=a,a?.setOptions({logFn:(...q)=>this.error(...q)});for(let[q,ve]of Object.entries(E))this.transports[q]=ve(this);r.instances[A]=this}static getInstance({logId:o}){return this.instances[o]||this.instances.default}addLevel(o,a=this.levels.length){a!==!1&&this.levels.splice(a,0,o),this[o]=(...p)=>this.logData(p,{level:o}),this.functions[o]=this[o]}catchErrors(o){return this.processMessage({data:["log.catchErrors is deprecated. Use log.errorHandler instead"],level:"warn"},{transports:["console"]}),this.errorHandler.startCatching(o)}create(o){return typeof o=="string"&&(o={logId:o}),new r({...o,errorHandler:this.errorHandler,initializeFn:this.initializeFn,isDev:this.isDev,transportFactories:this.transportFactories,variables:{...this.variables}})}compareLevels(o,a,p=this.levels){let g=p.indexOf(o),b=p.indexOf(a);return b===-1||g===-1?!0:b<=g}initialize({preload:o=!0,spyRendererConsole:a=!1}={}){this.initializeFn({logger:this,preload:o,spyRendererConsole:a})}logData(o,a={}){this.processMessage({data:o,...a})}processMessage(o,{transports:a=this.transports}={}){if(o.cmd==="errorHandler"){this.errorHandler.handle(o.error,{errorName:o.errorName,processType:"renderer",showDialog:!!o.showDialog});return}let p=o.level;this.allowUnknownLevel||(p=this.levels.includes(o.level)?o.level:"info");let g={date:new Date,...o,level:p,variables:{...this.variables,...o.variables}};for(let[b,A]of this.transportEntries(a))if(!(typeof A!="function"||A.level===!1)&&this.compareLevels(A.level,o.level))try{let E=this.hooks.reduce((N,q)=>N&&q(N,A,b),g);E&&A({...E,data:[...E.data]})}catch(E){this.processInternalErrorFn(E)}}processInternalErrorFn(o){}transportEntries(o=this.transports){return(Array.isArray(o)?o:Object.entries(o)).map(p=>{switch(typeof p){case"string":return this.transports[p]?[p,this.transports[p]]:null;case"function":return[p.name,p];default:return Array.isArray(p)?p:null}}).filter(Boolean)}};Rm.exports=pv});var Fm=ue((zx,Nm)=>{"use strict";var d1=console.error,hv=class{logFn=null;onError=null;showDialog=!1;constructor({logFn:o=null}={}){this.handleError=this.handleError.bind(this),this.handleRejection=this.handleRejection.bind(this),this.startCatching=this.startCatching.bind(this),this.logFn=o}handle(o,{logFn:a=this.logFn,errorName:p="",onError:g=this.onError,showDialog:b=this.showDialog}={}){try{g?.({error:o})!==!1&&a({error:o,errorName:p,showDialog:b})}catch{d1(o)}}setOptions({logFn:o,onError:a,showDialog:p}){typeof o=="function"&&(this.logFn=o),typeof a=="function"&&(this.onError=a),typeof p=="boolean"&&(this.showDialog=p)}startCatching({onError:o,showDialog:a}={}){this.isActive||(this.isActive=!0,this.setOptions({onError:o,showDialog:a}),window.addEventListener("error",p=>{p.preventDefault?.(),this.handleError(p.error||p)}),window.addEventListener("unhandledrejection",p=>{p.preventDefault?.(),this.handleRejection(p.reason||p)}))}handleError(o){this.handle(o,{errorName:"Unhandled"})}handleRejection(o){let a=o instanceof Error?o:new Error(JSON.stringify(o));this.handle(a,{errorName:"Unhandled rejection"})}};Nm.exports=hv});var Dm=ue((qx,Bm)=>{"use strict";Bm.exports=g1;var Lm={error:console.error,warn:console.warn,info:console.info,verbose:console.info,debug:console.debug,silly:console.debug,log:console.log};function g1(r){return Object.assign(o,{format:"{h}:{i}:{s}.{ms}{scope} \u203A {text}",formatDataFn({data:a=[],date:p=new Date,format:g=o.format,logId:b=r.logId,scope:A=r.scopeName,...E}){return typeof g=="function"?g({...E,data:a,date:p,logId:b,scope:A}):(typeof g!="string"||(a.unshift(g),typeof a[1]=="string"&&a[1].match(/%[1cdfiOos]/)&&(a=[`${a[0]} ${a[1]}`,...a.slice(2)]),a[0]=a[0].replace(/\{(\w+)}/g,(N,q)=>{switch(q){case"level":return E.level;case"logId":return b;case"scope":return A?` (${A})`:"";case"text":return"";case"y":return p.getFullYear().toString(10);case"m":return(p.getMonth()+1).toString(10).padStart(2,"0");case"d":return p.getDate().toString(10).padStart(2,"0");case"h":return p.getHours().toString(10).padStart(2,"0");case"i":return p.getMinutes().toString(10).padStart(2,"0");case"s":return p.getSeconds().toString(10).padStart(2,"0");case"ms":return p.getMilliseconds().toString(10).padStart(3,"0");case"iso":return p.toISOString();default:return E.variables?.[q]||N}}).trim()),a)},writeFn({level:a,data:p}){let g=Lm[a]||Lm.info;setTimeout(()=>g(...p))}});function o(a){o.writeFn({...a,data:o.formatDataFn(a)})}}});var Um=ue((Kx,Wm)=>{"use strict";Wm.exports=v1;var y1=new Set([Promise,WeakMap,WeakSet]);function v1(r){return Object.assign(o,{depth:5,serializeFn(a,{depth:p=5,seen:g=new WeakSet}={}){return p<1?`[${typeof a}]`:g.has(a)?a:["function","symbol"].includes(typeof a)?a.toString():Object(a)!==a?a:y1.has(a.constructor)?`[${a.constructor.name}]`:Array.isArray(a)?a.map(b=>o.serializeFn(b,{level:p-1,seen:g})):a instanceof Error?a.stack:a instanceof Map?new Map(Array.from(a).map(([b,A])=>[o.serializeFn(b,{level:p-1,seen:g}),o.serializeFn(A,{level:p-1,seen:g})])):a instanceof Set?new Set(Array.from(a).map(b=>o.serializeFn(b,{level:p-1,seen:g}))):(g.add(a),Object.fromEntries(Object.entries(a).map(([b,A])=>[b,o.serializeFn(A,{level:p-1,seen:g})])))}});function o(a){if(!window.__electronLog){r.processMessage({data:["electron-log: logger isn't initialized in the main process"],level:"error"},{transports:["console"]});return}try{__electronLog.sendToMain(o.serializeFn(a,{depth:o.depth}))}catch(p){r.transports.console({data:["electronLog.transports.ipc",p,"data:",a.data],level:"error"})}}}});var km=ue((jx,Ma)=>{"use strict";var dv=Mm(),m1=Fm(),_1=Dm(),w1=Um();Ma.exports=b1();Ma.exports.Logger=dv;Ma.exports.default=Ma.exports;function b1(){let r=new dv({allowUnknownLevel:!0,errorHandler:new m1,initializeFn:()=>{},logId:"default",transportFactories:{console:_1,ipc:w1},variables:{processType:"renderer"}});return r.errorHandler.setOptions({logFn({error:o,errorName:a,showDialog:p}){r.transports.console({data:[a,o].filter(Boolean),level:"error"}),r.transports.ipc({cmd:"errorHandler",error:{cause:o?.cause,code:o?.code,name:o?.name,message:o?.message,stack:o?.stack},errorName:a,logId:r.logId,showDialog:p})}}),typeof window=="object"&&window.addEventListener("message",o=>{let{cmd:a,logId:p,...g}=o.data||{},b=dv.getInstance({logId:p});a==="message"&&b.processMessage(g,{transports:["console"]})}),new Proxy(r,{get(o,a){return typeof o[a]<"u"?o[a]:(...p)=>r.logData(p,{level:a})}})}});var Xa=ue((yv,vv)=>{(function(r,o){typeof yv=="object"&&typeof vv<"u"?vv.exports=o():typeof define=="function"&&define.amd?define(o):(r=typeof globalThis<"u"?globalThis:r||self,r.Typeson=o())})(yv,function(){"use strict";function r(x){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?r=function(P){return typeof P}:r=function(P){return P&&typeof Symbol=="function"&&P.constructor===Symbol&&P!==Symbol.prototype?"symbol":typeof P},r(x)}function o(x,P){if(!(x instanceof P))throw new TypeError("Cannot call a class as a function")}function a(x,P){for(var O=0;O<P.length;O++){var F=P[O];F.enumerable=F.enumerable||!1,F.configurable=!0,"value"in F&&(F.writable=!0),Object.defineProperty(x,F.key,F)}}function p(x,P,O){return P&&a(x.prototype,P),O&&a(x,O),x}function g(x,P,O){return P in x?Object.defineProperty(x,P,{value:O,enumerable:!0,configurable:!0,writable:!0}):x[P]=O,x}function b(x,P){var O=Object.keys(x);if(Object.getOwnPropertySymbols){var F=Object.getOwnPropertySymbols(x);P&&(F=F.filter(function(L){return Object.getOwnPropertyDescriptor(x,L).enumerable})),O.push.apply(O,F)}return O}function A(x){for(var P=1;P<arguments.length;P++){var O=arguments[P]!=null?arguments[P]:{};P%2?b(Object(O),!0).forEach(function(F){g(x,F,O[F])}):Object.getOwnPropertyDescriptors?Object.defineProperties(x,Object.getOwnPropertyDescriptors(O)):b(Object(O)).forEach(function(F){Object.defineProperty(x,F,Object.getOwnPropertyDescriptor(O,F))})}return x}function E(x,P){return ve(x)||Oe(x,P)||sn(x,P)||fi()}function N(x){return q(x)||Le(x)||sn(x)||yn()}function q(x){if(Array.isArray(x))return me(x)}function ve(x){if(Array.isArray(x))return x}function Le(x){if(typeof Symbol<"u"&&Symbol.iterator in Object(x))return Array.from(x)}function Oe(x,P){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(x)))){var O=[],F=!0,L=!1,ce=void 0;try{for(var vn=x[Symbol.iterator](),re;!(F=(re=vn.next()).done)&&(O.push(re.value),!(P&&O.length===P));F=!0);}catch(se){L=!0,ce=se}finally{try{!F&&vn.return!=null&&vn.return()}finally{if(L)throw ce}}return O}}function sn(x,P){if(x){if(typeof x=="string")return me(x,P);var O=Object.prototype.toString.call(x).slice(8,-1);if(O==="Object"&&x.constructor&&(O=x.constructor.name),O==="Map"||O==="Set")return Array.from(x);if(O==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(O))return me(x,P)}}function me(x,P){(P==null||P>x.length)&&(P=x.length);for(var O=0,F=new Array(P);O<P;O++)F[O]=x[O];return F}function yn(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function fi(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var te=function x(P){o(this,x),this.p=new Promise(P)};te.__typeson__type__="TypesonPromise",typeof Symbol<"u"&&(te.prototype[Symbol.toStringTag]="TypesonPromise"),te.prototype.then=function(x,P){var O=this;return new te(function(F,L){O.p.then(function(ce){F(x?x(ce):ce)}).catch(function(ce){return P?P(ce):Promise.reject(ce)}).then(F,L)})},te.prototype.catch=function(x){return this.then(null,x)},te.resolve=function(x){return new te(function(P){P(x)})},te.reject=function(x){return new te(function(P,O){O(x)})},["all","race","allSettled"].forEach(function(x){te[x]=function(P){return new te(function(O,F){Promise[x](P.map(function(L){return L&&L.constructor&&L.constructor.__typeson__type__==="TypesonPromise"?L.p:L})).then(O,F)})}});var ft={},an=ft.toString,it={}.hasOwnProperty,fn=Object.getPrototypeOf,_t=it.toString;function $t(x,P){return fr(x)&&typeof x.then=="function"&&(!P||typeof x.catch=="function")}function ci(x){return an.call(x).slice(8,-1)}function cn(x,P){if(!x||r(x)!=="object")return!1;var O=fn(x);if(!O)return P===null;var F=it.call(O,"constructor")&&O.constructor;return typeof F!="function"?P===null:P===F||P!==null&&_t.call(F)===_t.call(P)||typeof P=="function"&&typeof F.__typeson__type__=="string"&&F.__typeson__type__===P.__typeson__type__}function ar(x){if(!x||ci(x)!=="Object")return!1;var P=fn(x);return P?cn(x,Object):!0}function No(x){if(!x||ci(x)!=="Object")return!1;var P=fn(x);return P?cn(x,Object)||No(P):!0}function fr(x){return x&&r(x)==="object"}function oi(x){return x.replace(/~/g,"~0").replace(/\./g,"~1")}function cr(x){return x.replace(/~1/g,".").replace(/~0/g,"~")}function mn(x,P){if(P==="")return x;var O=P.indexOf(".");if(O>-1){var F=x[cr(P.slice(0,O))];return F===void 0?void 0:mn(F,P.slice(O+1))}return x[cr(P)]}function _n(x,P,O){if(P==="")return O;var F=P.indexOf(".");if(F>-1){var L=x[cr(P.slice(0,F))];return _n(L,P.slice(F+1),O)}return x[cr(P)]=O,x}function tu(x){return x===null?"null":Array.isArray(x)?"array":r(x)}function wt(x,P,O){return O?P?P(x):x:((!x||!x.then)&&(x=Promise.resolve(x)),P?x.then(P):x)}var Ve=Object.keys,lr=Array.isArray,li={}.hasOwnProperty,Fo=["type","replaced","iterateIn","iterateUnsetNumeric"];function ot(x){return function(){for(var P=[],O=0;O<arguments.length;O++)P[O]=arguments[O];try{return Promise.resolve(x.apply(this,P))}catch(F){return Promise.reject(F)}}}function Gt(x,P){var O=x();return O&&O.then?O.then(P):P(O)}function ru(x,P){if(x.keypath==="")return-1;var O=x.keypath.match(/\./g)||0,F=P.keypath.match(/\./g)||0;return O&&(O=O.length),F&&(F=F.length),O>F?-1:O<F?1:x.keypath<P.keypath?-1:x.keypath>P.keypath}var Je=function(){function x(P){o(this,x),this.options=P,this.plainObjectReplacers=[],this.nonplainObjectReplacers=[],this.revivers={},this.types={}}return p(x,[{key:"stringify",value:function(O,F,L,ce){ce=A(A(A({},this.options),ce),{},{stringification:!0});var vn=this.encapsulate(O,null,ce);return lr(vn)?JSON.stringify(vn[0],F,L):vn.then(function(re){return JSON.stringify(re,F,L)})}},{key:"stringifySync",value:function(O,F,L,ce){return this.stringify(O,F,L,A(A({throwOnBadSyncType:!0},ce),{},{sync:!0}))}},{key:"stringifyAsync",value:function(O,F,L,ce){return this.stringify(O,F,L,A(A({throwOnBadSyncType:!0},ce),{},{sync:!1}))}},{key:"parse",value:function(O,F,L){return L=A(A(A({},this.options),L),{},{parse:!0}),this.revive(JSON.parse(O,F),L)}},{key:"parseSync",value:function(O,F,L){return this.parse(O,F,A(A({throwOnBadSyncType:!0},L),{},{sync:!0}))}},{key:"parseAsync",value:function(O,F,L){return this.parse(O,F,A(A({throwOnBadSyncType:!0},L),{},{sync:!1}))}},{key:"specialTypeNames",value:function(O,F){var L=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return L.returnTypeNames=!0,this.encapsulate(O,F,L)}},{key:"rootTypeName",value:function(O,F){var L=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return L.iterateNone=!0,this.encapsulate(O,F,L)}},{key:"encapsulate",value:function(O,F,L){var ce=ot(function(K,k){return wt(Promise.all(k.map(function(le){return le[1].p})),function(le){return wt(Promise.all(le.map(ot(function(Z){var de=!1,Se=[],bn=k.splice(0,1),An=E(bn,1),st=An[0],Sn=E(st,7),xe=Sn[0],Kn=Sn[2],Cn=Sn[3],$n=Sn[4],at=Sn[5],Ze=Sn[6],Gn=he(xe,Z,Kn,Cn,Se,!0,Ze),ui=cn(Gn,te);return Gt(function(){if(xe&&ui)return wt(Gn.p,function(pr){return $n[at]=pr,de=!0,ce(K,Se)})},function(pr){return de?pr:(xe?$n[at]=Gn:ui?K=Gn.p:K=Gn,ce(K,Se))})}))),function(){return K})})});L=A(A({sync:!0},this.options),L);var vn=L,re=vn.sync,se=this,qn={},On=[],Te=[],Pn=[],wn="cyclic"in L?L.cyclic:!0,ur=L,Tn=ur.encapsulateObserver,bt=he("",O,wn,F||{},Pn);function Re(K){var k=Object.values(qn);if(L.iterateNone)return k.length?k[0]:x.getJSONType(K);if(k.length){if(L.returnTypeNames)return N(new Set(k));!K||!ar(K)||li.call(K,"$types")?K={$:K,$types:{$:qn}}:K.$types=qn}else fr(K)&&li.call(K,"$types")&&(K={$:K,$types:!0});return L.returnTypeNames?!1:K}function pe(K,k,le){Object.assign(K,k);var Z=Fo.map(function(de){var Se=K[de];return delete K[de],Se});le(),Fo.forEach(function(de,Se){K[de]=Z[Se]})}function he(K,k,le,Z,de,Se,bn){var An,st={},Sn=r(k),xe=Tn?function(Wt){var ln=bn||Z.type||x.getJSONType(k);Tn(Object.assign(Wt||st,{keypath:K,value:k,cyclic:le,stateObj:Z,promisesData:de,resolvingTypesonPromise:Se,awaitingTypesonPromise:cn(k,te)},{type:ln}))}:null;if(["string","boolean","number","undefined"].includes(Sn))return k===void 0||Number.isNaN(k)||k===Number.NEGATIVE_INFINITY||k===Number.POSITIVE_INFINITY?(An=Z.replaced?k:Be(K,k,Z,de,!1,Se,xe),An!==k&&(st={replaced:An})):An=k,xe&&xe(),An;if(k===null)return xe&&xe(),k;if(le&&!Z.iterateIn&&!Z.iterateUnsetNumeric&&k&&r(k)==="object"){var Kn=On.indexOf(k);if(Kn<0)le===!0&&(On.push(k),Te.push(K));else return qn[K]="#",xe&&xe({cyclicKeypath:Te[Kn]}),"#"+Te[Kn]}var Cn=ar(k),$n=lr(k),at=(Cn||$n)&&(!se.plainObjectReplacers.length||Z.replaced)||Z.iterateIn?k:Be(K,k,Z,de,Cn||$n,null,xe),Ze;if(at!==k?(An=at,st={replaced:at}):K===""&&cn(k,te)?(de.push([K,k,le,Z,void 0,void 0,Z.type]),An=k):$n&&Z.iterateIn!=="object"||Z.iterateIn==="array"?(Ze=new Array(k.length),st={clone:Ze}):!["function","symbol"].includes(r(k))&&!("toJSON"in k)&&!cn(k,te)&&!cn(k,Promise)&&!cn(k,ArrayBuffer)||Cn||Z.iterateIn==="object"?(Ze={},Z.addLength&&(Ze.length=k.length),st={clone:Ze}):An=k,xe&&xe(),L.iterateNone)return Ze||An;if(!Ze)return An;if(Z.iterateIn){var Gn=function(ln){var sr={ownKeys:li.call(k,ln)};pe(Z,sr,function(){var At=K+(K?".":"")+oi(ln),St=he(At,k[ln],!!le,Z,de,Se);cn(St,te)?de.push([At,St,!!le,Z,Ze,ln,Z.type]):St!==void 0&&(Ze[ln]=St)})};for(var ui in k)Gn(ui);xe&&xe({endIterateIn:!0,end:!0})}else Ve(k).forEach(function(Wt){var ln=K+(K?".":"")+oi(Wt),sr={ownKeys:!0};pe(Z,sr,function(){var At=he(ln,k[Wt],!!le,Z,de,Se);cn(At,te)?de.push([ln,At,!!le,Z,Ze,Wt,Z.type]):At!==void 0&&(Ze[Wt]=At)})}),xe&&xe({endIterateOwn:!0,end:!0});if(Z.iterateUnsetNumeric){for(var pr=k.length,iu=function(ln){if(!(ln in k)){var sr=K+(K?".":"")+ln,At={ownKeys:!1};pe(Z,At,function(){var St=he(sr,void 0,!!le,Z,de,Se);cn(St,te)?de.push([sr,St,!!le,Z,Ze,ln,Z.type]):St!==void 0&&(Ze[ln]=St)})}},Ht=0;Ht<pr;Ht++)iu(Ht);xe&&xe({endIterateUnsetNumeric:!0,end:!0})}return Ze}function Be(K,k,le,Z,de,Se,bn){for(var An=de?se.plainObjectReplacers:se.nonplainObjectReplacers,st=An.length;st--;){var Sn=An[st];if(Sn.test(k,le)){var xe=Sn.type;if(se.revivers[xe]){var Kn=qn[K];qn[K]=Kn?[xe].concat(Kn):xe}if(Object.assign(le,{type:xe,replaced:!0}),(re||!Sn.replaceAsync)&&!Sn.replace)return bn&&bn({typeDetected:!0}),he(K,k,wn&&"readonly",le,Z,Se,xe);bn&&bn({replacing:!0});var Cn=re||!Sn.replaceAsync?"replace":"replaceAsync";return he(K,Sn[Cn](k,le),wn&&"readonly",le,Z,Se,xe)}}return k}return Pn.length?re&&L.throwOnBadSyncType?function(){throw new TypeError("Sync method requested but async result obtained")}():Promise.resolve(ce(bt,Pn)).then(Re):!re&&L.throwOnBadSyncType?function(){throw new TypeError("Async method requested but sync result obtained")}():L.stringification&&re?[Re(bt)]:re?Re(bt):Promise.resolve(Re(bt))}},{key:"encapsulateSync",value:function(O,F,L){return this.encapsulate(O,F,A(A({throwOnBadSyncType:!0},L),{},{sync:!0}))}},{key:"encapsulateAsync",value:function(O,F,L){return this.encapsulate(O,F,A(A({throwOnBadSyncType:!0},L),{},{sync:!1}))}},{key:"revive",value:function(O,F){var L=O&&O.$types;if(!L)return O;if(L===!0)return O.$;F=A(A({sync:!0},this.options),F);var ce=F,vn=ce.sync,re=[],se={},qn=!0;L.$&&ar(L.$)&&(O=O.$,L=L.$,qn=!1);var On=this;function Te(pe,he){var Be=On.revivers[pe]||[],K=E(Be,1),k=K[0];if(!k)throw new Error("Unregistered type: "+pe);return vn&&!("revive"in k)?he:k[vn&&k.revive?"revive":!vn&&k.reviveAsync?"reviveAsync":"revive"](he,se)}function Pn(){var pe=[];if(Object.entries(L).forEach(function(he){var Be=E(he,2),K=Be[0],k=Be[1];k!=="#"&&[].concat(k).forEach(function(le){var Z=On.revivers[le]||[null,{}],de=E(Z,2),Se=de[1].plain;Se&&(pe.push({keypath:K,type:le}),delete L[K])})}),!!pe.length)return pe.sort(ru).reduce(function he(Be,K){var k=K.keypath,le=K.type;if($t(Be))return Be.then(function(Se){return he(Se,{keypath:k,type:le})});var Z=mn(O,k);if(Z=Te(le,Z),cn(Z,te))return Z.then(function(Se){var bn=_n(O,k,Se);bn===Se&&(O=bn)});var de=_n(O,k,Z);de===Z&&(O=de)},void 0)}var wn=[];function ur(pe,he,Be,K,k){if(!(qn&&pe==="$types")){var le=L[pe],Z=lr(he);if(Z||ar(he)){var de=Z?new Array(he.length):{};for(Ve(he).forEach(function(Cn){var $n=ur(pe+(pe?".":"")+oi(Cn),he[Cn],Be||de,de,Cn),at=function(Gn){return cn(Gn,ut)?de[Cn]=void 0:Gn!==void 0&&(de[Cn]=Gn),Gn};cn($n,te)?wn.push($n.then(function(Ze){return at(Ze)})):at($n)}),he=de;re.length;){var Se=E(re[0],4),bn=Se[0],An=Se[1],st=Se[2],Sn=Se[3],xe=mn(bn,An);if(xe!==void 0)st[Sn]=xe;else break;re.splice(0,1)}}if(!le)return he;if(le==="#"){var Kn=mn(Be,he.slice(1));return Kn===void 0&&re.push([Be,he.slice(1),K,k]),Kn}return[].concat(le).reduce(function Cn($n,at){return cn($n,te)?$n.then(function(Ze){return Cn(Ze,at)}):Te(at,$n)},he)}}function Tn(pe){return cn(pe,ut)?void 0:pe}var bt=Pn(),Re;return cn(bt,te)?Re=bt.then(function(){return O}):(Re=ur("",O,null),wn.length&&(Re=te.resolve(Re).then(function(pe){return te.all([pe].concat(wn))}).then(function(pe){var he=E(pe,1),Be=he[0];return Be}))),$t(Re)?vn&&F.throwOnBadSyncType?function(){throw new TypeError("Sync method requested but async result obtained")}():cn(Re,te)?Re.p.then(Tn):Re:!vn&&F.throwOnBadSyncType?function(){throw new TypeError("Async method requested but sync result obtained")}():vn?Tn(Re):Promise.resolve(Tn(Re))}},{key:"reviveSync",value:function(O,F){return this.revive(O,A(A({throwOnBadSyncType:!0},F),{},{sync:!0}))}},{key:"reviveAsync",value:function(O,F){return this.revive(O,A(A({throwOnBadSyncType:!0},F),{},{sync:!1}))}},{key:"register",value:function(O,F){return F=F||{},[].concat(O).forEach(function L(ce){var vn=this;if(lr(ce))return ce.map(function(re){return L.call(vn,re)});ce&&Ve(ce).forEach(function(re){if(re==="#")throw new TypeError("# cannot be used as a type name as it is reserved for cyclic objects");if(x.JSON_TYPES.includes(re))throw new TypeError("Plain JSON object types are reserved as type names");var se=ce[re],qn=se&&se.testPlainObjects?this.plainObjectReplacers:this.nonplainObjectReplacers,On=qn.filter(function(Be){return Be.type===re});if(On.length&&(qn.splice(qn.indexOf(On[0]),1),delete this.revivers[re],delete this.types[re]),typeof se=="function"){var Te=se;se={test:function(K){return K&&K.constructor===Te},replace:function(K){return A({},K)},revive:function(K){return Object.assign(Object.create(Te.prototype),K)}}}else if(lr(se)){var Pn=se,wn=E(Pn,3),ur=wn[0],Tn=wn[1],bt=wn[2];se={test:ur,replace:Tn,revive:bt}}if(!(!se||!se.test)){var Re={type:re,test:se.test.bind(se)};se.replace&&(Re.replace=se.replace.bind(se)),se.replaceAsync&&(Re.replaceAsync=se.replaceAsync.bind(se));var pe=typeof F.fallback=="number"?F.fallback:F.fallback?0:Number.POSITIVE_INFINITY;if(se.testPlainObjects?this.plainObjectReplacers.splice(pe,0,Re):this.nonplainObjectReplacers.splice(pe,0,Re),se.revive||se.reviveAsync){var he={};se.revive&&(he.revive=se.revive.bind(se)),se.reviveAsync&&(he.reviveAsync=se.reviveAsync.bind(se)),this.revivers[re]=[he,{plain:se.testPlainObjects}]}this.types[re]=se}},this)},this),this}}]),x}(),ut=function x(){o(this,x)};return ut.__typeson__type__="TypesonUndefined",Je.Undefined=ut,Je.Promise=te,Je.isThenable=$t,Je.toStringTag=ci,Je.hasConstructorOf=cn,Je.isObject=fr,Je.isPlainObject=ar,Je.isUserObject=No,Je.escapeKeyPathComponent=oi,Je.unescapeKeyPathComponent=cr,Je.getByKeyPath=mn,Je.getJSONType=tu,Je.JSON_TYPES=["null","boolean","number","string","array","object"],Je})});var Km=ue((iE,qm)=>{function Hn(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}qm.exports=Hn;Hn.EventEmitter=Hn;Hn.prototype._events=void 0;Hn.prototype._maxListeners=void 0;Hn.defaultMaxListeners=10;Hn.prototype.setMaxListeners=function(r){if(!A1(r)||r<0||isNaN(r))throw TypeError("n must be a positive number");return this._maxListeners=r,this};Hn.prototype.emit=function(r){var o,a,p,g,b,A;if(this._events||(this._events={}),r==="error"&&(!this._events.error||Fa(this._events.error)&&!this._events.error.length)){if(o=arguments[1],o instanceof Error)throw o;var E=new Error('Uncaught, unspecified "error" event. ('+o+")");throw E.context=o,E}if(a=this._events[r],zm(a))return!1;if(ni(a))switch(arguments.length){case 1:a.call(this);break;case 2:a.call(this,arguments[1]);break;case 3:a.call(this,arguments[1],arguments[2]);break;default:g=Array.prototype.slice.call(arguments,1),a.apply(this,g)}else if(Fa(a))for(g=Array.prototype.slice.call(arguments,1),A=a.slice(),p=A.length,b=0;b<p;b++)A[b].apply(this,g);return!0};Hn.prototype.addListener=function(r,o){var a;if(!ni(o))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",r,ni(o.listener)?o.listener:o),this._events[r]?Fa(this._events[r])?this._events[r].push(o):this._events[r]=[this._events[r],o]:this._events[r]=o,Fa(this._events[r])&&!this._events[r].warned&&(zm(this._maxListeners)?a=Hn.defaultMaxListeners:a=this._maxListeners,a&&a>0&&this._events[r].length>a&&(this._events[r].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[r].length),typeof console.trace=="function"&&console.trace())),this};Hn.prototype.on=Hn.prototype.addListener;Hn.prototype.once=function(r,o){if(!ni(o))throw TypeError("listener must be a function");var a=!1;function p(){this.removeListener(r,p),a||(a=!0,o.apply(this,arguments))}return p.listener=o,this.on(r,p),this};Hn.prototype.removeListener=function(r,o){var a,p,g,b;if(!ni(o))throw TypeError("listener must be a function");if(!this._events||!this._events[r])return this;if(a=this._events[r],g=a.length,p=-1,a===o||ni(a.listener)&&a.listener===o)delete this._events[r],this._events.removeListener&&this.emit("removeListener",r,o);else if(Fa(a)){for(b=g;b-- >0;)if(a[b]===o||a[b].listener&&a[b].listener===o){p=b;break}if(p<0)return this;a.length===1?(a.length=0,delete this._events[r]):a.splice(p,1),this._events.removeListener&&this.emit("removeListener",r,o)}return this};Hn.prototype.removeAllListeners=function(r){var o,a;if(!this._events)return this;if(!this._events.removeListener)return arguments.length===0?this._events={}:this._events[r]&&delete this._events[r],this;if(arguments.length===0){for(o in this._events)o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events={},this}if(a=this._events[r],ni(a))this.removeListener(r,a);else if(a)for(;a.length;)this.removeListener(r,a[a.length-1]);return delete this._events[r],this};Hn.prototype.listeners=function(r){var o;return!this._events||!this._events[r]?o=[]:ni(this._events[r])?o=[this._events[r]]:o=this._events[r].slice(),o};Hn.prototype.listenerCount=function(r){if(this._events){var o=this._events[r];if(ni(o))return 1;if(o)return o.length}return 0};Hn.listenerCount=function(r,o){return r.listenerCount(o)};function ni(r){return typeof r=="function"}function A1(r){return typeof r=="number"}function Fa(r){return typeof r=="object"&&r!==null}function zm(r){return r===void 0}});var Rv=ue((DE,p_)=>{"use strict";p_.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var o={},a=Symbol("test"),p=Object(a);if(typeof a=="string"||Object.prototype.toString.call(a)!=="[object Symbol]"||Object.prototype.toString.call(p)!=="[object Symbol]")return!1;var g=42;o[a]=g;for(a in o)return!1;if(typeof Object.keys=="function"&&Object.keys(o).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(o).length!==0)return!1;var b=Object.getOwnPropertySymbols(o);if(b.length!==1||b[0]!==a||!Object.prototype.propertyIsEnumerable.call(o,a))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var A=Object.getOwnPropertyDescriptor(o,a);if(A.value!==g||A.enumerable!==!0)return!1}return!0}});var of=ue((WE,h_)=>{"use strict";var T1=Rv();h_.exports=function(){return T1()&&!!Symbol.toStringTag}});var g_=ue((UE,d_)=>{"use strict";d_.exports=Error});var v_=ue((kE,y_)=>{"use strict";y_.exports=EvalError});var __=ue(($E,m_)=>{"use strict";m_.exports=RangeError});var b_=ue((GE,w_)=>{"use strict";w_.exports=ReferenceError});var Mv=ue((HE,A_)=>{"use strict";A_.exports=SyntaxError});var Da=ue((zE,S_)=>{"use strict";S_.exports=TypeError});var E_=ue((qE,x_)=>{"use strict";x_.exports=URIError});var T_=ue((KE,O_)=>{"use strict";var I_=typeof Symbol<"u"&&Symbol,P1=Rv();O_.exports=function(){return typeof I_!="function"||typeof Symbol!="function"||typeof I_("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:P1()}});var C_=ue((jE,P_)=>{"use strict";var Nv={__proto__:null,foo:{}},C1=Object;P_.exports=function(){return{__proto__:Nv}.foo===Nv.foo&&!(Nv instanceof C1)}});var N_=ue((JE,M_)=>{"use strict";var R1="Function.prototype.bind called on incompatible ",M1=Object.prototype.toString,N1=Math.max,F1="[object Function]",R_=function(o,a){for(var p=[],g=0;g<o.length;g+=1)p[g]=o[g];for(var b=0;b<a.length;b+=1)p[b+o.length]=a[b];return p},L1=function(o,a){for(var p=[],g=a||0,b=0;g<o.length;g+=1,b+=1)p[b]=o[g];return p},B1=function(r,o){for(var a="",p=0;p<r.length;p+=1)a+=r[p],p+1<r.length&&(a+=o);return a};M_.exports=function(o){var a=this;if(typeof a!="function"||M1.apply(a)!==F1)throw new TypeError(R1+a);for(var p=L1(arguments,1),g,b=function(){if(this instanceof g){var ve=a.apply(this,R_(p,arguments));return Object(ve)===ve?ve:this}return a.apply(o,R_(p,arguments))},A=N1(0,a.length-p.length),E=[],N=0;N<A;N++)E[N]="$"+N;if(g=Function("binder","return function ("+B1(E,",")+"){ return binder.apply(this,arguments); }")(b),a.prototype){var q=function(){};q.prototype=a.prototype,g.prototype=new q,q.prototype=null}return g}});var uf=ue((VE,F_)=>{"use strict";var D1=N_();F_.exports=Function.prototype.bind||D1});var B_=ue((ZE,L_)=>{"use strict";var W1=Function.prototype.call,U1=Object.prototype.hasOwnProperty,k1=uf();L_.exports=k1.call(W1,U1)});var $o=ue((YE,$_)=>{"use strict";var Ee,$1=g_(),G1=v_(),H1=__(),z1=b_(),ko=Mv(),Uo=Da(),q1=E_(),k_=Function,Fv=function(r){try{return k_('"use strict"; return ('+r+").constructor;")()}catch{}},Io=Object.getOwnPropertyDescriptor;if(Io)try{Io({},"")}catch{Io=null}var Lv=function(){throw new Uo},K1=Io?function(){try{return arguments.callee,Lv}catch{try{return Io(arguments,"callee").get}catch{return Lv}}}():Lv,Do=T_()(),j1=C_()(),zn=Object.getPrototypeOf||(j1?function(r){return r.__proto__}:null),Wo={},J1=typeof Uint8Array>"u"||!zn?Ee:zn(Uint8Array),Oo={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?Ee:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Ee:ArrayBuffer,"%ArrayIteratorPrototype%":Do&&zn?zn([][Symbol.iterator]()):Ee,"%AsyncFromSyncIteratorPrototype%":Ee,"%AsyncFunction%":Wo,"%AsyncGenerator%":Wo,"%AsyncGeneratorFunction%":Wo,"%AsyncIteratorPrototype%":Wo,"%Atomics%":typeof Atomics>"u"?Ee:Atomics,"%BigInt%":typeof BigInt>"u"?Ee:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?Ee:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?Ee:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?Ee:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":$1,"%eval%":eval,"%EvalError%":G1,"%Float32Array%":typeof Float32Array>"u"?Ee:Float32Array,"%Float64Array%":typeof Float64Array>"u"?Ee:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?Ee:FinalizationRegistry,"%Function%":k_,"%GeneratorFunction%":Wo,"%Int8Array%":typeof Int8Array>"u"?Ee:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Ee:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Ee:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Do&&zn?zn(zn([][Symbol.iterator]())):Ee,"%JSON%":typeof JSON=="object"?JSON:Ee,"%Map%":typeof Map>"u"?Ee:Map,"%MapIteratorPrototype%":typeof Map>"u"||!Do||!zn?Ee:zn(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Ee:Promise,"%Proxy%":typeof Proxy>"u"?Ee:Proxy,"%RangeError%":H1,"%ReferenceError%":z1,"%Reflect%":typeof Reflect>"u"?Ee:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Ee:Set,"%SetIteratorPrototype%":typeof Set>"u"||!Do||!zn?Ee:zn(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Ee:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Do&&zn?zn(""[Symbol.iterator]()):Ee,"%Symbol%":Do?Symbol:Ee,"%SyntaxError%":ko,"%ThrowTypeError%":K1,"%TypedArray%":J1,"%TypeError%":Uo,"%Uint8Array%":typeof Uint8Array>"u"?Ee:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?Ee:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?Ee:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?Ee:Uint32Array,"%URIError%":q1,"%WeakMap%":typeof WeakMap>"u"?Ee:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Ee:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Ee:WeakSet};if(zn)try{null.error}catch(r){D_=zn(zn(r)),Oo["%Error.prototype%"]=D_}var D_,V1=function r(o){var a;if(o==="%AsyncFunction%")a=Fv("async function () {}");else if(o==="%GeneratorFunction%")a=Fv("function* () {}");else if(o==="%AsyncGeneratorFunction%")a=Fv("async function* () {}");else if(o==="%AsyncGenerator%"){var p=r("%AsyncGeneratorFunction%");p&&(a=p.prototype)}else if(o==="%AsyncIteratorPrototype%"){var g=r("%AsyncGenerator%");g&&zn&&(a=zn(g.prototype))}return Oo[o]=a,a},W_={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Wa=uf(),sf=B_(),Z1=Wa.call(Function.call,Array.prototype.concat),Y1=Wa.call(Function.apply,Array.prototype.splice),U_=Wa.call(Function.call,String.prototype.replace),af=Wa.call(Function.call,String.prototype.slice),X1=Wa.call(Function.call,RegExp.prototype.exec),Q1=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,eb=/\\(\\)?/g,nb=function(o){var a=af(o,0,1),p=af(o,-1);if(a==="%"&&p!=="%")throw new ko("invalid intrinsic syntax, expected closing `%`");if(p==="%"&&a!=="%")throw new ko("invalid intrinsic syntax, expected opening `%`");var g=[];return U_(o,Q1,function(b,A,E,N){g[g.length]=E?U_(N,eb,"$1"):A||b}),g},tb=function(o,a){var p=o,g;if(sf(W_,p)&&(g=W_[p],p="%"+g[0]+"%"),sf(Oo,p)){var b=Oo[p];if(b===Wo&&(b=V1(p)),typeof b>"u"&&!a)throw new Uo("intrinsic "+o+" exists, but is not available. Please file an issue!");return{alias:g,name:p,value:b}}throw new ko("intrinsic "+o+" does not exist!")};$_.exports=function(o,a){if(typeof o!="string"||o.length===0)throw new Uo("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof a!="boolean")throw new Uo('"allowMissing" argument must be a boolean');if(X1(/^%?[^%]*%?$/,o)===null)throw new ko("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var p=nb(o),g=p.length>0?p[0]:"",b=tb("%"+g+"%",a),A=b.name,E=b.value,N=!1,q=b.alias;q&&(g=q[0],Y1(p,Z1([0,1],q)));for(var ve=1,Le=!0;ve<p.length;ve+=1){var Oe=p[ve],sn=af(Oe,0,1),me=af(Oe,-1);if((sn==='"'||sn==="'"||sn==="`"||me==='"'||me==="'"||me==="`")&&sn!==me)throw new ko("property names with quotes must have matching quotes");if((Oe==="constructor"||!Le)&&(N=!0),g+="."+Oe,A="%"+g+"%",sf(Oo,A))E=Oo[A];else if(E!=null){if(!(Oe in E)){if(!a)throw new Uo("base intrinsic for "+o+" exists, but the property is not available.");return}if(Io&&ve+1>=p.length){var yn=Io(E,Oe);Le=!!yn,Le&&"get"in yn&&!("originalValue"in yn.get)?E=yn.get:E=E[Oe]}else Le=sf(E,Oe),E=E[Oe];Le&&!N&&(Oo[A]=E)}}return E}});var cf=ue((XE,G_)=>{"use strict";var rb=$o(),ff=rb("%Object.defineProperty%",!0)||!1;if(ff)try{ff({},"a",{value:1})}catch{ff=!1}G_.exports=ff});var pf=ue((QE,H_)=>{"use strict";var ib=$o(),lf=ib("%Object.getOwnPropertyDescriptor%",!0);if(lf)try{lf([],"length")}catch{lf=null}H_.exports=lf});var j_=ue((eI,K_)=>{"use strict";var z_=cf(),ob=Mv(),Go=Da(),q_=pf();K_.exports=function(o,a,p){if(!o||typeof o!="object"&&typeof o!="function")throw new Go("`obj` must be an object or a function`");if(typeof a!="string"&&typeof a!="symbol")throw new Go("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new Go("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new Go("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new Go("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new Go("`loose`, if provided, must be a boolean");var g=arguments.length>3?arguments[3]:null,b=arguments.length>4?arguments[4]:null,A=arguments.length>5?arguments[5]:null,E=arguments.length>6?arguments[6]:!1,N=!!q_&&q_(o,a);if(z_)z_(o,a,{configurable:A===null&&N?N.configurable:!A,enumerable:g===null&&N?N.enumerable:!g,value:p,writable:b===null&&N?N.writable:!b});else if(E||!g&&!b&&!A)o[a]=p;else throw new ob("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")}});var Z_=ue((nI,V_)=>{"use strict";var Bv=cf(),J_=function(){return!!Bv};J_.hasArrayLengthDefineBug=function(){if(!Bv)return null;try{return Bv([],"length",{value:1}).length!==1}catch{return!0}};V_.exports=J_});var n0=ue((tI,e0)=>{"use strict";var ub=$o(),Y_=j_(),sb=Z_()(),X_=pf(),Q_=Da(),ab=ub("%Math.floor%");e0.exports=function(o,a){if(typeof o!="function")throw new Q_("`fn` is not a function");if(typeof a!="number"||a<0||a>4294967295||ab(a)!==a)throw new Q_("`length` must be a positive 32-bit integer");var p=arguments.length>2&&!!arguments[2],g=!0,b=!0;if("length"in o&&X_){var A=X_(o,"length");A&&!A.configurable&&(g=!1),A&&!A.writable&&(b=!1)}return(g||b||!p)&&(sb?Y_(o,"length",a,!0,!0):Y_(o,"length",a)),o}});var Wv=ue((rI,hf)=>{"use strict";var Dv=uf(),df=$o(),fb=n0(),cb=Da(),i0=df("%Function.prototype.apply%"),o0=df("%Function.prototype.call%"),u0=df("%Reflect.apply%",!0)||Dv.call(o0,i0),t0=cf(),lb=df("%Math.max%");hf.exports=function(o){if(typeof o!="function")throw new cb("a function is required");var a=u0(Dv,o0,arguments);return fb(a,1+lb(0,o.length-(arguments.length-1)),!0)};var r0=function(){return u0(Dv,i0,arguments)};t0?t0(hf.exports,"apply",{value:r0}):hf.exports.apply=r0});var Uv=ue((iI,f0)=>{"use strict";var s0=$o(),a0=Wv(),pb=a0(s0("String.prototype.indexOf"));f0.exports=function(o,a){var p=s0(o,!!a);return typeof p=="function"&&pb(o,".prototype.")>-1?a0(p):p}});var p0=ue((oI,l0)=>{"use strict";var hb=of()(),db=Uv(),kv=db("Object.prototype.toString"),gf=function(o){return hb&&o&&typeof o=="object"&&Symbol.toStringTag in o?!1:kv(o)==="[object Arguments]"},c0=function(o){return gf(o)?!0:o!==null&&typeof o=="object"&&typeof o.length=="number"&&o.length>=0&&kv(o)!=="[object Array]"&&kv(o.callee)==="[object Function]"},gb=function(){return gf(arguments)}();gf.isLegacyArguments=c0;l0.exports=gb?gf:c0});var g0=ue((uI,d0)=>{"use strict";var yb=Object.prototype.toString,vb=Function.prototype.toString,mb=/^\s*(?:function)?\*/,h0=of()(),$v=Object.getPrototypeOf,_b=function(){if(!h0)return!1;try{return Function("return function*() {}")()}catch{}},Gv;d0.exports=function(o){if(typeof o!="function")return!1;if(mb.test(vb.call(o)))return!0;if(!h0){var a=yb.call(o);return a==="[object GeneratorFunction]"}if(!$v)return!1;if(typeof Gv>"u"){var p=_b();Gv=p?$v(p):!1}return $v(o)===Gv}});var _0=ue((sI,m0)=>{"use strict";var v0=Function.prototype.toString,Ho=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,zv,yf;if(typeof Ho=="function"&&typeof Object.defineProperty=="function")try{zv=Object.defineProperty({},"length",{get:function(){throw yf}}),yf={},Ho(function(){throw 42},null,zv)}catch(r){r!==yf&&(Ho=null)}else Ho=null;var wb=/^\s*class\b/,qv=function(o){try{var a=v0.call(o);return wb.test(a)}catch{return!1}},Hv=function(o){try{return qv(o)?!1:(v0.call(o),!0)}catch{return!1}},vf=Object.prototype.toString,bb="[object Object]",Ab="[object Function]",Sb="[object GeneratorFunction]",xb="[object HTMLAllCollection]",Eb="[object HTML document.all class]",Ib="[object HTMLCollection]",Ob=typeof Symbol=="function"&&!!Symbol.toStringTag,Tb=!(0 in[,]),Kv=function(){return!1};typeof document=="object"&&(y0=document.all,vf.call(y0)===vf.call(document.all)&&(Kv=function(o){if((Tb||!o)&&(typeof o>"u"||typeof o=="object"))try{var a=vf.call(o);return(a===xb||a===Eb||a===Ib||a===bb)&&o("")==null}catch{}return!1}));var y0;m0.exports=Ho?function(o){if(Kv(o))return!0;if(!o||typeof o!="function"&&typeof o!="object")return!1;try{Ho(o,null,zv)}catch(a){if(a!==yf)return!1}return!qv(o)&&Hv(o)}:function(o){if(Kv(o))return!0;if(!o||typeof o!="function"&&typeof o!="object")return!1;if(Ob)return Hv(o);if(qv(o))return!1;var a=vf.call(o);return a!==Ab&&a!==Sb&&!/^\[object HTML/.test(a)?!1:Hv(o)}});var A0=ue((aI,b0)=>{"use strict";var Pb=_0(),Cb=Object.prototype.toString,w0=Object.prototype.hasOwnProperty,Rb=function(o,a,p){for(var g=0,b=o.length;g<b;g++)w0.call(o,g)&&(p==null?a(o[g],g,o):a.call(p,o[g],g,o))},Mb=function(o,a,p){for(var g=0,b=o.length;g<b;g++)p==null?a(o.charAt(g),g,o):a.call(p,o.charAt(g),g,o)},Nb=function(o,a,p){for(var g in o)w0.call(o,g)&&(p==null?a(o[g],g,o):a.call(p,o[g],g,o))},Fb=function(o,a,p){if(!Pb(a))throw new TypeError("iterator must be a function");var g;arguments.length>=3&&(g=p),Cb.call(o)==="[object Array]"?Rb(o,a,g):typeof o=="string"?Mb(o,a,g):Nb(o,a,g)};b0.exports=Fb});var x0=ue((fI,S0)=>{"use strict";S0.exports=["Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]});var I0=ue((cI,E0)=>{"use strict";var jv=x0(),Lb=typeof globalThis>"u"?global:globalThis;E0.exports=function(){for(var o=[],a=0;a<jv.length;a++)typeof Lb[jv[a]]=="function"&&(o[o.length]=jv[a]);return o}});var Xv=ue((lI,C0)=>{"use strict";var _f=A0(),Bb=I0(),O0=Wv(),Zv=Uv(),mf=pf(),Db=Zv("Object.prototype.toString"),P0=of()(),T0=typeof globalThis>"u"?global:globalThis,Vv=Bb(),Yv=Zv("String.prototype.slice"),Jv=Object.getPrototypeOf,Wb=Zv("Array.prototype.indexOf",!0)||function(o,a){for(var p=0;p<o.length;p+=1)if(o[p]===a)return p;return-1},wf={__proto__:null};P0&&mf&&Jv?_f(Vv,function(r){var o=new T0[r];if(Symbol.toStringTag in o){var a=Jv(o),p=mf(a,Symbol.toStringTag);if(!p){var g=Jv(a);p=mf(g,Symbol.toStringTag)}wf["$"+r]=O0(p.get)}}):_f(Vv,function(r){var o=new T0[r],a=o.slice||o.set;a&&(wf["$"+r]=O0(a))});var Ub=function(o){var a=!1;return _f(wf,function(p,g){if(!a)try{"$"+p(o)===g&&(a=Yv(g,1))}catch{}}),a},kb=function(o){var a=!1;return _f(wf,function(p,g){if(!a)try{p(o),a=Yv(g,1)}catch{}}),a};C0.exports=function(o){if(!o||typeof o!="object")return!1;if(!P0){var a=Yv(Db(o),8,-1);return Wb(Vv,a)>-1?a:a!=="Object"?!1:kb(o)}return mf?Ub(o):null}});var M0=ue((pI,R0)=>{"use strict";var $b=Xv();R0.exports=function(o){return!!$b(o)}});var K0=ue(be=>{"use strict";var Gb=p0(),Hb=g0(),or=Xv(),N0=M0();function zo(r){return r.call.bind(r)}var F0=typeof BigInt<"u",L0=typeof Symbol<"u",Ut=zo(Object.prototype.toString),zb=zo(Number.prototype.valueOf),qb=zo(String.prototype.valueOf),Kb=zo(Boolean.prototype.valueOf);F0&&(B0=zo(BigInt.prototype.valueOf));var B0;L0&&(D0=zo(Symbol.prototype.valueOf));var D0;function ka(r,o){if(typeof r!="object")return!1;try{return o(r),!0}catch{return!1}}be.isArgumentsObject=Gb;be.isGeneratorFunction=Hb;be.isTypedArray=N0;function jb(r){return typeof Promise<"u"&&r instanceof Promise||r!==null&&typeof r=="object"&&typeof r.then=="function"&&typeof r.catch=="function"}be.isPromise=jb;function Jb(r){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(r):N0(r)||U0(r)}be.isArrayBufferView=Jb;function Vb(r){return or(r)==="Uint8Array"}be.isUint8Array=Vb;function Zb(r){return or(r)==="Uint8ClampedArray"}be.isUint8ClampedArray=Zb;function Yb(r){return or(r)==="Uint16Array"}be.isUint16Array=Yb;function Xb(r){return or(r)==="Uint32Array"}be.isUint32Array=Xb;function Qb(r){return or(r)==="Int8Array"}be.isInt8Array=Qb;function eA(r){return or(r)==="Int16Array"}be.isInt16Array=eA;function nA(r){return or(r)==="Int32Array"}be.isInt32Array=nA;function tA(r){return or(r)==="Float32Array"}be.isFloat32Array=tA;function rA(r){return or(r)==="Float64Array"}be.isFloat64Array=rA;function iA(r){return or(r)==="BigInt64Array"}be.isBigInt64Array=iA;function oA(r){return or(r)==="BigUint64Array"}be.isBigUint64Array=oA;function bf(r){return Ut(r)==="[object Map]"}bf.working=typeof Map<"u"&&bf(new Map);function uA(r){return typeof Map>"u"?!1:bf.working?bf(r):r instanceof Map}be.isMap=uA;function Af(r){return Ut(r)==="[object Set]"}Af.working=typeof Set<"u"&&Af(new Set);function sA(r){return typeof Set>"u"?!1:Af.working?Af(r):r instanceof Set}be.isSet=sA;function Sf(r){return Ut(r)==="[object WeakMap]"}Sf.working=typeof WeakMap<"u"&&Sf(new WeakMap);function aA(r){return typeof WeakMap>"u"?!1:Sf.working?Sf(r):r instanceof WeakMap}be.isWeakMap=aA;function em(r){return Ut(r)==="[object WeakSet]"}em.working=typeof WeakSet<"u"&&em(new WeakSet);function fA(r){return em(r)}be.isWeakSet=fA;function xf(r){return Ut(r)==="[object ArrayBuffer]"}xf.working=typeof ArrayBuffer<"u"&&xf(new ArrayBuffer);function W0(r){return typeof ArrayBuffer>"u"?!1:xf.working?xf(r):r instanceof ArrayBuffer}be.isArrayBuffer=W0;function Ef(r){return Ut(r)==="[object DataView]"}Ef.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&Ef(new DataView(new ArrayBuffer(1),0,1));function U0(r){return typeof DataView>"u"?!1:Ef.working?Ef(r):r instanceof DataView}be.isDataView=U0;var Qv=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function Ua(r){return Ut(r)==="[object SharedArrayBuffer]"}function k0(r){return typeof Qv>"u"?!1:(typeof Ua.working>"u"&&(Ua.working=Ua(new Qv)),Ua.working?Ua(r):r instanceof Qv)}be.isSharedArrayBuffer=k0;function cA(r){return Ut(r)==="[object AsyncFunction]"}be.isAsyncFunction=cA;function lA(r){return Ut(r)==="[object Map Iterator]"}be.isMapIterator=lA;function pA(r){return Ut(r)==="[object Set Iterator]"}be.isSetIterator=pA;function hA(r){return Ut(r)==="[object Generator]"}be.isGeneratorObject=hA;function dA(r){return Ut(r)==="[object WebAssembly.Module]"}be.isWebAssemblyCompiledModule=dA;function $0(r){return ka(r,zb)}be.isNumberObject=$0;function G0(r){return ka(r,qb)}be.isStringObject=G0;function H0(r){return ka(r,Kb)}be.isBooleanObject=H0;function z0(r){return F0&&ka(r,B0)}be.isBigIntObject=z0;function q0(r){return L0&&ka(r,D0)}be.isSymbolObject=q0;function gA(r){return $0(r)||G0(r)||H0(r)||z0(r)||q0(r)}be.isBoxedPrimitive=gA;function yA(r){return typeof Uint8Array<"u"&&(W0(r)||k0(r))}be.isAnyArrayBuffer=yA;["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(r){Object.defineProperty(be,r,{enumerable:!1,value:function(){throw new Error(r+" is not supported in userland")}})})});var J0=ue((dI,j0)=>{j0.exports=function(o){return o&&typeof o=="object"&&typeof o.copy=="function"&&typeof o.fill=="function"&&typeof o.readUInt8=="function"}});var V0=ue((gI,nm)=>{typeof Object.create=="function"?nm.exports=function(o,a){a&&(o.super_=a,o.prototype=Object.create(a.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}))}:nm.exports=function(o,a){if(a){o.super_=a;var p=function(){};p.prototype=a.prototype,o.prototype=new p,o.prototype.constructor=o}}});var sm=ue(Ae=>{var Z0=Object.getOwnPropertyDescriptors||function(o){for(var a=Object.keys(o),p={},g=0;g<a.length;g++)p[a[g]]=Object.getOwnPropertyDescriptor(o,a[g]);return p},vA=/%[sdj%]/g;Ae.format=function(r){if(!Mf(r)){for(var o=[],a=0;a<arguments.length;a++)o.push(ai(arguments[a]));return o.join(" ")}for(var a=1,p=arguments,g=p.length,b=String(r).replace(vA,function(E){if(E==="%%")return"%";if(a>=g)return E;switch(E){case"%s":return String(p[a++]);case"%d":return Number(p[a++]);case"%j":try{return JSON.stringify(p[a++])}catch{return"[Circular]"}default:return E}}),A=p[a];a<g;A=p[++a])Rf(A)||!qo(A)?b+=" "+A:b+=" "+ai(A);return b};Ae.deprecate=function(r,o){if(typeof process<"u"&&process.noDeprecation===!0)return r;if(typeof process>"u")return function(){return Ae.deprecate(r,o).apply(this,arguments)};var a=!1;function p(){if(!a){if(process.throwDeprecation)throw new Error(o);process.traceDeprecation?console.trace(o):console.error(o),a=!0}return r.apply(this,arguments)}return p};var If={},Y0=/^$/;process.env.NODE_DEBUG&&(Of=process.env.NODE_DEBUG,Of=Of.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),Y0=new RegExp("^"+Of+"$","i"));var Of;Ae.debuglog=function(r){if(r=r.toUpperCase(),!If[r])if(Y0.test(r)){var o=process.pid;If[r]=function(){var a=Ae.format.apply(Ae,arguments);console.error("%s %d: %s",r,o,a)}}else If[r]=function(){};return If[r]};function ai(r,o){var a={seen:[],stylize:_A};return arguments.length>=3&&(a.depth=arguments[2]),arguments.length>=4&&(a.colors=arguments[3]),om(o)?a.showHidden=o:o&&Ae._extend(a,o),Po(a.showHidden)&&(a.showHidden=!1),Po(a.depth)&&(a.depth=2),Po(a.colors)&&(a.colors=!1),Po(a.customInspect)&&(a.customInspect=!0),a.colors&&(a.stylize=mA),Pf(a,r,a.depth)}Ae.inspect=ai;ai.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};ai.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function mA(r,o){var a=ai.styles[o];return a?"\x1B["+ai.colors[a][0]+"m"+r+"\x1B["+ai.colors[a][1]+"m":r}function _A(r,o){return r}function wA(r){var o={};return r.forEach(function(a,p){o[a]=!0}),o}function Pf(r,o,a){if(r.customInspect&&o&&Tf(o.inspect)&&o.inspect!==Ae.inspect&&!(o.constructor&&o.constructor.prototype===o)){var p=o.inspect(a,r);return Mf(p)||(p=Pf(r,p,a)),p}var g=bA(r,o);if(g)return g;var b=Object.keys(o),A=wA(b);if(r.showHidden&&(b=Object.getOwnPropertyNames(o)),Ga(o)&&(b.indexOf("message")>=0||b.indexOf("description")>=0))return tm(o);if(b.length===0){if(Tf(o)){var E=o.name?": "+o.name:"";return r.stylize("[Function"+E+"]","special")}if($a(o))return r.stylize(RegExp.prototype.toString.call(o),"regexp");if(Cf(o))return r.stylize(Date.prototype.toString.call(o),"date");if(Ga(o))return tm(o)}var N="",q=!1,ve=["{","}"];if(X0(o)&&(q=!0,ve=["[","]"]),Tf(o)){var Le=o.name?": "+o.name:"";N=" [Function"+Le+"]"}if($a(o)&&(N=" "+RegExp.prototype.toString.call(o)),Cf(o)&&(N=" "+Date.prototype.toUTCString.call(o)),Ga(o)&&(N=" "+tm(o)),b.length===0&&(!q||o.length==0))return ve[0]+N+ve[1];if(a<0)return $a(o)?r.stylize(RegExp.prototype.toString.call(o),"regexp"):r.stylize("[Object]","special");r.seen.push(o);var Oe;return q?Oe=AA(r,o,a,A,b):Oe=b.map(function(sn){return im(r,o,a,A,sn,q)}),r.seen.pop(),SA(Oe,N,ve)}function bA(r,o){if(Po(o))return r.stylize("undefined","undefined");if(Mf(o)){var a="'"+JSON.stringify(o).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return r.stylize(a,"string")}if(Q0(o))return r.stylize(""+o,"number");if(om(o))return r.stylize(""+o,"boolean");if(Rf(o))return r.stylize("null","null")}function tm(r){return"["+Error.prototype.toString.call(r)+"]"}function AA(r,o,a,p,g){for(var b=[],A=0,E=o.length;A<E;++A)ew(o,String(A))?b.push(im(r,o,a,p,String(A),!0)):b.push("");return g.forEach(function(N){N.match(/^\d+$/)||b.push(im(r,o,a,p,N,!0))}),b}function im(r,o,a,p,g,b){var A,E,N;if(N=Object.getOwnPropertyDescriptor(o,g)||{value:o[g]},N.get?N.set?E=r.stylize("[Getter/Setter]","special"):E=r.stylize("[Getter]","special"):N.set&&(E=r.stylize("[Setter]","special")),ew(p,g)||(A="["+g+"]"),E||(r.seen.indexOf(N.value)<0?(Rf(a)?E=Pf(r,N.value,null):E=Pf(r,N.value,a-1),E.indexOf(`
`)>-1&&(b?E=E.split(`
`).map(function(q){return"  "+q}).join(`
`).slice(2):E=`
`+E.split(`
`).map(function(q){return"   "+q}).join(`
`))):E=r.stylize("[Circular]","special")),Po(A)){if(b&&g.match(/^\d+$/))return E;A=JSON.stringify(""+g),A.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(A=A.slice(1,-1),A=r.stylize(A,"name")):(A=A.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),A=r.stylize(A,"string"))}return A+": "+E}function SA(r,o,a){var p=0,g=r.reduce(function(b,A){return p++,A.indexOf(`
`)>=0&&p++,b+A.replace(/\u001b\[\d\d?m/g,"").length+1},0);return g>60?a[0]+(o===""?"":o+`
 `)+" "+r.join(`,
  `)+" "+a[1]:a[0]+o+" "+r.join(", ")+" "+a[1]}Ae.types=K0();function X0(r){return Array.isArray(r)}Ae.isArray=X0;function om(r){return typeof r=="boolean"}Ae.isBoolean=om;function Rf(r){return r===null}Ae.isNull=Rf;function xA(r){return r==null}Ae.isNullOrUndefined=xA;function Q0(r){return typeof r=="number"}Ae.isNumber=Q0;function Mf(r){return typeof r=="string"}Ae.isString=Mf;function EA(r){return typeof r=="symbol"}Ae.isSymbol=EA;function Po(r){return r===void 0}Ae.isUndefined=Po;function $a(r){return qo(r)&&um(r)==="[object RegExp]"}Ae.isRegExp=$a;Ae.types.isRegExp=$a;function qo(r){return typeof r=="object"&&r!==null}Ae.isObject=qo;function Cf(r){return qo(r)&&um(r)==="[object Date]"}Ae.isDate=Cf;Ae.types.isDate=Cf;function Ga(r){return qo(r)&&(um(r)==="[object Error]"||r instanceof Error)}Ae.isError=Ga;Ae.types.isNativeError=Ga;function Tf(r){return typeof r=="function"}Ae.isFunction=Tf;function IA(r){return r===null||typeof r=="boolean"||typeof r=="number"||typeof r=="string"||typeof r=="symbol"||typeof r>"u"}Ae.isPrimitive=IA;Ae.isBuffer=J0();function um(r){return Object.prototype.toString.call(r)}function rm(r){return r<10?"0"+r.toString(10):r.toString(10)}var OA=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function TA(){var r=new Date,o=[rm(r.getHours()),rm(r.getMinutes()),rm(r.getSeconds())].join(":");return[r.getDate(),OA[r.getMonth()],o].join(" ")}Ae.log=function(){console.log("%s - %s",TA(),Ae.format.apply(Ae,arguments))};Ae.inherits=V0();Ae._extend=function(r,o){if(!o||!qo(o))return r;for(var a=Object.keys(o),p=a.length;p--;)r[a[p]]=o[a[p]];return r};function ew(r,o){return Object.prototype.hasOwnProperty.call(r,o)}var To=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;Ae.promisify=function(o){if(typeof o!="function")throw new TypeError('The "original" argument must be of type Function');if(To&&o[To]){var a=o[To];if(typeof a!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(a,To,{value:a,enumerable:!1,writable:!1,configurable:!0}),a}function a(){for(var p,g,b=new Promise(function(N,q){p=N,g=q}),A=[],E=0;E<arguments.length;E++)A.push(arguments[E]);A.push(function(N,q){N?g(N):p(q)});try{o.apply(this,A)}catch(N){g(N)}return b}return Object.setPrototypeOf(a,Object.getPrototypeOf(o)),To&&Object.defineProperty(a,To,{value:a,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(a,Z0(o))};Ae.promisify.custom=To;function PA(r,o){if(!r){var a=new Error("Promise was rejected with a falsy value");a.reason=r,r=a}return o(r)}function CA(r){if(typeof r!="function")throw new TypeError('The "original" argument must be of type Function');function o(){for(var a=[],p=0;p<arguments.length;p++)a.push(arguments[p]);var g=a.pop();if(typeof g!="function")throw new TypeError("The last argument must be of type Function");var b=this,A=function(){return g.apply(b,arguments)};r.apply(this,a).then(function(E){process.nextTick(A.bind(null,null,E))},function(E){process.nextTick(PA.bind(null,E,A))})}return Object.setPrototypeOf(o,Object.getPrototypeOf(r)),Object.defineProperties(o,Z0(r)),o}Ae.callbackify=CA});var Pw=ue((Ha,Ko)=>{var RA=200,cw="__lodash_hash_undefined__",MA=800,NA=16,lw=9007199254740991,pw="[object Arguments]",FA="[object Array]",LA="[object AsyncFunction]",BA="[object Boolean]",DA="[object Date]",WA="[object Error]",hw="[object Function]",UA="[object GeneratorFunction]",kA="[object Map]",$A="[object Number]",GA="[object Null]",dw="[object Object]",HA="[object Proxy]",zA="[object RegExp]",qA="[object Set]",KA="[object String]",jA="[object Undefined]",JA="[object WeakMap]",VA="[object ArrayBuffer]",ZA="[object DataView]",YA="[object Float32Array]",XA="[object Float64Array]",QA="[object Int8Array]",eS="[object Int16Array]",nS="[object Int32Array]",tS="[object Uint8Array]",rS="[object Uint8ClampedArray]",iS="[object Uint16Array]",oS="[object Uint32Array]",uS=/[\\^$.*+?()[\]{}|]/g,sS=/^\[object .+?Constructor\]$/,aS=/^(?:0|[1-9]\d*)$/,un={};un[YA]=un[XA]=un[QA]=un[eS]=un[nS]=un[tS]=un[rS]=un[iS]=un[oS]=!0;un[pw]=un[FA]=un[VA]=un[BA]=un[ZA]=un[DA]=un[WA]=un[hw]=un[kA]=un[$A]=un[dw]=un[zA]=un[qA]=un[KA]=un[JA]=!1;var gw=typeof global=="object"&&global&&global.Object===Object&&global,fS=typeof self=="object"&&self&&self.Object===Object&&self,Ka=gw||fS||Function("return this")(),yw=typeof Ha=="object"&&Ha&&!Ha.nodeType&&Ha,za=yw&&typeof Ko=="object"&&Ko&&!Ko.nodeType&&Ko,vw=za&&za.exports===yw,am=vw&&gw.process,nw=function(){try{var r=za&&za.require&&za.require("util").types;return r||am&&am.binding&&am.binding("util")}catch{}}(),tw=nw&&nw.isTypedArray;function cS(r,o,a){switch(a.length){case 0:return r.call(o);case 1:return r.call(o,a[0]);case 2:return r.call(o,a[0],a[1]);case 3:return r.call(o,a[0],a[1],a[2])}return r.apply(o,a)}function lS(r,o){for(var a=-1,p=Array(r);++a<r;)p[a]=o(a);return p}function pS(r){return function(o){return r(o)}}function hS(r,o){return r?.[o]}function dS(r,o){return function(a){return r(o(a))}}var gS=Array.prototype,yS=Function.prototype,Lf=Object.prototype,fm=Ka["__core-js_shared__"],Bf=yS.toString,ti=Lf.hasOwnProperty,rw=function(){var r=/[^.]+$/.exec(fm&&fm.keys&&fm.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}(),mw=Lf.toString,vS=Bf.call(Object),mS=RegExp("^"+Bf.call(ti).replace(uS,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Nf=vw?Ka.Buffer:void 0,iw=Ka.Symbol,ow=Ka.Uint8Array,uw=Nf?Nf.allocUnsafe:void 0,_w=dS(Object.getPrototypeOf,Object),sw=Object.create,_S=Lf.propertyIsEnumerable,wS=gS.splice,Co=iw?iw.toStringTag:void 0,Ff=function(){try{var r=gm(Object,"defineProperty");return r({},"",{}),r}catch{}}(),bS=Nf?Nf.isBuffer:void 0,aw=Math.max,AS=Date.now,ww=gm(Ka,"Map"),qa=gm(Object,"create"),SS=function(){function r(){}return function(o){if(!Mo(o))return{};if(sw)return sw(o);r.prototype=o;var a=new r;return r.prototype=void 0,a}}();function Ro(r){var o=-1,a=r==null?0:r.length;for(this.clear();++o<a;){var p=r[o];this.set(p[0],p[1])}}function xS(){this.__data__=qa?qa(null):{},this.size=0}function ES(r){var o=this.has(r)&&delete this.__data__[r];return this.size-=o?1:0,o}function IS(r){var o=this.__data__;if(qa){var a=o[r];return a===cw?void 0:a}return ti.call(o,r)?o[r]:void 0}function OS(r){var o=this.__data__;return qa?o[r]!==void 0:ti.call(o,r)}function TS(r,o){var a=this.__data__;return this.size+=this.has(r)?0:1,a[r]=qa&&o===void 0?cw:o,this}Ro.prototype.clear=xS;Ro.prototype.delete=ES;Ro.prototype.get=IS;Ro.prototype.has=OS;Ro.prototype.set=TS;function ri(r){var o=-1,a=r==null?0:r.length;for(this.clear();++o<a;){var p=r[o];this.set(p[0],p[1])}}function PS(){this.__data__=[],this.size=0}function CS(r){var o=this.__data__,a=Df(o,r);if(a<0)return!1;var p=o.length-1;return a==p?o.pop():wS.call(o,a,1),--this.size,!0}function RS(r){var o=this.__data__,a=Df(o,r);return a<0?void 0:o[a][1]}function MS(r){return Df(this.__data__,r)>-1}function NS(r,o){var a=this.__data__,p=Df(a,r);return p<0?(++this.size,a.push([r,o])):a[p][1]=o,this}ri.prototype.clear=PS;ri.prototype.delete=CS;ri.prototype.get=RS;ri.prototype.has=MS;ri.prototype.set=NS;function jo(r){var o=-1,a=r==null?0:r.length;for(this.clear();++o<a;){var p=r[o];this.set(p[0],p[1])}}function FS(){this.size=0,this.__data__={hash:new Ro,map:new(ww||ri),string:new Ro}}function LS(r){var o=Uf(this,r).delete(r);return this.size-=o?1:0,o}function BS(r){return Uf(this,r).get(r)}function DS(r){return Uf(this,r).has(r)}function WS(r,o){var a=Uf(this,r),p=a.size;return a.set(r,o),this.size+=a.size==p?0:1,this}jo.prototype.clear=FS;jo.prototype.delete=LS;jo.prototype.get=BS;jo.prototype.has=DS;jo.prototype.set=WS;function Jo(r){var o=this.__data__=new ri(r);this.size=o.size}function US(){this.__data__=new ri,this.size=0}function kS(r){var o=this.__data__,a=o.delete(r);return this.size=o.size,a}function $S(r){return this.__data__.get(r)}function GS(r){return this.__data__.has(r)}function HS(r,o){var a=this.__data__;if(a instanceof ri){var p=a.__data__;if(!ww||p.length<RA-1)return p.push([r,o]),this.size=++a.size,this;a=this.__data__=new jo(p)}return a.set(r,o),this.size=a.size,this}Jo.prototype.clear=US;Jo.prototype.delete=kS;Jo.prototype.get=$S;Jo.prototype.has=GS;Jo.prototype.set=HS;function zS(r,o){var a=hm(r),p=!a&&pm(r),g=!a&&!p&&xw(r),b=!a&&!p&&!g&&Iw(r),A=a||p||g||b,E=A?lS(r.length,String):[],N=E.length;for(var q in r)(o||ti.call(r,q))&&!(A&&(q=="length"||g&&(q=="offset"||q=="parent")||b&&(q=="buffer"||q=="byteLength"||q=="byteOffset")||Aw(q,N)))&&E.push(q);return E}function cm(r,o,a){(a!==void 0&&!kf(r[o],a)||a===void 0&&!(o in r))&&dm(r,o,a)}function qS(r,o,a){var p=r[o];(!(ti.call(r,o)&&kf(p,a))||a===void 0&&!(o in r))&&dm(r,o,a)}function Df(r,o){for(var a=r.length;a--;)if(kf(r[a][0],o))return a;return-1}function dm(r,o,a){o=="__proto__"&&Ff?Ff(r,o,{configurable:!0,enumerable:!0,value:a,writable:!0}):r[o]=a}var KS=ox();function Wf(r){return r==null?r===void 0?jA:GA:Co&&Co in Object(r)?ux(r):px(r)}function fw(r){return ja(r)&&Wf(r)==pw}function jS(r){if(!Mo(r)||cx(r))return!1;var o=vm(r)?mS:sS;return o.test(yx(r))}function JS(r){return ja(r)&&Ew(r.length)&&!!un[Wf(r)]}function VS(r){if(!Mo(r))return lx(r);var o=Sw(r),a=[];for(var p in r)p=="constructor"&&(o||!ti.call(r,p))||a.push(p);return a}function bw(r,o,a,p,g){r!==o&&KS(o,function(b,A){if(g||(g=new Jo),Mo(b))ZS(r,o,A,a,bw,p,g);else{var E=p?p(lm(r,A),b,A+"",r,o,g):void 0;E===void 0&&(E=b),cm(r,A,E)}},Ow)}function ZS(r,o,a,p,g,b,A){var E=lm(r,a),N=lm(o,a),q=A.get(N);if(q){cm(r,a,q);return}var ve=b?b(E,N,a+"",r,o,A):void 0,Le=ve===void 0;if(Le){var Oe=hm(N),sn=!Oe&&xw(N),me=!Oe&&!sn&&Iw(N);ve=N,Oe||sn||me?hm(E)?ve=E:vx(E)?ve=tx(E):sn?(Le=!1,ve=QS(N,!0)):me?(Le=!1,ve=nx(N,!0)):ve=[]:mx(N)||pm(N)?(ve=E,pm(E)?ve=_x(E):(!Mo(E)||vm(E))&&(ve=sx(N))):Le=!1}Le&&(A.set(N,ve),g(ve,N,p,b,A),A.delete(N)),cm(r,a,ve)}function YS(r,o){return dx(hx(r,o,Tw),r+"")}var XS=Ff?function(r,o){return Ff(r,"toString",{configurable:!0,enumerable:!1,value:bx(o),writable:!0})}:Tw;function QS(r,o){if(o)return r.slice();var a=r.length,p=uw?uw(a):new r.constructor(a);return r.copy(p),p}function ex(r){var o=new r.constructor(r.byteLength);return new ow(o).set(new ow(r)),o}function nx(r,o){var a=o?ex(r.buffer):r.buffer;return new r.constructor(a,r.byteOffset,r.length)}function tx(r,o){var a=-1,p=r.length;for(o||(o=Array(p));++a<p;)o[a]=r[a];return o}function rx(r,o,a,p){var g=!a;a||(a={});for(var b=-1,A=o.length;++b<A;){var E=o[b],N=p?p(a[E],r[E],E,a,r):void 0;N===void 0&&(N=r[E]),g?dm(a,E,N):qS(a,E,N)}return a}function ix(r){return YS(function(o,a){var p=-1,g=a.length,b=g>1?a[g-1]:void 0,A=g>2?a[2]:void 0;for(b=r.length>3&&typeof b=="function"?(g--,b):void 0,A&&ax(a[0],a[1],A)&&(b=g<3?void 0:b,g=1),o=Object(o);++p<g;){var E=a[p];E&&r(o,E,p,b)}return o})}function ox(r){return function(o,a,p){for(var g=-1,b=Object(o),A=p(o),E=A.length;E--;){var N=A[r?E:++g];if(a(b[N],N,b)===!1)break}return o}}function Uf(r,o){var a=r.__data__;return fx(o)?a[typeof o=="string"?"string":"hash"]:a.map}function gm(r,o){var a=hS(r,o);return jS(a)?a:void 0}function ux(r){var o=ti.call(r,Co),a=r[Co];try{r[Co]=void 0;var p=!0}catch{}var g=mw.call(r);return p&&(o?r[Co]=a:delete r[Co]),g}function sx(r){return typeof r.constructor=="function"&&!Sw(r)?SS(_w(r)):{}}function Aw(r,o){var a=typeof r;return o=o??lw,!!o&&(a=="number"||a!="symbol"&&aS.test(r))&&r>-1&&r%1==0&&r<o}function ax(r,o,a){if(!Mo(a))return!1;var p=typeof o;return(p=="number"?ym(a)&&Aw(o,a.length):p=="string"&&o in a)?kf(a[o],r):!1}function fx(r){var o=typeof r;return o=="string"||o=="number"||o=="symbol"||o=="boolean"?r!=="__proto__":r===null}function cx(r){return!!rw&&rw in r}function Sw(r){var o=r&&r.constructor,a=typeof o=="function"&&o.prototype||Lf;return r===a}function lx(r){var o=[];if(r!=null)for(var a in Object(r))o.push(a);return o}function px(r){return mw.call(r)}function hx(r,o,a){return o=aw(o===void 0?r.length-1:o,0),function(){for(var p=arguments,g=-1,b=aw(p.length-o,0),A=Array(b);++g<b;)A[g]=p[o+g];g=-1;for(var E=Array(o+1);++g<o;)E[g]=p[g];return E[o]=a(A),cS(r,this,E)}}function lm(r,o){if(!(o==="constructor"&&typeof r[o]=="function")&&o!="__proto__")return r[o]}var dx=gx(XS);function gx(r){var o=0,a=0;return function(){var p=AS(),g=NA-(p-a);if(a=p,g>0){if(++o>=MA)return arguments[0]}else o=0;return r.apply(void 0,arguments)}}function yx(r){if(r!=null){try{return Bf.call(r)}catch{}try{return r+""}catch{}}return""}function kf(r,o){return r===o||r!==r&&o!==o}var pm=fw(function(){return arguments}())?fw:function(r){return ja(r)&&ti.call(r,"callee")&&!_S.call(r,"callee")},hm=Array.isArray;function ym(r){return r!=null&&Ew(r.length)&&!vm(r)}function vx(r){return ja(r)&&ym(r)}var xw=bS||Ax;function vm(r){if(!Mo(r))return!1;var o=Wf(r);return o==hw||o==UA||o==LA||o==HA}function Ew(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=lw}function Mo(r){var o=typeof r;return r!=null&&(o=="object"||o=="function")}function ja(r){return r!=null&&typeof r=="object"}function mx(r){if(!ja(r)||Wf(r)!=dw)return!1;var o=_w(r);if(o===null)return!0;var a=ti.call(o,"constructor")&&o.constructor;return typeof a=="function"&&a instanceof a&&Bf.call(a)==vS}var Iw=tw?pS(tw):JS;function _x(r){return rx(r,Ow(r))}function Ow(r){return ym(r)?zS(r,!0):VS(r)}var wx=ix(function(r,o,a){bw(r,o,a)});function bx(r){return function(){return r}}function Tw(r){return r}function Ax(){return!1}Ko.exports=wx});var Mw={};s1(Mw,{drawBadge:()=>Ix});function Ix(r){let o={fontColor:"white",font:"56px arial",color:"red",fit:!0,decimals:0,radius:8},a=o.radius,p=document.createElement("canvas");return p.width=Math.ceil(a*2),p.height=Math.ceil(a*2),p.ctx=p.getContext("2d"),p.radius=a,p.number=r,p.displayStyle=o,o.color=o.color?o.color:"red",o.font=o.font?o.font:"18px arial",o.fontColor=o.fontColor?o.fontColor:"white",o.fit=o.fit===void 0?!0:o.fit,o.decimals=o.decimals===void 0||isNaN(o.decimals)?0:o.decimals,p.draw=function(){if(!this.ctx)return p;let g,b=0;this.width=Math.ceil(this.radius*2),this.height=Math.ceil(this.radius*2),this.ctx.clearRect(0,0,this.width,this.height),this.ctx.fillStyle=this.displayStyle.color,this.ctx.beginPath(),this.ctx.arc(a,a,a,0,Math.PI*2),this.ctx.fill(),this.ctx.font=this.displayStyle.font,this.ctx.textAlign="center",this.ctx.textBaseline="middle",this.ctx.fillStyle=this.displayStyle.fontColor;let A=this.number.toFixed(this.displayStyle.decimals),E=/[0-9.]+/.exec(this.ctx.font),N=Number(Array.isArray(E)?E[0]:0);return!this.displayStyle.fit||isNaN(N)?this.ctx.fillText(A,a,a):(b=this.ctx.measureText(A).width,g=Math.cos(Math.atan(N/b))*this.radius*2/b,this.ctx.setTransform(g,0,0,g,this.radius,this.radius),this.ctx.fillText(A,0,4),this.ctx.setTransform(1,0,0,1,0,0)),!this.displayStyle.fit||isNaN(N)?this.ctx.fillText(A,a,a):(g=Math.cos(Math.atan(N/b))*this.radius*2/b,this.ctx.setTransform(g,0,0,g,this.radius,this.radius),this.ctx.fillText(A,0,4),this.ctx.setTransform(1,0,0,1,0,0)),this},p.draw(),p.toDataURL()}var Nw=u1(()=>{"use strict"});var Gf=ue((Xo,Ja)=>{(function(){var r,o="4.17.21",a=200,p="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",g="Expected a function",b="Invalid `variable` option passed into `_.template`",A="__lodash_hash_undefined__",E=500,N="__lodash_placeholder__",q=1,ve=2,Le=4,Oe=1,sn=2,me=1,yn=2,fi=4,te=8,ft=16,an=32,it=64,fn=128,_t=256,$t=512,ci=30,cn="...",ar=800,No=16,fr=1,oi=2,cr=3,mn=1/0,_n=9007199254740991,tu=17976931348623157e292,wt=0/0,Ve=4294967295,lr=Ve-1,li=Ve>>>1,Fo=[["ary",fn],["bind",me],["bindKey",yn],["curry",te],["curryRight",ft],["flip",$t],["partial",an],["partialRight",it],["rearg",_t]],ot="[object Arguments]",Gt="[object Array]",ru="[object AsyncFunction]",Je="[object Boolean]",ut="[object Date]",x="[object DOMException]",P="[object Error]",O="[object Function]",F="[object GeneratorFunction]",L="[object Map]",ce="[object Number]",vn="[object Null]",re="[object Object]",se="[object Promise]",qn="[object Proxy]",On="[object RegExp]",Te="[object Set]",Pn="[object String]",wn="[object Symbol]",ur="[object Undefined]",Tn="[object WeakMap]",bt="[object WeakSet]",Re="[object ArrayBuffer]",pe="[object DataView]",he="[object Float32Array]",Be="[object Float64Array]",K="[object Int8Array]",k="[object Int16Array]",le="[object Int32Array]",Z="[object Uint8Array]",de="[object Uint8ClampedArray]",Se="[object Uint16Array]",bn="[object Uint32Array]",An=/\b__p \+= '';/g,st=/\b(__p \+=) '' \+/g,Sn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,xe=/&(?:amp|lt|gt|quot|#39);/g,Kn=/[&<>"']/g,Cn=RegExp(xe.source),$n=RegExp(Kn.source),at=/<%-([\s\S]+?)%>/g,Ze=/<%([\s\S]+?)%>/g,Gn=/<%=([\s\S]+?)%>/g,ui=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,pr=/^\w*$/,iu=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ht=/[\\^$.*+?()[\]{}|]/g,Wt=RegExp(Ht.source),ln=/^\s+/,sr=/\s/,At=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,St=/\{\n\/\* \[wrapped with (.+)\] \*/,qf=/,? & /,Kf=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,jf=/[()=,{}\[\]\/\s]/,Jf=/\\(\\)?/g,Vf=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ou=/\w*$/,Zf=/^[-+]0x[0-9a-f]+$/i,Yf=/^0b[01]+$/i,Xf=/^\[object .+?Constructor\]$/,Qf=/^0o[0-7]+$/i,ec=/^(?:0|[1-9]\d*)$/,nc=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,hr=/($^)/,tc=/['\n\r\u2028\u2029\\]/g,dr="\\ud800-\\udfff",rc="\\u0300-\\u036f",ic="\\ufe20-\\ufe2f",oc="\\u20d0-\\u20ff",uu=rc+ic+oc,su="\\u2700-\\u27bf",au="a-z\\xdf-\\xf6\\xf8-\\xff",uc="\\xac\\xb1\\xd7\\xf7",sc="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",ac="\\u2000-\\u206f",fc=" \\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",fu="A-Z\\xc0-\\xd6\\xd8-\\xde",cu="\\ufe0e\\ufe0f",lu=uc+sc+ac+fc,pi="['\u2019]",cc="["+dr+"]",pu="["+lu+"]",gr="["+uu+"]",hu="\\d+",lc="["+su+"]",du="["+au+"]",gu="[^"+dr+lu+hu+su+au+fu+"]",hi="\\ud83c[\\udffb-\\udfff]",pc="(?:"+gr+"|"+hi+")",yu="[^"+dr+"]",di="(?:\\ud83c[\\udde6-\\uddff]){2}",gi="[\\ud800-\\udbff][\\udc00-\\udfff]",xt="["+fu+"]",vu="\\u200d",mu="(?:"+du+"|"+gu+")",hc="(?:"+xt+"|"+gu+")",_u="(?:"+pi+"(?:d|ll|m|re|s|t|ve))?",wu="(?:"+pi+"(?:D|LL|M|RE|S|T|VE))?",bu=pc+"?",Au="["+cu+"]?",dc="(?:"+vu+"(?:"+[yu,di,gi].join("|")+")"+Au+bu+")*",gc="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",yc="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Su=Au+bu+dc,vc="(?:"+[lc,di,gi].join("|")+")"+Su,mc="(?:"+[yu+gr+"?",gr,di,gi,cc].join("|")+")",_c=RegExp(pi,"g"),wc=RegExp(gr,"g"),yi=RegExp(hi+"(?="+hi+")|"+mc+Su,"g"),bc=RegExp([xt+"?"+du+"+"+_u+"(?="+[pu,xt,"$"].join("|")+")",hc+"+"+wu+"(?="+[pu,xt+mu,"$"].join("|")+")",xt+"?"+mu+"+"+_u,xt+"+"+wu,yc,gc,hu,vc].join("|"),"g"),Ac=RegExp("["+vu+dr+uu+cu+"]"),Sc=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,xc=["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"],Ec=-1,Q={};Q[he]=Q[Be]=Q[K]=Q[k]=Q[le]=Q[Z]=Q[de]=Q[Se]=Q[bn]=!0,Q[ot]=Q[Gt]=Q[Re]=Q[Je]=Q[pe]=Q[ut]=Q[P]=Q[O]=Q[L]=Q[ce]=Q[re]=Q[On]=Q[Te]=Q[Pn]=Q[Tn]=!1;var X={};X[ot]=X[Gt]=X[Re]=X[pe]=X[Je]=X[ut]=X[he]=X[Be]=X[K]=X[k]=X[le]=X[L]=X[ce]=X[re]=X[On]=X[Te]=X[Pn]=X[wn]=X[Z]=X[de]=X[Se]=X[bn]=!0,X[P]=X[O]=X[Tn]=!1;var Ic={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Oc={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Tc={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},Pc={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Cc=parseFloat,Rc=parseInt,xu=typeof global=="object"&&global&&global.Object===Object&&global,Mc=typeof self=="object"&&self&&self.Object===Object&&self,_e=xu||Mc||Function("return this")(),vi=typeof Xo=="object"&&Xo&&!Xo.nodeType&&Xo,ct=vi&&typeof Ja=="object"&&Ja&&!Ja.nodeType&&Ja,Eu=ct&&ct.exports===vi,mi=Eu&&xu.process,Ye=function(){try{var h=ct&&ct.require&&ct.require("util").types;return h||mi&&mi.binding&&mi.binding("util")}catch{}}(),Iu=Ye&&Ye.isArrayBuffer,Ou=Ye&&Ye.isDate,Tu=Ye&&Ye.isMap,Pu=Ye&&Ye.isRegExp,Cu=Ye&&Ye.isSet,Ru=Ye&&Ye.isTypedArray;function Ge(h,v,y){switch(y.length){case 0:return h.call(v);case 1:return h.call(v,y[0]);case 2:return h.call(v,y[0],y[1]);case 3:return h.call(v,y[0],y[1],y[2])}return h.apply(v,y)}function Nc(h,v,y,I){for(var B=-1,j=h==null?0:h.length;++B<j;){var ge=h[B];v(I,ge,y(ge),h)}return I}function Xe(h,v){for(var y=-1,I=h==null?0:h.length;++y<I&&v(h[y],y,h)!==!1;);return h}function Fc(h,v){for(var y=h==null?0:h.length;y--&&v(h[y],y,h)!==!1;);return h}function Mu(h,v){for(var y=-1,I=h==null?0:h.length;++y<I;)if(!v(h[y],y,h))return!1;return!0}function jn(h,v){for(var y=-1,I=h==null?0:h.length,B=0,j=[];++y<I;){var ge=h[y];v(ge,y,h)&&(j[B++]=ge)}return j}function yr(h,v){var y=h==null?0:h.length;return!!y&&Et(h,v,0)>-1}function _i(h,v,y){for(var I=-1,B=h==null?0:h.length;++I<B;)if(y(v,h[I]))return!0;return!1}function ne(h,v){for(var y=-1,I=h==null?0:h.length,B=Array(I);++y<I;)B[y]=v(h[y],y,h);return B}function Jn(h,v){for(var y=-1,I=v.length,B=h.length;++y<I;)h[B+y]=v[y];return h}function wi(h,v,y,I){var B=-1,j=h==null?0:h.length;for(I&&j&&(y=h[++B]);++B<j;)y=v(y,h[B],B,h);return y}function Lc(h,v,y,I){var B=h==null?0:h.length;for(I&&B&&(y=h[--B]);B--;)y=v(y,h[B],B,h);return y}function bi(h,v){for(var y=-1,I=h==null?0:h.length;++y<I;)if(v(h[y],y,h))return!0;return!1}var Bc=Ai("length");function Dc(h){return h.split("")}function Wc(h){return h.match(Kf)||[]}function Nu(h,v,y){var I;return y(h,function(B,j,ge){if(v(B,j,ge))return I=j,!1}),I}function vr(h,v,y,I){for(var B=h.length,j=y+(I?1:-1);I?j--:++j<B;)if(v(h[j],j,h))return j;return-1}function Et(h,v,y){return v===v?Zc(h,v,y):vr(h,Fu,y)}function Uc(h,v,y,I){for(var B=y-1,j=h.length;++B<j;)if(I(h[B],v))return B;return-1}function Fu(h){return h!==h}function Lu(h,v){var y=h==null?0:h.length;return y?xi(h,v)/y:wt}function Ai(h){return function(v){return v==null?r:v[h]}}function Si(h){return function(v){return h==null?r:h[v]}}function Bu(h,v,y,I,B){return B(h,function(j,ge,Y){y=I?(I=!1,j):v(y,j,ge,Y)}),y}function kc(h,v){var y=h.length;for(h.sort(v);y--;)h[y]=h[y].value;return h}function xi(h,v){for(var y,I=-1,B=h.length;++I<B;){var j=v(h[I]);j!==r&&(y=y===r?j:y+j)}return y}function Ei(h,v){for(var y=-1,I=Array(h);++y<h;)I[y]=v(y);return I}function $c(h,v){return ne(v,function(y){return[y,h[y]]})}function Du(h){return h&&h.slice(0,$u(h)+1).replace(ln,"")}function He(h){return function(v){return h(v)}}function Ii(h,v){return ne(v,function(y){return h[y]})}function zt(h,v){return h.has(v)}function Wu(h,v){for(var y=-1,I=h.length;++y<I&&Et(v,h[y],0)>-1;);return y}function Uu(h,v){for(var y=h.length;y--&&Et(v,h[y],0)>-1;);return y}function Gc(h,v){for(var y=h.length,I=0;y--;)h[y]===v&&++I;return I}var Hc=Si(Ic),zc=Si(Oc);function qc(h){return"\\"+Pc[h]}function Kc(h,v){return h==null?r:h[v]}function It(h){return Ac.test(h)}function jc(h){return Sc.test(h)}function Jc(h){for(var v,y=[];!(v=h.next()).done;)y.push(v.value);return y}function Oi(h){var v=-1,y=Array(h.size);return h.forEach(function(I,B){y[++v]=[B,I]}),y}function ku(h,v){return function(y){return h(v(y))}}function Vn(h,v){for(var y=-1,I=h.length,B=0,j=[];++y<I;){var ge=h[y];(ge===v||ge===N)&&(h[y]=N,j[B++]=y)}return j}function mr(h){var v=-1,y=Array(h.size);return h.forEach(function(I){y[++v]=I}),y}function Vc(h){var v=-1,y=Array(h.size);return h.forEach(function(I){y[++v]=[I,I]}),y}function Zc(h,v,y){for(var I=y-1,B=h.length;++I<B;)if(h[I]===v)return I;return-1}function Yc(h,v,y){for(var I=y+1;I--;)if(h[I]===v)return I;return I}function Ot(h){return It(h)?Qc(h):Bc(h)}function pn(h){return It(h)?el(h):Dc(h)}function $u(h){for(var v=h.length;v--&&sr.test(h.charAt(v)););return v}var Xc=Si(Tc);function Qc(h){for(var v=yi.lastIndex=0;yi.test(h);)++v;return v}function el(h){return h.match(yi)||[]}function nl(h){return h.match(bc)||[]}var tl=function h(v){v=v==null?_e:Zn.defaults(_e.Object(),v,Zn.pick(_e,xc));var y=v.Array,I=v.Date,B=v.Error,j=v.Function,ge=v.Math,Y=v.Object,Ti=v.RegExp,rl=v.String,Qe=v.TypeError,_r=y.prototype,il=j.prototype,Tt=Y.prototype,wr=v["__core-js_shared__"],br=il.toString,V=Tt.hasOwnProperty,ol=0,Gu=function(){var e=/[^.]+$/.exec(wr&&wr.keys&&wr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Ar=Tt.toString,ul=br.call(Y),sl=_e._,al=Ti("^"+br.call(V).replace(Ht,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Sr=Eu?v.Buffer:r,Yn=v.Symbol,xr=v.Uint8Array,Hu=Sr?Sr.allocUnsafe:r,Er=ku(Y.getPrototypeOf,Y),zu=Y.create,qu=Tt.propertyIsEnumerable,Ir=_r.splice,Ku=Yn?Yn.isConcatSpreadable:r,qt=Yn?Yn.iterator:r,lt=Yn?Yn.toStringTag:r,Or=function(){try{var e=yt(Y,"defineProperty");return e({},"",{}),e}catch{}}(),fl=v.clearTimeout!==_e.clearTimeout&&v.clearTimeout,cl=I&&I.now!==_e.Date.now&&I.now,ll=v.setTimeout!==_e.setTimeout&&v.setTimeout,Tr=ge.ceil,Pr=ge.floor,Pi=Y.getOwnPropertySymbols,pl=Sr?Sr.isBuffer:r,ju=v.isFinite,hl=_r.join,dl=ku(Y.keys,Y),ye=ge.max,Pe=ge.min,gl=I.now,yl=v.parseInt,Ju=ge.random,vl=_r.reverse,Ci=yt(v,"DataView"),Kt=yt(v,"Map"),Ri=yt(v,"Promise"),Pt=yt(v,"Set"),jt=yt(v,"WeakMap"),Jt=yt(Y,"create"),Cr=jt&&new jt,Ct={},ml=vt(Ci),_l=vt(Kt),wl=vt(Ri),bl=vt(Pt),Al=vt(jt),Rr=Yn?Yn.prototype:r,Vt=Rr?Rr.valueOf:r,Vu=Rr?Rr.toString:r;function s(e){if(oe(e)&&!D(e)&&!(e instanceof H)){if(e instanceof en)return e;if(V.call(e,"__wrapped__"))return Zs(e)}return new en(e)}var Rt=function(){function e(){}return function(n){if(!ie(n))return{};if(zu)return zu(n);e.prototype=n;var t=new e;return e.prototype=r,t}}();function Mr(){}function en(e,n){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=r}s.templateSettings={escape:at,evaluate:Ze,interpolate:Gn,variable:"",imports:{_:s}},s.prototype=Mr.prototype,s.prototype.constructor=s,en.prototype=Rt(Mr.prototype),en.prototype.constructor=en;function H(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Ve,this.__views__=[]}function Sl(){var e=new H(this.__wrapped__);return e.__actions__=De(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=De(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=De(this.__views__),e}function xl(){if(this.__filtered__){var e=new H(this);e.__dir__=-1,e.__filtered__=!0}else e=this.clone(),e.__dir__*=-1;return e}function El(){var e=this.__wrapped__.value(),n=this.__dir__,t=D(e),i=n<0,u=t?e.length:0,f=Dp(0,u,this.__views__),c=f.start,l=f.end,d=l-c,m=i?l:c-1,_=this.__iteratees__,w=_.length,S=0,T=Pe(d,this.__takeCount__);if(!t||!i&&u==d&&T==d)return _s(e,this.__actions__);var R=[];e:for(;d--&&S<T;){m+=n;for(var U=-1,M=e[m];++U<w;){var G=_[U],z=G.iteratee,Ke=G.type,Fe=z(M);if(Ke==oi)M=Fe;else if(!Fe){if(Ke==fr)continue e;break e}}R[S++]=M}return R}H.prototype=Rt(Mr.prototype),H.prototype.constructor=H;function pt(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var i=e[n];this.set(i[0],i[1])}}function Il(){this.__data__=Jt?Jt(null):{},this.size=0}function Ol(e){var n=this.has(e)&&delete this.__data__[e];return this.size-=n?1:0,n}function Tl(e){var n=this.__data__;if(Jt){var t=n[e];return t===A?r:t}return V.call(n,e)?n[e]:r}function Pl(e){var n=this.__data__;return Jt?n[e]!==r:V.call(n,e)}function Cl(e,n){var t=this.__data__;return this.size+=this.has(e)?0:1,t[e]=Jt&&n===r?A:n,this}pt.prototype.clear=Il,pt.prototype.delete=Ol,pt.prototype.get=Tl,pt.prototype.has=Pl,pt.prototype.set=Cl;function Rn(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var i=e[n];this.set(i[0],i[1])}}function Rl(){this.__data__=[],this.size=0}function Ml(e){var n=this.__data__,t=Nr(n,e);if(t<0)return!1;var i=n.length-1;return t==i?n.pop():Ir.call(n,t,1),--this.size,!0}function Nl(e){var n=this.__data__,t=Nr(n,e);return t<0?r:n[t][1]}function Fl(e){return Nr(this.__data__,e)>-1}function Ll(e,n){var t=this.__data__,i=Nr(t,e);return i<0?(++this.size,t.push([e,n])):t[i][1]=n,this}Rn.prototype.clear=Rl,Rn.prototype.delete=Ml,Rn.prototype.get=Nl,Rn.prototype.has=Fl,Rn.prototype.set=Ll;function Mn(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var i=e[n];this.set(i[0],i[1])}}function Bl(){this.size=0,this.__data__={hash:new pt,map:new(Kt||Rn),string:new pt}}function Dl(e){var n=qr(this,e).delete(e);return this.size-=n?1:0,n}function Wl(e){return qr(this,e).get(e)}function Ul(e){return qr(this,e).has(e)}function kl(e,n){var t=qr(this,e),i=t.size;return t.set(e,n),this.size+=t.size==i?0:1,this}Mn.prototype.clear=Bl,Mn.prototype.delete=Dl,Mn.prototype.get=Wl,Mn.prototype.has=Ul,Mn.prototype.set=kl;function ht(e){var n=-1,t=e==null?0:e.length;for(this.__data__=new Mn;++n<t;)this.add(e[n])}function $l(e){return this.__data__.set(e,A),this}function Gl(e){return this.__data__.has(e)}ht.prototype.add=ht.prototype.push=$l,ht.prototype.has=Gl;function hn(e){var n=this.__data__=new Rn(e);this.size=n.size}function Hl(){this.__data__=new Rn,this.size=0}function zl(e){var n=this.__data__,t=n.delete(e);return this.size=n.size,t}function ql(e){return this.__data__.get(e)}function Kl(e){return this.__data__.has(e)}function jl(e,n){var t=this.__data__;if(t instanceof Rn){var i=t.__data__;if(!Kt||i.length<a-1)return i.push([e,n]),this.size=++t.size,this;t=this.__data__=new Mn(i)}return t.set(e,n),this.size=t.size,this}hn.prototype.clear=Hl,hn.prototype.delete=zl,hn.prototype.get=ql,hn.prototype.has=Kl,hn.prototype.set=jl;function Zu(e,n){var t=D(e),i=!t&&mt(e),u=!t&&!i&&tt(e),f=!t&&!i&&!u&&Lt(e),c=t||i||u||f,l=c?Ei(e.length,rl):[],d=l.length;for(var m in e)(n||V.call(e,m))&&!(c&&(m=="length"||u&&(m=="offset"||m=="parent")||f&&(m=="buffer"||m=="byteLength"||m=="byteOffset")||Bn(m,d)))&&l.push(m);return l}function Yu(e){var n=e.length;return n?e[Gi(0,n-1)]:r}function Jl(e,n){return Kr(De(e),dt(n,0,e.length))}function Vl(e){return Kr(De(e))}function Mi(e,n,t){(t!==r&&!dn(e[n],t)||t===r&&!(n in e))&&Nn(e,n,t)}function Zt(e,n,t){var i=e[n];(!(V.call(e,n)&&dn(i,t))||t===r&&!(n in e))&&Nn(e,n,t)}function Nr(e,n){for(var t=e.length;t--;)if(dn(e[t][0],n))return t;return-1}function Zl(e,n,t,i){return Xn(e,function(u,f,c){n(i,u,t(u),c)}),i}function Xu(e,n){return e&&En(n,we(n),e)}function Yl(e,n){return e&&En(n,Ue(n),e)}function Nn(e,n,t){n=="__proto__"&&Or?Or(e,n,{configurable:!0,enumerable:!0,value:t,writable:!0}):e[n]=t}function Ni(e,n){for(var t=-1,i=n.length,u=y(i),f=e==null;++t<i;)u[t]=f?r:ho(e,n[t]);return u}function dt(e,n,t){return e===e&&(t!==r&&(e=e<=t?e:t),n!==r&&(e=e>=n?e:n)),e}function nn(e,n,t,i,u,f){var c,l=n&q,d=n&ve,m=n&Le;if(t&&(c=u?t(e,i,u,f):t(e)),c!==r)return c;if(!ie(e))return e;var _=D(e);if(_){if(c=Up(e),!l)return De(e,c)}else{var w=Ce(e),S=w==O||w==F;if(tt(e))return As(e,l);if(w==re||w==ot||S&&!u){if(c=d||S?{}:$s(e),!l)return d?Tp(e,Yl(c,e)):Op(e,Xu(c,e))}else{if(!X[w])return u?e:{};c=kp(e,w,l)}}f||(f=new hn);var T=f.get(e);if(T)return T;f.set(e,c),ya(e)?e.forEach(function(M){c.add(nn(M,n,t,M,e,f))}):da(e)&&e.forEach(function(M,G){c.set(G,nn(M,n,t,G,e,f))});var R=m?d?Qi:Xi:d?Ue:we,U=_?r:R(e);return Xe(U||e,function(M,G){U&&(G=M,M=e[G]),Zt(c,G,nn(M,n,t,G,e,f))}),c}function Xl(e){var n=we(e);return function(t){return Qu(t,e,n)}}function Qu(e,n,t){var i=t.length;if(e==null)return!i;for(e=Y(e);i--;){var u=t[i],f=n[u],c=e[u];if(c===r&&!(u in e)||!f(c))return!1}return!0}function es(e,n,t){if(typeof e!="function")throw new Qe(g);return rr(function(){e.apply(r,t)},n)}function Yt(e,n,t,i){var u=-1,f=yr,c=!0,l=e.length,d=[],m=n.length;if(!l)return d;t&&(n=ne(n,He(t))),i?(f=_i,c=!1):n.length>=a&&(f=zt,c=!1,n=new ht(n));e:for(;++u<l;){var _=e[u],w=t==null?_:t(_);if(_=i||_!==0?_:0,c&&w===w){for(var S=m;S--;)if(n[S]===w)continue e;d.push(_)}else f(n,w,i)||d.push(_)}return d}var Xn=Os(xn),ns=Os(Li,!0);function Ql(e,n){var t=!0;return Xn(e,function(i,u,f){return t=!!n(i,u,f),t}),t}function Fr(e,n,t){for(var i=-1,u=e.length;++i<u;){var f=e[i],c=n(f);if(c!=null&&(l===r?c===c&&!qe(c):t(c,l)))var l=c,d=f}return d}function ep(e,n,t,i){var u=e.length;for(t=W(t),t<0&&(t=-t>u?0:u+t),i=i===r||i>u?u:W(i),i<0&&(i+=u),i=t>i?0:ma(i);t<i;)e[t++]=n;return e}function ts(e,n){var t=[];return Xn(e,function(i,u,f){n(i,u,f)&&t.push(i)}),t}function Ie(e,n,t,i,u){var f=-1,c=e.length;for(t||(t=Gp),u||(u=[]);++f<c;){var l=e[f];n>0&&t(l)?n>1?Ie(l,n-1,t,i,u):Jn(u,l):i||(u[u.length]=l)}return u}var Fi=Ts(),rs=Ts(!0);function xn(e,n){return e&&Fi(e,n,we)}function Li(e,n){return e&&rs(e,n,we)}function Lr(e,n){return jn(n,function(t){return Dn(e[t])})}function gt(e,n){n=et(n,e);for(var t=0,i=n.length;e!=null&&t<i;)e=e[In(n[t++])];return t&&t==i?e:r}function is(e,n,t){var i=n(e);return D(e)?i:Jn(i,t(e))}function Me(e){return e==null?e===r?ur:vn:lt&&lt in Y(e)?Bp(e):Vp(e)}function Bi(e,n){return e>n}function np(e,n){return e!=null&&V.call(e,n)}function tp(e,n){return e!=null&&n in Y(e)}function rp(e,n,t){return e>=Pe(n,t)&&e<ye(n,t)}function Di(e,n,t){for(var i=t?_i:yr,u=e[0].length,f=e.length,c=f,l=y(f),d=1/0,m=[];c--;){var _=e[c];c&&n&&(_=ne(_,He(n))),d=Pe(_.length,d),l[c]=!t&&(n||u>=120&&_.length>=120)?new ht(c&&_):r}_=e[0];var w=-1,S=l[0];e:for(;++w<u&&m.length<d;){var T=_[w],R=n?n(T):T;if(T=t||T!==0?T:0,!(S?zt(S,R):i(m,R,t))){for(c=f;--c;){var U=l[c];if(!(U?zt(U,R):i(e[c],R,t)))continue e}S&&S.push(R),m.push(T)}}return m}function ip(e,n,t,i){return xn(e,function(u,f,c){n(i,t(u),f,c)}),i}function Xt(e,n,t){n=et(n,e),e=qs(e,n);var i=e==null?e:e[In(rn(n))];return i==null?r:Ge(i,e,t)}function os(e){return oe(e)&&Me(e)==ot}function op(e){return oe(e)&&Me(e)==Re}function up(e){return oe(e)&&Me(e)==ut}function Qt(e,n,t,i,u){return e===n?!0:e==null||n==null||!oe(e)&&!oe(n)?e!==e&&n!==n:sp(e,n,t,i,Qt,u)}function sp(e,n,t,i,u,f){var c=D(e),l=D(n),d=c?Gt:Ce(e),m=l?Gt:Ce(n);d=d==ot?re:d,m=m==ot?re:m;var _=d==re,w=m==re,S=d==m;if(S&&tt(e)){if(!tt(n))return!1;c=!0,_=!1}if(S&&!_)return f||(f=new hn),c||Lt(e)?Ws(e,n,t,i,u,f):Fp(e,n,d,t,i,u,f);if(!(t&Oe)){var T=_&&V.call(e,"__wrapped__"),R=w&&V.call(n,"__wrapped__");if(T||R){var U=T?e.value():e,M=R?n.value():n;return f||(f=new hn),u(U,M,t,i,f)}}return S?(f||(f=new hn),Lp(e,n,t,i,u,f)):!1}function ap(e){return oe(e)&&Ce(e)==L}function Wi(e,n,t,i){var u=t.length,f=u,c=!i;if(e==null)return!f;for(e=Y(e);u--;){var l=t[u];if(c&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++u<f;){l=t[u];var d=l[0],m=e[d],_=l[1];if(c&&l[2]){if(m===r&&!(d in e))return!1}else{var w=new hn;if(i)var S=i(m,_,d,e,n,w);if(!(S===r?Qt(_,m,Oe|sn,i,w):S))return!1}}return!0}function us(e){if(!ie(e)||zp(e))return!1;var n=Dn(e)?al:Xf;return n.test(vt(e))}function fp(e){return oe(e)&&Me(e)==On}function cp(e){return oe(e)&&Ce(e)==Te}function lp(e){return oe(e)&&Xr(e.length)&&!!Q[Me(e)]}function ss(e){return typeof e=="function"?e:e==null?ke:typeof e=="object"?D(e)?cs(e[0],e[1]):fs(e):Pa(e)}function Ui(e){if(!tr(e))return dl(e);var n=[];for(var t in Y(e))V.call(e,t)&&t!="constructor"&&n.push(t);return n}function pp(e){if(!ie(e))return Jp(e);var n=tr(e),t=[];for(var i in e)i=="constructor"&&(n||!V.call(e,i))||t.push(i);return t}function ki(e,n){return e<n}function as(e,n){var t=-1,i=We(e)?y(e.length):[];return Xn(e,function(u,f,c){i[++t]=n(u,f,c)}),i}function fs(e){var n=no(e);return n.length==1&&n[0][2]?Hs(n[0][0],n[0][1]):function(t){return t===e||Wi(t,e,n)}}function cs(e,n){return ro(e)&&Gs(n)?Hs(In(e),n):function(t){var i=ho(t,e);return i===r&&i===n?go(t,e):Qt(n,i,Oe|sn)}}function Br(e,n,t,i,u){e!==n&&Fi(n,function(f,c){if(u||(u=new hn),ie(f))hp(e,n,c,t,Br,i,u);else{var l=i?i(oo(e,c),f,c+"",e,n,u):r;l===r&&(l=f),Mi(e,c,l)}},Ue)}function hp(e,n,t,i,u,f,c){var l=oo(e,t),d=oo(n,t),m=c.get(d);if(m){Mi(e,t,m);return}var _=f?f(l,d,t+"",e,n,c):r,w=_===r;if(w){var S=D(d),T=!S&&tt(d),R=!S&&!T&&Lt(d);_=d,S||T||R?D(l)?_=l:ae(l)?_=De(l):T?(w=!1,_=As(d,!0)):R?(w=!1,_=Ss(d,!0)):_=[]:ir(d)||mt(d)?(_=l,mt(l)?_=_a(l):(!ie(l)||Dn(l))&&(_=$s(d))):w=!1}w&&(c.set(d,_),u(_,d,i,f,c),c.delete(d)),Mi(e,t,_)}function ls(e,n){var t=e.length;if(t)return n+=n<0?t:0,Bn(n,t)?e[n]:r}function ps(e,n,t){n.length?n=ne(n,function(f){return D(f)?function(c){return gt(c,f.length===1?f[0]:f)}:f}):n=[ke];var i=-1;n=ne(n,He(C()));var u=as(e,function(f,c,l){var d=ne(n,function(m){return m(f)});return{criteria:d,index:++i,value:f}});return kc(u,function(f,c){return Ip(f,c,t)})}function dp(e,n){return hs(e,n,function(t,i){return go(e,i)})}function hs(e,n,t){for(var i=-1,u=n.length,f={};++i<u;){var c=n[i],l=gt(e,c);t(l,c)&&er(f,et(c,e),l)}return f}function gp(e){return function(n){return gt(n,e)}}function $i(e,n,t,i){var u=i?Uc:Et,f=-1,c=n.length,l=e;for(e===n&&(n=De(n)),t&&(l=ne(e,He(t)));++f<c;)for(var d=0,m=n[f],_=t?t(m):m;(d=u(l,_,d,i))>-1;)l!==e&&Ir.call(l,d,1),Ir.call(e,d,1);return e}function ds(e,n){for(var t=e?n.length:0,i=t-1;t--;){var u=n[t];if(t==i||u!==f){var f=u;Bn(u)?Ir.call(e,u,1):qi(e,u)}}return e}function Gi(e,n){return e+Pr(Ju()*(n-e+1))}function yp(e,n,t,i){for(var u=-1,f=ye(Tr((n-e)/(t||1)),0),c=y(f);f--;)c[i?f:++u]=e,e+=t;return c}function Hi(e,n){var t="";if(!e||n<1||n>_n)return t;do n%2&&(t+=e),n=Pr(n/2),n&&(e+=e);while(n);return t}function $(e,n){return uo(zs(e,n,ke),e+"")}function vp(e){return Yu(Bt(e))}function mp(e,n){var t=Bt(e);return Kr(t,dt(n,0,t.length))}function er(e,n,t,i){if(!ie(e))return e;n=et(n,e);for(var u=-1,f=n.length,c=f-1,l=e;l!=null&&++u<f;){var d=In(n[u]),m=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return e;if(u!=c){var _=l[d];m=i?i(_,d,l):r,m===r&&(m=ie(_)?_:Bn(n[u+1])?[]:{})}Zt(l,d,m),l=l[d]}return e}var gs=Cr?function(e,n){return Cr.set(e,n),e}:ke,_p=Or?function(e,n){return Or(e,"toString",{configurable:!0,enumerable:!1,value:vo(n),writable:!0})}:ke;function wp(e){return Kr(Bt(e))}function tn(e,n,t){var i=-1,u=e.length;n<0&&(n=-n>u?0:u+n),t=t>u?u:t,t<0&&(t+=u),u=n>t?0:t-n>>>0,n>>>=0;for(var f=y(u);++i<u;)f[i]=e[i+n];return f}function bp(e,n){var t;return Xn(e,function(i,u,f){return t=n(i,u,f),!t}),!!t}function Dr(e,n,t){var i=0,u=e==null?i:e.length;if(typeof n=="number"&&n===n&&u<=li){for(;i<u;){var f=i+u>>>1,c=e[f];c!==null&&!qe(c)&&(t?c<=n:c<n)?i=f+1:u=f}return u}return zi(e,n,ke,t)}function zi(e,n,t,i){var u=0,f=e==null?0:e.length;if(f===0)return 0;n=t(n);for(var c=n!==n,l=n===null,d=qe(n),m=n===r;u<f;){var _=Pr((u+f)/2),w=t(e[_]),S=w!==r,T=w===null,R=w===w,U=qe(w);if(c)var M=i||R;else m?M=R&&(i||S):l?M=R&&S&&(i||!T):d?M=R&&S&&!T&&(i||!U):T||U?M=!1:M=i?w<=n:w<n;M?u=_+1:f=_}return Pe(f,lr)}function ys(e,n){for(var t=-1,i=e.length,u=0,f=[];++t<i;){var c=e[t],l=n?n(c):c;if(!t||!dn(l,d)){var d=l;f[u++]=c===0?0:c}}return f}function vs(e){return typeof e=="number"?e:qe(e)?wt:+e}function ze(e){if(typeof e=="string")return e;if(D(e))return ne(e,ze)+"";if(qe(e))return Vu?Vu.call(e):"";var n=e+"";return n=="0"&&1/e==-mn?"-0":n}function Qn(e,n,t){var i=-1,u=yr,f=e.length,c=!0,l=[],d=l;if(t)c=!1,u=_i;else if(f>=a){var m=n?null:Mp(e);if(m)return mr(m);c=!1,u=zt,d=new ht}else d=n?[]:l;e:for(;++i<f;){var _=e[i],w=n?n(_):_;if(_=t||_!==0?_:0,c&&w===w){for(var S=d.length;S--;)if(d[S]===w)continue e;n&&d.push(w),l.push(_)}else u(d,w,t)||(d!==l&&d.push(w),l.push(_))}return l}function qi(e,n){return n=et(n,e),e=qs(e,n),e==null||delete e[In(rn(n))]}function ms(e,n,t,i){return er(e,n,t(gt(e,n)),i)}function Wr(e,n,t,i){for(var u=e.length,f=i?u:-1;(i?f--:++f<u)&&n(e[f],f,e););return t?tn(e,i?0:f,i?f+1:u):tn(e,i?f+1:0,i?u:f)}function _s(e,n){var t=e;return t instanceof H&&(t=t.value()),wi(n,function(i,u){return u.func.apply(u.thisArg,Jn([i],u.args))},t)}function Ki(e,n,t){var i=e.length;if(i<2)return i?Qn(e[0]):[];for(var u=-1,f=y(i);++u<i;)for(var c=e[u],l=-1;++l<i;)l!=u&&(f[u]=Yt(f[u]||c,e[l],n,t));return Qn(Ie(f,1),n,t)}function ws(e,n,t){for(var i=-1,u=e.length,f=n.length,c={};++i<u;){var l=i<f?n[i]:r;t(c,e[i],l)}return c}function ji(e){return ae(e)?e:[]}function Ji(e){return typeof e=="function"?e:ke}function et(e,n){return D(e)?e:ro(e,n)?[e]:Vs(J(e))}var Ap=$;function nt(e,n,t){var i=e.length;return t=t===r?i:t,!n&&t>=i?e:tn(e,n,t)}var bs=fl||function(e){return _e.clearTimeout(e)};function As(e,n){if(n)return e.slice();var t=e.length,i=Hu?Hu(t):new e.constructor(t);return e.copy(i),i}function Vi(e){var n=new e.constructor(e.byteLength);return new xr(n).set(new xr(e)),n}function Sp(e,n){var t=n?Vi(e.buffer):e.buffer;return new e.constructor(t,e.byteOffset,e.byteLength)}function xp(e){var n=new e.constructor(e.source,ou.exec(e));return n.lastIndex=e.lastIndex,n}function Ep(e){return Vt?Y(Vt.call(e)):{}}function Ss(e,n){var t=n?Vi(e.buffer):e.buffer;return new e.constructor(t,e.byteOffset,e.length)}function xs(e,n){if(e!==n){var t=e!==r,i=e===null,u=e===e,f=qe(e),c=n!==r,l=n===null,d=n===n,m=qe(n);if(!l&&!m&&!f&&e>n||f&&c&&d&&!l&&!m||i&&c&&d||!t&&d||!u)return 1;if(!i&&!f&&!m&&e<n||m&&t&&u&&!i&&!f||l&&t&&u||!c&&u||!d)return-1}return 0}function Ip(e,n,t){for(var i=-1,u=e.criteria,f=n.criteria,c=u.length,l=t.length;++i<c;){var d=xs(u[i],f[i]);if(d){if(i>=l)return d;var m=t[i];return d*(m=="desc"?-1:1)}}return e.index-n.index}function Es(e,n,t,i){for(var u=-1,f=e.length,c=t.length,l=-1,d=n.length,m=ye(f-c,0),_=y(d+m),w=!i;++l<d;)_[l]=n[l];for(;++u<c;)(w||u<f)&&(_[t[u]]=e[u]);for(;m--;)_[l++]=e[u++];return _}function Is(e,n,t,i){for(var u=-1,f=e.length,c=-1,l=t.length,d=-1,m=n.length,_=ye(f-l,0),w=y(_+m),S=!i;++u<_;)w[u]=e[u];for(var T=u;++d<m;)w[T+d]=n[d];for(;++c<l;)(S||u<f)&&(w[T+t[c]]=e[u++]);return w}function De(e,n){var t=-1,i=e.length;for(n||(n=y(i));++t<i;)n[t]=e[t];return n}function En(e,n,t,i){var u=!t;t||(t={});for(var f=-1,c=n.length;++f<c;){var l=n[f],d=i?i(t[l],e[l],l,t,e):r;d===r&&(d=e[l]),u?Nn(t,l,d):Zt(t,l,d)}return t}function Op(e,n){return En(e,to(e),n)}function Tp(e,n){return En(e,Us(e),n)}function Ur(e,n){return function(t,i){var u=D(t)?Nc:Zl,f=n?n():{};return u(t,e,C(i,2),f)}}function Mt(e){return $(function(n,t){var i=-1,u=t.length,f=u>1?t[u-1]:r,c=u>2?t[2]:r;for(f=e.length>3&&typeof f=="function"?(u--,f):r,c&&Ne(t[0],t[1],c)&&(f=u<3?r:f,u=1),n=Y(n);++i<u;){var l=t[i];l&&e(n,l,i,f)}return n})}function Os(e,n){return function(t,i){if(t==null)return t;if(!We(t))return e(t,i);for(var u=t.length,f=n?u:-1,c=Y(t);(n?f--:++f<u)&&i(c[f],f,c)!==!1;);return t}}function Ts(e){return function(n,t,i){for(var u=-1,f=Y(n),c=i(n),l=c.length;l--;){var d=c[e?l:++u];if(t(f[d],d,f)===!1)break}return n}}function Pp(e,n,t){var i=n&me,u=nr(e);function f(){var c=this&&this!==_e&&this instanceof f?u:e;return c.apply(i?t:this,arguments)}return f}function Ps(e){return function(n){n=J(n);var t=It(n)?pn(n):r,i=t?t[0]:n.charAt(0),u=t?nt(t,1).join(""):n.slice(1);return i[e]()+u}}function Nt(e){return function(n){return wi(Oa(Ia(n).replace(_c,"")),e,"")}}function nr(e){return function(){var n=arguments;switch(n.length){case 0:return new e;case 1:return new e(n[0]);case 2:return new e(n[0],n[1]);case 3:return new e(n[0],n[1],n[2]);case 4:return new e(n[0],n[1],n[2],n[3]);case 5:return new e(n[0],n[1],n[2],n[3],n[4]);case 6:return new e(n[0],n[1],n[2],n[3],n[4],n[5]);case 7:return new e(n[0],n[1],n[2],n[3],n[4],n[5],n[6])}var t=Rt(e.prototype),i=e.apply(t,n);return ie(i)?i:t}}function Cp(e,n,t){var i=nr(e);function u(){for(var f=arguments.length,c=y(f),l=f,d=Ft(u);l--;)c[l]=arguments[l];var m=f<3&&c[0]!==d&&c[f-1]!==d?[]:Vn(c,d);if(f-=m.length,f<t)return Fs(e,n,kr,u.placeholder,r,c,m,r,r,t-f);var _=this&&this!==_e&&this instanceof u?i:e;return Ge(_,this,c)}return u}function Cs(e){return function(n,t,i){var u=Y(n);if(!We(n)){var f=C(t,3);n=we(n),t=function(l){return f(u[l],l,u)}}var c=e(n,t,i);return c>-1?u[f?n[c]:c]:r}}function Rs(e){return Ln(function(n){var t=n.length,i=t,u=en.prototype.thru;for(e&&n.reverse();i--;){var f=n[i];if(typeof f!="function")throw new Qe(g);if(u&&!c&&zr(f)=="wrapper")var c=new en([],!0)}for(i=c?i:t;++i<t;){f=n[i];var l=zr(f),d=l=="wrapper"?eo(f):r;d&&io(d[0])&&d[1]==(fn|te|an|_t)&&!d[4].length&&d[9]==1?c=c[zr(d[0])].apply(c,d[3]):c=f.length==1&&io(f)?c[l]():c.thru(f)}return function(){var m=arguments,_=m[0];if(c&&m.length==1&&D(_))return c.plant(_).value();for(var w=0,S=t?n[w].apply(this,m):_;++w<t;)S=n[w].call(this,S);return S}})}function kr(e,n,t,i,u,f,c,l,d,m){var _=n&fn,w=n&me,S=n&yn,T=n&(te|ft),R=n&$t,U=S?r:nr(e);function M(){for(var G=arguments.length,z=y(G),Ke=G;Ke--;)z[Ke]=arguments[Ke];if(T)var Fe=Ft(M),je=Gc(z,Fe);if(i&&(z=Es(z,i,u,T)),f&&(z=Is(z,f,c,T)),G-=je,T&&G<m){var fe=Vn(z,Fe);return Fs(e,n,kr,M.placeholder,t,z,fe,l,d,m-G)}var gn=w?t:this,Un=S?gn[e]:e;return G=z.length,l?z=Zp(z,l):R&&G>1&&z.reverse(),_&&d<G&&(z.length=d),this&&this!==_e&&this instanceof M&&(Un=U||nr(Un)),Un.apply(gn,z)}return M}function Ms(e,n){return function(t,i){return ip(t,e,n(i),{})}}function $r(e,n){return function(t,i){var u;if(t===r&&i===r)return n;if(t!==r&&(u=t),i!==r){if(u===r)return i;typeof t=="string"||typeof i=="string"?(t=ze(t),i=ze(i)):(t=vs(t),i=vs(i)),u=e(t,i)}return u}}function Zi(e){return Ln(function(n){return n=ne(n,He(C())),$(function(t){var i=this;return e(n,function(u){return Ge(u,i,t)})})})}function Gr(e,n){n=n===r?" ":ze(n);var t=n.length;if(t<2)return t?Hi(n,e):n;var i=Hi(n,Tr(e/Ot(n)));return It(n)?nt(pn(i),0,e).join(""):i.slice(0,e)}function Rp(e,n,t,i){var u=n&me,f=nr(e);function c(){for(var l=-1,d=arguments.length,m=-1,_=i.length,w=y(_+d),S=this&&this!==_e&&this instanceof c?f:e;++m<_;)w[m]=i[m];for(;d--;)w[m++]=arguments[++l];return Ge(S,u?t:this,w)}return c}function Ns(e){return function(n,t,i){return i&&typeof i!="number"&&Ne(n,t,i)&&(t=i=r),n=Wn(n),t===r?(t=n,n=0):t=Wn(t),i=i===r?n<t?1:-1:Wn(i),yp(n,t,i,e)}}function Hr(e){return function(n,t){return typeof n=="string"&&typeof t=="string"||(n=on(n),t=on(t)),e(n,t)}}function Fs(e,n,t,i,u,f,c,l,d,m){var _=n&te,w=_?c:r,S=_?r:c,T=_?f:r,R=_?r:f;n|=_?an:it,n&=~(_?it:an),n&fi||(n&=~(me|yn));var U=[e,n,u,T,w,R,S,l,d,m],M=t.apply(r,U);return io(e)&&Ks(M,U),M.placeholder=i,js(M,e,n)}function Yi(e){var n=ge[e];return function(t,i){if(t=on(t),i=i==null?0:Pe(W(i),292),i&&ju(t)){var u=(J(t)+"e").split("e"),f=n(u[0]+"e"+(+u[1]+i));return u=(J(f)+"e").split("e"),+(u[0]+"e"+(+u[1]-i))}return n(t)}}var Mp=Pt&&1/mr(new Pt([,-0]))[1]==mn?function(e){return new Pt(e)}:wo;function Ls(e){return function(n){var t=Ce(n);return t==L?Oi(n):t==Te?Vc(n):$c(n,e(n))}}function Fn(e,n,t,i,u,f,c,l){var d=n&yn;if(!d&&typeof e!="function")throw new Qe(g);var m=i?i.length:0;if(m||(n&=~(an|it),i=u=r),c=c===r?c:ye(W(c),0),l=l===r?l:W(l),m-=u?u.length:0,n&it){var _=i,w=u;i=u=r}var S=d?r:eo(e),T=[e,n,t,i,u,_,w,f,c,l];if(S&&jp(T,S),e=T[0],n=T[1],t=T[2],i=T[3],u=T[4],l=T[9]=T[9]===r?d?0:e.length:ye(T[9]-m,0),!l&&n&(te|ft)&&(n&=~(te|ft)),!n||n==me)var R=Pp(e,n,t);else n==te||n==ft?R=Cp(e,n,l):(n==an||n==(me|an))&&!u.length?R=Rp(e,n,t,i):R=kr.apply(r,T);var U=S?gs:Ks;return js(U(R,T),e,n)}function Bs(e,n,t,i){return e===r||dn(e,Tt[t])&&!V.call(i,t)?n:e}function Ds(e,n,t,i,u,f){return ie(e)&&ie(n)&&(f.set(n,e),Br(e,n,r,Ds,f),f.delete(n)),e}function Np(e){return ir(e)?r:e}function Ws(e,n,t,i,u,f){var c=t&Oe,l=e.length,d=n.length;if(l!=d&&!(c&&d>l))return!1;var m=f.get(e),_=f.get(n);if(m&&_)return m==n&&_==e;var w=-1,S=!0,T=t&sn?new ht:r;for(f.set(e,n),f.set(n,e);++w<l;){var R=e[w],U=n[w];if(i)var M=c?i(U,R,w,n,e,f):i(R,U,w,e,n,f);if(M!==r){if(M)continue;S=!1;break}if(T){if(!bi(n,function(G,z){if(!zt(T,z)&&(R===G||u(R,G,t,i,f)))return T.push(z)})){S=!1;break}}else if(!(R===U||u(R,U,t,i,f))){S=!1;break}}return f.delete(e),f.delete(n),S}function Fp(e,n,t,i,u,f,c){switch(t){case pe:if(e.byteLength!=n.byteLength||e.byteOffset!=n.byteOffset)return!1;e=e.buffer,n=n.buffer;case Re:return!(e.byteLength!=n.byteLength||!f(new xr(e),new xr(n)));case Je:case ut:case ce:return dn(+e,+n);case P:return e.name==n.name&&e.message==n.message;case On:case Pn:return e==n+"";case L:var l=Oi;case Te:var d=i&Oe;if(l||(l=mr),e.size!=n.size&&!d)return!1;var m=c.get(e);if(m)return m==n;i|=sn,c.set(e,n);var _=Ws(l(e),l(n),i,u,f,c);return c.delete(e),_;case wn:if(Vt)return Vt.call(e)==Vt.call(n)}return!1}function Lp(e,n,t,i,u,f){var c=t&Oe,l=Xi(e),d=l.length,m=Xi(n),_=m.length;if(d!=_&&!c)return!1;for(var w=d;w--;){var S=l[w];if(!(c?S in n:V.call(n,S)))return!1}var T=f.get(e),R=f.get(n);if(T&&R)return T==n&&R==e;var U=!0;f.set(e,n),f.set(n,e);for(var M=c;++w<d;){S=l[w];var G=e[S],z=n[S];if(i)var Ke=c?i(z,G,S,n,e,f):i(G,z,S,e,n,f);if(!(Ke===r?G===z||u(G,z,t,i,f):Ke)){U=!1;break}M||(M=S=="constructor")}if(U&&!M){var Fe=e.constructor,je=n.constructor;Fe!=je&&"constructor"in e&&"constructor"in n&&!(typeof Fe=="function"&&Fe instanceof Fe&&typeof je=="function"&&je instanceof je)&&(U=!1)}return f.delete(e),f.delete(n),U}function Ln(e){return uo(zs(e,r,Qs),e+"")}function Xi(e){return is(e,we,to)}function Qi(e){return is(e,Ue,Us)}var eo=Cr?function(e){return Cr.get(e)}:wo;function zr(e){for(var n=e.name+"",t=Ct[n],i=V.call(Ct,n)?t.length:0;i--;){var u=t[i],f=u.func;if(f==null||f==e)return u.name}return n}function Ft(e){var n=V.call(s,"placeholder")?s:e;return n.placeholder}function C(){var e=s.iteratee||mo;return e=e===mo?ss:e,arguments.length?e(arguments[0],arguments[1]):e}function qr(e,n){var t=e.__data__;return Hp(n)?t[typeof n=="string"?"string":"hash"]:t.map}function no(e){for(var n=we(e),t=n.length;t--;){var i=n[t],u=e[i];n[t]=[i,u,Gs(u)]}return n}function yt(e,n){var t=Kc(e,n);return us(t)?t:r}function Bp(e){var n=V.call(e,lt),t=e[lt];try{e[lt]=r;var i=!0}catch{}var u=Ar.call(e);return i&&(n?e[lt]=t:delete e[lt]),u}var to=Pi?function(e){return e==null?[]:(e=Y(e),jn(Pi(e),function(n){return qu.call(e,n)}))}:bo,Us=Pi?function(e){for(var n=[];e;)Jn(n,to(e)),e=Er(e);return n}:bo,Ce=Me;(Ci&&Ce(new Ci(new ArrayBuffer(1)))!=pe||Kt&&Ce(new Kt)!=L||Ri&&Ce(Ri.resolve())!=se||Pt&&Ce(new Pt)!=Te||jt&&Ce(new jt)!=Tn)&&(Ce=function(e){var n=Me(e),t=n==re?e.constructor:r,i=t?vt(t):"";if(i)switch(i){case ml:return pe;case _l:return L;case wl:return se;case bl:return Te;case Al:return Tn}return n});function Dp(e,n,t){for(var i=-1,u=t.length;++i<u;){var f=t[i],c=f.size;switch(f.type){case"drop":e+=c;break;case"dropRight":n-=c;break;case"take":n=Pe(n,e+c);break;case"takeRight":e=ye(e,n-c);break}}return{start:e,end:n}}function Wp(e){var n=e.match(St);return n?n[1].split(qf):[]}function ks(e,n,t){n=et(n,e);for(var i=-1,u=n.length,f=!1;++i<u;){var c=In(n[i]);if(!(f=e!=null&&t(e,c)))break;e=e[c]}return f||++i!=u?f:(u=e==null?0:e.length,!!u&&Xr(u)&&Bn(c,u)&&(D(e)||mt(e)))}function Up(e){var n=e.length,t=new e.constructor(n);return n&&typeof e[0]=="string"&&V.call(e,"index")&&(t.index=e.index,t.input=e.input),t}function $s(e){return typeof e.constructor=="function"&&!tr(e)?Rt(Er(e)):{}}function kp(e,n,t){var i=e.constructor;switch(n){case Re:return Vi(e);case Je:case ut:return new i(+e);case pe:return Sp(e,t);case he:case Be:case K:case k:case le:case Z:case de:case Se:case bn:return Ss(e,t);case L:return new i;case ce:case Pn:return new i(e);case On:return xp(e);case Te:return new i;case wn:return Ep(e)}}function $p(e,n){var t=n.length;if(!t)return e;var i=t-1;return n[i]=(t>1?"& ":"")+n[i],n=n.join(t>2?", ":" "),e.replace(At,`{
/* [wrapped with `+n+`] */
`)}function Gp(e){return D(e)||mt(e)||!!(Ku&&e&&e[Ku])}function Bn(e,n){var t=typeof e;return n=n??_n,!!n&&(t=="number"||t!="symbol"&&ec.test(e))&&e>-1&&e%1==0&&e<n}function Ne(e,n,t){if(!ie(t))return!1;var i=typeof n;return(i=="number"?We(t)&&Bn(n,t.length):i=="string"&&n in t)?dn(t[n],e):!1}function ro(e,n){if(D(e))return!1;var t=typeof e;return t=="number"||t=="symbol"||t=="boolean"||e==null||qe(e)?!0:pr.test(e)||!ui.test(e)||n!=null&&e in Y(n)}function Hp(e){var n=typeof e;return n=="string"||n=="number"||n=="symbol"||n=="boolean"?e!=="__proto__":e===null}function io(e){var n=zr(e),t=s[n];if(typeof t!="function"||!(n in H.prototype))return!1;if(e===t)return!0;var i=eo(t);return!!i&&e===i[0]}function zp(e){return!!Gu&&Gu in e}var qp=wr?Dn:Ao;function tr(e){var n=e&&e.constructor,t=typeof n=="function"&&n.prototype||Tt;return e===t}function Gs(e){return e===e&&!ie(e)}function Hs(e,n){return function(t){return t==null?!1:t[e]===n&&(n!==r||e in Y(t))}}function Kp(e){var n=Zr(e,function(i){return t.size===E&&t.clear(),i}),t=n.cache;return n}function jp(e,n){var t=e[1],i=n[1],u=t|i,f=u<(me|yn|fn),c=i==fn&&t==te||i==fn&&t==_t&&e[7].length<=n[8]||i==(fn|_t)&&n[7].length<=n[8]&&t==te;if(!(f||c))return e;i&me&&(e[2]=n[2],u|=t&me?0:fi);var l=n[3];if(l){var d=e[3];e[3]=d?Es(d,l,n[4]):l,e[4]=d?Vn(e[3],N):n[4]}return l=n[5],l&&(d=e[5],e[5]=d?Is(d,l,n[6]):l,e[6]=d?Vn(e[5],N):n[6]),l=n[7],l&&(e[7]=l),i&fn&&(e[8]=e[8]==null?n[8]:Pe(e[8],n[8])),e[9]==null&&(e[9]=n[9]),e[0]=n[0],e[1]=u,e}function Jp(e){var n=[];if(e!=null)for(var t in Y(e))n.push(t);return n}function Vp(e){return Ar.call(e)}function zs(e,n,t){return n=ye(n===r?e.length-1:n,0),function(){for(var i=arguments,u=-1,f=ye(i.length-n,0),c=y(f);++u<f;)c[u]=i[n+u];u=-1;for(var l=y(n+1);++u<n;)l[u]=i[u];return l[n]=t(c),Ge(e,this,l)}}function qs(e,n){return n.length<2?e:gt(e,tn(n,0,-1))}function Zp(e,n){for(var t=e.length,i=Pe(n.length,t),u=De(e);i--;){var f=n[i];e[i]=Bn(f,t)?u[f]:r}return e}function oo(e,n){if(!(n==="constructor"&&typeof e[n]=="function")&&n!="__proto__")return e[n]}var Ks=Js(gs),rr=ll||function(e,n){return _e.setTimeout(e,n)},uo=Js(_p);function js(e,n,t){var i=n+"";return uo(e,$p(i,Yp(Wp(i),t)))}function Js(e){var n=0,t=0;return function(){var i=gl(),u=No-(i-t);if(t=i,u>0){if(++n>=ar)return arguments[0]}else n=0;return e.apply(r,arguments)}}function Kr(e,n){var t=-1,i=e.length,u=i-1;for(n=n===r?i:n;++t<n;){var f=Gi(t,u),c=e[f];e[f]=e[t],e[t]=c}return e.length=n,e}var Vs=Kp(function(e){var n=[];return e.charCodeAt(0)===46&&n.push(""),e.replace(iu,function(t,i,u,f){n.push(u?f.replace(Jf,"$1"):i||t)}),n});function In(e){if(typeof e=="string"||qe(e))return e;var n=e+"";return n=="0"&&1/e==-mn?"-0":n}function vt(e){if(e!=null){try{return br.call(e)}catch{}try{return e+""}catch{}}return""}function Yp(e,n){return Xe(Fo,function(t){var i="_."+t[0];n&t[1]&&!yr(e,i)&&e.push(i)}),e.sort()}function Zs(e){if(e instanceof H)return e.clone();var n=new en(e.__wrapped__,e.__chain__);return n.__actions__=De(e.__actions__),n.__index__=e.__index__,n.__values__=e.__values__,n}function Xp(e,n,t){(t?Ne(e,n,t):n===r)?n=1:n=ye(W(n),0);var i=e==null?0:e.length;if(!i||n<1)return[];for(var u=0,f=0,c=y(Tr(i/n));u<i;)c[f++]=tn(e,u,u+=n);return c}function Qp(e){for(var n=-1,t=e==null?0:e.length,i=0,u=[];++n<t;){var f=e[n];f&&(u[i++]=f)}return u}function eh(){var e=arguments.length;if(!e)return[];for(var n=y(e-1),t=arguments[0],i=e;i--;)n[i-1]=arguments[i];return Jn(D(t)?De(t):[t],Ie(n,1))}var nh=$(function(e,n){return ae(e)?Yt(e,Ie(n,1,ae,!0)):[]}),th=$(function(e,n){var t=rn(n);return ae(t)&&(t=r),ae(e)?Yt(e,Ie(n,1,ae,!0),C(t,2)):[]}),rh=$(function(e,n){var t=rn(n);return ae(t)&&(t=r),ae(e)?Yt(e,Ie(n,1,ae,!0),r,t):[]});function ih(e,n,t){var i=e==null?0:e.length;return i?(n=t||n===r?1:W(n),tn(e,n<0?0:n,i)):[]}function oh(e,n,t){var i=e==null?0:e.length;return i?(n=t||n===r?1:W(n),n=i-n,tn(e,0,n<0?0:n)):[]}function uh(e,n){return e&&e.length?Wr(e,C(n,3),!0,!0):[]}function sh(e,n){return e&&e.length?Wr(e,C(n,3),!0):[]}function ah(e,n,t,i){var u=e==null?0:e.length;return u?(t&&typeof t!="number"&&Ne(e,n,t)&&(t=0,i=u),ep(e,n,t,i)):[]}function Ys(e,n,t){var i=e==null?0:e.length;if(!i)return-1;var u=t==null?0:W(t);return u<0&&(u=ye(i+u,0)),vr(e,C(n,3),u)}function Xs(e,n,t){var i=e==null?0:e.length;if(!i)return-1;var u=i-1;return t!==r&&(u=W(t),u=t<0?ye(i+u,0):Pe(u,i-1)),vr(e,C(n,3),u,!0)}function Qs(e){var n=e==null?0:e.length;return n?Ie(e,1):[]}function fh(e){var n=e==null?0:e.length;return n?Ie(e,mn):[]}function ch(e,n){var t=e==null?0:e.length;return t?(n=n===r?1:W(n),Ie(e,n)):[]}function lh(e){for(var n=-1,t=e==null?0:e.length,i={};++n<t;){var u=e[n];i[u[0]]=u[1]}return i}function ea(e){return e&&e.length?e[0]:r}function ph(e,n,t){var i=e==null?0:e.length;if(!i)return-1;var u=t==null?0:W(t);return u<0&&(u=ye(i+u,0)),Et(e,n,u)}function hh(e){var n=e==null?0:e.length;return n?tn(e,0,-1):[]}var dh=$(function(e){var n=ne(e,ji);return n.length&&n[0]===e[0]?Di(n):[]}),gh=$(function(e){var n=rn(e),t=ne(e,ji);return n===rn(t)?n=r:t.pop(),t.length&&t[0]===e[0]?Di(t,C(n,2)):[]}),yh=$(function(e){var n=rn(e),t=ne(e,ji);return n=typeof n=="function"?n:r,n&&t.pop(),t.length&&t[0]===e[0]?Di(t,r,n):[]});function vh(e,n){return e==null?"":hl.call(e,n)}function rn(e){var n=e==null?0:e.length;return n?e[n-1]:r}function mh(e,n,t){var i=e==null?0:e.length;if(!i)return-1;var u=i;return t!==r&&(u=W(t),u=u<0?ye(i+u,0):Pe(u,i-1)),n===n?Yc(e,n,u):vr(e,Fu,u,!0)}function _h(e,n){return e&&e.length?ls(e,W(n)):r}var wh=$(na);function na(e,n){return e&&e.length&&n&&n.length?$i(e,n):e}function bh(e,n,t){return e&&e.length&&n&&n.length?$i(e,n,C(t,2)):e}function Ah(e,n,t){return e&&e.length&&n&&n.length?$i(e,n,r,t):e}var Sh=Ln(function(e,n){var t=e==null?0:e.length,i=Ni(e,n);return ds(e,ne(n,function(u){return Bn(u,t)?+u:u}).sort(xs)),i});function xh(e,n){var t=[];if(!(e&&e.length))return t;var i=-1,u=[],f=e.length;for(n=C(n,3);++i<f;){var c=e[i];n(c,i,e)&&(t.push(c),u.push(i))}return ds(e,u),t}function so(e){return e==null?e:vl.call(e)}function Eh(e,n,t){var i=e==null?0:e.length;return i?(t&&typeof t!="number"&&Ne(e,n,t)?(n=0,t=i):(n=n==null?0:W(n),t=t===r?i:W(t)),tn(e,n,t)):[]}function Ih(e,n){return Dr(e,n)}function Oh(e,n,t){return zi(e,n,C(t,2))}function Th(e,n){var t=e==null?0:e.length;if(t){var i=Dr(e,n);if(i<t&&dn(e[i],n))return i}return-1}function Ph(e,n){return Dr(e,n,!0)}function Ch(e,n,t){return zi(e,n,C(t,2),!0)}function Rh(e,n){var t=e==null?0:e.length;if(t){var i=Dr(e,n,!0)-1;if(dn(e[i],n))return i}return-1}function Mh(e){return e&&e.length?ys(e):[]}function Nh(e,n){return e&&e.length?ys(e,C(n,2)):[]}function Fh(e){var n=e==null?0:e.length;return n?tn(e,1,n):[]}function Lh(e,n,t){return e&&e.length?(n=t||n===r?1:W(n),tn(e,0,n<0?0:n)):[]}function Bh(e,n,t){var i=e==null?0:e.length;return i?(n=t||n===r?1:W(n),n=i-n,tn(e,n<0?0:n,i)):[]}function Dh(e,n){return e&&e.length?Wr(e,C(n,3),!1,!0):[]}function Wh(e,n){return e&&e.length?Wr(e,C(n,3)):[]}var Uh=$(function(e){return Qn(Ie(e,1,ae,!0))}),kh=$(function(e){var n=rn(e);return ae(n)&&(n=r),Qn(Ie(e,1,ae,!0),C(n,2))}),$h=$(function(e){var n=rn(e);return n=typeof n=="function"?n:r,Qn(Ie(e,1,ae,!0),r,n)});function Gh(e){return e&&e.length?Qn(e):[]}function Hh(e,n){return e&&e.length?Qn(e,C(n,2)):[]}function zh(e,n){return n=typeof n=="function"?n:r,e&&e.length?Qn(e,r,n):[]}function ao(e){if(!(e&&e.length))return[];var n=0;return e=jn(e,function(t){if(ae(t))return n=ye(t.length,n),!0}),Ei(n,function(t){return ne(e,Ai(t))})}function ta(e,n){if(!(e&&e.length))return[];var t=ao(e);return n==null?t:ne(t,function(i){return Ge(n,r,i)})}var qh=$(function(e,n){return ae(e)?Yt(e,n):[]}),Kh=$(function(e){return Ki(jn(e,ae))}),jh=$(function(e){var n=rn(e);return ae(n)&&(n=r),Ki(jn(e,ae),C(n,2))}),Jh=$(function(e){var n=rn(e);return n=typeof n=="function"?n:r,Ki(jn(e,ae),r,n)}),Vh=$(ao);function Zh(e,n){return ws(e||[],n||[],Zt)}function Yh(e,n){return ws(e||[],n||[],er)}var Xh=$(function(e){var n=e.length,t=n>1?e[n-1]:r;return t=typeof t=="function"?(e.pop(),t):r,ta(e,t)});function ra(e){var n=s(e);return n.__chain__=!0,n}function Qh(e,n){return n(e),e}function jr(e,n){return n(e)}var ed=Ln(function(e){var n=e.length,t=n?e[0]:0,i=this.__wrapped__,u=function(f){return Ni(f,e)};return n>1||this.__actions__.length||!(i instanceof H)||!Bn(t)?this.thru(u):(i=i.slice(t,+t+(n?1:0)),i.__actions__.push({func:jr,args:[u],thisArg:r}),new en(i,this.__chain__).thru(function(f){return n&&!f.length&&f.push(r),f}))});function nd(){return ra(this)}function td(){return new en(this.value(),this.__chain__)}function rd(){this.__values__===r&&(this.__values__=va(this.value()));var e=this.__index__>=this.__values__.length,n=e?r:this.__values__[this.__index__++];return{done:e,value:n}}function id(){return this}function od(e){for(var n,t=this;t instanceof Mr;){var i=Zs(t);i.__index__=0,i.__values__=r,n?u.__wrapped__=i:n=i;var u=i;t=t.__wrapped__}return u.__wrapped__=e,n}function ud(){var e=this.__wrapped__;if(e instanceof H){var n=e;return this.__actions__.length&&(n=new H(this)),n=n.reverse(),n.__actions__.push({func:jr,args:[so],thisArg:r}),new en(n,this.__chain__)}return this.thru(so)}function sd(){return _s(this.__wrapped__,this.__actions__)}var ad=Ur(function(e,n,t){V.call(e,t)?++e[t]:Nn(e,t,1)});function fd(e,n,t){var i=D(e)?Mu:Ql;return t&&Ne(e,n,t)&&(n=r),i(e,C(n,3))}function cd(e,n){var t=D(e)?jn:ts;return t(e,C(n,3))}var ld=Cs(Ys),pd=Cs(Xs);function hd(e,n){return Ie(Jr(e,n),1)}function dd(e,n){return Ie(Jr(e,n),mn)}function gd(e,n,t){return t=t===r?1:W(t),Ie(Jr(e,n),t)}function ia(e,n){var t=D(e)?Xe:Xn;return t(e,C(n,3))}function oa(e,n){var t=D(e)?Fc:ns;return t(e,C(n,3))}var yd=Ur(function(e,n,t){V.call(e,t)?e[t].push(n):Nn(e,t,[n])});function vd(e,n,t,i){e=We(e)?e:Bt(e),t=t&&!i?W(t):0;var u=e.length;return t<0&&(t=ye(u+t,0)),Qr(e)?t<=u&&e.indexOf(n,t)>-1:!!u&&Et(e,n,t)>-1}var md=$(function(e,n,t){var i=-1,u=typeof n=="function",f=We(e)?y(e.length):[];return Xn(e,function(c){f[++i]=u?Ge(n,c,t):Xt(c,n,t)}),f}),_d=Ur(function(e,n,t){Nn(e,t,n)});function Jr(e,n){var t=D(e)?ne:as;return t(e,C(n,3))}function wd(e,n,t,i){return e==null?[]:(D(n)||(n=n==null?[]:[n]),t=i?r:t,D(t)||(t=t==null?[]:[t]),ps(e,n,t))}var bd=Ur(function(e,n,t){e[t?0:1].push(n)},function(){return[[],[]]});function Ad(e,n,t){var i=D(e)?wi:Bu,u=arguments.length<3;return i(e,C(n,4),t,u,Xn)}function Sd(e,n,t){var i=D(e)?Lc:Bu,u=arguments.length<3;return i(e,C(n,4),t,u,ns)}function xd(e,n){var t=D(e)?jn:ts;return t(e,Yr(C(n,3)))}function Ed(e){var n=D(e)?Yu:vp;return n(e)}function Id(e,n,t){(t?Ne(e,n,t):n===r)?n=1:n=W(n);var i=D(e)?Jl:mp;return i(e,n)}function Od(e){var n=D(e)?Vl:wp;return n(e)}function Td(e){if(e==null)return 0;if(We(e))return Qr(e)?Ot(e):e.length;var n=Ce(e);return n==L||n==Te?e.size:Ui(e).length}function Pd(e,n,t){var i=D(e)?bi:bp;return t&&Ne(e,n,t)&&(n=r),i(e,C(n,3))}var Cd=$(function(e,n){if(e==null)return[];var t=n.length;return t>1&&Ne(e,n[0],n[1])?n=[]:t>2&&Ne(n[0],n[1],n[2])&&(n=[n[0]]),ps(e,Ie(n,1),[])}),Vr=cl||function(){return _e.Date.now()};function Rd(e,n){if(typeof n!="function")throw new Qe(g);return e=W(e),function(){if(--e<1)return n.apply(this,arguments)}}function ua(e,n,t){return n=t?r:n,n=e&&n==null?e.length:n,Fn(e,fn,r,r,r,r,n)}function sa(e,n){var t;if(typeof n!="function")throw new Qe(g);return e=W(e),function(){return--e>0&&(t=n.apply(this,arguments)),e<=1&&(n=r),t}}var fo=$(function(e,n,t){var i=me;if(t.length){var u=Vn(t,Ft(fo));i|=an}return Fn(e,i,n,t,u)}),aa=$(function(e,n,t){var i=me|yn;if(t.length){var u=Vn(t,Ft(aa));i|=an}return Fn(n,i,e,t,u)});function fa(e,n,t){n=t?r:n;var i=Fn(e,te,r,r,r,r,r,n);return i.placeholder=fa.placeholder,i}function ca(e,n,t){n=t?r:n;var i=Fn(e,ft,r,r,r,r,r,n);return i.placeholder=ca.placeholder,i}function la(e,n,t){var i,u,f,c,l,d,m=0,_=!1,w=!1,S=!0;if(typeof e!="function")throw new Qe(g);n=on(n)||0,ie(t)&&(_=!!t.leading,w="maxWait"in t,f=w?ye(on(t.maxWait)||0,n):f,S="trailing"in t?!!t.trailing:S);function T(fe){var gn=i,Un=u;return i=u=r,m=fe,c=e.apply(Un,gn),c}function R(fe){return m=fe,l=rr(G,n),_?T(fe):c}function U(fe){var gn=fe-d,Un=fe-m,Ca=n-gn;return w?Pe(Ca,f-Un):Ca}function M(fe){var gn=fe-d,Un=fe-m;return d===r||gn>=n||gn<0||w&&Un>=f}function G(){var fe=Vr();if(M(fe))return z(fe);l=rr(G,U(fe))}function z(fe){return l=r,S&&i?T(fe):(i=u=r,c)}function Ke(){l!==r&&bs(l),m=0,i=d=u=l=r}function Fe(){return l===r?c:z(Vr())}function je(){var fe=Vr(),gn=M(fe);if(i=arguments,u=this,d=fe,gn){if(l===r)return R(d);if(w)return bs(l),l=rr(G,n),T(d)}return l===r&&(l=rr(G,n)),c}return je.cancel=Ke,je.flush=Fe,je}var Md=$(function(e,n){return es(e,1,n)}),Nd=$(function(e,n,t){return es(e,on(n)||0,t)});function Fd(e){return Fn(e,$t)}function Zr(e,n){if(typeof e!="function"||n!=null&&typeof n!="function")throw new Qe(g);var t=function(){var i=arguments,u=n?n.apply(this,i):i[0],f=t.cache;if(f.has(u))return f.get(u);var c=e.apply(this,i);return t.cache=f.set(u,c)||f,c};return t.cache=new(Zr.Cache||Mn),t}Zr.Cache=Mn;function Yr(e){if(typeof e!="function")throw new Qe(g);return function(){var n=arguments;switch(n.length){case 0:return!e.call(this);case 1:return!e.call(this,n[0]);case 2:return!e.call(this,n[0],n[1]);case 3:return!e.call(this,n[0],n[1],n[2])}return!e.apply(this,n)}}function Ld(e){return sa(2,e)}var Bd=Ap(function(e,n){n=n.length==1&&D(n[0])?ne(n[0],He(C())):ne(Ie(n,1),He(C()));var t=n.length;return $(function(i){for(var u=-1,f=Pe(i.length,t);++u<f;)i[u]=n[u].call(this,i[u]);return Ge(e,this,i)})}),co=$(function(e,n){var t=Vn(n,Ft(co));return Fn(e,an,r,n,t)}),pa=$(function(e,n){var t=Vn(n,Ft(pa));return Fn(e,it,r,n,t)}),Dd=Ln(function(e,n){return Fn(e,_t,r,r,r,n)});function Wd(e,n){if(typeof e!="function")throw new Qe(g);return n=n===r?n:W(n),$(e,n)}function Ud(e,n){if(typeof e!="function")throw new Qe(g);return n=n==null?0:ye(W(n),0),$(function(t){var i=t[n],u=nt(t,0,n);return i&&Jn(u,i),Ge(e,this,u)})}function kd(e,n,t){var i=!0,u=!0;if(typeof e!="function")throw new Qe(g);return ie(t)&&(i="leading"in t?!!t.leading:i,u="trailing"in t?!!t.trailing:u),la(e,n,{leading:i,maxWait:n,trailing:u})}function $d(e){return ua(e,1)}function Gd(e,n){return co(Ji(n),e)}function Hd(){if(!arguments.length)return[];var e=arguments[0];return D(e)?e:[e]}function zd(e){return nn(e,Le)}function qd(e,n){return n=typeof n=="function"?n:r,nn(e,Le,n)}function Kd(e){return nn(e,q|Le)}function jd(e,n){return n=typeof n=="function"?n:r,nn(e,q|Le,n)}function Jd(e,n){return n==null||Qu(e,n,we(n))}function dn(e,n){return e===n||e!==e&&n!==n}var Vd=Hr(Bi),Zd=Hr(function(e,n){return e>=n}),mt=os(function(){return arguments}())?os:function(e){return oe(e)&&V.call(e,"callee")&&!qu.call(e,"callee")},D=y.isArray,Yd=Iu?He(Iu):op;function We(e){return e!=null&&Xr(e.length)&&!Dn(e)}function ae(e){return oe(e)&&We(e)}function Xd(e){return e===!0||e===!1||oe(e)&&Me(e)==Je}var tt=pl||Ao,Qd=Ou?He(Ou):up;function eg(e){return oe(e)&&e.nodeType===1&&!ir(e)}function ng(e){if(e==null)return!0;if(We(e)&&(D(e)||typeof e=="string"||typeof e.splice=="function"||tt(e)||Lt(e)||mt(e)))return!e.length;var n=Ce(e);if(n==L||n==Te)return!e.size;if(tr(e))return!Ui(e).length;for(var t in e)if(V.call(e,t))return!1;return!0}function tg(e,n){return Qt(e,n)}function rg(e,n,t){t=typeof t=="function"?t:r;var i=t?t(e,n):r;return i===r?Qt(e,n,r,t):!!i}function lo(e){if(!oe(e))return!1;var n=Me(e);return n==P||n==x||typeof e.message=="string"&&typeof e.name=="string"&&!ir(e)}function ig(e){return typeof e=="number"&&ju(e)}function Dn(e){if(!ie(e))return!1;var n=Me(e);return n==O||n==F||n==ru||n==qn}function ha(e){return typeof e=="number"&&e==W(e)}function Xr(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=_n}function ie(e){var n=typeof e;return e!=null&&(n=="object"||n=="function")}function oe(e){return e!=null&&typeof e=="object"}var da=Tu?He(Tu):ap;function og(e,n){return e===n||Wi(e,n,no(n))}function ug(e,n,t){return t=typeof t=="function"?t:r,Wi(e,n,no(n),t)}function sg(e){return ga(e)&&e!=+e}function ag(e){if(qp(e))throw new B(p);return us(e)}function fg(e){return e===null}function cg(e){return e==null}function ga(e){return typeof e=="number"||oe(e)&&Me(e)==ce}function ir(e){if(!oe(e)||Me(e)!=re)return!1;var n=Er(e);if(n===null)return!0;var t=V.call(n,"constructor")&&n.constructor;return typeof t=="function"&&t instanceof t&&br.call(t)==ul}var po=Pu?He(Pu):fp;function lg(e){return ha(e)&&e>=-_n&&e<=_n}var ya=Cu?He(Cu):cp;function Qr(e){return typeof e=="string"||!D(e)&&oe(e)&&Me(e)==Pn}function qe(e){return typeof e=="symbol"||oe(e)&&Me(e)==wn}var Lt=Ru?He(Ru):lp;function pg(e){return e===r}function hg(e){return oe(e)&&Ce(e)==Tn}function dg(e){return oe(e)&&Me(e)==bt}var gg=Hr(ki),yg=Hr(function(e,n){return e<=n});function va(e){if(!e)return[];if(We(e))return Qr(e)?pn(e):De(e);if(qt&&e[qt])return Jc(e[qt]());var n=Ce(e),t=n==L?Oi:n==Te?mr:Bt;return t(e)}function Wn(e){if(!e)return e===0?e:0;if(e=on(e),e===mn||e===-mn){var n=e<0?-1:1;return n*tu}return e===e?e:0}function W(e){var n=Wn(e),t=n%1;return n===n?t?n-t:n:0}function ma(e){return e?dt(W(e),0,Ve):0}function on(e){if(typeof e=="number")return e;if(qe(e))return wt;if(ie(e)){var n=typeof e.valueOf=="function"?e.valueOf():e;e=ie(n)?n+"":n}if(typeof e!="string")return e===0?e:+e;e=Du(e);var t=Yf.test(e);return t||Qf.test(e)?Rc(e.slice(2),t?2:8):Zf.test(e)?wt:+e}function _a(e){return En(e,Ue(e))}function vg(e){return e?dt(W(e),-_n,_n):e===0?e:0}function J(e){return e==null?"":ze(e)}var mg=Mt(function(e,n){if(tr(n)||We(n)){En(n,we(n),e);return}for(var t in n)V.call(n,t)&&Zt(e,t,n[t])}),wa=Mt(function(e,n){En(n,Ue(n),e)}),ei=Mt(function(e,n,t,i){En(n,Ue(n),e,i)}),_g=Mt(function(e,n,t,i){En(n,we(n),e,i)}),wg=Ln(Ni);function bg(e,n){var t=Rt(e);return n==null?t:Xu(t,n)}var Ag=$(function(e,n){e=Y(e);var t=-1,i=n.length,u=i>2?n[2]:r;for(u&&Ne(n[0],n[1],u)&&(i=1);++t<i;)for(var f=n[t],c=Ue(f),l=-1,d=c.length;++l<d;){var m=c[l],_=e[m];(_===r||dn(_,Tt[m])&&!V.call(e,m))&&(e[m]=f[m])}return e}),Sg=$(function(e){return e.push(r,Ds),Ge(ba,r,e)});function xg(e,n){return Nu(e,C(n,3),xn)}function Eg(e,n){return Nu(e,C(n,3),Li)}function Ig(e,n){return e==null?e:Fi(e,C(n,3),Ue)}function Og(e,n){return e==null?e:rs(e,C(n,3),Ue)}function Tg(e,n){return e&&xn(e,C(n,3))}function Pg(e,n){return e&&Li(e,C(n,3))}function Cg(e){return e==null?[]:Lr(e,we(e))}function Rg(e){return e==null?[]:Lr(e,Ue(e))}function ho(e,n,t){var i=e==null?r:gt(e,n);return i===r?t:i}function Mg(e,n){return e!=null&&ks(e,n,np)}function go(e,n){return e!=null&&ks(e,n,tp)}var Ng=Ms(function(e,n,t){n!=null&&typeof n.toString!="function"&&(n=Ar.call(n)),e[n]=t},vo(ke)),Fg=Ms(function(e,n,t){n!=null&&typeof n.toString!="function"&&(n=Ar.call(n)),V.call(e,n)?e[n].push(t):e[n]=[t]},C),Lg=$(Xt);function we(e){return We(e)?Zu(e):Ui(e)}function Ue(e){return We(e)?Zu(e,!0):pp(e)}function Bg(e,n){var t={};return n=C(n,3),xn(e,function(i,u,f){Nn(t,n(i,u,f),i)}),t}function Dg(e,n){var t={};return n=C(n,3),xn(e,function(i,u,f){Nn(t,u,n(i,u,f))}),t}var Wg=Mt(function(e,n,t){Br(e,n,t)}),ba=Mt(function(e,n,t,i){Br(e,n,t,i)}),Ug=Ln(function(e,n){var t={};if(e==null)return t;var i=!1;n=ne(n,function(f){return f=et(f,e),i||(i=f.length>1),f}),En(e,Qi(e),t),i&&(t=nn(t,q|ve|Le,Np));for(var u=n.length;u--;)qi(t,n[u]);return t});function kg(e,n){return Aa(e,Yr(C(n)))}var $g=Ln(function(e,n){return e==null?{}:dp(e,n)});function Aa(e,n){if(e==null)return{};var t=ne(Qi(e),function(i){return[i]});return n=C(n),hs(e,t,function(i,u){return n(i,u[0])})}function Gg(e,n,t){n=et(n,e);var i=-1,u=n.length;for(u||(u=1,e=r);++i<u;){var f=e==null?r:e[In(n[i])];f===r&&(i=u,f=t),e=Dn(f)?f.call(e):f}return e}function Hg(e,n,t){return e==null?e:er(e,n,t)}function zg(e,n,t,i){return i=typeof i=="function"?i:r,e==null?e:er(e,n,t,i)}var Sa=Ls(we),xa=Ls(Ue);function qg(e,n,t){var i=D(e),u=i||tt(e)||Lt(e);if(n=C(n,4),t==null){var f=e&&e.constructor;u?t=i?new f:[]:ie(e)?t=Dn(f)?Rt(Er(e)):{}:t={}}return(u?Xe:xn)(e,function(c,l,d){return n(t,c,l,d)}),t}function Kg(e,n){return e==null?!0:qi(e,n)}function jg(e,n,t){return e==null?e:ms(e,n,Ji(t))}function Jg(e,n,t,i){return i=typeof i=="function"?i:r,e==null?e:ms(e,n,Ji(t),i)}function Bt(e){return e==null?[]:Ii(e,we(e))}function Vg(e){return e==null?[]:Ii(e,Ue(e))}function Zg(e,n,t){return t===r&&(t=n,n=r),t!==r&&(t=on(t),t=t===t?t:0),n!==r&&(n=on(n),n=n===n?n:0),dt(on(e),n,t)}function Yg(e,n,t){return n=Wn(n),t===r?(t=n,n=0):t=Wn(t),e=on(e),rp(e,n,t)}function Xg(e,n,t){if(t&&typeof t!="boolean"&&Ne(e,n,t)&&(n=t=r),t===r&&(typeof n=="boolean"?(t=n,n=r):typeof e=="boolean"&&(t=e,e=r)),e===r&&n===r?(e=0,n=1):(e=Wn(e),n===r?(n=e,e=0):n=Wn(n)),e>n){var i=e;e=n,n=i}if(t||e%1||n%1){var u=Ju();return Pe(e+u*(n-e+Cc("1e-"+((u+"").length-1))),n)}return Gi(e,n)}var Qg=Nt(function(e,n,t){return n=n.toLowerCase(),e+(t?Ea(n):n)});function Ea(e){return yo(J(e).toLowerCase())}function Ia(e){return e=J(e),e&&e.replace(nc,Hc).replace(wc,"")}function ey(e,n,t){e=J(e),n=ze(n);var i=e.length;t=t===r?i:dt(W(t),0,i);var u=t;return t-=n.length,t>=0&&e.slice(t,u)==n}function ny(e){return e=J(e),e&&$n.test(e)?e.replace(Kn,zc):e}function ty(e){return e=J(e),e&&Wt.test(e)?e.replace(Ht,"\\$&"):e}var ry=Nt(function(e,n,t){return e+(t?"-":"")+n.toLowerCase()}),iy=Nt(function(e,n,t){return e+(t?" ":"")+n.toLowerCase()}),oy=Ps("toLowerCase");function uy(e,n,t){e=J(e),n=W(n);var i=n?Ot(e):0;if(!n||i>=n)return e;var u=(n-i)/2;return Gr(Pr(u),t)+e+Gr(Tr(u),t)}function sy(e,n,t){e=J(e),n=W(n);var i=n?Ot(e):0;return n&&i<n?e+Gr(n-i,t):e}function ay(e,n,t){e=J(e),n=W(n);var i=n?Ot(e):0;return n&&i<n?Gr(n-i,t)+e:e}function fy(e,n,t){return t||n==null?n=0:n&&(n=+n),yl(J(e).replace(ln,""),n||0)}function cy(e,n,t){return(t?Ne(e,n,t):n===r)?n=1:n=W(n),Hi(J(e),n)}function ly(){var e=arguments,n=J(e[0]);return e.length<3?n:n.replace(e[1],e[2])}var py=Nt(function(e,n,t){return e+(t?"_":"")+n.toLowerCase()});function hy(e,n,t){return t&&typeof t!="number"&&Ne(e,n,t)&&(n=t=r),t=t===r?Ve:t>>>0,t?(e=J(e),e&&(typeof n=="string"||n!=null&&!po(n))&&(n=ze(n),!n&&It(e))?nt(pn(e),0,t):e.split(n,t)):[]}var dy=Nt(function(e,n,t){return e+(t?" ":"")+yo(n)});function gy(e,n,t){return e=J(e),t=t==null?0:dt(W(t),0,e.length),n=ze(n),e.slice(t,t+n.length)==n}function yy(e,n,t){var i=s.templateSettings;t&&Ne(e,n,t)&&(n=r),e=J(e),n=ei({},n,i,Bs);var u=ei({},n.imports,i.imports,Bs),f=we(u),c=Ii(u,f),l,d,m=0,_=n.interpolate||hr,w="__p += '",S=Ti((n.escape||hr).source+"|"+_.source+"|"+(_===Gn?Vf:hr).source+"|"+(n.evaluate||hr).source+"|$","g"),T="//# sourceURL="+(V.call(n,"sourceURL")?(n.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Ec+"]")+`
`;e.replace(S,function(M,G,z,Ke,Fe,je){return z||(z=Ke),w+=e.slice(m,je).replace(tc,qc),G&&(l=!0,w+=`' +
__e(`+G+`) +
'`),Fe&&(d=!0,w+=`';
`+Fe+`;
__p += '`),z&&(w+=`' +
((__t = (`+z+`)) == null ? '' : __t) +
'`),m=je+M.length,M}),w+=`';
`;var R=V.call(n,"variable")&&n.variable;if(!R)w=`with (obj) {
`+w+`
}
`;else if(jf.test(R))throw new B(b);w=(d?w.replace(An,""):w).replace(st,"$1").replace(Sn,"$1;"),w="function("+(R||"obj")+`) {
`+(R?"":`obj || (obj = {});
`)+"var __t, __p = ''"+(l?", __e = _.escape":"")+(d?`, __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
`:`;
`)+w+`return __p
}`;var U=Ta(function(){return j(f,T+"return "+w).apply(r,c)});if(U.source=w,lo(U))throw U;return U}function vy(e){return J(e).toLowerCase()}function my(e){return J(e).toUpperCase()}function _y(e,n,t){if(e=J(e),e&&(t||n===r))return Du(e);if(!e||!(n=ze(n)))return e;var i=pn(e),u=pn(n),f=Wu(i,u),c=Uu(i,u)+1;return nt(i,f,c).join("")}function wy(e,n,t){if(e=J(e),e&&(t||n===r))return e.slice(0,$u(e)+1);if(!e||!(n=ze(n)))return e;var i=pn(e),u=Uu(i,pn(n))+1;return nt(i,0,u).join("")}function by(e,n,t){if(e=J(e),e&&(t||n===r))return e.replace(ln,"");if(!e||!(n=ze(n)))return e;var i=pn(e),u=Wu(i,pn(n));return nt(i,u).join("")}function Ay(e,n){var t=ci,i=cn;if(ie(n)){var u="separator"in n?n.separator:u;t="length"in n?W(n.length):t,i="omission"in n?ze(n.omission):i}e=J(e);var f=e.length;if(It(e)){var c=pn(e);f=c.length}if(t>=f)return e;var l=t-Ot(i);if(l<1)return i;var d=c?nt(c,0,l).join(""):e.slice(0,l);if(u===r)return d+i;if(c&&(l+=d.length-l),po(u)){if(e.slice(l).search(u)){var m,_=d;for(u.global||(u=Ti(u.source,J(ou.exec(u))+"g")),u.lastIndex=0;m=u.exec(_);)var w=m.index;d=d.slice(0,w===r?l:w)}}else if(e.indexOf(ze(u),l)!=l){var S=d.lastIndexOf(u);S>-1&&(d=d.slice(0,S))}return d+i}function Sy(e){return e=J(e),e&&Cn.test(e)?e.replace(xe,Xc):e}var xy=Nt(function(e,n,t){return e+(t?" ":"")+n.toUpperCase()}),yo=Ps("toUpperCase");function Oa(e,n,t){return e=J(e),n=t?r:n,n===r?jc(e)?nl(e):Wc(e):e.match(n)||[]}var Ta=$(function(e,n){try{return Ge(e,r,n)}catch(t){return lo(t)?t:new B(t)}}),Ey=Ln(function(e,n){return Xe(n,function(t){t=In(t),Nn(e,t,fo(e[t],e))}),e});function Iy(e){var n=e==null?0:e.length,t=C();return e=n?ne(e,function(i){if(typeof i[1]!="function")throw new Qe(g);return[t(i[0]),i[1]]}):[],$(function(i){for(var u=-1;++u<n;){var f=e[u];if(Ge(f[0],this,i))return Ge(f[1],this,i)}})}function Oy(e){return Xl(nn(e,q))}function vo(e){return function(){return e}}function Ty(e,n){return e==null||e!==e?n:e}var Py=Rs(),Cy=Rs(!0);function ke(e){return e}function mo(e){return ss(typeof e=="function"?e:nn(e,q))}function Ry(e){return fs(nn(e,q))}function My(e,n){return cs(e,nn(n,q))}var Ny=$(function(e,n){return function(t){return Xt(t,e,n)}}),Fy=$(function(e,n){return function(t){return Xt(e,t,n)}});function _o(e,n,t){var i=we(n),u=Lr(n,i);t==null&&!(ie(n)&&(u.length||!i.length))&&(t=n,n=e,e=this,u=Lr(n,we(n)));var f=!(ie(t)&&"chain"in t)||!!t.chain,c=Dn(e);return Xe(u,function(l){var d=n[l];e[l]=d,c&&(e.prototype[l]=function(){var m=this.__chain__;if(f||m){var _=e(this.__wrapped__),w=_.__actions__=De(this.__actions__);return w.push({func:d,args:arguments,thisArg:e}),_.__chain__=m,_}return d.apply(e,Jn([this.value()],arguments))})}),e}function Ly(){return _e._===this&&(_e._=sl),this}function wo(){}function By(e){return e=W(e),$(function(n){return ls(n,e)})}var Dy=Zi(ne),Wy=Zi(Mu),Uy=Zi(bi);function Pa(e){return ro(e)?Ai(In(e)):gp(e)}function ky(e){return function(n){return e==null?r:gt(e,n)}}var $y=Ns(),Gy=Ns(!0);function bo(){return[]}function Ao(){return!1}function Hy(){return{}}function zy(){return""}function qy(){return!0}function Ky(e,n){if(e=W(e),e<1||e>_n)return[];var t=Ve,i=Pe(e,Ve);n=C(n),e-=Ve;for(var u=Ei(i,n);++t<e;)n(t);return u}function jy(e){return D(e)?ne(e,In):qe(e)?[e]:De(Vs(J(e)))}function Jy(e){var n=++ol;return J(e)+n}var Vy=$r(function(e,n){return e+n},0),Zy=Yi("ceil"),Yy=$r(function(e,n){return e/n},1),Xy=Yi("floor");function Qy(e){return e&&e.length?Fr(e,ke,Bi):r}function ev(e,n){return e&&e.length?Fr(e,C(n,2),Bi):r}function nv(e){return Lu(e,ke)}function tv(e,n){return Lu(e,C(n,2))}function rv(e){return e&&e.length?Fr(e,ke,ki):r}function iv(e,n){return e&&e.length?Fr(e,C(n,2),ki):r}var ov=$r(function(e,n){return e*n},1),uv=Yi("round"),sv=$r(function(e,n){return e-n},0);function av(e){return e&&e.length?xi(e,ke):0}function fv(e,n){return e&&e.length?xi(e,C(n,2)):0}return s.after=Rd,s.ary=ua,s.assign=mg,s.assignIn=wa,s.assignInWith=ei,s.assignWith=_g,s.at=wg,s.before=sa,s.bind=fo,s.bindAll=Ey,s.bindKey=aa,s.castArray=Hd,s.chain=ra,s.chunk=Xp,s.compact=Qp,s.concat=eh,s.cond=Iy,s.conforms=Oy,s.constant=vo,s.countBy=ad,s.create=bg,s.curry=fa,s.curryRight=ca,s.debounce=la,s.defaults=Ag,s.defaultsDeep=Sg,s.defer=Md,s.delay=Nd,s.difference=nh,s.differenceBy=th,s.differenceWith=rh,s.drop=ih,s.dropRight=oh,s.dropRightWhile=uh,s.dropWhile=sh,s.fill=ah,s.filter=cd,s.flatMap=hd,s.flatMapDeep=dd,s.flatMapDepth=gd,s.flatten=Qs,s.flattenDeep=fh,s.flattenDepth=ch,s.flip=Fd,s.flow=Py,s.flowRight=Cy,s.fromPairs=lh,s.functions=Cg,s.functionsIn=Rg,s.groupBy=yd,s.initial=hh,s.intersection=dh,s.intersectionBy=gh,s.intersectionWith=yh,s.invert=Ng,s.invertBy=Fg,s.invokeMap=md,s.iteratee=mo,s.keyBy=_d,s.keys=we,s.keysIn=Ue,s.map=Jr,s.mapKeys=Bg,s.mapValues=Dg,s.matches=Ry,s.matchesProperty=My,s.memoize=Zr,s.merge=Wg,s.mergeWith=ba,s.method=Ny,s.methodOf=Fy,s.mixin=_o,s.negate=Yr,s.nthArg=By,s.omit=Ug,s.omitBy=kg,s.once=Ld,s.orderBy=wd,s.over=Dy,s.overArgs=Bd,s.overEvery=Wy,s.overSome=Uy,s.partial=co,s.partialRight=pa,s.partition=bd,s.pick=$g,s.pickBy=Aa,s.property=Pa,s.propertyOf=ky,s.pull=wh,s.pullAll=na,s.pullAllBy=bh,s.pullAllWith=Ah,s.pullAt=Sh,s.range=$y,s.rangeRight=Gy,s.rearg=Dd,s.reject=xd,s.remove=xh,s.rest=Wd,s.reverse=so,s.sampleSize=Id,s.set=Hg,s.setWith=zg,s.shuffle=Od,s.slice=Eh,s.sortBy=Cd,s.sortedUniq=Mh,s.sortedUniqBy=Nh,s.split=hy,s.spread=Ud,s.tail=Fh,s.take=Lh,s.takeRight=Bh,s.takeRightWhile=Dh,s.takeWhile=Wh,s.tap=Qh,s.throttle=kd,s.thru=jr,s.toArray=va,s.toPairs=Sa,s.toPairsIn=xa,s.toPath=jy,s.toPlainObject=_a,s.transform=qg,s.unary=$d,s.union=Uh,s.unionBy=kh,s.unionWith=$h,s.uniq=Gh,s.uniqBy=Hh,s.uniqWith=zh,s.unset=Kg,s.unzip=ao,s.unzipWith=ta,s.update=jg,s.updateWith=Jg,s.values=Bt,s.valuesIn=Vg,s.without=qh,s.words=Oa,s.wrap=Gd,s.xor=Kh,s.xorBy=jh,s.xorWith=Jh,s.zip=Vh,s.zipObject=Zh,s.zipObjectDeep=Yh,s.zipWith=Xh,s.entries=Sa,s.entriesIn=xa,s.extend=wa,s.extendWith=ei,_o(s,s),s.add=Vy,s.attempt=Ta,s.camelCase=Qg,s.capitalize=Ea,s.ceil=Zy,s.clamp=Zg,s.clone=zd,s.cloneDeep=Kd,s.cloneDeepWith=jd,s.cloneWith=qd,s.conformsTo=Jd,s.deburr=Ia,s.defaultTo=Ty,s.divide=Yy,s.endsWith=ey,s.eq=dn,s.escape=ny,s.escapeRegExp=ty,s.every=fd,s.find=ld,s.findIndex=Ys,s.findKey=xg,s.findLast=pd,s.findLastIndex=Xs,s.findLastKey=Eg,s.floor=Xy,s.forEach=ia,s.forEachRight=oa,s.forIn=Ig,s.forInRight=Og,s.forOwn=Tg,s.forOwnRight=Pg,s.get=ho,s.gt=Vd,s.gte=Zd,s.has=Mg,s.hasIn=go,s.head=ea,s.identity=ke,s.includes=vd,s.indexOf=ph,s.inRange=Yg,s.invoke=Lg,s.isArguments=mt,s.isArray=D,s.isArrayBuffer=Yd,s.isArrayLike=We,s.isArrayLikeObject=ae,s.isBoolean=Xd,s.isBuffer=tt,s.isDate=Qd,s.isElement=eg,s.isEmpty=ng,s.isEqual=tg,s.isEqualWith=rg,s.isError=lo,s.isFinite=ig,s.isFunction=Dn,s.isInteger=ha,s.isLength=Xr,s.isMap=da,s.isMatch=og,s.isMatchWith=ug,s.isNaN=sg,s.isNative=ag,s.isNil=cg,s.isNull=fg,s.isNumber=ga,s.isObject=ie,s.isObjectLike=oe,s.isPlainObject=ir,s.isRegExp=po,s.isSafeInteger=lg,s.isSet=ya,s.isString=Qr,s.isSymbol=qe,s.isTypedArray=Lt,s.isUndefined=pg,s.isWeakMap=hg,s.isWeakSet=dg,s.join=vh,s.kebabCase=ry,s.last=rn,s.lastIndexOf=mh,s.lowerCase=iy,s.lowerFirst=oy,s.lt=gg,s.lte=yg,s.max=Qy,s.maxBy=ev,s.mean=nv,s.meanBy=tv,s.min=rv,s.minBy=iv,s.stubArray=bo,s.stubFalse=Ao,s.stubObject=Hy,s.stubString=zy,s.stubTrue=qy,s.multiply=ov,s.nth=_h,s.noConflict=Ly,s.noop=wo,s.now=Vr,s.pad=uy,s.padEnd=sy,s.padStart=ay,s.parseInt=fy,s.random=Xg,s.reduce=Ad,s.reduceRight=Sd,s.repeat=cy,s.replace=ly,s.result=Gg,s.round=uv,s.runInContext=h,s.sample=Ed,s.size=Td,s.snakeCase=py,s.some=Pd,s.sortedIndex=Ih,s.sortedIndexBy=Oh,s.sortedIndexOf=Th,s.sortedLastIndex=Ph,s.sortedLastIndexBy=Ch,s.sortedLastIndexOf=Rh,s.startCase=dy,s.startsWith=gy,s.subtract=sv,s.sum=av,s.sumBy=fv,s.template=yy,s.times=Ky,s.toFinite=Wn,s.toInteger=W,s.toLength=ma,s.toLower=vy,s.toNumber=on,s.toSafeInteger=vg,s.toString=J,s.toUpper=my,s.trim=_y,s.trimEnd=wy,s.trimStart=by,s.truncate=Ay,s.unescape=Sy,s.uniqueId=Jy,s.upperCase=xy,s.upperFirst=yo,s.each=ia,s.eachRight=oa,s.first=ea,_o(s,function(){var e={};return xn(s,function(n,t){V.call(s.prototype,t)||(e[t]=n)}),e}(),{chain:!1}),s.VERSION=o,Xe(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){s[e].placeholder=s}),Xe(["drop","take"],function(e,n){H.prototype[e]=function(t){t=t===r?1:ye(W(t),0);var i=this.__filtered__&&!n?new H(this):this.clone();return i.__filtered__?i.__takeCount__=Pe(t,i.__takeCount__):i.__views__.push({size:Pe(t,Ve),type:e+(i.__dir__<0?"Right":"")}),i},H.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}}),Xe(["filter","map","takeWhile"],function(e,n){var t=n+1,i=t==fr||t==cr;H.prototype[e]=function(u){var f=this.clone();return f.__iteratees__.push({iteratee:C(u,3),type:t}),f.__filtered__=f.__filtered__||i,f}}),Xe(["head","last"],function(e,n){var t="take"+(n?"Right":"");H.prototype[e]=function(){return this[t](1).value()[0]}}),Xe(["initial","tail"],function(e,n){var t="drop"+(n?"":"Right");H.prototype[e]=function(){return this.__filtered__?new H(this):this[t](1)}}),H.prototype.compact=function(){return this.filter(ke)},H.prototype.find=function(e){return this.filter(e).head()},H.prototype.findLast=function(e){return this.reverse().find(e)},H.prototype.invokeMap=$(function(e,n){return typeof e=="function"?new H(this):this.map(function(t){return Xt(t,e,n)})}),H.prototype.reject=function(e){return this.filter(Yr(C(e)))},H.prototype.slice=function(e,n){e=W(e);var t=this;return t.__filtered__&&(e>0||n<0)?new H(t):(e<0?t=t.takeRight(-e):e&&(t=t.drop(e)),n!==r&&(n=W(n),t=n<0?t.dropRight(-n):t.take(n-e)),t)},H.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},H.prototype.toArray=function(){return this.take(Ve)},xn(H.prototype,function(e,n){var t=/^(?:filter|find|map|reject)|While$/.test(n),i=/^(?:head|last)$/.test(n),u=s[i?"take"+(n=="last"?"Right":""):n],f=i||/^find/.test(n);u&&(s.prototype[n]=function(){var c=this.__wrapped__,l=i?[1]:arguments,d=c instanceof H,m=l[0],_=d||D(c),w=function(G){var z=u.apply(s,Jn([G],l));return i&&S?z[0]:z};_&&t&&typeof m=="function"&&m.length!=1&&(d=_=!1);var S=this.__chain__,T=!!this.__actions__.length,R=f&&!S,U=d&&!T;if(!f&&_){c=U?c:new H(this);var M=e.apply(c,l);return M.__actions__.push({func:jr,args:[w],thisArg:r}),new en(M,S)}return R&&U?e.apply(this,l):(M=this.thru(w),R?i?M.value()[0]:M.value():M)})}),Xe(["pop","push","shift","sort","splice","unshift"],function(e){var n=_r[e],t=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:pop|shift)$/.test(e);s.prototype[e]=function(){var u=arguments;if(i&&!this.__chain__){var f=this.value();return n.apply(D(f)?f:[],u)}return this[t](function(c){return n.apply(D(c)?c:[],u)})}}),xn(H.prototype,function(e,n){var t=s[n];if(t){var i=t.name+"";V.call(Ct,i)||(Ct[i]=[]),Ct[i].push({name:n,func:t})}}),Ct[kr(r,yn).name]=[{name:"wrapper",func:r}],H.prototype.clone=Sl,H.prototype.reverse=xl,H.prototype.value=El,s.prototype.at=ed,s.prototype.chain=nd,s.prototype.commit=td,s.prototype.next=rd,s.prototype.plant=od,s.prototype.reverse=ud,s.prototype.toJSON=s.prototype.valueOf=s.prototype.value=sd,s.prototype.first=s.prototype.head,qt&&(s.prototype[qt]=id),s},Zn=tl();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(_e._=Zn,define(function(){return Zn})):ct?((ct.exports=Zn)._=Zn,vi._=Zn):_e._=Zn}).call(Xo)});var Ya=process.env.TODESKTOP_BUILD_SERVER_STAGE==="dev";var Gm=require("electron");var l1=require("electron");var f1=require("electron"),c1=Dt(lv());var Tm=r=>!!(r&&!r.isDestroyed());var Na;Promise.resolve().then(()=>Dt(km())).then(r=>Na=r).catch(()=>null);var gv,$m=r=>typeof r=="string"?r:JSON.stringify(r,null,2);var kn=function(r,...o){if(!o.length){let p=`console.log("[logger]: ! Message omitted. Source: ${r}")`;console.log(p),gv.webContents.executeJavaScript(p);return}let a=`[${r}]: ${$m(o[0])}`;if(o.length>1){let p=`  
- `;a+=`${p}${o.slice(1).map($m).join(p)}`}if(Na&&(r==="preload"&&!Ya&&(Na.transports.console.level=!1),Na.info(a),r==="preload"&&!Ya&&(Na.transports.console.level="info")),r==="preload")Gm.ipcRenderer.invoke("log-from-preload",a);else if(r==="main"){if(!Ya||!Tm(gv))return;gv.webContents.executeJavaScript(`console.log(${JSON.stringify(a)})`)}};var kt=require("electron");var So=[];var Ym=Dt(Xa()),ef=require("electron");var Bo=(r=21)=>crypto.getRandomValues(new Uint8Array(r)).reduce((o,a)=>(a&=63,a<36?o+=a.toString(36):a<62?o+=(a-26).toString(36).toUpperCase():a>62?o+="-":o+="_",o),"");function Hm(r){return typeof r=="function"}var mv=class{objectStore={};referenceStore={};teardownStore={};storeObject(o,a={}){let{objectId:p=Bo(),namespaceString:g}=a,b=g||o.constructor?.name||"undefined-namespace";this.objectStore[p]=o;let A={id:p,namespace:b,type:"customId"};return this.referenceStore[p]=A,A}retrieveObject(o){return this.objectStore[o]}retrieveReference(o){return this.referenceStore[o]}deleteObject(o){o in this.objectStore&&(delete this.objectStore[o],o in this.referenceStore&&delete this.referenceStore[o]),o in this.teardownStore&&this.teardown(o)}registerForTeardown(o,a){if(o in this.teardownStore)throw new Error(`Object for ID ${o} already exists in the store`);if(!Hm(a))throw new Error("Callback is not a function");this.teardownStore[o]=a}teardown(o){if(!(o in this.teardownStore))return;let a=this.teardownStore[o];Hm(a)&&a(),delete this.teardownStore[o]}},xo=new mv;var jm=require("electron"),Jm=Dt(Km());function _v(r){return r instanceof Jm.default||r instanceof jm.BrowserView?!1:typeof r=="object"&&r!==null?Object.values(r).every(Qa):Qa(r)}function Qa(r){let o={}.toString.call(r).slice(8,-1);return!(["symbol","function"].includes(typeof r)||["Arguments","Module","Error","Promise","WeakMap","WeakSet","Event","MessageChannel"].includes(o)||r&&typeof r=="object"&&r!==null&&"nodeType"in r&&"insertBefore"in r&&typeof r.nodeType=="number"&&typeof r.insertBefore=="function")}var si=new Ym.default,wv=r=>({...r}),Vm=(r,o)=>typeof r=="object"&&r!==null&&"constructor"in r&&"name"in r.constructor&&r.constructor.name===o,Zm=(r,o,a)=>{let p={namespace:r,type:"nativeId",id:o};return a&&(p.content=a),p};si.register({CustomComplexObj:{test:r=>!_v(r),replace:r=>xo.storeObject(r),revive:wv},EBrowserWindow:{test:r=>Vm(r,"BrowserWindow"),replace:r=>Zm(r.constructor.name,String(r.id)),revive:wv},EWebContents:{test:r=>Vm(r,"WebContents"),replace:r=>Zm(r.constructor.name,String(r.id)),revive:wv},Function:{test:r=>typeof r=="function",replace:r=>{let o=Bo();return ef.ipcMain.on(o,(a,...p)=>{r(...p)}),{id:o}},revive:({id:r})=>(...o)=>{process.type==="renderer"&&ef.ipcRenderer.send(r,...o)}}});var mm=require("electron");function Xm(r){return{async invoke(o,...a){return r.invoke(o,...a)},async send(o,...a){return r.send(o,...a)},sendSync(o,...a){return r.sendSync(o,...a)}}}var bv=class{channel;constructor(o){this.channel=o}off(...o){return this.channel.off(...o)}on(...o){return this.channel.on(...o)}once(...o){return this.channel.once(...o)}};var Av=class extends bv{constructor(o){super(o)}sendSync(...o){return this.channel.sendSync(...o)}send(...o){return this.channel.send(...o)}invoke(...o){return this.channel.invoke(...o)}};function Qm(r){return new Av(r)}var nf=require("electron"),e_=Dt(lv()),La={};function n_(){let r=(0,e_.debounce)((p,g)=>{nf.ipcRenderer.invoke("views.changeBounds",{id:p,bounds:{y:Math.round(g.top),x:Math.round(g.left),width:Math.round(g.width),height:Math.round(g.height)}})},1e3),o=new ResizeObserver(p=>{for(let g of p){let b=g.target;if(!(b instanceof HTMLElement))return;let A=b.getBoundingClientRect(),E=b.dataset.viewId;E&&!(E in La)?(nf.ipcRenderer.invoke("views.create",{bounds:{y:Math.round(A.top),x:Math.round(A.left),width:Math.round(A.width),height:Math.round(A.height)},id:E,url:b.dataset.viewUrl,partition:b.dataset.viewPartition?`persist:${b.dataset.viewPartition}`:void 0}),La[E]=b):r(E,A)}});Object.keys(La).forEach(p=>{o.unobserve(La[p]),nf.ipcRenderer.invoke("views.delete",{id:p})}),La={},document.querySelectorAll("[data-view-url]").forEach(p=>o.observe(p))}var t_=require("electron");function Sv(r,o){let a=o?.notification||o?.data;if(!a)return;let p={title:a.title,body:a.body,url:a.click_action||o.data?.url};t_.ipcRenderer.invoke("notification.create",p)}var xv=require("electron");async function r_(r,o){let a=()=>xv.ipcRenderer.invoke("once",{id:r,reset:!0});if(!await xv.ipcRenderer.invoke("once",{id:r}))return await o(a)}var tf,S1=new Uint8Array(16);function Iv(){if(!tf&&(tf=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!tf))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return tf(S1)}var i_=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function x1(r){return typeof r=="string"&&i_.test(r)}var o_=x1;var rt=[];for(rf=0;rf<256;++rf)rt.push((rf+256).toString(16).substr(1));var rf;function E1(r){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=(rt[r[o+0]]+rt[r[o+1]]+rt[r[o+2]]+rt[r[o+3]]+"-"+rt[r[o+4]]+rt[r[o+5]]+"-"+rt[r[o+6]]+rt[r[o+7]]+"-"+rt[r[o+8]]+rt[r[o+9]]+"-"+rt[r[o+10]]+rt[r[o+11]]+rt[r[o+12]]+rt[r[o+13]]+rt[r[o+14]]+rt[r[o+15]]).toLowerCase();if(!o_(a))throw TypeError("Stringified UUID is invalid");return a}var u_=E1;function I1(r,o,a){r=r||{};var p=r.random||(r.rng||Iv)();if(p[6]=p[6]&15|64,p[8]=p[8]&63|128,o){a=a||0;for(var g=0;g<16;++g)o[a+g]=p[g];return o}return u_(p)}var Ba=I1;var Pv=require("electron");var Ov=r=>`appMenu:${r}`;var Tv=new Map,s_=(r,o)=>{let a=Ov(r),p=Ba(),g=()=>(kn("[event received]",a),o(r));return Pv.ipcRenderer.on(a,g),Tv.set(p,g),kn(`[${p} subscribed]`,a),()=>O1(p,r)},O1=(r,o)=>{let a=Ov(o),p=Tv.get(r);Pv.ipcRenderer.removeListener(a,p),Tv.delete(r),kn(`[${r} unsubscribed]`,a)};var f_=require("electron");var a_={loadOnlineScreen:"offline:loadOnlineScreen"};var c_=r=>{f_.ipcRenderer.invoke(a_.loadOnlineScreen,r)};var l_=require("electron");var Cv;function Eo(){return Cv||(Cv=l_.ipcRenderer.sendSync("getPreloadConstants")),Cv}var xx=Dt(sm()),Ex=Dt(Pw());var Sx=Dt(sm());var Cw=console.log.bind(console);var Rw=r=>typeof r=="object"&&r!==null;var{os:Vo,pkgJson:Fw}=Eo(),ee=Qm(mm.ipcRenderer),$e=Xm(mm.ipcRenderer);async function Ox(r,o){let a=typeof r=="string",p=Rw(r)&&"appID"in r,g=p||a,b=p?[r.appID,r.projectID,r.apiKey,r.vapidKey]:[r];if(!g)throw new Error("Sender must be a string or an object with appID, projectID, apiKey, and vapidKey");await ee.invoke("pushNotifications:start",{useNewAPI:p}),ee.send("PUSH_RECEIVER:::START_NOTIFICATION_SERVICE",...b),o?.showNotifications&&(ee.off("PUSH_RECEIVER:::NOTIFICATION_RECEIVED",Sv),ee.on("PUSH_RECEIVER:::NOTIFICATION_RECEIVED",Sv))}var _m={app:{once:r_,createNewWindow:()=>$e.invoke("create-new-window"),dock:{bounce(r){$e.sendSync("bounce",r)},cancelBounce:r=>$e.sendSync("cancelBounce",r),setBadge:r=>$e.sendSync("setBadge",r),getBadge:()=>$e.sendSync("getBadge")},setBadgeCount:async r=>{if(r==null&&(r=0),typeof r!="number")if(typeof r=="string"&&!Number.isNaN(parseInt(r,10)))r=parseInt(r,10);else throw new TypeError(`setBadgeCount must be called with a number, got ${typeof r}`);if(Vo.platform==="win32")if(r===0)ee.invoke("app.setBadgeOverlay",null);else{let{drawBadge:o}=await Promise.resolve().then(()=>(Nw(),Mw)),a=o(r);ee.invoke("app.setBadgeOverlay",a,r)}else $e.sendSync("setBadgeCount",r)},getBadgeCount:()=>$e.sendSync("getBadgeCount"),setBadgeOverlay:(r,o)=>{ee.invoke("app.setBadgeOverlay",r,o)},hide:()=>$e.sendSync("hide"),show:()=>$e.sendSync("show"),focus:r=>$e.sendSync("focus",r),setName:(...r)=>ee.sendSync("setName",...r),getName:()=>ee.sendSync("getName"),getLaunchSettings:()=>$e.invoke("get-launch-settings"),setLaunchSettings:(...r)=>ee.send("set-launch-settings",...r),updateInternalUrls:r=>ee.invoke("app:updateInternalUrlRegex",r),getInternalUrls:()=>ee.invoke("app:getInternalUrlRegex")},appMenu:{on:s_,add:async(r,o,a,p={})=>{if(typeof r!="string")throw new TypeError(`Argument 1 (parentMenu) must be a string. Received type of ${typeof r}`);if(typeof o!="string")throw new TypeError(`Argument 2 (label) must be a string. Received type of ${typeof o}`);if(typeof a!="function")throw new TypeError(`Argument 3 (callback) must be a string. Received type of ${typeof a}`);if(typeof p!="object")throw new TypeError(`Argument 4 (option) must be an object. Received type of ${typeof p}`);let g=await ee.invoke("appMenu:add",r,o,p);ee.on(g,a)},refresh:()=>$e.invoke("appMenu:refresh")},contextMenu:{create:r=>{let o=[],a=r.map((g,b)=>(g.click&&(g.ipcIndex=b,o[b]=g.click,delete g.click),g)),p=(g,b)=>{o[b]()};return ee.on("context-menu:click",p),ee.once("context-menu:closed",()=>{setTimeout(()=>{ee.off("context-menu:click",p)},50)}),ee.invoke("context-menu:create",a)}},shortcut:{register:async(r,o)=>ee.invoke("shortcut:register",r).then(()=>(ee.on(`shortcut:${r}`,()=>o()),!0)),unregister:r=>ee.invoke("shortcut:unregister",r),unregisterAll:()=>ee.invoke("shortcut:unregisterAll"),isRegistered:r=>ee.invoke("shortcut:isRegistered",r)},contents:{canGoBack:()=>(kn("preload","App canGoBack called"),$e.invoke("can-go-back")),canGoForward:()=>(kn("preload","App canGoForward called"),$e.invoke("can-go-forward")),getPrinters:()=>(kn("preload","App getPrinters called"),$e.sendSync("getPrinters")),goBack:()=>(kn("preload","App goBack called"),ee.invoke("go-back")),goForward:()=>(kn("preload","App goForward called"),ee.invoke("go-forward")),print:(...r)=>(kn("preload","App print called"),ee.sendSync("print",...r)),openUrlInBrowser:r=>{if(!["https:","http:"].includes(new URL(r).protocol))throw new Error("Illegal url protocol: Please use http(s)://");ee.invoke("open-url-in-browser",r)},openUrlInApp:r=>{if(!["https:","http:"].includes(new URL(r).protocol))throw new Error("Illegal url protocol: Please use http(s)://");ee.invoke("contents:open-url-in-app",r)},findInPage:{find:(r,o={})=>{if(typeof r!="string")throw new TypeError(`Argument 1 (text) must be a string. Received type of ${typeof o}`);if(typeof o!="object")throw new TypeError(`Argument 2 (options) must be an object. Received type of ${typeof o}`);return ee.invoke("findInPage.find",r,o)},stop:()=>ee.invoke("findInPage.stop")},toggleDevTools:()=>ee.invoke("contents.toggleDevTools"),setZoomFactor:r=>ee.invoke("contents.setZoomFactor",r),getZoomFactor:()=>ee.invoke("contents.getZoomFactor"),setZoomLevel:r=>ee.invoke("contents.setZoomLevel",r),getZoomLevel:()=>ee.invoke("contents.getZoomLevel")},desktopifyVersion:Fw.desktopifyVersion,electronVersion:process.versions.electron,env:{NODE_ENV:"production"},desktopCapturer:{getSources:async(r={})=>ee.invoke("desktopCapturer.getSources",r)},systemPreferences:{getMediaAccessStatus:async r=>{if(typeof r=="string")return ee.invoke("getMediaAccessStatus",r)},askForMediaAccess:async r=>{if(typeof r=="string")return ee.invoke("askForMediaAccess",r)}},tray:{setTitle:r=>{if(Vo.platform==="darwin")ee.invoke("tray.setTitle",r);else throw new Error("tray.setTitle only works on macOS")},destroy:()=>ee.invoke("tray.destroy")},menubar:{enlarge:({height:r=void 0,width:o=void 0}={})=>{ee.invoke("enlarge",{height:r,width:o})},shrink:()=>{$e.invoke("shrink")}},nativeTheme:{setThemeSource:r=>ee.invoke("nativeTheme.setThemeSource",r)},on(r,o,a){kn("preload",`User app subscribed to ${r}:${a}`),So.push({event:r,eventId:a,callback:o})},off(r,o,a){let p=So.findIndex(g=>g.eventId&&a?g.eventId===a:g.event===r);p>-1&&(kn("preload",`User app unsubscribed to ${r}:${a}`),So.splice(p,1))},offline:{loadOnlineScreen:c_},os:{platform:Vo.platform,arch:Vo.arch,release:Vo.release,type:Vo.type},pushNotifications:{start:Ox},window:{areTabsSupported:()=>$e.invoke("are-tabs-supported"),createNewTab:()=>$e.invoke("create-new-tab"),isMaximized:()=>$e.invoke("window.isMaximized"),isMinimized:()=>$e.invoke("window.isMinimized"),isFullscreen:()=>$e.invoke("WINDOW_IS_FULLSCREEN"),setProgressBar:(...r)=>ee.sendSync("setProgressBar",...r),minimize:()=>$e.invoke("window.minimize"),maximize:()=>$e.invoke("window.maximize"),unmaximize:()=>$e.invoke("window.unmaximize"),restore:()=>$e.invoke("window.restore"),fullscreen:()=>$e.invoke("window.fullscreen"),unfullscreen:()=>$e.invoke("window.unfullscreen"),focus:()=>$e.invoke("window.focus")},views:{changeBounds:({bounds:r,id:o})=>ee.invoke("views.changeBounds",{bounds:r,id:o}),create:({bounds:r,url:o,id:a,partition:p})=>ee.invoke("views.create",{bounds:r,url:o,id:a,partition:p}),delete:({id:r}={id:null})=>ee.invoke("views.delete",{id:r}),init:n_,remove:({id:r}={id:null})=>ee.invoke("views.remove",{id:r}),switch:({id:r,url:o,partition:a=""})=>ee.invoke("views.switch",{id:r,url:o,partition:a})},version:Fw.version,_:{onNotificationClicked:()=>{ee.send("notification-clicked"),kn("preload","App notification clicked")},onNotificationCreated:(r,o)=>{ee.send("notification",r,o),kn("preload","App notification created",{title:r,opt:o})}}};var Yo=require("electron"),Kw=Dt(Xa());var $w=Dt(Xa()),ii=require("electron");var Bw=r=>r.endsWith("find-in-page.html"),Dw=r=>r.endsWith("td-password-form.html"),Ww=r=>Bw(r)||Dw(r),Uw=r=>!Bw(r)&&!Dw(r);var Zo=new $w.default,Gw=r=>typeof r=="object"&&r!==null&&"type"in r&&"namespace"in r&&"id"in r,kw=r=>Gw(r)&&r.type==="nativeId",Tx=r=>Gw(r)&&r.type==="customId",wm=r=>({...r}),bm;process?.type==="renderer"&&Uw(window.location.href)&&ii.ipcRenderer.invoke("window.id").then(r=>{bm=r});Zo.register({NotClonable:{test:r=>{if(!Qa(r))throw new DOMException("The object cannot be cloned.","DataCloneError");return!1}},CustomComplexObj:{testPlainObjects:!0,test:Tx,replace:wm,revive:r=>xo.retrieveObject(r.id)},Uint8Array:{test:r=>r instanceof Uint8Array,replace:r=>[...r],revive:r=>new Uint8Array(r)},EBrowserWindow:{testPlainObjects:!0,test:r=>kw(r)&&r.namespace==="BrowserWindow",replace:wm,revive:r=>{let o=ii.BrowserWindow.fromId(parseInt(r.id));if(!o)throw new Error(`BrowserWindow ${r.id} not found`);return o}},EWebContents:{testPlainObjects:!0,test:r=>kw(r)&&r.namespace==="WebContents",replace:wm,revive:r=>ii.webContents.fromId(parseInt(r.id))},Function:{test:r=>typeof r=="function",replace:r=>{if(!bm)throw new Error("Window ID not found");let o=Bo();return ii.ipcRenderer.on(o,(a,p)=>r(...si.revive(p))),xo.registerForTeardown(o,()=>{ii.ipcRenderer.removeAllListeners(o)}),{id:o,windowId:bm}},revive:({id:r,windowId:o})=>(...a)=>{if(!o)throw new Error("Window ID not found");ii.BrowserWindow.fromId(o)?.webContents.send(r,si.encapsulate(a))}}});function Hw(r){return Array.isArray(r)?r.every(o=>typeof o=="string"):!1}var $f=require("electron");var zw=r=>`object:${r}`;async function qw(r){switch(r.action){case"on":{let{event:o,onMessage:a}=r.payload;return Px(o,a)}default:return await $f.ipcRenderer.invoke("objectStore",r)}}var Am=new Map,Px=(r,o)=>{let a=zw(r),p=Ba(),g=()=>o(a);return $f.ipcRenderer.on(a,g),Am.set(p,g),()=>Cx(p,a)},Cx=(r,o)=>{let a=Am.get(r);$f.ipcRenderer.removeListener(o,a),Am.delete(r)};var Sm={_:{async sendTdPasswordForm(r){await Yo.ipcRenderer.invoke("channels:td-password-form",r)}},objectStore:qw,async releaseMemory(r){if(!Hw(r))throw new Error("memoryRefs must be a string array");r.forEach(o=>{xo.teardown(o)}),await Yo.ipcRenderer.invoke("channels:releaseMemory",r)},async invoke(r){let o=[];if(typeof r?.payload=="object"&&r.payload!==null&&"command"in r.payload&&r?.payload?.command){let p=Zo.encapsulate(r.payload.command);p.$types&&Object.keys(p.$types).forEach(g=>{let b=Kw.default.getByKeyPath(p,g);b?.id&&o.push(b.id)}),r.payload.command=p}let a=await Yo.ipcRenderer.invoke("channels:api",r);return typeof a=="object"&&a!==null&&(a.id&&o.push(a.id),a.memoryRefs=o),a},"webContents:setWindowOpenRules":(...r)=>Yo.ipcRenderer.invoke("webContents:setWindowOpenRules",...r),"dock:setVisibleWhenNoWindowsOpen":(...r)=>Yo.ipcRenderer.invoke("dock:setVisibleWhenNoWindowsOpen",...r)};var jw=Dt(Gf()),Hf=require("electron");var Qo=class{version=1;execMain(o){for(let a in o.dependenciesMap){let p=o.dependenciesMap[a];p.plugin.todesktop?.version===this.version&&this.execMainDependency(a,p)}}execMainDependency(o,{plugin:a,functions:p}){p.forEach(([g,b])=>{if(!b)throw new Error(`${o}: expected function for ${g}`);let A=`${a.todesktop?.namespace}:${g}`;Hf.ipcMain.handle(A,async(E,...N)=>b(...N.map(q=>Zo.revive(q))))})}execPreload(o){let a={};for(let p in o.dependenciesMap){let g=o.dependenciesMap[p];g.plugin.todesktop?.version===this.version&&(0,jw.merge)(a,this.execPreloadDependency(p,g))}return a}execPreloadDependency(o,{plugin:a,functions:p,packageJson:g}){let b={meta:{plugin:a,packageJson:g}};if(p.forEach(([A])=>{b[A]=(...E)=>Hf.ipcRenderer.invoke(`${a.todesktop?.namespace}:${A}`,...E.map(N=>Zo.encapsulate(N)))}),a.todesktop?.namespace)return{[a.todesktop?.namespace]:b};throw new Error(`${a.package}: missing namespace`)}};var xm=Dt(Gf());var eu=class{v1Strategy=new Qo;version=2;appOptions;loadEntryFileFn;constructor({appOptions:o,loadEntryFileFn:a}){this.appOptions=o,this.loadEntryFileFn=a}execMain(o){this.onPluginEntryPoints(o,{onSingleEntryPoint:(a,p)=>{this.v1Strategy.execMainDependency(a,p)},onMultipleEntryPoints:(a,{plugin:p})=>{let g=this.loadEntryFileFn(a,p.todesktop?.main,p);g&&this.callDefaultFunction(g,p)}})}execPreload(o){let a={};return this.onPluginEntryPoints(o,{onSingleEntryPoint:(p,g)=>{(0,xm.merge)(a,this.v1Strategy.execPreloadDependency(p,g))},onMultipleEntryPoints:(p,{plugin:g,packageJson:b})=>{let A=this.loadEntryFileFn(p,g.todesktop?.preload,g);if(!A)return;this.callDefaultFunction(A,g);let E={meta:{plugin:g,packageJson:b}};if(Object.entries(A).forEach(([N,q])=>{typeof q=="function"&&(E[N]=q)}),g.todesktop)(0,xm.merge)(a,{[g.todesktop.namespace]:E});else throw new Error(`Plugin ${g.package} is missing a todesktop namespace`)}}),a}callDefaultFunction(o,a){typeof o=="object"&&typeof o.default=="function"?o.default({plugin:a,appOptions:this.appOptions}):typeof o=="function"&&o({plugin:a,appOptions:this.appOptions})}onPluginEntryPoints(o,a){for(let p in o.dependenciesMap){let{functions:g,plugin:b,packageJson:A}=o.dependenciesMap[p],E;if(b.todesktop)E=b.todesktop;else throw new Error(`Plugin ${b.package} is missing a todesktop config`);if(E.version===this.version){if(!E.main&&!E.preload){a.onSingleEntryPoint(p,{functions:g,plugin:b,packageJson:A});continue}a.onMultipleEntryPoints(p,{functions:[],plugin:b,packageJson:A})}}}};var Zw=Dt(Gf()),Yw=require("electron");var Jw=r=>typeof r!="string"?r:{package:r};var zf=class extends eu{version=3};var Em=class{constructor(o=[],a){this.strategies=a;this.dependencies=o.map(Jw)}dependenciesMap={};dependencies=[];initialize(){let o=Yw.ipcRenderer.sendSync("get-plugins");for(let{package:a}of this.dependencies)this.dependenciesMap[a]=o[a]}inject(){let o={};return this.strategies.forEach(a=>(0,Zw.merge)(o,a.execPreload(this))),o}};function Im(){let{appOptions:r}=Eo(),o=[new Qo,new eu({appOptions:r,loadEntryFileFn:Vw}),new zf({appOptions:r,loadEntryFileFn:Vw})],a=new Em(r.plugins,o);return a.initialize(),a.inject()}var Vw=(r,o,a)=>{let p=`todesktop__${a?.todesktop?.namespace}`,g=global[p];if(g)return g()};var Xw=require("electron");var Om="notificationHook";var Rx="todesktop-internal";function Qw(r){return`${Rx}://${r}`}var Mx=Im(),Za=Eo();function Nx(){if(document.getElementById("todesktop__customcss")||!Za.inject.css)return;let r=document.createElement("style");r.id="todesktop__customcss",r.innerHTML=Za.inject.css,document.head.appendChild(r),kn("preload","App injected CSS")}function e1(r,{contents:o,src:a}={}){let p="todesktop__"+r;if(document.getElementById(p))return;let g=document.createElement("script");g.id=p,o&&(g.innerHTML=o),a&&(g.src=a),g.setAttribute("defer","defer"),document.body.appendChild(g)}function Fx(){Za.inject.js||(e1("customjs",{contents:Za.inject.js}),kn("preload","App injected JavaScript"))}document.addEventListener("DOMContentLoaded",async()=>{(async function(){if(Ww(window.location.href))return;let r=await kt.ipcRenderer.invoke("window.getType");r&&document.documentElement.classList.add(`todesktop-${r}`)})(),document.documentElement.classList.add("todesktop",`todesktop-platform-${Za.os.platform}`),Nx(),setTimeout(Fx,100),e1("hooks",{src:Qw(Om)})});function nu(r,o){So.filter(a=>["*",r].includes(a.event)).forEach(({callback:a})=>a(r,...o))}kt.ipcRenderer.on("api-event",(r,{event:o,args:a=[]})=>{nu(o,si.revive(a))});var Va="open-protocol-url";kt.ipcRenderer.on(`${Va}-api-event`,(r,o,a)=>{let p=!1;if(!So.some(b=>b.event===Va)){kt.ipcRenderer.send(`${Va}-api-event-response`,!1);return}nu(Va,[{url:o,originalURL:a,preventDefault:()=>{p=!0}}]),kt.ipcRenderer.send(`${Va}-api-event-response`,p)});kt.ipcRenderer.on("PUSH_RECEIVER:::NOTIFICATION_SERVICE_STARTED",(r,o)=>{nu("pushNotifications.start",[o])});kt.ipcRenderer.on("PUSH_RECEIVER:::NOTIFICATION_SERVICE_ERROR",(r,o)=>{nu("pushNotifications.error",[o])});kt.ipcRenderer.on("PUSH_RECEIVER:::TOKEN_UPDATED",(r,o)=>{nu("pushNotifications.tokenUpdate",[o])});kt.ipcRenderer.on("PUSH_RECEIVER:::NOTIFICATION_RECEIVED",(r,o)=>{nu("pushNotifications.receive",[o])});kt.contextBridge.exposeInMainWorld("todesktop",{...Mx,..._m,...Sm,_:{..._m._,...Sm._}});
/*! Bundled license information:

lodash/lodash.js:
  (**
   * @license
   * Lodash <https://lodash.com/>
   * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
   * Released under MIT license <https://lodash.com/license>
   * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
   * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
   *)

lodash/lodash.js:
  (**
   * @license
   * Lodash <https://lodash.com/>
   * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
   * Released under MIT license <https://lodash.com/license>
   * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
   * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
   *)
*/
<!doctype html>
<html lang="en">
  <body>
    <style>
      body {
        margin: 0;
        height: 100vh;
        overflow: hidden;
      }

      div {
        font-family: Arial, Helvetica, sans-serif;
      }

      .root {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        height: 100%;
      }

      .password-form {
        display: flex;
        flex-direction: column;
        gap: 12px;
      }

      .password-form label {
        min-width: 80px;
      }

      .password-form input {
        width: 100%;
        padding: 2px 4px;
      }

      .form-field {
        display: flex;
        align-items: center;
        gap: 8px;
      }

      .form-actions {
        display: flex;
        justify-content: flex-end;
        flex: 1;
      }

      .form-actions button {
        background-color: #3776e2;
        color: white;
        padding: 6px 12px;
        border: none;
        border-radius: 4px;
        cursor: pointer;
      }

      .form-actions button:hover {
        opacity: 0.9;
      }
    </style>
    <div class="root">
      <form id="password-form" class="password-form">
        <div class="form-field">
          <label for="username">Username</label>
          <input type="text" id="username" name="username" required />
        </div>

        <div class="form-field">
          <label for="password">Password</label>
          <input type="password" id="password" name="password" required />
        </div>

        <div class="form-actions">
          <button type="submit" onclick="handleFormSubmit(event)">
            Sign In
          </button>
        </div>
      </form>
    </div>
    <script>
      function handleFormSubmit(event) {
        event.preventDefault();

        const username = document.getElementById('username').value;
        const password = document.getElementById('password').value;
        window.todesktop._.sendTdPasswordForm({ username, password });
      }
    </script>
  </body>
</html>
{"fileAssetDetailsList":[],"id":"25020447d4kq915","appModelId":"com.todesktop.25020447d4kq915","singleInstance":false,"offlineScreen":{"enabled":true,"buttonBackgroundColor":"#FAFAFA","buttonTextColor":"#111827"},"insecure":false,"shouldLaunchAtStartupByDefault":true,"name":"Perplexity","googleOAuthIsExternal":true,"internalUrls":{"value":".*(localhost:3000).*","enabled":false},"appProtocol":{"enabled":true,"value":"perplexity-app://"},"userAgent":{"enabled":true,"value":"WindowsApp"},"icon":"https://firebasestorage.googleapis.com/v0/b/todesktop-prod1.appspot.com/o/25020447d4kq915%2Ficonimage%20(2).png?alt=media&token=df0f39a0-e255-4b87-b2af-1a47257dd606","iconAssetDetails":{"type":"appIcon","relativeLocalPath":"./icons/iconimage (2).png","url":"https://firebasestorage.googleapis.com/v0/b/todesktop-prod1.appspot.com/o/25020447d4kq915%2Ficonimage%20(2).png?alt=media&token=df0f39a0-e255-4b87-b2af-1a47257dd606"},"menus":[],"windows":[{"isMain":true,"shouldResetDimensions":false,"visibleOnAllWorkspaces":false,"options":{"titleBarOverlay":{},"autoHideMenuBar":false,"minimizable":true,"trafficLightPosition":{"y":15,"x":10},"frame":true,"webPreferences":{"backgroundThrottling":true},"fullscreen":false,"maxHeight":0,"height":800,"alwaysOnTop":false,"maxWidth":0,"width":1200,"minHeight":0,"minWidth":0,"maximizable":true,"resizable":true,"titleBarStyle":"default"},"disableContextMenuOpenInWindow":false,"hasMinWidth":false,"hasMaxWidth":false,"url":"https://perplexity.ai","hasMinHeight":false,"disableTabs":false,"id":"aBgfq6aHUDnhpUZYMMp1Q","hasMaxHeight":false,"objectId":"TJmK6yKBLiw389HLDdYy5","toggleVisibilityKeyboardShortcut":"","type":"app","name":"Perplexity","visibility":"show-when-contents-loaded","disableContextMenu":false}],"autoUpdates":{"shouldAutoCheckOnLaunch":true,"shouldAutoCheckInterval":true,"autoCheckIntervalMins":60,"updateReadyAction":{"showNotification":{"mode":"always","options":{"title":"","body":""}},"showInstallAndRestartPrompt":{"options":{"message":"","detail":"","installOnNextLaunchButton":"","restartAndInstallButton":""},"mode":"whenInForeground"}},"autoUpdater":false},"plugins":[{"package":"@todesktop/plugin-ipc@0.11.0","todesktop":{"namespace":"ipc","version":2,"main":"./dist/main.js","preload":"./dist/preload.js"}}],"trays":[{"icon":"https://firebasestorage.googleapis.com/v0/b/todesktop-prod1.appspot.com/o/25020447d4kq915%2Ficon-GQ8Irc5byEbIn4Vl22IJ_-230x0w.png?alt=media&token=d2e37ae8-1eaf-4754-a21c-438a4629e6cb","useTemplateImage":false,"iconAssetDetails":{"url":"https://firebasestorage.googleapis.com/v0/b/todesktop-prod1.appspot.com/o/25020447d4kq915%2Ficon-GQ8Irc5byEbIn4Vl22IJ_-230x0w.png?alt=media&token=d2e37ae8-1eaf-4754-a21c-438a4629e6cb","relativeLocalPath":"./icons/icon-GQ8Irc5byEbIn4Vl22IJ_-230x0w.png","type":"trayMenubarIcon"},"leftClick":{"role":"toggleWindow","menu":[{"type":"normal","id":"IvQJDIDea2O0eJu8kkCUe","role":"todesktop:toggle-window","label":"Open Perplexity","targetWindowId":"aBgfq6aHUDnhpUZYMMp1Q"},{"id":"G6cMpZbLywqs1JegOVNSz","acceleratorBehaviour":"none","accelerator":null,"label":"Check for updates","role":"todesktop:check-for-updates"},{"id":"cdRgv6wLSmrANbzgTQvuq","role":"todesktop:launch-at-startup","label":"Launch at startup"},{"label":"Quit","role":"todesktop:quit","id":"PZO4W9XOrkj7w5LxGVLmK"}],"windowId":"aBgfq6aHUDnhpUZYMMp1Q"},"objectId":"hp5-sjFu1MS1r3582XPXM","id":"22zkjzHNOovyf6PJJhtt_","rightClick":{"role":"toggleMenu","menu":[{"type":"normal","id":"IvQJDIDea2O0eJu8kkCUe","role":"todesktop:toggle-window","label":"Open Perplexity","targetWindowId":"aBgfq6aHUDnhpUZYMMp1Q"},{"accelerator":null,"id":"G6cMpZbLywqs1JegOVNSz","label":"Check for updates","role":"todesktop:check-for-updates","acceleratorBehaviour":"none"},{"role":"todesktop:launch-at-startup","label":"Launch at startup","id":"cdRgv6wLSmrANbzgTQvuq"},{"role":"todesktop:quit","label":"Quit","id":"PZO4W9XOrkj7w5LxGVLmK"}]},"linuxIconAssetDetails":{"type":"trayMenubarIcon","url":"https://firebasestorage.googleapis.com/v0/b/todesktop-prod1.appspot.com/o/25020447d4kq915%2Ficon-GQ8Irc5byEbIn4Vl22IJ_-230x0w.png?alt=media&token=d2e37ae8-1eaf-4754-a21c-438a4629e6cb","relativeLocalPath":"./icons/trayIcon-50ed3cfe026a9-linuxIconAssetDetails.png"},"macOSIconAssetDetails":{"type":"trayMenubarIcon","url":"https://firebasestorage.googleapis.com/v0/b/todesktop-prod1.appspot.com/o/25020447d4kq915%2Ficon-GQ8Irc5byEbIn4Vl22IJ_-230x0w.png?alt=media&token=d2e37ae8-1eaf-4754-a21c-438a4629e6cb","relativeLocalPath":"./icons/trayIcon-7052faee3a8dc-macOSIconAssetDetails.png"},"windowsIconAssetDetails":{"type":"trayMenubarIcon","url":"https://firebasestorage.googleapis.com/v0/b/todesktop-prod1.appspot.com/o/25020447d4kq915%2Ficon-GQ8Irc5byEbIn4Vl22IJ_-230x0w.png?alt=media&token=d2e37ae8-1eaf-4754-a21c-438a4629e6cb","relativeLocalPath":"./icons/trayIcon-099f2e5241f-windowsIconAssetDetails.png"}}],"shouldMinimizeToTray":true,"shouldAlwaysDisplayDockIcon":false,"disableDevTools":false,"lastUsedBuilderVersion":"0.30.0","lastUsedDesktopifyVersion":"6.12.0","linuxIconAssetDetails":{"type":"appIcon","url":"https://firebasestorage.googleapis.com/v0/b/todesktop-prod1.appspot.com/o/25020447d4kq915%2Ficonimage%20(2).png?alt=media&token=df0f39a0-e255-4b87-b2af-1a47257dd606","relativeLocalPath":"./icons/appIcon-8ec4b2d538fad-linuxIconAssetDetails.png"},"macOSIconAssetDetails":{"type":"appIcon","url":"https://firebasestorage.googleapis.com/v0/b/todesktop-prod1.appspot.com/o/25020447d4kq915%2Ficonimage%20(2).png?alt=media&token=df0f39a0-e255-4b87-b2af-1a47257dd606","relativeLocalPath":"./icons/appIcon-784e9d13ae3cf-macOSIconAssetDetails.png"},"windowsIconAssetDetails":{"type":"appIcon","url":"https://firebasestorage.googleapis.com/v0/b/todesktop-prod1.appspot.com/o/25020447d4kq915%2Ficonimage%20(2).png?alt=media&token=df0f39a0-e255-4b87-b2af-1a47257dd606","relativeLocalPath":"./icons/appIcon-57a2834251afb-windowsIconAssetDetails.png"},"isSecure":true}
We have an option (only open to us) to inject custom CSS and JS into apps.

If the Firebase config contains cssToInject or jsToInject, we create inject.css and or inject.js in this directory (during the build process). These files are read and injected at runtime if they exist.
This directory contains all needed icons for the menubar and tray. They get bundled in during the build process.

There will be a colourful trayIcon.png there for Windows.

There will be a menubarIconTemplate.png there for Mac only if the customer uploaded a file with the "Template" suffix. If not, there will be a menubarIcon.png. The app will first look for the template icon; if not, it'll use the regular icon.

An image with the "Template" suffix is preferred because it will be interpeted by Electron as a [Template image](https://electronjs.org/docs/api/native-image#template-image). Its colour will be inverted depending on the menbuar background colour, etc.

There are multiple sizes for each image; Electron will automatically use the other sizes when needed.
PNG

   IHDR         Ĵl;  IDATxkUw;fLRMĖV ^PD+Aŝ_BT\x[tRAQD*1\LIf:s~k&$s%2R-DA9g$cR	!svkfߗRN k3"Wһ!3#9gb\ '@J)%1FRJ0B,`18&#hUU!	3QJx 8006;Fkj
8,)NsVL2@;XL=2p"?,v;t1BDCL,SϿB놛pQW_0N0$03BJ)23$!3rv<eHf3Ǩ?y)pݓO4ex{&Êaf
J5Ɗav?8v(qN6v}'^ZV"+:{5|u# EF$!f~vrk|exE]z0XXccm"j'%@ΙFdD3QD^@k0v.vtڬR/;vO0K$,g,I;H)F)R'NxώѺv/OA*͓gtA"!%N?r7^O{vp8<tN`Ч䚫#$ctr`8Do~x0an3̐D#2Rpwҹ3ػ︋772~46v'ǱP(K+>N pSF'(K_p%gp5ز!	KF.(Q)x|pq3U61GN IIoHYG8Έ+IHbi[%=IP
?wAL@Wi?A%c2-S%; ?(k+!(NC#5@$ 8Ĉ)w?#J 882`k    IENDB`PNG

   IHDR   ,   ,   Z  IDATx]g]LwvM ( -!ȋDDĨ T-&C"(cI<_=%TҠ
&A[wݙyyvf,?ߝ I|oMw v'@ 
pX6TJa6h$hph@Kt<TWwL7p XͶ`2ئBkm]aZ+[	ĳ	I~lFuVJ)L&9]ױPkeyyahuVvZ^^f}}	>̖E-:Zk,d&d2{@DtLZkL&$a`!3٩:jlCOsv(\&>"0͈::ZkHb:2~^xI0l6cd2But]GuDVv	G !$ W5ads,躎|ml%_Dt]B?@̼@fw 
p\""@
/pBYME2ABX2W-/!  
[MمmfKX?S/0`F$aTHi-Eלf3dv%:6	\.2:T#GX_Ϳ~r*}S<1	@,X͖g}:$デ{݄˸!$`?02ҍ	s<t)x/f,e pʵ<|k#6VH#.kĆ`KD\1Lb6:9wn^ً awB8D./s]'8Y24&݄lt+$lbTDPJG+Dr}Ρ'kx(" lwk<jí2=ADptJfTk6]!	IDQ:D
ҐF8St?w;7T
$6+u<|z~c6:Pǁl8RlNd&V6-[l#J)FEXkȉ(ȩǏrO\-%no:ʄ&eLDC(
QJ65fc5)y]`*ZI,'qqi98! Q e5&F5+D6ig˴I,f[."یc͸ĕyiwAFAf#`&֮0ь|z}&A/:Ӿz{BfrKD8@LCdVam {%V2!KA*fSJ'J?rjN {(Ske2ةc "ɴ:O?{A\}%vVFMrn<k_?AMY{%0V2:dWs33#XuAkmID5$!	H&Ǥ iô2㖟|kgrꟾ9m>o􃇸/L;&BDm0`F"(BHFDlbZ+ɄXՆ[2&U{][_c'yy'C/:Ȅ5BHP "Ǒ:.ad9V9qQ'ԡ#ڷam!		솆Ks^{A$J)jkxl5, l9qU{ͷq'8?P	@ۄ	Cx׼TGU\n#-{,c߅#9&t-7|=#vlѓX~jZEB6d',Hb[p	$s6r7ɇs1Pm*HF֑I;y3\yudȖr$б%"J)$kl_rzrF8Ґ[4aS2p=ĵ?b֫a>gh:#$Z6[2ئ6I8 K3ھhd:9^ǃɮG!uBハwZ_Ca`lZ6:v!#p8^^}O]iב*W?'W|/$u:	؅lɤUX=6b|'2<	4Sp(p&HNd3OO2{K'QJP,Pk%ZB%xL6qdcv0&uYQI[2qKpblrD4I6$Fid#">m5pb'a*G#&8Mf4"I\$$5ld$ EI`c}?=L",O~֗,04c62F[Nֆ됂gH65珡6"fs?A,IK``'IH6l2p8ZC<Cl0udie	}Z!#[HJq`|L84p mDkI'3l20 _Mf 	pZ2=JY瓐#(bΊaq>N?md'IH"3e` ̆MF.灰$p@6*'>d$"0 HMƤ0rоz/QGX$2-	Px^-( mdD@\ @ԓǟ`'B(6+"dOK`H6.2ڈ8(	INShǏxI 6J)F0lր7~mmmBĮ"aN۟nq` -
\xGDj{? m.&g`%m@c &\A,E @<C\d.%`i)`X$'   "l`6	0;H 4 M{l2{6    IENDB`PNG

   IHDR   B   B   T   IDATxk]c8'&x8m8	6j*U퇊Pj*R@E4Q*№*(I m_/T"(q	fxy}ݽfx{Coxmw*#ֈ5;Yc֘$ k$ls-m6k0`  #ྦi5]m@UD+++lm[6AUURlf2bsq@4$ 0`P5n~	m3[I)!4MC4f3!|>g<#H)%fiia4/g%f5  ׀ o5jۖYYYAY|>g2 H؊$$5g
|#` 6W  -IngimK׶-M0NXr4MCUURXo4=[F}:(W15jۖK*X礔HBVl 6H\NVU/g%%6Q5Wc,mKUUt]ǂ$jw[nGĂm)F\HB$$!H*@XxhdfKAmےRb>cĪDlp`4՟I8q,Hb:2YZZb>,//cͤx2p0k̪	r$"%[BX`hG-\^ӽ^T-4N 9KKKF#C d<>|\D@&
I,X,?nhFT3\I8 F]ױЎFHܴ7;O6A`$@\Ps꺦mfѽo[w7~:
	s9BHXgq	rߣ'p?-?wѾcnJS7mle5< (\X#@@j60-M5ƥs{8q4y#?G	uEMEEBxBJDpLmS2l##Gzipj!"8 bU	u͹sR8>x䡏4wеQ%k .8o9ԳT4ͦ: .H\"X%T@:>KN{/_zlE
"dBNH|r:Ǵ\
F\7 .H\NmgObG9Ok;(m"Y qQqd,,~;x`}cG8teDɔ((!\b4u]QLD8psϻ~s~X 	KQ#&𨡺^şrilŤ`ai46CxYk(FJ)Ͷm۸I4MCRbMwG_>ƙ{wg |;^AA	;Y`1}G9{
p	\ʠ\s"hm&d2 @JlPJIx$RU!0 ]M<_~!ZgVԴ$8qOB39cif$1fR$6t]h4B$$4JIɜJωNpֻyۧ>KH+z"O}~#1;v\EP
r8a`n63LRLbAuF#lsQ]ئ;H%p	\
.&(u:tsK7qn6-K'ﺇCq
PPya`Ci$|>$6X66]ױ$dH܈ A1Ga6#°2ȋ8Uӌ(k	&KoQ'!2Q(4$C(	'KiH)1H"梚kMl۶lF2M
4Z"pD@JHF_>Lg>LI>!N3^fzn)@2H K% ʀ0TjgRhd
9g$q55ס*jJm?ҭovL<z2&MN	WH	`cXamS/A$	󒠲ID@UPsNOIt]GJQsMӰ0Y.^i}`%*%@8AAȀr
ɰ2CUbi2F B	H(f vCI܆9?!y(ж-MӐsjjkrج2}1j8ȹ(y亂VdLUL"Ð0@`}13Ӯٳc$ !	)A]LzBCCv@)iilka`X#N$$xRc\הnv&cf3񖷿%qŃTAI(A H4ٔ)1諚Y$qQΙi뚜3(0\΀q\ 3@@1DQ
y;v>ɽ8܌vʟ~O~׿>nnH,`HI(~f!r$HBÀmb35u$a@5LA2у8fMJ%h*g"ĎƎGssr3:5gp(`ǣRZ<"!AU'R	<(]"H a9gka`M@]פI!pp ʁ=eJ@1Jxܺnt6Ƥ@F%=\qh@J@f3 g$f!t@.@iبfR
UUuYP%1)
&<T7L[}Lz=Gwɿx\ l=ηɡo?2Sw8%a!L?yp^۶,FlsM6PBD%COLgl=;8~N~c1p/'6`a:c GKc~~sDJ!@&G7$lM 6v(!Zf"'v+=2 2` H6uj6н|}OWSjR@v8
% qCp0DmTLZ^yyO>}(dHX0IBfs䛻?."D.qcf#l%jqDJܶ=?>ɘSe0@@b0ÉSvs4A%P"0Q-f3	AGAQP1&?ļ^|㔕F6@  FL=rPut+Oʹ)߶+PGa.HB%6!2.D.D)LnGC;N='ʐ(@p10`M:ǸGmn'r&@alsj֑D4,um6J)M͐K#y#gOrQYʼa G6p dA@!  jx%.M۶H60^:If6d[{x3m#Ɯ}ezY26D!U"l$"@\fA@0v! CJ)=˷@~ٙ|$F0`jAWR'㟠o'u=ːD@.I݌fB7ejD
ueEehj*W@	
8	NAmnDͫ`gH	!aR(}Or&JCF}OIC(g.M7Q?7iKƹ\

	"@p"YenT⵲a $ 9H.,HMsOQUiO>(7ԪHa0)@% 
D!"D0IZdAd.'0Qd " 9 !VU=OB	pP\O3_QG5VB	6
Cl0dym$a@68
%
"0&U#W};G`CgxOiQU`Q2YJX,6@8Ɂ0TQ=elFI(@3<51MkrE806R"$n@AbiV
I$pAFHIO+yUr3یfiBD,^UUlXc.9OfA[$mF&4S_UP"Fd0
&᧿Ea4DC "^u]SJrYĀW9SUmM80	Դg0/w=ddf,aB/6i8Mm&lHWSU9gl 3p69Ogp`@Iԣe&~Y .'c@<c
i
gG!ADlRb+u]3Yu0$.1V&L*b=IM. 	C֯{ TXcLkL$^aL`S{w1aF%g\$uMD 	I{ Ku 6RJH
}_f8"ȀD0636m>NiRQ
m$QUUR.ׁ 5:$DBIHBbQ.bG9x( X`qcу`fH>e9͉,]'ܳln`7rX~(<'@  Vu/1 N 0d@`. W1N}WaTHUUED`~X
$.1@|	:YcL1(34&Ha0'U ̂f 2
tfA`l>_*$ GHH"T)aW.ʡ@l-Iq l '9sAlHz 	I'^!@@J	\K<p0 q5I6눅IBX 	z XbsB7$1b$`#R"lF! )IF,H6)
`֩ZHʶ<ll@'@\@Š$lbX#$69ۿ@[3  !p
$+HW@R>o׀@ f5	X&-})m܁|0j@*"+Ȭ'Ȝg0WJ`#7)S`@0ז@@4@@U&@d` 2@p
H@H 	0`.`6a@ 
@0`AF [0`֘$^;L?]4    IENDB`PNG

   IHDR   `   `   w8  '~IDATxy	^{s{t3̀Lffa%QSb,T,)cLXn	"`)ND˲LeJ
("dXazow;y{}{<9UU_ؼ|͛777ݼqëu=N>l3n޸t˛nݺ1O$}w7{TU.onsxxHy#77ݼqg\6Cx_[Uw$
^FUǷ⛱%gM{{C7nTUM-/a%T՗i77WБ˛n޸3&
UN^ET1]ܴk~x~QV7x穪owc3)^MWk>qyT<{Tw0j$^sysΎ|
bݝm7Vj/U%1xZU]wcëo˛vwv,/bݝm7ʿ"3|wU7M;;UEL촚f0ʋY,vw]b"ziSwT;^19{Wc:z˛vvv,/b.<_u&U>P~eH#oXqy7o\wtsU'Uנlll3Vʸ8q4qh\$ig{r&lrC;Ư?nW~8Z.^`]C=q4qh8hGj4V}SiUƿ5r*UT9v,q˛v-Knw*k:U(KY.vl>ׯ;2qr		V!\ZgɄS96N3]crloo[.O15PUrer
0a:}SP_(a`3O_AukL&TQ˛޲Z.ݟByUV˥.o>@T1>S7z7gνÄF)>U:s|۷/xܺ!ٹjŋo߶Z6(g╬+[[.?n]v_[ܼ}7boxץp:UNʭuמs>/||.<[f{gj)A+(EQήͷ>l;õKIBu/\P^w֖3gZ[[s,܍*n=y;wSa06HZE&aj|o}kgOO}Wb1'qdmm͙lomms#ݾu˙g#+\}̸֓]&cC.=)	5PZ{WPj`2e&oMC쏸ak~W+G֝={έ[7%$nߺٳI$pe][W2ƣz~8dJ;+ciAQj`2e|?_6|_}Ҹ?궶ٳnݺIXzCı7]|A{c閎7̺m~7?lr_[߸q&xYE&S6Nx$}[zGښ3gݺ~xCM͛.QɄqt$[6ƶӑ.{&NoO2g\I!^J<-QTQ)ӆ7y~hvO8ڥm2Μ= cz#$+ntnG
]=$/y)?iWI!UIċ+Ã{]R'8ٗIGmMx#Ly\i^EGTXؒ豽.=}~ׇOqƥhRʽcđX#	qrN5ę[\.j'XJ$tۑ˛%oa6ycK.ۺuSMBP`nm{7nzwO)Sg(wHtHGđ)R00]YCO:;~RW	CIHDHHHW7o UH0Nf3o*/]uGǂʉ/^m-WԿCgm1;d<Gcnw]00YY[L~Y,]+sI:$q.]L7l63N&l5c/^u[c		g$Ջ;onu2mn;9u5<[cU(Κ<Ng/XZkW-K$%$t8hm._1LSwL&fפx-Dċ+,Wow퉧>?gxs,5*#Q(ɚ:uxۿCK{n|)$$$$tH$n$tnvel63N:2xޞdb6y5ٳloonDHB7		\Yزs:Sg1T;D'yg۾;/0_.:$ҡqBHΝ?d:=l~pޮ\!!CP)qreycǟt}y&ԀU5u]˥ݹO?e\#A#!!!!!n9zx5;ud:^3L&fWrE;;ۺ۳	$%$%X.-m]1{~ׇMEyHUtM`/[,vv|^萐!M4	(݈c^l63vw=El楜xGUnI$!q,;Yjeu럼bo\9dMR3MKiX,V<~M/26$$$$t$t26t8Vcm/]Rfdbowϋ=0ؘ<non8R(8IH$!!DD3B<m޴tO.][үV3c5p~>Ml\ڷSzI#I#i閱Ge=GU(Ko6&{{{^el.(
UTQE*t#	$qGɛ9ֿkX_5>/|Y{Ytt&##Wt;V5P*Jh{kŋ5=/g;ulf}cΎFQ00LLraB7=J7			B	Q/ƫ7>pSb7{Ƿ	W~gܵyruce9"T9ܑH7tӡnƑnG	)i'0av{K懇ޞW2u=7(LSgɄ*PN$$#ʱ<E9QExoW		}[V˕Om;|⺬Q("q,!Ғ&xƙso8VϨù,HhX8ႫWt?ݸ~a`}f:(أ/p5PUTIrG98HnBLܾv˅ӪҪcggn9vcEUQgHBBtK2;s_>~7n-?1I:Ex5.\uWRw8w]i|R6u/cL'0SUKQN*LI?Iߺf6U8sdΝu˙zΟu`vS,rccf>0|A:^!^ZyZyFJUY;=suxnxZ#9=BQU(JQV&ӉgNWvvvp֖2Ν?oowWw{8<80;{tSy!]QtM08H7t覛nƦq[fG¹|7mC^,|-;5QPUT1UTQEQ*AE%*1TITZƖD=9Ύ.b^Ĺsn/`9,w-PY)ͨAzd5eY+Y#Պȸ82j\y}k7]x&kk>)=YoU{nǤCà&@C1UT*ɠ	C4ZY.82XO7aZt;#^Twq[[oyΝ;gooOw{i!Q12
$M-et@E4A":t[n:jmW}^ag~ŇTUVW}p c{=f>uEI*xFrG50ƖU"	!AHXVvwv?{MܹstW#F:T&b0b2;ҡCHֽkw`r{?akl=u\]ITqK,W#ݒ(đr,	D5sO;V,W*q"&XHX_g2	5:IHf>g?lgwvObGP
<u'nM\R/G$R(a@Y.Y.X<#$n;Ο?o{{ۑ;Ξ;gooOw{\\ID!Y82o00'XH*u攇K{vw^n~#Urk#njsAKIUUa W\Պ4	AHnCHmwwmoo=wޞE,W#8te521D&rQe8{۾K~e[;v\1>r$(
VlZ't|ۼ+p!	ʱqbjj$$Jqx-sϛnw={Vw+b2Qj826	"AIڱYXX12269w#_Aپmb5 T9R
X8ށGn=|OarbrIt#H:6ٳ(҄B0qv8*	lV[	A"MXǱՊSX[g}ns=/2پmSmV#		B#fC_b?c{+?ߧ[,L[,Y.r"!!-^aoI{9OVU8ݦ'CwĪ#$$N"			IHXXX.9sFfo_nYڹe?1j3):t8r| =ѯ|⣖Ι\##)r, ĘF+f!tB!;B4i:t3#CΎ굉[_~BoZM8V(R4c3XZ=q7\ow8,V#tMB7iI^K<WP$t萐HHHKnGƑqeY]nO}GIwc*Khvᕛn~qң_Ϋq4:$$$$[%^^;BBBB$tHHHG|8ڹ~7-~=`l8EUs$A7(6^6ܣ"V
	$$t$M				le
I*'I&!!a:q]Å^eu/!	BB9P	i鑱nlv+-oG>>C{I馊*Tc		!!^WT^\ -				cөsu>ub8M#$(
K82#m~+Ӊ_#$x^Vyeq,MBPqC7	[}w߸[VnY,q	q"!A<K4=%ݪHM[Dw{׿ϓk>K2$5*$t&8$^hHHh$tSH!8V׽˿/|]{7o?u-?Œt#iĳ=iq,M7)馊vzKԩWgd"!ѡ!tHeyUH<L6ֽkp̟muk[XM"			t8Q(IPı HEtСBXm7n~g4[K?z !HZҒF%^`IHܿn*GjLNmx7ܸe~q{OXt&!4izG#"T!GdD%$$$$)9nnoG}ƚ:X7c3t|{UoAHBnFLOͼ|÷?4~۸/s/G$$ıR%t3t=Y	B7Ht(GBHBBbue'\+y_oԆzG$t#c:<ښ|<5:PE#5x7oھy[7{2_b4D2#w8эPӊ0Wv֭y/ЗZTPtn^LyƆwM+WTEr)=6S/,n胹,XI*j@F'BBdJ@TQCQ*(wq9rs!VgՊJ|!i$|.^`\?|?iy3vWYdb*
U(b&LBC#*&LLL&@@5P#˕=ΜX?pN	Abyvx~q_瘺/q<++@5VS6\KKYtӡn:QV+V+XrbIУ$t3.Xkj}54Z	d )Hb-6I3,r:H~xĽ%JRDfg8R\ZelҌ:جV,,,X0acKBVJ8<`9պXd$#Ѓa`(L
Y<uEG4	1%(ψŉxVP#!EQG\X0M7ztKt822+,GG?bccq"9evAβ:GQQƑ*	i28>q!Ľʋ+/.
	BB=mՊnIt覛nYI_uvƛgu1p<tMIHB7ҡq$qoĉxyb8Պn%!HHҒ&Md	n}Z~qj!sV+wcv!N$HB4t8҉7X|&tB88$$'g'G>t#$MZ^u(5;t4				BHB82&qGK)/HǱA !!X[ci|TcqH!r,MV/W>*8tMҤIHHH	 7\Hı4cAwq"3IOcyH8ǂD-|/9S	AB<-cA'$N/4x9B9KH#$!u2?ZxF&'BZ-/Y!$	Aϊx$o^<d:UU DccCj3?$^r,^ j)Dy $			BLS)c守WPN&R:q,!!A&(?G8'9ҬKe%g/0;XBBB Bw2][0f3A)LUe\		B*fC?W$%cf\^Vs9si!II,LSo٩S|nc6FL&jD$!H;i¨azEXX/-͸?+}9{SgK;BHBH\.2Nf!|nc6zL&Ue\+!				U>##+1z%c8Kg~DoSYDDwKLSl63%1#|nc6ZL&SUeZyFH"			c5p本zn޿%Sĉx%Aq)?ύM}<gSHHH"			a\LSl63%qd $ϭ;QO&ʳ$86=S*GGJW8 +1o39{HH$ϊ#dxsI5PJbXpܗ|I,a9Qo_G'UI,+/wn=)=G$m[jf3B|n}cJ1lCoĉܟqG %J~Z8sa;x]666J̽|n}}sAb*uY|HD<_y9DHz'>i?eu
=r,j5Ja>{	 ^b1?ru?(B
]Ƶ,p!*}߁)"Hw IA"PI*5mI;L''3If^OWMbx3kU-p 	$',%NndzU-!؆n |SpRؤ8@Y@I#mpQT+HHB ,Iܹk?7N<Ñ,IX	'ZkBxLioMx>b,Hw8ߎHބ>a[82p(
'ZkHk
C
c/]dz[p<3K(N$Nq3y-!a8ZcKWf]yZcGZk@xڜ{®HC	V¹>%^g)a8ZcKw(K)6iq0@YH8 Wlz7vH8I\ gua5qº |RBLǑϒʇU|˒Pgw$lIfw;R@X)DÀmq6$a~u^nX)qk }J8pVؤ;z^ᡁSsIf߭$$!	IHB$$PUf~I찮baH$$!	IHB$$!	Is/>⡁G$i-߰-6mlcFvg;Jb
B؇4` $1Mmlc6\ެ?_f	Ia>JB%NbJb%쮐m* *%	lS;I~c6VeA^`pV 	ͮ$OTvg 	)$a(V
('	lrl0d7sP_<4`]DbvQ*BUHBY)!	<E~|3uBU>my(f4a[0mU	I>qB913cwVJMf4]p!P젊瀯_l8JX) + Ì'!*ģ$`S0$6Va轳l4Msp\$y-iyhP    IENDB`PNG

   IHDR         a   IDATxcd@a9yӁL' 
?}?},zF5~*d 3Y^>; )\jVLkQ!n CķU	wc3dd<ѝ&͐fOZ})#Y@N* C+?[1ݐ  0+q`IFFFϰs-G_ 
w] x~6fܜl`	XK0oG3l>lA1ACm֠]pҭ_1p]jUq`vͤ`sN^zfsr<`vDj0' `eTјWXI`Whք$)w}k)2|wA2˴$]\
:.(I>b~|o~|}^=sjK'"3!ho|xwQd #3u    IENDB`PNG

   IHDR           szz  IDATxڽkHQtf6ԮT%؅newʢ>TԇՇ
Cݬ/],2"fD͊i9nswi]s9{߹=8-K%9$-HBzEz@*-5]1 -%qIWH	mH 8$H0'$i'sє\'qO@ZH%y%Is	(?DH <s^7bƦ#ݻ&Q+rrql*pp%!5%ZgBAq:] lw-($1j%.K6Ɋ×kf("U2OkGImSV7CCs VC@>eII>K6'Mb(`"?;
0l-vwBm=WHg l񥊵X4m0rA&:TccʖLԻ\.7!ͮL4W36:|}>g(2jr<OKbڬT[z8o#ӆEc+-8G0B+3ʝ_8aLJ3i@{PP*|GFjV'5WQҲHN쇲gu+#<[dFRH G.TʔaQ=!A̛^|Ɲ':w~a2Q+	 kNC{K{RԞ. \(%h6XyN[] ]P{ nqǩ,&	 UPsNǱl͂o/$HFY,72BGtz'n_u%f? y $/XM͡:g kyPgsky0[hokuΆ}σx $f
Dy; ~ AvL=;4DJ?ȶZK>;VE_ruc:Ъ    IENDB`PNG

   IHDR   0   0   W  IDATxZ}PTU?P?P%@a0t2Ig4qrg#sƑ)+SMBAC A`e]څ]vfsϻ{ϻoyH˷\A9O<r`r@A>tOg
#RaD2 @CNe U GNA
"[V nٗ9G *"Wܐ8@^ 'b`l#ɨ;@ da0 !B\q@ ^'Bmo7؀q5Z{9 ޖ6{' , p@DljO< HucݍV/{~uJ_b;F7tñ!rY7 9 6v [D^ؤ'sȷϽūl*̥:ol;v L=Fai!4jxn=`B?@$f(rt@Vɧ$rٹ+{W' D-@fSYj}ϯ0j_TD;Hf$2FƋ4"JV>8Hӟ`E#ym4ծdWIE9"FQ !lh2R*բvf h	1ApxMr^pVnW*<)gbf^~S<=~g͜睬t5J|$ 	Sf ps*RMw"[7fЄ]#l:C' ɎJ<Ę@;#c9t^۝Xwu%۹ kkغ<>YDa?,s܌Xq?JI	dwC%; &鋂=!i[Z<u7h@".Wϗ*Éa4>6e[)jq> 9'.<Oˊj3(;m%<8L#_F>͝b"𓿔ѥƏ<JpBK^[kԹ/*>sz]'2CN{Ck#K{[ |!#':_Q "wqC׷ieCfRVlpStEiγoϖ8L&,Ⱥ[7,C.W;1{TB	9W@cA%w{\<): $~.rRYU.24H 8#Y_)P\Rє z lF?Uĵ"7>A)?/70w \w `$:Cn&Dhhz@:?+U6;O/-k3Kʕ.BFťަzhX ) +E:jmQ2jH=
uJ፿jx@+aζzZnT2LNb^"q#>銉|3YcbZ,lzCgVAϛ][@Q,<aUPdl
I]pR 6-pIvks{w}2˶ʥ^GɀpI(	LHO KGmfF| !>>=Ϳ2C*    IENDB`PNG

   IHDR         (-S   sRGB,   	pHYs        PLTE   j   -tRNS C7
ԜNYܘD.kw&Ӈ   IDATx50D#Pv@
"*}B'L["q=!:K#ŦA"7n+.+&5ѕ[[wrZ#`$Ia$ ̈́^i<) vP)t)_E> d}[0|VDB=    IENDB`PNG

   IHDR           D   sRGB,   	pHYs        PLTE   3   /tRNS 3`2&)R67Ԇ*5ݘSϥa43S  ^IDATxSz0 `֦b·%'I`	h{.qEmT$FcY:JSs'|t=?<s僾8rAcG:r:&Ї֬i۰Z"֧Ϻ$w9ާeuh[0ꘀN\0VMzem4'|p]Tr|@
"x@h		m*DOiL)"JP-ZF<S|8h`S&\q`Th>rχjY>ՓۙN׬C$`3    IENDB`PNG

   IHDR   0   0   `	   sRGB,   	pHYs        PLTE   
wy   5tRNS $e{!3]x>?0|#5^zŜf%JT  IDATxVv0"XT
S'r,M4-@:]z}=t;%GxpPǑC|OJƓ*lL3	h(W@#IJ#7FUZ'	`@jӌxT.'sNҜS_]g7F
A9Er*
5?Ȕf3&LO4!"8F<!C# teO6B.;*PH(z`WO%
sc
Ǭ%ly?ዂ`~@ar4($pH㛸q<pyQn!Q8oQ9|[k:E@{1lCCHOp;SA@4b7FJp9>Ea=rոK@yih>^t(FO0}vcWj3.'Kk\ N:9    IENDB`PNG

   IHDR         a   IDATxcd@a9yӁL' 
?}?},zF5~*d 3Y^>; )\jVLkQ!n CķU	wc3dd<ѝ&͐fOZ})#Y@N* C+?[1ݐ  0+q`IFFFϰs-G_ 
w] x~6fܜl`	XK0oG3l>lA1ACm֠]pҭ_1p]jUq`vͤ`sN^zfsr<`vDj0' `eTјWXI`Whք$)w}k)2|wA2˴$]\
:.(I>b~|o~|}^=sjK'"3!ho|xwQd #3u    IENDB`PNG

   IHDR           szz  IDATxڽkHQtf6ԮT%؅newʢ>TԇՇ
Cݬ/],2"fD͊i9nswi]s9{߹=8-K%9$-HBzEz@*-5]1 -%qIWH	mH 8$H0'$i'sє\'qO@ZH%y%Is	(?DH <s^7bƦ#ݻ&Q+rrql*pp%!5%ZgBAq:] lw-($1j%.K6Ɋ×kf("U2OkGImSV7CCs VC@>eII>K6'Mb(`"?;
0l-vwBm=WHg l񥊵X4m0rA&:TccʖLԻ\.7!ͮL4W36:|}>g(2jr<OKbڬT[z8o#ӆEc+-8G0B+3ʝ_8aLJ3i@{PP*|GFjV'5WQҲHN쇲gu+#<[dFRH G.TʔaQ=!A̛^|Ɲ':w~a2Q+	 kNC{K{RԞ. \(%h6XyN[] ]P{ nqǩ,&	 UPsNǱl͂o/$HFY,72BGtz'n_u%f? y $/XM͡:g kyPgsky0[hokuΆ}σx $f
Dy; ~ AvL=;4DJ?ȶZK>;VE_ruc:Ъ    IENDB`PNG

   IHDR   0   0   W  IDATxZ}PTU?P?P%@a0t2Ig4qrg#sƑ)+SMBAC A`e]څ]vfsϻ{ϻoyH˷\A9O<r`r@A>tOg
#RaD2 @CNe U GNA
"[V nٗ9G *"Wܐ8@^ 'b`l#ɨ;@ da0 !B\q@ ^'Bmo7؀q5Z{9 ޖ6{' , p@DljO< HucݍV/{~uJ_b;F7tñ!rY7 9 6v [D^ؤ'sȷϽūl*̥:ol;v L=Fai!4jxn=`B?@$f(rt@Vɧ$rٹ+{W' D-@fSYj}ϯ0j_TD;Hf$2FƋ4"JV>8Hӟ`E#ym4ծdWIE9"FQ !lh2R*բvf h	1ApxMr^pVnW*<)gbf^~S<=~g͜睬t5J|$ 	Sf ps*RMw"[7fЄ]#l:C' ɎJ<Ę@;#c9t^۝Xwu%۹ kkغ<>YDa?,s܌Xq?JI	dwC%; &鋂=!i[Z<u7h@".Wϗ*Éa4>6e[)jq> 9'.<Oˊj3(;m%<8L#_F>͝b"𓿔ѥƏ<JpBK^[kԹ/*>sz]'2CN{Ck#K{[ |!#':_Q "wqC׷ieCfRVlpStEiγoϖ8L&,Ⱥ[7,C.W;1{TB	9W@cA%w{\<): $~.rRYU.24H 8#Y_)P\Rє z lF?Uĵ"7>A)?/70w \w `$:Cn&Dhhz@:?+U6;O/-k3Kʕ.BFťަzhX ) +E:jmQ2jH=
uJ፿jx@+aζzZnT2LNb^"q#>銉|3YcbZ,lzCgVAϛ][@Q,<aUPdl
I]pR 6-pIvks{w}2˶ʥ^GɀpI(	LHO KGmfF| !>>=Ϳ2C*    IENDB`This directory is copied as is into each new application. The `.plist` file is like a Mac config file for the app executable. It can contain settings for permissions, etc.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
    <true/>
    <key>com.apple.security.device.audio-input</key>
    <true/>
    <key>com.apple.security.device.microphone</key>
    <true/>
    <key>com.apple.security.device.camera</key>
    <true/>
    <key>com.apple.security.cs.disable-library-validation</key>
    <true/>
    <key>com.apple.security.cs.allow-dyld-environment-variables</key>
    <true/>
    <key>com.apple.security.cs.allow-jit</key>
    <true/>
    <key>com.apple.security.automation.apple-events</key>
    <true/>
  </dict>
</plist>
The MIT License (MIT)

Copyright (c) Denis Malinochkin

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
{
  "name": "@nodelib/fs.scandir",
  "version": "2.1.5",
  "description": "List files and directories inside the specified directory",
  "license": "MIT",
  "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.scandir",
  "engines": {
    "node": ">= 8"
  },
  "files": [
    "out/**",
    "!out/**/*.map",
    "!out/**/*.spec.*"
  ],
  "main": "out/index.js",
  "typings": "out/index.d.ts",
  "dependencies": {
    "@nodelib/fs.stat": "2.0.5",
    "run-parallel": "^1.1.9"
  },
  "devDependencies": {
    "@nodelib/fs.macchiato": "1.0.4",
    "@types/run-parallel": "^1.1.0"
  }
}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;
const NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.');
if (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) {
    throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);
}
const MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10);
const MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10);
const SUPPORTED_MAJOR_VERSION = 10;
const SUPPORTED_MINOR_VERSION = 10;
const IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION;
const IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION;
/**
 * IS `true` for Node.js 10.10 and greater.
 */
exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Settings = exports.scandirSync = exports.scandir = void 0;
const async = require("./providers/async");
const sync = require("./providers/sync");
const settings_1 = require("./settings");
exports.Settings = settings_1.default;
function scandir(path, optionsOrSettingsOrCallback, callback) {
    if (typeof optionsOrSettingsOrCallback === 'function') {
        async.read(path, getSettings(), optionsOrSettingsOrCallback);
        return;
    }
    async.read(path, getSettings(optionsOrSettingsOrCallback), callback);
}
exports.scandir = scandir;
function scandirSync(path, optionsOrSettings) {
    const settings = getSettings(optionsOrSettings);
    return sync.read(path, settings);
}
exports.scandirSync = scandirSync;
function getSettings(settingsOrOptions = {}) {
    if (settingsOrOptions instanceof settings_1.default) {
        return settingsOrOptions;
    }
    return new settings_1.default(settingsOrOptions);
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path");
const fsStat = require("@nodelib/fs.stat");
const fs = require("./adapters/fs");
class Settings {
    constructor(_options = {}) {
        this._options = _options;
        this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);
        this.fs = fs.createFileSystemAdapter(this._options.fs);
        this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);
        this.stats = this._getValue(this._options.stats, false);
        this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);
        this.fsStatSettings = new fsStat.Settings({
            followSymbolicLink: this.followSymbolicLinks,
            fs: this.fs,
            throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink
        });
    }
    _getValue(option, value) {
        return option !== null && option !== void 0 ? option : value;
    }
}
exports.default = Settings;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createDirentFromStats = void 0;
class DirentFromStats {
    constructor(name, stats) {
        this.name = name;
        this.isBlockDevice = stats.isBlockDevice.bind(stats);
        this.isCharacterDevice = stats.isCharacterDevice.bind(stats);
        this.isDirectory = stats.isDirectory.bind(stats);
        this.isFIFO = stats.isFIFO.bind(stats);
        this.isFile = stats.isFile.bind(stats);
        this.isSocket = stats.isSocket.bind(stats);
        this.isSymbolicLink = stats.isSymbolicLink.bind(stats);
    }
}
function createDirentFromStats(name, stats) {
    return new DirentFromStats(name, stats);
}
exports.createDirentFromStats = createDirentFromStats;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.fs = void 0;
const fs = require("./fs");
exports.fs = fs;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.readdir = exports.readdirWithFileTypes = exports.read = void 0;
const fsStat = require("@nodelib/fs.stat");
const rpl = require("run-parallel");
const constants_1 = require("../constants");
const utils = require("../utils");
const common = require("./common");
function read(directory, settings, callback) {
    if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {
        readdirWithFileTypes(directory, settings, callback);
        return;
    }
    readdir(directory, settings, callback);
}
exports.read = read;
function readdirWithFileTypes(directory, settings, callback) {
    settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => {
        if (readdirError !== null) {
            callFailureCallback(callback, readdirError);
            return;
        }
        const entries = dirents.map((dirent) => ({
            dirent,
            name: dirent.name,
            path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)
        }));
        if (!settings.followSymbolicLinks) {
            callSuccessCallback(callback, entries);
            return;
        }
        const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings));
        rpl(tasks, (rplError, rplEntries) => {
            if (rplError !== null) {
                callFailureCallback(callback, rplError);
                return;
            }
            callSuccessCallback(callback, rplEntries);
        });
    });
}
exports.readdirWithFileTypes = readdirWithFileTypes;
function makeRplTaskEntry(entry, settings) {
    return (done) => {
        if (!entry.dirent.isSymbolicLink()) {
            done(null, entry);
            return;
        }
        settings.fs.stat(entry.path, (statError, stats) => {
            if (statError !== null) {
                if (settings.throwErrorOnBrokenSymbolicLink) {
                    done(statError);
                    return;
                }
                done(null, entry);
                return;
            }
            entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);
            done(null, entry);
        });
    };
}
function readdir(directory, settings, callback) {
    settings.fs.readdir(directory, (readdirError, names) => {
        if (readdirError !== null) {
            callFailureCallback(callback, readdirError);
            return;
        }
        const tasks = names.map((name) => {
            const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);
            return (done) => {
                fsStat.stat(path, settings.fsStatSettings, (error, stats) => {
                    if (error !== null) {
                        done(error);
                        return;
                    }
                    const entry = {
                        name,
                        path,
                        dirent: utils.fs.createDirentFromStats(name, stats)
                    };
                    if (settings.stats) {
                        entry.stats = stats;
                    }
                    done(null, entry);
                });
            };
        });
        rpl(tasks, (rplError, entries) => {
            if (rplError !== null) {
                callFailureCallback(callback, rplError);
                return;
            }
            callSuccessCallback(callback, entries);
        });
    });
}
exports.readdir = readdir;
function callFailureCallback(callback, error) {
    callback(error);
}
function callSuccessCallback(callback, result) {
    callback(null, result);
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.joinPathSegments = void 0;
function joinPathSegments(a, b, separator) {
    /**
     * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).
     */
    if (a.endsWith(separator)) {
        return a + b;
    }
    return a + separator + b;
}
exports.joinPathSegments = joinPathSegments;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.readdir = exports.readdirWithFileTypes = exports.read = void 0;
const fsStat = require("@nodelib/fs.stat");
const constants_1 = require("../constants");
const utils = require("../utils");
const common = require("./common");
function read(directory, settings) {
    if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {
        return readdirWithFileTypes(directory, settings);
    }
    return readdir(directory, settings);
}
exports.read = read;
function readdirWithFileTypes(directory, settings) {
    const dirents = settings.fs.readdirSync(directory, { withFileTypes: true });
    return dirents.map((dirent) => {
        const entry = {
            dirent,
            name: dirent.name,
            path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)
        };
        if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) {
            try {
                const stats = settings.fs.statSync(entry.path);
                entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);
            }
            catch (error) {
                if (settings.throwErrorOnBrokenSymbolicLink) {
                    throw error;
                }
            }
        }
        return entry;
    });
}
exports.readdirWithFileTypes = readdirWithFileTypes;
function readdir(directory, settings) {
    const names = settings.fs.readdirSync(directory);
    return names.map((name) => {
        const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);
        const stats = fsStat.statSync(entryPath, settings.fsStatSettings);
        const entry = {
            name,
            path: entryPath,
            dirent: utils.fs.createDirentFromStats(name, stats)
        };
        if (settings.stats) {
            entry.stats = stats;
        }
        return entry;
    });
}
exports.readdir = readdir;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;
const fs = require("fs");
exports.FILE_SYSTEM_ADAPTER = {
    lstat: fs.lstat,
    stat: fs.stat,
    lstatSync: fs.lstatSync,
    statSync: fs.statSync,
    readdir: fs.readdir,
    readdirSync: fs.readdirSync
};
function createFileSystemAdapter(fsMethods) {
    if (fsMethods === undefined) {
        return exports.FILE_SYSTEM_ADAPTER;
    }
    return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);
}
exports.createFileSystemAdapter = createFileSystemAdapter;
The MIT License (MIT)

Copyright (c) Denis Malinochkin

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
{
  "name": "@nodelib/fs.stat",
  "version": "2.0.5",
  "description": "Get the status of a file with some features",
  "license": "MIT",
  "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.stat",
  "engines": {
    "node": ">= 8"
  },
  "files": [
    "out/**",
    "!out/**/*.map",
    "!out/**/*.spec.*"
  ],
  "main": "out/index.js",
  "typings": "out/index.d.ts",
  "devDependencies": {
    "@nodelib/fs.macchiato": "1.0.4"
  }
}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.statSync = exports.stat = exports.Settings = void 0;
const async = require("./providers/async");
const sync = require("./providers/sync");
const settings_1 = require("./settings");
exports.Settings = settings_1.default;
function stat(path, optionsOrSettingsOrCallback, callback) {
    if (typeof optionsOrSettingsOrCallback === 'function') {
        async.read(path, getSettings(), optionsOrSettingsOrCallback);
        return;
    }
    async.read(path, getSettings(optionsOrSettingsOrCallback), callback);
}
exports.stat = stat;
function statSync(path, optionsOrSettings) {
    const settings = getSettings(optionsOrSettings);
    return sync.read(path, settings);
}
exports.statSync = statSync;
function getSettings(settingsOrOptions = {}) {
    if (settingsOrOptions instanceof settings_1.default) {
        return settingsOrOptions;
    }
    return new settings_1.default(settingsOrOptions);
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("./adapters/fs");
class Settings {
    constructor(_options = {}) {
        this._options = _options;
        this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true);
        this.fs = fs.createFileSystemAdapter(this._options.fs);
        this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false);
        this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);
    }
    _getValue(option, value) {
        return option !== null && option !== void 0 ? option : value;
    }
}
exports.default = Settings;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.read = void 0;
function read(path, settings, callback) {
    settings.fs.lstat(path, (lstatError, lstat) => {
        if (lstatError !== null) {
            callFailureCallback(callback, lstatError);
            return;
        }
        if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {
            callSuccessCallback(callback, lstat);
            return;
        }
        settings.fs.stat(path, (statError, stat) => {
            if (statError !== null) {
                if (settings.throwErrorOnBrokenSymbolicLink) {
                    callFailureCallback(callback, statError);
                    return;
                }
                callSuccessCallback(callback, lstat);
                return;
            }
            if (settings.markSymbolicLink) {
                stat.isSymbolicLink = () => true;
            }
            callSuccessCallback(callback, stat);
        });
    });
}
exports.read = read;
function callFailureCallback(callback, error) {
    callback(error);
}
function callSuccessCallback(callback, result) {
    callback(null, result);
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.read = void 0;
function read(path, settings) {
    const lstat = settings.fs.lstatSync(path);
    if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {
        return lstat;
    }
    try {
        const stat = settings.fs.statSync(path);
        if (settings.markSymbolicLink) {
            stat.isSymbolicLink = () => true;
        }
        return stat;
    }
    catch (error) {
        if (!settings.throwErrorOnBrokenSymbolicLink) {
            return lstat;
        }
        throw error;
    }
}
exports.read = read;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;
const fs = require("fs");
exports.FILE_SYSTEM_ADAPTER = {
    lstat: fs.lstat,
    stat: fs.stat,
    lstatSync: fs.lstatSync,
    statSync: fs.statSync
};
function createFileSystemAdapter(fsMethods) {
    if (fsMethods === undefined) {
        return exports.FILE_SYSTEM_ADAPTER;
    }
    return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);
}
exports.createFileSystemAdapter = createFileSystemAdapter;
The MIT License (MIT)

Copyright (c) Denis Malinochkin

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
{
  "name": "@nodelib/fs.walk",
  "version": "1.2.8",
  "description": "A library for efficiently walking a directory recursively",
  "license": "MIT",
  "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.walk",
  "engines": {
    "node": ">= 8"
  },
  "files": [
    "out/**",
    "!out/**/*.map",
    "!out/**/*.spec.*",
    "!out/**/tests/**"
  ],
  "main": "out/index.js",
  "typings": "out/index.d.ts",
  "dependencies": {
    "@nodelib/fs.scandir": "2.1.5",
    "fastq": "^1.6.0"
  },
  "devDependencies": {
    "@nodelib/fs.macchiato": "1.0.4"
  }
}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0;
const async_1 = require("./providers/async");
const stream_1 = require("./providers/stream");
const sync_1 = require("./providers/sync");
const settings_1 = require("./settings");
exports.Settings = settings_1.default;
function walk(directory, optionsOrSettingsOrCallback, callback) {
    if (typeof optionsOrSettingsOrCallback === 'function') {
        new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback);
        return;
    }
    new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback);
}
exports.walk = walk;
function walkSync(directory, optionsOrSettings) {
    const settings = getSettings(optionsOrSettings);
    const provider = new sync_1.default(directory, settings);
    return provider.read();
}
exports.walkSync = walkSync;
function walkStream(directory, optionsOrSettings) {
    const settings = getSettings(optionsOrSettings);
    const provider = new stream_1.default(directory, settings);
    return provider.read();
}
exports.walkStream = walkStream;
function getSettings(settingsOrOptions = {}) {
    if (settingsOrOptions instanceof settings_1.default) {
        return settingsOrOptions;
    }
    return new settings_1.default(settingsOrOptions);
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path");
const fsScandir = require("@nodelib/fs.scandir");
class Settings {
    constructor(_options = {}) {
        this._options = _options;
        this.basePath = this._getValue(this._options.basePath, undefined);
        this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY);
        this.deepFilter = this._getValue(this._options.deepFilter, null);
        this.entryFilter = this._getValue(this._options.entryFilter, null);
        this.errorFilter = this._getValue(this._options.errorFilter, null);
        this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);
        this.fsScandirSettings = new fsScandir.Settings({
            followSymbolicLinks: this._options.followSymbolicLinks,
            fs: this._options.fs,
            pathSegmentSeparator: this._options.pathSegmentSeparator,
            stats: this._options.stats,
            throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink
        });
    }
    _getValue(option, value) {
        return option !== null && option !== void 0 ? option : value;
    }
}
exports.default = Settings;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const events_1 = require("events");
const fsScandir = require("@nodelib/fs.scandir");
const fastq = require("fastq");
const common = require("./common");
const reader_1 = require("./reader");
class AsyncReader extends reader_1.default {
    constructor(_root, _settings) {
        super(_root, _settings);
        this._settings = _settings;
        this._scandir = fsScandir.scandir;
        this._emitter = new events_1.EventEmitter();
        this._queue = fastq(this._worker.bind(this), this._settings.concurrency);
        this._isFatalError = false;
        this._isDestroyed = false;
        this._queue.drain = () => {
            if (!this._isFatalError) {
                this._emitter.emit('end');
            }
        };
    }
    read() {
        this._isFatalError = false;
        this._isDestroyed = false;
        setImmediate(() => {
            this._pushToQueue(this._root, this._settings.basePath);
        });
        return this._emitter;
    }
    get isDestroyed() {
        return this._isDestroyed;
    }
    destroy() {
        if (this._isDestroyed) {
            throw new Error('The reader is already destroyed');
        }
        this._isDestroyed = true;
        this._queue.killAndDrain();
    }
    onEntry(callback) {
        this._emitter.on('entry', callback);
    }
    onError(callback) {
        this._emitter.once('error', callback);
    }
    onEnd(callback) {
        this._emitter.once('end', callback);
    }
    _pushToQueue(directory, base) {
        const queueItem = { directory, base };
        this._queue.push(queueItem, (error) => {
            if (error !== null) {
                this._handleError(error);
            }
        });
    }
    _worker(item, done) {
        this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => {
            if (error !== null) {
                done(error, undefined);
                return;
            }
            for (const entry of entries) {
                this._handleEntry(entry, item.base);
            }
            done(null, undefined);
        });
    }
    _handleError(error) {
        if (this._isDestroyed || !common.isFatalError(this._settings, error)) {
            return;
        }
        this._isFatalError = true;
        this._isDestroyed = true;
        this._emitter.emit('error', error);
    }
    _handleEntry(entry, base) {
        if (this._isDestroyed || this._isFatalError) {
            return;
        }
        const fullpath = entry.path;
        if (base !== undefined) {
            entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);
        }
        if (common.isAppliedFilter(this._settings.entryFilter, entry)) {
            this._emitEntry(entry);
        }
        if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {
            this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);
        }
    }
    _emitEntry(entry) {
        this._emitter.emit('entry', entry);
    }
}
exports.default = AsyncReader;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0;
function isFatalError(settings, error) {
    if (settings.errorFilter === null) {
        return true;
    }
    return !settings.errorFilter(error);
}
exports.isFatalError = isFatalError;
function isAppliedFilter(filter, value) {
    return filter === null || filter(value);
}
exports.isAppliedFilter = isAppliedFilter;
function replacePathSegmentSeparator(filepath, separator) {
    return filepath.split(/[/\\]/).join(separator);
}
exports.replacePathSegmentSeparator = replacePathSegmentSeparator;
function joinPathSegments(a, b, separator) {
    if (a === '') {
        return b;
    }
    /**
     * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).
     */
    if (a.endsWith(separator)) {
        return a + b;
    }
    return a + separator + b;
}
exports.joinPathSegments = joinPathSegments;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const common = require("./common");
class Reader {
    constructor(_root, _settings) {
        this._root = _root;
        this._settings = _settings;
        this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator);
    }
}
exports.default = Reader;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const fsScandir = require("@nodelib/fs.scandir");
const common = require("./common");
const reader_1 = require("./reader");
class SyncReader extends reader_1.default {
    constructor() {
        super(...arguments);
        this._scandir = fsScandir.scandirSync;
        this._storage = [];
        this._queue = new Set();
    }
    read() {
        this._pushToQueue(this._root, this._settings.basePath);
        this._handleQueue();
        return this._storage;
    }
    _pushToQueue(directory, base) {
        this._queue.add({ directory, base });
    }
    _handleQueue() {
        for (const item of this._queue.values()) {
            this._handleDirectory(item.directory, item.base);
        }
    }
    _handleDirectory(directory, base) {
        try {
            const entries = this._scandir(directory, this._settings.fsScandirSettings);
            for (const entry of entries) {
                this._handleEntry(entry, base);
            }
        }
        catch (error) {
            this._handleError(error);
        }
    }
    _handleError(error) {
        if (!common.isFatalError(this._settings, error)) {
            return;
        }
        throw error;
    }
    _handleEntry(entry, base) {
        const fullpath = entry.path;
        if (base !== undefined) {
            entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);
        }
        if (common.isAppliedFilter(this._settings.entryFilter, entry)) {
            this._pushToStorage(entry);
        }
        if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {
            this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);
        }
    }
    _pushToStorage(entry) {
        this._storage.push(entry);
    }
}
exports.default = SyncReader;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const async_1 = require("../readers/async");
class AsyncProvider {
    constructor(_root, _settings) {
        this._root = _root;
        this._settings = _settings;
        this._reader = new async_1.default(this._root, this._settings);
        this._storage = [];
    }
    read(callback) {
        this._reader.onError((error) => {
            callFailureCallback(callback, error);
        });
        this._reader.onEntry((entry) => {
            this._storage.push(entry);
        });
        this._reader.onEnd(() => {
            callSuccessCallback(callback, this._storage);
        });
        this._reader.read();
    }
}
exports.default = AsyncProvider;
function callFailureCallback(callback, error) {
    callback(error);
}
function callSuccessCallback(callback, entries) {
    callback(null, entries);
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SyncProvider = exports.StreamProvider = exports.AsyncProvider = void 0;
const async_1 = require("./async");
exports.AsyncProvider = async_1.default;
const stream_1 = require("./stream");
exports.StreamProvider = stream_1.default;
const sync_1 = require("./sync");
exports.SyncProvider = sync_1.default;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const stream_1 = require("stream");
const async_1 = require("../readers/async");
class StreamProvider {
    constructor(_root, _settings) {
        this._root = _root;
        this._settings = _settings;
        this._reader = new async_1.default(this._root, this._settings);
        this._stream = new stream_1.Readable({
            objectMode: true,
            read: () => { },
            destroy: () => {
                if (!this._reader.isDestroyed) {
                    this._reader.destroy();
                }
            }
        });
    }
    read() {
        this._reader.onError((error) => {
            this._stream.emit('error', error);
        });
        this._reader.onEntry((entry) => {
            this._stream.push(entry);
        });
        this._reader.onEnd(() => {
            this._stream.push(null);
        });
        this._reader.read();
        return this._stream;
    }
}
exports.default = StreamProvider;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const sync_1 = require("../readers/sync");
class SyncProvider {
    constructor(_root, _settings) {
        this._root = _root;
        this._settings = _settings;
        this._reader = new sync_1.default(this._root, this._settings);
    }
    read() {
        return this._reader.read();
    }
}
exports.default = SyncProvider;
{
  "name": "@todesktop/plugin-ipc",
  "version": "0.11.0",
  "description": "",
  "main": "dist/index.js",
  "types": "index.d.ts",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/ToDesktop/todesktop-ipc.git"
  },
  "author": "",
  "license": "ISC",
  "homepage": "https://github.com/ToDesktop/todesktop-ipc#readme",
  "devDependencies": {
    "@types/uuid": "^8.3.4",
    "electron": "^33.2.1",
    "typescript": "^5.7.2"
  },
  "dependencies": {
    "uuid": "^8.3.2"
  },
  "todesktop": {
    "namespace": "ipc",
    "version": 2,
    "main": "./dist/main.js",
    "preload": "./dist/preload.js"
  }
}{
  "extends": "../../tsconfig.json",
  "compilerOptions": {
    "outDir": "./dist",
    "rootDir": "./src",
    "module": "commonjs"
  },
  "exclude": ["node_modules", "dist"]
}
export const config = {
  namespace: "ipc",
  version: 2,
  main: "./main.js",
  preload: "./preload.js",
};

export const channels = {
  identify: `${config.namespace}:identify`,
  message: `${config.namespace}:message`,
};
import {
  ipcMain,
  BrowserWindow,
  WebContentsView,
  View,
  BaseWindow,
} from "electron";
import { IpcContext, IpcEvent } from "./types";
import { channels } from "./index";

ipcMain.handle(channels.identify, (e) => getWindowContext(e.sender.id));

ipcMain.on(channels.message, (e, subject, data) => {
  const targets = broadcast(subject, data, getWindowContext(e.sender.id));
  console.log("[event broadcasted]", subject, data, targets);
});

const getWindowContext = (viewId: number) => {
  const windows = BaseWindow.getAllWindows();
  const foundWindow = windows.find((window) => {
    const matchedView = isBrowserWindow(window)
      ? window.webContents.id === viewId
      : false;

    // to be deleted by next major upgrade
    const matchedLegacyView = isBrowserWindow(window)
      ? window.getBrowserViews().some((view) => view.webContents.id === viewId)
      : false;

    const matchedChildView = window.contentView.children.some((view) => {
      return isWebContentsView(view) ? view.webContents.id === viewId : false;
    });

    return matchedView || matchedLegacyView || matchedChildView;
  });

  return { windowId: foundWindow?.id || -1, viewId };
};

function broadcast(
  subject: IpcEvent["subject"],
  data: IpcEvent["data"],
  context: IpcContext
) {
  const windows = BaseWindow.getAllWindows();

  return windows.map((window) => {
    const sentToIds: number[] = [];

    if (isBrowserWindow(window)) {
      window.webContents.send(subject, data, context);
      sentToIds.push(window.webContents.id);

      // to be deleted by next major upgrade
      for (const view of window.getBrowserViews()) {
        view.webContents.send(subject, data, context);
        sentToIds.push(view.webContents.id);
      }
    }

    for (const view of window.contentView.children) {
      if (!isWebContentsView(view)) continue;
      if (sentToIds.includes(view.webContents.id)) continue;

      view.webContents.send(subject, data, context);
      sentToIds.push(view.webContents.id);
    }

    return { windowId: window.id, viewsIds: sentToIds };
  });
}

const isBrowserWindow = (
  view: BrowserWindow | BaseWindow
): view is BrowserWindow => {
  return view instanceof BrowserWindow;
};

const isWebContentsView = (
  view: WebContentsView | View
): view is WebContentsView => {
  return view instanceof WebContentsView;
};
import { ipcRenderer, IpcRendererEvent } from "electron";
import { v4 as uuidv4 } from "uuid";
import { channels } from "./index";
import { Identify, Publish, Subscribe, Unsubscribe } from "./types";

const activeListeners = new Map();

export const identify: Identify = async (): ReturnType<Identify> =>
  await ipcRenderer.invoke(channels.identify);

export const publish: Publish = (subject, data) => {
  console.log("[event published]", subject, data);
  ipcRenderer.send(channels.message, subject, data);
};

export const subscribe: Subscribe = (subject, onMessage) => {
  const subscriberId = uuidv4();
  const handler = (
    e: IpcRendererEvent,
    data: Parameters<typeof onMessage>[0],
    context: Parameters<typeof onMessage>[1]
  ) => {
    console.log(`[event received]`, subject, data);
    return onMessage(data, context);
  };

  ipcRenderer.on(subject, handler);
  activeListeners.set(subscriberId, handler);

  console.log(`[${subscriberId} subscribed]`, subject);
  return () => unsubscribe(subscriberId, subject);
};

const unsubscribe: Unsubscribe = (subscriberId, subject) => {
  const handler = activeListeners.get(subscriberId);

  ipcRenderer.removeListener(subject, handler);
  activeListeners.delete(subscriberId);
  console.log(`[${subscriberId} unsubscribed]`, subject);
};
export interface IpcEvent {
  subject: string;
  data: unknown;
}

export interface IpcContext {
  windowId: number;
  viewId: number;
}

export type Identify = () => Promise<{ viewId: number; windowId: number }>;

export type Publish = <T extends IpcEvent>(
  subject: T["subject"],
  data: T["data"]
) => void;

export type Subscribe = <T extends IpcEvent>(
  subject: T["subject"],
  onMessage: (data: T["data"], context: IpcContext) => void
) => () => void;

export type Unsubscribe = <T extends IpcEvent>(
  subscriberId: string,
  subject: T["subject"]
) => void;

declare global {
  interface Window {
    todesktop: {
      ipc: {
        identify: Identify;
        publish: Publish;
        subscribe: Subscribe;
        unsubscribe: Unsubscribe;
      };
    };
  }
}
'use strict';

const config = {
    namespace: "ipc",
    version: 2,
    main: "./main.js",
    preload: "./preload.js",
};
const channels = {
    identify: `${config.namespace}:identify`,
    message: `${config.namespace}:message`,
};

exports.channels = channels;
exports.config = config;
'use strict';

var electron = require('electron');

const config = {
    namespace: "ipc",
    version: 2,
    main: "./main.js",
    preload: "./preload.js",
};
const channels = {
    identify: `${config.namespace}:identify`,
    message: `${config.namespace}:message`,
};

electron.ipcMain.handle(channels.identify, (e) => getWindowContext(e.sender.id));
electron.ipcMain.on(channels.message, (e, subject, data) => {
    const targets = broadcast(subject, data, getWindowContext(e.sender.id));
    console.log("[event broadcasted]", subject, data, targets);
});
const getWindowContext = (viewId) => {
    const windows = electron.BaseWindow.getAllWindows();
    const foundWindow = windows.find((window) => {
        const matchedView = isBrowserWindow(window)
            ? window.webContents.id === viewId
            : false;
        // to be deleted by next major upgrade
        const matchedLegacyView = isBrowserWindow(window)
            ? window.getBrowserViews().some((view) => view.webContents.id === viewId)
            : false;
        const matchedChildView = window.contentView.children.some((view) => {
            return isWebContentsView(view) ? view.webContents.id === viewId : false;
        });
        return matchedView || matchedLegacyView || matchedChildView;
    });
    return { windowId: (foundWindow === null || foundWindow === void 0 ? void 0 : foundWindow.id) || -1, viewId };
};
function broadcast(subject, data, context) {
    const windows = electron.BaseWindow.getAllWindows();
    return windows.map((window) => {
        const sentToIds = [];
        if (isBrowserWindow(window)) {
            window.webContents.send(subject, data, context);
            sentToIds.push(window.webContents.id);
            // to be deleted by next major upgrade
            for (const view of window.getBrowserViews()) {
                view.webContents.send(subject, data, context);
                sentToIds.push(view.webContents.id);
            }
        }
        for (const view of window.contentView.children) {
            if (!isWebContentsView(view))
                continue;
            if (sentToIds.includes(view.webContents.id))
                continue;
            view.webContents.send(subject, data, context);
            sentToIds.push(view.webContents.id);
        }
        return { windowId: window.id, viewsIds: sentToIds };
    });
}
const isBrowserWindow = (view) => {
    return view instanceof electron.BrowserWindow;
};
const isWebContentsView = (view) => {
    return view instanceof electron.WebContentsView;
};
'use strict';

var electron = require('electron');

/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise */


function __awaiter(thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, [])).next());
    });
}

// Unique ID creation requires a high quality random # generator. In the browser we therefore
// require the crypto API and do not support built-in fallback to lower quality random number
// generators (like Math.random()).
var getRandomValues;
var rnds8 = new Uint8Array(16);
function rng() {
  // lazy load so that environments that need to polyfill have a chance to do so
  if (!getRandomValues) {
    // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. Also,
    // find the complete implementation of crypto (msCrypto) on IE11.
    getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);

    if (!getRandomValues) {
      throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
    }
  }

  return getRandomValues(rnds8);
}

var REGEX = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;

function validate(uuid) {
  return typeof uuid === 'string' && REGEX.test(uuid);
}

/**
 * Convert array of 16 byte values to UUID string format of the form:
 * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
 */

var byteToHex = [];

for (var i = 0; i < 256; ++i) {
  byteToHex.push((i + 0x100).toString(16).substr(1));
}

function stringify(arr) {
  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  // Note: Be careful editing this code!  It's been tuned for performance
  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
  var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID.  If this throws, it's likely due to one
  // of the following:
  // - One or more input array values don't map to a hex octet (leading to
  // "undefined" in the uuid)
  // - Invalid input values for the RFC `version` or `variant` fields

  if (!validate(uuid)) {
    throw TypeError('Stringified UUID is invalid');
  }

  return uuid;
}

function v4(options, buf, offset) {
  options = options || {};
  var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`

  rnds[6] = rnds[6] & 0x0f | 0x40;
  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided

  return stringify(rnds);
}

const config = {
    namespace: "ipc",
    version: 2,
    main: "./main.js",
    preload: "./preload.js",
};
const channels = {
    identify: `${config.namespace}:identify`,
    message: `${config.namespace}:message`,
};

const activeListeners = new Map();
const identify = () => __awaiter(void 0, void 0, void 0, function* () { return yield electron.ipcRenderer.invoke(channels.identify); });
const publish = (subject, data) => {
    console.log("[event published]", subject, data);
    electron.ipcRenderer.send(channels.message, subject, data);
};
const subscribe = (subject, onMessage) => {
    const subscriberId = v4();
    const handler = (e, data, context) => {
        console.log(`[event received]`, subject, data);
        return onMessage(data, context);
    };
    electron.ipcRenderer.on(subject, handler);
    activeListeners.set(subscriberId, handler);
    console.log(`[${subscriberId} subscribed]`, subject);
    return () => unsubscribe(subscriberId, subject);
};
const unsubscribe = (subscriberId, subject) => {
    const handler = activeListeners.get(subscriberId);
    electron.ipcRenderer.removeListener(subject, handler);
    activeListeners.delete(subscriberId);
    console.log(`[${subscriberId} unsubscribed]`, subject);
};

exports.identify = identify;
exports.publish = publish;
exports.subscribe = subscribe;
MIT License

Copyright (c) 2020 ToDesktop

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
{
  "private": false,
  "publishConfig": {
    "access": "public"
  },
  "name": "@todesktop/runtime",
  "version": "2.1.2",
  "license": "MIT",
  "author": "ToDesktop <hi@todesktop.com> (https://www.todesktop.com/)",
  "homepage": "https://todesktop.com/electron",
  "main": "dist/index.js",
  "files": [
    "LICENSE",
    "dist",
    "static",
    "README.md"
  ],
  "types": "./dist/index.d.ts",
  "dependencies": {
    "del": "^6.1.1",
    "electron-updater": "^6.3.9",
    "eventemitter2": "^6.4.9",
    "execa": "^5.0.0",
    "lodash.once": "^4.1.1",
    "semver": "^7.6.3"
  },
  "devDependencies": {
    "@ava/babel": "^2.0.0",
    "@ava/typescript": "^5.0.0",
    "@babel/core": "^7.24.6",
    "@babel/plugin-transform-runtime": "^7.24.6",
    "@babel/preset-env": "^7.24.6",
    "@babel/register": "^7.24.6",
    "@types/lodash.once": "^4.1.9",
    "@types/node": "^22.7.9",
    "@types/semver": "^7.5.8",
    "@typescript-eslint/eslint-plugin": "^7.10.0",
    "@typescript-eslint/parser": "^7.10.0",
    "ava": "^5.3.1",
    "builder-util-runtime": "^8.7.3",
    "electron": "^12.0.7",
    "eslint": "^8.57.0",
    "eslint-config-prettier": "^6.11.0",
    "eslint-config-standard": "^14.1.1",
    "eslint-plugin-import": "^2.22.0",
    "eslint-plugin-node": "^11.1.0",
    "eslint-plugin-prettier": "^3.1.3",
    "eslint-plugin-promise": "^4.2.1",
    "eslint-plugin-standard": "^4.0.1",
    "husky": "^4.2.5",
    "lint-staged": "^10.4.0",
    "np": "^10.0.5",
    "prettier": "^2.0.5",
    "promise-polyfill": "^8.1.3",
    "proxyquire": "^2.1.3",
    "sinon": "^9.0.3",
    "typescript": "^5.4.5",
    "winston": "^3.2.1"
  },
  "lint-staged": {
    "**/*.js": [
      "eslint . --ext .js --fix"
    ],
    "**/*.ts": [
      "eslint . --ext .ts,.tsx --fix"
    ]
  },
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged && tsc --noEmit --skipLibCheck -p ."
    }
  }
}Static assets which will be published.
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class Logger {
    // Set to true to enable extra logging
    // private _shouldDebugOnCI: false;
    constructor(customLogger) {
        this._customLogger = customLogger;
        // WARNING: Leave this commented because it breaks Webpack's static analysis
        // this._diskLogger = this._initializeDiskLogger();
    }
    debug(...args) {
        this._log("debug", ...args);
    }
    error(...args) {
        this._log("error", ...args);
    }
    info(...args) {
        this._log("info", ...args);
    }
    warn(...args) {
        this._log("warn", ...args);
    }
    /*
    // WARNING: Leave this commented because it breaks Webpack's static analysis
  
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    private _initializeDiskLogger(): any {
      // Needs to be any because winston is only imported in dev/test
      // eslint-disable-next-line @typescript-eslint/no-var-requires
      const winston = require("winston");
  
      const baseTransports = [
        // - Write all logs with level `error` and below to `error.log`
        // - Write all logs with level `info` and below to `combined.log`
        new winston.transports.File({ filename: "error.log", level: "error" }),
        new winston.transports.File({ filename: "combined.log" }),
      ];
  
      const extraTransports = [];
  
      if (process.env.CI && this._shouldDebugOnCI) {
        extraTransports.push(
          new winston.transports.Console({ format: winston.format.simple() })
        );
      }
  
      return winston.createLogger({
        level: "info",
        format: winston.format.json(),
        transports: [...baseTransports, ...extraTransports],
      });
    }
    */
    _log(level, ...args) {
        const adjustedArguments = ["@todesktop/runtime:", ...args];
        if (process.env.DEBUG && process.env.DEBUG.includes("@todesktop/runtime")) {
            console[level](...adjustedArguments);
        }
        if (this._diskLogger) {
            this._diskLogger[level](...adjustedArguments);
        }
        if (this._customLogger && this._customLogger[level]) {
            this._customLogger[level](...adjustedArguments);
        }
    }
}
exports.default = Logger;
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var __rest = (this && this.__rest) || function (s, e) {
    var t = {};
    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
        t[p] = s[p];
    if (s != null && typeof Object.getOwnPropertySymbols === "function")
        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
                t[p[i]] = s[p[i]];
        }
    return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
const electron_1 = require("electron");
/**
 * A proxy to a real Electron API.
 * This class could be replaced by a mock for unit testing
 */
class ElectronApi {
    getAppName() {
        return (electron_1.app === null || electron_1.app === void 0 ? void 0 : electron_1.app.name) || "this application";
    }
    isAppInForeground() {
        return Boolean(electron_1.BrowserWindow.getFocusedWindow());
    }
    showMessageBox(options) {
        return __awaiter(this, void 0, void 0, function* () {
            return electron_1.dialog.showMessageBox(options);
        });
    }
    showNotification(options) {
        const notification = new electron_1.Notification(options);
        notification.show();
        return notification;
    }
}
class Notifier {
    constructor({ autoUpdater, electronApi = new ElectronApi(), updateReadyAction, }) {
        this._lastUpdate = { isProcessing: false, version: "" };
        this._onNotifyAfterUpdateDownloaded = this._onNotifyAfterUpdateDownloaded.bind(this);
        this._autoUpdater = autoUpdater;
        this._electronApi = electronApi;
        this._updateReadyAction = Object.assign({ showInstallAndRestartPrompt: "never", showNotification: "always" }, updateReadyAction);
        if (typeof (autoUpdater === null || autoUpdater === void 0 ? void 0 : autoUpdater.on) !== "function") {
            throw new Error("Invalid autoUpdater instance");
        }
        autoUpdater.on("notify-after-update-downloaded", this._onNotifyAfterUpdateDownloaded);
    }
    _onNotifyAfterUpdateDownloaded(payload) {
        return __awaiter(this, void 0, void 0, function* () {
            if (payload.disableUpdateReadyAction || !payload.updateInfo) {
                return;
            }
            if (this._lastUpdate.isProcessing ||
                this._lastUpdate.version === payload.updateInfo.version) {
                return;
            }
            this._lastUpdate = {
                isProcessing: true,
                version: payload.updateInfo.version,
            };
            try {
                yield this._showNotification(payload);
                yield this._showInstallAndRestartPrompt(payload);
                this._lastUpdate.isProcessing = false;
            }
            catch (_a) {
                this._lastUpdate.isProcessing = false;
            }
        });
    }
    _showInstallAndRestartPrompt(payload) {
        return __awaiter(this, void 0, void 0, function* () {
            const mode = this._updateReadyAction.showInstallAndRestartPrompt;
            const appName = this._electronApi.getAppName();
            if (mode === "never") {
                return;
            }
            const appIsInForeground = this._electronApi.isAppInForeground();
            if (mode === "whenInForeground" && !appIsInForeground) {
                return;
            }
            const prompt = typeof mode === "function"
                ? yield mode(Object.assign(Object.assign({}, payload), { appIsInForeground }))
                : undefined;
            if (typeof prompt === "function") {
                yield prompt({
                    showInstallAndRestartPrompt: (...args) => this._electronApi.showMessageBox(...args),
                    restartAndInstall: (...args) => this._autoUpdater.restartAndInstall(...args),
                });
            }
            else if (prompt) {
                const { installOnNextLaunchButton, restartAndInstallButton } = prompt, props = __rest(prompt, ["installOnNextLaunchButton", "restartAndInstallButton"]);
                const { response } = yield this._electronApi.showMessageBox(Object.assign(Object.assign({}, props), { buttons: [installOnNextLaunchButton, restartAndInstallButton] }));
                if (response === 1) {
                    this._autoUpdater.restartAndInstall();
                }
            }
            else if (mode === "whenInForeground" || mode === "always") {
                const { response } = yield this._electronApi.showMessageBox({
                    message: "Update Available",
                    detail: `A new version of ${appName} is ready to be installed.`,
                    buttons: [
                        "Install on next launch",
                        `Install now and restart ${appName}`,
                    ],
                });
                if (response === 1) {
                    this._autoUpdater.restartAndInstall();
                }
            }
        });
    }
    _showNotification(payload) {
        return __awaiter(this, void 0, void 0, function* () {
            const mode = this._updateReadyAction.showNotification;
            const appName = this._electronApi.getAppName();
            if (mode === "never" || !payload.updateInfo) {
                return;
            }
            const appIsInForeground = this._electronApi.isAppInForeground();
            if (mode === "whenInBackground" && appIsInForeground) {
                return;
            }
            const notification = typeof mode === "function"
                ? yield mode(Object.assign(Object.assign({}, payload), { appIsInForeground }))
                : undefined;
            if (typeof notification === "function") {
                yield notification({
                    showNotification: (...args) => this._electronApi.showNotification(...args),
                });
            }
            else if (notification) {
                this._electronApi.showNotification(notification);
            }
            else if (mode === "whenInBackground" || mode === "always") {
                this._electronApi.showNotification({
                    title: "A new update is ready to install",
                    body: `${appName} version ${payload.updateInfo.version} has been ` +
                        "downloaded and will be automatically installed on exit",
                });
            }
        });
    }
}
exports.default = Notifier;
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
Object.defineProperty(exports, "__esModule", { value: true });
/**
 * If the source promise isn't resolved in a given time or rejected, a result
 * promise is resolved with the defaultResult value.
 */
function alwaysResolve(promise_1) {
    return __awaiter(this, arguments, void 0, function* (promise, { logger, defaultResult = undefined, timeout = 30000, } = {}) {
        let timeoutId;
        return Promise.race([
            Promise.resolve(promise)
                .catch((e) => {
                logger === null || logger === void 0 ? void 0 : logger.error("alwaysResolve: Promise is rejected with", e);
                return defaultResult;
            })
                .finally(() => clearTimeout(timeoutId)),
            new Promise((resolve) => {
                timeoutId = setTimeout(() => {
                    resolve(defaultResult);
                    logger === null || logger === void 0 ? void 0 : logger.error(`alwaysResolve: Promise timed out after ${timeout}ms`);
                }, timeout);
            }),
        ]);
    });
}
exports.default = alwaysResolve;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
let cache;
exports.default = {
    clear: () => {
        cache = null;
    },
    get: () => cache,
    set: (value) => {
        cache = value;
    },
};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const fs_1 = require("fs");
const path = require("path");
let cachedConfig;
/*
  Only reads disk once.
  Throws error if non-existent / unreadable each time it's requested.
*/
exports.default = () => {
    if (cachedConfig) {
        return cachedConfig;
    }
    const configPath = path.join(process.resourcesPath, "todesktop-runtime-config.json");
    if (!(0, fs_1.existsSync)(configPath)) {
        throw new Error(`ToDesktop runtime config doesn't exist (${configPath})`);
    }
    try {
        cachedConfig = JSON.parse((0, fs_1.readFileSync)(configPath, { encoding: "utf-8" }));
        return cachedConfig;
    }
    catch (e) {
        throw new Error(`Cannot read ToDesktop runtime config (${configPath})`);
    }
};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path");
const fs_1 = require("fs");
exports.default = () => 
// This path is only correct in packaged apps
JSON.parse((0, fs_1.readFileSync)(path.join(process.resourcesPath, "app.asar", "package.json"), {
    encoding: "utf-8",
}));
"use strict";
var __rest = (this && this.__rest) || function (s, e) {
    var t = {};
    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
        t[p] = s[p];
    if (s != null && typeof Object.getOwnPropertySymbols === "function")
        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
                t[p[i]] = s[p[i]];
        }
    return t;
};
const AutoUpdater_1 = require("./autoUpdater/AutoUpdater");
const cache_1 = require("./cache");
const Logger_1 = require("./Logger");
const MockedAutoUpdater_1 = require("./autoUpdater/MockedAutoUpdater");
const Notifier_1 = require("./Notifier");
const SimulatedAutoUpdater_1 = require("./autoUpdater/SimulatedAutoUpdater");
const msi_1 = require("./targets/msi");
class ToDesktop {
    constructor() {
        this.isSmokeTestMode = Boolean(process.env.TODESKTOP_SMOKE_TEST);
    }
    // This initializes everything. It must be called (at the top of their main script)
    init(params = {}) {
        if (this.isSmokeTestMode) {
            this.autoUpdater = (0, MockedAutoUpdater_1.createMockedAutoUpdater)();
        }
        else {
            this.autoUpdater = this._init(params);
        }
    }
    /** @internal */
    _init(_a = {}) {
        var { autoCheckInterval, autoUpdater = true, customLogger, shouldAutoCheckOnLaunch, updateReadyAction, buildId } = _a, initAutoUpdaterOptions = __rest(_a, ["autoCheckInterval", "autoUpdater", "customLogger", "shouldAutoCheckOnLaunch", "updateReadyAction", "buildId"]);
        const logger = new Logger_1.default(customLogger);
        const Updater = (0, SimulatedAutoUpdater_1.parseSimulateUpdatesFlag)()
            ? SimulatedAutoUpdater_1.SimulatedAutoUpdater
            : AutoUpdater_1.default;
        let autoUpdaterInstance;
        if (autoUpdater) {
            autoUpdaterInstance = new Updater({
                logger,
                autoCheckInterval,
                shouldAutoCheckOnLaunch,
                buildId,
            });
            new Notifier_1.default({ autoUpdater: autoUpdaterInstance, updateReadyAction });
        }
        else {
            // Disables the default behaviour
            autoUpdaterInstance = new Updater({
                autoCheckInterval: 0,
                logger,
                shouldAutoCheckOnLaunch: false,
            });
        }
        autoUpdaterInstance
            ._init(initAutoUpdaterOptions)
            .catch((e) => logger.error(e));
        return autoUpdaterInstance;
    }
    get runtime() {
        return {
            isInstalledUsingWindowsMSI: () => (0, msi_1.isInstalledUsingMSI)(),
        };
    }
}
let todesktop;
if (cache_1.default.get()) {
    todesktop = cache_1.default.get();
}
else {
    todesktop = new ToDesktop();
    cache_1.default.set(todesktop);
}
if (todesktop.isSmokeTestMode) {
    Promise.resolve().then(() => require("./initSmokeTest")).then(({ default: initSmokeTest }) => initSmokeTest(todesktop))
        .catch(() => {
        // Ignore
    });
}
module.exports = todesktop;
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
Object.defineProperty(exports, "__esModule", { value: true });
const crypto = require("crypto");
const electron_1 = require("electron");
const http = require("http");
const version_1 = require("./version");
function getCallStack() {
    const stackLines = new Error().stack
        .split("\n")
        .map((line) => line.trim().replace(/^at /, " - "));
    return stackLines.slice(3).join("\n");
}
function onceWebContentsEvent(event, callback) {
    electron_1.webContents.getAllWebContents().forEach((webContents) => {
        if (webContents.isLoading()) {
            webContents.once(event, callback);
        }
        else {
            callback();
        }
    });
    electron_1.app.once("web-contents-created", (_, webContents) => {
        webContents.once(event, callback);
    });
}
function sendHttpRequest(url, body) {
    return __awaiter(this, void 0, void 0, function* () {
        return new Promise((resolve, reject) => {
            const request = http.request(url, {
                method: "POST",
                headers: { "Content-Type": "application/json" },
            }, (res) => {
                if (res.statusCode === 200) {
                    const chunks = [];
                    res.on("data", (chunk) => chunks.push(chunk));
                    res.on("error", reject);
                    res.on("end", () => {
                        resolve(JSON.parse(Buffer.concat(chunks).toString("utf8")));
                    });
                }
                else {
                    reject(new Error(`POST ${url} returns status code ${res.statusCode}`));
                }
            });
            request.on("error", reject);
            request.write(JSON.stringify(body));
            request.end();
        });
    });
}
// Looks like there is no a better way. No event emitted on write
function patchWritableWrite(writable, handler) {
    const originalWrite = writable.write.bind(writable);
    writable.write = (chunk, ...rest) => {
        if (chunk) {
            handler(typeof chunk === "string" ? chunk : chunk.toString("utf8"));
        }
        return originalWrite(chunk, ...rest);
    };
}
function sha256(input) {
    const stringInput = typeof input === "string" ? input : "";
    return crypto.createHash("sha256").update(stringInput).digest("hex");
}
function initSmokeTest(toDesktop) {
    var _a, _b;
    const SECRET_HASH = "f9963eac07c447dfd6dad6c52dbd3d7afd546060992f301d9fd3637c9833450d";
    let configFromEnv;
    try {
        configFromEnv = JSON.parse(process.env.TODESKTOP_SMOKE_TEST_CONFIG || "{}");
    }
    catch (_c) {
        configFromEnv = {};
    }
    const config = Object.assign({ apiUrl: process.env.TODESKTOP_SMOKE_TEST_API_URL || "", autoRestart: true, enabled: Boolean(process.env.TODESKTOP_SMOKE_TEST), feedUrl: process.env.TODESKTOP_SMOKE_TEST_FEED_URL || "", initOptions: {}, secret: process.env.TODESKTOP_SMOKE_TEST_SECRET || "", startedAtMs: Date.now() }, configFromEnv);
    function callApi(event, data = {}) {
        sendHttpRequest(config.apiUrl, Object.assign({ event, pid: process.pid }, data)).catch((e) => {
            console.error("Smoke Test API:", e);
        });
    }
    let combinedPerformanceData = {};
    function sendPerformanceCall(additionalFields = {}) {
        combinedPerformanceData = Object.assign(Object.assign(Object.assign({}, combinedPerformanceData), additionalFields), { appStartedAtMs: process.getCreationTime(), cpuUsage: process.cpuUsage(), memoryUsage: process.memoryUsage(), metrics: electron_1.app.getAppMetrics(), smokeTestRuntimeStartedAtMs: config.startedAtMs });
        callApi("performance", combinedPerformanceData);
    }
    if (!config.enabled ||
        !config.apiUrl ||
        sha256(config.secret) !== SECRET_HASH) {
        return;
    }
    // auto-update is required even if it's disabled by a client application
    const autoUpdater = toDesktop._init(Object.assign(Object.assign({}, config.initOptions), { 
        // Add time to log
        customLogger: new Proxy(console, {
            get(target, method) {
                return (toDesktopPrefix, ...args) => {
                    const time = new Date().toISOString().slice(11, 23);
                    target[method](toDesktopPrefix, time, ...args);
                };
            },
        }), 
        // Always consider update released
        getReleaseStatusFn: () => ({ isReleased: true }) }));
    (_b = (_a = toDesktop.autoUpdater) === null || _a === void 0 ? void 0 : _a.setRealAutoUpdater) === null || _b === void 0 ? void 0 : _b.call(_a, autoUpdater);
    autoUpdater._whenInitialized.then(() => {
        if (config.feedUrl) {
            autoUpdater.setFeedURL(config.feedUrl);
        }
    });
    autoUpdater
        .on("update-downloaded", (payload) => {
        callApi("updateDownloaded", { payload });
        if (config.autoRestart) {
            autoUpdater.restartAndInstall({ isSilent: true });
        }
    })
        .on("before-quit-for-update", (payload) => {
        callApi("beforeQuitForUpdate", { payload });
    });
    process
        .on("uncaughtException", (e) => {
        callApi("uncaughtException", { stack: e.stack });
    })
        .on("unhandledRejection", (reason) => {
        callApi("unhandledRejection", { reason });
    });
    electron_1.app.on("ready", () => {
        sendPerformanceCall({ appReadyTimeMs: Date.now() });
        onceWebContentsEvent("dom-ready", () => {
            sendPerformanceCall({ webContentsDomReadyAtMs: Date.now() });
        });
        onceWebContentsEvent("did-finish-load", () => {
            sendPerformanceCall({ webContentsFinishLoadAtMs: Date.now() });
        });
    });
    const originalProcessExit = process.exit;
    process.exit = function patchedProcessExit(code = 0) {
        callApi("processExit", { code, stack: getCallStack() });
        return originalProcessExit(code);
    };
    const originalAppQuit = electron_1.app.quit;
    electron_1.app.quit = function patchedAppQuit() {
        callApi("appQuit", { stack: getCallStack() });
        originalAppQuit();
    };
    patchWritableWrite(process.stdout, (content) => {
        callApi("stdout", { content });
    });
    patchWritableWrite(process.stderr, (content) => {
        callApi("stderr", { content });
    });
    callApi("connect", {
        appVersion: electron_1.app.getVersion(),
        runtimeVersion: version_1.CLIENT_VERSION,
    });
    setInterval(() => {
        callApi("timer", { fromStartMs: Date.now() - config.startedAtMs });
        sendPerformanceCall();
    }, 1000);
}
exports.default = initSmokeTest;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = (callback, interval) => {
    if (process.env.AVA_PATH && typeof setTimeout === "undefined") {
        /*
          setTimeout doesn't exist. Ignoring because it's during a test.
          This happens sometimes after a test ends. Probably related to using fake timers that overwrite setTimeout
        */
        return undefined;
    }
    return setTimeout(callback, interval);
};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.BuiltInSources = void 0;
var BuiltInSources;
(function (BuiltInSources) {
    BuiltInSources["autoCheckOnLaunch"] = "auto-check-on-launch";
    BuiltInSources["autoCheckOnInterval"] = "auto-check-on-interval";
    BuiltInSources["programmaticCall"] = "programmatic-call";
})(BuiltInSources || (exports.BuiltInSources = BuiltInSources = {}));
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CLIENT_VERSION = void 0;
exports.CLIENT_VERSION = "2.1.2";
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isInstalledUsingMSI = void 0;
const electron_1 = require("electron");
const fs_1 = require("fs");
const path = require("path");
let usesMSI = null;
function isInstalledUsingMSI() {
    if (usesMSI !== null) {
        return usesMSI;
    }
    try {
        (0, fs_1.accessSync)(path.join(path.dirname(electron_1.app.getPath("exe")), "installed_using_msi.txt"), fs_1.constants.R_OK);
        usesMSI = true;
    }
    catch (err) {
        usesMSI = false;
    }
    return usesMSI;
}
exports.isInstalledUsingMSI = isInstalledUsingMSI;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const eventemitter2_1 = require("eventemitter2");
const CastedEventEmitter2 = eventemitter2_1.EventEmitter2;
// I didn't find a better way how to fix EventEmitter2 types and export it
// as a generic
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-expect-error
class AsyncEventEmitter extends CastedEventEmitter2 {
}
exports.default = AsyncEventEmitter;
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
Object.defineProperty(exports, "__esModule", { value: true });
const electron = require("electron");
const electronUpdater = require("electron-updater");
const fs = require("fs");
const path = require("path");
const alwaysResolve_1 = require("../alwaysResolve");
const getConfig_1 = require("../getConfig");
const setTimeout_1 = require("../setTimeout");
const getReleaseStatus_1 = require("./getReleaseStatus");
const updaterAgents_1 = require("./updaterAgents");
const version_1 = require("../version");
const types_1 = require("../types");
const BaseAutoUpdater_1 = require("./BaseAutoUpdater");
class AutoUpdater extends BaseAutoUpdater_1.BaseAutoUpdater {
    constructor({ autoCheckInterval = 10 * 60 * 1000, // 10 min
    logger, shouldAutoCheckOnLaunch = true, buildId, }) {
        super();
        this._createdAt = Date.now();
        this._hasUpdateReadyToInstall = false;
        this._isActive = true;
        this._pendingCheckSources = [];
        this._whenInitializedResolve = () => { };
        this._autoCheckInterval = autoCheckInterval;
        this._logger = logger;
        this._shouldAutoCheckOnLaunch = shouldAutoCheckOnLaunch;
        if (buildId) {
            this.buildId = buildId;
        }
        this._whenInitialized = new Promise((resolve) => {
            this._whenInitializedResolve = resolve;
        });
        this._subscribeToElectronEvents();
    }
    /** @internal */
    _init() {
        return __awaiter(this, arguments, void 0, function* ({ getReleaseStatusFn = getReleaseStatus_1.default, } = {}) {
            const logger = this._logger;
            let inactiveReason = "";
            if (!electron.app.isPackaged) {
                inactiveReason = "application is not packaged";
            }
            if (process.platform === "linux" && !process.env.APPIMAGE) {
                inactiveReason = "application is not in AppImage";
            }
            // Maybe it's better to wait for app#ready event, but now nobody knows
            // why #will-finish-launching is used instead
            yield (0, alwaysResolve_1.default)(this._appFinishedLaunchingPromise, { logger });
            if (inactiveReason === "" && !this.buildId) {
                // Check if the current build is released before updating _unless_ we're targeting a specific build
                const { isReleased } = yield (0, alwaysResolve_1.default)(getReleaseStatusFn(logger), {
                    logger,
                    defaultResult: { isReleased: true },
                });
                if (!isReleased) {
                    inactiveReason = "the build isn't released";
                }
            }
            if (inactiveReason !== "") {
                this._isActive = false;
                const message = `@todesktop/runtime: skipping autoUpdater initialization because ${inactiveReason}.`;
                console.info(message);
                this._log("info", message);
                this._whenInitializedResolve();
                return;
            }
            this._initializeUpdaterAgent();
            if (this._autoCheckInterval > 0) {
                this._autoCheckOnInterval(this._autoCheckInterval);
            }
            if (this._shouldAutoCheckOnLaunch) {
                this._autoCheckOnLaunch().catch((e) => logger.error(e));
            }
            this._whenInitializedResolve();
        });
    }
    checkForUpdates() {
        return __awaiter(this, arguments, void 0, function* ({ source = types_1.BuiltInSources.programmaticCall, disableUpdateReadyAction = false, } = {}) {
            this._log("info", ".checkForUpdates called");
            yield (0, alwaysResolve_1.default)(this._whenInitialized);
            if (!this._isActive) {
                return {
                    updateInfo: null,
                };
            }
            return yield this._check({ source, disableUpdateReadyAction });
        });
    }
    restartAndInstall({ isSilent = false, } = {}) {
        var _a, _b;
        this._log("info", ".restartAndInstall called, isSilent: " + !!isSilent);
        if (!this._hasUpdateReadyToInstall) {
            const error = new Error("Cannot restart and install. There is no update downloaded");
            this._log("error", error);
            throw error;
        }
        this._log("debug", "Calling electron-updater's .quitAndInstall, isSilent: " + !!isSilent);
        if (isSilent) {
            /**
             * The API name `restartAndInstall` implies that the app will be restarted.
             * Therefore, we always restart the app and `isForceRunAfter` is always `true`.
             */
            (_a = this._updaterAgent) === null || _a === void 0 ? void 0 : _a.restartAndInstall(true, true);
        }
        else {
            (_b = this._updaterAgent) === null || _b === void 0 ? void 0 : _b.restartAndInstall();
        }
    }
    setFeedURL(options) {
        var _a;
        (_a = this._updaterAgent) === null || _a === void 0 ? void 0 : _a.setFeedURL(options);
    }
    setBuildId(buildId) {
        this._log("info", ".setBuildId called with buildId:", buildId);
        this.buildId = buildId;
    }
    get buildId() {
        return this._buildId;
    }
    set buildId(value) {
        this._buildId = value;
        if (typeof value === "string") {
            electronUpdater.autoUpdater.channel = `latest-build-${value}`;
            this._log("debug", "Updater channel set to latest-build-" + value);
        }
        else if (value === null) {
            electronUpdater.autoUpdater.channel = "latest";
            this._log("debug", "Updater channel set to latest");
        }
    }
    _actuallyPerformCheck() {
        return __awaiter(this, arguments, void 0, function* ({ disableUpdateReadyAction, } = {}) {
            this._log("debug", "_actuallyPerformCheck called");
            if (!this._updaterAgent) {
                return { updateInfo: null };
            }
            const updateInfo = yield this._updaterAgent.checkAndDownload();
            // Reset the collected sources
            const previouslyPendingCheckSources = [
                ...this._pendingCheckSources,
            ];
            this._pendingCheckSources = [];
            // No update available; exit early
            if (!updateInfo) {
                this._log("debug", "No update available");
                // To be safe
                this._hasUpdateReadyToInstall = false;
                return {
                    updateInfo,
                };
            }
            this._log("debug", "Update available", updateInfo);
            this._hasUpdateReadyToInstall = true;
            // Emit the event
            const eventPayload = {
                sources: previouslyPendingCheckSources,
                updateInfo,
                disableUpdateReadyAction: Boolean(disableUpdateReadyAction),
            };
            this._log("debug", "Emitting update-downloaded event");
            Promise.race([
                this.emitAsync("update-downloaded", eventPayload),
                new Promise((r) => {
                    this._log("debug", "before notify call in setTimeout");
                    setTimeout(r, 500);
                }),
            ])
                .then((emitResult) => {
                if (!Array.isArray(emitResult) || !emitResult.includes(false)) {
                    this._log("debug", "calling notify after event listener Promise settled");
                    this.emit("notify-after-update-downloaded", eventPayload);
                }
            })
                .catch((e) => {
                this._log("debug", "Error occurred in update-downloaded handler", e);
                this.emit("notify-after-update-downloaded", eventPayload);
            });
            // Reset the collected sources
            this._pendingCheckSources = [];
            // Return as soon as possible (don't wait for listener responses)
            return { updateInfo };
        });
    }
    _autoCheckOnInterval(interval) {
        const checkAfterTimeout = () => {
            this._log("debug", "checking for update on interval");
            (0, setTimeout_1.default)(() => __awaiter(this, void 0, void 0, function* () {
                try {
                    yield this._check({
                        source: types_1.BuiltInSources.autoCheckOnInterval,
                        disableUpdateReadyAction: false,
                    });
                    checkAfterTimeout();
                }
                catch (e) {
                    this._log("error", e);
                    // Ignore and continute to check on interval
                    checkAfterTimeout();
                }
            }), interval);
        };
        checkAfterTimeout();
    }
    _autoCheckOnLaunch() {
        return __awaiter(this, void 0, void 0, function* () {
            this._log("debug", "checking for update on launch");
            try {
                yield this._check({
                    source: types_1.BuiltInSources.autoCheckOnLaunch,
                    disableUpdateReadyAction: false,
                });
            }
            catch (e) {
                this._log("error", e);
                // Ignore. Auto-check on interval and programmatic API still supported
            }
        });
    }
    _check(_a) {
        return __awaiter(this, arguments, void 0, function* ({ source, disableUpdateReadyAction, }) {
            /*
              We collect the sources and emit them with the update-downloaded event.
              Other noteworthy bits:
              - The update check promise is reused by electron-updater.
              - We don't want more than one event emitted.
              - There's no sorting or de-duplication of the sources, on purpose.
            */
            this._pendingCheckSources.push(source);
            this._log("debug", "_check called", {
                source,
                pendingCheckSources: this._pendingCheckSources,
            });
            if (this._pendingUpdateCheckPromise) {
                return this._pendingUpdateCheckPromise;
            }
            const onEnd = () => {
                this._pendingUpdateCheckPromise = undefined;
            };
            this._pendingUpdateCheckPromise = this._actuallyPerformCheck({
                disableUpdateReadyAction,
            })
                .then((updateCheckResult) => {
                onEnd();
                return updateCheckResult;
            })
                .catch((e) => {
                onEnd();
                throw e;
            });
            return this._pendingUpdateCheckPromise;
        });
    }
    /*
      Why are there UpdaterAgent classes?
  
      To transition apps to us, specifically Squirrel.Windows apps, we need
      to use electron-updater. They put runtime in their app, built with
      their existing tooling/infrastructure, then runtime will point to
      a Squirrel.Windows on our server which will actually use an NSIS
      installer and transition them.
  
      For Mac apps not built by us, we can use electron-updater but we need
      to make sure we point to our server.
    */
    _initializeUpdaterAgent() {
        if (process.platform === "win32" &&
            !(0, getConfig_1.default)().wasBuiltByUs &&
            // This is the official way to detect Squirrel.Windows
            fs.existsSync(path.join(electron.app.getAppPath(), "../Update.exe"))) {
            this._log("debug", "Setting up SquirrelWindowsUpdaterAgent");
            this._updaterAgent = new updaterAgents_1.SquirrelWindowsUpdaterAgent({
                log: (level, ...args) => {
                    this._log(level, "SquirrelWindowsUpdaterAgent:", ...args);
                },
                logger: this._logger,
            });
            return;
        }
        this._log("debug", "Setting up UpdaterAgent");
        this._updaterAgent = new updaterAgents_1.UpdaterAgent({
            log: (level, ...args) => {
                this._log(level, "UpdaterAgent:", ...args);
            },
            logger: this._logger,
        });
    }
    _log(level, ...args) {
        let firstArgument;
        if (process.env.AVA_PATH) {
            let timeSinceCreatedAt;
            // This can fail when there's a ReferenceError in a test and Date is overwritten
            try {
                timeSinceCreatedAt = ` (${Date.now() - this._createdAt}ms)`;
            }
            catch (e) {
                timeSinceCreatedAt = "";
            }
            firstArgument = `AutoUpdater (${electron.app.name})${timeSinceCreatedAt}:`;
        }
        else {
            firstArgument = "AutoUpdater:";
        }
        this._logger[level](firstArgument, ...args);
    }
    _subscribeToElectronEvents() {
        this._appFinishedLaunchingPromise = new Promise((resolve) => {
            electron.app.on("will-finish-launching", () => {
                this._log("debug", "electron will-finish-launching event emitted", {
                    appVersion: electron.app.getVersion(),
                    runtimeVersion: version_1.CLIENT_VERSION,
                });
                resolve();
            });
        });
        electron.autoUpdater.on("before-quit-for-update", (...args) => {
            this._log("info", "before-quit-for-update");
            this.emit("before-quit-for-update", ...args);
        });
        electronUpdater.autoUpdater.on("error", (error, message) => {
            this._log("info", "error");
            this.emit("error", error, message);
        });
        electronUpdater.autoUpdater.on("checking-for-update", () => {
            this._log("info", "checking-for-update");
            this.emit("checking-for-update");
        });
        electronUpdater.autoUpdater.on("update-not-available", (info) => {
            this._log("info", "update-not-available", info);
            this.emit("update-not-available", info);
        });
        electronUpdater.autoUpdater.on("update-available", (info) => {
            this._log("info", "update-available", info);
            this.emit("update-available", info);
        });
        // we emit update-downloaded ourselves in `_actuallyPerformCheck`
        electronUpdater.autoUpdater.on("download-progress", (info) => {
            this._log("info", "download-progress", info);
            this.emit("download-progress", info);
        });
    }
}
exports.default = AutoUpdater;
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseAutoUpdater = void 0;
const AsyncEventEmitter_1 = require("./AsyncEventEmitter");
class BaseAutoUpdater extends AsyncEventEmitter_1.default {
    constructor() {
        super();
    }
    checkForUpdates(_input) {
        return __awaiter(this, void 0, void 0, function* () {
            return { updateInfo: null };
        });
    }
    restartAndInstall(_input) { }
    setFeedURL(_options) { }
    setBuildId(_buildId) { }
    _init() {
        return __awaiter(this, void 0, void 0, function* () { });
    }
}
exports.BaseAutoUpdater = BaseAutoUpdater;
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createMockedAutoUpdater = exports.MockedAutoUpdater = void 0;
const BaseAutoUpdater_1 = require("./BaseAutoUpdater");
class MockedAutoUpdater extends BaseAutoUpdater_1.BaseAutoUpdater {
    constructor(logFn = console.info) {
        super();
        this.logFn = logFn;
    }
    setRealAutoUpdater(autoUpdater) {
        autoUpdater.onAny((eventName, ...args) => {
            this.emit(eventName, ...args);
        });
    }
    checkForUpdates(...args) {
        return __awaiter(this, void 0, void 0, function* () {
            this.logCall("checkForUpdates()", args);
            return { updateInfo: null };
        });
    }
    restartAndInstall(...args) {
        this.logCall("restartAndInstall()", args);
    }
    setFeedURL(...args) {
        this.logCall("setFeedURL()", args);
    }
    logCall(method, args = []) {
        const time = new Date().toISOString().slice(11, 23);
        this.logFn(time, `MockedAutoUpdater.${method} called with args`, args);
    }
}
exports.MockedAutoUpdater = MockedAutoUpdater;
function createMockedAutoUpdater() {
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    return new MockedAutoUpdater();
}
exports.createMockedAutoUpdater = createMockedAutoUpdater;
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SimulatedAutoUpdater = exports.parseSimulateUpdatesFlag = exports.SimulateUpdatesFlag = void 0;
const electron_1 = require("electron");
const types_1 = require("../types");
const BaseAutoUpdater_1 = require("./BaseAutoUpdater");
function delay(ms) {
    return new Promise((resolve) => setTimeout(resolve, ms));
}
var SimulateUpdatesFlag;
(function (SimulateUpdatesFlag) {
    SimulateUpdatesFlag["UpdateAvailable"] = "update-available";
    SimulateUpdatesFlag["UpdateNotAvailable"] = "update-not-available";
})(SimulateUpdatesFlag || (exports.SimulateUpdatesFlag = SimulateUpdatesFlag = {}));
const parseSimulateUpdatesFlag = () => {
    const flag = process.argv.find((flag) => flag.includes("--runtime-simulate-updates"));
    if (!flag)
        return null;
    const value = flag.split("=")[1];
    if (!Object.values(SimulateUpdatesFlag).includes(value)) {
        throw new Error(`--runtime-simulate-updates expects a mode value of "${SimulateUpdatesFlag.UpdateAvailable}" or "${SimulateUpdatesFlag.UpdateNotAvailable}". Received "${value}"`);
    }
    return value;
};
exports.parseSimulateUpdatesFlag = parseSimulateUpdatesFlag;
class SimulatedAutoUpdater extends BaseAutoUpdater_1.BaseAutoUpdater {
    constructor({ autoCheckInterval = 10 * 60 * 1000, // 10 min
    logger, shouldAutoCheckOnLaunch = true, }) {
        super();
        this.simulateUpdatesFlag = (0, exports.parseSimulateUpdatesFlag)();
        this.hasUpdateReadyToInstall = false;
        this.checkForUpdates = (...args_1) => __awaiter(this, [...args_1], void 0, function* ({ source = types_1.BuiltInSources.programmaticCall, disableUpdateReadyAction = false, } = {}) {
            this.logger.info("checkForUpdates()", { source });
            const tdUpdateInfo = {
                releaseDate: new Date().toISOString(),
                version: `${electron_1.app.getVersion()}-simulated`,
            };
            const info = Object.assign(Object.assign({}, tdUpdateInfo), { files: [], path: "", sha512: "" });
            this.emit("checking-for-update");
            yield delay(1000);
            if (this.simulateUpdatesFlag === SimulateUpdatesFlag.UpdateNotAvailable) {
                this.emit("update-not-available", info);
                return { updateInfo: null };
            }
            else {
                this.emit("update-available", info);
                const getProgressInfo = (percent) => __awaiter(this, void 0, void 0, function* () {
                    const totalBytes = 1000000; // 100 mb
                    return {
                        total: totalBytes, // accept total as is
                        percent, // accept percent value as is
                        transferred: (percent / 100) * totalBytes, // convert percent to a proportion, then multiply proportion by total
                        delta: 1000000 / 10, // divided by 10, because hardecoded to 10 interval values
                        bytesPerSecond: totalBytes / 5, // total transfer time is hardcoded to 5 seconds, so divide
                    };
                });
                for (const percentage of [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]) {
                    yield delay(500);
                    this.emit("download-progress", yield getProgressInfo(percentage));
                }
                this.hasUpdateReadyToInstall = true;
                const eventPayload = {
                    sources: [source],
                    updateInfo: info,
                    disableUpdateReadyAction,
                };
                this.emit("update-downloaded", eventPayload);
                this.emit("notify-after-update-downloaded", eventPayload);
                return { updateInfo: tdUpdateInfo };
            }
        });
        this.restartAndInstall = ({ isSilent = false, } = {}) => {
            this.logger.info("restartAndInstall()", { isSilent });
            if (!this.hasUpdateReadyToInstall) {
                const error = new Error("Cannot restart and install. There is no update downloaded");
                this.logger.error("error", error);
                throw error;
            }
            this.emit("before-quit-for-update");
            delay(1000).then(() => {
                electron_1.app.relaunch({
                    args: [
                        `--runtime-simulate-updates=${SimulateUpdatesFlag.UpdateNotAvailable}`,
                    ],
                });
                electron_1.app.quit();
            });
        };
        this.setFeedURL = (...args) => {
            this.logger.info("setFeedURL()", args);
            this.logger.warn("setFeedURL() doesn't do anything in simulated mode.");
        };
        this.logger = logger;
        electron_1.app.on("will-finish-launching", () => {
            if (autoCheckInterval > 0) {
                const interval = setInterval(() => {
                    this.checkForUpdates({ source: types_1.BuiltInSources.autoCheckOnInterval });
                    // interval should be cleared once a prompt is shown, otherwise will re-prompt every interval
                    if (this.simulateUpdatesFlag === SimulateUpdatesFlag.UpdateAvailable) {
                        clearInterval(interval);
                    }
                }, autoCheckInterval);
            }
            if (shouldAutoCheckOnLaunch) {
                this.checkForUpdates({ source: types_1.BuiltInSources.autoCheckOnLaunch });
            }
        });
    }
}
exports.SimulatedAutoUpdater = SimulatedAutoUpdater;
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
Object.defineProperty(exports, "__esModule", { value: true });
const electron_1 = require("electron");
const fs = require("fs");
const path = require("path");
const getConfig_1 = require("../getConfig");
const getPackageJson_1 = require("../getPackageJson");
function getReleaseStatus(logger) {
    return __awaiter(this, void 0, void 0, function* () {
        try {
            const { id: appId } = (0, getConfig_1.default)();
            const buildId = (0, getPackageJson_1.default)().tdBuildId;
            let isDev;
            try {
                const updateYamlPath = path.join(process.resourcesPath, "app-update.yml");
                const updateYaml = yield readFlatYaml(updateYamlPath);
                const autoUpdateUrl = updateYaml.url || "";
                isDev =
                    autoUpdateUrl.includes("todesktop-builds-dev.") ||
                        autoUpdateUrl.includes("dl-dev.");
            }
            catch (e) {
                isDev = false;
            }
            if (isDev) {
                logger.debug("Running in dev mode, use api-dev server");
            }
            const serverUrl = isDev
                ? "https://api-dev.todesktop.cloud"
                : "https://api.todesktop.com";
            const response = yield sendGetRequest(`${serverUrl}/v1/getReleaseStatus?buildId=${buildId}&appId=${appId}`);
            return { isReleased: response.isReleased !== false };
        }
        catch (e) {
            logger.error("Failed to get the release status, consider the build released", e);
            return { isReleased: true };
        }
    });
}
exports.default = getReleaseStatus;
function sendGetRequest(url) {
    return __awaiter(this, void 0, void 0, function* () {
        yield electron_1.app.whenReady();
        return new Promise((resolve, reject) => {
            const request = electron_1.net.request(url);
            request
                .on("response", (response) => {
                if (response.statusCode !== 200) {
                    reject(new Error(`GET ${url}: Response status is ${response.statusCode}`));
                    return;
                }
                const chunks = [];
                response
                    .on("data", (chunk) => chunks.push(chunk))
                    .on("end", () => {
                    try {
                        resolve(JSON.parse(Buffer.concat(chunks).toString()));
                    }
                    catch (e) {
                        reject(e);
                    }
                });
            })
                .on("error", (error) => reject(error))
                .end();
        });
    });
}
function readFlatYaml(yamlPath) {
    return __awaiter(this, void 0, void 0, function* () {
        const result = {};
        try {
            const fileContents = yield fs.promises.readFile(yamlPath, "utf8");
            const lines = fileContents.split("\n").filter((line) => line.match(/^\w/i));
            for (const line of lines) {
                const [key, ...parts] = line.split(":").map((s) => s.trim());
                result[key] = parts.join(":");
            }
        }
        catch (_a) {
            // When can't read, return an empty object
        }
        return result;
    });
}
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SquirrelWindowsUpdaterAgent = exports.UpdaterAgent = void 0;
const del = require("del");
const electron = require("electron");
const electronUpdater = require("electron-updater");
const execa = require("execa");
const fs = require("fs");
const once = require("lodash.once");
const os = require("os");
const path = require("path");
const semver = require("semver");
const getConfig_1 = require("../getConfig");
const getPackageJson_1 = require("../getPackageJson");
class UpdaterAgent {
    constructor({ log, logger, }) {
        this.currentTDUpdateInfo = null;
        this._log = (level, ...args) => log(level, "UpdaterAgent:", ...args);
        // electron-updater will use this logger (includes the user's custom one)
        electronUpdater.autoUpdater.logger = logger;
        electronUpdater.autoUpdater.allowDowngrade = true;
        const config = (0, getConfig_1.default)();
        /*
          Even if a Mac app wasn't built by us, we can update it if we use
          electron-updater and point to our server
        */
        if (process.platform === "darwin" && !config.wasBuiltByUs) {
            electronUpdater.autoUpdater.setFeedURL(`https://download.todesktop.com/${config.id}`);
        }
        /*
          When transitioning from Squirrel.Windows to NSIS, the NSIS app
          will import runtime and this will uninstall and clean up the
          old Squirrel.Windows app.
          See https://github.com/electron-userland/electron-builder/issues/837
        */
        if (process.platform === "win32" && config.wasBuiltByUs) {
            this._uninstallSquirrelWindowsAppIfItExists();
        }
    }
    checkAndDownload() {
        return __awaiter(this, void 0, void 0, function* () {
            var _a;
            try {
                electronUpdater.autoUpdater.autoDownload = false;
                const updateCheckResult = yield electronUpdater.autoUpdater.checkForUpdates();
                // No update available?
                if (!updateCheckResult || !updateCheckResult.updateInfo) {
                    return null;
                }
                // We need to make sure the version is actually newer
                const currentVersion = electron.app.getVersion();
                const latestVersion = updateCheckResult.updateInfo.version;
                const currentlyDownloadedVersion = (_a = this.currentTDUpdateInfo) === null || _a === void 0 ? void 0 : _a.version;
                this._log("debug", "Analysing autoUpdater.checkForUpdates result", {
                    currentVersion,
                    latestVersion,
                    currentlyDownloadedVersion,
                    updateInfo: updateCheckResult.updateInfo,
                });
                // if latest version is already downloaded, return it
                if (currentlyDownloadedVersion === latestVersion) {
                    return this.currentTDUpdateInfo;
                }
                // autoUpdater provides a cancellationToken if an update is available - https://github.com/electron-userland/electron-builder/blob/906ffb1fcebe6aef4dc6c6a3fab10aa7d9378c3f/packages/electron-updater/src/AppUpdater.ts#L422
                if (!updateCheckResult.cancellationToken) {
                    return this.currentTDUpdateInfo;
                }
                yield electronUpdater.autoUpdater.downloadUpdate(updateCheckResult.cancellationToken);
                this.currentTDUpdateInfo = this._convertToTDUpdateInfo(updateCheckResult);
                return this.currentTDUpdateInfo;
            }
            catch (e) {
                if (e instanceof Error && e.name === "CancellationError") {
                    throw new Error("Update check cancelled");
                }
                throw e;
            }
        });
    }
    restartAndInstall(isSilent, isForceRunAfter) {
        electronUpdater.autoUpdater.quitAndInstall(isSilent, isForceRunAfter);
    }
    setFeedURL(options) {
        this._log("debug", "_setFeedURL()", options);
        electronUpdater.autoUpdater.setFeedURL(options);
    }
    _convertToTDUpdateInfo(updateCheckResult) {
        return {
            releaseDate: updateCheckResult.updateInfo.releaseDate,
            version: updateCheckResult.updateInfo.version,
        };
    }
    _uninstallSquirrelWindowsAppIfItExists() {
        return __awaiter(this, void 0, void 0, function* () {
            this._log("debug", "_uninstallSquirrelWindowsAppIfItExists()");
            try {
                const pathToAppDirectory = path.join(os.homedir(), "AppData", "Local", (0, getPackageJson_1.default)().name);
                /*
                  The NSIS installer checks if there's a Squirrel.Windows app
                  on disk and if there is, it creates a `.shouldUninstall` file
                  as a marker. If that exists, we uninstall the app and clean up
                */
                const uninstallMarkerPath = path.join(pathToAppDirectory, ".shouldUninstall");
                const shouldUninstall = fs.existsSync(uninstallMarkerPath);
                this._log("debug", "Does Squirrel.Windows uninstall marker exist?", shouldUninstall, uninstallMarkerPath);
                if (shouldUninstall) {
                    yield execa(path.join(pathToAppDirectory, "Update.exe"), [
                        "--uninstall",
                        "-s",
                    ]);
                    yield del(pathToAppDirectory, { force: true });
                    this._log("info", "Successfully removed Squirrel.Windows app");
                }
            }
            catch (e) {
                // Ignore; there's not much we can do at this point
                this._log("debug", "Failed to remove Squirrel.Windows app");
                this._log("debug", e);
            }
        });
    }
}
exports.UpdaterAgent = UpdaterAgent;
class SquirrelWindowsUpdaterAgent {
    constructor({ log, 
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    logger, }) {
        this._log = (level, ...args) => log(level, "SquirrelWindowsUpdaterAgent:", ...args);
        if (process.platform !== "win32") {
            throw new Error("Only Windows is supported");
        }
        const config = (0, getConfig_1.default)();
        if (config.wasBuiltByUs) {
            throw new Error("App was built by us, this is unsupported");
        }
        // Can't get it to stop complaining that it doesn't recognize URLSearchParams
        // eslint-disable-next-line @typescript-eslint/ban-ts-comment
        // @ts-ignore
        const params = new URLSearchParams({
            arch: process.arch,
            currentVersion: electron.app.getVersion(),
            platform: "windows",
        });
        [
            "before-quit-for-update",
            "checking-for-update",
            "error",
            "update-available",
            "update-downloaded",
            "update-not-available",
        ].forEach((eventName) => {
            // eslint-disable-next-line
            // @ts-ignore
            electron.autoUpdater.on(eventName, (...args) => this._log("debug", `autoUpdater event: ${eventName}`, ...args));
        });
        /*
          NOTE: Squirrel.Windows will still append /RELEASES to the
          path and it can append other query parameters too
        */
        electron.autoUpdater.setFeedURL({
            url: `https://dl.todesktop.com/${config.id}/squirrel?${params}`,
        });
    }
    /*
      This wrangles the Electron autoUpdater API into our shape.
      We listen to events, trigger a check, wait for a "final" event, unsubscribe,
      and return the result (asynchronously).
    */
    checkAndDownload() {
        return __awaiter(this, void 0, void 0, function* () {
            return new Promise((resolve, reject) => {
                const onError = (err) => {
                    // eslint-disable-next-line @typescript-eslint/no-use-before-define
                    removeListeners();
                    reject(err);
                };
                const onUpdateDownloaded = (event, releaseNotes, releaseName, releaseDate, updateURL) => {
                    // eslint-disable-next-line @typescript-eslint/no-use-before-define
                    removeListeners();
                    /*
                      If we can't grab the version from the URL, then just return a fake
                      version that's higher than the current version.
                      The server will only respond if the update is actually newer, so the
                      only issue is if the API user decides to show the version in the UI,
                      it'll be incorrect.
                      That's not so bad compared to auto-updates failing because the URL
                      pattern changed and our runtime library broke (nothing the user can
                      see / control).
                    */
                    const version = this._getVersionFromNupkgUrl(updateURL) ||
                        semver.inc(electron.app.getVersion(), "patch");
                    resolve({
                        releaseDate: releaseDate.toString(),
                        version,
                    });
                };
                const onUpdateNotAvailable = () => {
                    // eslint-disable-next-line @typescript-eslint/no-use-before-define
                    removeListeners();
                    resolve(null);
                };
                const removeListeners = once(() => {
                    electron.autoUpdater.off("error", onError);
                    electron.autoUpdater.off("update-downloaded", onUpdateDownloaded);
                    electron.autoUpdater.off("update-not-available", onUpdateNotAvailable);
                });
                electron.autoUpdater.once("error", onError);
                electron.autoUpdater.once("update-downloaded", onUpdateDownloaded);
                electron.autoUpdater.once("update-not-available", onUpdateNotAvailable);
                try {
                    // This auto-downloads (and the version comparison is automatic)
                    electron.autoUpdater.checkForUpdates();
                }
                catch (e) {
                    onError(e);
                }
            });
        });
    }
    restartAndInstall() {
        electron.autoUpdater.quitAndInstall();
    }
    setFeedURL(options) {
        electron.autoUpdater.setFeedURL(options);
    }
    /*
      Expects something like: https://example.com/My%20major%20app%202-0.0.2-rc.11-full.nupkg
      Pulls out the 0.1.2-rc.0 if it can.
    */
    _getVersionFromNupkgUrl(url) {
        // From https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
        const officialSemverRegex = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;
        // Remove the ^ and $
        const modifiedSemverRegexString = officialSemverRegex.source
            .replace(/^\^/, "")
            .replace(/\$$/, "");
        // Wrap the semver pattern in parentheses and append the expected nupkg filename suffix
        const matches = url.match(new RegExp(`(${modifiedSemverRegexString})-full\\.nupkg$`));
        if (matches) {
            return matches[1];
        }
    }
}
exports.SquirrelWindowsUpdaterAgent = SquirrelWindowsUpdaterAgent;
'use strict';
const indentString = require('indent-string');
const cleanStack = require('clean-stack');

const cleanInternalStack = stack => stack.replace(/\s+at .*aggregate-error\/index.js:\d+:\d+\)?/g, '');

class AggregateError extends Error {
	constructor(errors) {
		if (!Array.isArray(errors)) {
			throw new TypeError(`Expected input to be an Array, got ${typeof errors}`);
		}

		errors = [...errors].map(error => {
			if (error instanceof Error) {
				return error;
			}

			if (error !== null && typeof error === 'object') {
				// Handle plain error objects with message property and/or possibly other metadata
				return Object.assign(new Error(error.message), error);
			}

			return new Error(error);
		});

		let message = errors
			.map(error => {
				// The `stack` property is not standardized, so we can't assume it exists
				return typeof error.stack === 'string' ? cleanInternalStack(cleanStack(error.stack)) : String(error);
			})
			.join('\n');
		message = '\n' + indentString(message, 4);
		super(message);

		this.name = 'AggregateError';

		Object.defineProperty(this, '_errors', {value: errors});
	}

	* [Symbol.iterator]() {
		for (const error of this._errors) {
			yield error;
		}
	}
}

module.exports = AggregateError;
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "aggregate-error",
  "version": "3.1.0",
  "description": "Create an error from multiple errors",
  "license": "MIT",
  "repository": "sindresorhus/aggregate-error",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "sindresorhus.com"
  },
  "engines": {
    "node": ">=8"
  },
  "files": [
    "index.js",
    "index.d.ts"
  ],
  "dependencies": {
    "clean-stack": "^2.0.0",
    "indent-string": "^4.0.0"
  },
  "devDependencies": {
    "ava": "^2.4.0",
    "tsd": "^0.7.1",
    "xo": "^0.25.3"
  }
}A. HISTORY OF THE SOFTWARE
==========================

Python was created in the early 1990s by Guido van Rossum at Stichting
Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands
as a successor of a language called ABC.  Guido remains Python's
principal author, although it includes many contributions from others.

In 1995, Guido continued his work on Python at the Corporation for
National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)
in Reston, Virginia where he released several versions of the
software.

In May 2000, Guido and the Python core development team moved to
BeOpen.com to form the BeOpen PythonLabs team.  In October of the same
year, the PythonLabs team moved to Digital Creations, which became
Zope Corporation.  In 2001, the Python Software Foundation (PSF, see
https://www.python.org/psf/) was formed, a non-profit organization
created specifically to own Python-related Intellectual Property.
Zope Corporation was a sponsoring member of the PSF.

All Python releases are Open Source (see http://www.opensource.org for
the Open Source Definition).  Historically, most, but not all, Python
releases have also been GPL-compatible; the table below summarizes
the various releases.

    Release         Derived     Year        Owner       GPL-
                    from                                compatible? (1)

    0.9.0 thru 1.2              1991-1995   CWI         yes
    1.3 thru 1.5.2  1.2         1995-1999   CNRI        yes
    1.6             1.5.2       2000        CNRI        no
    2.0             1.6         2000        BeOpen.com  no
    1.6.1           1.6         2001        CNRI        yes (2)
    2.1             2.0+1.6.1   2001        PSF         no
    2.0.1           2.0+1.6.1   2001        PSF         yes
    2.1.1           2.1+2.0.1   2001        PSF         yes
    2.1.2           2.1.1       2002        PSF         yes
    2.1.3           2.1.2       2002        PSF         yes
    2.2 and above   2.1.1       2001-now    PSF         yes

Footnotes:

(1) GPL-compatible doesn't mean that we're distributing Python under
    the GPL.  All Python licenses, unlike the GPL, let you distribute
    a modified version without making your changes open source.  The
    GPL-compatible licenses make it possible to combine Python with
    other software that is released under the GPL; the others don't.

(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
    because its license has a choice of law clause.  According to
    CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
    is "not incompatible" with the GPL.

Thanks to the many outside volunteers who have worked under Guido's
direction to make these releases possible.


B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
===============================================================

PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
--------------------------------------------

1. This LICENSE AGREEMENT is between the Python Software Foundation
("PSF"), and the Individual or Organization ("Licensee") accessing and
otherwise using this software ("Python") in source or binary form and
its associated documentation.

2. Subject to the terms and conditions of this License Agreement, PSF hereby
grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
analyze, test, perform and/or display publicly, prepare derivative works,
distribute, and otherwise use Python alone or in any derivative version,
provided, however, that PSF's License Agreement and PSF's notice of copyright,
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Python Software Foundation;
All Rights Reserved" are retained in Python alone or in any derivative version
prepared by Licensee.

3. In the event Licensee prepares a derivative work that is based on
or incorporates Python or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python.

4. PSF is making Python available to Licensee on an "AS IS"
basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.

5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.

7. Nothing in this License Agreement shall be deemed to create any
relationship of agency, partnership, or joint venture between PSF and
Licensee.  This License Agreement does not grant permission to use PSF
trademarks or trade name in a trademark sense to endorse or promote
products or services of Licensee, or any third party.

8. By copying, installing or otherwise using Python, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.


BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
-------------------------------------------

BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1

1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
Individual or Organization ("Licensee") accessing and otherwise using
this software in source or binary form and its associated
documentation ("the Software").

2. Subject to the terms and conditions of this BeOpen Python License
Agreement, BeOpen hereby grants Licensee a non-exclusive,
royalty-free, world-wide license to reproduce, analyze, test, perform
and/or display publicly, prepare derivative works, distribute, and
otherwise use the Software alone or in any derivative version,
provided, however, that the BeOpen Python License is retained in the
Software, alone or in any derivative version prepared by Licensee.

3. BeOpen is making the Software available to Licensee on an "AS IS"
basis.  BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.

4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

5. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.

6. This License Agreement shall be governed by and interpreted in all
respects by the law of the State of California, excluding conflict of
law provisions.  Nothing in this License Agreement shall be deemed to
create any relationship of agency, partnership, or joint venture
between BeOpen and Licensee.  This License Agreement does not grant
permission to use BeOpen trademarks or trade names in a trademark
sense to endorse or promote products or services of Licensee, or any
third party.  As an exception, the "BeOpen Python" logos available at
http://www.pythonlabs.com/logos.html may be used according to the
permissions granted on that web page.

7. By copying, installing or otherwise using the software, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.


CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
---------------------------------------

1. This LICENSE AGREEMENT is between the Corporation for National
Research Initiatives, having an office at 1895 Preston White Drive,
Reston, VA 20191 ("CNRI"), and the Individual or Organization
("Licensee") accessing and otherwise using Python 1.6.1 software in
source or binary form and its associated documentation.

2. Subject to the terms and conditions of this License Agreement, CNRI
hereby grants Licensee a nonexclusive, royalty-free, world-wide
license to reproduce, analyze, test, perform and/or display publicly,
prepare derivative works, distribute, and otherwise use Python 1.6.1
alone or in any derivative version, provided, however, that CNRI's
License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
1995-2001 Corporation for National Research Initiatives; All Rights
Reserved" are retained in Python 1.6.1 alone or in any derivative
version prepared by Licensee.  Alternately, in lieu of CNRI's License
Agreement, Licensee may substitute the following text (omitting the
quotes): "Python 1.6.1 is made available subject to the terms and
conditions in CNRI's License Agreement.  This Agreement together with
Python 1.6.1 may be located on the Internet using the following
unique, persistent identifier (known as a handle): 1895.22/1013.  This
Agreement may also be obtained from a proxy server on the Internet
using the following URL: http://hdl.handle.net/1895.22/1013".

3. In the event Licensee prepares a derivative work that is based on
or incorporates Python 1.6.1 or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python 1.6.1.

4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
basis.  CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.

5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.

7. This License Agreement shall be governed by the federal
intellectual property law of the United States, including without
limitation the federal copyright law, and, to the extent such
U.S. federal law does not apply, by the law of the Commonwealth of
Virginia, excluding Virginia's conflict of law provisions.
Notwithstanding the foregoing, with regard to derivative works based
on Python 1.6.1 that incorporate non-separable material that was
previously distributed under the GNU General Public License (GPL), the
law of the Commonwealth of Virginia shall govern this License
Agreement only as to issues arising under or with respect to
Paragraphs 4, 5, and 7 of this License Agreement.  Nothing in this
License Agreement shall be deemed to create any relationship of
agency, partnership, or joint venture between CNRI and Licensee.  This
License Agreement does not grant permission to use CNRI trademarks or
trade name in a trademark sense to endorse or promote products or
services of Licensee, or any third party.

8. By clicking on the "ACCEPT" button where indicated, or by copying,
installing or otherwise using Python 1.6.1, Licensee agrees to be
bound by the terms and conditions of this License Agreement.

        ACCEPT


CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
--------------------------------------------------

Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
The Netherlands.  All rights reserved.

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Stichting Mathematisch
Centrum or CWI not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior
permission.

STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
// Port of python's argparse module, version 3.9.0:
// https://github.com/python/cpython/blob/v3.9.0rc1/Lib/argparse.py

'use strict'

// Copyright (C) 2010-2020 Python Software Foundation.
// Copyright (C) 2020 argparse.js authors

/*
 * Command-line parsing library
 *
 * This module is an optparse-inspired command-line parsing library that:
 *
 *     - handles both optional and positional arguments
 *     - produces highly informative usage messages
 *     - supports parsers that dispatch to sub-parsers
 *
 * The following is a simple usage example that sums integers from the
 * command-line and writes the result to a file::
 *
 *     parser = argparse.ArgumentParser(
 *         description='sum the integers at the command line')
 *     parser.add_argument(
 *         'integers', metavar='int', nargs='+', type=int,
 *         help='an integer to be summed')
 *     parser.add_argument(
 *         '--log', default=sys.stdout, type=argparse.FileType('w'),
 *         help='the file where the sum should be written')
 *     args = parser.parse_args()
 *     args.log.write('%s' % sum(args.integers))
 *     args.log.close()
 *
 * The module contains the following public classes:
 *
 *     - ArgumentParser -- The main entry point for command-line parsing. As the
 *         example above shows, the add_argument() method is used to populate
 *         the parser with actions for optional and positional arguments. Then
 *         the parse_args() method is invoked to convert the args at the
 *         command-line into an object with attributes.
 *
 *     - ArgumentError -- The exception raised by ArgumentParser objects when
 *         there are errors with the parser's actions. Errors raised while
 *         parsing the command-line are caught by ArgumentParser and emitted
 *         as command-line messages.
 *
 *     - FileType -- A factory for defining types of files to be created. As the
 *         example above shows, instances of FileType are typically passed as
 *         the type= argument of add_argument() calls.
 *
 *     - Action -- The base class for parser actions. Typically actions are
 *         selected by passing strings like 'store_true' or 'append_const' to
 *         the action= argument of add_argument(). However, for greater
 *         customization of ArgumentParser actions, subclasses of Action may
 *         be defined and passed as the action= argument.
 *
 *     - HelpFormatter, RawDescriptionHelpFormatter, RawTextHelpFormatter,
 *         ArgumentDefaultsHelpFormatter -- Formatter classes which
 *         may be passed as the formatter_class= argument to the
 *         ArgumentParser constructor. HelpFormatter is the default,
 *         RawDescriptionHelpFormatter and RawTextHelpFormatter tell the parser
 *         not to change the formatting for help text, and
 *         ArgumentDefaultsHelpFormatter adds information about argument defaults
 *         to the help.
 *
 * All other classes in this module are considered implementation details.
 * (Also note that HelpFormatter and RawDescriptionHelpFormatter are only
 * considered public as object names -- the API of the formatter objects is
 * still considered an implementation detail.)
 */

const SUPPRESS = '==SUPPRESS=='

const OPTIONAL = '?'
const ZERO_OR_MORE = '*'
const ONE_OR_MORE = '+'
const PARSER = 'A...'
const REMAINDER = '...'
const _UNRECOGNIZED_ARGS_ATTR = '_unrecognized_args'


// ==================================
// Utility functions used for porting
// ==================================
const assert = require('assert')
const util = require('util')
const fs = require('fs')
const sub = require('./lib/sub')
const path = require('path')
const repr = util.inspect

function get_argv() {
    // omit first argument (which is assumed to be interpreter - `node`, `coffee`, `ts-node`, etc.)
    return process.argv.slice(1)
}

function get_terminal_size() {
    return {
        columns: +process.env.COLUMNS || process.stdout.columns || 80
    }
}

function hasattr(object, name) {
    return Object.prototype.hasOwnProperty.call(object, name)
}

function getattr(object, name, value) {
    return hasattr(object, name) ? object[name] : value
}

function setattr(object, name, value) {
    object[name] = value
}

function setdefault(object, name, value) {
    if (!hasattr(object, name)) object[name] = value
    return object[name]
}

function delattr(object, name) {
    delete object[name]
}

function range(from, to, step=1) {
    // range(10) is equivalent to range(0, 10)
    if (arguments.length === 1) [ to, from ] = [ from, 0 ]
    if (typeof from !== 'number' || typeof to !== 'number' || typeof step !== 'number') {
        throw new TypeError('argument cannot be interpreted as an integer')
    }
    if (step === 0) throw new TypeError('range() arg 3 must not be zero')

    let result = []
    if (step > 0) {
        for (let i = from; i < to; i += step) result.push(i)
    } else {
        for (let i = from; i > to; i += step) result.push(i)
    }
    return result
}

function splitlines(str, keepends = false) {
    let result
    if (!keepends) {
        result = str.split(/\r\n|[\n\r\v\f\x1c\x1d\x1e\x85\u2028\u2029]/)
    } else {
        result = []
        let parts = str.split(/(\r\n|[\n\r\v\f\x1c\x1d\x1e\x85\u2028\u2029])/)
        for (let i = 0; i < parts.length; i += 2) {
            result.push(parts[i] + (i + 1 < parts.length ? parts[i + 1] : ''))
        }
    }
    if (!result[result.length - 1]) result.pop()
    return result
}

function _string_lstrip(string, prefix_chars) {
    let idx = 0
    while (idx < string.length && prefix_chars.includes(string[idx])) idx++
    return idx ? string.slice(idx) : string
}

function _string_split(string, sep, maxsplit) {
    let result = string.split(sep)
    if (result.length > maxsplit) {
        result = result.slice(0, maxsplit).concat([ result.slice(maxsplit).join(sep) ])
    }
    return result
}

function _array_equal(array1, array2) {
    if (array1.length !== array2.length) return false
    for (let i = 0; i < array1.length; i++) {
        if (array1[i] !== array2[i]) return false
    }
    return true
}

function _array_remove(array, item) {
    let idx = array.indexOf(item)
    if (idx === -1) throw new TypeError(sub('%r not in list', item))
    array.splice(idx, 1)
}

// normalize choices to array;
// this isn't required in python because `in` and `map` operators work with anything,
// but in js dealing with multiple types here is too clunky
function _choices_to_array(choices) {
    if (choices === undefined) {
        return []
    } else if (Array.isArray(choices)) {
        return choices
    } else if (choices !== null && typeof choices[Symbol.iterator] === 'function') {
        return Array.from(choices)
    } else if (typeof choices === 'object' && choices !== null) {
        return Object.keys(choices)
    } else {
        throw new Error(sub('invalid choices value: %r', choices))
    }
}

// decorator that allows a class to be called without new
function _callable(cls) {
    let result = { // object is needed for inferred class name
        [cls.name]: function (...args) {
            let this_class = new.target === result || !new.target
            return Reflect.construct(cls, args, this_class ? cls : new.target)
        }
    }
    result[cls.name].prototype = cls.prototype
    // fix default tag for toString, e.g. [object Action] instead of [object Object]
    cls.prototype[Symbol.toStringTag] = cls.name
    return result[cls.name]
}

function _alias(object, from, to) {
    try {
        let name = object.constructor.name
        Object.defineProperty(object, from, {
            value: util.deprecate(object[to], sub('%s.%s() is renamed to %s.%s()',
                name, from, name, to)),
            enumerable: false
        })
    } catch {}
}

// decorator that allows snake_case class methods to be called with camelCase and vice versa
function _camelcase_alias(_class) {
    for (let name of Object.getOwnPropertyNames(_class.prototype)) {
        let camelcase = name.replace(/\w_[a-z]/g, s => s[0] + s[2].toUpperCase())
        if (camelcase !== name) _alias(_class.prototype, camelcase, name)
    }
    return _class
}

function _to_legacy_name(key) {
    key = key.replace(/\w_[a-z]/g, s => s[0] + s[2].toUpperCase())
    if (key === 'default') key = 'defaultValue'
    if (key === 'const') key = 'constant'
    return key
}

function _to_new_name(key) {
    if (key === 'defaultValue') key = 'default'
    if (key === 'constant') key = 'const'
    key = key.replace(/[A-Z]/g, c => '_' + c.toLowerCase())
    return key
}

// parse options
let no_default = Symbol('no_default_value')
function _parse_opts(args, descriptor) {
    function get_name() {
        let stack = new Error().stack.split('\n')
            .map(x => x.match(/^    at (.*) \(.*\)$/))
            .filter(Boolean)
            .map(m => m[1])
            .map(fn => fn.match(/[^ .]*$/)[0])

        if (stack.length && stack[0] === get_name.name) stack.shift()
        if (stack.length && stack[0] === _parse_opts.name) stack.shift()
        return stack.length ? stack[0] : ''
    }

    args = Array.from(args)
    let kwargs = {}
    let result = []
    let last_opt = args.length && args[args.length - 1]

    if (typeof last_opt === 'object' && last_opt !== null && !Array.isArray(last_opt) &&
        (!last_opt.constructor || last_opt.constructor.name === 'Object')) {
        kwargs = Object.assign({}, args.pop())
    }

    // LEGACY (v1 compatibility): camelcase
    let renames = []
    for (let key of Object.keys(descriptor)) {
        let old_name = _to_legacy_name(key)
        if (old_name !== key && (old_name in kwargs)) {
            if (key in kwargs) {
                // default and defaultValue specified at the same time, happens often in old tests
                //throw new TypeError(sub('%s() got multiple values for argument %r', get_name(), key))
            } else {
                kwargs[key] = kwargs[old_name]
            }
            renames.push([ old_name, key ])
            delete kwargs[old_name]
        }
    }
    if (renames.length) {
        let name = get_name()
        deprecate('camelcase_' + name, sub('%s(): following options are renamed: %s',
            name, renames.map(([ a, b ]) => sub('%r -> %r', a, b))))
    }
    // end

    let missing_positionals = []
    let positional_count = args.length

    for (let [ key, def ] of Object.entries(descriptor)) {
        if (key[0] === '*') {
            if (key.length > 0 && key[1] === '*') {
                // LEGACY (v1 compatibility): camelcase
                let renames = []
                for (let key of Object.keys(kwargs)) {
                    let new_name = _to_new_name(key)
                    if (new_name !== key && (key in kwargs)) {
                        if (new_name in kwargs) {
                            // default and defaultValue specified at the same time, happens often in old tests
                            //throw new TypeError(sub('%s() got multiple values for argument %r', get_name(), new_name))
                        } else {
                            kwargs[new_name] = kwargs[key]
                        }
                        renames.push([ key, new_name ])
                        delete kwargs[key]
                    }
                }
                if (renames.length) {
                    let name = get_name()
                    deprecate('camelcase_' + name, sub('%s(): following options are renamed: %s',
                        name, renames.map(([ a, b ]) => sub('%r -> %r', a, b))))
                }
                // end
                result.push(kwargs)
                kwargs = {}
            } else {
                result.push(args)
                args = []
            }
        } else if (key in kwargs && args.length > 0) {
            throw new TypeError(sub('%s() got multiple values for argument %r', get_name(), key))
        } else if (key in kwargs) {
            result.push(kwargs[key])
            delete kwargs[key]
        } else if (args.length > 0) {
            result.push(args.shift())
        } else if (def !== no_default) {
            result.push(def)
        } else {
            missing_positionals.push(key)
        }
    }

    if (Object.keys(kwargs).length) {
        throw new TypeError(sub('%s() got an unexpected keyword argument %r',
            get_name(), Object.keys(kwargs)[0]))
    }

    if (args.length) {
        let from = Object.entries(descriptor).filter(([ k, v ]) => k[0] !== '*' && v !== no_default).length
        let to = Object.entries(descriptor).filter(([ k ]) => k[0] !== '*').length
        throw new TypeError(sub('%s() takes %s positional argument%s but %s %s given',
            get_name(),
            from === to ? sub('from %s to %s', from, to) : to,
            from === to && to === 1 ? '' : 's',
            positional_count,
            positional_count === 1 ? 'was' : 'were'))
    }

    if (missing_positionals.length) {
        let strs = missing_positionals.map(repr)
        if (strs.length > 1) strs[strs.length - 1] = 'and ' + strs[strs.length - 1]
        let str_joined = strs.join(strs.length === 2 ? '' : ', ')
        throw new TypeError(sub('%s() missing %i required positional argument%s: %s',
            get_name(), strs.length, strs.length === 1 ? '' : 's', str_joined))
    }

    return result
}

let _deprecations = {}
function deprecate(id, string) {
    _deprecations[id] = _deprecations[id] || util.deprecate(() => {}, string)
    _deprecations[id]()
}


// =============================
// Utility functions and classes
// =============================
function _AttributeHolder(cls = Object) {
    /*
     *  Abstract base class that provides __repr__.
     *
     *  The __repr__ method returns a string in the format::
     *      ClassName(attr=name, attr=name, ...)
     *  The attributes are determined either by a class-level attribute,
     *  '_kwarg_names', or by inspecting the instance __dict__.
     */

    return class _AttributeHolder extends cls {
        [util.inspect.custom]() {
            let type_name = this.constructor.name
            let arg_strings = []
            let star_args = {}
            for (let arg of this._get_args()) {
                arg_strings.push(repr(arg))
            }
            for (let [ name, value ] of this._get_kwargs()) {
                if (/^[a-z_][a-z0-9_$]*$/i.test(name)) {
                    arg_strings.push(sub('%s=%r', name, value))
                } else {
                    star_args[name] = value
                }
            }
            if (Object.keys(star_args).length) {
                arg_strings.push(sub('**%s', repr(star_args)))
            }
            return sub('%s(%s)', type_name, arg_strings.join(', '))
        }

        toString() {
            return this[util.inspect.custom]()
        }

        _get_kwargs() {
            return Object.entries(this)
        }

        _get_args() {
            return []
        }
    }
}


function _copy_items(items) {
    if (items === undefined) {
        return []
    }
    return items.slice(0)
}


// ===============
// Formatting Help
// ===============
const HelpFormatter = _camelcase_alias(_callable(class HelpFormatter {
    /*
     *  Formatter for generating usage messages and argument help strings.
     *
     *  Only the name of this class is considered a public API. All the methods
     *  provided by the class are considered an implementation detail.
     */

    constructor() {
        let [
            prog,
            indent_increment,
            max_help_position,
            width
        ] = _parse_opts(arguments, {
            prog: no_default,
            indent_increment: 2,
            max_help_position: 24,
            width: undefined
        })

        // default setting for width
        if (width === undefined) {
            width = get_terminal_size().columns
            width -= 2
        }

        this._prog = prog
        this._indent_increment = indent_increment
        this._max_help_position = Math.min(max_help_position,
                                      Math.max(width - 20, indent_increment * 2))
        this._width = width

        this._current_indent = 0
        this._level = 0
        this._action_max_length = 0

        this._root_section = this._Section(this, undefined)
        this._current_section = this._root_section

        this._whitespace_matcher = /[ \t\n\r\f\v]+/g // equivalent to python /\s+/ with ASCII flag
        this._long_break_matcher = /\n\n\n+/g
    }

    // ===============================
    // Section and indentation methods
    // ===============================
    _indent() {
        this._current_indent += this._indent_increment
        this._level += 1
    }

    _dedent() {
        this._current_indent -= this._indent_increment
        assert(this._current_indent >= 0, 'Indent decreased below 0.')
        this._level -= 1
    }

    _add_item(func, args) {
        this._current_section.items.push([ func, args ])
    }

    // ========================
    // Message building methods
    // ========================
    start_section(heading) {
        this._indent()
        let section = this._Section(this, this._current_section, heading)
        this._add_item(section.format_help.bind(section), [])
        this._current_section = section
    }

    end_section() {
        this._current_section = this._current_section.parent
        this._dedent()
    }

    add_text(text) {
        if (text !== SUPPRESS && text !== undefined) {
            this._add_item(this._format_text.bind(this), [text])
        }
    }

    add_usage(usage, actions, groups, prefix = undefined) {
        if (usage !== SUPPRESS) {
            let args = [ usage, actions, groups, prefix ]
            this._add_item(this._format_usage.bind(this), args)
        }
    }

    add_argument(action) {
        if (action.help !== SUPPRESS) {

            // find all invocations
            let invocations = [this._format_action_invocation(action)]
            for (let subaction of this._iter_indented_subactions(action)) {
                invocations.push(this._format_action_invocation(subaction))
            }

            // update the maximum item length
            let invocation_length = Math.max(...invocations.map(invocation => invocation.length))
            let action_length = invocation_length + this._current_indent
            this._action_max_length = Math.max(this._action_max_length,
                                               action_length)

            // add the item to the list
            this._add_item(this._format_action.bind(this), [action])
        }
    }

    add_arguments(actions) {
        for (let action of actions) {
            this.add_argument(action)
        }
    }

    // =======================
    // Help-formatting methods
    // =======================
    format_help() {
        let help = this._root_section.format_help()
        if (help) {
            help = help.replace(this._long_break_matcher, '\n\n')
            help = help.replace(/^\n+|\n+$/g, '') + '\n'
        }
        return help
    }

    _join_parts(part_strings) {
        return part_strings.filter(part => part && part !== SUPPRESS).join('')
    }

    _format_usage(usage, actions, groups, prefix) {
        if (prefix === undefined) {
            prefix = 'usage: '
        }

        // if usage is specified, use that
        if (usage !== undefined) {
            usage = sub(usage, { prog: this._prog })

        // if no optionals or positionals are available, usage is just prog
        } else if (usage === undefined && !actions.length) {
            usage = sub('%(prog)s', { prog: this._prog })

        // if optionals and positionals are available, calculate usage
        } else if (usage === undefined) {
            let prog = sub('%(prog)s', { prog: this._prog })

            // split optionals from positionals
            let optionals = []
            let positionals = []
            for (let action of actions) {
                if (action.option_strings.length) {
                    optionals.push(action)
                } else {
                    positionals.push(action)
                }
            }

            // build full usage string
            let action_usage = this._format_actions_usage([].concat(optionals).concat(positionals), groups)
            usage = [ prog, action_usage ].map(String).join(' ')

            // wrap the usage parts if it's too long
            let text_width = this._width - this._current_indent
            if (prefix.length + usage.length > text_width) {

                // break usage into wrappable parts
                let part_regexp = /\(.*?\)+(?=\s|$)|\[.*?\]+(?=\s|$)|\S+/g
                let opt_usage = this._format_actions_usage(optionals, groups)
                let pos_usage = this._format_actions_usage(positionals, groups)
                let opt_parts = opt_usage.match(part_regexp) || []
                let pos_parts = pos_usage.match(part_regexp) || []
                assert(opt_parts.join(' ') === opt_usage)
                assert(pos_parts.join(' ') === pos_usage)

                // helper for wrapping lines
                let get_lines = (parts, indent, prefix = undefined) => {
                    let lines = []
                    let line = []
                    let line_len
                    if (prefix !== undefined) {
                        line_len = prefix.length - 1
                    } else {
                        line_len = indent.length - 1
                    }
                    for (let part of parts) {
                        if (line_len + 1 + part.length > text_width && line) {
                            lines.push(indent + line.join(' '))
                            line = []
                            line_len = indent.length - 1
                        }
                        line.push(part)
                        line_len += part.length + 1
                    }
                    if (line.length) {
                        lines.push(indent + line.join(' '))
                    }
                    if (prefix !== undefined) {
                        lines[0] = lines[0].slice(indent.length)
                    }
                    return lines
                }

                let lines

                // if prog is short, follow it with optionals or positionals
                if (prefix.length + prog.length <= 0.75 * text_width) {
                    let indent = ' '.repeat(prefix.length + prog.length + 1)
                    if (opt_parts.length) {
                        lines = get_lines([prog].concat(opt_parts), indent, prefix)
                        lines = lines.concat(get_lines(pos_parts, indent))
                    } else if (pos_parts.length) {
                        lines = get_lines([prog].concat(pos_parts), indent, prefix)
                    } else {
                        lines = [prog]
                    }

                // if prog is long, put it on its own line
                } else {
                    let indent = ' '.repeat(prefix.length)
                    let parts = [].concat(opt_parts).concat(pos_parts)
                    lines = get_lines(parts, indent)
                    if (lines.length > 1) {
                        lines = []
                        lines = lines.concat(get_lines(opt_parts, indent))
                        lines = lines.concat(get_lines(pos_parts, indent))
                    }
                    lines = [prog].concat(lines)
                }

                // join lines into usage
                usage = lines.join('\n')
            }
        }

        // prefix with 'usage:'
        return sub('%s%s\n\n', prefix, usage)
    }

    _format_actions_usage(actions, groups) {
        // find group indices and identify actions in groups
        let group_actions = new Set()
        let inserts = {}
        for (let group of groups) {
            let start = actions.indexOf(group._group_actions[0])
            if (start === -1) {
                continue
            } else {
                let end = start + group._group_actions.length
                if (_array_equal(actions.slice(start, end), group._group_actions)) {
                    for (let action of group._group_actions) {
                        group_actions.add(action)
                    }
                    if (!group.required) {
                        if (start in inserts) {
                            inserts[start] += ' ['
                        } else {
                            inserts[start] = '['
                        }
                        if (end in inserts) {
                            inserts[end] += ']'
                        } else {
                            inserts[end] = ']'
                        }
                    } else {
                        if (start in inserts) {
                            inserts[start] += ' ('
                        } else {
                            inserts[start] = '('
                        }
                        if (end in inserts) {
                            inserts[end] += ')'
                        } else {
                            inserts[end] = ')'
                        }
                    }
                    for (let i of range(start + 1, end)) {
                        inserts[i] = '|'
                    }
                }
            }
        }

        // collect all actions format strings
        let parts = []
        for (let [ i, action ] of Object.entries(actions)) {

            // suppressed arguments are marked with None
            // remove | separators for suppressed arguments
            if (action.help === SUPPRESS) {
                parts.push(undefined)
                if (inserts[+i] === '|') {
                    delete inserts[+i]
                } else if (inserts[+i + 1] === '|') {
                    delete inserts[+i + 1]
                }

            // produce all arg strings
            } else if (!action.option_strings.length) {
                let default_value = this._get_default_metavar_for_positional(action)
                let part = this._format_args(action, default_value)

                // if it's in a group, strip the outer []
                if (group_actions.has(action)) {
                    if (part[0] === '[' && part[part.length - 1] === ']') {
                        part = part.slice(1, -1)
                    }
                }

                // add the action string to the list
                parts.push(part)

            // produce the first way to invoke the option in brackets
            } else {
                let option_string = action.option_strings[0]
                let part

                // if the Optional doesn't take a value, format is:
                //    -s or --long
                if (action.nargs === 0) {
                    part = action.format_usage()

                // if the Optional takes a value, format is:
                //    -s ARGS or --long ARGS
                } else {
                    let default_value = this._get_default_metavar_for_optional(action)
                    let args_string = this._format_args(action, default_value)
                    part = sub('%s %s', option_string, args_string)
                }

                // make it look optional if it's not required or in a group
                if (!action.required && !group_actions.has(action)) {
                    part = sub('[%s]', part)
                }

                // add the action string to the list
                parts.push(part)
            }
        }

        // insert things at the necessary indices
        for (let i of Object.keys(inserts).map(Number).sort((a, b) => b - a)) {
            parts.splice(+i, 0, inserts[+i])
        }

        // join all the action items with spaces
        let text = parts.filter(Boolean).join(' ')

        // clean up separators for mutually exclusive groups
        text = text.replace(/([\[(]) /g, '$1')
        text = text.replace(/ ([\])])/g, '$1')
        text = text.replace(/[\[(] *[\])]/g, '')
        text = text.replace(/\(([^|]*)\)/g, '$1', text)
        text = text.trim()

        // return the text
        return text
    }

    _format_text(text) {
        if (text.includes('%(prog)')) {
            text = sub(text, { prog: this._prog })
        }
        let text_width = Math.max(this._width - this._current_indent, 11)
        let indent = ' '.repeat(this._current_indent)
        return this._fill_text(text, text_width, indent) + '\n\n'
    }

    _format_action(action) {
        // determine the required width and the entry label
        let help_position = Math.min(this._action_max_length + 2,
                                     this._max_help_position)
        let help_width = Math.max(this._width - help_position, 11)
        let action_width = help_position - this._current_indent - 2
        let action_header = this._format_action_invocation(action)
        let indent_first

        // no help; start on same line and add a final newline
        if (!action.help) {
            let tup = [ this._current_indent, '', action_header ]
            action_header = sub('%*s%s\n', ...tup)

        // short action name; start on the same line and pad two spaces
        } else if (action_header.length <= action_width) {
            let tup = [ this._current_indent, '', action_width, action_header ]
            action_header = sub('%*s%-*s  ', ...tup)
            indent_first = 0

        // long action name; start on the next line
        } else {
            let tup = [ this._current_indent, '', action_header ]
            action_header = sub('%*s%s\n', ...tup)
            indent_first = help_position
        }

        // collect the pieces of the action help
        let parts = [action_header]

        // if there was help for the action, add lines of help text
        if (action.help) {
            let help_text = this._expand_help(action)
            let help_lines = this._split_lines(help_text, help_width)
            parts.push(sub('%*s%s\n', indent_first, '', help_lines[0]))
            for (let line of help_lines.slice(1)) {
                parts.push(sub('%*s%s\n', help_position, '', line))
            }

        // or add a newline if the description doesn't end with one
        } else if (!action_header.endsWith('\n')) {
            parts.push('\n')
        }

        // if there are any sub-actions, add their help as well
        for (let subaction of this._iter_indented_subactions(action)) {
            parts.push(this._format_action(subaction))
        }

        // return a single string
        return this._join_parts(parts)
    }

    _format_action_invocation(action) {
        if (!action.option_strings.length) {
            let default_value = this._get_default_metavar_for_positional(action)
            let metavar = this._metavar_formatter(action, default_value)(1)[0]
            return metavar

        } else {
            let parts = []

            // if the Optional doesn't take a value, format is:
            //    -s, --long
            if (action.nargs === 0) {
                parts = parts.concat(action.option_strings)

            // if the Optional takes a value, format is:
            //    -s ARGS, --long ARGS
            } else {
                let default_value = this._get_default_metavar_for_optional(action)
                let args_string = this._format_args(action, default_value)
                for (let option_string of action.option_strings) {
                    parts.push(sub('%s %s', option_string, args_string))
                }
            }

            return parts.join(', ')
        }
    }

    _metavar_formatter(action, default_metavar) {
        let result
        if (action.metavar !== undefined) {
            result = action.metavar
        } else if (action.choices !== undefined) {
            let choice_strs = _choices_to_array(action.choices).map(String)
            result = sub('{%s}', choice_strs.join(','))
        } else {
            result = default_metavar
        }

        function format(tuple_size) {
            if (Array.isArray(result)) {
                return result
            } else {
                return Array(tuple_size).fill(result)
            }
        }
        return format
    }

    _format_args(action, default_metavar) {
        let get_metavar = this._metavar_formatter(action, default_metavar)
        let result
        if (action.nargs === undefined) {
            result = sub('%s', ...get_metavar(1))
        } else if (action.nargs === OPTIONAL) {
            result = sub('[%s]', ...get_metavar(1))
        } else if (action.nargs === ZERO_OR_MORE) {
            let metavar = get_metavar(1)
            if (metavar.length === 2) {
                result = sub('[%s [%s ...]]', ...metavar)
            } else {
                result = sub('[%s ...]', ...metavar)
            }
        } else if (action.nargs === ONE_OR_MORE) {
            result = sub('%s [%s ...]', ...get_metavar(2))
        } else if (action.nargs === REMAINDER) {
            result = '...'
        } else if (action.nargs === PARSER) {
            result = sub('%s ...', ...get_metavar(1))
        } else if (action.nargs === SUPPRESS) {
            result = ''
        } else {
            let formats
            try {
                formats = range(action.nargs).map(() => '%s')
            } catch (err) {
                throw new TypeError('invalid nargs value')
            }
            result = sub(formats.join(' '), ...get_metavar(action.nargs))
        }
        return result
    }

    _expand_help(action) {
        let params = Object.assign({ prog: this._prog }, action)
        for (let name of Object.keys(params)) {
            if (params[name] === SUPPRESS) {
                delete params[name]
            }
        }
        for (let name of Object.keys(params)) {
            if (params[name] && params[name].name) {
                params[name] = params[name].name
            }
        }
        if (params.choices !== undefined) {
            let choices_str = _choices_to_array(params.choices).map(String).join(', ')
            params.choices = choices_str
        }
        // LEGACY (v1 compatibility): camelcase
        for (let key of Object.keys(params)) {
            let old_name = _to_legacy_name(key)
            if (old_name !== key) {
                params[old_name] = params[key]
            }
        }
        // end
        return sub(this._get_help_string(action), params)
    }

    * _iter_indented_subactions(action) {
        if (typeof action._get_subactions === 'function') {
            this._indent()
            yield* action._get_subactions()
            this._dedent()
        }
    }

    _split_lines(text, width) {
        text = text.replace(this._whitespace_matcher, ' ').trim()
        // The textwrap module is used only for formatting help.
        // Delay its import for speeding up the common usage of argparse.
        let textwrap = require('./lib/textwrap')
        return textwrap.wrap(text, { width })
    }

    _fill_text(text, width, indent) {
        text = text.replace(this._whitespace_matcher, ' ').trim()
        let textwrap = require('./lib/textwrap')
        return textwrap.fill(text, { width,
                                     initial_indent: indent,
                                     subsequent_indent: indent })
    }

    _get_help_string(action) {
        return action.help
    }

    _get_default_metavar_for_optional(action) {
        return action.dest.toUpperCase()
    }

    _get_default_metavar_for_positional(action) {
        return action.dest
    }
}))

HelpFormatter.prototype._Section = _callable(class _Section {

    constructor(formatter, parent, heading = undefined) {
        this.formatter = formatter
        this.parent = parent
        this.heading = heading
        this.items = []
    }

    format_help() {
        // format the indented section
        if (this.parent !== undefined) {
            this.formatter._indent()
        }
        let item_help = this.formatter._join_parts(this.items.map(([ func, args ]) => func.apply(null, args)))
        if (this.parent !== undefined) {
            this.formatter._dedent()
        }

        // return nothing if the section was empty
        if (!item_help) {
            return ''
        }

        // add the heading if the section was non-empty
        let heading
        if (this.heading !== SUPPRESS && this.heading !== undefined) {
            let current_indent = this.formatter._current_indent
            heading = sub('%*s%s:\n', current_indent, '', this.heading)
        } else {
            heading = ''
        }

        // join the section-initial newline, the heading and the help
        return this.formatter._join_parts(['\n', heading, item_help, '\n'])
    }
})


const RawDescriptionHelpFormatter = _camelcase_alias(_callable(class RawDescriptionHelpFormatter extends HelpFormatter {
    /*
     *  Help message formatter which retains any formatting in descriptions.
     *
     *  Only the name of this class is considered a public API. All the methods
     *  provided by the class are considered an implementation detail.
     */

    _fill_text(text, width, indent) {
        return splitlines(text, true).map(line => indent + line).join('')
    }
}))


const RawTextHelpFormatter = _camelcase_alias(_callable(class RawTextHelpFormatter extends RawDescriptionHelpFormatter {
    /*
     *  Help message formatter which retains formatting of all help text.
     *
     *  Only the name of this class is considered a public API. All the methods
     *  provided by the class are considered an implementation detail.
     */

    _split_lines(text/*, width*/) {
        return splitlines(text)
    }
}))


const ArgumentDefaultsHelpFormatter = _camelcase_alias(_callable(class ArgumentDefaultsHelpFormatter extends HelpFormatter {
    /*
     *  Help message formatter which adds default values to argument help.
     *
     *  Only the name of this class is considered a public API. All the methods
     *  provided by the class are considered an implementation detail.
     */

    _get_help_string(action) {
        let help = action.help
        // LEGACY (v1 compatibility): additional check for defaultValue needed
        if (!action.help.includes('%(default)') && !action.help.includes('%(defaultValue)')) {
            if (action.default !== SUPPRESS) {
                let defaulting_nargs = [OPTIONAL, ZERO_OR_MORE]
                if (action.option_strings.length || defaulting_nargs.includes(action.nargs)) {
                    help += ' (default: %(default)s)'
                }
            }
        }
        return help
    }
}))


const MetavarTypeHelpFormatter = _camelcase_alias(_callable(class MetavarTypeHelpFormatter extends HelpFormatter {
    /*
     *  Help message formatter which uses the argument 'type' as the default
     *  metavar value (instead of the argument 'dest')
     *
     *  Only the name of this class is considered a public API. All the methods
     *  provided by the class are considered an implementation detail.
     */

    _get_default_metavar_for_optional(action) {
        return typeof action.type === 'function' ? action.type.name : action.type
    }

    _get_default_metavar_for_positional(action) {
        return typeof action.type === 'function' ? action.type.name : action.type
    }
}))


// =====================
// Options and Arguments
// =====================
function _get_action_name(argument) {
    if (argument === undefined) {
        return undefined
    } else if (argument.option_strings.length) {
        return argument.option_strings.join('/')
    } else if (![ undefined, SUPPRESS ].includes(argument.metavar)) {
        return argument.metavar
    } else if (![ undefined, SUPPRESS ].includes(argument.dest)) {
        return argument.dest
    } else {
        return undefined
    }
}


const ArgumentError = _callable(class ArgumentError extends Error {
    /*
     *  An error from creating or using an argument (optional or positional).
     *
     *  The string value of this exception is the message, augmented with
     *  information about the argument that caused it.
     */

    constructor(argument, message) {
        super()
        this.name = 'ArgumentError'
        this._argument_name = _get_action_name(argument)
        this._message = message
        this.message = this.str()
    }

    str() {
        let format
        if (this._argument_name === undefined) {
            format = '%(message)s'
        } else {
            format = 'argument %(argument_name)s: %(message)s'
        }
        return sub(format, { message: this._message,
                             argument_name: this._argument_name })
    }
})


const ArgumentTypeError = _callable(class ArgumentTypeError extends Error {
    /*
     * An error from trying to convert a command line string to a type.
     */

    constructor(message) {
        super(message)
        this.name = 'ArgumentTypeError'
    }
})


// ==============
// Action classes
// ==============
const Action = _camelcase_alias(_callable(class Action extends _AttributeHolder(Function) {
    /*
     *  Information about how to convert command line strings to Python objects.
     *
     *  Action objects are used by an ArgumentParser to represent the information
     *  needed to parse a single argument from one or more strings from the
     *  command line. The keyword arguments to the Action constructor are also
     *  all attributes of Action instances.
     *
     *  Keyword Arguments:
     *
     *      - option_strings -- A list of command-line option strings which
     *          should be associated with this action.
     *
     *      - dest -- The name of the attribute to hold the created object(s)
     *
     *      - nargs -- The number of command-line arguments that should be
     *          consumed. By default, one argument will be consumed and a single
     *          value will be produced.  Other values include:
     *              - N (an integer) consumes N arguments (and produces a list)
     *              - '?' consumes zero or one arguments
     *              - '*' consumes zero or more arguments (and produces a list)
     *              - '+' consumes one or more arguments (and produces a list)
     *          Note that the difference between the default and nargs=1 is that
     *          with the default, a single value will be produced, while with
     *          nargs=1, a list containing a single value will be produced.
     *
     *      - const -- The value to be produced if the option is specified and the
     *          option uses an action that takes no values.
     *
     *      - default -- The value to be produced if the option is not specified.
     *
     *      - type -- A callable that accepts a single string argument, and
     *          returns the converted value.  The standard Python types str, int,
     *          float, and complex are useful examples of such callables.  If None,
     *          str is used.
     *
     *      - choices -- A container of values that should be allowed. If not None,
     *          after a command-line argument has been converted to the appropriate
     *          type, an exception will be raised if it is not a member of this
     *          collection.
     *
     *      - required -- True if the action must always be specified at the
     *          command line. This is only meaningful for optional command-line
     *          arguments.
     *
     *      - help -- The help string describing the argument.
     *
     *      - metavar -- The name to be used for the option's argument with the
     *          help string. If None, the 'dest' value will be used as the name.
     */

    constructor() {
        let [
            option_strings,
            dest,
            nargs,
            const_value,
            default_value,
            type,
            choices,
            required,
            help,
            metavar
        ] = _parse_opts(arguments, {
            option_strings: no_default,
            dest: no_default,
            nargs: undefined,
            const: undefined,
            default: undefined,
            type: undefined,
            choices: undefined,
            required: false,
            help: undefined,
            metavar: undefined
        })

        // when this class is called as a function, redirect it to .call() method of itself
        super('return arguments.callee.call.apply(arguments.callee, arguments)')

        this.option_strings = option_strings
        this.dest = dest
        this.nargs = nargs
        this.const = const_value
        this.default = default_value
        this.type = type
        this.choices = choices
        this.required = required
        this.help = help
        this.metavar = metavar
    }

    _get_kwargs() {
        let names = [
            'option_strings',
            'dest',
            'nargs',
            'const',
            'default',
            'type',
            'choices',
            'help',
            'metavar'
        ]
        return names.map(name => [ name, getattr(this, name) ])
    }

    format_usage() {
        return this.option_strings[0]
    }

    call(/*parser, namespace, values, option_string = undefined*/) {
        throw new Error('.call() not defined')
    }
}))


const BooleanOptionalAction = _camelcase_alias(_callable(class BooleanOptionalAction extends Action {

    constructor() {
        let [
            option_strings,
            dest,
            default_value,
            type,
            choices,
            required,
            help,
            metavar
        ] = _parse_opts(arguments, {
            option_strings: no_default,
            dest: no_default,
            default: undefined,
            type: undefined,
            choices: undefined,
            required: false,
            help: undefined,
            metavar: undefined
        })

        let _option_strings = []
        for (let option_string of option_strings) {
            _option_strings.push(option_string)

            if (option_string.startsWith('--')) {
                option_string = '--no-' + option_string.slice(2)
                _option_strings.push(option_string)
            }
        }

        if (help !== undefined && default_value !== undefined) {
            help += ` (default: ${default_value})`
        }

        super({
            option_strings: _option_strings,
            dest,
            nargs: 0,
            default: default_value,
            type,
            choices,
            required,
            help,
            metavar
        })
    }

    call(parser, namespace, values, option_string = undefined) {
        if (this.option_strings.includes(option_string)) {
            setattr(namespace, this.dest, !option_string.startsWith('--no-'))
        }
    }

    format_usage() {
        return this.option_strings.join(' | ')
    }
}))


const _StoreAction = _callable(class _StoreAction extends Action {

    constructor() {
        let [
            option_strings,
            dest,
            nargs,
            const_value,
            default_value,
            type,
            choices,
            required,
            help,
            metavar
        ] = _parse_opts(arguments, {
            option_strings: no_default,
            dest: no_default,
            nargs: undefined,
            const: undefined,
            default: undefined,
            type: undefined,
            choices: undefined,
            required: false,
            help: undefined,
            metavar: undefined
        })

        if (nargs === 0) {
            throw new TypeError('nargs for store actions must be != 0; if you ' +
                        'have nothing to store, actions such as store ' +
                        'true or store const may be more appropriate')
        }
        if (const_value !== undefined && nargs !== OPTIONAL) {
            throw new TypeError(sub('nargs must be %r to supply const', OPTIONAL))
        }
        super({
            option_strings,
            dest,
            nargs,
            const: const_value,
            default: default_value,
            type,
            choices,
            required,
            help,
            metavar
        })
    }

    call(parser, namespace, values/*, option_string = undefined*/) {
        setattr(namespace, this.dest, values)
    }
})


const _StoreConstAction = _callable(class _StoreConstAction extends Action {

    constructor() {
        let [
            option_strings,
            dest,
            const_value,
            default_value,
            required,
            help
            //, metavar
        ] = _parse_opts(arguments, {
            option_strings: no_default,
            dest: no_default,
            const: no_default,
            default: undefined,
            required: false,
            help: undefined,
            metavar: undefined
        })

        super({
            option_strings,
            dest,
            nargs: 0,
            const: const_value,
            default: default_value,
            required,
            help
        })
    }

    call(parser, namespace/*, values, option_string = undefined*/) {
        setattr(namespace, this.dest, this.const)
    }
})


const _StoreTrueAction = _callable(class _StoreTrueAction extends _StoreConstAction {

    constructor() {
        let [
            option_strings,
            dest,
            default_value,
            required,
            help
        ] = _parse_opts(arguments, {
            option_strings: no_default,
            dest: no_default,
            default: false,
            required: false,
            help: undefined
        })

        super({
            option_strings,
            dest,
            const: true,
            default: default_value,
            required,
            help
        })
    }
})


const _StoreFalseAction = _callable(class _StoreFalseAction extends _StoreConstAction {

    constructor() {
        let [
            option_strings,
            dest,
            default_value,
            required,
            help
        ] = _parse_opts(arguments, {
            option_strings: no_default,
            dest: no_default,
            default: true,
            required: false,
            help: undefined
        })

        super({
            option_strings,
            dest,
            const: false,
            default: default_value,
            required,
            help
        })
    }
})


const _AppendAction = _callable(class _AppendAction extends Action {

    constructor() {
        let [
            option_strings,
            dest,
            nargs,
            const_value,
            default_value,
            type,
            choices,
            required,
            help,
            metavar
        ] = _parse_opts(arguments, {
            option_strings: no_default,
            dest: no_default,
            nargs: undefined,
            const: undefined,
            default: undefined,
            type: undefined,
            choices: undefined,
            required: false,
            help: undefined,
            metavar: undefined
        })

        if (nargs === 0) {
            throw new TypeError('nargs for append actions must be != 0; if arg ' +
                        'strings are not supplying the value to append, ' +
                        'the append const action may be more appropriate')
        }
        if (const_value !== undefined && nargs !== OPTIONAL) {
            throw new TypeError(sub('nargs must be %r to supply const', OPTIONAL))
        }
        super({
            option_strings,
            dest,
            nargs,
            const: const_value,
            default: default_value,
            type,
            choices,
            required,
            help,
            metavar
        })
    }

    call(parser, namespace, values/*, option_string = undefined*/) {
        let items = getattr(namespace, this.dest, undefined)
        items = _copy_items(items)
        items.push(values)
        setattr(namespace, this.dest, items)
    }
})


const _AppendConstAction = _callable(class _AppendConstAction extends Action {

    constructor() {
        let [
            option_strings,
            dest,
            const_value,
            default_value,
            required,
            help,
            metavar
        ] = _parse_opts(arguments, {
            option_strings: no_default,
            dest: no_default,
            const: no_default,
            default: undefined,
            required: false,
            help: undefined,
            metavar: undefined
        })

        super({
            option_strings,
            dest,
            nargs: 0,
            const: const_value,
            default: default_value,
            required,
            help,
            metavar
        })
    }

    call(parser, namespace/*, values, option_string = undefined*/) {
        let items = getattr(namespace, this.dest, undefined)
        items = _copy_items(items)
        items.push(this.const)
        setattr(namespace, this.dest, items)
    }
})


const _CountAction = _callable(class _CountAction extends Action {

    constructor() {
        let [
            option_strings,
            dest,
            default_value,
            required,
            help
        ] = _parse_opts(arguments, {
            option_strings: no_default,
            dest: no_default,
            default: undefined,
            required: false,
            help: undefined
        })

        super({
            option_strings,
            dest,
            nargs: 0,
            default: default_value,
            required,
            help
        })
    }

    call(parser, namespace/*, values, option_string = undefined*/) {
        let count = getattr(namespace, this.dest, undefined)
        if (count === undefined) {
            count = 0
        }
        setattr(namespace, this.dest, count + 1)
    }
})


const _HelpAction = _callable(class _HelpAction extends Action {

    constructor() {
        let [
            option_strings,
            dest,
            default_value,
            help
        ] = _parse_opts(arguments, {
            option_strings: no_default,
            dest: SUPPRESS,
            default: SUPPRESS,
            help: undefined
        })

        super({
            option_strings,
            dest,
            default: default_value,
            nargs: 0,
            help
        })
    }

    call(parser/*, namespace, values, option_string = undefined*/) {
        parser.print_help()
        parser.exit()
    }
})


const _VersionAction = _callable(class _VersionAction extends Action {

    constructor() {
        let [
            option_strings,
            version,
            dest,
            default_value,
            help
        ] = _parse_opts(arguments, {
            option_strings: no_default,
            version: undefined,
            dest: SUPPRESS,
            default: SUPPRESS,
            help: "show program's version number and exit"
        })

        super({
            option_strings,
            dest,
            default: default_value,
            nargs: 0,
            help
        })
        this.version = version
    }

    call(parser/*, namespace, values, option_string = undefined*/) {
        let version = this.version
        if (version === undefined) {
            version = parser.version
        }
        let formatter = parser._get_formatter()
        formatter.add_text(version)
        parser._print_message(formatter.format_help(), process.stdout)
        parser.exit()
    }
})


const _SubParsersAction = _camelcase_alias(_callable(class _SubParsersAction extends Action {

    constructor() {
        let [
            option_strings,
            prog,
            parser_class,
            dest,
            required,
            help,
            metavar
        ] = _parse_opts(arguments, {
            option_strings: no_default,
            prog: no_default,
            parser_class: no_default,
            dest: SUPPRESS,
            required: false,
            help: undefined,
            metavar: undefined
        })

        let name_parser_map = {}

        super({
            option_strings,
            dest,
            nargs: PARSER,
            choices: name_parser_map,
            required,
            help,
            metavar
        })

        this._prog_prefix = prog
        this._parser_class = parser_class
        this._name_parser_map = name_parser_map
        this._choices_actions = []
    }

    add_parser() {
        let [
            name,
            kwargs
        ] = _parse_opts(arguments, {
            name: no_default,
            '**kwargs': no_default
        })

        // set prog from the existing prefix
        if (kwargs.prog === undefined) {
            kwargs.prog = sub('%s %s', this._prog_prefix, name)
        }

        let aliases = getattr(kwargs, 'aliases', [])
        delete kwargs.aliases

        // create a pseudo-action to hold the choice help
        if ('help' in kwargs) {
            let help = kwargs.help
            delete kwargs.help
            let choice_action = this._ChoicesPseudoAction(name, aliases, help)
            this._choices_actions.push(choice_action)
        }

        // create the parser and add it to the map
        let parser = new this._parser_class(kwargs)
        this._name_parser_map[name] = parser

        // make parser available under aliases also
        for (let alias of aliases) {
            this._name_parser_map[alias] = parser
        }

        return parser
    }

    _get_subactions() {
        return this._choices_actions
    }

    call(parser, namespace, values/*, option_string = undefined*/) {
        let parser_name = values[0]
        let arg_strings = values.slice(1)

        // set the parser name if requested
        if (this.dest !== SUPPRESS) {
            setattr(namespace, this.dest, parser_name)
        }

        // select the parser
        if (hasattr(this._name_parser_map, parser_name)) {
            parser = this._name_parser_map[parser_name]
        } else {
            let args = {parser_name,
                        choices: this._name_parser_map.join(', ')}
            let msg = sub('unknown parser %(parser_name)r (choices: %(choices)s)', args)
            throw new ArgumentError(this, msg)
        }

        // parse all the remaining options into the namespace
        // store any unrecognized options on the object, so that the top
        // level parser can decide what to do with them

        // In case this subparser defines new defaults, we parse them
        // in a new namespace object and then update the original
        // namespace for the relevant parts.
        let subnamespace
        [ subnamespace, arg_strings ] = parser.parse_known_args(arg_strings, undefined)
        for (let [ key, value ] of Object.entries(subnamespace)) {
            setattr(namespace, key, value)
        }

        if (arg_strings.length) {
            setdefault(namespace, _UNRECOGNIZED_ARGS_ATTR, [])
            getattr(namespace, _UNRECOGNIZED_ARGS_ATTR).push(...arg_strings)
        }
    }
}))


_SubParsersAction.prototype._ChoicesPseudoAction = _callable(class _ChoicesPseudoAction extends Action {
    constructor(name, aliases, help) {
        let metavar = name, dest = name
        if (aliases.length) {
            metavar += sub(' (%s)', aliases.join(', '))
        }
        super({ option_strings: [], dest, help, metavar })
    }
})


const _ExtendAction = _callable(class _ExtendAction extends _AppendAction {
    call(parser, namespace, values/*, option_string = undefined*/) {
        let items = getattr(namespace, this.dest, undefined)
        items = _copy_items(items)
        items = items.concat(values)
        setattr(namespace, this.dest, items)
    }
})


// ==============
// Type classes
// ==============
const FileType = _callable(class FileType extends Function {
    /*
     *  Factory for creating file object types
     *
     *  Instances of FileType are typically passed as type= arguments to the
     *  ArgumentParser add_argument() method.
     *
     *  Keyword Arguments:
     *      - mode -- A string indicating how the file is to be opened. Accepts the
     *          same values as the builtin open() function.
     *      - bufsize -- The file's desired buffer size. Accepts the same values as
     *          the builtin open() function.
     *      - encoding -- The file's encoding. Accepts the same values as the
     *          builtin open() function.
     *      - errors -- A string indicating how encoding and decoding errors are to
     *          be handled. Accepts the same value as the builtin open() function.
     */

    constructor() {
        let [
            flags,
            encoding,
            mode,
            autoClose,
            emitClose,
            start,
            end,
            highWaterMark,
            fs
        ] = _parse_opts(arguments, {
            flags: 'r',
            encoding: undefined,
            mode: undefined, // 0o666
            autoClose: undefined, // true
            emitClose: undefined, // false
            start: undefined, // 0
            end: undefined, // Infinity
            highWaterMark: undefined, // 64 * 1024
            fs: undefined
        })

        // when this class is called as a function, redirect it to .call() method of itself
        super('return arguments.callee.call.apply(arguments.callee, arguments)')

        Object.defineProperty(this, 'name', {
            get() {
                return sub('FileType(%r)', flags)
            }
        })
        this._flags = flags
        this._options = {}
        if (encoding !== undefined) this._options.encoding = encoding
        if (mode !== undefined) this._options.mode = mode
        if (autoClose !== undefined) this._options.autoClose = autoClose
        if (emitClose !== undefined) this._options.emitClose = emitClose
        if (start !== undefined) this._options.start = start
        if (end !== undefined) this._options.end = end
        if (highWaterMark !== undefined) this._options.highWaterMark = highWaterMark
        if (fs !== undefined) this._options.fs = fs
    }

    call(string) {
        // the special argument "-" means sys.std{in,out}
        if (string === '-') {
            if (this._flags.includes('r')) {
                return process.stdin
            } else if (this._flags.includes('w')) {
                return process.stdout
            } else {
                let msg = sub('argument "-" with mode %r', this._flags)
                throw new TypeError(msg)
            }
        }

        // all other arguments are used as file names
        let fd
        try {
            fd = fs.openSync(string, this._flags, this._options.mode)
        } catch (e) {
            let args = { filename: string, error: e.message }
            let message = "can't open '%(filename)s': %(error)s"
            throw new ArgumentTypeError(sub(message, args))
        }

        let options = Object.assign({ fd, flags: this._flags }, this._options)
        if (this._flags.includes('r')) {
            return fs.createReadStream(undefined, options)
        } else if (this._flags.includes('w')) {
            return fs.createWriteStream(undefined, options)
        } else {
            let msg = sub('argument "%s" with mode %r', string, this._flags)
            throw new TypeError(msg)
        }
    }

    [util.inspect.custom]() {
        let args = [ this._flags ]
        let kwargs = Object.entries(this._options).map(([ k, v ]) => {
            if (k === 'mode') v = { value: v, [util.inspect.custom]() { return '0o' + this.value.toString(8) } }
            return [ k, v ]
        })
        let args_str = []
                .concat(args.filter(arg => arg !== -1).map(repr))
                .concat(kwargs.filter(([/*kw*/, arg]) => arg !== undefined)
                    .map(([kw, arg]) => sub('%s=%r', kw, arg)))
                .join(', ')
        return sub('%s(%s)', this.constructor.name, args_str)
    }

    toString() {
        return this[util.inspect.custom]()
    }
})

// ===========================
// Optional and Positional Parsing
// ===========================
const Namespace = _callable(class Namespace extends _AttributeHolder() {
    /*
     *  Simple object for storing attributes.
     *
     *  Implements equality by attribute names and values, and provides a simple
     *  string representation.
     */

    constructor(options = {}) {
        super()
        Object.assign(this, options)
    }
})

// unset string tag to mimic plain object
Namespace.prototype[Symbol.toStringTag] = undefined


const _ActionsContainer = _camelcase_alias(_callable(class _ActionsContainer {

    constructor() {
        let [
            description,
            prefix_chars,
            argument_default,
            conflict_handler
        ] = _parse_opts(arguments, {
            description: no_default,
            prefix_chars: no_default,
            argument_default: no_default,
            conflict_handler: no_default
        })

        this.description = description
        this.argument_default = argument_default
        this.prefix_chars = prefix_chars
        this.conflict_handler = conflict_handler

        // set up registries
        this._registries = {}

        // register actions
        this.register('action', undefined, _StoreAction)
        this.register('action', 'store', _StoreAction)
        this.register('action', 'store_const', _StoreConstAction)
        this.register('action', 'store_true', _StoreTrueAction)
        this.register('action', 'store_false', _StoreFalseAction)
        this.register('action', 'append', _AppendAction)
        this.register('action', 'append_const', _AppendConstAction)
        this.register('action', 'count', _CountAction)
        this.register('action', 'help', _HelpAction)
        this.register('action', 'version', _VersionAction)
        this.register('action', 'parsers', _SubParsersAction)
        this.register('action', 'extend', _ExtendAction)
        // LEGACY (v1 compatibility): camelcase variants
        ;[ 'storeConst', 'storeTrue', 'storeFalse', 'appendConst' ].forEach(old_name => {
            let new_name = _to_new_name(old_name)
            this.register('action', old_name, util.deprecate(this._registry_get('action', new_name),
                sub('{action: "%s"} is renamed to {action: "%s"}', old_name, new_name)))
        })
        // end

        // raise an exception if the conflict handler is invalid
        this._get_handler()

        // action storage
        this._actions = []
        this._option_string_actions = {}

        // groups
        this._action_groups = []
        this._mutually_exclusive_groups = []

        // defaults storage
        this._defaults = {}

        // determines whether an "option" looks like a negative number
        this._negative_number_matcher = /^-\d+$|^-\d*\.\d+$/

        // whether or not there are any optionals that look like negative
        // numbers -- uses a list so it can be shared and edited
        this._has_negative_number_optionals = []
    }

    // ====================
    // Registration methods
    // ====================
    register(registry_name, value, object) {
        let registry = setdefault(this._registries, registry_name, {})
        registry[value] = object
    }

    _registry_get(registry_name, value, default_value = undefined) {
        return getattr(this._registries[registry_name], value, default_value)
    }

    // ==================================
    // Namespace default accessor methods
    // ==================================
    set_defaults(kwargs) {
        Object.assign(this._defaults, kwargs)

        // if these defaults match any existing arguments, replace
        // the previous default on the object with the new one
        for (let action of this._actions) {
            if (action.dest in kwargs) {
                action.default = kwargs[action.dest]
            }
        }
    }

    get_default(dest) {
        for (let action of this._actions) {
            if (action.dest === dest && action.default !== undefined) {
                return action.default
            }
        }
        return this._defaults[dest]
    }


    // =======================
    // Adding argument actions
    // =======================
    add_argument() {
        /*
         *  add_argument(dest, ..., name=value, ...)
         *  add_argument(option_string, option_string, ..., name=value, ...)
         */
        let [
            args,
            kwargs
        ] = _parse_opts(arguments, {
            '*args': no_default,
            '**kwargs': no_default
        })
        // LEGACY (v1 compatibility), old-style add_argument([ args ], { options })
        if (args.length === 1 && Array.isArray(args[0])) {
            args = args[0]
            deprecate('argument-array',
                sub('use add_argument(%(args)s, {...}) instead of add_argument([ %(args)s ], { ... })', {
                    args: args.map(repr).join(', ')
                }))
        }
        // end

        // if no positional args are supplied or only one is supplied and
        // it doesn't look like an option string, parse a positional
        // argument
        let chars = this.prefix_chars
        if (!args.length || args.length === 1 && !chars.includes(args[0][0])) {
            if (args.length && 'dest' in kwargs) {
                throw new TypeError('dest supplied twice for positional argument')
            }
            kwargs = this._get_positional_kwargs(...args, kwargs)

        // otherwise, we're adding an optional argument
        } else {
            kwargs = this._get_optional_kwargs(...args, kwargs)
        }

        // if no default was supplied, use the parser-level default
        if (!('default' in kwargs)) {
            let dest = kwargs.dest
            if (dest in this._defaults) {
                kwargs.default = this._defaults[dest]
            } else if (this.argument_default !== undefined) {
                kwargs.default = this.argument_default
            }
        }

        // create the action object, and add it to the parser
        let action_class = this._pop_action_class(kwargs)
        if (typeof action_class !== 'function') {
            throw new TypeError(sub('unknown action "%s"', action_class))
        }
        // eslint-disable-next-line new-cap
        let action = new action_class(kwargs)

        // raise an error if the action type is not callable
        let type_func = this._registry_get('type', action.type, action.type)
        if (typeof type_func !== 'function') {
            throw new TypeError(sub('%r is not callable', type_func))
        }

        if (type_func === FileType) {
            throw new TypeError(sub('%r is a FileType class object, instance of it' +
                                    ' must be passed', type_func))
        }

        // raise an error if the metavar does not match the type
        if ('_get_formatter' in this) {
            try {
                this._get_formatter()._format_args(action, undefined)
            } catch (err) {
                // check for 'invalid nargs value' is an artifact of TypeError and ValueError in js being the same
                if (err instanceof TypeError && err.message !== 'invalid nargs value') {
                    throw new TypeError('length of metavar tuple does not match nargs')
                } else {
                    throw err
                }
            }
        }

        return this._add_action(action)
    }

    add_argument_group() {
        let group = _ArgumentGroup(this, ...arguments)
        this._action_groups.push(group)
        return group
    }

    add_mutually_exclusive_group() {
        // eslint-disable-next-line no-use-before-define
        let group = _MutuallyExclusiveGroup(this, ...arguments)
        this._mutually_exclusive_groups.push(group)
        return group
    }

    _add_action(action) {
        // resolve any conflicts
        this._check_conflict(action)

        // add to actions list
        this._actions.push(action)
        action.container = this

        // index the action by any option strings it has
        for (let option_string of action.option_strings) {
            this._option_string_actions[option_string] = action
        }

        // set the flag if any option strings look like negative numbers
        for (let option_string of action.option_strings) {
            if (this._negative_number_matcher.test(option_string)) {
                if (!this._has_negative_number_optionals.length) {
                    this._has_negative_number_optionals.push(true)
                }
            }
        }

        // return the created action
        return action
    }

    _remove_action(action) {
        _array_remove(this._actions, action)
    }

    _add_container_actions(container) {
        // collect groups by titles
        let title_group_map = {}
        for (let group of this._action_groups) {
            if (group.title in title_group_map) {
                let msg = 'cannot merge actions - two groups are named %r'
                throw new TypeError(sub(msg, group.title))
            }
            title_group_map[group.title] = group
        }

        // map each action to its group
        let group_map = new Map()
        for (let group of container._action_groups) {

            // if a group with the title exists, use that, otherwise
            // create a new group matching the container's group
            if (!(group.title in title_group_map)) {
                title_group_map[group.title] = this.add_argument_group({
                    title: group.title,
                    description: group.description,
                    conflict_handler: group.conflict_handler
                })
            }

            // map the actions to their new group
            for (let action of group._group_actions) {
                group_map.set(action, title_group_map[group.title])
            }
        }

        // add container's mutually exclusive groups
        // NOTE: if add_mutually_exclusive_group ever gains title= and
        // description= then this code will need to be expanded as above
        for (let group of container._mutually_exclusive_groups) {
            let mutex_group = this.add_mutually_exclusive_group({
                required: group.required
            })

            // map the actions to their new mutex group
            for (let action of group._group_actions) {
                group_map.set(action, mutex_group)
            }
        }

        // add all actions to this container or their group
        for (let action of container._actions) {
            group_map.get(action)._add_action(action)
        }
    }

    _get_positional_kwargs() {
        let [
            dest,
            kwargs
        ] = _parse_opts(arguments, {
            dest: no_default,
            '**kwargs': no_default
        })

        // make sure required is not specified
        if ('required' in kwargs) {
            let msg = "'required' is an invalid argument for positionals"
            throw new TypeError(msg)
        }

        // mark positional arguments as required if at least one is
        // always required
        if (![OPTIONAL, ZERO_OR_MORE].includes(kwargs.nargs)) {
            kwargs.required = true
        }
        if (kwargs.nargs === ZERO_OR_MORE && !('default' in kwargs)) {
            kwargs.required = true
        }

        // return the keyword arguments with no option strings
        return Object.assign(kwargs, { dest, option_strings: [] })
    }

    _get_optional_kwargs() {
        let [
            args,
            kwargs
        ] = _parse_opts(arguments, {
            '*args': no_default,
            '**kwargs': no_default
        })

        // determine short and long option strings
        let option_strings = []
        let long_option_strings = []
        let option_string
        for (option_string of args) {
            // error on strings that don't start with an appropriate prefix
            if (!this.prefix_chars.includes(option_string[0])) {
                let args = {option: option_string,
                            prefix_chars: this.prefix_chars}
                let msg = 'invalid option string %(option)r: ' +
                          'must start with a character %(prefix_chars)r'
                throw new TypeError(sub(msg, args))
            }

            // strings starting with two prefix characters are long options
            option_strings.push(option_string)
            if (option_string.length > 1 && this.prefix_chars.includes(option_string[1])) {
                long_option_strings.push(option_string)
            }
        }

        // infer destination, '--foo-bar' -> 'foo_bar' and '-x' -> 'x'
        let dest = kwargs.dest
        delete kwargs.dest
        if (dest === undefined) {
            let dest_option_string
            if (long_option_strings.length) {
                dest_option_string = long_option_strings[0]
            } else {
                dest_option_string = option_strings[0]
            }
            dest = _string_lstrip(dest_option_string, this.prefix_chars)
            if (!dest) {
                let msg = 'dest= is required for options like %r'
                throw new TypeError(sub(msg, option_string))
            }
            dest = dest.replace(/-/g, '_')
        }

        // return the updated keyword arguments
        return Object.assign(kwargs, { dest, option_strings })
    }

    _pop_action_class(kwargs, default_value = undefined) {
        let action = getattr(kwargs, 'action', default_value)
        delete kwargs.action
        return this._registry_get('action', action, action)
    }

    _get_handler() {
        // determine function from conflict handler string
        let handler_func_name = sub('_handle_conflict_%s', this.conflict_handler)
        if (typeof this[handler_func_name] === 'function') {
            return this[handler_func_name]
        } else {
            let msg = 'invalid conflict_resolution value: %r'
            throw new TypeError(sub(msg, this.conflict_handler))
        }
    }

    _check_conflict(action) {

        // find all options that conflict with this option
        let confl_optionals = []
        for (let option_string of action.option_strings) {
            if (hasattr(this._option_string_actions, option_string)) {
                let confl_optional = this._option_string_actions[option_string]
                confl_optionals.push([ option_string, confl_optional ])
            }
        }

        // resolve any conflicts
        if (confl_optionals.length) {
            let conflict_handler = this._get_handler()
            conflict_handler.call(this, action, confl_optionals)
        }
    }

    _handle_conflict_error(action, conflicting_actions) {
        let message = conflicting_actions.length === 1 ?
            'conflicting option string: %s' :
            'conflicting option strings: %s'
        let conflict_string = conflicting_actions.map(([ option_string/*, action*/ ]) => option_string).join(', ')
        throw new ArgumentError(action, sub(message, conflict_string))
    }

    _handle_conflict_resolve(action, conflicting_actions) {

        // remove all conflicting options
        for (let [ option_string, action ] of conflicting_actions) {

            // remove the conflicting option
            _array_remove(action.option_strings, option_string)
            delete this._option_string_actions[option_string]

            // if the option now has no option string, remove it from the
            // container holding it
            if (!action.option_strings.length) {
                action.container._remove_action(action)
            }
        }
    }
}))


const _ArgumentGroup = _callable(class _ArgumentGroup extends _ActionsContainer {

    constructor() {
        let [
            container,
            title,
            description,
            kwargs
        ] = _parse_opts(arguments, {
            container: no_default,
            title: undefined,
            description: undefined,
            '**kwargs': no_default
        })

        // add any missing keyword arguments by checking the container
        setdefault(kwargs, 'conflict_handler', container.conflict_handler)
        setdefault(kwargs, 'prefix_chars', container.prefix_chars)
        setdefault(kwargs, 'argument_default', container.argument_default)
        super(Object.assign({ description }, kwargs))

        // group attributes
        this.title = title
        this._group_actions = []

        // share most attributes with the container
        this._registries = container._registries
        this._actions = container._actions
        this._option_string_actions = container._option_string_actions
        this._defaults = container._defaults
        this._has_negative_number_optionals =
            container._has_negative_number_optionals
        this._mutually_exclusive_groups = container._mutually_exclusive_groups
    }

    _add_action(action) {
        action = super._add_action(action)
        this._group_actions.push(action)
        return action
    }

    _remove_action(action) {
        super._remove_action(action)
        _array_remove(this._group_actions, action)
    }
})


const _MutuallyExclusiveGroup = _callable(class _MutuallyExclusiveGroup extends _ArgumentGroup {

    constructor() {
        let [
            container,
            required
        ] = _parse_opts(arguments, {
            container: no_default,
            required: false
        })

        super(container)
        this.required = required
        this._container = container
    }

    _add_action(action) {
        if (action.required) {
            let msg = 'mutually exclusive arguments must be optional'
            throw new TypeError(msg)
        }
        action = this._container._add_action(action)
        this._group_actions.push(action)
        return action
    }

    _remove_action(action) {
        this._container._remove_action(action)
        _array_remove(this._group_actions, action)
    }
})


const ArgumentParser = _camelcase_alias(_callable(class ArgumentParser extends _AttributeHolder(_ActionsContainer) {
    /*
     *  Object for parsing command line strings into Python objects.
     *
     *  Keyword Arguments:
     *      - prog -- The name of the program (default: sys.argv[0])
     *      - usage -- A usage message (default: auto-generated from arguments)
     *      - description -- A description of what the program does
     *      - epilog -- Text following the argument descriptions
     *      - parents -- Parsers whose arguments should be copied into this one
     *      - formatter_class -- HelpFormatter class for printing help messages
     *      - prefix_chars -- Characters that prefix optional arguments
     *      - fromfile_prefix_chars -- Characters that prefix files containing
     *          additional arguments
     *      - argument_default -- The default value for all arguments
     *      - conflict_handler -- String indicating how to handle conflicts
     *      - add_help -- Add a -h/-help option
     *      - allow_abbrev -- Allow long options to be abbreviated unambiguously
     *      - exit_on_error -- Determines whether or not ArgumentParser exits with
     *          error info when an error occurs
     */

    constructor() {
        let [
            prog,
            usage,
            description,
            epilog,
            parents,
            formatter_class,
            prefix_chars,
            fromfile_prefix_chars,
            argument_default,
            conflict_handler,
            add_help,
            allow_abbrev,
            exit_on_error,
            debug, // LEGACY (v1 compatibility), debug mode
            version // LEGACY (v1 compatibility), version
        ] = _parse_opts(arguments, {
            prog: undefined,
            usage: undefined,
            description: undefined,
            epilog: undefined,
            parents: [],
            formatter_class: HelpFormatter,
            prefix_chars: '-',
            fromfile_prefix_chars: undefined,
            argument_default: undefined,
            conflict_handler: 'error',
            add_help: true,
            allow_abbrev: true,
            exit_on_error: true,
            debug: undefined, // LEGACY (v1 compatibility), debug mode
            version: undefined // LEGACY (v1 compatibility), version
        })

        // LEGACY (v1 compatibility)
        if (debug !== undefined) {
            deprecate('debug',
                'The "debug" argument to ArgumentParser is deprecated. Please ' +
                'override ArgumentParser.exit function instead.'
            )
        }

        if (version !== undefined) {
            deprecate('version',
                'The "version" argument to ArgumentParser is deprecated. Please use ' +
                "add_argument(..., { action: 'version', version: 'N', ... }) instead."
            )
        }
        // end

        super({
            description,
            prefix_chars,
            argument_default,
            conflict_handler
        })

        // default setting for prog
        if (prog === undefined) {
            prog = path.basename(get_argv()[0] || '')
        }

        this.prog = prog
        this.usage = usage
        this.epilog = epilog
        this.formatter_class = formatter_class
        this.fromfile_prefix_chars = fromfile_prefix_chars
        this.add_help = add_help
        this.allow_abbrev = allow_abbrev
        this.exit_on_error = exit_on_error
        // LEGACY (v1 compatibility), debug mode
        this.debug = debug
        // end

        this._positionals = this.add_argument_group('positional arguments')
        this._optionals = this.add_argument_group('optional arguments')
        this._subparsers = undefined

        // register types
        function identity(string) {
            return string
        }
        this.register('type', undefined, identity)
        this.register('type', null, identity)
        this.register('type', 'auto', identity)
        this.register('type', 'int', function (x) {
            let result = Number(x)
            if (!Number.isInteger(result)) {
                throw new TypeError(sub('could not convert string to int: %r', x))
            }
            return result
        })
        this.register('type', 'float', function (x) {
            let result = Number(x)
            if (isNaN(result)) {
                throw new TypeError(sub('could not convert string to float: %r', x))
            }
            return result
        })
        this.register('type', 'str', String)
        // LEGACY (v1 compatibility): custom types
        this.register('type', 'string',
            util.deprecate(String, 'use {type:"str"} or {type:String} instead of {type:"string"}'))
        // end

        // add help argument if necessary
        // (using explicit default to override global argument_default)
        let default_prefix = prefix_chars.includes('-') ? '-' : prefix_chars[0]
        if (this.add_help) {
            this.add_argument(
                default_prefix + 'h',
                default_prefix.repeat(2) + 'help',
                {
                    action: 'help',
                    default: SUPPRESS,
                    help: 'show this help message and exit'
                }
            )
        }
        // LEGACY (v1 compatibility), version
        if (version) {
            this.add_argument(
                default_prefix + 'v',
                default_prefix.repeat(2) + 'version',
                {
                    action: 'version',
                    default: SUPPRESS,
                    version: this.version,
                    help: "show program's version number and exit"
                }
            )
        }
        // end

        // add parent arguments and defaults
        for (let parent of parents) {
            this._add_container_actions(parent)
            Object.assign(this._defaults, parent._defaults)
        }
    }

    // =======================
    // Pretty __repr__ methods
    // =======================
    _get_kwargs() {
        let names = [
            'prog',
            'usage',
            'description',
            'formatter_class',
            'conflict_handler',
            'add_help'
        ]
        return names.map(name => [ name, getattr(this, name) ])
    }

    // ==================================
    // Optional/Positional adding methods
    // ==================================
    add_subparsers() {
        let [
            kwargs
        ] = _parse_opts(arguments, {
            '**kwargs': no_default
        })

        if (this._subparsers !== undefined) {
            this.error('cannot have multiple subparser arguments')
        }

        // add the parser class to the arguments if it's not present
        setdefault(kwargs, 'parser_class', this.constructor)

        if ('title' in kwargs || 'description' in kwargs) {
            let title = getattr(kwargs, 'title', 'subcommands')
            let description = getattr(kwargs, 'description', undefined)
            delete kwargs.title
            delete kwargs.description
            this._subparsers = this.add_argument_group(title, description)
        } else {
            this._subparsers = this._positionals
        }

        // prog defaults to the usage message of this parser, skipping
        // optional arguments and with no "usage:" prefix
        if (kwargs.prog === undefined) {
            let formatter = this._get_formatter()
            let positionals = this._get_positional_actions()
            let groups = this._mutually_exclusive_groups
            formatter.add_usage(this.usage, positionals, groups, '')
            kwargs.prog = formatter.format_help().trim()
        }

        // create the parsers action and add it to the positionals list
        let parsers_class = this._pop_action_class(kwargs, 'parsers')
        // eslint-disable-next-line new-cap
        let action = new parsers_class(Object.assign({ option_strings: [] }, kwargs))
        this._subparsers._add_action(action)

        // return the created parsers action
        return action
    }

    _add_action(action) {
        if (action.option_strings.length) {
            this._optionals._add_action(action)
        } else {
            this._positionals._add_action(action)
        }
        return action
    }

    _get_optional_actions() {
        return this._actions.filter(action => action.option_strings.length)
    }

    _get_positional_actions() {
        return this._actions.filter(action => !action.option_strings.length)
    }

    // =====================================
    // Command line argument parsing methods
    // =====================================
    parse_args(args = undefined, namespace = undefined) {
        let argv
        [ args, argv ] = this.parse_known_args(args, namespace)
        if (argv && argv.length > 0) {
            let msg = 'unrecognized arguments: %s'
            this.error(sub(msg, argv.join(' ')))
        }
        return args
    }

    parse_known_args(args = undefined, namespace = undefined) {
        if (args === undefined) {
            args = get_argv().slice(1)
        }

        // default Namespace built from parser defaults
        if (namespace === undefined) {
            namespace = new Namespace()
        }

        // add any action defaults that aren't present
        for (let action of this._actions) {
            if (action.dest !== SUPPRESS) {
                if (!hasattr(namespace, action.dest)) {
                    if (action.default !== SUPPRESS) {
                        setattr(namespace, action.dest, action.default)
                    }
                }
            }
        }

        // add any parser defaults that aren't present
        for (let dest of Object.keys(this._defaults)) {
            if (!hasattr(namespace, dest)) {
                setattr(namespace, dest, this._defaults[dest])
            }
        }

        // parse the arguments and exit if there are any errors
        if (this.exit_on_error) {
            try {
                [ namespace, args ] = this._parse_known_args(args, namespace)
            } catch (err) {
                if (err instanceof ArgumentError) {
                    this.error(err.message)
                } else {
                    throw err
                }
            }
        } else {
            [ namespace, args ] = this._parse_known_args(args, namespace)
        }

        if (hasattr(namespace, _UNRECOGNIZED_ARGS_ATTR)) {
            args = args.concat(getattr(namespace, _UNRECOGNIZED_ARGS_ATTR))
            delattr(namespace, _UNRECOGNIZED_ARGS_ATTR)
        }

        return [ namespace, args ]
    }

    _parse_known_args(arg_strings, namespace) {
        // replace arg strings that are file references
        if (this.fromfile_prefix_chars !== undefined) {
            arg_strings = this._read_args_from_files(arg_strings)
        }

        // map all mutually exclusive arguments to the other arguments
        // they can't occur with
        let action_conflicts = new Map()
        for (let mutex_group of this._mutually_exclusive_groups) {
            let group_actions = mutex_group._group_actions
            for (let [ i, mutex_action ] of Object.entries(mutex_group._group_actions)) {
                let conflicts = action_conflicts.get(mutex_action) || []
                conflicts = conflicts.concat(group_actions.slice(0, +i))
                conflicts = conflicts.concat(group_actions.slice(+i + 1))
                action_conflicts.set(mutex_action, conflicts)
            }
        }

        // find all option indices, and determine the arg_string_pattern
        // which has an 'O' if there is an option at an index,
        // an 'A' if there is an argument, or a '-' if there is a '--'
        let option_string_indices = {}
        let arg_string_pattern_parts = []
        let arg_strings_iter = Object.entries(arg_strings)[Symbol.iterator]()
        for (let [ i, arg_string ] of arg_strings_iter) {

            // all args after -- are non-options
            if (arg_string === '--') {
                arg_string_pattern_parts.push('-')
                for ([ i, arg_string ] of arg_strings_iter) {
                    arg_string_pattern_parts.push('A')
                }

            // otherwise, add the arg to the arg strings
            // and note the index if it was an option
            } else {
                let option_tuple = this._parse_optional(arg_string)
                let pattern
                if (option_tuple === undefined) {
                    pattern = 'A'
                } else {
                    option_string_indices[i] = option_tuple
                    pattern = 'O'
                }
                arg_string_pattern_parts.push(pattern)
            }
        }

        // join the pieces together to form the pattern
        let arg_strings_pattern = arg_string_pattern_parts.join('')

        // converts arg strings to the appropriate and then takes the action
        let seen_actions = new Set()
        let seen_non_default_actions = new Set()
        let extras

        let take_action = (action, argument_strings, option_string = undefined) => {
            seen_actions.add(action)
            let argument_values = this._get_values(action, argument_strings)

            // error if this argument is not allowed with other previously
            // seen arguments, assuming that actions that use the default
            // value don't really count as "present"
            if (argument_values !== action.default) {
                seen_non_default_actions.add(action)
                for (let conflict_action of action_conflicts.get(action) || []) {
                    if (seen_non_default_actions.has(conflict_action)) {
                        let msg = 'not allowed with argument %s'
                        let action_name = _get_action_name(conflict_action)
                        throw new ArgumentError(action, sub(msg, action_name))
                    }
                }
            }

            // take the action if we didn't receive a SUPPRESS value
            // (e.g. from a default)
            if (argument_values !== SUPPRESS) {
                action(this, namespace, argument_values, option_string)
            }
        }

        // function to convert arg_strings into an optional action
        let consume_optional = start_index => {

            // get the optional identified at this index
            let option_tuple = option_string_indices[start_index]
            let [ action, option_string, explicit_arg ] = option_tuple

            // identify additional optionals in the same arg string
            // (e.g. -xyz is the same as -x -y -z if no args are required)
            let action_tuples = []
            let stop
            for (;;) {

                // if we found no optional action, skip it
                if (action === undefined) {
                    extras.push(arg_strings[start_index])
                    return start_index + 1
                }

                // if there is an explicit argument, try to match the
                // optional's string arguments to only this
                if (explicit_arg !== undefined) {
                    let arg_count = this._match_argument(action, 'A')

                    // if the action is a single-dash option and takes no
                    // arguments, try to parse more single-dash options out
                    // of the tail of the option string
                    let chars = this.prefix_chars
                    if (arg_count === 0 && !chars.includes(option_string[1])) {
                        action_tuples.push([ action, [], option_string ])
                        let char = option_string[0]
                        option_string = char + explicit_arg[0]
                        let new_explicit_arg = explicit_arg.slice(1) || undefined
                        let optionals_map = this._option_string_actions
                        if (hasattr(optionals_map, option_string)) {
                            action = optionals_map[option_string]
                            explicit_arg = new_explicit_arg
                        } else {
                            let msg = 'ignored explicit argument %r'
                            throw new ArgumentError(action, sub(msg, explicit_arg))
                        }

                    // if the action expect exactly one argument, we've
                    // successfully matched the option; exit the loop
                    } else if (arg_count === 1) {
                        stop = start_index + 1
                        let args = [ explicit_arg ]
                        action_tuples.push([ action, args, option_string ])
                        break

                    // error if a double-dash option did not use the
                    // explicit argument
                    } else {
                        let msg = 'ignored explicit argument %r'
                        throw new ArgumentError(action, sub(msg, explicit_arg))
                    }

                // if there is no explicit argument, try to match the
                // optional's string arguments with the following strings
                // if successful, exit the loop
                } else {
                    let start = start_index + 1
                    let selected_patterns = arg_strings_pattern.slice(start)
                    let arg_count = this._match_argument(action, selected_patterns)
                    stop = start + arg_count
                    let args = arg_strings.slice(start, stop)
                    action_tuples.push([ action, args, option_string ])
                    break
                }
            }

            // add the Optional to the list and return the index at which
            // the Optional's string args stopped
            assert(action_tuples.length)
            for (let [ action, args, option_string ] of action_tuples) {
                take_action(action, args, option_string)
            }
            return stop
        }

        // the list of Positionals left to be parsed; this is modified
        // by consume_positionals()
        let positionals = this._get_positional_actions()

        // function to convert arg_strings into positional actions
        let consume_positionals = start_index => {
            // match as many Positionals as possible
            let selected_pattern = arg_strings_pattern.slice(start_index)
            let arg_counts = this._match_arguments_partial(positionals, selected_pattern)

            // slice off the appropriate arg strings for each Positional
            // and add the Positional and its args to the list
            for (let i = 0; i < positionals.length && i < arg_counts.length; i++) {
                let action = positionals[i]
                let arg_count = arg_counts[i]
                let args = arg_strings.slice(start_index, start_index + arg_count)
                start_index += arg_count
                take_action(action, args)
            }

            // slice off the Positionals that we just parsed and return the
            // index at which the Positionals' string args stopped
            positionals = positionals.slice(arg_counts.length)
            return start_index
        }

        // consume Positionals and Optionals alternately, until we have
        // passed the last option string
        extras = []
        let start_index = 0
        let max_option_string_index = Math.max(-1, ...Object.keys(option_string_indices).map(Number))
        while (start_index <= max_option_string_index) {

            // consume any Positionals preceding the next option
            let next_option_string_index = Math.min(
                // eslint-disable-next-line no-loop-func
                ...Object.keys(option_string_indices).map(Number).filter(index => index >= start_index)
            )
            if (start_index !== next_option_string_index) {
                let positionals_end_index = consume_positionals(start_index)

                // only try to parse the next optional if we didn't consume
                // the option string during the positionals parsing
                if (positionals_end_index > start_index) {
                    start_index = positionals_end_index
                    continue
                } else {
                    start_index = positionals_end_index
                }
            }

            // if we consumed all the positionals we could and we're not
            // at the index of an option string, there were extra arguments
            if (!(start_index in option_string_indices)) {
                let strings = arg_strings.slice(start_index, next_option_string_index)
                extras = extras.concat(strings)
                start_index = next_option_string_index
            }

            // consume the next optional and any arguments for it
            start_index = consume_optional(start_index)
        }

        // consume any positionals following the last Optional
        let stop_index = consume_positionals(start_index)

        // if we didn't consume all the argument strings, there were extras
        extras = extras.concat(arg_strings.slice(stop_index))

        // make sure all required actions were present and also convert
        // action defaults which were not given as arguments
        let required_actions = []
        for (let action of this._actions) {
            if (!seen_actions.has(action)) {
                if (action.required) {
                    required_actions.push(_get_action_name(action))
                } else {
                    // Convert action default now instead of doing it before
                    // parsing arguments to avoid calling convert functions
                    // twice (which may fail) if the argument was given, but
                    // only if it was defined already in the namespace
                    if (action.default !== undefined &&
                        typeof action.default === 'string' &&
                        hasattr(namespace, action.dest) &&
                        action.default === getattr(namespace, action.dest)) {
                        setattr(namespace, action.dest,
                                this._get_value(action, action.default))
                    }
                }
            }
        }

        if (required_actions.length) {
            this.error(sub('the following arguments are required: %s',
                       required_actions.join(', ')))
        }

        // make sure all required groups had one option present
        for (let group of this._mutually_exclusive_groups) {
            if (group.required) {
                let no_actions_used = true
                for (let action of group._group_actions) {
                    if (seen_non_default_actions.has(action)) {
                        no_actions_used = false
                        break
                    }
                }

                // if no actions were used, report the error
                if (no_actions_used) {
                    let names = group._group_actions
                        .filter(action => action.help !== SUPPRESS)
                        .map(action => _get_action_name(action))
                    let msg = 'one of the arguments %s is required'
                    this.error(sub(msg, names.join(' ')))
                }
            }
        }

        // return the updated namespace and the extra arguments
        return [ namespace, extras ]
    }

    _read_args_from_files(arg_strings) {
        // expand arguments referencing files
        let new_arg_strings = []
        for (let arg_string of arg_strings) {

            // for regular arguments, just add them back into the list
            if (!arg_string || !this.fromfile_prefix_chars.includes(arg_string[0])) {
                new_arg_strings.push(arg_string)

            // replace arguments referencing files with the file content
            } else {
                try {
                    let args_file = fs.readFileSync(arg_string.slice(1), 'utf8')
                    let arg_strings = []
                    for (let arg_line of splitlines(args_file)) {
                        for (let arg of this.convert_arg_line_to_args(arg_line)) {
                            arg_strings.push(arg)
                        }
                    }
                    arg_strings = this._read_args_from_files(arg_strings)
                    new_arg_strings = new_arg_strings.concat(arg_strings)
                } catch (err) {
                    this.error(err.message)
                }
            }
        }

        // return the modified argument list
        return new_arg_strings
    }

    convert_arg_line_to_args(arg_line) {
        return [arg_line]
    }

    _match_argument(action, arg_strings_pattern) {
        // match the pattern for this action to the arg strings
        let nargs_pattern = this._get_nargs_pattern(action)
        let match = arg_strings_pattern.match(new RegExp('^' + nargs_pattern))

        // raise an exception if we weren't able to find a match
        if (match === null) {
            let nargs_errors = {
                undefined: 'expected one argument',
                [OPTIONAL]: 'expected at most one argument',
                [ONE_OR_MORE]: 'expected at least one argument'
            }
            let msg = nargs_errors[action.nargs]
            if (msg === undefined) {
                msg = sub(action.nargs === 1 ? 'expected %s argument' : 'expected %s arguments', action.nargs)
            }
            throw new ArgumentError(action, msg)
        }

        // return the number of arguments matched
        return match[1].length
    }

    _match_arguments_partial(actions, arg_strings_pattern) {
        // progressively shorten the actions list by slicing off the
        // final actions until we find a match
        let result = []
        for (let i of range(actions.length, 0, -1)) {
            let actions_slice = actions.slice(0, i)
            let pattern = actions_slice.map(action => this._get_nargs_pattern(action)).join('')
            let match = arg_strings_pattern.match(new RegExp('^' + pattern))
            if (match !== null) {
                result = result.concat(match.slice(1).map(string => string.length))
                break
            }
        }

        // return the list of arg string counts
        return result
    }

    _parse_optional(arg_string) {
        // if it's an empty string, it was meant to be a positional
        if (!arg_string) {
            return undefined
        }

        // if it doesn't start with a prefix, it was meant to be positional
        if (!this.prefix_chars.includes(arg_string[0])) {
            return undefined
        }

        // if the option string is present in the parser, return the action
        if (arg_string in this._option_string_actions) {
            let action = this._option_string_actions[arg_string]
            return [ action, arg_string, undefined ]
        }

        // if it's just a single character, it was meant to be positional
        if (arg_string.length === 1) {
            return undefined
        }

        // if the option string before the "=" is present, return the action
        if (arg_string.includes('=')) {
            let [ option_string, explicit_arg ] = _string_split(arg_string, '=', 1)
            if (option_string in this._option_string_actions) {
                let action = this._option_string_actions[option_string]
                return [ action, option_string, explicit_arg ]
            }
        }

        // search through all possible prefixes of the option string
        // and all actions in the parser for possible interpretations
        let option_tuples = this._get_option_tuples(arg_string)

        // if multiple actions match, the option string was ambiguous
        if (option_tuples.length > 1) {
            let options = option_tuples.map(([ /*action*/, option_string/*, explicit_arg*/ ]) => option_string).join(', ')
            let args = {option: arg_string, matches: options}
            let msg = 'ambiguous option: %(option)s could match %(matches)s'
            this.error(sub(msg, args))

        // if exactly one action matched, this segmentation is good,
        // so return the parsed action
        } else if (option_tuples.length === 1) {
            let [ option_tuple ] = option_tuples
            return option_tuple
        }

        // if it was not found as an option, but it looks like a negative
        // number, it was meant to be positional
        // unless there are negative-number-like options
        if (this._negative_number_matcher.test(arg_string)) {
            if (!this._has_negative_number_optionals.length) {
                return undefined
            }
        }

        // if it contains a space, it was meant to be a positional
        if (arg_string.includes(' ')) {
            return undefined
        }

        // it was meant to be an optional but there is no such option
        // in this parser (though it might be a valid option in a subparser)
        return [ undefined, arg_string, undefined ]
    }

    _get_option_tuples(option_string) {
        let result = []

        // option strings starting with two prefix characters are only
        // split at the '='
        let chars = this.prefix_chars
        if (chars.includes(option_string[0]) && chars.includes(option_string[1])) {
            if (this.allow_abbrev) {
                let option_prefix, explicit_arg
                if (option_string.includes('=')) {
                    [ option_prefix, explicit_arg ] = _string_split(option_string, '=', 1)
                } else {
                    option_prefix = option_string
                    explicit_arg = undefined
                }
                for (let option_string of Object.keys(this._option_string_actions)) {
                    if (option_string.startsWith(option_prefix)) {
                        let action = this._option_string_actions[option_string]
                        let tup = [ action, option_string, explicit_arg ]
                        result.push(tup)
                    }
                }
            }

        // single character options can be concatenated with their arguments
        // but multiple character options always have to have their argument
        // separate
        } else if (chars.includes(option_string[0]) && !chars.includes(option_string[1])) {
            let option_prefix = option_string
            let explicit_arg = undefined
            let short_option_prefix = option_string.slice(0, 2)
            let short_explicit_arg = option_string.slice(2)

            for (let option_string of Object.keys(this._option_string_actions)) {
                if (option_string === short_option_prefix) {
                    let action = this._option_string_actions[option_string]
                    let tup = [ action, option_string, short_explicit_arg ]
                    result.push(tup)
                } else if (option_string.startsWith(option_prefix)) {
                    let action = this._option_string_actions[option_string]
                    let tup = [ action, option_string, explicit_arg ]
                    result.push(tup)
                }
            }

        // shouldn't ever get here
        } else {
            this.error(sub('unexpected option string: %s', option_string))
        }

        // return the collected option tuples
        return result
    }

    _get_nargs_pattern(action) {
        // in all examples below, we have to allow for '--' args
        // which are represented as '-' in the pattern
        let nargs = action.nargs
        let nargs_pattern

        // the default (None) is assumed to be a single argument
        if (nargs === undefined) {
            nargs_pattern = '(-*A-*)'

        // allow zero or one arguments
        } else if (nargs === OPTIONAL) {
            nargs_pattern = '(-*A?-*)'

        // allow zero or more arguments
        } else if (nargs === ZERO_OR_MORE) {
            nargs_pattern = '(-*[A-]*)'

        // allow one or more arguments
        } else if (nargs === ONE_OR_MORE) {
            nargs_pattern = '(-*A[A-]*)'

        // allow any number of options or arguments
        } else if (nargs === REMAINDER) {
            nargs_pattern = '([-AO]*)'

        // allow one argument followed by any number of options or arguments
        } else if (nargs === PARSER) {
            nargs_pattern = '(-*A[-AO]*)'

        // suppress action, like nargs=0
        } else if (nargs === SUPPRESS) {
            nargs_pattern = '(-*-*)'

        // all others should be integers
        } else {
            nargs_pattern = sub('(-*%s-*)', 'A'.repeat(nargs).split('').join('-*'))
        }

        // if this is an optional action, -- is not allowed
        if (action.option_strings.length) {
            nargs_pattern = nargs_pattern.replace(/-\*/g, '')
            nargs_pattern = nargs_pattern.replace(/-/g, '')
        }

        // return the pattern
        return nargs_pattern
    }

    // ========================
    // Alt command line argument parsing, allowing free intermix
    // ========================

    parse_intermixed_args(args = undefined, namespace = undefined) {
        let argv
        [ args, argv ] = this.parse_known_intermixed_args(args, namespace)
        if (argv.length) {
            let msg = 'unrecognized arguments: %s'
            this.error(sub(msg, argv.join(' ')))
        }
        return args
    }

    parse_known_intermixed_args(args = undefined, namespace = undefined) {
        // returns a namespace and list of extras
        //
        // positional can be freely intermixed with optionals.  optionals are
        // first parsed with all positional arguments deactivated.  The 'extras'
        // are then parsed.  If the parser definition is incompatible with the
        // intermixed assumptions (e.g. use of REMAINDER, subparsers) a
        // TypeError is raised.
        //
        // positionals are 'deactivated' by setting nargs and default to
        // SUPPRESS.  This blocks the addition of that positional to the
        // namespace

        let extras
        let positionals = this._get_positional_actions()
        let a = positionals.filter(action => [ PARSER, REMAINDER ].includes(action.nargs))
        if (a.length) {
            throw new TypeError(sub('parse_intermixed_args: positional arg' +
                                    ' with nargs=%s', a[0].nargs))
        }

        for (let group of this._mutually_exclusive_groups) {
            for (let action of group._group_actions) {
                if (positionals.includes(action)) {
                    throw new TypeError('parse_intermixed_args: positional in' +
                                        ' mutuallyExclusiveGroup')
                }
            }
        }

        let save_usage
        try {
            save_usage = this.usage
            let remaining_args
            try {
                if (this.usage === undefined) {
                    // capture the full usage for use in error messages
                    this.usage = this.format_usage().slice(7)
                }
                for (let action of positionals) {
                    // deactivate positionals
                    action.save_nargs = action.nargs
                    // action.nargs = 0
                    action.nargs = SUPPRESS
                    action.save_default = action.default
                    action.default = SUPPRESS
                }
                [ namespace, remaining_args ] = this.parse_known_args(args,
                                                                      namespace)
                for (let action of positionals) {
                    // remove the empty positional values from namespace
                    let attr = getattr(namespace, action.dest)
                    if (Array.isArray(attr) && attr.length === 0) {
                        // eslint-disable-next-line no-console
                        console.warn(sub('Do not expect %s in %s', action.dest, namespace))
                        delattr(namespace, action.dest)
                    }
                }
            } finally {
                // restore nargs and usage before exiting
                for (let action of positionals) {
                    action.nargs = action.save_nargs
                    action.default = action.save_default
                }
            }
            let optionals = this._get_optional_actions()
            try {
                // parse positionals.  optionals aren't normally required, but
                // they could be, so make sure they aren't.
                for (let action of optionals) {
                    action.save_required = action.required
                    action.required = false
                }
                for (let group of this._mutually_exclusive_groups) {
                    group.save_required = group.required
                    group.required = false
                }
                [ namespace, extras ] = this.parse_known_args(remaining_args,
                                                              namespace)
            } finally {
                // restore parser values before exiting
                for (let action of optionals) {
                    action.required = action.save_required
                }
                for (let group of this._mutually_exclusive_groups) {
                    group.required = group.save_required
                }
            }
        } finally {
            this.usage = save_usage
        }
        return [ namespace, extras ]
    }

    // ========================
    // Value conversion methods
    // ========================
    _get_values(action, arg_strings) {
        // for everything but PARSER, REMAINDER args, strip out first '--'
        if (![PARSER, REMAINDER].includes(action.nargs)) {
            try {
                _array_remove(arg_strings, '--')
            } catch (err) {}
        }

        let value
        // optional argument produces a default when not present
        if (!arg_strings.length && action.nargs === OPTIONAL) {
            if (action.option_strings.length) {
                value = action.const
            } else {
                value = action.default
            }
            if (typeof value === 'string') {
                value = this._get_value(action, value)
                this._check_value(action, value)
            }

        // when nargs='*' on a positional, if there were no command-line
        // args, use the default if it is anything other than None
        } else if (!arg_strings.length && action.nargs === ZERO_OR_MORE &&
              !action.option_strings.length) {
            if (action.default !== undefined) {
                value = action.default
            } else {
                value = arg_strings
            }
            this._check_value(action, value)

        // single argument or optional argument produces a single value
        } else if (arg_strings.length === 1 && [undefined, OPTIONAL].includes(action.nargs)) {
            let arg_string = arg_strings[0]
            value = this._get_value(action, arg_string)
            this._check_value(action, value)

        // REMAINDER arguments convert all values, checking none
        } else if (action.nargs === REMAINDER) {
            value = arg_strings.map(v => this._get_value(action, v))

        // PARSER arguments convert all values, but check only the first
        } else if (action.nargs === PARSER) {
            value = arg_strings.map(v => this._get_value(action, v))
            this._check_value(action, value[0])

        // SUPPRESS argument does not put anything in the namespace
        } else if (action.nargs === SUPPRESS) {
            value = SUPPRESS

        // all other types of nargs produce a list
        } else {
            value = arg_strings.map(v => this._get_value(action, v))
            for (let v of value) {
                this._check_value(action, v)
            }
        }

        // return the converted value
        return value
    }

    _get_value(action, arg_string) {
        let type_func = this._registry_get('type', action.type, action.type)
        if (typeof type_func !== 'function') {
            let msg = '%r is not callable'
            throw new ArgumentError(action, sub(msg, type_func))
        }

        // convert the value to the appropriate type
        let result
        try {
            try {
                result = type_func(arg_string)
            } catch (err) {
                // Dear TC39, why would you ever consider making es6 classes not callable?
                // We had one universal interface, [[Call]], which worked for anything
                // (with familiar this-instanceof guard for classes). Now we have two.
                if (err instanceof TypeError &&
                    /Class constructor .* cannot be invoked without 'new'/.test(err.message)) {
                    // eslint-disable-next-line new-cap
                    result = new type_func(arg_string)
                } else {
                    throw err
                }
            }

        } catch (err) {
            // ArgumentTypeErrors indicate errors
            if (err instanceof ArgumentTypeError) {
                //let name = getattr(action.type, 'name', repr(action.type))
                let msg = err.message
                throw new ArgumentError(action, msg)

            // TypeErrors or ValueErrors also indicate errors
            } else if (err instanceof TypeError) {
                let name = getattr(action.type, 'name', repr(action.type))
                let args = {type: name, value: arg_string}
                let msg = 'invalid %(type)s value: %(value)r'
                throw new ArgumentError(action, sub(msg, args))
            } else {
                throw err
            }
        }

        // return the converted value
        return result
    }

    _check_value(action, value) {
        // converted value must be one of the choices (if specified)
        if (action.choices !== undefined && !_choices_to_array(action.choices).includes(value)) {
            let args = {value,
                        choices: _choices_to_array(action.choices).map(repr).join(', ')}
            let msg = 'invalid choice: %(value)r (choose from %(choices)s)'
            throw new ArgumentError(action, sub(msg, args))
        }
    }

    // =======================
    // Help-formatting methods
    // =======================
    format_usage() {
        let formatter = this._get_formatter()
        formatter.add_usage(this.usage, this._actions,
                            this._mutually_exclusive_groups)
        return formatter.format_help()
    }

    format_help() {
        let formatter = this._get_formatter()

        // usage
        formatter.add_usage(this.usage, this._actions,
                            this._mutually_exclusive_groups)

        // description
        formatter.add_text(this.description)

        // positionals, optionals and user-defined groups
        for (let action_group of this._action_groups) {
            formatter.start_section(action_group.title)
            formatter.add_text(action_group.description)
            formatter.add_arguments(action_group._group_actions)
            formatter.end_section()
        }

        // epilog
        formatter.add_text(this.epilog)

        // determine help from format above
        return formatter.format_help()
    }

    _get_formatter() {
        // eslint-disable-next-line new-cap
        return new this.formatter_class({ prog: this.prog })
    }

    // =====================
    // Help-printing methods
    // =====================
    print_usage(file = undefined) {
        if (file === undefined) file = process.stdout
        this._print_message(this.format_usage(), file)
    }

    print_help(file = undefined) {
        if (file === undefined) file = process.stdout
        this._print_message(this.format_help(), file)
    }

    _print_message(message, file = undefined) {
        if (message) {
            if (file === undefined) file = process.stderr
            file.write(message)
        }
    }

    // ===============
    // Exiting methods
    // ===============
    exit(status = 0, message = undefined) {
        if (message) {
            this._print_message(message, process.stderr)
        }
        process.exit(status)
    }

    error(message) {
        /*
         *  error(message: string)
         *
         *  Prints a usage message incorporating the message to stderr and
         *  exits.
         *
         *  If you override this in a subclass, it should not return -- it
         *  should either exit or raise an exception.
         */

        // LEGACY (v1 compatibility), debug mode
        if (this.debug === true) throw new Error(message)
        // end
        this.print_usage(process.stderr)
        let args = {prog: this.prog, message: message}
        this.exit(2, sub('%(prog)s: error: %(message)s\n', args))
    }
}))


module.exports = {
    ArgumentParser,
    ArgumentError,
    ArgumentTypeError,
    BooleanOptionalAction,
    FileType,
    HelpFormatter,
    ArgumentDefaultsHelpFormatter,
    RawDescriptionHelpFormatter,
    RawTextHelpFormatter,
    MetavarTypeHelpFormatter,
    Namespace,
    Action,
    ONE_OR_MORE,
    OPTIONAL,
    PARSER,
    REMAINDER,
    SUPPRESS,
    ZERO_OR_MORE
}

// LEGACY (v1 compatibility), Const alias
Object.defineProperty(module.exports, 'Const', {
    get() {
        let result = {}
        Object.entries({ ONE_OR_MORE, OPTIONAL, PARSER, REMAINDER, SUPPRESS, ZERO_OR_MORE }).forEach(([ n, v ]) => {
            Object.defineProperty(result, n, {
                get() {
                    deprecate(n, sub('use argparse.%s instead of argparse.Const.%s', n, n))
                    return v
                }
            })
        })
        Object.entries({ _UNRECOGNIZED_ARGS_ATTR }).forEach(([ n, v ]) => {
            Object.defineProperty(result, n, {
                get() {
                    deprecate(n, sub('argparse.Const.%s is an internal symbol and will no longer be available', n))
                    return v
                }
            })
        })
        return result
    },
    enumerable: false
})
// end
{
  "name": "argparse",
  "description": "CLI arguments parser. Native port of python's argparse.",
  "version": "2.0.1",
  "main": "argparse.js",
  "files": [
    "argparse.js",
    "lib/"
  ],
  "license": "Python-2.0",
  "repository": "nodeca/argparse",
  "devDependencies": {
    "@babel/eslint-parser": "^7.11.0",
    "@babel/plugin-syntax-class-properties": "^7.10.4",
    "eslint": "^7.5.0",
    "mocha": "^8.0.1",
    "nyc": "^15.1.0"
  }
}// Limited implementation of python % string operator, supports only %s and %r for now
// (other formats are not used here, but may appear in custom templates)

'use strict'

const { inspect } = require('util')


module.exports = function sub(pattern, ...values) {
    let regex = /%(?:(%)|(-)?(\*)?(?:\((\w+)\))?([A-Za-z]))/g

    let result = pattern.replace(regex, function (_, is_literal, is_left_align, is_padded, name, format) {
        if (is_literal) return '%'

        let padded_count = 0
        if (is_padded) {
            if (values.length === 0) throw new TypeError('not enough arguments for format string')
            padded_count = values.shift()
            if (!Number.isInteger(padded_count)) throw new TypeError('* wants int')
        }

        let str
        if (name !== undefined) {
            let dict = values[0]
            if (typeof dict !== 'object' || dict === null) throw new TypeError('format requires a mapping')
            if (!(name in dict)) throw new TypeError(`no such key: '${name}'`)
            str = dict[name]
        } else {
            if (values.length === 0) throw new TypeError('not enough arguments for format string')
            str = values.shift()
        }

        switch (format) {
            case 's':
                str = String(str)
                break
            case 'r':
                str = inspect(str)
                break
            case 'd':
            case 'i':
                if (typeof str !== 'number') {
                    throw new TypeError(`%${format} format: a number is required, not ${typeof str}`)
                }
                str = String(str.toFixed(0))
                break
            default:
                throw new TypeError(`unsupported format character '${format}'`)
        }

        if (padded_count > 0) {
            return is_left_align ? str.padEnd(padded_count) : str.padStart(padded_count)
        } else {
            return str
        }
    })

    if (values.length) {
        if (values.length === 1 && typeof values[0] === 'object' && values[0] !== null) {
            // mapping
        } else {
            throw new TypeError('not all arguments converted during string formatting')
        }
    }

    return result
}
// Partial port of python's argparse module, version 3.9.0 (only wrap and fill functions):
// https://github.com/python/cpython/blob/v3.9.0b4/Lib/textwrap.py

'use strict'

/*
 * Text wrapping and filling.
 */

// Copyright (C) 1999-2001 Gregory P. Ward.
// Copyright (C) 2002, 2003 Python Software Foundation.
// Copyright (C) 2020 argparse.js authors
// Originally written by Greg Ward <gward@python.net>

// Hardcode the recognized whitespace characters to the US-ASCII
// whitespace characters.  The main reason for doing this is that
// some Unicode spaces (like \u00a0) are non-breaking whitespaces.
//
// This less funky little regex just split on recognized spaces. E.g.
//   "Hello there -- you goof-ball, use the -b option!"
// splits into
//   Hello/ /there/ /--/ /you/ /goof-ball,/ /use/ /the/ /-b/ /option!/
const wordsep_simple_re = /([\t\n\x0b\x0c\r ]+)/

class TextWrapper {
    /*
     *  Object for wrapping/filling text.  The public interface consists of
     *  the wrap() and fill() methods; the other methods are just there for
     *  subclasses to override in order to tweak the default behaviour.
     *  If you want to completely replace the main wrapping algorithm,
     *  you'll probably have to override _wrap_chunks().
     *
     *  Several instance attributes control various aspects of wrapping:
     *    width (default: 70)
     *      the maximum width of wrapped lines (unless break_long_words
     *      is false)
     *    initial_indent (default: "")
     *      string that will be prepended to the first line of wrapped
     *      output.  Counts towards the line's width.
     *    subsequent_indent (default: "")
     *      string that will be prepended to all lines save the first
     *      of wrapped output; also counts towards each line's width.
     *    expand_tabs (default: true)
     *      Expand tabs in input text to spaces before further processing.
     *      Each tab will become 0 .. 'tabsize' spaces, depending on its position
     *      in its line.  If false, each tab is treated as a single character.
     *    tabsize (default: 8)
     *      Expand tabs in input text to 0 .. 'tabsize' spaces, unless
     *      'expand_tabs' is false.
     *    replace_whitespace (default: true)
     *      Replace all whitespace characters in the input text by spaces
     *      after tab expansion.  Note that if expand_tabs is false and
     *      replace_whitespace is true, every tab will be converted to a
     *      single space!
     *    fix_sentence_endings (default: false)
     *      Ensure that sentence-ending punctuation is always followed
     *      by two spaces.  Off by default because the algorithm is
     *      (unavoidably) imperfect.
     *    break_long_words (default: true)
     *      Break words longer than 'width'.  If false, those words will not
     *      be broken, and some lines might be longer than 'width'.
     *    break_on_hyphens (default: true)
     *      Allow breaking hyphenated words. If true, wrapping will occur
     *      preferably on whitespaces and right after hyphens part of
     *      compound words.
     *    drop_whitespace (default: true)
     *      Drop leading and trailing whitespace from lines.
     *    max_lines (default: None)
     *      Truncate wrapped lines.
     *    placeholder (default: ' [...]')
     *      Append to the last line of truncated text.
     */

    constructor(options = {}) {
        let {
            width = 70,
            initial_indent = '',
            subsequent_indent = '',
            expand_tabs = true,
            replace_whitespace = true,
            fix_sentence_endings = false,
            break_long_words = true,
            drop_whitespace = true,
            break_on_hyphens = true,
            tabsize = 8,
            max_lines = undefined,
            placeholder=' [...]'
        } = options

        this.width = width
        this.initial_indent = initial_indent
        this.subsequent_indent = subsequent_indent
        this.expand_tabs = expand_tabs
        this.replace_whitespace = replace_whitespace
        this.fix_sentence_endings = fix_sentence_endings
        this.break_long_words = break_long_words
        this.drop_whitespace = drop_whitespace
        this.break_on_hyphens = break_on_hyphens
        this.tabsize = tabsize
        this.max_lines = max_lines
        this.placeholder = placeholder
    }


    // -- Private methods -----------------------------------------------
    // (possibly useful for subclasses to override)

    _munge_whitespace(text) {
        /*
         *  _munge_whitespace(text : string) -> string
         *
         *  Munge whitespace in text: expand tabs and convert all other
         *  whitespace characters to spaces.  Eg. " foo\\tbar\\n\\nbaz"
         *  becomes " foo    bar  baz".
         */
        if (this.expand_tabs) {
            text = text.replace(/\t/g, ' '.repeat(this.tabsize)) // not strictly correct in js
        }
        if (this.replace_whitespace) {
            text = text.replace(/[\t\n\x0b\x0c\r]/g, ' ')
        }
        return text
    }

    _split(text) {
        /*
         *  _split(text : string) -> [string]
         *
         *  Split the text to wrap into indivisible chunks.  Chunks are
         *  not quite the same as words; see _wrap_chunks() for full
         *  details.  As an example, the text
         *    Look, goof-ball -- use the -b option!
         *  breaks into the following chunks:
         *    'Look,', ' ', 'goof-', 'ball', ' ', '--', ' ',
         *    'use', ' ', 'the', ' ', '-b', ' ', 'option!'
         *  if break_on_hyphens is True, or in:
         *    'Look,', ' ', 'goof-ball', ' ', '--', ' ',
         *    'use', ' ', 'the', ' ', '-b', ' ', option!'
         *  otherwise.
         */
        let chunks = text.split(wordsep_simple_re)
        chunks = chunks.filter(Boolean)
        return chunks
    }

    _handle_long_word(reversed_chunks, cur_line, cur_len, width) {
        /*
         *  _handle_long_word(chunks : [string],
         *                    cur_line : [string],
         *                    cur_len : int, width : int)
         *
         *  Handle a chunk of text (most likely a word, not whitespace) that
         *  is too long to fit in any line.
         */
        // Figure out when indent is larger than the specified width, and make
        // sure at least one character is stripped off on every pass
        let space_left
        if (width < 1) {
            space_left = 1
        } else {
            space_left = width - cur_len
        }

        // If we're allowed to break long words, then do so: put as much
        // of the next chunk onto the current line as will fit.
        if (this.break_long_words) {
            cur_line.push(reversed_chunks[reversed_chunks.length - 1].slice(0, space_left))
            reversed_chunks[reversed_chunks.length - 1] = reversed_chunks[reversed_chunks.length - 1].slice(space_left)

        // Otherwise, we have to preserve the long word intact.  Only add
        // it to the current line if there's nothing already there --
        // that minimizes how much we violate the width constraint.
        } else if (!cur_line) {
            cur_line.push(...reversed_chunks.pop())
        }

        // If we're not allowed to break long words, and there's already
        // text on the current line, do nothing.  Next time through the
        // main loop of _wrap_chunks(), we'll wind up here again, but
        // cur_len will be zero, so the next line will be entirely
        // devoted to the long word that we can't handle right now.
    }

    _wrap_chunks(chunks) {
        /*
         *  _wrap_chunks(chunks : [string]) -> [string]
         *
         *  Wrap a sequence of text chunks and return a list of lines of
         *  length 'self.width' or less.  (If 'break_long_words' is false,
         *  some lines may be longer than this.)  Chunks correspond roughly
         *  to words and the whitespace between them: each chunk is
         *  indivisible (modulo 'break_long_words'), but a line break can
         *  come between any two chunks.  Chunks should not have internal
         *  whitespace; ie. a chunk is either all whitespace or a "word".
         *  Whitespace chunks will be removed from the beginning and end of
         *  lines, but apart from that whitespace is preserved.
         */
        let lines = []
        let indent
        if (this.width <= 0) {
            throw Error(`invalid width ${this.width} (must be > 0)`)
        }
        if (this.max_lines !== undefined) {
            if (this.max_lines > 1) {
                indent = this.subsequent_indent
            } else {
                indent = this.initial_indent
            }
            if (indent.length + this.placeholder.trimStart().length > this.width) {
                throw Error('placeholder too large for max width')
            }
        }

        // Arrange in reverse order so items can be efficiently popped
        // from a stack of chucks.
        chunks = chunks.reverse()

        while (chunks.length > 0) {

            // Start the list of chunks that will make up the current line.
            // cur_len is just the length of all the chunks in cur_line.
            let cur_line = []
            let cur_len = 0

            // Figure out which static string will prefix this line.
            let indent
            if (lines) {
                indent = this.subsequent_indent
            } else {
                indent = this.initial_indent
            }

            // Maximum width for this line.
            let width = this.width - indent.length

            // First chunk on line is whitespace -- drop it, unless this
            // is the very beginning of the text (ie. no lines started yet).
            if (this.drop_whitespace && chunks[chunks.length - 1].trim() === '' && lines.length > 0) {
                chunks.pop()
            }

            while (chunks.length > 0) {
                let l = chunks[chunks.length - 1].length

                // Can at least squeeze this chunk onto the current line.
                if (cur_len + l <= width) {
                    cur_line.push(chunks.pop())
                    cur_len += l

                // Nope, this line is full.
                } else {
                    break
                }
            }

            // The current line is full, and the next chunk is too big to
            // fit on *any* line (not just this one).
            if (chunks.length && chunks[chunks.length - 1].length > width) {
                this._handle_long_word(chunks, cur_line, cur_len, width)
                cur_len = cur_line.map(l => l.length).reduce((a, b) => a + b, 0)
            }

            // If the last chunk on this line is all whitespace, drop it.
            if (this.drop_whitespace && cur_line.length > 0 && cur_line[cur_line.length - 1].trim() === '') {
                cur_len -= cur_line[cur_line.length - 1].length
                cur_line.pop()
            }

            if (cur_line) {
                if (this.max_lines === undefined ||
                    lines.length + 1 < this.max_lines ||
                    (chunks.length === 0 ||
                     this.drop_whitespace &&
                     chunks.length === 1 &&
                     !chunks[0].trim()) && cur_len <= width) {
                    // Convert current line back to a string and store it in
                    // list of all lines (return value).
                    lines.push(indent + cur_line.join(''))
                } else {
                    let had_break = false
                    while (cur_line) {
                        if (cur_line[cur_line.length - 1].trim() &&
                            cur_len + this.placeholder.length <= width) {
                            cur_line.push(this.placeholder)
                            lines.push(indent + cur_line.join(''))
                            had_break = true
                            break
                        }
                        cur_len -= cur_line[-1].length
                        cur_line.pop()
                    }
                    if (!had_break) {
                        if (lines) {
                            let prev_line = lines[lines.length - 1].trimEnd()
                            if (prev_line.length + this.placeholder.length <=
                                    this.width) {
                                lines[lines.length - 1] = prev_line + this.placeholder
                                break
                            }
                        }
                        lines.push(indent + this.placeholder.lstrip())
                    }
                    break
                }
            }
        }

        return lines
    }

    _split_chunks(text) {
        text = this._munge_whitespace(text)
        return this._split(text)
    }

    // -- Public interface ----------------------------------------------

    wrap(text) {
        /*
         *  wrap(text : string) -> [string]
         *
         *  Reformat the single paragraph in 'text' so it fits in lines of
         *  no more than 'self.width' columns, and return a list of wrapped
         *  lines.  Tabs in 'text' are expanded with string.expandtabs(),
         *  and all other whitespace characters (including newline) are
         *  converted to space.
         */
        let chunks = this._split_chunks(text)
        // not implemented in js
        //if (this.fix_sentence_endings) {
        //    this._fix_sentence_endings(chunks)
        //}
        return this._wrap_chunks(chunks)
    }

    fill(text) {
        /*
         *  fill(text : string) -> string
         *
         *  Reformat the single paragraph in 'text' to fit in lines of no
         *  more than 'self.width' columns, and return a new string
         *  containing the entire wrapped paragraph.
         */
        return this.wrap(text).join('\n')
    }
}


// -- Convenience interface ---------------------------------------------

function wrap(text, options = {}) {
    /*
     *  Wrap a single paragraph of text, returning a list of wrapped lines.
     *
     *  Reformat the single paragraph in 'text' so it fits in lines of no
     *  more than 'width' columns, and return a list of wrapped lines.  By
     *  default, tabs in 'text' are expanded with string.expandtabs(), and
     *  all other whitespace characters (including newline) are converted to
     *  space.  See TextWrapper class for available keyword args to customize
     *  wrapping behaviour.
     */
    let { width = 70, ...kwargs } = options
    let w = new TextWrapper(Object.assign({ width }, kwargs))
    return w.wrap(text)
}

function fill(text, options = {}) {
    /*
     *  Fill a single paragraph of text, returning a new string.
     *
     *  Reformat the single paragraph in 'text' to fit in lines of no more
     *  than 'width' columns, and return a new string containing the entire
     *  wrapped paragraph.  As with wrap(), tabs are expanded and other
     *  whitespace characters converted to space.  See TextWrapper class for
     *  available keyword args to customize wrapping behaviour.
     */
    let { width = 70, ...kwargs } = options
    let w = new TextWrapper(Object.assign({ width }, kwargs))
    return w.fill(text)
}

// -- Loosely related functionality -------------------------------------

let _whitespace_only_re = /^[ \t]+$/mg
let _leading_whitespace_re = /(^[ \t]*)(?:[^ \t\n])/mg

function dedent(text) {
    /*
     *  Remove any common leading whitespace from every line in `text`.
     *
     *  This can be used to make triple-quoted strings line up with the left
     *  edge of the display, while still presenting them in the source code
     *  in indented form.
     *
     *  Note that tabs and spaces are both treated as whitespace, but they
     *  are not equal: the lines "  hello" and "\\thello" are
     *  considered to have no common leading whitespace.
     *
     *  Entirely blank lines are normalized to a newline character.
     */
    // Look for the longest leading string of spaces and tabs common to
    // all lines.
    let margin = undefined
    text = text.replace(_whitespace_only_re, '')
    let indents = text.match(_leading_whitespace_re) || []
    for (let indent of indents) {
        indent = indent.slice(0, -1)

        if (margin === undefined) {
            margin = indent

        // Current line more deeply indented than previous winner:
        // no change (previous winner is still on top).
        } else if (indent.startsWith(margin)) {
            // pass

        // Current line consistent with and no deeper than previous winner:
        // it's the new winner.
        } else if (margin.startsWith(indent)) {
            margin = indent

        // Find the largest common whitespace between current line and previous
        // winner.
        } else {
            for (let i = 0; i < margin.length && i < indent.length; i++) {
                if (margin[i] !== indent[i]) {
                    margin = margin.slice(0, i)
                    break
                }
            }
        }
    }

    if (margin) {
        text = text.replace(new RegExp('^' + margin, 'mg'), '')
    }
    return text
}

module.exports = { wrap, fill, dedent }
'use strict';

module.exports = (...arguments_) => {
	return [...new Set([].concat(...arguments_))];
};
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "array-union",
  "version": "2.1.0",
  "description": "Create an array of unique values, in order, from the input arrays",
  "license": "MIT",
  "repository": "sindresorhus/array-union",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "sindresorhus.com"
  },
  "engines": {
    "node": ">=8"
  },
  "files": [
    "index.js",
    "index.d.ts"
  ],
  "devDependencies": {
    "ava": "^1.4.1",
    "tsd": "^0.7.2",
    "xo": "^0.24.0"
  }
}(MIT)

Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
'use strict';
module.exports = balanced;
function balanced(a, b, str) {
  if (a instanceof RegExp) a = maybeMatch(a, str);
  if (b instanceof RegExp) b = maybeMatch(b, str);

  var r = range(a, b, str);

  return r && {
    start: r[0],
    end: r[1],
    pre: str.slice(0, r[0]),
    body: str.slice(r[0] + a.length, r[1]),
    post: str.slice(r[1] + b.length)
  };
}

function maybeMatch(reg, str) {
  var m = str.match(reg);
  return m ? m[0] : null;
}

balanced.range = range;
function range(a, b, str) {
  var begs, beg, left, right, result;
  var ai = str.indexOf(a);
  var bi = str.indexOf(b, ai + 1);
  var i = ai;

  if (ai >= 0 && bi > 0) {
    if(a===b) {
      return [ai, bi];
    }
    begs = [];
    left = str.length;

    while (i >= 0 && !result) {
      if (i == ai) {
        begs.push(i);
        ai = str.indexOf(a, i + 1);
      } else if (begs.length == 1) {
        result = [ begs.pop(), bi ];
      } else {
        beg = begs.pop();
        if (beg < left) {
          left = beg;
          right = bi;
        }

        bi = str.indexOf(b, i + 1);
      }

      i = ai < bi && ai >= 0 ? ai : bi;
    }

    if (begs.length) {
      result = [ left, right ];
    }
  }

  return result;
}
{
  "name": "balanced-match",
  "description": "Match balanced character pairs, like \"{\" and \"}\"",
  "version": "1.0.2",
  "repository": {
    "type": "git",
    "url": "git://github.com/juliangruber/balanced-match.git"
  },
  "homepage": "https://github.com/juliangruber/balanced-match",
  "main": "index.js",
  "devDependencies": {
    "matcha": "^0.7.0",
    "tape": "^4.6.0"
  },
  "author": {
    "name": "Julian Gruber",
    "email": "mail@juliangruber.com",
    "url": "http://juliangruber.com"
  },
  "license": "MIT",
  "testling": {
    "files": "test/*.js",
    "browsers": [
      "ie/8..latest",
      "firefox/20..latest",
      "firefox/nightly",
      "chrome/25..latest",
      "chrome/canary",
      "opera/12..latest",
      "opera/next",
      "safari/5.1..latest",
      "ipad/6.0..latest",
      "iphone/6.0..latest",
      "android-browser/4.2..latest"
    ]
  }
}MIT License

Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
var concatMap = require('concat-map');
var balanced = require('balanced-match');

module.exports = expandTop;

var escSlash = '\0SLASH'+Math.random()+'\0';
var escOpen = '\0OPEN'+Math.random()+'\0';
var escClose = '\0CLOSE'+Math.random()+'\0';
var escComma = '\0COMMA'+Math.random()+'\0';
var escPeriod = '\0PERIOD'+Math.random()+'\0';

function numeric(str) {
  return parseInt(str, 10) == str
    ? parseInt(str, 10)
    : str.charCodeAt(0);
}

function escapeBraces(str) {
  return str.split('\\\\').join(escSlash)
            .split('\\{').join(escOpen)
            .split('\\}').join(escClose)
            .split('\\,').join(escComma)
            .split('\\.').join(escPeriod);
}

function unescapeBraces(str) {
  return str.split(escSlash).join('\\')
            .split(escOpen).join('{')
            .split(escClose).join('}')
            .split(escComma).join(',')
            .split(escPeriod).join('.');
}


// Basically just str.split(","), but handling cases
// where we have nested braced sections, which should be
// treated as individual members, like {a,{b,c},d}
function parseCommaParts(str) {
  if (!str)
    return [''];

  var parts = [];
  var m = balanced('{', '}', str);

  if (!m)
    return str.split(',');

  var pre = m.pre;
  var body = m.body;
  var post = m.post;
  var p = pre.split(',');

  p[p.length-1] += '{' + body + '}';
  var postParts = parseCommaParts(post);
  if (post.length) {
    p[p.length-1] += postParts.shift();
    p.push.apply(p, postParts);
  }

  parts.push.apply(parts, p);

  return parts;
}

function expandTop(str) {
  if (!str)
    return [];

  // I don't know why Bash 4.3 does this, but it does.
  // Anything starting with {} will have the first two bytes preserved
  // but *only* at the top level, so {},a}b will not expand to anything,
  // but a{},b}c will be expanded to [a}c,abc].
  // One could argue that this is a bug in Bash, but since the goal of
  // this module is to match Bash's rules, we escape a leading {}
  if (str.substr(0, 2) === '{}') {
    str = '\\{\\}' + str.substr(2);
  }

  return expand(escapeBraces(str), true).map(unescapeBraces);
}

function identity(e) {
  return e;
}

function embrace(str) {
  return '{' + str + '}';
}
function isPadded(el) {
  return /^-?0\d/.test(el);
}

function lte(i, y) {
  return i <= y;
}
function gte(i, y) {
  return i >= y;
}

function expand(str, isTop) {
  var expansions = [];

  var m = balanced('{', '}', str);
  if (!m || /\$$/.test(m.pre)) return [str];

  var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
  var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
  var isSequence = isNumericSequence || isAlphaSequence;
  var isOptions = m.body.indexOf(',') >= 0;
  if (!isSequence && !isOptions) {
    // {a},b}
    if (m.post.match(/,(?!,).*\}/)) {
      str = m.pre + '{' + m.body + escClose + m.post;
      return expand(str);
    }
    return [str];
  }

  var n;
  if (isSequence) {
    n = m.body.split(/\.\./);
  } else {
    n = parseCommaParts(m.body);
    if (n.length === 1) {
      // x{{a,b}}y ==> x{a}y x{b}y
      n = expand(n[0], false).map(embrace);
      if (n.length === 1) {
        var post = m.post.length
          ? expand(m.post, false)
          : [''];
        return post.map(function(p) {
          return m.pre + n[0] + p;
        });
      }
    }
  }

  // at this point, n is the parts, and we know it's not a comma set
  // with a single entry.

  // no need to expand pre, since it is guaranteed to be free of brace-sets
  var pre = m.pre;
  var post = m.post.length
    ? expand(m.post, false)
    : [''];

  var N;

  if (isSequence) {
    var x = numeric(n[0]);
    var y = numeric(n[1]);
    var width = Math.max(n[0].length, n[1].length)
    var incr = n.length == 3
      ? Math.abs(numeric(n[2]))
      : 1;
    var test = lte;
    var reverse = y < x;
    if (reverse) {
      incr *= -1;
      test = gte;
    }
    var pad = n.some(isPadded);

    N = [];

    for (var i = x; test(i, y); i += incr) {
      var c;
      if (isAlphaSequence) {
        c = String.fromCharCode(i);
        if (c === '\\')
          c = '';
      } else {
        c = String(i);
        if (pad) {
          var need = width - c.length;
          if (need > 0) {
            var z = new Array(need + 1).join('0');
            if (i < 0)
              c = '-' + z + c.slice(1);
            else
              c = z + c;
          }
        }
      }
      N.push(c);
    }
  } else {
    N = concatMap(n, function(el) { return expand(el, false) });
  }

  for (var j = 0; j < N.length; j++) {
    for (var k = 0; k < post.length; k++) {
      var expansion = pre + N[j] + post[k];
      if (!isTop || isSequence || expansion)
        expansions.push(expansion);
    }
  }

  return expansions;
}

{
  "name": "brace-expansion",
  "description": "Brace expansion as known from sh/bash",
  "version": "1.1.12",
  "repository": {
    "type": "git",
    "url": "git://github.com/juliangruber/brace-expansion.git"
  },
  "homepage": "https://github.com/juliangruber/brace-expansion",
  "main": "index.js",
  "dependencies": {
    "balanced-match": "^1.0.0",
    "concat-map": "0.0.1"
  },
  "devDependencies": {
    "matcha": "^0.7.0",
    "tape": "^4.6.0"
  },
  "author": {
    "name": "Julian Gruber",
    "email": "mail@juliangruber.com",
    "url": "http://juliangruber.com"
  },
  "license": "MIT",
  "testling": {
    "files": "test/*.js",
    "browsers": [
      "ie/8..latest",
      "firefox/20..latest",
      "firefox/nightly",
      "chrome/25..latest",
      "chrome/canary",
      "opera/12..latest",
      "opera/next",
      "safari/5.1..latest",
      "ipad/6.0..latest",
      "iphone/6.0..latest",
      "android-browser/4.2..latest"
    ]
  },
  "publishConfig": {
    "tag": "1.x"
  }
}The MIT License (MIT)

Copyright (c) 2014-present, Jon Schlinkert.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
'use strict';

const stringify = require('./lib/stringify');
const compile = require('./lib/compile');
const expand = require('./lib/expand');
const parse = require('./lib/parse');

/**
 * Expand the given pattern or create a regex-compatible string.
 *
 * ```js
 * const braces = require('braces');
 * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)']
 * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c']
 * ```
 * @param {String} `str`
 * @param {Object} `options`
 * @return {String}
 * @api public
 */

const braces = (input, options = {}) => {
  let output = [];

  if (Array.isArray(input)) {
    for (const pattern of input) {
      const result = braces.create(pattern, options);
      if (Array.isArray(result)) {
        output.push(...result);
      } else {
        output.push(result);
      }
    }
  } else {
    output = [].concat(braces.create(input, options));
  }

  if (options && options.expand === true && options.nodupes === true) {
    output = [...new Set(output)];
  }
  return output;
};

/**
 * Parse the given `str` with the given `options`.
 *
 * ```js
 * // braces.parse(pattern, [, options]);
 * const ast = braces.parse('a/{b,c}/d');
 * console.log(ast);
 * ```
 * @param {String} pattern Brace pattern to parse
 * @param {Object} options
 * @return {Object} Returns an AST
 * @api public
 */

braces.parse = (input, options = {}) => parse(input, options);

/**
 * Creates a braces string from an AST, or an AST node.
 *
 * ```js
 * const braces = require('braces');
 * let ast = braces.parse('foo/{a,b}/bar');
 * console.log(stringify(ast.nodes[2])); //=> '{a,b}'
 * ```
 * @param {String} `input` Brace pattern or AST.
 * @param {Object} `options`
 * @return {Array} Returns an array of expanded values.
 * @api public
 */

braces.stringify = (input, options = {}) => {
  if (typeof input === 'string') {
    return stringify(braces.parse(input, options), options);
  }
  return stringify(input, options);
};

/**
 * Compiles a brace pattern into a regex-compatible, optimized string.
 * This method is called by the main [braces](#braces) function by default.
 *
 * ```js
 * const braces = require('braces');
 * console.log(braces.compile('a/{b,c}/d'));
 * //=> ['a/(b|c)/d']
 * ```
 * @param {String} `input` Brace pattern or AST.
 * @param {Object} `options`
 * @return {Array} Returns an array of expanded values.
 * @api public
 */

braces.compile = (input, options = {}) => {
  if (typeof input === 'string') {
    input = braces.parse(input, options);
  }
  return compile(input, options);
};

/**
 * Expands a brace pattern into an array. This method is called by the
 * main [braces](#braces) function when `options.expand` is true. Before
 * using this method it's recommended that you read the [performance notes](#performance))
 * and advantages of using [.compile](#compile) instead.
 *
 * ```js
 * const braces = require('braces');
 * console.log(braces.expand('a/{b,c}/d'));
 * //=> ['a/b/d', 'a/c/d'];
 * ```
 * @param {String} `pattern` Brace pattern
 * @param {Object} `options`
 * @return {Array} Returns an array of expanded values.
 * @api public
 */

braces.expand = (input, options = {}) => {
  if (typeof input === 'string') {
    input = braces.parse(input, options);
  }

  let result = expand(input, options);

  // filter out empty strings if specified
  if (options.noempty === true) {
    result = result.filter(Boolean);
  }

  // filter out duplicates if specified
  if (options.nodupes === true) {
    result = [...new Set(result)];
  }

  return result;
};

/**
 * Processes a brace pattern and returns either an expanded array
 * (if `options.expand` is true), a highly optimized regex-compatible string.
 * This method is called by the main [braces](#braces) function.
 *
 * ```js
 * const braces = require('braces');
 * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}'))
 * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)'
 * ```
 * @param {String} `pattern` Brace pattern
 * @param {Object} `options`
 * @return {Array} Returns an array of expanded values.
 * @api public
 */

braces.create = (input, options = {}) => {
  if (input === '' || input.length < 3) {
    return [input];
  }

  return options.expand !== true
    ? braces.compile(input, options)
    : braces.expand(input, options);
};

/**
 * Expose "braces"
 */

module.exports = braces;
{
  "name": "braces",
  "description": "Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.",
  "version": "3.0.3",
  "homepage": "https://github.com/micromatch/braces",
  "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
  "repository": "micromatch/braces",
  "license": "MIT",
  "files": [
    "index.js",
    "lib"
  ],
  "main": "index.js",
  "engines": {
    "node": ">=8"
  },
  "dependencies": {
    "fill-range": "^7.1.1"
  },
  "devDependencies": {
    "ansi-colors": "^3.2.4",
    "bash-path": "^2.0.1",
    "gulp-format-md": "^2.0.0",
    "mocha": "^6.1.1"
  },
  "verb": {
    "toc": false,
    "layout": "default",
    "tasks": [
      "readme"
    ],
    "lint": {
      "reflinks": true
    },
    "plugins": [
      "gulp-format-md"
    ]
  }
}'use strict';

const fill = require('fill-range');
const utils = require('./utils');

const compile = (ast, options = {}) => {
  const walk = (node, parent = {}) => {
    const invalidBlock = utils.isInvalidBrace(parent);
    const invalidNode = node.invalid === true && options.escapeInvalid === true;
    const invalid = invalidBlock === true || invalidNode === true;
    const prefix = options.escapeInvalid === true ? '\\' : '';
    let output = '';

    if (node.isOpen === true) {
      return prefix + node.value;
    }

    if (node.isClose === true) {
      console.log('node.isClose', prefix, node.value);
      return prefix + node.value;
    }

    if (node.type === 'open') {
      return invalid ? prefix + node.value : '(';
    }

    if (node.type === 'close') {
      return invalid ? prefix + node.value : ')';
    }

    if (node.type === 'comma') {
      return node.prev.type === 'comma' ? '' : invalid ? node.value : '|';
    }

    if (node.value) {
      return node.value;
    }

    if (node.nodes && node.ranges > 0) {
      const args = utils.reduce(node.nodes);
      const range = fill(...args, { ...options, wrap: false, toRegex: true, strictZeros: true });

      if (range.length !== 0) {
        return args.length > 1 && range.length > 1 ? `(${range})` : range;
      }
    }

    if (node.nodes) {
      for (const child of node.nodes) {
        output += walk(child, node);
      }
    }

    return output;
  };

  return walk(ast);
};

module.exports = compile;
'use strict';

module.exports = {
  MAX_LENGTH: 10000,

  // Digits
  CHAR_0: '0', /* 0 */
  CHAR_9: '9', /* 9 */

  // Alphabet chars.
  CHAR_UPPERCASE_A: 'A', /* A */
  CHAR_LOWERCASE_A: 'a', /* a */
  CHAR_UPPERCASE_Z: 'Z', /* Z */
  CHAR_LOWERCASE_Z: 'z', /* z */

  CHAR_LEFT_PARENTHESES: '(', /* ( */
  CHAR_RIGHT_PARENTHESES: ')', /* ) */

  CHAR_ASTERISK: '*', /* * */

  // Non-alphabetic chars.
  CHAR_AMPERSAND: '&', /* & */
  CHAR_AT: '@', /* @ */
  CHAR_BACKSLASH: '\\', /* \ */
  CHAR_BACKTICK: '`', /* ` */
  CHAR_CARRIAGE_RETURN: '\r', /* \r */
  CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */
  CHAR_COLON: ':', /* : */
  CHAR_COMMA: ',', /* , */
  CHAR_DOLLAR: '$', /* . */
  CHAR_DOT: '.', /* . */
  CHAR_DOUBLE_QUOTE: '"', /* " */
  CHAR_EQUAL: '=', /* = */
  CHAR_EXCLAMATION_MARK: '!', /* ! */
  CHAR_FORM_FEED: '\f', /* \f */
  CHAR_FORWARD_SLASH: '/', /* / */
  CHAR_HASH: '#', /* # */
  CHAR_HYPHEN_MINUS: '-', /* - */
  CHAR_LEFT_ANGLE_BRACKET: '<', /* < */
  CHAR_LEFT_CURLY_BRACE: '{', /* { */
  CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */
  CHAR_LINE_FEED: '\n', /* \n */
  CHAR_NO_BREAK_SPACE: '\u00A0', /* \u00A0 */
  CHAR_PERCENT: '%', /* % */
  CHAR_PLUS: '+', /* + */
  CHAR_QUESTION_MARK: '?', /* ? */
  CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */
  CHAR_RIGHT_CURLY_BRACE: '}', /* } */
  CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */
  CHAR_SEMICOLON: ';', /* ; */
  CHAR_SINGLE_QUOTE: '\'', /* ' */
  CHAR_SPACE: ' ', /*   */
  CHAR_TAB: '\t', /* \t */
  CHAR_UNDERSCORE: '_', /* _ */
  CHAR_VERTICAL_LINE: '|', /* | */
  CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF' /* \uFEFF */
};
'use strict';

const fill = require('fill-range');
const stringify = require('./stringify');
const utils = require('./utils');

const append = (queue = '', stash = '', enclose = false) => {
  const result = [];

  queue = [].concat(queue);
  stash = [].concat(stash);

  if (!stash.length) return queue;
  if (!queue.length) {
    return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash;
  }

  for (const item of queue) {
    if (Array.isArray(item)) {
      for (const value of item) {
        result.push(append(value, stash, enclose));
      }
    } else {
      for (let ele of stash) {
        if (enclose === true && typeof ele === 'string') ele = `{${ele}}`;
        result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele);
      }
    }
  }
  return utils.flatten(result);
};

const expand = (ast, options = {}) => {
  const rangeLimit = options.rangeLimit === undefined ? 1000 : options.rangeLimit;

  const walk = (node, parent = {}) => {
    node.queue = [];

    let p = parent;
    let q = parent.queue;

    while (p.type !== 'brace' && p.type !== 'root' && p.parent) {
      p = p.parent;
      q = p.queue;
    }

    if (node.invalid || node.dollar) {
      q.push(append(q.pop(), stringify(node, options)));
      return;
    }

    if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) {
      q.push(append(q.pop(), ['{}']));
      return;
    }

    if (node.nodes && node.ranges > 0) {
      const args = utils.reduce(node.nodes);

      if (utils.exceedsLimit(...args, options.step, rangeLimit)) {
        throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.');
      }

      let range = fill(...args, options);
      if (range.length === 0) {
        range = stringify(node, options);
      }

      q.push(append(q.pop(), range));
      node.nodes = [];
      return;
    }

    const enclose = utils.encloseBrace(node);
    let queue = node.queue;
    let block = node;

    while (block.type !== 'brace' && block.type !== 'root' && block.parent) {
      block = block.parent;
      queue = block.queue;
    }

    for (let i = 0; i < node.nodes.length; i++) {
      const child = node.nodes[i];

      if (child.type === 'comma' && node.type === 'brace') {
        if (i === 1) queue.push('');
        queue.push('');
        continue;
      }

      if (child.type === 'close') {
        q.push(append(q.pop(), queue, enclose));
        continue;
      }

      if (child.value && child.type !== 'open') {
        queue.push(append(queue.pop(), child.value));
        continue;
      }

      if (child.nodes) {
        walk(child, node);
      }
    }

    return queue;
  };

  return utils.flatten(walk(ast));
};

module.exports = expand;
'use strict';

const stringify = require('./stringify');

/**
 * Constants
 */

const {
  MAX_LENGTH,
  CHAR_BACKSLASH, /* \ */
  CHAR_BACKTICK, /* ` */
  CHAR_COMMA, /* , */
  CHAR_DOT, /* . */
  CHAR_LEFT_PARENTHESES, /* ( */
  CHAR_RIGHT_PARENTHESES, /* ) */
  CHAR_LEFT_CURLY_BRACE, /* { */
  CHAR_RIGHT_CURLY_BRACE, /* } */
  CHAR_LEFT_SQUARE_BRACKET, /* [ */
  CHAR_RIGHT_SQUARE_BRACKET, /* ] */
  CHAR_DOUBLE_QUOTE, /* " */
  CHAR_SINGLE_QUOTE, /* ' */
  CHAR_NO_BREAK_SPACE,
  CHAR_ZERO_WIDTH_NOBREAK_SPACE
} = require('./constants');

/**
 * parse
 */

const parse = (input, options = {}) => {
  if (typeof input !== 'string') {
    throw new TypeError('Expected a string');
  }

  const opts = options || {};
  const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
  if (input.length > max) {
    throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);
  }

  const ast = { type: 'root', input, nodes: [] };
  const stack = [ast];
  let block = ast;
  let prev = ast;
  let brackets = 0;
  const length = input.length;
  let index = 0;
  let depth = 0;
  let value;

  /**
   * Helpers
   */

  const advance = () => input[index++];
  const push = node => {
    if (node.type === 'text' && prev.type === 'dot') {
      prev.type = 'text';
    }

    if (prev && prev.type === 'text' && node.type === 'text') {
      prev.value += node.value;
      return;
    }

    block.nodes.push(node);
    node.parent = block;
    node.prev = prev;
    prev = node;
    return node;
  };

  push({ type: 'bos' });

  while (index < length) {
    block = stack[stack.length - 1];
    value = advance();

    /**
     * Invalid chars
     */

    if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) {
      continue;
    }

    /**
     * Escaped chars
     */

    if (value === CHAR_BACKSLASH) {
      push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() });
      continue;
    }

    /**
     * Right square bracket (literal): ']'
     */

    if (value === CHAR_RIGHT_SQUARE_BRACKET) {
      push({ type: 'text', value: '\\' + value });
      continue;
    }

    /**
     * Left square bracket: '['
     */

    if (value === CHAR_LEFT_SQUARE_BRACKET) {
      brackets++;

      let next;

      while (index < length && (next = advance())) {
        value += next;

        if (next === CHAR_LEFT_SQUARE_BRACKET) {
          brackets++;
          continue;
        }

        if (next === CHAR_BACKSLASH) {
          value += advance();
          continue;
        }

        if (next === CHAR_RIGHT_SQUARE_BRACKET) {
          brackets--;

          if (brackets === 0) {
            break;
          }
        }
      }

      push({ type: 'text', value });
      continue;
    }

    /**
     * Parentheses
     */

    if (value === CHAR_LEFT_PARENTHESES) {
      block = push({ type: 'paren', nodes: [] });
      stack.push(block);
      push({ type: 'text', value });
      continue;
    }

    if (value === CHAR_RIGHT_PARENTHESES) {
      if (block.type !== 'paren') {
        push({ type: 'text', value });
        continue;
      }
      block = stack.pop();
      push({ type: 'text', value });
      block = stack[stack.length - 1];
      continue;
    }

    /**
     * Quotes: '|"|`
     */

    if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) {
      const open = value;
      let next;

      if (options.keepQuotes !== true) {
        value = '';
      }

      while (index < length && (next = advance())) {
        if (next === CHAR_BACKSLASH) {
          value += next + advance();
          continue;
        }

        if (next === open) {
          if (options.keepQuotes === true) value += next;
          break;
        }

        value += next;
      }

      push({ type: 'text', value });
      continue;
    }

    /**
     * Left curly brace: '{'
     */

    if (value === CHAR_LEFT_CURLY_BRACE) {
      depth++;

      const dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true;
      const brace = {
        type: 'brace',
        open: true,
        close: false,
        dollar,
        depth,
        commas: 0,
        ranges: 0,
        nodes: []
      };

      block = push(brace);
      stack.push(block);
      push({ type: 'open', value });
      continue;
    }

    /**
     * Right curly brace: '}'
     */

    if (value === CHAR_RIGHT_CURLY_BRACE) {
      if (block.type !== 'brace') {
        push({ type: 'text', value });
        continue;
      }

      const type = 'close';
      block = stack.pop();
      block.close = true;

      push({ type, value });
      depth--;

      block = stack[stack.length - 1];
      continue;
    }

    /**
     * Comma: ','
     */

    if (value === CHAR_COMMA && depth > 0) {
      if (block.ranges > 0) {
        block.ranges = 0;
        const open = block.nodes.shift();
        block.nodes = [open, { type: 'text', value: stringify(block) }];
      }

      push({ type: 'comma', value });
      block.commas++;
      continue;
    }

    /**
     * Dot: '.'
     */

    if (value === CHAR_DOT && depth > 0 && block.commas === 0) {
      const siblings = block.nodes;

      if (depth === 0 || siblings.length === 0) {
        push({ type: 'text', value });
        continue;
      }

      if (prev.type === 'dot') {
        block.range = [];
        prev.value += value;
        prev.type = 'range';

        if (block.nodes.length !== 3 && block.nodes.length !== 5) {
          block.invalid = true;
          block.ranges = 0;
          prev.type = 'text';
          continue;
        }

        block.ranges++;
        block.args = [];
        continue;
      }

      if (prev.type === 'range') {
        siblings.pop();

        const before = siblings[siblings.length - 1];
        before.value += prev.value + value;
        prev = before;
        block.ranges--;
        continue;
      }

      push({ type: 'dot', value });
      continue;
    }

    /**
     * Text
     */

    push({ type: 'text', value });
  }

  // Mark imbalanced braces and brackets as invalid
  do {
    block = stack.pop();

    if (block.type !== 'root') {
      block.nodes.forEach(node => {
        if (!node.nodes) {
          if (node.type === 'open') node.isOpen = true;
          if (node.type === 'close') node.isClose = true;
          if (!node.nodes) node.type = 'text';
          node.invalid = true;
        }
      });

      // get the location of the block on parent.nodes (block's siblings)
      const parent = stack[stack.length - 1];
      const index = parent.nodes.indexOf(block);
      // replace the (invalid) block with it's nodes
      parent.nodes.splice(index, 1, ...block.nodes);
    }
  } while (stack.length > 0);

  push({ type: 'eos' });
  return ast;
};

module.exports = parse;
'use strict';

const utils = require('./utils');

module.exports = (ast, options = {}) => {
  const stringify = (node, parent = {}) => {
    const invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent);
    const invalidNode = node.invalid === true && options.escapeInvalid === true;
    let output = '';

    if (node.value) {
      if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) {
        return '\\' + node.value;
      }
      return node.value;
    }

    if (node.value) {
      return node.value;
    }

    if (node.nodes) {
      for (const child of node.nodes) {
        output += stringify(child);
      }
    }
    return output;
  };

  return stringify(ast);
};

'use strict';

exports.isInteger = num => {
  if (typeof num === 'number') {
    return Number.isInteger(num);
  }
  if (typeof num === 'string' && num.trim() !== '') {
    return Number.isInteger(Number(num));
  }
  return false;
};

/**
 * Find a node of the given type
 */

exports.find = (node, type) => node.nodes.find(node => node.type === type);

/**
 * Find a node of the given type
 */

exports.exceedsLimit = (min, max, step = 1, limit) => {
  if (limit === false) return false;
  if (!exports.isInteger(min) || !exports.isInteger(max)) return false;
  return ((Number(max) - Number(min)) / Number(step)) >= limit;
};

/**
 * Escape the given node with '\\' before node.value
 */

exports.escapeNode = (block, n = 0, type) => {
  const node = block.nodes[n];
  if (!node) return;

  if ((type && node.type === type) || node.type === 'open' || node.type === 'close') {
    if (node.escaped !== true) {
      node.value = '\\' + node.value;
      node.escaped = true;
    }
  }
};

/**
 * Returns true if the given brace node should be enclosed in literal braces
 */

exports.encloseBrace = node => {
  if (node.type !== 'brace') return false;
  if ((node.commas >> 0 + node.ranges >> 0) === 0) {
    node.invalid = true;
    return true;
  }
  return false;
};

/**
 * Returns true if a brace node is invalid.
 */

exports.isInvalidBrace = block => {
  if (block.type !== 'brace') return false;
  if (block.invalid === true || block.dollar) return true;
  if ((block.commas >> 0 + block.ranges >> 0) === 0) {
    block.invalid = true;
    return true;
  }
  if (block.open !== true || block.close !== true) {
    block.invalid = true;
    return true;
  }
  return false;
};

/**
 * Returns true if a node is an open or close node
 */

exports.isOpenOrClose = node => {
  if (node.type === 'open' || node.type === 'close') {
    return true;
  }
  return node.open === true || node.close === true;
};

/**
 * Reduce an array of text nodes.
 */

exports.reduce = nodes => nodes.reduce((acc, node) => {
  if (node.type === 'text') acc.push(node.value);
  if (node.type === 'range') node.type = 'text';
  return acc;
}, []);

/**
 * Flatten an array
 */

exports.flatten = (...args) => {
  const result = [];

  const flat = arr => {
    for (let i = 0; i < arr.length; i++) {
      const ele = arr[i];

      if (Array.isArray(ele)) {
        flat(ele);
        continue;
      }

      if (ele !== undefined) {
        result.push(ele);
      }
    }
    return result;
  };

  flat(args);
  return result;
};
The MIT License (MIT)

Copyright (c) 2015 Loopline Systems

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

{
  "name": "builder-util-runtime",
  "version": "9.3.1",
  "main": "out/index.js",
  "author": "Vladimir Krivosheev",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/electron-userland/electron-builder.git",
    "directory": "packages/builder-util-runtime"
  },
  "homepage": "https://github.com/electron-userland/electron-builder",
  "files": [
    "out"
  ],
  "engines": {
    "node": ">=12.0.0"
  },
  "dependencies": {
    "debug": "^4.3.4",
    "sax": "^1.2.4"
  },
  "devDependencies": {
    "@types/debug": "4.1.7",
    "@types/sax": "1.2.3"
  },
  "types": "./out/index.d.ts"
}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CancellationError = exports.CancellationToken = void 0;
const events_1 = require("events");
class CancellationToken extends events_1.EventEmitter {
    get cancelled() {
        return this._cancelled || (this._parent != null && this._parent.cancelled);
    }
    set parent(value) {
        this.removeParentCancelHandler();
        this._parent = value;
        this.parentCancelHandler = () => this.cancel();
        this._parent.onCancel(this.parentCancelHandler);
    }
    // babel cannot compile ... correctly for super calls
    constructor(parent) {
        super();
        this.parentCancelHandler = null;
        this._parent = null;
        this._cancelled = false;
        if (parent != null) {
            this.parent = parent;
        }
    }
    cancel() {
        this._cancelled = true;
        this.emit("cancel");
    }
    onCancel(handler) {
        if (this.cancelled) {
            handler();
        }
        else {
            this.once("cancel", handler);
        }
    }
    createPromise(callback) {
        if (this.cancelled) {
            return Promise.reject(new CancellationError());
        }
        const finallyHandler = () => {
            if (cancelHandler != null) {
                try {
                    this.removeListener("cancel", cancelHandler);
                    cancelHandler = null;
                }
                catch (_ignore) {
                    // ignore
                }
            }
        };
        let cancelHandler = null;
        return new Promise((resolve, reject) => {
            let addedCancelHandler = null;
            cancelHandler = () => {
                try {
                    if (addedCancelHandler != null) {
                        addedCancelHandler();
                        addedCancelHandler = null;
                    }
                }
                finally {
                    reject(new CancellationError());
                }
            };
            if (this.cancelled) {
                cancelHandler();
                return;
            }
            this.onCancel(cancelHandler);
            callback(resolve, reject, (callback) => {
                addedCancelHandler = callback;
            });
        })
            .then(it => {
            finallyHandler();
            return it;
        })
            .catch((e) => {
            finallyHandler();
            throw e;
        });
    }
    removeParentCancelHandler() {
        const parent = this._parent;
        if (parent != null && this.parentCancelHandler != null) {
            parent.removeListener("cancel", this.parentCancelHandler);
            this.parentCancelHandler = null;
        }
    }
    dispose() {
        try {
            this.removeParentCancelHandler();
        }
        finally {
            this.removeAllListeners();
            this._parent = null;
        }
    }
}
exports.CancellationToken = CancellationToken;
class CancellationError extends Error {
    constructor() {
        super("cancelled");
    }
}
exports.CancellationError = CancellationError;
{"version":3,"file":"CancellationToken.js","sourceRoot":"","sources":["../src/CancellationToken.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AAErC,MAAa,iBAAkB,SAAQ,qBAAY;IAIjD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC5E,CAAC;IAGD,IAAI,MAAM,CAAC,KAAwB;QACjC,IAAI,CAAC,yBAAyB,EAAE,CAAA;QAEhC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,mBAAmB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA;QAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACjD,CAAC;IAED,qDAAqD;IACrD,YAAY,MAA0B;QACpC,KAAK,EAAE,CAAA;QAlBD,wBAAmB,GAAuB,IAAI,CAAA;QAO9C,YAAO,GAA6B,IAAI,CAAA;QAa9C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;QACvB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACrB,CAAC;IAEO,QAAQ,CAAC,OAAkB;QACjC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,EAAE,CAAA;QACX,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,aAAa,CACX,QAAqJ;QAErJ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC,MAAM,CAAI,IAAI,iBAAiB,EAAE,CAAC,CAAA;QACnD,CAAC;QAED,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;oBAC5C,aAAa,GAAG,IAAI,CAAA;gBACtB,CAAC;gBAAC,OAAO,OAAO,EAAE,CAAC;oBACjB,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,IAAI,aAAa,GAAwB,IAAI,CAAA;QAC7C,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,IAAI,kBAAkB,GAAwB,IAAI,CAAA;YAElD,aAAa,GAAG,GAAG,EAAE;gBACnB,IAAI,CAAC;oBACH,IAAI,kBAAkB,IAAI,IAAI,EAAE,CAAC;wBAC/B,kBAAkB,EAAE,CAAA;wBACpB,kBAAkB,GAAG,IAAI,CAAA;oBAC3B,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAA;gBACjC,CAAC;YACH,CAAC,CAAA;YAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,aAAa,EAAE,CAAA;gBACf,OAAM;YACR,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;YAE5B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,QAAoB,EAAE,EAAE;gBACjD,kBAAkB,GAAG,QAAQ,CAAA;YAC/B,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC;aACC,IAAI,CAAC,EAAE,CAAC,EAAE;YACT,cAAc,EAAE,CAAA;YAChB,OAAO,EAAE,CAAA;QACX,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE;YAChB,cAAc,EAAE,CAAA;YAChB,MAAM,CAAC,CAAA;QACT,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,yBAAyB;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,EAAE,CAAC;YACvD,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAA;YACzD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;QACjC,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC;YACH,IAAI,CAAC,yBAAyB,EAAE,CAAA;QAClC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACrB,CAAC;IACH,CAAC;CACF;AA9GD,8CA8GC;AAED,MAAa,iBAAkB,SAAQ,KAAK;IAC1C;QACE,KAAK,CAAC,WAAW,CAAC,CAAA;IACpB,CAAC;CACF;AAJD,8CAIC","sourcesContent":["import { EventEmitter } from \"events\"\n\nexport class CancellationToken extends EventEmitter {\n  private parentCancelHandler: (() => any) | null = null\n\n  private _cancelled: boolean\n  get cancelled(): boolean {\n    return this._cancelled || (this._parent != null && this._parent.cancelled)\n  }\n\n  private _parent: CancellationToken | null = null\n  set parent(value: CancellationToken) {\n    this.removeParentCancelHandler()\n\n    this._parent = value\n    this.parentCancelHandler = () => this.cancel()\n    this._parent.onCancel(this.parentCancelHandler)\n  }\n\n  // babel cannot compile ... correctly for super calls\n  constructor(parent?: CancellationToken) {\n    super()\n\n    this._cancelled = false\n    if (parent != null) {\n      this.parent = parent\n    }\n  }\n\n  cancel() {\n    this._cancelled = true\n    this.emit(\"cancel\")\n  }\n\n  private onCancel(handler: () => any) {\n    if (this.cancelled) {\n      handler()\n    } else {\n      this.once(\"cancel\", handler)\n    }\n  }\n\n  createPromise<R>(\n    callback: (resolve: (thenableOrResult: R | PromiseLike<R>) => void, reject: (error: Error) => void, onCancel: (callback: () => void) => void) => void\n  ): Promise<R> {\n    if (this.cancelled) {\n      return Promise.reject<R>(new CancellationError())\n    }\n\n    const finallyHandler = () => {\n      if (cancelHandler != null) {\n        try {\n          this.removeListener(\"cancel\", cancelHandler)\n          cancelHandler = null\n        } catch (_ignore) {\n          // ignore\n        }\n      }\n    }\n\n    let cancelHandler: (() => void) | null = null\n    return new Promise<R>((resolve, reject) => {\n      let addedCancelHandler: (() => void) | null = null\n\n      cancelHandler = () => {\n        try {\n          if (addedCancelHandler != null) {\n            addedCancelHandler()\n            addedCancelHandler = null\n          }\n        } finally {\n          reject(new CancellationError())\n        }\n      }\n\n      if (this.cancelled) {\n        cancelHandler()\n        return\n      }\n\n      this.onCancel(cancelHandler)\n\n      callback(resolve, reject, (callback: () => void) => {\n        addedCancelHandler = callback\n      })\n    })\n      .then(it => {\n        finallyHandler()\n        return it\n      })\n      .catch((e: any) => {\n        finallyHandler()\n        throw e\n      })\n  }\n\n  private removeParentCancelHandler() {\n    const parent = this._parent\n    if (parent != null && this.parentCancelHandler != null) {\n      parent.removeListener(\"cancel\", this.parentCancelHandler)\n      this.parentCancelHandler = null\n    }\n  }\n\n  dispose() {\n    try {\n      this.removeParentCancelHandler()\n    } finally {\n      this.removeAllListeners()\n      this._parent = null\n    }\n  }\n}\n\nexport class CancellationError extends Error {\n  constructor() {\n    super(\"cancelled\")\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MemoLazy = void 0;
class MemoLazy {
    constructor(selector, creator) {
        this.selector = selector;
        this.creator = creator;
        this.selected = undefined;
        this._value = undefined;
    }
    get hasValue() {
        return this._value !== undefined;
    }
    get value() {
        const selected = this.selector();
        if (this._value !== undefined && equals(this.selected, selected)) {
            // value exists and selected hasn't changed, so return the cached value
            return this._value;
        }
        this.selected = selected;
        const result = this.creator(selected);
        this.value = result;
        return result;
    }
    set value(value) {
        this._value = value;
    }
}
exports.MemoLazy = MemoLazy;
function equals(firstValue, secondValue) {
    const isFirstObject = typeof firstValue === "object" && firstValue !== null;
    const isSecondObject = typeof secondValue === "object" && secondValue !== null;
    // do a shallow comparison of objects, arrays etc.
    if (isFirstObject && isSecondObject) {
        const keys1 = Object.keys(firstValue);
        const keys2 = Object.keys(secondValue);
        return keys1.length === keys2.length && keys1.every((key) => equals(firstValue[key], secondValue[key]));
    }
    // otherwise just compare the values directly
    return firstValue === secondValue;
}
{"version":3,"file":"MemoLazy.js","sourceRoot":"","sources":["../src/MemoLazy.ts"],"names":[],"mappings":";;;AAAA,MAAa,QAAQ;IAInB,YACU,QAAiB,EACjB,OAAoC;QADpC,aAAQ,GAAR,QAAQ,CAAS;QACjB,YAAO,GAAP,OAAO,CAA6B;QALtC,aAAQ,GAAkB,SAAS,CAAA;QACnC,WAAM,GAA2B,SAAS,CAAA;IAK/C,CAAC;IAEJ,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAA;IAClC,CAAC;IAED,IAAI,KAAK;QACP,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;YACjE,uEAAuE;YACvE,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACrC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;QAEnB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,KAAK,CAAC,KAAiB;QACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;IACrB,CAAC;CACF;AA9BD,4BA8BC;AAED,SAAS,MAAM,CAAC,UAAe,EAAE,WAAgB;IAC/C,MAAM,aAAa,GAAG,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,CAAA;IAC3E,MAAM,cAAc,GAAG,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,IAAI,CAAA;IAE9E,kDAAkD;IAClD,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAEtC,OAAO,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC9G,CAAC;IAED,6CAA6C;IAC7C,OAAO,UAAU,KAAK,WAAW,CAAA;AACnC,CAAC","sourcesContent":["export class MemoLazy<S, V> {\n  private selected: S | undefined = undefined\n  private _value: Promise<V> | undefined = undefined\n\n  constructor(\n    private selector: () => S,\n    private creator: (selected: S) => Promise<V>\n  ) {}\n\n  get hasValue() {\n    return this._value !== undefined\n  }\n\n  get value(): Promise<V> {\n    const selected = this.selector()\n    if (this._value !== undefined && equals(this.selected, selected)) {\n      // value exists and selected hasn't changed, so return the cached value\n      return this._value\n    }\n\n    this.selected = selected\n    const result = this.creator(selected)\n    this.value = result\n\n    return result\n  }\n\n  set value(value: Promise<V>) {\n    this._value = value\n  }\n}\n\nfunction equals(firstValue: any, secondValue: any): boolean {\n  const isFirstObject = typeof firstValue === \"object\" && firstValue !== null\n  const isSecondObject = typeof secondValue === \"object\" && secondValue !== null\n\n  // do a shallow comparison of objects, arrays etc.\n  if (isFirstObject && isSecondObject) {\n    const keys1 = Object.keys(firstValue)\n    const keys2 = Object.keys(secondValue)\n\n    return keys1.length === keys2.length && keys1.every((key: any) => equals(firstValue[key], secondValue[key]))\n  }\n\n  // otherwise just compare the values directly\n  return firstValue === secondValue\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProgressCallbackTransform = void 0;
const stream_1 = require("stream");
class ProgressCallbackTransform extends stream_1.Transform {
    constructor(total, cancellationToken, onProgress) {
        super();
        this.total = total;
        this.cancellationToken = cancellationToken;
        this.onProgress = onProgress;
        this.start = Date.now();
        this.transferred = 0;
        this.delta = 0;
        this.nextUpdate = this.start + 1000;
    }
    _transform(chunk, encoding, callback) {
        if (this.cancellationToken.cancelled) {
            callback(new Error("cancelled"), null);
            return;
        }
        this.transferred += chunk.length;
        this.delta += chunk.length;
        const now = Date.now();
        if (now >= this.nextUpdate && this.transferred !== this.total /* will be emitted on _flush */) {
            this.nextUpdate = now + 1000;
            this.onProgress({
                total: this.total,
                delta: this.delta,
                transferred: this.transferred,
                percent: (this.transferred / this.total) * 100,
                bytesPerSecond: Math.round(this.transferred / ((now - this.start) / 1000)),
            });
            this.delta = 0;
        }
        callback(null, chunk);
    }
    _flush(callback) {
        if (this.cancellationToken.cancelled) {
            callback(new Error("cancelled"));
            return;
        }
        this.onProgress({
            total: this.total,
            delta: this.delta,
            transferred: this.total,
            percent: 100,
            bytesPerSecond: Math.round(this.transferred / ((Date.now() - this.start) / 1000)),
        });
        this.delta = 0;
        callback(null);
    }
}
exports.ProgressCallbackTransform = ProgressCallbackTransform;
{"version":3,"file":"ProgressCallbackTransform.js","sourceRoot":"","sources":["../src/ProgressCallbackTransform.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAWlC,MAAa,yBAA0B,SAAQ,kBAAS;IAOtD,YACmB,KAAa,EACb,iBAAoC,EACpC,UAAuC;QAExD,KAAK,EAAE,CAAA;QAJU,UAAK,GAAL,KAAK,CAAQ;QACb,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,eAAU,GAAV,UAAU,CAA6B;QATlD,UAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAClB,gBAAW,GAAG,CAAC,CAAA;QACf,UAAK,GAAG,CAAC,CAAA;QAET,eAAU,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IAQtC,CAAC;IAED,UAAU,CAAC,KAAU,EAAE,QAAgB,EAAE,QAAa;QACpD,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;YACrC,QAAQ,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAA;YACtC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAA;QAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAA;QAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC;YAC9F,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,IAAI,CAAA;YAE5B,IAAI,CAAC,UAAU,CAAC;gBACd,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG;gBAC9C,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;aAC3E,CAAC,CAAA;YACF,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;QAChB,CAAC;QAED,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACvB,CAAC;IAED,MAAM,CAAC,QAAa;QAClB,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;YACrC,QAAQ,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAA;YAChC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,UAAU,CAAC;YACd,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,KAAK;YACvB,OAAO,EAAE,GAAG;YACZ,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;SAClF,CAAC,CAAA;QACF,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;QAEd,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;CACF;AA1DD,8DA0DC","sourcesContent":["import { Transform } from \"stream\"\nimport { CancellationToken } from \"./CancellationToken\"\n\nexport interface ProgressInfo {\n  total: number\n  delta: number\n  transferred: number\n  percent: number\n  bytesPerSecond: number\n}\n\nexport class ProgressCallbackTransform extends Transform {\n  private start = Date.now()\n  private transferred = 0\n  private delta = 0\n\n  private nextUpdate = this.start + 1000\n\n  constructor(\n    private readonly total: number,\n    private readonly cancellationToken: CancellationToken,\n    private readonly onProgress: (info: ProgressInfo) => any\n  ) {\n    super()\n  }\n\n  _transform(chunk: any, encoding: string, callback: any) {\n    if (this.cancellationToken.cancelled) {\n      callback(new Error(\"cancelled\"), null)\n      return\n    }\n\n    this.transferred += chunk.length\n    this.delta += chunk.length\n\n    const now = Date.now()\n    if (now >= this.nextUpdate && this.transferred !== this.total /* will be emitted on _flush */) {\n      this.nextUpdate = now + 1000\n\n      this.onProgress({\n        total: this.total,\n        delta: this.delta,\n        transferred: this.transferred,\n        percent: (this.transferred / this.total) * 100,\n        bytesPerSecond: Math.round(this.transferred / ((now - this.start) / 1000)),\n      })\n      this.delta = 0\n    }\n\n    callback(null, chunk)\n  }\n\n  _flush(callback: any): void {\n    if (this.cancellationToken.cancelled) {\n      callback(new Error(\"cancelled\"))\n      return\n    }\n\n    this.onProgress({\n      total: this.total,\n      delta: this.delta,\n      transferred: this.total,\n      percent: 100,\n      bytesPerSecond: Math.round(this.transferred / ((Date.now() - this.start) / 1000)),\n    })\n    this.delta = 0\n\n    callback(null)\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
{"version":3,"file":"blockMapApi.js","sourceRoot":"","sources":["../src/blockMapApi.ts"],"names":[],"mappings":"","sourcesContent":["export interface FileChunks {\n  checksums: Array<string>\n  sizes: Array<number>\n}\n\nexport interface BlockMap {\n  version: \"1\" | \"2\"\n  files: Array<BlockMapFile>\n}\n\nexport interface BlockMapFile extends FileChunks {\n  name: string\n  offset: number\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.newError = newError;
function newError(message, code) {
    const error = new Error(message);
    error.code = code;
    return error;
}
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";;AAAA,4BAIC;AAJD,SAAgB,QAAQ,CAAC,OAAe,EAAE,IAAY;IACpD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAC/B;IAAC,KAA+B,CAAC,IAAI,GAAG,IAAI,CAAA;IAC7C,OAAO,KAAK,CAAA;AACd,CAAC","sourcesContent":["export function newError(message: string, code: string) {\n  const error = new Error(message)\n  ;(error as NodeJS.ErrnoException).code = code\n  return error\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DigestTransform = exports.HttpExecutor = exports.HttpError = void 0;
exports.createHttpError = createHttpError;
exports.parseJson = parseJson;
exports.configureRequestOptionsFromUrl = configureRequestOptionsFromUrl;
exports.configureRequestUrl = configureRequestUrl;
exports.safeGetHeader = safeGetHeader;
exports.configureRequestOptions = configureRequestOptions;
exports.safeStringifyJson = safeStringifyJson;
const crypto_1 = require("crypto");
const debug_1 = require("debug");
const fs_1 = require("fs");
const stream_1 = require("stream");
const url_1 = require("url");
const CancellationToken_1 = require("./CancellationToken");
const error_1 = require("./error");
const ProgressCallbackTransform_1 = require("./ProgressCallbackTransform");
const debug = (0, debug_1.default)("electron-builder");
function createHttpError(response, description = null) {
    return new HttpError(response.statusCode || -1, `${response.statusCode} ${response.statusMessage}` +
        (description == null ? "" : "\n" + JSON.stringify(description, null, "  ")) +
        "\nHeaders: " +
        safeStringifyJson(response.headers), description);
}
const HTTP_STATUS_CODES = new Map([
    [429, "Too many requests"],
    [400, "Bad request"],
    [403, "Forbidden"],
    [404, "Not found"],
    [405, "Method not allowed"],
    [406, "Not acceptable"],
    [408, "Request timeout"],
    [413, "Request entity too large"],
    [500, "Internal server error"],
    [502, "Bad gateway"],
    [503, "Service unavailable"],
    [504, "Gateway timeout"],
    [505, "HTTP version not supported"],
]);
class HttpError extends Error {
    constructor(statusCode, message = `HTTP error: ${HTTP_STATUS_CODES.get(statusCode) || statusCode}`, description = null) {
        super(message);
        this.statusCode = statusCode;
        this.description = description;
        this.name = "HttpError";
        this.code = `HTTP_ERROR_${statusCode}`;
    }
    isServerError() {
        return this.statusCode >= 500 && this.statusCode <= 599;
    }
}
exports.HttpError = HttpError;
function parseJson(result) {
    return result.then(it => (it == null || it.length === 0 ? null : JSON.parse(it)));
}
class HttpExecutor {
    constructor() {
        this.maxRedirects = 10;
    }
    request(options, cancellationToken = new CancellationToken_1.CancellationToken(), data) {
        configureRequestOptions(options);
        const json = data == null ? undefined : JSON.stringify(data);
        const encodedData = json ? Buffer.from(json) : undefined;
        if (encodedData != null) {
            debug(json);
            const { headers, ...opts } = options;
            options = {
                method: "post",
                headers: {
                    "Content-Type": "application/json",
                    "Content-Length": encodedData.length,
                    ...headers,
                },
                ...opts,
            };
        }
        return this.doApiRequest(options, cancellationToken, it => it.end(encodedData));
    }
    doApiRequest(options, cancellationToken, requestProcessor, redirectCount = 0) {
        if (debug.enabled) {
            debug(`Request: ${safeStringifyJson(options)}`);
        }
        return cancellationToken.createPromise((resolve, reject, onCancel) => {
            const request = this.createRequest(options, (response) => {
                try {
                    this.handleResponse(response, options, cancellationToken, resolve, reject, redirectCount, requestProcessor);
                }
                catch (e) {
                    reject(e);
                }
            });
            this.addErrorAndTimeoutHandlers(request, reject, options.timeout);
            this.addRedirectHandlers(request, options, reject, redirectCount, options => {
                this.doApiRequest(options, cancellationToken, requestProcessor, redirectCount).then(resolve).catch(reject);
            });
            requestProcessor(request, reject);
            onCancel(() => request.abort());
        });
    }
    // noinspection JSUnusedLocalSymbols
    // eslint-disable-next-line
    addRedirectHandlers(request, options, reject, redirectCount, handler) {
        // not required for NodeJS
    }
    addErrorAndTimeoutHandlers(request, reject, timeout = 60 * 1000) {
        this.addTimeOutHandler(request, reject, timeout);
        request.on("error", reject);
        request.on("aborted", () => {
            reject(new Error("Request has been aborted by the server"));
        });
    }
    handleResponse(response, options, cancellationToken, resolve, reject, redirectCount, requestProcessor) {
        var _a;
        if (debug.enabled) {
            debug(`Response: ${response.statusCode} ${response.statusMessage}, request options: ${safeStringifyJson(options)}`);
        }
        // we handle any other >= 400 error on request end (read detailed message in the response body)
        if (response.statusCode === 404) {
            // error is clear, we don't need to read detailed error description
            reject(createHttpError(response, `method: ${options.method || "GET"} url: ${options.protocol || "https:"}//${options.hostname}${options.port ? `:${options.port}` : ""}${options.path}

Please double check that your authentication token is correct. Due to security reasons, actual status maybe not reported, but 404.
`));
            return;
        }
        else if (response.statusCode === 204) {
            // on DELETE request
            resolve();
            return;
        }
        const code = (_a = response.statusCode) !== null && _a !== void 0 ? _a : 0;
        const shouldRedirect = code >= 300 && code < 400;
        const redirectUrl = safeGetHeader(response, "location");
        if (shouldRedirect && redirectUrl != null) {
            if (redirectCount > this.maxRedirects) {
                reject(this.createMaxRedirectError());
                return;
            }
            this.doApiRequest(HttpExecutor.prepareRedirectUrlOptions(redirectUrl, options), cancellationToken, requestProcessor, redirectCount).then(resolve).catch(reject);
            return;
        }
        response.setEncoding("utf8");
        let data = "";
        response.on("error", reject);
        response.on("data", (chunk) => (data += chunk));
        response.on("end", () => {
            try {
                if (response.statusCode != null && response.statusCode >= 400) {
                    const contentType = safeGetHeader(response, "content-type");
                    const isJson = contentType != null && (Array.isArray(contentType) ? contentType.find(it => it.includes("json")) != null : contentType.includes("json"));
                    reject(createHttpError(response, `method: ${options.method || "GET"} url: ${options.protocol || "https:"}//${options.hostname}${options.port ? `:${options.port}` : ""}${options.path}

          Data:
          ${isJson ? JSON.stringify(JSON.parse(data)) : data}
          `));
                }
                else {
                    resolve(data.length === 0 ? null : data);
                }
            }
            catch (e) {
                reject(e);
            }
        });
    }
    async downloadToBuffer(url, options) {
        return await options.cancellationToken.createPromise((resolve, reject, onCancel) => {
            const responseChunks = [];
            const requestOptions = {
                headers: options.headers || undefined,
                // because PrivateGitHubProvider requires HttpExecutor.prepareRedirectUrlOptions logic, so, we need to redirect manually
                redirect: "manual",
            };
            configureRequestUrl(url, requestOptions);
            configureRequestOptions(requestOptions);
            this.doDownload(requestOptions, {
                destination: null,
                options,
                onCancel,
                callback: error => {
                    if (error == null) {
                        resolve(Buffer.concat(responseChunks));
                    }
                    else {
                        reject(error);
                    }
                },
                responseHandler: (response, callback) => {
                    let receivedLength = 0;
                    response.on("data", (chunk) => {
                        receivedLength += chunk.length;
                        if (receivedLength > 524288000) {
                            callback(new Error("Maximum allowed size is 500 MB"));
                            return;
                        }
                        responseChunks.push(chunk);
                    });
                    response.on("end", () => {
                        callback(null);
                    });
                },
            }, 0);
        });
    }
    doDownload(requestOptions, options, redirectCount) {
        const request = this.createRequest(requestOptions, (response) => {
            if (response.statusCode >= 400) {
                options.callback(new Error(`Cannot download "${requestOptions.protocol || "https:"}//${requestOptions.hostname}${requestOptions.path}", status ${response.statusCode}: ${response.statusMessage}`));
                return;
            }
            // It is possible for the response stream to fail, e.g. when a network is lost while
            // response stream is in progress. Stop waiting and reject so consumer can catch the error.
            response.on("error", options.callback);
            // this code not relevant for Electron (redirect event instead handled)
            const redirectUrl = safeGetHeader(response, "location");
            if (redirectUrl != null) {
                if (redirectCount < this.maxRedirects) {
                    this.doDownload(HttpExecutor.prepareRedirectUrlOptions(redirectUrl, requestOptions), options, redirectCount++);
                }
                else {
                    options.callback(this.createMaxRedirectError());
                }
                return;
            }
            if (options.responseHandler == null) {
                configurePipes(options, response);
            }
            else {
                options.responseHandler(response, options.callback);
            }
        });
        this.addErrorAndTimeoutHandlers(request, options.callback, requestOptions.timeout);
        this.addRedirectHandlers(request, requestOptions, options.callback, redirectCount, requestOptions => {
            this.doDownload(requestOptions, options, redirectCount++);
        });
        request.end();
    }
    createMaxRedirectError() {
        return new Error(`Too many redirects (> ${this.maxRedirects})`);
    }
    addTimeOutHandler(request, callback, timeout) {
        request.on("socket", (socket) => {
            socket.setTimeout(timeout, () => {
                request.abort();
                callback(new Error("Request timed out"));
            });
        });
    }
    static prepareRedirectUrlOptions(redirectUrl, options) {
        const newOptions = configureRequestOptionsFromUrl(redirectUrl, { ...options });
        const headers = newOptions.headers;
        if (headers === null || headers === void 0 ? void 0 : headers.authorization) {
            const parsedNewUrl = new url_1.URL(redirectUrl);
            if (parsedNewUrl.hostname.endsWith(".amazonaws.com") || parsedNewUrl.searchParams.has("X-Amz-Credential")) {
                delete headers.authorization;
            }
        }
        return newOptions;
    }
    static retryOnServerError(task, maxRetries = 3) {
        for (let attemptNumber = 0;; attemptNumber++) {
            try {
                return task();
            }
            catch (e) {
                if (attemptNumber < maxRetries && ((e instanceof HttpError && e.isServerError()) || e.code === "EPIPE")) {
                    continue;
                }
                throw e;
            }
        }
    }
}
exports.HttpExecutor = HttpExecutor;
function configureRequestOptionsFromUrl(url, options) {
    const result = configureRequestOptions(options);
    configureRequestUrl(new url_1.URL(url), result);
    return result;
}
function configureRequestUrl(url, options) {
    options.protocol = url.protocol;
    options.hostname = url.hostname;
    if (url.port) {
        options.port = url.port;
    }
    else if (options.port) {
        delete options.port;
    }
    options.path = url.pathname + url.search;
}
class DigestTransform extends stream_1.Transform {
    // noinspection JSUnusedGlobalSymbols
    get actual() {
        return this._actual;
    }
    constructor(expected, algorithm = "sha512", encoding = "base64") {
        super();
        this.expected = expected;
        this.algorithm = algorithm;
        this.encoding = encoding;
        this._actual = null;
        this.isValidateOnEnd = true;
        this.digester = (0, crypto_1.createHash)(algorithm);
    }
    // noinspection JSUnusedGlobalSymbols
    _transform(chunk, encoding, callback) {
        this.digester.update(chunk);
        callback(null, chunk);
    }
    // noinspection JSUnusedGlobalSymbols
    _flush(callback) {
        this._actual = this.digester.digest(this.encoding);
        if (this.isValidateOnEnd) {
            try {
                this.validate();
            }
            catch (e) {
                callback(e);
                return;
            }
        }
        callback(null);
    }
    validate() {
        if (this._actual == null) {
            throw (0, error_1.newError)("Not finished yet", "ERR_STREAM_NOT_FINISHED");
        }
        if (this._actual !== this.expected) {
            throw (0, error_1.newError)(`${this.algorithm} checksum mismatch, expected ${this.expected}, got ${this._actual}`, "ERR_CHECKSUM_MISMATCH");
        }
        return null;
    }
}
exports.DigestTransform = DigestTransform;
function checkSha2(sha2Header, sha2, callback) {
    if (sha2Header != null && sha2 != null && sha2Header !== sha2) {
        callback(new Error(`checksum mismatch: expected ${sha2} but got ${sha2Header} (X-Checksum-Sha2 header)`));
        return false;
    }
    return true;
}
function safeGetHeader(response, headerKey) {
    const value = response.headers[headerKey];
    if (value == null) {
        return null;
    }
    else if (Array.isArray(value)) {
        // electron API
        return value.length === 0 ? null : value[value.length - 1];
    }
    else {
        return value;
    }
}
function configurePipes(options, response) {
    if (!checkSha2(safeGetHeader(response, "X-Checksum-Sha2"), options.options.sha2, options.callback)) {
        return;
    }
    const streams = [];
    if (options.options.onProgress != null) {
        const contentLength = safeGetHeader(response, "content-length");
        if (contentLength != null) {
            streams.push(new ProgressCallbackTransform_1.ProgressCallbackTransform(parseInt(contentLength, 10), options.options.cancellationToken, options.options.onProgress));
        }
    }
    const sha512 = options.options.sha512;
    if (sha512 != null) {
        streams.push(new DigestTransform(sha512, "sha512", sha512.length === 128 && !sha512.includes("+") && !sha512.includes("Z") && !sha512.includes("=") ? "hex" : "base64"));
    }
    else if (options.options.sha2 != null) {
        streams.push(new DigestTransform(options.options.sha2, "sha256", "hex"));
    }
    const fileOut = (0, fs_1.createWriteStream)(options.destination);
    streams.push(fileOut);
    let lastStream = response;
    for (const stream of streams) {
        stream.on("error", (error) => {
            fileOut.close();
            if (!options.options.cancellationToken.cancelled) {
                options.callback(error);
            }
        });
        lastStream = lastStream.pipe(stream);
    }
    fileOut.on("finish", () => {
        ;
        fileOut.close(options.callback);
    });
}
function configureRequestOptions(options, token, method) {
    if (method != null) {
        options.method = method;
    }
    options.headers = { ...options.headers };
    const headers = options.headers;
    if (token != null) {
        ;
        headers.authorization = token.startsWith("Basic") || token.startsWith("Bearer") ? token : `token ${token}`;
    }
    if (headers["User-Agent"] == null) {
        headers["User-Agent"] = "electron-builder";
    }
    if (method == null || method === "GET" || headers["Cache-Control"] == null) {
        headers["Cache-Control"] = "no-cache";
    }
    // do not specify for node (in any case we use https module)
    if (options.protocol == null && process.versions.electron != null) {
        options.protocol = "https:";
    }
    return options;
}
function safeStringifyJson(data, skippedNames) {
    return JSON.stringify(data, (name, value) => {
        if (name.endsWith("Authorization") ||
            name.endsWith("authorization") ||
            name.endsWith("Password") ||
            name.endsWith("PASSWORD") ||
            name.endsWith("Token") ||
            name.includes("password") ||
            name.includes("token") ||
            (skippedNames != null && skippedNames.has(name))) {
            return "<stripped sensitive data>";
        }
        return value;
    }, 2);
}
{"version":3,"file":"httpExecutor.js","sourceRoot":"","sources":["../src/httpExecutor.ts"],"names":[],"mappings":";;;AA6BA,0CASC;AAmCD,8BAEC;AAsRD,wEAIC;AAED,kDASC;AAmED,sCAUC;AAyCD,0DAwBC;AAED,8CAoBC;AAphBD,mCAA+D;AAC/D,iCAA0B;AAC1B,2BAAsC;AAGtC,mCAAkC;AAClC,6BAAyB;AAEzB,2DAAuD;AACvD,mCAAkC;AAClC,2EAAqF;AAErF,MAAM,KAAK,GAAG,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAA;AAiBxC,SAAgB,eAAe,CAAC,QAAyB,EAAE,cAA0B,IAAI;IACvF,OAAO,IAAI,SAAS,CAClB,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,EACzB,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,aAAa,EAAE;QAChD,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3E,aAAa;QACb,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EACrC,WAAW,CACZ,CAAA;AACH,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAiB;IAChD,CAAC,GAAG,EAAE,mBAAmB,CAAC;IAC1B,CAAC,GAAG,EAAE,aAAa,CAAC;IACpB,CAAC,GAAG,EAAE,WAAW,CAAC;IAClB,CAAC,GAAG,EAAE,WAAW,CAAC;IAClB,CAAC,GAAG,EAAE,oBAAoB,CAAC;IAC3B,CAAC,GAAG,EAAE,gBAAgB,CAAC;IACvB,CAAC,GAAG,EAAE,iBAAiB,CAAC;IACxB,CAAC,GAAG,EAAE,0BAA0B,CAAC;IACjC,CAAC,GAAG,EAAE,uBAAuB,CAAC;IAC9B,CAAC,GAAG,EAAE,aAAa,CAAC;IACpB,CAAC,GAAG,EAAE,qBAAqB,CAAC;IAC5B,CAAC,GAAG,EAAE,iBAAiB,CAAC;IACxB,CAAC,GAAG,EAAE,4BAA4B,CAAC;CACpC,CAAC,CAAA;AAEF,MAAa,SAAU,SAAQ,KAAK;IAClC,YACW,UAAkB,EAC3B,OAAO,GAAG,eAAe,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,UAAU,EAAE,EACjE,cAA0B,IAAI;QAEvC,KAAK,CAAC,OAAO,CAAC,CAAA;QAJL,eAAU,GAAV,UAAU,CAAQ;QAElB,gBAAW,GAAX,WAAW,CAAmB;QAIvC,IAAI,CAAC,IAAI,GAAG,WAAW,CACtB;QAAC,IAA8B,CAAC,IAAI,GAAG,cAAc,UAAU,EAAE,CAAA;IACpE,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,CAAA;IACzD,CAAC;CACF;AAfD,8BAeC;AAED,SAAgB,SAAS,CAAC,MAA8B;IACtD,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACnF,CAAC;AAMD,MAAsB,YAAY;IAAlC;QACqB,iBAAY,GAAG,EAAE,CAAA;IAmQtC,CAAC;IAjQC,OAAO,CAAC,OAAuB,EAAE,oBAAuC,IAAI,qCAAiB,EAAE,EAAE,IAAqC;QACpI,uBAAuB,CAAC,OAAO,CAAC,CAAA;QAChC,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACxD,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,KAAK,CAAC,IAAK,CAAC,CAAA;YACZ,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;YACpC,OAAO,GAAG;gBACR,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,gBAAgB,EAAE,WAAW,CAAC,MAAM;oBACpC,GAAG,OAAO;iBACX;gBACD,GAAG,IAAI;aACR,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IACjF,CAAC;IAED,YAAY,CACV,OAAuB,EACvB,iBAAoC,EACpC,gBAAsE,EACtE,aAAa,GAAG,CAAC;QAEjB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,KAAK,CAAC,YAAY,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACjD,CAAC;QAED,OAAO,iBAAiB,CAAC,aAAa,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;YAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,QAAa,EAAE,EAAE;gBAC5D,IAAI,CAAC;oBACH,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAA;gBAC7G,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,MAAM,CAAC,CAAC,CAAC,CAAA;gBACX,CAAC;YACH,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;YACjE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE;gBAC1E,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC5G,CAAC,CAAC,CAAA;YACF,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YACjC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,oCAAoC;IACpC,2BAA2B;IACjB,mBAAmB,CAAC,OAAY,EAAE,OAAuB,EAAE,MAA8B,EAAE,aAAqB,EAAE,OAA0C;QACpK,0BAA0B;IAC5B,CAAC;IAED,0BAA0B,CAAC,OAAY,EAAE,MAA8B,EAAE,OAAO,GAAG,EAAE,GAAG,IAAI;QAC1F,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAChD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC3B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,cAAc,CACpB,QAAyB,EACzB,OAAuB,EACvB,iBAAoC,EACpC,OAA6B,EAC7B,MAA8B,EAC9B,aAAqB,EACrB,gBAAsE;;QAEtE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,KAAK,CAAC,aAAa,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,aAAa,sBAAsB,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACrH,CAAC;QAED,+FAA+F;QAC/F,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YAChC,mEAAmE;YACnE,MAAM,CACJ,eAAe,CACb,QAAQ,EACR,WAAW,OAAO,CAAC,MAAM,IAAI,KAAK,SAAS,OAAO,CAAC,QAAQ,IAAI,QAAQ,KAAK,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI;;;CAG7J,CACQ,CACF,CAAA;YACD,OAAM;QACR,CAAC;aAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YACvC,oBAAoB;YACpB,OAAO,EAAE,CAAA;YACT,OAAM;QACR,CAAC;QAED,MAAM,IAAI,GAAG,MAAA,QAAQ,CAAC,UAAU,mCAAI,CAAC,CAAA;QACrC,MAAM,cAAc,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,CAAA;QAChD,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QACvD,IAAI,cAAc,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YAC1C,IAAI,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAA;gBACrC,OAAM;YACR,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,yBAAyB,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC/J,OAAM;QACR,CAAC;QAED,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAE5B,IAAI,IAAI,GAAG,EAAE,CAAA;QACb,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC5B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAA;QACvD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC;gBACH,IAAI,QAAQ,CAAC,UAAU,IAAI,IAAI,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;oBAC9D,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;oBAC3D,MAAM,MAAM,GAAG,WAAW,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;oBACvJ,MAAM,CACJ,eAAe,CACb,QAAQ,EACR,WAAW,OAAO,CAAC,MAAM,IAAI,KAAK,SAAS,OAAO,CAAC,QAAQ,IAAI,QAAQ,KAAK,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI;;;YAGtJ,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;WACjD,CACE,CACF,CAAA;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;gBAC1C,CAAC;YACH,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,MAAM,CAAC,CAAC,CAAC,CAAA;YACX,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAKD,KAAK,CAAC,gBAAgB,CAAC,GAAQ,EAAE,OAAwB;QACvD,OAAO,MAAM,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;YACzF,MAAM,cAAc,GAAa,EAAE,CAAA;YACnC,MAAM,cAAc,GAAG;gBACrB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,SAAS;gBACrC,wHAAwH;gBACxH,QAAQ,EAAE,QAAQ;aACnB,CAAA;YACD,mBAAmB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;YACxC,uBAAuB,CAAC,cAAc,CAAC,CAAA;YACvC,IAAI,CAAC,UAAU,CACb,cAAc,EACd;gBACE,WAAW,EAAE,IAAI;gBACjB,OAAO;gBACP,QAAQ;gBACR,QAAQ,EAAE,KAAK,CAAC,EAAE;oBAChB,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;wBAClB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAA;oBACxC,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,KAAK,CAAC,CAAA;oBACf,CAAC;gBACH,CAAC;gBACD,eAAe,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;oBACtC,IAAI,cAAc,GAAG,CAAC,CAAA;oBACtB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;wBACpC,cAAc,IAAI,KAAK,CAAC,MAAM,CAAA;wBAC9B,IAAI,cAAc,GAAG,SAAS,EAAE,CAAC;4BAC/B,QAAQ,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAA;4BACrD,OAAM;wBACR,CAAC;wBACD,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBAC5B,CAAC,CAAC,CAAA;oBACF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;wBACtB,QAAQ,CAAC,IAAI,CAAC,CAAA;oBAChB,CAAC,CAAC,CAAA;gBACJ,CAAC;aACF,EACD,CAAC,CACF,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAES,UAAU,CAAC,cAA8B,EAAE,OAA4B,EAAE,aAAqB;QACtG,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,QAAyB,EAAE,EAAE;YAC/E,IAAI,QAAQ,CAAC,UAAW,IAAI,GAAG,EAAE,CAAC;gBAChC,OAAO,CAAC,QAAQ,CACd,IAAI,KAAK,CACP,oBAAoB,cAAc,CAAC,QAAQ,IAAI,QAAQ,KAAK,cAAc,CAAC,QAAQ,GAAG,cAAc,CAAC,IAAI,aAAa,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,aAAa,EAAE,CACvK,CACF,CAAA;gBACD,OAAM;YACR,CAAC;YAED,oFAAoF;YACpF,2FAA2F;YAC3F,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;YAEtC,uEAAuE;YACvE,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;YACvD,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,yBAAyB,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAA;gBAChH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAA;gBACjD,CAAC;gBACD,OAAM;YACR,CAAC;YAED,IAAI,OAAO,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;gBACpC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACnC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;YACrD,CAAC;QACH,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;QAClF,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE;YAClG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QACF,OAAO,CAAC,GAAG,EAAE,CAAA;IACf,CAAC;IAES,sBAAsB;QAC9B,OAAO,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;IACjE,CAAC;IAEO,iBAAiB,CAAC,OAAY,EAAE,QAAgC,EAAE,OAAe;QACvF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAc,EAAE,EAAE;YACtC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC9B,OAAO,CAAC,KAAK,EAAE,CAAA;gBACf,QAAQ,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAA;YAC1C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,yBAAyB,CAAC,WAAmB,EAAE,OAAuB;QAC3E,MAAM,UAAU,GAAG,8BAA8B,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;QAC9E,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;QAClC,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,IAAI,SAAG,CAAC,WAAW,CAAC,CAAA;YACzC,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC1G,OAAO,OAAO,CAAC,aAAa,CAAA;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,IAAwB,EAAE,UAAU,GAAG,CAAC;QAChE,KAAK,IAAI,aAAa,GAAG,CAAC,GAAI,aAAa,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,OAAO,IAAI,EAAE,CAAA;YACf,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IAAI,aAAa,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,YAAY,SAAS,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;oBACxG,SAAQ;gBACV,CAAC;gBACD,MAAM,CAAC,CAAA;YACT,CAAC;QACH,CAAC;IACH,CAAC;CACF;AApQD,oCAoQC;AAYD,SAAgB,8BAA8B,CAAC,GAAW,EAAE,OAAuB;IACjF,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAA;IAC/C,mBAAmB,CAAC,IAAI,SAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;IACzC,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAgB,mBAAmB,CAAC,GAAQ,EAAE,OAAuB;IACnE,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;IAC/B,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;IAC/B,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;IACzB,CAAC;SAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,IAAI,CAAA;IACrB,CAAC;IACD,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAA;AAC1C,CAAC;AAED,MAAa,eAAgB,SAAQ,kBAAS;IAK5C,qCAAqC;IACrC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAID,YACW,QAAgB,EACR,YAAoB,QAAQ,EAC5B,WAAiC,QAAQ;QAE1D,KAAK,EAAE,CAAA;QAJE,aAAQ,GAAR,QAAQ,CAAQ;QACR,cAAS,GAAT,SAAS,CAAmB;QAC5B,aAAQ,GAAR,QAAQ,CAAiC;QAZpD,YAAO,GAAkB,IAAI,CAAA;QAOrC,oBAAe,GAAG,IAAI,CAAA;QASpB,IAAI,CAAC,QAAQ,GAAG,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAA;IACvC,CAAC;IAED,qCAAqC;IACrC,UAAU,CAAC,KAAa,EAAE,QAAgB,EAAE,QAAa;QACvD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACvB,CAAC;IAED,qCAAqC;IACrC,MAAM,CAAC,QAAa;QAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAElD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,IAAI,CAAC,QAAQ,EAAE,CAAA;YACjB,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,QAAQ,CAAC,CAAC,CAAC,CAAA;gBACX,OAAM;YACR,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,IAAA,gBAAQ,EAAC,kBAAkB,EAAE,yBAAyB,CAAC,CAAA;QAC/D,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAA,gBAAQ,EAAC,GAAG,IAAI,CAAC,SAAS,gCAAgC,IAAI,CAAC,QAAQ,SAAS,IAAI,CAAC,OAAO,EAAE,EAAE,uBAAuB,CAAC,CAAA;QAChI,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAvDD,0CAuDC;AAED,SAAS,SAAS,CAAC,UAA4B,EAAE,IAAsB,EAAE,QAAuC;IAC9G,IAAI,UAAU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QAC9D,QAAQ,CAAC,IAAI,KAAK,CAAC,+BAA+B,IAAI,YAAY,UAAU,2BAA2B,CAAC,CAAC,CAAA;QACzG,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAgB,aAAa,CAAC,QAAa,EAAE,SAAiB;IAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,eAAe;QACf,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,OAA4B,EAAE,QAAyB;IAC7E,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnG,OAAM;IACR,CAAC;IAED,MAAM,OAAO,GAAe,EAAE,CAAA;IAC9B,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;QAC/D,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,IAAI,qDAAyB,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;QACzI,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;IACrC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC1K,CAAC;SAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,sBAAiB,EAAC,OAAO,CAAC,WAAY,CAAC,CAAA;IACvD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAErB,IAAI,UAAU,GAAG,QAAQ,CAAA;IACzB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YAClC,OAAO,CAAC,KAAK,EAAE,CAAA;YACf,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;gBACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACzB,CAAC;QACH,CAAC,CAAC,CAAA;QACF,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,CAAC;QAAC,OAAO,CAAC,KAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAgB,uBAAuB,CAAC,OAAuB,EAAE,KAAqB,EAAE,MAA0C;IAChI,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;IACzB,CAAC;IAED,OAAO,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAE/B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,CAAC;QAAC,OAAe,CAAC,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAA;IACtH,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC;QAClC,OAAO,CAAC,YAAY,CAAC,GAAG,kBAAkB,CAAA;IAC5C,CAAC;IAED,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC;QAC3E,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,CAAA;IACvC,CAAC;IAED,4DAA4D;IAC5D,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAK,OAAO,CAAC,QAAgB,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC3E,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC7B,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAS,EAAE,YAA0B;IACrE,OAAO,IAAI,CAAC,SAAS,CACnB,IAAI,EACJ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACd,IACE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YACtB,CAAC,YAAY,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAChD,CAAC;YACD,OAAO,2BAA2B,CAAA;QACpC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC,EACD,CAAC,CACF,CAAA;AACH,CAAC","sourcesContent":["import { BinaryToTextEncoding, createHash, Hash } from \"crypto\"\nimport _debug from \"debug\"\nimport { createWriteStream } from \"fs\"\nimport { IncomingMessage, OutgoingHttpHeader, OutgoingHttpHeaders, RequestOptions } from \"http\"\nimport { Socket } from \"net\"\nimport { Transform } from \"stream\"\nimport { URL } from \"url\"\nimport { Nullish } from \".\"\nimport { CancellationToken } from \"./CancellationToken\"\nimport { newError } from \"./error\"\nimport { ProgressCallbackTransform, ProgressInfo } from \"./ProgressCallbackTransform\"\n\nconst debug = _debug(\"electron-builder\")\n\nexport interface RequestHeaders extends OutgoingHttpHeaders {\n  [key: string]: OutgoingHttpHeader | undefined\n}\n\nexport interface DownloadOptions {\n  readonly headers?: OutgoingHttpHeaders | null\n  readonly sha2?: string | null\n  readonly sha512?: string | null\n\n  readonly cancellationToken: CancellationToken\n\n  // noinspection JSUnusedLocalSymbols\n  onProgress?: (progress: ProgressInfo) => void\n}\n\nexport function createHttpError(response: IncomingMessage, description: any | null = null) {\n  return new HttpError(\n    response.statusCode || -1,\n    `${response.statusCode} ${response.statusMessage}` +\n      (description == null ? \"\" : \"\\n\" + JSON.stringify(description, null, \"  \")) +\n      \"\\nHeaders: \" +\n      safeStringifyJson(response.headers),\n    description\n  )\n}\n\nconst HTTP_STATUS_CODES = new Map<number, string>([\n  [429, \"Too many requests\"],\n  [400, \"Bad request\"],\n  [403, \"Forbidden\"],\n  [404, \"Not found\"],\n  [405, \"Method not allowed\"],\n  [406, \"Not acceptable\"],\n  [408, \"Request timeout\"],\n  [413, \"Request entity too large\"],\n  [500, \"Internal server error\"],\n  [502, \"Bad gateway\"],\n  [503, \"Service unavailable\"],\n  [504, \"Gateway timeout\"],\n  [505, \"HTTP version not supported\"],\n])\n\nexport class HttpError extends Error {\n  constructor(\n    readonly statusCode: number,\n    message = `HTTP error: ${HTTP_STATUS_CODES.get(statusCode) || statusCode}`,\n    readonly description: any | null = null\n  ) {\n    super(message)\n\n    this.name = \"HttpError\"\n    ;(this as NodeJS.ErrnoException).code = `HTTP_ERROR_${statusCode}`\n  }\n\n  isServerError() {\n    return this.statusCode >= 500 && this.statusCode <= 599\n  }\n}\n\nexport function parseJson(result: Promise<string | null>) {\n  return result.then(it => (it == null || it.length === 0 ? null : JSON.parse(it)))\n}\n\ninterface Request {\n  abort: () => void\n  end: (data?: Buffer) => void\n}\nexport abstract class HttpExecutor<T extends Request> {\n  protected readonly maxRedirects = 10\n\n  request(options: RequestOptions, cancellationToken: CancellationToken = new CancellationToken(), data?: { [name: string]: any } | null): Promise<string | null> {\n    configureRequestOptions(options)\n    const json = data == null ? undefined : JSON.stringify(data)\n    const encodedData = json ? Buffer.from(json) : undefined\n    if (encodedData != null) {\n      debug(json!)\n      const { headers, ...opts } = options\n      options = {\n        method: \"post\",\n        headers: {\n          \"Content-Type\": \"application/json\",\n          \"Content-Length\": encodedData.length,\n          ...headers,\n        },\n        ...opts,\n      }\n    }\n    return this.doApiRequest(options, cancellationToken, it => it.end(encodedData))\n  }\n\n  doApiRequest(\n    options: RequestOptions,\n    cancellationToken: CancellationToken,\n    requestProcessor: (request: T, reject: (error: Error) => void) => void,\n    redirectCount = 0\n  ): Promise<string> {\n    if (debug.enabled) {\n      debug(`Request: ${safeStringifyJson(options)}`)\n    }\n\n    return cancellationToken.createPromise<string>((resolve, reject, onCancel) => {\n      const request = this.createRequest(options, (response: any) => {\n        try {\n          this.handleResponse(response, options, cancellationToken, resolve, reject, redirectCount, requestProcessor)\n        } catch (e: any) {\n          reject(e)\n        }\n      })\n      this.addErrorAndTimeoutHandlers(request, reject, options.timeout)\n      this.addRedirectHandlers(request, options, reject, redirectCount, options => {\n        this.doApiRequest(options, cancellationToken, requestProcessor, redirectCount).then(resolve).catch(reject)\n      })\n      requestProcessor(request, reject)\n      onCancel(() => request.abort())\n    })\n  }\n\n  // noinspection JSUnusedLocalSymbols\n  // eslint-disable-next-line\n  protected addRedirectHandlers(request: any, options: RequestOptions, reject: (error: Error) => void, redirectCount: number, handler: (options: RequestOptions) => void) {\n    // not required for NodeJS\n  }\n\n  addErrorAndTimeoutHandlers(request: any, reject: (error: Error) => void, timeout = 60 * 1000) {\n    this.addTimeOutHandler(request, reject, timeout)\n    request.on(\"error\", reject)\n    request.on(\"aborted\", () => {\n      reject(new Error(\"Request has been aborted by the server\"))\n    })\n  }\n\n  private handleResponse(\n    response: IncomingMessage,\n    options: RequestOptions,\n    cancellationToken: CancellationToken,\n    resolve: (data?: any) => void,\n    reject: (error: Error) => void,\n    redirectCount: number,\n    requestProcessor: (request: T, reject: (error: Error) => void) => void\n  ) {\n    if (debug.enabled) {\n      debug(`Response: ${response.statusCode} ${response.statusMessage}, request options: ${safeStringifyJson(options)}`)\n    }\n\n    // we handle any other >= 400 error on request end (read detailed message in the response body)\n    if (response.statusCode === 404) {\n      // error is clear, we don't need to read detailed error description\n      reject(\n        createHttpError(\n          response,\n          `method: ${options.method || \"GET\"} url: ${options.protocol || \"https:\"}//${options.hostname}${options.port ? `:${options.port}` : \"\"}${options.path}\n\nPlease double check that your authentication token is correct. Due to security reasons, actual status maybe not reported, but 404.\n`\n        )\n      )\n      return\n    } else if (response.statusCode === 204) {\n      // on DELETE request\n      resolve()\n      return\n    }\n\n    const code = response.statusCode ?? 0\n    const shouldRedirect = code >= 300 && code < 400\n    const redirectUrl = safeGetHeader(response, \"location\")\n    if (shouldRedirect && redirectUrl != null) {\n      if (redirectCount > this.maxRedirects) {\n        reject(this.createMaxRedirectError())\n        return\n      }\n\n      this.doApiRequest(HttpExecutor.prepareRedirectUrlOptions(redirectUrl, options), cancellationToken, requestProcessor, redirectCount).then(resolve).catch(reject)\n      return\n    }\n\n    response.setEncoding(\"utf8\")\n\n    let data = \"\"\n    response.on(\"error\", reject)\n    response.on(\"data\", (chunk: string) => (data += chunk))\n    response.on(\"end\", () => {\n      try {\n        if (response.statusCode != null && response.statusCode >= 400) {\n          const contentType = safeGetHeader(response, \"content-type\")\n          const isJson = contentType != null && (Array.isArray(contentType) ? contentType.find(it => it.includes(\"json\")) != null : contentType.includes(\"json\"))\n          reject(\n            createHttpError(\n              response,\n              `method: ${options.method || \"GET\"} url: ${options.protocol || \"https:\"}//${options.hostname}${options.port ? `:${options.port}` : \"\"}${options.path}\n\n          Data:\n          ${isJson ? JSON.stringify(JSON.parse(data)) : data}\n          `\n            )\n          )\n        } else {\n          resolve(data.length === 0 ? null : data)\n        }\n      } catch (e: any) {\n        reject(e)\n      }\n    })\n  }\n\n  // noinspection JSUnusedLocalSymbols\n  abstract createRequest(options: RequestOptions, callback: (response: any) => void): T\n\n  async downloadToBuffer(url: URL, options: DownloadOptions): Promise<Buffer> {\n    return await options.cancellationToken.createPromise<Buffer>((resolve, reject, onCancel) => {\n      const responseChunks: Buffer[] = []\n      const requestOptions = {\n        headers: options.headers || undefined,\n        // because PrivateGitHubProvider requires HttpExecutor.prepareRedirectUrlOptions logic, so, we need to redirect manually\n        redirect: \"manual\",\n      }\n      configureRequestUrl(url, requestOptions)\n      configureRequestOptions(requestOptions)\n      this.doDownload(\n        requestOptions,\n        {\n          destination: null,\n          options,\n          onCancel,\n          callback: error => {\n            if (error == null) {\n              resolve(Buffer.concat(responseChunks))\n            } else {\n              reject(error)\n            }\n          },\n          responseHandler: (response, callback) => {\n            let receivedLength = 0\n            response.on(\"data\", (chunk: Buffer) => {\n              receivedLength += chunk.length\n              if (receivedLength > 524288000) {\n                callback(new Error(\"Maximum allowed size is 500 MB\"))\n                return\n              }\n              responseChunks.push(chunk)\n            })\n            response.on(\"end\", () => {\n              callback(null)\n            })\n          },\n        },\n        0\n      )\n    })\n  }\n\n  protected doDownload(requestOptions: RequestOptions, options: DownloadCallOptions, redirectCount: number) {\n    const request = this.createRequest(requestOptions, (response: IncomingMessage) => {\n      if (response.statusCode! >= 400) {\n        options.callback(\n          new Error(\n            `Cannot download \"${requestOptions.protocol || \"https:\"}//${requestOptions.hostname}${requestOptions.path}\", status ${response.statusCode}: ${response.statusMessage}`\n          )\n        )\n        return\n      }\n\n      // It is possible for the response stream to fail, e.g. when a network is lost while\n      // response stream is in progress. Stop waiting and reject so consumer can catch the error.\n      response.on(\"error\", options.callback)\n\n      // this code not relevant for Electron (redirect event instead handled)\n      const redirectUrl = safeGetHeader(response, \"location\")\n      if (redirectUrl != null) {\n        if (redirectCount < this.maxRedirects) {\n          this.doDownload(HttpExecutor.prepareRedirectUrlOptions(redirectUrl, requestOptions), options, redirectCount++)\n        } else {\n          options.callback(this.createMaxRedirectError())\n        }\n        return\n      }\n\n      if (options.responseHandler == null) {\n        configurePipes(options, response)\n      } else {\n        options.responseHandler(response, options.callback)\n      }\n    })\n    this.addErrorAndTimeoutHandlers(request, options.callback, requestOptions.timeout)\n    this.addRedirectHandlers(request, requestOptions, options.callback, redirectCount, requestOptions => {\n      this.doDownload(requestOptions, options, redirectCount++)\n    })\n    request.end()\n  }\n\n  protected createMaxRedirectError() {\n    return new Error(`Too many redirects (> ${this.maxRedirects})`)\n  }\n\n  private addTimeOutHandler(request: any, callback: (error: Error) => void, timeout: number) {\n    request.on(\"socket\", (socket: Socket) => {\n      socket.setTimeout(timeout, () => {\n        request.abort()\n        callback(new Error(\"Request timed out\"))\n      })\n    })\n  }\n\n  static prepareRedirectUrlOptions(redirectUrl: string, options: RequestOptions): RequestOptions {\n    const newOptions = configureRequestOptionsFromUrl(redirectUrl, { ...options })\n    const headers = newOptions.headers\n    if (headers?.authorization) {\n      const parsedNewUrl = new URL(redirectUrl)\n      if (parsedNewUrl.hostname.endsWith(\".amazonaws.com\") || parsedNewUrl.searchParams.has(\"X-Amz-Credential\")) {\n        delete headers.authorization\n      }\n    }\n    return newOptions\n  }\n\n  static retryOnServerError(task: () => Promise<any>, maxRetries = 3) {\n    for (let attemptNumber = 0; ; attemptNumber++) {\n      try {\n        return task()\n      } catch (e: any) {\n        if (attemptNumber < maxRetries && ((e instanceof HttpError && e.isServerError()) || e.code === \"EPIPE\")) {\n          continue\n        }\n        throw e\n      }\n    }\n  }\n}\n\nexport interface DownloadCallOptions {\n  responseHandler: ((response: IncomingMessage, callback: (error: Error | null) => void) => void) | null\n  onCancel: (callback: () => void) => void\n  callback: (error: Error | null) => void\n\n  options: DownloadOptions\n\n  destination: string | null\n}\n\nexport function configureRequestOptionsFromUrl(url: string, options: RequestOptions) {\n  const result = configureRequestOptions(options)\n  configureRequestUrl(new URL(url), result)\n  return result\n}\n\nexport function configureRequestUrl(url: URL, options: RequestOptions): void {\n  options.protocol = url.protocol\n  options.hostname = url.hostname\n  if (url.port) {\n    options.port = url.port\n  } else if (options.port) {\n    delete options.port\n  }\n  options.path = url.pathname + url.search\n}\n\nexport class DigestTransform extends Transform {\n  private readonly digester: Hash\n\n  private _actual: string | null = null\n\n  // noinspection JSUnusedGlobalSymbols\n  get actual() {\n    return this._actual\n  }\n\n  isValidateOnEnd = true\n\n  constructor(\n    readonly expected: string,\n    private readonly algorithm: string = \"sha512\",\n    private readonly encoding: BinaryToTextEncoding = \"base64\"\n  ) {\n    super()\n\n    this.digester = createHash(algorithm)\n  }\n\n  // noinspection JSUnusedGlobalSymbols\n  _transform(chunk: Buffer, encoding: string, callback: any) {\n    this.digester.update(chunk)\n    callback(null, chunk)\n  }\n\n  // noinspection JSUnusedGlobalSymbols\n  _flush(callback: any): void {\n    this._actual = this.digester.digest(this.encoding)\n\n    if (this.isValidateOnEnd) {\n      try {\n        this.validate()\n      } catch (e: any) {\n        callback(e)\n        return\n      }\n    }\n\n    callback(null)\n  }\n\n  validate() {\n    if (this._actual == null) {\n      throw newError(\"Not finished yet\", \"ERR_STREAM_NOT_FINISHED\")\n    }\n\n    if (this._actual !== this.expected) {\n      throw newError(`${this.algorithm} checksum mismatch, expected ${this.expected}, got ${this._actual}`, \"ERR_CHECKSUM_MISMATCH\")\n    }\n\n    return null\n  }\n}\n\nfunction checkSha2(sha2Header: string | Nullish, sha2: string | Nullish, callback: (error: Error | null) => void): boolean {\n  if (sha2Header != null && sha2 != null && sha2Header !== sha2) {\n    callback(new Error(`checksum mismatch: expected ${sha2} but got ${sha2Header} (X-Checksum-Sha2 header)`))\n    return false\n  }\n  return true\n}\n\nexport function safeGetHeader(response: any, headerKey: string) {\n  const value = response.headers[headerKey]\n  if (value == null) {\n    return null\n  } else if (Array.isArray(value)) {\n    // electron API\n    return value.length === 0 ? null : value[value.length - 1]\n  } else {\n    return value\n  }\n}\n\nfunction configurePipes(options: DownloadCallOptions, response: IncomingMessage) {\n  if (!checkSha2(safeGetHeader(response, \"X-Checksum-Sha2\"), options.options.sha2, options.callback)) {\n    return\n  }\n\n  const streams: Array<any> = []\n  if (options.options.onProgress != null) {\n    const contentLength = safeGetHeader(response, \"content-length\")\n    if (contentLength != null) {\n      streams.push(new ProgressCallbackTransform(parseInt(contentLength, 10), options.options.cancellationToken, options.options.onProgress))\n    }\n  }\n\n  const sha512 = options.options.sha512\n  if (sha512 != null) {\n    streams.push(new DigestTransform(sha512, \"sha512\", sha512.length === 128 && !sha512.includes(\"+\") && !sha512.includes(\"Z\") && !sha512.includes(\"=\") ? \"hex\" : \"base64\"))\n  } else if (options.options.sha2 != null) {\n    streams.push(new DigestTransform(options.options.sha2, \"sha256\", \"hex\"))\n  }\n\n  const fileOut = createWriteStream(options.destination!)\n  streams.push(fileOut)\n\n  let lastStream = response\n  for (const stream of streams) {\n    stream.on(\"error\", (error: Error) => {\n      fileOut.close()\n      if (!options.options.cancellationToken.cancelled) {\n        options.callback(error)\n      }\n    })\n    lastStream = lastStream.pipe(stream)\n  }\n\n  fileOut.on(\"finish\", () => {\n    ;(fileOut.close as any)(options.callback)\n  })\n}\n\nexport function configureRequestOptions(options: RequestOptions, token?: string | null, method?: \"GET\" | \"DELETE\" | \"PUT\" | \"POST\"): RequestOptions {\n  if (method != null) {\n    options.method = method\n  }\n\n  options.headers = { ...options.headers }\n  const headers = options.headers\n\n  if (token != null) {\n    ;(headers as any).authorization = token.startsWith(\"Basic\") || token.startsWith(\"Bearer\") ? token : `token ${token}`\n  }\n  if (headers[\"User-Agent\"] == null) {\n    headers[\"User-Agent\"] = \"electron-builder\"\n  }\n\n  if (method == null || method === \"GET\" || headers[\"Cache-Control\"] == null) {\n    headers[\"Cache-Control\"] = \"no-cache\"\n  }\n\n  // do not specify for node (in any case we use https module)\n  if (options.protocol == null && (process.versions as any).electron != null) {\n    options.protocol = \"https:\"\n  }\n  return options\n}\n\nexport function safeStringifyJson(data: any, skippedNames?: Set<string>) {\n  return JSON.stringify(\n    data,\n    (name, value) => {\n      if (\n        name.endsWith(\"Authorization\") ||\n        name.endsWith(\"authorization\") ||\n        name.endsWith(\"Password\") ||\n        name.endsWith(\"PASSWORD\") ||\n        name.endsWith(\"Token\") ||\n        name.includes(\"password\") ||\n        name.includes(\"token\") ||\n        (skippedNames != null && skippedNames.has(name))\n      ) {\n        return \"<stripped sensitive data>\"\n      }\n      return value\n    },\n    2\n  )\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CURRENT_APP_PACKAGE_FILE_NAME = exports.CURRENT_APP_INSTALLER_FILE_NAME = exports.XElement = exports.parseXml = exports.UUID = exports.parseDn = exports.retry = exports.githubUrl = exports.getS3LikeProviderBaseUrl = exports.ProgressCallbackTransform = exports.MemoLazy = exports.safeStringifyJson = exports.safeGetHeader = exports.parseJson = exports.HttpExecutor = exports.HttpError = exports.DigestTransform = exports.createHttpError = exports.configureRequestUrl = exports.configureRequestOptionsFromUrl = exports.configureRequestOptions = exports.newError = exports.CancellationToken = exports.CancellationError = void 0;
exports.asArray = asArray;
var CancellationToken_1 = require("./CancellationToken");
Object.defineProperty(exports, "CancellationError", { enumerable: true, get: function () { return CancellationToken_1.CancellationError; } });
Object.defineProperty(exports, "CancellationToken", { enumerable: true, get: function () { return CancellationToken_1.CancellationToken; } });
var error_1 = require("./error");
Object.defineProperty(exports, "newError", { enumerable: true, get: function () { return error_1.newError; } });
var httpExecutor_1 = require("./httpExecutor");
Object.defineProperty(exports, "configureRequestOptions", { enumerable: true, get: function () { return httpExecutor_1.configureRequestOptions; } });
Object.defineProperty(exports, "configureRequestOptionsFromUrl", { enumerable: true, get: function () { return httpExecutor_1.configureRequestOptionsFromUrl; } });
Object.defineProperty(exports, "configureRequestUrl", { enumerable: true, get: function () { return httpExecutor_1.configureRequestUrl; } });
Object.defineProperty(exports, "createHttpError", { enumerable: true, get: function () { return httpExecutor_1.createHttpError; } });
Object.defineProperty(exports, "DigestTransform", { enumerable: true, get: function () { return httpExecutor_1.DigestTransform; } });
Object.defineProperty(exports, "HttpError", { enumerable: true, get: function () { return httpExecutor_1.HttpError; } });
Object.defineProperty(exports, "HttpExecutor", { enumerable: true, get: function () { return httpExecutor_1.HttpExecutor; } });
Object.defineProperty(exports, "parseJson", { enumerable: true, get: function () { return httpExecutor_1.parseJson; } });
Object.defineProperty(exports, "safeGetHeader", { enumerable: true, get: function () { return httpExecutor_1.safeGetHeader; } });
Object.defineProperty(exports, "safeStringifyJson", { enumerable: true, get: function () { return httpExecutor_1.safeStringifyJson; } });
var MemoLazy_1 = require("./MemoLazy");
Object.defineProperty(exports, "MemoLazy", { enumerable: true, get: function () { return MemoLazy_1.MemoLazy; } });
var ProgressCallbackTransform_1 = require("./ProgressCallbackTransform");
Object.defineProperty(exports, "ProgressCallbackTransform", { enumerable: true, get: function () { return ProgressCallbackTransform_1.ProgressCallbackTransform; } });
var publishOptions_1 = require("./publishOptions");
Object.defineProperty(exports, "getS3LikeProviderBaseUrl", { enumerable: true, get: function () { return publishOptions_1.getS3LikeProviderBaseUrl; } });
Object.defineProperty(exports, "githubUrl", { enumerable: true, get: function () { return publishOptions_1.githubUrl; } });
var retry_1 = require("./retry");
Object.defineProperty(exports, "retry", { enumerable: true, get: function () { return retry_1.retry; } });
var rfc2253Parser_1 = require("./rfc2253Parser");
Object.defineProperty(exports, "parseDn", { enumerable: true, get: function () { return rfc2253Parser_1.parseDn; } });
var uuid_1 = require("./uuid");
Object.defineProperty(exports, "UUID", { enumerable: true, get: function () { return uuid_1.UUID; } });
var xml_1 = require("./xml");
Object.defineProperty(exports, "parseXml", { enumerable: true, get: function () { return xml_1.parseXml; } });
Object.defineProperty(exports, "XElement", { enumerable: true, get: function () { return xml_1.XElement; } });
// nsis
exports.CURRENT_APP_INSTALLER_FILE_NAME = "installer.exe";
// nsis-web
exports.CURRENT_APP_PACKAGE_FILE_NAME = "package.7z";
function asArray(v) {
    if (v == null) {
        return [];
    }
    else if (Array.isArray(v)) {
        return v;
    }
    else {
        return [v];
    }
}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AA8CA,0BAQC;AArDD,yDAA0E;AAAjE,sHAAA,iBAAiB,OAAA;AAAE,sHAAA,iBAAiB,OAAA;AAC7C,iCAAkC;AAAzB,iGAAA,QAAQ,OAAA;AACjB,+CAauB;AAZrB,uHAAA,uBAAuB,OAAA;AACvB,8HAAA,8BAA8B,OAAA;AAC9B,mHAAA,mBAAmB,OAAA;AACnB,+GAAA,eAAe,OAAA;AACf,+GAAA,eAAe,OAAA;AAEf,yGAAA,SAAS,OAAA;AACT,4GAAA,YAAY,OAAA;AACZ,yGAAA,SAAS,OAAA;AAET,6GAAA,aAAa,OAAA;AACb,iHAAA,iBAAiB,OAAA;AAEnB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,yEAAqF;AAA5E,sIAAA,yBAAyB,OAAA;AAClC,mDAeyB;AATvB,0HAAA,wBAAwB,OAAA;AAExB,2GAAA,SAAS,OAAA;AAQX,iCAA+B;AAAtB,8FAAA,KAAK,OAAA;AACd,iDAAyC;AAAhC,wGAAA,OAAO,OAAA;AAEhB,+BAA6B;AAApB,4FAAA,IAAI,OAAA;AACb,6BAA0C;AAAjC,+FAAA,QAAQ,OAAA;AAAE,+FAAA,QAAQ,OAAA;AAE3B,OAAO;AACM,QAAA,+BAA+B,GAAG,eAAe,CAAA;AAC9D,WAAW;AACE,QAAA,6BAA6B,GAAG,YAAY,CAAA;AAEzD,SAAgB,OAAO,CAAI,CAAyB;IAClD,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACd,OAAO,EAAE,CAAA;IACX,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,CAAA;IACV,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,CAAC,CAAC,CAAA;IACZ,CAAC;AACH,CAAC","sourcesContent":["export { BlockMap } from \"./blockMapApi\"\nexport { CancellationError, CancellationToken } from \"./CancellationToken\"\nexport { newError } from \"./error\"\nexport {\n  configureRequestOptions,\n  configureRequestOptionsFromUrl,\n  configureRequestUrl,\n  createHttpError,\n  DigestTransform,\n  DownloadOptions,\n  HttpError,\n  HttpExecutor,\n  parseJson,\n  RequestHeaders,\n  safeGetHeader,\n  safeStringifyJson,\n} from \"./httpExecutor\"\nexport { MemoLazy } from \"./MemoLazy\"\nexport { ProgressCallbackTransform, ProgressInfo } from \"./ProgressCallbackTransform\"\nexport {\n  AllPublishOptions,\n  BaseS3Options,\n  BitbucketOptions,\n  CustomPublishOptions,\n  GenericServerOptions,\n  getS3LikeProviderBaseUrl,\n  GithubOptions,\n  githubUrl,\n  KeygenOptions,\n  PublishConfiguration,\n  PublishProvider,\n  S3Options,\n  SnapStoreOptions,\n  SpacesOptions,\n} from \"./publishOptions\"\nexport { retry } from \"./retry\"\nexport { parseDn } from \"./rfc2253Parser\"\nexport { BlockMapDataHolder, PackageFileInfo, ReleaseNoteInfo, UpdateFileInfo, UpdateInfo, WindowsUpdateInfo } from \"./updateInfo\"\nexport { UUID } from \"./uuid\"\nexport { parseXml, XElement } from \"./xml\"\n\n// nsis\nexport const CURRENT_APP_INSTALLER_FILE_NAME = \"installer.exe\"\n// nsis-web\nexport const CURRENT_APP_PACKAGE_FILE_NAME = \"package.7z\"\n\nexport function asArray<T>(v: Nullish | T | Array<T>): Array<T> {\n  if (v == null) {\n    return []\n  } else if (Array.isArray(v)) {\n    return v\n  } else {\n    return [v]\n  }\n}\n\nexport type Nullish = null | undefined\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.githubUrl = githubUrl;
exports.getS3LikeProviderBaseUrl = getS3LikeProviderBaseUrl;
/** @private */
function githubUrl(options, defaultHost = "github.com") {
    return `${options.protocol || "https"}://${options.host || defaultHost}`;
}
function getS3LikeProviderBaseUrl(configuration) {
    const provider = configuration.provider;
    if (provider === "s3") {
        return s3Url(configuration);
    }
    if (provider === "spaces") {
        return spacesUrl(configuration);
    }
    throw new Error(`Not supported provider: ${provider}`);
}
function s3Url(options) {
    let url;
    if (options.accelerate == true) {
        url = `https://${options.bucket}.s3-accelerate.amazonaws.com`;
    }
    else if (options.endpoint != null) {
        url = `${options.endpoint}/${options.bucket}`;
    }
    else if (options.bucket.includes(".")) {
        if (options.region == null) {
            throw new Error(`Bucket name "${options.bucket}" includes a dot, but S3 region is missing`);
        }
        // special case, see http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro
        if (options.region === "us-east-1") {
            url = `https://s3.amazonaws.com/${options.bucket}`;
        }
        else {
            url = `https://s3-${options.region}.amazonaws.com/${options.bucket}`;
        }
    }
    else if (options.region === "cn-north-1") {
        url = `https://${options.bucket}.s3.${options.region}.amazonaws.com.cn`;
    }
    else {
        url = `https://${options.bucket}.s3.amazonaws.com`;
    }
    return appendPath(url, options.path);
}
function appendPath(url, p) {
    if (p != null && p.length > 0) {
        if (!p.startsWith("/")) {
            url += "/";
        }
        url += p;
    }
    return url;
}
function spacesUrl(options) {
    if (options.name == null) {
        throw new Error(`name is missing`);
    }
    if (options.region == null) {
        throw new Error(`region is missing`);
    }
    return appendPath(`https://${options.name}.${options.region}.digitaloceanspaces.com`, options.path);
}
{"version":3,"file":"publishOptions.js","sourceRoot":"","sources":["../src/publishOptions.ts"],"names":[],"mappings":";;AA4IA,8BAEC;AA4PD,4DASC;AAxQD,eAAe;AACf,SAAgB,SAAS,CAAC,OAAsB,EAAE,WAAW,GAAG,YAAY;IAC1E,OAAO,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,MAAM,OAAO,CAAC,IAAI,IAAI,WAAW,EAAE,CAAA;AAC1E,CAAC;AA4PD,SAAgB,wBAAwB,CAAC,aAAmC;IAC1E,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAA;IACvC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,aAA0B,CAAC,CAAA;IAC1C,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC,aAA8B,CAAC,CAAA;IAClD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAA;AACxD,CAAC;AAED,SAAS,KAAK,CAAC,OAAkB;IAC/B,IAAI,GAAW,CAAA;IACf,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;QAC/B,GAAG,GAAG,WAAW,OAAO,CAAC,MAAM,8BAA8B,CAAA;IAC/D,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QACpC,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAA;IAC/C,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,gBAAgB,OAAO,CAAC,MAAM,4CAA4C,CAAC,CAAA;QAC7F,CAAC;QAED,wGAAwG;QACxG,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACnC,GAAG,GAAG,4BAA4B,OAAO,CAAC,MAAM,EAAE,CAAA;QACpD,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,cAAc,OAAO,CAAC,MAAM,kBAAkB,OAAO,CAAC,MAAM,EAAE,CAAA;QACtE,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QAC3C,GAAG,GAAG,WAAW,OAAO,CAAC,MAAM,OAAO,OAAO,CAAC,MAAM,mBAAmB,CAAA;IACzE,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,WAAW,OAAO,CAAC,MAAM,mBAAmB,CAAA;IACpD,CAAC;IACD,OAAO,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;AACtC,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,CAAmB;IAClD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,GAAG,IAAI,GAAG,CAAA;QACZ,CAAC;QACD,GAAG,IAAI,CAAC,CAAA;IACV,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,SAAS,CAAC,OAAsB;IACvC,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACtC,CAAC;IACD,OAAO,UAAU,CAAC,WAAW,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,yBAAyB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;AACrG,CAAC","sourcesContent":["import { OutgoingHttpHeaders } from \"http\"\nimport { Nullish } from \".\"\n\nexport type PublishProvider = \"github\" | \"s3\" | \"spaces\" | \"generic\" | \"custom\" | \"snapStore\" | \"keygen\" | \"bitbucket\"\n\n// typescript-json-schema generates only PublishConfiguration if it is specified in the list, so, it is not added here\nexport type AllPublishOptions =\n  | string\n  | GithubOptions\n  | S3Options\n  | SpacesOptions\n  | GenericServerOptions\n  | CustomPublishOptions\n  | KeygenOptions\n  | SnapStoreOptions\n  | BitbucketOptions\n\nexport interface PublishConfiguration {\n  /**\n   * The provider.\n   */\n  readonly provider: PublishProvider\n\n  /**\n   * @private\n   * win-only\n   */\n  publisherName?: Array<string> | null\n\n  /**\n   * @private\n   * win-only\n   */\n  readonly updaterCacheDirName?: string | null\n\n  /**\n   * Whether to publish auto update info files.\n   *\n   * Auto update relies only on the first provider in the list (you can specify several publishers).\n   * Thus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.\n   *\n   * @default true\n   */\n  readonly publishAutoUpdate?: boolean\n\n  /**\n   * Any custom request headers\n   */\n  readonly requestHeaders?: OutgoingHttpHeaders\n\n  /**\n   * Request timeout in milliseconds. (Default is 2 minutes; O is ignored)\n   *\n   * @default 120000\n   */\n  readonly timeout?: number | null\n}\n\n// https://github.com/electron-userland/electron-builder/issues/3261\nexport interface CustomPublishOptions extends PublishConfiguration {\n  /**\n   * The provider. Must be `custom`.\n   */\n  readonly provider: \"custom\"\n\n  /**\n   * The Provider to provide UpdateInfo regarding available updates.  Required\n   * to use custom providers with electron-updater.\n   */\n  updateProvider?: new (options: CustomPublishOptions, updater: any, runtimeOptions: any) => any\n\n  [index: string]: any\n}\n\n/**\n * [GitHub](https://help.github.com/articles/about-releases/) options.\n *\n * GitHub [personal access token](https://help.github.com/articles/creating-an-access-token-for-command-line-use/) is required. You can generate by going to [https://github.com/settings/tokens/new](https://github.com/settings/tokens/new). The access token should have the repo scope/permission.\n * Define `GH_TOKEN` environment variable.\n */\nexport interface GithubOptions extends PublishConfiguration {\n  /**\n   * The provider. Must be `github`.\n   */\n  readonly provider: \"github\"\n\n  /**\n   * The repository name. [Detected automatically](#github-repository-and-bintray-package).\n   */\n  readonly repo?: string | null\n\n  /**\n   * The owner.\n   */\n  readonly owner?: string | null\n\n  /**\n   * Whether to use `v`-prefixed tag name.\n   * @default true\n   */\n  readonly vPrefixedTagName?: boolean\n\n  /**\n   * The host (including the port if need).\n   * @default github.com\n   */\n  readonly host?: string | null\n\n  /**\n   * The protocol. GitHub Publisher supports only `https`.\n   * @default https\n   */\n  readonly protocol?: \"https\" | \"http\" | null\n\n  /**\n   * The access token to support auto-update from private github repositories. Never specify it in the configuration files. Only for [setFeedURL](./auto-update.md#appupdatersetfeedurloptions).\n   */\n  readonly token?: string | null\n\n  /**\n   * Whether to use private github auto-update provider if `GH_TOKEN` environment variable is defined. See [Private GitHub Update Repo](./auto-update.md#private-github-update-repo).\n   */\n  readonly private?: boolean | null\n\n  /**\n   * The channel.\n   * @default latest\n   */\n  readonly channel?: string | null\n\n  /**\n   * The type of release. By default `draft` release will be created.\n   *\n   * Also you can set release type using environment variable. If `EP_DRAFT`is set to `true` — `draft`, if `EP_PRE_RELEASE`is set to `true` — `prerelease`.\n   * @default draft\n   */\n  releaseType?: \"draft\" | \"prerelease\" | \"release\" | null\n}\n\n/** @private */\nexport function githubUrl(options: GithubOptions, defaultHost = \"github.com\") {\n  return `${options.protocol || \"https\"}://${options.host || defaultHost}`\n}\n\n/**\n * Generic (any HTTP(S) server) options.\n * In all publish options [File Macros](./file-patterns.md#file-macros) are supported.\n */\nexport interface GenericServerOptions extends PublishConfiguration {\n  /**\n   * The provider. Must be `generic`.\n   */\n  readonly provider: \"generic\"\n\n  /**\n   * The base url. e.g. `https://bucket_name.s3.amazonaws.com`.\n   */\n  readonly url: string\n\n  /**\n   * The channel.\n   * @default latest\n   */\n  readonly channel?: string | null\n\n  /**\n   * Whether to use multiple range requests for differential update. Defaults to `true` if `url` doesn't contain `s3.amazonaws.com`.\n   */\n  readonly useMultipleRangeRequest?: boolean\n}\n\n/**\n * Keygen options.\n * https://keygen.sh/\n * Define `KEYGEN_TOKEN` environment variable.\n */\nexport interface KeygenOptions extends PublishConfiguration {\n  /**\n   * The provider. Must be `keygen`.\n   */\n  readonly provider: \"keygen\"\n\n  /**\n   * Keygen host for self-hosted instances\n   * @default \"api.keygen.sh\"\n   */\n  readonly host?: string\n\n  /**\n   * Keygen account's UUID\n   */\n  readonly account: string\n\n  /**\n   * Keygen product's UUID\n   */\n  readonly product: string\n\n  /**\n   * The channel.\n   * @default stable\n   */\n  readonly channel?: \"stable\" | \"rc\" | \"beta\" | \"alpha\" | \"dev\" | null\n\n  /**\n   * The target Platform. Is set programmatically explicitly during publishing.\n   */\n  readonly platform?: string | null\n}\n\n/**\n * Bitbucket options.\n * https://bitbucket.org/\n * Define `BITBUCKET_TOKEN` environment variable.\n *\n * For converting an app password to a usable token, you can utilize this\n```typescript\nconvertAppPassword(owner: string, appPassword: string) {\n  const base64encodedData = Buffer.from(`${owner}:${appPassword.trim()}`).toString(\"base64\")\n  return `Basic ${base64encodedData}`\n}\n```\n */\nexport interface BitbucketOptions extends PublishConfiguration {\n  /**\n   * The provider. Must be `bitbucket`.\n   */\n  readonly provider: \"bitbucket\"\n\n  /**\n   * Repository owner\n   */\n  readonly owner: string\n\n  /**\n   * The [app password](https://bitbucket.org/account/settings/app-passwords) to support auto-update from private bitbucket repositories.\n   */\n  readonly token?: string | null\n\n  /**\n   * The user name to support auto-update from private bitbucket repositories.\n   */\n  readonly username?: string | null\n\n  /**\n   * Repository slug/name\n   */\n  readonly slug: string\n\n  /**\n   * The channel.\n   * @default latest\n   */\n  readonly channel?: string | null\n}\n\n/**\n * [Snap Store](https://snapcraft.io/) options. To publish directly to Snapcraft, see <a href=\"https://snapcraft.io/docs/snapcraft-authentication\">Snapcraft authentication options</a> for local or CI/CD authentication options.\n */\nexport interface SnapStoreOptions extends PublishConfiguration {\n  /**\n   * The provider. Must be `snapStore`.\n   */\n  readonly provider: \"snapStore\"\n\n  /**\n   * snapcraft repo name\n   */\n  readonly repo?: string\n\n  /**\n   * The list of channels the snap would be released.\n   * @default [\"edge\"]\n   */\n  readonly channels?: string | Array<string> | null\n}\n\nexport interface BaseS3Options extends PublishConfiguration {\n  /**\n   * The update channel.\n   * @default latest\n   */\n  channel?: string | null\n\n  /**\n   * The directory path.\n   * @default /\n   */\n  readonly path?: string | null\n\n  /**\n   * The ACL. Set to `null` to not [add](https://github.com/electron-userland/electron-builder/issues/1822).\n   *\n   * @default public-read\n   */\n  readonly acl?: \"private\" | \"public-read\" | null\n}\n\n/**\n * [Amazon S3](https://aws.amazon.com/s3/) options.\n * AWS credentials are required, please see [getting your credentials](http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/getting-your-credentials.html).\n * Define `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` [environment variables](http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-environment.html).\n * Or in the [~/.aws/credentials](http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-shared.html).\n *\n * Example configuration:\n *\n```json\n{\n  \"build\":\n    \"publish\": {\n      \"provider\": \"s3\",\n      \"bucket\": \"bucket-name\"\n    }\n  }\n}\n```\n */\nexport interface S3Options extends BaseS3Options {\n  /**\n   * The provider. Must be `s3`.\n   */\n  readonly provider: \"s3\"\n\n  /**\n   * The bucket name.\n   */\n  readonly bucket: string\n\n  /**\n   * The region. Is determined and set automatically when publishing.\n   */\n  region?: string | null\n\n  /**\n   * The ACL. Set to `null` to not [add](https://github.com/electron-userland/electron-builder/issues/1822).\n   *\n   * Please see [required permissions for the S3 provider](https://github.com/electron-userland/electron-builder/issues/1618#issuecomment-314679128).\n   *\n   * @default public-read\n   */\n  readonly acl?: \"private\" | \"public-read\" | null\n\n  /**\n   * The type of storage to use for the object.\n   * @default STANDARD\n   */\n  readonly storageClass?: \"STANDARD\" | \"REDUCED_REDUNDANCY\" | \"STANDARD_IA\" | null\n\n  /**\n   * Server-side encryption algorithm to use for the object.\n   */\n  readonly encryption?: \"AES256\" | \"aws:kms\" | null\n\n  /**\n   * The endpoint URI to send requests to. The default endpoint is built from the configured region.\n   * The endpoint should be a string like `https://{service}.{region}.amazonaws.com`.\n   */\n  readonly endpoint?: string | null\n\n  /**\n   * If set to true, this will enable the s3 accelerated endpoint\n   * These endpoints have a particular format of:\n   *  ${bucketname}.s3-accelerate.amazonaws.com\n   */\n  readonly accelerate?: boolean\n\n  /**\n   * When true, force a path-style endpoint to be used where the bucket name is part of the path.\n   * [Path-style Access](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#path-style-access)\n   */\n  readonly forcePathStyle?: boolean\n}\n\n/**\n * [DigitalOcean Spaces](https://www.digitalocean.com/community/tutorials/an-introduction-to-digitalocean-spaces) options.\n * Access key is required, define `DO_KEY_ID` and `DO_SECRET_KEY` environment variables.\n */\nexport interface SpacesOptions extends BaseS3Options {\n  /**\n   * The provider. Must be `spaces`.\n   */\n  readonly provider: \"spaces\"\n\n  /**\n   * The space name.\n   */\n  readonly name: string\n\n  /**\n   * The region (e.g. `nyc3`).\n   */\n  readonly region: string\n}\n\nexport function getS3LikeProviderBaseUrl(configuration: PublishConfiguration) {\n  const provider = configuration.provider\n  if (provider === \"s3\") {\n    return s3Url(configuration as S3Options)\n  }\n  if (provider === \"spaces\") {\n    return spacesUrl(configuration as SpacesOptions)\n  }\n  throw new Error(`Not supported provider: ${provider}`)\n}\n\nfunction s3Url(options: S3Options) {\n  let url: string\n  if (options.accelerate == true) {\n    url = `https://${options.bucket}.s3-accelerate.amazonaws.com`\n  } else if (options.endpoint != null) {\n    url = `${options.endpoint}/${options.bucket}`\n  } else if (options.bucket.includes(\".\")) {\n    if (options.region == null) {\n      throw new Error(`Bucket name \"${options.bucket}\" includes a dot, but S3 region is missing`)\n    }\n\n    // special case, see http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro\n    if (options.region === \"us-east-1\") {\n      url = `https://s3.amazonaws.com/${options.bucket}`\n    } else {\n      url = `https://s3-${options.region}.amazonaws.com/${options.bucket}`\n    }\n  } else if (options.region === \"cn-north-1\") {\n    url = `https://${options.bucket}.s3.${options.region}.amazonaws.com.cn`\n  } else {\n    url = `https://${options.bucket}.s3.amazonaws.com`\n  }\n  return appendPath(url, options.path)\n}\n\nfunction appendPath(url: string, p: string | Nullish): string {\n  if (p != null && p.length > 0) {\n    if (!p.startsWith(\"/\")) {\n      url += \"/\"\n    }\n    url += p\n  }\n  return url\n}\n\nfunction spacesUrl(options: SpacesOptions) {\n  if (options.name == null) {\n    throw new Error(`name is missing`)\n  }\n  if (options.region == null) {\n    throw new Error(`region is missing`)\n  }\n  return appendPath(`https://${options.name}.${options.region}.digitaloceanspaces.com`, options.path)\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.retry = retry;
const CancellationToken_1 = require("./CancellationToken");
async function retry(task, retryCount, interval, backoff = 0, attempt = 0, shouldRetry) {
    var _a;
    const cancellationToken = new CancellationToken_1.CancellationToken();
    try {
        return await task();
    }
    catch (error) {
        if (((_a = shouldRetry === null || shouldRetry === void 0 ? void 0 : shouldRetry(error)) !== null && _a !== void 0 ? _a : true) && retryCount > 0 && !cancellationToken.cancelled) {
            await new Promise(resolve => setTimeout(resolve, interval + backoff * attempt));
            return await retry(task, retryCount - 1, interval, backoff, attempt + 1, shouldRetry);
        }
        else {
            throw error;
        }
    }
}
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":";;AAEA,sBAYC;AAdD,2DAAuD;AAEhD,KAAK,UAAU,KAAK,CAAI,IAAsB,EAAE,UAAkB,EAAE,QAAgB,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,WAAiC;;IACtJ,MAAM,iBAAiB,GAAG,IAAI,qCAAiB,EAAE,CAAA;IACjD,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,EAAE,CAAA;IACrB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,CAAC,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,KAAK,CAAC,mCAAI,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;YACrF,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAA;YAC/E,OAAO,MAAM,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,WAAW,CAAC,CAAA;QACvF,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import { CancellationToken } from \"./CancellationToken\"\n\nexport async function retry<T>(task: () => Promise<T>, retryCount: number, interval: number, backoff = 0, attempt = 0, shouldRetry?: (e: any) => boolean): Promise<T> {\n  const cancellationToken = new CancellationToken()\n  try {\n    return await task()\n  } catch (error: any) {\n    if ((shouldRetry?.(error) ?? true) && retryCount > 0 && !cancellationToken.cancelled) {\n      await new Promise(resolve => setTimeout(resolve, interval + backoff * attempt))\n      return await retry(task, retryCount - 1, interval, backoff, attempt + 1, shouldRetry)\n    } else {\n      throw error\n    }\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseDn = parseDn;
function parseDn(seq) {
    let quoted = false;
    let key = null;
    let token = "";
    let nextNonSpace = 0;
    seq = seq.trim();
    const result = new Map();
    for (let i = 0; i <= seq.length; i++) {
        if (i === seq.length) {
            if (key !== null) {
                result.set(key, token);
            }
            break;
        }
        const ch = seq[i];
        if (quoted) {
            if (ch === '"') {
                quoted = false;
                continue;
            }
        }
        else {
            if (ch === '"') {
                quoted = true;
                continue;
            }
            if (ch === "\\") {
                i++;
                const ord = parseInt(seq.slice(i, i + 2), 16);
                if (Number.isNaN(ord)) {
                    token += seq[i];
                }
                else {
                    i++;
                    token += String.fromCharCode(ord);
                }
                continue;
            }
            if (key === null && ch === "=") {
                key = token;
                token = "";
                continue;
            }
            if (ch === "," || ch === ";" || ch === "+") {
                if (key !== null) {
                    result.set(key, token);
                }
                key = null;
                token = "";
                continue;
            }
        }
        if (ch === " " && !quoted) {
            if (token.length === 0) {
                continue;
            }
            if (i > nextNonSpace) {
                let j = i;
                while (seq[j] === " ") {
                    j++;
                }
                nextNonSpace = j;
            }
            if (nextNonSpace >= seq.length ||
                seq[nextNonSpace] === "," ||
                seq[nextNonSpace] === ";" ||
                (key === null && seq[nextNonSpace] === "=") ||
                (key !== null && seq[nextNonSpace] === "+")) {
                i = nextNonSpace - 1;
                continue;
            }
        }
        token += ch;
    }
    return result;
}
{"version":3,"file":"rfc2253Parser.js","sourceRoot":"","sources":["../src/rfc2253Parser.ts"],"names":[],"mappings":";;AAAA,0BAqFC;AArFD,SAAgB,OAAO,CAAC,GAAW;IACjC,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,IAAI,GAAG,GAAkB,IAAI,CAAA;IAC7B,IAAI,KAAK,GAAG,EAAE,CAAA;IACd,IAAI,YAAY,GAAG,CAAC,CAAA;IAEpB,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAChB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;YACrB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACxB,CAAC;YACD,MAAK;QACP,CAAC;QAED,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QACjB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACf,MAAM,GAAG,KAAK,CAAA;gBACd,SAAQ;YACV,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACf,MAAM,GAAG,IAAI,CAAA;gBACb,SAAQ;YACV,CAAC;YAED,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,CAAC,EAAE,CAAA;gBACH,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBAC7C,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtB,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC;qBAAM,CAAC;oBACN,CAAC,EAAE,CAAA;oBACH,KAAK,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;gBACnC,CAAC;gBACD,SAAQ;YACV,CAAC;YAED,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBAC/B,GAAG,GAAG,KAAK,CAAA;gBACX,KAAK,GAAG,EAAE,CAAA;gBACV,SAAQ;YACV,CAAC;YAED,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBAC3C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oBACjB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBACxB,CAAC;gBACD,GAAG,GAAG,IAAI,CAAA;gBACV,KAAK,GAAG,EAAE,CAAA;gBACV,SAAQ;YACV,CAAC;QACH,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,SAAQ;YACV,CAAC;YAED,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,CAAA;gBACT,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBACtB,CAAC,EAAE,CAAA;gBACL,CAAC;gBACD,YAAY,GAAG,CAAC,CAAA;YAClB,CAAC;YAED,IACE,YAAY,IAAI,GAAG,CAAC,MAAM;gBAC1B,GAAG,CAAC,YAAY,CAAC,KAAK,GAAG;gBACzB,GAAG,CAAC,YAAY,CAAC,KAAK,GAAG;gBACzB,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC;gBAC3C,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,EAC3C,CAAC;gBACD,CAAC,GAAG,YAAY,GAAG,CAAC,CAAA;gBACpB,SAAQ;YACV,CAAC;QACH,CAAC;QAED,KAAK,IAAI,EAAE,CAAA;IACb,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC","sourcesContent":["export function parseDn(seq: string): Map<string, string> {\n  let quoted = false\n  let key: string | null = null\n  let token = \"\"\n  let nextNonSpace = 0\n\n  seq = seq.trim()\n  const result = new Map<string, string>()\n  for (let i = 0; i <= seq.length; i++) {\n    if (i === seq.length) {\n      if (key !== null) {\n        result.set(key, token)\n      }\n      break\n    }\n\n    const ch = seq[i]\n    if (quoted) {\n      if (ch === '\"') {\n        quoted = false\n        continue\n      }\n    } else {\n      if (ch === '\"') {\n        quoted = true\n        continue\n      }\n\n      if (ch === \"\\\\\") {\n        i++\n        const ord = parseInt(seq.slice(i, i + 2), 16)\n        if (Number.isNaN(ord)) {\n          token += seq[i]\n        } else {\n          i++\n          token += String.fromCharCode(ord)\n        }\n        continue\n      }\n\n      if (key === null && ch === \"=\") {\n        key = token\n        token = \"\"\n        continue\n      }\n\n      if (ch === \",\" || ch === \";\" || ch === \"+\") {\n        if (key !== null) {\n          result.set(key, token)\n        }\n        key = null\n        token = \"\"\n        continue\n      }\n    }\n\n    if (ch === \" \" && !quoted) {\n      if (token.length === 0) {\n        continue\n      }\n\n      if (i > nextNonSpace) {\n        let j = i\n        while (seq[j] === \" \") {\n          j++\n        }\n        nextNonSpace = j\n      }\n\n      if (\n        nextNonSpace >= seq.length ||\n        seq[nextNonSpace] === \",\" ||\n        seq[nextNonSpace] === \";\" ||\n        (key === null && seq[nextNonSpace] === \"=\") ||\n        (key !== null && seq[nextNonSpace] === \"+\")\n      ) {\n        i = nextNonSpace - 1\n        continue\n      }\n    }\n\n    token += ch\n  }\n\n  return result\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
{"version":3,"file":"updateInfo.js","sourceRoot":"","sources":["../src/updateInfo.ts"],"names":[],"mappings":"","sourcesContent":["export interface ReleaseNoteInfo {\n  /**\n   * The version.\n   */\n  readonly version: string\n\n  /**\n   * The note.\n   */\n  readonly note: string | null\n}\n\nexport interface BlockMapDataHolder {\n  /**\n   * The file size. Used to verify downloaded size (save one HTTP request to get length).\n   * Also used when block map data is embedded into the file (appimage, windows web installer package).\n   */\n  size?: number\n\n  /**\n   * The block map file size. Used when block map data is embedded into the file (appimage, windows web installer package).\n   * This information can be obtained from the file itself, but it requires additional HTTP request,\n   * so, to reduce request count, block map size is specified in the update metadata too.\n   */\n  blockMapSize?: number\n\n  /**\n   * The file checksum.\n   */\n  readonly sha512: string\n\n  readonly isAdminRightsRequired?: boolean\n}\n\nexport interface PackageFileInfo extends BlockMapDataHolder {\n  readonly path: string\n}\n\nexport interface UpdateFileInfo extends BlockMapDataHolder {\n  url: string\n}\n\nexport interface UpdateInfo {\n  /**\n   * The version.\n   */\n  readonly version: string\n\n  readonly files: Array<UpdateFileInfo>\n\n  /** @deprecated */\n  readonly path: string\n\n  /** @deprecated */\n  readonly sha512: string\n\n  /**\n   * The release name.\n   */\n  releaseName?: string | null\n\n  /**\n   * The release notes. List if `updater.fullChangelog` is set to `true`, `string` otherwise.\n   */\n  releaseNotes?: string | Array<ReleaseNoteInfo> | null\n\n  /**\n   * The release date.\n   */\n  releaseDate: string\n\n  /**\n   * The [staged rollout](./auto-update.md#staged-rollouts) percentage, 0-100.\n   */\n  readonly stagingPercentage?: number\n\n  /**\n   * The minimum version of system required for the app to run. Sample value: macOS `23.1.0`, Windows `10.0.22631`.\n   * Same with os.release() value, this is a kernel version.\n   */\n  readonly minimumSystemVersion?: string\n}\n\nexport interface WindowsUpdateInfo extends UpdateInfo {\n  packages?: { [arch: string]: PackageFileInfo } | null\n\n  /**\n   * @deprecated\n   * @private\n   */\n  sha2?: string\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.nil = exports.UUID = void 0;
const crypto_1 = require("crypto");
const error_1 = require("./error");
const invalidName = "options.name must be either a string or a Buffer";
// Node ID according to rfc4122#section-4.5
const randomHost = (0, crypto_1.randomBytes)(16);
randomHost[0] = randomHost[0] | 0x01;
// lookup table hex to byte
const hex2byte = {};
// lookup table byte to hex
const byte2hex = [];
// populate lookup tables
for (let i = 0; i < 256; i++) {
    const hex = (i + 0x100).toString(16).substr(1);
    hex2byte[hex] = i;
    byte2hex[i] = hex;
}
// UUID class
class UUID {
    constructor(uuid) {
        this.ascii = null;
        this.binary = null;
        const check = UUID.check(uuid);
        if (!check) {
            throw new Error("not a UUID");
        }
        this.version = check.version;
        if (check.format === "ascii") {
            this.ascii = uuid;
        }
        else {
            this.binary = uuid;
        }
    }
    static v5(name, namespace) {
        return uuidNamed(name, "sha1", 0x50, namespace);
    }
    toString() {
        if (this.ascii == null) {
            this.ascii = stringify(this.binary);
        }
        return this.ascii;
    }
    inspect() {
        return `UUID v${this.version} ${this.toString()}`;
    }
    static check(uuid, offset = 0) {
        if (typeof uuid === "string") {
            uuid = uuid.toLowerCase();
            if (!/^[a-f0-9]{8}(-[a-f0-9]{4}){3}-([a-f0-9]{12})$/.test(uuid)) {
                return false;
            }
            if (uuid === "00000000-0000-0000-0000-000000000000") {
                return { version: undefined, variant: "nil", format: "ascii" };
            }
            return {
                version: (hex2byte[uuid[14] + uuid[15]] & 0xf0) >> 4,
                variant: getVariant((hex2byte[uuid[19] + uuid[20]] & 0xe0) >> 5),
                format: "ascii",
            };
        }
        if (Buffer.isBuffer(uuid)) {
            if (uuid.length < offset + 16) {
                return false;
            }
            let i = 0;
            for (; i < 16; i++) {
                if (uuid[offset + i] !== 0) {
                    break;
                }
            }
            if (i === 16) {
                return { version: undefined, variant: "nil", format: "binary" };
            }
            return {
                version: (uuid[offset + 6] & 0xf0) >> 4,
                variant: getVariant((uuid[offset + 8] & 0xe0) >> 5),
                format: "binary",
            };
        }
        throw (0, error_1.newError)("Unknown type of uuid", "ERR_UNKNOWN_UUID_TYPE");
    }
    // read stringified uuid into a Buffer
    static parse(input) {
        const buffer = Buffer.allocUnsafe(16);
        let j = 0;
        for (let i = 0; i < 16; i++) {
            buffer[i] = hex2byte[input[j++] + input[j++]];
            if (i === 3 || i === 5 || i === 7 || i === 9) {
                j += 1;
            }
        }
        return buffer;
    }
}
exports.UUID = UUID;
// from rfc4122#appendix-C
UUID.OID = UUID.parse("6ba7b812-9dad-11d1-80b4-00c04fd430c8");
// according to rfc4122#section-4.1.1
function getVariant(bits) {
    switch (bits) {
        case 0:
        case 1:
        case 3:
            return "ncs";
        case 4:
        case 5:
            return "rfc4122";
        case 6:
            return "microsoft";
        default:
            return "future";
    }
}
var UuidEncoding;
(function (UuidEncoding) {
    UuidEncoding[UuidEncoding["ASCII"] = 0] = "ASCII";
    UuidEncoding[UuidEncoding["BINARY"] = 1] = "BINARY";
    UuidEncoding[UuidEncoding["OBJECT"] = 2] = "OBJECT";
})(UuidEncoding || (UuidEncoding = {}));
// v3 + v5
function uuidNamed(name, hashMethod, version, namespace, encoding = UuidEncoding.ASCII) {
    const hash = (0, crypto_1.createHash)(hashMethod);
    const nameIsNotAString = typeof name !== "string";
    if (nameIsNotAString && !Buffer.isBuffer(name)) {
        throw (0, error_1.newError)(invalidName, "ERR_INVALID_UUID_NAME");
    }
    hash.update(namespace);
    hash.update(name);
    const buffer = hash.digest();
    let result;
    switch (encoding) {
        case UuidEncoding.BINARY:
            buffer[6] = (buffer[6] & 0x0f) | version;
            buffer[8] = (buffer[8] & 0x3f) | 0x80;
            result = buffer;
            break;
        case UuidEncoding.OBJECT:
            buffer[6] = (buffer[6] & 0x0f) | version;
            buffer[8] = (buffer[8] & 0x3f) | 0x80;
            result = new UUID(buffer);
            break;
        default:
            result =
                byte2hex[buffer[0]] +
                    byte2hex[buffer[1]] +
                    byte2hex[buffer[2]] +
                    byte2hex[buffer[3]] +
                    "-" +
                    byte2hex[buffer[4]] +
                    byte2hex[buffer[5]] +
                    "-" +
                    byte2hex[(buffer[6] & 0x0f) | version] +
                    byte2hex[buffer[7]] +
                    "-" +
                    byte2hex[(buffer[8] & 0x3f) | 0x80] +
                    byte2hex[buffer[9]] +
                    "-" +
                    byte2hex[buffer[10]] +
                    byte2hex[buffer[11]] +
                    byte2hex[buffer[12]] +
                    byte2hex[buffer[13]] +
                    byte2hex[buffer[14]] +
                    byte2hex[buffer[15]];
            break;
    }
    return result;
}
function stringify(buffer) {
    return (byte2hex[buffer[0]] +
        byte2hex[buffer[1]] +
        byte2hex[buffer[2]] +
        byte2hex[buffer[3]] +
        "-" +
        byte2hex[buffer[4]] +
        byte2hex[buffer[5]] +
        "-" +
        byte2hex[buffer[6]] +
        byte2hex[buffer[7]] +
        "-" +
        byte2hex[buffer[8]] +
        byte2hex[buffer[9]] +
        "-" +
        byte2hex[buffer[10]] +
        byte2hex[buffer[11]] +
        byte2hex[buffer[12]] +
        byte2hex[buffer[13]] +
        byte2hex[buffer[14]] +
        byte2hex[buffer[15]]);
}
// according to rfc4122#section-4.1.7
exports.nil = new UUID("00000000-0000-0000-0000-000000000000");
// UUID.v4 = uuidRandom
// UUID.v4fast = uuidRandomFast
// UUID.v3 = function(options, callback) {
//     return uuidNamed("md5", 0x30, options, callback)
// }
{"version":3,"file":"uuid.js","sourceRoot":"","sources":["../src/uuid.ts"],"names":[],"mappings":";;;AAAA,mCAAgD;AAChD,mCAAkC;AAElC,MAAM,WAAW,GAAG,kDAAkD,CAAA;AAEtE,2CAA2C;AAC3C,MAAM,UAAU,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAA;AAClC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;AAEpC,2BAA2B;AAC3B,MAAM,QAAQ,GAAQ,EAAE,CAAA;AAExB,2BAA2B;AAC3B,MAAM,QAAQ,GAAkB,EAAE,CAAA;AAClC,yBAAyB;AACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC9C,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACjB,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;AACnB,CAAC;AAED,aAAa;AACb,MAAa,IAAI;IAQf,YAAY,IAAqB;QAPzB,UAAK,GAAkB,IAAI,CAAA;QAClB,WAAM,GAAkB,IAAI,CAAA;QAO3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;QAC/B,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAQ,CAAA;QAE7B,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAc,CAAA;QAC7B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,IAAc,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,IAAqB,EAAE,SAAiB;QAChD,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;IACjD,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,MAAO,CAAC,CAAA;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,OAAO;QACL,OAAO,SAAS,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAA;IACnD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAqB,EAAE,MAAM,GAAG,CAAC;QAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YAEzB,IAAI,CAAC,+CAA+C,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChE,OAAO,KAAK,CAAA;YACd,CAAC;YAED,IAAI,IAAI,KAAK,sCAAsC,EAAE,CAAC;gBACpD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;YAChE,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBACpD,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChE,MAAM,EAAE,OAAO;aAChB,CAAA;QACH,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,EAAE,EAAE,CAAC;gBAC9B,OAAO,KAAK,CAAA;YACd,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,CAAA;YACT,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC3B,MAAK;gBACP,CAAC;YACH,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACb,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;YACjE,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBACvC,OAAO,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnD,MAAM,EAAE,QAAQ;aACjB,CAAA;QACH,CAAC;QAED,MAAM,IAAA,gBAAQ,EAAC,sBAAsB,EAAE,uBAAuB,CAAC,CAAA;IACjE,CAAC;IAED,sCAAsC;IACtC,MAAM,CAAC,KAAK,CAAC,KAAa;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QACrC,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7C,CAAC,IAAI,CAAC,CAAA;YACR,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;;AA7FH,oBA8FC;AAzFC,0BAA0B;AACV,QAAG,GAAW,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,AAA7D,CAA6D;AA0FlF,qCAAqC;AACrC,SAAS,UAAU,CAAC,IAAY;IAC9B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,CAAC,CAAC;QACP,KAAK,CAAC,CAAC;QACP,KAAK,CAAC;YACJ,OAAO,KAAK,CAAA;QACd,KAAK,CAAC,CAAC;QACP,KAAK,CAAC;YACJ,OAAO,SAAS,CAAA;QAClB,KAAK,CAAC;YACJ,OAAO,WAAW,CAAA;QACpB;YACE,OAAO,QAAQ,CAAA;IACnB,CAAC;AACH,CAAC;AAED,IAAK,YAIJ;AAJD,WAAK,YAAY;IACf,iDAAK,CAAA;IACL,mDAAM,CAAA;IACN,mDAAM,CAAA;AACR,CAAC,EAJI,YAAY,KAAZ,YAAY,QAIhB;AAED,UAAU;AACV,SAAS,SAAS,CAAC,IAAqB,EAAE,UAAkB,EAAE,OAAe,EAAE,SAAiB,EAAE,WAAyB,YAAY,CAAC,KAAK;IAC3I,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,UAAU,CAAC,CAAA;IAEnC,MAAM,gBAAgB,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAA;IACjD,IAAI,gBAAgB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAA,gBAAQ,EAAC,WAAW,EAAE,uBAAuB,CAAC,CAAA;IACtD,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;IAC5B,IAAI,MAAW,CAAA;IACf,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,YAAY,CAAC,MAAM;YACtB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAA;YACxC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;YACrC,MAAM,GAAG,MAAM,CAAA;YACf,MAAK;QACP,KAAK,YAAY,CAAC,MAAM;YACtB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAA;YACxC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;YACrC,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAA;YACzB,MAAK;QACP;YACE,MAAM;gBACJ,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACnB,GAAG;oBACH,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACnB,GAAG;oBACH,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;oBACtC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACnB,GAAG;oBACH,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;oBACnC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACnB,GAAG;oBACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;YACtB,MAAK;IACT,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,SAAS,CAAC,MAAc;IAC/B,OAAO,CACL,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,GAAG;QACH,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,GAAG;QACH,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,GAAG;QACH,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,GAAG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CACrB,CAAA;AACH,CAAC;AAED,qCAAqC;AACxB,QAAA,GAAG,GAAG,IAAI,IAAI,CAAC,sCAAsC,CAAC,CAAA;AAEnE,uBAAuB;AAEvB,+BAA+B;AAE/B,0CAA0C;AAC1C,uDAAuD;AACvD,IAAI","sourcesContent":["import { createHash, randomBytes } from \"crypto\"\nimport { newError } from \"./error\"\n\nconst invalidName = \"options.name must be either a string or a Buffer\"\n\n// Node ID according to rfc4122#section-4.5\nconst randomHost = randomBytes(16)\nrandomHost[0] = randomHost[0] | 0x01\n\n// lookup table hex to byte\nconst hex2byte: any = {}\n\n// lookup table byte to hex\nconst byte2hex: Array<string> = []\n// populate lookup tables\nfor (let i = 0; i < 256; i++) {\n  const hex = (i + 0x100).toString(16).substr(1)\n  hex2byte[hex] = i\n  byte2hex[i] = hex\n}\n\n// UUID class\nexport class UUID {\n  private ascii: string | null = null\n  private readonly binary: Buffer | null = null\n  private readonly version: number\n\n  // from rfc4122#appendix-C\n  static readonly OID: Buffer = UUID.parse(\"6ba7b812-9dad-11d1-80b4-00c04fd430c8\")\n\n  constructor(uuid: Buffer | string) {\n    const check = UUID.check(uuid)\n    if (!check) {\n      throw new Error(\"not a UUID\")\n    }\n\n    this.version = check.version!\n\n    if (check.format === \"ascii\") {\n      this.ascii = uuid as string\n    } else {\n      this.binary = uuid as Buffer\n    }\n  }\n\n  static v5(name: string | Buffer, namespace: Buffer) {\n    return uuidNamed(name, \"sha1\", 0x50, namespace)\n  }\n\n  toString() {\n    if (this.ascii == null) {\n      this.ascii = stringify(this.binary!)\n    }\n    return this.ascii\n  }\n\n  inspect() {\n    return `UUID v${this.version} ${this.toString()}`\n  }\n\n  static check(uuid: Buffer | string, offset = 0) {\n    if (typeof uuid === \"string\") {\n      uuid = uuid.toLowerCase()\n\n      if (!/^[a-f0-9]{8}(-[a-f0-9]{4}){3}-([a-f0-9]{12})$/.test(uuid)) {\n        return false\n      }\n\n      if (uuid === \"00000000-0000-0000-0000-000000000000\") {\n        return { version: undefined, variant: \"nil\", format: \"ascii\" }\n      }\n\n      return {\n        version: (hex2byte[uuid[14] + uuid[15]] & 0xf0) >> 4,\n        variant: getVariant((hex2byte[uuid[19] + uuid[20]] & 0xe0) >> 5),\n        format: \"ascii\",\n      }\n    }\n\n    if (Buffer.isBuffer(uuid)) {\n      if (uuid.length < offset + 16) {\n        return false\n      }\n\n      let i = 0\n      for (; i < 16; i++) {\n        if (uuid[offset + i] !== 0) {\n          break\n        }\n      }\n      if (i === 16) {\n        return { version: undefined, variant: \"nil\", format: \"binary\" }\n      }\n\n      return {\n        version: (uuid[offset + 6] & 0xf0) >> 4,\n        variant: getVariant((uuid[offset + 8] & 0xe0) >> 5),\n        format: \"binary\",\n      }\n    }\n\n    throw newError(\"Unknown type of uuid\", \"ERR_UNKNOWN_UUID_TYPE\")\n  }\n\n  // read stringified uuid into a Buffer\n  static parse(input: string): Buffer {\n    const buffer = Buffer.allocUnsafe(16)\n    let j = 0\n    for (let i = 0; i < 16; i++) {\n      buffer[i] = hex2byte[input[j++] + input[j++]]\n      if (i === 3 || i === 5 || i === 7 || i === 9) {\n        j += 1\n      }\n    }\n    return buffer\n  }\n}\n\n// according to rfc4122#section-4.1.1\nfunction getVariant(bits: number) {\n  switch (bits) {\n    case 0:\n    case 1:\n    case 3:\n      return \"ncs\"\n    case 4:\n    case 5:\n      return \"rfc4122\"\n    case 6:\n      return \"microsoft\"\n    default:\n      return \"future\"\n  }\n}\n\nenum UuidEncoding {\n  ASCII,\n  BINARY,\n  OBJECT,\n}\n\n// v3 + v5\nfunction uuidNamed(name: string | Buffer, hashMethod: string, version: number, namespace: Buffer, encoding: UuidEncoding = UuidEncoding.ASCII) {\n  const hash = createHash(hashMethod)\n\n  const nameIsNotAString = typeof name !== \"string\"\n  if (nameIsNotAString && !Buffer.isBuffer(name)) {\n    throw newError(invalidName, \"ERR_INVALID_UUID_NAME\")\n  }\n\n  hash.update(namespace)\n  hash.update(name)\n\n  const buffer = hash.digest()\n  let result: any\n  switch (encoding) {\n    case UuidEncoding.BINARY:\n      buffer[6] = (buffer[6] & 0x0f) | version\n      buffer[8] = (buffer[8] & 0x3f) | 0x80\n      result = buffer\n      break\n    case UuidEncoding.OBJECT:\n      buffer[6] = (buffer[6] & 0x0f) | version\n      buffer[8] = (buffer[8] & 0x3f) | 0x80\n      result = new UUID(buffer)\n      break\n    default:\n      result =\n        byte2hex[buffer[0]] +\n        byte2hex[buffer[1]] +\n        byte2hex[buffer[2]] +\n        byte2hex[buffer[3]] +\n        \"-\" +\n        byte2hex[buffer[4]] +\n        byte2hex[buffer[5]] +\n        \"-\" +\n        byte2hex[(buffer[6] & 0x0f) | version] +\n        byte2hex[buffer[7]] +\n        \"-\" +\n        byte2hex[(buffer[8] & 0x3f) | 0x80] +\n        byte2hex[buffer[9]] +\n        \"-\" +\n        byte2hex[buffer[10]] +\n        byte2hex[buffer[11]] +\n        byte2hex[buffer[12]] +\n        byte2hex[buffer[13]] +\n        byte2hex[buffer[14]] +\n        byte2hex[buffer[15]]\n      break\n  }\n  return result\n}\n\nfunction stringify(buffer: Buffer) {\n  return (\n    byte2hex[buffer[0]] +\n    byte2hex[buffer[1]] +\n    byte2hex[buffer[2]] +\n    byte2hex[buffer[3]] +\n    \"-\" +\n    byte2hex[buffer[4]] +\n    byte2hex[buffer[5]] +\n    \"-\" +\n    byte2hex[buffer[6]] +\n    byte2hex[buffer[7]] +\n    \"-\" +\n    byte2hex[buffer[8]] +\n    byte2hex[buffer[9]] +\n    \"-\" +\n    byte2hex[buffer[10]] +\n    byte2hex[buffer[11]] +\n    byte2hex[buffer[12]] +\n    byte2hex[buffer[13]] +\n    byte2hex[buffer[14]] +\n    byte2hex[buffer[15]]\n  )\n}\n\n// according to rfc4122#section-4.1.7\nexport const nil = new UUID(\"00000000-0000-0000-0000-000000000000\")\n\n// UUID.v4 = uuidRandom\n\n// UUID.v4fast = uuidRandomFast\n\n// UUID.v3 = function(options, callback) {\n//     return uuidNamed(\"md5\", 0x30, options, callback)\n// }\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.XElement = void 0;
exports.parseXml = parseXml;
const sax = require("sax");
const error_1 = require("./error");
class XElement {
    constructor(name) {
        this.name = name;
        this.value = "";
        this.attributes = null;
        this.isCData = false;
        this.elements = null;
        if (!name) {
            throw (0, error_1.newError)("Element name cannot be empty", "ERR_XML_ELEMENT_NAME_EMPTY");
        }
        if (!isValidName(name)) {
            throw (0, error_1.newError)(`Invalid element name: ${name}`, "ERR_XML_ELEMENT_INVALID_NAME");
        }
    }
    attribute(name) {
        const result = this.attributes === null ? null : this.attributes[name];
        if (result == null) {
            throw (0, error_1.newError)(`No attribute "${name}"`, "ERR_XML_MISSED_ATTRIBUTE");
        }
        return result;
    }
    removeAttribute(name) {
        if (this.attributes !== null) {
            delete this.attributes[name];
        }
    }
    element(name, ignoreCase = false, errorIfMissed = null) {
        const result = this.elementOrNull(name, ignoreCase);
        if (result === null) {
            throw (0, error_1.newError)(errorIfMissed || `No element "${name}"`, "ERR_XML_MISSED_ELEMENT");
        }
        return result;
    }
    elementOrNull(name, ignoreCase = false) {
        if (this.elements === null) {
            return null;
        }
        for (const element of this.elements) {
            if (isNameEquals(element, name, ignoreCase)) {
                return element;
            }
        }
        return null;
    }
    getElements(name, ignoreCase = false) {
        if (this.elements === null) {
            return [];
        }
        return this.elements.filter(it => isNameEquals(it, name, ignoreCase));
    }
    elementValueOrEmpty(name, ignoreCase = false) {
        const element = this.elementOrNull(name, ignoreCase);
        return element === null ? "" : element.value;
    }
}
exports.XElement = XElement;
const NAME_REG_EXP = new RegExp(/^[A-Za-z_][:A-Za-z0-9_-]*$/i);
function isValidName(name) {
    return NAME_REG_EXP.test(name);
}
function isNameEquals(element, name, ignoreCase) {
    const elementName = element.name;
    return elementName === name || (ignoreCase === true && elementName.length === name.length && elementName.toLowerCase() === name.toLowerCase());
}
function parseXml(data) {
    let rootElement = null;
    const parser = sax.parser(true, {});
    const elements = [];
    parser.onopentag = saxElement => {
        const element = new XElement(saxElement.name);
        element.attributes = saxElement.attributes;
        if (rootElement === null) {
            rootElement = element;
        }
        else {
            const parent = elements[elements.length - 1];
            if (parent.elements == null) {
                parent.elements = [];
            }
            parent.elements.push(element);
        }
        elements.push(element);
    };
    parser.onclosetag = () => {
        elements.pop();
    };
    parser.ontext = text => {
        if (elements.length > 0) {
            elements[elements.length - 1].value = text;
        }
    };
    parser.oncdata = cdata => {
        const element = elements[elements.length - 1];
        element.value = cdata;
        element.isCData = true;
    };
    parser.onerror = err => {
        throw err;
    };
    parser.write(data);
    return rootElement;
}
{"version":3,"file":"xml.js","sourceRoot":"","sources":["../src/xml.ts"],"names":[],"mappings":";;;AA8EA,4BA2CC;AAzHD,2BAA0B;AAC1B,mCAAkC;AAElC,MAAa,QAAQ;IAMnB,YAAqB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;QALjC,UAAK,GAAG,EAAE,CAAA;QACV,eAAU,GAAkC,IAAI,CAAA;QAChD,YAAO,GAAG,KAAK,CAAA;QACf,aAAQ,GAA2B,IAAI,CAAA;QAGrC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAA,gBAAQ,EAAC,8BAA8B,EAAE,4BAA4B,CAAC,CAAA;QAC9E,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,IAAA,gBAAQ,EAAC,yBAAyB,IAAI,EAAE,EAAE,8BAA8B,CAAC,CAAA;QACjF,CAAC;IACH,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACtE,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,IAAA,gBAAQ,EAAC,iBAAiB,IAAI,GAAG,EAAE,0BAA0B,CAAC,CAAA;QACtE,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,eAAe,CAAC,IAAY;QAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,UAAU,GAAG,KAAK,EAAE,gBAA+B,IAAI;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACnD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,IAAA,gBAAQ,EAAC,aAAa,IAAI,eAAe,IAAI,GAAG,EAAE,wBAAwB,CAAC,CAAA;QACnF,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,aAAa,CAAC,IAAY,EAAE,UAAU,GAAG,KAAK;QAC5C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;gBAC5C,OAAO,OAAO,CAAA;YAChB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,UAAU,GAAG,KAAK;QAC1C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;IACvE,CAAC;IAED,mBAAmB,CAAC,IAAY,EAAE,UAAU,GAAG,KAAK;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACpD,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAA;IAC9C,CAAC;CACF;AA9DD,4BA8DC;AAED,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,6BAA6B,CAAC,CAAA;AAE9D,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChC,CAAC;AAED,SAAS,YAAY,CAAC,OAAiB,EAAE,IAAY,EAAE,UAAmB;IACxE,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAA;IAChC,OAAO,WAAW,KAAK,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;AAChJ,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAY;IACnC,IAAI,WAAW,GAAoB,IAAI,CAAA;IACvC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACnC,MAAM,QAAQ,GAAoB,EAAE,CAAA;IAEpC,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,EAAE;QAC9B,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC7C,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,UAAoC,CAAA;QAEpE,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,WAAW,GAAG,OAAO,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAC5C,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;gBAC5B,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAA;YACtB,CAAC;YACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC/B,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACxB,CAAC,CAAA;IAED,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE;QACvB,QAAQ,CAAC,GAAG,EAAE,CAAA;IAChB,CAAC,CAAA;IAED,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;QACrB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAA;QAC5C,CAAC;IACH,CAAC,CAAA;IAED,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE;QACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAC7C,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;QACrB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;IACxB,CAAC,CAAA;IAED,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE;QACrB,MAAM,GAAG,CAAA;IACX,CAAC,CAAA;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAClB,OAAO,WAAY,CAAA;AACrB,CAAC","sourcesContent":["import * as sax from \"sax\"\nimport { newError } from \"./error\"\n\nexport class XElement {\n  value = \"\"\n  attributes: Record<string, string> | null = null\n  isCData = false\n  elements: Array<XElement> | null = null\n\n  constructor(readonly name: string) {\n    if (!name) {\n      throw newError(\"Element name cannot be empty\", \"ERR_XML_ELEMENT_NAME_EMPTY\")\n    }\n    if (!isValidName(name)) {\n      throw newError(`Invalid element name: ${name}`, \"ERR_XML_ELEMENT_INVALID_NAME\")\n    }\n  }\n\n  attribute(name: string): string {\n    const result = this.attributes === null ? null : this.attributes[name]\n    if (result == null) {\n      throw newError(`No attribute \"${name}\"`, \"ERR_XML_MISSED_ATTRIBUTE\")\n    }\n    return result\n  }\n\n  removeAttribute(name: string): void {\n    if (this.attributes !== null) {\n      delete this.attributes[name]\n    }\n  }\n\n  element(name: string, ignoreCase = false, errorIfMissed: string | null = null): XElement {\n    const result = this.elementOrNull(name, ignoreCase)\n    if (result === null) {\n      throw newError(errorIfMissed || `No element \"${name}\"`, \"ERR_XML_MISSED_ELEMENT\")\n    }\n    return result\n  }\n\n  elementOrNull(name: string, ignoreCase = false): XElement | null {\n    if (this.elements === null) {\n      return null\n    }\n\n    for (const element of this.elements) {\n      if (isNameEquals(element, name, ignoreCase)) {\n        return element\n      }\n    }\n\n    return null\n  }\n\n  getElements(name: string, ignoreCase = false) {\n    if (this.elements === null) {\n      return []\n    }\n    return this.elements.filter(it => isNameEquals(it, name, ignoreCase))\n  }\n\n  elementValueOrEmpty(name: string, ignoreCase = false): string {\n    const element = this.elementOrNull(name, ignoreCase)\n    return element === null ? \"\" : element.value\n  }\n}\n\nconst NAME_REG_EXP = new RegExp(/^[A-Za-z_][:A-Za-z0-9_-]*$/i)\n\nfunction isValidName(name: string) {\n  return NAME_REG_EXP.test(name)\n}\n\nfunction isNameEquals(element: XElement, name: string, ignoreCase: boolean) {\n  const elementName = element.name\n  return elementName === name || (ignoreCase === true && elementName.length === name.length && elementName.toLowerCase() === name.toLowerCase())\n}\n\nexport function parseXml(data: string): XElement {\n  let rootElement: XElement | null = null\n  const parser = sax.parser(true, {})\n  const elements: Array<XElement> = []\n\n  parser.onopentag = saxElement => {\n    const element = new XElement(saxElement.name)\n    element.attributes = saxElement.attributes as Record<string, string>\n\n    if (rootElement === null) {\n      rootElement = element\n    } else {\n      const parent = elements[elements.length - 1]\n      if (parent.elements == null) {\n        parent.elements = []\n      }\n      parent.elements.push(element)\n    }\n    elements.push(element)\n  }\n\n  parser.onclosetag = () => {\n    elements.pop()\n  }\n\n  parser.ontext = text => {\n    if (elements.length > 0) {\n      elements[elements.length - 1].value = text\n    }\n  }\n\n  parser.oncdata = cdata => {\n    const element = elements[elements.length - 1]\n    element.value = cdata\n    element.isCData = true\n  }\n\n  parser.onerror = err => {\n    throw err\n  }\n\n  parser.write(data)\n  return rootElement!\n}\n"]}'use strict';
const os = require('os');

const extractPathRegex = /\s+at.*(?:\(|\s)(.*)\)?/;
const pathRegex = /^(?:(?:(?:node|(?:internal\/[\w/]*|.*node_modules\/(?:babel-polyfill|pirates)\/.*)?\w+)\.js:\d+:\d+)|native)/;
const homeDir = typeof os.homedir === 'undefined' ? '' : os.homedir();

module.exports = (stack, options) => {
	options = Object.assign({pretty: false}, options);

	return stack.replace(/\\/g, '/')
		.split('\n')
		.filter(line => {
			const pathMatches = line.match(extractPathRegex);
			if (pathMatches === null || !pathMatches[1]) {
				return true;
			}

			const match = pathMatches[1];

			// Electron
			if (
				match.includes('.app/Contents/Resources/electron.asar') ||
				match.includes('.app/Contents/Resources/default_app.asar')
			) {
				return false;
			}

			return !pathRegex.test(match);
		})
		.filter(line => line.trim() !== '')
		.map(line => {
			if (options.pretty) {
				return line.replace(extractPathRegex, (m, p1) => m.replace(p1, p1.replace(homeDir, '~')));
			}

			return line;
		})
		.join('\n');
};
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "clean-stack",
  "version": "2.2.0",
  "description": "Clean up error stack traces",
  "license": "MIT",
  "repository": "sindresorhus/clean-stack",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "sindresorhus.com"
  },
  "engines": {
    "node": ">=6"
  },
  "files": [
    "index.js",
    "index.d.ts"
  ],
  "devDependencies": {
    "ava": "^1.4.1",
    "tsd": "^0.7.2",
    "xo": "^0.24.0"
  },
  "browser": {
    "os": false
  }
}This software is released under the MIT license:

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
concat-map
==========

Concatenative mapdashery.

[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map)

[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map)

example
=======

``` js
var concatMap = require('concat-map');
var xs = [ 1, 2, 3, 4, 5, 6 ];
var ys = concatMap(xs, function (x) {
    return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
});
console.dir(ys);
```

***

```
[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]
```

methods
=======

``` js
var concatMap = require('concat-map')
```

concatMap(xs, fn)
-----------------

Return an array of concatenated elements by calling `fn(x, i)` for each element
`x` and each index `i` in the array `xs`.

When `fn(x, i)` returns an array, its result will be concatenated with the
result array. If `fn(x, i)` returns anything else, that value will be pushed
onto the end of the result array.

install
=======

With [npm](http://npmjs.org) do:

```
npm install concat-map
```

license
=======

MIT

notes
=====

This module was written while sitting high above the ground in a tree.
module.exports = function (xs, fn) {
    var res = [];
    for (var i = 0; i < xs.length; i++) {
        var x = fn(xs[i], i);
        if (isArray(x)) res.push.apply(res, x);
        else res.push(x);
    }
    return res;
};

var isArray = Array.isArray || function (xs) {
    return Object.prototype.toString.call(xs) === '[object Array]';
};
{
  "name": "concat-map",
  "description": "concatenative mapdashery",
  "version": "0.0.1",
  "repository": {
    "type": "git",
    "url": "git://github.com/substack/node-concat-map.git"
  },
  "main": "index.js",
  "directories": {
    "example": "example",
    "test": "test"
  },
  "devDependencies": {
    "tape": "~2.4.0"
  },
  "license": "MIT",
  "author": {
    "name": "James Halliday",
    "email": "mail@substack.net",
    "url": "http://substack.net"
  },
  "testling": {
    "files": "test/*.js",
    "browsers": {
      "ie": [
        6,
        7,
        8,
        9
      ],
      "ff": [
        3.5,
        10,
        15
      ],
      "chrome": [
        10,
        22
      ],
      "safari": [
        5.1
      ],
      "opera": [
        12
      ]
    }
  }
}The MIT License (MIT)

Copyright (c) 2018 Made With MOXY Lda <hello@moxy.studio>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
'use strict';

const cp = require('child_process');
const parse = require('./lib/parse');
const enoent = require('./lib/enoent');

function spawn(command, args, options) {
    // Parse the arguments
    const parsed = parse(command, args, options);

    // Spawn the child process
    const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);

    // Hook into child process "exit" event to emit an error if the command
    // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16
    enoent.hookChildProcess(spawned, parsed);

    return spawned;
}

function spawnSync(command, args, options) {
    // Parse the arguments
    const parsed = parse(command, args, options);

    // Spawn the child process
    const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);

    // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16
    result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);

    return result;
}

module.exports = spawn;
module.exports.spawn = spawn;
module.exports.sync = spawnSync;

module.exports._parse = parse;
module.exports._enoent = enoent;
{
  "name": "cross-spawn",
  "version": "7.0.6",
  "description": "Cross platform child_process#spawn and child_process#spawnSync",
  "author": "André Cruz <andre@moxy.studio>",
  "homepage": "https://github.com/moxystudio/node-cross-spawn",
  "repository": {
    "type": "git",
    "url": "git@github.com:moxystudio/node-cross-spawn.git"
  },
  "license": "MIT",
  "main": "index.js",
  "files": [
    "lib"
  ],
  "husky": {
    "hooks": {
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS",
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "*.js": [
      "eslint --fix",
      "git add"
    ]
  },
  "commitlint": {
    "extends": [
      "@commitlint/config-conventional"
    ]
  },
  "dependencies": {
    "path-key": "^3.1.0",
    "shebang-command": "^2.0.0",
    "which": "^2.0.1"
  },
  "devDependencies": {
    "@commitlint/cli": "^8.1.0",
    "@commitlint/config-conventional": "^8.1.0",
    "babel-core": "^6.26.3",
    "babel-jest": "^24.9.0",
    "babel-preset-moxy": "^3.1.0",
    "eslint": "^5.16.0",
    "eslint-config-moxy": "^7.1.0",
    "husky": "^3.0.5",
    "jest": "^24.9.0",
    "lint-staged": "^9.2.5",
    "mkdirp": "^0.5.1",
    "rimraf": "^3.0.0",
    "standard-version": "^9.5.0"
  },
  "engines": {
    "node": ">= 8"
  }
}'use strict';

const isWin = process.platform === 'win32';

function notFoundError(original, syscall) {
    return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {
        code: 'ENOENT',
        errno: 'ENOENT',
        syscall: `${syscall} ${original.command}`,
        path: original.command,
        spawnargs: original.args,
    });
}

function hookChildProcess(cp, parsed) {
    if (!isWin) {
        return;
    }

    const originalEmit = cp.emit;

    cp.emit = function (name, arg1) {
        // If emitting "exit" event and exit code is 1, we need to check if
        // the command exists and emit an "error" instead
        // See https://github.com/IndigoUnited/node-cross-spawn/issues/16
        if (name === 'exit') {
            const err = verifyENOENT(arg1, parsed);

            if (err) {
                return originalEmit.call(cp, 'error', err);
            }
        }

        return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params
    };
}

function verifyENOENT(status, parsed) {
    if (isWin && status === 1 && !parsed.file) {
        return notFoundError(parsed.original, 'spawn');
    }

    return null;
}

function verifyENOENTSync(status, parsed) {
    if (isWin && status === 1 && !parsed.file) {
        return notFoundError(parsed.original, 'spawnSync');
    }

    return null;
}

module.exports = {
    hookChildProcess,
    verifyENOENT,
    verifyENOENTSync,
    notFoundError,
};
'use strict';

const path = require('path');
const resolveCommand = require('./util/resolveCommand');
const escape = require('./util/escape');
const readShebang = require('./util/readShebang');

const isWin = process.platform === 'win32';
const isExecutableRegExp = /\.(?:com|exe)$/i;
const isCmdShimRegExp = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;

function detectShebang(parsed) {
    parsed.file = resolveCommand(parsed);

    const shebang = parsed.file && readShebang(parsed.file);

    if (shebang) {
        parsed.args.unshift(parsed.file);
        parsed.command = shebang;

        return resolveCommand(parsed);
    }

    return parsed.file;
}

function parseNonShell(parsed) {
    if (!isWin) {
        return parsed;
    }

    // Detect & add support for shebangs
    const commandFile = detectShebang(parsed);

    // We don't need a shell if the command filename is an executable
    const needsShell = !isExecutableRegExp.test(commandFile);

    // If a shell is required, use cmd.exe and take care of escaping everything correctly
    // Note that `forceShell` is an hidden option used only in tests
    if (parsed.options.forceShell || needsShell) {
        // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/`
        // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument
        // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called,
        // we need to double escape them
        const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);

        // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\bar)
        // This is necessary otherwise it will always fail with ENOENT in those cases
        parsed.command = path.normalize(parsed.command);

        // Escape command & arguments
        parsed.command = escape.command(parsed.command);
        parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));

        const shellCommand = [parsed.command].concat(parsed.args).join(' ');

        parsed.args = ['/d', '/s', '/c', `"${shellCommand}"`];
        parsed.command = process.env.comspec || 'cmd.exe';
        parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped
    }

    return parsed;
}

function parse(command, args, options) {
    // Normalize arguments, similar to nodejs
    if (args && !Array.isArray(args)) {
        options = args;
        args = null;
    }

    args = args ? args.slice(0) : []; // Clone array to avoid changing the original
    options = Object.assign({}, options); // Clone object to avoid changing the original

    // Build our parsed object
    const parsed = {
        command,
        args,
        options,
        file: undefined,
        original: {
            command,
            args,
        },
    };

    // Delegate further parsing to shell or non-shell
    return options.shell ? parsed : parseNonShell(parsed);
}

module.exports = parse;
'use strict';

// See http://www.robvanderwoude.com/escapechars.php
const metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g;

function escapeCommand(arg) {
    // Escape meta chars
    arg = arg.replace(metaCharsRegExp, '^$1');

    return arg;
}

function escapeArgument(arg, doubleEscapeMetaChars) {
    // Convert to string
    arg = `${arg}`;

    // Algorithm below is based on https://qntm.org/cmd
    // It's slightly altered to disable JS backtracking to avoid hanging on specially crafted input
    // Please see https://github.com/moxystudio/node-cross-spawn/pull/160 for more information

    // Sequence of backslashes followed by a double quote:
    // double up all the backslashes and escape the double quote
    arg = arg.replace(/(?=(\\+?)?)\1"/g, '$1$1\\"');

    // Sequence of backslashes followed by the end of the string
    // (which will become a double quote later):
    // double up all the backslashes
    arg = arg.replace(/(?=(\\+?)?)\1$/, '$1$1');

    // All other backslashes occur literally

    // Quote the whole thing:
    arg = `"${arg}"`;

    // Escape meta chars
    arg = arg.replace(metaCharsRegExp, '^$1');

    // Double escape meta chars if necessary
    if (doubleEscapeMetaChars) {
        arg = arg.replace(metaCharsRegExp, '^$1');
    }

    return arg;
}

module.exports.command = escapeCommand;
module.exports.argument = escapeArgument;
'use strict';

const fs = require('fs');
const shebangCommand = require('shebang-command');

function readShebang(command) {
    // Read the first 150 bytes from the file
    const size = 150;
    const buffer = Buffer.alloc(size);

    let fd;

    try {
        fd = fs.openSync(command, 'r');
        fs.readSync(fd, buffer, 0, size, 0);
        fs.closeSync(fd);
    } catch (e) { /* Empty */ }

    // Attempt to extract shebang (null is returned if not a shebang)
    return shebangCommand(buffer.toString());
}

module.exports = readShebang;
'use strict';

const path = require('path');
const which = require('which');
const getPathKey = require('path-key');

function resolveCommandAttempt(parsed, withoutPathExt) {
    const env = parsed.options.env || process.env;
    const cwd = process.cwd();
    const hasCustomCwd = parsed.options.cwd != null;
    // Worker threads do not have process.chdir()
    const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;

    // If a custom `cwd` was specified, we need to change the process cwd
    // because `which` will do stat calls but does not support a custom cwd
    if (shouldSwitchCwd) {
        try {
            process.chdir(parsed.options.cwd);
        } catch (err) {
            /* Empty */
        }
    }

    let resolved;

    try {
        resolved = which.sync(parsed.command, {
            path: env[getPathKey({ env })],
            pathExt: withoutPathExt ? path.delimiter : undefined,
        });
    } catch (e) {
        /* Empty */
    } finally {
        if (shouldSwitchCwd) {
            process.chdir(cwd);
        }
    }

    // If we successfully resolved, ensure that an absolute path is returned
    // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it
    if (resolved) {
        resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);
    }

    return resolved;
}

function resolveCommand(parsed) {
    return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);
}

module.exports = resolveCommand;
(The MIT License)

Copyright (c) 2014-2017 TJ Holowaychuk <tj@vision-media.ca>
Copyright (c) 2018-2021 Josh Junon

Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the 'Software'), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial
portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

{
  "name": "debug",
  "version": "4.3.6",
  "repository": {
    "type": "git",
    "url": "git://github.com/debug-js/debug.git"
  },
  "description": "Lightweight debugging utility for Node.js and the browser",
  "files": [
    "src",
    "LICENSE",
    "README.md"
  ],
  "author": "Josh Junon (https://github.com/qix-)",
  "license": "MIT",
  "dependencies": {
    "ms": "2.1.2"
  },
  "devDependencies": {
    "brfs": "^2.0.1",
    "browserify": "^16.2.3",
    "coveralls": "^3.0.2",
    "istanbul": "^0.4.5",
    "karma": "^3.1.4",
    "karma-browserify": "^6.0.0",
    "karma-chrome-launcher": "^2.2.0",
    "karma-mocha": "^1.3.0",
    "mocha": "^5.2.0",
    "mocha-lcov-reporter": "^1.2.0",
    "sinon": "^14.0.0",
    "xo": "^0.23.0"
  },
  "peerDependenciesMeta": {
    "supports-color": {
      "optional": true
    }
  },
  "main": "./src/index.js",
  "browser": "./src/browser.js",
  "engines": {
    "node": ">=6.0"
  }
}/* eslint-env browser */

/**
 * This is the web browser implementation of `debug()`.
 */

exports.formatArgs = formatArgs;
exports.save = save;
exports.load = load;
exports.useColors = useColors;
exports.storage = localstorage();
exports.destroy = (() => {
	let warned = false;

	return () => {
		if (!warned) {
			warned = true;
			console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');
		}
	};
})();

/**
 * Colors.
 */

exports.colors = [
	'#0000CC',
	'#0000FF',
	'#0033CC',
	'#0033FF',
	'#0066CC',
	'#0066FF',
	'#0099CC',
	'#0099FF',
	'#00CC00',
	'#00CC33',
	'#00CC66',
	'#00CC99',
	'#00CCCC',
	'#00CCFF',
	'#3300CC',
	'#3300FF',
	'#3333CC',
	'#3333FF',
	'#3366CC',
	'#3366FF',
	'#3399CC',
	'#3399FF',
	'#33CC00',
	'#33CC33',
	'#33CC66',
	'#33CC99',
	'#33CCCC',
	'#33CCFF',
	'#6600CC',
	'#6600FF',
	'#6633CC',
	'#6633FF',
	'#66CC00',
	'#66CC33',
	'#9900CC',
	'#9900FF',
	'#9933CC',
	'#9933FF',
	'#99CC00',
	'#99CC33',
	'#CC0000',
	'#CC0033',
	'#CC0066',
	'#CC0099',
	'#CC00CC',
	'#CC00FF',
	'#CC3300',
	'#CC3333',
	'#CC3366',
	'#CC3399',
	'#CC33CC',
	'#CC33FF',
	'#CC6600',
	'#CC6633',
	'#CC9900',
	'#CC9933',
	'#CCCC00',
	'#CCCC33',
	'#FF0000',
	'#FF0033',
	'#FF0066',
	'#FF0099',
	'#FF00CC',
	'#FF00FF',
	'#FF3300',
	'#FF3333',
	'#FF3366',
	'#FF3399',
	'#FF33CC',
	'#FF33FF',
	'#FF6600',
	'#FF6633',
	'#FF9900',
	'#FF9933',
	'#FFCC00',
	'#FFCC33'
];

/**
 * Currently only WebKit-based Web Inspectors, Firefox >= v31,
 * and the Firebug extension (any Firefox version) are known
 * to support "%c" CSS customizations.
 *
 * TODO: add a `localStorage` variable to explicitly enable/disable colors
 */

// eslint-disable-next-line complexity
function useColors() {
	// NB: In an Electron preload script, document will be defined but not fully
	// initialized. Since we know we're in Chrome, we'll just detect this case
	// explicitly
	if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {
		return true;
	}

	// Internet Explorer and Edge do not support colors.
	if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
		return false;
	}

	let m;

	// Is webkit? http://stackoverflow.com/a/16459606/376773
	// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
	return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
		// Is firebug? http://stackoverflow.com/a/398120/376773
		(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
		// Is firefox >= v31?
		// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
		(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31) ||
		// Double check webkit in userAgent just in case we are in a worker
		(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
}

/**
 * Colorize log arguments if enabled.
 *
 * @api public
 */

function formatArgs(args) {
	args[0] = (this.useColors ? '%c' : '') +
		this.namespace +
		(this.useColors ? ' %c' : ' ') +
		args[0] +
		(this.useColors ? '%c ' : ' ') +
		'+' + module.exports.humanize(this.diff);

	if (!this.useColors) {
		return;
	}

	const c = 'color: ' + this.color;
	args.splice(1, 0, c, 'color: inherit');

	// The final "%c" is somewhat tricky, because there could be other
	// arguments passed either before or after the %c, so we need to
	// figure out the correct index to insert the CSS into
	let index = 0;
	let lastC = 0;
	args[0].replace(/%[a-zA-Z%]/g, match => {
		if (match === '%%') {
			return;
		}
		index++;
		if (match === '%c') {
			// We only are interested in the *last* %c
			// (the user may have provided their own)
			lastC = index;
		}
	});

	args.splice(lastC, 0, c);
}

/**
 * Invokes `console.debug()` when available.
 * No-op when `console.debug` is not a "function".
 * If `console.debug` is not available, falls back
 * to `console.log`.
 *
 * @api public
 */
exports.log = console.debug || console.log || (() => {});

/**
 * Save `namespaces`.
 *
 * @param {String} namespaces
 * @api private
 */
function save(namespaces) {
	try {
		if (namespaces) {
			exports.storage.setItem('debug', namespaces);
		} else {
			exports.storage.removeItem('debug');
		}
	} catch (error) {
		// Swallow
		// XXX (@Qix-) should we be logging these?
	}
}

/**
 * Load `namespaces`.
 *
 * @return {String} returns the previously persisted debug modes
 * @api private
 */
function load() {
	let r;
	try {
		r = exports.storage.getItem('debug');
	} catch (error) {
		// Swallow
		// XXX (@Qix-) should we be logging these?
	}

	// If debug isn't set in LS, and we're in Electron, try to load $DEBUG
	if (!r && typeof process !== 'undefined' && 'env' in process) {
		r = process.env.DEBUG;
	}

	return r;
}

/**
 * Localstorage attempts to return the localstorage.
 *
 * This is necessary because safari throws
 * when a user disables cookies/localstorage
 * and you attempt to access it.
 *
 * @return {LocalStorage}
 * @api private
 */

function localstorage() {
	try {
		// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context
		// The Browser also has localStorage in the global context.
		return localStorage;
	} catch (error) {
		// Swallow
		// XXX (@Qix-) should we be logging these?
	}
}

module.exports = require('./common')(exports);

const {formatters} = module.exports;

/**
 * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
 */

formatters.j = function (v) {
	try {
		return JSON.stringify(v);
	} catch (error) {
		return '[UnexpectedJSONParseError]: ' + error.message;
	}
};

/**
 * This is the common logic for both the Node.js and web browser
 * implementations of `debug()`.
 */

function setup(env) {
	createDebug.debug = createDebug;
	createDebug.default = createDebug;
	createDebug.coerce = coerce;
	createDebug.disable = disable;
	createDebug.enable = enable;
	createDebug.enabled = enabled;
	createDebug.humanize = require('ms');
	createDebug.destroy = destroy;

	Object.keys(env).forEach(key => {
		createDebug[key] = env[key];
	});

	/**
	* The currently active debug mode names, and names to skip.
	*/

	createDebug.names = [];
	createDebug.skips = [];

	/**
	* Map of special "%n" handling functions, for the debug "format" argument.
	*
	* Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
	*/
	createDebug.formatters = {};

	/**
	* Selects a color for a debug namespace
	* @param {String} namespace The namespace string for the debug instance to be colored
	* @return {Number|String} An ANSI color code for the given namespace
	* @api private
	*/
	function selectColor(namespace) {
		let hash = 0;

		for (let i = 0; i < namespace.length; i++) {
			hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
			hash |= 0; // Convert to 32bit integer
		}

		return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
	}
	createDebug.selectColor = selectColor;

	/**
	* Create a debugger with the given `namespace`.
	*
	* @param {String} namespace
	* @return {Function}
	* @api public
	*/
	function createDebug(namespace) {
		let prevTime;
		let enableOverride = null;
		let namespacesCache;
		let enabledCache;

		function debug(...args) {
			// Disabled?
			if (!debug.enabled) {
				return;
			}

			const self = debug;

			// Set `diff` timestamp
			const curr = Number(new Date());
			const ms = curr - (prevTime || curr);
			self.diff = ms;
			self.prev = prevTime;
			self.curr = curr;
			prevTime = curr;

			args[0] = createDebug.coerce(args[0]);

			if (typeof args[0] !== 'string') {
				// Anything else let's inspect with %O
				args.unshift('%O');
			}

			// Apply any `formatters` transformations
			let index = 0;
			args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
				// If we encounter an escaped % then don't increase the array index
				if (match === '%%') {
					return '%';
				}
				index++;
				const formatter = createDebug.formatters[format];
				if (typeof formatter === 'function') {
					const val = args[index];
					match = formatter.call(self, val);

					// Now we need to remove `args[index]` since it's inlined in the `format`
					args.splice(index, 1);
					index--;
				}
				return match;
			});

			// Apply env-specific formatting (colors, etc.)
			createDebug.formatArgs.call(self, args);

			const logFn = self.log || createDebug.log;
			logFn.apply(self, args);
		}

		debug.namespace = namespace;
		debug.useColors = createDebug.useColors();
		debug.color = createDebug.selectColor(namespace);
		debug.extend = extend;
		debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.

		Object.defineProperty(debug, 'enabled', {
			enumerable: true,
			configurable: false,
			get: () => {
				if (enableOverride !== null) {
					return enableOverride;
				}
				if (namespacesCache !== createDebug.namespaces) {
					namespacesCache = createDebug.namespaces;
					enabledCache = createDebug.enabled(namespace);
				}

				return enabledCache;
			},
			set: v => {
				enableOverride = v;
			}
		});

		// Env-specific initialization logic for debug instances
		if (typeof createDebug.init === 'function') {
			createDebug.init(debug);
		}

		return debug;
	}

	function extend(namespace, delimiter) {
		const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);
		newDebug.log = this.log;
		return newDebug;
	}

	/**
	* Enables a debug mode by namespaces. This can include modes
	* separated by a colon and wildcards.
	*
	* @param {String} namespaces
	* @api public
	*/
	function enable(namespaces) {
		createDebug.save(namespaces);
		createDebug.namespaces = namespaces;

		createDebug.names = [];
		createDebug.skips = [];

		let i;
		const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
		const len = split.length;

		for (i = 0; i < len; i++) {
			if (!split[i]) {
				// ignore empty strings
				continue;
			}

			namespaces = split[i].replace(/\*/g, '.*?');

			if (namespaces[0] === '-') {
				createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));
			} else {
				createDebug.names.push(new RegExp('^' + namespaces + '$'));
			}
		}
	}

	/**
	* Disable debug output.
	*
	* @return {String} namespaces
	* @api public
	*/
	function disable() {
		const namespaces = [
			...createDebug.names.map(toNamespace),
			...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)
		].join(',');
		createDebug.enable('');
		return namespaces;
	}

	/**
	* Returns true if the given mode name is enabled, false otherwise.
	*
	* @param {String} name
	* @return {Boolean}
	* @api public
	*/
	function enabled(name) {
		if (name[name.length - 1] === '*') {
			return true;
		}

		let i;
		let len;

		for (i = 0, len = createDebug.skips.length; i < len; i++) {
			if (createDebug.skips[i].test(name)) {
				return false;
			}
		}

		for (i = 0, len = createDebug.names.length; i < len; i++) {
			if (createDebug.names[i].test(name)) {
				return true;
			}
		}

		return false;
	}

	/**
	* Convert regexp to namespace
	*
	* @param {RegExp} regxep
	* @return {String} namespace
	* @api private
	*/
	function toNamespace(regexp) {
		return regexp.toString()
			.substring(2, regexp.toString().length - 2)
			.replace(/\.\*\?$/, '*');
	}

	/**
	* Coerce `val`.
	*
	* @param {Mixed} val
	* @return {Mixed}
	* @api private
	*/
	function coerce(val) {
		if (val instanceof Error) {
			return val.stack || val.message;
		}
		return val;
	}

	/**
	* XXX DO NOT USE. This is a temporary stub function.
	* XXX It WILL be removed in the next major release.
	*/
	function destroy() {
		console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');
	}

	createDebug.enable(createDebug.load());

	return createDebug;
}

module.exports = setup;
/**
 * Detect Electron renderer / nwjs process, which is node, but we should
 * treat as a browser.
 */

if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {
	module.exports = require('./browser.js');
} else {
	module.exports = require('./node.js');
}
/**
 * Module dependencies.
 */

const tty = require('tty');
const util = require('util');

/**
 * This is the Node.js implementation of `debug()`.
 */

exports.init = init;
exports.log = log;
exports.formatArgs = formatArgs;
exports.save = save;
exports.load = load;
exports.useColors = useColors;
exports.destroy = util.deprecate(
	() => {},
	'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'
);

/**
 * Colors.
 */

exports.colors = [6, 2, 3, 4, 5, 1];

try {
	// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)
	// eslint-disable-next-line import/no-extraneous-dependencies
	const supportsColor = require('supports-color');

	if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
		exports.colors = [
			20,
			21,
			26,
			27,
			32,
			33,
			38,
			39,
			40,
			41,
			42,
			43,
			44,
			45,
			56,
			57,
			62,
			63,
			68,
			69,
			74,
			75,
			76,
			77,
			78,
			79,
			80,
			81,
			92,
			93,
			98,
			99,
			112,
			113,
			128,
			129,
			134,
			135,
			148,
			149,
			160,
			161,
			162,
			163,
			164,
			165,
			166,
			167,
			168,
			169,
			170,
			171,
			172,
			173,
			178,
			179,
			184,
			185,
			196,
			197,
			198,
			199,
			200,
			201,
			202,
			203,
			204,
			205,
			206,
			207,
			208,
			209,
			214,
			215,
			220,
			221
		];
	}
} catch (error) {
	// Swallow - we only care if `supports-color` is available; it doesn't have to be.
}

/**
 * Build up the default `inspectOpts` object from the environment variables.
 *
 *   $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
 */

exports.inspectOpts = Object.keys(process.env).filter(key => {
	return /^debug_/i.test(key);
}).reduce((obj, key) => {
	// Camel-case
	const prop = key
		.substring(6)
		.toLowerCase()
		.replace(/_([a-z])/g, (_, k) => {
			return k.toUpperCase();
		});

	// Coerce string value into JS value
	let val = process.env[key];
	if (/^(yes|on|true|enabled)$/i.test(val)) {
		val = true;
	} else if (/^(no|off|false|disabled)$/i.test(val)) {
		val = false;
	} else if (val === 'null') {
		val = null;
	} else {
		val = Number(val);
	}

	obj[prop] = val;
	return obj;
}, {});

/**
 * Is stdout a TTY? Colored output is enabled when `true`.
 */

function useColors() {
	return 'colors' in exports.inspectOpts ?
		Boolean(exports.inspectOpts.colors) :
		tty.isatty(process.stderr.fd);
}

/**
 * Adds ANSI color escape codes if enabled.
 *
 * @api public
 */

function formatArgs(args) {
	const {namespace: name, useColors} = this;

	if (useColors) {
		const c = this.color;
		const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c);
		const prefix = `  ${colorCode};1m${name} \u001B[0m`;

		args[0] = prefix + args[0].split('\n').join('\n' + prefix);
		args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m');
	} else {
		args[0] = getDate() + name + ' ' + args[0];
	}
}

function getDate() {
	if (exports.inspectOpts.hideDate) {
		return '';
	}
	return new Date().toISOString() + ' ';
}

/**
 * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.
 */

function log(...args) {
	return process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\n');
}

/**
 * Save `namespaces`.
 *
 * @param {String} namespaces
 * @api private
 */
function save(namespaces) {
	if (namespaces) {
		process.env.DEBUG = namespaces;
	} else {
		// If you set a process.env field to null or undefined, it gets cast to the
		// string 'null' or 'undefined'. Just delete instead.
		delete process.env.DEBUG;
	}
}

/**
 * Load `namespaces`.
 *
 * @return {String} returns the previously persisted debug modes
 * @api private
 */

function load() {
	return process.env.DEBUG;
}

/**
 * Init logic for `debug` instances.
 *
 * Create a new `inspectOpts` object in case `useColors` is set
 * differently for a particular `debug` instance.
 */

function init(debug) {
	debug.inspectOpts = {};

	const keys = Object.keys(exports.inspectOpts);
	for (let i = 0; i < keys.length; i++) {
		debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
	}
}

module.exports = require('./common')(exports);

const {formatters} = module.exports;

/**
 * Map %o to `util.inspect()`, all on a single line.
 */

formatters.o = function (v) {
	this.inspectOpts.colors = this.useColors;
	return util.inspect(v, this.inspectOpts)
		.split('\n')
		.map(str => str.trim())
		.join(' ');
};

/**
 * Map %O to `util.inspect()`, allowing multiple lines if needed.
 */

formatters.O = function (v) {
	this.inspectOpts.colors = this.useColors;
	return util.inspect(v, this.inspectOpts);
};
'use strict';
const {promisify} = require('util');
const path = require('path');
const globby = require('globby');
const isGlob = require('is-glob');
const slash = require('slash');
const gracefulFs = require('graceful-fs');
const isPathCwd = require('is-path-cwd');
const isPathInside = require('is-path-inside');
const rimraf = require('rimraf');
const pMap = require('p-map');

const rimrafP = promisify(rimraf);

const rimrafOptions = {
	glob: false,
	unlink: gracefulFs.unlink,
	unlinkSync: gracefulFs.unlinkSync,
	chmod: gracefulFs.chmod,
	chmodSync: gracefulFs.chmodSync,
	stat: gracefulFs.stat,
	statSync: gracefulFs.statSync,
	lstat: gracefulFs.lstat,
	lstatSync: gracefulFs.lstatSync,
	rmdir: gracefulFs.rmdir,
	rmdirSync: gracefulFs.rmdirSync,
	readdir: gracefulFs.readdir,
	readdirSync: gracefulFs.readdirSync
};

function safeCheck(file, cwd) {
	if (isPathCwd(file)) {
		throw new Error('Cannot delete the current working directory. Can be overridden with the `force` option.');
	}

	if (!isPathInside(file, cwd)) {
		throw new Error('Cannot delete files/directories outside the current working directory. Can be overridden with the `force` option.');
	}
}

function normalizePatterns(patterns) {
	patterns = Array.isArray(patterns) ? patterns : [patterns];

	patterns = patterns.map(pattern => {
		if (process.platform === 'win32' && isGlob(pattern) === false) {
			return slash(pattern);
		}

		return pattern;
	});

	return patterns;
}

module.exports = async (patterns, {force, dryRun, cwd = process.cwd(), onProgress = () => {}, ...options} = {}) => {
	options = {
		expandDirectories: false,
		onlyFiles: false,
		followSymbolicLinks: false,
		cwd,
		...options
	};

	patterns = normalizePatterns(patterns);

	const files = (await globby(patterns, options))
		.sort((a, b) => b.localeCompare(a));

	if (files.length === 0) {
		onProgress({
			totalCount: 0,
			deletedCount: 0,
			percent: 1
		});
	}

	let deletedCount = 0;

	const mapper = async file => {
		file = path.resolve(cwd, file);

		if (!force) {
			safeCheck(file, cwd);
		}

		if (!dryRun) {
			await rimrafP(file, rimrafOptions);
		}

		deletedCount += 1;

		onProgress({
			totalCount: files.length,
			deletedCount,
			percent: deletedCount / files.length
		});

		return file;
	};

	const removedFiles = await pMap(files, mapper, options);

	removedFiles.sort((a, b) => a.localeCompare(b));

	return removedFiles;
};

module.exports.sync = (patterns, {force, dryRun, cwd = process.cwd(), ...options} = {}) => {
	options = {
		expandDirectories: false,
		onlyFiles: false,
		followSymbolicLinks: false,
		cwd,
		...options
	};

	patterns = normalizePatterns(patterns);

	const files = globby.sync(patterns, options)
		.sort((a, b) => b.localeCompare(a));

	const removedFiles = files.map(file => {
		file = path.resolve(cwd, file);

		if (!force) {
			safeCheck(file, cwd);
		}

		if (!dryRun) {
			rimraf.sync(file, rimrafOptions);
		}

		return file;
	});

	removedFiles.sort((a, b) => a.localeCompare(b));

	return removedFiles;
};
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "del",
  "version": "6.1.1",
  "description": "Delete files and directories",
  "license": "MIT",
  "repository": "sindresorhus/del",
  "funding": "https://github.com/sponsors/sindresorhus",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "https://sindresorhus.com"
  },
  "engines": {
    "node": ">=10"
  },
  "files": [
    "index.js",
    "index.d.ts"
  ],
  "dependencies": {
    "globby": "^11.0.1",
    "graceful-fs": "^4.2.4",
    "is-glob": "^4.0.1",
    "is-path-cwd": "^2.2.0",
    "is-path-inside": "^3.0.2",
    "p-map": "^4.0.0",
    "rimraf": "^3.0.2",
    "slash": "^3.0.0"
  },
  "devDependencies": {
    "ava": "^2.4.0",
    "benchmark": "^2.1.4",
    "make-dir": "^3.1.0",
    "tempy": "^0.7.0",
    "tsd": "^0.13.1",
    "xo": "^0.33.1"
  }
}'use strict';
const path = require('path');
const pathType = require('path-type');

const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0];

const getPath = (filepath, cwd) => {
	const pth = filepath[0] === '!' ? filepath.slice(1) : filepath;
	return path.isAbsolute(pth) ? pth : path.join(cwd, pth);
};

const addExtensions = (file, extensions) => {
	if (path.extname(file)) {
		return `**/${file}`;
	}

	return `**/${file}.${getExtensions(extensions)}`;
};

const getGlob = (directory, options) => {
	if (options.files && !Array.isArray(options.files)) {
		throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof options.files}\``);
	}

	if (options.extensions && !Array.isArray(options.extensions)) {
		throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof options.extensions}\``);
	}

	if (options.files && options.extensions) {
		return options.files.map(x => path.posix.join(directory, addExtensions(x, options.extensions)));
	}

	if (options.files) {
		return options.files.map(x => path.posix.join(directory, `**/${x}`));
	}

	if (options.extensions) {
		return [path.posix.join(directory, `**/*.${getExtensions(options.extensions)}`)];
	}

	return [path.posix.join(directory, '**')];
};

module.exports = async (input, options) => {
	options = {
		cwd: process.cwd(),
		...options
	};

	if (typeof options.cwd !== 'string') {
		throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof options.cwd}\``);
	}

	const globs = await Promise.all([].concat(input).map(async x => {
		const isDirectory = await pathType.isDirectory(getPath(x, options.cwd));
		return isDirectory ? getGlob(x, options) : x;
	}));

	return [].concat.apply([], globs); // eslint-disable-line prefer-spread
};

module.exports.sync = (input, options) => {
	options = {
		cwd: process.cwd(),
		...options
	};

	if (typeof options.cwd !== 'string') {
		throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof options.cwd}\``);
	}

	const globs = [].concat(input).map(x => pathType.isDirectorySync(getPath(x, options.cwd)) ? getGlob(x, options) : x);

	return [].concat.apply([], globs); // eslint-disable-line prefer-spread
};
MIT License

Copyright (c) Kevin Mårtensson <kevinmartensson@gmail.com> (github.com/kevva)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "dir-glob",
  "version": "3.0.1",
  "description": "Convert directories to glob compatible strings",
  "license": "MIT",
  "repository": "kevva/dir-glob",
  "author": {
    "name": "Kevin Mårtensson",
    "email": "kevinmartensson@gmail.com",
    "url": "github.com/kevva"
  },
  "engines": {
    "node": ">=8"
  },
  "files": [
    "index.js"
  ],
  "dependencies": {
    "path-type": "^4.0.0"
  },
  "devDependencies": {
    "ava": "^2.1.0",
    "del": "^4.1.1",
    "make-dir": "^3.0.0",
    "rimraf": "^2.5.0",
    "xo": "^0.24.0"
  }
}The MIT License (MIT)

Copyright (c) 2015 Loopline Systems

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

{
  "name": "electron-updater",
  "version": "6.6.2",
  "description": "Cross platform updater for electron applications",
  "main": "out/main.js",
  "author": "Vladimir Krivosheev",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/electron-userland/electron-builder.git",
    "directory": "packages/electron-updater"
  },
  "homepage": "https://github.com/electron-userland/electron-builder",
  "files": [
    "out"
  ],
  "dependencies": {
    "fs-extra": "^10.1.0",
    "js-yaml": "^4.1.0",
    "lazy-val": "^1.0.5",
    "lodash.escaperegexp": "^4.1.2",
    "lodash.isequal": "^4.5.0",
    "semver": "^7.6.3",
    "tiny-typed-emitter": "^2.1.0",
    "builder-util-runtime": "9.3.1"
  },
  "devDependencies": {
    "@types/fs-extra": "9.0.13",
    "@types/js-yaml": "4.0.3",
    "@types/lodash.escaperegexp": "4.1.6",
    "@types/lodash.isequal": "4.5.5",
    "@types/semver": "^7.3.13",
    "electron": "^31.2.1"
  },
  "typings": "./out/main.d.ts",
  "publishConfig": {
    "tag": "next"
  }
}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAppCacheDir = getAppCacheDir;
const path = require("path");
const os_1 = require("os");
function getAppCacheDir() {
    const homedir = (0, os_1.homedir)();
    // https://github.com/electron/electron/issues/1404#issuecomment-194391247
    let result;
    if (process.platform === "win32") {
        result = process.env["LOCALAPPDATA"] || path.join(homedir, "AppData", "Local");
    }
    else if (process.platform === "darwin") {
        result = path.join(homedir, "Library", "Caches");
    }
    else {
        result = process.env["XDG_CACHE_HOME"] || path.join(homedir, ".cache");
    }
    return result;
}
{"version":3,"file":"AppAdapter.js","sourceRoot":"","sources":["../src/AppAdapter.ts"],"names":[],"mappings":";;AAiCA,wCAYC;AA7CD,6BAA4B;AAC5B,2BAA0C;AAgC1C,SAAgB,cAAc;IAC5B,MAAM,OAAO,GAAG,IAAA,YAAU,GAAE,CAAA;IAC5B,0EAA0E;IAC1E,IAAI,MAAc,CAAA;IAClB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IAChF,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;IAClD,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACxE,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC","sourcesContent":["import * as path from \"path\"\nimport { homedir as getHomedir } from \"os\"\n\nexport interface AppAdapter {\n  readonly version: string\n  readonly name: string\n\n  readonly isPackaged: boolean\n\n  /**\n   * Path to update metadata file.\n   */\n  readonly appUpdateConfigPath: string\n\n  /**\n   * Path to user data directory.\n   */\n  readonly userDataPath: string\n\n  /**\n   * Path to cache directory.\n   */\n  readonly baseCachePath: string\n\n  whenReady(): Promise<void>\n\n  relaunch(): void\n\n  quit(): void\n\n  onQuit(handler: (exitCode: number) => void): void\n}\n\nexport function getAppCacheDir() {\n  const homedir = getHomedir()\n  // https://github.com/electron/electron/issues/1404#issuecomment-194391247\n  let result: string\n  if (process.platform === \"win32\") {\n    result = process.env[\"LOCALAPPDATA\"] || path.join(homedir, \"AppData\", \"Local\")\n  } else if (process.platform === \"darwin\") {\n    result = path.join(homedir, \"Library\", \"Caches\")\n  } else {\n    result = process.env[\"XDG_CACHE_HOME\"] || path.join(homedir, \".cache\")\n  }\n  return result\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AppImageUpdater = void 0;
const builder_util_runtime_1 = require("builder-util-runtime");
const child_process_1 = require("child_process");
const fs_extra_1 = require("fs-extra");
const fs_1 = require("fs");
const path = require("path");
const BaseUpdater_1 = require("./BaseUpdater");
const FileWithEmbeddedBlockMapDifferentialDownloader_1 = require("./differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader");
const Provider_1 = require("./providers/Provider");
const types_1 = require("./types");
class AppImageUpdater extends BaseUpdater_1.BaseUpdater {
    constructor(options, app) {
        super(options, app);
    }
    isUpdaterActive() {
        if (process.env["APPIMAGE"] == null) {
            if (process.env["SNAP"] == null) {
                this._logger.warn("APPIMAGE env is not defined, current application is not an AppImage");
            }
            else {
                this._logger.info("SNAP env is defined, updater is disabled");
            }
            return false;
        }
        return super.isUpdaterActive();
    }
    /*** @private */
    doDownloadUpdate(downloadUpdateOptions) {
        const provider = downloadUpdateOptions.updateInfoAndProvider.provider;
        const fileInfo = (0, Provider_1.findFile)(provider.resolveFiles(downloadUpdateOptions.updateInfoAndProvider.info), "AppImage", ["rpm", "deb", "pacman"]);
        return this.executeDownload({
            fileExtension: "AppImage",
            fileInfo,
            downloadUpdateOptions,
            task: async (updateFile, downloadOptions) => {
                const oldFile = process.env["APPIMAGE"];
                if (oldFile == null) {
                    throw (0, builder_util_runtime_1.newError)("APPIMAGE env is not defined", "ERR_UPDATER_OLD_FILE_NOT_FOUND");
                }
                if (downloadUpdateOptions.disableDifferentialDownload || (await this.downloadDifferential(fileInfo, oldFile, updateFile, provider, downloadUpdateOptions))) {
                    await this.httpExecutor.download(fileInfo.url, updateFile, downloadOptions);
                }
                await (0, fs_extra_1.chmod)(updateFile, 0o755);
            },
        });
    }
    async downloadDifferential(fileInfo, oldFile, updateFile, provider, downloadUpdateOptions) {
        try {
            const downloadOptions = {
                newUrl: fileInfo.url,
                oldFile,
                logger: this._logger,
                newFile: updateFile,
                isUseMultipleRangeRequest: provider.isUseMultipleRangeRequest,
                requestHeaders: downloadUpdateOptions.requestHeaders,
                cancellationToken: downloadUpdateOptions.cancellationToken,
            };
            if (this.listenerCount(types_1.DOWNLOAD_PROGRESS) > 0) {
                downloadOptions.onProgress = it => this.emit(types_1.DOWNLOAD_PROGRESS, it);
            }
            await new FileWithEmbeddedBlockMapDifferentialDownloader_1.FileWithEmbeddedBlockMapDifferentialDownloader(fileInfo.info, this.httpExecutor, downloadOptions).download();
            return false;
        }
        catch (e) {
            this._logger.error(`Cannot download differentially, fallback to full download: ${e.stack || e}`);
            // during test (developer machine mac) we must throw error
            return process.platform === "linux";
        }
    }
    doInstall(options) {
        const appImageFile = process.env["APPIMAGE"];
        if (appImageFile == null) {
            throw (0, builder_util_runtime_1.newError)("APPIMAGE env is not defined", "ERR_UPDATER_OLD_FILE_NOT_FOUND");
        }
        // https://stackoverflow.com/a/1712051/1910191
        (0, fs_1.unlinkSync)(appImageFile);
        let destination;
        const existingBaseName = path.basename(appImageFile);
        const installerPath = this.installerPath;
        if (installerPath == null) {
            this.dispatchError(new Error("No valid update available, can't quit and install"));
            return false;
        }
        // https://github.com/electron-userland/electron-builder/issues/2964
        // if no version in existing file name, it means that user wants to preserve current custom name
        if (path.basename(installerPath) === existingBaseName || !/\d+\.\d+\.\d+/.test(existingBaseName)) {
            // no version in the file name, overwrite existing
            destination = appImageFile;
        }
        else {
            destination = path.join(path.dirname(appImageFile), path.basename(installerPath));
        }
        (0, child_process_1.execFileSync)("mv", ["-f", installerPath, destination]);
        if (destination !== appImageFile) {
            this.emit("appimage-filename-updated", destination);
        }
        const env = {
            ...process.env,
            APPIMAGE_SILENT_INSTALL: "true",
        };
        if (options.isForceRunAfter) {
            // eslint-disable-next-line @typescript-eslint/no-floating-promises
            this.spawnLog(destination, [], env);
        }
        else {
            env.APPIMAGE_EXIT_AFTER_INSTALL = "true";
            (0, child_process_1.execFileSync)(destination, [], { env });
        }
        return true;
    }
}
exports.AppImageUpdater = AppImageUpdater;
{"version":3,"file":"AppImageUpdater.js","sourceRoot":"","sources":["../src/AppImageUpdater.ts"],"names":[],"mappings":";;;AAAA,+DAAkE;AAClE,iDAA4C;AAC5C,uCAAgC;AAChC,2BAA+B;AAC/B,6BAA4B;AAE5B,+CAA2D;AAE3D,4IAAwI;AACxI,mDAAyD;AACzD,mCAAmE;AAEnE,MAAa,eAAgB,SAAQ,yBAAW;IAC9C,YAAY,OAAkC,EAAE,GAAS;QACvD,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IACrB,CAAC;IAEM,eAAe;QACpB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBAChC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAA;YAC1F,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;YAC/D,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,KAAK,CAAC,eAAe,EAAE,CAAA;IAChC,CAAC;IAED,gBAAgB;IACN,gBAAgB,CAAC,qBAA4C;QACrE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,QAAQ,CAAA;QACrE,MAAM,QAAQ,GAAG,IAAA,mBAAQ,EAAC,QAAQ,CAAC,YAAY,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAE,CAAA;QACzI,OAAO,IAAI,CAAC,eAAe,CAAC;YAC1B,aAAa,EAAE,UAAU;YACzB,QAAQ;YACR,qBAAqB;YACrB,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE;gBAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAE,CAAA;gBACxC,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;oBACpB,MAAM,IAAA,+BAAQ,EAAC,6BAA6B,EAAE,gCAAgC,CAAC,CAAA;gBACjF,CAAC;gBAED,IAAI,qBAAqB,CAAC,2BAA2B,IAAI,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC;oBAC3J,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,eAAe,CAAC,CAAA;gBAC7E,CAAC;gBAED,MAAM,IAAA,gBAAK,EAAC,UAAU,EAAE,KAAK,CAAC,CAAA;YAChC,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,QAAgC,EAAE,OAAe,EAAE,UAAkB,EAAE,QAAuB,EAAE,qBAA4C;QAC7K,IAAI,CAAC;YACH,MAAM,eAAe,GAAkC;gBACrD,MAAM,EAAE,QAAQ,CAAC,GAAG;gBACpB,OAAO;gBACP,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,OAAO,EAAE,UAAU;gBACnB,yBAAyB,EAAE,QAAQ,CAAC,yBAAyB;gBAC7D,cAAc,EAAE,qBAAqB,CAAC,cAAc;gBACpD,iBAAiB,EAAE,qBAAqB,CAAC,iBAAiB;aAC3D,CAAA;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,yBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9C,eAAe,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAiB,EAAE,EAAE,CAAC,CAAA;YACrE,CAAC;YAED,MAAM,IAAI,+FAA8C,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAA;YACtH,OAAO,KAAK,CAAA;QACd,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAA;YAChG,0DAA0D;YAC1D,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAA;QACrC,CAAC;IACH,CAAC;IAES,SAAS,CAAC,OAAuB;QACzC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAE,CAAA;QAC7C,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,IAAA,+BAAQ,EAAC,6BAA6B,EAAE,gCAAgC,CAAC,CAAA;QACjF,CAAC;QAED,8CAA8C;QAC9C,IAAA,eAAU,EAAC,YAAY,CAAC,CAAA;QAExB,IAAI,WAAmB,CAAA;QACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QACpD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACxC,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAA;YAClF,OAAO,KAAK,CAAA;QACd,CAAC;QACD,oEAAoE;QACpE,gGAAgG;QAChG,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACjG,kDAAkD;YAClD,WAAW,GAAG,YAAY,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;QACnF,CAAC;QAED,IAAA,4BAAY,EAAC,IAAI,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAA;QACtD,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,WAAW,CAAC,CAAA;QACrD,CAAC;QAED,MAAM,GAAG,GAAsB;YAC7B,GAAG,OAAO,CAAC,GAAG;YACd,uBAAuB,EAAE,MAAM;SAChC,CAAA;QAED,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,mEAAmE;YACnE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,2BAA2B,GAAG,MAAM,CAAA;YACxC,IAAA,4BAAY,EAAC,WAAW,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;QACxC,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AA7GD,0CA6GC","sourcesContent":["import { AllPublishOptions, newError } from \"builder-util-runtime\"\nimport { execFileSync } from \"child_process\"\nimport { chmod } from \"fs-extra\"\nimport { unlinkSync } from \"fs\"\nimport * as path from \"path\"\nimport { DownloadUpdateOptions } from \"./AppUpdater\"\nimport { BaseUpdater, InstallOptions } from \"./BaseUpdater\"\nimport { DifferentialDownloaderOptions } from \"./differentialDownloader/DifferentialDownloader\"\nimport { FileWithEmbeddedBlockMapDifferentialDownloader } from \"./differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader\"\nimport { findFile, Provider } from \"./providers/Provider\"\nimport { DOWNLOAD_PROGRESS, ResolvedUpdateFileInfo } from \"./types\"\n\nexport class AppImageUpdater extends BaseUpdater {\n  constructor(options?: AllPublishOptions | null, app?: any) {\n    super(options, app)\n  }\n\n  public isUpdaterActive(): boolean {\n    if (process.env[\"APPIMAGE\"] == null) {\n      if (process.env[\"SNAP\"] == null) {\n        this._logger.warn(\"APPIMAGE env is not defined, current application is not an AppImage\")\n      } else {\n        this._logger.info(\"SNAP env is defined, updater is disabled\")\n      }\n      return false\n    }\n    return super.isUpdaterActive()\n  }\n\n  /*** @private */\n  protected doDownloadUpdate(downloadUpdateOptions: DownloadUpdateOptions): Promise<Array<string>> {\n    const provider = downloadUpdateOptions.updateInfoAndProvider.provider\n    const fileInfo = findFile(provider.resolveFiles(downloadUpdateOptions.updateInfoAndProvider.info), \"AppImage\", [\"rpm\", \"deb\", \"pacman\"])!\n    return this.executeDownload({\n      fileExtension: \"AppImage\",\n      fileInfo,\n      downloadUpdateOptions,\n      task: async (updateFile, downloadOptions) => {\n        const oldFile = process.env[\"APPIMAGE\"]!\n        if (oldFile == null) {\n          throw newError(\"APPIMAGE env is not defined\", \"ERR_UPDATER_OLD_FILE_NOT_FOUND\")\n        }\n\n        if (downloadUpdateOptions.disableDifferentialDownload || (await this.downloadDifferential(fileInfo, oldFile, updateFile, provider, downloadUpdateOptions))) {\n          await this.httpExecutor.download(fileInfo.url, updateFile, downloadOptions)\n        }\n\n        await chmod(updateFile, 0o755)\n      },\n    })\n  }\n\n  private async downloadDifferential(fileInfo: ResolvedUpdateFileInfo, oldFile: string, updateFile: string, provider: Provider<any>, downloadUpdateOptions: DownloadUpdateOptions) {\n    try {\n      const downloadOptions: DifferentialDownloaderOptions = {\n        newUrl: fileInfo.url,\n        oldFile,\n        logger: this._logger,\n        newFile: updateFile,\n        isUseMultipleRangeRequest: provider.isUseMultipleRangeRequest,\n        requestHeaders: downloadUpdateOptions.requestHeaders,\n        cancellationToken: downloadUpdateOptions.cancellationToken,\n      }\n\n      if (this.listenerCount(DOWNLOAD_PROGRESS) > 0) {\n        downloadOptions.onProgress = it => this.emit(DOWNLOAD_PROGRESS, it)\n      }\n\n      await new FileWithEmbeddedBlockMapDifferentialDownloader(fileInfo.info, this.httpExecutor, downloadOptions).download()\n      return false\n    } catch (e: any) {\n      this._logger.error(`Cannot download differentially, fallback to full download: ${e.stack || e}`)\n      // during test (developer machine mac) we must throw error\n      return process.platform === \"linux\"\n    }\n  }\n\n  protected doInstall(options: InstallOptions): boolean {\n    const appImageFile = process.env[\"APPIMAGE\"]!\n    if (appImageFile == null) {\n      throw newError(\"APPIMAGE env is not defined\", \"ERR_UPDATER_OLD_FILE_NOT_FOUND\")\n    }\n\n    // https://stackoverflow.com/a/1712051/1910191\n    unlinkSync(appImageFile)\n\n    let destination: string\n    const existingBaseName = path.basename(appImageFile)\n    const installerPath = this.installerPath\n    if (installerPath == null) {\n      this.dispatchError(new Error(\"No valid update available, can't quit and install\"))\n      return false\n    }\n    // https://github.com/electron-userland/electron-builder/issues/2964\n    // if no version in existing file name, it means that user wants to preserve current custom name\n    if (path.basename(installerPath) === existingBaseName || !/\\d+\\.\\d+\\.\\d+/.test(existingBaseName)) {\n      // no version in the file name, overwrite existing\n      destination = appImageFile\n    } else {\n      destination = path.join(path.dirname(appImageFile), path.basename(installerPath))\n    }\n\n    execFileSync(\"mv\", [\"-f\", installerPath, destination])\n    if (destination !== appImageFile) {\n      this.emit(\"appimage-filename-updated\", destination)\n    }\n\n    const env: NodeJS.ProcessEnv = {\n      ...process.env,\n      APPIMAGE_SILENT_INSTALL: \"true\",\n    }\n\n    if (options.isForceRunAfter) {\n      // eslint-disable-next-line @typescript-eslint/no-floating-promises\n      this.spawnLog(destination, [], env)\n    } else {\n      env.APPIMAGE_EXIT_AFTER_INSTALL = \"true\"\n      execFileSync(destination, [], { env })\n    }\n    return true\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.NoOpLogger = exports.AppUpdater = void 0;
const builder_util_runtime_1 = require("builder-util-runtime");
const crypto_1 = require("crypto");
const os_1 = require("os");
const events_1 = require("events");
const fs_extra_1 = require("fs-extra");
const js_yaml_1 = require("js-yaml");
const lazy_val_1 = require("lazy-val");
const path = require("path");
const semver_1 = require("semver");
const DownloadedUpdateHelper_1 = require("./DownloadedUpdateHelper");
const ElectronAppAdapter_1 = require("./ElectronAppAdapter");
const electronHttpExecutor_1 = require("./electronHttpExecutor");
const GenericProvider_1 = require("./providers/GenericProvider");
const providerFactory_1 = require("./providerFactory");
const zlib_1 = require("zlib");
const util_1 = require("./util");
const GenericDifferentialDownloader_1 = require("./differentialDownloader/GenericDifferentialDownloader");
const types_1 = require("./types");
class AppUpdater extends events_1.EventEmitter {
    /**
     * Get the update channel. Doesn't return `channel` from the update configuration, only if was previously set.
     */
    get channel() {
        return this._channel;
    }
    /**
     * Set the update channel. Overrides `channel` in the update configuration.
     *
     * `allowDowngrade` will be automatically set to `true`. If this behavior is not suitable for you, simple set `allowDowngrade` explicitly after.
     */
    set channel(value) {
        if (this._channel != null) {
            // noinspection SuspiciousTypeOfGuard
            if (typeof value !== "string") {
                throw (0, builder_util_runtime_1.newError)(`Channel must be a string, but got: ${value}`, "ERR_UPDATER_INVALID_CHANNEL");
            }
            else if (value.length === 0) {
                throw (0, builder_util_runtime_1.newError)(`Channel must be not an empty string`, "ERR_UPDATER_INVALID_CHANNEL");
            }
        }
        this._channel = value;
        this.allowDowngrade = true;
    }
    /**
     *  Shortcut for explicitly adding auth tokens to request headers
     */
    addAuthHeader(token) {
        this.requestHeaders = Object.assign({}, this.requestHeaders, {
            authorization: token,
        });
    }
    // noinspection JSMethodCanBeStatic,JSUnusedGlobalSymbols
    get netSession() {
        return (0, electronHttpExecutor_1.getNetSession)();
    }
    /**
     * The logger. You can pass [electron-log](https://github.com/megahertz/electron-log), [winston](https://github.com/winstonjs/winston) or another logger with the following interface: `{ info(), warn(), error() }`.
     * Set it to `null` if you would like to disable a logging feature.
     */
    get logger() {
        return this._logger;
    }
    set logger(value) {
        this._logger = value == null ? new NoOpLogger() : value;
    }
    // noinspection JSUnusedGlobalSymbols
    /**
     * test only
     * @private
     */
    set updateConfigPath(value) {
        this.clientPromise = null;
        this._appUpdateConfigPath = value;
        this.configOnDisk = new lazy_val_1.Lazy(() => this.loadUpdateConfig());
    }
    /**
     * Allows developer to override default logic for determining if an update is supported.
     * The default logic compares the `UpdateInfo` minimum system version against the `os.release()` with `semver` package
     */
    get isUpdateSupported() {
        return this._isUpdateSupported;
    }
    set isUpdateSupported(value) {
        if (value) {
            this._isUpdateSupported = value;
        }
    }
    constructor(options, app) {
        super();
        /**
         * Whether to automatically download an update when it is found.
         * @default true
         */
        this.autoDownload = true;
        /**
         * Whether to automatically install a downloaded update on app quit (if `quitAndInstall` was not called before).
         * @default true
         */
        this.autoInstallOnAppQuit = true;
        /**
         * Whether to run the app after finish install when run the installer is NOT in silent mode.
         * @default true
         */
        this.autoRunAppAfterInstall = true;
        /**
         * *GitHub provider only.* Whether to allow update to pre-release versions. Defaults to `true` if application version contains prerelease components (e.g. `0.12.1-alpha.1`, here `alpha` is a prerelease component), otherwise `false`.
         *
         * If `true`, downgrade will be allowed (`allowDowngrade` will be set to `true`).
         */
        this.allowPrerelease = false;
        /**
         * *GitHub provider only.* Get all release notes (from current version to latest), not just the latest.
         * @default false
         */
        this.fullChangelog = false;
        /**
         * Whether to allow version downgrade (when a user from the beta channel wants to go back to the stable channel).
         *
         * Taken in account only if channel differs (pre-release version component in terms of semantic versioning).
         *
         * @default false
         */
        this.allowDowngrade = false;
        /**
         * Web installer files might not have signature verification, this switch prevents to load them unless it is needed.
         *
         * Currently false to prevent breaking the current API, but it should be changed to default true at some point that
         * breaking changes are allowed.
         *
         * @default false
         */
        this.disableWebInstaller = false;
        /**
         * *NSIS only* Disable differential downloads and always perform full download of installer.
         *
         * @default false
         */
        this.disableDifferentialDownload = false;
        /**
         * Allows developer to force the updater to work in "dev" mode, looking for "dev-app-update.yml" instead of "app-update.yml"
         * Dev: `path.join(this.app.getAppPath(), "dev-app-update.yml")`
         * Prod: `path.join(process.resourcesPath!, "app-update.yml")`
         *
         * @default false
         */
        this.forceDevUpdateConfig = false;
        this._channel = null;
        this.downloadedUpdateHelper = null;
        /**
         *  The request headers.
         */
        this.requestHeaders = null;
        this._logger = console;
        // noinspection JSUnusedGlobalSymbols
        /**
         * For type safety you can use signals, e.g. `autoUpdater.signals.updateDownloaded(() => {})` instead of `autoUpdater.on('update-available', () => {})`
         */
        this.signals = new types_1.UpdaterSignal(this);
        this._appUpdateConfigPath = null;
        this._isUpdateSupported = (updateInfo) => this.checkIfUpdateSupported(updateInfo);
        this.clientPromise = null;
        this.stagingUserIdPromise = new lazy_val_1.Lazy(() => this.getOrCreateStagingUserId());
        // public, allow to read old config for anyone
        /** @internal */
        this.configOnDisk = new lazy_val_1.Lazy(() => this.loadUpdateConfig());
        this.checkForUpdatesPromise = null;
        this.downloadPromise = null;
        this.updateInfoAndProvider = null;
        /**
         * @private
         * @internal
         */
        this._testOnlyOptions = null;
        this.on("error", (error) => {
            this._logger.error(`Error: ${error.stack || error.message}`);
        });
        if (app == null) {
            this.app = new ElectronAppAdapter_1.ElectronAppAdapter();
            this.httpExecutor = new electronHttpExecutor_1.ElectronHttpExecutor((authInfo, callback) => this.emit("login", authInfo, callback));
        }
        else {
            this.app = app;
            this.httpExecutor = null;
        }
        const currentVersionString = this.app.version;
        const currentVersion = (0, semver_1.parse)(currentVersionString);
        if (currentVersion == null) {
            throw (0, builder_util_runtime_1.newError)(`App version is not a valid semver version: "${currentVersionString}"`, "ERR_UPDATER_INVALID_VERSION");
        }
        this.currentVersion = currentVersion;
        this.allowPrerelease = hasPrereleaseComponents(currentVersion);
        if (options != null) {
            this.setFeedURL(options);
            if (typeof options !== "string" && options.requestHeaders) {
                this.requestHeaders = options.requestHeaders;
            }
        }
    }
    //noinspection JSMethodCanBeStatic,JSUnusedGlobalSymbols
    getFeedURL() {
        return "Deprecated. Do not use it.";
    }
    /**
     * Configure update provider. If value is `string`, [GenericServerOptions](./publish.md#genericserveroptions) will be set with value as `url`.
     * @param options If you want to override configuration in the `app-update.yml`.
     */
    setFeedURL(options) {
        const runtimeOptions = this.createProviderRuntimeOptions();
        // https://github.com/electron-userland/electron-builder/issues/1105
        let provider;
        if (typeof options === "string") {
            provider = new GenericProvider_1.GenericProvider({ provider: "generic", url: options }, this, {
                ...runtimeOptions,
                isUseMultipleRangeRequest: (0, providerFactory_1.isUrlProbablySupportMultiRangeRequests)(options),
            });
        }
        else {
            provider = (0, providerFactory_1.createClient)(options, this, runtimeOptions);
        }
        this.clientPromise = Promise.resolve(provider);
    }
    /**
     * Asks the server whether there is an update.
     * @returns null if the updater is disabled, otherwise info about the latest version
     */
    checkForUpdates() {
        if (!this.isUpdaterActive()) {
            return Promise.resolve(null);
        }
        let checkForUpdatesPromise = this.checkForUpdatesPromise;
        if (checkForUpdatesPromise != null) {
            this._logger.info("Checking for update (already in progress)");
            return checkForUpdatesPromise;
        }
        const nullizePromise = () => (this.checkForUpdatesPromise = null);
        this._logger.info("Checking for update");
        checkForUpdatesPromise = this.doCheckForUpdates()
            .then(it => {
            nullizePromise();
            return it;
        })
            .catch((e) => {
            nullizePromise();
            this.emit("error", e, `Cannot check for updates: ${(e.stack || e).toString()}`);
            throw e;
        });
        this.checkForUpdatesPromise = checkForUpdatesPromise;
        return checkForUpdatesPromise;
    }
    isUpdaterActive() {
        const isEnabled = this.app.isPackaged || this.forceDevUpdateConfig;
        if (!isEnabled) {
            this._logger.info("Skip checkForUpdates because application is not packed and dev update config is not forced");
            return false;
        }
        return true;
    }
    // noinspection JSUnusedGlobalSymbols
    checkForUpdatesAndNotify(downloadNotification) {
        return this.checkForUpdates().then(it => {
            if (!(it === null || it === void 0 ? void 0 : it.downloadPromise)) {
                if (this._logger.debug != null) {
                    this._logger.debug("checkForUpdatesAndNotify called, downloadPromise is null");
                }
                return it;
            }
            void it.downloadPromise.then(() => {
                const notificationContent = AppUpdater.formatDownloadNotification(it.updateInfo.version, this.app.name, downloadNotification);
                new (require("electron").Notification)(notificationContent).show();
            });
            return it;
        });
    }
    static formatDownloadNotification(version, appName, downloadNotification) {
        if (downloadNotification == null) {
            downloadNotification = {
                title: "A new update is ready to install",
                body: `{appName} version {version} has been downloaded and will be automatically installed on exit`,
            };
        }
        downloadNotification = {
            title: downloadNotification.title.replace("{appName}", appName).replace("{version}", version),
            body: downloadNotification.body.replace("{appName}", appName).replace("{version}", version),
        };
        return downloadNotification;
    }
    async isStagingMatch(updateInfo) {
        const rawStagingPercentage = updateInfo.stagingPercentage;
        let stagingPercentage = rawStagingPercentage;
        if (stagingPercentage == null) {
            return true;
        }
        stagingPercentage = parseInt(stagingPercentage, 10);
        if (isNaN(stagingPercentage)) {
            this._logger.warn(`Staging percentage is NaN: ${rawStagingPercentage}`);
            return true;
        }
        // convert from user 0-100 to internal 0-1
        stagingPercentage = stagingPercentage / 100;
        const stagingUserId = await this.stagingUserIdPromise.value;
        const val = builder_util_runtime_1.UUID.parse(stagingUserId).readUInt32BE(12);
        const percentage = val / 0xffffffff;
        this._logger.info(`Staging percentage: ${stagingPercentage}, percentage: ${percentage}, user id: ${stagingUserId}`);
        return percentage < stagingPercentage;
    }
    computeFinalHeaders(headers) {
        if (this.requestHeaders != null) {
            Object.assign(headers, this.requestHeaders);
        }
        return headers;
    }
    async isUpdateAvailable(updateInfo) {
        const latestVersion = (0, semver_1.parse)(updateInfo.version);
        if (latestVersion == null) {
            throw (0, builder_util_runtime_1.newError)(`This file could not be downloaded, or the latest version (from update server) does not have a valid semver version: "${updateInfo.version}"`, "ERR_UPDATER_INVALID_VERSION");
        }
        const currentVersion = this.currentVersion;
        if ((0, semver_1.eq)(latestVersion, currentVersion)) {
            return false;
        }
        if (!(await Promise.resolve(this.isUpdateSupported(updateInfo)))) {
            return false;
        }
        const isStagingMatch = await this.isStagingMatch(updateInfo);
        if (!isStagingMatch) {
            return false;
        }
        // https://github.com/electron-userland/electron-builder/pull/3111#issuecomment-405033227
        // https://github.com/electron-userland/electron-builder/pull/3111#issuecomment-405030797
        const isLatestVersionNewer = (0, semver_1.gt)(latestVersion, currentVersion);
        const isLatestVersionOlder = (0, semver_1.lt)(latestVersion, currentVersion);
        if (isLatestVersionNewer) {
            return true;
        }
        return this.allowDowngrade && isLatestVersionOlder;
    }
    checkIfUpdateSupported(updateInfo) {
        const minimumSystemVersion = updateInfo === null || updateInfo === void 0 ? void 0 : updateInfo.minimumSystemVersion;
        const currentOSVersion = (0, os_1.release)();
        if (minimumSystemVersion) {
            try {
                if ((0, semver_1.lt)(currentOSVersion, minimumSystemVersion)) {
                    this._logger.info(`Current OS version ${currentOSVersion} is less than the minimum OS version required ${minimumSystemVersion} for version ${currentOSVersion}`);
                    return false;
                }
            }
            catch (e) {
                this._logger.warn(`Failed to compare current OS version(${currentOSVersion}) with minimum OS version(${minimumSystemVersion}): ${(e.message || e).toString()}`);
            }
        }
        return true;
    }
    async getUpdateInfoAndProvider() {
        await this.app.whenReady();
        if (this.clientPromise == null) {
            this.clientPromise = this.configOnDisk.value.then(it => (0, providerFactory_1.createClient)(it, this, this.createProviderRuntimeOptions()));
        }
        const client = await this.clientPromise;
        const stagingUserId = await this.stagingUserIdPromise.value;
        client.setRequestHeaders(this.computeFinalHeaders({ "x-user-staging-id": stagingUserId }));
        return {
            info: await client.getLatestVersion(),
            provider: client,
        };
    }
    createProviderRuntimeOptions() {
        return {
            isUseMultipleRangeRequest: true,
            platform: this._testOnlyOptions == null ? process.platform : this._testOnlyOptions.platform,
            executor: this.httpExecutor,
        };
    }
    async doCheckForUpdates() {
        this.emit("checking-for-update");
        const result = await this.getUpdateInfoAndProvider();
        const updateInfo = result.info;
        if (!(await this.isUpdateAvailable(updateInfo))) {
            this._logger.info(`Update for version ${this.currentVersion.format()} is not available (latest version: ${updateInfo.version}, downgrade is ${this.allowDowngrade ? "allowed" : "disallowed"}).`);
            this.emit("update-not-available", updateInfo);
            return {
                isUpdateAvailable: false,
                versionInfo: updateInfo,
                updateInfo,
            };
        }
        this.updateInfoAndProvider = result;
        this.onUpdateAvailable(updateInfo);
        const cancellationToken = new builder_util_runtime_1.CancellationToken();
        //noinspection ES6MissingAwait
        return {
            isUpdateAvailable: true,
            versionInfo: updateInfo,
            updateInfo,
            cancellationToken,
            downloadPromise: this.autoDownload ? this.downloadUpdate(cancellationToken) : null,
        };
    }
    onUpdateAvailable(updateInfo) {
        this._logger.info(`Found version ${updateInfo.version} (url: ${(0, builder_util_runtime_1.asArray)(updateInfo.files)
            .map(it => it.url)
            .join(", ")})`);
        this.emit("update-available", updateInfo);
    }
    /**
     * Start downloading update manually. You can use this method if `autoDownload` option is set to `false`.
     * @returns {Promise<Array<string>>} Paths to downloaded files.
     */
    downloadUpdate(cancellationToken = new builder_util_runtime_1.CancellationToken()) {
        const updateInfoAndProvider = this.updateInfoAndProvider;
        if (updateInfoAndProvider == null) {
            const error = new Error("Please check update first");
            this.dispatchError(error);
            return Promise.reject(error);
        }
        if (this.downloadPromise != null) {
            this._logger.info("Downloading update (already in progress)");
            return this.downloadPromise;
        }
        this._logger.info(`Downloading update from ${(0, builder_util_runtime_1.asArray)(updateInfoAndProvider.info.files)
            .map(it => it.url)
            .join(", ")}`);
        const errorHandler = (e) => {
            // https://github.com/electron-userland/electron-builder/issues/1150#issuecomment-436891159
            if (!(e instanceof builder_util_runtime_1.CancellationError)) {
                try {
                    this.dispatchError(e);
                }
                catch (nestedError) {
                    this._logger.warn(`Cannot dispatch error event: ${nestedError.stack || nestedError}`);
                }
            }
            return e;
        };
        this.downloadPromise = this.doDownloadUpdate({
            updateInfoAndProvider,
            requestHeaders: this.computeRequestHeaders(updateInfoAndProvider.provider),
            cancellationToken,
            disableWebInstaller: this.disableWebInstaller,
            disableDifferentialDownload: this.disableDifferentialDownload,
        })
            .catch((e) => {
            throw errorHandler(e);
        })
            .finally(() => {
            this.downloadPromise = null;
        });
        return this.downloadPromise;
    }
    dispatchError(e) {
        this.emit("error", e, (e.stack || e).toString());
    }
    dispatchUpdateDownloaded(event) {
        this.emit(types_1.UPDATE_DOWNLOADED, event);
    }
    async loadUpdateConfig() {
        if (this._appUpdateConfigPath == null) {
            this._appUpdateConfigPath = this.app.appUpdateConfigPath;
        }
        return (0, js_yaml_1.load)(await (0, fs_extra_1.readFile)(this._appUpdateConfigPath, "utf-8"));
    }
    computeRequestHeaders(provider) {
        const fileExtraDownloadHeaders = provider.fileExtraDownloadHeaders;
        if (fileExtraDownloadHeaders != null) {
            const requestHeaders = this.requestHeaders;
            return requestHeaders == null
                ? fileExtraDownloadHeaders
                : {
                    ...fileExtraDownloadHeaders,
                    ...requestHeaders,
                };
        }
        return this.computeFinalHeaders({ accept: "*/*" });
    }
    async getOrCreateStagingUserId() {
        const file = path.join(this.app.userDataPath, ".updaterId");
        try {
            const id = await (0, fs_extra_1.readFile)(file, "utf-8");
            if (builder_util_runtime_1.UUID.check(id)) {
                return id;
            }
            else {
                this._logger.warn(`Staging user id file exists, but content was invalid: ${id}`);
            }
        }
        catch (e) {
            if (e.code !== "ENOENT") {
                this._logger.warn(`Couldn't read staging user ID, creating a blank one: ${e}`);
            }
        }
        const id = builder_util_runtime_1.UUID.v5((0, crypto_1.randomBytes)(4096), builder_util_runtime_1.UUID.OID);
        this._logger.info(`Generated new staging user ID: ${id}`);
        try {
            await (0, fs_extra_1.outputFile)(file, id);
        }
        catch (e) {
            this._logger.warn(`Couldn't write out staging user ID: ${e}`);
        }
        return id;
    }
    /** @internal */
    get isAddNoCacheQuery() {
        const headers = this.requestHeaders;
        // https://github.com/electron-userland/electron-builder/issues/3021
        if (headers == null) {
            return true;
        }
        for (const headerName of Object.keys(headers)) {
            const s = headerName.toLowerCase();
            if (s === "authorization" || s === "private-token") {
                return false;
            }
        }
        return true;
    }
    async getOrCreateDownloadHelper() {
        let result = this.downloadedUpdateHelper;
        if (result == null) {
            const dirName = (await this.configOnDisk.value).updaterCacheDirName;
            const logger = this._logger;
            if (dirName == null) {
                logger.error("updaterCacheDirName is not specified in app-update.yml Was app build using at least electron-builder 20.34.0?");
            }
            const cacheDir = path.join(this.app.baseCachePath, dirName || this.app.name);
            if (logger.debug != null) {
                logger.debug(`updater cache dir: ${cacheDir}`);
            }
            result = new DownloadedUpdateHelper_1.DownloadedUpdateHelper(cacheDir);
            this.downloadedUpdateHelper = result;
        }
        return result;
    }
    async executeDownload(taskOptions) {
        const fileInfo = taskOptions.fileInfo;
        const downloadOptions = {
            headers: taskOptions.downloadUpdateOptions.requestHeaders,
            cancellationToken: taskOptions.downloadUpdateOptions.cancellationToken,
            sha2: fileInfo.info.sha2,
            sha512: fileInfo.info.sha512,
        };
        if (this.listenerCount(types_1.DOWNLOAD_PROGRESS) > 0) {
            downloadOptions.onProgress = it => this.emit(types_1.DOWNLOAD_PROGRESS, it);
        }
        const updateInfo = taskOptions.downloadUpdateOptions.updateInfoAndProvider.info;
        const version = updateInfo.version;
        const packageInfo = fileInfo.packageInfo;
        function getCacheUpdateFileName() {
            // NodeJS URL doesn't decode automatically
            const urlPath = decodeURIComponent(taskOptions.fileInfo.url.pathname);
            if (urlPath.endsWith(`.${taskOptions.fileExtension}`)) {
                return path.basename(urlPath);
            }
            else {
                // url like /latest, generate name
                return taskOptions.fileInfo.info.url;
            }
        }
        const downloadedUpdateHelper = await this.getOrCreateDownloadHelper();
        const cacheDir = downloadedUpdateHelper.cacheDirForPendingUpdate;
        await (0, fs_extra_1.mkdir)(cacheDir, { recursive: true });
        const updateFileName = getCacheUpdateFileName();
        let updateFile = path.join(cacheDir, updateFileName);
        const packageFile = packageInfo == null ? null : path.join(cacheDir, `package-${version}${path.extname(packageInfo.path) || ".7z"}`);
        const done = async (isSaveCache) => {
            await downloadedUpdateHelper.setDownloadedFile(updateFile, packageFile, updateInfo, fileInfo, updateFileName, isSaveCache);
            await taskOptions.done({
                ...updateInfo,
                downloadedFile: updateFile,
            });
            return packageFile == null ? [updateFile] : [updateFile, packageFile];
        };
        const log = this._logger;
        const cachedUpdateFile = await downloadedUpdateHelper.validateDownloadedPath(updateFile, updateInfo, fileInfo, log);
        if (cachedUpdateFile != null) {
            updateFile = cachedUpdateFile;
            return await done(false);
        }
        const removeFileIfAny = async () => {
            await downloadedUpdateHelper.clear().catch(() => {
                // ignore
            });
            return await (0, fs_extra_1.unlink)(updateFile).catch(() => {
                // ignore
            });
        };
        const tempUpdateFile = await (0, DownloadedUpdateHelper_1.createTempUpdateFile)(`temp-${updateFileName}`, cacheDir, log);
        try {
            await taskOptions.task(tempUpdateFile, downloadOptions, packageFile, removeFileIfAny);
            await (0, builder_util_runtime_1.retry)(() => (0, fs_extra_1.rename)(tempUpdateFile, updateFile), 60, 500, 0, 0, error => error instanceof Error && /^EBUSY:/.test(error.message));
        }
        catch (e) {
            await removeFileIfAny();
            if (e instanceof builder_util_runtime_1.CancellationError) {
                log.info("cancelled");
                this.emit("update-cancelled", updateInfo);
            }
            throw e;
        }
        log.info(`New version ${version} has been downloaded to ${updateFile}`);
        return await done(true);
    }
    async differentialDownloadInstaller(fileInfo, downloadUpdateOptions, installerPath, provider, oldInstallerFileName) {
        try {
            if (this._testOnlyOptions != null && !this._testOnlyOptions.isUseDifferentialDownload) {
                return true;
            }
            const blockmapFileUrls = (0, util_1.blockmapFiles)(fileInfo.url, this.app.version, downloadUpdateOptions.updateInfoAndProvider.info.version);
            this._logger.info(`Download block maps (old: "${blockmapFileUrls[0]}", new: ${blockmapFileUrls[1]})`);
            const downloadBlockMap = async (url) => {
                const data = await this.httpExecutor.downloadToBuffer(url, {
                    headers: downloadUpdateOptions.requestHeaders,
                    cancellationToken: downloadUpdateOptions.cancellationToken,
                });
                if (data == null || data.length === 0) {
                    throw new Error(`Blockmap "${url.href}" is empty`);
                }
                try {
                    return JSON.parse((0, zlib_1.gunzipSync)(data).toString());
                }
                catch (e) {
                    throw new Error(`Cannot parse blockmap "${url.href}", error: ${e}`);
                }
            };
            const downloadOptions = {
                newUrl: fileInfo.url,
                oldFile: path.join(this.downloadedUpdateHelper.cacheDir, oldInstallerFileName),
                logger: this._logger,
                newFile: installerPath,
                isUseMultipleRangeRequest: provider.isUseMultipleRangeRequest,
                requestHeaders: downloadUpdateOptions.requestHeaders,
                cancellationToken: downloadUpdateOptions.cancellationToken,
            };
            if (this.listenerCount(types_1.DOWNLOAD_PROGRESS) > 0) {
                downloadOptions.onProgress = it => this.emit(types_1.DOWNLOAD_PROGRESS, it);
            }
            const blockMapDataList = await Promise.all(blockmapFileUrls.map(u => downloadBlockMap(u)));
            await new GenericDifferentialDownloader_1.GenericDifferentialDownloader(fileInfo.info, this.httpExecutor, downloadOptions).download(blockMapDataList[0], blockMapDataList[1]);
            return false;
        }
        catch (e) {
            this._logger.error(`Cannot download differentially, fallback to full download: ${e.stack || e}`);
            if (this._testOnlyOptions != null) {
                // test mode
                throw e;
            }
            return true;
        }
    }
}
exports.AppUpdater = AppUpdater;
function hasPrereleaseComponents(version) {
    const versionPrereleaseComponent = (0, semver_1.prerelease)(version);
    return versionPrereleaseComponent != null && versionPrereleaseComponent.length > 0;
}
/** @private */
class NoOpLogger {
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    info(message) {
        // ignore
    }
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    warn(message) {
        // ignore
    }
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    error(message) {
        // ignore
    }
}
exports.NoOpLogger = NoOpLogger;
{"version":3,"file":"AppUpdater.js","sourceRoot":"","sources":["../src/AppUpdater.ts"],"names":[],"mappings":";;;AAAA,+DAa6B;AAC7B,mCAAoC;AACpC,2BAA4B;AAC5B,mCAAqC;AACrC,uCAAsE;AAEtE,qCAA8B;AAC9B,uCAA+B;AAC/B,6BAA4B;AAC5B,mCAA8K;AAE9K,qEAAuF;AACvF,6DAAyD;AACzD,iEAA2F;AAC3F,iEAA6D;AAC7D,uDAAwF;AAKxF,+BAAiC;AACjC,iCAAsC;AAEtC,0GAAsG;AACtG,mCAAuJ;AAevJ,MAAsB,UAAW,SAAS,qBAAyD;IA4EjG;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED;;;;OAIG;IACH,IAAI,OAAO,CAAC,KAAoB;QAC9B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;YAC1B,qCAAqC;YACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAA,+BAAQ,EAAC,sCAAsC,KAAK,EAAE,EAAE,6BAA6B,CAAC,CAAA;YAC9F,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAA,+BAAQ,EAAC,qCAAqC,EAAE,6BAA6B,CAAC,CAAA;YACtF,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;QACrB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;IAC5B,CAAC;IAOD;;OAEG;IACH,aAAa,CAAC,KAAa;QACzB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE;YAC3D,aAAa,EAAE,KAAK;SACrB,CAAC,CAAA;IACJ,CAAC;IAID,yDAAyD;IACzD,IAAI,UAAU;QACZ,OAAO,IAAA,oCAAa,GAAE,CAAA;IACxB,CAAC;IAED;;;OAGG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,IAAI,MAAM,CAAC,KAAoB;QAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;IACzD,CAAC;IAUD,qCAAqC;IACrC;;;OAGG;IACH,IAAI,gBAAgB,CAAC,KAAoB;QACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QACzB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAA;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,eAAI,CAAM,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAA;IAClE,CAAC;IAID;;;OAGG;IACH,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAA;IAChC,CAAC;IAED,IAAI,iBAAiB,CAAC,KAA0B;QAC9C,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAA;QACjC,CAAC;IACH,CAAC;IAoBD,YAAsB,OAA6C,EAAE,GAAgB;QACnF,KAAK,EAAE,CAAA;QA5LT;;;WAGG;QACH,iBAAY,GAAG,IAAI,CAAA;QAEnB;;;WAGG;QACH,yBAAoB,GAAG,IAAI,CAAA;QAE3B;;;WAGG;QACH,2BAAsB,GAAG,IAAI,CAAA;QAE7B;;;;WAIG;QACH,oBAAe,GAAG,KAAK,CAAA;QAEvB;;;WAGG;QACH,kBAAa,GAAG,KAAK,CAAA;QAErB;;;;;;WAMG;QACH,mBAAc,GAAG,KAAK,CAAA;QAEtB;;;;;;;WAOG;QACH,wBAAmB,GAAG,KAAK,CAAA;QAE3B;;;;WAIG;QACH,gCAA2B,GAAG,KAAK,CAAA;QAEnC;;;;;;WAMG;QACH,yBAAoB,GAAG,KAAK,CAAA;QAOpB,aAAQ,GAAkB,IAAI,CAAA;QAE5B,2BAAsB,GAAkC,IAAI,CAAA;QA4BtE;;WAEG;QACH,mBAAc,GAA+B,IAAI,CAAA;QAWvC,YAAO,GAAW,OAAO,CAAA;QAmBnC,qCAAqC;QACrC;;WAEG;QACM,YAAO,GAAG,IAAI,qBAAa,CAAC,IAAI,CAAC,CAAA;QAElC,yBAAoB,GAAkB,IAAI,CAAA;QAaxC,uBAAkB,GAAwB,CAAC,UAAsB,EAA8B,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAA;QAgB3I,kBAAa,GAAkC,IAAI,CAAA;QAExC,yBAAoB,GAAG,IAAI,eAAI,CAAS,GAAG,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAA;QAEjG,8CAA8C;QAC9C,gBAAgB;QAChB,iBAAY,GAAG,IAAI,eAAI,CAAM,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAA;QAEnD,2BAAsB,GAAsC,IAAI,CAAA;QAChE,oBAAe,GAAkC,IAAI,CAAA;QAInD,0BAAqB,GAAiC,IAAI,CAAA;QAoapE;;;WAGG;QACH,qBAAgB,GAAkC,IAAI,CAAA;QAhapD,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;QAEF,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,GAAG,IAAI,uCAAkB,EAAE,CAAA;YACnC,IAAI,CAAC,YAAY,GAAG,IAAI,2CAAoB,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC9G,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;YACd,IAAI,CAAC,YAAY,GAAG,IAAW,CAAA;QACjC,CAAC;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;QAC7C,MAAM,cAAc,GAAG,IAAA,cAAY,EAAC,oBAAoB,CAAC,CAAA;QACzD,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;YAC3B,MAAM,IAAA,+BAAQ,EAAC,+CAA+C,oBAAoB,GAAG,EAAE,6BAA6B,CAAC,CAAA;QACvH,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,eAAe,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAA;QAE9D,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;YAExB,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC1D,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,UAAU;QACR,OAAO,4BAA4B,CAAA;IACrC,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,OAA0D;QACnE,MAAM,cAAc,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAA;QAC1D,oEAAoE;QACpE,IAAI,QAAuB,CAAA;QAC3B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,QAAQ,GAAG,IAAI,iCAAe,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE;gBAC1E,GAAG,cAAc;gBACjB,yBAAyB,EAAE,IAAA,wDAAsC,EAAC,OAAO,CAAC;aAC3E,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,IAAA,8BAAY,EAAC,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;QACxD,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAChD,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;QAED,IAAI,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAA;QACxD,IAAI,sBAAsB,IAAI,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;YAC9D,OAAO,sBAAsB,CAAA;QAC/B,CAAC;QAED,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAA;QAEjE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QACxC,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,EAAE;aAC9C,IAAI,CAAC,EAAE,CAAC,EAAE;YACT,cAAc,EAAE,CAAA;YAChB,OAAO,EAAE,CAAA;QACX,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE;YAChB,cAAc,EAAE,CAAA;YAChB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,6BAA6B,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAC/E,MAAM,CAAC,CAAA;QACT,CAAC,CAAC,CAAA;QAEJ,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAA;QACpD,OAAO,sBAAsB,CAAA;IAC/B,CAAC;IAEM,eAAe;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,oBAAoB,CAAA;QAClE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAA;YAC/G,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,qCAAqC;IACrC,wBAAwB,CAAC,oBAA2C;QAClE,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YACtC,IAAI,CAAC,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,eAAe,CAAA,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAA;gBAChF,CAAC;gBACD,OAAO,EAAE,CAAA;YACX,CAAC;YAED,KAAK,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE;gBAChC,MAAM,mBAAmB,GAAG,UAAU,CAAC,0BAA0B,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAA;gBAC7H,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAA;YACpE,CAAC,CAAC,CAAA;YAEF,OAAO,EAAE,CAAA;QACX,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,MAAM,CAAC,0BAA0B,CAAC,OAAe,EAAE,OAAe,EAAE,oBAA2C;QACrH,IAAI,oBAAoB,IAAI,IAAI,EAAE,CAAC;YACjC,oBAAoB,GAAG;gBACrB,KAAK,EAAE,kCAAkC;gBACzC,IAAI,EAAE,6FAA6F;aACpG,CAAA;QACH,CAAC;QACD,oBAAoB,GAAG;YACrB,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC;YAC7F,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC;SAC5F,CAAA;QACD,OAAO,oBAAoB,CAAA;IAC7B,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,UAAsB;QACjD,MAAM,oBAAoB,GAAG,UAAU,CAAC,iBAAiB,CAAA;QACzD,IAAI,iBAAiB,GAAG,oBAAoB,CAAA;QAC5C,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,iBAAiB,GAAG,QAAQ,CAAC,iBAAwB,EAAE,EAAE,CAAC,CAAA;QAC1D,IAAI,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,oBAAoB,EAAE,CAAC,CAAA;YACvE,OAAO,IAAI,CAAA;QACb,CAAC;QAED,0CAA0C;QAC1C,iBAAiB,GAAG,iBAAiB,GAAG,GAAG,CAAA;QAE3C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAA;QAC3D,MAAM,GAAG,GAAG,2BAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QACtD,MAAM,UAAU,GAAG,GAAG,GAAG,UAAU,CAAA;QACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,iBAAiB,iBAAiB,UAAU,cAAc,aAAa,EAAE,CAAC,CAAA;QACnH,OAAO,UAAU,GAAG,iBAAiB,CAAA;IACvC,CAAC;IAEO,mBAAmB,CAAC,OAA4B;QACtD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC7C,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,UAAsB;QACpD,MAAM,aAAa,GAAG,IAAA,cAAY,EAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACtD,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;YAC1B,MAAM,IAAA,+BAAQ,EACZ,wHAAwH,UAAU,CAAC,OAAO,GAAG,EAC7I,6BAA6B,CAC9B,CAAA;QACH,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;QAC1C,IAAI,IAAA,WAAe,EAAC,aAAa,EAAE,cAAc,CAAC,EAAE,CAAC;YACnD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;QAC5D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,KAAK,CAAA;QACd,CAAC;QAED,yFAAyF;QACzF,yFAAyF;QACzF,MAAM,oBAAoB,GAAG,IAAA,WAAoB,EAAC,aAAa,EAAE,cAAc,CAAC,CAAA;QAChF,MAAM,oBAAoB,GAAG,IAAA,WAAiB,EAAC,aAAa,EAAE,cAAc,CAAC,CAAA;QAE7E,IAAI,oBAAoB,EAAE,CAAC;YACzB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,IAAI,oBAAoB,CAAA;IACpD,CAAC;IAEO,sBAAsB,CAAC,UAAsB;QACnD,MAAM,oBAAoB,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,oBAAoB,CAAA;QAC7D,MAAM,gBAAgB,GAAG,IAAA,YAAO,GAAE,CAAA;QAClC,IAAI,oBAAoB,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,IAAI,IAAA,WAAiB,EAAC,gBAAgB,EAAE,oBAAoB,CAAC,EAAE,CAAC;oBAC9D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,gBAAgB,iDAAiD,oBAAoB,gBAAgB,gBAAgB,EAAE,CAAC,CAAA;oBAChK,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wCAAwC,gBAAgB,6BAA6B,oBAAoB,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YACjK,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAES,KAAK,CAAC,wBAAwB;QACtC,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAA;QAE1B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAA,8BAAY,EAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAA;QACtH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAA;QACvC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAA;QAC3D,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;QAC1F,OAAO;YACL,IAAI,EAAE,MAAM,MAAM,CAAC,gBAAgB,EAAE;YACrC,QAAQ,EAAE,MAAM;SACjB,CAAA;IACH,CAAC;IAEO,4BAA4B;QAClC,OAAO;YACL,yBAAyB,EAAE,IAAI;YAC/B,QAAQ,EAAE,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAE,OAAO,CAAC,QAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ;YACjH,QAAQ,EAAE,IAAI,CAAC,YAAY;SAC5B,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QAEhC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAA;QACpD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAA;QAC9B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,sBAAsB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,sCAAsC,UAAU,CAAC,OAAO,kBACxG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YACpC,IAAI,CACL,CAAA;YACD,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAA;YAC7C,OAAO;gBACL,iBAAiB,EAAE,KAAK;gBACxB,WAAW,EAAE,UAAU;gBACvB,UAAU;aACX,CAAA;QACH,CAAC;QAED,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAA;QACnC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;QAElC,MAAM,iBAAiB,GAAG,IAAI,wCAAiB,EAAE,CAAA;QACjD,8BAA8B;QAC9B,OAAO;YACL,iBAAiB,EAAE,IAAI;YACvB,WAAW,EAAE,UAAU;YACvB,UAAU;YACV,iBAAiB;YACjB,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI;SACnF,CAAA;IACH,CAAC;IAES,iBAAiB,CAAC,UAAsB;QAChD,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,iBAAiB,UAAU,CAAC,OAAO,UAAU,IAAA,8BAAO,EAAC,UAAU,CAAC,KAAK,CAAC;aACnE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;aACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CACjB,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAA;IAC3C,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,oBAAuC,IAAI,wCAAiB,EAAE;QAC3E,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAA;QACxD,IAAI,qBAAqB,IAAI,IAAI,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;YACpD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;YACzB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC9B,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;YAC7D,OAAO,IAAI,CAAC,eAAe,CAAA;QAC7B,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,2BAA2B,IAAA,8BAAO,EAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;aACjE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;aACjB,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAA;QACD,MAAM,YAAY,GAAG,CAAC,CAAQ,EAAS,EAAE;YACvC,2FAA2F;YAC3F,IAAI,CAAC,CAAC,CAAC,YAAY,wCAAiB,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC;oBACH,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;gBACvB,CAAC;gBAAC,OAAO,WAAgB,EAAE,CAAC;oBAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gCAAgC,WAAW,CAAC,KAAK,IAAI,WAAW,EAAE,CAAC,CAAA;gBACvF,CAAC;YACH,CAAC;YAED,OAAO,CAAC,CAAA;QACV,CAAC,CAAA;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC3C,qBAAqB;YACrB,cAAc,EAAE,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,QAAQ,CAAC;YAC1E,iBAAiB;YACjB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,2BAA2B,EAAE,IAAI,CAAC,2BAA2B;SAC9D,CAAC;aACC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE;YAChB,MAAM,YAAY,CAAC,CAAC,CAAC,CAAA;QACvB,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAC7B,CAAC,CAAC,CAAA;QAEJ,OAAO,IAAI,CAAC,eAAe,CAAA;IAC7B,CAAC;IAES,aAAa,CAAC,CAAQ;QAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IAClD,CAAC;IAES,wBAAwB,CAAC,KAA4B;QAC7D,IAAI,CAAC,IAAI,CAAC,yBAAiB,EAAE,KAAK,CAAC,CAAA;IACrC,CAAC;IAiBO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAA;QAC1D,CAAC;QACD,OAAO,IAAA,cAAI,EAAC,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,CAAA;IACjE,CAAC;IAEO,qBAAqB,CAAC,QAAuB;QACnD,MAAM,wBAAwB,GAAG,QAAQ,CAAC,wBAAwB,CAAA;QAClE,IAAI,wBAAwB,IAAI,IAAI,EAAE,CAAC;YACrC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;YAC1C,OAAO,cAAc,IAAI,IAAI;gBAC3B,CAAC,CAAC,wBAAwB;gBAC1B,CAAC,CAAC;oBACE,GAAG,wBAAwB;oBAC3B,GAAG,cAAc;iBAClB,CAAA;QACP,CAAC;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;IACpD,CAAC;IAEO,KAAK,CAAC,wBAAwB;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;QAC3D,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YACxC,IAAI,2BAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBACnB,OAAO,EAAE,CAAA;YACX,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yDAAyD,EAAE,EAAE,CAAC,CAAA;YAClF,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,EAAE,CAAC,CAAA;YAChF,CAAC;QACH,CAAC;QAED,MAAM,EAAE,GAAG,2BAAI,CAAC,EAAE,CAAC,IAAA,oBAAW,EAAC,IAAI,CAAC,EAAE,2BAAI,CAAC,GAAG,CAAC,CAAA;QAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,CAAC,CAAA;QACzD,IAAI,CAAC;YACH,MAAM,IAAA,qBAAU,EAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAC5B,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,EAAE,CAAC,CAAA;QAC/D,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,gBAAgB;IAChB,IAAI,iBAAiB;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAA;QACnC,oEAAoE;QACpE,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,CAAA;YAClC,IAAI,CAAC,KAAK,eAAe,IAAI,CAAC,KAAK,eAAe,EAAE,CAAC;gBACnD,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAQO,KAAK,CAAC,yBAAyB;QACrC,IAAI,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAA;QACxC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAA;YACnE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;YAC3B,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,MAAM,CAAC,KAAK,CAAC,+GAA+G,CAAC,CAAA;YAC/H,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC5E,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;gBACzB,MAAM,CAAC,KAAK,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAA;YAChD,CAAC;YAED,MAAM,GAAG,IAAI,+CAAsB,CAAC,QAAQ,CAAC,CAAA;YAC7C,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAA;QACtC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,WAAiC;QAC/D,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;QACrC,MAAM,eAAe,GAAoB;YACvC,OAAO,EAAE,WAAW,CAAC,qBAAqB,CAAC,cAAc;YACzD,iBAAiB,EAAE,WAAW,CAAC,qBAAqB,CAAC,iBAAiB;YACtE,IAAI,EAAG,QAAQ,CAAC,IAAY,CAAC,IAAI;YACjC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;SAC7B,CAAA;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,yBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9C,eAAe,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAiB,EAAE,EAAE,CAAC,CAAA;QACrE,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,IAAI,CAAA;QAC/E,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;QAClC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAA;QAExC,SAAS,sBAAsB;YAC7B,0CAA0C;YAC1C,MAAM,OAAO,GAAG,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACrE,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC;gBACtD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YAC/B,CAAC;iBAAM,CAAC;gBACN,kCAAkC;gBAClC,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAA;YACtC,CAAC;QACH,CAAC;QAED,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAA;QACrE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,wBAAwB,CAAA;QAChE,MAAM,IAAA,gBAAK,EAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1C,MAAM,cAAc,GAAG,sBAAsB,EAAE,CAAA;QAC/C,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;QACpD,MAAM,WAAW,GAAG,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,CAAA;QAEpI,MAAM,IAAI,GAAG,KAAK,EAAE,WAAoB,EAAE,EAAE;YAC1C,MAAM,sBAAsB,CAAC,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,CAAC,CAAA;YAC1H,MAAM,WAAW,CAAC,IAAK,CAAC;gBACtB,GAAG,UAAU;gBACb,cAAc,EAAE,UAAU;aAC3B,CAAC,CAAA;YACF,OAAO,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;QACvE,CAAC,CAAA;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAA;QACxB,MAAM,gBAAgB,GAAG,MAAM,sBAAsB,CAAC,sBAAsB,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;QACnH,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;YAC7B,UAAU,GAAG,gBAAgB,CAAA;YAC7B,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;QAED,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;YACjC,MAAM,sBAAsB,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC9C,SAAS;YACX,CAAC,CAAC,CAAA;YACF,OAAO,MAAM,IAAA,iBAAM,EAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBACzC,SAAS;YACX,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,MAAM,cAAc,GAAG,MAAM,IAAA,6CAAoB,EAAC,QAAQ,cAAc,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;QAC1F,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,CAAC,CAAA;YACrF,MAAM,IAAA,4BAAK,EACT,GAAG,EAAE,CAAC,IAAA,iBAAM,EAAC,cAAc,EAAE,UAAU,CAAC,EACxC,EAAE,EACF,GAAG,EACH,CAAC,EACD,CAAC,EACD,KAAK,CAAC,EAAE,CAAC,KAAK,YAAY,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CACjE,CAAA;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,eAAe,EAAE,CAAA;YAEvB,IAAI,CAAC,YAAY,wCAAiB,EAAE,CAAC;gBACnC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBACrB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAA;YAC3C,CAAC;YACD,MAAM,CAAC,CAAA;QACT,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,eAAe,OAAO,2BAA2B,UAAU,EAAE,CAAC,CAAA;QACvE,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IACS,KAAK,CAAC,6BAA6B,CAC3C,QAAgC,EAChC,qBAA4C,EAC5C,aAAqB,EACrB,QAAuB,EACvB,oBAA4B;QAE5B,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,EAAE,CAAC;gBACtF,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,gBAAgB,GAAG,IAAA,oBAAa,EAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,qBAAqB,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAChI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,gBAAgB,CAAC,CAAC,CAAC,WAAW,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YAErG,MAAM,gBAAgB,GAAG,KAAK,EAAE,GAAQ,EAAqB,EAAE;gBAC7D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,EAAE;oBACzD,OAAO,EAAE,qBAAqB,CAAC,cAAc;oBAC7C,iBAAiB,EAAE,qBAAqB,CAAC,iBAAiB;iBAC3D,CAAC,CAAA;gBAEF,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,IAAI,YAAY,CAAC,CAAA;gBACpD,CAAC;gBAED,IAAI,CAAC;oBACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAU,EAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAChD,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,IAAI,aAAa,CAAC,EAAE,CAAC,CAAA;gBACrE,CAAC;YACH,CAAC,CAAA;YAED,MAAM,eAAe,GAAkC;gBACrD,MAAM,EAAE,QAAQ,CAAC,GAAG;gBACpB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAuB,CAAC,QAAQ,EAAE,oBAAoB,CAAC;gBAC/E,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,OAAO,EAAE,aAAa;gBACtB,yBAAyB,EAAE,QAAQ,CAAC,yBAAyB;gBAC7D,cAAc,EAAE,qBAAqB,CAAC,cAAc;gBACpD,iBAAiB,EAAE,qBAAqB,CAAC,iBAAiB;aAC3D,CAAA;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,yBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9C,eAAe,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAiB,EAAE,EAAE,CAAC,CAAA;YACrE,CAAC;YAED,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1F,MAAM,IAAI,6DAA6B,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7I,OAAO,KAAK,CAAA;QACd,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAA;YAChG,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE,CAAC;gBAClC,YAAY;gBACZ,MAAM,CAAC,CAAA;YACT,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;CACF;AAjwBD,gCAiwBC;AAUD,SAAS,uBAAuB,CAAC,OAAe;IAC9C,MAAM,0BAA0B,GAAG,IAAA,mBAA4B,EAAC,OAAO,CAAC,CAAA;IACxE,OAAO,0BAA0B,IAAI,IAAI,IAAI,0BAA0B,CAAC,MAAM,GAAG,CAAC,CAAA;AACpF,CAAC;AAED,eAAe;AACf,MAAa,UAAU;IACrB,6DAA6D;IAC7D,IAAI,CAAC,OAAa;QAChB,SAAS;IACX,CAAC;IAED,6DAA6D;IAC7D,IAAI,CAAC,OAAa;QAChB,SAAS;IACX,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,OAAa;QACjB,SAAS;IACX,CAAC;CACF;AAfD,gCAeC","sourcesContent":["import {\n  AllPublishOptions,\n  asArray,\n  CancellationToken,\n  newError,\n  PublishConfiguration,\n  UpdateInfo,\n  UUID,\n  DownloadOptions,\n  CancellationError,\n  ProgressInfo,\n  BlockMap,\n  retry,\n} from \"builder-util-runtime\"\nimport { randomBytes } from \"crypto\"\nimport { release } from \"os\"\nimport { EventEmitter } from \"events\"\nimport { mkdir, outputFile, readFile, rename, unlink } from \"fs-extra\"\nimport { OutgoingHttpHeaders } from \"http\"\nimport { load } from \"js-yaml\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { eq as isVersionsEqual, gt as isVersionGreaterThan, lt as isVersionLessThan, parse as parseVersion, prerelease as getVersionPreleaseComponents, SemVer } from \"semver\"\nimport { AppAdapter } from \"./AppAdapter\"\nimport { createTempUpdateFile, DownloadedUpdateHelper } from \"./DownloadedUpdateHelper\"\nimport { ElectronAppAdapter } from \"./ElectronAppAdapter\"\nimport { ElectronHttpExecutor, getNetSession, LoginCallback } from \"./electronHttpExecutor\"\nimport { GenericProvider } from \"./providers/GenericProvider\"\nimport { createClient, isUrlProbablySupportMultiRangeRequests } from \"./providerFactory\"\nimport { Provider, ProviderPlatform } from \"./providers/Provider\"\nimport type { TypedEmitter } from \"tiny-typed-emitter\"\nimport Session = Electron.Session\nimport type { AuthInfo } from \"electron\"\nimport { gunzipSync } from \"zlib\"\nimport { blockmapFiles } from \"./util\"\nimport { DifferentialDownloaderOptions } from \"./differentialDownloader/DifferentialDownloader\"\nimport { GenericDifferentialDownloader } from \"./differentialDownloader/GenericDifferentialDownloader\"\nimport { DOWNLOAD_PROGRESS, Logger, ResolvedUpdateFileInfo, UPDATE_DOWNLOADED, UpdateCheckResult, UpdateDownloadedEvent, UpdaterSignal } from \"./types\"\nimport { VerifyUpdateSupport } from \"./main\"\n\nexport type AppUpdaterEvents = {\n  error: (error: Error, message?: string) => void\n  login: (info: AuthInfo, callback: LoginCallback) => void\n  \"checking-for-update\": () => void\n  \"update-not-available\": (info: UpdateInfo) => void\n  \"update-available\": (info: UpdateInfo) => void\n  \"update-downloaded\": (event: UpdateDownloadedEvent) => void\n  \"download-progress\": (info: ProgressInfo) => void\n  \"update-cancelled\": (info: UpdateInfo) => void\n  \"appimage-filename-updated\": (path: string) => void\n}\n\nexport abstract class AppUpdater extends (EventEmitter as new () => TypedEmitter<AppUpdaterEvents>) {\n  /**\n   * Whether to automatically download an update when it is found.\n   * @default true\n   */\n  autoDownload = true\n\n  /**\n   * Whether to automatically install a downloaded update on app quit (if `quitAndInstall` was not called before).\n   * @default true\n   */\n  autoInstallOnAppQuit = true\n\n  /**\n   * Whether to run the app after finish install when run the installer is NOT in silent mode.\n   * @default true\n   */\n  autoRunAppAfterInstall = true\n\n  /**\n   * *GitHub provider only.* Whether to allow update to pre-release versions. Defaults to `true` if application version contains prerelease components (e.g. `0.12.1-alpha.1`, here `alpha` is a prerelease component), otherwise `false`.\n   *\n   * If `true`, downgrade will be allowed (`allowDowngrade` will be set to `true`).\n   */\n  allowPrerelease = false\n\n  /**\n   * *GitHub provider only.* Get all release notes (from current version to latest), not just the latest.\n   * @default false\n   */\n  fullChangelog = false\n\n  /**\n   * Whether to allow version downgrade (when a user from the beta channel wants to go back to the stable channel).\n   *\n   * Taken in account only if channel differs (pre-release version component in terms of semantic versioning).\n   *\n   * @default false\n   */\n  allowDowngrade = false\n\n  /**\n   * Web installer files might not have signature verification, this switch prevents to load them unless it is needed.\n   *\n   * Currently false to prevent breaking the current API, but it should be changed to default true at some point that\n   * breaking changes are allowed.\n   *\n   * @default false\n   */\n  disableWebInstaller = false\n\n  /**\n   * *NSIS only* Disable differential downloads and always perform full download of installer.\n   *\n   * @default false\n   */\n  disableDifferentialDownload = false\n\n  /**\n   * Allows developer to force the updater to work in \"dev\" mode, looking for \"dev-app-update.yml\" instead of \"app-update.yml\"\n   * Dev: `path.join(this.app.getAppPath(), \"dev-app-update.yml\")`\n   * Prod: `path.join(process.resourcesPath!, \"app-update.yml\")`\n   *\n   * @default false\n   */\n  forceDevUpdateConfig = false\n\n  /**\n   * The current application version.\n   */\n  readonly currentVersion: SemVer\n\n  private _channel: string | null = null\n\n  protected downloadedUpdateHelper: DownloadedUpdateHelper | null = null\n\n  /**\n   * Get the update channel. Doesn't return `channel` from the update configuration, only if was previously set.\n   */\n  get channel(): string | null {\n    return this._channel\n  }\n\n  /**\n   * Set the update channel. Overrides `channel` in the update configuration.\n   *\n   * `allowDowngrade` will be automatically set to `true`. If this behavior is not suitable for you, simple set `allowDowngrade` explicitly after.\n   */\n  set channel(value: string | null) {\n    if (this._channel != null) {\n      // noinspection SuspiciousTypeOfGuard\n      if (typeof value !== \"string\") {\n        throw newError(`Channel must be a string, but got: ${value}`, \"ERR_UPDATER_INVALID_CHANNEL\")\n      } else if (value.length === 0) {\n        throw newError(`Channel must be not an empty string`, \"ERR_UPDATER_INVALID_CHANNEL\")\n      }\n    }\n\n    this._channel = value\n    this.allowDowngrade = true\n  }\n\n  /**\n   *  The request headers.\n   */\n  requestHeaders: OutgoingHttpHeaders | null = null\n\n  /**\n   *  Shortcut for explicitly adding auth tokens to request headers\n   */\n  addAuthHeader(token: string) {\n    this.requestHeaders = Object.assign({}, this.requestHeaders, {\n      authorization: token,\n    })\n  }\n\n  protected _logger: Logger = console\n\n  // noinspection JSMethodCanBeStatic,JSUnusedGlobalSymbols\n  get netSession(): Session {\n    return getNetSession()\n  }\n\n  /**\n   * The logger. You can pass [electron-log](https://github.com/megahertz/electron-log), [winston](https://github.com/winstonjs/winston) or another logger with the following interface: `{ info(), warn(), error() }`.\n   * Set it to `null` if you would like to disable a logging feature.\n   */\n  get logger(): Logger | null {\n    return this._logger\n  }\n\n  set logger(value: Logger | null) {\n    this._logger = value == null ? new NoOpLogger() : value\n  }\n\n  // noinspection JSUnusedGlobalSymbols\n  /**\n   * For type safety you can use signals, e.g. `autoUpdater.signals.updateDownloaded(() => {})` instead of `autoUpdater.on('update-available', () => {})`\n   */\n  readonly signals = new UpdaterSignal(this)\n\n  private _appUpdateConfigPath: string | null = null\n\n  // noinspection JSUnusedGlobalSymbols\n  /**\n   * test only\n   * @private\n   */\n  set updateConfigPath(value: string | null) {\n    this.clientPromise = null\n    this._appUpdateConfigPath = value\n    this.configOnDisk = new Lazy<any>(() => this.loadUpdateConfig())\n  }\n\n  protected _isUpdateSupported: VerifyUpdateSupport = (updateInfo: UpdateInfo): boolean | Promise<boolean> => this.checkIfUpdateSupported(updateInfo)\n\n  /**\n   * Allows developer to override default logic for determining if an update is supported.\n   * The default logic compares the `UpdateInfo` minimum system version against the `os.release()` with `semver` package\n   */\n  get isUpdateSupported(): VerifyUpdateSupport {\n    return this._isUpdateSupported\n  }\n\n  set isUpdateSupported(value: VerifyUpdateSupport) {\n    if (value) {\n      this._isUpdateSupported = value\n    }\n  }\n\n  private clientPromise: Promise<Provider<any>> | null = null\n\n  protected readonly stagingUserIdPromise = new Lazy<string>(() => this.getOrCreateStagingUserId())\n\n  // public, allow to read old config for anyone\n  /** @internal */\n  configOnDisk = new Lazy<any>(() => this.loadUpdateConfig())\n\n  private checkForUpdatesPromise: Promise<UpdateCheckResult> | null = null\n  private downloadPromise: Promise<Array<string>> | null = null\n\n  protected readonly app: AppAdapter\n\n  protected updateInfoAndProvider: UpdateInfoAndProvider | null = null\n\n  /** @internal */\n  readonly httpExecutor: ElectronHttpExecutor\n\n  protected constructor(options: AllPublishOptions | null | undefined, app?: AppAdapter) {\n    super()\n\n    this.on(\"error\", (error: Error) => {\n      this._logger.error(`Error: ${error.stack || error.message}`)\n    })\n\n    if (app == null) {\n      this.app = new ElectronAppAdapter()\n      this.httpExecutor = new ElectronHttpExecutor((authInfo, callback) => this.emit(\"login\", authInfo, callback))\n    } else {\n      this.app = app\n      this.httpExecutor = null as any\n    }\n\n    const currentVersionString = this.app.version\n    const currentVersion = parseVersion(currentVersionString)\n    if (currentVersion == null) {\n      throw newError(`App version is not a valid semver version: \"${currentVersionString}\"`, \"ERR_UPDATER_INVALID_VERSION\")\n    }\n    this.currentVersion = currentVersion\n    this.allowPrerelease = hasPrereleaseComponents(currentVersion)\n\n    if (options != null) {\n      this.setFeedURL(options)\n\n      if (typeof options !== \"string\" && options.requestHeaders) {\n        this.requestHeaders = options.requestHeaders\n      }\n    }\n  }\n\n  //noinspection JSMethodCanBeStatic,JSUnusedGlobalSymbols\n  getFeedURL(): string | null | undefined {\n    return \"Deprecated. Do not use it.\"\n  }\n\n  /**\n   * Configure update provider. If value is `string`, [GenericServerOptions](./publish.md#genericserveroptions) will be set with value as `url`.\n   * @param options If you want to override configuration in the `app-update.yml`.\n   */\n  setFeedURL(options: PublishConfiguration | AllPublishOptions | string) {\n    const runtimeOptions = this.createProviderRuntimeOptions()\n    // https://github.com/electron-userland/electron-builder/issues/1105\n    let provider: Provider<any>\n    if (typeof options === \"string\") {\n      provider = new GenericProvider({ provider: \"generic\", url: options }, this, {\n        ...runtimeOptions,\n        isUseMultipleRangeRequest: isUrlProbablySupportMultiRangeRequests(options),\n      })\n    } else {\n      provider = createClient(options, this, runtimeOptions)\n    }\n    this.clientPromise = Promise.resolve(provider)\n  }\n\n  /**\n   * Asks the server whether there is an update.\n   * @returns null if the updater is disabled, otherwise info about the latest version\n   */\n  checkForUpdates(): Promise<UpdateCheckResult | null> {\n    if (!this.isUpdaterActive()) {\n      return Promise.resolve(null)\n    }\n\n    let checkForUpdatesPromise = this.checkForUpdatesPromise\n    if (checkForUpdatesPromise != null) {\n      this._logger.info(\"Checking for update (already in progress)\")\n      return checkForUpdatesPromise\n    }\n\n    const nullizePromise = () => (this.checkForUpdatesPromise = null)\n\n    this._logger.info(\"Checking for update\")\n    checkForUpdatesPromise = this.doCheckForUpdates()\n      .then(it => {\n        nullizePromise()\n        return it\n      })\n      .catch((e: any) => {\n        nullizePromise()\n        this.emit(\"error\", e, `Cannot check for updates: ${(e.stack || e).toString()}`)\n        throw e\n      })\n\n    this.checkForUpdatesPromise = checkForUpdatesPromise\n    return checkForUpdatesPromise\n  }\n\n  public isUpdaterActive(): boolean {\n    const isEnabled = this.app.isPackaged || this.forceDevUpdateConfig\n    if (!isEnabled) {\n      this._logger.info(\"Skip checkForUpdates because application is not packed and dev update config is not forced\")\n      return false\n    }\n    return true\n  }\n\n  // noinspection JSUnusedGlobalSymbols\n  checkForUpdatesAndNotify(downloadNotification?: DownloadNotification): Promise<UpdateCheckResult | null> {\n    return this.checkForUpdates().then(it => {\n      if (!it?.downloadPromise) {\n        if (this._logger.debug != null) {\n          this._logger.debug(\"checkForUpdatesAndNotify called, downloadPromise is null\")\n        }\n        return it\n      }\n\n      void it.downloadPromise.then(() => {\n        const notificationContent = AppUpdater.formatDownloadNotification(it.updateInfo.version, this.app.name, downloadNotification)\n        new (require(\"electron\").Notification)(notificationContent).show()\n      })\n\n      return it\n    })\n  }\n\n  private static formatDownloadNotification(version: string, appName: string, downloadNotification?: DownloadNotification): DownloadNotification {\n    if (downloadNotification == null) {\n      downloadNotification = {\n        title: \"A new update is ready to install\",\n        body: `{appName} version {version} has been downloaded and will be automatically installed on exit`,\n      }\n    }\n    downloadNotification = {\n      title: downloadNotification.title.replace(\"{appName}\", appName).replace(\"{version}\", version),\n      body: downloadNotification.body.replace(\"{appName}\", appName).replace(\"{version}\", version),\n    }\n    return downloadNotification\n  }\n\n  private async isStagingMatch(updateInfo: UpdateInfo): Promise<boolean> {\n    const rawStagingPercentage = updateInfo.stagingPercentage\n    let stagingPercentage = rawStagingPercentage\n    if (stagingPercentage == null) {\n      return true\n    }\n\n    stagingPercentage = parseInt(stagingPercentage as any, 10)\n    if (isNaN(stagingPercentage)) {\n      this._logger.warn(`Staging percentage is NaN: ${rawStagingPercentage}`)\n      return true\n    }\n\n    // convert from user 0-100 to internal 0-1\n    stagingPercentage = stagingPercentage / 100\n\n    const stagingUserId = await this.stagingUserIdPromise.value\n    const val = UUID.parse(stagingUserId).readUInt32BE(12)\n    const percentage = val / 0xffffffff\n    this._logger.info(`Staging percentage: ${stagingPercentage}, percentage: ${percentage}, user id: ${stagingUserId}`)\n    return percentage < stagingPercentage\n  }\n\n  private computeFinalHeaders(headers: OutgoingHttpHeaders) {\n    if (this.requestHeaders != null) {\n      Object.assign(headers, this.requestHeaders)\n    }\n    return headers\n  }\n\n  private async isUpdateAvailable(updateInfo: UpdateInfo): Promise<boolean> {\n    const latestVersion = parseVersion(updateInfo.version)\n    if (latestVersion == null) {\n      throw newError(\n        `This file could not be downloaded, or the latest version (from update server) does not have a valid semver version: \"${updateInfo.version}\"`,\n        \"ERR_UPDATER_INVALID_VERSION\"\n      )\n    }\n\n    const currentVersion = this.currentVersion\n    if (isVersionsEqual(latestVersion, currentVersion)) {\n      return false\n    }\n\n    if (!(await Promise.resolve(this.isUpdateSupported(updateInfo)))) {\n      return false\n    }\n\n    const isStagingMatch = await this.isStagingMatch(updateInfo)\n    if (!isStagingMatch) {\n      return false\n    }\n\n    // https://github.com/electron-userland/electron-builder/pull/3111#issuecomment-405033227\n    // https://github.com/electron-userland/electron-builder/pull/3111#issuecomment-405030797\n    const isLatestVersionNewer = isVersionGreaterThan(latestVersion, currentVersion)\n    const isLatestVersionOlder = isVersionLessThan(latestVersion, currentVersion)\n\n    if (isLatestVersionNewer) {\n      return true\n    }\n    return this.allowDowngrade && isLatestVersionOlder\n  }\n\n  private checkIfUpdateSupported(updateInfo: UpdateInfo) {\n    const minimumSystemVersion = updateInfo?.minimumSystemVersion\n    const currentOSVersion = release()\n    if (minimumSystemVersion) {\n      try {\n        if (isVersionLessThan(currentOSVersion, minimumSystemVersion)) {\n          this._logger.info(`Current OS version ${currentOSVersion} is less than the minimum OS version required ${minimumSystemVersion} for version ${currentOSVersion}`)\n          return false\n        }\n      } catch (e: any) {\n        this._logger.warn(`Failed to compare current OS version(${currentOSVersion}) with minimum OS version(${minimumSystemVersion}): ${(e.message || e).toString()}`)\n      }\n    }\n    return true\n  }\n\n  protected async getUpdateInfoAndProvider(): Promise<UpdateInfoAndProvider> {\n    await this.app.whenReady()\n\n    if (this.clientPromise == null) {\n      this.clientPromise = this.configOnDisk.value.then(it => createClient(it, this, this.createProviderRuntimeOptions()))\n    }\n\n    const client = await this.clientPromise\n    const stagingUserId = await this.stagingUserIdPromise.value\n    client.setRequestHeaders(this.computeFinalHeaders({ \"x-user-staging-id\": stagingUserId }))\n    return {\n      info: await client.getLatestVersion(),\n      provider: client,\n    }\n  }\n\n  private createProviderRuntimeOptions() {\n    return {\n      isUseMultipleRangeRequest: true,\n      platform: this._testOnlyOptions == null ? (process.platform as ProviderPlatform) : this._testOnlyOptions.platform,\n      executor: this.httpExecutor,\n    }\n  }\n\n  private async doCheckForUpdates(): Promise<UpdateCheckResult> {\n    this.emit(\"checking-for-update\")\n\n    const result = await this.getUpdateInfoAndProvider()\n    const updateInfo = result.info\n    if (!(await this.isUpdateAvailable(updateInfo))) {\n      this._logger.info(\n        `Update for version ${this.currentVersion.format()} is not available (latest version: ${updateInfo.version}, downgrade is ${\n          this.allowDowngrade ? \"allowed\" : \"disallowed\"\n        }).`\n      )\n      this.emit(\"update-not-available\", updateInfo)\n      return {\n        isUpdateAvailable: false,\n        versionInfo: updateInfo,\n        updateInfo,\n      }\n    }\n\n    this.updateInfoAndProvider = result\n    this.onUpdateAvailable(updateInfo)\n\n    const cancellationToken = new CancellationToken()\n    //noinspection ES6MissingAwait\n    return {\n      isUpdateAvailable: true,\n      versionInfo: updateInfo,\n      updateInfo,\n      cancellationToken,\n      downloadPromise: this.autoDownload ? this.downloadUpdate(cancellationToken) : null,\n    }\n  }\n\n  protected onUpdateAvailable(updateInfo: UpdateInfo): void {\n    this._logger.info(\n      `Found version ${updateInfo.version} (url: ${asArray(updateInfo.files)\n        .map(it => it.url)\n        .join(\", \")})`\n    )\n    this.emit(\"update-available\", updateInfo)\n  }\n\n  /**\n   * Start downloading update manually. You can use this method if `autoDownload` option is set to `false`.\n   * @returns {Promise<Array<string>>} Paths to downloaded files.\n   */\n  downloadUpdate(cancellationToken: CancellationToken = new CancellationToken()): Promise<Array<string>> {\n    const updateInfoAndProvider = this.updateInfoAndProvider\n    if (updateInfoAndProvider == null) {\n      const error = new Error(\"Please check update first\")\n      this.dispatchError(error)\n      return Promise.reject(error)\n    }\n\n    if (this.downloadPromise != null) {\n      this._logger.info(\"Downloading update (already in progress)\")\n      return this.downloadPromise\n    }\n\n    this._logger.info(\n      `Downloading update from ${asArray(updateInfoAndProvider.info.files)\n        .map(it => it.url)\n        .join(\", \")}`\n    )\n    const errorHandler = (e: Error): Error => {\n      // https://github.com/electron-userland/electron-builder/issues/1150#issuecomment-436891159\n      if (!(e instanceof CancellationError)) {\n        try {\n          this.dispatchError(e)\n        } catch (nestedError: any) {\n          this._logger.warn(`Cannot dispatch error event: ${nestedError.stack || nestedError}`)\n        }\n      }\n\n      return e\n    }\n\n    this.downloadPromise = this.doDownloadUpdate({\n      updateInfoAndProvider,\n      requestHeaders: this.computeRequestHeaders(updateInfoAndProvider.provider),\n      cancellationToken,\n      disableWebInstaller: this.disableWebInstaller,\n      disableDifferentialDownload: this.disableDifferentialDownload,\n    })\n      .catch((e: any) => {\n        throw errorHandler(e)\n      })\n      .finally(() => {\n        this.downloadPromise = null\n      })\n\n    return this.downloadPromise\n  }\n\n  protected dispatchError(e: Error): void {\n    this.emit(\"error\", e, (e.stack || e).toString())\n  }\n\n  protected dispatchUpdateDownloaded(event: UpdateDownloadedEvent): void {\n    this.emit(UPDATE_DOWNLOADED, event)\n  }\n\n  protected abstract doDownloadUpdate(downloadUpdateOptions: DownloadUpdateOptions): Promise<Array<string>>\n\n  /**\n   * Restarts the app and installs the update after it has been downloaded.\n   * It should only be called after `update-downloaded` has been emitted.\n   *\n   * **Note:** `autoUpdater.quitAndInstall()` will close all application windows first and only emit `before-quit` event on `app` after that.\n   * This is different from the normal quit event sequence.\n   *\n   * @param isSilent *windows-only* Runs the installer in silent mode. Defaults to `false`.\n   * @param isForceRunAfter Run the app after finish even on silent install. Not applicable for macOS.\n   * Ignored if `isSilent` is set to `false`(In this case you can still set `autoRunAppAfterInstall` to `false` to prevent run the app after finish).\n   */\n  abstract quitAndInstall(isSilent?: boolean, isForceRunAfter?: boolean): void\n\n  private async loadUpdateConfig(): Promise<any> {\n    if (this._appUpdateConfigPath == null) {\n      this._appUpdateConfigPath = this.app.appUpdateConfigPath\n    }\n    return load(await readFile(this._appUpdateConfigPath, \"utf-8\"))\n  }\n\n  private computeRequestHeaders(provider: Provider<any>): OutgoingHttpHeaders {\n    const fileExtraDownloadHeaders = provider.fileExtraDownloadHeaders\n    if (fileExtraDownloadHeaders != null) {\n      const requestHeaders = this.requestHeaders\n      return requestHeaders == null\n        ? fileExtraDownloadHeaders\n        : {\n            ...fileExtraDownloadHeaders,\n            ...requestHeaders,\n          }\n    }\n    return this.computeFinalHeaders({ accept: \"*/*\" })\n  }\n\n  private async getOrCreateStagingUserId(): Promise<string> {\n    const file = path.join(this.app.userDataPath, \".updaterId\")\n    try {\n      const id = await readFile(file, \"utf-8\")\n      if (UUID.check(id)) {\n        return id\n      } else {\n        this._logger.warn(`Staging user id file exists, but content was invalid: ${id}`)\n      }\n    } catch (e: any) {\n      if (e.code !== \"ENOENT\") {\n        this._logger.warn(`Couldn't read staging user ID, creating a blank one: ${e}`)\n      }\n    }\n\n    const id = UUID.v5(randomBytes(4096), UUID.OID)\n    this._logger.info(`Generated new staging user ID: ${id}`)\n    try {\n      await outputFile(file, id)\n    } catch (e: any) {\n      this._logger.warn(`Couldn't write out staging user ID: ${e}`)\n    }\n    return id\n  }\n\n  /** @internal */\n  get isAddNoCacheQuery(): boolean {\n    const headers = this.requestHeaders\n    // https://github.com/electron-userland/electron-builder/issues/3021\n    if (headers == null) {\n      return true\n    }\n\n    for (const headerName of Object.keys(headers)) {\n      const s = headerName.toLowerCase()\n      if (s === \"authorization\" || s === \"private-token\") {\n        return false\n      }\n    }\n    return true\n  }\n\n  /**\n   * @private\n   * @internal\n   */\n  _testOnlyOptions: TestOnlyUpdaterOptions | null = null\n\n  private async getOrCreateDownloadHelper(): Promise<DownloadedUpdateHelper> {\n    let result = this.downloadedUpdateHelper\n    if (result == null) {\n      const dirName = (await this.configOnDisk.value).updaterCacheDirName\n      const logger = this._logger\n      if (dirName == null) {\n        logger.error(\"updaterCacheDirName is not specified in app-update.yml Was app build using at least electron-builder 20.34.0?\")\n      }\n      const cacheDir = path.join(this.app.baseCachePath, dirName || this.app.name)\n      if (logger.debug != null) {\n        logger.debug(`updater cache dir: ${cacheDir}`)\n      }\n\n      result = new DownloadedUpdateHelper(cacheDir)\n      this.downloadedUpdateHelper = result\n    }\n    return result\n  }\n\n  protected async executeDownload(taskOptions: DownloadExecutorTask): Promise<Array<string>> {\n    const fileInfo = taskOptions.fileInfo\n    const downloadOptions: DownloadOptions = {\n      headers: taskOptions.downloadUpdateOptions.requestHeaders,\n      cancellationToken: taskOptions.downloadUpdateOptions.cancellationToken,\n      sha2: (fileInfo.info as any).sha2,\n      sha512: fileInfo.info.sha512,\n    }\n\n    if (this.listenerCount(DOWNLOAD_PROGRESS) > 0) {\n      downloadOptions.onProgress = it => this.emit(DOWNLOAD_PROGRESS, it)\n    }\n\n    const updateInfo = taskOptions.downloadUpdateOptions.updateInfoAndProvider.info\n    const version = updateInfo.version\n    const packageInfo = fileInfo.packageInfo\n\n    function getCacheUpdateFileName(): string {\n      // NodeJS URL doesn't decode automatically\n      const urlPath = decodeURIComponent(taskOptions.fileInfo.url.pathname)\n      if (urlPath.endsWith(`.${taskOptions.fileExtension}`)) {\n        return path.basename(urlPath)\n      } else {\n        // url like /latest, generate name\n        return taskOptions.fileInfo.info.url\n      }\n    }\n\n    const downloadedUpdateHelper = await this.getOrCreateDownloadHelper()\n    const cacheDir = downloadedUpdateHelper.cacheDirForPendingUpdate\n    await mkdir(cacheDir, { recursive: true })\n    const updateFileName = getCacheUpdateFileName()\n    let updateFile = path.join(cacheDir, updateFileName)\n    const packageFile = packageInfo == null ? null : path.join(cacheDir, `package-${version}${path.extname(packageInfo.path) || \".7z\"}`)\n\n    const done = async (isSaveCache: boolean) => {\n      await downloadedUpdateHelper.setDownloadedFile(updateFile, packageFile, updateInfo, fileInfo, updateFileName, isSaveCache)\n      await taskOptions.done!({\n        ...updateInfo,\n        downloadedFile: updateFile,\n      })\n      return packageFile == null ? [updateFile] : [updateFile, packageFile]\n    }\n\n    const log = this._logger\n    const cachedUpdateFile = await downloadedUpdateHelper.validateDownloadedPath(updateFile, updateInfo, fileInfo, log)\n    if (cachedUpdateFile != null) {\n      updateFile = cachedUpdateFile\n      return await done(false)\n    }\n\n    const removeFileIfAny = async () => {\n      await downloadedUpdateHelper.clear().catch(() => {\n        // ignore\n      })\n      return await unlink(updateFile).catch(() => {\n        // ignore\n      })\n    }\n\n    const tempUpdateFile = await createTempUpdateFile(`temp-${updateFileName}`, cacheDir, log)\n    try {\n      await taskOptions.task(tempUpdateFile, downloadOptions, packageFile, removeFileIfAny)\n      await retry(\n        () => rename(tempUpdateFile, updateFile),\n        60,\n        500,\n        0,\n        0,\n        error => error instanceof Error && /^EBUSY:/.test(error.message)\n      )\n    } catch (e: any) {\n      await removeFileIfAny()\n\n      if (e instanceof CancellationError) {\n        log.info(\"cancelled\")\n        this.emit(\"update-cancelled\", updateInfo)\n      }\n      throw e\n    }\n\n    log.info(`New version ${version} has been downloaded to ${updateFile}`)\n    return await done(true)\n  }\n  protected async differentialDownloadInstaller(\n    fileInfo: ResolvedUpdateFileInfo,\n    downloadUpdateOptions: DownloadUpdateOptions,\n    installerPath: string,\n    provider: Provider<any>,\n    oldInstallerFileName: string\n  ): Promise<boolean> {\n    try {\n      if (this._testOnlyOptions != null && !this._testOnlyOptions.isUseDifferentialDownload) {\n        return true\n      }\n      const blockmapFileUrls = blockmapFiles(fileInfo.url, this.app.version, downloadUpdateOptions.updateInfoAndProvider.info.version)\n      this._logger.info(`Download block maps (old: \"${blockmapFileUrls[0]}\", new: ${blockmapFileUrls[1]})`)\n\n      const downloadBlockMap = async (url: URL): Promise<BlockMap> => {\n        const data = await this.httpExecutor.downloadToBuffer(url, {\n          headers: downloadUpdateOptions.requestHeaders,\n          cancellationToken: downloadUpdateOptions.cancellationToken,\n        })\n\n        if (data == null || data.length === 0) {\n          throw new Error(`Blockmap \"${url.href}\" is empty`)\n        }\n\n        try {\n          return JSON.parse(gunzipSync(data).toString())\n        } catch (e: any) {\n          throw new Error(`Cannot parse blockmap \"${url.href}\", error: ${e}`)\n        }\n      }\n\n      const downloadOptions: DifferentialDownloaderOptions = {\n        newUrl: fileInfo.url,\n        oldFile: path.join(this.downloadedUpdateHelper!.cacheDir, oldInstallerFileName),\n        logger: this._logger,\n        newFile: installerPath,\n        isUseMultipleRangeRequest: provider.isUseMultipleRangeRequest,\n        requestHeaders: downloadUpdateOptions.requestHeaders,\n        cancellationToken: downloadUpdateOptions.cancellationToken,\n      }\n\n      if (this.listenerCount(DOWNLOAD_PROGRESS) > 0) {\n        downloadOptions.onProgress = it => this.emit(DOWNLOAD_PROGRESS, it)\n      }\n\n      const blockMapDataList = await Promise.all(blockmapFileUrls.map(u => downloadBlockMap(u)))\n      await new GenericDifferentialDownloader(fileInfo.info, this.httpExecutor, downloadOptions).download(blockMapDataList[0], blockMapDataList[1])\n      return false\n    } catch (e: any) {\n      this._logger.error(`Cannot download differentially, fallback to full download: ${e.stack || e}`)\n      if (this._testOnlyOptions != null) {\n        // test mode\n        throw e\n      }\n      return true\n    }\n  }\n}\n\nexport interface DownloadUpdateOptions {\n  readonly updateInfoAndProvider: UpdateInfoAndProvider\n  readonly requestHeaders: OutgoingHttpHeaders\n  readonly cancellationToken: CancellationToken\n  readonly disableWebInstaller?: boolean\n  readonly disableDifferentialDownload?: boolean\n}\n\nfunction hasPrereleaseComponents(version: SemVer) {\n  const versionPrereleaseComponent = getVersionPreleaseComponents(version)\n  return versionPrereleaseComponent != null && versionPrereleaseComponent.length > 0\n}\n\n/** @private */\nexport class NoOpLogger implements Logger {\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  info(message?: any) {\n    // ignore\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  warn(message?: any) {\n    // ignore\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  error(message?: any) {\n    // ignore\n  }\n}\n\nexport interface UpdateInfoAndProvider {\n  info: UpdateInfo\n  provider: Provider<any>\n}\n\nexport interface DownloadExecutorTask {\n  readonly fileExtension: string\n  readonly fileInfo: ResolvedUpdateFileInfo\n  readonly downloadUpdateOptions: DownloadUpdateOptions\n  readonly task: (destinationFile: string, downloadOptions: DownloadOptions, packageFile: string | null, removeTempDirIfAny: () => Promise<any>) => Promise<any>\n\n  readonly done?: (event: UpdateDownloadedEvent) => Promise<any>\n}\n\nexport interface DownloadNotification {\n  body: string\n  title: string\n}\n\n/** @private */\nexport interface TestOnlyUpdaterOptions {\n  platform: ProviderPlatform\n\n  isUseDifferentialDownload?: boolean\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseUpdater = void 0;
const child_process_1 = require("child_process");
const AppUpdater_1 = require("./AppUpdater");
class BaseUpdater extends AppUpdater_1.AppUpdater {
    constructor(options, app) {
        super(options, app);
        this.quitAndInstallCalled = false;
        this.quitHandlerAdded = false;
    }
    quitAndInstall(isSilent = false, isForceRunAfter = false) {
        this._logger.info(`Install on explicit quitAndInstall`);
        // If NOT in silent mode use `autoRunAppAfterInstall` to determine whether to force run the app
        const isInstalled = this.install(isSilent, isSilent ? isForceRunAfter : this.autoRunAppAfterInstall);
        if (isInstalled) {
            setImmediate(() => {
                // this event is normally emitted when calling quitAndInstall, this emulates that
                require("electron").autoUpdater.emit("before-quit-for-update");
                this.app.quit();
            });
        }
        else {
            this.quitAndInstallCalled = false;
        }
    }
    executeDownload(taskOptions) {
        return super.executeDownload({
            ...taskOptions,
            done: event => {
                this.dispatchUpdateDownloaded(event);
                this.addQuitHandler();
                return Promise.resolve();
            },
        });
    }
    get installerPath() {
        return this.downloadedUpdateHelper == null ? null : this.downloadedUpdateHelper.file;
    }
    // must be sync (because quit even handler is not async)
    install(isSilent = false, isForceRunAfter = false) {
        if (this.quitAndInstallCalled) {
            this._logger.warn("install call ignored: quitAndInstallCalled is set to true");
            return false;
        }
        const downloadedUpdateHelper = this.downloadedUpdateHelper;
        const installerPath = this.installerPath;
        const downloadedFileInfo = downloadedUpdateHelper == null ? null : downloadedUpdateHelper.downloadedFileInfo;
        if (installerPath == null || downloadedFileInfo == null) {
            this.dispatchError(new Error("No valid update available, can't quit and install"));
            return false;
        }
        // prevent calling several times
        this.quitAndInstallCalled = true;
        try {
            this._logger.info(`Install: isSilent: ${isSilent}, isForceRunAfter: ${isForceRunAfter}`);
            return this.doInstall({
                isSilent,
                isForceRunAfter,
                isAdminRightsRequired: downloadedFileInfo.isAdminRightsRequired,
            });
        }
        catch (e) {
            this.dispatchError(e);
            return false;
        }
    }
    addQuitHandler() {
        if (this.quitHandlerAdded || !this.autoInstallOnAppQuit) {
            return;
        }
        this.quitHandlerAdded = true;
        this.app.onQuit(exitCode => {
            if (this.quitAndInstallCalled) {
                this._logger.info("Update installer has already been triggered. Quitting application.");
                return;
            }
            if (!this.autoInstallOnAppQuit) {
                this._logger.info("Update will not be installed on quit because autoInstallOnAppQuit is set to false.");
                return;
            }
            if (exitCode !== 0) {
                this._logger.info(`Update will be not installed on quit because application is quitting with exit code ${exitCode}`);
                return;
            }
            this._logger.info("Auto install update on quit");
            this.install(true, false);
        });
    }
    wrapSudo() {
        const { name } = this.app;
        const installComment = `"${name} would like to update"`;
        const sudo = this.spawnSyncLog("which gksudo || which kdesudo || which pkexec || which beesu");
        const command = [sudo];
        if (/kdesudo/i.test(sudo)) {
            command.push("--comment", installComment);
            command.push("-c");
        }
        else if (/gksudo/i.test(sudo)) {
            command.push("--message", installComment);
        }
        else if (/pkexec/i.test(sudo)) {
            command.push("--disable-internal-agent");
        }
        return command.join(" ");
    }
    spawnSyncLog(cmd, args = [], env = {}) {
        this._logger.info(`Executing: ${cmd} with args: ${args}`);
        const response = (0, child_process_1.spawnSync)(cmd, args, {
            env: { ...process.env, ...env },
            encoding: "utf-8",
            shell: true,
        });
        const { error, status, stdout, stderr } = response;
        if (error != null) {
            this._logger.error(stderr);
            throw error;
        }
        else if (status != null && status !== 0) {
            this._logger.error(stderr);
            throw new Error(`Command ${cmd} exited with code ${status}`);
        }
        return stdout.trim();
    }
    /**
     * This handles both node 8 and node 10 way of emitting error when spawning a process
     *   - node 8: Throws the error
     *   - node 10: Emit the error(Need to listen with on)
     */
    // https://github.com/electron-userland/electron-builder/issues/1129
    // Node 8 sends errors: https://nodejs.org/dist/latest-v8.x/docs/api/errors.html#errors_common_system_errors
    async spawnLog(cmd, args = [], env = undefined, stdio = "ignore") {
        this._logger.info(`Executing: ${cmd} with args: ${args}`);
        return new Promise((resolve, reject) => {
            try {
                const params = { stdio, env, detached: true };
                const p = (0, child_process_1.spawn)(cmd, args, params);
                p.on("error", error => {
                    reject(error);
                });
                p.unref();
                if (p.pid !== undefined) {
                    resolve(true);
                }
            }
            catch (error) {
                reject(error);
            }
        });
    }
}
exports.BaseUpdater = BaseUpdater;
{"version":3,"file":"BaseUpdater.js","sourceRoot":"","sources":["../src/BaseUpdater.ts"],"names":[],"mappings":";;;AACA,iDAA4E;AAE5E,6CAA+D;AAE/D,MAAsB,WAAY,SAAQ,uBAAU;IAIlD,YAAsB,OAAkC,EAAE,GAAgB;QACxE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAJX,yBAAoB,GAAG,KAAK,CAAA;QAC9B,qBAAgB,GAAG,KAAK,CAAA;IAIhC,CAAC;IAED,cAAc,CAAC,QAAQ,GAAG,KAAK,EAAE,eAAe,GAAG,KAAK;QACtD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;QACvD,+FAA+F;QAC/F,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QACpG,IAAI,WAAW,EAAE,CAAC;YAChB,YAAY,CAAC,GAAG,EAAE;gBAChB,iFAAiF;gBACjF,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;gBAC9D,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YACjB,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAA;QACnC,CAAC;IACH,CAAC;IAES,eAAe,CAAC,WAAiC;QACzD,OAAO,KAAK,CAAC,eAAe,CAAC;YAC3B,GAAG,WAAW;YACd,IAAI,EAAE,KAAK,CAAC,EAAE;gBACZ,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAA;gBACpC,IAAI,CAAC,cAAc,EAAE,CAAA;gBACrB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;YAC1B,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,IAAc,aAAa;QACzB,OAAO,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAA;IACtF,CAAC;IAKD,wDAAwD;IACxD,OAAO,CAAC,QAAQ,GAAG,KAAK,EAAE,eAAe,GAAG,KAAK;QAC/C,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAA;YAC9E,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAA;QAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACxC,MAAM,kBAAkB,GAAG,sBAAsB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,kBAAkB,CAAA;QAC5G,IAAI,aAAa,IAAI,IAAI,IAAI,kBAAkB,IAAI,IAAI,EAAE,CAAC;YACxD,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAA;YAClF,OAAO,KAAK,CAAA;QACd,CAAC;QAED,gCAAgC;QAChC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAA;QAEhC,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,QAAQ,sBAAsB,eAAe,EAAE,CAAC,CAAA;YACxF,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,QAAQ;gBACR,eAAe;gBACf,qBAAqB,EAAE,kBAAkB,CAAC,qBAAqB;aAChE,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;YACrB,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAES,cAAc;QACtB,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;QAE5B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;YACzB,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAA;gBACvF,OAAM;YACR,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAA;gBACvG,OAAM;YACR,CAAC;YAED,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uFAAuF,QAAQ,EAAE,CAAC,CAAA;gBACpH,OAAM;YACR,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;YAChD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAA;IACJ,CAAC;IAES,QAAQ;QAChB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAA;QACzB,MAAM,cAAc,GAAG,IAAI,IAAI,wBAAwB,CAAA;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,8DAA8D,CAAC,CAAA;QAC9F,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,CAAA;QACtB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;YACzC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;QAC3C,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;QAC1C,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAES,YAAY,CAAC,GAAW,EAAE,OAAiB,EAAE,EAAE,GAAG,GAAG,EAAE;QAC/D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,eAAe,IAAI,EAAE,CAAC,CAAA;QACzD,MAAM,QAAQ,GAAG,IAAA,yBAAS,EAAC,GAAG,EAAE,IAAI,EAAE;YACpC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE;YAC/B,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAA;QAEF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAA;QAClD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC1B,MAAM,KAAK,CAAA;QACb,CAAC;aAAM,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC1B,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,qBAAqB,MAAM,EAAE,CAAC,CAAA;QAC9D,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,EAAE,CAAA;IACtB,CAAC;IAED;;;;OAIG;IACH,oEAAoE;IACpE,4GAA4G;IAClG,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,OAAiB,EAAE,EAAE,MAAW,SAAS,EAAE,QAAsB,QAAQ;QAC7G,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,eAAe,IAAI,EAAE,CAAC,CAAA;QACzD,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAC3D,MAAM,CAAC,GAAG,IAAA,qBAAK,EAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;gBAClC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;oBACpB,MAAM,CAAC,KAAK,CAAC,CAAA;gBACf,CAAC,CAAC,CAAA;gBACF,CAAC,CAAC,KAAK,EAAE,CAAA;gBACT,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBACxB,OAAO,CAAC,IAAI,CAAC,CAAA;gBACf,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAjKD,kCAiKC","sourcesContent":["import { AllPublishOptions } from \"builder-util-runtime\"\nimport { spawn, SpawnOptions, spawnSync, StdioOptions } from \"child_process\"\nimport { AppAdapter } from \"./AppAdapter\"\nimport { AppUpdater, DownloadExecutorTask } from \"./AppUpdater\"\n\nexport abstract class BaseUpdater extends AppUpdater {\n  protected quitAndInstallCalled = false\n  private quitHandlerAdded = false\n\n  protected constructor(options?: AllPublishOptions | null, app?: AppAdapter) {\n    super(options, app)\n  }\n\n  quitAndInstall(isSilent = false, isForceRunAfter = false): void {\n    this._logger.info(`Install on explicit quitAndInstall`)\n    // If NOT in silent mode use `autoRunAppAfterInstall` to determine whether to force run the app\n    const isInstalled = this.install(isSilent, isSilent ? isForceRunAfter : this.autoRunAppAfterInstall)\n    if (isInstalled) {\n      setImmediate(() => {\n        // this event is normally emitted when calling quitAndInstall, this emulates that\n        require(\"electron\").autoUpdater.emit(\"before-quit-for-update\")\n        this.app.quit()\n      })\n    } else {\n      this.quitAndInstallCalled = false\n    }\n  }\n\n  protected executeDownload(taskOptions: DownloadExecutorTask): Promise<Array<string>> {\n    return super.executeDownload({\n      ...taskOptions,\n      done: event => {\n        this.dispatchUpdateDownloaded(event)\n        this.addQuitHandler()\n        return Promise.resolve()\n      },\n    })\n  }\n\n  protected get installerPath(): string | null {\n    return this.downloadedUpdateHelper == null ? null : this.downloadedUpdateHelper.file\n  }\n\n  // must be sync\n  protected abstract doInstall(options: InstallOptions): boolean\n\n  // must be sync (because quit even handler is not async)\n  install(isSilent = false, isForceRunAfter = false): boolean {\n    if (this.quitAndInstallCalled) {\n      this._logger.warn(\"install call ignored: quitAndInstallCalled is set to true\")\n      return false\n    }\n\n    const downloadedUpdateHelper = this.downloadedUpdateHelper\n    const installerPath = this.installerPath\n    const downloadedFileInfo = downloadedUpdateHelper == null ? null : downloadedUpdateHelper.downloadedFileInfo\n    if (installerPath == null || downloadedFileInfo == null) {\n      this.dispatchError(new Error(\"No valid update available, can't quit and install\"))\n      return false\n    }\n\n    // prevent calling several times\n    this.quitAndInstallCalled = true\n\n    try {\n      this._logger.info(`Install: isSilent: ${isSilent}, isForceRunAfter: ${isForceRunAfter}`)\n      return this.doInstall({\n        isSilent,\n        isForceRunAfter,\n        isAdminRightsRequired: downloadedFileInfo.isAdminRightsRequired,\n      })\n    } catch (e: any) {\n      this.dispatchError(e)\n      return false\n    }\n  }\n\n  protected addQuitHandler(): void {\n    if (this.quitHandlerAdded || !this.autoInstallOnAppQuit) {\n      return\n    }\n\n    this.quitHandlerAdded = true\n\n    this.app.onQuit(exitCode => {\n      if (this.quitAndInstallCalled) {\n        this._logger.info(\"Update installer has already been triggered. Quitting application.\")\n        return\n      }\n\n      if (!this.autoInstallOnAppQuit) {\n        this._logger.info(\"Update will not be installed on quit because autoInstallOnAppQuit is set to false.\")\n        return\n      }\n\n      if (exitCode !== 0) {\n        this._logger.info(`Update will be not installed on quit because application is quitting with exit code ${exitCode}`)\n        return\n      }\n\n      this._logger.info(\"Auto install update on quit\")\n      this.install(true, false)\n    })\n  }\n\n  protected wrapSudo() {\n    const { name } = this.app\n    const installComment = `\"${name} would like to update\"`\n    const sudo = this.spawnSyncLog(\"which gksudo || which kdesudo || which pkexec || which beesu\")\n    const command = [sudo]\n    if (/kdesudo/i.test(sudo)) {\n      command.push(\"--comment\", installComment)\n      command.push(\"-c\")\n    } else if (/gksudo/i.test(sudo)) {\n      command.push(\"--message\", installComment)\n    } else if (/pkexec/i.test(sudo)) {\n      command.push(\"--disable-internal-agent\")\n    }\n    return command.join(\" \")\n  }\n\n  protected spawnSyncLog(cmd: string, args: string[] = [], env = {}): string {\n    this._logger.info(`Executing: ${cmd} with args: ${args}`)\n    const response = spawnSync(cmd, args, {\n      env: { ...process.env, ...env },\n      encoding: \"utf-8\",\n      shell: true,\n    })\n\n    const { error, status, stdout, stderr } = response\n    if (error != null) {\n      this._logger.error(stderr)\n      throw error\n    } else if (status != null && status !== 0) {\n      this._logger.error(stderr)\n      throw new Error(`Command ${cmd} exited with code ${status}`)\n    }\n\n    return stdout.trim()\n  }\n\n  /**\n   * This handles both node 8 and node 10 way of emitting error when spawning a process\n   *   - node 8: Throws the error\n   *   - node 10: Emit the error(Need to listen with on)\n   */\n  // https://github.com/electron-userland/electron-builder/issues/1129\n  // Node 8 sends errors: https://nodejs.org/dist/latest-v8.x/docs/api/errors.html#errors_common_system_errors\n  protected async spawnLog(cmd: string, args: string[] = [], env: any = undefined, stdio: StdioOptions = \"ignore\"): Promise<boolean> {\n    this._logger.info(`Executing: ${cmd} with args: ${args}`)\n    return new Promise<boolean>((resolve, reject) => {\n      try {\n        const params: SpawnOptions = { stdio, env, detached: true }\n        const p = spawn(cmd, args, params)\n        p.on(\"error\", error => {\n          reject(error)\n        })\n        p.unref()\n        if (p.pid !== undefined) {\n          resolve(true)\n        }\n      } catch (error) {\n        reject(error)\n      }\n    })\n  }\n}\n\nexport interface InstallOptions {\n  readonly isSilent: boolean\n  readonly isForceRunAfter: boolean\n  readonly isAdminRightsRequired: boolean\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DebUpdater = void 0;
const BaseUpdater_1 = require("./BaseUpdater");
const Provider_1 = require("./providers/Provider");
const types_1 = require("./types");
class DebUpdater extends BaseUpdater_1.BaseUpdater {
    constructor(options, app) {
        super(options, app);
    }
    /*** @private */
    doDownloadUpdate(downloadUpdateOptions) {
        const provider = downloadUpdateOptions.updateInfoAndProvider.provider;
        const fileInfo = (0, Provider_1.findFile)(provider.resolveFiles(downloadUpdateOptions.updateInfoAndProvider.info), "deb", ["AppImage", "rpm", "pacman"]);
        return this.executeDownload({
            fileExtension: "deb",
            fileInfo,
            downloadUpdateOptions,
            task: async (updateFile, downloadOptions) => {
                if (this.listenerCount(types_1.DOWNLOAD_PROGRESS) > 0) {
                    downloadOptions.onProgress = it => this.emit(types_1.DOWNLOAD_PROGRESS, it);
                }
                await this.httpExecutor.download(fileInfo.url, updateFile, downloadOptions);
            },
        });
    }
    get installerPath() {
        var _a, _b;
        return (_b = (_a = super.installerPath) === null || _a === void 0 ? void 0 : _a.replace(/ /g, "\\ ")) !== null && _b !== void 0 ? _b : null;
    }
    doInstall(options) {
        const sudo = this.wrapSudo();
        // pkexec doesn't want the command to be wrapped in " quotes
        const wrapper = /pkexec/i.test(sudo) ? "" : `"`;
        const installerPath = this.installerPath;
        if (installerPath == null) {
            this.dispatchError(new Error("No valid update available, can't quit and install"));
            return false;
        }
        const cmd = ["dpkg", "-i", installerPath, "||", "apt-get", "install", "-f", "-y"];
        this.spawnSyncLog(sudo, [`${wrapper}/bin/bash`, "-c", `'${cmd.join(" ")}'${wrapper}`]);
        if (options.isForceRunAfter) {
            this.app.relaunch();
        }
        return true;
    }
}
exports.DebUpdater = DebUpdater;
{"version":3,"file":"DebUpdater.js","sourceRoot":"","sources":["../src/DebUpdater.ts"],"names":[],"mappings":";;;AAGA,+CAA2D;AAC3D,mDAA+C;AAC/C,mCAA2C;AAE3C,MAAa,UAAW,SAAQ,yBAAW;IACzC,YAAY,OAAkC,EAAE,GAAgB;QAC9D,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IACrB,CAAC;IAED,gBAAgB;IACN,gBAAgB,CAAC,qBAA4C;QACrE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,QAAQ,CAAA;QACrE,MAAM,QAAQ,GAAG,IAAA,mBAAQ,EAAC,QAAQ,CAAC,YAAY,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAE,CAAA;QACzI,OAAO,IAAI,CAAC,eAAe,CAAC;YAC1B,aAAa,EAAE,KAAK;YACpB,QAAQ;YACR,qBAAqB;YACrB,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE;gBAC1C,IAAI,IAAI,CAAC,aAAa,CAAC,yBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC9C,eAAe,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAiB,EAAE,EAAE,CAAC,CAAA;gBACrE,CAAC;gBACD,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,eAAe,CAAC,CAAA;YAC7E,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,IAAc,aAAa;;QACzB,OAAO,MAAA,MAAA,KAAK,CAAC,aAAa,0CAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,mCAAI,IAAI,CAAA;IAC1D,CAAC;IAES,SAAS,CAAC,OAAuB;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC5B,4DAA4D;QAC5D,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACxC,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAA;YAClF,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QACjF,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,WAAW,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAA;QACtF,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QACrB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AA1CD,gCA0CC","sourcesContent":["import { AllPublishOptions } from \"builder-util-runtime\"\nimport { AppAdapter } from \"./AppAdapter\"\nimport { DownloadUpdateOptions } from \"./AppUpdater\"\nimport { BaseUpdater, InstallOptions } from \"./BaseUpdater\"\nimport { findFile } from \"./providers/Provider\"\nimport { DOWNLOAD_PROGRESS } from \"./types\"\n\nexport class DebUpdater extends BaseUpdater {\n  constructor(options?: AllPublishOptions | null, app?: AppAdapter) {\n    super(options, app)\n  }\n\n  /*** @private */\n  protected doDownloadUpdate(downloadUpdateOptions: DownloadUpdateOptions): Promise<Array<string>> {\n    const provider = downloadUpdateOptions.updateInfoAndProvider.provider\n    const fileInfo = findFile(provider.resolveFiles(downloadUpdateOptions.updateInfoAndProvider.info), \"deb\", [\"AppImage\", \"rpm\", \"pacman\"])!\n    return this.executeDownload({\n      fileExtension: \"deb\",\n      fileInfo,\n      downloadUpdateOptions,\n      task: async (updateFile, downloadOptions) => {\n        if (this.listenerCount(DOWNLOAD_PROGRESS) > 0) {\n          downloadOptions.onProgress = it => this.emit(DOWNLOAD_PROGRESS, it)\n        }\n        await this.httpExecutor.download(fileInfo.url, updateFile, downloadOptions)\n      },\n    })\n  }\n\n  protected get installerPath(): string | null {\n    return super.installerPath?.replace(/ /g, \"\\\\ \") ?? null\n  }\n\n  protected doInstall(options: InstallOptions): boolean {\n    const sudo = this.wrapSudo()\n    // pkexec doesn't want the command to be wrapped in \" quotes\n    const wrapper = /pkexec/i.test(sudo) ? \"\" : `\"`\n    const installerPath = this.installerPath\n    if (installerPath == null) {\n      this.dispatchError(new Error(\"No valid update available, can't quit and install\"))\n      return false\n    }\n    const cmd = [\"dpkg\", \"-i\", installerPath, \"||\", \"apt-get\", \"install\", \"-f\", \"-y\"]\n    this.spawnSyncLog(sudo, [`${wrapper}/bin/bash`, \"-c\", `'${cmd.join(\" \")}'${wrapper}`])\n    if (options.isForceRunAfter) {\n      this.app.relaunch()\n    }\n    return true\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DownloadedUpdateHelper = void 0;
exports.createTempUpdateFile = createTempUpdateFile;
const crypto_1 = require("crypto");
const fs_1 = require("fs");
// @ts-ignore
const isEqual = require("lodash.isequal");
const fs_extra_1 = require("fs-extra");
const path = require("path");
/** @private **/
class DownloadedUpdateHelper {
    constructor(cacheDir) {
        this.cacheDir = cacheDir;
        this._file = null;
        this._packageFile = null;
        this.versionInfo = null;
        this.fileInfo = null;
        this._downloadedFileInfo = null;
    }
    get downloadedFileInfo() {
        return this._downloadedFileInfo;
    }
    get file() {
        return this._file;
    }
    get packageFile() {
        return this._packageFile;
    }
    get cacheDirForPendingUpdate() {
        return path.join(this.cacheDir, "pending");
    }
    async validateDownloadedPath(updateFile, updateInfo, fileInfo, logger) {
        if (this.versionInfo != null && this.file === updateFile && this.fileInfo != null) {
            // update has already been downloaded from this running instance
            // check here only existence, not checksum
            if (isEqual(this.versionInfo, updateInfo) && isEqual(this.fileInfo.info, fileInfo.info) && (await (0, fs_extra_1.pathExists)(updateFile))) {
                return updateFile;
            }
            else {
                return null;
            }
        }
        // update has already been downloaded from some previous app launch
        const cachedUpdateFile = await this.getValidCachedUpdateFile(fileInfo, logger);
        if (cachedUpdateFile === null) {
            return null;
        }
        logger.info(`Update has already been downloaded to ${updateFile}).`);
        this._file = cachedUpdateFile;
        return cachedUpdateFile;
    }
    async setDownloadedFile(downloadedFile, packageFile, versionInfo, fileInfo, updateFileName, isSaveCache) {
        this._file = downloadedFile;
        this._packageFile = packageFile;
        this.versionInfo = versionInfo;
        this.fileInfo = fileInfo;
        this._downloadedFileInfo = {
            fileName: updateFileName,
            sha512: fileInfo.info.sha512,
            isAdminRightsRequired: fileInfo.info.isAdminRightsRequired === true,
        };
        if (isSaveCache) {
            await (0, fs_extra_1.outputJson)(this.getUpdateInfoFile(), this._downloadedFileInfo);
        }
    }
    async clear() {
        this._file = null;
        this._packageFile = null;
        this.versionInfo = null;
        this.fileInfo = null;
        await this.cleanCacheDirForPendingUpdate();
    }
    async cleanCacheDirForPendingUpdate() {
        try {
            // remove stale data
            await (0, fs_extra_1.emptyDir)(this.cacheDirForPendingUpdate);
        }
        catch (_ignore) {
            // ignore
        }
    }
    /**
     * Returns "update-info.json" which is created in the update cache directory's "pending" subfolder after the first update is downloaded.  If the update file does not exist then the cache is cleared and recreated.  If the update file exists then its properties are validated.
     * @param fileInfo
     * @param logger
     */
    async getValidCachedUpdateFile(fileInfo, logger) {
        const updateInfoFilePath = this.getUpdateInfoFile();
        const doesUpdateInfoFileExist = await (0, fs_extra_1.pathExists)(updateInfoFilePath);
        if (!doesUpdateInfoFileExist) {
            return null;
        }
        let cachedInfo;
        try {
            cachedInfo = await (0, fs_extra_1.readJson)(updateInfoFilePath);
        }
        catch (error) {
            let message = `No cached update info available`;
            if (error.code !== "ENOENT") {
                await this.cleanCacheDirForPendingUpdate();
                message += ` (error on read: ${error.message})`;
            }
            logger.info(message);
            return null;
        }
        const isCachedInfoFileNameValid = (cachedInfo === null || cachedInfo === void 0 ? void 0 : cachedInfo.fileName) !== null;
        if (!isCachedInfoFileNameValid) {
            logger.warn(`Cached update info is corrupted: no fileName, directory for cached update will be cleaned`);
            await this.cleanCacheDirForPendingUpdate();
            return null;
        }
        if (fileInfo.info.sha512 !== cachedInfo.sha512) {
            logger.info(`Cached update sha512 checksum doesn't match the latest available update. New update must be downloaded. Cached: ${cachedInfo.sha512}, expected: ${fileInfo.info.sha512}. Directory for cached update will be cleaned`);
            await this.cleanCacheDirForPendingUpdate();
            return null;
        }
        const updateFile = path.join(this.cacheDirForPendingUpdate, cachedInfo.fileName);
        if (!(await (0, fs_extra_1.pathExists)(updateFile))) {
            logger.info("Cached update file doesn't exist");
            return null;
        }
        const sha512 = await hashFile(updateFile);
        if (fileInfo.info.sha512 !== sha512) {
            logger.warn(`Sha512 checksum doesn't match the latest available update. New update must be downloaded. Cached: ${sha512}, expected: ${fileInfo.info.sha512}`);
            await this.cleanCacheDirForPendingUpdate();
            return null;
        }
        this._downloadedFileInfo = cachedInfo;
        return updateFile;
    }
    getUpdateInfoFile() {
        return path.join(this.cacheDirForPendingUpdate, "update-info.json");
    }
}
exports.DownloadedUpdateHelper = DownloadedUpdateHelper;
function hashFile(file, algorithm = "sha512", encoding = "base64", options) {
    return new Promise((resolve, reject) => {
        const hash = (0, crypto_1.createHash)(algorithm);
        hash.on("error", reject).setEncoding(encoding);
        (0, fs_1.createReadStream)(file, { ...options, highWaterMark: 1024 * 1024 /* better to use more memory but hash faster */ })
            .on("error", reject)
            .on("end", () => {
            hash.end();
            resolve(hash.read());
        })
            .pipe(hash, { end: false });
    });
}
async function createTempUpdateFile(name, cacheDir, log) {
    // https://github.com/electron-userland/electron-builder/pull/2474#issuecomment-366481912
    let nameCounter = 0;
    let result = path.join(cacheDir, name);
    for (let i = 0; i < 3; i++) {
        try {
            await (0, fs_extra_1.unlink)(result);
            return result;
        }
        catch (e) {
            if (e.code === "ENOENT") {
                return result;
            }
            log.warn(`Error on remove temp update file: ${e}`);
            result = path.join(cacheDir, `${nameCounter++}-${name}`);
        }
    }
    return result;
}
{"version":3,"file":"DownloadedUpdateHelper.js","sourceRoot":"","sources":["../src/DownloadedUpdateHelper.ts"],"names":[],"mappings":";;;AAqLA,oDAkBC;AAtMD,mCAAmC;AACnC,2BAAqC;AACrC,aAAa;AACb,0CAAyC;AAGzC,uCAA6E;AAC7E,6BAA4B;AAE5B,gBAAgB;AAChB,MAAa,sBAAsB;IAOjC,YAAqB,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;QAN7B,UAAK,GAAkB,IAAI,CAAA;QAC3B,iBAAY,GAAkB,IAAI,CAAA;QAElC,gBAAW,GAAsB,IAAI,CAAA;QACrC,aAAQ,GAAkC,IAAI,CAAA;QAI9C,wBAAmB,GAA4B,IAAI,CAAA;IAFnB,CAAC;IAGzC,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAA;IACjC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED,IAAI,wBAAwB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,UAAkB,EAAE,UAAsB,EAAE,QAAgC,EAAE,MAAc;QACvH,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;YAClF,gEAAgE;YAChE,0CAA0C;YAC1C,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAA,qBAAU,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBAC1H,OAAO,UAAU,CAAA;YACnB,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC9E,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,yCAAyC,UAAU,IAAI,CAAC,CAAA;QACpE,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAA;QAC7B,OAAO,gBAAgB,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,cAAsB,EACtB,WAA0B,EAC1B,WAAuB,EACvB,QAAgC,EAChC,cAAsB,EACtB,WAAoB;QAEpB,IAAI,CAAC,KAAK,GAAG,cAAc,CAAA;QAC3B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;QAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,mBAAmB,GAAG;YACzB,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;YAC5B,qBAAqB,EAAE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,KAAK,IAAI;SACpE,CAAA;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAA,qBAAU,EAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAA;QACtE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAA;IAC5C,CAAC;IAEO,KAAK,CAAC,6BAA6B;QACzC,IAAI,CAAC;YACH,oBAAoB;YACpB,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QAC/C,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;YACjB,SAAS;QACX,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,wBAAwB,CAAC,QAAgC,EAAE,MAAc;QACrF,MAAM,kBAAkB,GAAW,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAE3D,MAAM,uBAAuB,GAAG,MAAM,IAAA,qBAAU,EAAC,kBAAkB,CAAC,CAAA;QACpE,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,UAA4B,CAAA;QAChC,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,IAAA,mBAAQ,EAAC,kBAAkB,CAAC,CAAA;QACjD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,OAAO,GAAG,iCAAiC,CAAA;YAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAA;gBAC1C,OAAO,IAAI,oBAAoB,KAAK,CAAC,OAAO,GAAG,CAAA;YACjD,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACpB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,yBAAyB,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,MAAK,IAAI,CAAA;QAC/D,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAA;YACxG,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAA;YAC1C,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CACT,mHAAmH,UAAU,CAAC,MAAM,eAAe,QAAQ,CAAC,IAAI,CAAC,MAAM,+CAA+C,CACvN,CAAA;YACD,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAA;YAC1C,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;QAChF,IAAI,CAAC,CAAC,MAAM,IAAA,qBAAU,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;YAC/C,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAA;QACzC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,qGAAqG,MAAM,eAAe,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;YAC7J,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAA;YAC1C,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAA;QACrC,OAAO,UAAU,CAAA;IACnB,CAAC;IAEO,iBAAiB;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,kBAAkB,CAAC,CAAA;IACrE,CAAC;CACF;AAnJD,wDAmJC;AAQD,SAAS,QAAQ,CAAC,IAAY,EAAE,SAAS,GAAG,QAAQ,EAAE,WAA6B,QAAQ,EAAE,OAAa;IACxG,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAA;QAClC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAE9C,IAAA,qBAAgB,EAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC,+CAA+C,EAAE,CAAC;aAC/G,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;aACnB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACd,IAAI,CAAC,GAAG,EAAE,CAAA;YACV,OAAO,CAAC,IAAI,CAAC,IAAI,EAAY,CAAC,CAAA;QAChC,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,oBAAoB,CAAC,IAAY,EAAE,QAAgB,EAAE,GAAW;IACpF,yFAAyF;IACzF,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,IAAA,iBAAM,EAAC,MAAM,CAAC,CAAA;YACpB,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxB,OAAO,MAAM,CAAA;YACf,CAAC;YAED,GAAG,CAAC,IAAI,CAAC,qCAAqC,CAAC,EAAE,CAAC,CAAA;YAClD,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;QAC1D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC","sourcesContent":["import { UpdateInfo } from \"builder-util-runtime\"\nimport { createHash } from \"crypto\"\nimport { createReadStream } from \"fs\"\n// @ts-ignore\nimport * as isEqual from \"lodash.isequal\"\nimport { ResolvedUpdateFileInfo } from \"./types\"\nimport { Logger } from \"./types\"\nimport { pathExists, readJson, emptyDir, outputJson, unlink } from \"fs-extra\"\nimport * as path from \"path\"\n\n/** @private **/\nexport class DownloadedUpdateHelper {\n  private _file: string | null = null\n  private _packageFile: string | null = null\n\n  private versionInfo: UpdateInfo | null = null\n  private fileInfo: ResolvedUpdateFileInfo | null = null\n\n  constructor(readonly cacheDir: string) {}\n\n  private _downloadedFileInfo: CachedUpdateInfo | null = null\n  get downloadedFileInfo(): CachedUpdateInfo | null {\n    return this._downloadedFileInfo\n  }\n\n  get file(): string | null {\n    return this._file\n  }\n\n  get packageFile(): string | null {\n    return this._packageFile\n  }\n\n  get cacheDirForPendingUpdate(): string {\n    return path.join(this.cacheDir, \"pending\")\n  }\n\n  async validateDownloadedPath(updateFile: string, updateInfo: UpdateInfo, fileInfo: ResolvedUpdateFileInfo, logger: Logger): Promise<string | null> {\n    if (this.versionInfo != null && this.file === updateFile && this.fileInfo != null) {\n      // update has already been downloaded from this running instance\n      // check here only existence, not checksum\n      if (isEqual(this.versionInfo, updateInfo) && isEqual(this.fileInfo.info, fileInfo.info) && (await pathExists(updateFile))) {\n        return updateFile\n      } else {\n        return null\n      }\n    }\n\n    // update has already been downloaded from some previous app launch\n    const cachedUpdateFile = await this.getValidCachedUpdateFile(fileInfo, logger)\n    if (cachedUpdateFile === null) {\n      return null\n    }\n    logger.info(`Update has already been downloaded to ${updateFile}).`)\n    this._file = cachedUpdateFile\n    return cachedUpdateFile\n  }\n\n  async setDownloadedFile(\n    downloadedFile: string,\n    packageFile: string | null,\n    versionInfo: UpdateInfo,\n    fileInfo: ResolvedUpdateFileInfo,\n    updateFileName: string,\n    isSaveCache: boolean\n  ): Promise<void> {\n    this._file = downloadedFile\n    this._packageFile = packageFile\n    this.versionInfo = versionInfo\n    this.fileInfo = fileInfo\n    this._downloadedFileInfo = {\n      fileName: updateFileName,\n      sha512: fileInfo.info.sha512,\n      isAdminRightsRequired: fileInfo.info.isAdminRightsRequired === true,\n    }\n\n    if (isSaveCache) {\n      await outputJson(this.getUpdateInfoFile(), this._downloadedFileInfo)\n    }\n  }\n\n  async clear(): Promise<void> {\n    this._file = null\n    this._packageFile = null\n    this.versionInfo = null\n    this.fileInfo = null\n    await this.cleanCacheDirForPendingUpdate()\n  }\n\n  private async cleanCacheDirForPendingUpdate(): Promise<void> {\n    try {\n      // remove stale data\n      await emptyDir(this.cacheDirForPendingUpdate)\n    } catch (_ignore) {\n      // ignore\n    }\n  }\n\n  /**\n   * Returns \"update-info.json\" which is created in the update cache directory's \"pending\" subfolder after the first update is downloaded.  If the update file does not exist then the cache is cleared and recreated.  If the update file exists then its properties are validated.\n   * @param fileInfo\n   * @param logger\n   */\n  private async getValidCachedUpdateFile(fileInfo: ResolvedUpdateFileInfo, logger: Logger): Promise<string | null> {\n    const updateInfoFilePath: string = this.getUpdateInfoFile()\n\n    const doesUpdateInfoFileExist = await pathExists(updateInfoFilePath)\n    if (!doesUpdateInfoFileExist) {\n      return null\n    }\n\n    let cachedInfo: CachedUpdateInfo\n    try {\n      cachedInfo = await readJson(updateInfoFilePath)\n    } catch (error: any) {\n      let message = `No cached update info available`\n      if (error.code !== \"ENOENT\") {\n        await this.cleanCacheDirForPendingUpdate()\n        message += ` (error on read: ${error.message})`\n      }\n      logger.info(message)\n      return null\n    }\n\n    const isCachedInfoFileNameValid = cachedInfo?.fileName !== null\n    if (!isCachedInfoFileNameValid) {\n      logger.warn(`Cached update info is corrupted: no fileName, directory for cached update will be cleaned`)\n      await this.cleanCacheDirForPendingUpdate()\n      return null\n    }\n\n    if (fileInfo.info.sha512 !== cachedInfo.sha512) {\n      logger.info(\n        `Cached update sha512 checksum doesn't match the latest available update. New update must be downloaded. Cached: ${cachedInfo.sha512}, expected: ${fileInfo.info.sha512}. Directory for cached update will be cleaned`\n      )\n      await this.cleanCacheDirForPendingUpdate()\n      return null\n    }\n\n    const updateFile = path.join(this.cacheDirForPendingUpdate, cachedInfo.fileName)\n    if (!(await pathExists(updateFile))) {\n      logger.info(\"Cached update file doesn't exist\")\n      return null\n    }\n\n    const sha512 = await hashFile(updateFile)\n    if (fileInfo.info.sha512 !== sha512) {\n      logger.warn(`Sha512 checksum doesn't match the latest available update. New update must be downloaded. Cached: ${sha512}, expected: ${fileInfo.info.sha512}`)\n      await this.cleanCacheDirForPendingUpdate()\n      return null\n    }\n    this._downloadedFileInfo = cachedInfo\n    return updateFile\n  }\n\n  private getUpdateInfoFile(): string {\n    return path.join(this.cacheDirForPendingUpdate, \"update-info.json\")\n  }\n}\n\ninterface CachedUpdateInfo {\n  fileName: string\n  sha512: string\n  readonly isAdminRightsRequired: boolean\n}\n\nfunction hashFile(file: string, algorithm = \"sha512\", encoding: \"base64\" | \"hex\" = \"base64\", options?: any): Promise<string> {\n  return new Promise<string>((resolve, reject) => {\n    const hash = createHash(algorithm)\n    hash.on(\"error\", reject).setEncoding(encoding)\n\n    createReadStream(file, { ...options, highWaterMark: 1024 * 1024 /* better to use more memory but hash faster */ })\n      .on(\"error\", reject)\n      .on(\"end\", () => {\n        hash.end()\n        resolve(hash.read() as string)\n      })\n      .pipe(hash, { end: false })\n  })\n}\n\nexport async function createTempUpdateFile(name: string, cacheDir: string, log: Logger): Promise<string> {\n  // https://github.com/electron-userland/electron-builder/pull/2474#issuecomment-366481912\n  let nameCounter = 0\n  let result = path.join(cacheDir, name)\n  for (let i = 0; i < 3; i++) {\n    try {\n      await unlink(result)\n      return result\n    } catch (e: any) {\n      if (e.code === \"ENOENT\") {\n        return result\n      }\n\n      log.warn(`Error on remove temp update file: ${e}`)\n      result = path.join(cacheDir, `${nameCounter++}-${name}`)\n    }\n  }\n  return result\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ElectronAppAdapter = void 0;
const path = require("path");
const AppAdapter_1 = require("./AppAdapter");
class ElectronAppAdapter {
    constructor(app = require("electron").app) {
        this.app = app;
    }
    whenReady() {
        return this.app.whenReady();
    }
    get version() {
        return this.app.getVersion();
    }
    get name() {
        return this.app.getName();
    }
    get isPackaged() {
        return this.app.isPackaged === true;
    }
    get appUpdateConfigPath() {
        return this.isPackaged ? path.join(process.resourcesPath, "app-update.yml") : path.join(this.app.getAppPath(), "dev-app-update.yml");
    }
    get userDataPath() {
        return this.app.getPath("userData");
    }
    get baseCachePath() {
        return (0, AppAdapter_1.getAppCacheDir)();
    }
    quit() {
        this.app.quit();
    }
    relaunch() {
        this.app.relaunch();
    }
    onQuit(handler) {
        this.app.once("quit", (_, exitCode) => handler(exitCode));
    }
}
exports.ElectronAppAdapter = ElectronAppAdapter;
{"version":3,"file":"ElectronAppAdapter.js","sourceRoot":"","sources":["../src/ElectronAppAdapter.ts"],"names":[],"mappings":";;;AAAA,6BAA4B;AAC5B,6CAAyD;AAEzD,MAAa,kBAAkB;IAC7B,YAA6B,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG;QAA7B,QAAG,GAAH,GAAG,CAA0B;IAAG,CAAC;IAE9D,SAAS;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAA;IAC7B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAA;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;IAC3B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAA;IACrC,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,oBAAoB,CAAC,CAAA;IACtI,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACrC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAA,2BAAc,GAAE,CAAA;IACzB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;IACjB,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;IACrB,CAAC;IAED,MAAM,CAAC,OAAmC;QACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAiB,EAAE,QAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;IACnF,CAAC;CACF;AA1CD,gDA0CC","sourcesContent":["import * as path from \"path\"\nimport { AppAdapter, getAppCacheDir } from \"./AppAdapter\"\n\nexport class ElectronAppAdapter implements AppAdapter {\n  constructor(private readonly app = require(\"electron\").app) {}\n\n  whenReady(): Promise<void> {\n    return this.app.whenReady()\n  }\n\n  get version(): string {\n    return this.app.getVersion()\n  }\n\n  get name(): string {\n    return this.app.getName()\n  }\n\n  get isPackaged(): boolean {\n    return this.app.isPackaged === true\n  }\n\n  get appUpdateConfigPath(): string {\n    return this.isPackaged ? path.join(process.resourcesPath, \"app-update.yml\") : path.join(this.app.getAppPath(), \"dev-app-update.yml\")\n  }\n\n  get userDataPath(): string {\n    return this.app.getPath(\"userData\")\n  }\n\n  get baseCachePath(): string {\n    return getAppCacheDir()\n  }\n\n  quit(): void {\n    this.app.quit()\n  }\n\n  relaunch(): void {\n    this.app.relaunch()\n  }\n\n  onQuit(handler: (exitCode: number) => void): void {\n    this.app.once(\"quit\", (_: Electron.Event, exitCode: number) => handler(exitCode))\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MacUpdater = void 0;
const builder_util_runtime_1 = require("builder-util-runtime");
const fs_extra_1 = require("fs-extra");
const fs_1 = require("fs");
const path = require("path");
const http_1 = require("http");
const AppUpdater_1 = require("./AppUpdater");
const Provider_1 = require("./providers/Provider");
const child_process_1 = require("child_process");
const crypto_1 = require("crypto");
class MacUpdater extends AppUpdater_1.AppUpdater {
    constructor(options, app) {
        super(options, app);
        this.nativeUpdater = require("electron").autoUpdater;
        this.squirrelDownloadedUpdate = false;
        this.nativeUpdater.on("error", it => {
            this._logger.warn(it);
            this.emit("error", it);
        });
        this.nativeUpdater.on("update-downloaded", () => {
            this.squirrelDownloadedUpdate = true;
            this.debug("nativeUpdater.update-downloaded");
        });
    }
    debug(message) {
        if (this._logger.debug != null) {
            this._logger.debug(message);
        }
    }
    closeServerIfExists() {
        if (this.server) {
            this.debug("Closing proxy server");
            this.server.close(err => {
                if (err) {
                    this.debug("proxy server wasn't already open, probably attempted closing again as a safety check before quit");
                }
            });
        }
    }
    async doDownloadUpdate(downloadUpdateOptions) {
        let files = downloadUpdateOptions.updateInfoAndProvider.provider.resolveFiles(downloadUpdateOptions.updateInfoAndProvider.info);
        const log = this._logger;
        // detect if we are running inside Rosetta emulation
        const sysctlRosettaInfoKey = "sysctl.proc_translated";
        let isRosetta = false;
        try {
            this.debug("Checking for macOS Rosetta environment");
            const result = (0, child_process_1.execFileSync)("sysctl", [sysctlRosettaInfoKey], { encoding: "utf8" });
            isRosetta = result.includes(`${sysctlRosettaInfoKey}: 1`);
            log.info(`Checked for macOS Rosetta environment (isRosetta=${isRosetta})`);
        }
        catch (e) {
            log.warn(`sysctl shell command to check for macOS Rosetta environment failed: ${e}`);
        }
        let isArm64Mac = false;
        try {
            this.debug("Checking for arm64 in uname");
            const result = (0, child_process_1.execFileSync)("uname", ["-a"], { encoding: "utf8" });
            const isArm = result.includes("ARM");
            log.info(`Checked 'uname -a': arm64=${isArm}`);
            isArm64Mac = isArm64Mac || isArm;
        }
        catch (e) {
            log.warn(`uname shell command to check for arm64 failed: ${e}`);
        }
        isArm64Mac = isArm64Mac || process.arch === "arm64" || isRosetta;
        // allow arm64 macs to install universal or rosetta2(x64) - https://github.com/electron-userland/electron-builder/pull/5524
        const isArm64 = (file) => { var _a; return file.url.pathname.includes("arm64") || ((_a = file.info.url) === null || _a === void 0 ? void 0 : _a.includes("arm64")); };
        if (isArm64Mac && files.some(isArm64)) {
            files = files.filter(file => isArm64Mac === isArm64(file));
        }
        else {
            files = files.filter(file => !isArm64(file));
        }
        const zipFileInfo = (0, Provider_1.findFile)(files, "zip", ["pkg", "dmg"]);
        if (zipFileInfo == null) {
            throw (0, builder_util_runtime_1.newError)(`ZIP file not provided: ${(0, builder_util_runtime_1.safeStringifyJson)(files)}`, "ERR_UPDATER_ZIP_FILE_NOT_FOUND");
        }
        const provider = downloadUpdateOptions.updateInfoAndProvider.provider;
        const CURRENT_MAC_APP_ZIP_FILE_NAME = "update.zip";
        return this.executeDownload({
            fileExtension: "zip",
            fileInfo: zipFileInfo,
            downloadUpdateOptions,
            task: async (destinationFile, downloadOptions) => {
                const cachedUpdateFilePath = path.join(this.downloadedUpdateHelper.cacheDir, CURRENT_MAC_APP_ZIP_FILE_NAME);
                const canDifferentialDownload = () => {
                    if (!(0, fs_extra_1.pathExistsSync)(cachedUpdateFilePath)) {
                        log.info("Unable to locate previous update.zip for differential download (is this first install?), falling back to full download");
                        return false;
                    }
                    return !downloadUpdateOptions.disableDifferentialDownload;
                };
                let differentialDownloadFailed = true;
                if (canDifferentialDownload()) {
                    differentialDownloadFailed = await this.differentialDownloadInstaller(zipFileInfo, downloadUpdateOptions, destinationFile, provider, CURRENT_MAC_APP_ZIP_FILE_NAME);
                }
                if (differentialDownloadFailed) {
                    await this.httpExecutor.download(zipFileInfo.url, destinationFile, downloadOptions);
                }
            },
            done: async (event) => {
                if (!downloadUpdateOptions.disableDifferentialDownload) {
                    try {
                        const cachedUpdateFilePath = path.join(this.downloadedUpdateHelper.cacheDir, CURRENT_MAC_APP_ZIP_FILE_NAME);
                        await (0, fs_extra_1.copyFile)(event.downloadedFile, cachedUpdateFilePath);
                    }
                    catch (error) {
                        this._logger.warn(`Unable to copy file for caching for future differential downloads: ${error.message}`);
                    }
                }
                return this.updateDownloaded(zipFileInfo, event);
            },
        });
    }
    async updateDownloaded(zipFileInfo, event) {
        var _a;
        const downloadedFile = event.downloadedFile;
        const updateFileSize = (_a = zipFileInfo.info.size) !== null && _a !== void 0 ? _a : (await (0, fs_extra_1.stat)(downloadedFile)).size;
        const log = this._logger;
        const logContext = `fileToProxy=${zipFileInfo.url.href}`;
        this.closeServerIfExists();
        this.debug(`Creating proxy server for native Squirrel.Mac (${logContext})`);
        this.server = (0, http_1.createServer)();
        this.debug(`Proxy server for native Squirrel.Mac is created (${logContext})`);
        this.server.on("close", () => {
            log.info(`Proxy server for native Squirrel.Mac is closed (${logContext})`);
        });
        // must be called after server is listening, otherwise address is null
        const getServerUrl = (s) => {
            const address = s.address();
            if (typeof address === "string") {
                return address;
            }
            return `http://127.0.0.1:${address === null || address === void 0 ? void 0 : address.port}`;
        };
        return await new Promise((resolve, reject) => {
            const pass = (0, crypto_1.randomBytes)(64).toString("base64").replace(/\//g, "_").replace(/\+/g, "-");
            const authInfo = Buffer.from(`autoupdater:${pass}`, "ascii");
            // insecure random is ok
            const fileUrl = `/${(0, crypto_1.randomBytes)(64).toString("hex")}.zip`;
            this.server.on("request", (request, response) => {
                const requestUrl = request.url;
                log.info(`${requestUrl} requested`);
                if (requestUrl === "/") {
                    // check for basic auth header
                    if (!request.headers.authorization || request.headers.authorization.indexOf("Basic ") === -1) {
                        response.statusCode = 401;
                        response.statusMessage = "Invalid Authentication Credentials";
                        response.end();
                        log.warn("No authenthication info");
                        return;
                    }
                    // verify auth credentials
                    const base64Credentials = request.headers.authorization.split(" ")[1];
                    const credentials = Buffer.from(base64Credentials, "base64").toString("ascii");
                    const [username, password] = credentials.split(":");
                    if (username !== "autoupdater" || password !== pass) {
                        response.statusCode = 401;
                        response.statusMessage = "Invalid Authentication Credentials";
                        response.end();
                        log.warn("Invalid authenthication credentials");
                        return;
                    }
                    const data = Buffer.from(`{ "url": "${getServerUrl(this.server)}${fileUrl}" }`);
                    response.writeHead(200, { "Content-Type": "application/json", "Content-Length": data.length });
                    response.end(data);
                    return;
                }
                if (!requestUrl.startsWith(fileUrl)) {
                    log.warn(`${requestUrl} requested, but not supported`);
                    response.writeHead(404);
                    response.end();
                    return;
                }
                log.info(`${fileUrl} requested by Squirrel.Mac, pipe ${downloadedFile}`);
                let errorOccurred = false;
                response.on("finish", () => {
                    if (!errorOccurred) {
                        this.nativeUpdater.removeListener("error", reject);
                        resolve([]);
                    }
                });
                const readStream = (0, fs_1.createReadStream)(downloadedFile);
                readStream.on("error", error => {
                    try {
                        response.end();
                    }
                    catch (e) {
                        log.warn(`cannot end response: ${e}`);
                    }
                    errorOccurred = true;
                    this.nativeUpdater.removeListener("error", reject);
                    reject(new Error(`Cannot pipe "${downloadedFile}": ${error}`));
                });
                response.writeHead(200, {
                    "Content-Type": "application/zip",
                    "Content-Length": updateFileSize,
                });
                readStream.pipe(response);
            });
            this.debug(`Proxy server for native Squirrel.Mac is starting to listen (${logContext})`);
            this.server.listen(0, "127.0.0.1", () => {
                this.debug(`Proxy server for native Squirrel.Mac is listening (address=${getServerUrl(this.server)}, ${logContext})`);
                this.nativeUpdater.setFeedURL({
                    url: getServerUrl(this.server),
                    headers: {
                        "Cache-Control": "no-cache",
                        Authorization: `Basic ${authInfo.toString("base64")}`,
                    },
                });
                // The update has been downloaded and is ready to be served to Squirrel
                this.dispatchUpdateDownloaded(event);
                if (this.autoInstallOnAppQuit) {
                    this.nativeUpdater.once("error", reject);
                    // This will trigger fetching and installing the file on Squirrel side
                    this.nativeUpdater.checkForUpdates();
                }
                else {
                    resolve([]);
                }
            });
        });
    }
    handleUpdateDownloaded() {
        if (this.autoRunAppAfterInstall) {
            this.nativeUpdater.quitAndInstall();
        }
        else {
            this.app.quit();
        }
        this.closeServerIfExists();
    }
    quitAndInstall() {
        if (this.squirrelDownloadedUpdate) {
            // update already fetched by Squirrel, it's ready to install
            this.handleUpdateDownloaded();
        }
        else {
            // Quit and install as soon as Squirrel get the update
            this.nativeUpdater.on("update-downloaded", () => this.handleUpdateDownloaded());
            if (!this.autoInstallOnAppQuit) {
                /**
                 * If this was not `true` previously then MacUpdater.doDownloadUpdate()
                 * would not actually initiate the downloading by electron's autoUpdater
                 */
                this.nativeUpdater.checkForUpdates();
            }
        }
    }
}
exports.MacUpdater = MacUpdater;
{"version":3,"file":"MacUpdater.js","sourceRoot":"","sources":["../src/MacUpdater.ts"],"names":[],"mappings":";;;AAAA,+DAAqF;AACrF,uCAAyD;AACzD,2BAAqC;AACrC,6BAA4B;AAC5B,+BAA4E;AAE5E,6CAAgE;AAGhE,mDAA+C;AAE/C,iDAA4C;AAC5C,mCAAoC;AAEpC,MAAa,UAAW,SAAQ,uBAAU;IAOxC,YAAY,OAA2B,EAAE,GAAgB;QACvD,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAPJ,kBAAa,GAAgB,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAA;QAErE,6BAAwB,GAAG,KAAK,CAAA;QAOtC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE;YAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACrB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC9C,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAA;YACpC,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,OAAe;QAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;YAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACtB,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,CAAC,KAAK,CAAC,kGAAkG,CAAC,CAAA;gBAChH,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,qBAA4C;QAC3E,IAAI,KAAK,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;QAE/H,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAA;QAExB,oDAAoD;QACpD,MAAM,oBAAoB,GAAG,wBAAwB,CAAA;QACrD,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;YACpD,MAAM,MAAM,GAAG,IAAA,4BAAY,EAAC,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;YACnF,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,oBAAoB,KAAK,CAAC,CAAA;YACzD,GAAG,CAAC,IAAI,CAAC,oDAAoD,SAAS,GAAG,CAAC,CAAA;QAC5E,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC,uEAAuE,CAAC,EAAE,CAAC,CAAA;QACtF,CAAC;QAED,IAAI,UAAU,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;YACzC,MAAM,MAAM,GAAG,IAAA,4BAAY,EAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;YAClE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACpC,GAAG,CAAC,IAAI,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAA;YAC9C,UAAU,GAAG,UAAU,IAAI,KAAK,CAAA;QAClC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC,kDAAkD,CAAC,EAAE,CAAC,CAAA;QACjE,CAAC;QAED,UAAU,GAAG,UAAU,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAA;QAEhE,2HAA2H;QAC3H,MAAM,OAAO,GAAG,CAAC,IAA4B,EAAE,EAAE,WAAC,OAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAI,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,0CAAE,QAAQ,CAAC,OAAO,CAAC,CAAA,CAAA,EAAA,CAAA;QACzH,IAAI,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QAC5D,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9C,CAAC;QAED,MAAM,WAAW,GAAG,IAAA,mBAAQ,EAAC,KAAK,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;QAE1D,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,IAAA,+BAAQ,EAAC,0BAA0B,IAAA,wCAAiB,EAAC,KAAK,CAAC,EAAE,EAAE,gCAAgC,CAAC,CAAA;QACxG,CAAC;QAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,QAAQ,CAAA;QACrE,MAAM,6BAA6B,GAAG,YAAY,CAAA;QAElD,OAAO,IAAI,CAAC,eAAe,CAAC;YAC1B,aAAa,EAAE,KAAK;YACpB,QAAQ,EAAE,WAAW;YACrB,qBAAqB;YACrB,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,EAAE;gBAC/C,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAuB,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAA;gBAC5G,MAAM,uBAAuB,GAAG,GAAG,EAAE;oBACnC,IAAI,CAAC,IAAA,yBAAc,EAAC,oBAAoB,CAAC,EAAE,CAAC;wBAC1C,GAAG,CAAC,IAAI,CAAC,wHAAwH,CAAC,CAAA;wBAClI,OAAO,KAAK,CAAA;oBACd,CAAC;oBACD,OAAO,CAAC,qBAAqB,CAAC,2BAA2B,CAAA;gBAC3D,CAAC,CAAA;gBACD,IAAI,0BAA0B,GAAG,IAAI,CAAA;gBACrC,IAAI,uBAAuB,EAAE,EAAE,CAAC;oBAC9B,0BAA0B,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,WAAW,EAAE,qBAAqB,EAAE,eAAe,EAAE,QAAQ,EAAE,6BAA6B,CAAC,CAAA;gBACrK,CAAC;gBAED,IAAI,0BAA0B,EAAE,CAAC;oBAC/B,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,eAAe,CAAC,CAAA;gBACrF,CAAC;YACH,CAAC;YACD,IAAI,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;gBAClB,IAAI,CAAC,qBAAqB,CAAC,2BAA2B,EAAE,CAAC;oBACvD,IAAI,CAAC;wBACH,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAuB,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAA;wBAC5G,MAAM,IAAA,mBAAQ,EAAC,KAAK,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAA;oBAC5D,CAAC;oBAAC,OAAO,KAAU,EAAE,CAAC;wBACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sEAAsE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;oBAC1G,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;YAClD,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,WAAmC,EAAE,KAA4B;;QAC9F,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAA;QAC3C,MAAM,cAAc,GAAG,MAAA,WAAW,CAAC,IAAI,CAAC,IAAI,mCAAI,CAAC,MAAM,IAAA,eAAI,EAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAA;QAEjF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAA;QACxB,MAAM,UAAU,GAAG,eAAe,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACxD,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAC1B,IAAI,CAAC,KAAK,CAAC,kDAAkD,UAAU,GAAG,CAAC,CAAA;QAC3E,IAAI,CAAC,MAAM,GAAG,IAAA,mBAAY,GAAE,CAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,oDAAoD,UAAU,GAAG,CAAC,CAAA;QAC7E,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC3B,GAAG,CAAC,IAAI,CAAC,mDAAmD,UAAU,GAAG,CAAC,CAAA;QAC5E,CAAC,CAAC,CAAA;QAEF,sEAAsE;QACtE,MAAM,YAAY,GAAG,CAAC,CAAS,EAAU,EAAE;YACzC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAA;YAC3B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,OAAO,OAAO,CAAA;YAChB,CAAC;YACD,OAAO,oBAAoB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAA;QAC5C,CAAC,CAAA;QAED,OAAO,MAAM,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1D,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YACvF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,EAAE,OAAO,CAAC,CAAA;YAE5D,wBAAwB;YACxB,MAAM,OAAO,GAAG,IAAI,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAA;YACzD,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAwB,EAAE,QAAwB,EAAE,EAAE;gBAChF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAI,CAAA;gBAC/B,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,YAAY,CAAC,CAAA;gBACnC,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;oBACvB,8BAA8B;oBAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;wBAC7F,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAA;wBACzB,QAAQ,CAAC,aAAa,GAAG,oCAAoC,CAAA;wBAC7D,QAAQ,CAAC,GAAG,EAAE,CAAA;wBACd,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;wBACnC,OAAM;oBACR,CAAC;oBAED,0BAA0B;oBAC1B,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;oBACrE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;oBAC9E,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBACnD,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;wBACpD,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAA;wBACzB,QAAQ,CAAC,aAAa,GAAG,oCAAoC,CAAA;wBAC7D,QAAQ,CAAC,GAAG,EAAE,CAAA;wBACd,GAAG,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;wBAC/C,OAAM;oBACR,CAAC;oBAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,YAAY,CAAC,IAAI,CAAC,MAAO,CAAC,GAAG,OAAO,KAAK,CAAC,CAAA;oBAChF,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;oBAC9F,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;oBAClB,OAAM;gBACR,CAAC;gBAED,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpC,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,+BAA+B,CAAC,CAAA;oBACtD,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;oBACvB,QAAQ,CAAC,GAAG,EAAE,CAAA;oBACd,OAAM;gBACR,CAAC;gBAED,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,oCAAoC,cAAc,EAAE,CAAC,CAAA;gBAExE,IAAI,aAAa,GAAG,KAAK,CAAA;gBACzB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;oBACzB,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;wBAClD,OAAO,CAAC,EAAE,CAAC,CAAA;oBACb,CAAC;gBACH,CAAC,CAAC,CAAA;gBAEF,MAAM,UAAU,GAAG,IAAA,qBAAgB,EAAC,cAAc,CAAC,CAAA;gBACnD,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;oBAC7B,IAAI,CAAC;wBACH,QAAQ,CAAC,GAAG,EAAE,CAAA;oBAChB,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBAChB,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAA;oBACvC,CAAC;oBACD,aAAa,GAAG,IAAI,CAAA;oBACpB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;oBAClD,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,cAAc,MAAM,KAAK,EAAE,CAAC,CAAC,CAAA;gBAChE,CAAC,CAAC,CAAA;gBAEF,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE;oBACtB,cAAc,EAAE,iBAAiB;oBACjC,gBAAgB,EAAE,cAAc;iBACjC,CAAC,CAAA;gBACF,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC3B,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,KAAK,CAAC,+DAA+D,UAAU,GAAG,CAAC,CAAA;YAExF,IAAI,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;gBACvC,IAAI,CAAC,KAAK,CAAC,8DAA8D,YAAY,CAAC,IAAI,CAAC,MAAO,CAAC,KAAK,UAAU,GAAG,CAAC,CAAA;gBACtH,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;oBAC5B,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,MAAO,CAAC;oBAC/B,OAAO,EAAE;wBACP,eAAe,EAAE,UAAU;wBAC3B,aAAa,EAAE,SAAS,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;qBACtD;iBACF,CAAC,CAAA;gBAEF,uEAAuE;gBACvE,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAA;gBAEpC,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;oBACxC,sEAAsE;oBACtE,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAA;gBACtC,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,EAAE,CAAC,CAAA;gBACb,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,sBAAsB;QAC5B,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACjB,CAAC;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAA;IAC5B,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAClC,4DAA4D;YAC5D,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAA;YAE/E,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC/B;;;mBAGG;gBACH,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAA;YACtC,CAAC;QACH,CAAC;IACH,CAAC;CACF;AA5QD,gCA4QC","sourcesContent":["import { AllPublishOptions, newError, safeStringifyJson } from \"builder-util-runtime\"\nimport { pathExistsSync, stat, copyFile } from \"fs-extra\"\nimport { createReadStream } from \"fs\"\nimport * as path from \"path\"\nimport { createServer, IncomingMessage, Server, ServerResponse } from \"http\"\nimport { AppAdapter } from \"./AppAdapter\"\nimport { AppUpdater, DownloadUpdateOptions } from \"./AppUpdater\"\nimport { ResolvedUpdateFileInfo } from \"./main\"\nimport { UpdateDownloadedEvent } from \"./types\"\nimport { findFile } from \"./providers/Provider\"\nimport AutoUpdater = Electron.AutoUpdater\nimport { execFileSync } from \"child_process\"\nimport { randomBytes } from \"crypto\"\n\nexport class MacUpdater extends AppUpdater {\n  private readonly nativeUpdater: AutoUpdater = require(\"electron\").autoUpdater\n\n  private squirrelDownloadedUpdate = false\n\n  private server?: Server\n\n  constructor(options?: AllPublishOptions, app?: AppAdapter) {\n    super(options, app)\n\n    this.nativeUpdater.on(\"error\", it => {\n      this._logger.warn(it)\n      this.emit(\"error\", it)\n    })\n    this.nativeUpdater.on(\"update-downloaded\", () => {\n      this.squirrelDownloadedUpdate = true\n      this.debug(\"nativeUpdater.update-downloaded\")\n    })\n  }\n\n  private debug(message: string): void {\n    if (this._logger.debug != null) {\n      this._logger.debug(message)\n    }\n  }\n\n  private closeServerIfExists() {\n    if (this.server) {\n      this.debug(\"Closing proxy server\")\n      this.server.close(err => {\n        if (err) {\n          this.debug(\"proxy server wasn't already open, probably attempted closing again as a safety check before quit\")\n        }\n      })\n    }\n  }\n\n  protected async doDownloadUpdate(downloadUpdateOptions: DownloadUpdateOptions): Promise<Array<string>> {\n    let files = downloadUpdateOptions.updateInfoAndProvider.provider.resolveFiles(downloadUpdateOptions.updateInfoAndProvider.info)\n\n    const log = this._logger\n\n    // detect if we are running inside Rosetta emulation\n    const sysctlRosettaInfoKey = \"sysctl.proc_translated\"\n    let isRosetta = false\n    try {\n      this.debug(\"Checking for macOS Rosetta environment\")\n      const result = execFileSync(\"sysctl\", [sysctlRosettaInfoKey], { encoding: \"utf8\" })\n      isRosetta = result.includes(`${sysctlRosettaInfoKey}: 1`)\n      log.info(`Checked for macOS Rosetta environment (isRosetta=${isRosetta})`)\n    } catch (e: any) {\n      log.warn(`sysctl shell command to check for macOS Rosetta environment failed: ${e}`)\n    }\n\n    let isArm64Mac = false\n    try {\n      this.debug(\"Checking for arm64 in uname\")\n      const result = execFileSync(\"uname\", [\"-a\"], { encoding: \"utf8\" })\n      const isArm = result.includes(\"ARM\")\n      log.info(`Checked 'uname -a': arm64=${isArm}`)\n      isArm64Mac = isArm64Mac || isArm\n    } catch (e: any) {\n      log.warn(`uname shell command to check for arm64 failed: ${e}`)\n    }\n\n    isArm64Mac = isArm64Mac || process.arch === \"arm64\" || isRosetta\n\n    // allow arm64 macs to install universal or rosetta2(x64) - https://github.com/electron-userland/electron-builder/pull/5524\n    const isArm64 = (file: ResolvedUpdateFileInfo) => file.url.pathname.includes(\"arm64\") || file.info.url?.includes(\"arm64\")\n    if (isArm64Mac && files.some(isArm64)) {\n      files = files.filter(file => isArm64Mac === isArm64(file))\n    } else {\n      files = files.filter(file => !isArm64(file))\n    }\n\n    const zipFileInfo = findFile(files, \"zip\", [\"pkg\", \"dmg\"])\n\n    if (zipFileInfo == null) {\n      throw newError(`ZIP file not provided: ${safeStringifyJson(files)}`, \"ERR_UPDATER_ZIP_FILE_NOT_FOUND\")\n    }\n\n    const provider = downloadUpdateOptions.updateInfoAndProvider.provider\n    const CURRENT_MAC_APP_ZIP_FILE_NAME = \"update.zip\"\n\n    return this.executeDownload({\n      fileExtension: \"zip\",\n      fileInfo: zipFileInfo,\n      downloadUpdateOptions,\n      task: async (destinationFile, downloadOptions) => {\n        const cachedUpdateFilePath = path.join(this.downloadedUpdateHelper!.cacheDir, CURRENT_MAC_APP_ZIP_FILE_NAME)\n        const canDifferentialDownload = () => {\n          if (!pathExistsSync(cachedUpdateFilePath)) {\n            log.info(\"Unable to locate previous update.zip for differential download (is this first install?), falling back to full download\")\n            return false\n          }\n          return !downloadUpdateOptions.disableDifferentialDownload\n        }\n        let differentialDownloadFailed = true\n        if (canDifferentialDownload()) {\n          differentialDownloadFailed = await this.differentialDownloadInstaller(zipFileInfo, downloadUpdateOptions, destinationFile, provider, CURRENT_MAC_APP_ZIP_FILE_NAME)\n        }\n\n        if (differentialDownloadFailed) {\n          await this.httpExecutor.download(zipFileInfo.url, destinationFile, downloadOptions)\n        }\n      },\n      done: async event => {\n        if (!downloadUpdateOptions.disableDifferentialDownload) {\n          try {\n            const cachedUpdateFilePath = path.join(this.downloadedUpdateHelper!.cacheDir, CURRENT_MAC_APP_ZIP_FILE_NAME)\n            await copyFile(event.downloadedFile, cachedUpdateFilePath)\n          } catch (error: any) {\n            this._logger.warn(`Unable to copy file for caching for future differential downloads: ${error.message}`)\n          }\n        }\n        return this.updateDownloaded(zipFileInfo, event)\n      },\n    })\n  }\n\n  private async updateDownloaded(zipFileInfo: ResolvedUpdateFileInfo, event: UpdateDownloadedEvent): Promise<Array<string>> {\n    const downloadedFile = event.downloadedFile\n    const updateFileSize = zipFileInfo.info.size ?? (await stat(downloadedFile)).size\n\n    const log = this._logger\n    const logContext = `fileToProxy=${zipFileInfo.url.href}`\n    this.closeServerIfExists()\n    this.debug(`Creating proxy server for native Squirrel.Mac (${logContext})`)\n    this.server = createServer()\n    this.debug(`Proxy server for native Squirrel.Mac is created (${logContext})`)\n    this.server.on(\"close\", () => {\n      log.info(`Proxy server for native Squirrel.Mac is closed (${logContext})`)\n    })\n\n    // must be called after server is listening, otherwise address is null\n    const getServerUrl = (s: Server): string => {\n      const address = s.address()\n      if (typeof address === \"string\") {\n        return address\n      }\n      return `http://127.0.0.1:${address?.port}`\n    }\n\n    return await new Promise<Array<string>>((resolve, reject) => {\n      const pass = randomBytes(64).toString(\"base64\").replace(/\\//g, \"_\").replace(/\\+/g, \"-\")\n      const authInfo = Buffer.from(`autoupdater:${pass}`, \"ascii\")\n\n      // insecure random is ok\n      const fileUrl = `/${randomBytes(64).toString(\"hex\")}.zip`\n      this.server!.on(\"request\", (request: IncomingMessage, response: ServerResponse) => {\n        const requestUrl = request.url!\n        log.info(`${requestUrl} requested`)\n        if (requestUrl === \"/\") {\n          // check for basic auth header\n          if (!request.headers.authorization || request.headers.authorization.indexOf(\"Basic \") === -1) {\n            response.statusCode = 401\n            response.statusMessage = \"Invalid Authentication Credentials\"\n            response.end()\n            log.warn(\"No authenthication info\")\n            return\n          }\n\n          // verify auth credentials\n          const base64Credentials = request.headers.authorization.split(\" \")[1]\n          const credentials = Buffer.from(base64Credentials, \"base64\").toString(\"ascii\")\n          const [username, password] = credentials.split(\":\")\n          if (username !== \"autoupdater\" || password !== pass) {\n            response.statusCode = 401\n            response.statusMessage = \"Invalid Authentication Credentials\"\n            response.end()\n            log.warn(\"Invalid authenthication credentials\")\n            return\n          }\n\n          const data = Buffer.from(`{ \"url\": \"${getServerUrl(this.server!)}${fileUrl}\" }`)\n          response.writeHead(200, { \"Content-Type\": \"application/json\", \"Content-Length\": data.length })\n          response.end(data)\n          return\n        }\n\n        if (!requestUrl.startsWith(fileUrl)) {\n          log.warn(`${requestUrl} requested, but not supported`)\n          response.writeHead(404)\n          response.end()\n          return\n        }\n\n        log.info(`${fileUrl} requested by Squirrel.Mac, pipe ${downloadedFile}`)\n\n        let errorOccurred = false\n        response.on(\"finish\", () => {\n          if (!errorOccurred) {\n            this.nativeUpdater.removeListener(\"error\", reject)\n            resolve([])\n          }\n        })\n\n        const readStream = createReadStream(downloadedFile)\n        readStream.on(\"error\", error => {\n          try {\n            response.end()\n          } catch (e: any) {\n            log.warn(`cannot end response: ${e}`)\n          }\n          errorOccurred = true\n          this.nativeUpdater.removeListener(\"error\", reject)\n          reject(new Error(`Cannot pipe \"${downloadedFile}\": ${error}`))\n        })\n\n        response.writeHead(200, {\n          \"Content-Type\": \"application/zip\",\n          \"Content-Length\": updateFileSize,\n        })\n        readStream.pipe(response)\n      })\n\n      this.debug(`Proxy server for native Squirrel.Mac is starting to listen (${logContext})`)\n\n      this.server!.listen(0, \"127.0.0.1\", () => {\n        this.debug(`Proxy server for native Squirrel.Mac is listening (address=${getServerUrl(this.server!)}, ${logContext})`)\n        this.nativeUpdater.setFeedURL({\n          url: getServerUrl(this.server!),\n          headers: {\n            \"Cache-Control\": \"no-cache\",\n            Authorization: `Basic ${authInfo.toString(\"base64\")}`,\n          },\n        })\n\n        // The update has been downloaded and is ready to be served to Squirrel\n        this.dispatchUpdateDownloaded(event)\n\n        if (this.autoInstallOnAppQuit) {\n          this.nativeUpdater.once(\"error\", reject)\n          // This will trigger fetching and installing the file on Squirrel side\n          this.nativeUpdater.checkForUpdates()\n        } else {\n          resolve([])\n        }\n      })\n    })\n  }\n\n  private handleUpdateDownloaded() {\n    if (this.autoRunAppAfterInstall) {\n      this.nativeUpdater.quitAndInstall()\n    } else {\n      this.app.quit()\n    }\n    this.closeServerIfExists()\n  }\n\n  quitAndInstall(): void {\n    if (this.squirrelDownloadedUpdate) {\n      // update already fetched by Squirrel, it's ready to install\n      this.handleUpdateDownloaded()\n    } else {\n      // Quit and install as soon as Squirrel get the update\n      this.nativeUpdater.on(\"update-downloaded\", () => this.handleUpdateDownloaded())\n\n      if (!this.autoInstallOnAppQuit) {\n        /**\n         * If this was not `true` previously then MacUpdater.doDownloadUpdate()\n         * would not actually initiate the downloading by electron's autoUpdater\n         */\n        this.nativeUpdater.checkForUpdates()\n      }\n    }\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.NsisUpdater = void 0;
const builder_util_runtime_1 = require("builder-util-runtime");
const path = require("path");
const BaseUpdater_1 = require("./BaseUpdater");
const FileWithEmbeddedBlockMapDifferentialDownloader_1 = require("./differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader");
const types_1 = require("./types");
const Provider_1 = require("./providers/Provider");
const fs_extra_1 = require("fs-extra");
const windowsExecutableCodeSignatureVerifier_1 = require("./windowsExecutableCodeSignatureVerifier");
const url_1 = require("url");
class NsisUpdater extends BaseUpdater_1.BaseUpdater {
    constructor(options, app) {
        super(options, app);
        this._verifyUpdateCodeSignature = (publisherNames, unescapedTempUpdateFile) => (0, windowsExecutableCodeSignatureVerifier_1.verifySignature)(publisherNames, unescapedTempUpdateFile, this._logger);
    }
    /**
     * The verifyUpdateCodeSignature. You can pass [win-verify-signature](https://github.com/beyondkmp/win-verify-trust) or another custom verify function: ` (publisherName: string[], path: string) => Promise<string | null>`.
     * The default verify function uses [windowsExecutableCodeSignatureVerifier](https://github.com/electron-userland/electron-builder/blob/master/packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts)
     */
    get verifyUpdateCodeSignature() {
        return this._verifyUpdateCodeSignature;
    }
    set verifyUpdateCodeSignature(value) {
        if (value) {
            this._verifyUpdateCodeSignature = value;
        }
    }
    /*** @private */
    doDownloadUpdate(downloadUpdateOptions) {
        const provider = downloadUpdateOptions.updateInfoAndProvider.provider;
        const fileInfo = (0, Provider_1.findFile)(provider.resolveFiles(downloadUpdateOptions.updateInfoAndProvider.info), "exe");
        return this.executeDownload({
            fileExtension: "exe",
            downloadUpdateOptions,
            fileInfo,
            task: async (destinationFile, downloadOptions, packageFile, removeTempDirIfAny) => {
                const packageInfo = fileInfo.packageInfo;
                const isWebInstaller = packageInfo != null && packageFile != null;
                if (isWebInstaller && downloadUpdateOptions.disableWebInstaller) {
                    throw (0, builder_util_runtime_1.newError)(`Unable to download new version ${downloadUpdateOptions.updateInfoAndProvider.info.version}. Web Installers are disabled`, "ERR_UPDATER_WEB_INSTALLER_DISABLED");
                }
                if (!isWebInstaller && !downloadUpdateOptions.disableWebInstaller) {
                    this._logger.warn("disableWebInstaller is set to false, you should set it to true if you do not plan on using a web installer. This will default to true in a future version.");
                }
                if (isWebInstaller ||
                    downloadUpdateOptions.disableDifferentialDownload ||
                    (await this.differentialDownloadInstaller(fileInfo, downloadUpdateOptions, destinationFile, provider, builder_util_runtime_1.CURRENT_APP_INSTALLER_FILE_NAME))) {
                    await this.httpExecutor.download(fileInfo.url, destinationFile, downloadOptions);
                }
                const signatureVerificationStatus = await this.verifySignature(destinationFile);
                if (signatureVerificationStatus != null) {
                    await removeTempDirIfAny();
                    // noinspection ThrowInsideFinallyBlockJS
                    throw (0, builder_util_runtime_1.newError)(`New version ${downloadUpdateOptions.updateInfoAndProvider.info.version} is not signed by the application owner: ${signatureVerificationStatus}`, "ERR_UPDATER_INVALID_SIGNATURE");
                }
                if (isWebInstaller) {
                    if (await this.differentialDownloadWebPackage(downloadUpdateOptions, packageInfo, packageFile, provider)) {
                        try {
                            await this.httpExecutor.download(new url_1.URL(packageInfo.path), packageFile, {
                                headers: downloadUpdateOptions.requestHeaders,
                                cancellationToken: downloadUpdateOptions.cancellationToken,
                                sha512: packageInfo.sha512,
                            });
                        }
                        catch (e) {
                            try {
                                await (0, fs_extra_1.unlink)(packageFile);
                            }
                            catch (_ignored) {
                                // ignore
                            }
                            throw e;
                        }
                    }
                }
            },
        });
    }
    // $certificateInfo = (Get-AuthenticodeSignature 'xxx\yyy.exe'
    // | where {$_.Status.Equals([System.Management.Automation.SignatureStatus]::Valid) -and $_.SignerCertificate.Subject.Contains("CN=siemens.com")})
    // | Out-String ; if ($certificateInfo) { exit 0 } else { exit 1 }
    async verifySignature(tempUpdateFile) {
        let publisherName;
        try {
            publisherName = (await this.configOnDisk.value).publisherName;
            if (publisherName == null) {
                return null;
            }
        }
        catch (e) {
            if (e.code === "ENOENT") {
                // no app-update.yml
                return null;
            }
            throw e;
        }
        return await this._verifyUpdateCodeSignature(Array.isArray(publisherName) ? publisherName : [publisherName], tempUpdateFile);
    }
    doInstall(options) {
        const installerPath = this.installerPath;
        if (installerPath == null) {
            this.dispatchError(new Error("No valid update available, can't quit and install"));
            return false;
        }
        const args = ["--updated"];
        if (options.isSilent) {
            args.push("/S");
        }
        if (options.isForceRunAfter) {
            args.push("--force-run");
        }
        if (this.installDirectory) {
            // maybe check if folder exists
            args.push(`/D=${this.installDirectory}`);
        }
        const packagePath = this.downloadedUpdateHelper == null ? null : this.downloadedUpdateHelper.packageFile;
        if (packagePath != null) {
            // only = form is supported
            args.push(`--package-file=${packagePath}`);
        }
        const callUsingElevation = () => {
            this.spawnLog(path.join(process.resourcesPath, "elevate.exe"), [installerPath].concat(args)).catch(e => this.dispatchError(e));
        };
        if (options.isAdminRightsRequired) {
            this._logger.info("isAdminRightsRequired is set to true, run installer using elevate.exe");
            callUsingElevation();
            return true;
        }
        this.spawnLog(installerPath, args).catch((e) => {
            // https://github.com/electron-userland/electron-builder/issues/1129
            // Node 8 sends errors: https://nodejs.org/dist/latest-v8.x/docs/api/errors.html#errors_common_system_errors
            const errorCode = e.code;
            this._logger.info(`Cannot run installer: error code: ${errorCode}, error message: "${e.message}", will be executed again using elevate if EACCES, and will try to use electron.shell.openItem if ENOENT`);
            if (errorCode === "UNKNOWN" || errorCode === "EACCES") {
                callUsingElevation();
            }
            else if (errorCode === "ENOENT") {
                require("electron")
                    .shell.openPath(installerPath)
                    .catch((err) => this.dispatchError(err));
            }
            else {
                this.dispatchError(e);
            }
        });
        return true;
    }
    async differentialDownloadWebPackage(downloadUpdateOptions, packageInfo, packagePath, provider) {
        if (packageInfo.blockMapSize == null) {
            return true;
        }
        try {
            const downloadOptions = {
                newUrl: new url_1.URL(packageInfo.path),
                oldFile: path.join(this.downloadedUpdateHelper.cacheDir, builder_util_runtime_1.CURRENT_APP_PACKAGE_FILE_NAME),
                logger: this._logger,
                newFile: packagePath,
                requestHeaders: this.requestHeaders,
                isUseMultipleRangeRequest: provider.isUseMultipleRangeRequest,
                cancellationToken: downloadUpdateOptions.cancellationToken,
            };
            if (this.listenerCount(types_1.DOWNLOAD_PROGRESS) > 0) {
                downloadOptions.onProgress = it => this.emit(types_1.DOWNLOAD_PROGRESS, it);
            }
            await new FileWithEmbeddedBlockMapDifferentialDownloader_1.FileWithEmbeddedBlockMapDifferentialDownloader(packageInfo, this.httpExecutor, downloadOptions).download();
        }
        catch (e) {
            this._logger.error(`Cannot download differentially, fallback to full download: ${e.stack || e}`);
            // during test (developer machine mac or linux) we must throw error
            return process.platform === "win32";
        }
        return false;
    }
}
exports.NsisUpdater = NsisUpdater;
{"version":3,"file":"NsisUpdater.js","sourceRoot":"","sources":["../src/NsisUpdater.ts"],"names":[],"mappings":";;;AAAA,+DAAmJ;AACnJ,6BAA4B;AAG5B,+CAA2D;AAE3D,4IAAwI;AACxI,mCAA2C;AAE3C,mDAAyD;AACzD,uCAAiC;AACjC,qGAA0E;AAC1E,6BAAyB;AAEzB,MAAa,WAAY,SAAQ,yBAAW;IAO1C,YAAY,OAAkC,EAAE,GAAgB;QAC9D,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAGX,+BAA0B,GAA8B,CAAC,cAA6B,EAAE,uBAA+B,EAAE,EAAE,CACnI,IAAA,wDAAe,EAAC,cAAc,EAAE,uBAAuB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IAHxE,CAAC;IAKD;;;OAGG;IACH,IAAI,yBAAyB;QAC3B,OAAO,IAAI,CAAC,0BAA0B,CAAA;IACxC,CAAC;IAED,IAAI,yBAAyB,CAAC,KAAgC;QAC5D,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAA;QACzC,CAAC;IACH,CAAC;IAED,gBAAgB;IACN,gBAAgB,CAAC,qBAA4C;QACrE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,QAAQ,CAAA;QACrE,MAAM,QAAQ,GAAG,IAAA,mBAAQ,EAAC,QAAQ,CAAC,YAAY,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAE,CAAA;QAC1G,OAAO,IAAI,CAAC,eAAe,CAAC;YAC1B,aAAa,EAAE,KAAK;YACpB,qBAAqB;YACrB,QAAQ;YACR,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE;gBAChF,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAA;gBACxC,MAAM,cAAc,GAAG,WAAW,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,CAAA;gBACjE,IAAI,cAAc,IAAI,qBAAqB,CAAC,mBAAmB,EAAE,CAAC;oBAChE,MAAM,IAAA,+BAAQ,EACZ,kCAAkC,qBAAqB,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,+BAA+B,EACzH,oCAAoC,CACrC,CAAA;gBACH,CAAC;gBACD,IAAI,CAAC,cAAc,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,CAAC;oBAClE,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,4JAA4J,CAC7J,CAAA;gBACH,CAAC;gBACD,IACE,cAAc;oBACd,qBAAqB,CAAC,2BAA2B;oBACjD,CAAC,MAAM,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,qBAAqB,EAAE,eAAe,EAAE,QAAQ,EAAE,sDAA+B,CAAC,CAAC,EACvI,CAAC;oBACD,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,eAAe,CAAC,CAAA;gBAClF,CAAC;gBAED,MAAM,2BAA2B,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAA;gBAC/E,IAAI,2BAA2B,IAAI,IAAI,EAAE,CAAC;oBACxC,MAAM,kBAAkB,EAAE,CAAA;oBAC1B,yCAAyC;oBACzC,MAAM,IAAA,+BAAQ,EACZ,eAAe,qBAAqB,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,4CAA4C,2BAA2B,EAAE,EAChJ,+BAA+B,CAChC,CAAA;gBACH,CAAC;gBAED,IAAI,cAAc,EAAE,CAAC;oBACnB,IAAI,MAAM,IAAI,CAAC,8BAA8B,CAAC,qBAAqB,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;wBACzG,IAAI,CAAC;4BACH,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,SAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE;gCACvE,OAAO,EAAE,qBAAqB,CAAC,cAAc;gCAC7C,iBAAiB,EAAE,qBAAqB,CAAC,iBAAiB;gCAC1D,MAAM,EAAE,WAAW,CAAC,MAAM;6BAC3B,CAAC,CAAA;wBACJ,CAAC;wBAAC,OAAO,CAAM,EAAE,CAAC;4BAChB,IAAI,CAAC;gCACH,MAAM,IAAA,iBAAM,EAAC,WAAW,CAAC,CAAA;4BAC3B,CAAC;4BAAC,OAAO,QAAQ,EAAE,CAAC;gCAClB,SAAS;4BACX,CAAC;4BAED,MAAM,CAAC,CAAA;wBACT,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,8DAA8D;IAC9D,kJAAkJ;IAClJ,kEAAkE;IAC1D,KAAK,CAAC,eAAe,CAAC,cAAsB;QAClD,IAAI,aAA4C,CAAA;QAChD,IAAI,CAAC;YACH,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,aAAa,CAAA;YAC7D,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxB,oBAAoB;gBACpB,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,CAAC,CAAA;QACT,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC,CAAA;IAC9H,CAAC;IAES,SAAS,CAAC,OAAuB;QACzC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACxC,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAA;YAClF,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,CAAA;QAC1B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;QAED,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC1B,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,+BAA+B;YAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAA;QAC1C,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAA;QACxG,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,2BAA2B;YAC3B,IAAI,CAAC,IAAI,CAAC,kBAAkB,WAAW,EAAE,CAAC,CAAA;QAC5C,CAAC;QAED,MAAM,kBAAkB,GAAG,GAAS,EAAE;YACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;QAChI,CAAC,CAAA;QAED,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAA;YAC1F,kBAAkB,EAAE,CAAA;YACpB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;YACpD,oEAAoE;YACpE,4GAA4G;YAC5G,MAAM,SAAS,GAAI,CAA2B,CAAC,IAAI,CAAA;YACnD,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,qCAAqC,SAAS,qBAAqB,CAAC,CAAC,OAAO,0GAA0G,CACvL,CAAA;YACD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACtD,kBAAkB,EAAE,CAAA;YACtB,CAAC;iBAAM,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAClC,OAAO,CAAC,UAAU,CAAC;qBAChB,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;qBAC7B,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;YACnD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;YACvB,CAAC;QACH,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,KAAK,CAAC,8BAA8B,CAC1C,qBAA4C,EAC5C,WAA4B,EAC5B,WAAmB,EACnB,QAAuB;QAEvB,IAAI,WAAW,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;YACrC,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC;YACH,MAAM,eAAe,GAAkC;gBACrD,MAAM,EAAE,IAAI,SAAG,CAAC,WAAW,CAAC,IAAI,CAAC;gBACjC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAuB,CAAC,QAAQ,EAAE,oDAA6B,CAAC;gBACxF,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,OAAO,EAAE,WAAW;gBACpB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,yBAAyB,EAAE,QAAQ,CAAC,yBAAyB;gBAC7D,iBAAiB,EAAE,qBAAqB,CAAC,iBAAiB;aAC3D,CAAA;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,yBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9C,eAAe,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAiB,EAAE,EAAE,CAAC,CAAA;YACrE,CAAC;YAED,MAAM,IAAI,+FAA8C,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAA;QACtH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAA;YAChG,mEAAmE;YACnE,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAA;QACrC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AAzMD,kCAyMC","sourcesContent":["import { AllPublishOptions, newError, PackageFileInfo, CURRENT_APP_INSTALLER_FILE_NAME, CURRENT_APP_PACKAGE_FILE_NAME } from \"builder-util-runtime\"\nimport * as path from \"path\"\nimport { AppAdapter } from \"./AppAdapter\"\nimport { DownloadUpdateOptions } from \"./AppUpdater\"\nimport { BaseUpdater, InstallOptions } from \"./BaseUpdater\"\nimport { DifferentialDownloaderOptions } from \"./differentialDownloader/DifferentialDownloader\"\nimport { FileWithEmbeddedBlockMapDifferentialDownloader } from \"./differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader\"\nimport { DOWNLOAD_PROGRESS } from \"./types\"\nimport { VerifyUpdateCodeSignature } from \"./main\"\nimport { findFile, Provider } from \"./providers/Provider\"\nimport { unlink } from \"fs-extra\"\nimport { verifySignature } from \"./windowsExecutableCodeSignatureVerifier\"\nimport { URL } from \"url\"\n\nexport class NsisUpdater extends BaseUpdater {\n  /**\n   * Specify custom install directory path\n   *\n   */\n  installDirectory?: string\n\n  constructor(options?: AllPublishOptions | null, app?: AppAdapter) {\n    super(options, app)\n  }\n\n  protected _verifyUpdateCodeSignature: VerifyUpdateCodeSignature = (publisherNames: Array<string>, unescapedTempUpdateFile: string) =>\n    verifySignature(publisherNames, unescapedTempUpdateFile, this._logger)\n\n  /**\n   * The verifyUpdateCodeSignature. You can pass [win-verify-signature](https://github.com/beyondkmp/win-verify-trust) or another custom verify function: ` (publisherName: string[], path: string) => Promise<string | null>`.\n   * The default verify function uses [windowsExecutableCodeSignatureVerifier](https://github.com/electron-userland/electron-builder/blob/master/packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts)\n   */\n  get verifyUpdateCodeSignature(): VerifyUpdateCodeSignature {\n    return this._verifyUpdateCodeSignature\n  }\n\n  set verifyUpdateCodeSignature(value: VerifyUpdateCodeSignature) {\n    if (value) {\n      this._verifyUpdateCodeSignature = value\n    }\n  }\n\n  /*** @private */\n  protected doDownloadUpdate(downloadUpdateOptions: DownloadUpdateOptions): Promise<Array<string>> {\n    const provider = downloadUpdateOptions.updateInfoAndProvider.provider\n    const fileInfo = findFile(provider.resolveFiles(downloadUpdateOptions.updateInfoAndProvider.info), \"exe\")!\n    return this.executeDownload({\n      fileExtension: \"exe\",\n      downloadUpdateOptions,\n      fileInfo,\n      task: async (destinationFile, downloadOptions, packageFile, removeTempDirIfAny) => {\n        const packageInfo = fileInfo.packageInfo\n        const isWebInstaller = packageInfo != null && packageFile != null\n        if (isWebInstaller && downloadUpdateOptions.disableWebInstaller) {\n          throw newError(\n            `Unable to download new version ${downloadUpdateOptions.updateInfoAndProvider.info.version}. Web Installers are disabled`,\n            \"ERR_UPDATER_WEB_INSTALLER_DISABLED\"\n          )\n        }\n        if (!isWebInstaller && !downloadUpdateOptions.disableWebInstaller) {\n          this._logger.warn(\n            \"disableWebInstaller is set to false, you should set it to true if you do not plan on using a web installer. This will default to true in a future version.\"\n          )\n        }\n        if (\n          isWebInstaller ||\n          downloadUpdateOptions.disableDifferentialDownload ||\n          (await this.differentialDownloadInstaller(fileInfo, downloadUpdateOptions, destinationFile, provider, CURRENT_APP_INSTALLER_FILE_NAME))\n        ) {\n          await this.httpExecutor.download(fileInfo.url, destinationFile, downloadOptions)\n        }\n\n        const signatureVerificationStatus = await this.verifySignature(destinationFile)\n        if (signatureVerificationStatus != null) {\n          await removeTempDirIfAny()\n          // noinspection ThrowInsideFinallyBlockJS\n          throw newError(\n            `New version ${downloadUpdateOptions.updateInfoAndProvider.info.version} is not signed by the application owner: ${signatureVerificationStatus}`,\n            \"ERR_UPDATER_INVALID_SIGNATURE\"\n          )\n        }\n\n        if (isWebInstaller) {\n          if (await this.differentialDownloadWebPackage(downloadUpdateOptions, packageInfo, packageFile, provider)) {\n            try {\n              await this.httpExecutor.download(new URL(packageInfo.path), packageFile, {\n                headers: downloadUpdateOptions.requestHeaders,\n                cancellationToken: downloadUpdateOptions.cancellationToken,\n                sha512: packageInfo.sha512,\n              })\n            } catch (e: any) {\n              try {\n                await unlink(packageFile)\n              } catch (_ignored) {\n                // ignore\n              }\n\n              throw e\n            }\n          }\n        }\n      },\n    })\n  }\n\n  // $certificateInfo = (Get-AuthenticodeSignature 'xxx\\yyy.exe'\n  // | where {$_.Status.Equals([System.Management.Automation.SignatureStatus]::Valid) -and $_.SignerCertificate.Subject.Contains(\"CN=siemens.com\")})\n  // | Out-String ; if ($certificateInfo) { exit 0 } else { exit 1 }\n  private async verifySignature(tempUpdateFile: string): Promise<string | null> {\n    let publisherName: Array<string> | string | null\n    try {\n      publisherName = (await this.configOnDisk.value).publisherName\n      if (publisherName == null) {\n        return null\n      }\n    } catch (e: any) {\n      if (e.code === \"ENOENT\") {\n        // no app-update.yml\n        return null\n      }\n      throw e\n    }\n    return await this._verifyUpdateCodeSignature(Array.isArray(publisherName) ? publisherName : [publisherName], tempUpdateFile)\n  }\n\n  protected doInstall(options: InstallOptions): boolean {\n    const installerPath = this.installerPath\n    if (installerPath == null) {\n      this.dispatchError(new Error(\"No valid update available, can't quit and install\"))\n      return false\n    }\n\n    const args = [\"--updated\"]\n    if (options.isSilent) {\n      args.push(\"/S\")\n    }\n\n    if (options.isForceRunAfter) {\n      args.push(\"--force-run\")\n    }\n\n    if (this.installDirectory) {\n      // maybe check if folder exists\n      args.push(`/D=${this.installDirectory}`)\n    }\n\n    const packagePath = this.downloadedUpdateHelper == null ? null : this.downloadedUpdateHelper.packageFile\n    if (packagePath != null) {\n      // only = form is supported\n      args.push(`--package-file=${packagePath}`)\n    }\n\n    const callUsingElevation = (): void => {\n      this.spawnLog(path.join(process.resourcesPath, \"elevate.exe\"), [installerPath].concat(args)).catch(e => this.dispatchError(e))\n    }\n\n    if (options.isAdminRightsRequired) {\n      this._logger.info(\"isAdminRightsRequired is set to true, run installer using elevate.exe\")\n      callUsingElevation()\n      return true\n    }\n\n    this.spawnLog(installerPath, args).catch((e: Error) => {\n      // https://github.com/electron-userland/electron-builder/issues/1129\n      // Node 8 sends errors: https://nodejs.org/dist/latest-v8.x/docs/api/errors.html#errors_common_system_errors\n      const errorCode = (e as NodeJS.ErrnoException).code\n      this._logger.info(\n        `Cannot run installer: error code: ${errorCode}, error message: \"${e.message}\", will be executed again using elevate if EACCES, and will try to use electron.shell.openItem if ENOENT`\n      )\n      if (errorCode === \"UNKNOWN\" || errorCode === \"EACCES\") {\n        callUsingElevation()\n      } else if (errorCode === \"ENOENT\") {\n        require(\"electron\")\n          .shell.openPath(installerPath)\n          .catch((err: Error) => this.dispatchError(err))\n      } else {\n        this.dispatchError(e)\n      }\n    })\n    return true\n  }\n\n  private async differentialDownloadWebPackage(\n    downloadUpdateOptions: DownloadUpdateOptions,\n    packageInfo: PackageFileInfo,\n    packagePath: string,\n    provider: Provider<any>\n  ): Promise<boolean> {\n    if (packageInfo.blockMapSize == null) {\n      return true\n    }\n\n    try {\n      const downloadOptions: DifferentialDownloaderOptions = {\n        newUrl: new URL(packageInfo.path),\n        oldFile: path.join(this.downloadedUpdateHelper!.cacheDir, CURRENT_APP_PACKAGE_FILE_NAME),\n        logger: this._logger,\n        newFile: packagePath,\n        requestHeaders: this.requestHeaders,\n        isUseMultipleRangeRequest: provider.isUseMultipleRangeRequest,\n        cancellationToken: downloadUpdateOptions.cancellationToken,\n      }\n\n      if (this.listenerCount(DOWNLOAD_PROGRESS) > 0) {\n        downloadOptions.onProgress = it => this.emit(DOWNLOAD_PROGRESS, it)\n      }\n\n      await new FileWithEmbeddedBlockMapDifferentialDownloader(packageInfo, this.httpExecutor, downloadOptions).download()\n    } catch (e: any) {\n      this._logger.error(`Cannot download differentially, fallback to full download: ${e.stack || e}`)\n      // during test (developer machine mac or linux) we must throw error\n      return process.platform === \"win32\"\n    }\n    return false\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PacmanUpdater = void 0;
const BaseUpdater_1 = require("./BaseUpdater");
const types_1 = require("./types");
const Provider_1 = require("./providers/Provider");
class PacmanUpdater extends BaseUpdater_1.BaseUpdater {
    constructor(options, app) {
        super(options, app);
    }
    /*** @private */
    doDownloadUpdate(downloadUpdateOptions) {
        const provider = downloadUpdateOptions.updateInfoAndProvider.provider;
        const fileInfo = (0, Provider_1.findFile)(provider.resolveFiles(downloadUpdateOptions.updateInfoAndProvider.info), "pacman", ["AppImage", "deb", "rpm"]);
        return this.executeDownload({
            fileExtension: "pacman",
            fileInfo,
            downloadUpdateOptions,
            task: async (updateFile, downloadOptions) => {
                if (this.listenerCount(types_1.DOWNLOAD_PROGRESS) > 0) {
                    downloadOptions.onProgress = it => this.emit(types_1.DOWNLOAD_PROGRESS, it);
                }
                await this.httpExecutor.download(fileInfo.url, updateFile, downloadOptions);
            },
        });
    }
    get installerPath() {
        var _a, _b;
        return (_b = (_a = super.installerPath) === null || _a === void 0 ? void 0 : _a.replace(/ /g, "\\ ")) !== null && _b !== void 0 ? _b : null;
    }
    doInstall(options) {
        const sudo = this.wrapSudo();
        // pkexec doesn't want the command to be wrapped in " quotes
        const wrapper = /pkexec/i.test(sudo) ? "" : `"`;
        const installerPath = this.installerPath;
        if (installerPath == null) {
            this.dispatchError(new Error("No valid update available, can't quit and install"));
            return false;
        }
        const cmd = ["pacman", "-U", "--noconfirm", installerPath];
        this.spawnSyncLog(sudo, [`${wrapper}/bin/bash`, "-c", `'${cmd.join(" ")}'${wrapper}`]);
        if (options.isForceRunAfter) {
            this.app.relaunch();
        }
        return true;
    }
}
exports.PacmanUpdater = PacmanUpdater;
{"version":3,"file":"PacmanUpdater.js","sourceRoot":"","sources":["../src/PacmanUpdater.ts"],"names":[],"mappings":";;;AAGA,+CAA2D;AAC3D,mCAA2C;AAC3C,mDAA+C;AAE/C,MAAa,aAAc,SAAQ,yBAAW;IAC5C,YAAY,OAAkC,EAAE,GAAgB;QAC9D,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IACrB,CAAC;IAED,gBAAgB;IACN,gBAAgB,CAAC,qBAA4C;QACrE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,QAAQ,CAAA;QACrE,MAAM,QAAQ,GAAG,IAAA,mBAAQ,EAAC,QAAQ,CAAC,YAAY,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAE,CAAA;QACzI,OAAO,IAAI,CAAC,eAAe,CAAC;YAC1B,aAAa,EAAE,QAAQ;YACvB,QAAQ;YACR,qBAAqB;YACrB,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE;gBAC1C,IAAI,IAAI,CAAC,aAAa,CAAC,yBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC9C,eAAe,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAiB,EAAE,EAAE,CAAC,CAAA;gBACrE,CAAC;gBACD,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,eAAe,CAAC,CAAA;YAC7E,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,IAAc,aAAa;;QACzB,OAAO,MAAA,MAAA,KAAK,CAAC,aAAa,0CAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,mCAAI,IAAI,CAAA;IAC1D,CAAC;IAES,SAAS,CAAC,OAAuB;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC5B,4DAA4D;QAC5D,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACxC,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAA;YAClF,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,CAAA;QAC1D,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,WAAW,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAA;QACtF,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QACrB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AA1CD,sCA0CC","sourcesContent":["import { AllPublishOptions } from \"builder-util-runtime\"\nimport { AppAdapter } from \"./AppAdapter\"\nimport { DownloadUpdateOptions } from \"./AppUpdater\"\nimport { BaseUpdater, InstallOptions } from \"./BaseUpdater\"\nimport { DOWNLOAD_PROGRESS } from \"./types\"\nimport { findFile } from \"./providers/Provider\"\n\nexport class PacmanUpdater extends BaseUpdater {\n  constructor(options?: AllPublishOptions | null, app?: AppAdapter) {\n    super(options, app)\n  }\n\n  /*** @private */\n  protected doDownloadUpdate(downloadUpdateOptions: DownloadUpdateOptions): Promise<Array<string>> {\n    const provider = downloadUpdateOptions.updateInfoAndProvider.provider\n    const fileInfo = findFile(provider.resolveFiles(downloadUpdateOptions.updateInfoAndProvider.info), \"pacman\", [\"AppImage\", \"deb\", \"rpm\"])!\n    return this.executeDownload({\n      fileExtension: \"pacman\",\n      fileInfo,\n      downloadUpdateOptions,\n      task: async (updateFile, downloadOptions) => {\n        if (this.listenerCount(DOWNLOAD_PROGRESS) > 0) {\n          downloadOptions.onProgress = it => this.emit(DOWNLOAD_PROGRESS, it)\n        }\n        await this.httpExecutor.download(fileInfo.url, updateFile, downloadOptions)\n      },\n    })\n  }\n\n  protected get installerPath(): string | null {\n    return super.installerPath?.replace(/ /g, \"\\\\ \") ?? null\n  }\n\n  protected doInstall(options: InstallOptions): boolean {\n    const sudo = this.wrapSudo()\n    // pkexec doesn't want the command to be wrapped in \" quotes\n    const wrapper = /pkexec/i.test(sudo) ? \"\" : `\"`\n    const installerPath = this.installerPath\n    if (installerPath == null) {\n      this.dispatchError(new Error(\"No valid update available, can't quit and install\"))\n      return false\n    }\n    const cmd = [\"pacman\", \"-U\", \"--noconfirm\", installerPath]\n    this.spawnSyncLog(sudo, [`${wrapper}/bin/bash`, \"-c\", `'${cmd.join(\" \")}'${wrapper}`])\n    if (options.isForceRunAfter) {\n      this.app.relaunch()\n    }\n    return true\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.RpmUpdater = void 0;
const BaseUpdater_1 = require("./BaseUpdater");
const types_1 = require("./types");
const Provider_1 = require("./providers/Provider");
class RpmUpdater extends BaseUpdater_1.BaseUpdater {
    constructor(options, app) {
        super(options, app);
    }
    /*** @private */
    doDownloadUpdate(downloadUpdateOptions) {
        const provider = downloadUpdateOptions.updateInfoAndProvider.provider;
        const fileInfo = (0, Provider_1.findFile)(provider.resolveFiles(downloadUpdateOptions.updateInfoAndProvider.info), "rpm", ["AppImage", "deb", "pacman"]);
        return this.executeDownload({
            fileExtension: "rpm",
            fileInfo,
            downloadUpdateOptions,
            task: async (updateFile, downloadOptions) => {
                if (this.listenerCount(types_1.DOWNLOAD_PROGRESS) > 0) {
                    downloadOptions.onProgress = it => this.emit(types_1.DOWNLOAD_PROGRESS, it);
                }
                await this.httpExecutor.download(fileInfo.url, updateFile, downloadOptions);
            },
        });
    }
    get installerPath() {
        var _a, _b;
        return (_b = (_a = super.installerPath) === null || _a === void 0 ? void 0 : _a.replace(/ /g, "\\ ")) !== null && _b !== void 0 ? _b : null;
    }
    doInstall(options) {
        const sudo = this.wrapSudo();
        // pkexec doesn't want the command to be wrapped in " quotes
        const wrapper = /pkexec/i.test(sudo) ? "" : `"`;
        const packageManager = this.spawnSyncLog("which zypper");
        const installerPath = this.installerPath;
        if (installerPath == null) {
            this.dispatchError(new Error("No valid update available, can't quit and install"));
            return false;
        }
        let cmd;
        if (!packageManager) {
            const packageManager = this.spawnSyncLog("which dnf || which yum");
            cmd = [packageManager, "-y", "install", installerPath];
        }
        else {
            cmd = [packageManager, "--no-refresh", "install", "--allow-unsigned-rpm", "-y", "-f", installerPath];
        }
        this.spawnSyncLog(sudo, [`${wrapper}/bin/bash`, "-c", `'${cmd.join(" ")}'${wrapper}`]);
        if (options.isForceRunAfter) {
            this.app.relaunch();
        }
        return true;
    }
}
exports.RpmUpdater = RpmUpdater;
{"version":3,"file":"RpmUpdater.js","sourceRoot":"","sources":["../src/RpmUpdater.ts"],"names":[],"mappings":";;;AAGA,+CAA2D;AAC3D,mCAA2C;AAC3C,mDAA+C;AAE/C,MAAa,UAAW,SAAQ,yBAAW;IACzC,YAAY,OAAkC,EAAE,GAAgB;QAC9D,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IACrB,CAAC;IAED,gBAAgB;IACN,gBAAgB,CAAC,qBAA4C;QACrE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,QAAQ,CAAA;QACrE,MAAM,QAAQ,GAAG,IAAA,mBAAQ,EAAC,QAAQ,CAAC,YAAY,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAE,CAAA;QACzI,OAAO,IAAI,CAAC,eAAe,CAAC;YAC1B,aAAa,EAAE,KAAK;YACpB,QAAQ;YACR,qBAAqB;YACrB,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE;gBAC1C,IAAI,IAAI,CAAC,aAAa,CAAC,yBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC9C,eAAe,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAiB,EAAE,EAAE,CAAC,CAAA;gBACrE,CAAC;gBACD,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,eAAe,CAAC,CAAA;YAC7E,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,IAAc,aAAa;;QACzB,OAAO,MAAA,MAAA,KAAK,CAAC,aAAa,0CAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,mCAAI,IAAI,CAAA;IAC1D,CAAC;IAES,SAAS,CAAC,OAAuB;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC5B,4DAA4D;QAC5D,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;QAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;QACxD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACxC,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAA;YAClF,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,GAAa,CAAA;QACjB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAA;YAClE,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;QACxD,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;QACtG,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,WAAW,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAA;QACtF,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QACrB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAjDD,gCAiDC","sourcesContent":["import { AllPublishOptions } from \"builder-util-runtime\"\nimport { AppAdapter } from \"./AppAdapter\"\nimport { DownloadUpdateOptions } from \"./AppUpdater\"\nimport { BaseUpdater, InstallOptions } from \"./BaseUpdater\"\nimport { DOWNLOAD_PROGRESS } from \"./types\"\nimport { findFile } from \"./providers/Provider\"\n\nexport class RpmUpdater extends BaseUpdater {\n  constructor(options?: AllPublishOptions | null, app?: AppAdapter) {\n    super(options, app)\n  }\n\n  /*** @private */\n  protected doDownloadUpdate(downloadUpdateOptions: DownloadUpdateOptions): Promise<Array<string>> {\n    const provider = downloadUpdateOptions.updateInfoAndProvider.provider\n    const fileInfo = findFile(provider.resolveFiles(downloadUpdateOptions.updateInfoAndProvider.info), \"rpm\", [\"AppImage\", \"deb\", \"pacman\"])!\n    return this.executeDownload({\n      fileExtension: \"rpm\",\n      fileInfo,\n      downloadUpdateOptions,\n      task: async (updateFile, downloadOptions) => {\n        if (this.listenerCount(DOWNLOAD_PROGRESS) > 0) {\n          downloadOptions.onProgress = it => this.emit(DOWNLOAD_PROGRESS, it)\n        }\n        await this.httpExecutor.download(fileInfo.url, updateFile, downloadOptions)\n      },\n    })\n  }\n\n  protected get installerPath(): string | null {\n    return super.installerPath?.replace(/ /g, \"\\\\ \") ?? null\n  }\n\n  protected doInstall(options: InstallOptions): boolean {\n    const sudo = this.wrapSudo()\n    // pkexec doesn't want the command to be wrapped in \" quotes\n    const wrapper = /pkexec/i.test(sudo) ? \"\" : `\"`\n    const packageManager = this.spawnSyncLog(\"which zypper\")\n    const installerPath = this.installerPath\n    if (installerPath == null) {\n      this.dispatchError(new Error(\"No valid update available, can't quit and install\"))\n      return false\n    }\n    let cmd: string[]\n    if (!packageManager) {\n      const packageManager = this.spawnSyncLog(\"which dnf || which yum\")\n      cmd = [packageManager, \"-y\", \"install\", installerPath]\n    } else {\n      cmd = [packageManager, \"--no-refresh\", \"install\", \"--allow-unsigned-rpm\", \"-y\", \"-f\", installerPath]\n    }\n    this.spawnSyncLog(sudo, [`${wrapper}/bin/bash`, \"-c\", `'${cmd.join(\" \")}'${wrapper}`])\n    if (options.isForceRunAfter) {\n      this.app.relaunch()\n    }\n    return true\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ElectronHttpExecutor = exports.NET_SESSION_NAME = void 0;
exports.getNetSession = getNetSession;
const builder_util_runtime_1 = require("builder-util-runtime");
exports.NET_SESSION_NAME = "electron-updater";
function getNetSession() {
    return require("electron").session.fromPartition(exports.NET_SESSION_NAME, {
        cache: false,
    });
}
class ElectronHttpExecutor extends builder_util_runtime_1.HttpExecutor {
    constructor(proxyLoginCallback) {
        super();
        this.proxyLoginCallback = proxyLoginCallback;
        this.cachedSession = null;
    }
    async download(url, destination, options) {
        return await options.cancellationToken.createPromise((resolve, reject, onCancel) => {
            const requestOptions = {
                headers: options.headers || undefined,
                redirect: "manual",
            };
            (0, builder_util_runtime_1.configureRequestUrl)(url, requestOptions);
            (0, builder_util_runtime_1.configureRequestOptions)(requestOptions);
            this.doDownload(requestOptions, {
                destination,
                options,
                onCancel,
                callback: error => {
                    if (error == null) {
                        resolve(destination);
                    }
                    else {
                        reject(error);
                    }
                },
                responseHandler: null,
            }, 0);
        });
    }
    createRequest(options, callback) {
        // fix (node 7+) for making electron updater work when using AWS private buckets, check if headers contain Host property
        if (options.headers && options.headers.Host) {
            // set host value from headers.Host
            options.host = options.headers.Host;
            // remove header property 'Host', if not removed causes net::ERR_INVALID_ARGUMENT exception
            delete options.headers.Host;
        }
        // differential downloader can call this method very often, so, better to cache session
        if (this.cachedSession == null) {
            this.cachedSession = getNetSession();
        }
        const request = require("electron").net.request({
            ...options,
            session: this.cachedSession,
        });
        request.on("response", callback);
        if (this.proxyLoginCallback != null) {
            request.on("login", this.proxyLoginCallback);
        }
        return request;
    }
    addRedirectHandlers(request, options, reject, redirectCount, handler) {
        request.on("redirect", (statusCode, method, redirectUrl) => {
            // no way to modify request options, abort old and make a new one
            // https://github.com/electron/electron/issues/11505
            request.abort();
            if (redirectCount > this.maxRedirects) {
                reject(this.createMaxRedirectError());
            }
            else {
                handler(builder_util_runtime_1.HttpExecutor.prepareRedirectUrlOptions(redirectUrl, options));
            }
        });
    }
}
exports.ElectronHttpExecutor = ElectronHttpExecutor;
{"version":3,"file":"electronHttpExecutor.js","sourceRoot":"","sources":["../src/electronHttpExecutor.ts"],"names":[],"mappings":";;;AASA,sCAIC;AAbD,+DAAkH;AAOrG,QAAA,gBAAgB,GAAG,kBAAkB,CAAA;AAElD,SAAgB,aAAa;IAC3B,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,wBAAgB,EAAE;QACjE,KAAK,EAAE,KAAK;KACb,CAAC,CAAA;AACJ,CAAC;AAED,MAAa,oBAAqB,SAAQ,mCAAoC;IAG5E,YAA6B,kBAA0E;QACrG,KAAK,EAAE,CAAA;QADoB,uBAAkB,GAAlB,kBAAkB,CAAwD;QAF/F,kBAAa,GAAmB,IAAI,CAAA;IAI5C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAQ,EAAE,WAAmB,EAAE,OAAwB;QACpE,OAAO,MAAM,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;YACzF,MAAM,cAAc,GAAG;gBACrB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,SAAS;gBACrC,QAAQ,EAAE,QAAQ;aACnB,CAAA;YACD,IAAA,0CAAmB,EAAC,GAAG,EAAE,cAAc,CAAC,CAAA;YACxC,IAAA,8CAAuB,EAAC,cAAc,CAAC,CAAA;YACvC,IAAI,CAAC,UAAU,CACb,cAAc,EACd;gBACE,WAAW;gBACX,OAAO;gBACP,QAAQ;gBACR,QAAQ,EAAE,KAAK,CAAC,EAAE;oBAChB,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;wBAClB,OAAO,CAAC,WAAW,CAAC,CAAA;oBACtB,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,KAAK,CAAC,CAAA;oBACf,CAAC;gBACH,CAAC;gBACD,eAAe,EAAE,IAAI;aACtB,EACD,CAAC,CACF,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,aAAa,CAAC,OAAY,EAAE,QAAiC;QAC3D,wHAAwH;QACxH,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC5C,mCAAmC;YACnC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;YACnC,2FAA2F;YAC3F,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;QAC7B,CAAC;QAED,uFAAuF;QACvF,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,EAAE,CAAA;QACtC,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;YAC9C,GAAG,OAAO;YACV,OAAO,EAAE,IAAI,CAAC,aAAa;SAC5B,CAAC,CAAA;QACF,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAChC,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE,CAAC;YACpC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC9C,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAES,mBAAmB,CAC3B,OAAsB,EACtB,OAAuB,EACvB,MAA8B,EAC9B,aAAqB,EACrB,OAA0C;QAE1C,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,UAAkB,EAAE,MAAc,EAAE,WAAmB,EAAE,EAAE;YACjF,iEAAiE;YACjE,oDAAoD;YACpD,OAAO,CAAC,KAAK,EAAE,CAAA;YAEf,IAAI,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAA;YACvC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,mCAAY,CAAC,yBAAyB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;YACvE,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AA/ED,oDA+EC","sourcesContent":["import { DownloadOptions, HttpExecutor, configureRequestOptions, configureRequestUrl } from \"builder-util-runtime\"\nimport type { AuthInfo } from \"electron\"\nimport { RequestOptions } from \"http\"\nimport Session = Electron.Session\nimport ClientRequest = Electron.ClientRequest\n\nexport type LoginCallback = (username: string, password: string) => void\nexport const NET_SESSION_NAME = \"electron-updater\"\n\nexport function getNetSession(): Session {\n  return require(\"electron\").session.fromPartition(NET_SESSION_NAME, {\n    cache: false,\n  })\n}\n\nexport class ElectronHttpExecutor extends HttpExecutor<Electron.ClientRequest> {\n  private cachedSession: Session | null = null\n\n  constructor(private readonly proxyLoginCallback?: (authInfo: AuthInfo, callback: LoginCallback) => void) {\n    super()\n  }\n\n  async download(url: URL, destination: string, options: DownloadOptions): Promise<string> {\n    return await options.cancellationToken.createPromise<string>((resolve, reject, onCancel) => {\n      const requestOptions = {\n        headers: options.headers || undefined,\n        redirect: \"manual\",\n      }\n      configureRequestUrl(url, requestOptions)\n      configureRequestOptions(requestOptions)\n      this.doDownload(\n        requestOptions,\n        {\n          destination,\n          options,\n          onCancel,\n          callback: error => {\n            if (error == null) {\n              resolve(destination)\n            } else {\n              reject(error)\n            }\n          },\n          responseHandler: null,\n        },\n        0\n      )\n    })\n  }\n\n  createRequest(options: any, callback: (response: any) => void): Electron.ClientRequest {\n    // fix (node 7+) for making electron updater work when using AWS private buckets, check if headers contain Host property\n    if (options.headers && options.headers.Host) {\n      // set host value from headers.Host\n      options.host = options.headers.Host\n      // remove header property 'Host', if not removed causes net::ERR_INVALID_ARGUMENT exception\n      delete options.headers.Host\n    }\n\n    // differential downloader can call this method very often, so, better to cache session\n    if (this.cachedSession == null) {\n      this.cachedSession = getNetSession()\n    }\n\n    const request = require(\"electron\").net.request({\n      ...options,\n      session: this.cachedSession,\n    })\n    request.on(\"response\", callback)\n    if (this.proxyLoginCallback != null) {\n      request.on(\"login\", this.proxyLoginCallback)\n    }\n    return request\n  }\n\n  protected addRedirectHandlers(\n    request: ClientRequest,\n    options: RequestOptions,\n    reject: (error: Error) => void,\n    redirectCount: number,\n    handler: (options: RequestOptions) => void\n  ): void {\n    request.on(\"redirect\", (statusCode: number, method: string, redirectUrl: string) => {\n      // no way to modify request options, abort old and make a new one\n      // https://github.com/electron/electron/issues/11505\n      request.abort()\n\n      if (redirectCount > this.maxRedirects) {\n        reject(this.createMaxRedirectError())\n      } else {\n        handler(HttpExecutor.prepareRedirectUrlOptions(redirectUrl, options))\n      }\n    })\n  }\n}\n"]}"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.NsisUpdater = exports.MacUpdater = exports.RpmUpdater = exports.PacmanUpdater = exports.DebUpdater = exports.AppImageUpdater = exports.Provider = exports.NoOpLogger = exports.AppUpdater = exports.BaseUpdater = void 0;
const fs_extra_1 = require("fs-extra");
const path = require("path");
var BaseUpdater_1 = require("./BaseUpdater");
Object.defineProperty(exports, "BaseUpdater", { enumerable: true, get: function () { return BaseUpdater_1.BaseUpdater; } });
var AppUpdater_1 = require("./AppUpdater");
Object.defineProperty(exports, "AppUpdater", { enumerable: true, get: function () { return AppUpdater_1.AppUpdater; } });
Object.defineProperty(exports, "NoOpLogger", { enumerable: true, get: function () { return AppUpdater_1.NoOpLogger; } });
var Provider_1 = require("./providers/Provider");
Object.defineProperty(exports, "Provider", { enumerable: true, get: function () { return Provider_1.Provider; } });
var AppImageUpdater_1 = require("./AppImageUpdater");
Object.defineProperty(exports, "AppImageUpdater", { enumerable: true, get: function () { return AppImageUpdater_1.AppImageUpdater; } });
var DebUpdater_1 = require("./DebUpdater");
Object.defineProperty(exports, "DebUpdater", { enumerable: true, get: function () { return DebUpdater_1.DebUpdater; } });
var PacmanUpdater_1 = require("./PacmanUpdater");
Object.defineProperty(exports, "PacmanUpdater", { enumerable: true, get: function () { return PacmanUpdater_1.PacmanUpdater; } });
var RpmUpdater_1 = require("./RpmUpdater");
Object.defineProperty(exports, "RpmUpdater", { enumerable: true, get: function () { return RpmUpdater_1.RpmUpdater; } });
var MacUpdater_1 = require("./MacUpdater");
Object.defineProperty(exports, "MacUpdater", { enumerable: true, get: function () { return MacUpdater_1.MacUpdater; } });
var NsisUpdater_1 = require("./NsisUpdater");
Object.defineProperty(exports, "NsisUpdater", { enumerable: true, get: function () { return NsisUpdater_1.NsisUpdater; } });
__exportStar(require("./types"), exports);
// autoUpdater to mimic electron bundled autoUpdater
let _autoUpdater;
function doLoadAutoUpdater() {
    // tslint:disable:prefer-conditional-expression
    if (process.platform === "win32") {
        _autoUpdater = new (require("./NsisUpdater").NsisUpdater)();
    }
    else if (process.platform === "darwin") {
        _autoUpdater = new (require("./MacUpdater").MacUpdater)();
    }
    else {
        _autoUpdater = new (require("./AppImageUpdater").AppImageUpdater)();
        try {
            const identity = path.join(process.resourcesPath, "package-type");
            if (!(0, fs_extra_1.existsSync)(identity)) {
                return _autoUpdater;
            }
            console.info("Checking for beta autoupdate feature for deb/rpm distributions");
            const fileType = (0, fs_extra_1.readFileSync)(identity).toString().trim();
            console.info("Found package-type:", fileType);
            switch (fileType) {
                case "deb":
                    _autoUpdater = new (require("./DebUpdater").DebUpdater)();
                    break;
                case "rpm":
                    _autoUpdater = new (require("./RpmUpdater").RpmUpdater)();
                    break;
                case "pacman":
                    _autoUpdater = new (require("./PacmanUpdater").PacmanUpdater)();
                    break;
                default:
                    break;
            }
        }
        catch (error) {
            console.warn("Unable to detect 'package-type' for autoUpdater (beta rpm/deb support). If you'd like to expand support, please consider contributing to electron-builder", error.message);
        }
    }
    return _autoUpdater;
}
Object.defineProperty(exports, "autoUpdater", {
    enumerable: true,
    get: () => {
        return _autoUpdater || doLoadAutoUpdater();
    },
});
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uCAAmD;AACnD,6BAA4B;AAI5B,6CAA2C;AAAlC,0GAAA,WAAW,OAAA;AACpB,2CAAqD;AAA5C,wGAAA,UAAU,OAAA;AAAE,wGAAA,UAAU,OAAA;AAC/B,iDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AACjB,qDAAmD;AAA1C,kHAAA,eAAe,OAAA;AACxB,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AACnB,iDAA+C;AAAtC,8GAAA,aAAa,OAAA;AACtB,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AACnB,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AACnB,6CAA2C;AAAlC,0GAAA,WAAW,OAAA;AAEpB,0CAAuB;AAEvB,oDAAoD;AACpD,IAAI,YAAiB,CAAA;AAKrB,SAAS,iBAAiB;IACxB,+CAA+C;IAC/C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,EAAE,CAAA;IAC7D,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACzC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,EAAE,CAAA;IAC3D,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,eAAe,CAAC,EAAE,CAAA;QACnE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;YACjE,IAAI,CAAC,IAAA,qBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,OAAO,YAAY,CAAA;YACrB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;YAC9E,MAAM,QAAQ,GAAG,IAAA,uBAAY,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;YACzD,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAA;YAC7C,QAAQ,QAAQ,EAAE,CAAC;gBACjB,KAAK,KAAK;oBACR,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,EAAE,CAAA;oBACzD,MAAK;gBACP,KAAK,KAAK;oBACR,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,EAAE,CAAA;oBACzD,MAAK;gBACP,KAAK,QAAQ;oBACX,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,aAAa,CAAC,EAAE,CAAA;oBAC/D,MAAK;gBACP;oBACE,MAAK;YACT,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CACV,2JAA2J,EAC3J,KAAK,CAAC,OAAO,CACd,CAAA;QACH,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC;AAED,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE;IAC5C,UAAU,EAAE,IAAI;IAChB,GAAG,EAAE,GAAG,EAAE;QACR,OAAO,YAAY,IAAI,iBAAiB,EAAE,CAAA;IAC5C,CAAC;CACF,CAAC,CAAA","sourcesContent":["import { existsSync, readFileSync } from \"fs-extra\"\nimport * as path from \"path\"\nimport { AppUpdater } from \"./AppUpdater\"\nimport { UpdateInfo } from \"builder-util-runtime\"\n\nexport { BaseUpdater } from \"./BaseUpdater\"\nexport { AppUpdater, NoOpLogger } from \"./AppUpdater\"\nexport { Provider } from \"./providers/Provider\"\nexport { AppImageUpdater } from \"./AppImageUpdater\"\nexport { DebUpdater } from \"./DebUpdater\"\nexport { PacmanUpdater } from \"./PacmanUpdater\"\nexport { RpmUpdater } from \"./RpmUpdater\"\nexport { MacUpdater } from \"./MacUpdater\"\nexport { NsisUpdater } from \"./NsisUpdater\"\n\nexport * from \"./types\"\n\n// autoUpdater to mimic electron bundled autoUpdater\nlet _autoUpdater: any\n\n// required for jsdoc\nexport declare const autoUpdater: AppUpdater\n\nfunction doLoadAutoUpdater(): AppUpdater {\n  // tslint:disable:prefer-conditional-expression\n  if (process.platform === \"win32\") {\n    _autoUpdater = new (require(\"./NsisUpdater\").NsisUpdater)()\n  } else if (process.platform === \"darwin\") {\n    _autoUpdater = new (require(\"./MacUpdater\").MacUpdater)()\n  } else {\n    _autoUpdater = new (require(\"./AppImageUpdater\").AppImageUpdater)()\n    try {\n      const identity = path.join(process.resourcesPath, \"package-type\")\n      if (!existsSync(identity)) {\n        return _autoUpdater\n      }\n      console.info(\"Checking for beta autoupdate feature for deb/rpm distributions\")\n      const fileType = readFileSync(identity).toString().trim()\n      console.info(\"Found package-type:\", fileType)\n      switch (fileType) {\n        case \"deb\":\n          _autoUpdater = new (require(\"./DebUpdater\").DebUpdater)()\n          break\n        case \"rpm\":\n          _autoUpdater = new (require(\"./RpmUpdater\").RpmUpdater)()\n          break\n        case \"pacman\":\n          _autoUpdater = new (require(\"./PacmanUpdater\").PacmanUpdater)()\n          break\n        default:\n          break\n      }\n    } catch (error: any) {\n      console.warn(\n        \"Unable to detect 'package-type' for autoUpdater (beta rpm/deb support). If you'd like to expand support, please consider contributing to electron-builder\",\n        error.message\n      )\n    }\n  }\n  return _autoUpdater\n}\n\nObject.defineProperty(exports, \"autoUpdater\", {\n  enumerable: true,\n  get: () => {\n    return _autoUpdater || doLoadAutoUpdater()\n  },\n})\n\n/**\n * return null if verify signature succeed\n * return error message if verify signature failed\n */\nexport type VerifyUpdateCodeSignature = (publisherName: string[], path: string) => Promise<string | null>\n\nexport type VerifyUpdateSupport = (updateInfo: UpdateInfo) => boolean | Promise<boolean>\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isUrlProbablySupportMultiRangeRequests = isUrlProbablySupportMultiRangeRequests;
exports.createClient = createClient;
const builder_util_runtime_1 = require("builder-util-runtime");
const BitbucketProvider_1 = require("./providers/BitbucketProvider");
const GenericProvider_1 = require("./providers/GenericProvider");
const GitHubProvider_1 = require("./providers/GitHubProvider");
const KeygenProvider_1 = require("./providers/KeygenProvider");
const PrivateGitHubProvider_1 = require("./providers/PrivateGitHubProvider");
function isUrlProbablySupportMultiRangeRequests(url) {
    return !url.includes("s3.amazonaws.com");
}
function createClient(data, updater, runtimeOptions) {
    // noinspection SuspiciousTypeOfGuard
    if (typeof data === "string") {
        throw (0, builder_util_runtime_1.newError)("Please pass PublishConfiguration object", "ERR_UPDATER_INVALID_PROVIDER_CONFIGURATION");
    }
    const provider = data.provider;
    switch (provider) {
        case "github": {
            const githubOptions = data;
            const token = (githubOptions.private ? process.env["GH_TOKEN"] || process.env["GITHUB_TOKEN"] : null) || githubOptions.token;
            if (token == null) {
                return new GitHubProvider_1.GitHubProvider(githubOptions, updater, runtimeOptions);
            }
            else {
                return new PrivateGitHubProvider_1.PrivateGitHubProvider(githubOptions, updater, token, runtimeOptions);
            }
        }
        case "bitbucket":
            return new BitbucketProvider_1.BitbucketProvider(data, updater, runtimeOptions);
        case "keygen":
            return new KeygenProvider_1.KeygenProvider(data, updater, runtimeOptions);
        case "s3":
        case "spaces":
            return new GenericProvider_1.GenericProvider({
                provider: "generic",
                url: (0, builder_util_runtime_1.getS3LikeProviderBaseUrl)(data),
                channel: data.channel || null,
            }, updater, {
                ...runtimeOptions,
                // https://github.com/minio/minio/issues/5285#issuecomment-350428955
                isUseMultipleRangeRequest: false,
            });
        case "generic": {
            const options = data;
            return new GenericProvider_1.GenericProvider(options, updater, {
                ...runtimeOptions,
                isUseMultipleRangeRequest: options.useMultipleRangeRequest !== false && isUrlProbablySupportMultiRangeRequests(options.url),
            });
        }
        case "custom": {
            const options = data;
            const constructor = options.updateProvider;
            if (!constructor) {
                throw (0, builder_util_runtime_1.newError)("Custom provider not specified", "ERR_UPDATER_INVALID_PROVIDER_CONFIGURATION");
            }
            return new constructor(options, updater, runtimeOptions);
        }
        default:
            throw (0, builder_util_runtime_1.newError)(`Unsupported provider: ${provider}`, "ERR_UPDATER_UNSUPPORTED_PROVIDER");
    }
}
{"version":3,"file":"providerFactory.js","sourceRoot":"","sources":["../src/providerFactory.ts"],"names":[],"mappings":";;AAoBA,wFAEC;AAED,oCA4DC;AApFD,+DAW6B;AAE7B,qEAAiE;AACjE,iEAA6D;AAC7D,+DAA2D;AAC3D,+DAA2D;AAC3D,6EAAyE;AAGzE,SAAgB,sCAAsC,CAAC,GAAW;IAChE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;AAC1C,CAAC;AAED,SAAgB,YAAY,CAAC,IAA8C,EAAE,OAAmB,EAAE,cAAsC;IACtI,qCAAqC;IACrC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAA,+BAAQ,EAAC,yCAAyC,EAAE,4CAA4C,CAAC,CAAA;IACzG,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAC9B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,aAAa,GAAG,IAAqB,CAAA;YAC3C,MAAM,KAAK,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,CAAA;YAC5H,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,OAAO,IAAI,+BAAc,CAAC,aAAa,EAAE,OAAO,EAAE,cAAc,CAAC,CAAA;YACnE,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,6CAAqB,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,CAAA;YACjF,CAAC;QACH,CAAC;QAED,KAAK,WAAW;YACd,OAAO,IAAI,qCAAiB,CAAC,IAAwB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAA;QAEjF,KAAK,QAAQ;YACX,OAAO,IAAI,+BAAc,CAAC,IAAqB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAA;QAE3E,KAAK,IAAI,CAAC;QACV,KAAK,QAAQ;YACX,OAAO,IAAI,iCAAe,CACxB;gBACE,QAAQ,EAAE,SAAS;gBACnB,GAAG,EAAE,IAAA,+CAAwB,EAAC,IAAI,CAAC;gBACnC,OAAO,EAAG,IAAsB,CAAC,OAAO,IAAI,IAAI;aACjD,EACD,OAAO,EACP;gBACE,GAAG,cAAc;gBACjB,oEAAoE;gBACpE,yBAAyB,EAAE,KAAK;aACjC,CACF,CAAA;QAEH,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,OAAO,GAAG,IAA4B,CAAA;YAC5C,OAAO,IAAI,iCAAe,CAAC,OAAO,EAAE,OAAO,EAAE;gBAC3C,GAAG,cAAc;gBACjB,yBAAyB,EAAE,OAAO,CAAC,uBAAuB,KAAK,KAAK,IAAI,sCAAsC,CAAC,OAAO,CAAC,GAAG,CAAC;aAC5H,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,OAAO,GAAG,IAA4B,CAAA;YAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAA;YAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAA,+BAAQ,EAAC,+BAA+B,EAAE,4CAA4C,CAAC,CAAA;YAC/F,CAAC;YACD,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAA;QAC1D,CAAC;QAED;YACE,MAAM,IAAA,+BAAQ,EAAC,yBAAyB,QAAQ,EAAE,EAAE,kCAAkC,CAAC,CAAA;IAC3F,CAAC;AACH,CAAC","sourcesContent":["import {\n  AllPublishOptions,\n  BaseS3Options,\n  BitbucketOptions,\n  CustomPublishOptions,\n  GenericServerOptions,\n  getS3LikeProviderBaseUrl,\n  GithubOptions,\n  KeygenOptions,\n  newError,\n  PublishConfiguration,\n} from \"builder-util-runtime\"\nimport { AppUpdater } from \"./AppUpdater\"\nimport { BitbucketProvider } from \"./providers/BitbucketProvider\"\nimport { GenericProvider } from \"./providers/GenericProvider\"\nimport { GitHubProvider } from \"./providers/GitHubProvider\"\nimport { KeygenProvider } from \"./providers/KeygenProvider\"\nimport { PrivateGitHubProvider } from \"./providers/PrivateGitHubProvider\"\nimport { Provider, ProviderRuntimeOptions } from \"./providers/Provider\"\n\nexport function isUrlProbablySupportMultiRangeRequests(url: string): boolean {\n  return !url.includes(\"s3.amazonaws.com\")\n}\n\nexport function createClient(data: PublishConfiguration | AllPublishOptions, updater: AppUpdater, runtimeOptions: ProviderRuntimeOptions): Provider<any> {\n  // noinspection SuspiciousTypeOfGuard\n  if (typeof data === \"string\") {\n    throw newError(\"Please pass PublishConfiguration object\", \"ERR_UPDATER_INVALID_PROVIDER_CONFIGURATION\")\n  }\n\n  const provider = data.provider\n  switch (provider) {\n    case \"github\": {\n      const githubOptions = data as GithubOptions\n      const token = (githubOptions.private ? process.env[\"GH_TOKEN\"] || process.env[\"GITHUB_TOKEN\"] : null) || githubOptions.token\n      if (token == null) {\n        return new GitHubProvider(githubOptions, updater, runtimeOptions)\n      } else {\n        return new PrivateGitHubProvider(githubOptions, updater, token, runtimeOptions)\n      }\n    }\n\n    case \"bitbucket\":\n      return new BitbucketProvider(data as BitbucketOptions, updater, runtimeOptions)\n\n    case \"keygen\":\n      return new KeygenProvider(data as KeygenOptions, updater, runtimeOptions)\n\n    case \"s3\":\n    case \"spaces\":\n      return new GenericProvider(\n        {\n          provider: \"generic\",\n          url: getS3LikeProviderBaseUrl(data),\n          channel: (data as BaseS3Options).channel || null,\n        },\n        updater,\n        {\n          ...runtimeOptions,\n          // https://github.com/minio/minio/issues/5285#issuecomment-350428955\n          isUseMultipleRangeRequest: false,\n        }\n      )\n\n    case \"generic\": {\n      const options = data as GenericServerOptions\n      return new GenericProvider(options, updater, {\n        ...runtimeOptions,\n        isUseMultipleRangeRequest: options.useMultipleRangeRequest !== false && isUrlProbablySupportMultiRangeRequests(options.url),\n      })\n    }\n\n    case \"custom\": {\n      const options = data as CustomPublishOptions\n      const constructor = options.updateProvider\n      if (!constructor) {\n        throw newError(\"Custom provider not specified\", \"ERR_UPDATER_INVALID_PROVIDER_CONFIGURATION\")\n      }\n      return new constructor(options, updater, runtimeOptions)\n    }\n\n    default:\n      throw newError(`Unsupported provider: ${provider}`, \"ERR_UPDATER_UNSUPPORTED_PROVIDER\")\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.UpdaterSignal = exports.UPDATE_DOWNLOADED = exports.DOWNLOAD_PROGRESS = exports.CancellationToken = void 0;
exports.addHandler = addHandler;
const builder_util_runtime_1 = require("builder-util-runtime");
Object.defineProperty(exports, "CancellationToken", { enumerable: true, get: function () { return builder_util_runtime_1.CancellationToken; } });
exports.DOWNLOAD_PROGRESS = "download-progress";
exports.UPDATE_DOWNLOADED = "update-downloaded";
class UpdaterSignal {
    constructor(emitter) {
        this.emitter = emitter;
    }
    /**
     * Emitted when an authenticating proxy is [asking for user credentials](https://github.com/electron/electron/blob/master/docs/api/client-request.md#event-login).
     */
    login(handler) {
        addHandler(this.emitter, "login", handler);
    }
    progress(handler) {
        addHandler(this.emitter, exports.DOWNLOAD_PROGRESS, handler);
    }
    updateDownloaded(handler) {
        addHandler(this.emitter, exports.UPDATE_DOWNLOADED, handler);
    }
    updateCancelled(handler) {
        addHandler(this.emitter, "update-cancelled", handler);
    }
}
exports.UpdaterSignal = UpdaterSignal;
const isLogEvent = false;
function addHandler(emitter, event, handler) {
    if (isLogEvent) {
        emitter.on(event, (...args) => {
            console.log("%s %s", event, args);
            handler(...args);
        });
    }
    else {
        emitter.on(event, handler);
    }
}
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA6CA,gCASC;AAtDD,+DAAmH;AAK1G,kGALA,wCAAiB,OAKA;AAEb,QAAA,iBAAiB,GAAG,mBAAmB,CAAA;AACvC,QAAA,iBAAiB,GAAG,mBAAmB,CAAA;AAYpD,MAAa,aAAa;IACxB,YAAoB,OAAqB;QAArB,YAAO,GAAP,OAAO,CAAc;IAAG,CAAC;IAE7C;;OAEG;IACH,KAAK,CAAC,OAAqB;QACzB,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAC5C,CAAC;IAED,QAAQ,CAAC,OAAqC;QAC5C,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,yBAAiB,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,gBAAgB,CAAC,OAA8C;QAC7D,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,yBAAiB,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,eAAe,CAAC,OAAmC;QACjD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAA;IACvD,CAAC;CACF;AArBD,sCAqBC;AAED,MAAM,UAAU,GAAG,KAAK,CAAA;AAExB,SAAgB,UAAU,CAAC,OAAqB,EAAE,KAAoB,EAAE,OAAsC;IAC5G,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAgB,EAAE,EAAE;YACxC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;YACjC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC5B,CAAC;AACH,CAAC","sourcesContent":["import { CancellationToken, PackageFileInfo, ProgressInfo, UpdateFileInfo, UpdateInfo } from \"builder-util-runtime\"\nimport { EventEmitter } from \"events\"\nimport { URL } from \"url\"\nimport { LoginCallback } from \"./electronHttpExecutor\"\n\nexport { CancellationToken, PackageFileInfo, ProgressInfo, UpdateFileInfo, UpdateInfo }\n\nexport const DOWNLOAD_PROGRESS = \"download-progress\"\nexport const UPDATE_DOWNLOADED = \"update-downloaded\"\n\nexport interface Logger {\n  info(message?: any): void\n\n  warn(message?: any): void\n\n  error(message?: any): void\n\n  debug?(message: string): void\n}\n\nexport class UpdaterSignal {\n  constructor(private emitter: EventEmitter) {}\n\n  /**\n   * Emitted when an authenticating proxy is [asking for user credentials](https://github.com/electron/electron/blob/master/docs/api/client-request.md#event-login).\n   */\n  login(handler: LoginHandler): void {\n    addHandler(this.emitter, \"login\", handler)\n  }\n\n  progress(handler: (info: ProgressInfo) => void): void {\n    addHandler(this.emitter, DOWNLOAD_PROGRESS, handler)\n  }\n\n  updateDownloaded(handler: (info: UpdateDownloadedEvent) => void): void {\n    addHandler(this.emitter, UPDATE_DOWNLOADED, handler)\n  }\n\n  updateCancelled(handler: (info: UpdateInfo) => void): void {\n    addHandler(this.emitter, \"update-cancelled\", handler)\n  }\n}\n\nconst isLogEvent = false\n\nexport function addHandler(emitter: EventEmitter, event: UpdaterEvents, handler: (...args: Array<any>) => void): void {\n  if (isLogEvent) {\n    emitter.on(event, (...args: Array<any>) => {\n      console.log(\"%s %s\", event, args)\n      handler(...args)\n    })\n  } else {\n    emitter.on(event, handler)\n  }\n}\n\nexport interface UpdateCheckResult {\n  readonly isUpdateAvailable: boolean\n\n  readonly updateInfo: UpdateInfo\n\n  readonly downloadPromise?: Promise<Array<string>> | null\n\n  readonly cancellationToken?: CancellationToken\n\n  /** @deprecated */\n  readonly versionInfo: UpdateInfo\n}\n\nexport interface UpdateDownloadedEvent extends UpdateInfo {\n  downloadedFile: string\n}\n\nexport interface ResolvedUpdateFileInfo {\n  readonly url: URL\n  readonly info: UpdateFileInfo\n\n  packageInfo?: PackageFileInfo\n}\n\nexport type UpdaterEvents = \"login\" | \"checking-for-update\" | \"update-available\" | \"update-not-available\" | \"update-cancelled\" | \"download-progress\" | \"update-downloaded\" | \"error\"\n\nexport type LoginHandler = (authInfo: any, callback: LoginCallback) => void\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.newBaseUrl = newBaseUrl;
exports.newUrlFromBase = newUrlFromBase;
exports.getChannelFilename = getChannelFilename;
exports.blockmapFiles = blockmapFiles;
// if baseUrl path doesn't ends with /, this path will be not prepended to passed pathname for new URL(input, base)
const url_1 = require("url");
// @ts-ignore
const escapeRegExp = require("lodash.escaperegexp");
/** @internal */
function newBaseUrl(url) {
    const result = new url_1.URL(url);
    if (!result.pathname.endsWith("/")) {
        result.pathname += "/";
    }
    return result;
}
// addRandomQueryToAvoidCaching is false by default because in most cases URL already contains version number,
// so, it makes sense only for Generic Provider for channel files
function newUrlFromBase(pathname, baseUrl, addRandomQueryToAvoidCaching = false) {
    const result = new url_1.URL(pathname, baseUrl);
    // search is not propagated (search is an empty string if not specified)
    const search = baseUrl.search;
    if (search != null && search.length !== 0) {
        result.search = search;
    }
    else if (addRandomQueryToAvoidCaching) {
        result.search = `noCache=${Date.now().toString(32)}`;
    }
    return result;
}
function getChannelFilename(channel) {
    return `${channel}.yml`;
}
function blockmapFiles(baseUrl, oldVersion, newVersion) {
    const newBlockMapUrl = newUrlFromBase(`${baseUrl.pathname}.blockmap`, baseUrl);
    const oldBlockMapUrl = newUrlFromBase(`${baseUrl.pathname.replace(new RegExp(escapeRegExp(newVersion), "g"), oldVersion)}.blockmap`, baseUrl);
    return [oldBlockMapUrl, newBlockMapUrl];
}
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;AAMA,gCAMC;AAID,wCAUC;AAED,gDAEC;AAED,sCAIC;AApCD,mHAAmH;AACnH,6BAAyB;AACzB,aAAa;AACb,oDAAmD;AAEnD,gBAAgB;AAChB,SAAgB,UAAU,CAAC,GAAW;IACpC,MAAM,MAAM,GAAG,IAAI,SAAG,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAA;IACxB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,8GAA8G;AAC9G,iEAAiE;AACjE,SAAgB,cAAc,CAAC,QAAgB,EAAE,OAAY,EAAE,4BAA4B,GAAG,KAAK;IACjG,MAAM,MAAM,GAAG,IAAI,SAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACzC,wEAAwE;IACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC7B,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;SAAM,IAAI,4BAA4B,EAAE,CAAC;QACxC,MAAM,CAAC,MAAM,GAAG,WAAW,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAA;IACtD,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAgB,kBAAkB,CAAC,OAAe;IAChD,OAAO,GAAG,OAAO,MAAM,CAAA;AACzB,CAAC;AAED,SAAgB,aAAa,CAAC,OAAY,EAAE,UAAkB,EAAE,UAAkB;IAChF,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,OAAO,CAAC,QAAQ,WAAW,EAAE,OAAO,CAAC,CAAA;IAC9E,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAC7I,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;AACzC,CAAC","sourcesContent":["// if baseUrl path doesn't ends with /, this path will be not prepended to passed pathname for new URL(input, base)\nimport { URL } from \"url\"\n// @ts-ignore\nimport * as escapeRegExp from \"lodash.escaperegexp\"\n\n/** @internal */\nexport function newBaseUrl(url: string): URL {\n  const result = new URL(url)\n  if (!result.pathname.endsWith(\"/\")) {\n    result.pathname += \"/\"\n  }\n  return result\n}\n\n// addRandomQueryToAvoidCaching is false by default because in most cases URL already contains version number,\n// so, it makes sense only for Generic Provider for channel files\nexport function newUrlFromBase(pathname: string, baseUrl: URL, addRandomQueryToAvoidCaching = false): URL {\n  const result = new URL(pathname, baseUrl)\n  // search is not propagated (search is an empty string if not specified)\n  const search = baseUrl.search\n  if (search != null && search.length !== 0) {\n    result.search = search\n  } else if (addRandomQueryToAvoidCaching) {\n    result.search = `noCache=${Date.now().toString(32)}`\n  }\n  return result\n}\n\nexport function getChannelFilename(channel: string): string {\n  return `${channel}.yml`\n}\n\nexport function blockmapFiles(baseUrl: URL, oldVersion: string, newVersion: string): URL[] {\n  const newBlockMapUrl = newUrlFromBase(`${baseUrl.pathname}.blockmap`, baseUrl)\n  const oldBlockMapUrl = newUrlFromBase(`${baseUrl.pathname.replace(new RegExp(escapeRegExp(newVersion), \"g\"), oldVersion)}.blockmap`, baseUrl)\n  return [oldBlockMapUrl, newBlockMapUrl]\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.verifySignature = verifySignature;
const builder_util_runtime_1 = require("builder-util-runtime");
const child_process_1 = require("child_process");
const os = require("os");
const path = require("path");
// $certificateInfo = (Get-AuthenticodeSignature 'xxx\yyy.exe'
// | where {$_.Status.Equals([System.Management.Automation.SignatureStatus]::Valid) -and $_.SignerCertificate.Subject.Contains("CN=siemens.com")})
// | Out-String ; if ($certificateInfo) { exit 0 } else { exit 1 }
function verifySignature(publisherNames, unescapedTempUpdateFile, logger) {
    return new Promise((resolve, reject) => {
        // Escape quotes and backticks in filenames to prevent user from breaking the
        // arguments and perform a remote command injection.
        //
        // Consider example powershell command:
        // ```powershell
        // Get-AuthenticodeSignature 'C:\\path\\my-bad-';calc;'filename.exe'
        // ```
        // The above would work expected and find the file name, however, it will also execute `;calc;`
        // command and start the calculator app.
        //
        // From Powershell quoting rules:
        // https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules?view=powershell-7
        // * Double quotes `"` are treated literally within single-quoted strings;
        // * Single quotes can be escaped by doubling them: 'don''t' -> don't;
        //
        // Also note that at this point the file has already been written to the disk, thus we are
        // guaranteed that the path will not contain any illegal characters like <>:"/\|?*
        // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
        const tempUpdateFile = unescapedTempUpdateFile.replace(/'/g, "''");
        logger.info(`Verifying signature ${tempUpdateFile}`);
        // https://github.com/electron-userland/electron-builder/issues/2421
        // https://github.com/electron-userland/electron-builder/issues/2535
        // Resetting PSModulePath is necessary https://github.com/electron-userland/electron-builder/issues/7127
        // semicolon wont terminate the set command and run chcp thus leading to verification errors on certificats with special chars like german umlauts, so rather
        //   join commands using & https://github.com/electron-userland/electron-builder/issues/8162
        (0, child_process_1.execFile)(`set "PSModulePath=" & chcp 65001 >NUL & powershell.exe`, ["-NoProfile", "-NonInteractive", "-InputFormat", "None", "-Command", `"Get-AuthenticodeSignature -LiteralPath '${tempUpdateFile}' | ConvertTo-Json -Compress"`], {
            shell: true,
            timeout: 20 * 1000,
        }, (error, stdout, stderr) => {
            var _a;
            try {
                if (error != null || stderr) {
                    handleError(logger, error, stderr, reject);
                    resolve(null);
                    return;
                }
                const data = parseOut(stdout);
                if (data.Status === 0) {
                    try {
                        const normlaizedUpdateFilePath = path.normalize(data.Path);
                        const normalizedTempUpdateFile = path.normalize(unescapedTempUpdateFile);
                        logger.info(`LiteralPath: ${normlaizedUpdateFilePath}. Update Path: ${normalizedTempUpdateFile}`);
                        if (normlaizedUpdateFilePath !== normalizedTempUpdateFile) {
                            handleError(logger, new Error(`LiteralPath of ${normlaizedUpdateFilePath} is different than ${normalizedTempUpdateFile}`), stderr, reject);
                            resolve(null);
                            return;
                        }
                    }
                    catch (error) {
                        logger.warn(`Unable to verify LiteralPath of update asset due to missing data.Path. Skipping this step of validation. Message: ${(_a = error.message) !== null && _a !== void 0 ? _a : error.stack}`);
                    }
                    const subject = (0, builder_util_runtime_1.parseDn)(data.SignerCertificate.Subject);
                    let match = false;
                    for (const name of publisherNames) {
                        const dn = (0, builder_util_runtime_1.parseDn)(name);
                        if (dn.size) {
                            // if we have a full DN, compare all values
                            const allKeys = Array.from(dn.keys());
                            match = allKeys.every(key => {
                                return dn.get(key) === subject.get(key);
                            });
                        }
                        else if (name === subject.get("CN")) {
                            logger.warn(`Signature validated using only CN ${name}. Please add your full Distinguished Name (DN) to publisherNames configuration`);
                            match = true;
                        }
                        if (match) {
                            resolve(null);
                            return;
                        }
                    }
                }
                const result = `publisherNames: ${publisherNames.join(" | ")}, raw info: ` + JSON.stringify(data, (name, value) => (name === "RawData" ? undefined : value), 2);
                logger.warn(`Sign verification failed, installer signed with incorrect certificate: ${result}`);
                resolve(result);
            }
            catch (e) {
                handleError(logger, e, null, reject);
                resolve(null);
                return;
            }
        });
    });
}
function parseOut(out) {
    const data = JSON.parse(out);
    delete data.PrivateKey;
    delete data.IsOSBinary;
    delete data.SignatureType;
    const signerCertificate = data.SignerCertificate;
    if (signerCertificate != null) {
        delete signerCertificate.Archived;
        delete signerCertificate.Extensions;
        delete signerCertificate.Handle;
        delete signerCertificate.HasPrivateKey;
        // duplicates data.SignerCertificate (contains RawData)
        delete signerCertificate.SubjectName;
    }
    return data;
}
function handleError(logger, error, stderr, reject) {
    if (isOldWin6()) {
        logger.warn(`Cannot execute Get-AuthenticodeSignature: ${error || stderr}. Ignoring signature validation due to unsupported powershell version. Please upgrade to powershell 3 or higher.`);
        return;
    }
    try {
        (0, child_process_1.execFileSync)("powershell.exe", ["-NoProfile", "-NonInteractive", "-Command", "ConvertTo-Json test"], { timeout: 10 * 1000 });
    }
    catch (testError) {
        logger.warn(`Cannot execute ConvertTo-Json: ${testError.message}. Ignoring signature validation due to unsupported powershell version. Please upgrade to powershell 3 or higher.`);
        return;
    }
    if (error != null) {
        reject(error);
    }
    if (stderr) {
        reject(new Error(`Cannot execute Get-AuthenticodeSignature, stderr: ${stderr}. Failing signature validation due to unknown stderr.`));
    }
}
function isOldWin6() {
    const winVersion = os.release();
    return winVersion.startsWith("6.") && !winVersion.startsWith("6.3");
}
{"version":3,"file":"windowsExecutableCodeSignatureVerifier.js","sourceRoot":"","sources":["../src/windowsExecutableCodeSignatureVerifier.ts"],"names":[],"mappings":";;AASA,0CAwFC;AAjGD,+DAA8C;AAC9C,iDAAsD;AACtD,yBAAwB;AAExB,6BAA4B;AAE5B,8DAA8D;AAC9D,kJAAkJ;AAClJ,kEAAkE;AAClE,SAAgB,eAAe,CAAC,cAA6B,EAAE,uBAA+B,EAAE,MAAc;IAC5G,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACpD,6EAA6E;QAC7E,oDAAoD;QACpD,EAAE;QACF,uCAAuC;QACvC,gBAAgB;QAChB,oEAAoE;QACpE,MAAM;QACN,+FAA+F;QAC/F,wCAAwC;QACxC,EAAE;QACF,iCAAiC;QACjC,2HAA2H;QAC3H,0EAA0E;QAC1E,sEAAsE;QACtE,EAAE;QACF,0FAA0F;QAC1F,kFAAkF;QAClF,sEAAsE;QACtE,MAAM,cAAc,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAClE,MAAM,CAAC,IAAI,CAAC,uBAAuB,cAAc,EAAE,CAAC,CAAA;QAEpD,oEAAoE;QACpE,oEAAoE;QACpE,wGAAwG;QACxG,6JAA6J;QAC7J,4FAA4F;QAC5F,IAAA,wBAAQ,EACN,wDAAwD,EACxD,CAAC,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,4CAA4C,cAAc,+BAA+B,CAAC,EAChK;YACE,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,EAAE,GAAG,IAAI;SACnB,EACD,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;;YACxB,IAAI,CAAC;gBACH,IAAI,KAAK,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;oBAC5B,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;oBAC1C,OAAO,CAAC,IAAI,CAAC,CAAA;oBACb,OAAM;gBACR,CAAC;gBACD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;gBAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,IAAI,CAAC;wBACH,MAAM,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;wBAC1D,MAAM,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAA;wBACxE,MAAM,CAAC,IAAI,CAAC,gBAAgB,wBAAwB,kBAAkB,wBAAwB,EAAE,CAAC,CAAA;wBACjG,IAAI,wBAAwB,KAAK,wBAAwB,EAAE,CAAC;4BAC1D,WAAW,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,kBAAkB,wBAAwB,sBAAsB,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;4BAC1I,OAAO,CAAC,IAAI,CAAC,CAAA;4BACb,OAAM;wBACR,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAU,EAAE,CAAC;wBACpB,MAAM,CAAC,IAAI,CAAC,qHAAqH,MAAA,KAAK,CAAC,OAAO,mCAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;oBAClK,CAAC;oBACD,MAAM,OAAO,GAAG,IAAA,8BAAO,EAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;oBACvD,IAAI,KAAK,GAAG,KAAK,CAAA;oBACjB,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;wBAClC,MAAM,EAAE,GAAG,IAAA,8BAAO,EAAC,IAAI,CAAC,CAAA;wBACxB,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;4BACZ,2CAA2C;4BAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;4BACrC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gCAC1B,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;4BACzC,CAAC,CAAC,CAAA;wBACJ,CAAC;6BAAM,IAAI,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,EAAE,CAAC;4BACvC,MAAM,CAAC,IAAI,CAAC,qCAAqC,IAAI,gFAAgF,CAAC,CAAA;4BACtI,KAAK,GAAG,IAAI,CAAA;wBACd,CAAC;wBACD,IAAI,KAAK,EAAE,CAAC;4BACV,OAAO,CAAC,IAAI,CAAC,CAAA;4BACb,OAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,MAAM,GAAG,mBAAmB,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC/J,MAAM,CAAC,IAAI,CAAC,0EAA0E,MAAM,EAAE,CAAC,CAAA;gBAC/F,OAAO,CAAC,MAAM,CAAC,CAAA;YACjB,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;gBACpC,OAAO,CAAC,IAAI,CAAC,CAAA;gBACb,OAAM;YACR,CAAC;QACH,CAAC,CACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,OAAO,IAAI,CAAC,UAAU,CAAA;IACtB,OAAO,IAAI,CAAC,UAAU,CAAA;IACtB,OAAO,IAAI,CAAC,aAAa,CAAA;IACzB,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAA;IAChD,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAC,QAAQ,CAAA;QACjC,OAAO,iBAAiB,CAAC,UAAU,CAAA;QACnC,OAAO,iBAAiB,CAAC,MAAM,CAAA;QAC/B,OAAO,iBAAiB,CAAC,aAAa,CAAA;QACtC,uDAAuD;QACvD,OAAO,iBAAiB,CAAC,WAAW,CAAA;IACtC,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,KAAmB,EAAE,MAAqB,EAAE,MAA6B;IAC5G,IAAI,SAAS,EAAE,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CACT,6CAA6C,KAAK,IAAI,MAAM,kHAAkH,CAC/K,CAAA;QACD,OAAM;IACR,CAAC;IAED,IAAI,CAAC;QACH,IAAA,4BAAY,EAAC,gBAAgB,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,EAAS,CAAC,CAAA;IACrI,CAAC;IAAC,OAAO,SAAc,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CACT,kCAAkC,SAAS,CAAC,OAAO,kHAAkH,CACtK,CAAA;QACD,OAAM;IACR,CAAC;IAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,CAAA;IACf,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,KAAK,CAAC,qDAAqD,MAAM,uDAAuD,CAAC,CAAC,CAAA;IACvI,CAAC;AACH,CAAC;AAED,SAAS,SAAS;IAChB,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;IAC/B,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AACrE,CAAC","sourcesContent":["import { parseDn } from \"builder-util-runtime\"\nimport { execFile, execFileSync } from \"child_process\"\nimport * as os from \"os\"\nimport { Logger } from \"./types\"\nimport * as path from \"path\"\n\n// $certificateInfo = (Get-AuthenticodeSignature 'xxx\\yyy.exe'\n// | where {$_.Status.Equals([System.Management.Automation.SignatureStatus]::Valid) -and $_.SignerCertificate.Subject.Contains(\"CN=siemens.com\")})\n// | Out-String ; if ($certificateInfo) { exit 0 } else { exit 1 }\nexport function verifySignature(publisherNames: Array<string>, unescapedTempUpdateFile: string, logger: Logger): Promise<string | null> {\n  return new Promise<string | null>((resolve, reject) => {\n    // Escape quotes and backticks in filenames to prevent user from breaking the\n    // arguments and perform a remote command injection.\n    //\n    // Consider example powershell command:\n    // ```powershell\n    // Get-AuthenticodeSignature 'C:\\\\path\\\\my-bad-';calc;'filename.exe'\n    // ```\n    // The above would work expected and find the file name, however, it will also execute `;calc;`\n    // command and start the calculator app.\n    //\n    // From Powershell quoting rules:\n    // https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules?view=powershell-7\n    // * Double quotes `\"` are treated literally within single-quoted strings;\n    // * Single quotes can be escaped by doubling them: 'don''t' -> don't;\n    //\n    // Also note that at this point the file has already been written to the disk, thus we are\n    // guaranteed that the path will not contain any illegal characters like <>:\"/\\|?*\n    // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file\n    const tempUpdateFile = unescapedTempUpdateFile.replace(/'/g, \"''\")\n    logger.info(`Verifying signature ${tempUpdateFile}`)\n\n    // https://github.com/electron-userland/electron-builder/issues/2421\n    // https://github.com/electron-userland/electron-builder/issues/2535\n    // Resetting PSModulePath is necessary https://github.com/electron-userland/electron-builder/issues/7127\n    // semicolon wont terminate the set command and run chcp thus leading to verification errors on certificats with special chars like german umlauts, so rather\n    //   join commands using & https://github.com/electron-userland/electron-builder/issues/8162\n    execFile(\n      `set \"PSModulePath=\" & chcp 65001 >NUL & powershell.exe`,\n      [\"-NoProfile\", \"-NonInteractive\", \"-InputFormat\", \"None\", \"-Command\", `\"Get-AuthenticodeSignature -LiteralPath '${tempUpdateFile}' | ConvertTo-Json -Compress\"`],\n      {\n        shell: true,\n        timeout: 20 * 1000,\n      },\n      (error, stdout, stderr) => {\n        try {\n          if (error != null || stderr) {\n            handleError(logger, error, stderr, reject)\n            resolve(null)\n            return\n          }\n          const data = parseOut(stdout)\n          if (data.Status === 0) {\n            try {\n              const normlaizedUpdateFilePath = path.normalize(data.Path)\n              const normalizedTempUpdateFile = path.normalize(unescapedTempUpdateFile)\n              logger.info(`LiteralPath: ${normlaizedUpdateFilePath}. Update Path: ${normalizedTempUpdateFile}`)\n              if (normlaizedUpdateFilePath !== normalizedTempUpdateFile) {\n                handleError(logger, new Error(`LiteralPath of ${normlaizedUpdateFilePath} is different than ${normalizedTempUpdateFile}`), stderr, reject)\n                resolve(null)\n                return\n              }\n            } catch (error: any) {\n              logger.warn(`Unable to verify LiteralPath of update asset due to missing data.Path. Skipping this step of validation. Message: ${error.message ?? error.stack}`)\n            }\n            const subject = parseDn(data.SignerCertificate.Subject)\n            let match = false\n            for (const name of publisherNames) {\n              const dn = parseDn(name)\n              if (dn.size) {\n                // if we have a full DN, compare all values\n                const allKeys = Array.from(dn.keys())\n                match = allKeys.every(key => {\n                  return dn.get(key) === subject.get(key)\n                })\n              } else if (name === subject.get(\"CN\")!) {\n                logger.warn(`Signature validated using only CN ${name}. Please add your full Distinguished Name (DN) to publisherNames configuration`)\n                match = true\n              }\n              if (match) {\n                resolve(null)\n                return\n              }\n            }\n          }\n\n          const result = `publisherNames: ${publisherNames.join(\" | \")}, raw info: ` + JSON.stringify(data, (name, value) => (name === \"RawData\" ? undefined : value), 2)\n          logger.warn(`Sign verification failed, installer signed with incorrect certificate: ${result}`)\n          resolve(result)\n        } catch (e: any) {\n          handleError(logger, e, null, reject)\n          resolve(null)\n          return\n        }\n      }\n    )\n  })\n}\n\nfunction parseOut(out: string): any {\n  const data = JSON.parse(out)\n  delete data.PrivateKey\n  delete data.IsOSBinary\n  delete data.SignatureType\n  const signerCertificate = data.SignerCertificate\n  if (signerCertificate != null) {\n    delete signerCertificate.Archived\n    delete signerCertificate.Extensions\n    delete signerCertificate.Handle\n    delete signerCertificate.HasPrivateKey\n    // duplicates data.SignerCertificate (contains RawData)\n    delete signerCertificate.SubjectName\n  }\n  return data\n}\n\nfunction handleError(logger: Logger, error: Error | null, stderr: string | null, reject: (reason: any) => void): void {\n  if (isOldWin6()) {\n    logger.warn(\n      `Cannot execute Get-AuthenticodeSignature: ${error || stderr}. Ignoring signature validation due to unsupported powershell version. Please upgrade to powershell 3 or higher.`\n    )\n    return\n  }\n\n  try {\n    execFileSync(\"powershell.exe\", [\"-NoProfile\", \"-NonInteractive\", \"-Command\", \"ConvertTo-Json test\"], { timeout: 10 * 1000 } as any)\n  } catch (testError: any) {\n    logger.warn(\n      `Cannot execute ConvertTo-Json: ${testError.message}. Ignoring signature validation due to unsupported powershell version. Please upgrade to powershell 3 or higher.`\n    )\n    return\n  }\n\n  if (error != null) {\n    reject(error)\n  }\n\n  if (stderr) {\n    reject(new Error(`Cannot execute Get-AuthenticodeSignature, stderr: ${stderr}. Failing signature validation due to unknown stderr.`))\n  }\n}\n\nfunction isOldWin6(): boolean {\n  const winVersion = os.release()\n  return winVersion.startsWith(\"6.\") && !winVersion.startsWith(\"6.3\")\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.BitbucketProvider = void 0;
const builder_util_runtime_1 = require("builder-util-runtime");
const util_1 = require("../util");
const Provider_1 = require("./Provider");
class BitbucketProvider extends Provider_1.Provider {
    constructor(configuration, updater, runtimeOptions) {
        super({
            ...runtimeOptions,
            isUseMultipleRangeRequest: false,
        });
        this.configuration = configuration;
        this.updater = updater;
        const { owner, slug } = configuration;
        this.baseUrl = (0, util_1.newBaseUrl)(`https://api.bitbucket.org/2.0/repositories/${owner}/${slug}/downloads`);
    }
    get channel() {
        return this.updater.channel || this.configuration.channel || "latest";
    }
    async getLatestVersion() {
        const cancellationToken = new builder_util_runtime_1.CancellationToken();
        const channelFile = (0, util_1.getChannelFilename)(this.getCustomChannelName(this.channel));
        const channelUrl = (0, util_1.newUrlFromBase)(channelFile, this.baseUrl, this.updater.isAddNoCacheQuery);
        try {
            const updateInfo = await this.httpRequest(channelUrl, undefined, cancellationToken);
            return (0, Provider_1.parseUpdateInfo)(updateInfo, channelFile, channelUrl);
        }
        catch (e) {
            throw (0, builder_util_runtime_1.newError)(`Unable to find latest version on ${this.toString()}, please ensure release exists: ${e.stack || e.message}`, "ERR_UPDATER_LATEST_VERSION_NOT_FOUND");
        }
    }
    resolveFiles(updateInfo) {
        return (0, Provider_1.resolveFiles)(updateInfo, this.baseUrl);
    }
    toString() {
        const { owner, slug } = this.configuration;
        return `Bitbucket (owner: ${owner}, slug: ${slug}, channel: ${this.channel})`;
    }
}
exports.BitbucketProvider = BitbucketProvider;
{"version":3,"file":"BitbucketProvider.js","sourceRoot":"","sources":["../../src/providers/BitbucketProvider.ts"],"names":[],"mappings":";;;AAAA,+DAAgG;AAGhG,kCAAwE;AACxE,yCAA4F;AAE5F,MAAa,iBAAkB,SAAQ,mBAAoB;IAGzD,YACmB,aAA+B,EAC/B,OAAmB,EACpC,cAAsC;QAEtC,KAAK,CAAC;YACJ,GAAG,cAAc;YACjB,yBAAyB,EAAE,KAAK;SACjC,CAAC,CAAA;QAPe,kBAAa,GAAb,aAAa,CAAkB;QAC/B,YAAO,GAAP,OAAO,CAAY;QAOpC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,aAAa,CAAA;QACrC,IAAI,CAAC,OAAO,GAAG,IAAA,iBAAU,EAAC,8CAA8C,KAAK,IAAI,IAAI,YAAY,CAAC,CAAA;IACpG,CAAC;IAED,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,QAAQ,CAAA;IACvE,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,iBAAiB,GAAG,IAAI,wCAAiB,EAAE,CAAA;QACjD,MAAM,WAAW,GAAG,IAAA,yBAAkB,EAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QAC/E,MAAM,UAAU,GAAG,IAAA,qBAAc,EAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QAC5F,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAA;YACnF,OAAO,IAAA,0BAAe,EAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA;QAC7D,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAA,+BAAQ,EAAC,oCAAoC,IAAI,CAAC,QAAQ,EAAE,mCAAmC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,sCAAsC,CAAC,CAAA;QACtK,CAAC;IACH,CAAC;IAED,YAAY,CAAC,UAAsB;QACjC,OAAO,IAAA,uBAAY,EAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/C,CAAC;IAED,QAAQ;QACN,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;QAC1C,OAAO,qBAAqB,KAAK,WAAW,IAAI,cAAc,IAAI,CAAC,OAAO,GAAG,CAAA;IAC/E,CAAC;CACF;AAxCD,8CAwCC","sourcesContent":["import { CancellationToken, BitbucketOptions, newError, UpdateInfo } from \"builder-util-runtime\"\nimport { AppUpdater } from \"../AppUpdater\"\nimport { ResolvedUpdateFileInfo } from \"../types\"\nimport { getChannelFilename, newBaseUrl, newUrlFromBase } from \"../util\"\nimport { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from \"./Provider\"\n\nexport class BitbucketProvider extends Provider<UpdateInfo> {\n  private readonly baseUrl: URL\n\n  constructor(\n    private readonly configuration: BitbucketOptions,\n    private readonly updater: AppUpdater,\n    runtimeOptions: ProviderRuntimeOptions\n  ) {\n    super({\n      ...runtimeOptions,\n      isUseMultipleRangeRequest: false,\n    })\n    const { owner, slug } = configuration\n    this.baseUrl = newBaseUrl(`https://api.bitbucket.org/2.0/repositories/${owner}/${slug}/downloads`)\n  }\n\n  private get channel(): string {\n    return this.updater.channel || this.configuration.channel || \"latest\"\n  }\n\n  async getLatestVersion(): Promise<UpdateInfo> {\n    const cancellationToken = new CancellationToken()\n    const channelFile = getChannelFilename(this.getCustomChannelName(this.channel))\n    const channelUrl = newUrlFromBase(channelFile, this.baseUrl, this.updater.isAddNoCacheQuery)\n    try {\n      const updateInfo = await this.httpRequest(channelUrl, undefined, cancellationToken)\n      return parseUpdateInfo(updateInfo, channelFile, channelUrl)\n    } catch (e: any) {\n      throw newError(`Unable to find latest version on ${this.toString()}, please ensure release exists: ${e.stack || e.message}`, \"ERR_UPDATER_LATEST_VERSION_NOT_FOUND\")\n    }\n  }\n\n  resolveFiles(updateInfo: UpdateInfo): Array<ResolvedUpdateFileInfo> {\n    return resolveFiles(updateInfo, this.baseUrl)\n  }\n\n  toString() {\n    const { owner, slug } = this.configuration\n    return `Bitbucket (owner: ${owner}, slug: ${slug}, channel: ${this.channel})`\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GenericProvider = void 0;
const builder_util_runtime_1 = require("builder-util-runtime");
const util_1 = require("../util");
const Provider_1 = require("./Provider");
class GenericProvider extends Provider_1.Provider {
    constructor(configuration, updater, runtimeOptions) {
        super(runtimeOptions);
        this.configuration = configuration;
        this.updater = updater;
        this.baseUrl = (0, util_1.newBaseUrl)(this.configuration.url);
    }
    get channel() {
        const result = this.updater.channel || this.configuration.channel;
        return result == null ? this.getDefaultChannelName() : this.getCustomChannelName(result);
    }
    async getLatestVersion() {
        const channelFile = (0, util_1.getChannelFilename)(this.channel);
        const channelUrl = (0, util_1.newUrlFromBase)(channelFile, this.baseUrl, this.updater.isAddNoCacheQuery);
        for (let attemptNumber = 0;; attemptNumber++) {
            try {
                return (0, Provider_1.parseUpdateInfo)(await this.httpRequest(channelUrl), channelFile, channelUrl);
            }
            catch (e) {
                if (e instanceof builder_util_runtime_1.HttpError && e.statusCode === 404) {
                    throw (0, builder_util_runtime_1.newError)(`Cannot find channel "${channelFile}" update info: ${e.stack || e.message}`, "ERR_UPDATER_CHANNEL_FILE_NOT_FOUND");
                }
                else if (e.code === "ECONNREFUSED") {
                    if (attemptNumber < 3) {
                        await new Promise((resolve, reject) => {
                            try {
                                setTimeout(resolve, 1000 * attemptNumber);
                            }
                            catch (e) {
                                reject(e);
                            }
                        });
                        continue;
                    }
                }
                throw e;
            }
        }
    }
    resolveFiles(updateInfo) {
        return (0, Provider_1.resolveFiles)(updateInfo, this.baseUrl);
    }
}
exports.GenericProvider = GenericProvider;
{"version":3,"file":"GenericProvider.js","sourceRoot":"","sources":["../../src/providers/GenericProvider.ts"],"names":[],"mappings":";;;AAAA,+DAA4F;AAG5F,kCAAwE;AACxE,yCAA4F;AAE5F,MAAa,eAAgB,SAAQ,mBAAoB;IAGvD,YACmB,aAAmC,EACnC,OAAmB,EACpC,cAAsC;QAEtC,KAAK,CAAC,cAAc,CAAC,CAAA;QAJJ,kBAAa,GAAb,aAAa,CAAsB;QACnC,YAAO,GAAP,OAAO,CAAY;QAJrB,YAAO,GAAG,IAAA,iBAAU,EAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IAQ7D,CAAC;IAED,IAAY,OAAO;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAA;QACjE,OAAO,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAC1F,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,WAAW,GAAG,IAAA,yBAAkB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACpD,MAAM,UAAU,GAAG,IAAA,qBAAc,EAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QAC5F,KAAK,IAAI,aAAa,GAAG,CAAC,GAAI,aAAa,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,OAAO,IAAA,0BAAe,EAAC,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA;YACrF,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,YAAY,gCAAS,IAAI,CAAC,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBACnD,MAAM,IAAA,+BAAQ,EAAC,wBAAwB,WAAW,kBAAkB,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,oCAAoC,CAAC,CAAA;gBACnI,CAAC;qBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBACrC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;wBACtB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;4BACpC,IAAI,CAAC;gCACH,UAAU,CAAC,OAAO,EAAE,IAAI,GAAG,aAAa,CAAC,CAAA;4BAC3C,CAAC;4BAAC,OAAO,CAAM,EAAE,CAAC;gCAChB,MAAM,CAAC,CAAC,CAAC,CAAA;4BACX,CAAC;wBACH,CAAC,CAAC,CAAA;wBACF,SAAQ;oBACV,CAAC;gBACH,CAAC;gBACD,MAAM,CAAC,CAAA;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY,CAAC,UAAsB;QACjC,OAAO,IAAA,uBAAY,EAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/C,CAAC;CACF;AA7CD,0CA6CC","sourcesContent":["import { GenericServerOptions, HttpError, newError, UpdateInfo } from \"builder-util-runtime\"\nimport { AppUpdater } from \"../AppUpdater\"\nimport { ResolvedUpdateFileInfo } from \"../types\"\nimport { getChannelFilename, newBaseUrl, newUrlFromBase } from \"../util\"\nimport { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from \"./Provider\"\n\nexport class GenericProvider extends Provider<UpdateInfo> {\n  private readonly baseUrl = newBaseUrl(this.configuration.url)\n\n  constructor(\n    private readonly configuration: GenericServerOptions,\n    private readonly updater: AppUpdater,\n    runtimeOptions: ProviderRuntimeOptions\n  ) {\n    super(runtimeOptions)\n  }\n\n  private get channel(): string {\n    const result = this.updater.channel || this.configuration.channel\n    return result == null ? this.getDefaultChannelName() : this.getCustomChannelName(result)\n  }\n\n  async getLatestVersion(): Promise<UpdateInfo> {\n    const channelFile = getChannelFilename(this.channel)\n    const channelUrl = newUrlFromBase(channelFile, this.baseUrl, this.updater.isAddNoCacheQuery)\n    for (let attemptNumber = 0; ; attemptNumber++) {\n      try {\n        return parseUpdateInfo(await this.httpRequest(channelUrl), channelFile, channelUrl)\n      } catch (e: any) {\n        if (e instanceof HttpError && e.statusCode === 404) {\n          throw newError(`Cannot find channel \"${channelFile}\" update info: ${e.stack || e.message}`, \"ERR_UPDATER_CHANNEL_FILE_NOT_FOUND\")\n        } else if (e.code === \"ECONNREFUSED\") {\n          if (attemptNumber < 3) {\n            await new Promise((resolve, reject) => {\n              try {\n                setTimeout(resolve, 1000 * attemptNumber)\n              } catch (e: any) {\n                reject(e)\n              }\n            })\n            continue\n          }\n        }\n        throw e\n      }\n    }\n  }\n\n  resolveFiles(updateInfo: UpdateInfo): Array<ResolvedUpdateFileInfo> {\n    return resolveFiles(updateInfo, this.baseUrl)\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GitHubProvider = exports.BaseGitHubProvider = void 0;
exports.computeReleaseNotes = computeReleaseNotes;
const builder_util_runtime_1 = require("builder-util-runtime");
const semver = require("semver");
const url_1 = require("url");
const util_1 = require("../util");
const Provider_1 = require("./Provider");
const hrefRegExp = /\/tag\/([^/]+)$/;
class BaseGitHubProvider extends Provider_1.Provider {
    constructor(options, defaultHost, runtimeOptions) {
        super({
            ...runtimeOptions,
            /* because GitHib uses S3 */
            isUseMultipleRangeRequest: false,
        });
        this.options = options;
        this.baseUrl = (0, util_1.newBaseUrl)((0, builder_util_runtime_1.githubUrl)(options, defaultHost));
        const apiHost = defaultHost === "github.com" ? "api.github.com" : defaultHost;
        this.baseApiUrl = (0, util_1.newBaseUrl)((0, builder_util_runtime_1.githubUrl)(options, apiHost));
    }
    computeGithubBasePath(result) {
        // https://github.com/electron-userland/electron-builder/issues/1903#issuecomment-320881211
        const host = this.options.host;
        return host && !["github.com", "api.github.com"].includes(host) ? `/api/v3${result}` : result;
    }
}
exports.BaseGitHubProvider = BaseGitHubProvider;
class GitHubProvider extends BaseGitHubProvider {
    constructor(options, updater, runtimeOptions) {
        super(options, "github.com", runtimeOptions);
        this.options = options;
        this.updater = updater;
    }
    get channel() {
        const result = this.updater.channel || this.options.channel;
        return result == null ? this.getDefaultChannelName() : this.getCustomChannelName(result);
    }
    async getLatestVersion() {
        var _a, _b, _c, _d, _e;
        const cancellationToken = new builder_util_runtime_1.CancellationToken();
        const feedXml = (await this.httpRequest((0, util_1.newUrlFromBase)(`${this.basePath}.atom`, this.baseUrl), {
            accept: "application/xml, application/atom+xml, text/xml, */*",
        }, cancellationToken));
        const feed = (0, builder_util_runtime_1.parseXml)(feedXml);
        // noinspection TypeScriptValidateJSTypes
        let latestRelease = feed.element("entry", false, `No published versions on GitHub`);
        let tag = null;
        try {
            if (this.updater.allowPrerelease) {
                const currentChannel = ((_a = this.updater) === null || _a === void 0 ? void 0 : _a.channel) || ((_b = semver.prerelease(this.updater.currentVersion)) === null || _b === void 0 ? void 0 : _b[0]) || null;
                if (currentChannel === null) {
                    // noinspection TypeScriptValidateJSTypes
                    tag = hrefRegExp.exec(latestRelease.element("link").attribute("href"))[1];
                }
                else {
                    for (const element of feed.getElements("entry")) {
                        // noinspection TypeScriptValidateJSTypes
                        const hrefElement = hrefRegExp.exec(element.element("link").attribute("href"));
                        // If this is null then something is wrong and skip this release
                        if (hrefElement === null)
                            continue;
                        // This Release's Tag
                        const hrefTag = hrefElement[1];
                        //Get Channel from this release's tag
                        const hrefChannel = ((_c = semver.prerelease(hrefTag)) === null || _c === void 0 ? void 0 : _c[0]) || null;
                        const shouldFetchVersion = !currentChannel || ["alpha", "beta"].includes(currentChannel);
                        const isCustomChannel = hrefChannel !== null && !["alpha", "beta"].includes(String(hrefChannel));
                        // Allow moving from alpha to beta but not down
                        const channelMismatch = currentChannel === "beta" && hrefChannel === "alpha";
                        if (shouldFetchVersion && !isCustomChannel && !channelMismatch) {
                            tag = hrefTag;
                            break;
                        }
                        const isNextPreRelease = hrefChannel && hrefChannel === currentChannel;
                        if (isNextPreRelease) {
                            tag = hrefTag;
                            break;
                        }
                    }
                }
            }
            else {
                tag = await this.getLatestTagName(cancellationToken);
                for (const element of feed.getElements("entry")) {
                    // noinspection TypeScriptValidateJSTypes
                    if (hrefRegExp.exec(element.element("link").attribute("href"))[1] === tag) {
                        latestRelease = element;
                        break;
                    }
                }
            }
        }
        catch (e) {
            throw (0, builder_util_runtime_1.newError)(`Cannot parse releases feed: ${e.stack || e.message},\nXML:\n${feedXml}`, "ERR_UPDATER_INVALID_RELEASE_FEED");
        }
        if (tag == null) {
            throw (0, builder_util_runtime_1.newError)(`No published versions on GitHub`, "ERR_UPDATER_NO_PUBLISHED_VERSIONS");
        }
        let rawData;
        let channelFile = "";
        let channelFileUrl = "";
        const fetchData = async (channelName) => {
            channelFile = (0, util_1.getChannelFilename)(channelName);
            channelFileUrl = (0, util_1.newUrlFromBase)(this.getBaseDownloadPath(String(tag), channelFile), this.baseUrl);
            const requestOptions = this.createRequestOptions(channelFileUrl);
            try {
                return (await this.executor.request(requestOptions, cancellationToken));
            }
            catch (e) {
                if (e instanceof builder_util_runtime_1.HttpError && e.statusCode === 404) {
                    throw (0, builder_util_runtime_1.newError)(`Cannot find ${channelFile} in the latest release artifacts (${channelFileUrl}): ${e.stack || e.message}`, "ERR_UPDATER_CHANNEL_FILE_NOT_FOUND");
                }
                throw e;
            }
        };
        try {
            let channel = this.channel;
            if (this.updater.allowPrerelease && ((_d = semver.prerelease(tag)) === null || _d === void 0 ? void 0 : _d[0])) {
                channel = this.getCustomChannelName(String((_e = semver.prerelease(tag)) === null || _e === void 0 ? void 0 : _e[0]));
            }
            rawData = await fetchData(channel);
        }
        catch (e) {
            if (this.updater.allowPrerelease) {
                // Allow fallback to `latest.yml`
                rawData = await fetchData(this.getDefaultChannelName());
            }
            else {
                throw e;
            }
        }
        const result = (0, Provider_1.parseUpdateInfo)(rawData, channelFile, channelFileUrl);
        if (result.releaseName == null) {
            result.releaseName = latestRelease.elementValueOrEmpty("title");
        }
        if (result.releaseNotes == null) {
            result.releaseNotes = computeReleaseNotes(this.updater.currentVersion, this.updater.fullChangelog, feed, latestRelease);
        }
        return {
            tag: tag,
            ...result,
        };
    }
    async getLatestTagName(cancellationToken) {
        const options = this.options;
        // do not use API for GitHub to avoid limit, only for custom host or GitHub Enterprise
        const url = options.host == null || options.host === "github.com"
            ? (0, util_1.newUrlFromBase)(`${this.basePath}/latest`, this.baseUrl)
            : new url_1.URL(`${this.computeGithubBasePath(`/repos/${options.owner}/${options.repo}/releases`)}/latest`, this.baseApiUrl);
        try {
            const rawData = await this.httpRequest(url, { Accept: "application/json" }, cancellationToken);
            if (rawData == null) {
                return null;
            }
            const releaseInfo = JSON.parse(rawData);
            return releaseInfo.tag_name;
        }
        catch (e) {
            throw (0, builder_util_runtime_1.newError)(`Unable to find latest version on GitHub (${url}), please ensure a production release exists: ${e.stack || e.message}`, "ERR_UPDATER_LATEST_VERSION_NOT_FOUND");
        }
    }
    get basePath() {
        return `/${this.options.owner}/${this.options.repo}/releases`;
    }
    resolveFiles(updateInfo) {
        // still replace space to - due to backward compatibility
        return (0, Provider_1.resolveFiles)(updateInfo, this.baseUrl, p => this.getBaseDownloadPath(updateInfo.tag, p.replace(/ /g, "-")));
    }
    getBaseDownloadPath(tag, fileName) {
        return `${this.basePath}/download/${tag}/${fileName}`;
    }
}
exports.GitHubProvider = GitHubProvider;
function getNoteValue(parent) {
    const result = parent.elementValueOrEmpty("content");
    // GitHub reports empty notes as <content>No content.</content>
    return result === "No content." ? "" : result;
}
function computeReleaseNotes(currentVersion, isFullChangelog, feed, latestRelease) {
    if (!isFullChangelog) {
        return getNoteValue(latestRelease);
    }
    const releaseNotes = [];
    for (const release of feed.getElements("entry")) {
        // noinspection TypeScriptValidateJSTypes
        const versionRelease = /\/tag\/v?([^/]+)$/.exec(release.element("link").attribute("href"))[1];
        if (semver.lt(currentVersion, versionRelease)) {
            releaseNotes.push({
                version: versionRelease,
                note: getNoteValue(release),
            });
        }
    }
    return releaseNotes.sort((a, b) => semver.rcompare(a.version, b.version));
}
{"version":3,"file":"GitHubProvider.js","sourceRoot":"","sources":["../../src/providers/GitHubProvider.ts"],"names":[],"mappings":";;;AAuNA,kDAiBC;AAxOD,+DAAwJ;AACxJ,iCAAgC;AAChC,6BAAyB;AAGzB,kCAAwE;AACxE,yCAA4F;AAE5F,MAAM,UAAU,GAAG,iBAAiB,CAAA;AAKpC,MAAsB,kBAAyC,SAAQ,mBAAW;IAKhF,YACqB,OAAsB,EACzC,WAAmB,EACnB,cAAsC;QAEtC,KAAK,CAAC;YACJ,GAAG,cAAc;YACjB,4BAA4B;YAC5B,yBAAyB,EAAE,KAAK;SACjC,CAAC,CAAA;QARiB,YAAO,GAAP,OAAO,CAAe;QAUzC,IAAI,CAAC,OAAO,GAAG,IAAA,iBAAU,EAAC,IAAA,gCAAS,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;QAC1D,MAAM,OAAO,GAAG,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAA;QAC7E,IAAI,CAAC,UAAU,GAAG,IAAA,iBAAU,EAAC,IAAA,gCAAS,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3D,CAAC;IAES,qBAAqB,CAAC,MAAc;QAC5C,2FAA2F;QAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA;QAC9B,OAAO,IAAI,IAAI,CAAC,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;IAC/F,CAAC;CACF;AA1BD,gDA0BC;AAED,MAAa,cAAe,SAAQ,kBAAoC;IACtE,YACqB,OAAsB,EACxB,OAAmB,EACpC,cAAsC;QAEtC,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,cAAc,CAAC,CAAA;QAJzB,YAAO,GAAP,OAAO,CAAe;QACxB,YAAO,GAAP,OAAO,CAAY;IAItC,CAAC;IAED,IAAY,OAAO;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAA;QAC3D,OAAO,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAC1F,CAAC;IAED,KAAK,CAAC,gBAAgB;;QACpB,MAAM,iBAAiB,GAAG,IAAI,wCAAiB,EAAE,CAAA;QAEjD,MAAM,OAAO,GAAW,CAAC,MAAM,IAAI,CAAC,WAAW,CAC7C,IAAA,qBAAc,EAAC,GAAG,IAAI,CAAC,QAAQ,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EACrD;YACE,MAAM,EAAE,sDAAsD;SAC/D,EACD,iBAAiB,CAClB,CAAE,CAAA;QAEH,MAAM,IAAI,GAAG,IAAA,+BAAQ,EAAC,OAAO,CAAC,CAAA;QAC9B,yCAAyC;QACzC,IAAI,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,iCAAiC,CAAC,CAAA;QACnF,IAAI,GAAG,GAAkB,IAAI,CAAA;QAC7B,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;gBACjC,MAAM,cAAc,GAAG,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,MAAK,MAAA,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,0CAAG,CAAC,CAAY,CAAA,IAAI,IAAI,CAAA;gBAEvH,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;oBAC5B,yCAAyC;oBACzC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAE,CAAC,CAAC,CAAC,CAAA;gBAC5E,CAAC;qBAAM,CAAC;oBACN,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;wBAChD,yCAAyC;wBACzC,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAE,CAAA;wBAE/E,gEAAgE;wBAChE,IAAI,WAAW,KAAK,IAAI;4BAAE,SAAQ;wBAElC,qBAAqB;wBACrB,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;wBAC9B,qCAAqC;wBACrC,MAAM,WAAW,GAAG,CAAC,MAAA,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,0CAAG,CAAC,CAAY,KAAI,IAAI,CAAA;wBAEvE,MAAM,kBAAkB,GAAG,CAAC,cAAc,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;wBACxF,MAAM,eAAe,GAAG,WAAW,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;wBAChG,+CAA+C;wBAC/C,MAAM,eAAe,GAAG,cAAc,KAAK,MAAM,IAAI,WAAW,KAAK,OAAO,CAAA;wBAE5E,IAAI,kBAAkB,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,EAAE,CAAC;4BAC/D,GAAG,GAAG,OAAO,CAAA;4BACb,MAAK;wBACP,CAAC;wBAED,MAAM,gBAAgB,GAAG,WAAW,IAAI,WAAW,KAAK,cAAc,CAAA;wBACtE,IAAI,gBAAgB,EAAE,CAAC;4BACrB,GAAG,GAAG,OAAO,CAAA;4BACb,MAAK;wBACP,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAA;gBACpD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;oBAChD,yCAAyC;oBACzC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;wBAC3E,aAAa,GAAG,OAAO,CAAA;wBACvB,MAAK;oBACP,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAA,+BAAQ,EAAC,+BAA+B,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,YAAY,OAAO,EAAE,EAAE,kCAAkC,CAAC,CAAA;QAC9H,CAAC;QAED,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAChB,MAAM,IAAA,+BAAQ,EAAC,iCAAiC,EAAE,mCAAmC,CAAC,CAAA;QACxF,CAAC;QAED,IAAI,OAAe,CAAA;QACnB,IAAI,WAAW,GAAG,EAAE,CAAA;QACpB,IAAI,cAAc,GAAQ,EAAE,CAAA;QAC5B,MAAM,SAAS,GAAG,KAAK,EAAE,WAAmB,EAAE,EAAE;YAC9C,WAAW,GAAG,IAAA,yBAAkB,EAAC,WAAW,CAAC,CAAA;YAC7C,cAAc,GAAG,IAAA,qBAAc,EAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;YACjG,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAA;YAChE,IAAI,CAAC;gBACH,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAE,CAAA;YAC1E,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,YAAY,gCAAS,IAAI,CAAC,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBACnD,MAAM,IAAA,+BAAQ,EAAC,eAAe,WAAW,qCAAqC,cAAc,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,oCAAoC,CAAC,CAAA;gBACjK,CAAC;gBACD,MAAM,CAAC,CAAA;YACT,CAAC;QACH,CAAC,CAAA;QAED,IAAI,CAAC;YACH,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;YAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,KAAI,MAAA,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,0CAAG,CAAC,CAAC,CAAA,EAAE,CAAC;gBAChE,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,MAAA,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,0CAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1E,CAAC;YACD,OAAO,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;QACpC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;gBACjC,iCAAiC;gBACjC,OAAO,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAA;YACzD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,CAAA;YACT,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,0BAAe,EAAC,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC,CAAA;QACpE,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;YAC/B,MAAM,CAAC,WAAW,GAAG,aAAa,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;QACjE,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;YAChC,MAAM,CAAC,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;QACzH,CAAC;QACD,OAAO;YACL,GAAG,EAAE,GAAG;YACR,GAAG,MAAM;SACV,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,iBAAoC;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,sFAAsF;QACtF,MAAM,GAAG,GACP,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY;YACnD,CAAC,CAAC,IAAA,qBAAc,EAAC,GAAG,IAAI,CAAC,QAAQ,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;YACzD,CAAC,CAAC,IAAI,SAAG,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAC1H,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,iBAAiB,CAAC,CAAA;YAC9F,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAA;YACb,CAAC;YAED,MAAM,WAAW,GAAsB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC1D,OAAO,WAAW,CAAC,QAAQ,CAAA;QAC7B,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAA,+BAAQ,EAAC,4CAA4C,GAAG,iDAAiD,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,sCAAsC,CAAC,CAAA;QAChL,CAAC;IACH,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,WAAW,CAAA;IAC/D,CAAC;IAED,YAAY,CAAC,UAA4B;QACvC,yDAAyD;QACzD,OAAO,IAAA,uBAAY,EAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IACpH,CAAC;IAEO,mBAAmB,CAAC,GAAW,EAAE,QAAgB;QACvD,OAAO,GAAG,IAAI,CAAC,QAAQ,aAAa,GAAG,IAAI,QAAQ,EAAE,CAAA;IACvD,CAAC;CACF;AAlKD,wCAkKC;AAMD,SAAS,YAAY,CAAC,MAAgB;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAA;IACpD,+DAA+D;IAC/D,OAAO,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;AAC/C,CAAC;AAED,SAAgB,mBAAmB,CAAC,cAA6B,EAAE,eAAwB,EAAE,IAAc,EAAE,aAAkB;IAC7H,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,YAAY,CAAC,aAAa,CAAC,CAAA;IACpC,CAAC;IAED,MAAM,YAAY,GAA2B,EAAE,CAAA;IAC/C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QAChD,yCAAyC;QACzC,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAE,CAAC,CAAC,CAAC,CAAA;QAC9F,IAAI,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC;YAC9C,YAAY,CAAC,IAAI,CAAC;gBAChB,OAAO,EAAE,cAAc;gBACvB,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC;aAC5B,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AAC3E,CAAC","sourcesContent":["import { CancellationToken, GithubOptions, githubUrl, HttpError, newError, parseXml, ReleaseNoteInfo, UpdateInfo, XElement } from \"builder-util-runtime\"\nimport * as semver from \"semver\"\nimport { URL } from \"url\"\nimport { AppUpdater } from \"../AppUpdater\"\nimport { ResolvedUpdateFileInfo } from \"../types\"\nimport { getChannelFilename, newBaseUrl, newUrlFromBase } from \"../util\"\nimport { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from \"./Provider\"\n\nconst hrefRegExp = /\\/tag\\/([^/]+)$/\n\ninterface GithubUpdateInfo extends UpdateInfo {\n  tag: string\n}\nexport abstract class BaseGitHubProvider<T extends UpdateInfo> extends Provider<T> {\n  // so, we don't need to parse port (because node http doesn't support host as url does)\n  protected readonly baseUrl: URL\n  protected readonly baseApiUrl: URL\n\n  protected constructor(\n    protected readonly options: GithubOptions,\n    defaultHost: string,\n    runtimeOptions: ProviderRuntimeOptions\n  ) {\n    super({\n      ...runtimeOptions,\n      /* because GitHib uses S3 */\n      isUseMultipleRangeRequest: false,\n    })\n\n    this.baseUrl = newBaseUrl(githubUrl(options, defaultHost))\n    const apiHost = defaultHost === \"github.com\" ? \"api.github.com\" : defaultHost\n    this.baseApiUrl = newBaseUrl(githubUrl(options, apiHost))\n  }\n\n  protected computeGithubBasePath(result: string): string {\n    // https://github.com/electron-userland/electron-builder/issues/1903#issuecomment-320881211\n    const host = this.options.host\n    return host && ![\"github.com\", \"api.github.com\"].includes(host) ? `/api/v3${result}` : result\n  }\n}\n\nexport class GitHubProvider extends BaseGitHubProvider<GithubUpdateInfo> {\n  constructor(\n    protected readonly options: GithubOptions,\n    private readonly updater: AppUpdater,\n    runtimeOptions: ProviderRuntimeOptions\n  ) {\n    super(options, \"github.com\", runtimeOptions)\n  }\n\n  private get channel(): string {\n    const result = this.updater.channel || this.options.channel\n    return result == null ? this.getDefaultChannelName() : this.getCustomChannelName(result)\n  }\n\n  async getLatestVersion(): Promise<GithubUpdateInfo> {\n    const cancellationToken = new CancellationToken()\n\n    const feedXml: string = (await this.httpRequest(\n      newUrlFromBase(`${this.basePath}.atom`, this.baseUrl),\n      {\n        accept: \"application/xml, application/atom+xml, text/xml, */*\",\n      },\n      cancellationToken\n    ))!\n\n    const feed = parseXml(feedXml)\n    // noinspection TypeScriptValidateJSTypes\n    let latestRelease = feed.element(\"entry\", false, `No published versions on GitHub`)\n    let tag: string | null = null\n    try {\n      if (this.updater.allowPrerelease) {\n        const currentChannel = this.updater?.channel || (semver.prerelease(this.updater.currentVersion)?.[0] as string) || null\n\n        if (currentChannel === null) {\n          // noinspection TypeScriptValidateJSTypes\n          tag = hrefRegExp.exec(latestRelease.element(\"link\").attribute(\"href\"))![1]\n        } else {\n          for (const element of feed.getElements(\"entry\")) {\n            // noinspection TypeScriptValidateJSTypes\n            const hrefElement = hrefRegExp.exec(element.element(\"link\").attribute(\"href\"))!\n\n            // If this is null then something is wrong and skip this release\n            if (hrefElement === null) continue\n\n            // This Release's Tag\n            const hrefTag = hrefElement[1]\n            //Get Channel from this release's tag\n            const hrefChannel = (semver.prerelease(hrefTag)?.[0] as string) || null\n\n            const shouldFetchVersion = !currentChannel || [\"alpha\", \"beta\"].includes(currentChannel)\n            const isCustomChannel = hrefChannel !== null && ![\"alpha\", \"beta\"].includes(String(hrefChannel))\n            // Allow moving from alpha to beta but not down\n            const channelMismatch = currentChannel === \"beta\" && hrefChannel === \"alpha\"\n\n            if (shouldFetchVersion && !isCustomChannel && !channelMismatch) {\n              tag = hrefTag\n              break\n            }\n\n            const isNextPreRelease = hrefChannel && hrefChannel === currentChannel\n            if (isNextPreRelease) {\n              tag = hrefTag\n              break\n            }\n          }\n        }\n      } else {\n        tag = await this.getLatestTagName(cancellationToken)\n        for (const element of feed.getElements(\"entry\")) {\n          // noinspection TypeScriptValidateJSTypes\n          if (hrefRegExp.exec(element.element(\"link\").attribute(\"href\"))![1] === tag) {\n            latestRelease = element\n            break\n          }\n        }\n      }\n    } catch (e: any) {\n      throw newError(`Cannot parse releases feed: ${e.stack || e.message},\\nXML:\\n${feedXml}`, \"ERR_UPDATER_INVALID_RELEASE_FEED\")\n    }\n\n    if (tag == null) {\n      throw newError(`No published versions on GitHub`, \"ERR_UPDATER_NO_PUBLISHED_VERSIONS\")\n    }\n\n    let rawData: string\n    let channelFile = \"\"\n    let channelFileUrl: any = \"\"\n    const fetchData = async (channelName: string) => {\n      channelFile = getChannelFilename(channelName)\n      channelFileUrl = newUrlFromBase(this.getBaseDownloadPath(String(tag), channelFile), this.baseUrl)\n      const requestOptions = this.createRequestOptions(channelFileUrl)\n      try {\n        return (await this.executor.request(requestOptions, cancellationToken))!\n      } catch (e: any) {\n        if (e instanceof HttpError && e.statusCode === 404) {\n          throw newError(`Cannot find ${channelFile} in the latest release artifacts (${channelFileUrl}): ${e.stack || e.message}`, \"ERR_UPDATER_CHANNEL_FILE_NOT_FOUND\")\n        }\n        throw e\n      }\n    }\n\n    try {\n      let channel = this.channel\n      if (this.updater.allowPrerelease && semver.prerelease(tag)?.[0]) {\n        channel = this.getCustomChannelName(String(semver.prerelease(tag)?.[0]))\n      }\n      rawData = await fetchData(channel)\n    } catch (e: any) {\n      if (this.updater.allowPrerelease) {\n        // Allow fallback to `latest.yml`\n        rawData = await fetchData(this.getDefaultChannelName())\n      } else {\n        throw e\n      }\n    }\n\n    const result = parseUpdateInfo(rawData, channelFile, channelFileUrl)\n    if (result.releaseName == null) {\n      result.releaseName = latestRelease.elementValueOrEmpty(\"title\")\n    }\n\n    if (result.releaseNotes == null) {\n      result.releaseNotes = computeReleaseNotes(this.updater.currentVersion, this.updater.fullChangelog, feed, latestRelease)\n    }\n    return {\n      tag: tag,\n      ...result,\n    }\n  }\n\n  private async getLatestTagName(cancellationToken: CancellationToken): Promise<string | null> {\n    const options = this.options\n    // do not use API for GitHub to avoid limit, only for custom host or GitHub Enterprise\n    const url =\n      options.host == null || options.host === \"github.com\"\n        ? newUrlFromBase(`${this.basePath}/latest`, this.baseUrl)\n        : new URL(`${this.computeGithubBasePath(`/repos/${options.owner}/${options.repo}/releases`)}/latest`, this.baseApiUrl)\n    try {\n      const rawData = await this.httpRequest(url, { Accept: \"application/json\" }, cancellationToken)\n      if (rawData == null) {\n        return null\n      }\n\n      const releaseInfo: GithubReleaseInfo = JSON.parse(rawData)\n      return releaseInfo.tag_name\n    } catch (e: any) {\n      throw newError(`Unable to find latest version on GitHub (${url}), please ensure a production release exists: ${e.stack || e.message}`, \"ERR_UPDATER_LATEST_VERSION_NOT_FOUND\")\n    }\n  }\n\n  private get basePath(): string {\n    return `/${this.options.owner}/${this.options.repo}/releases`\n  }\n\n  resolveFiles(updateInfo: GithubUpdateInfo): Array<ResolvedUpdateFileInfo> {\n    // still replace space to - due to backward compatibility\n    return resolveFiles(updateInfo, this.baseUrl, p => this.getBaseDownloadPath(updateInfo.tag, p.replace(/ /g, \"-\")))\n  }\n\n  private getBaseDownloadPath(tag: string, fileName: string): string {\n    return `${this.basePath}/download/${tag}/${fileName}`\n  }\n}\n\ninterface GithubReleaseInfo {\n  readonly tag_name: string\n}\n\nfunction getNoteValue(parent: XElement): string {\n  const result = parent.elementValueOrEmpty(\"content\")\n  // GitHub reports empty notes as <content>No content.</content>\n  return result === \"No content.\" ? \"\" : result\n}\n\nexport function computeReleaseNotes(currentVersion: semver.SemVer, isFullChangelog: boolean, feed: XElement, latestRelease: any): string | Array<ReleaseNoteInfo> | null {\n  if (!isFullChangelog) {\n    return getNoteValue(latestRelease)\n  }\n\n  const releaseNotes: Array<ReleaseNoteInfo> = []\n  for (const release of feed.getElements(\"entry\")) {\n    // noinspection TypeScriptValidateJSTypes\n    const versionRelease = /\\/tag\\/v?([^/]+)$/.exec(release.element(\"link\").attribute(\"href\"))![1]\n    if (semver.lt(currentVersion, versionRelease)) {\n      releaseNotes.push({\n        version: versionRelease,\n        note: getNoteValue(release),\n      })\n    }\n  }\n  return releaseNotes.sort((a, b) => semver.rcompare(a.version, b.version))\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.KeygenProvider = void 0;
const builder_util_runtime_1 = require("builder-util-runtime");
const util_1 = require("../util");
const Provider_1 = require("./Provider");
class KeygenProvider extends Provider_1.Provider {
    constructor(configuration, updater, runtimeOptions) {
        super({
            ...runtimeOptions,
            isUseMultipleRangeRequest: false,
        });
        this.configuration = configuration;
        this.updater = updater;
        this.defaultHostname = "api.keygen.sh";
        const host = this.configuration.host || this.defaultHostname;
        this.baseUrl = (0, util_1.newBaseUrl)(`https://${host}/v1/accounts/${this.configuration.account}/artifacts?product=${this.configuration.product}`);
    }
    get channel() {
        return this.updater.channel || this.configuration.channel || "stable";
    }
    async getLatestVersion() {
        const cancellationToken = new builder_util_runtime_1.CancellationToken();
        const channelFile = (0, util_1.getChannelFilename)(this.getCustomChannelName(this.channel));
        const channelUrl = (0, util_1.newUrlFromBase)(channelFile, this.baseUrl, this.updater.isAddNoCacheQuery);
        try {
            const updateInfo = await this.httpRequest(channelUrl, {
                Accept: "application/vnd.api+json",
                "Keygen-Version": "1.1",
            }, cancellationToken);
            return (0, Provider_1.parseUpdateInfo)(updateInfo, channelFile, channelUrl);
        }
        catch (e) {
            throw (0, builder_util_runtime_1.newError)(`Unable to find latest version on ${this.toString()}, please ensure release exists: ${e.stack || e.message}`, "ERR_UPDATER_LATEST_VERSION_NOT_FOUND");
        }
    }
    resolveFiles(updateInfo) {
        return (0, Provider_1.resolveFiles)(updateInfo, this.baseUrl);
    }
    toString() {
        const { account, product, platform } = this.configuration;
        return `Keygen (account: ${account}, product: ${product}, platform: ${platform}, channel: ${this.channel})`;
    }
}
exports.KeygenProvider = KeygenProvider;
{"version":3,"file":"KeygenProvider.js","sourceRoot":"","sources":["../../src/providers/KeygenProvider.ts"],"names":[],"mappings":";;;AAAA,+DAA6F;AAG7F,kCAAwE;AACxE,yCAA4F;AAE5F,MAAa,cAAe,SAAQ,mBAAoB;IAItD,YACmB,aAA4B,EAC5B,OAAmB,EACpC,cAAsC;QAEtC,KAAK,CAAC;YACJ,GAAG,cAAc;YACjB,yBAAyB,EAAE,KAAK;SACjC,CAAC,CAAA;QAPe,kBAAa,GAAb,aAAa,CAAe;QAC5B,YAAO,GAAP,OAAO,CAAY;QALrB,oBAAe,GAAG,eAAe,CAAA;QAYhD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAA;QAC5D,IAAI,CAAC,OAAO,GAAG,IAAA,iBAAU,EAAC,WAAW,IAAI,gBAAgB,IAAI,CAAC,aAAa,CAAC,OAAO,sBAAsB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAA;IACxI,CAAC;IAED,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,QAAQ,CAAA;IACvE,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,iBAAiB,GAAG,IAAI,wCAAiB,EAAE,CAAA;QACjD,MAAM,WAAW,GAAG,IAAA,yBAAkB,EAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QAC/E,MAAM,UAAU,GAAG,IAAA,qBAAc,EAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QAC5F,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CACvC,UAAU,EACV;gBACE,MAAM,EAAE,0BAA0B;gBAClC,gBAAgB,EAAE,KAAK;aACxB,EACD,iBAAiB,CAClB,CAAA;YACD,OAAO,IAAA,0BAAe,EAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA;QAC7D,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAA,+BAAQ,EAAC,oCAAoC,IAAI,CAAC,QAAQ,EAAE,mCAAmC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,sCAAsC,CAAC,CAAA;QACtK,CAAC;IACH,CAAC;IAED,YAAY,CAAC,UAAsB;QACjC,OAAO,IAAA,uBAAY,EAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/C,CAAC;IAED,QAAQ;QACN,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;QACzD,OAAO,oBAAoB,OAAO,cAAc,OAAO,eAAe,QAAQ,cAAc,IAAI,CAAC,OAAO,GAAG,CAAA;IAC7G,CAAC;CACF;AAhDD,wCAgDC","sourcesContent":["import { CancellationToken, KeygenOptions, newError, UpdateInfo } from \"builder-util-runtime\"\nimport { AppUpdater } from \"../AppUpdater\"\nimport { ResolvedUpdateFileInfo } from \"../types\"\nimport { getChannelFilename, newBaseUrl, newUrlFromBase } from \"../util\"\nimport { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from \"./Provider\"\n\nexport class KeygenProvider extends Provider<UpdateInfo> {\n  private readonly defaultHostname = \"api.keygen.sh\"\n  private readonly baseUrl: URL\n\n  constructor(\n    private readonly configuration: KeygenOptions,\n    private readonly updater: AppUpdater,\n    runtimeOptions: ProviderRuntimeOptions\n  ) {\n    super({\n      ...runtimeOptions,\n      isUseMultipleRangeRequest: false,\n    })\n    const host = this.configuration.host || this.defaultHostname\n    this.baseUrl = newBaseUrl(`https://${host}/v1/accounts/${this.configuration.account}/artifacts?product=${this.configuration.product}`)\n  }\n\n  private get channel(): string {\n    return this.updater.channel || this.configuration.channel || \"stable\"\n  }\n\n  async getLatestVersion(): Promise<UpdateInfo> {\n    const cancellationToken = new CancellationToken()\n    const channelFile = getChannelFilename(this.getCustomChannelName(this.channel))\n    const channelUrl = newUrlFromBase(channelFile, this.baseUrl, this.updater.isAddNoCacheQuery)\n    try {\n      const updateInfo = await this.httpRequest(\n        channelUrl,\n        {\n          Accept: \"application/vnd.api+json\",\n          \"Keygen-Version\": \"1.1\",\n        },\n        cancellationToken\n      )\n      return parseUpdateInfo(updateInfo, channelFile, channelUrl)\n    } catch (e: any) {\n      throw newError(`Unable to find latest version on ${this.toString()}, please ensure release exists: ${e.stack || e.message}`, \"ERR_UPDATER_LATEST_VERSION_NOT_FOUND\")\n    }\n  }\n\n  resolveFiles(updateInfo: UpdateInfo): Array<ResolvedUpdateFileInfo> {\n    return resolveFiles(updateInfo, this.baseUrl)\n  }\n\n  toString() {\n    const { account, product, platform } = this.configuration\n    return `Keygen (account: ${account}, product: ${product}, platform: ${platform}, channel: ${this.channel})`\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PrivateGitHubProvider = void 0;
const builder_util_runtime_1 = require("builder-util-runtime");
const js_yaml_1 = require("js-yaml");
const path = require("path");
const url_1 = require("url");
const util_1 = require("../util");
const GitHubProvider_1 = require("./GitHubProvider");
const Provider_1 = require("./Provider");
class PrivateGitHubProvider extends GitHubProvider_1.BaseGitHubProvider {
    constructor(options, updater, token, runtimeOptions) {
        super(options, "api.github.com", runtimeOptions);
        this.updater = updater;
        this.token = token;
    }
    createRequestOptions(url, headers) {
        const result = super.createRequestOptions(url, headers);
        result.redirect = "manual";
        return result;
    }
    async getLatestVersion() {
        const cancellationToken = new builder_util_runtime_1.CancellationToken();
        const channelFile = (0, util_1.getChannelFilename)(this.getDefaultChannelName());
        const releaseInfo = await this.getLatestVersionInfo(cancellationToken);
        const asset = releaseInfo.assets.find(it => it.name === channelFile);
        if (asset == null) {
            // html_url must be always, but just to be sure
            throw (0, builder_util_runtime_1.newError)(`Cannot find ${channelFile} in the release ${releaseInfo.html_url || releaseInfo.name}`, "ERR_UPDATER_CHANNEL_FILE_NOT_FOUND");
        }
        const url = new url_1.URL(asset.url);
        let result;
        try {
            result = (0, js_yaml_1.load)((await this.httpRequest(url, this.configureHeaders("application/octet-stream"), cancellationToken)));
        }
        catch (e) {
            if (e instanceof builder_util_runtime_1.HttpError && e.statusCode === 404) {
                throw (0, builder_util_runtime_1.newError)(`Cannot find ${channelFile} in the latest release artifacts (${url}): ${e.stack || e.message}`, "ERR_UPDATER_CHANNEL_FILE_NOT_FOUND");
            }
            throw e;
        }
        ;
        result.assets = releaseInfo.assets;
        return result;
    }
    get fileExtraDownloadHeaders() {
        return this.configureHeaders("application/octet-stream");
    }
    configureHeaders(accept) {
        return {
            accept,
            authorization: `token ${this.token}`,
        };
    }
    async getLatestVersionInfo(cancellationToken) {
        const allowPrerelease = this.updater.allowPrerelease;
        let basePath = this.basePath;
        if (!allowPrerelease) {
            basePath = `${basePath}/latest`;
        }
        const url = (0, util_1.newUrlFromBase)(basePath, this.baseUrl);
        try {
            const version = JSON.parse((await this.httpRequest(url, this.configureHeaders("application/vnd.github.v3+json"), cancellationToken)));
            if (allowPrerelease) {
                return version.find(it => it.prerelease) || version[0];
            }
            else {
                return version;
            }
        }
        catch (e) {
            throw (0, builder_util_runtime_1.newError)(`Unable to find latest version on GitHub (${url}), please ensure a production release exists: ${e.stack || e.message}`, "ERR_UPDATER_LATEST_VERSION_NOT_FOUND");
        }
    }
    get basePath() {
        return this.computeGithubBasePath(`/repos/${this.options.owner}/${this.options.repo}/releases`);
    }
    resolveFiles(updateInfo) {
        return (0, Provider_1.getFileList)(updateInfo).map(it => {
            const name = path.posix.basename(it.url).replace(/ /g, "-");
            const asset = updateInfo.assets.find(it => it != null && it.name === name);
            if (asset == null) {
                throw (0, builder_util_runtime_1.newError)(`Cannot find asset "${name}" in: ${JSON.stringify(updateInfo.assets, null, 2)}`, "ERR_UPDATER_ASSET_NOT_FOUND");
            }
            return {
                url: new url_1.URL(asset.url),
                info: it,
            };
        });
    }
}
exports.PrivateGitHubProvider = PrivateGitHubProvider;
{"version":3,"file":"PrivateGitHubProvider.js","sourceRoot":"","sources":["../../src/providers/PrivateGitHubProvider.ts"],"names":[],"mappings":";;;AAAA,+DAAwG;AAExG,qCAA8B;AAC9B,6BAA4B;AAE5B,6BAAyB;AACzB,kCAA4D;AAC5D,qDAAqD;AAErD,yCAAgE;AAMhE,MAAa,qBAAsB,SAAQ,mCAA2C;IACpF,YACE,OAAsB,EACL,OAAmB,EACnB,KAAa,EAC9B,cAAsC;QAEtC,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAA;QAJ/B,YAAO,GAAP,OAAO,CAAY;QACnB,UAAK,GAAL,KAAK,CAAQ;IAIhC,CAAC;IAES,oBAAoB,CAAC,GAAQ,EAAE,OAAoC;QAC3E,MAAM,MAAM,GAAG,KAAK,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CACtD;QAAC,MAAc,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACpC,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,iBAAiB,GAAG,IAAI,wCAAiB,EAAE,CAAA;QACjD,MAAM,WAAW,GAAG,IAAA,yBAAkB,EAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAA;QAEpE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAA;QACtE,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC,CAAA;QACpE,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,+CAA+C;YAC/C,MAAM,IAAA,+BAAQ,EAAC,eAAe,WAAW,mBAAmB,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,oCAAoC,CAAC,CAAA;QAC/I,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,MAAW,CAAA;QACf,IAAI,CAAC;YACH,MAAM,GAAG,IAAA,cAAI,EAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,EAAE,iBAAiB,CAAC,CAAE,CAAC,CAAA;QACrH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,gCAAS,IAAI,CAAC,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBACnD,MAAM,IAAA,+BAAQ,EAAC,eAAe,WAAW,qCAAqC,GAAG,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,oCAAoC,CAAC,CAAA;YACtJ,CAAC;YACD,MAAM,CAAC,CAAA;QACT,CAAC;QAED,CAAC;QAAC,MAAkC,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAA;QAChE,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,wBAAwB;QAC1B,OAAO,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,CAAA;IAC1D,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACrC,OAAO;YACL,MAAM;YACN,aAAa,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE;SACrC,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,iBAAoC;QACrE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAA;QACpD,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,QAAQ,GAAG,GAAG,QAAQ,SAAS,CAAA;QACjC,CAAC;QAED,MAAM,GAAG,GAAG,IAAA,qBAAc,EAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAClD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,gCAAgC,CAAC,EAAE,iBAAiB,CAAC,CAAE,CAAC,CAAA;YACtI,IAAI,eAAe,EAAE,CAAC;gBACpB,OAAQ,OAA0C,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAA;YAC5F,CAAC;iBAAM,CAAC;gBACN,OAAO,OAAO,CAAA;YAChB,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAA,+BAAQ,EAAC,4CAA4C,GAAG,iDAAiD,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,sCAAsC,CAAC,CAAA;QAChL,CAAC;IACH,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,IAAI,CAAC,qBAAqB,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,CAAA;IACjG,CAAC;IAED,YAAY,CAAC,UAAmC;QAC9C,OAAO,IAAA,sBAAW,EAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YAC3D,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;YAC1E,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAA,+BAAQ,EAAC,sBAAsB,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,6BAA6B,CAAC,CAAA;YAChI,CAAC;YAED,OAAO;gBACL,GAAG,EAAE,IAAI,SAAG,CAAC,KAAK,CAAC,GAAG,CAAC;gBACvB,IAAI,EAAE,EAAE;aACT,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AA3FD,sDA2FC","sourcesContent":["import { CancellationToken, GithubOptions, HttpError, newError, UpdateInfo } from \"builder-util-runtime\"\nimport { OutgoingHttpHeaders, RequestOptions } from \"http\"\nimport { load } from \"js-yaml\"\nimport * as path from \"path\"\nimport { AppUpdater } from \"../AppUpdater\"\nimport { URL } from \"url\"\nimport { getChannelFilename, newUrlFromBase } from \"../util\"\nimport { BaseGitHubProvider } from \"./GitHubProvider\"\nimport { ResolvedUpdateFileInfo } from \"../types\"\nimport { getFileList, ProviderRuntimeOptions } from \"./Provider\"\n\nexport interface PrivateGitHubUpdateInfo extends UpdateInfo {\n  assets: Array<Asset>\n}\n\nexport class PrivateGitHubProvider extends BaseGitHubProvider<PrivateGitHubUpdateInfo> {\n  constructor(\n    options: GithubOptions,\n    private readonly updater: AppUpdater,\n    private readonly token: string,\n    runtimeOptions: ProviderRuntimeOptions\n  ) {\n    super(options, \"api.github.com\", runtimeOptions)\n  }\n\n  protected createRequestOptions(url: URL, headers?: OutgoingHttpHeaders | null): RequestOptions {\n    const result = super.createRequestOptions(url, headers)\n    ;(result as any).redirect = \"manual\"\n    return result\n  }\n\n  async getLatestVersion(): Promise<PrivateGitHubUpdateInfo> {\n    const cancellationToken = new CancellationToken()\n    const channelFile = getChannelFilename(this.getDefaultChannelName())\n\n    const releaseInfo = await this.getLatestVersionInfo(cancellationToken)\n    const asset = releaseInfo.assets.find(it => it.name === channelFile)\n    if (asset == null) {\n      // html_url must be always, but just to be sure\n      throw newError(`Cannot find ${channelFile} in the release ${releaseInfo.html_url || releaseInfo.name}`, \"ERR_UPDATER_CHANNEL_FILE_NOT_FOUND\")\n    }\n\n    const url = new URL(asset.url)\n    let result: any\n    try {\n      result = load((await this.httpRequest(url, this.configureHeaders(\"application/octet-stream\"), cancellationToken))!)\n    } catch (e: any) {\n      if (e instanceof HttpError && e.statusCode === 404) {\n        throw newError(`Cannot find ${channelFile} in the latest release artifacts (${url}): ${e.stack || e.message}`, \"ERR_UPDATER_CHANNEL_FILE_NOT_FOUND\")\n      }\n      throw e\n    }\n\n    ;(result as PrivateGitHubUpdateInfo).assets = releaseInfo.assets\n    return result\n  }\n\n  get fileExtraDownloadHeaders(): OutgoingHttpHeaders | null {\n    return this.configureHeaders(\"application/octet-stream\")\n  }\n\n  private configureHeaders(accept: string) {\n    return {\n      accept,\n      authorization: `token ${this.token}`,\n    }\n  }\n\n  private async getLatestVersionInfo(cancellationToken: CancellationToken): Promise<ReleaseInfo> {\n    const allowPrerelease = this.updater.allowPrerelease\n    let basePath = this.basePath\n    if (!allowPrerelease) {\n      basePath = `${basePath}/latest`\n    }\n\n    const url = newUrlFromBase(basePath, this.baseUrl)\n    try {\n      const version = JSON.parse((await this.httpRequest(url, this.configureHeaders(\"application/vnd.github.v3+json\"), cancellationToken))!)\n      if (allowPrerelease) {\n        return (version as Array<{ prerelease: boolean }>).find(it => it.prerelease) || version[0]\n      } else {\n        return version\n      }\n    } catch (e: any) {\n      throw newError(`Unable to find latest version on GitHub (${url}), please ensure a production release exists: ${e.stack || e.message}`, \"ERR_UPDATER_LATEST_VERSION_NOT_FOUND\")\n    }\n  }\n\n  private get basePath(): string {\n    return this.computeGithubBasePath(`/repos/${this.options.owner}/${this.options.repo}/releases`)\n  }\n\n  resolveFiles(updateInfo: PrivateGitHubUpdateInfo): Array<ResolvedUpdateFileInfo> {\n    return getFileList(updateInfo).map(it => {\n      const name = path.posix.basename(it.url).replace(/ /g, \"-\")\n      const asset = updateInfo.assets.find(it => it != null && it.name === name)\n      if (asset == null) {\n        throw newError(`Cannot find asset \"${name}\" in: ${JSON.stringify(updateInfo.assets, null, 2)}`, \"ERR_UPDATER_ASSET_NOT_FOUND\")\n      }\n\n      return {\n        url: new URL(asset.url),\n        info: it,\n      }\n    })\n  }\n}\n\ninterface ReleaseInfo {\n  name: string\n  html_url: string\n  assets: Array<Asset>\n}\n\nexport interface Asset {\n  name: string\n  url: string\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Provider = void 0;
exports.findFile = findFile;
exports.parseUpdateInfo = parseUpdateInfo;
exports.getFileList = getFileList;
exports.resolveFiles = resolveFiles;
const builder_util_runtime_1 = require("builder-util-runtime");
const js_yaml_1 = require("js-yaml");
const util_1 = require("../util");
class Provider {
    constructor(runtimeOptions) {
        this.runtimeOptions = runtimeOptions;
        this.requestHeaders = null;
        this.executor = runtimeOptions.executor;
    }
    get isUseMultipleRangeRequest() {
        return this.runtimeOptions.isUseMultipleRangeRequest !== false;
    }
    getChannelFilePrefix() {
        if (this.runtimeOptions.platform === "linux") {
            const arch = process.env["TEST_UPDATER_ARCH"] || process.arch;
            const archSuffix = arch === "x64" ? "" : `-${arch}`;
            return "-linux" + archSuffix;
        }
        else {
            return this.runtimeOptions.platform === "darwin" ? "-mac" : "";
        }
    }
    // due to historical reasons for windows we use channel name without platform specifier
    getDefaultChannelName() {
        return this.getCustomChannelName("latest");
    }
    getCustomChannelName(channel) {
        return `${channel}${this.getChannelFilePrefix()}`;
    }
    get fileExtraDownloadHeaders() {
        return null;
    }
    setRequestHeaders(value) {
        this.requestHeaders = value;
    }
    /**
     * Method to perform API request only to resolve update info, but not to download update.
     */
    httpRequest(url, headers, cancellationToken) {
        return this.executor.request(this.createRequestOptions(url, headers), cancellationToken);
    }
    createRequestOptions(url, headers) {
        const result = {};
        if (this.requestHeaders == null) {
            if (headers != null) {
                result.headers = headers;
            }
        }
        else {
            result.headers = headers == null ? this.requestHeaders : { ...this.requestHeaders, ...headers };
        }
        (0, builder_util_runtime_1.configureRequestUrl)(url, result);
        return result;
    }
}
exports.Provider = Provider;
function findFile(files, extension, not) {
    if (files.length === 0) {
        throw (0, builder_util_runtime_1.newError)("No files provided", "ERR_UPDATER_NO_FILES_PROVIDED");
    }
    const result = files.find(it => it.url.pathname.toLowerCase().endsWith(`.${extension}`));
    if (result != null) {
        return result;
    }
    else if (not == null) {
        return files[0];
    }
    else {
        return files.find(fileInfo => !not.some(ext => fileInfo.url.pathname.toLowerCase().endsWith(`.${ext}`)));
    }
}
function parseUpdateInfo(rawData, channelFile, channelFileUrl) {
    if (rawData == null) {
        throw (0, builder_util_runtime_1.newError)(`Cannot parse update info from ${channelFile} in the latest release artifacts (${channelFileUrl}): rawData: null`, "ERR_UPDATER_INVALID_UPDATE_INFO");
    }
    let result;
    try {
        result = (0, js_yaml_1.load)(rawData);
    }
    catch (e) {
        throw (0, builder_util_runtime_1.newError)(`Cannot parse update info from ${channelFile} in the latest release artifacts (${channelFileUrl}): ${e.stack || e.message}, rawData: ${rawData}`, "ERR_UPDATER_INVALID_UPDATE_INFO");
    }
    return result;
}
function getFileList(updateInfo) {
    const files = updateInfo.files;
    if (files != null && files.length > 0) {
        return files;
    }
    // noinspection JSDeprecatedSymbols
    if (updateInfo.path != null) {
        // noinspection JSDeprecatedSymbols
        return [
            {
                url: updateInfo.path,
                sha2: updateInfo.sha2,
                sha512: updateInfo.sha512,
            },
        ];
    }
    else {
        throw (0, builder_util_runtime_1.newError)(`No files provided: ${(0, builder_util_runtime_1.safeStringifyJson)(updateInfo)}`, "ERR_UPDATER_NO_FILES_PROVIDED");
    }
}
function resolveFiles(updateInfo, baseUrl, pathTransformer = (p) => p) {
    const files = getFileList(updateInfo);
    const result = files.map(fileInfo => {
        if (fileInfo.sha2 == null && fileInfo.sha512 == null) {
            throw (0, builder_util_runtime_1.newError)(`Update info doesn't contain nor sha256 neither sha512 checksum: ${(0, builder_util_runtime_1.safeStringifyJson)(fileInfo)}`, "ERR_UPDATER_NO_CHECKSUM");
        }
        return {
            url: (0, util_1.newUrlFromBase)(pathTransformer(fileInfo.url), baseUrl),
            info: fileInfo,
        };
    });
    const packages = updateInfo.packages;
    const packageInfo = packages == null ? null : packages[process.arch] || packages.ia32;
    if (packageInfo != null) {
        ;
        result[0].packageInfo = {
            ...packageInfo,
            path: (0, util_1.newUrlFromBase)(pathTransformer(packageInfo.path), baseUrl).href,
        };
    }
    return result;
}
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../src/providers/Provider.ts"],"names":[],"mappings":";;;AAkFA,4BAaC;AAED,0CAeC;AAED,kCAmBC;AAED,oCAqBC;AA5JD,+DAAyJ;AAEzJ,qCAA8B;AAI9B,kCAAwC;AAWxC,MAAsB,QAAQ;IAI5B,YAAuC,cAAsC;QAAtC,mBAAc,GAAd,cAAc,CAAwB;QAHrE,mBAAc,GAA+B,IAAI,CAAA;QAIvD,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAA;IACzC,CAAC;IAED,IAAI,yBAAyB;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,KAAK,KAAK,CAAA;IAChE,CAAC;IAEO,oBAAoB;QAC1B,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,IAAI,CAAA;YAC7D,MAAM,UAAU,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAA;YACnD,OAAO,QAAQ,GAAG,UAAU,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;QAChE,CAAC;IACH,CAAC;IAED,uFAAuF;IAC7E,qBAAqB;QAC7B,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IAC5C,CAAC;IAES,oBAAoB,CAAC,OAAe;QAC5C,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAA;IACnD,CAAC;IAED,IAAI,wBAAwB;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,iBAAiB,CAAC,KAAiC;QACjD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAA;IAC7B,CAAC;IAMD;;OAEG;IACO,WAAW,CAAC,GAAQ,EAAE,OAAoC,EAAE,iBAAqC;QACzG,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAA;IAC1F,CAAC;IAES,oBAAoB,CAAC,GAAQ,EAAE,OAAoC;QAC3E,MAAM,MAAM,GAAmB,EAAE,CAAA;QACjC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;YAChC,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;YAC1B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,OAAO,EAAE,CAAA;QACjG,CAAC;QAED,IAAA,0CAAmB,EAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAChC,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AA/DD,4BA+DC;AAED,SAAgB,QAAQ,CAAC,KAAoC,EAAE,SAAiB,EAAE,GAAmB;IACnG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAA,+BAAQ,EAAC,mBAAmB,EAAE,+BAA+B,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAA;IACxF,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,MAAM,CAAA;IACf,CAAC;SAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1G,CAAC;AACH,CAAC;AAED,SAAgB,eAAe,CAAC,OAAsB,EAAE,WAAmB,EAAE,cAAmB;IAC9F,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,MAAM,IAAA,+BAAQ,EAAC,iCAAiC,WAAW,qCAAqC,cAAc,kBAAkB,EAAE,iCAAiC,CAAC,CAAA;IACtK,CAAC;IAED,IAAI,MAAkB,CAAA;IACtB,IAAI,CAAC;QACH,MAAM,GAAG,IAAA,cAAI,EAAC,OAAO,CAAe,CAAA;IACtC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,MAAM,IAAA,+BAAQ,EACZ,iCAAiC,WAAW,qCAAqC,cAAc,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,cAAc,OAAO,EAAE,EAChJ,iCAAiC,CAClC,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAgB,WAAW,CAAC,UAAsB;IAChD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IAC9B,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,mCAAmC;IACnC,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QAC5B,mCAAmC;QACnC,OAAO;YACL;gBACE,GAAG,EAAE,UAAU,CAAC,IAAI;gBACpB,IAAI,EAAG,UAAkB,CAAC,IAAI;gBAC9B,MAAM,EAAE,UAAU,CAAC,MAAM;aACnB;SACT,CAAA;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAA,+BAAQ,EAAC,sBAAsB,IAAA,wCAAiB,EAAC,UAAU,CAAC,EAAE,EAAE,+BAA+B,CAAC,CAAA;IACxG,CAAC;AACH,CAAC;AAED,SAAgB,YAAY,CAAC,UAAsB,EAAE,OAAY,EAAE,kBAAyC,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC;IAClI,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;IACrC,MAAM,MAAM,GAAkC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;QACjE,IAAK,QAAgB,CAAC,IAAI,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YAC9D,MAAM,IAAA,+BAAQ,EAAC,mEAAmE,IAAA,wCAAiB,EAAC,QAAQ,CAAC,EAAE,EAAE,yBAAyB,CAAC,CAAA;QAC7I,CAAC;QACD,OAAO;YACL,GAAG,EAAE,IAAA,qBAAc,EAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;YAC3D,IAAI,EAAE,QAAQ;SACf,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAI,UAAgC,CAAC,QAAQ,CAAA;IAC3D,MAAM,WAAW,GAAG,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAA;IACrF,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC,CAAC,CAAS,CAAC,WAAW,GAAG;YAChC,GAAG,WAAW;YACd,IAAI,EAAE,IAAA,qBAAc,EAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI;SACtE,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC","sourcesContent":["import { CancellationToken, configureRequestUrl, newError, safeStringifyJson, UpdateFileInfo, UpdateInfo, WindowsUpdateInfo } from \"builder-util-runtime\"\nimport { OutgoingHttpHeaders, RequestOptions } from \"http\"\nimport { load } from \"js-yaml\"\nimport { URL } from \"url\"\nimport { ElectronHttpExecutor } from \"../electronHttpExecutor\"\nimport { ResolvedUpdateFileInfo } from \"../types\"\nimport { newUrlFromBase } from \"../util\"\n\nexport type ProviderPlatform = \"darwin\" | \"linux\" | \"win32\"\n\nexport interface ProviderRuntimeOptions {\n  isUseMultipleRangeRequest: boolean\n  platform: ProviderPlatform\n\n  executor: ElectronHttpExecutor\n}\n\nexport abstract class Provider<T extends UpdateInfo> {\n  private requestHeaders: OutgoingHttpHeaders | null = null\n  protected readonly executor: ElectronHttpExecutor\n\n  protected constructor(private readonly runtimeOptions: ProviderRuntimeOptions) {\n    this.executor = runtimeOptions.executor\n  }\n\n  get isUseMultipleRangeRequest(): boolean {\n    return this.runtimeOptions.isUseMultipleRangeRequest !== false\n  }\n\n  private getChannelFilePrefix(): string {\n    if (this.runtimeOptions.platform === \"linux\") {\n      const arch = process.env[\"TEST_UPDATER_ARCH\"] || process.arch\n      const archSuffix = arch === \"x64\" ? \"\" : `-${arch}`\n      return \"-linux\" + archSuffix\n    } else {\n      return this.runtimeOptions.platform === \"darwin\" ? \"-mac\" : \"\"\n    }\n  }\n\n  // due to historical reasons for windows we use channel name without platform specifier\n  protected getDefaultChannelName(): string {\n    return this.getCustomChannelName(\"latest\")\n  }\n\n  protected getCustomChannelName(channel: string): string {\n    return `${channel}${this.getChannelFilePrefix()}`\n  }\n\n  get fileExtraDownloadHeaders(): OutgoingHttpHeaders | null {\n    return null\n  }\n\n  setRequestHeaders(value: OutgoingHttpHeaders | null): void {\n    this.requestHeaders = value\n  }\n\n  abstract getLatestVersion(): Promise<T>\n\n  abstract resolveFiles(updateInfo: T): Array<ResolvedUpdateFileInfo>\n\n  /**\n   * Method to perform API request only to resolve update info, but not to download update.\n   */\n  protected httpRequest(url: URL, headers?: OutgoingHttpHeaders | null, cancellationToken?: CancellationToken): Promise<string | null> {\n    return this.executor.request(this.createRequestOptions(url, headers), cancellationToken)\n  }\n\n  protected createRequestOptions(url: URL, headers?: OutgoingHttpHeaders | null): RequestOptions {\n    const result: RequestOptions = {}\n    if (this.requestHeaders == null) {\n      if (headers != null) {\n        result.headers = headers\n      }\n    } else {\n      result.headers = headers == null ? this.requestHeaders : { ...this.requestHeaders, ...headers }\n    }\n\n    configureRequestUrl(url, result)\n    return result\n  }\n}\n\nexport function findFile(files: Array<ResolvedUpdateFileInfo>, extension: string, not?: Array<string>): ResolvedUpdateFileInfo | null | undefined {\n  if (files.length === 0) {\n    throw newError(\"No files provided\", \"ERR_UPDATER_NO_FILES_PROVIDED\")\n  }\n\n  const result = files.find(it => it.url.pathname.toLowerCase().endsWith(`.${extension}`))\n  if (result != null) {\n    return result\n  } else if (not == null) {\n    return files[0]\n  } else {\n    return files.find(fileInfo => !not.some(ext => fileInfo.url.pathname.toLowerCase().endsWith(`.${ext}`)))\n  }\n}\n\nexport function parseUpdateInfo(rawData: string | null, channelFile: string, channelFileUrl: URL): UpdateInfo {\n  if (rawData == null) {\n    throw newError(`Cannot parse update info from ${channelFile} in the latest release artifacts (${channelFileUrl}): rawData: null`, \"ERR_UPDATER_INVALID_UPDATE_INFO\")\n  }\n\n  let result: UpdateInfo\n  try {\n    result = load(rawData) as UpdateInfo\n  } catch (e: any) {\n    throw newError(\n      `Cannot parse update info from ${channelFile} in the latest release artifacts (${channelFileUrl}): ${e.stack || e.message}, rawData: ${rawData}`,\n      \"ERR_UPDATER_INVALID_UPDATE_INFO\"\n    )\n  }\n  return result\n}\n\nexport function getFileList(updateInfo: UpdateInfo): Array<UpdateFileInfo> {\n  const files = updateInfo.files\n  if (files != null && files.length > 0) {\n    return files\n  }\n\n  // noinspection JSDeprecatedSymbols\n  if (updateInfo.path != null) {\n    // noinspection JSDeprecatedSymbols\n    return [\n      {\n        url: updateInfo.path,\n        sha2: (updateInfo as any).sha2,\n        sha512: updateInfo.sha512,\n      } as any,\n    ]\n  } else {\n    throw newError(`No files provided: ${safeStringifyJson(updateInfo)}`, \"ERR_UPDATER_NO_FILES_PROVIDED\")\n  }\n}\n\nexport function resolveFiles(updateInfo: UpdateInfo, baseUrl: URL, pathTransformer: (p: string) => string = (p: string): string => p): Array<ResolvedUpdateFileInfo> {\n  const files = getFileList(updateInfo)\n  const result: Array<ResolvedUpdateFileInfo> = files.map(fileInfo => {\n    if ((fileInfo as any).sha2 == null && fileInfo.sha512 == null) {\n      throw newError(`Update info doesn't contain nor sha256 neither sha512 checksum: ${safeStringifyJson(fileInfo)}`, \"ERR_UPDATER_NO_CHECKSUM\")\n    }\n    return {\n      url: newUrlFromBase(pathTransformer(fileInfo.url), baseUrl),\n      info: fileInfo,\n    }\n  })\n\n  const packages = (updateInfo as WindowsUpdateInfo).packages\n  const packageInfo = packages == null ? null : packages[process.arch] || packages.ia32\n  if (packageInfo != null) {\n    ;(result[0] as any).packageInfo = {\n      ...packageInfo,\n      path: newUrlFromBase(pathTransformer(packageInfo.path), baseUrl).href,\n    }\n  }\n  return result\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DataSplitter = void 0;
exports.copyData = copyData;
const builder_util_runtime_1 = require("builder-util-runtime");
const fs_1 = require("fs");
const stream_1 = require("stream");
const downloadPlanBuilder_1 = require("./downloadPlanBuilder");
const DOUBLE_CRLF = Buffer.from("\r\n\r\n");
var ReadState;
(function (ReadState) {
    ReadState[ReadState["INIT"] = 0] = "INIT";
    ReadState[ReadState["HEADER"] = 1] = "HEADER";
    ReadState[ReadState["BODY"] = 2] = "BODY";
})(ReadState || (ReadState = {}));
function copyData(task, out, oldFileFd, reject, resolve) {
    const readStream = (0, fs_1.createReadStream)("", {
        fd: oldFileFd,
        autoClose: false,
        start: task.start,
        // end is inclusive
        end: task.end - 1,
    });
    readStream.on("error", reject);
    readStream.once("end", resolve);
    readStream.pipe(out, {
        end: false,
    });
}
class DataSplitter extends stream_1.Writable {
    constructor(out, options, partIndexToTaskIndex, boundary, partIndexToLength, finishHandler) {
        super();
        this.out = out;
        this.options = options;
        this.partIndexToTaskIndex = partIndexToTaskIndex;
        this.partIndexToLength = partIndexToLength;
        this.finishHandler = finishHandler;
        this.partIndex = -1;
        this.headerListBuffer = null;
        this.readState = ReadState.INIT;
        this.ignoreByteCount = 0;
        this.remainingPartDataCount = 0;
        this.actualPartLength = 0;
        this.boundaryLength = boundary.length + 4; /* size of \r\n-- */
        // first chunk doesn't start with \r\n
        this.ignoreByteCount = this.boundaryLength - 2;
    }
    get isFinished() {
        return this.partIndex === this.partIndexToLength.length;
    }
    // noinspection JSUnusedGlobalSymbols
    _write(data, encoding, callback) {
        if (this.isFinished) {
            console.error(`Trailing ignored data: ${data.length} bytes`);
            return;
        }
        this.handleData(data).then(callback).catch(callback);
    }
    async handleData(chunk) {
        let start = 0;
        if (this.ignoreByteCount !== 0 && this.remainingPartDataCount !== 0) {
            throw (0, builder_util_runtime_1.newError)("Internal error", "ERR_DATA_SPLITTER_BYTE_COUNT_MISMATCH");
        }
        if (this.ignoreByteCount > 0) {
            const toIgnore = Math.min(this.ignoreByteCount, chunk.length);
            this.ignoreByteCount -= toIgnore;
            start = toIgnore;
        }
        else if (this.remainingPartDataCount > 0) {
            const toRead = Math.min(this.remainingPartDataCount, chunk.length);
            this.remainingPartDataCount -= toRead;
            await this.processPartData(chunk, 0, toRead);
            start = toRead;
        }
        if (start === chunk.length) {
            return;
        }
        if (this.readState === ReadState.HEADER) {
            const headerListEnd = this.searchHeaderListEnd(chunk, start);
            if (headerListEnd === -1) {
                return;
            }
            start = headerListEnd;
            this.readState = ReadState.BODY;
            // header list is ignored, we don't need it
            this.headerListBuffer = null;
        }
        while (true) {
            if (this.readState === ReadState.BODY) {
                this.readState = ReadState.INIT;
            }
            else {
                this.partIndex++;
                let taskIndex = this.partIndexToTaskIndex.get(this.partIndex);
                if (taskIndex == null) {
                    if (this.isFinished) {
                        taskIndex = this.options.end;
                    }
                    else {
                        throw (0, builder_util_runtime_1.newError)("taskIndex is null", "ERR_DATA_SPLITTER_TASK_INDEX_IS_NULL");
                    }
                }
                const prevTaskIndex = this.partIndex === 0 ? this.options.start : this.partIndexToTaskIndex.get(this.partIndex - 1) + 1; /* prev part is download, next maybe copy */
                if (prevTaskIndex < taskIndex) {
                    await this.copyExistingData(prevTaskIndex, taskIndex);
                }
                else if (prevTaskIndex > taskIndex) {
                    throw (0, builder_util_runtime_1.newError)("prevTaskIndex must be < taskIndex", "ERR_DATA_SPLITTER_TASK_INDEX_ASSERT_FAILED");
                }
                if (this.isFinished) {
                    this.onPartEnd();
                    this.finishHandler();
                    return;
                }
                start = this.searchHeaderListEnd(chunk, start);
                if (start === -1) {
                    this.readState = ReadState.HEADER;
                    return;
                }
            }
            const partLength = this.partIndexToLength[this.partIndex];
            const end = start + partLength;
            const effectiveEnd = Math.min(end, chunk.length);
            await this.processPartStarted(chunk, start, effectiveEnd);
            this.remainingPartDataCount = partLength - (effectiveEnd - start);
            if (this.remainingPartDataCount > 0) {
                return;
            }
            start = end + this.boundaryLength;
            if (start >= chunk.length) {
                this.ignoreByteCount = this.boundaryLength - (chunk.length - end);
                return;
            }
        }
    }
    copyExistingData(index, end) {
        return new Promise((resolve, reject) => {
            const w = () => {
                if (index === end) {
                    resolve();
                    return;
                }
                const task = this.options.tasks[index];
                if (task.kind !== downloadPlanBuilder_1.OperationKind.COPY) {
                    reject(new Error("Task kind must be COPY"));
                    return;
                }
                copyData(task, this.out, this.options.oldFileFd, reject, () => {
                    index++;
                    w();
                });
            };
            w();
        });
    }
    searchHeaderListEnd(chunk, readOffset) {
        const headerListEnd = chunk.indexOf(DOUBLE_CRLF, readOffset);
        if (headerListEnd !== -1) {
            return headerListEnd + DOUBLE_CRLF.length;
        }
        // not all headers data were received, save to buffer
        const partialChunk = readOffset === 0 ? chunk : chunk.slice(readOffset);
        if (this.headerListBuffer == null) {
            this.headerListBuffer = partialChunk;
        }
        else {
            this.headerListBuffer = Buffer.concat([this.headerListBuffer, partialChunk]);
        }
        return -1;
    }
    onPartEnd() {
        const expectedLength = this.partIndexToLength[this.partIndex - 1];
        if (this.actualPartLength !== expectedLength) {
            throw (0, builder_util_runtime_1.newError)(`Expected length: ${expectedLength} differs from actual: ${this.actualPartLength}`, "ERR_DATA_SPLITTER_LENGTH_MISMATCH");
        }
        this.actualPartLength = 0;
    }
    processPartStarted(data, start, end) {
        if (this.partIndex !== 0) {
            this.onPartEnd();
        }
        return this.processPartData(data, start, end);
    }
    processPartData(data, start, end) {
        this.actualPartLength += end - start;
        const out = this.out;
        if (out.write(start === 0 && data.length === end ? data : data.slice(start, end))) {
            return Promise.resolve();
        }
        else {
            return new Promise((resolve, reject) => {
                out.on("error", reject);
                out.once("drain", () => {
                    out.removeListener("error", reject);
                    resolve();
                });
            });
        }
    }
}
exports.DataSplitter = DataSplitter;
{"version":3,"file":"DataSplitter.js","sourceRoot":"","sources":["../../src/differentialDownloader/DataSplitter.ts"],"names":[],"mappings":";;;AAoBA,4BAaC;AAjCD,+DAA+C;AAC/C,2BAAqC;AACrC,mCAAiC;AACjC,+DAAgE;AAEhE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAE3C,IAAK,SAIJ;AAJD,WAAK,SAAS;IACZ,yCAAI,CAAA;IACJ,6CAAM,CAAA;IACN,yCAAI,CAAA;AACN,CAAC,EAJI,SAAS,KAAT,SAAS,QAIb;AASD,SAAgB,QAAQ,CAAC,IAAe,EAAE,GAAa,EAAE,SAAiB,EAAE,MAA8B,EAAE,OAAmB;IAC7H,MAAM,UAAU,GAAG,IAAA,qBAAgB,EAAC,EAAE,EAAE;QACtC,EAAE,EAAE,SAAS;QACb,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,mBAAmB;QACnB,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;KAClB,CAAC,CAAA;IACF,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC9B,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC/B,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE;QACnB,GAAG,EAAE,KAAK;KACX,CAAC,CAAA;AACJ,CAAC;AAED,MAAa,YAAa,SAAQ,iBAAQ;IAUxC,YACmB,GAAa,EACb,OAAyB,EACzB,oBAAyC,EAC1D,QAAgB,EACC,iBAAgC,EAChC,aAAwB;QAEzC,KAAK,EAAE,CAAA;QAPU,QAAG,GAAH,GAAG,CAAU;QACb,YAAO,GAAP,OAAO,CAAkB;QACzB,yBAAoB,GAApB,oBAAoB,CAAqB;QAEzC,sBAAiB,GAAjB,iBAAiB,CAAe;QAChC,kBAAa,GAAb,aAAa,CAAW;QAf3C,cAAS,GAAG,CAAC,CAAC,CAAA;QAEN,qBAAgB,GAAkB,IAAI,CAAA;QACtC,cAAS,GAAG,SAAS,CAAC,IAAI,CAAA;QAC1B,oBAAe,GAAG,CAAC,CAAA;QACnB,2BAAsB,GAAG,CAAC,CAAA;QA+J1B,qBAAgB,GAAG,CAAC,CAAA;QAjJ1B,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA,CAAC,oBAAoB;QAC9D,sCAAsC;QACtC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAA;IAChD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAA;IACzD,CAAC;IAED,qCAAqC;IACrC,MAAM,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAiC;QACtE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,0BAA0B,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAA;YAC5D,OAAM;QACR,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACtD,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,KAAa;QACpC,IAAI,KAAK,GAAG,CAAC,CAAA;QAEb,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,IAAI,CAAC,sBAAsB,KAAK,CAAC,EAAE,CAAC;YACpE,MAAM,IAAA,+BAAQ,EAAC,gBAAgB,EAAE,uCAAuC,CAAC,CAAA;QAC3E,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YAC7D,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAA;YAChC,KAAK,GAAG,QAAQ,CAAA;QAClB,CAAC;aAAM,IAAI,IAAI,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YAClE,IAAI,CAAC,sBAAsB,IAAI,MAAM,CAAA;YACrC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;YAC5C,KAAK,GAAG,MAAM,CAAA;QAChB,CAAC;QAED,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,OAAM;QACR,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAC5D,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;gBACzB,OAAM;YACR,CAAC;YAED,KAAK,GAAG,aAAa,CAAA;YACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAA;YAC/B,2CAA2C;YAC3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;QAC9B,CAAC;QAED,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACtC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAA;YACjC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,SAAS,EAAE,CAAA;gBAEhB,IAAI,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBAC7D,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;oBACtB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;wBACpB,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAA;oBAC9B,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAA,+BAAQ,EAAC,mBAAmB,EAAE,sCAAsC,CAAC,CAAA;oBAC7E,CAAC;gBACH,CAAC;gBAED,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAE,GAAG,CAAC,CAAA,CAAC,4CAA4C;gBACrK,IAAI,aAAa,GAAG,SAAS,EAAE,CAAC;oBAC9B,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;gBACvD,CAAC;qBAAM,IAAI,aAAa,GAAG,SAAS,EAAE,CAAC;oBACrC,MAAM,IAAA,+BAAQ,EAAC,mCAAmC,EAAE,4CAA4C,CAAC,CAAA;gBACnG,CAAC;gBAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,IAAI,CAAC,SAAS,EAAE,CAAA;oBAChB,IAAI,CAAC,aAAa,EAAE,CAAA;oBACpB,OAAM;gBACR,CAAC;gBAED,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;gBAE9C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;oBACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAA;oBACjC,OAAM;gBACR,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACzD,MAAM,GAAG,GAAG,KAAK,GAAG,UAAU,CAAA;YAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YAChD,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;YACzD,IAAI,CAAC,sBAAsB,GAAG,UAAU,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC,CAAA;YACjE,IAAI,IAAI,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC;gBACpC,OAAM;YACR,CAAC;YAED,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,CAAA;YACjC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAA;gBACjE,OAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,KAAa,EAAE,GAAW;QACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,CAAC,GAAG,GAAS,EAAE;gBACnB,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;oBAClB,OAAO,EAAE,CAAA;oBACT,OAAM;gBACR,CAAC;gBAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBACtC,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAa,CAAC,IAAI,EAAE,CAAC;oBACrC,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAA;oBAC3C,OAAM;gBACR,CAAC;gBAED,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;oBAC5D,KAAK,EAAE,CAAA;oBACP,CAAC,EAAE,CAAA;gBACL,CAAC,CAAC,CAAA;YACJ,CAAC,CAAA;YACD,CAAC,EAAE,CAAA;QACL,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,mBAAmB,CAAC,KAAa,EAAE,UAAkB;QAC3D,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;QAC5D,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;YACzB,OAAO,aAAa,GAAG,WAAW,CAAC,MAAM,CAAA;QAC3C,CAAC;QAED,qDAAqD;QACrD,MAAM,YAAY,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACvE,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE,CAAC;YAClC,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAA;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAA;QAC9E,CAAC;QACD,OAAO,CAAC,CAAC,CAAA;IACX,CAAC;IAIO,SAAS;QACf,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;QACjE,IAAI,IAAI,CAAC,gBAAgB,KAAK,cAAc,EAAE,CAAC;YAC7C,MAAM,IAAA,+BAAQ,EAAC,oBAAoB,cAAc,yBAAyB,IAAI,CAAC,gBAAgB,EAAE,EAAE,mCAAmC,CAAC,CAAA;QACzI,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAA;IAC3B,CAAC;IAEO,kBAAkB,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW;QACjE,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,EAAE,CAAA;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAC/C,CAAC;IAEO,eAAe,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW;QAC9D,IAAI,CAAC,gBAAgB,IAAI,GAAG,GAAG,KAAK,CAAA;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QACpB,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;YAClF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBACvB,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;oBACrB,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;oBACnC,OAAO,EAAE,CAAA;gBACX,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF;AArMD,oCAqMC","sourcesContent":["import { newError } from \"builder-util-runtime\"\nimport { createReadStream } from \"fs\"\nimport { Writable } from \"stream\"\nimport { Operation, OperationKind } from \"./downloadPlanBuilder\"\n\nconst DOUBLE_CRLF = Buffer.from(\"\\r\\n\\r\\n\")\n\nenum ReadState {\n  INIT,\n  HEADER,\n  BODY,\n}\n\nexport interface PartListDataTask {\n  readonly oldFileFd: number\n  readonly tasks: Array<Operation>\n  readonly start: number\n  readonly end: number\n}\n\nexport function copyData(task: Operation, out: Writable, oldFileFd: number, reject: (error: Error) => void, resolve: () => void): void {\n  const readStream = createReadStream(\"\", {\n    fd: oldFileFd,\n    autoClose: false,\n    start: task.start,\n    // end is inclusive\n    end: task.end - 1,\n  })\n  readStream.on(\"error\", reject)\n  readStream.once(\"end\", resolve)\n  readStream.pipe(out, {\n    end: false,\n  })\n}\n\nexport class DataSplitter extends Writable {\n  partIndex = -1\n\n  private headerListBuffer: Buffer | null = null\n  private readState = ReadState.INIT\n  private ignoreByteCount = 0\n  private remainingPartDataCount = 0\n\n  private readonly boundaryLength: number\n\n  constructor(\n    private readonly out: Writable,\n    private readonly options: PartListDataTask,\n    private readonly partIndexToTaskIndex: Map<number, number>,\n    boundary: string,\n    private readonly partIndexToLength: Array<number>,\n    private readonly finishHandler: () => any\n  ) {\n    super()\n\n    this.boundaryLength = boundary.length + 4 /* size of \\r\\n-- */\n    // first chunk doesn't start with \\r\\n\n    this.ignoreByteCount = this.boundaryLength - 2\n  }\n\n  get isFinished(): boolean {\n    return this.partIndex === this.partIndexToLength.length\n  }\n\n  // noinspection JSUnusedGlobalSymbols\n  _write(data: Buffer, encoding: string, callback: (error?: Error) => void): void {\n    if (this.isFinished) {\n      console.error(`Trailing ignored data: ${data.length} bytes`)\n      return\n    }\n\n    this.handleData(data).then(callback).catch(callback)\n  }\n\n  private async handleData(chunk: Buffer): Promise<undefined> {\n    let start = 0\n\n    if (this.ignoreByteCount !== 0 && this.remainingPartDataCount !== 0) {\n      throw newError(\"Internal error\", \"ERR_DATA_SPLITTER_BYTE_COUNT_MISMATCH\")\n    }\n\n    if (this.ignoreByteCount > 0) {\n      const toIgnore = Math.min(this.ignoreByteCount, chunk.length)\n      this.ignoreByteCount -= toIgnore\n      start = toIgnore\n    } else if (this.remainingPartDataCount > 0) {\n      const toRead = Math.min(this.remainingPartDataCount, chunk.length)\n      this.remainingPartDataCount -= toRead\n      await this.processPartData(chunk, 0, toRead)\n      start = toRead\n    }\n\n    if (start === chunk.length) {\n      return\n    }\n\n    if (this.readState === ReadState.HEADER) {\n      const headerListEnd = this.searchHeaderListEnd(chunk, start)\n      if (headerListEnd === -1) {\n        return\n      }\n\n      start = headerListEnd\n      this.readState = ReadState.BODY\n      // header list is ignored, we don't need it\n      this.headerListBuffer = null\n    }\n\n    while (true) {\n      if (this.readState === ReadState.BODY) {\n        this.readState = ReadState.INIT\n      } else {\n        this.partIndex++\n\n        let taskIndex = this.partIndexToTaskIndex.get(this.partIndex)\n        if (taskIndex == null) {\n          if (this.isFinished) {\n            taskIndex = this.options.end\n          } else {\n            throw newError(\"taskIndex is null\", \"ERR_DATA_SPLITTER_TASK_INDEX_IS_NULL\")\n          }\n        }\n\n        const prevTaskIndex = this.partIndex === 0 ? this.options.start : this.partIndexToTaskIndex.get(this.partIndex - 1)! + 1 /* prev part is download, next maybe copy */\n        if (prevTaskIndex < taskIndex) {\n          await this.copyExistingData(prevTaskIndex, taskIndex)\n        } else if (prevTaskIndex > taskIndex) {\n          throw newError(\"prevTaskIndex must be < taskIndex\", \"ERR_DATA_SPLITTER_TASK_INDEX_ASSERT_FAILED\")\n        }\n\n        if (this.isFinished) {\n          this.onPartEnd()\n          this.finishHandler()\n          return\n        }\n\n        start = this.searchHeaderListEnd(chunk, start)\n\n        if (start === -1) {\n          this.readState = ReadState.HEADER\n          return\n        }\n      }\n\n      const partLength = this.partIndexToLength[this.partIndex]\n      const end = start + partLength\n      const effectiveEnd = Math.min(end, chunk.length)\n      await this.processPartStarted(chunk, start, effectiveEnd)\n      this.remainingPartDataCount = partLength - (effectiveEnd - start)\n      if (this.remainingPartDataCount > 0) {\n        return\n      }\n\n      start = end + this.boundaryLength\n      if (start >= chunk.length) {\n        this.ignoreByteCount = this.boundaryLength - (chunk.length - end)\n        return\n      }\n    }\n  }\n\n  private copyExistingData(index: number, end: number): Promise<void> {\n    return new Promise((resolve, reject) => {\n      const w = (): void => {\n        if (index === end) {\n          resolve()\n          return\n        }\n\n        const task = this.options.tasks[index]\n        if (task.kind !== OperationKind.COPY) {\n          reject(new Error(\"Task kind must be COPY\"))\n          return\n        }\n\n        copyData(task, this.out, this.options.oldFileFd, reject, () => {\n          index++\n          w()\n        })\n      }\n      w()\n    })\n  }\n\n  private searchHeaderListEnd(chunk: Buffer, readOffset: number): number {\n    const headerListEnd = chunk.indexOf(DOUBLE_CRLF, readOffset)\n    if (headerListEnd !== -1) {\n      return headerListEnd + DOUBLE_CRLF.length\n    }\n\n    // not all headers data were received, save to buffer\n    const partialChunk = readOffset === 0 ? chunk : chunk.slice(readOffset)\n    if (this.headerListBuffer == null) {\n      this.headerListBuffer = partialChunk\n    } else {\n      this.headerListBuffer = Buffer.concat([this.headerListBuffer, partialChunk])\n    }\n    return -1\n  }\n\n  private actualPartLength = 0\n\n  private onPartEnd(): void {\n    const expectedLength = this.partIndexToLength[this.partIndex - 1]\n    if (this.actualPartLength !== expectedLength) {\n      throw newError(`Expected length: ${expectedLength} differs from actual: ${this.actualPartLength}`, \"ERR_DATA_SPLITTER_LENGTH_MISMATCH\")\n    }\n    this.actualPartLength = 0\n  }\n\n  private processPartStarted(data: Buffer, start: number, end: number): Promise<void> {\n    if (this.partIndex !== 0) {\n      this.onPartEnd()\n    }\n    return this.processPartData(data, start, end)\n  }\n\n  private processPartData(data: Buffer, start: number, end: number): Promise<void> {\n    this.actualPartLength += end - start\n    const out = this.out\n    if (out.write(start === 0 && data.length === end ? data : data.slice(start, end))) {\n      return Promise.resolve()\n    } else {\n      return new Promise((resolve, reject) => {\n        out.on(\"error\", reject)\n        out.once(\"drain\", () => {\n          out.removeListener(\"error\", reject)\n          resolve()\n        })\n      })\n    }\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DifferentialDownloader = void 0;
const builder_util_runtime_1 = require("builder-util-runtime");
const fs_extra_1 = require("fs-extra");
const fs_1 = require("fs");
const DataSplitter_1 = require("./DataSplitter");
const url_1 = require("url");
const downloadPlanBuilder_1 = require("./downloadPlanBuilder");
const multipleRangeDownloader_1 = require("./multipleRangeDownloader");
const ProgressDifferentialDownloadCallbackTransform_1 = require("./ProgressDifferentialDownloadCallbackTransform");
class DifferentialDownloader {
    // noinspection TypeScriptAbstractClassConstructorCanBeMadeProtected
    constructor(blockAwareFileInfo, httpExecutor, options) {
        this.blockAwareFileInfo = blockAwareFileInfo;
        this.httpExecutor = httpExecutor;
        this.options = options;
        this.fileMetadataBuffer = null;
        this.logger = options.logger;
    }
    createRequestOptions() {
        const result = {
            headers: {
                ...this.options.requestHeaders,
                accept: "*/*",
            },
        };
        (0, builder_util_runtime_1.configureRequestUrl)(this.options.newUrl, result);
        // user-agent, cache-control and other common options
        (0, builder_util_runtime_1.configureRequestOptions)(result);
        return result;
    }
    doDownload(oldBlockMap, newBlockMap) {
        // we don't check other metadata like compressionMethod - generic check that it is make sense to differentially update is suitable for it
        if (oldBlockMap.version !== newBlockMap.version) {
            throw new Error(`version is different (${oldBlockMap.version} - ${newBlockMap.version}), full download is required`);
        }
        const logger = this.logger;
        const operations = (0, downloadPlanBuilder_1.computeOperations)(oldBlockMap, newBlockMap, logger);
        if (logger.debug != null) {
            logger.debug(JSON.stringify(operations, null, 2));
        }
        let downloadSize = 0;
        let copySize = 0;
        for (const operation of operations) {
            const length = operation.end - operation.start;
            if (operation.kind === downloadPlanBuilder_1.OperationKind.DOWNLOAD) {
                downloadSize += length;
            }
            else {
                copySize += length;
            }
        }
        const newSize = this.blockAwareFileInfo.size;
        if (downloadSize + copySize + (this.fileMetadataBuffer == null ? 0 : this.fileMetadataBuffer.length) !== newSize) {
            throw new Error(`Internal error, size mismatch: downloadSize: ${downloadSize}, copySize: ${copySize}, newSize: ${newSize}`);
        }
        logger.info(`Full: ${formatBytes(newSize)}, To download: ${formatBytes(downloadSize)} (${Math.round(downloadSize / (newSize / 100))}%)`);
        return this.downloadFile(operations);
    }
    downloadFile(tasks) {
        const fdList = [];
        const closeFiles = () => {
            return Promise.all(fdList.map(openedFile => {
                return (0, fs_extra_1.close)(openedFile.descriptor).catch((e) => {
                    this.logger.error(`cannot close file "${openedFile.path}": ${e}`);
                });
            }));
        };
        return this.doDownloadFile(tasks, fdList)
            .then(closeFiles)
            .catch((e) => {
            // then must be after catch here (since then always throws error)
            return closeFiles()
                .catch(closeFilesError => {
                // closeFiles never throw error, but just to be sure
                try {
                    this.logger.error(`cannot close files: ${closeFilesError}`);
                }
                catch (errorOnLog) {
                    try {
                        console.error(errorOnLog);
                    }
                    catch (_ignored) {
                        // ok, give up and ignore error
                    }
                }
                throw e;
            })
                .then(() => {
                throw e;
            });
        });
    }
    async doDownloadFile(tasks, fdList) {
        const oldFileFd = await (0, fs_extra_1.open)(this.options.oldFile, "r");
        fdList.push({ descriptor: oldFileFd, path: this.options.oldFile });
        const newFileFd = await (0, fs_extra_1.open)(this.options.newFile, "w");
        fdList.push({ descriptor: newFileFd, path: this.options.newFile });
        const fileOut = (0, fs_1.createWriteStream)(this.options.newFile, { fd: newFileFd });
        await new Promise((resolve, reject) => {
            const streams = [];
            // Create our download info transformer if we have one
            let downloadInfoTransform = undefined;
            if (!this.options.isUseMultipleRangeRequest && this.options.onProgress) {
                // TODO: Does not support multiple ranges (someone feel free to PR this!)
                const expectedByteCounts = [];
                let grandTotalBytes = 0;
                for (const task of tasks) {
                    if (task.kind === downloadPlanBuilder_1.OperationKind.DOWNLOAD) {
                        expectedByteCounts.push(task.end - task.start);
                        grandTotalBytes += task.end - task.start;
                    }
                }
                const progressDifferentialDownloadInfo = {
                    expectedByteCounts: expectedByteCounts,
                    grandTotal: grandTotalBytes,
                };
                downloadInfoTransform = new ProgressDifferentialDownloadCallbackTransform_1.ProgressDifferentialDownloadCallbackTransform(progressDifferentialDownloadInfo, this.options.cancellationToken, this.options.onProgress);
                streams.push(downloadInfoTransform);
            }
            const digestTransform = new builder_util_runtime_1.DigestTransform(this.blockAwareFileInfo.sha512);
            // to simply debug, do manual validation to allow file to be fully written
            digestTransform.isValidateOnEnd = false;
            streams.push(digestTransform);
            // noinspection JSArrowFunctionCanBeReplacedWithShorthand
            fileOut.on("finish", () => {
                ;
                fileOut.close(() => {
                    // remove from fd list because closed successfully
                    fdList.splice(1, 1);
                    try {
                        digestTransform.validate();
                    }
                    catch (e) {
                        reject(e);
                        return;
                    }
                    resolve(undefined);
                });
            });
            streams.push(fileOut);
            let lastStream = null;
            for (const stream of streams) {
                stream.on("error", reject);
                if (lastStream == null) {
                    lastStream = stream;
                }
                else {
                    lastStream = lastStream.pipe(stream);
                }
            }
            const firstStream = streams[0];
            let w;
            if (this.options.isUseMultipleRangeRequest) {
                w = (0, multipleRangeDownloader_1.executeTasksUsingMultipleRangeRequests)(this, tasks, firstStream, oldFileFd, reject);
                w(0);
                return;
            }
            let downloadOperationCount = 0;
            let actualUrl = null;
            this.logger.info(`Differential download: ${this.options.newUrl}`);
            const requestOptions = this.createRequestOptions();
            requestOptions.redirect = "manual";
            w = (index) => {
                var _a, _b;
                if (index >= tasks.length) {
                    if (this.fileMetadataBuffer != null) {
                        firstStream.write(this.fileMetadataBuffer);
                    }
                    firstStream.end();
                    return;
                }
                const operation = tasks[index++];
                if (operation.kind === downloadPlanBuilder_1.OperationKind.COPY) {
                    // We are copying, let's not send status updates to the UI
                    if (downloadInfoTransform) {
                        downloadInfoTransform.beginFileCopy();
                    }
                    (0, DataSplitter_1.copyData)(operation, firstStream, oldFileFd, reject, () => w(index));
                    return;
                }
                const range = `bytes=${operation.start}-${operation.end - 1}`;
                requestOptions.headers.range = range;
                (_b = (_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug) === null || _b === void 0 ? void 0 : _b.call(_a, `download range: ${range}`);
                // We are starting to download
                if (downloadInfoTransform) {
                    downloadInfoTransform.beginRangeDownload();
                }
                const request = this.httpExecutor.createRequest(requestOptions, response => {
                    response.on("error", reject);
                    response.on("aborted", () => {
                        reject(new Error("response has been aborted by the server"));
                    });
                    // Electron net handles redirects automatically, our NodeJS test server doesn't use redirects - so, we don't check 3xx codes.
                    if (response.statusCode >= 400) {
                        reject((0, builder_util_runtime_1.createHttpError)(response));
                    }
                    response.pipe(firstStream, {
                        end: false,
                    });
                    response.once("end", () => {
                        // Pass on that we are downloading a segment
                        if (downloadInfoTransform) {
                            downloadInfoTransform.endRangeDownload();
                        }
                        if (++downloadOperationCount === 100) {
                            downloadOperationCount = 0;
                            setTimeout(() => w(index), 1000);
                        }
                        else {
                            w(index);
                        }
                    });
                });
                request.on("redirect", (statusCode, method, redirectUrl) => {
                    this.logger.info(`Redirect to ${removeQuery(redirectUrl)}`);
                    actualUrl = redirectUrl;
                    (0, builder_util_runtime_1.configureRequestUrl)(new url_1.URL(actualUrl), requestOptions);
                    request.followRedirect();
                });
                this.httpExecutor.addErrorAndTimeoutHandlers(request, reject);
                request.end();
            };
            w(0);
        });
    }
    async readRemoteBytes(start, endInclusive) {
        const buffer = Buffer.allocUnsafe(endInclusive + 1 - start);
        const requestOptions = this.createRequestOptions();
        requestOptions.headers.range = `bytes=${start}-${endInclusive}`;
        let position = 0;
        await this.request(requestOptions, chunk => {
            chunk.copy(buffer, position);
            position += chunk.length;
        });
        if (position !== buffer.length) {
            throw new Error(`Received data length ${position} is not equal to expected ${buffer.length}`);
        }
        return buffer;
    }
    request(requestOptions, dataHandler) {
        return new Promise((resolve, reject) => {
            const request = this.httpExecutor.createRequest(requestOptions, response => {
                if (!(0, multipleRangeDownloader_1.checkIsRangesSupported)(response, reject)) {
                    return;
                }
                response.on("error", reject);
                response.on("aborted", () => {
                    reject(new Error("response has been aborted by the server"));
                });
                response.on("data", dataHandler);
                response.on("end", () => resolve());
            });
            this.httpExecutor.addErrorAndTimeoutHandlers(request, reject);
            request.end();
        });
    }
}
exports.DifferentialDownloader = DifferentialDownloader;
function formatBytes(value, symbol = " KB") {
    return new Intl.NumberFormat("en").format((value / 1024).toFixed(2)) + symbol;
}
// safety
function removeQuery(url) {
    const index = url.indexOf("?");
    return index < 0 ? url : url.substring(0, index);
}
{"version":3,"file":"DifferentialDownloader.js","sourceRoot":"","sources":["../../src/differentialDownloader/DifferentialDownloader.ts"],"names":[],"mappings":";;;AAAA,+DAAuJ;AAEvJ,uCAAsC;AACtC,2BAAsC;AAItC,iDAAyC;AACzC,6BAAyB;AACzB,+DAAmF;AACnF,uEAA0G;AAC1G,mHAAiJ;AAgBjJ,MAAsB,sBAAsB;IAK1C,oEAAoE;IACpE,YACqB,kBAAsC,EAChD,YAA+B,EAC/B,OAAsC;QAF5B,uBAAkB,GAAlB,kBAAkB,CAAoB;QAChD,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,YAAO,GAAP,OAAO,CAA+B;QARjD,uBAAkB,GAAkB,IAAI,CAAA;QAUtC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC9B,CAAC;IAED,oBAAoB;QAClB,MAAM,MAAM,GAAG;YACb,OAAO,EAAE;gBACP,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC9B,MAAM,EAAE,KAAK;aACd;SACF,CAAA;QACD,IAAA,0CAAmB,EAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChD,qDAAqD;QACrD,IAAA,8CAAuB,EAAC,MAAM,CAAC,CAAA;QAC/B,OAAO,MAAM,CAAA;IACf,CAAC;IAES,UAAU,CAAC,WAAqB,EAAE,WAAqB;QAC/D,yIAAyI;QACzI,IAAI,WAAW,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,CAAC,OAAO,MAAM,WAAW,CAAC,OAAO,8BAA8B,CAAC,CAAA;QACtH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,MAAM,UAAU,GAAG,IAAA,uCAAiB,EAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QACtE,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QACnD,CAAC;QAED,IAAI,YAAY,GAAG,CAAC,CAAA;QACpB,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,KAAK,CAAA;YAC9C,IAAI,SAAS,CAAC,IAAI,KAAK,mCAAa,CAAC,QAAQ,EAAE,CAAC;gBAC9C,YAAY,IAAI,MAAM,CAAA;YACxB,CAAC;iBAAM,CAAC;gBACN,QAAQ,IAAI,MAAM,CAAA;YACpB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAA;QAC5C,IAAI,YAAY,GAAG,QAAQ,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC;YACjH,MAAM,IAAI,KAAK,CAAC,gDAAgD,YAAY,eAAe,QAAQ,cAAc,OAAO,EAAE,CAAC,CAAA;QAC7H,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,OAAO,CAAC,kBAAkB,WAAW,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;QAExI,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;IACtC,CAAC;IAEO,YAAY,CAAC,KAAuB;QAC1C,MAAM,MAAM,GAAsB,EAAE,CAAA;QACpC,MAAM,UAAU,GAAG,GAAyB,EAAE;YAC5C,OAAO,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBACtB,OAAO,IAAA,gBAAK,EAAC,UAAU,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE;oBACnD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,UAAU,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAA;gBACnE,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CACH,CAAA;QACH,CAAC,CAAA;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC;aACtC,IAAI,CAAC,UAAU,CAAC;aAChB,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE;YAChB,iEAAiE;YACjE,OAAO,UAAU,EAAE;iBAChB,KAAK,CAAC,eAAe,CAAC,EAAE;gBACvB,oDAAoD;gBACpD,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,eAAe,EAAE,CAAC,CAAA;gBAC7D,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,IAAI,CAAC;wBACH,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;oBAC3B,CAAC;oBAAC,OAAO,QAAQ,EAAE,CAAC;wBAClB,+BAA+B;oBACjC,CAAC;gBACH,CAAC;gBACD,MAAM,CAAC,CAAA;YACT,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,EAAE;gBACT,MAAM,CAAC,CAAA;YACT,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,KAAuB,EAAE,MAAyB;QAC7E,MAAM,SAAS,GAAG,MAAM,IAAA,eAAI,EAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACvD,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;QAClE,MAAM,SAAS,GAAG,MAAM,IAAA,eAAI,EAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACvD,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;QAClE,MAAM,OAAO,GAAG,IAAA,sBAAiB,EAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;QAC1E,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,MAAM,OAAO,GAAe,EAAE,CAAA;YAE9B,sDAAsD;YACtD,IAAI,qBAAqB,GAA8D,SAAS,CAAA;YAChG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvE,yEAAyE;gBACzE,MAAM,kBAAkB,GAAkB,EAAE,CAAA;gBAC5C,IAAI,eAAe,GAAG,CAAC,CAAA;gBAEvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAa,CAAC,QAAQ,EAAE,CAAC;wBACzC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;wBAC9C,eAAe,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAA;oBAC1C,CAAC;gBACH,CAAC;gBAED,MAAM,gCAAgC,GAAqC;oBACzE,kBAAkB,EAAE,kBAAkB;oBACtC,UAAU,EAAE,eAAe;iBAC5B,CAAA;gBAED,qBAAqB,GAAG,IAAI,6FAA6C,CAAC,gCAAgC,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;gBACpK,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;YACrC,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,sCAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;YAC3E,0EAA0E;YAC1E,eAAe,CAAC,eAAe,GAAG,KAAK,CAAA;YACvC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YAE7B,yDAAyD;YACzD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACxB,CAAC;gBAAC,OAAO,CAAC,KAAa,CAAC,GAAG,EAAE;oBAC3B,kDAAkD;oBAClD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBACnB,IAAI,CAAC;wBACH,eAAe,CAAC,QAAQ,EAAE,CAAA;oBAC5B,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBAChB,MAAM,CAAC,CAAC,CAAC,CAAA;wBACT,OAAM;oBACR,CAAC;oBAED,OAAO,CAAC,SAAS,CAAC,CAAA;gBACpB,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YAEF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAErB,IAAI,UAAU,GAAG,IAAI,CAAA;YACrB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBAC1B,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;oBACvB,UAAU,GAAG,MAAM,CAAA;gBACrB,CAAC;qBAAM,CAAC;oBACN,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBACtC,CAAC;YACH,CAAC;YAED,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YAE9B,IAAI,CAAM,CAAA;YACV,IAAI,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,CAAC;gBAC3C,CAAC,GAAG,IAAA,gEAAsC,EAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;gBACvF,CAAC,CAAC,CAAC,CAAC,CAAA;gBACJ,OAAM;YACR,CAAC;YAED,IAAI,sBAAsB,GAAG,CAAC,CAAA;YAC9B,IAAI,SAAS,GAAkB,IAAI,CAAA;YACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;YAEjE,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,EAAE,CACjD;YAAC,cAAsB,CAAC,QAAQ,GAAG,QAAQ,CAAA;YAE5C,CAAC,GAAG,CAAC,KAAa,EAAQ,EAAE;;gBAC1B,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC1B,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE,CAAC;wBACpC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;oBAC5C,CAAC;oBACD,WAAW,CAAC,GAAG,EAAE,CAAA;oBACjB,OAAM;gBACR,CAAC;gBAED,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;gBAChC,IAAI,SAAS,CAAC,IAAI,KAAK,mCAAa,CAAC,IAAI,EAAE,CAAC;oBAC1C,0DAA0D;oBAC1D,IAAI,qBAAqB,EAAE,CAAC;wBAC1B,qBAAqB,CAAC,aAAa,EAAE,CAAA;oBACvC,CAAC;oBAED,IAAA,uBAAQ,EAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;oBACnE,OAAM;gBACR,CAAC;gBAED,MAAM,KAAK,GAAG,SAAS,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAA;gBAC7D,cAAc,CAAC,OAAQ,CAAC,KAAK,GAAG,KAAK,CAAA;gBAErC,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,mDAAG,mBAAmB,KAAK,EAAE,CAAC,CAAA;gBAEhD,8BAA8B;gBAC9B,IAAI,qBAAqB,EAAE,CAAC;oBAC1B,qBAAqB,CAAC,kBAAkB,EAAE,CAAA;gBAC5C,CAAC;gBAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE;oBACzE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;oBAC5B,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;wBAC1B,MAAM,CAAC,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAA;oBAC9D,CAAC,CAAC,CAAA;oBACF,6HAA6H;oBAC7H,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;wBAC/B,MAAM,CAAC,IAAA,sCAAe,EAAC,QAAQ,CAAC,CAAC,CAAA;oBACnC,CAAC;oBAED,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE;wBACzB,GAAG,EAAE,KAAK;qBACX,CAAC,CAAA;oBACF,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;wBACxB,4CAA4C;wBAC5C,IAAI,qBAAqB,EAAE,CAAC;4BAC1B,qBAAqB,CAAC,gBAAgB,EAAE,CAAA;wBAC1C,CAAC;wBAED,IAAI,EAAE,sBAAsB,KAAK,GAAG,EAAE,CAAC;4BACrC,sBAAsB,GAAG,CAAC,CAAA;4BAC1B,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;wBAClC,CAAC;6BAAM,CAAC;4BACN,CAAC,CAAC,KAAK,CAAC,CAAA;wBACV,CAAC;oBACH,CAAC,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;gBACF,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,UAAkB,EAAE,MAAc,EAAE,WAAmB,EAAE,EAAE;oBACjF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;oBAC3D,SAAS,GAAG,WAAW,CAAA;oBACvB,IAAA,0CAAmB,EAAC,IAAI,SAAG,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,CAAA;oBACvD,OAAO,CAAC,cAAc,EAAE,CAAA;gBAC1B,CAAC,CAAC,CAAA;gBACF,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBAC7D,OAAO,CAAC,GAAG,EAAE,CAAA;YACf,CAAC,CAAA;YAED,CAAC,CAAC,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACJ,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,KAAa,EAAE,YAAoB;QACjE,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;QAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAClD,cAAc,CAAC,OAAQ,CAAC,KAAK,GAAG,SAAS,KAAK,IAAI,YAAY,EAAE,CAAA;QAChE,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE;YACzC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAC5B,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAA;QAC1B,CAAC,CAAC,CAAA;QAEF,IAAI,QAAQ,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,6BAA6B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;QAC/F,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,OAAO,CAAC,cAA8B,EAAE,WAAoC;QAClF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE;gBACzE,IAAI,CAAC,IAAA,gDAAsB,EAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;oBAC9C,OAAM;gBACR,CAAC;gBAED,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBAC5B,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;oBAC1B,MAAM,CAAC,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAA;gBAC9D,CAAC,CAAC,CAAA;gBAEF,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;gBAChC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;YACrC,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC7D,OAAO,CAAC,GAAG,EAAE,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AA1RD,wDA0RC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,MAAM,GAAG,KAAK;IAChD,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAQ,CAAC,GAAG,MAAM,CAAA;AACtF,CAAC;AAED,SAAS;AACT,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC9B,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AAClD,CAAC","sourcesContent":["import { BlockMapDataHolder, createHttpError, DigestTransform, HttpExecutor, configureRequestUrl, configureRequestOptions } from \"builder-util-runtime\"\nimport { BlockMap } from \"builder-util-runtime/out/blockMapApi\"\nimport { close, open } from \"fs-extra\"\nimport { createWriteStream } from \"fs\"\nimport { OutgoingHttpHeaders, RequestOptions } from \"http\"\nimport { ProgressInfo, CancellationToken } from \"builder-util-runtime\"\nimport { Logger } from \"../types\"\nimport { copyData } from \"./DataSplitter\"\nimport { URL } from \"url\"\nimport { computeOperations, Operation, OperationKind } from \"./downloadPlanBuilder\"\nimport { checkIsRangesSupported, executeTasksUsingMultipleRangeRequests } from \"./multipleRangeDownloader\"\nimport { ProgressDifferentialDownloadCallbackTransform, ProgressDifferentialDownloadInfo } from \"./ProgressDifferentialDownloadCallbackTransform\"\n\nexport interface DifferentialDownloaderOptions {\n  readonly oldFile: string\n  readonly newUrl: URL\n  readonly logger: Logger\n  readonly newFile: string\n\n  readonly requestHeaders: OutgoingHttpHeaders | null\n\n  readonly isUseMultipleRangeRequest?: boolean\n\n  readonly cancellationToken: CancellationToken\n  onProgress?: (progress: ProgressInfo) => void\n}\n\nexport abstract class DifferentialDownloader {\n  fileMetadataBuffer: Buffer | null = null\n\n  private readonly logger: Logger\n\n  // noinspection TypeScriptAbstractClassConstructorCanBeMadeProtected\n  constructor(\n    protected readonly blockAwareFileInfo: BlockMapDataHolder,\n    readonly httpExecutor: HttpExecutor<any>,\n    readonly options: DifferentialDownloaderOptions\n  ) {\n    this.logger = options.logger\n  }\n\n  createRequestOptions(): RequestOptions {\n    const result = {\n      headers: {\n        ...this.options.requestHeaders,\n        accept: \"*/*\",\n      },\n    }\n    configureRequestUrl(this.options.newUrl, result)\n    // user-agent, cache-control and other common options\n    configureRequestOptions(result)\n    return result\n  }\n\n  protected doDownload(oldBlockMap: BlockMap, newBlockMap: BlockMap): Promise<any> {\n    // we don't check other metadata like compressionMethod - generic check that it is make sense to differentially update is suitable for it\n    if (oldBlockMap.version !== newBlockMap.version) {\n      throw new Error(`version is different (${oldBlockMap.version} - ${newBlockMap.version}), full download is required`)\n    }\n\n    const logger = this.logger\n    const operations = computeOperations(oldBlockMap, newBlockMap, logger)\n    if (logger.debug != null) {\n      logger.debug(JSON.stringify(operations, null, 2))\n    }\n\n    let downloadSize = 0\n    let copySize = 0\n    for (const operation of operations) {\n      const length = operation.end - operation.start\n      if (operation.kind === OperationKind.DOWNLOAD) {\n        downloadSize += length\n      } else {\n        copySize += length\n      }\n    }\n\n    const newSize = this.blockAwareFileInfo.size\n    if (downloadSize + copySize + (this.fileMetadataBuffer == null ? 0 : this.fileMetadataBuffer.length) !== newSize) {\n      throw new Error(`Internal error, size mismatch: downloadSize: ${downloadSize}, copySize: ${copySize}, newSize: ${newSize}`)\n    }\n\n    logger.info(`Full: ${formatBytes(newSize)}, To download: ${formatBytes(downloadSize)} (${Math.round(downloadSize / (newSize / 100))}%)`)\n\n    return this.downloadFile(operations)\n  }\n\n  private downloadFile(tasks: Array<Operation>): Promise<any> {\n    const fdList: Array<OpenedFile> = []\n    const closeFiles = (): Promise<Array<void>> => {\n      return Promise.all(\n        fdList.map(openedFile => {\n          return close(openedFile.descriptor).catch((e: any) => {\n            this.logger.error(`cannot close file \"${openedFile.path}\": ${e}`)\n          })\n        })\n      )\n    }\n    return this.doDownloadFile(tasks, fdList)\n      .then(closeFiles)\n      .catch((e: any) => {\n        // then must be after catch here (since then always throws error)\n        return closeFiles()\n          .catch(closeFilesError => {\n            // closeFiles never throw error, but just to be sure\n            try {\n              this.logger.error(`cannot close files: ${closeFilesError}`)\n            } catch (errorOnLog) {\n              try {\n                console.error(errorOnLog)\n              } catch (_ignored) {\n                // ok, give up and ignore error\n              }\n            }\n            throw e\n          })\n          .then(() => {\n            throw e\n          })\n      })\n  }\n\n  private async doDownloadFile(tasks: Array<Operation>, fdList: Array<OpenedFile>): Promise<any> {\n    const oldFileFd = await open(this.options.oldFile, \"r\")\n    fdList.push({ descriptor: oldFileFd, path: this.options.oldFile })\n    const newFileFd = await open(this.options.newFile, \"w\")\n    fdList.push({ descriptor: newFileFd, path: this.options.newFile })\n    const fileOut = createWriteStream(this.options.newFile, { fd: newFileFd })\n    await new Promise((resolve, reject) => {\n      const streams: Array<any> = []\n\n      // Create our download info transformer if we have one\n      let downloadInfoTransform: ProgressDifferentialDownloadCallbackTransform | undefined = undefined\n      if (!this.options.isUseMultipleRangeRequest && this.options.onProgress) {\n        // TODO: Does not support multiple ranges (someone feel free to PR this!)\n        const expectedByteCounts: Array<number> = []\n        let grandTotalBytes = 0\n\n        for (const task of tasks) {\n          if (task.kind === OperationKind.DOWNLOAD) {\n            expectedByteCounts.push(task.end - task.start)\n            grandTotalBytes += task.end - task.start\n          }\n        }\n\n        const progressDifferentialDownloadInfo: ProgressDifferentialDownloadInfo = {\n          expectedByteCounts: expectedByteCounts,\n          grandTotal: grandTotalBytes,\n        }\n\n        downloadInfoTransform = new ProgressDifferentialDownloadCallbackTransform(progressDifferentialDownloadInfo, this.options.cancellationToken, this.options.onProgress)\n        streams.push(downloadInfoTransform)\n      }\n\n      const digestTransform = new DigestTransform(this.blockAwareFileInfo.sha512)\n      // to simply debug, do manual validation to allow file to be fully written\n      digestTransform.isValidateOnEnd = false\n      streams.push(digestTransform)\n\n      // noinspection JSArrowFunctionCanBeReplacedWithShorthand\n      fileOut.on(\"finish\", () => {\n        ;(fileOut.close as any)(() => {\n          // remove from fd list because closed successfully\n          fdList.splice(1, 1)\n          try {\n            digestTransform.validate()\n          } catch (e: any) {\n            reject(e)\n            return\n          }\n\n          resolve(undefined)\n        })\n      })\n\n      streams.push(fileOut)\n\n      let lastStream = null\n      for (const stream of streams) {\n        stream.on(\"error\", reject)\n        if (lastStream == null) {\n          lastStream = stream\n        } else {\n          lastStream = lastStream.pipe(stream)\n        }\n      }\n\n      const firstStream = streams[0]\n\n      let w: any\n      if (this.options.isUseMultipleRangeRequest) {\n        w = executeTasksUsingMultipleRangeRequests(this, tasks, firstStream, oldFileFd, reject)\n        w(0)\n        return\n      }\n\n      let downloadOperationCount = 0\n      let actualUrl: string | null = null\n      this.logger.info(`Differential download: ${this.options.newUrl}`)\n\n      const requestOptions = this.createRequestOptions()\n      ;(requestOptions as any).redirect = \"manual\"\n\n      w = (index: number): void => {\n        if (index >= tasks.length) {\n          if (this.fileMetadataBuffer != null) {\n            firstStream.write(this.fileMetadataBuffer)\n          }\n          firstStream.end()\n          return\n        }\n\n        const operation = tasks[index++]\n        if (operation.kind === OperationKind.COPY) {\n          // We are copying, let's not send status updates to the UI\n          if (downloadInfoTransform) {\n            downloadInfoTransform.beginFileCopy()\n          }\n\n          copyData(operation, firstStream, oldFileFd, reject, () => w(index))\n          return\n        }\n\n        const range = `bytes=${operation.start}-${operation.end - 1}`\n        requestOptions.headers!.range = range\n\n        this.logger?.debug?.(`download range: ${range}`)\n\n        // We are starting to download\n        if (downloadInfoTransform) {\n          downloadInfoTransform.beginRangeDownload()\n        }\n\n        const request = this.httpExecutor.createRequest(requestOptions, response => {\n          response.on(\"error\", reject)\n          response.on(\"aborted\", () => {\n            reject(new Error(\"response has been aborted by the server\"))\n          })\n          // Electron net handles redirects automatically, our NodeJS test server doesn't use redirects - so, we don't check 3xx codes.\n          if (response.statusCode >= 400) {\n            reject(createHttpError(response))\n          }\n\n          response.pipe(firstStream, {\n            end: false,\n          })\n          response.once(\"end\", () => {\n            // Pass on that we are downloading a segment\n            if (downloadInfoTransform) {\n              downloadInfoTransform.endRangeDownload()\n            }\n\n            if (++downloadOperationCount === 100) {\n              downloadOperationCount = 0\n              setTimeout(() => w(index), 1000)\n            } else {\n              w(index)\n            }\n          })\n        })\n        request.on(\"redirect\", (statusCode: number, method: string, redirectUrl: string) => {\n          this.logger.info(`Redirect to ${removeQuery(redirectUrl)}`)\n          actualUrl = redirectUrl\n          configureRequestUrl(new URL(actualUrl), requestOptions)\n          request.followRedirect()\n        })\n        this.httpExecutor.addErrorAndTimeoutHandlers(request, reject)\n        request.end()\n      }\n\n      w(0)\n    })\n  }\n\n  protected async readRemoteBytes(start: number, endInclusive: number): Promise<Buffer> {\n    const buffer = Buffer.allocUnsafe(endInclusive + 1 - start)\n    const requestOptions = this.createRequestOptions()\n    requestOptions.headers!.range = `bytes=${start}-${endInclusive}`\n    let position = 0\n    await this.request(requestOptions, chunk => {\n      chunk.copy(buffer, position)\n      position += chunk.length\n    })\n\n    if (position !== buffer.length) {\n      throw new Error(`Received data length ${position} is not equal to expected ${buffer.length}`)\n    }\n    return buffer\n  }\n\n  private request(requestOptions: RequestOptions, dataHandler: (chunk: Buffer) => void): Promise<void> {\n    return new Promise((resolve, reject) => {\n      const request = this.httpExecutor.createRequest(requestOptions, response => {\n        if (!checkIsRangesSupported(response, reject)) {\n          return\n        }\n\n        response.on(\"error\", reject)\n        response.on(\"aborted\", () => {\n          reject(new Error(\"response has been aborted by the server\"))\n        })\n\n        response.on(\"data\", dataHandler)\n        response.on(\"end\", () => resolve())\n      })\n      this.httpExecutor.addErrorAndTimeoutHandlers(request, reject)\n      request.end()\n    })\n  }\n}\n\nfunction formatBytes(value: number, symbol = \" KB\"): string {\n  return new Intl.NumberFormat(\"en\").format((value / 1024).toFixed(2) as any) + symbol\n}\n\n// safety\nfunction removeQuery(url: string): string {\n  const index = url.indexOf(\"?\")\n  return index < 0 ? url : url.substring(0, index)\n}\n\ninterface OpenedFile {\n  readonly descriptor: number\n  readonly path: string\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.FileWithEmbeddedBlockMapDifferentialDownloader = void 0;
const fs_extra_1 = require("fs-extra");
const DifferentialDownloader_1 = require("./DifferentialDownloader");
const zlib_1 = require("zlib");
class FileWithEmbeddedBlockMapDifferentialDownloader extends DifferentialDownloader_1.DifferentialDownloader {
    async download() {
        const packageInfo = this.blockAwareFileInfo;
        const fileSize = packageInfo.size;
        const offset = fileSize - (packageInfo.blockMapSize + 4);
        this.fileMetadataBuffer = await this.readRemoteBytes(offset, fileSize - 1);
        const newBlockMap = readBlockMap(this.fileMetadataBuffer.slice(0, this.fileMetadataBuffer.length - 4));
        await this.doDownload(await readEmbeddedBlockMapData(this.options.oldFile), newBlockMap);
    }
}
exports.FileWithEmbeddedBlockMapDifferentialDownloader = FileWithEmbeddedBlockMapDifferentialDownloader;
function readBlockMap(data) {
    return JSON.parse((0, zlib_1.inflateRawSync)(data).toString());
}
async function readEmbeddedBlockMapData(file) {
    const fd = await (0, fs_extra_1.open)(file, "r");
    try {
        const fileSize = (await (0, fs_extra_1.fstat)(fd)).size;
        const sizeBuffer = Buffer.allocUnsafe(4);
        await (0, fs_extra_1.read)(fd, sizeBuffer, 0, sizeBuffer.length, fileSize - sizeBuffer.length);
        const dataBuffer = Buffer.allocUnsafe(sizeBuffer.readUInt32BE(0));
        await (0, fs_extra_1.read)(fd, dataBuffer, 0, dataBuffer.length, fileSize - sizeBuffer.length - dataBuffer.length);
        await (0, fs_extra_1.close)(fd);
        return readBlockMap(dataBuffer);
    }
    catch (e) {
        await (0, fs_extra_1.close)(fd);
        throw e;
    }
}
{"version":3,"file":"FileWithEmbeddedBlockMapDifferentialDownloader.js","sourceRoot":"","sources":["../../src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts"],"names":[],"mappings":";;;AACA,uCAAmD;AACnD,qEAAiE;AACjE,+BAAqC;AAErC,MAAa,8CAA+C,SAAQ,+CAAsB;IACxF,KAAK,CAAC,QAAQ;QACZ,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAA;QAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAK,CAAA;QAClC,MAAM,MAAM,GAAG,QAAQ,GAAG,CAAC,WAAW,CAAC,YAAa,GAAG,CAAC,CAAC,CAAA;QACzD,IAAI,CAAC,kBAAkB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAA;QAC1E,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;QACtG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAA;IAC1F,CAAC;CACF;AATD,wGASC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;AACpD,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,IAAY;IAClD,MAAM,EAAE,GAAG,MAAM,IAAA,eAAI,EAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAChC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAA,gBAAK,EAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QACvC,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QACxC,MAAM,IAAA,eAAI,EAAC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;QAE9E,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QACjE,MAAM,IAAA,eAAI,EAAC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;QAClG,MAAM,IAAA,gBAAK,EAAC,EAAE,CAAC,CAAA;QAEf,OAAO,YAAY,CAAC,UAAU,CAAC,CAAA;IACjC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,MAAM,IAAA,gBAAK,EAAC,EAAE,CAAC,CAAA;QACf,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC","sourcesContent":["import { BlockMap } from \"builder-util-runtime/out/blockMapApi\"\nimport { close, fstat, open, read } from \"fs-extra\"\nimport { DifferentialDownloader } from \"./DifferentialDownloader\"\nimport { inflateRawSync } from \"zlib\"\n\nexport class FileWithEmbeddedBlockMapDifferentialDownloader extends DifferentialDownloader {\n  async download(): Promise<void> {\n    const packageInfo = this.blockAwareFileInfo\n    const fileSize = packageInfo.size!\n    const offset = fileSize - (packageInfo.blockMapSize! + 4)\n    this.fileMetadataBuffer = await this.readRemoteBytes(offset, fileSize - 1)\n    const newBlockMap = readBlockMap(this.fileMetadataBuffer.slice(0, this.fileMetadataBuffer.length - 4))\n    await this.doDownload(await readEmbeddedBlockMapData(this.options.oldFile), newBlockMap)\n  }\n}\n\nfunction readBlockMap(data: Buffer): BlockMap {\n  return JSON.parse(inflateRawSync(data).toString())\n}\n\nasync function readEmbeddedBlockMapData(file: string): Promise<BlockMap> {\n  const fd = await open(file, \"r\")\n  try {\n    const fileSize = (await fstat(fd)).size\n    const sizeBuffer = Buffer.allocUnsafe(4)\n    await read(fd, sizeBuffer, 0, sizeBuffer.length, fileSize - sizeBuffer.length)\n\n    const dataBuffer = Buffer.allocUnsafe(sizeBuffer.readUInt32BE(0))\n    await read(fd, dataBuffer, 0, dataBuffer.length, fileSize - sizeBuffer.length - dataBuffer.length)\n    await close(fd)\n\n    return readBlockMap(dataBuffer)\n  } catch (e: any) {\n    await close(fd)\n    throw e\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GenericDifferentialDownloader = void 0;
const DifferentialDownloader_1 = require("./DifferentialDownloader");
class GenericDifferentialDownloader extends DifferentialDownloader_1.DifferentialDownloader {
    download(oldBlockMap, newBlockMap) {
        return this.doDownload(oldBlockMap, newBlockMap);
    }
}
exports.GenericDifferentialDownloader = GenericDifferentialDownloader;
{"version":3,"file":"GenericDifferentialDownloader.js","sourceRoot":"","sources":["../../src/differentialDownloader/GenericDifferentialDownloader.ts"],"names":[],"mappings":";;;AACA,qEAAiE;AAEjE,MAAa,6BAA8B,SAAQ,+CAAsB;IACvE,QAAQ,CAAC,WAAqB,EAAE,WAAqB;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IAClD,CAAC;CACF;AAJD,sEAIC","sourcesContent":["import { BlockMap } from \"builder-util-runtime/out/blockMapApi\"\nimport { DifferentialDownloader } from \"./DifferentialDownloader\"\n\nexport class GenericDifferentialDownloader extends DifferentialDownloader {\n  download(oldBlockMap: BlockMap, newBlockMap: BlockMap): Promise<any> {\n    return this.doDownload(oldBlockMap, newBlockMap)\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProgressDifferentialDownloadCallbackTransform = void 0;
const stream_1 = require("stream");
var OperationKind;
(function (OperationKind) {
    OperationKind[OperationKind["COPY"] = 0] = "COPY";
    OperationKind[OperationKind["DOWNLOAD"] = 1] = "DOWNLOAD";
})(OperationKind || (OperationKind = {}));
class ProgressDifferentialDownloadCallbackTransform extends stream_1.Transform {
    constructor(progressDifferentialDownloadInfo, cancellationToken, onProgress) {
        super();
        this.progressDifferentialDownloadInfo = progressDifferentialDownloadInfo;
        this.cancellationToken = cancellationToken;
        this.onProgress = onProgress;
        this.start = Date.now();
        this.transferred = 0;
        this.delta = 0;
        this.expectedBytes = 0;
        this.index = 0;
        this.operationType = OperationKind.COPY;
        this.nextUpdate = this.start + 1000;
    }
    _transform(chunk, encoding, callback) {
        if (this.cancellationToken.cancelled) {
            callback(new Error("cancelled"), null);
            return;
        }
        // Don't send progress update when copying from disk
        if (this.operationType == OperationKind.COPY) {
            callback(null, chunk);
            return;
        }
        this.transferred += chunk.length;
        this.delta += chunk.length;
        const now = Date.now();
        if (now >= this.nextUpdate &&
            this.transferred !== this.expectedBytes /* will be emitted by endRangeDownload() */ &&
            this.transferred !== this.progressDifferentialDownloadInfo.grandTotal /* will be emitted on _flush */) {
            this.nextUpdate = now + 1000;
            this.onProgress({
                total: this.progressDifferentialDownloadInfo.grandTotal,
                delta: this.delta,
                transferred: this.transferred,
                percent: (this.transferred / this.progressDifferentialDownloadInfo.grandTotal) * 100,
                bytesPerSecond: Math.round(this.transferred / ((now - this.start) / 1000)),
            });
            this.delta = 0;
        }
        callback(null, chunk);
    }
    beginFileCopy() {
        this.operationType = OperationKind.COPY;
    }
    beginRangeDownload() {
        this.operationType = OperationKind.DOWNLOAD;
        this.expectedBytes += this.progressDifferentialDownloadInfo.expectedByteCounts[this.index++];
    }
    endRangeDownload() {
        // _flush() will doour final 100%
        if (this.transferred !== this.progressDifferentialDownloadInfo.grandTotal) {
            this.onProgress({
                total: this.progressDifferentialDownloadInfo.grandTotal,
                delta: this.delta,
                transferred: this.transferred,
                percent: (this.transferred / this.progressDifferentialDownloadInfo.grandTotal) * 100,
                bytesPerSecond: Math.round(this.transferred / ((Date.now() - this.start) / 1000)),
            });
        }
    }
    // Called when we are 100% done with the connection/download
    _flush(callback) {
        if (this.cancellationToken.cancelled) {
            callback(new Error("cancelled"));
            return;
        }
        this.onProgress({
            total: this.progressDifferentialDownloadInfo.grandTotal,
            delta: this.delta,
            transferred: this.transferred,
            percent: 100,
            bytesPerSecond: Math.round(this.transferred / ((Date.now() - this.start) / 1000)),
        });
        this.delta = 0;
        this.transferred = 0;
        callback(null);
    }
}
exports.ProgressDifferentialDownloadCallbackTransform = ProgressDifferentialDownloadCallbackTransform;
{"version":3,"file":"ProgressDifferentialDownloadCallbackTransform.js","sourceRoot":"","sources":["../../src/differentialDownloader/ProgressDifferentialDownloadCallbackTransform.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAGlC,IAAK,aAGJ;AAHD,WAAK,aAAa;IAChB,iDAAI,CAAA;IACJ,yDAAQ,CAAA;AACV,CAAC,EAHI,aAAa,KAAb,aAAa,QAGjB;AAeD,MAAa,6CAA8C,SAAQ,kBAAS;IAU1E,YACmB,gCAAkE,EAClE,iBAAoC,EACpC,UAAuC;QAExD,KAAK,EAAE,CAAA;QAJU,qCAAgC,GAAhC,gCAAgC,CAAkC;QAClE,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,eAAU,GAAV,UAAU,CAA6B;QAZlD,UAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAClB,gBAAW,GAAG,CAAC,CAAA;QACf,UAAK,GAAG,CAAC,CAAA;QACT,kBAAa,GAAG,CAAC,CAAA;QACjB,UAAK,GAAG,CAAC,CAAA;QACT,kBAAa,GAAG,aAAa,CAAC,IAAI,CAAA;QAElC,eAAU,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IAQtC,CAAC;IAED,UAAU,CAAC,KAAU,EAAE,QAAgB,EAAE,QAAa;QACpD,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;YACrC,QAAQ,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAA;YACtC,OAAM;QACR,CAAC;QAED,oDAAoD;QACpD,IAAI,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;YAC7C,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACrB,OAAM;QACR,CAAC;QAED,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAA;QAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAA;QAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,IACE,GAAG,IAAI,IAAI,CAAC,UAAU;YACtB,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,aAAa,CAAC,2CAA2C;YACnF,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC,+BAA+B,EACrG,CAAC;YACD,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,IAAI,CAAA;YAE5B,IAAI,CAAC,UAAU,CAAC;gBACd,KAAK,EAAE,IAAI,CAAC,gCAAgC,CAAC,UAAU;gBACvD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC,GAAG,GAAG;gBACpF,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;aAC3E,CAAC,CAAA;YACF,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;QAChB,CAAC;QAED,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACvB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,IAAI,CAAA;IACzC,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAA;QAE3C,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,gCAAgC,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IAC9F,CAAC;IAED,gBAAgB;QACd,iCAAiC;QACjC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,gCAAgC,CAAC,UAAU,EAAE,CAAC;YAC1E,IAAI,CAAC,UAAU,CAAC;gBACd,KAAK,EAAE,IAAI,CAAC,gCAAgC,CAAC,UAAU;gBACvD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC,GAAG,GAAG;gBACpF,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;aAClF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,MAAM,CAAC,QAAa;QAClB,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;YACrC,QAAQ,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAA;YAChC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,UAAU,CAAC;YACd,KAAK,EAAE,IAAI,CAAC,gCAAgC,CAAC,UAAU;YACvD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,GAAG;YACZ,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;SAClF,CAAC,CAAA;QACF,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;QACd,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;QAEpB,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;CACF;AAhGD,sGAgGC","sourcesContent":["import { Transform } from \"stream\"\nimport { CancellationToken } from \"builder-util-runtime\"\n\nenum OperationKind {\n  COPY,\n  DOWNLOAD,\n}\n\nexport interface ProgressInfo {\n  total: number\n  delta: number\n  transferred: number\n  percent: number\n  bytesPerSecond: number\n}\n\nexport interface ProgressDifferentialDownloadInfo {\n  expectedByteCounts: Array<number>\n  grandTotal: number\n}\n\nexport class ProgressDifferentialDownloadCallbackTransform extends Transform {\n  private start = Date.now()\n  private transferred = 0\n  private delta = 0\n  private expectedBytes = 0\n  private index = 0\n  private operationType = OperationKind.COPY\n\n  private nextUpdate = this.start + 1000\n\n  constructor(\n    private readonly progressDifferentialDownloadInfo: ProgressDifferentialDownloadInfo,\n    private readonly cancellationToken: CancellationToken,\n    private readonly onProgress: (info: ProgressInfo) => any\n  ) {\n    super()\n  }\n\n  _transform(chunk: any, encoding: string, callback: any) {\n    if (this.cancellationToken.cancelled) {\n      callback(new Error(\"cancelled\"), null)\n      return\n    }\n\n    // Don't send progress update when copying from disk\n    if (this.operationType == OperationKind.COPY) {\n      callback(null, chunk)\n      return\n    }\n\n    this.transferred += chunk.length\n    this.delta += chunk.length\n\n    const now = Date.now()\n    if (\n      now >= this.nextUpdate &&\n      this.transferred !== this.expectedBytes /* will be emitted by endRangeDownload() */ &&\n      this.transferred !== this.progressDifferentialDownloadInfo.grandTotal /* will be emitted on _flush */\n    ) {\n      this.nextUpdate = now + 1000\n\n      this.onProgress({\n        total: this.progressDifferentialDownloadInfo.grandTotal,\n        delta: this.delta,\n        transferred: this.transferred,\n        percent: (this.transferred / this.progressDifferentialDownloadInfo.grandTotal) * 100,\n        bytesPerSecond: Math.round(this.transferred / ((now - this.start) / 1000)),\n      })\n      this.delta = 0\n    }\n\n    callback(null, chunk)\n  }\n\n  beginFileCopy(): void {\n    this.operationType = OperationKind.COPY\n  }\n\n  beginRangeDownload(): void {\n    this.operationType = OperationKind.DOWNLOAD\n\n    this.expectedBytes += this.progressDifferentialDownloadInfo.expectedByteCounts[this.index++]\n  }\n\n  endRangeDownload(): void {\n    // _flush() will doour final 100%\n    if (this.transferred !== this.progressDifferentialDownloadInfo.grandTotal) {\n      this.onProgress({\n        total: this.progressDifferentialDownloadInfo.grandTotal,\n        delta: this.delta,\n        transferred: this.transferred,\n        percent: (this.transferred / this.progressDifferentialDownloadInfo.grandTotal) * 100,\n        bytesPerSecond: Math.round(this.transferred / ((Date.now() - this.start) / 1000)),\n      })\n    }\n  }\n\n  // Called when we are 100% done with the connection/download\n  _flush(callback: any): void {\n    if (this.cancellationToken.cancelled) {\n      callback(new Error(\"cancelled\"))\n      return\n    }\n\n    this.onProgress({\n      total: this.progressDifferentialDownloadInfo.grandTotal,\n      delta: this.delta,\n      transferred: this.transferred,\n      percent: 100,\n      bytesPerSecond: Math.round(this.transferred / ((Date.now() - this.start) / 1000)),\n    })\n    this.delta = 0\n    this.transferred = 0\n\n    callback(null)\n  }\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.OperationKind = void 0;
exports.computeOperations = computeOperations;
var OperationKind;
(function (OperationKind) {
    OperationKind[OperationKind["COPY"] = 0] = "COPY";
    OperationKind[OperationKind["DOWNLOAD"] = 1] = "DOWNLOAD";
})(OperationKind || (exports.OperationKind = OperationKind = {}));
function computeOperations(oldBlockMap, newBlockMap, logger) {
    const nameToOldBlocks = buildBlockFileMap(oldBlockMap.files);
    const nameToNewBlocks = buildBlockFileMap(newBlockMap.files);
    let lastOperation = null;
    // for now only one file is supported in block map
    const blockMapFile = newBlockMap.files[0];
    const operations = [];
    const name = blockMapFile.name;
    const oldEntry = nameToOldBlocks.get(name);
    if (oldEntry == null) {
        // new file (unrealistic case for now, because in any case both blockmap contain the only file named as "file")
        throw new Error(`no file ${name} in old blockmap`);
    }
    const newFile = nameToNewBlocks.get(name);
    let changedBlockCount = 0;
    const { checksumToOffset: checksumToOldOffset, checksumToOldSize } = buildChecksumMap(nameToOldBlocks.get(name), oldEntry.offset, logger);
    let newOffset = blockMapFile.offset;
    for (let i = 0; i < newFile.checksums.length; newOffset += newFile.sizes[i], i++) {
        const blockSize = newFile.sizes[i];
        const checksum = newFile.checksums[i];
        let oldOffset = checksumToOldOffset.get(checksum);
        if (oldOffset != null && checksumToOldSize.get(checksum) !== blockSize) {
            logger.warn(`Checksum ("${checksum}") matches, but size differs (old: ${checksumToOldSize.get(checksum)}, new: ${blockSize})`);
            oldOffset = undefined;
        }
        if (oldOffset === undefined) {
            // download data from new file
            changedBlockCount++;
            if (lastOperation != null && lastOperation.kind === OperationKind.DOWNLOAD && lastOperation.end === newOffset) {
                lastOperation.end += blockSize;
            }
            else {
                lastOperation = {
                    kind: OperationKind.DOWNLOAD,
                    start: newOffset,
                    end: newOffset + blockSize,
                    // oldBlocks: null,
                };
                validateAndAdd(lastOperation, operations, checksum, i);
            }
        }
        else {
            // reuse data from old file
            if (lastOperation != null && lastOperation.kind === OperationKind.COPY && lastOperation.end === oldOffset) {
                lastOperation.end += blockSize;
                // lastOperation.oldBlocks!!.push(checksum)
            }
            else {
                lastOperation = {
                    kind: OperationKind.COPY,
                    start: oldOffset,
                    end: oldOffset + blockSize,
                    // oldBlocks: [checksum]
                };
                validateAndAdd(lastOperation, operations, checksum, i);
            }
        }
    }
    if (changedBlockCount > 0) {
        logger.info(`File${blockMapFile.name === "file" ? "" : " " + blockMapFile.name} has ${changedBlockCount} changed blocks`);
    }
    return operations;
}
const isValidateOperationRange = process.env["DIFFERENTIAL_DOWNLOAD_PLAN_BUILDER_VALIDATE_RANGES"] === "true";
function validateAndAdd(operation, operations, checksum, index) {
    if (isValidateOperationRange && operations.length !== 0) {
        const lastOperation = operations[operations.length - 1];
        if (lastOperation.kind === operation.kind && operation.start < lastOperation.end && operation.start > lastOperation.start) {
            const min = [lastOperation.start, lastOperation.end, operation.start, operation.end].reduce((p, v) => (p < v ? p : v));
            throw new Error(`operation (block index: ${index}, checksum: ${checksum}, kind: ${OperationKind[operation.kind]}) overlaps previous operation (checksum: ${checksum}):\n` +
                `abs: ${lastOperation.start} until ${lastOperation.end} and ${operation.start} until ${operation.end}\n` +
                `rel: ${lastOperation.start - min} until ${lastOperation.end - min} and ${operation.start - min} until ${operation.end - min}`);
        }
    }
    operations.push(operation);
}
function buildChecksumMap(file, fileOffset, logger) {
    const checksumToOffset = new Map();
    const checksumToSize = new Map();
    let offset = fileOffset;
    for (let i = 0; i < file.checksums.length; i++) {
        const checksum = file.checksums[i];
        const size = file.sizes[i];
        const existing = checksumToSize.get(checksum);
        if (existing === undefined) {
            checksumToOffset.set(checksum, offset);
            checksumToSize.set(checksum, size);
        }
        else if (logger.debug != null) {
            const sizeExplanation = existing === size ? "(same size)" : `(size: ${existing}, this size: ${size})`;
            logger.debug(`${checksum} duplicated in blockmap ${sizeExplanation}, it doesn't lead to broken differential downloader, just corresponding block will be skipped)`);
        }
        offset += size;
    }
    return { checksumToOffset, checksumToOldSize: checksumToSize };
}
function buildBlockFileMap(list) {
    const result = new Map();
    for (const item of list) {
        result.set(item.name, item);
    }
    return result;
}
{"version":3,"file":"downloadPlanBuilder.js","sourceRoot":"","sources":["../../src/differentialDownloader/downloadPlanBuilder.ts"],"names":[],"mappings":";;;AAoBA,8CAmEC;AApFD,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,iDAAI,CAAA;IACJ,yDAAQ,CAAA;AACV,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAcD,SAAgB,iBAAiB,CAAC,WAAqB,EAAE,WAAqB,EAAE,MAAc;IAC5F,MAAM,eAAe,GAAG,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IAC5D,MAAM,eAAe,GAAG,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IAE5D,IAAI,aAAa,GAAqB,IAAI,CAAA;IAE1C,kDAAkD;IAClD,MAAM,YAAY,GAAqC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3E,MAAM,UAAU,GAAqB,EAAE,CAAA;IACvC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAA;IAC9B,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC1C,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,+GAA+G;QAC/G,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,kBAAkB,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;IAC1C,IAAI,iBAAiB,GAAG,CAAC,CAAA;IAEzB,MAAM,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,GAAG,gBAAgB,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE1I,IAAI,SAAS,GAAG,YAAY,CAAC,MAAM,CAAA;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACjF,MAAM,SAAS,GAAW,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACrC,IAAI,SAAS,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjD,IAAI,SAAS,IAAI,IAAI,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;YACvE,MAAM,CAAC,IAAI,CAAC,cAAc,QAAQ,sCAAsC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,SAAS,GAAG,CAAC,CAAA;YAC9H,SAAS,GAAG,SAAS,CAAA;QACvB,CAAC;QAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,8BAA8B;YAC9B,iBAAiB,EAAE,CAAA;YAEnB,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,IAAI,KAAK,aAAa,CAAC,QAAQ,IAAI,aAAa,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC9G,aAAa,CAAC,GAAG,IAAI,SAAS,CAAA;YAChC,CAAC;iBAAM,CAAC;gBACN,aAAa,GAAG;oBACd,IAAI,EAAE,aAAa,CAAC,QAAQ;oBAC5B,KAAK,EAAE,SAAS;oBAChB,GAAG,EAAE,SAAS,GAAG,SAAS;oBAC1B,mBAAmB;iBACpB,CAAA;gBACD,cAAc,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,2BAA2B;YAC3B,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,IAAI,aAAa,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC1G,aAAa,CAAC,GAAG,IAAI,SAAS,CAAA;gBAC9B,2CAA2C;YAC7C,CAAC;iBAAM,CAAC;gBACN,aAAa,GAAG;oBACd,IAAI,EAAE,aAAa,CAAC,IAAI;oBACxB,KAAK,EAAE,SAAS;oBAChB,GAAG,EAAE,SAAS,GAAG,SAAS;oBAC1B,wBAAwB;iBACzB,CAAA;gBACD,cAAc,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,OAAO,YAAY,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,QAAQ,iBAAiB,iBAAiB,CAAC,CAAA;IAC3H,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,KAAK,MAAM,CAAA;AAE7G,SAAS,cAAc,CAAC,SAAoB,EAAE,UAA4B,EAAE,QAAgB,EAAE,KAAa;IACzG,IAAI,wBAAwB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACvD,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,IAAI,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;YAC1H,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACtH,MAAM,IAAI,KAAK,CACb,2BAA2B,KAAK,eAAe,QAAQ,WAAW,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,4CAA4C,QAAQ,MAAM;gBACvJ,QAAQ,aAAa,CAAC,KAAK,UAAU,aAAa,CAAC,GAAG,QAAQ,SAAS,CAAC,KAAK,UAAU,SAAS,CAAC,GAAG,IAAI;gBACxG,QAAQ,aAAa,CAAC,KAAK,GAAG,GAAG,UAAU,aAAa,CAAC,GAAG,GAAG,GAAG,QAAQ,SAAS,CAAC,KAAK,GAAG,GAAG,UAAU,SAAS,CAAC,GAAG,GAAG,GAAG,EAAE,CACjI,CAAA;QACH,CAAC;IACH,CAAC;IACD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC5B,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAkB,EAAE,UAAkB,EAAE,MAAc;IAC9E,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAA;IAClD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAA;IAChD,IAAI,MAAM,GAAG,UAAU,CAAA;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAE1B,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC7C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YACtC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACpC,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YAChC,MAAM,eAAe,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,QAAQ,gBAAgB,IAAI,GAAG,CAAA;YACrG,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,2BAA2B,eAAe,gGAAgG,CAAC,CAAA;QACrK,CAAC;QACD,MAAM,IAAI,IAAI,CAAA;IAChB,CAAC;IACD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAA;AAChE,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAyB;IAClD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAA;IAC9C,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC","sourcesContent":["import { BlockMap, BlockMapFile } from \"builder-util-runtime/out/blockMapApi\"\nimport { Logger } from \"../types\"\n\nexport enum OperationKind {\n  COPY,\n  DOWNLOAD,\n}\n\nexport interface Operation {\n  kind: OperationKind\n\n  // inclusive\n  start: number\n  // exclusive\n  end: number\n\n  // debug only\n  // oldBlocks: Array<string> | null\n}\n\nexport function computeOperations(oldBlockMap: BlockMap, newBlockMap: BlockMap, logger: Logger): Array<Operation> {\n  const nameToOldBlocks = buildBlockFileMap(oldBlockMap.files)\n  const nameToNewBlocks = buildBlockFileMap(newBlockMap.files)\n\n  let lastOperation: Operation | null = null\n\n  // for now only one file is supported in block map\n  const blockMapFile: { name: string; offset: number } = newBlockMap.files[0]\n  const operations: Array<Operation> = []\n  const name = blockMapFile.name\n  const oldEntry = nameToOldBlocks.get(name)\n  if (oldEntry == null) {\n    // new file (unrealistic case for now, because in any case both blockmap contain the only file named as \"file\")\n    throw new Error(`no file ${name} in old blockmap`)\n  }\n\n  const newFile = nameToNewBlocks.get(name)!\n  let changedBlockCount = 0\n\n  const { checksumToOffset: checksumToOldOffset, checksumToOldSize } = buildChecksumMap(nameToOldBlocks.get(name)!, oldEntry.offset, logger)\n\n  let newOffset = blockMapFile.offset\n  for (let i = 0; i < newFile.checksums.length; newOffset += newFile.sizes[i], i++) {\n    const blockSize: number = newFile.sizes[i]\n    const checksum = newFile.checksums[i]\n    let oldOffset = checksumToOldOffset.get(checksum)\n    if (oldOffset != null && checksumToOldSize.get(checksum) !== blockSize) {\n      logger.warn(`Checksum (\"${checksum}\") matches, but size differs (old: ${checksumToOldSize.get(checksum)}, new: ${blockSize})`)\n      oldOffset = undefined\n    }\n\n    if (oldOffset === undefined) {\n      // download data from new file\n      changedBlockCount++\n\n      if (lastOperation != null && lastOperation.kind === OperationKind.DOWNLOAD && lastOperation.end === newOffset) {\n        lastOperation.end += blockSize\n      } else {\n        lastOperation = {\n          kind: OperationKind.DOWNLOAD,\n          start: newOffset,\n          end: newOffset + blockSize,\n          // oldBlocks: null,\n        }\n        validateAndAdd(lastOperation, operations, checksum, i)\n      }\n    } else {\n      // reuse data from old file\n      if (lastOperation != null && lastOperation.kind === OperationKind.COPY && lastOperation.end === oldOffset) {\n        lastOperation.end += blockSize\n        // lastOperation.oldBlocks!!.push(checksum)\n      } else {\n        lastOperation = {\n          kind: OperationKind.COPY,\n          start: oldOffset,\n          end: oldOffset + blockSize,\n          // oldBlocks: [checksum]\n        }\n        validateAndAdd(lastOperation, operations, checksum, i)\n      }\n    }\n  }\n\n  if (changedBlockCount > 0) {\n    logger.info(`File${blockMapFile.name === \"file\" ? \"\" : \" \" + blockMapFile.name} has ${changedBlockCount} changed blocks`)\n  }\n  return operations\n}\n\nconst isValidateOperationRange = process.env[\"DIFFERENTIAL_DOWNLOAD_PLAN_BUILDER_VALIDATE_RANGES\"] === \"true\"\n\nfunction validateAndAdd(operation: Operation, operations: Array<Operation>, checksum: string, index: number): void {\n  if (isValidateOperationRange && operations.length !== 0) {\n    const lastOperation = operations[operations.length - 1]\n    if (lastOperation.kind === operation.kind && operation.start < lastOperation.end && operation.start > lastOperation.start) {\n      const min = [lastOperation.start, lastOperation.end, operation.start, operation.end].reduce((p, v) => (p < v ? p : v))\n      throw new Error(\n        `operation (block index: ${index}, checksum: ${checksum}, kind: ${OperationKind[operation.kind]}) overlaps previous operation (checksum: ${checksum}):\\n` +\n          `abs: ${lastOperation.start} until ${lastOperation.end} and ${operation.start} until ${operation.end}\\n` +\n          `rel: ${lastOperation.start - min} until ${lastOperation.end - min} and ${operation.start - min} until ${operation.end - min}`\n      )\n    }\n  }\n  operations.push(operation)\n}\n\nfunction buildChecksumMap(file: BlockMapFile, fileOffset: number, logger: Logger) {\n  const checksumToOffset = new Map<string, number>()\n  const checksumToSize = new Map<string, number>()\n  let offset = fileOffset\n  for (let i = 0; i < file.checksums.length; i++) {\n    const checksum = file.checksums[i]\n    const size = file.sizes[i]\n\n    const existing = checksumToSize.get(checksum)\n    if (existing === undefined) {\n      checksumToOffset.set(checksum, offset)\n      checksumToSize.set(checksum, size)\n    } else if (logger.debug != null) {\n      const sizeExplanation = existing === size ? \"(same size)\" : `(size: ${existing}, this size: ${size})`\n      logger.debug(`${checksum} duplicated in blockmap ${sizeExplanation}, it doesn't lead to broken differential downloader, just corresponding block will be skipped)`)\n    }\n    offset += size\n  }\n  return { checksumToOffset, checksumToOldSize: checksumToSize }\n}\n\nfunction buildBlockFileMap(list: Array<BlockMapFile>): Map<string, BlockMapFile> {\n  const result = new Map<string, BlockMapFile>()\n  for (const item of list) {\n    result.set(item.name, item)\n  }\n  return result\n}\n"]}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.executeTasksUsingMultipleRangeRequests = executeTasksUsingMultipleRangeRequests;
exports.checkIsRangesSupported = checkIsRangesSupported;
const builder_util_runtime_1 = require("builder-util-runtime");
const DataSplitter_1 = require("./DataSplitter");
const downloadPlanBuilder_1 = require("./downloadPlanBuilder");
function executeTasksUsingMultipleRangeRequests(differentialDownloader, tasks, out, oldFileFd, reject) {
    const w = (taskOffset) => {
        if (taskOffset >= tasks.length) {
            if (differentialDownloader.fileMetadataBuffer != null) {
                out.write(differentialDownloader.fileMetadataBuffer);
            }
            out.end();
            return;
        }
        const nextOffset = taskOffset + 1000;
        doExecuteTasks(differentialDownloader, {
            tasks,
            start: taskOffset,
            end: Math.min(tasks.length, nextOffset),
            oldFileFd,
        }, out, () => w(nextOffset), reject);
    };
    return w;
}
function doExecuteTasks(differentialDownloader, options, out, resolve, reject) {
    let ranges = "bytes=";
    let partCount = 0;
    const partIndexToTaskIndex = new Map();
    const partIndexToLength = [];
    for (let i = options.start; i < options.end; i++) {
        const task = options.tasks[i];
        if (task.kind === downloadPlanBuilder_1.OperationKind.DOWNLOAD) {
            ranges += `${task.start}-${task.end - 1}, `;
            partIndexToTaskIndex.set(partCount, i);
            partCount++;
            partIndexToLength.push(task.end - task.start);
        }
    }
    if (partCount <= 1) {
        // the only remote range - copy
        const w = (index) => {
            if (index >= options.end) {
                resolve();
                return;
            }
            const task = options.tasks[index++];
            if (task.kind === downloadPlanBuilder_1.OperationKind.COPY) {
                (0, DataSplitter_1.copyData)(task, out, options.oldFileFd, reject, () => w(index));
            }
            else {
                const requestOptions = differentialDownloader.createRequestOptions();
                requestOptions.headers.Range = `bytes=${task.start}-${task.end - 1}`;
                const request = differentialDownloader.httpExecutor.createRequest(requestOptions, response => {
                    if (!checkIsRangesSupported(response, reject)) {
                        return;
                    }
                    response.pipe(out, {
                        end: false,
                    });
                    response.once("end", () => w(index));
                });
                differentialDownloader.httpExecutor.addErrorAndTimeoutHandlers(request, reject);
                request.end();
            }
        };
        w(options.start);
        return;
    }
    const requestOptions = differentialDownloader.createRequestOptions();
    requestOptions.headers.Range = ranges.substring(0, ranges.length - 2);
    const request = differentialDownloader.httpExecutor.createRequest(requestOptions, response => {
        if (!checkIsRangesSupported(response, reject)) {
            return;
        }
        const contentType = (0, builder_util_runtime_1.safeGetHeader)(response, "content-type");
        const m = /^multipart\/.+?(?:; boundary=(?:(?:"(.+)")|(?:([^\s]+))))$/i.exec(contentType);
        if (m == null) {
            reject(new Error(`Content-Type "multipart/byteranges" is expected, but got "${contentType}"`));
            return;
        }
        const dicer = new DataSplitter_1.DataSplitter(out, options, partIndexToTaskIndex, m[1] || m[2], partIndexToLength, resolve);
        dicer.on("error", reject);
        response.pipe(dicer);
        response.on("end", () => {
            setTimeout(() => {
                request.abort();
                reject(new Error("Response ends without calling any handlers"));
            }, 10000);
        });
    });
    differentialDownloader.httpExecutor.addErrorAndTimeoutHandlers(request, reject);
    request.end();
}
function checkIsRangesSupported(response, reject) {
    // Electron net handles redirects automatically, our NodeJS test server doesn't use redirects - so, we don't check 3xx codes.
    if (response.statusCode >= 400) {
        reject((0, builder_util_runtime_1.createHttpError)(response));
        return false;
    }
    if (response.statusCode !== 206) {
        const acceptRanges = (0, builder_util_runtime_1.safeGetHeader)(response, "accept-ranges");
        if (acceptRanges == null || acceptRanges === "none") {
            reject(new Error(`Server doesn't support Accept-Ranges (response code ${response.statusCode})`));
            return false;
        }
    }
    return true;
}
{"version":3,"file":"multipleRangeDownloader.js","sourceRoot":"","sources":["../../src/differentialDownloader/multipleRangeDownloader.ts"],"names":[],"mappings":";;AAOA,wFA+BC;AAgFD,wDAeC;AArID,+DAAqE;AAGrE,iDAAyE;AAEzE,+DAAgE;AAEhE,SAAgB,sCAAsC,CACpD,sBAA8C,EAC9C,KAAuB,EACvB,GAAa,EACb,SAAiB,EACjB,MAA8B;IAE9B,MAAM,CAAC,GAAG,CAAC,UAAkB,EAAQ,EAAE;QACrC,IAAI,UAAU,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,sBAAsB,CAAC,kBAAkB,IAAI,IAAI,EAAE,CAAC;gBACtD,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAA;YACtD,CAAC;YACD,GAAG,CAAC,GAAG,EAAE,CAAA;YACT,OAAM;QACR,CAAC;QAED,MAAM,UAAU,GAAG,UAAU,GAAG,IAAI,CAAA;QACpC,cAAc,CACZ,sBAAsB,EACtB;YACE,KAAK;YACL,KAAK,EAAE,UAAU;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;YACvC,SAAS;SACV,EACD,GAAG,EACH,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EACnB,MAAM,CACP,CAAA;IACH,CAAC,CAAA;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED,SAAS,cAAc,CAAC,sBAA8C,EAAE,OAAyB,EAAE,GAAa,EAAE,OAAmB,EAAE,MAA8B;IACnK,IAAI,MAAM,GAAG,QAAQ,CAAA;IACrB,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAA;IACtD,MAAM,iBAAiB,GAAkB,EAAE,CAAA;IAC3C,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAa,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAA;YAC3C,oBAAoB,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;YACtC,SAAS,EAAE,CAAA;YACX,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,+BAA+B;QAC/B,MAAM,CAAC,GAAG,CAAC,KAAa,EAAQ,EAAE;YAChC,IAAI,KAAK,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBACzB,OAAO,EAAE,CAAA;gBACT,OAAM;YACR,CAAC;YAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;YAEnC,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAa,CAAC,IAAI,EAAE,CAAC;gBACrC,IAAA,uBAAQ,EAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;YAChE,CAAC;iBAAM,CAAC;gBACN,MAAM,cAAc,GAAG,sBAAsB,CAAC,oBAAoB,EAAE,CAAA;gBACpE,cAAc,CAAC,OAAQ,CAAC,KAAK,GAAG,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAA;gBACrE,MAAM,OAAO,GAAG,sBAAsB,CAAC,YAAY,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE;oBAC3F,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;wBAC9C,OAAM;oBACR,CAAC;oBAED,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE;wBACjB,GAAG,EAAE,KAAK;qBACX,CAAC,CAAA;oBACF,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;gBACtC,CAAC,CAAC,CAAA;gBACF,sBAAsB,CAAC,YAAY,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBAC/E,OAAO,CAAC,GAAG,EAAE,CAAA;YACf,CAAC;QACH,CAAC,CAAA;QAED,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,OAAM;IACR,CAAC;IAED,MAAM,cAAc,GAAG,sBAAsB,CAAC,oBAAoB,EAAE,CAAA;IACpE,cAAc,CAAC,OAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACtE,MAAM,OAAO,GAAG,sBAAsB,CAAC,YAAY,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE;QAC3F,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YAC9C,OAAM;QACR,CAAC;QAED,MAAM,WAAW,GAAG,IAAA,oCAAa,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;QAC3D,MAAM,CAAC,GAAG,6DAA6D,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACzF,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,KAAK,CAAC,6DAA6D,WAAW,GAAG,CAAC,CAAC,CAAA;YAC9F,OAAM;QACR,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,2BAAY,CAAC,GAAG,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAA;QAC5G,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACzB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAEpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACtB,UAAU,CAAC,GAAG,EAAE;gBACd,OAAO,CAAC,KAAK,EAAE,CAAA;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAA;YACjE,CAAC,EAAE,KAAK,CAAC,CAAA;QACX,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,sBAAsB,CAAC,YAAY,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC/E,OAAO,CAAC,GAAG,EAAE,CAAA;AACf,CAAC;AAED,SAAgB,sBAAsB,CAAC,QAAyB,EAAE,MAA8B;IAC9F,6HAA6H;IAC7H,IAAI,QAAQ,CAAC,UAAW,IAAI,GAAG,EAAE,CAAC;QAChC,MAAM,CAAC,IAAA,sCAAe,EAAC,QAAQ,CAAC,CAAC,CAAA;QACjC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,IAAA,oCAAa,EAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;QAC7D,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,KAAK,CAAC,uDAAuD,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA;YAChG,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["import { createHttpError, safeGetHeader } from \"builder-util-runtime\"\nimport { IncomingMessage } from \"http\"\nimport { Writable } from \"stream\"\nimport { copyData, DataSplitter, PartListDataTask } from \"./DataSplitter\"\nimport { DifferentialDownloader } from \"./DifferentialDownloader\"\nimport { Operation, OperationKind } from \"./downloadPlanBuilder\"\n\nexport function executeTasksUsingMultipleRangeRequests(\n  differentialDownloader: DifferentialDownloader,\n  tasks: Array<Operation>,\n  out: Writable,\n  oldFileFd: number,\n  reject: (error: Error) => void\n): (taskOffset: number) => void {\n  const w = (taskOffset: number): void => {\n    if (taskOffset >= tasks.length) {\n      if (differentialDownloader.fileMetadataBuffer != null) {\n        out.write(differentialDownloader.fileMetadataBuffer)\n      }\n      out.end()\n      return\n    }\n\n    const nextOffset = taskOffset + 1000\n    doExecuteTasks(\n      differentialDownloader,\n      {\n        tasks,\n        start: taskOffset,\n        end: Math.min(tasks.length, nextOffset),\n        oldFileFd,\n      },\n      out,\n      () => w(nextOffset),\n      reject\n    )\n  }\n  return w\n}\n\nfunction doExecuteTasks(differentialDownloader: DifferentialDownloader, options: PartListDataTask, out: Writable, resolve: () => void, reject: (error: Error) => void): void {\n  let ranges = \"bytes=\"\n  let partCount = 0\n  const partIndexToTaskIndex = new Map<number, number>()\n  const partIndexToLength: Array<number> = []\n  for (let i = options.start; i < options.end; i++) {\n    const task = options.tasks[i]\n    if (task.kind === OperationKind.DOWNLOAD) {\n      ranges += `${task.start}-${task.end - 1}, `\n      partIndexToTaskIndex.set(partCount, i)\n      partCount++\n      partIndexToLength.push(task.end - task.start)\n    }\n  }\n\n  if (partCount <= 1) {\n    // the only remote range - copy\n    const w = (index: number): void => {\n      if (index >= options.end) {\n        resolve()\n        return\n      }\n\n      const task = options.tasks[index++]\n\n      if (task.kind === OperationKind.COPY) {\n        copyData(task, out, options.oldFileFd, reject, () => w(index))\n      } else {\n        const requestOptions = differentialDownloader.createRequestOptions()\n        requestOptions.headers!.Range = `bytes=${task.start}-${task.end - 1}`\n        const request = differentialDownloader.httpExecutor.createRequest(requestOptions, response => {\n          if (!checkIsRangesSupported(response, reject)) {\n            return\n          }\n\n          response.pipe(out, {\n            end: false,\n          })\n          response.once(\"end\", () => w(index))\n        })\n        differentialDownloader.httpExecutor.addErrorAndTimeoutHandlers(request, reject)\n        request.end()\n      }\n    }\n\n    w(options.start)\n    return\n  }\n\n  const requestOptions = differentialDownloader.createRequestOptions()\n  requestOptions.headers!.Range = ranges.substring(0, ranges.length - 2)\n  const request = differentialDownloader.httpExecutor.createRequest(requestOptions, response => {\n    if (!checkIsRangesSupported(response, reject)) {\n      return\n    }\n\n    const contentType = safeGetHeader(response, \"content-type\")\n    const m = /^multipart\\/.+?(?:; boundary=(?:(?:\"(.+)\")|(?:([^\\s]+))))$/i.exec(contentType)\n    if (m == null) {\n      reject(new Error(`Content-Type \"multipart/byteranges\" is expected, but got \"${contentType}\"`))\n      return\n    }\n\n    const dicer = new DataSplitter(out, options, partIndexToTaskIndex, m[1] || m[2], partIndexToLength, resolve)\n    dicer.on(\"error\", reject)\n    response.pipe(dicer)\n\n    response.on(\"end\", () => {\n      setTimeout(() => {\n        request.abort()\n        reject(new Error(\"Response ends without calling any handlers\"))\n      }, 10000)\n    })\n  })\n  differentialDownloader.httpExecutor.addErrorAndTimeoutHandlers(request, reject)\n  request.end()\n}\n\nexport function checkIsRangesSupported(response: IncomingMessage, reject: (error: Error) => void): boolean {\n  // Electron net handles redirects automatically, our NodeJS test server doesn't use redirects - so, we don't check 3xx codes.\n  if (response.statusCode! >= 400) {\n    reject(createHttpError(response))\n    return false\n  }\n\n  if (response.statusCode !== 206) {\n    const acceptRanges = safeGetHeader(response, \"accept-ranges\")\n    if (acceptRanges == null || acceptRanges === \"none\") {\n      reject(new Error(`Server doesn't support Accept-Ranges (response code ${response.statusCode})`))\n      return false\n    }\n  }\n  return true\n}\n"]}
The MIT License (MIT)

Copyright (c) 2016 Paolo Fragomeni <http://www.github.com/0x00a> and Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy 
of this software and associated documentation files (the 'Software'), to deal 
in the Software without restriction, including without limitation the rights 
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
module.exports = require('./lib/eventemitter2');
{
  "name": "eventemitter2",
  "version": "6.4.9",
  "description": "A feature-rich Node.js event emitter implementation with namespaces, wildcards, TTL, async listeners and browser/worker support.",
  "author": "hij1nx <paolo@async.ly> http://twitter.com/hij1nx",
  "license": "MIT",
  "repository": "git://github.com/hij1nx/EventEmitter2.git",
  "devDependencies": {
    "benchmark": "^2.1.4",
    "bluebird": "^3.7.2",
    "coveralls": "^3.0.11",
    "mocha": "^7.1.1",
    "nodeunit": "*",
    "nyc": "^15.0.0"
  },
  "main": "./lib/eventemitter2.js",
  "files": [
    "lib/eventemitter2.js",
    "index.js",
    "eventemitter2.d.ts"
  ],
  "typings": "./eventemitter2.d.ts",
  "typescript": {
    "definition": "./eventemitter2.d.ts"
  }
}/*!
 * EventEmitter2
 * https://github.com/hij1nx/EventEmitter2
 *
 * Copyright (c) 2013 hij1nx
 * Licensed under the MIT license.
 */
;!function(undefined) {
  var hasOwnProperty= Object.hasOwnProperty;
  var isArray = Array.isArray ? Array.isArray : function _isArray(obj) {
    return Object.prototype.toString.call(obj) === "[object Array]";
  };
  var defaultMaxListeners = 10;
  var nextTickSupported= typeof process=='object' && typeof process.nextTick=='function';
  var symbolsSupported= typeof Symbol==='function';
  var reflectSupported= typeof Reflect === 'object';
  var setImmediateSupported= typeof setImmediate === 'function';
  var _setImmediate= setImmediateSupported ? setImmediate : setTimeout;
  var ownKeys= symbolsSupported? (reflectSupported && typeof Reflect.ownKeys==='function'? Reflect.ownKeys : function(obj){
    var arr= Object.getOwnPropertyNames(obj);
    arr.push.apply(arr, Object.getOwnPropertySymbols(obj));
    return arr;
  }) : Object.keys;

  function init() {
    this._events = {};
    if (this._conf) {
      configure.call(this, this._conf);
    }
  }

  function configure(conf) {
    if (conf) {
      this._conf = conf;

      conf.delimiter && (this.delimiter = conf.delimiter);

      if(conf.maxListeners!==undefined){
          this._maxListeners= conf.maxListeners;
      }

      conf.wildcard && (this.wildcard = conf.wildcard);
      conf.newListener && (this._newListener = conf.newListener);
      conf.removeListener && (this._removeListener = conf.removeListener);
      conf.verboseMemoryLeak && (this.verboseMemoryLeak = conf.verboseMemoryLeak);
      conf.ignoreErrors && (this.ignoreErrors = conf.ignoreErrors);

      if (this.wildcard) {
        this.listenerTree = {};
      }
    }
  }

  function logPossibleMemoryLeak(count, eventName) {
    var errorMsg = '(node) warning: possible EventEmitter memory ' +
        'leak detected. ' + count + ' listeners added. ' +
        'Use emitter.setMaxListeners() to increase limit.';

    if(this.verboseMemoryLeak){
      errorMsg += ' Event name: ' + eventName + '.';
    }

    if(typeof process !== 'undefined' && process.emitWarning){
      var e = new Error(errorMsg);
      e.name = 'MaxListenersExceededWarning';
      e.emitter = this;
      e.count = count;
      process.emitWarning(e);
    } else {
      console.error(errorMsg);

      if (console.trace){
        console.trace();
      }
    }
  }

  var toArray = function (a, b, c) {
    var n = arguments.length;
    switch (n) {
      case 0:
        return [];
      case 1:
        return [a];
      case 2:
        return [a, b];
      case 3:
        return [a, b, c];
      default:
        var arr = new Array(n);
        while (n--) {
          arr[n] = arguments[n];
        }
        return arr;
    }
  };

  function toObject(keys, values) {
    var obj = {};
    var key;
    var len = keys.length;
    var valuesCount = values ? values.length : 0;
    for (var i = 0; i < len; i++) {
      key = keys[i];
      obj[key] = i < valuesCount ? values[i] : undefined;
    }
    return obj;
  }

  function TargetObserver(emitter, target, options) {
    this._emitter = emitter;
    this._target = target;
    this._listeners = {};
    this._listenersCount = 0;

    var on, off;

    if (options.on || options.off) {
      on = options.on;
      off = options.off;
    }

    if (target.addEventListener) {
      on = target.addEventListener;
      off = target.removeEventListener;
    } else if (target.addListener) {
      on = target.addListener;
      off = target.removeListener;
    } else if (target.on) {
      on = target.on;
      off = target.off;
    }

    if (!on && !off) {
      throw Error('target does not implement any known event API');
    }

    if (typeof on !== 'function') {
      throw TypeError('on method must be a function');
    }

    if (typeof off !== 'function') {
      throw TypeError('off method must be a function');
    }

    this._on = on;
    this._off = off;

    var _observers= emitter._observers;
    if(_observers){
      _observers.push(this);
    }else{
      emitter._observers= [this];
    }
  }

  Object.assign(TargetObserver.prototype, {
    subscribe: function(event, localEvent, reducer){
      var observer= this;
      var target= this._target;
      var emitter= this._emitter;
      var listeners= this._listeners;
      var handler= function(){
        var args= toArray.apply(null, arguments);
        var eventObj= {
          data: args,
          name: localEvent,
          original: event
        };
        if(reducer){
          var result= reducer.call(target, eventObj);
          if(result!==false){
            emitter.emit.apply(emitter, [eventObj.name].concat(args))
          }
          return;
        }
        emitter.emit.apply(emitter, [localEvent].concat(args));
      };


      if(listeners[event]){
        throw Error('Event \'' + event + '\' is already listening');
      }

      this._listenersCount++;

      if(emitter._newListener && emitter._removeListener && !observer._onNewListener){

        this._onNewListener = function (_event) {
          if (_event === localEvent && listeners[event] === null) {
            listeners[event] = handler;
            observer._on.call(target, event, handler);
          }
        };

        emitter.on('newListener', this._onNewListener);

        this._onRemoveListener= function(_event){
          if(_event === localEvent && !emitter.hasListeners(_event) && listeners[event]){
            listeners[event]= null;
            observer._off.call(target, event, handler);
          }
        };

        listeners[event]= null;

        emitter.on('removeListener', this._onRemoveListener);
      }else{
        listeners[event]= handler;
        observer._on.call(target, event, handler);
      }
    },

    unsubscribe: function(event){
      var observer= this;
      var listeners= this._listeners;
      var emitter= this._emitter;
      var handler;
      var events;
      var off= this._off;
      var target= this._target;
      var i;

      if(event && typeof event!=='string'){
        throw TypeError('event must be a string');
      }

      function clearRefs(){
        if(observer._onNewListener){
          emitter.off('newListener', observer._onNewListener);
          emitter.off('removeListener', observer._onRemoveListener);
          observer._onNewListener= null;
          observer._onRemoveListener= null;
        }
        var index= findTargetIndex.call(emitter, observer);
        emitter._observers.splice(index, 1);
      }

      if(event){
        handler= listeners[event];
        if(!handler) return;
        off.call(target, event, handler);
        delete listeners[event];
        if(!--this._listenersCount){
          clearRefs();
        }
      }else{
        events= ownKeys(listeners);
        i= events.length;
        while(i-->0){
          event= events[i];
          off.call(target, event, listeners[event]);
        }
        this._listeners= {};
        this._listenersCount= 0;
        clearRefs();
      }
    }
  });

  function resolveOptions(options, schema, reducers, allowUnknown) {
    var computedOptions = Object.assign({}, schema);

    if (!options) return computedOptions;

    if (typeof options !== 'object') {
      throw TypeError('options must be an object')
    }

    var keys = Object.keys(options);
    var length = keys.length;
    var option, value;
    var reducer;

    function reject(reason) {
      throw Error('Invalid "' + option + '" option value' + (reason ? '. Reason: ' + reason : ''))
    }

    for (var i = 0; i < length; i++) {
      option = keys[i];
      if (!allowUnknown && !hasOwnProperty.call(schema, option)) {
        throw Error('Unknown "' + option + '" option');
      }
      value = options[option];
      if (value !== undefined) {
        reducer = reducers[option];
        computedOptions[option] = reducer ? reducer(value, reject) : value;
      }
    }
    return computedOptions;
  }

  function constructorReducer(value, reject) {
    if (typeof value !== 'function' || !value.hasOwnProperty('prototype')) {
      reject('value must be a constructor');
    }
    return value;
  }

  function makeTypeReducer(types) {
    var message= 'value must be type of ' + types.join('|');
    var len= types.length;
    var firstType= types[0];
    var secondType= types[1];

    if (len === 1) {
      return function (v, reject) {
        if (typeof v === firstType) {
          return v;
        }
        reject(message);
      }
    }

    if (len === 2) {
      return function (v, reject) {
        var kind= typeof v;
        if (kind === firstType || kind === secondType) return v;
        reject(message);
      }
    }

    return function (v, reject) {
      var kind = typeof v;
      var i = len;
      while (i-- > 0) {
        if (kind === types[i]) return v;
      }
      reject(message);
    }
  }

  var functionReducer= makeTypeReducer(['function']);

  var objectFunctionReducer= makeTypeReducer(['object', 'function']);

  function makeCancelablePromise(Promise, executor, options) {
    var isCancelable;
    var callbacks;
    var timer= 0;
    var subscriptionClosed;

    var promise = new Promise(function (resolve, reject, onCancel) {
      options= resolveOptions(options, {
        timeout: 0,
        overload: false
      }, {
        timeout: function(value, reject){
          value*= 1;
          if (typeof value !== 'number' || value < 0 || !Number.isFinite(value)) {
            reject('timeout must be a positive number');
          }
          return value;
        }
      });

      isCancelable = !options.overload && typeof Promise.prototype.cancel === 'function' && typeof onCancel === 'function';

      function cleanup() {
        if (callbacks) {
          callbacks = null;
        }
        if (timer) {
          clearTimeout(timer);
          timer = 0;
        }
      }

      var _resolve= function(value){
        cleanup();
        resolve(value);
      };

      var _reject= function(err){
        cleanup();
        reject(err);
      };

      if (isCancelable) {
        executor(_resolve, _reject, onCancel);
      } else {
        callbacks = [function(reason){
          _reject(reason || Error('canceled'));
        }];
        executor(_resolve, _reject, function (cb) {
          if (subscriptionClosed) {
            throw Error('Unable to subscribe on cancel event asynchronously')
          }
          if (typeof cb !== 'function') {
            throw TypeError('onCancel callback must be a function');
          }
          callbacks.push(cb);
        });
        subscriptionClosed= true;
      }

      if (options.timeout > 0) {
        timer= setTimeout(function(){
          var reason= Error('timeout');
          reason.code = 'ETIMEDOUT'
          timer= 0;
          promise.cancel(reason);
          reject(reason);
        }, options.timeout);
      }
    });

    if (!isCancelable) {
      promise.cancel = function (reason) {
        if (!callbacks) {
          return;
        }
        var length = callbacks.length;
        for (var i = 1; i < length; i++) {
          callbacks[i](reason);
        }
        // internal callback to reject the promise
        callbacks[0](reason);
        callbacks = null;
      };
    }

    return promise;
  }

  function findTargetIndex(observer) {
    var observers = this._observers;
    if(!observers){
      return -1;
    }
    var len = observers.length;
    for (var i = 0; i < len; i++) {
      if (observers[i]._target === observer) return i;
    }
    return -1;
  }

  // Attention, function return type now is array, always !
  // It has zero elements if no any matches found and one or more
  // elements (leafs) if there are matches
  //
  function searchListenerTree(handlers, type, tree, i, typeLength) {
    if (!tree) {
      return null;
    }

    if (i === 0) {
      var kind = typeof type;
      if (kind === 'string') {
        var ns, n, l = 0, j = 0, delimiter = this.delimiter, dl = delimiter.length;
        if ((n = type.indexOf(delimiter)) !== -1) {
          ns = new Array(5);
          do {
            ns[l++] = type.slice(j, n);
            j = n + dl;
          } while ((n = type.indexOf(delimiter, j)) !== -1);

          ns[l++] = type.slice(j);
          type = ns;
          typeLength = l;
        } else {
          type = [type];
          typeLength = 1;
        }
      } else if (kind === 'object') {
        typeLength = type.length;
      } else {
        type = [type];
        typeLength = 1;
      }
    }

    var listeners= null, branch, xTree, xxTree, isolatedBranch, endReached, currentType = type[i],
        nextType = type[i + 1], branches, _listeners;

    if (i === typeLength) {
      //
      // If at the end of the event(s) list and the tree has listeners
      // invoke those listeners.
      //

      if(tree._listeners) {
        if (typeof tree._listeners === 'function') {
          handlers && handlers.push(tree._listeners);
          listeners = [tree];
        } else {
          handlers && handlers.push.apply(handlers, tree._listeners);
          listeners = [tree];
        }
      }
    } else {

      if (currentType === '*') {
        //
        // If the event emitted is '*' at this part
        // or there is a concrete match at this patch
        //
        branches = ownKeys(tree);
        n = branches.length;
        while (n-- > 0) {
          branch = branches[n];
          if (branch !== '_listeners') {
            _listeners = searchListenerTree(handlers, type, tree[branch], i + 1, typeLength);
            if (_listeners) {
              if (listeners) {
                listeners.push.apply(listeners, _listeners);
              } else {
                listeners = _listeners;
              }
            }
          }
        }
        return listeners;
      } else if (currentType === '**') {
        endReached = (i + 1 === typeLength || (i + 2 === typeLength && nextType === '*'));
        if (endReached && tree._listeners) {
          // The next element has a _listeners, add it to the handlers.
          listeners = searchListenerTree(handlers, type, tree, typeLength, typeLength);
        }

        branches = ownKeys(tree);
        n = branches.length;
        while (n-- > 0) {
          branch = branches[n];
          if (branch !== '_listeners') {
            if (branch === '*' || branch === '**') {
              if (tree[branch]._listeners && !endReached) {
                _listeners = searchListenerTree(handlers, type, tree[branch], typeLength, typeLength);
                if (_listeners) {
                  if (listeners) {
                    listeners.push.apply(listeners, _listeners);
                  } else {
                    listeners = _listeners;
                  }
                }
              }
              _listeners = searchListenerTree(handlers, type, tree[branch], i, typeLength);
            } else if (branch === nextType) {
              _listeners = searchListenerTree(handlers, type, tree[branch], i + 2, typeLength);
            } else {
              // No match on this one, shift into the tree but not in the type array.
              _listeners = searchListenerTree(handlers, type, tree[branch], i, typeLength);
            }
            if (_listeners) {
              if (listeners) {
                listeners.push.apply(listeners, _listeners);
              } else {
                listeners = _listeners;
              }
            }
          }
        }
        return listeners;
      } else if (tree[currentType]) {
        listeners = searchListenerTree(handlers, type, tree[currentType], i + 1, typeLength);
      }
    }

      xTree = tree['*'];
    if (xTree) {
      //
      // If the listener tree will allow any match for this part,
      // then recursively explore all branches of the tree
      //
      searchListenerTree(handlers, type, xTree, i + 1, typeLength);
    }

    xxTree = tree['**'];
    if (xxTree) {
      if (i < typeLength) {
        if (xxTree._listeners) {
          // If we have a listener on a '**', it will catch all, so add its handler.
          searchListenerTree(handlers, type, xxTree, typeLength, typeLength);
        }

        // Build arrays of matching next branches and others.
        branches= ownKeys(xxTree);
        n= branches.length;
        while(n-->0){
          branch= branches[n];
          if (branch !== '_listeners') {
            if (branch === nextType) {
              // We know the next element will match, so jump twice.
              searchListenerTree(handlers, type, xxTree[branch], i + 2, typeLength);
            } else if (branch === currentType) {
              // Current node matches, move into the tree.
              searchListenerTree(handlers, type, xxTree[branch], i + 1, typeLength);
            } else {
              isolatedBranch = {};
              isolatedBranch[branch] = xxTree[branch];
              searchListenerTree(handlers, type, {'**': isolatedBranch}, i + 1, typeLength);
            }
          }
        }
      } else if (xxTree._listeners) {
        // We have reached the end and still on a '**'
        searchListenerTree(handlers, type, xxTree, typeLength, typeLength);
      } else if (xxTree['*'] && xxTree['*']._listeners) {
        searchListenerTree(handlers, type, xxTree['*'], typeLength, typeLength);
      }
    }

    return listeners;
  }

  function growListenerTree(type, listener, prepend) {
    var len = 0, j = 0, i, delimiter = this.delimiter, dl= delimiter.length, ns;

    if(typeof type==='string') {
      if ((i = type.indexOf(delimiter)) !== -1) {
        ns = new Array(5);
        do {
          ns[len++] = type.slice(j, i);
          j = i + dl;
        } while ((i = type.indexOf(delimiter, j)) !== -1);

        ns[len++] = type.slice(j);
      }else{
        ns= [type];
        len= 1;
      }
    }else{
      ns= type;
      len= type.length;
    }

    //
    // Looks for two consecutive '**', if so, don't add the event at all.
    //
    if (len > 1) {
      for (i = 0; i + 1 < len; i++) {
        if (ns[i] === '**' && ns[i + 1] === '**') {
          return;
        }
      }
    }



    var tree = this.listenerTree, name;

    for (i = 0; i < len; i++) {
      name = ns[i];

      tree = tree[name] || (tree[name] = {});

      if (i === len - 1) {
        if (!tree._listeners) {
          tree._listeners = listener;
        } else {
          if (typeof tree._listeners === 'function') {
            tree._listeners = [tree._listeners];
          }

          if (prepend) {
            tree._listeners.unshift(listener);
          } else {
            tree._listeners.push(listener);
          }

          if (
              !tree._listeners.warned &&
              this._maxListeners > 0 &&
              tree._listeners.length > this._maxListeners
          ) {
            tree._listeners.warned = true;
            logPossibleMemoryLeak.call(this, tree._listeners.length, name);
          }
        }
        return true;
      }
    }

    return true;
  }

  function collectTreeEvents(tree, events, root, asArray){
     var branches= ownKeys(tree);
     var i= branches.length;
     var branch, branchName, path;
     var hasListeners= tree['_listeners'];
     var isArrayPath;

     while(i-->0){
         branchName= branches[i];

         branch= tree[branchName];

         if(branchName==='_listeners'){
             path= root;
         }else {
             path = root ? root.concat(branchName) : [branchName];
         }

         isArrayPath= asArray || typeof branchName==='symbol';

         hasListeners && events.push(isArrayPath? path : path.join(this.delimiter));

         if(typeof branch==='object'){
             collectTreeEvents.call(this, branch, events, path, isArrayPath);
         }
     }

     return events;
  }

  function recursivelyGarbageCollect(root) {
    var keys = ownKeys(root);
    var i= keys.length;
    var obj, key, flag;
    while(i-->0){
      key = keys[i];
      obj = root[key];

      if(obj){
          flag= true;
          if(key !== '_listeners' && !recursivelyGarbageCollect(obj)){
             delete root[key];
          }
      }
    }

    return flag;
  }

  function Listener(emitter, event, listener){
    this.emitter= emitter;
    this.event= event;
    this.listener= listener;
  }

  Listener.prototype.off= function(){
    this.emitter.off(this.event, this.listener);
    return this;
  };

  function setupListener(event, listener, options){
      if (options === true) {
        promisify = true;
      } else if (options === false) {
        async = true;
      } else {
        if (!options || typeof options !== 'object') {
          throw TypeError('options should be an object or true');
        }
        var async = options.async;
        var promisify = options.promisify;
        var nextTick = options.nextTick;
        var objectify = options.objectify;
      }

      if (async || nextTick || promisify) {
        var _listener = listener;
        var _origin = listener._origin || listener;

        if (nextTick && !nextTickSupported) {
          throw Error('process.nextTick is not supported');
        }

        if (promisify === undefined) {
          promisify = listener.constructor.name === 'AsyncFunction';
        }

        listener = function () {
          var args = arguments;
          var context = this;
          var event = this.event;

          return promisify ? (nextTick ? Promise.resolve() : new Promise(function (resolve) {
            _setImmediate(resolve);
          }).then(function () {
            context.event = event;
            return _listener.apply(context, args)
          })) : (nextTick ? process.nextTick : _setImmediate)(function () {
            context.event = event;
            _listener.apply(context, args)
          });
        };

        listener._async = true;
        listener._origin = _origin;
      }

    return [listener, objectify? new Listener(this, event, listener): this];
  }

  function EventEmitter(conf) {
    this._events = {};
    this._newListener = false;
    this._removeListener = false;
    this.verboseMemoryLeak = false;
    configure.call(this, conf);
  }

  EventEmitter.EventEmitter2 = EventEmitter; // backwards compatibility for exporting EventEmitter property

  EventEmitter.prototype.listenTo= function(target, events, options){
    if(typeof target!=='object'){
      throw TypeError('target musts be an object');
    }

    var emitter= this;

    options = resolveOptions(options, {
      on: undefined,
      off: undefined,
      reducers: undefined
    }, {
      on: functionReducer,
      off: functionReducer,
      reducers: objectFunctionReducer
    });

    function listen(events){
      if(typeof events!=='object'){
        throw TypeError('events must be an object');
      }

      var reducers= options.reducers;
      var index= findTargetIndex.call(emitter, target);
      var observer;

      if(index===-1){
        observer= new TargetObserver(emitter, target, options);
      }else{
        observer= emitter._observers[index];
      }

      var keys= ownKeys(events);
      var len= keys.length;
      var event;
      var isSingleReducer= typeof reducers==='function';

      for(var i=0; i<len; i++){
        event= keys[i];
        observer.subscribe(
            event,
            events[event] || event,
            isSingleReducer ? reducers : reducers && reducers[event]
        );
      }
    }

    isArray(events)?
        listen(toObject(events)) :
        (typeof events==='string'? listen(toObject(events.split(/\s+/))): listen(events));

    return this;
  };

  EventEmitter.prototype.stopListeningTo = function (target, event) {
    var observers = this._observers;

    if(!observers){
      return false;
    }

    var i = observers.length;
    var observer;
    var matched= false;

    if(target && typeof target!=='object'){
      throw TypeError('target should be an object');
    }

    while (i-- > 0) {
      observer = observers[i];
      if (!target || observer._target === target) {
        observer.unsubscribe(event);
        matched= true;
      }
    }

    return matched;
  };

  // By default EventEmitters will print a warning if more than
  // 10 listeners are added to it. This is a useful default which
  // helps finding memory leaks.
  //
  // Obviously not all Emitters should be limited to 10. This function allows
  // that to be increased. Set to zero for unlimited.

  EventEmitter.prototype.delimiter = '.';

  EventEmitter.prototype.setMaxListeners = function(n) {
    if (n !== undefined) {
      this._maxListeners = n;
      if (!this._conf) this._conf = {};
      this._conf.maxListeners = n;
    }
  };

  EventEmitter.prototype.getMaxListeners = function() {
    return this._maxListeners;
  };

  EventEmitter.prototype.event = '';

  EventEmitter.prototype.once = function(event, fn, options) {
    return this._once(event, fn, false, options);
  };

  EventEmitter.prototype.prependOnceListener = function(event, fn, options) {
    return this._once(event, fn, true, options);
  };

  EventEmitter.prototype._once = function(event, fn, prepend, options) {
    return this._many(event, 1, fn, prepend, options);
  };

  EventEmitter.prototype.many = function(event, ttl, fn, options) {
    return this._many(event, ttl, fn, false, options);
  };

  EventEmitter.prototype.prependMany = function(event, ttl, fn, options) {
    return this._many(event, ttl, fn, true, options);
  };

  EventEmitter.prototype._many = function(event, ttl, fn, prepend, options) {
    var self = this;

    if (typeof fn !== 'function') {
      throw new Error('many only accepts instances of Function');
    }

    function listener() {
      if (--ttl === 0) {
        self.off(event, listener);
      }
      return fn.apply(this, arguments);
    }

    listener._origin = fn;

    return this._on(event, listener, prepend, options);
  };

  EventEmitter.prototype.emit = function() {
    if (!this._events && !this._all) {
      return false;
    }

    this._events || init.call(this);

    var type = arguments[0], ns, wildcard= this.wildcard;
    var args,l,i,j, containsSymbol;

    if (type === 'newListener' && !this._newListener) {
      if (!this._events.newListener) {
        return false;
      }
    }

    if (wildcard) {
      ns= type;
      if(type!=='newListener' && type!=='removeListener'){
        if (typeof type === 'object') {
          l = type.length;
          if (symbolsSupported) {
            for (i = 0; i < l; i++) {
              if (typeof type[i] === 'symbol') {
                containsSymbol = true;
                break;
              }
            }
          }
          if (!containsSymbol) {
            type = type.join(this.delimiter);
          }
        }
      }
    }

    var al = arguments.length;
    var handler;

    if (this._all && this._all.length) {
      handler = this._all.slice();

      for (i = 0, l = handler.length; i < l; i++) {
        this.event = type;
        switch (al) {
        case 1:
          handler[i].call(this, type);
          break;
        case 2:
          handler[i].call(this, type, arguments[1]);
          break;
        case 3:
          handler[i].call(this, type, arguments[1], arguments[2]);
          break;
        default:
          handler[i].apply(this, arguments);
        }
      }
    }

    if (wildcard) {
      handler = [];
      searchListenerTree.call(this, handler, ns, this.listenerTree, 0, l);
    } else {
      handler = this._events[type];
      if (typeof handler === 'function') {
        this.event = type;
        switch (al) {
        case 1:
          handler.call(this);
          break;
        case 2:
          handler.call(this, arguments[1]);
          break;
        case 3:
          handler.call(this, arguments[1], arguments[2]);
          break;
        default:
          args = new Array(al - 1);
          for (j = 1; j < al; j++) args[j - 1] = arguments[j];
          handler.apply(this, args);
        }
        return true;
      } else if (handler) {
        // need to make copy of handlers because list can change in the middle
        // of emit call
        handler = handler.slice();
      }
    }

    if (handler && handler.length) {
      if (al > 3) {
        args = new Array(al - 1);
        for (j = 1; j < al; j++) args[j - 1] = arguments[j];
      }
      for (i = 0, l = handler.length; i < l; i++) {
        this.event = type;
        switch (al) {
        case 1:
          handler[i].call(this);
          break;
        case 2:
          handler[i].call(this, arguments[1]);
          break;
        case 3:
          handler[i].call(this, arguments[1], arguments[2]);
          break;
        default:
          handler[i].apply(this, args);
        }
      }
      return true;
    } else if (!this.ignoreErrors && !this._all && type === 'error') {
      if (arguments[1] instanceof Error) {
        throw arguments[1]; // Unhandled 'error' event
      } else {
        throw new Error("Uncaught, unspecified 'error' event.");
      }
    }

    return !!this._all;
  };

  EventEmitter.prototype.emitAsync = function() {
    if (!this._events && !this._all) {
      return false;
    }

    this._events || init.call(this);

    var type = arguments[0], wildcard= this.wildcard, ns, containsSymbol;
    var args,l,i,j;

    if (type === 'newListener' && !this._newListener) {
        if (!this._events.newListener) { return Promise.resolve([false]); }
    }

    if (wildcard) {
      ns= type;
      if(type!=='newListener' && type!=='removeListener'){
        if (typeof type === 'object') {
          l = type.length;
          if (symbolsSupported) {
            for (i = 0; i < l; i++) {
              if (typeof type[i] === 'symbol') {
                containsSymbol = true;
                break;
              }
            }
          }
          if (!containsSymbol) {
            type = type.join(this.delimiter);
          }
        }
      }
    }

    var promises= [];

    var al = arguments.length;
    var handler;

    if (this._all) {
      for (i = 0, l = this._all.length; i < l; i++) {
        this.event = type;
        switch (al) {
        case 1:
          promises.push(this._all[i].call(this, type));
          break;
        case 2:
          promises.push(this._all[i].call(this, type, arguments[1]));
          break;
        case 3:
          promises.push(this._all[i].call(this, type, arguments[1], arguments[2]));
          break;
        default:
          promises.push(this._all[i].apply(this, arguments));
        }
      }
    }

    if (wildcard) {
      handler = [];
      searchListenerTree.call(this, handler, ns, this.listenerTree, 0);
    } else {
      handler = this._events[type];
    }

    if (typeof handler === 'function') {
      this.event = type;
      switch (al) {
      case 1:
        promises.push(handler.call(this));
        break;
      case 2:
        promises.push(handler.call(this, arguments[1]));
        break;
      case 3:
        promises.push(handler.call(this, arguments[1], arguments[2]));
        break;
      default:
        args = new Array(al - 1);
        for (j = 1; j < al; j++) args[j - 1] = arguments[j];
        promises.push(handler.apply(this, args));
      }
    } else if (handler && handler.length) {
      handler = handler.slice();
      if (al > 3) {
        args = new Array(al - 1);
        for (j = 1; j < al; j++) args[j - 1] = arguments[j];
      }
      for (i = 0, l = handler.length; i < l; i++) {
        this.event = type;
        switch (al) {
        case 1:
          promises.push(handler[i].call(this));
          break;
        case 2:
          promises.push(handler[i].call(this, arguments[1]));
          break;
        case 3:
          promises.push(handler[i].call(this, arguments[1], arguments[2]));
          break;
        default:
          promises.push(handler[i].apply(this, args));
        }
      }
    } else if (!this.ignoreErrors && !this._all && type === 'error') {
      if (arguments[1] instanceof Error) {
        return Promise.reject(arguments[1]); // Unhandled 'error' event
      } else {
        return Promise.reject("Uncaught, unspecified 'error' event.");
      }
    }

    return Promise.all(promises);
  };

  EventEmitter.prototype.on = function(type, listener, options) {
    return this._on(type, listener, false, options);
  };

  EventEmitter.prototype.prependListener = function(type, listener, options) {
    return this._on(type, listener, true, options);
  };

  EventEmitter.prototype.onAny = function(fn) {
    return this._onAny(fn, false);
  };

  EventEmitter.prototype.prependAny = function(fn) {
    return this._onAny(fn, true);
  };

  EventEmitter.prototype.addListener = EventEmitter.prototype.on;

  EventEmitter.prototype._onAny = function(fn, prepend){
    if (typeof fn !== 'function') {
      throw new Error('onAny only accepts instances of Function');
    }

    if (!this._all) {
      this._all = [];
    }

    // Add the function to the event listener collection.
    if(prepend){
      this._all.unshift(fn);
    }else{
      this._all.push(fn);
    }

    return this;
  };

  EventEmitter.prototype._on = function(type, listener, prepend, options) {
    if (typeof type === 'function') {
      this._onAny(type, listener);
      return this;
    }

    if (typeof listener !== 'function') {
      throw new Error('on only accepts instances of Function');
    }
    this._events || init.call(this);

    var returnValue= this, temp;

    if (options !== undefined) {
      temp = setupListener.call(this, type, listener, options);
      listener = temp[0];
      returnValue = temp[1];
    }

    // To avoid recursion in the case that type == "newListeners"! Before
    // adding it to the listeners, first emit "newListeners".
    if (this._newListener) {
      this.emit('newListener', type, listener);
    }

    if (this.wildcard) {
      growListenerTree.call(this, type, listener, prepend);
      return returnValue;
    }

    if (!this._events[type]) {
      // Optimize the case of one listener. Don't need the extra array object.
      this._events[type] = listener;
    } else {
      if (typeof this._events[type] === 'function') {
        // Change to array.
        this._events[type] = [this._events[type]];
      }

      // If we've already got an array, just add
      if(prepend){
        this._events[type].unshift(listener);
      }else{
        this._events[type].push(listener);
      }

      // Check for listener leak
      if (
        !this._events[type].warned &&
        this._maxListeners > 0 &&
        this._events[type].length > this._maxListeners
      ) {
        this._events[type].warned = true;
        logPossibleMemoryLeak.call(this, this._events[type].length, type);
      }
    }

    return returnValue;
  };

  EventEmitter.prototype.off = function(type, listener) {
    if (typeof listener !== 'function') {
      throw new Error('removeListener only takes instances of Function');
    }

    var handlers,leafs=[];

    if(this.wildcard) {
      var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice();
      leafs = searchListenerTree.call(this, null, ns, this.listenerTree, 0);
      if(!leafs) return this;
    } else {
      // does not use listeners(), so no side effect of creating _events[type]
      if (!this._events[type]) return this;
      handlers = this._events[type];
      leafs.push({_listeners:handlers});
    }

    for (var iLeaf=0; iLeaf<leafs.length; iLeaf++) {
      var leaf = leafs[iLeaf];
      handlers = leaf._listeners;
      if (isArray(handlers)) {

        var position = -1;

        for (var i = 0, length = handlers.length; i < length; i++) {
          if (handlers[i] === listener ||
            (handlers[i].listener && handlers[i].listener === listener) ||
            (handlers[i]._origin && handlers[i]._origin === listener)) {
            position = i;
            break;
          }
        }

        if (position < 0) {
          continue;
        }

        if(this.wildcard) {
          leaf._listeners.splice(position, 1);
        }
        else {
          this._events[type].splice(position, 1);
        }

        if (handlers.length === 0) {
          if(this.wildcard) {
            delete leaf._listeners;
          }
          else {
            delete this._events[type];
          }
        }
        if (this._removeListener)
          this.emit("removeListener", type, listener);

        return this;
      }
      else if (handlers === listener ||
        (handlers.listener && handlers.listener === listener) ||
        (handlers._origin && handlers._origin === listener)) {
        if(this.wildcard) {
          delete leaf._listeners;
        }
        else {
          delete this._events[type];
        }
        if (this._removeListener)
          this.emit("removeListener", type, listener);
      }
    }

    this.listenerTree && recursivelyGarbageCollect(this.listenerTree);

    return this;
  };

  EventEmitter.prototype.offAny = function(fn) {
    var i = 0, l = 0, fns;
    if (fn && this._all && this._all.length > 0) {
      fns = this._all;
      for(i = 0, l = fns.length; i < l; i++) {
        if(fn === fns[i]) {
          fns.splice(i, 1);
          if (this._removeListener)
            this.emit("removeListenerAny", fn);
          return this;
        }
      }
    } else {
      fns = this._all;
      if (this._removeListener) {
        for(i = 0, l = fns.length; i < l; i++)
          this.emit("removeListenerAny", fns[i]);
      }
      this._all = [];
    }
    return this;
  };

  EventEmitter.prototype.removeListener = EventEmitter.prototype.off;

  EventEmitter.prototype.removeAllListeners = function (type) {
    if (type === undefined) {
      !this._events || init.call(this);
      return this;
    }

    if (this.wildcard) {
      var leafs = searchListenerTree.call(this, null, type, this.listenerTree, 0), leaf, i;
      if (!leafs) return this;
      for (i = 0; i < leafs.length; i++) {
        leaf = leafs[i];
        leaf._listeners = null;
      }
      this.listenerTree && recursivelyGarbageCollect(this.listenerTree);
    } else if (this._events) {
      this._events[type] = null;
    }
    return this;
  };

  EventEmitter.prototype.listeners = function (type) {
    var _events = this._events;
    var keys, listeners, allListeners;
    var i;
    var listenerTree;

    if (type === undefined) {
      if (this.wildcard) {
        throw Error('event name required for wildcard emitter');
      }

      if (!_events) {
        return [];
      }

      keys = ownKeys(_events);
      i = keys.length;
      allListeners = [];
      while (i-- > 0) {
        listeners = _events[keys[i]];
        if (typeof listeners === 'function') {
          allListeners.push(listeners);
        } else {
          allListeners.push.apply(allListeners, listeners);
        }
      }
      return allListeners;
    } else {
      if (this.wildcard) {
        listenerTree= this.listenerTree;
        if(!listenerTree) return [];
        var handlers = [];
        var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice();
        searchListenerTree.call(this, handlers, ns, listenerTree, 0);
        return handlers;
      }

      if (!_events) {
        return [];
      }

      listeners = _events[type];

      if (!listeners) {
        return [];
      }
      return typeof listeners === 'function' ? [listeners] : listeners;
    }
  };

  EventEmitter.prototype.eventNames = function(nsAsArray){
    var _events= this._events;
    return this.wildcard? collectTreeEvents.call(this, this.listenerTree, [], null, nsAsArray) : (_events? ownKeys(_events) : []);
  };

  EventEmitter.prototype.listenerCount = function(type) {
    return this.listeners(type).length;
  };

  EventEmitter.prototype.hasListeners = function (type) {
    if (this.wildcard) {
      var handlers = [];
      var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice();
      searchListenerTree.call(this, handlers, ns, this.listenerTree, 0);
      return handlers.length > 0;
    }

    var _events = this._events;
    var _all = this._all;

    return !!(_all && _all.length || _events && (type === undefined ? ownKeys(_events).length : _events[type]));
  };

  EventEmitter.prototype.listenersAny = function() {

    if(this._all) {
      return this._all;
    }
    else {
      return [];
    }

  };

  EventEmitter.prototype.waitFor = function (event, options) {
    var self = this;
    var type = typeof options;
    if (type === 'number') {
      options = {timeout: options};
    } else if (type === 'function') {
      options = {filter: options};
    }

    options= resolveOptions(options, {
      timeout: 0,
      filter: undefined,
      handleError: false,
      Promise: Promise,
      overload: false
    }, {
      filter: functionReducer,
      Promise: constructorReducer
    });

    return makeCancelablePromise(options.Promise, function (resolve, reject, onCancel) {
      function listener() {
        var filter= options.filter;
        if (filter && !filter.apply(self, arguments)) {
          return;
        }
        self.off(event, listener);
        if (options.handleError) {
          var err = arguments[0];
          err ? reject(err) : resolve(toArray.apply(null, arguments).slice(1));
        } else {
          resolve(toArray.apply(null, arguments));
        }
      }

      onCancel(function(){
        self.off(event, listener);
      });

      self._on(event, listener, false);
    }, {
      timeout: options.timeout,
      overload: options.overload
    })
  };

  function once(emitter, name, options) {
    options= resolveOptions(options, {
      Promise: Promise,
      timeout: 0,
      overload: false
    }, {
      Promise: constructorReducer
    });

    var _Promise= options.Promise;

    return makeCancelablePromise(_Promise, function(resolve, reject, onCancel){
      var handler;
      if (typeof emitter.addEventListener === 'function') {
        handler=  function () {
          resolve(toArray.apply(null, arguments));
        };

        onCancel(function(){
          emitter.removeEventListener(name, handler);
        });

        emitter.addEventListener(
            name,
            handler,
            {once: true}
        );
        return;
      }

      var eventListener = function(){
        errorListener && emitter.removeListener('error', errorListener);
        resolve(toArray.apply(null, arguments));
      };

      var errorListener;

      if (name !== 'error') {
        errorListener = function (err){
          emitter.removeListener(name, eventListener);
          reject(err);
        };

        emitter.once('error', errorListener);
      }

      onCancel(function(){
        errorListener && emitter.removeListener('error', errorListener);
        emitter.removeListener(name, eventListener);
      });

      emitter.once(name, eventListener);
    }, {
      timeout: options.timeout,
      overload: options.overload
    });
  }

  var prototype= EventEmitter.prototype;

  Object.defineProperties(EventEmitter, {
    defaultMaxListeners: {
      get: function () {
        return prototype._maxListeners;
      },
      set: function (n) {
        if (typeof n !== 'number' || n < 0 || Number.isNaN(n)) {
          throw TypeError('n must be a non-negative number')
        }
        prototype._maxListeners = n;
      },
      enumerable: true
    },
    once: {
      value: once,
      writable: true,
      configurable: true
    }
  });

  Object.defineProperties(prototype, {
      _maxListeners: {
          value: defaultMaxListeners,
          writable: true,
          configurable: true
      },
      _observers: {value: null, writable: true, configurable: true}
  });

  if (typeof define === 'function' && define.amd) {
     // AMD. Register as an anonymous module.
    define(function() {
      return EventEmitter;
    });
  } else if (typeof exports === 'object') {
    // CommonJS
    module.exports = EventEmitter;
  }
  else {
    // global for any kind of environment.
    var _global= new Function('','return this')();
    _global.EventEmitter2 = EventEmitter;
  }
}();
'use strict';
const path = require('path');
const childProcess = require('child_process');
const crossSpawn = require('cross-spawn');
const stripFinalNewline = require('strip-final-newline');
const npmRunPath = require('npm-run-path');
const onetime = require('onetime');
const makeError = require('./lib/error');
const normalizeStdio = require('./lib/stdio');
const {spawnedKill, spawnedCancel, setupTimeout, validateTimeout, setExitHandler} = require('./lib/kill');
const {handleInput, getSpawnedResult, makeAllStream, validateInputSync} = require('./lib/stream');
const {mergePromise, getSpawnedPromise} = require('./lib/promise');
const {joinCommand, parseCommand, getEscapedCommand} = require('./lib/command');

const DEFAULT_MAX_BUFFER = 1000 * 1000 * 100;

const getEnv = ({env: envOption, extendEnv, preferLocal, localDir, execPath}) => {
	const env = extendEnv ? {...process.env, ...envOption} : envOption;

	if (preferLocal) {
		return npmRunPath.env({env, cwd: localDir, execPath});
	}

	return env;
};

const handleArguments = (file, args, options = {}) => {
	const parsed = crossSpawn._parse(file, args, options);
	file = parsed.command;
	args = parsed.args;
	options = parsed.options;

	options = {
		maxBuffer: DEFAULT_MAX_BUFFER,
		buffer: true,
		stripFinalNewline: true,
		extendEnv: true,
		preferLocal: false,
		localDir: options.cwd || process.cwd(),
		execPath: process.execPath,
		encoding: 'utf8',
		reject: true,
		cleanup: true,
		all: false,
		windowsHide: true,
		...options
	};

	options.env = getEnv(options);

	options.stdio = normalizeStdio(options);

	if (process.platform === 'win32' && path.basename(file, '.exe') === 'cmd') {
		// #116
		args.unshift('/q');
	}

	return {file, args, options, parsed};
};

const handleOutput = (options, value, error) => {
	if (typeof value !== 'string' && !Buffer.isBuffer(value)) {
		// When `execa.sync()` errors, we normalize it to '' to mimic `execa()`
		return error === undefined ? undefined : '';
	}

	if (options.stripFinalNewline) {
		return stripFinalNewline(value);
	}

	return value;
};

const execa = (file, args, options) => {
	const parsed = handleArguments(file, args, options);
	const command = joinCommand(file, args);
	const escapedCommand = getEscapedCommand(file, args);

	validateTimeout(parsed.options);

	let spawned;
	try {
		spawned = childProcess.spawn(parsed.file, parsed.args, parsed.options);
	} catch (error) {
		// Ensure the returned error is always both a promise and a child process
		const dummySpawned = new childProcess.ChildProcess();
		const errorPromise = Promise.reject(makeError({
			error,
			stdout: '',
			stderr: '',
			all: '',
			command,
			escapedCommand,
			parsed,
			timedOut: false,
			isCanceled: false,
			killed: false
		}));
		return mergePromise(dummySpawned, errorPromise);
	}

	const spawnedPromise = getSpawnedPromise(spawned);
	const timedPromise = setupTimeout(spawned, parsed.options, spawnedPromise);
	const processDone = setExitHandler(spawned, parsed.options, timedPromise);

	const context = {isCanceled: false};

	spawned.kill = spawnedKill.bind(null, spawned.kill.bind(spawned));
	spawned.cancel = spawnedCancel.bind(null, spawned, context);

	const handlePromise = async () => {
		const [{error, exitCode, signal, timedOut}, stdoutResult, stderrResult, allResult] = await getSpawnedResult(spawned, parsed.options, processDone);
		const stdout = handleOutput(parsed.options, stdoutResult);
		const stderr = handleOutput(parsed.options, stderrResult);
		const all = handleOutput(parsed.options, allResult);

		if (error || exitCode !== 0 || signal !== null) {
			const returnedError = makeError({
				error,
				exitCode,
				signal,
				stdout,
				stderr,
				all,
				command,
				escapedCommand,
				parsed,
				timedOut,
				isCanceled: context.isCanceled,
				killed: spawned.killed
			});

			if (!parsed.options.reject) {
				return returnedError;
			}

			throw returnedError;
		}

		return {
			command,
			escapedCommand,
			exitCode: 0,
			stdout,
			stderr,
			all,
			failed: false,
			timedOut: false,
			isCanceled: false,
			killed: false
		};
	};

	const handlePromiseOnce = onetime(handlePromise);

	handleInput(spawned, parsed.options.input);

	spawned.all = makeAllStream(spawned, parsed.options);

	return mergePromise(spawned, handlePromiseOnce);
};

module.exports = execa;

module.exports.sync = (file, args, options) => {
	const parsed = handleArguments(file, args, options);
	const command = joinCommand(file, args);
	const escapedCommand = getEscapedCommand(file, args);

	validateInputSync(parsed.options);

	let result;
	try {
		result = childProcess.spawnSync(parsed.file, parsed.args, parsed.options);
	} catch (error) {
		throw makeError({
			error,
			stdout: '',
			stderr: '',
			all: '',
			command,
			escapedCommand,
			parsed,
			timedOut: false,
			isCanceled: false,
			killed: false
		});
	}

	const stdout = handleOutput(parsed.options, result.stdout, result.error);
	const stderr = handleOutput(parsed.options, result.stderr, result.error);

	if (result.error || result.status !== 0 || result.signal !== null) {
		const error = makeError({
			stdout,
			stderr,
			error: result.error,
			signal: result.signal,
			exitCode: result.status,
			command,
			escapedCommand,
			parsed,
			timedOut: result.error && result.error.code === 'ETIMEDOUT',
			isCanceled: false,
			killed: result.signal !== null
		});

		if (!parsed.options.reject) {
			return error;
		}

		throw error;
	}

	return {
		command,
		escapedCommand,
		exitCode: 0,
		stdout,
		stderr,
		failed: false,
		timedOut: false,
		isCanceled: false,
		killed: false
	};
};

module.exports.command = (command, options) => {
	const [file, ...args] = parseCommand(command);
	return execa(file, args, options);
};

module.exports.commandSync = (command, options) => {
	const [file, ...args] = parseCommand(command);
	return execa.sync(file, args, options);
};

module.exports.node = (scriptPath, args, options = {}) => {
	if (args && !Array.isArray(args) && typeof args === 'object') {
		options = args;
		args = [];
	}

	const stdio = normalizeStdio.node(options);
	const defaultExecArgv = process.execArgv.filter(arg => !arg.startsWith('--inspect'));

	const {
		nodePath = process.execPath,
		nodeOptions = defaultExecArgv
	} = options;

	return execa(
		nodePath,
		[
			...nodeOptions,
			scriptPath,
			...(Array.isArray(args) ? args : [])
		],
		{
			...options,
			stdin: undefined,
			stdout: undefined,
			stderr: undefined,
			stdio,
			shell: false
		}
	);
};
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "execa",
  "version": "5.1.1",
  "description": "Process execution for humans",
  "license": "MIT",
  "repository": "sindresorhus/execa",
  "funding": "https://github.com/sindresorhus/execa?sponsor=1",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "https://sindresorhus.com"
  },
  "engines": {
    "node": ">=10"
  },
  "files": [
    "index.js",
    "index.d.ts",
    "lib"
  ],
  "dependencies": {
    "cross-spawn": "^7.0.3",
    "get-stream": "^6.0.0",
    "human-signals": "^2.1.0",
    "is-stream": "^2.0.0",
    "merge-stream": "^2.0.0",
    "npm-run-path": "^4.0.1",
    "onetime": "^5.1.2",
    "signal-exit": "^3.0.3",
    "strip-final-newline": "^2.0.0"
  },
  "devDependencies": {
    "@types/node": "^14.14.10",
    "ava": "^2.4.0",
    "get-node": "^11.0.1",
    "is-running": "^2.1.0",
    "nyc": "^15.1.0",
    "p-event": "^4.2.0",
    "tempfile": "^3.0.0",
    "tsd": "^0.13.1",
    "xo": "^0.35.0"
  }
}'use strict';
const normalizeArgs = (file, args = []) => {
	if (!Array.isArray(args)) {
		return [file];
	}

	return [file, ...args];
};

const NO_ESCAPE_REGEXP = /^[\w.-]+$/;
const DOUBLE_QUOTES_REGEXP = /"/g;

const escapeArg = arg => {
	if (typeof arg !== 'string' || NO_ESCAPE_REGEXP.test(arg)) {
		return arg;
	}

	return `"${arg.replace(DOUBLE_QUOTES_REGEXP, '\\"')}"`;
};

const joinCommand = (file, args) => {
	return normalizeArgs(file, args).join(' ');
};

const getEscapedCommand = (file, args) => {
	return normalizeArgs(file, args).map(arg => escapeArg(arg)).join(' ');
};

const SPACES_REGEXP = / +/g;

// Handle `execa.command()`
const parseCommand = command => {
	const tokens = [];
	for (const token of command.trim().split(SPACES_REGEXP)) {
		// Allow spaces to be escaped by a backslash if not meant as a delimiter
		const previousToken = tokens[tokens.length - 1];
		if (previousToken && previousToken.endsWith('\\')) {
			// Merge previous token with current one
			tokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`;
		} else {
			tokens.push(token);
		}
	}

	return tokens;
};

module.exports = {
	joinCommand,
	getEscapedCommand,
	parseCommand
};
'use strict';
const {signalsByName} = require('human-signals');

const getErrorPrefix = ({timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled}) => {
	if (timedOut) {
		return `timed out after ${timeout} milliseconds`;
	}

	if (isCanceled) {
		return 'was canceled';
	}

	if (errorCode !== undefined) {
		return `failed with ${errorCode}`;
	}

	if (signal !== undefined) {
		return `was killed with ${signal} (${signalDescription})`;
	}

	if (exitCode !== undefined) {
		return `failed with exit code ${exitCode}`;
	}

	return 'failed';
};

const makeError = ({
	stdout,
	stderr,
	all,
	error,
	signal,
	exitCode,
	command,
	escapedCommand,
	timedOut,
	isCanceled,
	killed,
	parsed: {options: {timeout}}
}) => {
	// `signal` and `exitCode` emitted on `spawned.on('exit')` event can be `null`.
	// We normalize them to `undefined`
	exitCode = exitCode === null ? undefined : exitCode;
	signal = signal === null ? undefined : signal;
	const signalDescription = signal === undefined ? undefined : signalsByName[signal].description;

	const errorCode = error && error.code;

	const prefix = getErrorPrefix({timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled});
	const execaMessage = `Command ${prefix}: ${command}`;
	const isError = Object.prototype.toString.call(error) === '[object Error]';
	const shortMessage = isError ? `${execaMessage}\n${error.message}` : execaMessage;
	const message = [shortMessage, stderr, stdout].filter(Boolean).join('\n');

	if (isError) {
		error.originalMessage = error.message;
		error.message = message;
	} else {
		error = new Error(message);
	}

	error.shortMessage = shortMessage;
	error.command = command;
	error.escapedCommand = escapedCommand;
	error.exitCode = exitCode;
	error.signal = signal;
	error.signalDescription = signalDescription;
	error.stdout = stdout;
	error.stderr = stderr;

	if (all !== undefined) {
		error.all = all;
	}

	if ('bufferedData' in error) {
		delete error.bufferedData;
	}

	error.failed = true;
	error.timedOut = Boolean(timedOut);
	error.isCanceled = isCanceled;
	error.killed = killed && !timedOut;

	return error;
};

module.exports = makeError;
'use strict';
const os = require('os');
const onExit = require('signal-exit');

const DEFAULT_FORCE_KILL_TIMEOUT = 1000 * 5;

// Monkey-patches `childProcess.kill()` to add `forceKillAfterTimeout` behavior
const spawnedKill = (kill, signal = 'SIGTERM', options = {}) => {
	const killResult = kill(signal);
	setKillTimeout(kill, signal, options, killResult);
	return killResult;
};

const setKillTimeout = (kill, signal, options, killResult) => {
	if (!shouldForceKill(signal, options, killResult)) {
		return;
	}

	const timeout = getForceKillAfterTimeout(options);
	const t = setTimeout(() => {
		kill('SIGKILL');
	}, timeout);

	// Guarded because there's no `.unref()` when `execa` is used in the renderer
	// process in Electron. This cannot be tested since we don't run tests in
	// Electron.
	// istanbul ignore else
	if (t.unref) {
		t.unref();
	}
};

const shouldForceKill = (signal, {forceKillAfterTimeout}, killResult) => {
	return isSigterm(signal) && forceKillAfterTimeout !== false && killResult;
};

const isSigterm = signal => {
	return signal === os.constants.signals.SIGTERM ||
		(typeof signal === 'string' && signal.toUpperCase() === 'SIGTERM');
};

const getForceKillAfterTimeout = ({forceKillAfterTimeout = true}) => {
	if (forceKillAfterTimeout === true) {
		return DEFAULT_FORCE_KILL_TIMEOUT;
	}

	if (!Number.isFinite(forceKillAfterTimeout) || forceKillAfterTimeout < 0) {
		throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${forceKillAfterTimeout}\` (${typeof forceKillAfterTimeout})`);
	}

	return forceKillAfterTimeout;
};

// `childProcess.cancel()`
const spawnedCancel = (spawned, context) => {
	const killResult = spawned.kill();

	if (killResult) {
		context.isCanceled = true;
	}
};

const timeoutKill = (spawned, signal, reject) => {
	spawned.kill(signal);
	reject(Object.assign(new Error('Timed out'), {timedOut: true, signal}));
};

// `timeout` option handling
const setupTimeout = (spawned, {timeout, killSignal = 'SIGTERM'}, spawnedPromise) => {
	if (timeout === 0 || timeout === undefined) {
		return spawnedPromise;
	}

	let timeoutId;
	const timeoutPromise = new Promise((resolve, reject) => {
		timeoutId = setTimeout(() => {
			timeoutKill(spawned, killSignal, reject);
		}, timeout);
	});

	const safeSpawnedPromise = spawnedPromise.finally(() => {
		clearTimeout(timeoutId);
	});

	return Promise.race([timeoutPromise, safeSpawnedPromise]);
};

const validateTimeout = ({timeout}) => {
	if (timeout !== undefined && (!Number.isFinite(timeout) || timeout < 0)) {
		throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${timeout}\` (${typeof timeout})`);
	}
};

// `cleanup` option handling
const setExitHandler = async (spawned, {cleanup, detached}, timedPromise) => {
	if (!cleanup || detached) {
		return timedPromise;
	}

	const removeExitHandler = onExit(() => {
		spawned.kill();
	});

	return timedPromise.finally(() => {
		removeExitHandler();
	});
};

module.exports = {
	spawnedKill,
	spawnedCancel,
	setupTimeout,
	validateTimeout,
	setExitHandler
};
'use strict';

const nativePromisePrototype = (async () => {})().constructor.prototype;
const descriptors = ['then', 'catch', 'finally'].map(property => [
	property,
	Reflect.getOwnPropertyDescriptor(nativePromisePrototype, property)
]);

// The return value is a mixin of `childProcess` and `Promise`
const mergePromise = (spawned, promise) => {
	for (const [property, descriptor] of descriptors) {
		// Starting the main `promise` is deferred to avoid consuming streams
		const value = typeof promise === 'function' ?
			(...args) => Reflect.apply(descriptor.value, promise(), args) :
			descriptor.value.bind(promise);

		Reflect.defineProperty(spawned, property, {...descriptor, value});
	}

	return spawned;
};

// Use promises instead of `child_process` events
const getSpawnedPromise = spawned => {
	return new Promise((resolve, reject) => {
		spawned.on('exit', (exitCode, signal) => {
			resolve({exitCode, signal});
		});

		spawned.on('error', error => {
			reject(error);
		});

		if (spawned.stdin) {
			spawned.stdin.on('error', error => {
				reject(error);
			});
		}
	});
};

module.exports = {
	mergePromise,
	getSpawnedPromise
};

'use strict';
const aliases = ['stdin', 'stdout', 'stderr'];

const hasAlias = options => aliases.some(alias => options[alias] !== undefined);

const normalizeStdio = options => {
	if (!options) {
		return;
	}

	const {stdio} = options;

	if (stdio === undefined) {
		return aliases.map(alias => options[alias]);
	}

	if (hasAlias(options)) {
		throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${aliases.map(alias => `\`${alias}\``).join(', ')}`);
	}

	if (typeof stdio === 'string') {
		return stdio;
	}

	if (!Array.isArray(stdio)) {
		throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof stdio}\``);
	}

	const length = Math.max(stdio.length, aliases.length);
	return Array.from({length}, (value, index) => stdio[index]);
};

module.exports = normalizeStdio;

// `ipc` is pushed unless it is already present
module.exports.node = options => {
	const stdio = normalizeStdio(options);

	if (stdio === 'ipc') {
		return 'ipc';
	}

	if (stdio === undefined || typeof stdio === 'string') {
		return [stdio, stdio, stdio, 'ipc'];
	}

	if (stdio.includes('ipc')) {
		return stdio;
	}

	return [...stdio, 'ipc'];
};
'use strict';
const isStream = require('is-stream');
const getStream = require('get-stream');
const mergeStream = require('merge-stream');

// `input` option
const handleInput = (spawned, input) => {
	// Checking for stdin is workaround for https://github.com/nodejs/node/issues/26852
	// @todo remove `|| spawned.stdin === undefined` once we drop support for Node.js <=12.2.0
	if (input === undefined || spawned.stdin === undefined) {
		return;
	}

	if (isStream(input)) {
		input.pipe(spawned.stdin);
	} else {
		spawned.stdin.end(input);
	}
};

// `all` interleaves `stdout` and `stderr`
const makeAllStream = (spawned, {all}) => {
	if (!all || (!spawned.stdout && !spawned.stderr)) {
		return;
	}

	const mixed = mergeStream();

	if (spawned.stdout) {
		mixed.add(spawned.stdout);
	}

	if (spawned.stderr) {
		mixed.add(spawned.stderr);
	}

	return mixed;
};

// On failure, `result.stdout|stderr|all` should contain the currently buffered stream
const getBufferedData = async (stream, streamPromise) => {
	if (!stream) {
		return;
	}

	stream.destroy();

	try {
		return await streamPromise;
	} catch (error) {
		return error.bufferedData;
	}
};

const getStreamPromise = (stream, {encoding, buffer, maxBuffer}) => {
	if (!stream || !buffer) {
		return;
	}

	if (encoding) {
		return getStream(stream, {encoding, maxBuffer});
	}

	return getStream.buffer(stream, {maxBuffer});
};

// Retrieve result of child process: exit code, signal, error, streams (stdout/stderr/all)
const getSpawnedResult = async ({stdout, stderr, all}, {encoding, buffer, maxBuffer}, processDone) => {
	const stdoutPromise = getStreamPromise(stdout, {encoding, buffer, maxBuffer});
	const stderrPromise = getStreamPromise(stderr, {encoding, buffer, maxBuffer});
	const allPromise = getStreamPromise(all, {encoding, buffer, maxBuffer: maxBuffer * 2});

	try {
		return await Promise.all([processDone, stdoutPromise, stderrPromise, allPromise]);
	} catch (error) {
		return Promise.all([
			{error, signal: error.signal, timedOut: error.timedOut},
			getBufferedData(stdout, stdoutPromise),
			getBufferedData(stderr, stderrPromise),
			getBufferedData(all, allPromise)
		]);
	}
};

const validateInputSync = ({input}) => {
	if (isStream(input)) {
		throw new TypeError('The `input` option cannot be a stream in sync mode');
	}
};

module.exports = {
	handleInput,
	makeAllStream,
	getSpawnedResult,
	validateInputSync
};

The MIT License (MIT)

Copyright (c) Denis Malinochkin

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
{
  "name": "fast-glob",
  "version": "3.2.11",
  "description": "It's a very fast and efficient glob library for Node.js",
  "license": "MIT",
  "repository": "mrmlnc/fast-glob",
  "author": {
    "name": "Denis Malinochkin",
    "url": "https://mrmlnc.com"
  },
  "engines": {
    "node": ">=8.6.0"
  },
  "main": "out/index.js",
  "typings": "out/index.d.ts",
  "files": [
    "out",
    "!out/{benchmark,tests}",
    "!out/**/*.map",
    "!out/**/*.spec.*"
  ],
  "devDependencies": {
    "@nodelib/fs.macchiato": "^1.0.1",
    "@types/compute-stdev": "^1.0.0",
    "@types/easy-table": "^0.0.32",
    "@types/glob": "^7.1.1",
    "@types/glob-parent": "^5.1.0",
    "@types/is-ci": "^2.0.0",
    "@types/merge2": "^1.1.4",
    "@types/micromatch": "^4.0.0",
    "@types/minimist": "^1.2.0",
    "@types/mocha": "^5.2.7",
    "@types/node": "^12.7.8",
    "@types/rimraf": "^2.0.2",
    "@types/sinon": "^7.5.0",
    "compute-stdev": "^1.0.0",
    "easy-table": "^1.1.1",
    "eslint": "^6.5.1",
    "eslint-config-mrmlnc": "^1.1.0",
    "execa": "^2.0.4",
    "fast-glob": "^3.0.4",
    "fdir": "^5.1.0",
    "glob": "^7.1.4",
    "is-ci": "^2.0.0",
    "log-update": "^4.0.0",
    "minimist": "^1.2.0",
    "mocha": "^6.2.1",
    "rimraf": "^3.0.0",
    "sinon": "^7.5.0",
    "tiny-glob": "^0.2.6",
    "typescript": "^3.6.3"
  },
  "dependencies": {
    "@nodelib/fs.stat": "^2.0.2",
    "@nodelib/fs.walk": "^1.2.3",
    "glob-parent": "^5.1.2",
    "merge2": "^1.3.0",
    "micromatch": "^4.0.4"
  }
}"use strict";
const taskManager = require("./managers/tasks");
const patternManager = require("./managers/patterns");
const async_1 = require("./providers/async");
const stream_1 = require("./providers/stream");
const sync_1 = require("./providers/sync");
const settings_1 = require("./settings");
const utils = require("./utils");
async function FastGlob(source, options) {
    assertPatternsInput(source);
    const works = getWorks(source, async_1.default, options);
    const result = await Promise.all(works);
    return utils.array.flatten(result);
}
// https://github.com/typescript-eslint/typescript-eslint/issues/60
// eslint-disable-next-line no-redeclare
(function (FastGlob) {
    function sync(source, options) {
        assertPatternsInput(source);
        const works = getWorks(source, sync_1.default, options);
        return utils.array.flatten(works);
    }
    FastGlob.sync = sync;
    function stream(source, options) {
        assertPatternsInput(source);
        const works = getWorks(source, stream_1.default, options);
        /**
         * The stream returned by the provider cannot work with an asynchronous iterator.
         * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams.
         * This affects performance (+25%). I don't see best solution right now.
         */
        return utils.stream.merge(works);
    }
    FastGlob.stream = stream;
    function generateTasks(source, options) {
        assertPatternsInput(source);
        const patterns = patternManager.transform([].concat(source));
        const settings = new settings_1.default(options);
        return taskManager.generate(patterns, settings);
    }
    FastGlob.generateTasks = generateTasks;
    function isDynamicPattern(source, options) {
        assertPatternsInput(source);
        const settings = new settings_1.default(options);
        return utils.pattern.isDynamicPattern(source, settings);
    }
    FastGlob.isDynamicPattern = isDynamicPattern;
    function escapePath(source) {
        assertPatternsInput(source);
        return utils.path.escape(source);
    }
    FastGlob.escapePath = escapePath;
})(FastGlob || (FastGlob = {}));
function getWorks(source, _Provider, options) {
    const patterns = patternManager.transform([].concat(source));
    const settings = new settings_1.default(options);
    const tasks = taskManager.generate(patterns, settings);
    const provider = new _Provider(settings);
    return tasks.map(provider.read, provider);
}
function assertPatternsInput(input) {
    const source = [].concat(input);
    const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item));
    if (!isValidSource) {
        throw new TypeError('Patterns must be a string (non empty) or an array of strings');
    }
}
module.exports = FastGlob;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0;
const fs = require("fs");
const os = require("os");
/**
 * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero.
 * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107
 */
const CPU_COUNT = Math.max(os.cpus().length, 1);
exports.DEFAULT_FILE_SYSTEM_ADAPTER = {
    lstat: fs.lstat,
    lstatSync: fs.lstatSync,
    stat: fs.stat,
    statSync: fs.statSync,
    readdir: fs.readdir,
    readdirSync: fs.readdirSync
};
class Settings {
    constructor(_options = {}) {
        this._options = _options;
        this.absolute = this._getValue(this._options.absolute, false);
        this.baseNameMatch = this._getValue(this._options.baseNameMatch, false);
        this.braceExpansion = this._getValue(this._options.braceExpansion, true);
        this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true);
        this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT);
        this.cwd = this._getValue(this._options.cwd, process.cwd());
        this.deep = this._getValue(this._options.deep, Infinity);
        this.dot = this._getValue(this._options.dot, false);
        this.extglob = this._getValue(this._options.extglob, true);
        this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true);
        this.fs = this._getFileSystemMethods(this._options.fs);
        this.globstar = this._getValue(this._options.globstar, true);
        this.ignore = this._getValue(this._options.ignore, []);
        this.markDirectories = this._getValue(this._options.markDirectories, false);
        this.objectMode = this._getValue(this._options.objectMode, false);
        this.onlyDirectories = this._getValue(this._options.onlyDirectories, false);
        this.onlyFiles = this._getValue(this._options.onlyFiles, true);
        this.stats = this._getValue(this._options.stats, false);
        this.suppressErrors = this._getValue(this._options.suppressErrors, false);
        this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false);
        this.unique = this._getValue(this._options.unique, true);
        if (this.onlyDirectories) {
            this.onlyFiles = false;
        }
        if (this.stats) {
            this.objectMode = true;
        }
    }
    _getValue(option, value) {
        return option === undefined ? value : option;
    }
    _getFileSystemMethods(methods = {}) {
        return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods);
    }
}
exports.default = Settings;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.splitWhen = exports.flatten = void 0;
function flatten(items) {
    return items.reduce((collection, item) => [].concat(collection, item), []);
}
exports.flatten = flatten;
function splitWhen(items, predicate) {
    const result = [[]];
    let groupIndex = 0;
    for (const item of items) {
        if (predicate(item)) {
            groupIndex++;
            result[groupIndex] = [];
        }
        else {
            result[groupIndex].push(item);
        }
    }
    return result;
}
exports.splitWhen = splitWhen;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isEnoentCodeError = void 0;
function isEnoentCodeError(error) {
    return error.code === 'ENOENT';
}
exports.isEnoentCodeError = isEnoentCodeError;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createDirentFromStats = void 0;
class DirentFromStats {
    constructor(name, stats) {
        this.name = name;
        this.isBlockDevice = stats.isBlockDevice.bind(stats);
        this.isCharacterDevice = stats.isCharacterDevice.bind(stats);
        this.isDirectory = stats.isDirectory.bind(stats);
        this.isFIFO = stats.isFIFO.bind(stats);
        this.isFile = stats.isFile.bind(stats);
        this.isSocket = stats.isSocket.bind(stats);
        this.isSymbolicLink = stats.isSymbolicLink.bind(stats);
    }
}
function createDirentFromStats(name, stats) {
    return new DirentFromStats(name, stats);
}
exports.createDirentFromStats = createDirentFromStats;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0;
const array = require("./array");
exports.array = array;
const errno = require("./errno");
exports.errno = errno;
const fs = require("./fs");
exports.fs = fs;
const path = require("./path");
exports.path = path;
const pattern = require("./pattern");
exports.pattern = pattern;
const stream = require("./stream");
exports.stream = stream;
const string = require("./string");
exports.string = string;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.removeLeadingDotSegment = exports.escape = exports.makeAbsolute = exports.unixify = void 0;
const path = require("path");
const LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\
const UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;
/**
 * Designed to work only with simple paths: `dir\\file`.
 */
function unixify(filepath) {
    return filepath.replace(/\\/g, '/');
}
exports.unixify = unixify;
function makeAbsolute(cwd, filepath) {
    return path.resolve(cwd, filepath);
}
exports.makeAbsolute = makeAbsolute;
function escape(pattern) {
    return pattern.replace(UNESCAPED_GLOB_SYMBOLS_RE, '\\$2');
}
exports.escape = escape;
function removeLeadingDotSegment(entry) {
    // We do not use `startsWith` because this is 10x slower than current implementation for some cases.
    // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with
    if (entry.charAt(0) === '.') {
        const secondCharactery = entry.charAt(1);
        if (secondCharactery === '/' || secondCharactery === '\\') {
            return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT);
        }
    }
    return entry;
}
exports.removeLeadingDotSegment = removeLeadingDotSegment;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0;
const path = require("path");
const globParent = require("glob-parent");
const micromatch = require("micromatch");
const GLOBSTAR = '**';
const ESCAPE_SYMBOL = '\\';
const COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/;
const REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[[^[]*]/;
const REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\([^(]*\|[^|]*\)/;
const GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\([^(]*\)/;
const BRACE_EXPANSION_SEPARATORS_RE = /,|\.\./;
function isStaticPattern(pattern, options = {}) {
    return !isDynamicPattern(pattern, options);
}
exports.isStaticPattern = isStaticPattern;
function isDynamicPattern(pattern, options = {}) {
    /**
     * A special case with an empty string is necessary for matching patterns that start with a forward slash.
     * An empty string cannot be a dynamic pattern.
     * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'.
     */
    if (pattern === '') {
        return false;
    }
    /**
     * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check
     * filepath directly (without read directory).
     */
    if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) {
        return true;
    }
    if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) {
        return true;
    }
    if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) {
        return true;
    }
    if (options.braceExpansion !== false && hasBraceExpansion(pattern)) {
        return true;
    }
    return false;
}
exports.isDynamicPattern = isDynamicPattern;
function hasBraceExpansion(pattern) {
    const openingBraceIndex = pattern.indexOf('{');
    if (openingBraceIndex === -1) {
        return false;
    }
    const closingBraceIndex = pattern.indexOf('}', openingBraceIndex + 1);
    if (closingBraceIndex === -1) {
        return false;
    }
    const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex);
    return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent);
}
function convertToPositivePattern(pattern) {
    return isNegativePattern(pattern) ? pattern.slice(1) : pattern;
}
exports.convertToPositivePattern = convertToPositivePattern;
function convertToNegativePattern(pattern) {
    return '!' + pattern;
}
exports.convertToNegativePattern = convertToNegativePattern;
function isNegativePattern(pattern) {
    return pattern.startsWith('!') && pattern[1] !== '(';
}
exports.isNegativePattern = isNegativePattern;
function isPositivePattern(pattern) {
    return !isNegativePattern(pattern);
}
exports.isPositivePattern = isPositivePattern;
function getNegativePatterns(patterns) {
    return patterns.filter(isNegativePattern);
}
exports.getNegativePatterns = getNegativePatterns;
function getPositivePatterns(patterns) {
    return patterns.filter(isPositivePattern);
}
exports.getPositivePatterns = getPositivePatterns;
/**
 * Returns patterns that can be applied inside the current directory.
 *
 * @example
 * // ['./*', '*', 'a/*']
 * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])
 */
function getPatternsInsideCurrentDirectory(patterns) {
    return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern));
}
exports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory;
/**
 * Returns patterns to be expanded relative to (outside) the current directory.
 *
 * @example
 * // ['../*', './../*']
 * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])
 */
function getPatternsOutsideCurrentDirectory(patterns) {
    return patterns.filter(isPatternRelatedToParentDirectory);
}
exports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory;
function isPatternRelatedToParentDirectory(pattern) {
    return pattern.startsWith('..') || pattern.startsWith('./..');
}
exports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory;
function getBaseDirectory(pattern) {
    return globParent(pattern, { flipBackslashes: false });
}
exports.getBaseDirectory = getBaseDirectory;
function hasGlobStar(pattern) {
    return pattern.includes(GLOBSTAR);
}
exports.hasGlobStar = hasGlobStar;
function endsWithSlashGlobStar(pattern) {
    return pattern.endsWith('/' + GLOBSTAR);
}
exports.endsWithSlashGlobStar = endsWithSlashGlobStar;
function isAffectDepthOfReadingPattern(pattern) {
    const basename = path.basename(pattern);
    return endsWithSlashGlobStar(pattern) || isStaticPattern(basename);
}
exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;
function expandPatternsWithBraceExpansion(patterns) {
    return patterns.reduce((collection, pattern) => {
        return collection.concat(expandBraceExpansion(pattern));
    }, []);
}
exports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion;
function expandBraceExpansion(pattern) {
    return micromatch.braces(pattern, {
        expand: true,
        nodupes: true
    });
}
exports.expandBraceExpansion = expandBraceExpansion;
function getPatternParts(pattern, options) {
    let { parts } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { parts: true }));
    /**
     * The scan method returns an empty array in some cases.
     * See micromatch/picomatch#58 for more details.
     */
    if (parts.length === 0) {
        parts = [pattern];
    }
    /**
     * The scan method does not return an empty part for the pattern with a forward slash.
     * This is another part of micromatch/picomatch#58.
     */
    if (parts[0].startsWith('/')) {
        parts[0] = parts[0].slice(1);
        parts.unshift('');
    }
    return parts;
}
exports.getPatternParts = getPatternParts;
function makeRe(pattern, options) {
    return micromatch.makeRe(pattern, options);
}
exports.makeRe = makeRe;
function convertPatternsToRe(patterns, options) {
    return patterns.map((pattern) => makeRe(pattern, options));
}
exports.convertPatternsToRe = convertPatternsToRe;
function matchAny(entry, patternsRe) {
    return patternsRe.some((patternRe) => patternRe.test(entry));
}
exports.matchAny = matchAny;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.merge = void 0;
const merge2 = require("merge2");
function merge(streams) {
    const mergedStream = merge2(streams);
    streams.forEach((stream) => {
        stream.once('error', (error) => mergedStream.emit('error', error));
    });
    mergedStream.once('close', () => propagateCloseEventToSources(streams));
    mergedStream.once('end', () => propagateCloseEventToSources(streams));
    return mergedStream;
}
exports.merge = merge;
function propagateCloseEventToSources(streams) {
    streams.forEach((stream) => stream.emit('close'));
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isEmpty = exports.isString = void 0;
function isString(input) {
    return typeof input === 'string';
}
exports.isString = isString;
function isEmpty(input) {
    return input === '';
}
exports.isEmpty = isEmpty;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path");
const fsStat = require("@nodelib/fs.stat");
const utils = require("../utils");
class Reader {
    constructor(_settings) {
        this._settings = _settings;
        this._fsStatSettings = new fsStat.Settings({
            followSymbolicLink: this._settings.followSymbolicLinks,
            fs: this._settings.fs,
            throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks
        });
    }
    _getFullEntryPath(filepath) {
        return path.resolve(this._settings.cwd, filepath);
    }
    _makeEntry(stats, pattern) {
        const entry = {
            name: pattern,
            path: pattern,
            dirent: utils.fs.createDirentFromStats(pattern, stats)
        };
        if (this._settings.stats) {
            entry.stats = stats;
        }
        return entry;
    }
    _isFatalError(error) {
        return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors;
    }
}
exports.default = Reader;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const stream_1 = require("stream");
const fsStat = require("@nodelib/fs.stat");
const fsWalk = require("@nodelib/fs.walk");
const reader_1 = require("./reader");
class ReaderStream extends reader_1.default {
    constructor() {
        super(...arguments);
        this._walkStream = fsWalk.walkStream;
        this._stat = fsStat.stat;
    }
    dynamic(root, options) {
        return this._walkStream(root, options);
    }
    static(patterns, options) {
        const filepaths = patterns.map(this._getFullEntryPath, this);
        const stream = new stream_1.PassThrough({ objectMode: true });
        stream._write = (index, _enc, done) => {
            return this._getEntry(filepaths[index], patterns[index], options)
                .then((entry) => {
                if (entry !== null && options.entryFilter(entry)) {
                    stream.push(entry);
                }
                if (index === filepaths.length - 1) {
                    stream.end();
                }
                done();
            })
                .catch(done);
        };
        for (let i = 0; i < filepaths.length; i++) {
            stream.write(i);
        }
        return stream;
    }
    _getEntry(filepath, pattern, options) {
        return this._getStat(filepath)
            .then((stats) => this._makeEntry(stats, pattern))
            .catch((error) => {
            if (options.errorFilter(error)) {
                return null;
            }
            throw error;
        });
    }
    _getStat(filepath) {
        return new Promise((resolve, reject) => {
            this._stat(filepath, this._fsStatSettings, (error, stats) => {
                return error === null ? resolve(stats) : reject(error);
            });
        });
    }
}
exports.default = ReaderStream;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const fsStat = require("@nodelib/fs.stat");
const fsWalk = require("@nodelib/fs.walk");
const reader_1 = require("./reader");
class ReaderSync extends reader_1.default {
    constructor() {
        super(...arguments);
        this._walkSync = fsWalk.walkSync;
        this._statSync = fsStat.statSync;
    }
    dynamic(root, options) {
        return this._walkSync(root, options);
    }
    static(patterns, options) {
        const entries = [];
        for (const pattern of patterns) {
            const filepath = this._getFullEntryPath(pattern);
            const entry = this._getEntry(filepath, pattern, options);
            if (entry === null || !options.entryFilter(entry)) {
                continue;
            }
            entries.push(entry);
        }
        return entries;
    }
    _getEntry(filepath, pattern, options) {
        try {
            const stats = this._getStat(filepath);
            return this._makeEntry(stats, pattern);
        }
        catch (error) {
            if (options.errorFilter(error)) {
                return null;
            }
            throw error;
        }
    }
    _getStat(filepath) {
        return this._statSync(filepath, this._fsStatSettings);
    }
}
exports.default = ReaderSync;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const stream_1 = require("../readers/stream");
const provider_1 = require("./provider");
class ProviderAsync extends provider_1.default {
    constructor() {
        super(...arguments);
        this._reader = new stream_1.default(this._settings);
    }
    read(task) {
        const root = this._getRootDirectory(task);
        const options = this._getReaderOptions(task);
        const entries = [];
        return new Promise((resolve, reject) => {
            const stream = this.api(root, task, options);
            stream.once('error', reject);
            stream.on('data', (entry) => entries.push(options.transform(entry)));
            stream.once('end', () => resolve(entries));
        });
    }
    api(root, task, options) {
        if (task.dynamic) {
            return this._reader.dynamic(root, options);
        }
        return this._reader.static(task.patterns, options);
    }
}
exports.default = ProviderAsync;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path");
const deep_1 = require("./filters/deep");
const entry_1 = require("./filters/entry");
const error_1 = require("./filters/error");
const entry_2 = require("./transformers/entry");
class Provider {
    constructor(_settings) {
        this._settings = _settings;
        this.errorFilter = new error_1.default(this._settings);
        this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions());
        this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions());
        this.entryTransformer = new entry_2.default(this._settings);
    }
    _getRootDirectory(task) {
        return path.resolve(this._settings.cwd, task.base);
    }
    _getReaderOptions(task) {
        const basePath = task.base === '.' ? '' : task.base;
        return {
            basePath,
            pathSegmentSeparator: '/',
            concurrency: this._settings.concurrency,
            deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative),
            entryFilter: this.entryFilter.getFilter(task.positive, task.negative),
            errorFilter: this.errorFilter.getFilter(),
            followSymbolicLinks: this._settings.followSymbolicLinks,
            fs: this._settings.fs,
            stats: this._settings.stats,
            throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink,
            transform: this.entryTransformer.getTransformer()
        };
    }
    _getMicromatchOptions() {
        return {
            dot: this._settings.dot,
            matchBase: this._settings.baseNameMatch,
            nobrace: !this._settings.braceExpansion,
            nocase: !this._settings.caseSensitiveMatch,
            noext: !this._settings.extglob,
            noglobstar: !this._settings.globstar,
            posix: true,
            strictSlashes: false
        };
    }
}
exports.default = Provider;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const stream_1 = require("stream");
const stream_2 = require("../readers/stream");
const provider_1 = require("./provider");
class ProviderStream extends provider_1.default {
    constructor() {
        super(...arguments);
        this._reader = new stream_2.default(this._settings);
    }
    read(task) {
        const root = this._getRootDirectory(task);
        const options = this._getReaderOptions(task);
        const source = this.api(root, task, options);
        const destination = new stream_1.Readable({ objectMode: true, read: () => { } });
        source
            .once('error', (error) => destination.emit('error', error))
            .on('data', (entry) => destination.emit('data', options.transform(entry)))
            .once('end', () => destination.emit('end'));
        destination
            .once('close', () => source.destroy());
        return destination;
    }
    api(root, task, options) {
        if (task.dynamic) {
            return this._reader.dynamic(root, options);
        }
        return this._reader.static(task.patterns, options);
    }
}
exports.default = ProviderStream;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const sync_1 = require("../readers/sync");
const provider_1 = require("./provider");
class ProviderSync extends provider_1.default {
    constructor() {
        super(...arguments);
        this._reader = new sync_1.default(this._settings);
    }
    read(task) {
        const root = this._getRootDirectory(task);
        const options = this._getReaderOptions(task);
        const entries = this.api(root, task, options);
        return entries.map(options.transform);
    }
    api(root, task, options) {
        if (task.dynamic) {
            return this._reader.dynamic(root, options);
        }
        return this._reader.static(task.patterns, options);
    }
}
exports.default = ProviderSync;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const utils = require("../../utils");
class EntryTransformer {
    constructor(_settings) {
        this._settings = _settings;
    }
    getTransformer() {
        return (entry) => this._transform(entry);
    }
    _transform(entry) {
        let filepath = entry.path;
        if (this._settings.absolute) {
            filepath = utils.path.makeAbsolute(this._settings.cwd, filepath);
            filepath = utils.path.unixify(filepath);
        }
        if (this._settings.markDirectories && entry.dirent.isDirectory()) {
            filepath += '/';
        }
        if (!this._settings.objectMode) {
            return filepath;
        }
        return Object.assign(Object.assign({}, entry), { path: filepath });
    }
}
exports.default = EntryTransformer;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const utils = require("../../utils");
class Matcher {
    constructor(_patterns, _settings, _micromatchOptions) {
        this._patterns = _patterns;
        this._settings = _settings;
        this._micromatchOptions = _micromatchOptions;
        this._storage = [];
        this._fillStorage();
    }
    _fillStorage() {
        /**
         * The original pattern may include `{,*,**,a/*}`, which will lead to problems with matching (unresolved level).
         * So, before expand patterns with brace expansion into separated patterns.
         */
        const patterns = utils.pattern.expandPatternsWithBraceExpansion(this._patterns);
        for (const pattern of patterns) {
            const segments = this._getPatternSegments(pattern);
            const sections = this._splitSegmentsIntoSections(segments);
            this._storage.push({
                complete: sections.length <= 1,
                pattern,
                segments,
                sections
            });
        }
    }
    _getPatternSegments(pattern) {
        const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions);
        return parts.map((part) => {
            const dynamic = utils.pattern.isDynamicPattern(part, this._settings);
            if (!dynamic) {
                return {
                    dynamic: false,
                    pattern: part
                };
            }
            return {
                dynamic: true,
                pattern: part,
                patternRe: utils.pattern.makeRe(part, this._micromatchOptions)
            };
        });
    }
    _splitSegmentsIntoSections(segments) {
        return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern));
    }
}
exports.default = Matcher;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const matcher_1 = require("./matcher");
class PartialMatcher extends matcher_1.default {
    match(filepath) {
        const parts = filepath.split('/');
        const levels = parts.length;
        const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels);
        for (const pattern of patterns) {
            const section = pattern.sections[0];
            /**
             * In this case, the pattern has a globstar and we must read all directories unconditionally,
             * but only if the level has reached the end of the first group.
             *
             * fixtures/{a,b}/**
             *  ^ true/false  ^ always true
            */
            if (!pattern.complete && levels > section.length) {
                return true;
            }
            const match = parts.every((part, index) => {
                const segment = pattern.segments[index];
                if (segment.dynamic && segment.patternRe.test(part)) {
                    return true;
                }
                if (!segment.dynamic && segment.pattern === part) {
                    return true;
                }
                return false;
            });
            if (match) {
                return true;
            }
        }
        return false;
    }
}
exports.default = PartialMatcher;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const utils = require("../../utils");
const partial_1 = require("../matchers/partial");
class DeepFilter {
    constructor(_settings, _micromatchOptions) {
        this._settings = _settings;
        this._micromatchOptions = _micromatchOptions;
    }
    getFilter(basePath, positive, negative) {
        const matcher = this._getMatcher(positive);
        const negativeRe = this._getNegativePatternsRe(negative);
        return (entry) => this._filter(basePath, entry, matcher, negativeRe);
    }
    _getMatcher(patterns) {
        return new partial_1.default(patterns, this._settings, this._micromatchOptions);
    }
    _getNegativePatternsRe(patterns) {
        const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern);
        return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions);
    }
    _filter(basePath, entry, matcher, negativeRe) {
        if (this._isSkippedByDeep(basePath, entry.path)) {
            return false;
        }
        if (this._isSkippedSymbolicLink(entry)) {
            return false;
        }
        const filepath = utils.path.removeLeadingDotSegment(entry.path);
        if (this._isSkippedByPositivePatterns(filepath, matcher)) {
            return false;
        }
        return this._isSkippedByNegativePatterns(filepath, negativeRe);
    }
    _isSkippedByDeep(basePath, entryPath) {
        /**
         * Avoid unnecessary depth calculations when it doesn't matter.
         */
        if (this._settings.deep === Infinity) {
            return false;
        }
        return this._getEntryLevel(basePath, entryPath) >= this._settings.deep;
    }
    _getEntryLevel(basePath, entryPath) {
        const entryPathDepth = entryPath.split('/').length;
        if (basePath === '') {
            return entryPathDepth;
        }
        const basePathDepth = basePath.split('/').length;
        return entryPathDepth - basePathDepth;
    }
    _isSkippedSymbolicLink(entry) {
        return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink();
    }
    _isSkippedByPositivePatterns(entryPath, matcher) {
        return !this._settings.baseNameMatch && !matcher.match(entryPath);
    }
    _isSkippedByNegativePatterns(entryPath, patternsRe) {
        return !utils.pattern.matchAny(entryPath, patternsRe);
    }
}
exports.default = DeepFilter;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const utils = require("../../utils");
class EntryFilter {
    constructor(_settings, _micromatchOptions) {
        this._settings = _settings;
        this._micromatchOptions = _micromatchOptions;
        this.index = new Map();
    }
    getFilter(positive, negative) {
        const positiveRe = utils.pattern.convertPatternsToRe(positive, this._micromatchOptions);
        const negativeRe = utils.pattern.convertPatternsToRe(negative, this._micromatchOptions);
        return (entry) => this._filter(entry, positiveRe, negativeRe);
    }
    _filter(entry, positiveRe, negativeRe) {
        if (this._settings.unique && this._isDuplicateEntry(entry)) {
            return false;
        }
        if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) {
            return false;
        }
        if (this._isSkippedByAbsoluteNegativePatterns(entry.path, negativeRe)) {
            return false;
        }
        const filepath = this._settings.baseNameMatch ? entry.name : entry.path;
        const isMatched = this._isMatchToPatterns(filepath, positiveRe) && !this._isMatchToPatterns(entry.path, negativeRe);
        if (this._settings.unique && isMatched) {
            this._createIndexRecord(entry);
        }
        return isMatched;
    }
    _isDuplicateEntry(entry) {
        return this.index.has(entry.path);
    }
    _createIndexRecord(entry) {
        this.index.set(entry.path, undefined);
    }
    _onlyFileFilter(entry) {
        return this._settings.onlyFiles && !entry.dirent.isFile();
    }
    _onlyDirectoryFilter(entry) {
        return this._settings.onlyDirectories && !entry.dirent.isDirectory();
    }
    _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) {
        if (!this._settings.absolute) {
            return false;
        }
        const fullpath = utils.path.makeAbsolute(this._settings.cwd, entryPath);
        return utils.pattern.matchAny(fullpath, patternsRe);
    }
    /**
     * First, just trying to apply patterns to the path.
     * Second, trying to apply patterns to the path with final slash.
     */
    _isMatchToPatterns(entryPath, patternsRe) {
        const filepath = utils.path.removeLeadingDotSegment(entryPath);
        return utils.pattern.matchAny(filepath, patternsRe) || utils.pattern.matchAny(filepath + '/', patternsRe);
    }
}
exports.default = EntryFilter;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const utils = require("../../utils");
class ErrorFilter {
    constructor(_settings) {
        this._settings = _settings;
    }
    getFilter() {
        return (error) => this._isNonFatalError(error);
    }
    _isNonFatalError(error) {
        return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors;
    }
}
exports.default = ErrorFilter;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.removeDuplicateSlashes = exports.transform = void 0;
/**
 * Matches a sequence of two or more consecutive slashes, excluding the first two slashes at the beginning of the string.
 * The latter is due to the presence of the device path at the beginning of the UNC path.
 * @todo rewrite to negative lookbehind with the next major release.
 */
const DOUBLE_SLASH_RE = /(?!^)\/{2,}/g;
function transform(patterns) {
    return patterns.map((pattern) => removeDuplicateSlashes(pattern));
}
exports.transform = transform;
/**
 * This package only works with forward slashes as a path separator.
 * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes.
 */
function removeDuplicateSlashes(pattern) {
    return pattern.replace(DOUBLE_SLASH_RE, '/');
}
exports.removeDuplicateSlashes = removeDuplicateSlashes;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0;
const utils = require("../utils");
function generate(patterns, settings) {
    const positivePatterns = getPositivePatterns(patterns);
    const negativePatterns = getNegativePatternsAsPositive(patterns, settings.ignore);
    const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings));
    const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings));
    const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false);
    const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true);
    return staticTasks.concat(dynamicTasks);
}
exports.generate = generate;
/**
 * Returns tasks grouped by basic pattern directories.
 *
 * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately.
 * This is necessary because directory traversal starts at the base directory and goes deeper.
 */
function convertPatternsToTasks(positive, negative, dynamic) {
    const tasks = [];
    const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive);
    const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive);
    const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory);
    const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory);
    tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic));
    /*
     * For the sake of reducing future accesses to the file system, we merge all tasks within the current directory
     * into a global task, if at least one pattern refers to the root (`.`). In this case, the global task covers the rest.
     */
    if ('.' in insideCurrentDirectoryGroup) {
        tasks.push(convertPatternGroupToTask('.', patternsInsideCurrentDirectory, negative, dynamic));
    }
    else {
        tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic));
    }
    return tasks;
}
exports.convertPatternsToTasks = convertPatternsToTasks;
function getPositivePatterns(patterns) {
    return utils.pattern.getPositivePatterns(patterns);
}
exports.getPositivePatterns = getPositivePatterns;
function getNegativePatternsAsPositive(patterns, ignore) {
    const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore);
    const positive = negative.map(utils.pattern.convertToPositivePattern);
    return positive;
}
exports.getNegativePatternsAsPositive = getNegativePatternsAsPositive;
function groupPatternsByBaseDirectory(patterns) {
    const group = {};
    return patterns.reduce((collection, pattern) => {
        const base = utils.pattern.getBaseDirectory(pattern);
        if (base in collection) {
            collection[base].push(pattern);
        }
        else {
            collection[base] = [pattern];
        }
        return collection;
    }, group);
}
exports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory;
function convertPatternGroupsToTasks(positive, negative, dynamic) {
    return Object.keys(positive).map((base) => {
        return convertPatternGroupToTask(base, positive[base], negative, dynamic);
    });
}
exports.convertPatternGroupsToTasks = convertPatternGroupsToTasks;
function convertPatternGroupToTask(base, positive, negative, dynamic) {
    return {
        dynamic,
        positive,
        negative,
        base,
        patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern))
    };
}
exports.convertPatternGroupToTask = convertPatternGroupToTask;
Copyright (c) 2015-2020, Matteo Collina <matteo.collina@gmail.com>

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
'use strict'

const max = 1000000
const fastqueue = require('./')(worker, 1)
const { promisify } = require('util')
const immediate = promisify(setImmediate)
const qPromise = require('./').promise(immediate, 1)
const async = require('async')
const neo = require('neo-async')
const asyncqueue = async.queue(worker, 1)
const neoqueue = neo.queue(worker, 1)

function bench (func, done) {
  const key = max + '*' + func.name
  let count = -1

  console.time(key)
  end()

  function end () {
    if (++count < max) {
      func(end)
    } else {
      console.timeEnd(key)
      if (done) {
        done()
      }
    }
  }
}

function benchFastQ (done) {
  fastqueue.push(42, done)
}

function benchAsyncQueue (done) {
  asyncqueue.push(42, done)
}

function benchNeoQueue (done) {
  neoqueue.push(42, done)
}

function worker (arg, cb) {
  setImmediate(cb)
}

function benchSetImmediate (cb) {
  worker(42, cb)
}

function benchFastQPromise (done) {
  qPromise.push(42).then(function () { done() }, done)
}

function runBench (done) {
  async.eachSeries([
    benchSetImmediate,
    benchFastQ,
    benchNeoQueue,
    benchAsyncQueue,
    benchFastQPromise
  ], bench, done)
}

runBench(runBench)
'use strict'

/* eslint-disable no-var */

var queue = require('./')(worker, 1)

queue.push(42, function (err, result) {
  if (err) { throw err }
  console.log('the result is', result)
})

function worker (arg, cb) {
  cb(null, 42 * 2)
}
import { promise as queueAsPromised } from './queue.js'

/* eslint-disable */

const queue = queueAsPromised(worker, 1)

console.log('the result is', await queue.push(42))

async function worker (arg) {
  return 42 * 2
}
{
  "name": "fastq",
  "version": "1.13.0",
  "description": "Fast, in memory work queue",
  "main": "queue.js",
  "pre-commit": [
    "test"
  ],
  "repository": {
    "type": "git",
    "url": "git+https://github.com/mcollina/fastq.git"
  },
  "author": "Matteo Collina <hello@matteocollina.com>",
  "license": "ISC",
  "homepage": "https://github.com/mcollina/fastq#readme",
  "devDependencies": {
    "async": "^3.1.0",
    "neo-async": "^2.6.1",
    "nyc": "^15.0.0",
    "pre-commit": "^1.2.2",
    "snazzy": "^9.0.0",
    "standard": "^16.0.0",
    "tape": "^5.0.0",
    "typescript": "^4.0.2"
  },
  "dependencies": {
    "reusify": "^1.0.4"
  },
  "standard": {
    "ignore": [
      "example.mjs"
    ]
  }
}'use strict'

/* eslint-disable no-var */

var reusify = require('reusify')

function fastqueue (context, worker, concurrency) {
  if (typeof context === 'function') {
    concurrency = worker
    worker = context
    context = null
  }

  if (concurrency < 1) {
    throw new Error('fastqueue concurrency must be greater than 1')
  }

  var cache = reusify(Task)
  var queueHead = null
  var queueTail = null
  var _running = 0
  var errorHandler = null

  var self = {
    push: push,
    drain: noop,
    saturated: noop,
    pause: pause,
    paused: false,
    concurrency: concurrency,
    running: running,
    resume: resume,
    idle: idle,
    length: length,
    getQueue: getQueue,
    unshift: unshift,
    empty: noop,
    kill: kill,
    killAndDrain: killAndDrain,
    error: error
  }

  return self

  function running () {
    return _running
  }

  function pause () {
    self.paused = true
  }

  function length () {
    var current = queueHead
    var counter = 0

    while (current) {
      current = current.next
      counter++
    }

    return counter
  }

  function getQueue () {
    var current = queueHead
    var tasks = []

    while (current) {
      tasks.push(current.value)
      current = current.next
    }

    return tasks
  }

  function resume () {
    if (!self.paused) return
    self.paused = false
    for (var i = 0; i < self.concurrency; i++) {
      _running++
      release()
    }
  }

  function idle () {
    return _running === 0 && self.length() === 0
  }

  function push (value, done) {
    var current = cache.get()

    current.context = context
    current.release = release
    current.value = value
    current.callback = done || noop
    current.errorHandler = errorHandler

    if (_running === self.concurrency || self.paused) {
      if (queueTail) {
        queueTail.next = current
        queueTail = current
      } else {
        queueHead = current
        queueTail = current
        self.saturated()
      }
    } else {
      _running++
      worker.call(context, current.value, current.worked)
    }
  }

  function unshift (value, done) {
    var current = cache.get()

    current.context = context
    current.release = release
    current.value = value
    current.callback = done || noop

    if (_running === self.concurrency || self.paused) {
      if (queueHead) {
        current.next = queueHead
        queueHead = current
      } else {
        queueHead = current
        queueTail = current
        self.saturated()
      }
    } else {
      _running++
      worker.call(context, current.value, current.worked)
    }
  }

  function release (holder) {
    if (holder) {
      cache.release(holder)
    }
    var next = queueHead
    if (next) {
      if (!self.paused) {
        if (queueTail === queueHead) {
          queueTail = null
        }
        queueHead = next.next
        next.next = null
        worker.call(context, next.value, next.worked)
        if (queueTail === null) {
          self.empty()
        }
      } else {
        _running--
      }
    } else if (--_running === 0) {
      self.drain()
    }
  }

  function kill () {
    queueHead = null
    queueTail = null
    self.drain = noop
  }

  function killAndDrain () {
    queueHead = null
    queueTail = null
    self.drain()
    self.drain = noop
  }

  function error (handler) {
    errorHandler = handler
  }
}

function noop () {}

function Task () {
  this.value = null
  this.callback = noop
  this.next = null
  this.release = noop
  this.context = null
  this.errorHandler = null

  var self = this

  this.worked = function worked (err, result) {
    var callback = self.callback
    var errorHandler = self.errorHandler
    var val = self.value
    self.value = null
    self.callback = noop
    if (self.errorHandler) {
      errorHandler(err, val)
    }
    callback.call(self.context, err, result)
    self.release(self)
  }
}

function queueAsPromised (context, worker, concurrency) {
  if (typeof context === 'function') {
    concurrency = worker
    worker = context
    context = null
  }

  function asyncWrapper (arg, cb) {
    worker.call(this, arg)
      .then(function (res) {
        cb(null, res)
      }, cb)
  }

  var queue = fastqueue(context, asyncWrapper, concurrency)

  var pushCb = queue.push
  var unshiftCb = queue.unshift

  queue.push = push
  queue.unshift = unshift
  queue.drained = drained

  return queue

  function push (value) {
    var p = new Promise(function (resolve, reject) {
      pushCb(value, function (err, result) {
        if (err) {
          reject(err)
          return
        }
        resolve(result)
      })
    })

    // Let's fork the promise chain to
    // make the error bubble up to the user but
    // not lead to a unhandledRejection
    p.catch(noop)

    return p
  }

  function unshift (value) {
    var p = new Promise(function (resolve, reject) {
      unshiftCb(value, function (err, result) {
        if (err) {
          reject(err)
          return
        }
        resolve(result)
      })
    })

    // Let's fork the promise chain to
    // make the error bubble up to the user but
    // not lead to a unhandledRejection
    p.catch(noop)

    return p
  }

  function drained () {
    var previousDrain = queue.drain

    var p = new Promise(function (resolve) {
      queue.drain = function () {
        previousDrain()
        resolve()
      }
    })

    return p
  }
}

module.exports = fastqueue
module.exports.promise = queueAsPromised
The MIT License (MIT)

Copyright (c) 2014-present, Jon Schlinkert.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
/*!
 * fill-range <https://github.com/jonschlinkert/fill-range>
 *
 * Copyright (c) 2014-present, Jon Schlinkert.
 * Licensed under the MIT License.
 */

'use strict';

const util = require('util');
const toRegexRange = require('to-regex-range');

const isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);

const transform = toNumber => {
  return value => toNumber === true ? Number(value) : String(value);
};

const isValidValue = value => {
  return typeof value === 'number' || (typeof value === 'string' && value !== '');
};

const isNumber = num => Number.isInteger(+num);

const zeros = input => {
  let value = `${input}`;
  let index = -1;
  if (value[0] === '-') value = value.slice(1);
  if (value === '0') return false;
  while (value[++index] === '0');
  return index > 0;
};

const stringify = (start, end, options) => {
  if (typeof start === 'string' || typeof end === 'string') {
    return true;
  }
  return options.stringify === true;
};

const pad = (input, maxLength, toNumber) => {
  if (maxLength > 0) {
    let dash = input[0] === '-' ? '-' : '';
    if (dash) input = input.slice(1);
    input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0'));
  }
  if (toNumber === false) {
    return String(input);
  }
  return input;
};

const toMaxLen = (input, maxLength) => {
  let negative = input[0] === '-' ? '-' : '';
  if (negative) {
    input = input.slice(1);
    maxLength--;
  }
  while (input.length < maxLength) input = '0' + input;
  return negative ? ('-' + input) : input;
};

const toSequence = (parts, options, maxLen) => {
  parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
  parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);

  let prefix = options.capture ? '' : '?:';
  let positives = '';
  let negatives = '';
  let result;

  if (parts.positives.length) {
    positives = parts.positives.map(v => toMaxLen(String(v), maxLen)).join('|');
  }

  if (parts.negatives.length) {
    negatives = `-(${prefix}${parts.negatives.map(v => toMaxLen(String(v), maxLen)).join('|')})`;
  }

  if (positives && negatives) {
    result = `${positives}|${negatives}`;
  } else {
    result = positives || negatives;
  }

  if (options.wrap) {
    return `(${prefix}${result})`;
  }

  return result;
};

const toRange = (a, b, isNumbers, options) => {
  if (isNumbers) {
    return toRegexRange(a, b, { wrap: false, ...options });
  }

  let start = String.fromCharCode(a);
  if (a === b) return start;

  let stop = String.fromCharCode(b);
  return `[${start}-${stop}]`;
};

const toRegex = (start, end, options) => {
  if (Array.isArray(start)) {
    let wrap = options.wrap === true;
    let prefix = options.capture ? '' : '?:';
    return wrap ? `(${prefix}${start.join('|')})` : start.join('|');
  }
  return toRegexRange(start, end, options);
};

const rangeError = (...args) => {
  return new RangeError('Invalid range arguments: ' + util.inspect(...args));
};

const invalidRange = (start, end, options) => {
  if (options.strictRanges === true) throw rangeError([start, end]);
  return [];
};

const invalidStep = (step, options) => {
  if (options.strictRanges === true) {
    throw new TypeError(`Expected step "${step}" to be a number`);
  }
  return [];
};

const fillNumbers = (start, end, step = 1, options = {}) => {
  let a = Number(start);
  let b = Number(end);

  if (!Number.isInteger(a) || !Number.isInteger(b)) {
    if (options.strictRanges === true) throw rangeError([start, end]);
    return [];
  }

  // fix negative zero
  if (a === 0) a = 0;
  if (b === 0) b = 0;

  let descending = a > b;
  let startString = String(start);
  let endString = String(end);
  let stepString = String(step);
  step = Math.max(Math.abs(step), 1);

  let padded = zeros(startString) || zeros(endString) || zeros(stepString);
  let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0;
  let toNumber = padded === false && stringify(start, end, options) === false;
  let format = options.transform || transform(toNumber);

  if (options.toRegex && step === 1) {
    return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options);
  }

  let parts = { negatives: [], positives: [] };
  let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num));
  let range = [];
  let index = 0;

  while (descending ? a >= b : a <= b) {
    if (options.toRegex === true && step > 1) {
      push(a);
    } else {
      range.push(pad(format(a, index), maxLen, toNumber));
    }
    a = descending ? a - step : a + step;
    index++;
  }

  if (options.toRegex === true) {
    return step > 1
      ? toSequence(parts, options, maxLen)
      : toRegex(range, null, { wrap: false, ...options });
  }

  return range;
};

const fillLetters = (start, end, step = 1, options = {}) => {
  if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) {
    return invalidRange(start, end, options);
  }

  let format = options.transform || (val => String.fromCharCode(val));
  let a = `${start}`.charCodeAt(0);
  let b = `${end}`.charCodeAt(0);

  let descending = a > b;
  let min = Math.min(a, b);
  let max = Math.max(a, b);

  if (options.toRegex && step === 1) {
    return toRange(min, max, false, options);
  }

  let range = [];
  let index = 0;

  while (descending ? a >= b : a <= b) {
    range.push(format(a, index));
    a = descending ? a - step : a + step;
    index++;
  }

  if (options.toRegex === true) {
    return toRegex(range, null, { wrap: false, options });
  }

  return range;
};

const fill = (start, end, step, options = {}) => {
  if (end == null && isValidValue(start)) {
    return [start];
  }

  if (!isValidValue(start) || !isValidValue(end)) {
    return invalidRange(start, end, options);
  }

  if (typeof step === 'function') {
    return fill(start, end, 1, { transform: step });
  }

  if (isObject(step)) {
    return fill(start, end, 0, step);
  }

  let opts = { ...options };
  if (opts.capture === true) opts.wrap = true;
  step = step || opts.step || 1;

  if (!isNumber(step)) {
    if (step != null && !isObject(step)) return invalidStep(step, opts);
    return fill(start, end, 1, step);
  }

  if (isNumber(start) && isNumber(end)) {
    return fillNumbers(start, end, step, opts);
  }

  return fillLetters(start, end, Math.max(Math.abs(step), 1), opts);
};

module.exports = fill;
{
  "name": "fill-range",
  "description": "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`",
  "version": "7.1.1",
  "homepage": "https://github.com/jonschlinkert/fill-range",
  "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
  "repository": "jonschlinkert/fill-range",
  "license": "MIT",
  "files": [
    "index.js"
  ],
  "main": "index.js",
  "engines": {
    "node": ">=8"
  },
  "dependencies": {
    "to-regex-range": "^5.0.1"
  },
  "devDependencies": {
    "gulp-format-md": "^2.0.0",
    "mocha": "^6.1.1",
    "nyc": "^15.1.0"
  },
  "verb": {
    "toc": false,
    "layout": "default",
    "tasks": [
      "readme"
    ],
    "plugins": [
      "gulp-format-md"
    ],
    "lint": {
      "reflinks": true
    }
  }
}The ISC License

Copyright (c) Isaac Z. Schlueter and Contributors

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

----

This library bundles a version of the `fs.realpath` and `fs.realpathSync`
methods from Node.js v0.10 under the terms of the Node.js MIT license.

Node's license follows, also included at the header of `old.js` which contains
the licensed code:

  Copyright Joyent, Inc. and other Node contributors.

  Permission is hereby granted, free of charge, to any person obtaining a
  copy of this software and associated documentation files (the "Software"),
  to deal in the Software without restriction, including without limitation
  the rights to use, copy, modify, merge, publish, distribute, sublicense,
  and/or sell copies of the Software, and to permit persons to whom the
  Software is furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in
  all copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  DEALINGS IN THE SOFTWARE.
module.exports = realpath
realpath.realpath = realpath
realpath.sync = realpathSync
realpath.realpathSync = realpathSync
realpath.monkeypatch = monkeypatch
realpath.unmonkeypatch = unmonkeypatch

var fs = require('fs')
var origRealpath = fs.realpath
var origRealpathSync = fs.realpathSync

var version = process.version
var ok = /^v[0-5]\./.test(version)
var old = require('./old.js')

function newError (er) {
  return er && er.syscall === 'realpath' && (
    er.code === 'ELOOP' ||
    er.code === 'ENOMEM' ||
    er.code === 'ENAMETOOLONG'
  )
}

function realpath (p, cache, cb) {
  if (ok) {
    return origRealpath(p, cache, cb)
  }

  if (typeof cache === 'function') {
    cb = cache
    cache = null
  }
  origRealpath(p, cache, function (er, result) {
    if (newError(er)) {
      old.realpath(p, cache, cb)
    } else {
      cb(er, result)
    }
  })
}

function realpathSync (p, cache) {
  if (ok) {
    return origRealpathSync(p, cache)
  }

  try {
    return origRealpathSync(p, cache)
  } catch (er) {
    if (newError(er)) {
      return old.realpathSync(p, cache)
    } else {
      throw er
    }
  }
}

function monkeypatch () {
  fs.realpath = realpath
  fs.realpathSync = realpathSync
}

function unmonkeypatch () {
  fs.realpath = origRealpath
  fs.realpathSync = origRealpathSync
}
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.

var pathModule = require('path');
var isWindows = process.platform === 'win32';
var fs = require('fs');

// JavaScript implementation of realpath, ported from node pre-v6

var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG);

function rethrow() {
  // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and
  // is fairly slow to generate.
  var callback;
  if (DEBUG) {
    var backtrace = new Error;
    callback = debugCallback;
  } else
    callback = missingCallback;

  return callback;

  function debugCallback(err) {
    if (err) {
      backtrace.message = err.message;
      err = backtrace;
      missingCallback(err);
    }
  }

  function missingCallback(err) {
    if (err) {
      if (process.throwDeprecation)
        throw err;  // Forgot a callback but don't know where? Use NODE_DEBUG=fs
      else if (!process.noDeprecation) {
        var msg = 'fs: missing callback ' + (err.stack || err.message);
        if (process.traceDeprecation)
          console.trace(msg);
        else
          console.error(msg);
      }
    }
  }
}

function maybeCallback(cb) {
  return typeof cb === 'function' ? cb : rethrow();
}

var normalize = pathModule.normalize;

// Regexp that finds the next partion of a (partial) path
// result is [base_with_slash, base], e.g. ['somedir/', 'somedir']
if (isWindows) {
  var nextPartRe = /(.*?)(?:[\/\\]+|$)/g;
} else {
  var nextPartRe = /(.*?)(?:[\/]+|$)/g;
}

// Regex to find the device root, including trailing slash. E.g. 'c:\\'.
if (isWindows) {
  var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/;
} else {
  var splitRootRe = /^[\/]*/;
}

exports.realpathSync = function realpathSync(p, cache) {
  // make p is absolute
  p = pathModule.resolve(p);

  if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
    return cache[p];
  }

  var original = p,
      seenLinks = {},
      knownHard = {};

  // current character position in p
  var pos;
  // the partial path so far, including a trailing slash if any
  var current;
  // the partial path without a trailing slash (except when pointing at a root)
  var base;
  // the partial path scanned in the previous round, with slash
  var previous;

  start();

  function start() {
    // Skip over roots
    var m = splitRootRe.exec(p);
    pos = m[0].length;
    current = m[0];
    base = m[0];
    previous = '';

    // On windows, check that the root exists. On unix there is no need.
    if (isWindows && !knownHard[base]) {
      fs.lstatSync(base);
      knownHard[base] = true;
    }
  }

  // walk down the path, swapping out linked pathparts for their real
  // values
  // NB: p.length changes.
  while (pos < p.length) {
    // find the next part
    nextPartRe.lastIndex = pos;
    var result = nextPartRe.exec(p);
    previous = current;
    current += result[0];
    base = previous + result[1];
    pos = nextPartRe.lastIndex;

    // continue if not a symlink
    if (knownHard[base] || (cache && cache[base] === base)) {
      continue;
    }

    var resolvedLink;
    if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
      // some known symbolic link.  no need to stat again.
      resolvedLink = cache[base];
    } else {
      var stat = fs.lstatSync(base);
      if (!stat.isSymbolicLink()) {
        knownHard[base] = true;
        if (cache) cache[base] = base;
        continue;
      }

      // read the link if it wasn't read before
      // dev/ino always return 0 on windows, so skip the check.
      var linkTarget = null;
      if (!isWindows) {
        var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
        if (seenLinks.hasOwnProperty(id)) {
          linkTarget = seenLinks[id];
        }
      }
      if (linkTarget === null) {
        fs.statSync(base);
        linkTarget = fs.readlinkSync(base);
      }
      resolvedLink = pathModule.resolve(previous, linkTarget);
      // track this, if given a cache.
      if (cache) cache[base] = resolvedLink;
      if (!isWindows) seenLinks[id] = linkTarget;
    }

    // resolve the link, then start over
    p = pathModule.resolve(resolvedLink, p.slice(pos));
    start();
  }

  if (cache) cache[original] = p;

  return p;
};


exports.realpath = function realpath(p, cache, cb) {
  if (typeof cb !== 'function') {
    cb = maybeCallback(cache);
    cache = null;
  }

  // make p is absolute
  p = pathModule.resolve(p);

  if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
    return process.nextTick(cb.bind(null, null, cache[p]));
  }

  var original = p,
      seenLinks = {},
      knownHard = {};

  // current character position in p
  var pos;
  // the partial path so far, including a trailing slash if any
  var current;
  // the partial path without a trailing slash (except when pointing at a root)
  var base;
  // the partial path scanned in the previous round, with slash
  var previous;

  start();

  function start() {
    // Skip over roots
    var m = splitRootRe.exec(p);
    pos = m[0].length;
    current = m[0];
    base = m[0];
    previous = '';

    // On windows, check that the root exists. On unix there is no need.
    if (isWindows && !knownHard[base]) {
      fs.lstat(base, function(err) {
        if (err) return cb(err);
        knownHard[base] = true;
        LOOP();
      });
    } else {
      process.nextTick(LOOP);
    }
  }

  // walk down the path, swapping out linked pathparts for their real
  // values
  function LOOP() {
    // stop if scanned past end of path
    if (pos >= p.length) {
      if (cache) cache[original] = p;
      return cb(null, p);
    }

    // find the next part
    nextPartRe.lastIndex = pos;
    var result = nextPartRe.exec(p);
    previous = current;
    current += result[0];
    base = previous + result[1];
    pos = nextPartRe.lastIndex;

    // continue if not a symlink
    if (knownHard[base] || (cache && cache[base] === base)) {
      return process.nextTick(LOOP);
    }

    if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
      // known symbolic link.  no need to stat again.
      return gotResolvedLink(cache[base]);
    }

    return fs.lstat(base, gotStat);
  }

  function gotStat(err, stat) {
    if (err) return cb(err);

    // if not a symlink, skip to the next path part
    if (!stat.isSymbolicLink()) {
      knownHard[base] = true;
      if (cache) cache[base] = base;
      return process.nextTick(LOOP);
    }

    // stat & read the link if not read before
    // call gotTarget as soon as the link target is known
    // dev/ino always return 0 on windows, so skip the check.
    if (!isWindows) {
      var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
      if (seenLinks.hasOwnProperty(id)) {
        return gotTarget(null, seenLinks[id], base);
      }
    }
    fs.stat(base, function(err) {
      if (err) return cb(err);

      fs.readlink(base, function(err, target) {
        if (!isWindows) seenLinks[id] = target;
        gotTarget(err, target);
      });
    });
  }

  function gotTarget(err, target, base) {
    if (err) return cb(err);

    var resolvedLink = pathModule.resolve(previous, target);
    if (cache) cache[base] = resolvedLink;
    gotResolvedLink(resolvedLink);
  }

  function gotResolvedLink(resolvedLink) {
    // resolve the link, then start over
    p = pathModule.resolve(resolvedLink, p.slice(pos));
    start();
  }
};
{
  "name": "fs.realpath",
  "version": "1.0.0",
  "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails",
  "main": "index.js",
  "dependencies": {},
  "devDependencies": {},
  "repository": {
    "type": "git",
    "url": "git+https://github.com/isaacs/fs.realpath.git"
  },
  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
  "license": "ISC",
  "files": [
    "old.js",
    "index.js"
  ]
}The ISC License

Copyright (c) Isaac Z. Schlueter and Contributors

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

## Glob Logo

Glob's logo created by Tanya Brassie <http://tanyabrassie.com/>, licensed
under a Creative Commons Attribution-ShareAlike 4.0 International License
https://creativecommons.org/licenses/by-sa/4.0/
exports.setopts = setopts
exports.ownProp = ownProp
exports.makeAbs = makeAbs
exports.finish = finish
exports.mark = mark
exports.isIgnored = isIgnored
exports.childrenIgnored = childrenIgnored

function ownProp (obj, field) {
  return Object.prototype.hasOwnProperty.call(obj, field)
}

var fs = require("fs")
var path = require("path")
var minimatch = require("minimatch")
var isAbsolute = require("path-is-absolute")
var Minimatch = minimatch.Minimatch

function alphasort (a, b) {
  return a.localeCompare(b, 'en')
}

function setupIgnores (self, options) {
  self.ignore = options.ignore || []

  if (!Array.isArray(self.ignore))
    self.ignore = [self.ignore]

  if (self.ignore.length) {
    self.ignore = self.ignore.map(ignoreMap)
  }
}

// ignore patterns are always in dot:true mode.
function ignoreMap (pattern) {
  var gmatcher = null
  if (pattern.slice(-3) === '/**') {
    var gpattern = pattern.replace(/(\/\*\*)+$/, '')
    gmatcher = new Minimatch(gpattern, { dot: true })
  }

  return {
    matcher: new Minimatch(pattern, { dot: true }),
    gmatcher: gmatcher
  }
}

function setopts (self, pattern, options) {
  if (!options)
    options = {}

  // base-matching: just use globstar for that.
  if (options.matchBase && -1 === pattern.indexOf("/")) {
    if (options.noglobstar) {
      throw new Error("base matching requires globstar")
    }
    pattern = "**/" + pattern
  }

  self.silent = !!options.silent
  self.pattern = pattern
  self.strict = options.strict !== false
  self.realpath = !!options.realpath
  self.realpathCache = options.realpathCache || Object.create(null)
  self.follow = !!options.follow
  self.dot = !!options.dot
  self.mark = !!options.mark
  self.nodir = !!options.nodir
  if (self.nodir)
    self.mark = true
  self.sync = !!options.sync
  self.nounique = !!options.nounique
  self.nonull = !!options.nonull
  self.nosort = !!options.nosort
  self.nocase = !!options.nocase
  self.stat = !!options.stat
  self.noprocess = !!options.noprocess
  self.absolute = !!options.absolute
  self.fs = options.fs || fs

  self.maxLength = options.maxLength || Infinity
  self.cache = options.cache || Object.create(null)
  self.statCache = options.statCache || Object.create(null)
  self.symlinks = options.symlinks || Object.create(null)

  setupIgnores(self, options)

  self.changedCwd = false
  var cwd = process.cwd()
  if (!ownProp(options, "cwd"))
    self.cwd = cwd
  else {
    self.cwd = path.resolve(options.cwd)
    self.changedCwd = self.cwd !== cwd
  }

  self.root = options.root || path.resolve(self.cwd, "/")
  self.root = path.resolve(self.root)
  if (process.platform === "win32")
    self.root = self.root.replace(/\\/g, "/")

  // TODO: is an absolute `cwd` supposed to be resolved against `root`?
  // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test')
  self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd)
  if (process.platform === "win32")
    self.cwdAbs = self.cwdAbs.replace(/\\/g, "/")
  self.nomount = !!options.nomount

  // disable comments and negation in Minimatch.
  // Note that they are not supported in Glob itself anyway.
  options.nonegate = true
  options.nocomment = true

  self.minimatch = new Minimatch(pattern, options)
  self.options = self.minimatch.options
}

function finish (self) {
  var nou = self.nounique
  var all = nou ? [] : Object.create(null)

  for (var i = 0, l = self.matches.length; i < l; i ++) {
    var matches = self.matches[i]
    if (!matches || Object.keys(matches).length === 0) {
      if (self.nonull) {
        // do like the shell, and spit out the literal glob
        var literal = self.minimatch.globSet[i]
        if (nou)
          all.push(literal)
        else
          all[literal] = true
      }
    } else {
      // had matches
      var m = Object.keys(matches)
      if (nou)
        all.push.apply(all, m)
      else
        m.forEach(function (m) {
          all[m] = true
        })
    }
  }

  if (!nou)
    all = Object.keys(all)

  if (!self.nosort)
    all = all.sort(alphasort)

  // at *some* point we statted all of these
  if (self.mark) {
    for (var i = 0; i < all.length; i++) {
      all[i] = self._mark(all[i])
    }
    if (self.nodir) {
      all = all.filter(function (e) {
        var notDir = !(/\/$/.test(e))
        var c = self.cache[e] || self.cache[makeAbs(self, e)]
        if (notDir && c)
          notDir = c !== 'DIR' && !Array.isArray(c)
        return notDir
      })
    }
  }

  if (self.ignore.length)
    all = all.filter(function(m) {
      return !isIgnored(self, m)
    })

  self.found = all
}

function mark (self, p) {
  var abs = makeAbs(self, p)
  var c = self.cache[abs]
  var m = p
  if (c) {
    var isDir = c === 'DIR' || Array.isArray(c)
    var slash = p.slice(-1) === '/'

    if (isDir && !slash)
      m += '/'
    else if (!isDir && slash)
      m = m.slice(0, -1)

    if (m !== p) {
      var mabs = makeAbs(self, m)
      self.statCache[mabs] = self.statCache[abs]
      self.cache[mabs] = self.cache[abs]
    }
  }

  return m
}

// lotta situps...
function makeAbs (self, f) {
  var abs = f
  if (f.charAt(0) === '/') {
    abs = path.join(self.root, f)
  } else if (isAbsolute(f) || f === '') {
    abs = f
  } else if (self.changedCwd) {
    abs = path.resolve(self.cwd, f)
  } else {
    abs = path.resolve(f)
  }

  if (process.platform === 'win32')
    abs = abs.replace(/\\/g, '/')

  return abs
}


// Return true, if pattern ends with globstar '**', for the accompanying parent directory.
// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents
function isIgnored (self, path) {
  if (!self.ignore.length)
    return false

  return self.ignore.some(function(item) {
    return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))
  })
}

function childrenIgnored (self, path) {
  if (!self.ignore.length)
    return false

  return self.ignore.some(function(item) {
    return !!(item.gmatcher && item.gmatcher.match(path))
  })
}
// Approach:
//
// 1. Get the minimatch set
// 2. For each pattern in the set, PROCESS(pattern, false)
// 3. Store matches per-set, then uniq them
//
// PROCESS(pattern, inGlobStar)
// Get the first [n] items from pattern that are all strings
// Join these together.  This is PREFIX.
//   If there is no more remaining, then stat(PREFIX) and
//   add to matches if it succeeds.  END.
//
// If inGlobStar and PREFIX is symlink and points to dir
//   set ENTRIES = []
// else readdir(PREFIX) as ENTRIES
//   If fail, END
//
// with ENTRIES
//   If pattern[n] is GLOBSTAR
//     // handle the case where the globstar match is empty
//     // by pruning it out, and testing the resulting pattern
//     PROCESS(pattern[0..n] + pattern[n+1 .. $], false)
//     // handle other cases.
//     for ENTRY in ENTRIES (not dotfiles)
//       // attach globstar + tail onto the entry
//       // Mark that this entry is a globstar match
//       PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)
//
//   else // not globstar
//     for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
//       Test ENTRY against pattern[n]
//       If fails, continue
//       If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
//
// Caveat:
//   Cache all stats and readdirs results to minimize syscall.  Since all
//   we ever care about is existence and directory-ness, we can just keep
//   `true` for files, and [children,...] for directories, or `false` for
//   things that don't exist.

module.exports = glob

var rp = require('fs.realpath')
var minimatch = require('minimatch')
var Minimatch = minimatch.Minimatch
var inherits = require('inherits')
var EE = require('events').EventEmitter
var path = require('path')
var assert = require('assert')
var isAbsolute = require('path-is-absolute')
var globSync = require('./sync.js')
var common = require('./common.js')
var setopts = common.setopts
var ownProp = common.ownProp
var inflight = require('inflight')
var util = require('util')
var childrenIgnored = common.childrenIgnored
var isIgnored = common.isIgnored

var once = require('once')

function glob (pattern, options, cb) {
  if (typeof options === 'function') cb = options, options = {}
  if (!options) options = {}

  if (options.sync) {
    if (cb)
      throw new TypeError('callback provided to sync glob')
    return globSync(pattern, options)
  }

  return new Glob(pattern, options, cb)
}

glob.sync = globSync
var GlobSync = glob.GlobSync = globSync.GlobSync

// old api surface
glob.glob = glob

function extend (origin, add) {
  if (add === null || typeof add !== 'object') {
    return origin
  }

  var keys = Object.keys(add)
  var i = keys.length
  while (i--) {
    origin[keys[i]] = add[keys[i]]
  }
  return origin
}

glob.hasMagic = function (pattern, options_) {
  var options = extend({}, options_)
  options.noprocess = true

  var g = new Glob(pattern, options)
  var set = g.minimatch.set

  if (!pattern)
    return false

  if (set.length > 1)
    return true

  for (var j = 0; j < set[0].length; j++) {
    if (typeof set[0][j] !== 'string')
      return true
  }

  return false
}

glob.Glob = Glob
inherits(Glob, EE)
function Glob (pattern, options, cb) {
  if (typeof options === 'function') {
    cb = options
    options = null
  }

  if (options && options.sync) {
    if (cb)
      throw new TypeError('callback provided to sync glob')
    return new GlobSync(pattern, options)
  }

  if (!(this instanceof Glob))
    return new Glob(pattern, options, cb)

  setopts(this, pattern, options)
  this._didRealPath = false

  // process each pattern in the minimatch set
  var n = this.minimatch.set.length

  // The matches are stored as {<filename>: true,...} so that
  // duplicates are automagically pruned.
  // Later, we do an Object.keys() on these.
  // Keep them as a list so we can fill in when nonull is set.
  this.matches = new Array(n)

  if (typeof cb === 'function') {
    cb = once(cb)
    this.on('error', cb)
    this.on('end', function (matches) {
      cb(null, matches)
    })
  }

  var self = this
  this._processing = 0

  this._emitQueue = []
  this._processQueue = []
  this.paused = false

  if (this.noprocess)
    return this

  if (n === 0)
    return done()

  var sync = true
  for (var i = 0; i < n; i ++) {
    this._process(this.minimatch.set[i], i, false, done)
  }
  sync = false

  function done () {
    --self._processing
    if (self._processing <= 0) {
      if (sync) {
        process.nextTick(function () {
          self._finish()
        })
      } else {
        self._finish()
      }
    }
  }
}

Glob.prototype._finish = function () {
  assert(this instanceof Glob)
  if (this.aborted)
    return

  if (this.realpath && !this._didRealpath)
    return this._realpath()

  common.finish(this)
  this.emit('end', this.found)
}

Glob.prototype._realpath = function () {
  if (this._didRealpath)
    return

  this._didRealpath = true

  var n = this.matches.length
  if (n === 0)
    return this._finish()

  var self = this
  for (var i = 0; i < this.matches.length; i++)
    this._realpathSet(i, next)

  function next () {
    if (--n === 0)
      self._finish()
  }
}

Glob.prototype._realpathSet = function (index, cb) {
  var matchset = this.matches[index]
  if (!matchset)
    return cb()

  var found = Object.keys(matchset)
  var self = this
  var n = found.length

  if (n === 0)
    return cb()

  var set = this.matches[index] = Object.create(null)
  found.forEach(function (p, i) {
    // If there's a problem with the stat, then it means that
    // one or more of the links in the realpath couldn't be
    // resolved.  just return the abs value in that case.
    p = self._makeAbs(p)
    rp.realpath(p, self.realpathCache, function (er, real) {
      if (!er)
        set[real] = true
      else if (er.syscall === 'stat')
        set[p] = true
      else
        self.emit('error', er) // srsly wtf right here

      if (--n === 0) {
        self.matches[index] = set
        cb()
      }
    })
  })
}

Glob.prototype._mark = function (p) {
  return common.mark(this, p)
}

Glob.prototype._makeAbs = function (f) {
  return common.makeAbs(this, f)
}

Glob.prototype.abort = function () {
  this.aborted = true
  this.emit('abort')
}

Glob.prototype.pause = function () {
  if (!this.paused) {
    this.paused = true
    this.emit('pause')
  }
}

Glob.prototype.resume = function () {
  if (this.paused) {
    this.emit('resume')
    this.paused = false
    if (this._emitQueue.length) {
      var eq = this._emitQueue.slice(0)
      this._emitQueue.length = 0
      for (var i = 0; i < eq.length; i ++) {
        var e = eq[i]
        this._emitMatch(e[0], e[1])
      }
    }
    if (this._processQueue.length) {
      var pq = this._processQueue.slice(0)
      this._processQueue.length = 0
      for (var i = 0; i < pq.length; i ++) {
        var p = pq[i]
        this._processing--
        this._process(p[0], p[1], p[2], p[3])
      }
    }
  }
}

Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
  assert(this instanceof Glob)
  assert(typeof cb === 'function')

  if (this.aborted)
    return

  this._processing++
  if (this.paused) {
    this._processQueue.push([pattern, index, inGlobStar, cb])
    return
  }

  //console.error('PROCESS %d', this._processing, pattern)

  // Get the first [n] parts of pattern that are all strings.
  var n = 0
  while (typeof pattern[n] === 'string') {
    n ++
  }
  // now n is the index of the first one that is *not* a string.

  // see if there's anything else
  var prefix
  switch (n) {
    // if not, then this is rather simple
    case pattern.length:
      this._processSimple(pattern.join('/'), index, cb)
      return

    case 0:
      // pattern *starts* with some non-trivial item.
      // going to readdir(cwd), but not include the prefix in matches.
      prefix = null
      break

    default:
      // pattern has some string bits in the front.
      // whatever it starts with, whether that's 'absolute' like /foo/bar,
      // or 'relative' like '../baz'
      prefix = pattern.slice(0, n).join('/')
      break
  }

  var remain = pattern.slice(n)

  // get the list of entries.
  var read
  if (prefix === null)
    read = '.'
  else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
    if (!prefix || !isAbsolute(prefix))
      prefix = '/' + prefix
    read = prefix
  } else
    read = prefix

  var abs = this._makeAbs(read)

  //if ignored, skip _processing
  if (childrenIgnored(this, read))
    return cb()

  var isGlobStar = remain[0] === minimatch.GLOBSTAR
  if (isGlobStar)
    this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)
  else
    this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)
}

Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {
  var self = this
  this._readdir(abs, inGlobStar, function (er, entries) {
    return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
  })
}

Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {

  // if the abs isn't a dir, then nothing can match!
  if (!entries)
    return cb()

  // It will only match dot entries if it starts with a dot, or if
  // dot is set.  Stuff like @(.foo|.bar) isn't allowed.
  var pn = remain[0]
  var negate = !!this.minimatch.negate
  var rawGlob = pn._glob
  var dotOk = this.dot || rawGlob.charAt(0) === '.'

  var matchedEntries = []
  for (var i = 0; i < entries.length; i++) {
    var e = entries[i]
    if (e.charAt(0) !== '.' || dotOk) {
      var m
      if (negate && !prefix) {
        m = !e.match(pn)
      } else {
        m = e.match(pn)
      }
      if (m)
        matchedEntries.push(e)
    }
  }

  //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)

  var len = matchedEntries.length
  // If there are no matched entries, then nothing matches.
  if (len === 0)
    return cb()

  // if this is the last remaining pattern bit, then no need for
  // an additional stat *unless* the user has specified mark or
  // stat explicitly.  We know they exist, since readdir returned
  // them.

  if (remain.length === 1 && !this.mark && !this.stat) {
    if (!this.matches[index])
      this.matches[index] = Object.create(null)

    for (var i = 0; i < len; i ++) {
      var e = matchedEntries[i]
      if (prefix) {
        if (prefix !== '/')
          e = prefix + '/' + e
        else
          e = prefix + e
      }

      if (e.charAt(0) === '/' && !this.nomount) {
        e = path.join(this.root, e)
      }
      this._emitMatch(index, e)
    }
    // This was the last one, and no stats were needed
    return cb()
  }

  // now test all matched entries as stand-ins for that part
  // of the pattern.
  remain.shift()
  for (var i = 0; i < len; i ++) {
    var e = matchedEntries[i]
    var newPattern
    if (prefix) {
      if (prefix !== '/')
        e = prefix + '/' + e
      else
        e = prefix + e
    }
    this._process([e].concat(remain), index, inGlobStar, cb)
  }
  cb()
}

Glob.prototype._emitMatch = function (index, e) {
  if (this.aborted)
    return

  if (isIgnored(this, e))
    return

  if (this.paused) {
    this._emitQueue.push([index, e])
    return
  }

  var abs = isAbsolute(e) ? e : this._makeAbs(e)

  if (this.mark)
    e = this._mark(e)

  if (this.absolute)
    e = abs

  if (this.matches[index][e])
    return

  if (this.nodir) {
    var c = this.cache[abs]
    if (c === 'DIR' || Array.isArray(c))
      return
  }

  this.matches[index][e] = true

  var st = this.statCache[abs]
  if (st)
    this.emit('stat', e, st)

  this.emit('match', e)
}

Glob.prototype._readdirInGlobStar = function (abs, cb) {
  if (this.aborted)
    return

  // follow all symlinked directories forever
  // just proceed as if this is a non-globstar situation
  if (this.follow)
    return this._readdir(abs, false, cb)

  var lstatkey = 'lstat\0' + abs
  var self = this
  var lstatcb = inflight(lstatkey, lstatcb_)

  if (lstatcb)
    self.fs.lstat(abs, lstatcb)

  function lstatcb_ (er, lstat) {
    if (er && er.code === 'ENOENT')
      return cb()

    var isSym = lstat && lstat.isSymbolicLink()
    self.symlinks[abs] = isSym

    // If it's not a symlink or a dir, then it's definitely a regular file.
    // don't bother doing a readdir in that case.
    if (!isSym && lstat && !lstat.isDirectory()) {
      self.cache[abs] = 'FILE'
      cb()
    } else
      self._readdir(abs, false, cb)
  }
}

Glob.prototype._readdir = function (abs, inGlobStar, cb) {
  if (this.aborted)
    return

  cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb)
  if (!cb)
    return

  //console.error('RD %j %j', +inGlobStar, abs)
  if (inGlobStar && !ownProp(this.symlinks, abs))
    return this._readdirInGlobStar(abs, cb)

  if (ownProp(this.cache, abs)) {
    var c = this.cache[abs]
    if (!c || c === 'FILE')
      return cb()

    if (Array.isArray(c))
      return cb(null, c)
  }

  var self = this
  self.fs.readdir(abs, readdirCb(this, abs, cb))
}

function readdirCb (self, abs, cb) {
  return function (er, entries) {
    if (er)
      self._readdirError(abs, er, cb)
    else
      self._readdirEntries(abs, entries, cb)
  }
}

Glob.prototype._readdirEntries = function (abs, entries, cb) {
  if (this.aborted)
    return

  // if we haven't asked to stat everything, then just
  // assume that everything in there exists, so we can avoid
  // having to stat it a second time.
  if (!this.mark && !this.stat) {
    for (var i = 0; i < entries.length; i ++) {
      var e = entries[i]
      if (abs === '/')
        e = abs + e
      else
        e = abs + '/' + e
      this.cache[e] = true
    }
  }

  this.cache[abs] = entries
  return cb(null, entries)
}

Glob.prototype._readdirError = function (f, er, cb) {
  if (this.aborted)
    return

  // handle errors, and cache the information
  switch (er.code) {
    case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
    case 'ENOTDIR': // totally normal. means it *does* exist.
      var abs = this._makeAbs(f)
      this.cache[abs] = 'FILE'
      if (abs === this.cwdAbs) {
        var error = new Error(er.code + ' invalid cwd ' + this.cwd)
        error.path = this.cwd
        error.code = er.code
        this.emit('error', error)
        this.abort()
      }
      break

    case 'ENOENT': // not terribly unusual
    case 'ELOOP':
    case 'ENAMETOOLONG':
    case 'UNKNOWN':
      this.cache[this._makeAbs(f)] = false
      break

    default: // some unusual error.  Treat as failure.
      this.cache[this._makeAbs(f)] = false
      if (this.strict) {
        this.emit('error', er)
        // If the error is handled, then we abort
        // if not, we threw out of here
        this.abort()
      }
      if (!this.silent)
        console.error('glob error', er)
      break
  }

  return cb()
}

Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {
  var self = this
  this._readdir(abs, inGlobStar, function (er, entries) {
    self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
  })
}


Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
  //console.error('pgs2', prefix, remain[0], entries)

  // no entries means not a dir, so it can never have matches
  // foo.txt/** doesn't match foo.txt
  if (!entries)
    return cb()

  // test without the globstar, and with every child both below
  // and replacing the globstar.
  var remainWithoutGlobStar = remain.slice(1)
  var gspref = prefix ? [ prefix ] : []
  var noGlobStar = gspref.concat(remainWithoutGlobStar)

  // the noGlobStar pattern exits the inGlobStar state
  this._process(noGlobStar, index, false, cb)

  var isSym = this.symlinks[abs]
  var len = entries.length

  // If it's a symlink, and we're in a globstar, then stop
  if (isSym && inGlobStar)
    return cb()

  for (var i = 0; i < len; i++) {
    var e = entries[i]
    if (e.charAt(0) === '.' && !this.dot)
      continue

    // these two cases enter the inGlobStar state
    var instead = gspref.concat(entries[i], remainWithoutGlobStar)
    this._process(instead, index, true, cb)

    var below = gspref.concat(entries[i], remain)
    this._process(below, index, true, cb)
  }

  cb()
}

Glob.prototype._processSimple = function (prefix, index, cb) {
  // XXX review this.  Shouldn't it be doing the mounting etc
  // before doing stat?  kinda weird?
  var self = this
  this._stat(prefix, function (er, exists) {
    self._processSimple2(prefix, index, er, exists, cb)
  })
}
Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {

  //console.error('ps2', prefix, exists)

  if (!this.matches[index])
    this.matches[index] = Object.create(null)

  // If it doesn't exist, then just mark the lack of results
  if (!exists)
    return cb()

  if (prefix && isAbsolute(prefix) && !this.nomount) {
    var trail = /[\/\\]$/.test(prefix)
    if (prefix.charAt(0) === '/') {
      prefix = path.join(this.root, prefix)
    } else {
      prefix = path.resolve(this.root, prefix)
      if (trail)
        prefix += '/'
    }
  }

  if (process.platform === 'win32')
    prefix = prefix.replace(/\\/g, '/')

  // Mark this as a match
  this._emitMatch(index, prefix)
  cb()
}

// Returns either 'DIR', 'FILE', or false
Glob.prototype._stat = function (f, cb) {
  var abs = this._makeAbs(f)
  var needDir = f.slice(-1) === '/'

  if (f.length > this.maxLength)
    return cb()

  if (!this.stat && ownProp(this.cache, abs)) {
    var c = this.cache[abs]

    if (Array.isArray(c))
      c = 'DIR'

    // It exists, but maybe not how we need it
    if (!needDir || c === 'DIR')
      return cb(null, c)

    if (needDir && c === 'FILE')
      return cb()

    // otherwise we have to stat, because maybe c=true
    // if we know it exists, but not what it is.
  }

  var exists
  var stat = this.statCache[abs]
  if (stat !== undefined) {
    if (stat === false)
      return cb(null, stat)
    else {
      var type = stat.isDirectory() ? 'DIR' : 'FILE'
      if (needDir && type === 'FILE')
        return cb()
      else
        return cb(null, type, stat)
    }
  }

  var self = this
  var statcb = inflight('stat\0' + abs, lstatcb_)
  if (statcb)
    self.fs.lstat(abs, statcb)

  function lstatcb_ (er, lstat) {
    if (lstat && lstat.isSymbolicLink()) {
      // If it's a symlink, then treat it as the target, unless
      // the target does not exist, then treat it as a file.
      return self.fs.stat(abs, function (er, stat) {
        if (er)
          self._stat2(f, abs, null, lstat, cb)
        else
          self._stat2(f, abs, er, stat, cb)
      })
    } else {
      self._stat2(f, abs, er, lstat, cb)
    }
  }
}

Glob.prototype._stat2 = function (f, abs, er, stat, cb) {
  if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
    this.statCache[abs] = false
    return cb()
  }

  var needDir = f.slice(-1) === '/'
  this.statCache[abs] = stat

  if (abs.slice(-1) === '/' && stat && !stat.isDirectory())
    return cb(null, false, stat)

  var c = true
  if (stat)
    c = stat.isDirectory() ? 'DIR' : 'FILE'
  this.cache[abs] = this.cache[abs] || c

  if (needDir && c === 'FILE')
    return cb()

  return cb(null, c, stat)
}
{
  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
  "name": "glob",
  "description": "a little globber",
  "version": "7.2.0",
  "repository": {
    "type": "git",
    "url": "git://github.com/isaacs/node-glob.git"
  },
  "main": "glob.js",
  "files": [
    "glob.js",
    "sync.js",
    "common.js"
  ],
  "engines": {
    "node": "*"
  },
  "dependencies": {
    "fs.realpath": "^1.0.0",
    "inflight": "^1.0.4",
    "inherits": "2",
    "minimatch": "^3.0.4",
    "once": "^1.3.0",
    "path-is-absolute": "^1.0.0"
  },
  "devDependencies": {
    "memfs": "^3.2.0",
    "mkdirp": "0",
    "rimraf": "^2.2.8",
    "tap": "^15.0.6",
    "tick": "0.0.6"
  },
  "tap": {
    "before": "test/00-setup.js",
    "after": "test/zz-cleanup.js",
    "jobs": 1
  },
  "license": "ISC",
  "funding": {
    "url": "https://github.com/sponsors/isaacs"
  }
}module.exports = globSync
globSync.GlobSync = GlobSync

var rp = require('fs.realpath')
var minimatch = require('minimatch')
var Minimatch = minimatch.Minimatch
var Glob = require('./glob.js').Glob
var util = require('util')
var path = require('path')
var assert = require('assert')
var isAbsolute = require('path-is-absolute')
var common = require('./common.js')
var setopts = common.setopts
var ownProp = common.ownProp
var childrenIgnored = common.childrenIgnored
var isIgnored = common.isIgnored

function globSync (pattern, options) {
  if (typeof options === 'function' || arguments.length === 3)
    throw new TypeError('callback provided to sync glob\n'+
                        'See: https://github.com/isaacs/node-glob/issues/167')

  return new GlobSync(pattern, options).found
}

function GlobSync (pattern, options) {
  if (!pattern)
    throw new Error('must provide pattern')

  if (typeof options === 'function' || arguments.length === 3)
    throw new TypeError('callback provided to sync glob\n'+
                        'See: https://github.com/isaacs/node-glob/issues/167')

  if (!(this instanceof GlobSync))
    return new GlobSync(pattern, options)

  setopts(this, pattern, options)

  if (this.noprocess)
    return this

  var n = this.minimatch.set.length
  this.matches = new Array(n)
  for (var i = 0; i < n; i ++) {
    this._process(this.minimatch.set[i], i, false)
  }
  this._finish()
}

GlobSync.prototype._finish = function () {
  assert(this instanceof GlobSync)
  if (this.realpath) {
    var self = this
    this.matches.forEach(function (matchset, index) {
      var set = self.matches[index] = Object.create(null)
      for (var p in matchset) {
        try {
          p = self._makeAbs(p)
          var real = rp.realpathSync(p, self.realpathCache)
          set[real] = true
        } catch (er) {
          if (er.syscall === 'stat')
            set[self._makeAbs(p)] = true
          else
            throw er
        }
      }
    })
  }
  common.finish(this)
}


GlobSync.prototype._process = function (pattern, index, inGlobStar) {
  assert(this instanceof GlobSync)

  // Get the first [n] parts of pattern that are all strings.
  var n = 0
  while (typeof pattern[n] === 'string') {
    n ++
  }
  // now n is the index of the first one that is *not* a string.

  // See if there's anything else
  var prefix
  switch (n) {
    // if not, then this is rather simple
    case pattern.length:
      this._processSimple(pattern.join('/'), index)
      return

    case 0:
      // pattern *starts* with some non-trivial item.
      // going to readdir(cwd), but not include the prefix in matches.
      prefix = null
      break

    default:
      // pattern has some string bits in the front.
      // whatever it starts with, whether that's 'absolute' like /foo/bar,
      // or 'relative' like '../baz'
      prefix = pattern.slice(0, n).join('/')
      break
  }

  var remain = pattern.slice(n)

  // get the list of entries.
  var read
  if (prefix === null)
    read = '.'
  else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
    if (!prefix || !isAbsolute(prefix))
      prefix = '/' + prefix
    read = prefix
  } else
    read = prefix

  var abs = this._makeAbs(read)

  //if ignored, skip processing
  if (childrenIgnored(this, read))
    return

  var isGlobStar = remain[0] === minimatch.GLOBSTAR
  if (isGlobStar)
    this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)
  else
    this._processReaddir(prefix, read, abs, remain, index, inGlobStar)
}


GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {
  var entries = this._readdir(abs, inGlobStar)

  // if the abs isn't a dir, then nothing can match!
  if (!entries)
    return

  // It will only match dot entries if it starts with a dot, or if
  // dot is set.  Stuff like @(.foo|.bar) isn't allowed.
  var pn = remain[0]
  var negate = !!this.minimatch.negate
  var rawGlob = pn._glob
  var dotOk = this.dot || rawGlob.charAt(0) === '.'

  var matchedEntries = []
  for (var i = 0; i < entries.length; i++) {
    var e = entries[i]
    if (e.charAt(0) !== '.' || dotOk) {
      var m
      if (negate && !prefix) {
        m = !e.match(pn)
      } else {
        m = e.match(pn)
      }
      if (m)
        matchedEntries.push(e)
    }
  }

  var len = matchedEntries.length
  // If there are no matched entries, then nothing matches.
  if (len === 0)
    return

  // if this is the last remaining pattern bit, then no need for
  // an additional stat *unless* the user has specified mark or
  // stat explicitly.  We know they exist, since readdir returned
  // them.

  if (remain.length === 1 && !this.mark && !this.stat) {
    if (!this.matches[index])
      this.matches[index] = Object.create(null)

    for (var i = 0; i < len; i ++) {
      var e = matchedEntries[i]
      if (prefix) {
        if (prefix.slice(-1) !== '/')
          e = prefix + '/' + e
        else
          e = prefix + e
      }

      if (e.charAt(0) === '/' && !this.nomount) {
        e = path.join(this.root, e)
      }
      this._emitMatch(index, e)
    }
    // This was the last one, and no stats were needed
    return
  }

  // now test all matched entries as stand-ins for that part
  // of the pattern.
  remain.shift()
  for (var i = 0; i < len; i ++) {
    var e = matchedEntries[i]
    var newPattern
    if (prefix)
      newPattern = [prefix, e]
    else
      newPattern = [e]
    this._process(newPattern.concat(remain), index, inGlobStar)
  }
}


GlobSync.prototype._emitMatch = function (index, e) {
  if (isIgnored(this, e))
    return

  var abs = this._makeAbs(e)

  if (this.mark)
    e = this._mark(e)

  if (this.absolute) {
    e = abs
  }

  if (this.matches[index][e])
    return

  if (this.nodir) {
    var c = this.cache[abs]
    if (c === 'DIR' || Array.isArray(c))
      return
  }

  this.matches[index][e] = true

  if (this.stat)
    this._stat(e)
}


GlobSync.prototype._readdirInGlobStar = function (abs) {
  // follow all symlinked directories forever
  // just proceed as if this is a non-globstar situation
  if (this.follow)
    return this._readdir(abs, false)

  var entries
  var lstat
  var stat
  try {
    lstat = this.fs.lstatSync(abs)
  } catch (er) {
    if (er.code === 'ENOENT') {
      // lstat failed, doesn't exist
      return null
    }
  }

  var isSym = lstat && lstat.isSymbolicLink()
  this.symlinks[abs] = isSym

  // If it's not a symlink or a dir, then it's definitely a regular file.
  // don't bother doing a readdir in that case.
  if (!isSym && lstat && !lstat.isDirectory())
    this.cache[abs] = 'FILE'
  else
    entries = this._readdir(abs, false)

  return entries
}

GlobSync.prototype._readdir = function (abs, inGlobStar) {
  var entries

  if (inGlobStar && !ownProp(this.symlinks, abs))
    return this._readdirInGlobStar(abs)

  if (ownProp(this.cache, abs)) {
    var c = this.cache[abs]
    if (!c || c === 'FILE')
      return null

    if (Array.isArray(c))
      return c
  }

  try {
    return this._readdirEntries(abs, this.fs.readdirSync(abs))
  } catch (er) {
    this._readdirError(abs, er)
    return null
  }
}

GlobSync.prototype._readdirEntries = function (abs, entries) {
  // if we haven't asked to stat everything, then just
  // assume that everything in there exists, so we can avoid
  // having to stat it a second time.
  if (!this.mark && !this.stat) {
    for (var i = 0; i < entries.length; i ++) {
      var e = entries[i]
      if (abs === '/')
        e = abs + e
      else
        e = abs + '/' + e
      this.cache[e] = true
    }
  }

  this.cache[abs] = entries

  // mark and cache dir-ness
  return entries
}

GlobSync.prototype._readdirError = function (f, er) {
  // handle errors, and cache the information
  switch (er.code) {
    case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
    case 'ENOTDIR': // totally normal. means it *does* exist.
      var abs = this._makeAbs(f)
      this.cache[abs] = 'FILE'
      if (abs === this.cwdAbs) {
        var error = new Error(er.code + ' invalid cwd ' + this.cwd)
        error.path = this.cwd
        error.code = er.code
        throw error
      }
      break

    case 'ENOENT': // not terribly unusual
    case 'ELOOP':
    case 'ENAMETOOLONG':
    case 'UNKNOWN':
      this.cache[this._makeAbs(f)] = false
      break

    default: // some unusual error.  Treat as failure.
      this.cache[this._makeAbs(f)] = false
      if (this.strict)
        throw er
      if (!this.silent)
        console.error('glob error', er)
      break
  }
}

GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {

  var entries = this._readdir(abs, inGlobStar)

  // no entries means not a dir, so it can never have matches
  // foo.txt/** doesn't match foo.txt
  if (!entries)
    return

  // test without the globstar, and with every child both below
  // and replacing the globstar.
  var remainWithoutGlobStar = remain.slice(1)
  var gspref = prefix ? [ prefix ] : []
  var noGlobStar = gspref.concat(remainWithoutGlobStar)

  // the noGlobStar pattern exits the inGlobStar state
  this._process(noGlobStar, index, false)

  var len = entries.length
  var isSym = this.symlinks[abs]

  // If it's a symlink, and we're in a globstar, then stop
  if (isSym && inGlobStar)
    return

  for (var i = 0; i < len; i++) {
    var e = entries[i]
    if (e.charAt(0) === '.' && !this.dot)
      continue

    // these two cases enter the inGlobStar state
    var instead = gspref.concat(entries[i], remainWithoutGlobStar)
    this._process(instead, index, true)

    var below = gspref.concat(entries[i], remain)
    this._process(below, index, true)
  }
}

GlobSync.prototype._processSimple = function (prefix, index) {
  // XXX review this.  Shouldn't it be doing the mounting etc
  // before doing stat?  kinda weird?
  var exists = this._stat(prefix)

  if (!this.matches[index])
    this.matches[index] = Object.create(null)

  // If it doesn't exist, then just mark the lack of results
  if (!exists)
    return

  if (prefix && isAbsolute(prefix) && !this.nomount) {
    var trail = /[\/\\]$/.test(prefix)
    if (prefix.charAt(0) === '/') {
      prefix = path.join(this.root, prefix)
    } else {
      prefix = path.resolve(this.root, prefix)
      if (trail)
        prefix += '/'
    }
  }

  if (process.platform === 'win32')
    prefix = prefix.replace(/\\/g, '/')

  // Mark this as a match
  this._emitMatch(index, prefix)
}

// Returns either 'DIR', 'FILE', or false
GlobSync.prototype._stat = function (f) {
  var abs = this._makeAbs(f)
  var needDir = f.slice(-1) === '/'

  if (f.length > this.maxLength)
    return false

  if (!this.stat && ownProp(this.cache, abs)) {
    var c = this.cache[abs]

    if (Array.isArray(c))
      c = 'DIR'

    // It exists, but maybe not how we need it
    if (!needDir || c === 'DIR')
      return c

    if (needDir && c === 'FILE')
      return false

    // otherwise we have to stat, because maybe c=true
    // if we know it exists, but not what it is.
  }

  var exists
  var stat = this.statCache[abs]
  if (!stat) {
    var lstat
    try {
      lstat = this.fs.lstatSync(abs)
    } catch (er) {
      if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
        this.statCache[abs] = false
        return false
      }
    }

    if (lstat && lstat.isSymbolicLink()) {
      try {
        stat = this.fs.statSync(abs)
      } catch (er) {
        stat = lstat
      }
    } else {
      stat = lstat
    }
  }

  this.statCache[abs] = stat

  var c = true
  if (stat)
    c = stat.isDirectory() ? 'DIR' : 'FILE'

  this.cache[abs] = this.cache[abs] || c

  if (needDir && c === 'FILE')
    return false

  return c
}

GlobSync.prototype._mark = function (p) {
  return common.mark(this, p)
}

GlobSync.prototype._makeAbs = function (f) {
  return common.makeAbs(this, f)
}
The ISC License

Copyright (c) 2015, 2019 Elan Shanker

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
'use strict';

var isGlob = require('is-glob');
var pathPosixDirname = require('path').posix.dirname;
var isWin32 = require('os').platform() === 'win32';

var slash = '/';
var backslash = /\\/g;
var enclosure = /[\{\[].*[\}\]]$/;
var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/;
var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g;

/**
 * @param {string} str
 * @param {Object} opts
 * @param {boolean} [opts.flipBackslashes=true]
 * @returns {string}
 */
module.exports = function globParent(str, opts) {
  var options = Object.assign({ flipBackslashes: true }, opts);

  // flip windows path separators
  if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) {
    str = str.replace(backslash, slash);
  }

  // special case for strings ending in enclosure containing path separator
  if (enclosure.test(str)) {
    str += slash;
  }

  // preserves full path in case of trailing path separator
  str += 'a';

  // remove path parts that are globby
  do {
    str = pathPosixDirname(str);
  } while (isGlob(str) || globby.test(str));

  // remove escape chars and return result
  return str.replace(escaped, '$1');
};
{
  "name": "glob-parent",
  "version": "5.1.2",
  "description": "Extract the non-magic parent path from a glob string.",
  "author": "Gulp Team <team@gulpjs.com> (https://gulpjs.com/)",
  "repository": "gulpjs/glob-parent",
  "license": "ISC",
  "engines": {
    "node": ">= 6"
  },
  "main": "index.js",
  "files": [
    "LICENSE",
    "index.js"
  ],
  "dependencies": {
    "is-glob": "^4.0.1"
  },
  "devDependencies": {
    "coveralls": "^3.0.11",
    "eslint": "^2.13.1",
    "eslint-config-gulp": "^3.0.1",
    "expect": "^1.20.2",
    "mocha": "^6.0.2",
    "nyc": "^13.3.0"
  }
}'use strict';
const {promisify} = require('util');
const fs = require('fs');
const path = require('path');
const fastGlob = require('fast-glob');
const gitIgnore = require('ignore');
const slash = require('slash');

const DEFAULT_IGNORE = [
	'**/node_modules/**',
	'**/flow-typed/**',
	'**/coverage/**',
	'**/.git'
];

const readFileP = promisify(fs.readFile);

const mapGitIgnorePatternTo = base => ignore => {
	if (ignore.startsWith('!')) {
		return '!' + path.posix.join(base, ignore.slice(1));
	}

	return path.posix.join(base, ignore);
};

const parseGitIgnore = (content, options) => {
	const base = slash(path.relative(options.cwd, path.dirname(options.fileName)));

	return content
		.split(/\r?\n/)
		.filter(Boolean)
		.filter(line => !line.startsWith('#'))
		.map(mapGitIgnorePatternTo(base));
};

const reduceIgnore = files => {
	const ignores = gitIgnore();
	for (const file of files) {
		ignores.add(parseGitIgnore(file.content, {
			cwd: file.cwd,
			fileName: file.filePath
		}));
	}

	return ignores;
};

const ensureAbsolutePathForCwd = (cwd, p) => {
	cwd = slash(cwd);
	if (path.isAbsolute(p)) {
		if (slash(p).startsWith(cwd)) {
			return p;
		}

		throw new Error(`Path ${p} is not in cwd ${cwd}`);
	}

	return path.join(cwd, p);
};

const getIsIgnoredPredecate = (ignores, cwd) => {
	return p => ignores.ignores(slash(path.relative(cwd, ensureAbsolutePathForCwd(cwd, p.path || p))));
};

const getFile = async (file, cwd) => {
	const filePath = path.join(cwd, file);
	const content = await readFileP(filePath, 'utf8');

	return {
		cwd,
		filePath,
		content
	};
};

const getFileSync = (file, cwd) => {
	const filePath = path.join(cwd, file);
	const content = fs.readFileSync(filePath, 'utf8');

	return {
		cwd,
		filePath,
		content
	};
};

const normalizeOptions = ({
	ignore = [],
	cwd = slash(process.cwd())
} = {}) => {
	return {ignore, cwd};
};

module.exports = async options => {
	options = normalizeOptions(options);

	const paths = await fastGlob('**/.gitignore', {
		ignore: DEFAULT_IGNORE.concat(options.ignore),
		cwd: options.cwd
	});

	const files = await Promise.all(paths.map(file => getFile(file, options.cwd)));
	const ignores = reduceIgnore(files);

	return getIsIgnoredPredecate(ignores, options.cwd);
};

module.exports.sync = options => {
	options = normalizeOptions(options);

	const paths = fastGlob.sync('**/.gitignore', {
		ignore: DEFAULT_IGNORE.concat(options.ignore),
		cwd: options.cwd
	});

	const files = paths.map(file => getFileSync(file, options.cwd));
	const ignores = reduceIgnore(files);

	return getIsIgnoredPredecate(ignores, options.cwd);
};
'use strict';
const fs = require('fs');
const arrayUnion = require('array-union');
const merge2 = require('merge2');
const fastGlob = require('fast-glob');
const dirGlob = require('dir-glob');
const gitignore = require('./gitignore');
const {FilterStream, UniqueStream} = require('./stream-utils');

const DEFAULT_FILTER = () => false;

const isNegative = pattern => pattern[0] === '!';

const assertPatternsInput = patterns => {
	if (!patterns.every(pattern => typeof pattern === 'string')) {
		throw new TypeError('Patterns must be a string or an array of strings');
	}
};

const checkCwdOption = (options = {}) => {
	if (!options.cwd) {
		return;
	}

	let stat;
	try {
		stat = fs.statSync(options.cwd);
	} catch {
		return;
	}

	if (!stat.isDirectory()) {
		throw new Error('The `cwd` option must be a path to a directory');
	}
};

const getPathString = p => p.stats instanceof fs.Stats ? p.path : p;

const generateGlobTasks = (patterns, taskOptions) => {
	patterns = arrayUnion([].concat(patterns));
	assertPatternsInput(patterns);
	checkCwdOption(taskOptions);

	const globTasks = [];

	taskOptions = {
		ignore: [],
		expandDirectories: true,
		...taskOptions
	};

	for (const [index, pattern] of patterns.entries()) {
		if (isNegative(pattern)) {
			continue;
		}

		const ignore = patterns
			.slice(index)
			.filter(pattern => isNegative(pattern))
			.map(pattern => pattern.slice(1));

		const options = {
			...taskOptions,
			ignore: taskOptions.ignore.concat(ignore)
		};

		globTasks.push({pattern, options});
	}

	return globTasks;
};

const globDirs = (task, fn) => {
	let options = {};
	if (task.options.cwd) {
		options.cwd = task.options.cwd;
	}

	if (Array.isArray(task.options.expandDirectories)) {
		options = {
			...options,
			files: task.options.expandDirectories
		};
	} else if (typeof task.options.expandDirectories === 'object') {
		options = {
			...options,
			...task.options.expandDirectories
		};
	}

	return fn(task.pattern, options);
};

const getPattern = (task, fn) => task.options.expandDirectories ? globDirs(task, fn) : [task.pattern];

const getFilterSync = options => {
	return options && options.gitignore ?
		gitignore.sync({cwd: options.cwd, ignore: options.ignore}) :
		DEFAULT_FILTER;
};

const globToTask = task => glob => {
	const {options} = task;
	if (options.ignore && Array.isArray(options.ignore) && options.expandDirectories) {
		options.ignore = dirGlob.sync(options.ignore);
	}

	return {
		pattern: glob,
		options
	};
};

module.exports = async (patterns, options) => {
	const globTasks = generateGlobTasks(patterns, options);

	const getFilter = async () => {
		return options && options.gitignore ?
			gitignore({cwd: options.cwd, ignore: options.ignore}) :
			DEFAULT_FILTER;
	};

	const getTasks = async () => {
		const tasks = await Promise.all(globTasks.map(async task => {
			const globs = await getPattern(task, dirGlob);
			return Promise.all(globs.map(globToTask(task)));
		}));

		return arrayUnion(...tasks);
	};

	const [filter, tasks] = await Promise.all([getFilter(), getTasks()]);
	const paths = await Promise.all(tasks.map(task => fastGlob(task.pattern, task.options)));

	return arrayUnion(...paths).filter(path_ => !filter(getPathString(path_)));
};

module.exports.sync = (patterns, options) => {
	const globTasks = generateGlobTasks(patterns, options);

	const tasks = [];
	for (const task of globTasks) {
		const newTask = getPattern(task, dirGlob.sync).map(globToTask(task));
		tasks.push(...newTask);
	}

	const filter = getFilterSync(options);

	let matches = [];
	for (const task of tasks) {
		matches = arrayUnion(matches, fastGlob.sync(task.pattern, task.options));
	}

	return matches.filter(path_ => !filter(path_));
};

module.exports.stream = (patterns, options) => {
	const globTasks = generateGlobTasks(patterns, options);

	const tasks = [];
	for (const task of globTasks) {
		const newTask = getPattern(task, dirGlob.sync).map(globToTask(task));
		tasks.push(...newTask);
	}

	const filter = getFilterSync(options);
	const filterStream = new FilterStream(p => !filter(p));
	const uniqueStream = new UniqueStream();

	return merge2(tasks.map(task => fastGlob.stream(task.pattern, task.options)))
		.pipe(filterStream)
		.pipe(uniqueStream);
};

module.exports.generateGlobTasks = generateGlobTasks;

module.exports.hasMagic = (patterns, options) => []
	.concat(patterns)
	.some(pattern => fastGlob.isDynamicPattern(pattern, options));

module.exports.gitignore = gitignore;
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "globby",
  "version": "11.1.0",
  "description": "User-friendly glob matching",
  "license": "MIT",
  "repository": "sindresorhus/globby",
  "funding": "https://github.com/sponsors/sindresorhus",
  "author": {
    "email": "sindresorhus@gmail.com",
    "name": "Sindre Sorhus",
    "url": "https://sindresorhus.com"
  },
  "engines": {
    "node": ">=10"
  },
  "files": [
    "index.js",
    "index.d.ts",
    "gitignore.js",
    "stream-utils.js"
  ],
  "dependencies": {
    "array-union": "^2.1.0",
    "dir-glob": "^3.0.1",
    "fast-glob": "^3.2.9",
    "ignore": "^5.2.0",
    "merge2": "^1.4.1",
    "slash": "^3.0.0"
  },
  "devDependencies": {
    "ava": "^3.13.0",
    "get-stream": "^6.0.0",
    "glob-stream": "^6.1.0",
    "globby": "sindresorhus/globby#main",
    "matcha": "^0.7.0",
    "rimraf": "^3.0.2",
    "tsd": "^0.13.1",
    "xo": "^0.33.1"
  }
}'use strict';
const {Transform} = require('stream');

class ObjectTransform extends Transform {
	constructor() {
		super({
			objectMode: true
		});
	}
}

class FilterStream extends ObjectTransform {
	constructor(filter) {
		super();
		this._filter = filter;
	}

	_transform(data, encoding, callback) {
		if (this._filter(data)) {
			this.push(data);
		}

		callback();
	}
}

class UniqueStream extends ObjectTransform {
	constructor() {
		super();
		this._pushed = new Set();
	}

	_transform(data, encoding, callback) {
		if (!this._pushed.has(data)) {
			this.push(data);
			this._pushed.add(data);
		}

		callback();
	}
}

module.exports = {
	FilterStream,
	UniqueStream
};
The ISC License

Copyright (c) 2011-2022 Isaac Z. Schlueter, Ben Noordhuis, and Contributors

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
'use strict'

module.exports = clone

var getPrototypeOf = Object.getPrototypeOf || function (obj) {
  return obj.__proto__
}

function clone (obj) {
  if (obj === null || typeof obj !== 'object')
    return obj

  if (obj instanceof Object)
    var copy = { __proto__: getPrototypeOf(obj) }
  else
    var copy = Object.create(null)

  Object.getOwnPropertyNames(obj).forEach(function (key) {
    Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))
  })

  return copy
}
var fs = require('fs')
var polyfills = require('./polyfills.js')
var legacy = require('./legacy-streams.js')
var clone = require('./clone.js')

var util = require('util')

/* istanbul ignore next - node 0.x polyfill */
var gracefulQueue
var previousSymbol

/* istanbul ignore else - node 0.x polyfill */
if (typeof Symbol === 'function' && typeof Symbol.for === 'function') {
  gracefulQueue = Symbol.for('graceful-fs.queue')
  // This is used in testing by future versions
  previousSymbol = Symbol.for('graceful-fs.previous')
} else {
  gracefulQueue = '___graceful-fs.queue'
  previousSymbol = '___graceful-fs.previous'
}

function noop () {}

function publishQueue(context, queue) {
  Object.defineProperty(context, gracefulQueue, {
    get: function() {
      return queue
    }
  })
}

var debug = noop
if (util.debuglog)
  debug = util.debuglog('gfs4')
else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || ''))
  debug = function() {
    var m = util.format.apply(util, arguments)
    m = 'GFS4: ' + m.split(/\n/).join('\nGFS4: ')
    console.error(m)
  }

// Once time initialization
if (!fs[gracefulQueue]) {
  // This queue can be shared by multiple loaded instances
  var queue = global[gracefulQueue] || []
  publishQueue(fs, queue)

  // Patch fs.close/closeSync to shared queue version, because we need
  // to retry() whenever a close happens *anywhere* in the program.
  // This is essential when multiple graceful-fs instances are
  // in play at the same time.
  fs.close = (function (fs$close) {
    function close (fd, cb) {
      return fs$close.call(fs, fd, function (err) {
        // This function uses the graceful-fs shared queue
        if (!err) {
          resetQueue()
        }

        if (typeof cb === 'function')
          cb.apply(this, arguments)
      })
    }

    Object.defineProperty(close, previousSymbol, {
      value: fs$close
    })
    return close
  })(fs.close)

  fs.closeSync = (function (fs$closeSync) {
    function closeSync (fd) {
      // This function uses the graceful-fs shared queue
      fs$closeSync.apply(fs, arguments)
      resetQueue()
    }

    Object.defineProperty(closeSync, previousSymbol, {
      value: fs$closeSync
    })
    return closeSync
  })(fs.closeSync)

  if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) {
    process.on('exit', function() {
      debug(fs[gracefulQueue])
      require('assert').equal(fs[gracefulQueue].length, 0)
    })
  }
}

if (!global[gracefulQueue]) {
  publishQueue(global, fs[gracefulQueue]);
}

module.exports = patch(clone(fs))
if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) {
    module.exports = patch(fs)
    fs.__patched = true;
}

function patch (fs) {
  // Everything that references the open() function needs to be in here
  polyfills(fs)
  fs.gracefulify = patch

  fs.createReadStream = createReadStream
  fs.createWriteStream = createWriteStream
  var fs$readFile = fs.readFile
  fs.readFile = readFile
  function readFile (path, options, cb) {
    if (typeof options === 'function')
      cb = options, options = null

    return go$readFile(path, options, cb)

    function go$readFile (path, options, cb, startTime) {
      return fs$readFile(path, options, function (err) {
        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
          enqueue([go$readFile, [path, options, cb], err, startTime || Date.now(), Date.now()])
        else {
          if (typeof cb === 'function')
            cb.apply(this, arguments)
        }
      })
    }
  }

  var fs$writeFile = fs.writeFile
  fs.writeFile = writeFile
  function writeFile (path, data, options, cb) {
    if (typeof options === 'function')
      cb = options, options = null

    return go$writeFile(path, data, options, cb)

    function go$writeFile (path, data, options, cb, startTime) {
      return fs$writeFile(path, data, options, function (err) {
        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
          enqueue([go$writeFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()])
        else {
          if (typeof cb === 'function')
            cb.apply(this, arguments)
        }
      })
    }
  }

  var fs$appendFile = fs.appendFile
  if (fs$appendFile)
    fs.appendFile = appendFile
  function appendFile (path, data, options, cb) {
    if (typeof options === 'function')
      cb = options, options = null

    return go$appendFile(path, data, options, cb)

    function go$appendFile (path, data, options, cb, startTime) {
      return fs$appendFile(path, data, options, function (err) {
        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
          enqueue([go$appendFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()])
        else {
          if (typeof cb === 'function')
            cb.apply(this, arguments)
        }
      })
    }
  }

  var fs$copyFile = fs.copyFile
  if (fs$copyFile)
    fs.copyFile = copyFile
  function copyFile (src, dest, flags, cb) {
    if (typeof flags === 'function') {
      cb = flags
      flags = 0
    }
    return go$copyFile(src, dest, flags, cb)

    function go$copyFile (src, dest, flags, cb, startTime) {
      return fs$copyFile(src, dest, flags, function (err) {
        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
          enqueue([go$copyFile, [src, dest, flags, cb], err, startTime || Date.now(), Date.now()])
        else {
          if (typeof cb === 'function')
            cb.apply(this, arguments)
        }
      })
    }
  }

  var fs$readdir = fs.readdir
  fs.readdir = readdir
  var noReaddirOptionVersions = /^v[0-5]\./
  function readdir (path, options, cb) {
    if (typeof options === 'function')
      cb = options, options = null

    var go$readdir = noReaddirOptionVersions.test(process.version)
      ? function go$readdir (path, options, cb, startTime) {
        return fs$readdir(path, fs$readdirCallback(
          path, options, cb, startTime
        ))
      }
      : function go$readdir (path, options, cb, startTime) {
        return fs$readdir(path, options, fs$readdirCallback(
          path, options, cb, startTime
        ))
      }

    return go$readdir(path, options, cb)

    function fs$readdirCallback (path, options, cb, startTime) {
      return function (err, files) {
        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
          enqueue([
            go$readdir,
            [path, options, cb],
            err,
            startTime || Date.now(),
            Date.now()
          ])
        else {
          if (files && files.sort)
            files.sort()

          if (typeof cb === 'function')
            cb.call(this, err, files)
        }
      }
    }
  }

  if (process.version.substr(0, 4) === 'v0.8') {
    var legStreams = legacy(fs)
    ReadStream = legStreams.ReadStream
    WriteStream = legStreams.WriteStream
  }

  var fs$ReadStream = fs.ReadStream
  if (fs$ReadStream) {
    ReadStream.prototype = Object.create(fs$ReadStream.prototype)
    ReadStream.prototype.open = ReadStream$open
  }

  var fs$WriteStream = fs.WriteStream
  if (fs$WriteStream) {
    WriteStream.prototype = Object.create(fs$WriteStream.prototype)
    WriteStream.prototype.open = WriteStream$open
  }

  Object.defineProperty(fs, 'ReadStream', {
    get: function () {
      return ReadStream
    },
    set: function (val) {
      ReadStream = val
    },
    enumerable: true,
    configurable: true
  })
  Object.defineProperty(fs, 'WriteStream', {
    get: function () {
      return WriteStream
    },
    set: function (val) {
      WriteStream = val
    },
    enumerable: true,
    configurable: true
  })

  // legacy names
  var FileReadStream = ReadStream
  Object.defineProperty(fs, 'FileReadStream', {
    get: function () {
      return FileReadStream
    },
    set: function (val) {
      FileReadStream = val
    },
    enumerable: true,
    configurable: true
  })
  var FileWriteStream = WriteStream
  Object.defineProperty(fs, 'FileWriteStream', {
    get: function () {
      return FileWriteStream
    },
    set: function (val) {
      FileWriteStream = val
    },
    enumerable: true,
    configurable: true
  })

  function ReadStream (path, options) {
    if (this instanceof ReadStream)
      return fs$ReadStream.apply(this, arguments), this
    else
      return ReadStream.apply(Object.create(ReadStream.prototype), arguments)
  }

  function ReadStream$open () {
    var that = this
    open(that.path, that.flags, that.mode, function (err, fd) {
      if (err) {
        if (that.autoClose)
          that.destroy()

        that.emit('error', err)
      } else {
        that.fd = fd
        that.emit('open', fd)
        that.read()
      }
    })
  }

  function WriteStream (path, options) {
    if (this instanceof WriteStream)
      return fs$WriteStream.apply(this, arguments), this
    else
      return WriteStream.apply(Object.create(WriteStream.prototype), arguments)
  }

  function WriteStream$open () {
    var that = this
    open(that.path, that.flags, that.mode, function (err, fd) {
      if (err) {
        that.destroy()
        that.emit('error', err)
      } else {
        that.fd = fd
        that.emit('open', fd)
      }
    })
  }

  function createReadStream (path, options) {
    return new fs.ReadStream(path, options)
  }

  function createWriteStream (path, options) {
    return new fs.WriteStream(path, options)
  }

  var fs$open = fs.open
  fs.open = open
  function open (path, flags, mode, cb) {
    if (typeof mode === 'function')
      cb = mode, mode = null

    return go$open(path, flags, mode, cb)

    function go$open (path, flags, mode, cb, startTime) {
      return fs$open(path, flags, mode, function (err, fd) {
        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
          enqueue([go$open, [path, flags, mode, cb], err, startTime || Date.now(), Date.now()])
        else {
          if (typeof cb === 'function')
            cb.apply(this, arguments)
        }
      })
    }
  }

  return fs
}

function enqueue (elem) {
  debug('ENQUEUE', elem[0].name, elem[1])
  fs[gracefulQueue].push(elem)
  retry()
}

// keep track of the timeout between retry() calls
var retryTimer

// reset the startTime and lastTime to now
// this resets the start of the 60 second overall timeout as well as the
// delay between attempts so that we'll retry these jobs sooner
function resetQueue () {
  var now = Date.now()
  for (var i = 0; i < fs[gracefulQueue].length; ++i) {
    // entries that are only a length of 2 are from an older version, don't
    // bother modifying those since they'll be retried anyway.
    if (fs[gracefulQueue][i].length > 2) {
      fs[gracefulQueue][i][3] = now // startTime
      fs[gracefulQueue][i][4] = now // lastTime
    }
  }
  // call retry to make sure we're actively processing the queue
  retry()
}

function retry () {
  // clear the timer and remove it to help prevent unintended concurrency
  clearTimeout(retryTimer)
  retryTimer = undefined

  if (fs[gracefulQueue].length === 0)
    return

  var elem = fs[gracefulQueue].shift()
  var fn = elem[0]
  var args = elem[1]
  // these items may be unset if they were added by an older graceful-fs
  var err = elem[2]
  var startTime = elem[3]
  var lastTime = elem[4]

  // if we don't have a startTime we have no way of knowing if we've waited
  // long enough, so go ahead and retry this item now
  if (startTime === undefined) {
    debug('RETRY', fn.name, args)
    fn.apply(null, args)
  } else if (Date.now() - startTime >= 60000) {
    // it's been more than 60 seconds total, bail now
    debug('TIMEOUT', fn.name, args)
    var cb = args.pop()
    if (typeof cb === 'function')
      cb.call(null, err)
  } else {
    // the amount of time between the last attempt and right now
    var sinceAttempt = Date.now() - lastTime
    // the amount of time between when we first tried, and when we last tried
    // rounded up to at least 1
    var sinceStart = Math.max(lastTime - startTime, 1)
    // backoff. wait longer than the total time we've been retrying, but only
    // up to a maximum of 100ms
    var desiredDelay = Math.min(sinceStart * 1.2, 100)
    // it's been long enough since the last retry, do it again
    if (sinceAttempt >= desiredDelay) {
      debug('RETRY', fn.name, args)
      fn.apply(null, args.concat([startTime]))
    } else {
      // if we can't do this job yet, push it to the end of the queue
      // and let the next iteration check again
      fs[gracefulQueue].push(elem)
    }
  }

  // schedule our next run if one isn't already scheduled
  if (retryTimer === undefined) {
    retryTimer = setTimeout(retry, 0)
  }
}
var Stream = require('stream').Stream

module.exports = legacy

function legacy (fs) {
  return {
    ReadStream: ReadStream,
    WriteStream: WriteStream
  }

  function ReadStream (path, options) {
    if (!(this instanceof ReadStream)) return new ReadStream(path, options);

    Stream.call(this);

    var self = this;

    this.path = path;
    this.fd = null;
    this.readable = true;
    this.paused = false;

    this.flags = 'r';
    this.mode = 438; /*=0666*/
    this.bufferSize = 64 * 1024;

    options = options || {};

    // Mixin options into this
    var keys = Object.keys(options);
    for (var index = 0, length = keys.length; index < length; index++) {
      var key = keys[index];
      this[key] = options[key];
    }

    if (this.encoding) this.setEncoding(this.encoding);

    if (this.start !== undefined) {
      if ('number' !== typeof this.start) {
        throw TypeError('start must be a Number');
      }
      if (this.end === undefined) {
        this.end = Infinity;
      } else if ('number' !== typeof this.end) {
        throw TypeError('end must be a Number');
      }

      if (this.start > this.end) {
        throw new Error('start must be <= end');
      }

      this.pos = this.start;
    }

    if (this.fd !== null) {
      process.nextTick(function() {
        self._read();
      });
      return;
    }

    fs.open(this.path, this.flags, this.mode, function (err, fd) {
      if (err) {
        self.emit('error', err);
        self.readable = false;
        return;
      }

      self.fd = fd;
      self.emit('open', fd);
      self._read();
    })
  }

  function WriteStream (path, options) {
    if (!(this instanceof WriteStream)) return new WriteStream(path, options);

    Stream.call(this);

    this.path = path;
    this.fd = null;
    this.writable = true;

    this.flags = 'w';
    this.encoding = 'binary';
    this.mode = 438; /*=0666*/
    this.bytesWritten = 0;

    options = options || {};

    // Mixin options into this
    var keys = Object.keys(options);
    for (var index = 0, length = keys.length; index < length; index++) {
      var key = keys[index];
      this[key] = options[key];
    }

    if (this.start !== undefined) {
      if ('number' !== typeof this.start) {
        throw TypeError('start must be a Number');
      }
      if (this.start < 0) {
        throw new Error('start must be >= zero');
      }

      this.pos = this.start;
    }

    this.busy = false;
    this._queue = [];

    if (this.fd === null) {
      this._open = fs.open;
      this._queue.push([this._open, this.path, this.flags, this.mode, undefined]);
      this.flush();
    }
  }
}
{
  "name": "graceful-fs",
  "description": "A drop-in replacement for fs, making various improvements.",
  "version": "4.2.11",
  "repository": {
    "type": "git",
    "url": "https://github.com/isaacs/node-graceful-fs"
  },
  "main": "graceful-fs.js",
  "directories": {
    "test": "test"
  },
  "license": "ISC",
  "devDependencies": {
    "import-fresh": "^2.0.0",
    "mkdirp": "^0.5.0",
    "rimraf": "^2.2.8",
    "tap": "^16.3.4"
  },
  "files": [
    "fs.js",
    "graceful-fs.js",
    "legacy-streams.js",
    "polyfills.js",
    "clone.js"
  ],
  "tap": {
    "reporter": "classic"
  }
}var constants = require('constants')

var origCwd = process.cwd
var cwd = null

var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform

process.cwd = function() {
  if (!cwd)
    cwd = origCwd.call(process)
  return cwd
}
try {
  process.cwd()
} catch (er) {}

// This check is needed until node.js 12 is required
if (typeof process.chdir === 'function') {
  var chdir = process.chdir
  process.chdir = function (d) {
    cwd = null
    chdir.call(process, d)
  }
  if (Object.setPrototypeOf) Object.setPrototypeOf(process.chdir, chdir)
}

module.exports = patch

function patch (fs) {
  // (re-)implement some things that are known busted or missing.

  // lchmod, broken prior to 0.6.2
  // back-port the fix here.
  if (constants.hasOwnProperty('O_SYMLINK') &&
      process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) {
    patchLchmod(fs)
  }

  // lutimes implementation, or no-op
  if (!fs.lutimes) {
    patchLutimes(fs)
  }

  // https://github.com/isaacs/node-graceful-fs/issues/4
  // Chown should not fail on einval or eperm if non-root.
  // It should not fail on enosys ever, as this just indicates
  // that a fs doesn't support the intended operation.

  fs.chown = chownFix(fs.chown)
  fs.fchown = chownFix(fs.fchown)
  fs.lchown = chownFix(fs.lchown)

  fs.chmod = chmodFix(fs.chmod)
  fs.fchmod = chmodFix(fs.fchmod)
  fs.lchmod = chmodFix(fs.lchmod)

  fs.chownSync = chownFixSync(fs.chownSync)
  fs.fchownSync = chownFixSync(fs.fchownSync)
  fs.lchownSync = chownFixSync(fs.lchownSync)

  fs.chmodSync = chmodFixSync(fs.chmodSync)
  fs.fchmodSync = chmodFixSync(fs.fchmodSync)
  fs.lchmodSync = chmodFixSync(fs.lchmodSync)

  fs.stat = statFix(fs.stat)
  fs.fstat = statFix(fs.fstat)
  fs.lstat = statFix(fs.lstat)

  fs.statSync = statFixSync(fs.statSync)
  fs.fstatSync = statFixSync(fs.fstatSync)
  fs.lstatSync = statFixSync(fs.lstatSync)

  // if lchmod/lchown do not exist, then make them no-ops
  if (fs.chmod && !fs.lchmod) {
    fs.lchmod = function (path, mode, cb) {
      if (cb) process.nextTick(cb)
    }
    fs.lchmodSync = function () {}
  }
  if (fs.chown && !fs.lchown) {
    fs.lchown = function (path, uid, gid, cb) {
      if (cb) process.nextTick(cb)
    }
    fs.lchownSync = function () {}
  }

  // on Windows, A/V software can lock the directory, causing this
  // to fail with an EACCES or EPERM if the directory contains newly
  // created files.  Try again on failure, for up to 60 seconds.

  // Set the timeout this long because some Windows Anti-Virus, such as Parity
  // bit9, may lock files for up to a minute, causing npm package install
  // failures. Also, take care to yield the scheduler. Windows scheduling gives
  // CPU to a busy looping process, which can cause the program causing the lock
  // contention to be starved of CPU by node, so the contention doesn't resolve.
  if (platform === "win32") {
    fs.rename = typeof fs.rename !== 'function' ? fs.rename
    : (function (fs$rename) {
      function rename (from, to, cb) {
        var start = Date.now()
        var backoff = 0;
        fs$rename(from, to, function CB (er) {
          if (er
              && (er.code === "EACCES" || er.code === "EPERM" || er.code === "EBUSY")
              && Date.now() - start < 60000) {
            setTimeout(function() {
              fs.stat(to, function (stater, st) {
                if (stater && stater.code === "ENOENT")
                  fs$rename(from, to, CB);
                else
                  cb(er)
              })
            }, backoff)
            if (backoff < 100)
              backoff += 10;
            return;
          }
          if (cb) cb(er)
        })
      }
      if (Object.setPrototypeOf) Object.setPrototypeOf(rename, fs$rename)
      return rename
    })(fs.rename)
  }

  // if read() returns EAGAIN, then just try it again.
  fs.read = typeof fs.read !== 'function' ? fs.read
  : (function (fs$read) {
    function read (fd, buffer, offset, length, position, callback_) {
      var callback
      if (callback_ && typeof callback_ === 'function') {
        var eagCounter = 0
        callback = function (er, _, __) {
          if (er && er.code === 'EAGAIN' && eagCounter < 10) {
            eagCounter ++
            return fs$read.call(fs, fd, buffer, offset, length, position, callback)
          }
          callback_.apply(this, arguments)
        }
      }
      return fs$read.call(fs, fd, buffer, offset, length, position, callback)
    }

    // This ensures `util.promisify` works as it does for native `fs.read`.
    if (Object.setPrototypeOf) Object.setPrototypeOf(read, fs$read)
    return read
  })(fs.read)

  fs.readSync = typeof fs.readSync !== 'function' ? fs.readSync
  : (function (fs$readSync) { return function (fd, buffer, offset, length, position) {
    var eagCounter = 0
    while (true) {
      try {
        return fs$readSync.call(fs, fd, buffer, offset, length, position)
      } catch (er) {
        if (er.code === 'EAGAIN' && eagCounter < 10) {
          eagCounter ++
          continue
        }
        throw er
      }
    }
  }})(fs.readSync)

  function patchLchmod (fs) {
    fs.lchmod = function (path, mode, callback) {
      fs.open( path
             , constants.O_WRONLY | constants.O_SYMLINK
             , mode
             , function (err, fd) {
        if (err) {
          if (callback) callback(err)
          return
        }
        // prefer to return the chmod error, if one occurs,
        // but still try to close, and report closing errors if they occur.
        fs.fchmod(fd, mode, function (err) {
          fs.close(fd, function(err2) {
            if (callback) callback(err || err2)
          })
        })
      })
    }

    fs.lchmodSync = function (path, mode) {
      var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode)

      // prefer to return the chmod error, if one occurs,
      // but still try to close, and report closing errors if they occur.
      var threw = true
      var ret
      try {
        ret = fs.fchmodSync(fd, mode)
        threw = false
      } finally {
        if (threw) {
          try {
            fs.closeSync(fd)
          } catch (er) {}
        } else {
          fs.closeSync(fd)
        }
      }
      return ret
    }
  }

  function patchLutimes (fs) {
    if (constants.hasOwnProperty("O_SYMLINK") && fs.futimes) {
      fs.lutimes = function (path, at, mt, cb) {
        fs.open(path, constants.O_SYMLINK, function (er, fd) {
          if (er) {
            if (cb) cb(er)
            return
          }
          fs.futimes(fd, at, mt, function (er) {
            fs.close(fd, function (er2) {
              if (cb) cb(er || er2)
            })
          })
        })
      }

      fs.lutimesSync = function (path, at, mt) {
        var fd = fs.openSync(path, constants.O_SYMLINK)
        var ret
        var threw = true
        try {
          ret = fs.futimesSync(fd, at, mt)
          threw = false
        } finally {
          if (threw) {
            try {
              fs.closeSync(fd)
            } catch (er) {}
          } else {
            fs.closeSync(fd)
          }
        }
        return ret
      }

    } else if (fs.futimes) {
      fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) }
      fs.lutimesSync = function () {}
    }
  }

  function chmodFix (orig) {
    if (!orig) return orig
    return function (target, mode, cb) {
      return orig.call(fs, target, mode, function (er) {
        if (chownErOk(er)) er = null
        if (cb) cb.apply(this, arguments)
      })
    }
  }

  function chmodFixSync (orig) {
    if (!orig) return orig
    return function (target, mode) {
      try {
        return orig.call(fs, target, mode)
      } catch (er) {
        if (!chownErOk(er)) throw er
      }
    }
  }


  function chownFix (orig) {
    if (!orig) return orig
    return function (target, uid, gid, cb) {
      return orig.call(fs, target, uid, gid, function (er) {
        if (chownErOk(er)) er = null
        if (cb) cb.apply(this, arguments)
      })
    }
  }

  function chownFixSync (orig) {
    if (!orig) return orig
    return function (target, uid, gid) {
      try {
        return orig.call(fs, target, uid, gid)
      } catch (er) {
        if (!chownErOk(er)) throw er
      }
    }
  }

  function statFix (orig) {
    if (!orig) return orig
    // Older versions of Node erroneously returned signed integers for
    // uid + gid.
    return function (target, options, cb) {
      if (typeof options === 'function') {
        cb = options
        options = null
      }
      function callback (er, stats) {
        if (stats) {
          if (stats.uid < 0) stats.uid += 0x100000000
          if (stats.gid < 0) stats.gid += 0x100000000
        }
        if (cb) cb.apply(this, arguments)
      }
      return options ? orig.call(fs, target, options, callback)
        : orig.call(fs, target, callback)
    }
  }

  function statFixSync (orig) {
    if (!orig) return orig
    // Older versions of Node erroneously returned signed integers for
    // uid + gid.
    return function (target, options) {
      var stats = options ? orig.call(fs, target, options)
        : orig.call(fs, target)
      if (stats) {
        if (stats.uid < 0) stats.uid += 0x100000000
        if (stats.gid < 0) stats.gid += 0x100000000
      }
      return stats;
    }
  }

  // ENOSYS means that the fs doesn't support the op. Just ignore
  // that, because it doesn't matter.
  //
  // if there's no getuid, or if getuid() is something other
  // than 0, and the error is EINVAL or EPERM, then just ignore
  // it.
  //
  // This specific case is a silent failure in cp, install, tar,
  // and most other unix tools that manage permissions.
  //
  // When running as root, or if other types of errors are
  // encountered, then it's strict.
  function chownErOk (er) {
    if (!er)
      return true

    if (er.code === "ENOSYS")
      return true

    var nonroot = !process.getuid || process.getuid() !== 0
    if (nonroot) {
      if (er.code === "EINVAL" || er.code === "EPERM")
        return true
    }

    return false
  }
}
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright 2019 ehmicky <ehmicky@gmail.com>

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
{
  "name": "human-signals",
  "version": "2.1.0",
  "main": "build/src/main.js",
  "files": [
    "build/src",
    "!~"
  ],
  "husky": {
    "hooks": {
      "pre-push": "gulp check --full"
    }
  },
  "description": "Human-friendly process signals",
  "license": "Apache-2.0",
  "homepage": "https://git.io/JeluP",
  "repository": "ehmicky/human-signals",
  "author": "ehmicky <ehmicky@gmail.com> (https://github.com/ehmicky)",
  "directories": {
    "lib": "src",
    "test": "test"
  },
  "types": "build/src/main.d.ts",
  "dependencies": {},
  "devDependencies": {
    "@ehmicky/dev-tasks": "^0.31.9",
    "ajv": "^6.12.0",
    "ava": "^3.5.0",
    "gulp": "^4.0.2",
    "husky": "^4.2.3",
    "test-each": "^2.0.0"
  },
  "engines": {
    "node": ">=10.17.0"
  }
}"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.SIGNALS=void 0;

const SIGNALS=[
{
name:"SIGHUP",
number:1,
action:"terminate",
description:"Terminal closed",
standard:"posix"},

{
name:"SIGINT",
number:2,
action:"terminate",
description:"User interruption with CTRL-C",
standard:"ansi"},

{
name:"SIGQUIT",
number:3,
action:"core",
description:"User interruption with CTRL-\\",
standard:"posix"},

{
name:"SIGILL",
number:4,
action:"core",
description:"Invalid machine instruction",
standard:"ansi"},

{
name:"SIGTRAP",
number:5,
action:"core",
description:"Debugger breakpoint",
standard:"posix"},

{
name:"SIGABRT",
number:6,
action:"core",
description:"Aborted",
standard:"ansi"},

{
name:"SIGIOT",
number:6,
action:"core",
description:"Aborted",
standard:"bsd"},

{
name:"SIGBUS",
number:7,
action:"core",
description:
"Bus error due to misaligned, non-existing address or paging error",
standard:"bsd"},

{
name:"SIGEMT",
number:7,
action:"terminate",
description:"Command should be emulated but is not implemented",
standard:"other"},

{
name:"SIGFPE",
number:8,
action:"core",
description:"Floating point arithmetic error",
standard:"ansi"},

{
name:"SIGKILL",
number:9,
action:"terminate",
description:"Forced termination",
standard:"posix",
forced:true},

{
name:"SIGUSR1",
number:10,
action:"terminate",
description:"Application-specific signal",
standard:"posix"},

{
name:"SIGSEGV",
number:11,
action:"core",
description:"Segmentation fault",
standard:"ansi"},

{
name:"SIGUSR2",
number:12,
action:"terminate",
description:"Application-specific signal",
standard:"posix"},

{
name:"SIGPIPE",
number:13,
action:"terminate",
description:"Broken pipe or socket",
standard:"posix"},

{
name:"SIGALRM",
number:14,
action:"terminate",
description:"Timeout or timer",
standard:"posix"},

{
name:"SIGTERM",
number:15,
action:"terminate",
description:"Termination",
standard:"ansi"},

{
name:"SIGSTKFLT",
number:16,
action:"terminate",
description:"Stack is empty or overflowed",
standard:"other"},

{
name:"SIGCHLD",
number:17,
action:"ignore",
description:"Child process terminated, paused or unpaused",
standard:"posix"},

{
name:"SIGCLD",
number:17,
action:"ignore",
description:"Child process terminated, paused or unpaused",
standard:"other"},

{
name:"SIGCONT",
number:18,
action:"unpause",
description:"Unpaused",
standard:"posix",
forced:true},

{
name:"SIGSTOP",
number:19,
action:"pause",
description:"Paused",
standard:"posix",
forced:true},

{
name:"SIGTSTP",
number:20,
action:"pause",
description:"Paused using CTRL-Z or \"suspend\"",
standard:"posix"},

{
name:"SIGTTIN",
number:21,
action:"pause",
description:"Background process cannot read terminal input",
standard:"posix"},

{
name:"SIGBREAK",
number:21,
action:"terminate",
description:"User interruption with CTRL-BREAK",
standard:"other"},

{
name:"SIGTTOU",
number:22,
action:"pause",
description:"Background process cannot write to terminal output",
standard:"posix"},

{
name:"SIGURG",
number:23,
action:"ignore",
description:"Socket received out-of-band data",
standard:"bsd"},

{
name:"SIGXCPU",
number:24,
action:"core",
description:"Process timed out",
standard:"bsd"},

{
name:"SIGXFSZ",
number:25,
action:"core",
description:"File too big",
standard:"bsd"},

{
name:"SIGVTALRM",
number:26,
action:"terminate",
description:"Timeout or timer",
standard:"bsd"},

{
name:"SIGPROF",
number:27,
action:"terminate",
description:"Timeout or timer",
standard:"bsd"},

{
name:"SIGWINCH",
number:28,
action:"ignore",
description:"Terminal window size changed",
standard:"bsd"},

{
name:"SIGIO",
number:29,
action:"terminate",
description:"I/O is available",
standard:"other"},

{
name:"SIGPOLL",
number:29,
action:"terminate",
description:"Watched event",
standard:"other"},

{
name:"SIGINFO",
number:29,
action:"ignore",
description:"Request for process information",
standard:"other"},

{
name:"SIGPWR",
number:30,
action:"terminate",
description:"Device running out of power",
standard:"systemv"},

{
name:"SIGSYS",
number:31,
action:"core",
description:"Invalid system call",
standard:"other"},

{
name:"SIGUNUSED",
number:31,
action:"terminate",
description:"Invalid system call",
standard:"other"}];exports.SIGNALS=SIGNALS;
{"version":3,"sources":["../../src/core.js"],"names":["SIGNALS","name","number","action","description","standard","forced"],"mappings":";;AAEO,KAAMA,CAAAA,OAAO,CAAG;AACrB;AACEC,IAAI,CAAE,QADR;AAEEC,MAAM,CAAE,CAFV;AAGEC,MAAM,CAAE,WAHV;AAIEC,WAAW,CAAE,iBAJf;AAKEC,QAAQ,CAAE,OALZ,CADqB;;AAQrB;AACEJ,IAAI,CAAE,QADR;AAEEC,MAAM,CAAE,CAFV;AAGEC,MAAM,CAAE,WAHV;AAIEC,WAAW,CAAE,+BAJf;AAKEC,QAAQ,CAAE,MALZ,CARqB;;AAerB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,CAFV;AAGEC,MAAM,CAAE,MAHV;AAIEC,WAAW,CAAE,gCAJf;AAKEC,QAAQ,CAAE,OALZ,CAfqB;;AAsBrB;AACEJ,IAAI,CAAE,QADR;AAEEC,MAAM,CAAE,CAFV;AAGEC,MAAM,CAAE,MAHV;AAIEC,WAAW,CAAE,6BAJf;AAKEC,QAAQ,CAAE,MALZ,CAtBqB;;AA6BrB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,CAFV;AAGEC,MAAM,CAAE,MAHV;AAIEC,WAAW,CAAE,qBAJf;AAKEC,QAAQ,CAAE,OALZ,CA7BqB;;AAoCrB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,CAFV;AAGEC,MAAM,CAAE,MAHV;AAIEC,WAAW,CAAE,SAJf;AAKEC,QAAQ,CAAE,MALZ,CApCqB;;AA2CrB;AACEJ,IAAI,CAAE,QADR;AAEEC,MAAM,CAAE,CAFV;AAGEC,MAAM,CAAE,MAHV;AAIEC,WAAW,CAAE,SAJf;AAKEC,QAAQ,CAAE,KALZ,CA3CqB;;AAkDrB;AACEJ,IAAI,CAAE,QADR;AAEEC,MAAM,CAAE,CAFV;AAGEC,MAAM,CAAE,MAHV;AAIEC,WAAW;AACT,mEALJ;AAMEC,QAAQ,CAAE,KANZ,CAlDqB;;AA0DrB;AACEJ,IAAI,CAAE,QADR;AAEEC,MAAM,CAAE,CAFV;AAGEC,MAAM,CAAE,WAHV;AAIEC,WAAW,CAAE,mDAJf;AAKEC,QAAQ,CAAE,OALZ,CA1DqB;;AAiErB;AACEJ,IAAI,CAAE,QADR;AAEEC,MAAM,CAAE,CAFV;AAGEC,MAAM,CAAE,MAHV;AAIEC,WAAW,CAAE,iCAJf;AAKEC,QAAQ,CAAE,MALZ,CAjEqB;;AAwErB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,CAFV;AAGEC,MAAM,CAAE,WAHV;AAIEC,WAAW,CAAE,oBAJf;AAKEC,QAAQ,CAAE,OALZ;AAMEC,MAAM,CAAE,IANV,CAxEqB;;AAgFrB;AACEL,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,WAHV;AAIEC,WAAW,CAAE,6BAJf;AAKEC,QAAQ,CAAE,OALZ,CAhFqB;;AAuFrB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,MAHV;AAIEC,WAAW,CAAE,oBAJf;AAKEC,QAAQ,CAAE,MALZ,CAvFqB;;AA8FrB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,WAHV;AAIEC,WAAW,CAAE,6BAJf;AAKEC,QAAQ,CAAE,OALZ,CA9FqB;;AAqGrB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,WAHV;AAIEC,WAAW,CAAE,uBAJf;AAKEC,QAAQ,CAAE,OALZ,CArGqB;;AA4GrB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,WAHV;AAIEC,WAAW,CAAE,kBAJf;AAKEC,QAAQ,CAAE,OALZ,CA5GqB;;AAmHrB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,WAHV;AAIEC,WAAW,CAAE,aAJf;AAKEC,QAAQ,CAAE,MALZ,CAnHqB;;AA0HrB;AACEJ,IAAI,CAAE,WADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,WAHV;AAIEC,WAAW,CAAE,8BAJf;AAKEC,QAAQ,CAAE,OALZ,CA1HqB;;AAiIrB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,QAHV;AAIEC,WAAW,CAAE,8CAJf;AAKEC,QAAQ,CAAE,OALZ,CAjIqB;;AAwIrB;AACEJ,IAAI,CAAE,QADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,QAHV;AAIEC,WAAW,CAAE,8CAJf;AAKEC,QAAQ,CAAE,OALZ,CAxIqB;;AA+IrB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,SAHV;AAIEC,WAAW,CAAE,UAJf;AAKEC,QAAQ,CAAE,OALZ;AAMEC,MAAM,CAAE,IANV,CA/IqB;;AAuJrB;AACEL,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,OAHV;AAIEC,WAAW,CAAE,QAJf;AAKEC,QAAQ,CAAE,OALZ;AAMEC,MAAM,CAAE,IANV,CAvJqB;;AA+JrB;AACEL,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,OAHV;AAIEC,WAAW,CAAE,oCAJf;AAKEC,QAAQ,CAAE,OALZ,CA/JqB;;AAsKrB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,OAHV;AAIEC,WAAW,CAAE,+CAJf;AAKEC,QAAQ,CAAE,OALZ,CAtKqB;;AA6KrB;AACEJ,IAAI,CAAE,UADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,WAHV;AAIEC,WAAW,CAAE,mCAJf;AAKEC,QAAQ,CAAE,OALZ,CA7KqB;;AAoLrB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,OAHV;AAIEC,WAAW,CAAE,oDAJf;AAKEC,QAAQ,CAAE,OALZ,CApLqB;;AA2LrB;AACEJ,IAAI,CAAE,QADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,QAHV;AAIEC,WAAW,CAAE,kCAJf;AAKEC,QAAQ,CAAE,KALZ,CA3LqB;;AAkMrB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,MAHV;AAIEC,WAAW,CAAE,mBAJf;AAKEC,QAAQ,CAAE,KALZ,CAlMqB;;AAyMrB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,MAHV;AAIEC,WAAW,CAAE,cAJf;AAKEC,QAAQ,CAAE,KALZ,CAzMqB;;AAgNrB;AACEJ,IAAI,CAAE,WADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,WAHV;AAIEC,WAAW,CAAE,kBAJf;AAKEC,QAAQ,CAAE,KALZ,CAhNqB;;AAuNrB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,WAHV;AAIEC,WAAW,CAAE,kBAJf;AAKEC,QAAQ,CAAE,KALZ,CAvNqB;;AA8NrB;AACEJ,IAAI,CAAE,UADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,QAHV;AAIEC,WAAW,CAAE,8BAJf;AAKEC,QAAQ,CAAE,KALZ,CA9NqB;;AAqOrB;AACEJ,IAAI,CAAE,OADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,WAHV;AAIEC,WAAW,CAAE,kBAJf;AAKEC,QAAQ,CAAE,OALZ,CArOqB;;AA4OrB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,WAHV;AAIEC,WAAW,CAAE,eAJf;AAKEC,QAAQ,CAAE,OALZ,CA5OqB;;AAmPrB;AACEJ,IAAI,CAAE,SADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,QAHV;AAIEC,WAAW,CAAE,iCAJf;AAKEC,QAAQ,CAAE,OALZ,CAnPqB;;AA0PrB;AACEJ,IAAI,CAAE,QADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,WAHV;AAIEC,WAAW,CAAE,6BAJf;AAKEC,QAAQ,CAAE,SALZ,CA1PqB;;AAiQrB;AACEJ,IAAI,CAAE,QADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,MAHV;AAIEC,WAAW,CAAE,qBAJf;AAKEC,QAAQ,CAAE,OALZ,CAjQqB;;AAwQrB;AACEJ,IAAI,CAAE,WADR;AAEEC,MAAM,CAAE,EAFV;AAGEC,MAAM,CAAE,WAHV;AAIEC,WAAW,CAAE,qBAJf;AAKEC,QAAQ,CAAE,OALZ,CAxQqB,CAAhB,C","sourcesContent":["/* eslint-disable max-lines */\n// List of known process signals with information about them\nexport const SIGNALS = [\n  {\n    name: 'SIGHUP',\n    number: 1,\n    action: 'terminate',\n    description: 'Terminal closed',\n    standard: 'posix',\n  },\n  {\n    name: 'SIGINT',\n    number: 2,\n    action: 'terminate',\n    description: 'User interruption with CTRL-C',\n    standard: 'ansi',\n  },\n  {\n    name: 'SIGQUIT',\n    number: 3,\n    action: 'core',\n    description: 'User interruption with CTRL-\\\\',\n    standard: 'posix',\n  },\n  {\n    name: 'SIGILL',\n    number: 4,\n    action: 'core',\n    description: 'Invalid machine instruction',\n    standard: 'ansi',\n  },\n  {\n    name: 'SIGTRAP',\n    number: 5,\n    action: 'core',\n    description: 'Debugger breakpoint',\n    standard: 'posix',\n  },\n  {\n    name: 'SIGABRT',\n    number: 6,\n    action: 'core',\n    description: 'Aborted',\n    standard: 'ansi',\n  },\n  {\n    name: 'SIGIOT',\n    number: 6,\n    action: 'core',\n    description: 'Aborted',\n    standard: 'bsd',\n  },\n  {\n    name: 'SIGBUS',\n    number: 7,\n    action: 'core',\n    description:\n      'Bus error due to misaligned, non-existing address or paging error',\n    standard: 'bsd',\n  },\n  {\n    name: 'SIGEMT',\n    number: 7,\n    action: 'terminate',\n    description: 'Command should be emulated but is not implemented',\n    standard: 'other',\n  },\n  {\n    name: 'SIGFPE',\n    number: 8,\n    action: 'core',\n    description: 'Floating point arithmetic error',\n    standard: 'ansi',\n  },\n  {\n    name: 'SIGKILL',\n    number: 9,\n    action: 'terminate',\n    description: 'Forced termination',\n    standard: 'posix',\n    forced: true,\n  },\n  {\n    name: 'SIGUSR1',\n    number: 10,\n    action: 'terminate',\n    description: 'Application-specific signal',\n    standard: 'posix',\n  },\n  {\n    name: 'SIGSEGV',\n    number: 11,\n    action: 'core',\n    description: 'Segmentation fault',\n    standard: 'ansi',\n  },\n  {\n    name: 'SIGUSR2',\n    number: 12,\n    action: 'terminate',\n    description: 'Application-specific signal',\n    standard: 'posix',\n  },\n  {\n    name: 'SIGPIPE',\n    number: 13,\n    action: 'terminate',\n    description: 'Broken pipe or socket',\n    standard: 'posix',\n  },\n  {\n    name: 'SIGALRM',\n    number: 14,\n    action: 'terminate',\n    description: 'Timeout or timer',\n    standard: 'posix',\n  },\n  {\n    name: 'SIGTERM',\n    number: 15,\n    action: 'terminate',\n    description: 'Termination',\n    standard: 'ansi',\n  },\n  {\n    name: 'SIGSTKFLT',\n    number: 16,\n    action: 'terminate',\n    description: 'Stack is empty or overflowed',\n    standard: 'other',\n  },\n  {\n    name: 'SIGCHLD',\n    number: 17,\n    action: 'ignore',\n    description: 'Child process terminated, paused or unpaused',\n    standard: 'posix',\n  },\n  {\n    name: 'SIGCLD',\n    number: 17,\n    action: 'ignore',\n    description: 'Child process terminated, paused or unpaused',\n    standard: 'other',\n  },\n  {\n    name: 'SIGCONT',\n    number: 18,\n    action: 'unpause',\n    description: 'Unpaused',\n    standard: 'posix',\n    forced: true,\n  },\n  {\n    name: 'SIGSTOP',\n    number: 19,\n    action: 'pause',\n    description: 'Paused',\n    standard: 'posix',\n    forced: true,\n  },\n  {\n    name: 'SIGTSTP',\n    number: 20,\n    action: 'pause',\n    description: 'Paused using CTRL-Z or \"suspend\"',\n    standard: 'posix',\n  },\n  {\n    name: 'SIGTTIN',\n    number: 21,\n    action: 'pause',\n    description: 'Background process cannot read terminal input',\n    standard: 'posix',\n  },\n  {\n    name: 'SIGBREAK',\n    number: 21,\n    action: 'terminate',\n    description: 'User interruption with CTRL-BREAK',\n    standard: 'other',\n  },\n  {\n    name: 'SIGTTOU',\n    number: 22,\n    action: 'pause',\n    description: 'Background process cannot write to terminal output',\n    standard: 'posix',\n  },\n  {\n    name: 'SIGURG',\n    number: 23,\n    action: 'ignore',\n    description: 'Socket received out-of-band data',\n    standard: 'bsd',\n  },\n  {\n    name: 'SIGXCPU',\n    number: 24,\n    action: 'core',\n    description: 'Process timed out',\n    standard: 'bsd',\n  },\n  {\n    name: 'SIGXFSZ',\n    number: 25,\n    action: 'core',\n    description: 'File too big',\n    standard: 'bsd',\n  },\n  {\n    name: 'SIGVTALRM',\n    number: 26,\n    action: 'terminate',\n    description: 'Timeout or timer',\n    standard: 'bsd',\n  },\n  {\n    name: 'SIGPROF',\n    number: 27,\n    action: 'terminate',\n    description: 'Timeout or timer',\n    standard: 'bsd',\n  },\n  {\n    name: 'SIGWINCH',\n    number: 28,\n    action: 'ignore',\n    description: 'Terminal window size changed',\n    standard: 'bsd',\n  },\n  {\n    name: 'SIGIO',\n    number: 29,\n    action: 'terminate',\n    description: 'I/O is available',\n    standard: 'other',\n  },\n  {\n    name: 'SIGPOLL',\n    number: 29,\n    action: 'terminate',\n    description: 'Watched event',\n    standard: 'other',\n  },\n  {\n    name: 'SIGINFO',\n    number: 29,\n    action: 'ignore',\n    description: 'Request for process information',\n    standard: 'other',\n  },\n  {\n    name: 'SIGPWR',\n    number: 30,\n    action: 'terminate',\n    description: 'Device running out of power',\n    standard: 'systemv',\n  },\n  {\n    name: 'SIGSYS',\n    number: 31,\n    action: 'core',\n    description: 'Invalid system call',\n    standard: 'other',\n  },\n  {\n    name: 'SIGUNUSED',\n    number: 31,\n    action: 'terminate',\n    description: 'Invalid system call',\n    standard: 'other',\n  },\n]\n/* eslint-enable max-lines */\n"],"file":"src/core.js"}"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.signalsByNumber=exports.signalsByName=void 0;var _os=require("os");

var _signals=require("./signals.js");
var _realtime=require("./realtime.js");



const getSignalsByName=function(){
const signals=(0,_signals.getSignals)();
return signals.reduce(getSignalByName,{});
};

const getSignalByName=function(
signalByNameMemo,
{name,number,description,supported,action,forced,standard})
{
return{
...signalByNameMemo,
[name]:{name,number,description,supported,action,forced,standard}};

};

const signalsByName=getSignalsByName();exports.signalsByName=signalsByName;




const getSignalsByNumber=function(){
const signals=(0,_signals.getSignals)();
const length=_realtime.SIGRTMAX+1;
const signalsA=Array.from({length},(value,number)=>
getSignalByNumber(number,signals));

return Object.assign({},...signalsA);
};

const getSignalByNumber=function(number,signals){
const signal=findSignalByNumber(number,signals);

if(signal===undefined){
return{};
}

const{name,description,supported,action,forced,standard}=signal;
return{
[number]:{
name,
number,
description,
supported,
action,
forced,
standard}};


};



const findSignalByNumber=function(number,signals){
const signal=signals.find(({name})=>_os.constants.signals[name]===number);

if(signal!==undefined){
return signal;
}

return signals.find(signalA=>signalA.number===number);
};

const signalsByNumber=getSignalsByNumber();exports.signalsByNumber=signalsByNumber;
{"version":3,"sources":["../../src/main.js"],"names":["getSignalsByName","signals","reduce","getSignalByName","signalByNameMemo","name","number","description","supported","action","forced","standard","signalsByName","getSignalsByNumber","length","SIGRTMAX","signalsA","Array","from","value","getSignalByNumber","Object","assign","signal","findSignalByNumber","undefined","find","constants","signalA","signalsByNumber"],"mappings":"2HAAA;;AAEA;AACA;;;;AAIA,KAAMA,CAAAA,gBAAgB,CAAG,UAAW;AAClC,KAAMC,CAAAA,OAAO,CAAG,yBAAhB;AACA,MAAOA,CAAAA,OAAO,CAACC,MAAR,CAAeC,eAAf,CAAgC,EAAhC,CAAP;AACD,CAHD;;AAKA,KAAMA,CAAAA,eAAe,CAAG;AACtBC,gBADsB;AAEtB,CAAEC,IAAF,CAAQC,MAAR,CAAgBC,WAAhB,CAA6BC,SAA7B,CAAwCC,MAAxC,CAAgDC,MAAhD,CAAwDC,QAAxD,CAFsB;AAGtB;AACA,MAAO;AACL,GAAGP,gBADE;AAEL,CAACC,IAAD,EAAQ,CAAEA,IAAF,CAAQC,MAAR,CAAgBC,WAAhB,CAA6BC,SAA7B,CAAwCC,MAAxC,CAAgDC,MAAhD,CAAwDC,QAAxD,CAFH,CAAP;;AAID,CARD;;AAUO,KAAMC,CAAAA,aAAa,CAAGZ,gBAAgB,EAAtC,C;;;;;AAKP,KAAMa,CAAAA,kBAAkB,CAAG,UAAW;AACpC,KAAMZ,CAAAA,OAAO,CAAG,yBAAhB;AACA,KAAMa,CAAAA,MAAM,CAAGC,mBAAW,CAA1B;AACA,KAAMC,CAAAA,QAAQ,CAAGC,KAAK,CAACC,IAAN,CAAW,CAAEJ,MAAF,CAAX,CAAuB,CAACK,KAAD,CAAQb,MAAR;AACtCc,iBAAiB,CAACd,MAAD,CAASL,OAAT,CADF,CAAjB;;AAGA,MAAOoB,CAAAA,MAAM,CAACC,MAAP,CAAc,EAAd,CAAkB,GAAGN,QAArB,CAAP;AACD,CAPD;;AASA,KAAMI,CAAAA,iBAAiB,CAAG,SAASd,MAAT,CAAiBL,OAAjB,CAA0B;AAClD,KAAMsB,CAAAA,MAAM,CAAGC,kBAAkB,CAAClB,MAAD,CAASL,OAAT,CAAjC;;AAEA,GAAIsB,MAAM,GAAKE,SAAf,CAA0B;AACxB,MAAO,EAAP;AACD;;AAED,KAAM,CAAEpB,IAAF,CAAQE,WAAR,CAAqBC,SAArB,CAAgCC,MAAhC,CAAwCC,MAAxC,CAAgDC,QAAhD,EAA6DY,MAAnE;AACA,MAAO;AACL,CAACjB,MAAD,EAAU;AACRD,IADQ;AAERC,MAFQ;AAGRC,WAHQ;AAIRC,SAJQ;AAKRC,MALQ;AAMRC,MANQ;AAORC,QAPQ,CADL,CAAP;;;AAWD,CAnBD;;;;AAuBA,KAAMa,CAAAA,kBAAkB,CAAG,SAASlB,MAAT,CAAiBL,OAAjB,CAA0B;AACnD,KAAMsB,CAAAA,MAAM,CAAGtB,OAAO,CAACyB,IAAR,CAAa,CAAC,CAAErB,IAAF,CAAD,GAAcsB,cAAU1B,OAAV,CAAkBI,IAAlB,IAA4BC,MAAvD,CAAf;;AAEA,GAAIiB,MAAM,GAAKE,SAAf,CAA0B;AACxB,MAAOF,CAAAA,MAAP;AACD;;AAED,MAAOtB,CAAAA,OAAO,CAACyB,IAAR,CAAaE,OAAO,EAAIA,OAAO,CAACtB,MAAR,GAAmBA,MAA3C,CAAP;AACD,CARD;;AAUO,KAAMuB,CAAAA,eAAe,CAAGhB,kBAAkB,EAA1C,C","sourcesContent":["import { constants } from 'os'\n\nimport { getSignals } from './signals.js'\nimport { SIGRTMAX } from './realtime.js'\n\n// Retrieve `signalsByName`, an object mapping signal name to signal properties.\n// We make sure the object is sorted by `number`.\nconst getSignalsByName = function() {\n  const signals = getSignals()\n  return signals.reduce(getSignalByName, {})\n}\n\nconst getSignalByName = function(\n  signalByNameMemo,\n  { name, number, description, supported, action, forced, standard },\n) {\n  return {\n    ...signalByNameMemo,\n    [name]: { name, number, description, supported, action, forced, standard },\n  }\n}\n\nexport const signalsByName = getSignalsByName()\n\n// Retrieve `signalsByNumber`, an object mapping signal number to signal\n// properties.\n// We make sure the object is sorted by `number`.\nconst getSignalsByNumber = function() {\n  const signals = getSignals()\n  const length = SIGRTMAX + 1\n  const signalsA = Array.from({ length }, (value, number) =>\n    getSignalByNumber(number, signals),\n  )\n  return Object.assign({}, ...signalsA)\n}\n\nconst getSignalByNumber = function(number, signals) {\n  const signal = findSignalByNumber(number, signals)\n\n  if (signal === undefined) {\n    return {}\n  }\n\n  const { name, description, supported, action, forced, standard } = signal\n  return {\n    [number]: {\n      name,\n      number,\n      description,\n      supported,\n      action,\n      forced,\n      standard,\n    },\n  }\n}\n\n// Several signals might end up sharing the same number because of OS-specific\n// numbers, in which case those prevail.\nconst findSignalByNumber = function(number, signals) {\n  const signal = signals.find(({ name }) => constants.signals[name] === number)\n\n  if (signal !== undefined) {\n    return signal\n  }\n\n  return signals.find(signalA => signalA.number === number)\n}\n\nexport const signalsByNumber = getSignalsByNumber()\n"],"file":"src/main.js"}"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.SIGRTMAX=exports.getRealtimeSignals=void 0;
const getRealtimeSignals=function(){
const length=SIGRTMAX-SIGRTMIN+1;
return Array.from({length},getRealtimeSignal);
};exports.getRealtimeSignals=getRealtimeSignals;

const getRealtimeSignal=function(value,index){
return{
name:`SIGRT${index+1}`,
number:SIGRTMIN+index,
action:"terminate",
description:"Application-specific signal (realtime)",
standard:"posix"};

};

const SIGRTMIN=34;
const SIGRTMAX=64;exports.SIGRTMAX=SIGRTMAX;
{"version":3,"sources":["../../src/realtime.js"],"names":["getRealtimeSignals","length","SIGRTMAX","SIGRTMIN","Array","from","getRealtimeSignal","value","index","name","number","action","description","standard"],"mappings":";AACO,KAAMA,CAAAA,kBAAkB,CAAG,UAAW;AAC3C,KAAMC,CAAAA,MAAM,CAAGC,QAAQ,CAAGC,QAAX,CAAsB,CAArC;AACA,MAAOC,CAAAA,KAAK,CAACC,IAAN,CAAW,CAAEJ,MAAF,CAAX,CAAuBK,iBAAvB,CAAP;AACD,CAHM,C;;AAKP,KAAMA,CAAAA,iBAAiB,CAAG,SAASC,KAAT,CAAgBC,KAAhB,CAAuB;AAC/C,MAAO;AACLC,IAAI,CAAG,QAAOD,KAAK,CAAG,CAAE,EADnB;AAELE,MAAM,CAAEP,QAAQ,CAAGK,KAFd;AAGLG,MAAM,CAAE,WAHH;AAILC,WAAW,CAAE,wCAJR;AAKLC,QAAQ,CAAE,OALL,CAAP;;AAOD,CARD;;AAUA,KAAMV,CAAAA,QAAQ,CAAG,EAAjB;AACO,KAAMD,CAAAA,QAAQ,CAAG,EAAjB,C","sourcesContent":["// List of realtime signals with information about them\nexport const getRealtimeSignals = function() {\n  const length = SIGRTMAX - SIGRTMIN + 1\n  return Array.from({ length }, getRealtimeSignal)\n}\n\nconst getRealtimeSignal = function(value, index) {\n  return {\n    name: `SIGRT${index + 1}`,\n    number: SIGRTMIN + index,\n    action: 'terminate',\n    description: 'Application-specific signal (realtime)',\n    standard: 'posix',\n  }\n}\n\nconst SIGRTMIN = 34\nexport const SIGRTMAX = 64\n"],"file":"src/realtime.js"}"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getSignals=void 0;var _os=require("os");

var _core=require("./core.js");
var _realtime=require("./realtime.js");



const getSignals=function(){
const realtimeSignals=(0,_realtime.getRealtimeSignals)();
const signals=[..._core.SIGNALS,...realtimeSignals].map(normalizeSignal);
return signals;
};exports.getSignals=getSignals;







const normalizeSignal=function({
name,
number:defaultNumber,
description,
action,
forced=false,
standard})
{
const{
signals:{[name]:constantSignal}}=
_os.constants;
const supported=constantSignal!==undefined;
const number=supported?constantSignal:defaultNumber;
return{name,number,description,supported,action,forced,standard};
};
{"version":3,"sources":["../../src/signals.js"],"names":["getSignals","realtimeSignals","signals","SIGNALS","map","normalizeSignal","name","number","defaultNumber","description","action","forced","standard","constantSignal","constants","supported","undefined"],"mappings":"gGAAA;;AAEA;AACA;;;;AAIO,KAAMA,CAAAA,UAAU,CAAG,UAAW;AACnC,KAAMC,CAAAA,eAAe,CAAG,kCAAxB;AACA,KAAMC,CAAAA,OAAO,CAAG,CAAC,GAAGC,aAAJ,CAAa,GAAGF,eAAhB,EAAiCG,GAAjC,CAAqCC,eAArC,CAAhB;AACA,MAAOH,CAAAA,OAAP;AACD,CAJM,C;;;;;;;;AAYP,KAAMG,CAAAA,eAAe,CAAG,SAAS;AAC/BC,IAD+B;AAE/BC,MAAM,CAAEC,aAFuB;AAG/BC,WAH+B;AAI/BC,MAJ+B;AAK/BC,MAAM,CAAG,KALsB;AAM/BC,QAN+B,CAAT;AAOrB;AACD,KAAM;AACJV,OAAO,CAAE,CAAE,CAACI,IAAD,EAAQO,cAAV,CADL;AAEFC,aAFJ;AAGA,KAAMC,CAAAA,SAAS,CAAGF,cAAc,GAAKG,SAArC;AACA,KAAMT,CAAAA,MAAM,CAAGQ,SAAS,CAAGF,cAAH,CAAoBL,aAA5C;AACA,MAAO,CAAEF,IAAF,CAAQC,MAAR,CAAgBE,WAAhB,CAA6BM,SAA7B,CAAwCL,MAAxC,CAAgDC,MAAhD,CAAwDC,QAAxD,CAAP;AACD,CAdD","sourcesContent":["import { constants } from 'os'\n\nimport { SIGNALS } from './core.js'\nimport { getRealtimeSignals } from './realtime.js'\n\n// Retrieve list of know signals (including realtime) with information about\n// them\nexport const getSignals = function() {\n  const realtimeSignals = getRealtimeSignals()\n  const signals = [...SIGNALS, ...realtimeSignals].map(normalizeSignal)\n  return signals\n}\n\n// Normalize signal:\n//  - `number`: signal numbers are OS-specific. This is taken into account by\n//    `os.constants.signals`. However we provide a default `number` since some\n//     signals are not defined for some OS.\n//  - `forced`: set default to `false`\n//  - `supported`: set value\nconst normalizeSignal = function({\n  name,\n  number: defaultNumber,\n  description,\n  action,\n  forced = false,\n  standard,\n}) {\n  const {\n    signals: { [name]: constantSignal },\n  } = constants\n  const supported = constantSignal !== undefined\n  const number = supported ? constantSignal : defaultNumber\n  return { name, number, description, supported, action, forced, standard }\n}\n"],"file":"src/signals.js"}'use strict';

module.exports = (string, count = 1, options) => {
	options = {
		indent: ' ',
		includeEmptyLines: false,
		...options
	};

	if (typeof string !== 'string') {
		throw new TypeError(
			`Expected \`input\` to be a \`string\`, got \`${typeof string}\``
		);
	}

	if (typeof count !== 'number') {
		throw new TypeError(
			`Expected \`count\` to be a \`number\`, got \`${typeof count}\``
		);
	}

	if (typeof options.indent !== 'string') {
		throw new TypeError(
			`Expected \`options.indent\` to be a \`string\`, got \`${typeof options.indent}\``
		);
	}

	if (count === 0) {
		return string;
	}

	const regex = options.includeEmptyLines ? /^/gm : /^(?!\s*$)/gm;

	return string.replace(regex, options.indent.repeat(count));
};
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "indent-string",
  "version": "4.0.0",
  "description": "Indent each line in a string",
  "license": "MIT",
  "repository": "sindresorhus/indent-string",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "sindresorhus.com"
  },
  "engines": {
    "node": ">=8"
  },
  "files": [
    "index.js",
    "index.d.ts"
  ],
  "devDependencies": {
    "ava": "^1.4.1",
    "tsd": "^0.7.2",
    "xo": "^0.24.0"
  }
}The ISC License

Copyright (c) Isaac Z. Schlueter

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
var wrappy = require('wrappy')
var reqs = Object.create(null)
var once = require('once')

module.exports = wrappy(inflight)

function inflight (key, cb) {
  if (reqs[key]) {
    reqs[key].push(cb)
    return null
  } else {
    reqs[key] = [cb]
    return makeres(key)
  }
}

function makeres (key) {
  return once(function RES () {
    var cbs = reqs[key]
    var len = cbs.length
    var args = slice(arguments)

    // XXX It's somewhat ambiguous whether a new callback added in this
    // pass should be queued for later execution if something in the
    // list of callbacks throws, or if it should just be discarded.
    // However, it's such an edge case that it hardly matters, and either
    // choice is likely as surprising as the other.
    // As it happens, we do go ahead and schedule it for later execution.
    try {
      for (var i = 0; i < len; i++) {
        cbs[i].apply(null, args)
      }
    } finally {
      if (cbs.length > len) {
        // added more in the interim.
        // de-zalgo, just in case, but don't call again.
        cbs.splice(0, len)
        process.nextTick(function () {
          RES.apply(null, args)
        })
      } else {
        delete reqs[key]
      }
    }
  })
}

function slice (args) {
  var length = args.length
  var array = []

  for (var i = 0; i < length; i++) array[i] = args[i]
  return array
}
{
  "name": "inflight",
  "version": "1.0.6",
  "description": "Add callbacks to requests in flight to avoid async duplication",
  "main": "inflight.js",
  "files": [
    "inflight.js"
  ],
  "dependencies": {
    "once": "^1.3.0",
    "wrappy": "1"
  },
  "devDependencies": {
    "tap": "^7.1.2"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/npm/inflight.git"
  },
  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
  "homepage": "https://github.com/isaacs/inflight",
  "license": "ISC"
}The ISC License

Copyright (c) Isaac Z. Schlueter

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.

try {
  var util = require('util');
  /* istanbul ignore next */
  if (typeof util.inherits !== 'function') throw '';
  module.exports = util.inherits;
} catch (e) {
  /* istanbul ignore next */
  module.exports = require('./inherits_browser.js');
}
if (typeof Object.create === 'function') {
  // implementation from standard node.js 'util' module
  module.exports = function inherits(ctor, superCtor) {
    if (superCtor) {
      ctor.super_ = superCtor
      ctor.prototype = Object.create(superCtor.prototype, {
        constructor: {
          value: ctor,
          enumerable: false,
          writable: true,
          configurable: true
        }
      })
    }
  };
} else {
  // old school shim for old browsers
  module.exports = function inherits(ctor, superCtor) {
    if (superCtor) {
      ctor.super_ = superCtor
      var TempCtor = function () {}
      TempCtor.prototype = superCtor.prototype
      ctor.prototype = new TempCtor()
      ctor.prototype.constructor = ctor
    }
  }
}
{
  "name": "inherits",
  "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()",
  "version": "2.0.4",
  "main": "./inherits.js",
  "browser": "./inherits_browser.js",
  "repository": "git://github.com/isaacs/inherits",
  "license": "ISC",
  "devDependencies": {
    "tap": "^14.2.4"
  },
  "files": [
    "inherits.js",
    "inherits_browser.js"
  ]
}The MIT License (MIT)

Copyright (c) 2014-2016, Jon Schlinkert

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
/*!
 * is-extglob <https://github.com/jonschlinkert/is-extglob>
 *
 * Copyright (c) 2014-2016, Jon Schlinkert.
 * Licensed under the MIT License.
 */

module.exports = function isExtglob(str) {
  if (typeof str !== 'string' || str === '') {
    return false;
  }

  var match;
  while ((match = /(\\).|([@?!+*]\(.*\))/g.exec(str))) {
    if (match[2]) return true;
    str = str.slice(match.index + match[0].length);
  }

  return false;
};
{
  "name": "is-extglob",
  "description": "Returns true if a string has an extglob.",
  "version": "2.1.1",
  "homepage": "https://github.com/jonschlinkert/is-extglob",
  "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
  "repository": "jonschlinkert/is-extglob",
  "license": "MIT",
  "files": [
    "index.js"
  ],
  "main": "index.js",
  "engines": {
    "node": ">=0.10.0"
  },
  "devDependencies": {
    "gulp-format-md": "^0.1.10",
    "mocha": "^3.0.2"
  },
  "verb": {
    "toc": false,
    "layout": "default",
    "tasks": [
      "readme"
    ],
    "plugins": [
      "gulp-format-md"
    ],
    "related": {
      "list": [
        "has-glob",
        "is-glob",
        "micromatch"
      ]
    },
    "reflinks": [
      "verb",
      "verb-generate-readme"
    ],
    "lint": {
      "reflinks": true
    }
  }
}The MIT License (MIT)

Copyright (c) 2014-2017, Jon Schlinkert.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
/*!
 * is-glob <https://github.com/jonschlinkert/is-glob>
 *
 * Copyright (c) 2014-2017, Jon Schlinkert.
 * Released under the MIT License.
 */

var isExtglob = require('is-extglob');
var chars = { '{': '}', '(': ')', '[': ']'};
var strictCheck = function(str) {
  if (str[0] === '!') {
    return true;
  }
  var index = 0;
  var pipeIndex = -2;
  var closeSquareIndex = -2;
  var closeCurlyIndex = -2;
  var closeParenIndex = -2;
  var backSlashIndex = -2;
  while (index < str.length) {
    if (str[index] === '*') {
      return true;
    }

    if (str[index + 1] === '?' && /[\].+)]/.test(str[index])) {
      return true;
    }

    if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') {
      if (closeSquareIndex < index) {
        closeSquareIndex = str.indexOf(']', index);
      }
      if (closeSquareIndex > index) {
        if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {
          return true;
        }
        backSlashIndex = str.indexOf('\\', index);
        if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {
          return true;
        }
      }
    }

    if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') {
      closeCurlyIndex = str.indexOf('}', index);
      if (closeCurlyIndex > index) {
        backSlashIndex = str.indexOf('\\', index);
        if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) {
          return true;
        }
      }
    }

    if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') {
      closeParenIndex = str.indexOf(')', index);
      if (closeParenIndex > index) {
        backSlashIndex = str.indexOf('\\', index);
        if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {
          return true;
        }
      }
    }

    if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') {
      if (pipeIndex < index) {
        pipeIndex = str.indexOf('|', index);
      }
      if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') {
        closeParenIndex = str.indexOf(')', pipeIndex);
        if (closeParenIndex > pipeIndex) {
          backSlashIndex = str.indexOf('\\', pipeIndex);
          if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {
            return true;
          }
        }
      }
    }

    if (str[index] === '\\') {
      var open = str[index + 1];
      index += 2;
      var close = chars[open];

      if (close) {
        var n = str.indexOf(close, index);
        if (n !== -1) {
          index = n + 1;
        }
      }

      if (str[index] === '!') {
        return true;
      }
    } else {
      index++;
    }
  }
  return false;
};

var relaxedCheck = function(str) {
  if (str[0] === '!') {
    return true;
  }
  var index = 0;
  while (index < str.length) {
    if (/[*?{}()[\]]/.test(str[index])) {
      return true;
    }

    if (str[index] === '\\') {
      var open = str[index + 1];
      index += 2;
      var close = chars[open];

      if (close) {
        var n = str.indexOf(close, index);
        if (n !== -1) {
          index = n + 1;
        }
      }

      if (str[index] === '!') {
        return true;
      }
    } else {
      index++;
    }
  }
  return false;
};

module.exports = function isGlob(str, options) {
  if (typeof str !== 'string' || str === '') {
    return false;
  }

  if (isExtglob(str)) {
    return true;
  }

  var check = strictCheck;

  // optionally relax check
  if (options && options.strict === false) {
    check = relaxedCheck;
  }

  return check(str);
};
{
  "name": "is-glob",
  "description": "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.",
  "version": "4.0.3",
  "homepage": "https://github.com/micromatch/is-glob",
  "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
  "repository": "micromatch/is-glob",
  "license": "MIT",
  "files": [
    "index.js"
  ],
  "main": "index.js",
  "engines": {
    "node": ">=0.10.0"
  },
  "dependencies": {
    "is-extglob": "^2.1.1"
  },
  "devDependencies": {
    "gulp-format-md": "^0.1.10",
    "mocha": "^3.0.2"
  },
  "verb": {
    "layout": "default",
    "plugins": [
      "gulp-format-md"
    ],
    "related": {
      "list": [
        "assemble",
        "base",
        "update",
        "verb"
      ]
    },
    "reflinks": [
      "assemble",
      "bach",
      "base",
      "composer",
      "gulp",
      "has-glob",
      "is-valid-glob",
      "micromatch",
      "npm",
      "scaffold",
      "verb",
      "vinyl"
    ]
  }
}The MIT License (MIT)

Copyright (c) 2014-present, Jon Schlinkert.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
/*!
 * is-number <https://github.com/jonschlinkert/is-number>
 *
 * Copyright (c) 2014-present, Jon Schlinkert.
 * Released under the MIT License.
 */

'use strict';

module.exports = function(num) {
  if (typeof num === 'number') {
    return num - num === 0;
  }
  if (typeof num === 'string' && num.trim() !== '') {
    return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);
  }
  return false;
};
{
  "name": "is-number",
  "description": "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.",
  "version": "7.0.0",
  "homepage": "https://github.com/jonschlinkert/is-number",
  "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
  "repository": "jonschlinkert/is-number",
  "license": "MIT",
  "files": [
    "index.js"
  ],
  "main": "index.js",
  "engines": {
    "node": ">=0.12.0"
  },
  "devDependencies": {
    "ansi": "^0.3.1",
    "benchmark": "^2.1.4",
    "gulp-format-md": "^1.0.0",
    "mocha": "^3.5.3"
  },
  "verb": {
    "toc": false,
    "layout": "default",
    "tasks": [
      "readme"
    ],
    "related": {
      "list": [
        "is-plain-object",
        "is-primitive",
        "isobject",
        "kind-of"
      ]
    },
    "plugins": [
      "gulp-format-md"
    ],
    "lint": {
      "reflinks": true
    }
  }
}'use strict';
const path = require('path');

module.exports = path_ => {
	let cwd = process.cwd();

	path_ = path.resolve(path_);

	if (process.platform === 'win32') {
		cwd = cwd.toLowerCase();
		path_ = path_.toLowerCase();
	}

	return path_ === cwd;
};
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "is-path-cwd",
  "version": "2.2.0",
  "description": "Check if a path is the current working directory",
  "license": "MIT",
  "repository": "sindresorhus/is-path-cwd",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "sindresorhus.com"
  },
  "engines": {
    "node": ">=6"
  },
  "files": [
    "index.js",
    "index.d.ts"
  ],
  "devDependencies": {
    "ava": "^1.4.1",
    "tsd": "^0.7.2",
    "xo": "^0.24.0"
  }
}'use strict';
const path = require('path');

module.exports = (childPath, parentPath) => {
	const relation = path.relative(parentPath, childPath);
	return Boolean(
		relation &&
		relation !== '..' &&
		!relation.startsWith(`..${path.sep}`) &&
		relation !== path.resolve(childPath)
	);
};
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "is-path-inside",
  "version": "3.0.3",
  "description": "Check if a path is inside another path",
  "license": "MIT",
  "repository": "sindresorhus/is-path-inside",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "sindresorhus.com"
  },
  "engines": {
    "node": ">=8"
  },
  "files": [
    "index.js",
    "index.d.ts"
  ],
  "devDependencies": {
    "ava": "^2.1.0",
    "tsd": "^0.7.2",
    "xo": "^0.24.0"
  }
}'use strict';

const isStream = stream =>
	stream !== null &&
	typeof stream === 'object' &&
	typeof stream.pipe === 'function';

isStream.writable = stream =>
	isStream(stream) &&
	stream.writable !== false &&
	typeof stream._write === 'function' &&
	typeof stream._writableState === 'object';

isStream.readable = stream =>
	isStream(stream) &&
	stream.readable !== false &&
	typeof stream._read === 'function' &&
	typeof stream._readableState === 'object';

isStream.duplex = stream =>
	isStream.writable(stream) &&
	isStream.readable(stream);

isStream.transform = stream =>
	isStream.duplex(stream) &&
	typeof stream._transform === 'function';

module.exports = isStream;
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "is-stream",
  "version": "2.0.1",
  "description": "Check if something is a Node.js stream",
  "license": "MIT",
  "repository": "sindresorhus/is-stream",
  "funding": "https://github.com/sponsors/sindresorhus",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "https://sindresorhus.com"
  },
  "engines": {
    "node": ">=8"
  },
  "files": [
    "index.js",
    "index.d.ts"
  ],
  "devDependencies": {
    "@types/node": "^11.13.6",
    "ava": "^1.4.1",
    "tempy": "^0.3.0",
    "tsd": "^0.7.2",
    "xo": "^0.24.0"
  }
}The ISC License

Copyright (c) Isaac Z. Schlueter and Contributors

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
var fs = require('fs')
var core
if (process.platform === 'win32' || global.TESTING_WINDOWS) {
  core = require('./windows.js')
} else {
  core = require('./mode.js')
}

module.exports = isexe
isexe.sync = sync

function isexe (path, options, cb) {
  if (typeof options === 'function') {
    cb = options
    options = {}
  }

  if (!cb) {
    if (typeof Promise !== 'function') {
      throw new TypeError('callback not provided')
    }

    return new Promise(function (resolve, reject) {
      isexe(path, options || {}, function (er, is) {
        if (er) {
          reject(er)
        } else {
          resolve(is)
        }
      })
    })
  }

  core(path, options || {}, function (er, is) {
    // ignore EACCES because that just means we aren't allowed to run it
    if (er) {
      if (er.code === 'EACCES' || options && options.ignoreErrors) {
        er = null
        is = false
      }
    }
    cb(er, is)
  })
}

function sync (path, options) {
  // my kingdom for a filtered catch
  try {
    return core.sync(path, options || {})
  } catch (er) {
    if (options && options.ignoreErrors || er.code === 'EACCES') {
      return false
    } else {
      throw er
    }
  }
}
module.exports = isexe
isexe.sync = sync

var fs = require('fs')

function isexe (path, options, cb) {
  fs.stat(path, function (er, stat) {
    cb(er, er ? false : checkStat(stat, options))
  })
}

function sync (path, options) {
  return checkStat(fs.statSync(path), options)
}

function checkStat (stat, options) {
  return stat.isFile() && checkMode(stat, options)
}

function checkMode (stat, options) {
  var mod = stat.mode
  var uid = stat.uid
  var gid = stat.gid

  var myUid = options.uid !== undefined ?
    options.uid : process.getuid && process.getuid()
  var myGid = options.gid !== undefined ?
    options.gid : process.getgid && process.getgid()

  var u = parseInt('100', 8)
  var g = parseInt('010', 8)
  var o = parseInt('001', 8)
  var ug = u | g

  var ret = (mod & o) ||
    (mod & g) && gid === myGid ||
    (mod & u) && uid === myUid ||
    (mod & ug) && myUid === 0

  return ret
}
{
  "name": "isexe",
  "version": "2.0.0",
  "description": "Minimal module to check if a file is executable.",
  "main": "index.js",
  "directories": {
    "test": "test"
  },
  "devDependencies": {
    "mkdirp": "^0.5.1",
    "rimraf": "^2.5.0",
    "tap": "^10.3.0"
  },
  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
  "license": "ISC",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/isaacs/isexe.git"
  },
  "homepage": "https://github.com/isaacs/isexe#readme"
}module.exports = isexe
isexe.sync = sync

var fs = require('fs')

function checkPathExt (path, options) {
  var pathext = options.pathExt !== undefined ?
    options.pathExt : process.env.PATHEXT

  if (!pathext) {
    return true
  }

  pathext = pathext.split(';')
  if (pathext.indexOf('') !== -1) {
    return true
  }
  for (var i = 0; i < pathext.length; i++) {
    var p = pathext[i].toLowerCase()
    if (p && path.substr(-p.length).toLowerCase() === p) {
      return true
    }
  }
  return false
}

function checkStat (stat, path, options) {
  if (!stat.isSymbolicLink() && !stat.isFile()) {
    return false
  }
  return checkPathExt(path, options)
}

function isexe (path, options, cb) {
  fs.stat(path, function (er, stat) {
    cb(er, er ? false : checkStat(stat, path, options))
  })
}

function sync (path, options) {
  return checkStat(fs.statSync(path), path, options)
}
(The MIT License)

Copyright (C) 2011-2015 by Vitaly Puzrin

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
'use strict';


var loader = require('./lib/loader');
var dumper = require('./lib/dumper');


function renamed(from, to) {
  return function () {
    throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +
      'Use yaml.' + to + ' instead, which is now safe by default.');
  };
}


module.exports.Type                = require('./lib/type');
module.exports.Schema              = require('./lib/schema');
module.exports.FAILSAFE_SCHEMA     = require('./lib/schema/failsafe');
module.exports.JSON_SCHEMA         = require('./lib/schema/json');
module.exports.CORE_SCHEMA         = require('./lib/schema/core');
module.exports.DEFAULT_SCHEMA      = require('./lib/schema/default');
module.exports.load                = loader.load;
module.exports.loadAll             = loader.loadAll;
module.exports.dump                = dumper.dump;
module.exports.YAMLException       = require('./lib/exception');

// Re-export all types in case user wants to create custom schema
module.exports.types = {
  binary:    require('./lib/type/binary'),
  float:     require('./lib/type/float'),
  map:       require('./lib/type/map'),
  null:      require('./lib/type/null'),
  pairs:     require('./lib/type/pairs'),
  set:       require('./lib/type/set'),
  timestamp: require('./lib/type/timestamp'),
  bool:      require('./lib/type/bool'),
  int:       require('./lib/type/int'),
  merge:     require('./lib/type/merge'),
  omap:      require('./lib/type/omap'),
  seq:       require('./lib/type/seq'),
  str:       require('./lib/type/str')
};

// Removed functions from JS-YAML 3.0.x
module.exports.safeLoad            = renamed('safeLoad', 'load');
module.exports.safeLoadAll         = renamed('safeLoadAll', 'loadAll');
module.exports.safeDump            = renamed('safeDump', 'dump');
{
  "name": "js-yaml",
  "version": "4.1.0",
  "description": "YAML 1.2 parser and serializer",
  "author": "Vladimir Zapparov <dervus.grim@gmail.com>",
  "license": "MIT",
  "repository": "nodeca/js-yaml",
  "files": [
    "index.js",
    "lib/",
    "bin/",
    "dist/"
  ],
  "bin": {
    "js-yaml": "bin/js-yaml.js"
  },
  "module": "./dist/js-yaml.mjs",
  "exports": {
    ".": {
      "import": "./dist/js-yaml.mjs",
      "require": "./index.js"
    },
    "./package.json": "./package.json"
  },
  "unpkg": "dist/js-yaml.min.js",
  "jsdelivr": "dist/js-yaml.min.js",
  "dependencies": {
    "argparse": "^2.0.1"
  },
  "devDependencies": {
    "@rollup/plugin-commonjs": "^17.0.0",
    "@rollup/plugin-node-resolve": "^11.0.0",
    "ansi": "^0.3.1",
    "benchmark": "^2.1.4",
    "codemirror": "^5.13.4",
    "eslint": "^7.0.0",
    "fast-check": "^2.8.0",
    "gh-pages": "^3.1.0",
    "mocha": "^8.2.1",
    "nyc": "^15.1.0",
    "rollup": "^2.34.1",
    "rollup-plugin-node-polyfills": "^0.2.1",
    "rollup-plugin-terser": "^7.0.2",
    "shelljs": "^0.8.4"
  }
}'use strict';


function isNothing(subject) {
  return (typeof subject === 'undefined') || (subject === null);
}


function isObject(subject) {
  return (typeof subject === 'object') && (subject !== null);
}


function toArray(sequence) {
  if (Array.isArray(sequence)) return sequence;
  else if (isNothing(sequence)) return [];

  return [ sequence ];
}


function extend(target, source) {
  var index, length, key, sourceKeys;

  if (source) {
    sourceKeys = Object.keys(source);

    for (index = 0, length = sourceKeys.length; index < length; index += 1) {
      key = sourceKeys[index];
      target[key] = source[key];
    }
  }

  return target;
}


function repeat(string, count) {
  var result = '', cycle;

  for (cycle = 0; cycle < count; cycle += 1) {
    result += string;
  }

  return result;
}


function isNegativeZero(number) {
  return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);
}


module.exports.isNothing      = isNothing;
module.exports.isObject       = isObject;
module.exports.toArray        = toArray;
module.exports.repeat         = repeat;
module.exports.isNegativeZero = isNegativeZero;
module.exports.extend         = extend;
'use strict';

/*eslint-disable no-use-before-define*/

var common              = require('./common');
var YAMLException       = require('./exception');
var DEFAULT_SCHEMA      = require('./schema/default');

var _toString       = Object.prototype.toString;
var _hasOwnProperty = Object.prototype.hasOwnProperty;

var CHAR_BOM                  = 0xFEFF;
var CHAR_TAB                  = 0x09; /* Tab */
var CHAR_LINE_FEED            = 0x0A; /* LF */
var CHAR_CARRIAGE_RETURN      = 0x0D; /* CR */
var CHAR_SPACE                = 0x20; /* Space */
var CHAR_EXCLAMATION          = 0x21; /* ! */
var CHAR_DOUBLE_QUOTE         = 0x22; /* " */
var CHAR_SHARP                = 0x23; /* # */
var CHAR_PERCENT              = 0x25; /* % */
var CHAR_AMPERSAND            = 0x26; /* & */
var CHAR_SINGLE_QUOTE         = 0x27; /* ' */
var CHAR_ASTERISK             = 0x2A; /* * */
var CHAR_COMMA                = 0x2C; /* , */
var CHAR_MINUS                = 0x2D; /* - */
var CHAR_COLON                = 0x3A; /* : */
var CHAR_EQUALS               = 0x3D; /* = */
var CHAR_GREATER_THAN         = 0x3E; /* > */
var CHAR_QUESTION             = 0x3F; /* ? */
var CHAR_COMMERCIAL_AT        = 0x40; /* @ */
var CHAR_LEFT_SQUARE_BRACKET  = 0x5B; /* [ */
var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */
var CHAR_GRAVE_ACCENT         = 0x60; /* ` */
var CHAR_LEFT_CURLY_BRACKET   = 0x7B; /* { */
var CHAR_VERTICAL_LINE        = 0x7C; /* | */
var CHAR_RIGHT_CURLY_BRACKET  = 0x7D; /* } */

var ESCAPE_SEQUENCES = {};

ESCAPE_SEQUENCES[0x00]   = '\\0';
ESCAPE_SEQUENCES[0x07]   = '\\a';
ESCAPE_SEQUENCES[0x08]   = '\\b';
ESCAPE_SEQUENCES[0x09]   = '\\t';
ESCAPE_SEQUENCES[0x0A]   = '\\n';
ESCAPE_SEQUENCES[0x0B]   = '\\v';
ESCAPE_SEQUENCES[0x0C]   = '\\f';
ESCAPE_SEQUENCES[0x0D]   = '\\r';
ESCAPE_SEQUENCES[0x1B]   = '\\e';
ESCAPE_SEQUENCES[0x22]   = '\\"';
ESCAPE_SEQUENCES[0x5C]   = '\\\\';
ESCAPE_SEQUENCES[0x85]   = '\\N';
ESCAPE_SEQUENCES[0xA0]   = '\\_';
ESCAPE_SEQUENCES[0x2028] = '\\L';
ESCAPE_SEQUENCES[0x2029] = '\\P';

var DEPRECATED_BOOLEANS_SYNTAX = [
  'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',
  'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'
];

var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;

function compileStyleMap(schema, map) {
  var result, keys, index, length, tag, style, type;

  if (map === null) return {};

  result = {};
  keys = Object.keys(map);

  for (index = 0, length = keys.length; index < length; index += 1) {
    tag = keys[index];
    style = String(map[tag]);

    if (tag.slice(0, 2) === '!!') {
      tag = 'tag:yaml.org,2002:' + tag.slice(2);
    }
    type = schema.compiledTypeMap['fallback'][tag];

    if (type && _hasOwnProperty.call(type.styleAliases, style)) {
      style = type.styleAliases[style];
    }

    result[tag] = style;
  }

  return result;
}

function encodeHex(character) {
  var string, handle, length;

  string = character.toString(16).toUpperCase();

  if (character <= 0xFF) {
    handle = 'x';
    length = 2;
  } else if (character <= 0xFFFF) {
    handle = 'u';
    length = 4;
  } else if (character <= 0xFFFFFFFF) {
    handle = 'U';
    length = 8;
  } else {
    throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF');
  }

  return '\\' + handle + common.repeat('0', length - string.length) + string;
}


var QUOTING_TYPE_SINGLE = 1,
    QUOTING_TYPE_DOUBLE = 2;

function State(options) {
  this.schema        = options['schema'] || DEFAULT_SCHEMA;
  this.indent        = Math.max(1, (options['indent'] || 2));
  this.noArrayIndent = options['noArrayIndent'] || false;
  this.skipInvalid   = options['skipInvalid'] || false;
  this.flowLevel     = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);
  this.styleMap      = compileStyleMap(this.schema, options['styles'] || null);
  this.sortKeys      = options['sortKeys'] || false;
  this.lineWidth     = options['lineWidth'] || 80;
  this.noRefs        = options['noRefs'] || false;
  this.noCompatMode  = options['noCompatMode'] || false;
  this.condenseFlow  = options['condenseFlow'] || false;
  this.quotingType   = options['quotingType'] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;
  this.forceQuotes   = options['forceQuotes'] || false;
  this.replacer      = typeof options['replacer'] === 'function' ? options['replacer'] : null;

  this.implicitTypes = this.schema.compiledImplicit;
  this.explicitTypes = this.schema.compiledExplicit;

  this.tag = null;
  this.result = '';

  this.duplicates = [];
  this.usedDuplicates = null;
}

// Indents every line in a string. Empty lines (\n only) are not indented.
function indentString(string, spaces) {
  var ind = common.repeat(' ', spaces),
      position = 0,
      next = -1,
      result = '',
      line,
      length = string.length;

  while (position < length) {
    next = string.indexOf('\n', position);
    if (next === -1) {
      line = string.slice(position);
      position = length;
    } else {
      line = string.slice(position, next + 1);
      position = next + 1;
    }

    if (line.length && line !== '\n') result += ind;

    result += line;
  }

  return result;
}

function generateNextLine(state, level) {
  return '\n' + common.repeat(' ', state.indent * level);
}

function testImplicitResolving(state, str) {
  var index, length, type;

  for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {
    type = state.implicitTypes[index];

    if (type.resolve(str)) {
      return true;
    }
  }

  return false;
}

// [33] s-white ::= s-space | s-tab
function isWhitespace(c) {
  return c === CHAR_SPACE || c === CHAR_TAB;
}

// Returns true if the character can be printed without escaping.
// From YAML 1.2: "any allowed characters known to be non-printable
// should also be escaped. [However,] This isn’t mandatory"
// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029.
function isPrintable(c) {
  return  (0x00020 <= c && c <= 0x00007E)
      || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)
      || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)
      ||  (0x10000 <= c && c <= 0x10FFFF);
}

// [34] ns-char ::= nb-char - s-white
// [27] nb-char ::= c-printable - b-char - c-byte-order-mark
// [26] b-char  ::= b-line-feed | b-carriage-return
// Including s-white (for some reason, examples doesn't match specs in this aspect)
// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark
function isNsCharOrWhitespace(c) {
  return isPrintable(c)
    && c !== CHAR_BOM
    // - b-char
    && c !== CHAR_CARRIAGE_RETURN
    && c !== CHAR_LINE_FEED;
}

// [127]  ns-plain-safe(c) ::= c = flow-out  ⇒ ns-plain-safe-out
//                             c = flow-in   ⇒ ns-plain-safe-in
//                             c = block-key ⇒ ns-plain-safe-out
//                             c = flow-key  ⇒ ns-plain-safe-in
// [128] ns-plain-safe-out ::= ns-char
// [129]  ns-plain-safe-in ::= ns-char - c-flow-indicator
// [130]  ns-plain-char(c) ::=  ( ns-plain-safe(c) - “:” - “#” )
//                            | ( /* An ns-char preceding */ “#” )
//                            | ( “:” /* Followed by an ns-plain-safe(c) */ )
function isPlainSafe(c, prev, inblock) {
  var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);
  var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);
  return (
    // ns-plain-safe
    inblock ? // c = flow-in
      cIsNsCharOrWhitespace
      : cIsNsCharOrWhitespace
        // - c-flow-indicator
        && c !== CHAR_COMMA
        && c !== CHAR_LEFT_SQUARE_BRACKET
        && c !== CHAR_RIGHT_SQUARE_BRACKET
        && c !== CHAR_LEFT_CURLY_BRACKET
        && c !== CHAR_RIGHT_CURLY_BRACKET
  )
    // ns-plain-char
    && c !== CHAR_SHARP // false on '#'
    && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '
    || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'
    || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'
}

// Simplified test for values allowed as the first character in plain style.
function isPlainSafeFirst(c) {
  // Uses a subset of ns-char - c-indicator
  // where ns-char = nb-char - s-white.
  // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part
  return isPrintable(c) && c !== CHAR_BOM
    && !isWhitespace(c) // - s-white
    // - (c-indicator ::=
    // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”
    && c !== CHAR_MINUS
    && c !== CHAR_QUESTION
    && c !== CHAR_COLON
    && c !== CHAR_COMMA
    && c !== CHAR_LEFT_SQUARE_BRACKET
    && c !== CHAR_RIGHT_SQUARE_BRACKET
    && c !== CHAR_LEFT_CURLY_BRACKET
    && c !== CHAR_RIGHT_CURLY_BRACKET
    // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"”
    && c !== CHAR_SHARP
    && c !== CHAR_AMPERSAND
    && c !== CHAR_ASTERISK
    && c !== CHAR_EXCLAMATION
    && c !== CHAR_VERTICAL_LINE
    && c !== CHAR_EQUALS
    && c !== CHAR_GREATER_THAN
    && c !== CHAR_SINGLE_QUOTE
    && c !== CHAR_DOUBLE_QUOTE
    // | “%” | “@” | “`”)
    && c !== CHAR_PERCENT
    && c !== CHAR_COMMERCIAL_AT
    && c !== CHAR_GRAVE_ACCENT;
}

// Simplified test for values allowed as the last character in plain style.
function isPlainSafeLast(c) {
  // just not whitespace or colon, it will be checked to be plain character later
  return !isWhitespace(c) && c !== CHAR_COLON;
}

// Same as 'string'.codePointAt(pos), but works in older browsers.
function codePointAt(string, pos) {
  var first = string.charCodeAt(pos), second;
  if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {
    second = string.charCodeAt(pos + 1);
    if (second >= 0xDC00 && second <= 0xDFFF) {
      // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
      return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
    }
  }
  return first;
}

// Determines whether block indentation indicator is required.
function needIndentIndicator(string) {
  var leadingSpaceRe = /^\n* /;
  return leadingSpaceRe.test(string);
}

var STYLE_PLAIN   = 1,
    STYLE_SINGLE  = 2,
    STYLE_LITERAL = 3,
    STYLE_FOLDED  = 4,
    STYLE_DOUBLE  = 5;

// Determines which scalar styles are possible and returns the preferred style.
// lineWidth = -1 => no limit.
// Pre-conditions: str.length > 0.
// Post-conditions:
//    STYLE_PLAIN or STYLE_SINGLE => no \n are in the string.
//    STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).
//    STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).
function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,
  testAmbiguousType, quotingType, forceQuotes, inblock) {

  var i;
  var char = 0;
  var prevChar = null;
  var hasLineBreak = false;
  var hasFoldableLine = false; // only checked if shouldTrackWidth
  var shouldTrackWidth = lineWidth !== -1;
  var previousLineBreak = -1; // count the first line correctly
  var plain = isPlainSafeFirst(codePointAt(string, 0))
          && isPlainSafeLast(codePointAt(string, string.length - 1));

  if (singleLineOnly || forceQuotes) {
    // Case: no block styles.
    // Check for disallowed characters to rule out plain and single.
    for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {
      char = codePointAt(string, i);
      if (!isPrintable(char)) {
        return STYLE_DOUBLE;
      }
      plain = plain && isPlainSafe(char, prevChar, inblock);
      prevChar = char;
    }
  } else {
    // Case: block styles permitted.
    for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {
      char = codePointAt(string, i);
      if (char === CHAR_LINE_FEED) {
        hasLineBreak = true;
        // Check if any line can be folded.
        if (shouldTrackWidth) {
          hasFoldableLine = hasFoldableLine ||
            // Foldable line = too long, and not more-indented.
            (i - previousLineBreak - 1 > lineWidth &&
             string[previousLineBreak + 1] !== ' ');
          previousLineBreak = i;
        }
      } else if (!isPrintable(char)) {
        return STYLE_DOUBLE;
      }
      plain = plain && isPlainSafe(char, prevChar, inblock);
      prevChar = char;
    }
    // in case the end is missing a \n
    hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&
      (i - previousLineBreak - 1 > lineWidth &&
       string[previousLineBreak + 1] !== ' '));
  }
  // Although every style can represent \n without escaping, prefer block styles
  // for multiline, since they're more readable and they don't add empty lines.
  // Also prefer folding a super-long line.
  if (!hasLineBreak && !hasFoldableLine) {
    // Strings interpretable as another type have to be quoted;
    // e.g. the string 'true' vs. the boolean true.
    if (plain && !forceQuotes && !testAmbiguousType(string)) {
      return STYLE_PLAIN;
    }
    return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;
  }
  // Edge case: block indentation indicator can only have one digit.
  if (indentPerLevel > 9 && needIndentIndicator(string)) {
    return STYLE_DOUBLE;
  }
  // At this point we know block styles are valid.
  // Prefer literal style unless we want to fold.
  if (!forceQuotes) {
    return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;
  }
  return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;
}

// Note: line breaking/folding is implemented for only the folded style.
// NB. We drop the last trailing newline (if any) of a returned block scalar
//  since the dumper adds its own newline. This always works:
//    • No ending newline => unaffected; already using strip "-" chomping.
//    • Ending newline    => removed then restored.
//  Importantly, this keeps the "+" chomp indicator from gaining an extra line.
function writeScalar(state, string, level, iskey, inblock) {
  state.dump = (function () {
    if (string.length === 0) {
      return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''";
    }
    if (!state.noCompatMode) {
      if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {
        return state.quotingType === QUOTING_TYPE_DOUBLE ? ('"' + string + '"') : ("'" + string + "'");
      }
    }

    var indent = state.indent * Math.max(1, level); // no 0-indent scalars
    // As indentation gets deeper, let the width decrease monotonically
    // to the lower bound min(state.lineWidth, 40).
    // Note that this implies
    //  state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.
    //  state.lineWidth > 40 + state.indent: width decreases until the lower bound.
    // This behaves better than a constant minimum width which disallows narrower options,
    // or an indent threshold which causes the width to suddenly increase.
    var lineWidth = state.lineWidth === -1
      ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);

    // Without knowing if keys are implicit/explicit, assume implicit for safety.
    var singleLineOnly = iskey
      // No block styles in flow mode.
      || (state.flowLevel > -1 && level >= state.flowLevel);
    function testAmbiguity(string) {
      return testImplicitResolving(state, string);
    }

    switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,
      testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {

      case STYLE_PLAIN:
        return string;
      case STYLE_SINGLE:
        return "'" + string.replace(/'/g, "''") + "'";
      case STYLE_LITERAL:
        return '|' + blockHeader(string, state.indent)
          + dropEndingNewline(indentString(string, indent));
      case STYLE_FOLDED:
        return '>' + blockHeader(string, state.indent)
          + dropEndingNewline(indentString(foldString(string, lineWidth), indent));
      case STYLE_DOUBLE:
        return '"' + escapeString(string, lineWidth) + '"';
      default:
        throw new YAMLException('impossible error: invalid scalar style');
    }
  }());
}

// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.
function blockHeader(string, indentPerLevel) {
  var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';

  // note the special case: the string '\n' counts as a "trailing" empty line.
  var clip =          string[string.length - 1] === '\n';
  var keep = clip && (string[string.length - 2] === '\n' || string === '\n');
  var chomp = keep ? '+' : (clip ? '' : '-');

  return indentIndicator + chomp + '\n';
}

// (See the note for writeScalar.)
function dropEndingNewline(string) {
  return string[string.length - 1] === '\n' ? string.slice(0, -1) : string;
}

// Note: a long line without a suitable break point will exceed the width limit.
// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.
function foldString(string, width) {
  // In folded style, $k$ consecutive newlines output as $k+1$ newlines—
  // unless they're before or after a more-indented line, or at the very
  // beginning or end, in which case $k$ maps to $k$.
  // Therefore, parse each chunk as newline(s) followed by a content line.
  var lineRe = /(\n+)([^\n]*)/g;

  // first line (possibly an empty line)
  var result = (function () {
    var nextLF = string.indexOf('\n');
    nextLF = nextLF !== -1 ? nextLF : string.length;
    lineRe.lastIndex = nextLF;
    return foldLine(string.slice(0, nextLF), width);
  }());
  // If we haven't reached the first content line yet, don't add an extra \n.
  var prevMoreIndented = string[0] === '\n' || string[0] === ' ';
  var moreIndented;

  // rest of the lines
  var match;
  while ((match = lineRe.exec(string))) {
    var prefix = match[1], line = match[2];
    moreIndented = (line[0] === ' ');
    result += prefix
      + (!prevMoreIndented && !moreIndented && line !== ''
        ? '\n' : '')
      + foldLine(line, width);
    prevMoreIndented = moreIndented;
  }

  return result;
}

// Greedy line breaking.
// Picks the longest line under the limit each time,
// otherwise settles for the shortest line over the limit.
// NB. More-indented lines *cannot* be folded, as that would add an extra \n.
function foldLine(line, width) {
  if (line === '' || line[0] === ' ') return line;

  // Since a more-indented line adds a \n, breaks can't be followed by a space.
  var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.
  var match;
  // start is an inclusive index. end, curr, and next are exclusive.
  var start = 0, end, curr = 0, next = 0;
  var result = '';

  // Invariants: 0 <= start <= length-1.
  //   0 <= curr <= next <= max(0, length-2). curr - start <= width.
  // Inside the loop:
  //   A match implies length >= 2, so curr and next are <= length-2.
  while ((match = breakRe.exec(line))) {
    next = match.index;
    // maintain invariant: curr - start <= width
    if (next - start > width) {
      end = (curr > start) ? curr : next; // derive end <= length-2
      result += '\n' + line.slice(start, end);
      // skip the space that was output as \n
      start = end + 1;                    // derive start <= length-1
    }
    curr = next;
  }

  // By the invariants, start <= length-1, so there is something left over.
  // It is either the whole string or a part starting from non-whitespace.
  result += '\n';
  // Insert a break if the remainder is too long and there is a break available.
  if (line.length - start > width && curr > start) {
    result += line.slice(start, curr) + '\n' + line.slice(curr + 1);
  } else {
    result += line.slice(start);
  }

  return result.slice(1); // drop extra \n joiner
}

// Escapes a double-quoted string.
function escapeString(string) {
  var result = '';
  var char = 0;
  var escapeSeq;

  for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {
    char = codePointAt(string, i);
    escapeSeq = ESCAPE_SEQUENCES[char];

    if (!escapeSeq && isPrintable(char)) {
      result += string[i];
      if (char >= 0x10000) result += string[i + 1];
    } else {
      result += escapeSeq || encodeHex(char);
    }
  }

  return result;
}

function writeFlowSequence(state, level, object) {
  var _result = '',
      _tag    = state.tag,
      index,
      length,
      value;

  for (index = 0, length = object.length; index < length; index += 1) {
    value = object[index];

    if (state.replacer) {
      value = state.replacer.call(object, String(index), value);
    }

    // Write only valid elements, put null instead of invalid elements.
    if (writeNode(state, level, value, false, false) ||
        (typeof value === 'undefined' &&
         writeNode(state, level, null, false, false))) {

      if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');
      _result += state.dump;
    }
  }

  state.tag = _tag;
  state.dump = '[' + _result + ']';
}

function writeBlockSequence(state, level, object, compact) {
  var _result = '',
      _tag    = state.tag,
      index,
      length,
      value;

  for (index = 0, length = object.length; index < length; index += 1) {
    value = object[index];

    if (state.replacer) {
      value = state.replacer.call(object, String(index), value);
    }

    // Write only valid elements, put null instead of invalid elements.
    if (writeNode(state, level + 1, value, true, true, false, true) ||
        (typeof value === 'undefined' &&
         writeNode(state, level + 1, null, true, true, false, true))) {

      if (!compact || _result !== '') {
        _result += generateNextLine(state, level);
      }

      if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
        _result += '-';
      } else {
        _result += '- ';
      }

      _result += state.dump;
    }
  }

  state.tag = _tag;
  state.dump = _result || '[]'; // Empty sequence if no valid values.
}

function writeFlowMapping(state, level, object) {
  var _result       = '',
      _tag          = state.tag,
      objectKeyList = Object.keys(object),
      index,
      length,
      objectKey,
      objectValue,
      pairBuffer;

  for (index = 0, length = objectKeyList.length; index < length; index += 1) {

    pairBuffer = '';
    if (_result !== '') pairBuffer += ', ';

    if (state.condenseFlow) pairBuffer += '"';

    objectKey = objectKeyList[index];
    objectValue = object[objectKey];

    if (state.replacer) {
      objectValue = state.replacer.call(object, objectKey, objectValue);
    }

    if (!writeNode(state, level, objectKey, false, false)) {
      continue; // Skip this pair because of invalid key;
    }

    if (state.dump.length > 1024) pairBuffer += '? ';

    pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' ');

    if (!writeNode(state, level, objectValue, false, false)) {
      continue; // Skip this pair because of invalid value.
    }

    pairBuffer += state.dump;

    // Both key and value are valid.
    _result += pairBuffer;
  }

  state.tag = _tag;
  state.dump = '{' + _result + '}';
}

function writeBlockMapping(state, level, object, compact) {
  var _result       = '',
      _tag          = state.tag,
      objectKeyList = Object.keys(object),
      index,
      length,
      objectKey,
      objectValue,
      explicitPair,
      pairBuffer;

  // Allow sorting keys so that the output file is deterministic
  if (state.sortKeys === true) {
    // Default sorting
    objectKeyList.sort();
  } else if (typeof state.sortKeys === 'function') {
    // Custom sort function
    objectKeyList.sort(state.sortKeys);
  } else if (state.sortKeys) {
    // Something is wrong
    throw new YAMLException('sortKeys must be a boolean or a function');
  }

  for (index = 0, length = objectKeyList.length; index < length; index += 1) {
    pairBuffer = '';

    if (!compact || _result !== '') {
      pairBuffer += generateNextLine(state, level);
    }

    objectKey = objectKeyList[index];
    objectValue = object[objectKey];

    if (state.replacer) {
      objectValue = state.replacer.call(object, objectKey, objectValue);
    }

    if (!writeNode(state, level + 1, objectKey, true, true, true)) {
      continue; // Skip this pair because of invalid key.
    }

    explicitPair = (state.tag !== null && state.tag !== '?') ||
                   (state.dump && state.dump.length > 1024);

    if (explicitPair) {
      if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
        pairBuffer += '?';
      } else {
        pairBuffer += '? ';
      }
    }

    pairBuffer += state.dump;

    if (explicitPair) {
      pairBuffer += generateNextLine(state, level);
    }

    if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {
      continue; // Skip this pair because of invalid value.
    }

    if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
      pairBuffer += ':';
    } else {
      pairBuffer += ': ';
    }

    pairBuffer += state.dump;

    // Both key and value are valid.
    _result += pairBuffer;
  }

  state.tag = _tag;
  state.dump = _result || '{}'; // Empty mapping if no valid pairs.
}

function detectType(state, object, explicit) {
  var _result, typeList, index, length, type, style;

  typeList = explicit ? state.explicitTypes : state.implicitTypes;

  for (index = 0, length = typeList.length; index < length; index += 1) {
    type = typeList[index];

    if ((type.instanceOf  || type.predicate) &&
        (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&
        (!type.predicate  || type.predicate(object))) {

      if (explicit) {
        if (type.multi && type.representName) {
          state.tag = type.representName(object);
        } else {
          state.tag = type.tag;
        }
      } else {
        state.tag = '?';
      }

      if (type.represent) {
        style = state.styleMap[type.tag] || type.defaultStyle;

        if (_toString.call(type.represent) === '[object Function]') {
          _result = type.represent(object, style);
        } else if (_hasOwnProperty.call(type.represent, style)) {
          _result = type.represent[style](object, style);
        } else {
          throw new YAMLException('!<' + type.tag + '> tag resolver accepts not "' + style + '" style');
        }

        state.dump = _result;
      }

      return true;
    }
  }

  return false;
}

// Serializes `object` and writes it to global `result`.
// Returns true on success, or false on invalid object.
//
function writeNode(state, level, object, block, compact, iskey, isblockseq) {
  state.tag = null;
  state.dump = object;

  if (!detectType(state, object, false)) {
    detectType(state, object, true);
  }

  var type = _toString.call(state.dump);
  var inblock = block;
  var tagStr;

  if (block) {
    block = (state.flowLevel < 0 || state.flowLevel > level);
  }

  var objectOrArray = type === '[object Object]' || type === '[object Array]',
      duplicateIndex,
      duplicate;

  if (objectOrArray) {
    duplicateIndex = state.duplicates.indexOf(object);
    duplicate = duplicateIndex !== -1;
  }

  if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {
    compact = false;
  }

  if (duplicate && state.usedDuplicates[duplicateIndex]) {
    state.dump = '*ref_' + duplicateIndex;
  } else {
    if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {
      state.usedDuplicates[duplicateIndex] = true;
    }
    if (type === '[object Object]') {
      if (block && (Object.keys(state.dump).length !== 0)) {
        writeBlockMapping(state, level, state.dump, compact);
        if (duplicate) {
          state.dump = '&ref_' + duplicateIndex + state.dump;
        }
      } else {
        writeFlowMapping(state, level, state.dump);
        if (duplicate) {
          state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;
        }
      }
    } else if (type === '[object Array]') {
      if (block && (state.dump.length !== 0)) {
        if (state.noArrayIndent && !isblockseq && level > 0) {
          writeBlockSequence(state, level - 1, state.dump, compact);
        } else {
          writeBlockSequence(state, level, state.dump, compact);
        }
        if (duplicate) {
          state.dump = '&ref_' + duplicateIndex + state.dump;
        }
      } else {
        writeFlowSequence(state, level, state.dump);
        if (duplicate) {
          state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;
        }
      }
    } else if (type === '[object String]') {
      if (state.tag !== '?') {
        writeScalar(state, state.dump, level, iskey, inblock);
      }
    } else if (type === '[object Undefined]') {
      return false;
    } else {
      if (state.skipInvalid) return false;
      throw new YAMLException('unacceptable kind of an object to dump ' + type);
    }

    if (state.tag !== null && state.tag !== '?') {
      // Need to encode all characters except those allowed by the spec:
      //
      // [35] ns-dec-digit    ::=  [#x30-#x39] /* 0-9 */
      // [36] ns-hex-digit    ::=  ns-dec-digit
      //                         | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */
      // [37] ns-ascii-letter ::=  [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */
      // [38] ns-word-char    ::=  ns-dec-digit | ns-ascii-letter | “-”
      // [39] ns-uri-char     ::=  “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”
      //                         | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”
      //                         | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”
      //
      // Also need to encode '!' because it has special meaning (end of tag prefix).
      //
      tagStr = encodeURI(
        state.tag[0] === '!' ? state.tag.slice(1) : state.tag
      ).replace(/!/g, '%21');

      if (state.tag[0] === '!') {
        tagStr = '!' + tagStr;
      } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {
        tagStr = '!!' + tagStr.slice(18);
      } else {
        tagStr = '!<' + tagStr + '>';
      }

      state.dump = tagStr + ' ' + state.dump;
    }
  }

  return true;
}

function getDuplicateReferences(object, state) {
  var objects = [],
      duplicatesIndexes = [],
      index,
      length;

  inspectNode(object, objects, duplicatesIndexes);

  for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {
    state.duplicates.push(objects[duplicatesIndexes[index]]);
  }
  state.usedDuplicates = new Array(length);
}

function inspectNode(object, objects, duplicatesIndexes) {
  var objectKeyList,
      index,
      length;

  if (object !== null && typeof object === 'object') {
    index = objects.indexOf(object);
    if (index !== -1) {
      if (duplicatesIndexes.indexOf(index) === -1) {
        duplicatesIndexes.push(index);
      }
    } else {
      objects.push(object);

      if (Array.isArray(object)) {
        for (index = 0, length = object.length; index < length; index += 1) {
          inspectNode(object[index], objects, duplicatesIndexes);
        }
      } else {
        objectKeyList = Object.keys(object);

        for (index = 0, length = objectKeyList.length; index < length; index += 1) {
          inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);
        }
      }
    }
  }
}

function dump(input, options) {
  options = options || {};

  var state = new State(options);

  if (!state.noRefs) getDuplicateReferences(input, state);

  var value = input;

  if (state.replacer) {
    value = state.replacer.call({ '': value }, '', value);
  }

  if (writeNode(state, 0, value, true, true)) return state.dump + '\n';

  return '';
}

module.exports.dump = dump;
// YAML error class. http://stackoverflow.com/questions/8458984
//
'use strict';


function formatError(exception, compact) {
  var where = '', message = exception.reason || '(unknown reason)';

  if (!exception.mark) return message;

  if (exception.mark.name) {
    where += 'in "' + exception.mark.name + '" ';
  }

  where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';

  if (!compact && exception.mark.snippet) {
    where += '\n\n' + exception.mark.snippet;
  }

  return message + ' ' + where;
}


function YAMLException(reason, mark) {
  // Super constructor
  Error.call(this);

  this.name = 'YAMLException';
  this.reason = reason;
  this.mark = mark;
  this.message = formatError(this, false);

  // Include stack trace in error object
  if (Error.captureStackTrace) {
    // Chrome and NodeJS
    Error.captureStackTrace(this, this.constructor);
  } else {
    // FF, IE 10+ and Safari 6+. Fallback for others
    this.stack = (new Error()).stack || '';
  }
}


// Inherit from Error
YAMLException.prototype = Object.create(Error.prototype);
YAMLException.prototype.constructor = YAMLException;


YAMLException.prototype.toString = function toString(compact) {
  return this.name + ': ' + formatError(this, compact);
};


module.exports = YAMLException;
'use strict';

/*eslint-disable max-len,no-use-before-define*/

var common              = require('./common');
var YAMLException       = require('./exception');
var makeSnippet         = require('./snippet');
var DEFAULT_SCHEMA      = require('./schema/default');


var _hasOwnProperty = Object.prototype.hasOwnProperty;


var CONTEXT_FLOW_IN   = 1;
var CONTEXT_FLOW_OUT  = 2;
var CONTEXT_BLOCK_IN  = 3;
var CONTEXT_BLOCK_OUT = 4;


var CHOMPING_CLIP  = 1;
var CHOMPING_STRIP = 2;
var CHOMPING_KEEP  = 3;


var PATTERN_NON_PRINTABLE         = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/;
var PATTERN_FLOW_INDICATORS       = /[,\[\]\{\}]/;
var PATTERN_TAG_HANDLE            = /^(?:!|!!|![a-z\-]+!)$/i;
var PATTERN_TAG_URI               = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;


function _class(obj) { return Object.prototype.toString.call(obj); }

function is_EOL(c) {
  return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);
}

function is_WHITE_SPACE(c) {
  return (c === 0x09/* Tab */) || (c === 0x20/* Space */);
}

function is_WS_OR_EOL(c) {
  return (c === 0x09/* Tab */) ||
         (c === 0x20/* Space */) ||
         (c === 0x0A/* LF */) ||
         (c === 0x0D/* CR */);
}

function is_FLOW_INDICATOR(c) {
  return c === 0x2C/* , */ ||
         c === 0x5B/* [ */ ||
         c === 0x5D/* ] */ ||
         c === 0x7B/* { */ ||
         c === 0x7D/* } */;
}

function fromHexCode(c) {
  var lc;

  if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {
    return c - 0x30;
  }

  /*eslint-disable no-bitwise*/
  lc = c | 0x20;

  if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {
    return lc - 0x61 + 10;
  }

  return -1;
}

function escapedHexLen(c) {
  if (c === 0x78/* x */) { return 2; }
  if (c === 0x75/* u */) { return 4; }
  if (c === 0x55/* U */) { return 8; }
  return 0;
}

function fromDecimalCode(c) {
  if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {
    return c - 0x30;
  }

  return -1;
}

function simpleEscapeSequence(c) {
  /* eslint-disable indent */
  return (c === 0x30/* 0 */) ? '\x00' :
        (c === 0x61/* a */) ? '\x07' :
        (c === 0x62/* b */) ? '\x08' :
        (c === 0x74/* t */) ? '\x09' :
        (c === 0x09/* Tab */) ? '\x09' :
        (c === 0x6E/* n */) ? '\x0A' :
        (c === 0x76/* v */) ? '\x0B' :
        (c === 0x66/* f */) ? '\x0C' :
        (c === 0x72/* r */) ? '\x0D' :
        (c === 0x65/* e */) ? '\x1B' :
        (c === 0x20/* Space */) ? ' ' :
        (c === 0x22/* " */) ? '\x22' :
        (c === 0x2F/* / */) ? '/' :
        (c === 0x5C/* \ */) ? '\x5C' :
        (c === 0x4E/* N */) ? '\x85' :
        (c === 0x5F/* _ */) ? '\xA0' :
        (c === 0x4C/* L */) ? '\u2028' :
        (c === 0x50/* P */) ? '\u2029' : '';
}

function charFromCodepoint(c) {
  if (c <= 0xFFFF) {
    return String.fromCharCode(c);
  }
  // Encode UTF-16 surrogate pair
  // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF
  return String.fromCharCode(
    ((c - 0x010000) >> 10) + 0xD800,
    ((c - 0x010000) & 0x03FF) + 0xDC00
  );
}

var simpleEscapeCheck = new Array(256); // integer, for fast access
var simpleEscapeMap = new Array(256);
for (var i = 0; i < 256; i++) {
  simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;
  simpleEscapeMap[i] = simpleEscapeSequence(i);
}


function State(input, options) {
  this.input = input;

  this.filename  = options['filename']  || null;
  this.schema    = options['schema']    || DEFAULT_SCHEMA;
  this.onWarning = options['onWarning'] || null;
  // (Hidden) Remove? makes the loader to expect YAML 1.1 documents
  // if such documents have no explicit %YAML directive
  this.legacy    = options['legacy']    || false;

  this.json      = options['json']      || false;
  this.listener  = options['listener']  || null;

  this.implicitTypes = this.schema.compiledImplicit;
  this.typeMap       = this.schema.compiledTypeMap;

  this.length     = input.length;
  this.position   = 0;
  this.line       = 0;
  this.lineStart  = 0;
  this.lineIndent = 0;

  // position of first leading tab in the current line,
  // used to make sure there are no tabs in the indentation
  this.firstTabInLine = -1;

  this.documents = [];

  /*
  this.version;
  this.checkLineBreaks;
  this.tagMap;
  this.anchorMap;
  this.tag;
  this.anchor;
  this.kind;
  this.result;*/

}


function generateError(state, message) {
  var mark = {
    name:     state.filename,
    buffer:   state.input.slice(0, -1), // omit trailing \0
    position: state.position,
    line:     state.line,
    column:   state.position - state.lineStart
  };

  mark.snippet = makeSnippet(mark);

  return new YAMLException(message, mark);
}

function throwError(state, message) {
  throw generateError(state, message);
}

function throwWarning(state, message) {
  if (state.onWarning) {
    state.onWarning.call(null, generateError(state, message));
  }
}


var directiveHandlers = {

  YAML: function handleYamlDirective(state, name, args) {

    var match, major, minor;

    if (state.version !== null) {
      throwError(state, 'duplication of %YAML directive');
    }

    if (args.length !== 1) {
      throwError(state, 'YAML directive accepts exactly one argument');
    }

    match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]);

    if (match === null) {
      throwError(state, 'ill-formed argument of the YAML directive');
    }

    major = parseInt(match[1], 10);
    minor = parseInt(match[2], 10);

    if (major !== 1) {
      throwError(state, 'unacceptable YAML version of the document');
    }

    state.version = args[0];
    state.checkLineBreaks = (minor < 2);

    if (minor !== 1 && minor !== 2) {
      throwWarning(state, 'unsupported YAML version of the document');
    }
  },

  TAG: function handleTagDirective(state, name, args) {

    var handle, prefix;

    if (args.length !== 2) {
      throwError(state, 'TAG directive accepts exactly two arguments');
    }

    handle = args[0];
    prefix = args[1];

    if (!PATTERN_TAG_HANDLE.test(handle)) {
      throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');
    }

    if (_hasOwnProperty.call(state.tagMap, handle)) {
      throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle');
    }

    if (!PATTERN_TAG_URI.test(prefix)) {
      throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');
    }

    try {
      prefix = decodeURIComponent(prefix);
    } catch (err) {
      throwError(state, 'tag prefix is malformed: ' + prefix);
    }

    state.tagMap[handle] = prefix;
  }
};


function captureSegment(state, start, end, checkJson) {
  var _position, _length, _character, _result;

  if (start < end) {
    _result = state.input.slice(start, end);

    if (checkJson) {
      for (_position = 0, _length = _result.length; _position < _length; _position += 1) {
        _character = _result.charCodeAt(_position);
        if (!(_character === 0x09 ||
              (0x20 <= _character && _character <= 0x10FFFF))) {
          throwError(state, 'expected valid JSON character');
        }
      }
    } else if (PATTERN_NON_PRINTABLE.test(_result)) {
      throwError(state, 'the stream contains non-printable characters');
    }

    state.result += _result;
  }
}

function mergeMappings(state, destination, source, overridableKeys) {
  var sourceKeys, key, index, quantity;

  if (!common.isObject(source)) {
    throwError(state, 'cannot merge mappings; the provided source object is unacceptable');
  }

  sourceKeys = Object.keys(source);

  for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {
    key = sourceKeys[index];

    if (!_hasOwnProperty.call(destination, key)) {
      destination[key] = source[key];
      overridableKeys[key] = true;
    }
  }
}

function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,
  startLine, startLineStart, startPos) {

  var index, quantity;

  // The output is a plain object here, so keys can only be strings.
  // We need to convert keyNode to a string, but doing so can hang the process
  // (deeply nested arrays that explode exponentially using aliases).
  if (Array.isArray(keyNode)) {
    keyNode = Array.prototype.slice.call(keyNode);

    for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {
      if (Array.isArray(keyNode[index])) {
        throwError(state, 'nested arrays are not supported inside keys');
      }

      if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {
        keyNode[index] = '[object Object]';
      }
    }
  }

  // Avoid code execution in load() via toString property
  // (still use its own toString for arrays, timestamps,
  // and whatever user schema extensions happen to have @@toStringTag)
  if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {
    keyNode = '[object Object]';
  }


  keyNode = String(keyNode);

  if (_result === null) {
    _result = {};
  }

  if (keyTag === 'tag:yaml.org,2002:merge') {
    if (Array.isArray(valueNode)) {
      for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {
        mergeMappings(state, _result, valueNode[index], overridableKeys);
      }
    } else {
      mergeMappings(state, _result, valueNode, overridableKeys);
    }
  } else {
    if (!state.json &&
        !_hasOwnProperty.call(overridableKeys, keyNode) &&
        _hasOwnProperty.call(_result, keyNode)) {
      state.line = startLine || state.line;
      state.lineStart = startLineStart || state.lineStart;
      state.position = startPos || state.position;
      throwError(state, 'duplicated mapping key');
    }

    // used for this specific key only because Object.defineProperty is slow
    if (keyNode === '__proto__') {
      Object.defineProperty(_result, keyNode, {
        configurable: true,
        enumerable: true,
        writable: true,
        value: valueNode
      });
    } else {
      _result[keyNode] = valueNode;
    }
    delete overridableKeys[keyNode];
  }

  return _result;
}

function readLineBreak(state) {
  var ch;

  ch = state.input.charCodeAt(state.position);

  if (ch === 0x0A/* LF */) {
    state.position++;
  } else if (ch === 0x0D/* CR */) {
    state.position++;
    if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {
      state.position++;
    }
  } else {
    throwError(state, 'a line break is expected');
  }

  state.line += 1;
  state.lineStart = state.position;
  state.firstTabInLine = -1;
}

function skipSeparationSpace(state, allowComments, checkIndent) {
  var lineBreaks = 0,
      ch = state.input.charCodeAt(state.position);

  while (ch !== 0) {
    while (is_WHITE_SPACE(ch)) {
      if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {
        state.firstTabInLine = state.position;
      }
      ch = state.input.charCodeAt(++state.position);
    }

    if (allowComments && ch === 0x23/* # */) {
      do {
        ch = state.input.charCodeAt(++state.position);
      } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);
    }

    if (is_EOL(ch)) {
      readLineBreak(state);

      ch = state.input.charCodeAt(state.position);
      lineBreaks++;
      state.lineIndent = 0;

      while (ch === 0x20/* Space */) {
        state.lineIndent++;
        ch = state.input.charCodeAt(++state.position);
      }
    } else {
      break;
    }
  }

  if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {
    throwWarning(state, 'deficient indentation');
  }

  return lineBreaks;
}

function testDocumentSeparator(state) {
  var _position = state.position,
      ch;

  ch = state.input.charCodeAt(_position);

  // Condition state.position === state.lineStart is tested
  // in parent on each call, for efficiency. No needs to test here again.
  if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&
      ch === state.input.charCodeAt(_position + 1) &&
      ch === state.input.charCodeAt(_position + 2)) {

    _position += 3;

    ch = state.input.charCodeAt(_position);

    if (ch === 0 || is_WS_OR_EOL(ch)) {
      return true;
    }
  }

  return false;
}

function writeFoldedLines(state, count) {
  if (count === 1) {
    state.result += ' ';
  } else if (count > 1) {
    state.result += common.repeat('\n', count - 1);
  }
}


function readPlainScalar(state, nodeIndent, withinFlowCollection) {
  var preceding,
      following,
      captureStart,
      captureEnd,
      hasPendingContent,
      _line,
      _lineStart,
      _lineIndent,
      _kind = state.kind,
      _result = state.result,
      ch;

  ch = state.input.charCodeAt(state.position);

  if (is_WS_OR_EOL(ch)      ||
      is_FLOW_INDICATOR(ch) ||
      ch === 0x23/* # */    ||
      ch === 0x26/* & */    ||
      ch === 0x2A/* * */    ||
      ch === 0x21/* ! */    ||
      ch === 0x7C/* | */    ||
      ch === 0x3E/* > */    ||
      ch === 0x27/* ' */    ||
      ch === 0x22/* " */    ||
      ch === 0x25/* % */    ||
      ch === 0x40/* @ */    ||
      ch === 0x60/* ` */) {
    return false;
  }

  if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {
    following = state.input.charCodeAt(state.position + 1);

    if (is_WS_OR_EOL(following) ||
        withinFlowCollection && is_FLOW_INDICATOR(following)) {
      return false;
    }
  }

  state.kind = 'scalar';
  state.result = '';
  captureStart = captureEnd = state.position;
  hasPendingContent = false;

  while (ch !== 0) {
    if (ch === 0x3A/* : */) {
      following = state.input.charCodeAt(state.position + 1);

      if (is_WS_OR_EOL(following) ||
          withinFlowCollection && is_FLOW_INDICATOR(following)) {
        break;
      }

    } else if (ch === 0x23/* # */) {
      preceding = state.input.charCodeAt(state.position - 1);

      if (is_WS_OR_EOL(preceding)) {
        break;
      }

    } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||
               withinFlowCollection && is_FLOW_INDICATOR(ch)) {
      break;

    } else if (is_EOL(ch)) {
      _line = state.line;
      _lineStart = state.lineStart;
      _lineIndent = state.lineIndent;
      skipSeparationSpace(state, false, -1);

      if (state.lineIndent >= nodeIndent) {
        hasPendingContent = true;
        ch = state.input.charCodeAt(state.position);
        continue;
      } else {
        state.position = captureEnd;
        state.line = _line;
        state.lineStart = _lineStart;
        state.lineIndent = _lineIndent;
        break;
      }
    }

    if (hasPendingContent) {
      captureSegment(state, captureStart, captureEnd, false);
      writeFoldedLines(state, state.line - _line);
      captureStart = captureEnd = state.position;
      hasPendingContent = false;
    }

    if (!is_WHITE_SPACE(ch)) {
      captureEnd = state.position + 1;
    }

    ch = state.input.charCodeAt(++state.position);
  }

  captureSegment(state, captureStart, captureEnd, false);

  if (state.result) {
    return true;
  }

  state.kind = _kind;
  state.result = _result;
  return false;
}

function readSingleQuotedScalar(state, nodeIndent) {
  var ch,
      captureStart, captureEnd;

  ch = state.input.charCodeAt(state.position);

  if (ch !== 0x27/* ' */) {
    return false;
  }

  state.kind = 'scalar';
  state.result = '';
  state.position++;
  captureStart = captureEnd = state.position;

  while ((ch = state.input.charCodeAt(state.position)) !== 0) {
    if (ch === 0x27/* ' */) {
      captureSegment(state, captureStart, state.position, true);
      ch = state.input.charCodeAt(++state.position);

      if (ch === 0x27/* ' */) {
        captureStart = state.position;
        state.position++;
        captureEnd = state.position;
      } else {
        return true;
      }

    } else if (is_EOL(ch)) {
      captureSegment(state, captureStart, captureEnd, true);
      writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
      captureStart = captureEnd = state.position;

    } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
      throwError(state, 'unexpected end of the document within a single quoted scalar');

    } else {
      state.position++;
      captureEnd = state.position;
    }
  }

  throwError(state, 'unexpected end of the stream within a single quoted scalar');
}

function readDoubleQuotedScalar(state, nodeIndent) {
  var captureStart,
      captureEnd,
      hexLength,
      hexResult,
      tmp,
      ch;

  ch = state.input.charCodeAt(state.position);

  if (ch !== 0x22/* " */) {
    return false;
  }

  state.kind = 'scalar';
  state.result = '';
  state.position++;
  captureStart = captureEnd = state.position;

  while ((ch = state.input.charCodeAt(state.position)) !== 0) {
    if (ch === 0x22/* " */) {
      captureSegment(state, captureStart, state.position, true);
      state.position++;
      return true;

    } else if (ch === 0x5C/* \ */) {
      captureSegment(state, captureStart, state.position, true);
      ch = state.input.charCodeAt(++state.position);

      if (is_EOL(ch)) {
        skipSeparationSpace(state, false, nodeIndent);

        // TODO: rework to inline fn with no type cast?
      } else if (ch < 256 && simpleEscapeCheck[ch]) {
        state.result += simpleEscapeMap[ch];
        state.position++;

      } else if ((tmp = escapedHexLen(ch)) > 0) {
        hexLength = tmp;
        hexResult = 0;

        for (; hexLength > 0; hexLength--) {
          ch = state.input.charCodeAt(++state.position);

          if ((tmp = fromHexCode(ch)) >= 0) {
            hexResult = (hexResult << 4) + tmp;

          } else {
            throwError(state, 'expected hexadecimal character');
          }
        }

        state.result += charFromCodepoint(hexResult);

        state.position++;

      } else {
        throwError(state, 'unknown escape sequence');
      }

      captureStart = captureEnd = state.position;

    } else if (is_EOL(ch)) {
      captureSegment(state, captureStart, captureEnd, true);
      writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
      captureStart = captureEnd = state.position;

    } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
      throwError(state, 'unexpected end of the document within a double quoted scalar');

    } else {
      state.position++;
      captureEnd = state.position;
    }
  }

  throwError(state, 'unexpected end of the stream within a double quoted scalar');
}

function readFlowCollection(state, nodeIndent) {
  var readNext = true,
      _line,
      _lineStart,
      _pos,
      _tag     = state.tag,
      _result,
      _anchor  = state.anchor,
      following,
      terminator,
      isPair,
      isExplicitPair,
      isMapping,
      overridableKeys = Object.create(null),
      keyNode,
      keyTag,
      valueNode,
      ch;

  ch = state.input.charCodeAt(state.position);

  if (ch === 0x5B/* [ */) {
    terminator = 0x5D;/* ] */
    isMapping = false;
    _result = [];
  } else if (ch === 0x7B/* { */) {
    terminator = 0x7D;/* } */
    isMapping = true;
    _result = {};
  } else {
    return false;
  }

  if (state.anchor !== null) {
    state.anchorMap[state.anchor] = _result;
  }

  ch = state.input.charCodeAt(++state.position);

  while (ch !== 0) {
    skipSeparationSpace(state, true, nodeIndent);

    ch = state.input.charCodeAt(state.position);

    if (ch === terminator) {
      state.position++;
      state.tag = _tag;
      state.anchor = _anchor;
      state.kind = isMapping ? 'mapping' : 'sequence';
      state.result = _result;
      return true;
    } else if (!readNext) {
      throwError(state, 'missed comma between flow collection entries');
    } else if (ch === 0x2C/* , */) {
      // "flow collection entries can never be completely empty", as per YAML 1.2, section 7.4
      throwError(state, "expected the node content, but found ','");
    }

    keyTag = keyNode = valueNode = null;
    isPair = isExplicitPair = false;

    if (ch === 0x3F/* ? */) {
      following = state.input.charCodeAt(state.position + 1);

      if (is_WS_OR_EOL(following)) {
        isPair = isExplicitPair = true;
        state.position++;
        skipSeparationSpace(state, true, nodeIndent);
      }
    }

    _line = state.line; // Save the current line.
    _lineStart = state.lineStart;
    _pos = state.position;
    composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
    keyTag = state.tag;
    keyNode = state.result;
    skipSeparationSpace(state, true, nodeIndent);

    ch = state.input.charCodeAt(state.position);

    if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {
      isPair = true;
      ch = state.input.charCodeAt(++state.position);
      skipSeparationSpace(state, true, nodeIndent);
      composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
      valueNode = state.result;
    }

    if (isMapping) {
      storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);
    } else if (isPair) {
      _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));
    } else {
      _result.push(keyNode);
    }

    skipSeparationSpace(state, true, nodeIndent);

    ch = state.input.charCodeAt(state.position);

    if (ch === 0x2C/* , */) {
      readNext = true;
      ch = state.input.charCodeAt(++state.position);
    } else {
      readNext = false;
    }
  }

  throwError(state, 'unexpected end of the stream within a flow collection');
}

function readBlockScalar(state, nodeIndent) {
  var captureStart,
      folding,
      chomping       = CHOMPING_CLIP,
      didReadContent = false,
      detectedIndent = false,
      textIndent     = nodeIndent,
      emptyLines     = 0,
      atMoreIndented = false,
      tmp,
      ch;

  ch = state.input.charCodeAt(state.position);

  if (ch === 0x7C/* | */) {
    folding = false;
  } else if (ch === 0x3E/* > */) {
    folding = true;
  } else {
    return false;
  }

  state.kind = 'scalar';
  state.result = '';

  while (ch !== 0) {
    ch = state.input.charCodeAt(++state.position);

    if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {
      if (CHOMPING_CLIP === chomping) {
        chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;
      } else {
        throwError(state, 'repeat of a chomping mode identifier');
      }

    } else if ((tmp = fromDecimalCode(ch)) >= 0) {
      if (tmp === 0) {
        throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');
      } else if (!detectedIndent) {
        textIndent = nodeIndent + tmp - 1;
        detectedIndent = true;
      } else {
        throwError(state, 'repeat of an indentation width identifier');
      }

    } else {
      break;
    }
  }

  if (is_WHITE_SPACE(ch)) {
    do { ch = state.input.charCodeAt(++state.position); }
    while (is_WHITE_SPACE(ch));

    if (ch === 0x23/* # */) {
      do { ch = state.input.charCodeAt(++state.position); }
      while (!is_EOL(ch) && (ch !== 0));
    }
  }

  while (ch !== 0) {
    readLineBreak(state);
    state.lineIndent = 0;

    ch = state.input.charCodeAt(state.position);

    while ((!detectedIndent || state.lineIndent < textIndent) &&
           (ch === 0x20/* Space */)) {
      state.lineIndent++;
      ch = state.input.charCodeAt(++state.position);
    }

    if (!detectedIndent && state.lineIndent > textIndent) {
      textIndent = state.lineIndent;
    }

    if (is_EOL(ch)) {
      emptyLines++;
      continue;
    }

    // End of the scalar.
    if (state.lineIndent < textIndent) {

      // Perform the chomping.
      if (chomping === CHOMPING_KEEP) {
        state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines);
      } else if (chomping === CHOMPING_CLIP) {
        if (didReadContent) { // i.e. only if the scalar is not empty.
          state.result += '\n';
        }
      }

      // Break this `while` cycle and go to the funciton's epilogue.
      break;
    }

    // Folded style: use fancy rules to handle line breaks.
    if (folding) {

      // Lines starting with white space characters (more-indented lines) are not folded.
      if (is_WHITE_SPACE(ch)) {
        atMoreIndented = true;
        // except for the first content line (cf. Example 8.1)
        state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines);

      // End of more-indented block.
      } else if (atMoreIndented) {
        atMoreIndented = false;
        state.result += common.repeat('\n', emptyLines + 1);

      // Just one line break - perceive as the same line.
      } else if (emptyLines === 0) {
        if (didReadContent) { // i.e. only if we have already read some scalar content.
          state.result += ' ';
        }

      // Several line breaks - perceive as different lines.
      } else {
        state.result += common.repeat('\n', emptyLines);
      }

    // Literal style: just add exact number of line breaks between content lines.
    } else {
      // Keep all line breaks except the header line break.
      state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines);
    }

    didReadContent = true;
    detectedIndent = true;
    emptyLines = 0;
    captureStart = state.position;

    while (!is_EOL(ch) && (ch !== 0)) {
      ch = state.input.charCodeAt(++state.position);
    }

    captureSegment(state, captureStart, state.position, false);
  }

  return true;
}

function readBlockSequence(state, nodeIndent) {
  var _line,
      _tag      = state.tag,
      _anchor   = state.anchor,
      _result   = [],
      following,
      detected  = false,
      ch;

  // there is a leading tab before this token, so it can't be a block sequence/mapping;
  // it can still be flow sequence/mapping or a scalar
  if (state.firstTabInLine !== -1) return false;

  if (state.anchor !== null) {
    state.anchorMap[state.anchor] = _result;
  }

  ch = state.input.charCodeAt(state.position);

  while (ch !== 0) {
    if (state.firstTabInLine !== -1) {
      state.position = state.firstTabInLine;
      throwError(state, 'tab characters must not be used in indentation');
    }

    if (ch !== 0x2D/* - */) {
      break;
    }

    following = state.input.charCodeAt(state.position + 1);

    if (!is_WS_OR_EOL(following)) {
      break;
    }

    detected = true;
    state.position++;

    if (skipSeparationSpace(state, true, -1)) {
      if (state.lineIndent <= nodeIndent) {
        _result.push(null);
        ch = state.input.charCodeAt(state.position);
        continue;
      }
    }

    _line = state.line;
    composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);
    _result.push(state.result);
    skipSeparationSpace(state, true, -1);

    ch = state.input.charCodeAt(state.position);

    if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {
      throwError(state, 'bad indentation of a sequence entry');
    } else if (state.lineIndent < nodeIndent) {
      break;
    }
  }

  if (detected) {
    state.tag = _tag;
    state.anchor = _anchor;
    state.kind = 'sequence';
    state.result = _result;
    return true;
  }
  return false;
}

function readBlockMapping(state, nodeIndent, flowIndent) {
  var following,
      allowCompact,
      _line,
      _keyLine,
      _keyLineStart,
      _keyPos,
      _tag          = state.tag,
      _anchor       = state.anchor,
      _result       = {},
      overridableKeys = Object.create(null),
      keyTag        = null,
      keyNode       = null,
      valueNode     = null,
      atExplicitKey = false,
      detected      = false,
      ch;

  // there is a leading tab before this token, so it can't be a block sequence/mapping;
  // it can still be flow sequence/mapping or a scalar
  if (state.firstTabInLine !== -1) return false;

  if (state.anchor !== null) {
    state.anchorMap[state.anchor] = _result;
  }

  ch = state.input.charCodeAt(state.position);

  while (ch !== 0) {
    if (!atExplicitKey && state.firstTabInLine !== -1) {
      state.position = state.firstTabInLine;
      throwError(state, 'tab characters must not be used in indentation');
    }

    following = state.input.charCodeAt(state.position + 1);
    _line = state.line; // Save the current line.

    //
    // Explicit notation case. There are two separate blocks:
    // first for the key (denoted by "?") and second for the value (denoted by ":")
    //
    if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {

      if (ch === 0x3F/* ? */) {
        if (atExplicitKey) {
          storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
          keyTag = keyNode = valueNode = null;
        }

        detected = true;
        atExplicitKey = true;
        allowCompact = true;

      } else if (atExplicitKey) {
        // i.e. 0x3A/* : */ === character after the explicit key.
        atExplicitKey = false;
        allowCompact = true;

      } else {
        throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');
      }

      state.position += 1;
      ch = following;

    //
    // Implicit notation case. Flow-style node as the key first, then ":", and the value.
    //
    } else {
      _keyLine = state.line;
      _keyLineStart = state.lineStart;
      _keyPos = state.position;

      if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {
        // Neither implicit nor explicit notation.
        // Reading is done. Go to the epilogue.
        break;
      }

      if (state.line === _line) {
        ch = state.input.charCodeAt(state.position);

        while (is_WHITE_SPACE(ch)) {
          ch = state.input.charCodeAt(++state.position);
        }

        if (ch === 0x3A/* : */) {
          ch = state.input.charCodeAt(++state.position);

          if (!is_WS_OR_EOL(ch)) {
            throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');
          }

          if (atExplicitKey) {
            storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
            keyTag = keyNode = valueNode = null;
          }

          detected = true;
          atExplicitKey = false;
          allowCompact = false;
          keyTag = state.tag;
          keyNode = state.result;

        } else if (detected) {
          throwError(state, 'can not read an implicit mapping pair; a colon is missed');

        } else {
          state.tag = _tag;
          state.anchor = _anchor;
          return true; // Keep the result of `composeNode`.
        }

      } else if (detected) {
        throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');

      } else {
        state.tag = _tag;
        state.anchor = _anchor;
        return true; // Keep the result of `composeNode`.
      }
    }

    //
    // Common reading code for both explicit and implicit notations.
    //
    if (state.line === _line || state.lineIndent > nodeIndent) {
      if (atExplicitKey) {
        _keyLine = state.line;
        _keyLineStart = state.lineStart;
        _keyPos = state.position;
      }

      if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {
        if (atExplicitKey) {
          keyNode = state.result;
        } else {
          valueNode = state.result;
        }
      }

      if (!atExplicitKey) {
        storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);
        keyTag = keyNode = valueNode = null;
      }

      skipSeparationSpace(state, true, -1);
      ch = state.input.charCodeAt(state.position);
    }

    if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {
      throwError(state, 'bad indentation of a mapping entry');
    } else if (state.lineIndent < nodeIndent) {
      break;
    }
  }

  //
  // Epilogue.
  //

  // Special case: last mapping's node contains only the key in explicit notation.
  if (atExplicitKey) {
    storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
  }

  // Expose the resulting mapping.
  if (detected) {
    state.tag = _tag;
    state.anchor = _anchor;
    state.kind = 'mapping';
    state.result = _result;
  }

  return detected;
}

function readTagProperty(state) {
  var _position,
      isVerbatim = false,
      isNamed    = false,
      tagHandle,
      tagName,
      ch;

  ch = state.input.charCodeAt(state.position);

  if (ch !== 0x21/* ! */) return false;

  if (state.tag !== null) {
    throwError(state, 'duplication of a tag property');
  }

  ch = state.input.charCodeAt(++state.position);

  if (ch === 0x3C/* < */) {
    isVerbatim = true;
    ch = state.input.charCodeAt(++state.position);

  } else if (ch === 0x21/* ! */) {
    isNamed = true;
    tagHandle = '!!';
    ch = state.input.charCodeAt(++state.position);

  } else {
    tagHandle = '!';
  }

  _position = state.position;

  if (isVerbatim) {
    do { ch = state.input.charCodeAt(++state.position); }
    while (ch !== 0 && ch !== 0x3E/* > */);

    if (state.position < state.length) {
      tagName = state.input.slice(_position, state.position);
      ch = state.input.charCodeAt(++state.position);
    } else {
      throwError(state, 'unexpected end of the stream within a verbatim tag');
    }
  } else {
    while (ch !== 0 && !is_WS_OR_EOL(ch)) {

      if (ch === 0x21/* ! */) {
        if (!isNamed) {
          tagHandle = state.input.slice(_position - 1, state.position + 1);

          if (!PATTERN_TAG_HANDLE.test(tagHandle)) {
            throwError(state, 'named tag handle cannot contain such characters');
          }

          isNamed = true;
          _position = state.position + 1;
        } else {
          throwError(state, 'tag suffix cannot contain exclamation marks');
        }
      }

      ch = state.input.charCodeAt(++state.position);
    }

    tagName = state.input.slice(_position, state.position);

    if (PATTERN_FLOW_INDICATORS.test(tagName)) {
      throwError(state, 'tag suffix cannot contain flow indicator characters');
    }
  }

  if (tagName && !PATTERN_TAG_URI.test(tagName)) {
    throwError(state, 'tag name cannot contain such characters: ' + tagName);
  }

  try {
    tagName = decodeURIComponent(tagName);
  } catch (err) {
    throwError(state, 'tag name is malformed: ' + tagName);
  }

  if (isVerbatim) {
    state.tag = tagName;

  } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) {
    state.tag = state.tagMap[tagHandle] + tagName;

  } else if (tagHandle === '!') {
    state.tag = '!' + tagName;

  } else if (tagHandle === '!!') {
    state.tag = 'tag:yaml.org,2002:' + tagName;

  } else {
    throwError(state, 'undeclared tag handle "' + tagHandle + '"');
  }

  return true;
}

function readAnchorProperty(state) {
  var _position,
      ch;

  ch = state.input.charCodeAt(state.position);

  if (ch !== 0x26/* & */) return false;

  if (state.anchor !== null) {
    throwError(state, 'duplication of an anchor property');
  }

  ch = state.input.charCodeAt(++state.position);
  _position = state.position;

  while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
    ch = state.input.charCodeAt(++state.position);
  }

  if (state.position === _position) {
    throwError(state, 'name of an anchor node must contain at least one character');
  }

  state.anchor = state.input.slice(_position, state.position);
  return true;
}

function readAlias(state) {
  var _position, alias,
      ch;

  ch = state.input.charCodeAt(state.position);

  if (ch !== 0x2A/* * */) return false;

  ch = state.input.charCodeAt(++state.position);
  _position = state.position;

  while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
    ch = state.input.charCodeAt(++state.position);
  }

  if (state.position === _position) {
    throwError(state, 'name of an alias node must contain at least one character');
  }

  alias = state.input.slice(_position, state.position);

  if (!_hasOwnProperty.call(state.anchorMap, alias)) {
    throwError(state, 'unidentified alias "' + alias + '"');
  }

  state.result = state.anchorMap[alias];
  skipSeparationSpace(state, true, -1);
  return true;
}

function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {
  var allowBlockStyles,
      allowBlockScalars,
      allowBlockCollections,
      indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this<parent
      atNewLine  = false,
      hasContent = false,
      typeIndex,
      typeQuantity,
      typeList,
      type,
      flowIndent,
      blockIndent;

  if (state.listener !== null) {
    state.listener('open', state);
  }

  state.tag    = null;
  state.anchor = null;
  state.kind   = null;
  state.result = null;

  allowBlockStyles = allowBlockScalars = allowBlockCollections =
    CONTEXT_BLOCK_OUT === nodeContext ||
    CONTEXT_BLOCK_IN  === nodeContext;

  if (allowToSeek) {
    if (skipSeparationSpace(state, true, -1)) {
      atNewLine = true;

      if (state.lineIndent > parentIndent) {
        indentStatus = 1;
      } else if (state.lineIndent === parentIndent) {
        indentStatus = 0;
      } else if (state.lineIndent < parentIndent) {
        indentStatus = -1;
      }
    }
  }

  if (indentStatus === 1) {
    while (readTagProperty(state) || readAnchorProperty(state)) {
      if (skipSeparationSpace(state, true, -1)) {
        atNewLine = true;
        allowBlockCollections = allowBlockStyles;

        if (state.lineIndent > parentIndent) {
          indentStatus = 1;
        } else if (state.lineIndent === parentIndent) {
          indentStatus = 0;
        } else if (state.lineIndent < parentIndent) {
          indentStatus = -1;
        }
      } else {
        allowBlockCollections = false;
      }
    }
  }

  if (allowBlockCollections) {
    allowBlockCollections = atNewLine || allowCompact;
  }

  if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {
    if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {
      flowIndent = parentIndent;
    } else {
      flowIndent = parentIndent + 1;
    }

    blockIndent = state.position - state.lineStart;

    if (indentStatus === 1) {
      if (allowBlockCollections &&
          (readBlockSequence(state, blockIndent) ||
           readBlockMapping(state, blockIndent, flowIndent)) ||
          readFlowCollection(state, flowIndent)) {
        hasContent = true;
      } else {
        if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||
            readSingleQuotedScalar(state, flowIndent) ||
            readDoubleQuotedScalar(state, flowIndent)) {
          hasContent = true;

        } else if (readAlias(state)) {
          hasContent = true;

          if (state.tag !== null || state.anchor !== null) {
            throwError(state, 'alias node should not have any properties');
          }

        } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {
          hasContent = true;

          if (state.tag === null) {
            state.tag = '?';
          }
        }

        if (state.anchor !== null) {
          state.anchorMap[state.anchor] = state.result;
        }
      }
    } else if (indentStatus === 0) {
      // Special case: block sequences are allowed to have same indentation level as the parent.
      // http://www.yaml.org/spec/1.2/spec.html#id2799784
      hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);
    }
  }

  if (state.tag === null) {
    if (state.anchor !== null) {
      state.anchorMap[state.anchor] = state.result;
    }

  } else if (state.tag === '?') {
    // Implicit resolving is not allowed for non-scalar types, and '?'
    // non-specific tag is only automatically assigned to plain scalars.
    //
    // We only need to check kind conformity in case user explicitly assigns '?'
    // tag, for example like this: "!<?> [0]"
    //
    if (state.result !== null && state.kind !== 'scalar') {
      throwError(state, 'unacceptable node kind for !<?> tag; it should be "scalar", not "' + state.kind + '"');
    }

    for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {
      type = state.implicitTypes[typeIndex];

      if (type.resolve(state.result)) { // `state.result` updated in resolver if matched
        state.result = type.construct(state.result);
        state.tag = type.tag;
        if (state.anchor !== null) {
          state.anchorMap[state.anchor] = state.result;
        }
        break;
      }
    }
  } else if (state.tag !== '!') {
    if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) {
      type = state.typeMap[state.kind || 'fallback'][state.tag];
    } else {
      // looking for multi type
      type = null;
      typeList = state.typeMap.multi[state.kind || 'fallback'];

      for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {
        if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {
          type = typeList[typeIndex];
          break;
        }
      }
    }

    if (!type) {
      throwError(state, 'unknown tag !<' + state.tag + '>');
    }

    if (state.result !== null && type.kind !== state.kind) {
      throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"');
    }

    if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched
      throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');
    } else {
      state.result = type.construct(state.result, state.tag);
      if (state.anchor !== null) {
        state.anchorMap[state.anchor] = state.result;
      }
    }
  }

  if (state.listener !== null) {
    state.listener('close', state);
  }
  return state.tag !== null ||  state.anchor !== null || hasContent;
}

function readDocument(state) {
  var documentStart = state.position,
      _position,
      directiveName,
      directiveArgs,
      hasDirectives = false,
      ch;

  state.version = null;
  state.checkLineBreaks = state.legacy;
  state.tagMap = Object.create(null);
  state.anchorMap = Object.create(null);

  while ((ch = state.input.charCodeAt(state.position)) !== 0) {
    skipSeparationSpace(state, true, -1);

    ch = state.input.charCodeAt(state.position);

    if (state.lineIndent > 0 || ch !== 0x25/* % */) {
      break;
    }

    hasDirectives = true;
    ch = state.input.charCodeAt(++state.position);
    _position = state.position;

    while (ch !== 0 && !is_WS_OR_EOL(ch)) {
      ch = state.input.charCodeAt(++state.position);
    }

    directiveName = state.input.slice(_position, state.position);
    directiveArgs = [];

    if (directiveName.length < 1) {
      throwError(state, 'directive name must not be less than one character in length');
    }

    while (ch !== 0) {
      while (is_WHITE_SPACE(ch)) {
        ch = state.input.charCodeAt(++state.position);
      }

      if (ch === 0x23/* # */) {
        do { ch = state.input.charCodeAt(++state.position); }
        while (ch !== 0 && !is_EOL(ch));
        break;
      }

      if (is_EOL(ch)) break;

      _position = state.position;

      while (ch !== 0 && !is_WS_OR_EOL(ch)) {
        ch = state.input.charCodeAt(++state.position);
      }

      directiveArgs.push(state.input.slice(_position, state.position));
    }

    if (ch !== 0) readLineBreak(state);

    if (_hasOwnProperty.call(directiveHandlers, directiveName)) {
      directiveHandlers[directiveName](state, directiveName, directiveArgs);
    } else {
      throwWarning(state, 'unknown document directive "' + directiveName + '"');
    }
  }

  skipSeparationSpace(state, true, -1);

  if (state.lineIndent === 0 &&
      state.input.charCodeAt(state.position)     === 0x2D/* - */ &&
      state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&
      state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {
    state.position += 3;
    skipSeparationSpace(state, true, -1);

  } else if (hasDirectives) {
    throwError(state, 'directives end mark is expected');
  }

  composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);
  skipSeparationSpace(state, true, -1);

  if (state.checkLineBreaks &&
      PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {
    throwWarning(state, 'non-ASCII line breaks are interpreted as content');
  }

  state.documents.push(state.result);

  if (state.position === state.lineStart && testDocumentSeparator(state)) {

    if (state.input.charCodeAt(state.position) === 0x2E/* . */) {
      state.position += 3;
      skipSeparationSpace(state, true, -1);
    }
    return;
  }

  if (state.position < (state.length - 1)) {
    throwError(state, 'end of the stream or a document separator is expected');
  } else {
    return;
  }
}


function loadDocuments(input, options) {
  input = String(input);
  options = options || {};

  if (input.length !== 0) {

    // Add tailing `\n` if not exists
    if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&
        input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {
      input += '\n';
    }

    // Strip BOM
    if (input.charCodeAt(0) === 0xFEFF) {
      input = input.slice(1);
    }
  }

  var state = new State(input, options);

  var nullpos = input.indexOf('\0');

  if (nullpos !== -1) {
    state.position = nullpos;
    throwError(state, 'null byte is not allowed in input');
  }

  // Use 0 as string terminator. That significantly simplifies bounds check.
  state.input += '\0';

  while (state.input.charCodeAt(state.position) === 0x20/* Space */) {
    state.lineIndent += 1;
    state.position += 1;
  }

  while (state.position < (state.length - 1)) {
    readDocument(state);
  }

  return state.documents;
}


function loadAll(input, iterator, options) {
  if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {
    options = iterator;
    iterator = null;
  }

  var documents = loadDocuments(input, options);

  if (typeof iterator !== 'function') {
    return documents;
  }

  for (var index = 0, length = documents.length; index < length; index += 1) {
    iterator(documents[index]);
  }
}


function load(input, options) {
  var documents = loadDocuments(input, options);

  if (documents.length === 0) {
    /*eslint-disable no-undefined*/
    return undefined;
  } else if (documents.length === 1) {
    return documents[0];
  }
  throw new YAMLException('expected a single document in the stream, but found more');
}


module.exports.loadAll = loadAll;
module.exports.load    = load;
'use strict';

/*eslint-disable max-len*/

var YAMLException = require('./exception');
var Type          = require('./type');


function compileList(schema, name) {
  var result = [];

  schema[name].forEach(function (currentType) {
    var newIndex = result.length;

    result.forEach(function (previousType, previousIndex) {
      if (previousType.tag === currentType.tag &&
          previousType.kind === currentType.kind &&
          previousType.multi === currentType.multi) {

        newIndex = previousIndex;
      }
    });

    result[newIndex] = currentType;
  });

  return result;
}


function compileMap(/* lists... */) {
  var result = {
        scalar: {},
        sequence: {},
        mapping: {},
        fallback: {},
        multi: {
          scalar: [],
          sequence: [],
          mapping: [],
          fallback: []
        }
      }, index, length;

  function collectType(type) {
    if (type.multi) {
      result.multi[type.kind].push(type);
      result.multi['fallback'].push(type);
    } else {
      result[type.kind][type.tag] = result['fallback'][type.tag] = type;
    }
  }

  for (index = 0, length = arguments.length; index < length; index += 1) {
    arguments[index].forEach(collectType);
  }
  return result;
}


function Schema(definition) {
  return this.extend(definition);
}


Schema.prototype.extend = function extend(definition) {
  var implicit = [];
  var explicit = [];

  if (definition instanceof Type) {
    // Schema.extend(type)
    explicit.push(definition);

  } else if (Array.isArray(definition)) {
    // Schema.extend([ type1, type2, ... ])
    explicit = explicit.concat(definition);

  } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {
    // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })
    if (definition.implicit) implicit = implicit.concat(definition.implicit);
    if (definition.explicit) explicit = explicit.concat(definition.explicit);

  } else {
    throw new YAMLException('Schema.extend argument should be a Type, [ Type ], ' +
      'or a schema definition ({ implicit: [...], explicit: [...] })');
  }

  implicit.forEach(function (type) {
    if (!(type instanceof Type)) {
      throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.');
    }

    if (type.loadKind && type.loadKind !== 'scalar') {
      throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');
    }

    if (type.multi) {
      throw new YAMLException('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');
    }
  });

  explicit.forEach(function (type) {
    if (!(type instanceof Type)) {
      throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.');
    }
  });

  var result = Object.create(Schema.prototype);

  result.implicit = (this.implicit || []).concat(implicit);
  result.explicit = (this.explicit || []).concat(explicit);

  result.compiledImplicit = compileList(result, 'implicit');
  result.compiledExplicit = compileList(result, 'explicit');
  result.compiledTypeMap  = compileMap(result.compiledImplicit, result.compiledExplicit);

  return result;
};


module.exports = Schema;
'use strict';


var common = require('./common');


// get snippet for a single line, respecting maxLength
function getLine(buffer, lineStart, lineEnd, position, maxLineLength) {
  var head = '';
  var tail = '';
  var maxHalfLength = Math.floor(maxLineLength / 2) - 1;

  if (position - lineStart > maxHalfLength) {
    head = ' ... ';
    lineStart = position - maxHalfLength + head.length;
  }

  if (lineEnd - position > maxHalfLength) {
    tail = ' ...';
    lineEnd = position + maxHalfLength - tail.length;
  }

  return {
    str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, '→') + tail,
    pos: position - lineStart + head.length // relative position
  };
}


function padStart(string, max) {
  return common.repeat(' ', max - string.length) + string;
}


function makeSnippet(mark, options) {
  options = Object.create(options || null);

  if (!mark.buffer) return null;

  if (!options.maxLength) options.maxLength = 79;
  if (typeof options.indent      !== 'number') options.indent      = 1;
  if (typeof options.linesBefore !== 'number') options.linesBefore = 3;
  if (typeof options.linesAfter  !== 'number') options.linesAfter  = 2;

  var re = /\r?\n|\r|\0/g;
  var lineStarts = [ 0 ];
  var lineEnds = [];
  var match;
  var foundLineNo = -1;

  while ((match = re.exec(mark.buffer))) {
    lineEnds.push(match.index);
    lineStarts.push(match.index + match[0].length);

    if (mark.position <= match.index && foundLineNo < 0) {
      foundLineNo = lineStarts.length - 2;
    }
  }

  if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;

  var result = '', i, line;
  var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;
  var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);

  for (i = 1; i <= options.linesBefore; i++) {
    if (foundLineNo - i < 0) break;
    line = getLine(
      mark.buffer,
      lineStarts[foundLineNo - i],
      lineEnds[foundLineNo - i],
      mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),
      maxLineLength
    );
    result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +
      ' | ' + line.str + '\n' + result;
  }

  line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);
  result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +
    ' | ' + line.str + '\n';
  result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\n';

  for (i = 1; i <= options.linesAfter; i++) {
    if (foundLineNo + i >= lineEnds.length) break;
    line = getLine(
      mark.buffer,
      lineStarts[foundLineNo + i],
      lineEnds[foundLineNo + i],
      mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),
      maxLineLength
    );
    result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +
      ' | ' + line.str + '\n';
  }

  return result.replace(/\n$/, '');
}


module.exports = makeSnippet;
'use strict';

var YAMLException = require('./exception');

var TYPE_CONSTRUCTOR_OPTIONS = [
  'kind',
  'multi',
  'resolve',
  'construct',
  'instanceOf',
  'predicate',
  'represent',
  'representName',
  'defaultStyle',
  'styleAliases'
];

var YAML_NODE_KINDS = [
  'scalar',
  'sequence',
  'mapping'
];

function compileStyleAliases(map) {
  var result = {};

  if (map !== null) {
    Object.keys(map).forEach(function (style) {
      map[style].forEach(function (alias) {
        result[String(alias)] = style;
      });
    });
  }

  return result;
}

function Type(tag, options) {
  options = options || {};

  Object.keys(options).forEach(function (name) {
    if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {
      throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.');
    }
  });

  // TODO: Add tag format check.
  this.options       = options; // keep original options in case user wants to extend this type later
  this.tag           = tag;
  this.kind          = options['kind']          || null;
  this.resolve       = options['resolve']       || function () { return true; };
  this.construct     = options['construct']     || function (data) { return data; };
  this.instanceOf    = options['instanceOf']    || null;
  this.predicate     = options['predicate']     || null;
  this.represent     = options['represent']     || null;
  this.representName = options['representName'] || null;
  this.defaultStyle  = options['defaultStyle']  || null;
  this.multi         = options['multi']         || false;
  this.styleAliases  = compileStyleAliases(options['styleAliases'] || null);

  if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {
    throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.');
  }
}

module.exports = Type;
'use strict';

/*eslint-disable no-bitwise*/


var Type = require('../type');


// [ 64, 65, 66 ] -> [ padding, CR, LF ]
var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r';


function resolveYamlBinary(data) {
  if (data === null) return false;

  var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;

  // Convert one by one.
  for (idx = 0; idx < max; idx++) {
    code = map.indexOf(data.charAt(idx));

    // Skip CR/LF
    if (code > 64) continue;

    // Fail on illegal characters
    if (code < 0) return false;

    bitlen += 6;
  }

  // If there are any bits left, source was corrupted
  return (bitlen % 8) === 0;
}

function constructYamlBinary(data) {
  var idx, tailbits,
      input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan
      max = input.length,
      map = BASE64_MAP,
      bits = 0,
      result = [];

  // Collect by 6*4 bits (3 bytes)

  for (idx = 0; idx < max; idx++) {
    if ((idx % 4 === 0) && idx) {
      result.push((bits >> 16) & 0xFF);
      result.push((bits >> 8) & 0xFF);
      result.push(bits & 0xFF);
    }

    bits = (bits << 6) | map.indexOf(input.charAt(idx));
  }

  // Dump tail

  tailbits = (max % 4) * 6;

  if (tailbits === 0) {
    result.push((bits >> 16) & 0xFF);
    result.push((bits >> 8) & 0xFF);
    result.push(bits & 0xFF);
  } else if (tailbits === 18) {
    result.push((bits >> 10) & 0xFF);
    result.push((bits >> 2) & 0xFF);
  } else if (tailbits === 12) {
    result.push((bits >> 4) & 0xFF);
  }

  return new Uint8Array(result);
}

function representYamlBinary(object /*, style*/) {
  var result = '', bits = 0, idx, tail,
      max = object.length,
      map = BASE64_MAP;

  // Convert every three bytes to 4 ASCII characters.

  for (idx = 0; idx < max; idx++) {
    if ((idx % 3 === 0) && idx) {
      result += map[(bits >> 18) & 0x3F];
      result += map[(bits >> 12) & 0x3F];
      result += map[(bits >> 6) & 0x3F];
      result += map[bits & 0x3F];
    }

    bits = (bits << 8) + object[idx];
  }

  // Dump tail

  tail = max % 3;

  if (tail === 0) {
    result += map[(bits >> 18) & 0x3F];
    result += map[(bits >> 12) & 0x3F];
    result += map[(bits >> 6) & 0x3F];
    result += map[bits & 0x3F];
  } else if (tail === 2) {
    result += map[(bits >> 10) & 0x3F];
    result += map[(bits >> 4) & 0x3F];
    result += map[(bits << 2) & 0x3F];
    result += map[64];
  } else if (tail === 1) {
    result += map[(bits >> 2) & 0x3F];
    result += map[(bits << 4) & 0x3F];
    result += map[64];
    result += map[64];
  }

  return result;
}

function isBinary(obj) {
  return Object.prototype.toString.call(obj) ===  '[object Uint8Array]';
}

module.exports = new Type('tag:yaml.org,2002:binary', {
  kind: 'scalar',
  resolve: resolveYamlBinary,
  construct: constructYamlBinary,
  predicate: isBinary,
  represent: representYamlBinary
});
'use strict';

var Type = require('../type');

function resolveYamlBoolean(data) {
  if (data === null) return false;

  var max = data.length;

  return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||
         (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));
}

function constructYamlBoolean(data) {
  return data === 'true' ||
         data === 'True' ||
         data === 'TRUE';
}

function isBoolean(object) {
  return Object.prototype.toString.call(object) === '[object Boolean]';
}

module.exports = new Type('tag:yaml.org,2002:bool', {
  kind: 'scalar',
  resolve: resolveYamlBoolean,
  construct: constructYamlBoolean,
  predicate: isBoolean,
  represent: {
    lowercase: function (object) { return object ? 'true' : 'false'; },
    uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },
    camelcase: function (object) { return object ? 'True' : 'False'; }
  },
  defaultStyle: 'lowercase'
});
'use strict';

var common = require('../common');
var Type   = require('../type');

var YAML_FLOAT_PATTERN = new RegExp(
  // 2.5e4, 2.5 and integers
  '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +
  // .2e4, .2
  // special case, seems not from spec
  '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +
  // .inf
  '|[-+]?\\.(?:inf|Inf|INF)' +
  // .nan
  '|\\.(?:nan|NaN|NAN))$');

function resolveYamlFloat(data) {
  if (data === null) return false;

  if (!YAML_FLOAT_PATTERN.test(data) ||
      // Quick hack to not allow integers end with `_`
      // Probably should update regexp & check speed
      data[data.length - 1] === '_') {
    return false;
  }

  return true;
}

function constructYamlFloat(data) {
  var value, sign;

  value  = data.replace(/_/g, '').toLowerCase();
  sign   = value[0] === '-' ? -1 : 1;

  if ('+-'.indexOf(value[0]) >= 0) {
    value = value.slice(1);
  }

  if (value === '.inf') {
    return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;

  } else if (value === '.nan') {
    return NaN;
  }
  return sign * parseFloat(value, 10);
}


var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;

function representYamlFloat(object, style) {
  var res;

  if (isNaN(object)) {
    switch (style) {
      case 'lowercase': return '.nan';
      case 'uppercase': return '.NAN';
      case 'camelcase': return '.NaN';
    }
  } else if (Number.POSITIVE_INFINITY === object) {
    switch (style) {
      case 'lowercase': return '.inf';
      case 'uppercase': return '.INF';
      case 'camelcase': return '.Inf';
    }
  } else if (Number.NEGATIVE_INFINITY === object) {
    switch (style) {
      case 'lowercase': return '-.inf';
      case 'uppercase': return '-.INF';
      case 'camelcase': return '-.Inf';
    }
  } else if (common.isNegativeZero(object)) {
    return '-0.0';
  }

  res = object.toString(10);

  // JS stringifier can build scientific format without dots: 5e-100,
  // while YAML requres dot: 5.e-100. Fix it with simple hack

  return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;
}

function isFloat(object) {
  return (Object.prototype.toString.call(object) === '[object Number]') &&
         (object % 1 !== 0 || common.isNegativeZero(object));
}

module.exports = new Type('tag:yaml.org,2002:float', {
  kind: 'scalar',
  resolve: resolveYamlFloat,
  construct: constructYamlFloat,
  predicate: isFloat,
  represent: representYamlFloat,
  defaultStyle: 'lowercase'
});
'use strict';

var common = require('../common');
var Type   = require('../type');

function isHexCode(c) {
  return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||
         ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||
         ((0x61/* a */ <= c) && (c <= 0x66/* f */));
}

function isOctCode(c) {
  return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));
}

function isDecCode(c) {
  return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));
}

function resolveYamlInteger(data) {
  if (data === null) return false;

  var max = data.length,
      index = 0,
      hasDigits = false,
      ch;

  if (!max) return false;

  ch = data[index];

  // sign
  if (ch === '-' || ch === '+') {
    ch = data[++index];
  }

  if (ch === '0') {
    // 0
    if (index + 1 === max) return true;
    ch = data[++index];

    // base 2, base 8, base 16

    if (ch === 'b') {
      // base 2
      index++;

      for (; index < max; index++) {
        ch = data[index];
        if (ch === '_') continue;
        if (ch !== '0' && ch !== '1') return false;
        hasDigits = true;
      }
      return hasDigits && ch !== '_';
    }


    if (ch === 'x') {
      // base 16
      index++;

      for (; index < max; index++) {
        ch = data[index];
        if (ch === '_') continue;
        if (!isHexCode(data.charCodeAt(index))) return false;
        hasDigits = true;
      }
      return hasDigits && ch !== '_';
    }


    if (ch === 'o') {
      // base 8
      index++;

      for (; index < max; index++) {
        ch = data[index];
        if (ch === '_') continue;
        if (!isOctCode(data.charCodeAt(index))) return false;
        hasDigits = true;
      }
      return hasDigits && ch !== '_';
    }
  }

  // base 10 (except 0)

  // value should not start with `_`;
  if (ch === '_') return false;

  for (; index < max; index++) {
    ch = data[index];
    if (ch === '_') continue;
    if (!isDecCode(data.charCodeAt(index))) {
      return false;
    }
    hasDigits = true;
  }

  // Should have digits and should not end with `_`
  if (!hasDigits || ch === '_') return false;

  return true;
}

function constructYamlInteger(data) {
  var value = data, sign = 1, ch;

  if (value.indexOf('_') !== -1) {
    value = value.replace(/_/g, '');
  }

  ch = value[0];

  if (ch === '-' || ch === '+') {
    if (ch === '-') sign = -1;
    value = value.slice(1);
    ch = value[0];
  }

  if (value === '0') return 0;

  if (ch === '0') {
    if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);
    if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);
    if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);
  }

  return sign * parseInt(value, 10);
}

function isInteger(object) {
  return (Object.prototype.toString.call(object)) === '[object Number]' &&
         (object % 1 === 0 && !common.isNegativeZero(object));
}

module.exports = new Type('tag:yaml.org,2002:int', {
  kind: 'scalar',
  resolve: resolveYamlInteger,
  construct: constructYamlInteger,
  predicate: isInteger,
  represent: {
    binary:      function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },
    octal:       function (obj) { return obj >= 0 ? '0o'  + obj.toString(8) : '-0o'  + obj.toString(8).slice(1); },
    decimal:     function (obj) { return obj.toString(10); },
    /* eslint-disable max-len */
    hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() :  '-0x' + obj.toString(16).toUpperCase().slice(1); }
  },
  defaultStyle: 'decimal',
  styleAliases: {
    binary:      [ 2,  'bin' ],
    octal:       [ 8,  'oct' ],
    decimal:     [ 10, 'dec' ],
    hexadecimal: [ 16, 'hex' ]
  }
});
'use strict';

var Type = require('../type');

module.exports = new Type('tag:yaml.org,2002:map', {
  kind: 'mapping',
  construct: function (data) { return data !== null ? data : {}; }
});
'use strict';

var Type = require('../type');

function resolveYamlMerge(data) {
  return data === '<<' || data === null;
}

module.exports = new Type('tag:yaml.org,2002:merge', {
  kind: 'scalar',
  resolve: resolveYamlMerge
});
'use strict';

var Type = require('../type');

function resolveYamlNull(data) {
  if (data === null) return true;

  var max = data.length;

  return (max === 1 && data === '~') ||
         (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));
}

function constructYamlNull() {
  return null;
}

function isNull(object) {
  return object === null;
}

module.exports = new Type('tag:yaml.org,2002:null', {
  kind: 'scalar',
  resolve: resolveYamlNull,
  construct: constructYamlNull,
  predicate: isNull,
  represent: {
    canonical: function () { return '~';    },
    lowercase: function () { return 'null'; },
    uppercase: function () { return 'NULL'; },
    camelcase: function () { return 'Null'; },
    empty:     function () { return '';     }
  },
  defaultStyle: 'lowercase'
});
'use strict';

var Type = require('../type');

var _hasOwnProperty = Object.prototype.hasOwnProperty;
var _toString       = Object.prototype.toString;

function resolveYamlOmap(data) {
  if (data === null) return true;

  var objectKeys = [], index, length, pair, pairKey, pairHasKey,
      object = data;

  for (index = 0, length = object.length; index < length; index += 1) {
    pair = object[index];
    pairHasKey = false;

    if (_toString.call(pair) !== '[object Object]') return false;

    for (pairKey in pair) {
      if (_hasOwnProperty.call(pair, pairKey)) {
        if (!pairHasKey) pairHasKey = true;
        else return false;
      }
    }

    if (!pairHasKey) return false;

    if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);
    else return false;
  }

  return true;
}

function constructYamlOmap(data) {
  return data !== null ? data : [];
}

module.exports = new Type('tag:yaml.org,2002:omap', {
  kind: 'sequence',
  resolve: resolveYamlOmap,
  construct: constructYamlOmap
});
'use strict';

var Type = require('../type');

var _toString = Object.prototype.toString;

function resolveYamlPairs(data) {
  if (data === null) return true;

  var index, length, pair, keys, result,
      object = data;

  result = new Array(object.length);

  for (index = 0, length = object.length; index < length; index += 1) {
    pair = object[index];

    if (_toString.call(pair) !== '[object Object]') return false;

    keys = Object.keys(pair);

    if (keys.length !== 1) return false;

    result[index] = [ keys[0], pair[keys[0]] ];
  }

  return true;
}

function constructYamlPairs(data) {
  if (data === null) return [];

  var index, length, pair, keys, result,
      object = data;

  result = new Array(object.length);

  for (index = 0, length = object.length; index < length; index += 1) {
    pair = object[index];

    keys = Object.keys(pair);

    result[index] = [ keys[0], pair[keys[0]] ];
  }

  return result;
}

module.exports = new Type('tag:yaml.org,2002:pairs', {
  kind: 'sequence',
  resolve: resolveYamlPairs,
  construct: constructYamlPairs
});
'use strict';

var Type = require('../type');

module.exports = new Type('tag:yaml.org,2002:seq', {
  kind: 'sequence',
  construct: function (data) { return data !== null ? data : []; }
});
'use strict';

var Type = require('../type');

var _hasOwnProperty = Object.prototype.hasOwnProperty;

function resolveYamlSet(data) {
  if (data === null) return true;

  var key, object = data;

  for (key in object) {
    if (_hasOwnProperty.call(object, key)) {
      if (object[key] !== null) return false;
    }
  }

  return true;
}

function constructYamlSet(data) {
  return data !== null ? data : {};
}

module.exports = new Type('tag:yaml.org,2002:set', {
  kind: 'mapping',
  resolve: resolveYamlSet,
  construct: constructYamlSet
});
'use strict';

var Type = require('../type');

module.exports = new Type('tag:yaml.org,2002:str', {
  kind: 'scalar',
  construct: function (data) { return data !== null ? data : ''; }
});
'use strict';

var Type = require('../type');

var YAML_DATE_REGEXP = new RegExp(
  '^([0-9][0-9][0-9][0-9])'          + // [1] year
  '-([0-9][0-9])'                    + // [2] month
  '-([0-9][0-9])$');                   // [3] day

var YAML_TIMESTAMP_REGEXP = new RegExp(
  '^([0-9][0-9][0-9][0-9])'          + // [1] year
  '-([0-9][0-9]?)'                   + // [2] month
  '-([0-9][0-9]?)'                   + // [3] day
  '(?:[Tt]|[ \\t]+)'                 + // ...
  '([0-9][0-9]?)'                    + // [4] hour
  ':([0-9][0-9])'                    + // [5] minute
  ':([0-9][0-9])'                    + // [6] second
  '(?:\\.([0-9]*))?'                 + // [7] fraction
  '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour
  '(?::([0-9][0-9]))?))?$');           // [11] tz_minute

function resolveYamlTimestamp(data) {
  if (data === null) return false;
  if (YAML_DATE_REGEXP.exec(data) !== null) return true;
  if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;
  return false;
}

function constructYamlTimestamp(data) {
  var match, year, month, day, hour, minute, second, fraction = 0,
      delta = null, tz_hour, tz_minute, date;

  match = YAML_DATE_REGEXP.exec(data);
  if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);

  if (match === null) throw new Error('Date resolve error');

  // match: [1] year [2] month [3] day

  year = +(match[1]);
  month = +(match[2]) - 1; // JS month starts with 0
  day = +(match[3]);

  if (!match[4]) { // no hour
    return new Date(Date.UTC(year, month, day));
  }

  // match: [4] hour [5] minute [6] second [7] fraction

  hour = +(match[4]);
  minute = +(match[5]);
  second = +(match[6]);

  if (match[7]) {
    fraction = match[7].slice(0, 3);
    while (fraction.length < 3) { // milli-seconds
      fraction += '0';
    }
    fraction = +fraction;
  }

  // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute

  if (match[9]) {
    tz_hour = +(match[10]);
    tz_minute = +(match[11] || 0);
    delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds
    if (match[9] === '-') delta = -delta;
  }

  date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));

  if (delta) date.setTime(date.getTime() - delta);

  return date;
}

function representYamlTimestamp(object /*, style*/) {
  return object.toISOString();
}

module.exports = new Type('tag:yaml.org,2002:timestamp', {
  kind: 'scalar',
  resolve: resolveYamlTimestamp,
  construct: constructYamlTimestamp,
  instanceOf: Date,
  represent: representYamlTimestamp
});
// Standard YAML's Core schema.
// http://www.yaml.org/spec/1.2/spec.html#id2804923
//
// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.
// So, Core schema has no distinctions from JSON schema is JS-YAML.


'use strict';


module.exports = require('./json');
// JS-YAML's default schema for `safeLoad` function.
// It is not described in the YAML specification.
//
// This schema is based on standard YAML's Core schema and includes most of
// extra types described at YAML tag repository. (http://yaml.org/type/)


'use strict';


module.exports = require('./core').extend({
  implicit: [
    require('../type/timestamp'),
    require('../type/merge')
  ],
  explicit: [
    require('../type/binary'),
    require('../type/omap'),
    require('../type/pairs'),
    require('../type/set')
  ]
});
// Standard YAML's Failsafe schema.
// http://www.yaml.org/spec/1.2/spec.html#id2802346


'use strict';


var Schema = require('../schema');


module.exports = new Schema({
  explicit: [
    require('../type/str'),
    require('../type/seq'),
    require('../type/map')
  ]
});
// Standard YAML's JSON schema.
// http://www.yaml.org/spec/1.2/spec.html#id2803231
//
// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.
// So, this schema is not such strict as defined in the YAML specification.
// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc.


'use strict';


module.exports = require('./failsafe').extend({
  implicit: [
    require('../type/null'),
    require('../type/bool'),
    require('../type/int'),
    require('../type/float')
  ]
});

/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */
(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jsyaml = {}));
}(this, (function (exports) { 'use strict';

  function isNothing(subject) {
    return (typeof subject === 'undefined') || (subject === null);
  }


  function isObject(subject) {
    return (typeof subject === 'object') && (subject !== null);
  }


  function toArray(sequence) {
    if (Array.isArray(sequence)) return sequence;
    else if (isNothing(sequence)) return [];

    return [ sequence ];
  }


  function extend(target, source) {
    var index, length, key, sourceKeys;

    if (source) {
      sourceKeys = Object.keys(source);

      for (index = 0, length = sourceKeys.length; index < length; index += 1) {
        key = sourceKeys[index];
        target[key] = source[key];
      }
    }

    return target;
  }


  function repeat(string, count) {
    var result = '', cycle;

    for (cycle = 0; cycle < count; cycle += 1) {
      result += string;
    }

    return result;
  }


  function isNegativeZero(number) {
    return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);
  }


  var isNothing_1      = isNothing;
  var isObject_1       = isObject;
  var toArray_1        = toArray;
  var repeat_1         = repeat;
  var isNegativeZero_1 = isNegativeZero;
  var extend_1         = extend;

  var common = {
  	isNothing: isNothing_1,
  	isObject: isObject_1,
  	toArray: toArray_1,
  	repeat: repeat_1,
  	isNegativeZero: isNegativeZero_1,
  	extend: extend_1
  };

  // YAML error class. http://stackoverflow.com/questions/8458984


  function formatError(exception, compact) {
    var where = '', message = exception.reason || '(unknown reason)';

    if (!exception.mark) return message;

    if (exception.mark.name) {
      where += 'in "' + exception.mark.name + '" ';
    }

    where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';

    if (!compact && exception.mark.snippet) {
      where += '\n\n' + exception.mark.snippet;
    }

    return message + ' ' + where;
  }


  function YAMLException$1(reason, mark) {
    // Super constructor
    Error.call(this);

    this.name = 'YAMLException';
    this.reason = reason;
    this.mark = mark;
    this.message = formatError(this, false);

    // Include stack trace in error object
    if (Error.captureStackTrace) {
      // Chrome and NodeJS
      Error.captureStackTrace(this, this.constructor);
    } else {
      // FF, IE 10+ and Safari 6+. Fallback for others
      this.stack = (new Error()).stack || '';
    }
  }


  // Inherit from Error
  YAMLException$1.prototype = Object.create(Error.prototype);
  YAMLException$1.prototype.constructor = YAMLException$1;


  YAMLException$1.prototype.toString = function toString(compact) {
    return this.name + ': ' + formatError(this, compact);
  };


  var exception = YAMLException$1;

  // get snippet for a single line, respecting maxLength
  function getLine(buffer, lineStart, lineEnd, position, maxLineLength) {
    var head = '';
    var tail = '';
    var maxHalfLength = Math.floor(maxLineLength / 2) - 1;

    if (position - lineStart > maxHalfLength) {
      head = ' ... ';
      lineStart = position - maxHalfLength + head.length;
    }

    if (lineEnd - position > maxHalfLength) {
      tail = ' ...';
      lineEnd = position + maxHalfLength - tail.length;
    }

    return {
      str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, '→') + tail,
      pos: position - lineStart + head.length // relative position
    };
  }


  function padStart(string, max) {
    return common.repeat(' ', max - string.length) + string;
  }


  function makeSnippet(mark, options) {
    options = Object.create(options || null);

    if (!mark.buffer) return null;

    if (!options.maxLength) options.maxLength = 79;
    if (typeof options.indent      !== 'number') options.indent      = 1;
    if (typeof options.linesBefore !== 'number') options.linesBefore = 3;
    if (typeof options.linesAfter  !== 'number') options.linesAfter  = 2;

    var re = /\r?\n|\r|\0/g;
    var lineStarts = [ 0 ];
    var lineEnds = [];
    var match;
    var foundLineNo = -1;

    while ((match = re.exec(mark.buffer))) {
      lineEnds.push(match.index);
      lineStarts.push(match.index + match[0].length);

      if (mark.position <= match.index && foundLineNo < 0) {
        foundLineNo = lineStarts.length - 2;
      }
    }

    if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;

    var result = '', i, line;
    var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;
    var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);

    for (i = 1; i <= options.linesBefore; i++) {
      if (foundLineNo - i < 0) break;
      line = getLine(
        mark.buffer,
        lineStarts[foundLineNo - i],
        lineEnds[foundLineNo - i],
        mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),
        maxLineLength
      );
      result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +
        ' | ' + line.str + '\n' + result;
    }

    line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);
    result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +
      ' | ' + line.str + '\n';
    result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\n';

    for (i = 1; i <= options.linesAfter; i++) {
      if (foundLineNo + i >= lineEnds.length) break;
      line = getLine(
        mark.buffer,
        lineStarts[foundLineNo + i],
        lineEnds[foundLineNo + i],
        mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),
        maxLineLength
      );
      result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +
        ' | ' + line.str + '\n';
    }

    return result.replace(/\n$/, '');
  }


  var snippet = makeSnippet;

  var TYPE_CONSTRUCTOR_OPTIONS = [
    'kind',
    'multi',
    'resolve',
    'construct',
    'instanceOf',
    'predicate',
    'represent',
    'representName',
    'defaultStyle',
    'styleAliases'
  ];

  var YAML_NODE_KINDS = [
    'scalar',
    'sequence',
    'mapping'
  ];

  function compileStyleAliases(map) {
    var result = {};

    if (map !== null) {
      Object.keys(map).forEach(function (style) {
        map[style].forEach(function (alias) {
          result[String(alias)] = style;
        });
      });
    }

    return result;
  }

  function Type$1(tag, options) {
    options = options || {};

    Object.keys(options).forEach(function (name) {
      if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {
        throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.');
      }
    });

    // TODO: Add tag format check.
    this.options       = options; // keep original options in case user wants to extend this type later
    this.tag           = tag;
    this.kind          = options['kind']          || null;
    this.resolve       = options['resolve']       || function () { return true; };
    this.construct     = options['construct']     || function (data) { return data; };
    this.instanceOf    = options['instanceOf']    || null;
    this.predicate     = options['predicate']     || null;
    this.represent     = options['represent']     || null;
    this.representName = options['representName'] || null;
    this.defaultStyle  = options['defaultStyle']  || null;
    this.multi         = options['multi']         || false;
    this.styleAliases  = compileStyleAliases(options['styleAliases'] || null);

    if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {
      throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.');
    }
  }

  var type = Type$1;

  /*eslint-disable max-len*/





  function compileList(schema, name) {
    var result = [];

    schema[name].forEach(function (currentType) {
      var newIndex = result.length;

      result.forEach(function (previousType, previousIndex) {
        if (previousType.tag === currentType.tag &&
            previousType.kind === currentType.kind &&
            previousType.multi === currentType.multi) {

          newIndex = previousIndex;
        }
      });

      result[newIndex] = currentType;
    });

    return result;
  }


  function compileMap(/* lists... */) {
    var result = {
          scalar: {},
          sequence: {},
          mapping: {},
          fallback: {},
          multi: {
            scalar: [],
            sequence: [],
            mapping: [],
            fallback: []
          }
        }, index, length;

    function collectType(type) {
      if (type.multi) {
        result.multi[type.kind].push(type);
        result.multi['fallback'].push(type);
      } else {
        result[type.kind][type.tag] = result['fallback'][type.tag] = type;
      }
    }

    for (index = 0, length = arguments.length; index < length; index += 1) {
      arguments[index].forEach(collectType);
    }
    return result;
  }


  function Schema$1(definition) {
    return this.extend(definition);
  }


  Schema$1.prototype.extend = function extend(definition) {
    var implicit = [];
    var explicit = [];

    if (definition instanceof type) {
      // Schema.extend(type)
      explicit.push(definition);

    } else if (Array.isArray(definition)) {
      // Schema.extend([ type1, type2, ... ])
      explicit = explicit.concat(definition);

    } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {
      // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })
      if (definition.implicit) implicit = implicit.concat(definition.implicit);
      if (definition.explicit) explicit = explicit.concat(definition.explicit);

    } else {
      throw new exception('Schema.extend argument should be a Type, [ Type ], ' +
        'or a schema definition ({ implicit: [...], explicit: [...] })');
    }

    implicit.forEach(function (type$1) {
      if (!(type$1 instanceof type)) {
        throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');
      }

      if (type$1.loadKind && type$1.loadKind !== 'scalar') {
        throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');
      }

      if (type$1.multi) {
        throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');
      }
    });

    explicit.forEach(function (type$1) {
      if (!(type$1 instanceof type)) {
        throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');
      }
    });

    var result = Object.create(Schema$1.prototype);

    result.implicit = (this.implicit || []).concat(implicit);
    result.explicit = (this.explicit || []).concat(explicit);

    result.compiledImplicit = compileList(result, 'implicit');
    result.compiledExplicit = compileList(result, 'explicit');
    result.compiledTypeMap  = compileMap(result.compiledImplicit, result.compiledExplicit);

    return result;
  };


  var schema = Schema$1;

  var str = new type('tag:yaml.org,2002:str', {
    kind: 'scalar',
    construct: function (data) { return data !== null ? data : ''; }
  });

  var seq = new type('tag:yaml.org,2002:seq', {
    kind: 'sequence',
    construct: function (data) { return data !== null ? data : []; }
  });

  var map = new type('tag:yaml.org,2002:map', {
    kind: 'mapping',
    construct: function (data) { return data !== null ? data : {}; }
  });

  var failsafe = new schema({
    explicit: [
      str,
      seq,
      map
    ]
  });

  function resolveYamlNull(data) {
    if (data === null) return true;

    var max = data.length;

    return (max === 1 && data === '~') ||
           (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));
  }

  function constructYamlNull() {
    return null;
  }

  function isNull(object) {
    return object === null;
  }

  var _null = new type('tag:yaml.org,2002:null', {
    kind: 'scalar',
    resolve: resolveYamlNull,
    construct: constructYamlNull,
    predicate: isNull,
    represent: {
      canonical: function () { return '~';    },
      lowercase: function () { return 'null'; },
      uppercase: function () { return 'NULL'; },
      camelcase: function () { return 'Null'; },
      empty:     function () { return '';     }
    },
    defaultStyle: 'lowercase'
  });

  function resolveYamlBoolean(data) {
    if (data === null) return false;

    var max = data.length;

    return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||
           (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));
  }

  function constructYamlBoolean(data) {
    return data === 'true' ||
           data === 'True' ||
           data === 'TRUE';
  }

  function isBoolean(object) {
    return Object.prototype.toString.call(object) === '[object Boolean]';
  }

  var bool = new type('tag:yaml.org,2002:bool', {
    kind: 'scalar',
    resolve: resolveYamlBoolean,
    construct: constructYamlBoolean,
    predicate: isBoolean,
    represent: {
      lowercase: function (object) { return object ? 'true' : 'false'; },
      uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },
      camelcase: function (object) { return object ? 'True' : 'False'; }
    },
    defaultStyle: 'lowercase'
  });

  function isHexCode(c) {
    return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||
           ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||
           ((0x61/* a */ <= c) && (c <= 0x66/* f */));
  }

  function isOctCode(c) {
    return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));
  }

  function isDecCode(c) {
    return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));
  }

  function resolveYamlInteger(data) {
    if (data === null) return false;

    var max = data.length,
        index = 0,
        hasDigits = false,
        ch;

    if (!max) return false;

    ch = data[index];

    // sign
    if (ch === '-' || ch === '+') {
      ch = data[++index];
    }

    if (ch === '0') {
      // 0
      if (index + 1 === max) return true;
      ch = data[++index];

      // base 2, base 8, base 16

      if (ch === 'b') {
        // base 2
        index++;

        for (; index < max; index++) {
          ch = data[index];
          if (ch === '_') continue;
          if (ch !== '0' && ch !== '1') return false;
          hasDigits = true;
        }
        return hasDigits && ch !== '_';
      }


      if (ch === 'x') {
        // base 16
        index++;

        for (; index < max; index++) {
          ch = data[index];
          if (ch === '_') continue;
          if (!isHexCode(data.charCodeAt(index))) return false;
          hasDigits = true;
        }
        return hasDigits && ch !== '_';
      }


      if (ch === 'o') {
        // base 8
        index++;

        for (; index < max; index++) {
          ch = data[index];
          if (ch === '_') continue;
          if (!isOctCode(data.charCodeAt(index))) return false;
          hasDigits = true;
        }
        return hasDigits && ch !== '_';
      }
    }

    // base 10 (except 0)

    // value should not start with `_`;
    if (ch === '_') return false;

    for (; index < max; index++) {
      ch = data[index];
      if (ch === '_') continue;
      if (!isDecCode(data.charCodeAt(index))) {
        return false;
      }
      hasDigits = true;
    }

    // Should have digits and should not end with `_`
    if (!hasDigits || ch === '_') return false;

    return true;
  }

  function constructYamlInteger(data) {
    var value = data, sign = 1, ch;

    if (value.indexOf('_') !== -1) {
      value = value.replace(/_/g, '');
    }

    ch = value[0];

    if (ch === '-' || ch === '+') {
      if (ch === '-') sign = -1;
      value = value.slice(1);
      ch = value[0];
    }

    if (value === '0') return 0;

    if (ch === '0') {
      if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);
      if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);
      if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);
    }

    return sign * parseInt(value, 10);
  }

  function isInteger(object) {
    return (Object.prototype.toString.call(object)) === '[object Number]' &&
           (object % 1 === 0 && !common.isNegativeZero(object));
  }

  var int = new type('tag:yaml.org,2002:int', {
    kind: 'scalar',
    resolve: resolveYamlInteger,
    construct: constructYamlInteger,
    predicate: isInteger,
    represent: {
      binary:      function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },
      octal:       function (obj) { return obj >= 0 ? '0o'  + obj.toString(8) : '-0o'  + obj.toString(8).slice(1); },
      decimal:     function (obj) { return obj.toString(10); },
      /* eslint-disable max-len */
      hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() :  '-0x' + obj.toString(16).toUpperCase().slice(1); }
    },
    defaultStyle: 'decimal',
    styleAliases: {
      binary:      [ 2,  'bin' ],
      octal:       [ 8,  'oct' ],
      decimal:     [ 10, 'dec' ],
      hexadecimal: [ 16, 'hex' ]
    }
  });

  var YAML_FLOAT_PATTERN = new RegExp(
    // 2.5e4, 2.5 and integers
    '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +
    // .2e4, .2
    // special case, seems not from spec
    '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +
    // .inf
    '|[-+]?\\.(?:inf|Inf|INF)' +
    // .nan
    '|\\.(?:nan|NaN|NAN))$');

  function resolveYamlFloat(data) {
    if (data === null) return false;

    if (!YAML_FLOAT_PATTERN.test(data) ||
        // Quick hack to not allow integers end with `_`
        // Probably should update regexp & check speed
        data[data.length - 1] === '_') {
      return false;
    }

    return true;
  }

  function constructYamlFloat(data) {
    var value, sign;

    value  = data.replace(/_/g, '').toLowerCase();
    sign   = value[0] === '-' ? -1 : 1;

    if ('+-'.indexOf(value[0]) >= 0) {
      value = value.slice(1);
    }

    if (value === '.inf') {
      return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;

    } else if (value === '.nan') {
      return NaN;
    }
    return sign * parseFloat(value, 10);
  }


  var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;

  function representYamlFloat(object, style) {
    var res;

    if (isNaN(object)) {
      switch (style) {
        case 'lowercase': return '.nan';
        case 'uppercase': return '.NAN';
        case 'camelcase': return '.NaN';
      }
    } else if (Number.POSITIVE_INFINITY === object) {
      switch (style) {
        case 'lowercase': return '.inf';
        case 'uppercase': return '.INF';
        case 'camelcase': return '.Inf';
      }
    } else if (Number.NEGATIVE_INFINITY === object) {
      switch (style) {
        case 'lowercase': return '-.inf';
        case 'uppercase': return '-.INF';
        case 'camelcase': return '-.Inf';
      }
    } else if (common.isNegativeZero(object)) {
      return '-0.0';
    }

    res = object.toString(10);

    // JS stringifier can build scientific format without dots: 5e-100,
    // while YAML requres dot: 5.e-100. Fix it with simple hack

    return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;
  }

  function isFloat(object) {
    return (Object.prototype.toString.call(object) === '[object Number]') &&
           (object % 1 !== 0 || common.isNegativeZero(object));
  }

  var float = new type('tag:yaml.org,2002:float', {
    kind: 'scalar',
    resolve: resolveYamlFloat,
    construct: constructYamlFloat,
    predicate: isFloat,
    represent: representYamlFloat,
    defaultStyle: 'lowercase'
  });

  var json = failsafe.extend({
    implicit: [
      _null,
      bool,
      int,
      float
    ]
  });

  var core = json;

  var YAML_DATE_REGEXP = new RegExp(
    '^([0-9][0-9][0-9][0-9])'          + // [1] year
    '-([0-9][0-9])'                    + // [2] month
    '-([0-9][0-9])$');                   // [3] day

  var YAML_TIMESTAMP_REGEXP = new RegExp(
    '^([0-9][0-9][0-9][0-9])'          + // [1] year
    '-([0-9][0-9]?)'                   + // [2] month
    '-([0-9][0-9]?)'                   + // [3] day
    '(?:[Tt]|[ \\t]+)'                 + // ...
    '([0-9][0-9]?)'                    + // [4] hour
    ':([0-9][0-9])'                    + // [5] minute
    ':([0-9][0-9])'                    + // [6] second
    '(?:\\.([0-9]*))?'                 + // [7] fraction
    '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour
    '(?::([0-9][0-9]))?))?$');           // [11] tz_minute

  function resolveYamlTimestamp(data) {
    if (data === null) return false;
    if (YAML_DATE_REGEXP.exec(data) !== null) return true;
    if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;
    return false;
  }

  function constructYamlTimestamp(data) {
    var match, year, month, day, hour, minute, second, fraction = 0,
        delta = null, tz_hour, tz_minute, date;

    match = YAML_DATE_REGEXP.exec(data);
    if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);

    if (match === null) throw new Error('Date resolve error');

    // match: [1] year [2] month [3] day

    year = +(match[1]);
    month = +(match[2]) - 1; // JS month starts with 0
    day = +(match[3]);

    if (!match[4]) { // no hour
      return new Date(Date.UTC(year, month, day));
    }

    // match: [4] hour [5] minute [6] second [7] fraction

    hour = +(match[4]);
    minute = +(match[5]);
    second = +(match[6]);

    if (match[7]) {
      fraction = match[7].slice(0, 3);
      while (fraction.length < 3) { // milli-seconds
        fraction += '0';
      }
      fraction = +fraction;
    }

    // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute

    if (match[9]) {
      tz_hour = +(match[10]);
      tz_minute = +(match[11] || 0);
      delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds
      if (match[9] === '-') delta = -delta;
    }

    date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));

    if (delta) date.setTime(date.getTime() - delta);

    return date;
  }

  function representYamlTimestamp(object /*, style*/) {
    return object.toISOString();
  }

  var timestamp = new type('tag:yaml.org,2002:timestamp', {
    kind: 'scalar',
    resolve: resolveYamlTimestamp,
    construct: constructYamlTimestamp,
    instanceOf: Date,
    represent: representYamlTimestamp
  });

  function resolveYamlMerge(data) {
    return data === '<<' || data === null;
  }

  var merge = new type('tag:yaml.org,2002:merge', {
    kind: 'scalar',
    resolve: resolveYamlMerge
  });

  /*eslint-disable no-bitwise*/





  // [ 64, 65, 66 ] -> [ padding, CR, LF ]
  var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r';


  function resolveYamlBinary(data) {
    if (data === null) return false;

    var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;

    // Convert one by one.
    for (idx = 0; idx < max; idx++) {
      code = map.indexOf(data.charAt(idx));

      // Skip CR/LF
      if (code > 64) continue;

      // Fail on illegal characters
      if (code < 0) return false;

      bitlen += 6;
    }

    // If there are any bits left, source was corrupted
    return (bitlen % 8) === 0;
  }

  function constructYamlBinary(data) {
    var idx, tailbits,
        input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan
        max = input.length,
        map = BASE64_MAP,
        bits = 0,
        result = [];

    // Collect by 6*4 bits (3 bytes)

    for (idx = 0; idx < max; idx++) {
      if ((idx % 4 === 0) && idx) {
        result.push((bits >> 16) & 0xFF);
        result.push((bits >> 8) & 0xFF);
        result.push(bits & 0xFF);
      }

      bits = (bits << 6) | map.indexOf(input.charAt(idx));
    }

    // Dump tail

    tailbits = (max % 4) * 6;

    if (tailbits === 0) {
      result.push((bits >> 16) & 0xFF);
      result.push((bits >> 8) & 0xFF);
      result.push(bits & 0xFF);
    } else if (tailbits === 18) {
      result.push((bits >> 10) & 0xFF);
      result.push((bits >> 2) & 0xFF);
    } else if (tailbits === 12) {
      result.push((bits >> 4) & 0xFF);
    }

    return new Uint8Array(result);
  }

  function representYamlBinary(object /*, style*/) {
    var result = '', bits = 0, idx, tail,
        max = object.length,
        map = BASE64_MAP;

    // Convert every three bytes to 4 ASCII characters.

    for (idx = 0; idx < max; idx++) {
      if ((idx % 3 === 0) && idx) {
        result += map[(bits >> 18) & 0x3F];
        result += map[(bits >> 12) & 0x3F];
        result += map[(bits >> 6) & 0x3F];
        result += map[bits & 0x3F];
      }

      bits = (bits << 8) + object[idx];
    }

    // Dump tail

    tail = max % 3;

    if (tail === 0) {
      result += map[(bits >> 18) & 0x3F];
      result += map[(bits >> 12) & 0x3F];
      result += map[(bits >> 6) & 0x3F];
      result += map[bits & 0x3F];
    } else if (tail === 2) {
      result += map[(bits >> 10) & 0x3F];
      result += map[(bits >> 4) & 0x3F];
      result += map[(bits << 2) & 0x3F];
      result += map[64];
    } else if (tail === 1) {
      result += map[(bits >> 2) & 0x3F];
      result += map[(bits << 4) & 0x3F];
      result += map[64];
      result += map[64];
    }

    return result;
  }

  function isBinary(obj) {
    return Object.prototype.toString.call(obj) ===  '[object Uint8Array]';
  }

  var binary = new type('tag:yaml.org,2002:binary', {
    kind: 'scalar',
    resolve: resolveYamlBinary,
    construct: constructYamlBinary,
    predicate: isBinary,
    represent: representYamlBinary
  });

  var _hasOwnProperty$3 = Object.prototype.hasOwnProperty;
  var _toString$2       = Object.prototype.toString;

  function resolveYamlOmap(data) {
    if (data === null) return true;

    var objectKeys = [], index, length, pair, pairKey, pairHasKey,
        object = data;

    for (index = 0, length = object.length; index < length; index += 1) {
      pair = object[index];
      pairHasKey = false;

      if (_toString$2.call(pair) !== '[object Object]') return false;

      for (pairKey in pair) {
        if (_hasOwnProperty$3.call(pair, pairKey)) {
          if (!pairHasKey) pairHasKey = true;
          else return false;
        }
      }

      if (!pairHasKey) return false;

      if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);
      else return false;
    }

    return true;
  }

  function constructYamlOmap(data) {
    return data !== null ? data : [];
  }

  var omap = new type('tag:yaml.org,2002:omap', {
    kind: 'sequence',
    resolve: resolveYamlOmap,
    construct: constructYamlOmap
  });

  var _toString$1 = Object.prototype.toString;

  function resolveYamlPairs(data) {
    if (data === null) return true;

    var index, length, pair, keys, result,
        object = data;

    result = new Array(object.length);

    for (index = 0, length = object.length; index < length; index += 1) {
      pair = object[index];

      if (_toString$1.call(pair) !== '[object Object]') return false;

      keys = Object.keys(pair);

      if (keys.length !== 1) return false;

      result[index] = [ keys[0], pair[keys[0]] ];
    }

    return true;
  }

  function constructYamlPairs(data) {
    if (data === null) return [];

    var index, length, pair, keys, result,
        object = data;

    result = new Array(object.length);

    for (index = 0, length = object.length; index < length; index += 1) {
      pair = object[index];

      keys = Object.keys(pair);

      result[index] = [ keys[0], pair[keys[0]] ];
    }

    return result;
  }

  var pairs = new type('tag:yaml.org,2002:pairs', {
    kind: 'sequence',
    resolve: resolveYamlPairs,
    construct: constructYamlPairs
  });

  var _hasOwnProperty$2 = Object.prototype.hasOwnProperty;

  function resolveYamlSet(data) {
    if (data === null) return true;

    var key, object = data;

    for (key in object) {
      if (_hasOwnProperty$2.call(object, key)) {
        if (object[key] !== null) return false;
      }
    }

    return true;
  }

  function constructYamlSet(data) {
    return data !== null ? data : {};
  }

  var set = new type('tag:yaml.org,2002:set', {
    kind: 'mapping',
    resolve: resolveYamlSet,
    construct: constructYamlSet
  });

  var _default = core.extend({
    implicit: [
      timestamp,
      merge
    ],
    explicit: [
      binary,
      omap,
      pairs,
      set
    ]
  });

  /*eslint-disable max-len,no-use-before-define*/







  var _hasOwnProperty$1 = Object.prototype.hasOwnProperty;


  var CONTEXT_FLOW_IN   = 1;
  var CONTEXT_FLOW_OUT  = 2;
  var CONTEXT_BLOCK_IN  = 3;
  var CONTEXT_BLOCK_OUT = 4;


  var CHOMPING_CLIP  = 1;
  var CHOMPING_STRIP = 2;
  var CHOMPING_KEEP  = 3;


  var PATTERN_NON_PRINTABLE         = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
  var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/;
  var PATTERN_FLOW_INDICATORS       = /[,\[\]\{\}]/;
  var PATTERN_TAG_HANDLE            = /^(?:!|!!|![a-z\-]+!)$/i;
  var PATTERN_TAG_URI               = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;


  function _class(obj) { return Object.prototype.toString.call(obj); }

  function is_EOL(c) {
    return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);
  }

  function is_WHITE_SPACE(c) {
    return (c === 0x09/* Tab */) || (c === 0x20/* Space */);
  }

  function is_WS_OR_EOL(c) {
    return (c === 0x09/* Tab */) ||
           (c === 0x20/* Space */) ||
           (c === 0x0A/* LF */) ||
           (c === 0x0D/* CR */);
  }

  function is_FLOW_INDICATOR(c) {
    return c === 0x2C/* , */ ||
           c === 0x5B/* [ */ ||
           c === 0x5D/* ] */ ||
           c === 0x7B/* { */ ||
           c === 0x7D/* } */;
  }

  function fromHexCode(c) {
    var lc;

    if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {
      return c - 0x30;
    }

    /*eslint-disable no-bitwise*/
    lc = c | 0x20;

    if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {
      return lc - 0x61 + 10;
    }

    return -1;
  }

  function escapedHexLen(c) {
    if (c === 0x78/* x */) { return 2; }
    if (c === 0x75/* u */) { return 4; }
    if (c === 0x55/* U */) { return 8; }
    return 0;
  }

  function fromDecimalCode(c) {
    if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {
      return c - 0x30;
    }

    return -1;
  }

  function simpleEscapeSequence(c) {
    /* eslint-disable indent */
    return (c === 0x30/* 0 */) ? '\x00' :
          (c === 0x61/* a */) ? '\x07' :
          (c === 0x62/* b */) ? '\x08' :
          (c === 0x74/* t */) ? '\x09' :
          (c === 0x09/* Tab */) ? '\x09' :
          (c === 0x6E/* n */) ? '\x0A' :
          (c === 0x76/* v */) ? '\x0B' :
          (c === 0x66/* f */) ? '\x0C' :
          (c === 0x72/* r */) ? '\x0D' :
          (c === 0x65/* e */) ? '\x1B' :
          (c === 0x20/* Space */) ? ' ' :
          (c === 0x22/* " */) ? '\x22' :
          (c === 0x2F/* / */) ? '/' :
          (c === 0x5C/* \ */) ? '\x5C' :
          (c === 0x4E/* N */) ? '\x85' :
          (c === 0x5F/* _ */) ? '\xA0' :
          (c === 0x4C/* L */) ? '\u2028' :
          (c === 0x50/* P */) ? '\u2029' : '';
  }

  function charFromCodepoint(c) {
    if (c <= 0xFFFF) {
      return String.fromCharCode(c);
    }
    // Encode UTF-16 surrogate pair
    // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF
    return String.fromCharCode(
      ((c - 0x010000) >> 10) + 0xD800,
      ((c - 0x010000) & 0x03FF) + 0xDC00
    );
  }

  var simpleEscapeCheck = new Array(256); // integer, for fast access
  var simpleEscapeMap = new Array(256);
  for (var i = 0; i < 256; i++) {
    simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;
    simpleEscapeMap[i] = simpleEscapeSequence(i);
  }


  function State$1(input, options) {
    this.input = input;

    this.filename  = options['filename']  || null;
    this.schema    = options['schema']    || _default;
    this.onWarning = options['onWarning'] || null;
    // (Hidden) Remove? makes the loader to expect YAML 1.1 documents
    // if such documents have no explicit %YAML directive
    this.legacy    = options['legacy']    || false;

    this.json      = options['json']      || false;
    this.listener  = options['listener']  || null;

    this.implicitTypes = this.schema.compiledImplicit;
    this.typeMap       = this.schema.compiledTypeMap;

    this.length     = input.length;
    this.position   = 0;
    this.line       = 0;
    this.lineStart  = 0;
    this.lineIndent = 0;

    // position of first leading tab in the current line,
    // used to make sure there are no tabs in the indentation
    this.firstTabInLine = -1;

    this.documents = [];

    /*
    this.version;
    this.checkLineBreaks;
    this.tagMap;
    this.anchorMap;
    this.tag;
    this.anchor;
    this.kind;
    this.result;*/

  }


  function generateError(state, message) {
    var mark = {
      name:     state.filename,
      buffer:   state.input.slice(0, -1), // omit trailing \0
      position: state.position,
      line:     state.line,
      column:   state.position - state.lineStart
    };

    mark.snippet = snippet(mark);

    return new exception(message, mark);
  }

  function throwError(state, message) {
    throw generateError(state, message);
  }

  function throwWarning(state, message) {
    if (state.onWarning) {
      state.onWarning.call(null, generateError(state, message));
    }
  }


  var directiveHandlers = {

    YAML: function handleYamlDirective(state, name, args) {

      var match, major, minor;

      if (state.version !== null) {
        throwError(state, 'duplication of %YAML directive');
      }

      if (args.length !== 1) {
        throwError(state, 'YAML directive accepts exactly one argument');
      }

      match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]);

      if (match === null) {
        throwError(state, 'ill-formed argument of the YAML directive');
      }

      major = parseInt(match[1], 10);
      minor = parseInt(match[2], 10);

      if (major !== 1) {
        throwError(state, 'unacceptable YAML version of the document');
      }

      state.version = args[0];
      state.checkLineBreaks = (minor < 2);

      if (minor !== 1 && minor !== 2) {
        throwWarning(state, 'unsupported YAML version of the document');
      }
    },

    TAG: function handleTagDirective(state, name, args) {

      var handle, prefix;

      if (args.length !== 2) {
        throwError(state, 'TAG directive accepts exactly two arguments');
      }

      handle = args[0];
      prefix = args[1];

      if (!PATTERN_TAG_HANDLE.test(handle)) {
        throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');
      }

      if (_hasOwnProperty$1.call(state.tagMap, handle)) {
        throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle');
      }

      if (!PATTERN_TAG_URI.test(prefix)) {
        throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');
      }

      try {
        prefix = decodeURIComponent(prefix);
      } catch (err) {
        throwError(state, 'tag prefix is malformed: ' + prefix);
      }

      state.tagMap[handle] = prefix;
    }
  };


  function captureSegment(state, start, end, checkJson) {
    var _position, _length, _character, _result;

    if (start < end) {
      _result = state.input.slice(start, end);

      if (checkJson) {
        for (_position = 0, _length = _result.length; _position < _length; _position += 1) {
          _character = _result.charCodeAt(_position);
          if (!(_character === 0x09 ||
                (0x20 <= _character && _character <= 0x10FFFF))) {
            throwError(state, 'expected valid JSON character');
          }
        }
      } else if (PATTERN_NON_PRINTABLE.test(_result)) {
        throwError(state, 'the stream contains non-printable characters');
      }

      state.result += _result;
    }
  }

  function mergeMappings(state, destination, source, overridableKeys) {
    var sourceKeys, key, index, quantity;

    if (!common.isObject(source)) {
      throwError(state, 'cannot merge mappings; the provided source object is unacceptable');
    }

    sourceKeys = Object.keys(source);

    for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {
      key = sourceKeys[index];

      if (!_hasOwnProperty$1.call(destination, key)) {
        destination[key] = source[key];
        overridableKeys[key] = true;
      }
    }
  }

  function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,
    startLine, startLineStart, startPos) {

    var index, quantity;

    // The output is a plain object here, so keys can only be strings.
    // We need to convert keyNode to a string, but doing so can hang the process
    // (deeply nested arrays that explode exponentially using aliases).
    if (Array.isArray(keyNode)) {
      keyNode = Array.prototype.slice.call(keyNode);

      for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {
        if (Array.isArray(keyNode[index])) {
          throwError(state, 'nested arrays are not supported inside keys');
        }

        if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {
          keyNode[index] = '[object Object]';
        }
      }
    }

    // Avoid code execution in load() via toString property
    // (still use its own toString for arrays, timestamps,
    // and whatever user schema extensions happen to have @@toStringTag)
    if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {
      keyNode = '[object Object]';
    }


    keyNode = String(keyNode);

    if (_result === null) {
      _result = {};
    }

    if (keyTag === 'tag:yaml.org,2002:merge') {
      if (Array.isArray(valueNode)) {
        for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {
          mergeMappings(state, _result, valueNode[index], overridableKeys);
        }
      } else {
        mergeMappings(state, _result, valueNode, overridableKeys);
      }
    } else {
      if (!state.json &&
          !_hasOwnProperty$1.call(overridableKeys, keyNode) &&
          _hasOwnProperty$1.call(_result, keyNode)) {
        state.line = startLine || state.line;
        state.lineStart = startLineStart || state.lineStart;
        state.position = startPos || state.position;
        throwError(state, 'duplicated mapping key');
      }

      // used for this specific key only because Object.defineProperty is slow
      if (keyNode === '__proto__') {
        Object.defineProperty(_result, keyNode, {
          configurable: true,
          enumerable: true,
          writable: true,
          value: valueNode
        });
      } else {
        _result[keyNode] = valueNode;
      }
      delete overridableKeys[keyNode];
    }

    return _result;
  }

  function readLineBreak(state) {
    var ch;

    ch = state.input.charCodeAt(state.position);

    if (ch === 0x0A/* LF */) {
      state.position++;
    } else if (ch === 0x0D/* CR */) {
      state.position++;
      if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {
        state.position++;
      }
    } else {
      throwError(state, 'a line break is expected');
    }

    state.line += 1;
    state.lineStart = state.position;
    state.firstTabInLine = -1;
  }

  function skipSeparationSpace(state, allowComments, checkIndent) {
    var lineBreaks = 0,
        ch = state.input.charCodeAt(state.position);

    while (ch !== 0) {
      while (is_WHITE_SPACE(ch)) {
        if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {
          state.firstTabInLine = state.position;
        }
        ch = state.input.charCodeAt(++state.position);
      }

      if (allowComments && ch === 0x23/* # */) {
        do {
          ch = state.input.charCodeAt(++state.position);
        } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);
      }

      if (is_EOL(ch)) {
        readLineBreak(state);

        ch = state.input.charCodeAt(state.position);
        lineBreaks++;
        state.lineIndent = 0;

        while (ch === 0x20/* Space */) {
          state.lineIndent++;
          ch = state.input.charCodeAt(++state.position);
        }
      } else {
        break;
      }
    }

    if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {
      throwWarning(state, 'deficient indentation');
    }

    return lineBreaks;
  }

  function testDocumentSeparator(state) {
    var _position = state.position,
        ch;

    ch = state.input.charCodeAt(_position);

    // Condition state.position === state.lineStart is tested
    // in parent on each call, for efficiency. No needs to test here again.
    if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&
        ch === state.input.charCodeAt(_position + 1) &&
        ch === state.input.charCodeAt(_position + 2)) {

      _position += 3;

      ch = state.input.charCodeAt(_position);

      if (ch === 0 || is_WS_OR_EOL(ch)) {
        return true;
      }
    }

    return false;
  }

  function writeFoldedLines(state, count) {
    if (count === 1) {
      state.result += ' ';
    } else if (count > 1) {
      state.result += common.repeat('\n', count - 1);
    }
  }


  function readPlainScalar(state, nodeIndent, withinFlowCollection) {
    var preceding,
        following,
        captureStart,
        captureEnd,
        hasPendingContent,
        _line,
        _lineStart,
        _lineIndent,
        _kind = state.kind,
        _result = state.result,
        ch;

    ch = state.input.charCodeAt(state.position);

    if (is_WS_OR_EOL(ch)      ||
        is_FLOW_INDICATOR(ch) ||
        ch === 0x23/* # */    ||
        ch === 0x26/* & */    ||
        ch === 0x2A/* * */    ||
        ch === 0x21/* ! */    ||
        ch === 0x7C/* | */    ||
        ch === 0x3E/* > */    ||
        ch === 0x27/* ' */    ||
        ch === 0x22/* " */    ||
        ch === 0x25/* % */    ||
        ch === 0x40/* @ */    ||
        ch === 0x60/* ` */) {
      return false;
    }

    if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {
      following = state.input.charCodeAt(state.position + 1);

      if (is_WS_OR_EOL(following) ||
          withinFlowCollection && is_FLOW_INDICATOR(following)) {
        return false;
      }
    }

    state.kind = 'scalar';
    state.result = '';
    captureStart = captureEnd = state.position;
    hasPendingContent = false;

    while (ch !== 0) {
      if (ch === 0x3A/* : */) {
        following = state.input.charCodeAt(state.position + 1);

        if (is_WS_OR_EOL(following) ||
            withinFlowCollection && is_FLOW_INDICATOR(following)) {
          break;
        }

      } else if (ch === 0x23/* # */) {
        preceding = state.input.charCodeAt(state.position - 1);

        if (is_WS_OR_EOL(preceding)) {
          break;
        }

      } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||
                 withinFlowCollection && is_FLOW_INDICATOR(ch)) {
        break;

      } else if (is_EOL(ch)) {
        _line = state.line;
        _lineStart = state.lineStart;
        _lineIndent = state.lineIndent;
        skipSeparationSpace(state, false, -1);

        if (state.lineIndent >= nodeIndent) {
          hasPendingContent = true;
          ch = state.input.charCodeAt(state.position);
          continue;
        } else {
          state.position = captureEnd;
          state.line = _line;
          state.lineStart = _lineStart;
          state.lineIndent = _lineIndent;
          break;
        }
      }

      if (hasPendingContent) {
        captureSegment(state, captureStart, captureEnd, false);
        writeFoldedLines(state, state.line - _line);
        captureStart = captureEnd = state.position;
        hasPendingContent = false;
      }

      if (!is_WHITE_SPACE(ch)) {
        captureEnd = state.position + 1;
      }

      ch = state.input.charCodeAt(++state.position);
    }

    captureSegment(state, captureStart, captureEnd, false);

    if (state.result) {
      return true;
    }

    state.kind = _kind;
    state.result = _result;
    return false;
  }

  function readSingleQuotedScalar(state, nodeIndent) {
    var ch,
        captureStart, captureEnd;

    ch = state.input.charCodeAt(state.position);

    if (ch !== 0x27/* ' */) {
      return false;
    }

    state.kind = 'scalar';
    state.result = '';
    state.position++;
    captureStart = captureEnd = state.position;

    while ((ch = state.input.charCodeAt(state.position)) !== 0) {
      if (ch === 0x27/* ' */) {
        captureSegment(state, captureStart, state.position, true);
        ch = state.input.charCodeAt(++state.position);

        if (ch === 0x27/* ' */) {
          captureStart = state.position;
          state.position++;
          captureEnd = state.position;
        } else {
          return true;
        }

      } else if (is_EOL(ch)) {
        captureSegment(state, captureStart, captureEnd, true);
        writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
        captureStart = captureEnd = state.position;

      } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
        throwError(state, 'unexpected end of the document within a single quoted scalar');

      } else {
        state.position++;
        captureEnd = state.position;
      }
    }

    throwError(state, 'unexpected end of the stream within a single quoted scalar');
  }

  function readDoubleQuotedScalar(state, nodeIndent) {
    var captureStart,
        captureEnd,
        hexLength,
        hexResult,
        tmp,
        ch;

    ch = state.input.charCodeAt(state.position);

    if (ch !== 0x22/* " */) {
      return false;
    }

    state.kind = 'scalar';
    state.result = '';
    state.position++;
    captureStart = captureEnd = state.position;

    while ((ch = state.input.charCodeAt(state.position)) !== 0) {
      if (ch === 0x22/* " */) {
        captureSegment(state, captureStart, state.position, true);
        state.position++;
        return true;

      } else if (ch === 0x5C/* \ */) {
        captureSegment(state, captureStart, state.position, true);
        ch = state.input.charCodeAt(++state.position);

        if (is_EOL(ch)) {
          skipSeparationSpace(state, false, nodeIndent);

          // TODO: rework to inline fn with no type cast?
        } else if (ch < 256 && simpleEscapeCheck[ch]) {
          state.result += simpleEscapeMap[ch];
          state.position++;

        } else if ((tmp = escapedHexLen(ch)) > 0) {
          hexLength = tmp;
          hexResult = 0;

          for (; hexLength > 0; hexLength--) {
            ch = state.input.charCodeAt(++state.position);

            if ((tmp = fromHexCode(ch)) >= 0) {
              hexResult = (hexResult << 4) + tmp;

            } else {
              throwError(state, 'expected hexadecimal character');
            }
          }

          state.result += charFromCodepoint(hexResult);

          state.position++;

        } else {
          throwError(state, 'unknown escape sequence');
        }

        captureStart = captureEnd = state.position;

      } else if (is_EOL(ch)) {
        captureSegment(state, captureStart, captureEnd, true);
        writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
        captureStart = captureEnd = state.position;

      } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
        throwError(state, 'unexpected end of the document within a double quoted scalar');

      } else {
        state.position++;
        captureEnd = state.position;
      }
    }

    throwError(state, 'unexpected end of the stream within a double quoted scalar');
  }

  function readFlowCollection(state, nodeIndent) {
    var readNext = true,
        _line,
        _lineStart,
        _pos,
        _tag     = state.tag,
        _result,
        _anchor  = state.anchor,
        following,
        terminator,
        isPair,
        isExplicitPair,
        isMapping,
        overridableKeys = Object.create(null),
        keyNode,
        keyTag,
        valueNode,
        ch;

    ch = state.input.charCodeAt(state.position);

    if (ch === 0x5B/* [ */) {
      terminator = 0x5D;/* ] */
      isMapping = false;
      _result = [];
    } else if (ch === 0x7B/* { */) {
      terminator = 0x7D;/* } */
      isMapping = true;
      _result = {};
    } else {
      return false;
    }

    if (state.anchor !== null) {
      state.anchorMap[state.anchor] = _result;
    }

    ch = state.input.charCodeAt(++state.position);

    while (ch !== 0) {
      skipSeparationSpace(state, true, nodeIndent);

      ch = state.input.charCodeAt(state.position);

      if (ch === terminator) {
        state.position++;
        state.tag = _tag;
        state.anchor = _anchor;
        state.kind = isMapping ? 'mapping' : 'sequence';
        state.result = _result;
        return true;
      } else if (!readNext) {
        throwError(state, 'missed comma between flow collection entries');
      } else if (ch === 0x2C/* , */) {
        // "flow collection entries can never be completely empty", as per YAML 1.2, section 7.4
        throwError(state, "expected the node content, but found ','");
      }

      keyTag = keyNode = valueNode = null;
      isPair = isExplicitPair = false;

      if (ch === 0x3F/* ? */) {
        following = state.input.charCodeAt(state.position + 1);

        if (is_WS_OR_EOL(following)) {
          isPair = isExplicitPair = true;
          state.position++;
          skipSeparationSpace(state, true, nodeIndent);
        }
      }

      _line = state.line; // Save the current line.
      _lineStart = state.lineStart;
      _pos = state.position;
      composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
      keyTag = state.tag;
      keyNode = state.result;
      skipSeparationSpace(state, true, nodeIndent);

      ch = state.input.charCodeAt(state.position);

      if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {
        isPair = true;
        ch = state.input.charCodeAt(++state.position);
        skipSeparationSpace(state, true, nodeIndent);
        composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
        valueNode = state.result;
      }

      if (isMapping) {
        storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);
      } else if (isPair) {
        _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));
      } else {
        _result.push(keyNode);
      }

      skipSeparationSpace(state, true, nodeIndent);

      ch = state.input.charCodeAt(state.position);

      if (ch === 0x2C/* , */) {
        readNext = true;
        ch = state.input.charCodeAt(++state.position);
      } else {
        readNext = false;
      }
    }

    throwError(state, 'unexpected end of the stream within a flow collection');
  }

  function readBlockScalar(state, nodeIndent) {
    var captureStart,
        folding,
        chomping       = CHOMPING_CLIP,
        didReadContent = false,
        detectedIndent = false,
        textIndent     = nodeIndent,
        emptyLines     = 0,
        atMoreIndented = false,
        tmp,
        ch;

    ch = state.input.charCodeAt(state.position);

    if (ch === 0x7C/* | */) {
      folding = false;
    } else if (ch === 0x3E/* > */) {
      folding = true;
    } else {
      return false;
    }

    state.kind = 'scalar';
    state.result = '';

    while (ch !== 0) {
      ch = state.input.charCodeAt(++state.position);

      if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {
        if (CHOMPING_CLIP === chomping) {
          chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;
        } else {
          throwError(state, 'repeat of a chomping mode identifier');
        }

      } else if ((tmp = fromDecimalCode(ch)) >= 0) {
        if (tmp === 0) {
          throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');
        } else if (!detectedIndent) {
          textIndent = nodeIndent + tmp - 1;
          detectedIndent = true;
        } else {
          throwError(state, 'repeat of an indentation width identifier');
        }

      } else {
        break;
      }
    }

    if (is_WHITE_SPACE(ch)) {
      do { ch = state.input.charCodeAt(++state.position); }
      while (is_WHITE_SPACE(ch));

      if (ch === 0x23/* # */) {
        do { ch = state.input.charCodeAt(++state.position); }
        while (!is_EOL(ch) && (ch !== 0));
      }
    }

    while (ch !== 0) {
      readLineBreak(state);
      state.lineIndent = 0;

      ch = state.input.charCodeAt(state.position);

      while ((!detectedIndent || state.lineIndent < textIndent) &&
             (ch === 0x20/* Space */)) {
        state.lineIndent++;
        ch = state.input.charCodeAt(++state.position);
      }

      if (!detectedIndent && state.lineIndent > textIndent) {
        textIndent = state.lineIndent;
      }

      if (is_EOL(ch)) {
        emptyLines++;
        continue;
      }

      // End of the scalar.
      if (state.lineIndent < textIndent) {

        // Perform the chomping.
        if (chomping === CHOMPING_KEEP) {
          state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines);
        } else if (chomping === CHOMPING_CLIP) {
          if (didReadContent) { // i.e. only if the scalar is not empty.
            state.result += '\n';
          }
        }

        // Break this `while` cycle and go to the funciton's epilogue.
        break;
      }

      // Folded style: use fancy rules to handle line breaks.
      if (folding) {

        // Lines starting with white space characters (more-indented lines) are not folded.
        if (is_WHITE_SPACE(ch)) {
          atMoreIndented = true;
          // except for the first content line (cf. Example 8.1)
          state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines);

        // End of more-indented block.
        } else if (atMoreIndented) {
          atMoreIndented = false;
          state.result += common.repeat('\n', emptyLines + 1);

        // Just one line break - perceive as the same line.
        } else if (emptyLines === 0) {
          if (didReadContent) { // i.e. only if we have already read some scalar content.
            state.result += ' ';
          }

        // Several line breaks - perceive as different lines.
        } else {
          state.result += common.repeat('\n', emptyLines);
        }

      // Literal style: just add exact number of line breaks between content lines.
      } else {
        // Keep all line breaks except the header line break.
        state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines);
      }

      didReadContent = true;
      detectedIndent = true;
      emptyLines = 0;
      captureStart = state.position;

      while (!is_EOL(ch) && (ch !== 0)) {
        ch = state.input.charCodeAt(++state.position);
      }

      captureSegment(state, captureStart, state.position, false);
    }

    return true;
  }

  function readBlockSequence(state, nodeIndent) {
    var _line,
        _tag      = state.tag,
        _anchor   = state.anchor,
        _result   = [],
        following,
        detected  = false,
        ch;

    // there is a leading tab before this token, so it can't be a block sequence/mapping;
    // it can still be flow sequence/mapping or a scalar
    if (state.firstTabInLine !== -1) return false;

    if (state.anchor !== null) {
      state.anchorMap[state.anchor] = _result;
    }

    ch = state.input.charCodeAt(state.position);

    while (ch !== 0) {
      if (state.firstTabInLine !== -1) {
        state.position = state.firstTabInLine;
        throwError(state, 'tab characters must not be used in indentation');
      }

      if (ch !== 0x2D/* - */) {
        break;
      }

      following = state.input.charCodeAt(state.position + 1);

      if (!is_WS_OR_EOL(following)) {
        break;
      }

      detected = true;
      state.position++;

      if (skipSeparationSpace(state, true, -1)) {
        if (state.lineIndent <= nodeIndent) {
          _result.push(null);
          ch = state.input.charCodeAt(state.position);
          continue;
        }
      }

      _line = state.line;
      composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);
      _result.push(state.result);
      skipSeparationSpace(state, true, -1);

      ch = state.input.charCodeAt(state.position);

      if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {
        throwError(state, 'bad indentation of a sequence entry');
      } else if (state.lineIndent < nodeIndent) {
        break;
      }
    }

    if (detected) {
      state.tag = _tag;
      state.anchor = _anchor;
      state.kind = 'sequence';
      state.result = _result;
      return true;
    }
    return false;
  }

  function readBlockMapping(state, nodeIndent, flowIndent) {
    var following,
        allowCompact,
        _line,
        _keyLine,
        _keyLineStart,
        _keyPos,
        _tag          = state.tag,
        _anchor       = state.anchor,
        _result       = {},
        overridableKeys = Object.create(null),
        keyTag        = null,
        keyNode       = null,
        valueNode     = null,
        atExplicitKey = false,
        detected      = false,
        ch;

    // there is a leading tab before this token, so it can't be a block sequence/mapping;
    // it can still be flow sequence/mapping or a scalar
    if (state.firstTabInLine !== -1) return false;

    if (state.anchor !== null) {
      state.anchorMap[state.anchor] = _result;
    }

    ch = state.input.charCodeAt(state.position);

    while (ch !== 0) {
      if (!atExplicitKey && state.firstTabInLine !== -1) {
        state.position = state.firstTabInLine;
        throwError(state, 'tab characters must not be used in indentation');
      }

      following = state.input.charCodeAt(state.position + 1);
      _line = state.line; // Save the current line.

      //
      // Explicit notation case. There are two separate blocks:
      // first for the key (denoted by "?") and second for the value (denoted by ":")
      //
      if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {

        if (ch === 0x3F/* ? */) {
          if (atExplicitKey) {
            storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
            keyTag = keyNode = valueNode = null;
          }

          detected = true;
          atExplicitKey = true;
          allowCompact = true;

        } else if (atExplicitKey) {
          // i.e. 0x3A/* : */ === character after the explicit key.
          atExplicitKey = false;
          allowCompact = true;

        } else {
          throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');
        }

        state.position += 1;
        ch = following;

      //
      // Implicit notation case. Flow-style node as the key first, then ":", and the value.
      //
      } else {
        _keyLine = state.line;
        _keyLineStart = state.lineStart;
        _keyPos = state.position;

        if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {
          // Neither implicit nor explicit notation.
          // Reading is done. Go to the epilogue.
          break;
        }

        if (state.line === _line) {
          ch = state.input.charCodeAt(state.position);

          while (is_WHITE_SPACE(ch)) {
            ch = state.input.charCodeAt(++state.position);
          }

          if (ch === 0x3A/* : */) {
            ch = state.input.charCodeAt(++state.position);

            if (!is_WS_OR_EOL(ch)) {
              throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');
            }

            if (atExplicitKey) {
              storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
              keyTag = keyNode = valueNode = null;
            }

            detected = true;
            atExplicitKey = false;
            allowCompact = false;
            keyTag = state.tag;
            keyNode = state.result;

          } else if (detected) {
            throwError(state, 'can not read an implicit mapping pair; a colon is missed');

          } else {
            state.tag = _tag;
            state.anchor = _anchor;
            return true; // Keep the result of `composeNode`.
          }

        } else if (detected) {
          throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');

        } else {
          state.tag = _tag;
          state.anchor = _anchor;
          return true; // Keep the result of `composeNode`.
        }
      }

      //
      // Common reading code for both explicit and implicit notations.
      //
      if (state.line === _line || state.lineIndent > nodeIndent) {
        if (atExplicitKey) {
          _keyLine = state.line;
          _keyLineStart = state.lineStart;
          _keyPos = state.position;
        }

        if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {
          if (atExplicitKey) {
            keyNode = state.result;
          } else {
            valueNode = state.result;
          }
        }

        if (!atExplicitKey) {
          storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);
          keyTag = keyNode = valueNode = null;
        }

        skipSeparationSpace(state, true, -1);
        ch = state.input.charCodeAt(state.position);
      }

      if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {
        throwError(state, 'bad indentation of a mapping entry');
      } else if (state.lineIndent < nodeIndent) {
        break;
      }
    }

    //
    // Epilogue.
    //

    // Special case: last mapping's node contains only the key in explicit notation.
    if (atExplicitKey) {
      storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
    }

    // Expose the resulting mapping.
    if (detected) {
      state.tag = _tag;
      state.anchor = _anchor;
      state.kind = 'mapping';
      state.result = _result;
    }

    return detected;
  }

  function readTagProperty(state) {
    var _position,
        isVerbatim = false,
        isNamed    = false,
        tagHandle,
        tagName,
        ch;

    ch = state.input.charCodeAt(state.position);

    if (ch !== 0x21/* ! */) return false;

    if (state.tag !== null) {
      throwError(state, 'duplication of a tag property');
    }

    ch = state.input.charCodeAt(++state.position);

    if (ch === 0x3C/* < */) {
      isVerbatim = true;
      ch = state.input.charCodeAt(++state.position);

    } else if (ch === 0x21/* ! */) {
      isNamed = true;
      tagHandle = '!!';
      ch = state.input.charCodeAt(++state.position);

    } else {
      tagHandle = '!';
    }

    _position = state.position;

    if (isVerbatim) {
      do { ch = state.input.charCodeAt(++state.position); }
      while (ch !== 0 && ch !== 0x3E/* > */);

      if (state.position < state.length) {
        tagName = state.input.slice(_position, state.position);
        ch = state.input.charCodeAt(++state.position);
      } else {
        throwError(state, 'unexpected end of the stream within a verbatim tag');
      }
    } else {
      while (ch !== 0 && !is_WS_OR_EOL(ch)) {

        if (ch === 0x21/* ! */) {
          if (!isNamed) {
            tagHandle = state.input.slice(_position - 1, state.position + 1);

            if (!PATTERN_TAG_HANDLE.test(tagHandle)) {
              throwError(state, 'named tag handle cannot contain such characters');
            }

            isNamed = true;
            _position = state.position + 1;
          } else {
            throwError(state, 'tag suffix cannot contain exclamation marks');
          }
        }

        ch = state.input.charCodeAt(++state.position);
      }

      tagName = state.input.slice(_position, state.position);

      if (PATTERN_FLOW_INDICATORS.test(tagName)) {
        throwError(state, 'tag suffix cannot contain flow indicator characters');
      }
    }

    if (tagName && !PATTERN_TAG_URI.test(tagName)) {
      throwError(state, 'tag name cannot contain such characters: ' + tagName);
    }

    try {
      tagName = decodeURIComponent(tagName);
    } catch (err) {
      throwError(state, 'tag name is malformed: ' + tagName);
    }

    if (isVerbatim) {
      state.tag = tagName;

    } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {
      state.tag = state.tagMap[tagHandle] + tagName;

    } else if (tagHandle === '!') {
      state.tag = '!' + tagName;

    } else if (tagHandle === '!!') {
      state.tag = 'tag:yaml.org,2002:' + tagName;

    } else {
      throwError(state, 'undeclared tag handle "' + tagHandle + '"');
    }

    return true;
  }

  function readAnchorProperty(state) {
    var _position,
        ch;

    ch = state.input.charCodeAt(state.position);

    if (ch !== 0x26/* & */) return false;

    if (state.anchor !== null) {
      throwError(state, 'duplication of an anchor property');
    }

    ch = state.input.charCodeAt(++state.position);
    _position = state.position;

    while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
      ch = state.input.charCodeAt(++state.position);
    }

    if (state.position === _position) {
      throwError(state, 'name of an anchor node must contain at least one character');
    }

    state.anchor = state.input.slice(_position, state.position);
    return true;
  }

  function readAlias(state) {
    var _position, alias,
        ch;

    ch = state.input.charCodeAt(state.position);

    if (ch !== 0x2A/* * */) return false;

    ch = state.input.charCodeAt(++state.position);
    _position = state.position;

    while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
      ch = state.input.charCodeAt(++state.position);
    }

    if (state.position === _position) {
      throwError(state, 'name of an alias node must contain at least one character');
    }

    alias = state.input.slice(_position, state.position);

    if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {
      throwError(state, 'unidentified alias "' + alias + '"');
    }

    state.result = state.anchorMap[alias];
    skipSeparationSpace(state, true, -1);
    return true;
  }

  function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {
    var allowBlockStyles,
        allowBlockScalars,
        allowBlockCollections,
        indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this<parent
        atNewLine  = false,
        hasContent = false,
        typeIndex,
        typeQuantity,
        typeList,
        type,
        flowIndent,
        blockIndent;

    if (state.listener !== null) {
      state.listener('open', state);
    }

    state.tag    = null;
    state.anchor = null;
    state.kind   = null;
    state.result = null;

    allowBlockStyles = allowBlockScalars = allowBlockCollections =
      CONTEXT_BLOCK_OUT === nodeContext ||
      CONTEXT_BLOCK_IN  === nodeContext;

    if (allowToSeek) {
      if (skipSeparationSpace(state, true, -1)) {
        atNewLine = true;

        if (state.lineIndent > parentIndent) {
          indentStatus = 1;
        } else if (state.lineIndent === parentIndent) {
          indentStatus = 0;
        } else if (state.lineIndent < parentIndent) {
          indentStatus = -1;
        }
      }
    }

    if (indentStatus === 1) {
      while (readTagProperty(state) || readAnchorProperty(state)) {
        if (skipSeparationSpace(state, true, -1)) {
          atNewLine = true;
          allowBlockCollections = allowBlockStyles;

          if (state.lineIndent > parentIndent) {
            indentStatus = 1;
          } else if (state.lineIndent === parentIndent) {
            indentStatus = 0;
          } else if (state.lineIndent < parentIndent) {
            indentStatus = -1;
          }
        } else {
          allowBlockCollections = false;
        }
      }
    }

    if (allowBlockCollections) {
      allowBlockCollections = atNewLine || allowCompact;
    }

    if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {
      if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {
        flowIndent = parentIndent;
      } else {
        flowIndent = parentIndent + 1;
      }

      blockIndent = state.position - state.lineStart;

      if (indentStatus === 1) {
        if (allowBlockCollections &&
            (readBlockSequence(state, blockIndent) ||
             readBlockMapping(state, blockIndent, flowIndent)) ||
            readFlowCollection(state, flowIndent)) {
          hasContent = true;
        } else {
          if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||
              readSingleQuotedScalar(state, flowIndent) ||
              readDoubleQuotedScalar(state, flowIndent)) {
            hasContent = true;

          } else if (readAlias(state)) {
            hasContent = true;

            if (state.tag !== null || state.anchor !== null) {
              throwError(state, 'alias node should not have any properties');
            }

          } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {
            hasContent = true;

            if (state.tag === null) {
              state.tag = '?';
            }
          }

          if (state.anchor !== null) {
            state.anchorMap[state.anchor] = state.result;
          }
        }
      } else if (indentStatus === 0) {
        // Special case: block sequences are allowed to have same indentation level as the parent.
        // http://www.yaml.org/spec/1.2/spec.html#id2799784
        hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);
      }
    }

    if (state.tag === null) {
      if (state.anchor !== null) {
        state.anchorMap[state.anchor] = state.result;
      }

    } else if (state.tag === '?') {
      // Implicit resolving is not allowed for non-scalar types, and '?'
      // non-specific tag is only automatically assigned to plain scalars.
      //
      // We only need to check kind conformity in case user explicitly assigns '?'
      // tag, for example like this: "!<?> [0]"
      //
      if (state.result !== null && state.kind !== 'scalar') {
        throwError(state, 'unacceptable node kind for !<?> tag; it should be "scalar", not "' + state.kind + '"');
      }

      for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {
        type = state.implicitTypes[typeIndex];

        if (type.resolve(state.result)) { // `state.result` updated in resolver if matched
          state.result = type.construct(state.result);
          state.tag = type.tag;
          if (state.anchor !== null) {
            state.anchorMap[state.anchor] = state.result;
          }
          break;
        }
      }
    } else if (state.tag !== '!') {
      if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {
        type = state.typeMap[state.kind || 'fallback'][state.tag];
      } else {
        // looking for multi type
        type = null;
        typeList = state.typeMap.multi[state.kind || 'fallback'];

        for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {
          if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {
            type = typeList[typeIndex];
            break;
          }
        }
      }

      if (!type) {
        throwError(state, 'unknown tag !<' + state.tag + '>');
      }

      if (state.result !== null && type.kind !== state.kind) {
        throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"');
      }

      if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched
        throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');
      } else {
        state.result = type.construct(state.result, state.tag);
        if (state.anchor !== null) {
          state.anchorMap[state.anchor] = state.result;
        }
      }
    }

    if (state.listener !== null) {
      state.listener('close', state);
    }
    return state.tag !== null ||  state.anchor !== null || hasContent;
  }

  function readDocument(state) {
    var documentStart = state.position,
        _position,
        directiveName,
        directiveArgs,
        hasDirectives = false,
        ch;

    state.version = null;
    state.checkLineBreaks = state.legacy;
    state.tagMap = Object.create(null);
    state.anchorMap = Object.create(null);

    while ((ch = state.input.charCodeAt(state.position)) !== 0) {
      skipSeparationSpace(state, true, -1);

      ch = state.input.charCodeAt(state.position);

      if (state.lineIndent > 0 || ch !== 0x25/* % */) {
        break;
      }

      hasDirectives = true;
      ch = state.input.charCodeAt(++state.position);
      _position = state.position;

      while (ch !== 0 && !is_WS_OR_EOL(ch)) {
        ch = state.input.charCodeAt(++state.position);
      }

      directiveName = state.input.slice(_position, state.position);
      directiveArgs = [];

      if (directiveName.length < 1) {
        throwError(state, 'directive name must not be less than one character in length');
      }

      while (ch !== 0) {
        while (is_WHITE_SPACE(ch)) {
          ch = state.input.charCodeAt(++state.position);
        }

        if (ch === 0x23/* # */) {
          do { ch = state.input.charCodeAt(++state.position); }
          while (ch !== 0 && !is_EOL(ch));
          break;
        }

        if (is_EOL(ch)) break;

        _position = state.position;

        while (ch !== 0 && !is_WS_OR_EOL(ch)) {
          ch = state.input.charCodeAt(++state.position);
        }

        directiveArgs.push(state.input.slice(_position, state.position));
      }

      if (ch !== 0) readLineBreak(state);

      if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {
        directiveHandlers[directiveName](state, directiveName, directiveArgs);
      } else {
        throwWarning(state, 'unknown document directive "' + directiveName + '"');
      }
    }

    skipSeparationSpace(state, true, -1);

    if (state.lineIndent === 0 &&
        state.input.charCodeAt(state.position)     === 0x2D/* - */ &&
        state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&
        state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {
      state.position += 3;
      skipSeparationSpace(state, true, -1);

    } else if (hasDirectives) {
      throwError(state, 'directives end mark is expected');
    }

    composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);
    skipSeparationSpace(state, true, -1);

    if (state.checkLineBreaks &&
        PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {
      throwWarning(state, 'non-ASCII line breaks are interpreted as content');
    }

    state.documents.push(state.result);

    if (state.position === state.lineStart && testDocumentSeparator(state)) {

      if (state.input.charCodeAt(state.position) === 0x2E/* . */) {
        state.position += 3;
        skipSeparationSpace(state, true, -1);
      }
      return;
    }

    if (state.position < (state.length - 1)) {
      throwError(state, 'end of the stream or a document separator is expected');
    } else {
      return;
    }
  }


  function loadDocuments(input, options) {
    input = String(input);
    options = options || {};

    if (input.length !== 0) {

      // Add tailing `\n` if not exists
      if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&
          input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {
        input += '\n';
      }

      // Strip BOM
      if (input.charCodeAt(0) === 0xFEFF) {
        input = input.slice(1);
      }
    }

    var state = new State$1(input, options);

    var nullpos = input.indexOf('\0');

    if (nullpos !== -1) {
      state.position = nullpos;
      throwError(state, 'null byte is not allowed in input');
    }

    // Use 0 as string terminator. That significantly simplifies bounds check.
    state.input += '\0';

    while (state.input.charCodeAt(state.position) === 0x20/* Space */) {
      state.lineIndent += 1;
      state.position += 1;
    }

    while (state.position < (state.length - 1)) {
      readDocument(state);
    }

    return state.documents;
  }


  function loadAll$1(input, iterator, options) {
    if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {
      options = iterator;
      iterator = null;
    }

    var documents = loadDocuments(input, options);

    if (typeof iterator !== 'function') {
      return documents;
    }

    for (var index = 0, length = documents.length; index < length; index += 1) {
      iterator(documents[index]);
    }
  }


  function load$1(input, options) {
    var documents = loadDocuments(input, options);

    if (documents.length === 0) {
      /*eslint-disable no-undefined*/
      return undefined;
    } else if (documents.length === 1) {
      return documents[0];
    }
    throw new exception('expected a single document in the stream, but found more');
  }


  var loadAll_1 = loadAll$1;
  var load_1    = load$1;

  var loader = {
  	loadAll: loadAll_1,
  	load: load_1
  };

  /*eslint-disable no-use-before-define*/





  var _toString       = Object.prototype.toString;
  var _hasOwnProperty = Object.prototype.hasOwnProperty;

  var CHAR_BOM                  = 0xFEFF;
  var CHAR_TAB                  = 0x09; /* Tab */
  var CHAR_LINE_FEED            = 0x0A; /* LF */
  var CHAR_CARRIAGE_RETURN      = 0x0D; /* CR */
  var CHAR_SPACE                = 0x20; /* Space */
  var CHAR_EXCLAMATION          = 0x21; /* ! */
  var CHAR_DOUBLE_QUOTE         = 0x22; /* " */
  var CHAR_SHARP                = 0x23; /* # */
  var CHAR_PERCENT              = 0x25; /* % */
  var CHAR_AMPERSAND            = 0x26; /* & */
  var CHAR_SINGLE_QUOTE         = 0x27; /* ' */
  var CHAR_ASTERISK             = 0x2A; /* * */
  var CHAR_COMMA                = 0x2C; /* , */
  var CHAR_MINUS                = 0x2D; /* - */
  var CHAR_COLON                = 0x3A; /* : */
  var CHAR_EQUALS               = 0x3D; /* = */
  var CHAR_GREATER_THAN         = 0x3E; /* > */
  var CHAR_QUESTION             = 0x3F; /* ? */
  var CHAR_COMMERCIAL_AT        = 0x40; /* @ */
  var CHAR_LEFT_SQUARE_BRACKET  = 0x5B; /* [ */
  var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */
  var CHAR_GRAVE_ACCENT         = 0x60; /* ` */
  var CHAR_LEFT_CURLY_BRACKET   = 0x7B; /* { */
  var CHAR_VERTICAL_LINE        = 0x7C; /* | */
  var CHAR_RIGHT_CURLY_BRACKET  = 0x7D; /* } */

  var ESCAPE_SEQUENCES = {};

  ESCAPE_SEQUENCES[0x00]   = '\\0';
  ESCAPE_SEQUENCES[0x07]   = '\\a';
  ESCAPE_SEQUENCES[0x08]   = '\\b';
  ESCAPE_SEQUENCES[0x09]   = '\\t';
  ESCAPE_SEQUENCES[0x0A]   = '\\n';
  ESCAPE_SEQUENCES[0x0B]   = '\\v';
  ESCAPE_SEQUENCES[0x0C]   = '\\f';
  ESCAPE_SEQUENCES[0x0D]   = '\\r';
  ESCAPE_SEQUENCES[0x1B]   = '\\e';
  ESCAPE_SEQUENCES[0x22]   = '\\"';
  ESCAPE_SEQUENCES[0x5C]   = '\\\\';
  ESCAPE_SEQUENCES[0x85]   = '\\N';
  ESCAPE_SEQUENCES[0xA0]   = '\\_';
  ESCAPE_SEQUENCES[0x2028] = '\\L';
  ESCAPE_SEQUENCES[0x2029] = '\\P';

  var DEPRECATED_BOOLEANS_SYNTAX = [
    'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',
    'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'
  ];

  var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;

  function compileStyleMap(schema, map) {
    var result, keys, index, length, tag, style, type;

    if (map === null) return {};

    result = {};
    keys = Object.keys(map);

    for (index = 0, length = keys.length; index < length; index += 1) {
      tag = keys[index];
      style = String(map[tag]);

      if (tag.slice(0, 2) === '!!') {
        tag = 'tag:yaml.org,2002:' + tag.slice(2);
      }
      type = schema.compiledTypeMap['fallback'][tag];

      if (type && _hasOwnProperty.call(type.styleAliases, style)) {
        style = type.styleAliases[style];
      }

      result[tag] = style;
    }

    return result;
  }

  function encodeHex(character) {
    var string, handle, length;

    string = character.toString(16).toUpperCase();

    if (character <= 0xFF) {
      handle = 'x';
      length = 2;
    } else if (character <= 0xFFFF) {
      handle = 'u';
      length = 4;
    } else if (character <= 0xFFFFFFFF) {
      handle = 'U';
      length = 8;
    } else {
      throw new exception('code point within a string may not be greater than 0xFFFFFFFF');
    }

    return '\\' + handle + common.repeat('0', length - string.length) + string;
  }


  var QUOTING_TYPE_SINGLE = 1,
      QUOTING_TYPE_DOUBLE = 2;

  function State(options) {
    this.schema        = options['schema'] || _default;
    this.indent        = Math.max(1, (options['indent'] || 2));
    this.noArrayIndent = options['noArrayIndent'] || false;
    this.skipInvalid   = options['skipInvalid'] || false;
    this.flowLevel     = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);
    this.styleMap      = compileStyleMap(this.schema, options['styles'] || null);
    this.sortKeys      = options['sortKeys'] || false;
    this.lineWidth     = options['lineWidth'] || 80;
    this.noRefs        = options['noRefs'] || false;
    this.noCompatMode  = options['noCompatMode'] || false;
    this.condenseFlow  = options['condenseFlow'] || false;
    this.quotingType   = options['quotingType'] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;
    this.forceQuotes   = options['forceQuotes'] || false;
    this.replacer      = typeof options['replacer'] === 'function' ? options['replacer'] : null;

    this.implicitTypes = this.schema.compiledImplicit;
    this.explicitTypes = this.schema.compiledExplicit;

    this.tag = null;
    this.result = '';

    this.duplicates = [];
    this.usedDuplicates = null;
  }

  // Indents every line in a string. Empty lines (\n only) are not indented.
  function indentString(string, spaces) {
    var ind = common.repeat(' ', spaces),
        position = 0,
        next = -1,
        result = '',
        line,
        length = string.length;

    while (position < length) {
      next = string.indexOf('\n', position);
      if (next === -1) {
        line = string.slice(position);
        position = length;
      } else {
        line = string.slice(position, next + 1);
        position = next + 1;
      }

      if (line.length && line !== '\n') result += ind;

      result += line;
    }

    return result;
  }

  function generateNextLine(state, level) {
    return '\n' + common.repeat(' ', state.indent * level);
  }

  function testImplicitResolving(state, str) {
    var index, length, type;

    for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {
      type = state.implicitTypes[index];

      if (type.resolve(str)) {
        return true;
      }
    }

    return false;
  }

  // [33] s-white ::= s-space | s-tab
  function isWhitespace(c) {
    return c === CHAR_SPACE || c === CHAR_TAB;
  }

  // Returns true if the character can be printed without escaping.
  // From YAML 1.2: "any allowed characters known to be non-printable
  // should also be escaped. [However,] This isn’t mandatory"
  // Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029.
  function isPrintable(c) {
    return  (0x00020 <= c && c <= 0x00007E)
        || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)
        || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)
        ||  (0x10000 <= c && c <= 0x10FFFF);
  }

  // [34] ns-char ::= nb-char - s-white
  // [27] nb-char ::= c-printable - b-char - c-byte-order-mark
  // [26] b-char  ::= b-line-feed | b-carriage-return
  // Including s-white (for some reason, examples doesn't match specs in this aspect)
  // ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark
  function isNsCharOrWhitespace(c) {
    return isPrintable(c)
      && c !== CHAR_BOM
      // - b-char
      && c !== CHAR_CARRIAGE_RETURN
      && c !== CHAR_LINE_FEED;
  }

  // [127]  ns-plain-safe(c) ::= c = flow-out  ⇒ ns-plain-safe-out
  //                             c = flow-in   ⇒ ns-plain-safe-in
  //                             c = block-key ⇒ ns-plain-safe-out
  //                             c = flow-key  ⇒ ns-plain-safe-in
  // [128] ns-plain-safe-out ::= ns-char
  // [129]  ns-plain-safe-in ::= ns-char - c-flow-indicator
  // [130]  ns-plain-char(c) ::=  ( ns-plain-safe(c) - “:” - “#” )
  //                            | ( /* An ns-char preceding */ “#” )
  //                            | ( “:” /* Followed by an ns-plain-safe(c) */ )
  function isPlainSafe(c, prev, inblock) {
    var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);
    var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);
    return (
      // ns-plain-safe
      inblock ? // c = flow-in
        cIsNsCharOrWhitespace
        : cIsNsCharOrWhitespace
          // - c-flow-indicator
          && c !== CHAR_COMMA
          && c !== CHAR_LEFT_SQUARE_BRACKET
          && c !== CHAR_RIGHT_SQUARE_BRACKET
          && c !== CHAR_LEFT_CURLY_BRACKET
          && c !== CHAR_RIGHT_CURLY_BRACKET
    )
      // ns-plain-char
      && c !== CHAR_SHARP // false on '#'
      && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '
      || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'
      || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'
  }

  // Simplified test for values allowed as the first character in plain style.
  function isPlainSafeFirst(c) {
    // Uses a subset of ns-char - c-indicator
    // where ns-char = nb-char - s-white.
    // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part
    return isPrintable(c) && c !== CHAR_BOM
      && !isWhitespace(c) // - s-white
      // - (c-indicator ::=
      // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”
      && c !== CHAR_MINUS
      && c !== CHAR_QUESTION
      && c !== CHAR_COLON
      && c !== CHAR_COMMA
      && c !== CHAR_LEFT_SQUARE_BRACKET
      && c !== CHAR_RIGHT_SQUARE_BRACKET
      && c !== CHAR_LEFT_CURLY_BRACKET
      && c !== CHAR_RIGHT_CURLY_BRACKET
      // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"”
      && c !== CHAR_SHARP
      && c !== CHAR_AMPERSAND
      && c !== CHAR_ASTERISK
      && c !== CHAR_EXCLAMATION
      && c !== CHAR_VERTICAL_LINE
      && c !== CHAR_EQUALS
      && c !== CHAR_GREATER_THAN
      && c !== CHAR_SINGLE_QUOTE
      && c !== CHAR_DOUBLE_QUOTE
      // | “%” | “@” | “`”)
      && c !== CHAR_PERCENT
      && c !== CHAR_COMMERCIAL_AT
      && c !== CHAR_GRAVE_ACCENT;
  }

  // Simplified test for values allowed as the last character in plain style.
  function isPlainSafeLast(c) {
    // just not whitespace or colon, it will be checked to be plain character later
    return !isWhitespace(c) && c !== CHAR_COLON;
  }

  // Same as 'string'.codePointAt(pos), but works in older browsers.
  function codePointAt(string, pos) {
    var first = string.charCodeAt(pos), second;
    if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {
      second = string.charCodeAt(pos + 1);
      if (second >= 0xDC00 && second <= 0xDFFF) {
        // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
        return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
      }
    }
    return first;
  }

  // Determines whether block indentation indicator is required.
  function needIndentIndicator(string) {
    var leadingSpaceRe = /^\n* /;
    return leadingSpaceRe.test(string);
  }

  var STYLE_PLAIN   = 1,
      STYLE_SINGLE  = 2,
      STYLE_LITERAL = 3,
      STYLE_FOLDED  = 4,
      STYLE_DOUBLE  = 5;

  // Determines which scalar styles are possible and returns the preferred style.
  // lineWidth = -1 => no limit.
  // Pre-conditions: str.length > 0.
  // Post-conditions:
  //    STYLE_PLAIN or STYLE_SINGLE => no \n are in the string.
  //    STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).
  //    STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).
  function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,
    testAmbiguousType, quotingType, forceQuotes, inblock) {

    var i;
    var char = 0;
    var prevChar = null;
    var hasLineBreak = false;
    var hasFoldableLine = false; // only checked if shouldTrackWidth
    var shouldTrackWidth = lineWidth !== -1;
    var previousLineBreak = -1; // count the first line correctly
    var plain = isPlainSafeFirst(codePointAt(string, 0))
            && isPlainSafeLast(codePointAt(string, string.length - 1));

    if (singleLineOnly || forceQuotes) {
      // Case: no block styles.
      // Check for disallowed characters to rule out plain and single.
      for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {
        char = codePointAt(string, i);
        if (!isPrintable(char)) {
          return STYLE_DOUBLE;
        }
        plain = plain && isPlainSafe(char, prevChar, inblock);
        prevChar = char;
      }
    } else {
      // Case: block styles permitted.
      for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {
        char = codePointAt(string, i);
        if (char === CHAR_LINE_FEED) {
          hasLineBreak = true;
          // Check if any line can be folded.
          if (shouldTrackWidth) {
            hasFoldableLine = hasFoldableLine ||
              // Foldable line = too long, and not more-indented.
              (i - previousLineBreak - 1 > lineWidth &&
               string[previousLineBreak + 1] !== ' ');
            previousLineBreak = i;
          }
        } else if (!isPrintable(char)) {
          return STYLE_DOUBLE;
        }
        plain = plain && isPlainSafe(char, prevChar, inblock);
        prevChar = char;
      }
      // in case the end is missing a \n
      hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&
        (i - previousLineBreak - 1 > lineWidth &&
         string[previousLineBreak + 1] !== ' '));
    }
    // Although every style can represent \n without escaping, prefer block styles
    // for multiline, since they're more readable and they don't add empty lines.
    // Also prefer folding a super-long line.
    if (!hasLineBreak && !hasFoldableLine) {
      // Strings interpretable as another type have to be quoted;
      // e.g. the string 'true' vs. the boolean true.
      if (plain && !forceQuotes && !testAmbiguousType(string)) {
        return STYLE_PLAIN;
      }
      return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;
    }
    // Edge case: block indentation indicator can only have one digit.
    if (indentPerLevel > 9 && needIndentIndicator(string)) {
      return STYLE_DOUBLE;
    }
    // At this point we know block styles are valid.
    // Prefer literal style unless we want to fold.
    if (!forceQuotes) {
      return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;
    }
    return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;
  }

  // Note: line breaking/folding is implemented for only the folded style.
  // NB. We drop the last trailing newline (if any) of a returned block scalar
  //  since the dumper adds its own newline. This always works:
  //    • No ending newline => unaffected; already using strip "-" chomping.
  //    • Ending newline    => removed then restored.
  //  Importantly, this keeps the "+" chomp indicator from gaining an extra line.
  function writeScalar(state, string, level, iskey, inblock) {
    state.dump = (function () {
      if (string.length === 0) {
        return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''";
      }
      if (!state.noCompatMode) {
        if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {
          return state.quotingType === QUOTING_TYPE_DOUBLE ? ('"' + string + '"') : ("'" + string + "'");
        }
      }

      var indent = state.indent * Math.max(1, level); // no 0-indent scalars
      // As indentation gets deeper, let the width decrease monotonically
      // to the lower bound min(state.lineWidth, 40).
      // Note that this implies
      //  state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.
      //  state.lineWidth > 40 + state.indent: width decreases until the lower bound.
      // This behaves better than a constant minimum width which disallows narrower options,
      // or an indent threshold which causes the width to suddenly increase.
      var lineWidth = state.lineWidth === -1
        ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);

      // Without knowing if keys are implicit/explicit, assume implicit for safety.
      var singleLineOnly = iskey
        // No block styles in flow mode.
        || (state.flowLevel > -1 && level >= state.flowLevel);
      function testAmbiguity(string) {
        return testImplicitResolving(state, string);
      }

      switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,
        testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {

        case STYLE_PLAIN:
          return string;
        case STYLE_SINGLE:
          return "'" + string.replace(/'/g, "''") + "'";
        case STYLE_LITERAL:
          return '|' + blockHeader(string, state.indent)
            + dropEndingNewline(indentString(string, indent));
        case STYLE_FOLDED:
          return '>' + blockHeader(string, state.indent)
            + dropEndingNewline(indentString(foldString(string, lineWidth), indent));
        case STYLE_DOUBLE:
          return '"' + escapeString(string) + '"';
        default:
          throw new exception('impossible error: invalid scalar style');
      }
    }());
  }

  // Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.
  function blockHeader(string, indentPerLevel) {
    var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';

    // note the special case: the string '\n' counts as a "trailing" empty line.
    var clip =          string[string.length - 1] === '\n';
    var keep = clip && (string[string.length - 2] === '\n' || string === '\n');
    var chomp = keep ? '+' : (clip ? '' : '-');

    return indentIndicator + chomp + '\n';
  }

  // (See the note for writeScalar.)
  function dropEndingNewline(string) {
    return string[string.length - 1] === '\n' ? string.slice(0, -1) : string;
  }

  // Note: a long line without a suitable break point will exceed the width limit.
  // Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.
  function foldString(string, width) {
    // In folded style, $k$ consecutive newlines output as $k+1$ newlines—
    // unless they're before or after a more-indented line, or at the very
    // beginning or end, in which case $k$ maps to $k$.
    // Therefore, parse each chunk as newline(s) followed by a content line.
    var lineRe = /(\n+)([^\n]*)/g;

    // first line (possibly an empty line)
    var result = (function () {
      var nextLF = string.indexOf('\n');
      nextLF = nextLF !== -1 ? nextLF : string.length;
      lineRe.lastIndex = nextLF;
      return foldLine(string.slice(0, nextLF), width);
    }());
    // If we haven't reached the first content line yet, don't add an extra \n.
    var prevMoreIndented = string[0] === '\n' || string[0] === ' ';
    var moreIndented;

    // rest of the lines
    var match;
    while ((match = lineRe.exec(string))) {
      var prefix = match[1], line = match[2];
      moreIndented = (line[0] === ' ');
      result += prefix
        + (!prevMoreIndented && !moreIndented && line !== ''
          ? '\n' : '')
        + foldLine(line, width);
      prevMoreIndented = moreIndented;
    }

    return result;
  }

  // Greedy line breaking.
  // Picks the longest line under the limit each time,
  // otherwise settles for the shortest line over the limit.
  // NB. More-indented lines *cannot* be folded, as that would add an extra \n.
  function foldLine(line, width) {
    if (line === '' || line[0] === ' ') return line;

    // Since a more-indented line adds a \n, breaks can't be followed by a space.
    var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.
    var match;
    // start is an inclusive index. end, curr, and next are exclusive.
    var start = 0, end, curr = 0, next = 0;
    var result = '';

    // Invariants: 0 <= start <= length-1.
    //   0 <= curr <= next <= max(0, length-2). curr - start <= width.
    // Inside the loop:
    //   A match implies length >= 2, so curr and next are <= length-2.
    while ((match = breakRe.exec(line))) {
      next = match.index;
      // maintain invariant: curr - start <= width
      if (next - start > width) {
        end = (curr > start) ? curr : next; // derive end <= length-2
        result += '\n' + line.slice(start, end);
        // skip the space that was output as \n
        start = end + 1;                    // derive start <= length-1
      }
      curr = next;
    }

    // By the invariants, start <= length-1, so there is something left over.
    // It is either the whole string or a part starting from non-whitespace.
    result += '\n';
    // Insert a break if the remainder is too long and there is a break available.
    if (line.length - start > width && curr > start) {
      result += line.slice(start, curr) + '\n' + line.slice(curr + 1);
    } else {
      result += line.slice(start);
    }

    return result.slice(1); // drop extra \n joiner
  }

  // Escapes a double-quoted string.
  function escapeString(string) {
    var result = '';
    var char = 0;
    var escapeSeq;

    for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {
      char = codePointAt(string, i);
      escapeSeq = ESCAPE_SEQUENCES[char];

      if (!escapeSeq && isPrintable(char)) {
        result += string[i];
        if (char >= 0x10000) result += string[i + 1];
      } else {
        result += escapeSeq || encodeHex(char);
      }
    }

    return result;
  }

  function writeFlowSequence(state, level, object) {
    var _result = '',
        _tag    = state.tag,
        index,
        length,
        value;

    for (index = 0, length = object.length; index < length; index += 1) {
      value = object[index];

      if (state.replacer) {
        value = state.replacer.call(object, String(index), value);
      }

      // Write only valid elements, put null instead of invalid elements.
      if (writeNode(state, level, value, false, false) ||
          (typeof value === 'undefined' &&
           writeNode(state, level, null, false, false))) {

        if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');
        _result += state.dump;
      }
    }

    state.tag = _tag;
    state.dump = '[' + _result + ']';
  }

  function writeBlockSequence(state, level, object, compact) {
    var _result = '',
        _tag    = state.tag,
        index,
        length,
        value;

    for (index = 0, length = object.length; index < length; index += 1) {
      value = object[index];

      if (state.replacer) {
        value = state.replacer.call(object, String(index), value);
      }

      // Write only valid elements, put null instead of invalid elements.
      if (writeNode(state, level + 1, value, true, true, false, true) ||
          (typeof value === 'undefined' &&
           writeNode(state, level + 1, null, true, true, false, true))) {

        if (!compact || _result !== '') {
          _result += generateNextLine(state, level);
        }

        if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
          _result += '-';
        } else {
          _result += '- ';
        }

        _result += state.dump;
      }
    }

    state.tag = _tag;
    state.dump = _result || '[]'; // Empty sequence if no valid values.
  }

  function writeFlowMapping(state, level, object) {
    var _result       = '',
        _tag          = state.tag,
        objectKeyList = Object.keys(object),
        index,
        length,
        objectKey,
        objectValue,
        pairBuffer;

    for (index = 0, length = objectKeyList.length; index < length; index += 1) {

      pairBuffer = '';
      if (_result !== '') pairBuffer += ', ';

      if (state.condenseFlow) pairBuffer += '"';

      objectKey = objectKeyList[index];
      objectValue = object[objectKey];

      if (state.replacer) {
        objectValue = state.replacer.call(object, objectKey, objectValue);
      }

      if (!writeNode(state, level, objectKey, false, false)) {
        continue; // Skip this pair because of invalid key;
      }

      if (state.dump.length > 1024) pairBuffer += '? ';

      pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' ');

      if (!writeNode(state, level, objectValue, false, false)) {
        continue; // Skip this pair because of invalid value.
      }

      pairBuffer += state.dump;

      // Both key and value are valid.
      _result += pairBuffer;
    }

    state.tag = _tag;
    state.dump = '{' + _result + '}';
  }

  function writeBlockMapping(state, level, object, compact) {
    var _result       = '',
        _tag          = state.tag,
        objectKeyList = Object.keys(object),
        index,
        length,
        objectKey,
        objectValue,
        explicitPair,
        pairBuffer;

    // Allow sorting keys so that the output file is deterministic
    if (state.sortKeys === true) {
      // Default sorting
      objectKeyList.sort();
    } else if (typeof state.sortKeys === 'function') {
      // Custom sort function
      objectKeyList.sort(state.sortKeys);
    } else if (state.sortKeys) {
      // Something is wrong
      throw new exception('sortKeys must be a boolean or a function');
    }

    for (index = 0, length = objectKeyList.length; index < length; index += 1) {
      pairBuffer = '';

      if (!compact || _result !== '') {
        pairBuffer += generateNextLine(state, level);
      }

      objectKey = objectKeyList[index];
      objectValue = object[objectKey];

      if (state.replacer) {
        objectValue = state.replacer.call(object, objectKey, objectValue);
      }

      if (!writeNode(state, level + 1, objectKey, true, true, true)) {
        continue; // Skip this pair because of invalid key.
      }

      explicitPair = (state.tag !== null && state.tag !== '?') ||
                     (state.dump && state.dump.length > 1024);

      if (explicitPair) {
        if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
          pairBuffer += '?';
        } else {
          pairBuffer += '? ';
        }
      }

      pairBuffer += state.dump;

      if (explicitPair) {
        pairBuffer += generateNextLine(state, level);
      }

      if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {
        continue; // Skip this pair because of invalid value.
      }

      if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
        pairBuffer += ':';
      } else {
        pairBuffer += ': ';
      }

      pairBuffer += state.dump;

      // Both key and value are valid.
      _result += pairBuffer;
    }

    state.tag = _tag;
    state.dump = _result || '{}'; // Empty mapping if no valid pairs.
  }

  function detectType(state, object, explicit) {
    var _result, typeList, index, length, type, style;

    typeList = explicit ? state.explicitTypes : state.implicitTypes;

    for (index = 0, length = typeList.length; index < length; index += 1) {
      type = typeList[index];

      if ((type.instanceOf  || type.predicate) &&
          (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&
          (!type.predicate  || type.predicate(object))) {

        if (explicit) {
          if (type.multi && type.representName) {
            state.tag = type.representName(object);
          } else {
            state.tag = type.tag;
          }
        } else {
          state.tag = '?';
        }

        if (type.represent) {
          style = state.styleMap[type.tag] || type.defaultStyle;

          if (_toString.call(type.represent) === '[object Function]') {
            _result = type.represent(object, style);
          } else if (_hasOwnProperty.call(type.represent, style)) {
            _result = type.represent[style](object, style);
          } else {
            throw new exception('!<' + type.tag + '> tag resolver accepts not "' + style + '" style');
          }

          state.dump = _result;
        }

        return true;
      }
    }

    return false;
  }

  // Serializes `object` and writes it to global `result`.
  // Returns true on success, or false on invalid object.
  //
  function writeNode(state, level, object, block, compact, iskey, isblockseq) {
    state.tag = null;
    state.dump = object;

    if (!detectType(state, object, false)) {
      detectType(state, object, true);
    }

    var type = _toString.call(state.dump);
    var inblock = block;
    var tagStr;

    if (block) {
      block = (state.flowLevel < 0 || state.flowLevel > level);
    }

    var objectOrArray = type === '[object Object]' || type === '[object Array]',
        duplicateIndex,
        duplicate;

    if (objectOrArray) {
      duplicateIndex = state.duplicates.indexOf(object);
      duplicate = duplicateIndex !== -1;
    }

    if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {
      compact = false;
    }

    if (duplicate && state.usedDuplicates[duplicateIndex]) {
      state.dump = '*ref_' + duplicateIndex;
    } else {
      if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {
        state.usedDuplicates[duplicateIndex] = true;
      }
      if (type === '[object Object]') {
        if (block && (Object.keys(state.dump).length !== 0)) {
          writeBlockMapping(state, level, state.dump, compact);
          if (duplicate) {
            state.dump = '&ref_' + duplicateIndex + state.dump;
          }
        } else {
          writeFlowMapping(state, level, state.dump);
          if (duplicate) {
            state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;
          }
        }
      } else if (type === '[object Array]') {
        if (block && (state.dump.length !== 0)) {
          if (state.noArrayIndent && !isblockseq && level > 0) {
            writeBlockSequence(state, level - 1, state.dump, compact);
          } else {
            writeBlockSequence(state, level, state.dump, compact);
          }
          if (duplicate) {
            state.dump = '&ref_' + duplicateIndex + state.dump;
          }
        } else {
          writeFlowSequence(state, level, state.dump);
          if (duplicate) {
            state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;
          }
        }
      } else if (type === '[object String]') {
        if (state.tag !== '?') {
          writeScalar(state, state.dump, level, iskey, inblock);
        }
      } else if (type === '[object Undefined]') {
        return false;
      } else {
        if (state.skipInvalid) return false;
        throw new exception('unacceptable kind of an object to dump ' + type);
      }

      if (state.tag !== null && state.tag !== '?') {
        // Need to encode all characters except those allowed by the spec:
        //
        // [35] ns-dec-digit    ::=  [#x30-#x39] /* 0-9 */
        // [36] ns-hex-digit    ::=  ns-dec-digit
        //                         | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */
        // [37] ns-ascii-letter ::=  [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */
        // [38] ns-word-char    ::=  ns-dec-digit | ns-ascii-letter | “-”
        // [39] ns-uri-char     ::=  “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”
        //                         | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”
        //                         | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”
        //
        // Also need to encode '!' because it has special meaning (end of tag prefix).
        //
        tagStr = encodeURI(
          state.tag[0] === '!' ? state.tag.slice(1) : state.tag
        ).replace(/!/g, '%21');

        if (state.tag[0] === '!') {
          tagStr = '!' + tagStr;
        } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {
          tagStr = '!!' + tagStr.slice(18);
        } else {
          tagStr = '!<' + tagStr + '>';
        }

        state.dump = tagStr + ' ' + state.dump;
      }
    }

    return true;
  }

  function getDuplicateReferences(object, state) {
    var objects = [],
        duplicatesIndexes = [],
        index,
        length;

    inspectNode(object, objects, duplicatesIndexes);

    for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {
      state.duplicates.push(objects[duplicatesIndexes[index]]);
    }
    state.usedDuplicates = new Array(length);
  }

  function inspectNode(object, objects, duplicatesIndexes) {
    var objectKeyList,
        index,
        length;

    if (object !== null && typeof object === 'object') {
      index = objects.indexOf(object);
      if (index !== -1) {
        if (duplicatesIndexes.indexOf(index) === -1) {
          duplicatesIndexes.push(index);
        }
      } else {
        objects.push(object);

        if (Array.isArray(object)) {
          for (index = 0, length = object.length; index < length; index += 1) {
            inspectNode(object[index], objects, duplicatesIndexes);
          }
        } else {
          objectKeyList = Object.keys(object);

          for (index = 0, length = objectKeyList.length; index < length; index += 1) {
            inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);
          }
        }
      }
    }
  }

  function dump$1(input, options) {
    options = options || {};

    var state = new State(options);

    if (!state.noRefs) getDuplicateReferences(input, state);

    var value = input;

    if (state.replacer) {
      value = state.replacer.call({ '': value }, '', value);
    }

    if (writeNode(state, 0, value, true, true)) return state.dump + '\n';

    return '';
  }

  var dump_1 = dump$1;

  var dumper = {
  	dump: dump_1
  };

  function renamed(from, to) {
    return function () {
      throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +
        'Use yaml.' + to + ' instead, which is now safe by default.');
    };
  }


  var Type                = type;
  var Schema              = schema;
  var FAILSAFE_SCHEMA     = failsafe;
  var JSON_SCHEMA         = json;
  var CORE_SCHEMA         = core;
  var DEFAULT_SCHEMA      = _default;
  var load                = loader.load;
  var loadAll             = loader.loadAll;
  var dump                = dumper.dump;
  var YAMLException       = exception;

  // Re-export all types in case user wants to create custom schema
  var types = {
    binary:    binary,
    float:     float,
    map:       map,
    null:      _null,
    pairs:     pairs,
    set:       set,
    timestamp: timestamp,
    bool:      bool,
    int:       int,
    merge:     merge,
    omap:      omap,
    seq:       seq,
    str:       str
  };

  // Removed functions from JS-YAML 3.0.x
  var safeLoad            = renamed('safeLoad', 'load');
  var safeLoadAll         = renamed('safeLoadAll', 'loadAll');
  var safeDump            = renamed('safeDump', 'dump');

  var jsYaml = {
  	Type: Type,
  	Schema: Schema,
  	FAILSAFE_SCHEMA: FAILSAFE_SCHEMA,
  	JSON_SCHEMA: JSON_SCHEMA,
  	CORE_SCHEMA: CORE_SCHEMA,
  	DEFAULT_SCHEMA: DEFAULT_SCHEMA,
  	load: load,
  	loadAll: loadAll,
  	dump: dump,
  	YAMLException: YAMLException,
  	types: types,
  	safeLoad: safeLoad,
  	safeLoadAll: safeLoadAll,
  	safeDump: safeDump
  };

  exports.CORE_SCHEMA = CORE_SCHEMA;
  exports.DEFAULT_SCHEMA = DEFAULT_SCHEMA;
  exports.FAILSAFE_SCHEMA = FAILSAFE_SCHEMA;
  exports.JSON_SCHEMA = JSON_SCHEMA;
  exports.Schema = Schema;
  exports.Type = Type;
  exports.YAMLException = YAMLException;
  exports.default = jsYaml;
  exports.dump = dump;
  exports.load = load;
  exports.loadAll = loadAll;
  exports.safeDump = safeDump;
  exports.safeLoad = safeLoad;
  exports.safeLoadAll = safeLoadAll;
  exports.types = types;

  Object.defineProperty(exports, '__esModule', { value: true });

})));
/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).jsyaml={})}(this,(function(e){"use strict";function t(e){return null==e}var n={isNothing:t,isObject:function(e){return"object"==typeof e&&null!==e},toArray:function(e){return Array.isArray(e)?e:t(e)?[]:[e]},repeat:function(e,t){var n,i="";for(n=0;n<t;n+=1)i+=e;return i},isNegativeZero:function(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e},extend:function(e,t){var n,i,r,o;if(t)for(n=0,i=(o=Object.keys(t)).length;n<i;n+=1)e[r=o[n]]=t[r];return e}};function i(e,t){var n="",i=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(n+='in "'+e.mark.name+'" '),n+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!t&&e.mark.snippet&&(n+="\n\n"+e.mark.snippet),i+" "+n):i}function r(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=i(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.prototype.toString=function(e){return this.name+": "+i(this,e)};var o=r;function a(e,t,n,i,r){var o="",a="",l=Math.floor(r/2)-1;return i-t>l&&(t=i-l+(o=" ... ").length),n-i>l&&(n=i+l-(a=" ...").length),{str:o+e.slice(t,n).replace(/\t/g,"→")+a,pos:i-t+o.length}}function l(e,t){return n.repeat(" ",t-e.length)+e}var c=function(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),"number"!=typeof t.indent&&(t.indent=1),"number"!=typeof t.linesBefore&&(t.linesBefore=3),"number"!=typeof t.linesAfter&&(t.linesAfter=2);for(var i,r=/\r?\n|\r|\0/g,o=[0],c=[],s=-1;i=r.exec(e.buffer);)c.push(i.index),o.push(i.index+i[0].length),e.position<=i.index&&s<0&&(s=o.length-2);s<0&&(s=o.length-1);var u,p,f="",d=Math.min(e.line+t.linesAfter,c.length).toString().length,h=t.maxLength-(t.indent+d+3);for(u=1;u<=t.linesBefore&&!(s-u<0);u++)p=a(e.buffer,o[s-u],c[s-u],e.position-(o[s]-o[s-u]),h),f=n.repeat(" ",t.indent)+l((e.line-u+1).toString(),d)+" | "+p.str+"\n"+f;for(p=a(e.buffer,o[s],c[s],e.position,h),f+=n.repeat(" ",t.indent)+l((e.line+1).toString(),d)+" | "+p.str+"\n",f+=n.repeat("-",t.indent+d+3+p.pos)+"^\n",u=1;u<=t.linesAfter&&!(s+u>=c.length);u++)p=a(e.buffer,o[s+u],c[s+u],e.position-(o[s]-o[s+u]),h),f+=n.repeat(" ",t.indent)+l((e.line+u+1).toString(),d)+" | "+p.str+"\n";return f.replace(/\n$/,"")},s=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],u=["scalar","sequence","mapping"];var p=function(e,t){if(t=t||{},Object.keys(t).forEach((function(t){if(-1===s.indexOf(t))throw new o('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=function(e){var t={};return null!==e&&Object.keys(e).forEach((function(n){e[n].forEach((function(e){t[String(e)]=n}))})),t}(t.styleAliases||null),-1===u.indexOf(this.kind))throw new o('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')};function f(e,t){var n=[];return e[t].forEach((function(e){var t=n.length;n.forEach((function(n,i){n.tag===e.tag&&n.kind===e.kind&&n.multi===e.multi&&(t=i)})),n[t]=e})),n}function d(e){return this.extend(e)}d.prototype.extend=function(e){var t=[],n=[];if(e instanceof p)n.push(e);else if(Array.isArray(e))n=n.concat(e);else{if(!e||!Array.isArray(e.implicit)&&!Array.isArray(e.explicit))throw new o("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");e.implicit&&(t=t.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit))}t.forEach((function(e){if(!(e instanceof p))throw new o("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(e.loadKind&&"scalar"!==e.loadKind)throw new o("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(e.multi)throw new o("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")})),n.forEach((function(e){if(!(e instanceof p))throw new o("Specified list of YAML types (or a single Type object) contains a non-Type object.")}));var i=Object.create(d.prototype);return i.implicit=(this.implicit||[]).concat(t),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=f(i,"implicit"),i.compiledExplicit=f(i,"explicit"),i.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function i(e){e.multi?(n.multi[e.kind].push(e),n.multi.fallback.push(e)):n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e<t;e+=1)arguments[e].forEach(i);return n}(i.compiledImplicit,i.compiledExplicit),i};var h=d,g=new p("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}}),m=new p("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}}),y=new p("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}}),b=new h({explicit:[g,m,y]});var A=new p("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});var v=new p("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"});function w(e){return 48<=e&&e<=55}function k(e){return 48<=e&&e<=57}var C=new p("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,i=e.length,r=0,o=!1;if(!i)return!1;if("-"!==(t=e[r])&&"+"!==t||(t=e[++r]),"0"===t){if(r+1===i)return!0;if("b"===(t=e[++r])){for(r++;r<i;r++)if("_"!==(t=e[r])){if("0"!==t&&"1"!==t)return!1;o=!0}return o&&"_"!==t}if("x"===t){for(r++;r<i;r++)if("_"!==(t=e[r])){if(!(48<=(n=e.charCodeAt(r))&&n<=57||65<=n&&n<=70||97<=n&&n<=102))return!1;o=!0}return o&&"_"!==t}if("o"===t){for(r++;r<i;r++)if("_"!==(t=e[r])){if(!w(e.charCodeAt(r)))return!1;o=!0}return o&&"_"!==t}}if("_"===t)return!1;for(;r<i;r++)if("_"!==(t=e[r])){if(!k(e.charCodeAt(r)))return!1;o=!0}return!(!o||"_"===t)},construct:function(e){var t,n=e,i=1;if(-1!==n.indexOf("_")&&(n=n.replace(/_/g,"")),"-"!==(t=n[0])&&"+"!==t||("-"===t&&(i=-1),t=(n=n.slice(1))[0]),"0"===n)return 0;if("0"===t){if("b"===n[1])return i*parseInt(n.slice(2),2);if("x"===n[1])return i*parseInt(n.slice(2),16);if("o"===n[1])return i*parseInt(n.slice(2),8)}return i*parseInt(n,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&e%1==0&&!n.isNegativeZero(e)},represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),x=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var I=/^[-+]?[0-9]+e/;var S=new p("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!x.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||n.isNegativeZero(e))},represent:function(e,t){var i;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(n.isNegativeZero(e))return"-0.0";return i=e.toString(10),I.test(i)?i.replace("e",".e"):i},defaultStyle:"lowercase"}),O=b.extend({implicit:[A,v,C,S]}),j=O,T=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),N=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");var F=new p("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==T.exec(e)||null!==N.exec(e))},construct:function(e){var t,n,i,r,o,a,l,c,s=0,u=null;if(null===(t=T.exec(e))&&(t=N.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],i=+t[2]-1,r=+t[3],!t[4])return new Date(Date.UTC(n,i,r));if(o=+t[4],a=+t[5],l=+t[6],t[7]){for(s=t[7].slice(0,3);s.length<3;)s+="0";s=+s}return t[9]&&(u=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(u=-u)),c=new Date(Date.UTC(n,i,r,o,a,l,s)),u&&c.setTime(c.getTime()-u),c},instanceOf:Date,represent:function(e){return e.toISOString()}});var E=new p("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}}),M="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var L=new p("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,i=0,r=e.length,o=M;for(n=0;n<r;n++)if(!((t=o.indexOf(e.charAt(n)))>64)){if(t<0)return!1;i+=6}return i%8==0},construct:function(e){var t,n,i=e.replace(/[\r\n=]/g,""),r=i.length,o=M,a=0,l=[];for(t=0;t<r;t++)t%4==0&&t&&(l.push(a>>16&255),l.push(a>>8&255),l.push(255&a)),a=a<<6|o.indexOf(i.charAt(t));return 0===(n=r%4*6)?(l.push(a>>16&255),l.push(a>>8&255),l.push(255&a)):18===n?(l.push(a>>10&255),l.push(a>>2&255)):12===n&&l.push(a>>4&255),new Uint8Array(l)},predicate:function(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)},represent:function(e){var t,n,i="",r=0,o=e.length,a=M;for(t=0;t<o;t++)t%3==0&&t&&(i+=a[r>>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]),r=(r<<8)+e[t];return 0===(n=o%3)?(i+=a[r>>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]):2===n?(i+=a[r>>10&63],i+=a[r>>4&63],i+=a[r<<2&63],i+=a[64]):1===n&&(i+=a[r>>2&63],i+=a[r<<4&63],i+=a[64],i+=a[64]),i}}),_=Object.prototype.hasOwnProperty,D=Object.prototype.toString;var U=new p("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,i,r,o,a=[],l=e;for(t=0,n=l.length;t<n;t+=1){if(i=l[t],o=!1,"[object Object]"!==D.call(i))return!1;for(r in i)if(_.call(i,r)){if(o)return!1;o=!0}if(!o)return!1;if(-1!==a.indexOf(r))return!1;a.push(r)}return!0},construct:function(e){return null!==e?e:[]}}),q=Object.prototype.toString;var Y=new p("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,i,r,o,a=e;for(o=new Array(a.length),t=0,n=a.length;t<n;t+=1){if(i=a[t],"[object Object]"!==q.call(i))return!1;if(1!==(r=Object.keys(i)).length)return!1;o[t]=[r[0],i[r[0]]]}return!0},construct:function(e){if(null===e)return[];var t,n,i,r,o,a=e;for(o=new Array(a.length),t=0,n=a.length;t<n;t+=1)i=a[t],r=Object.keys(i),o[t]=[r[0],i[r[0]]];return o}}),R=Object.prototype.hasOwnProperty;var B=new p("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(e){if(null===e)return!0;var t,n=e;for(t in n)if(R.call(n,t)&&null!==n[t])return!1;return!0},construct:function(e){return null!==e?e:{}}}),K=j.extend({implicit:[F,E],explicit:[L,U,Y,B]}),P=Object.prototype.hasOwnProperty,W=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,H=/[\x85\u2028\u2029]/,$=/[,\[\]\{\}]/,G=/^(?:!|!!|![a-z\-]+!)$/i,V=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Z(e){return Object.prototype.toString.call(e)}function J(e){return 10===e||13===e}function Q(e){return 9===e||32===e}function z(e){return 9===e||32===e||10===e||13===e}function X(e){return 44===e||91===e||93===e||123===e||125===e}function ee(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function te(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e||9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function ne(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var ie=new Array(256),re=new Array(256),oe=0;oe<256;oe++)ie[oe]=te(oe)?1:0,re[oe]=te(oe);function ae(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||K,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function le(e,t){var n={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return n.snippet=c(n),new o(t,n)}function ce(e,t){throw le(e,t)}function se(e,t){e.onWarning&&e.onWarning.call(null,le(e,t))}var ue={YAML:function(e,t,n){var i,r,o;null!==e.version&&ce(e,"duplication of %YAML directive"),1!==n.length&&ce(e,"YAML directive accepts exactly one argument"),null===(i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&ce(e,"ill-formed argument of the YAML directive"),r=parseInt(i[1],10),o=parseInt(i[2],10),1!==r&&ce(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&se(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var i,r;2!==n.length&&ce(e,"TAG directive accepts exactly two arguments"),i=n[0],r=n[1],G.test(i)||ce(e,"ill-formed tag handle (first argument) of the TAG directive"),P.call(e.tagMap,i)&&ce(e,'there is a previously declared suffix for "'+i+'" tag handle'),V.test(r)||ce(e,"ill-formed tag prefix (second argument) of the TAG directive");try{r=decodeURIComponent(r)}catch(t){ce(e,"tag prefix is malformed: "+r)}e.tagMap[i]=r}};function pe(e,t,n,i){var r,o,a,l;if(t<n){if(l=e.input.slice(t,n),i)for(r=0,o=l.length;r<o;r+=1)9===(a=l.charCodeAt(r))||32<=a&&a<=1114111||ce(e,"expected valid JSON character");else W.test(l)&&ce(e,"the stream contains non-printable characters");e.result+=l}}function fe(e,t,i,r){var o,a,l,c;for(n.isObject(i)||ce(e,"cannot merge mappings; the provided source object is unacceptable"),l=0,c=(o=Object.keys(i)).length;l<c;l+=1)a=o[l],P.call(t,a)||(t[a]=i[a],r[a]=!0)}function de(e,t,n,i,r,o,a,l,c){var s,u;if(Array.isArray(r))for(s=0,u=(r=Array.prototype.slice.call(r)).length;s<u;s+=1)Array.isArray(r[s])&&ce(e,"nested arrays are not supported inside keys"),"object"==typeof r&&"[object Object]"===Z(r[s])&&(r[s]="[object Object]");if("object"==typeof r&&"[object Object]"===Z(r)&&(r="[object Object]"),r=String(r),null===t&&(t={}),"tag:yaml.org,2002:merge"===i)if(Array.isArray(o))for(s=0,u=o.length;s<u;s+=1)fe(e,t,o[s],n);else fe(e,t,o,n);else e.json||P.call(n,r)||!P.call(t,r)||(e.line=a||e.line,e.lineStart=l||e.lineStart,e.position=c||e.position,ce(e,"duplicated mapping key")),"__proto__"===r?Object.defineProperty(t,r,{configurable:!0,enumerable:!0,writable:!0,value:o}):t[r]=o,delete n[r];return t}function he(e){var t;10===(t=e.input.charCodeAt(e.position))?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):ce(e,"a line break is expected"),e.line+=1,e.lineStart=e.position,e.firstTabInLine=-1}function ge(e,t,n){for(var i=0,r=e.input.charCodeAt(e.position);0!==r;){for(;Q(r);)9===r&&-1===e.firstTabInLine&&(e.firstTabInLine=e.position),r=e.input.charCodeAt(++e.position);if(t&&35===r)do{r=e.input.charCodeAt(++e.position)}while(10!==r&&13!==r&&0!==r);if(!J(r))break;for(he(e),r=e.input.charCodeAt(e.position),i++,e.lineIndent=0;32===r;)e.lineIndent++,r=e.input.charCodeAt(++e.position)}return-1!==n&&0!==i&&e.lineIndent<n&&se(e,"deficient indentation"),i}function me(e){var t,n=e.position;return!(45!==(t=e.input.charCodeAt(n))&&46!==t||t!==e.input.charCodeAt(n+1)||t!==e.input.charCodeAt(n+2)||(n+=3,0!==(t=e.input.charCodeAt(n))&&!z(t)))}function ye(e,t){1===t?e.result+=" ":t>1&&(e.result+=n.repeat("\n",t-1))}function be(e,t){var n,i,r=e.tag,o=e.anchor,a=[],l=!1;if(-1!==e.firstTabInLine)return!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),i=e.input.charCodeAt(e.position);0!==i&&(-1!==e.firstTabInLine&&(e.position=e.firstTabInLine,ce(e,"tab characters must not be used in indentation")),45===i)&&z(e.input.charCodeAt(e.position+1));)if(l=!0,e.position++,ge(e,!0,-1)&&e.lineIndent<=t)a.push(null),i=e.input.charCodeAt(e.position);else if(n=e.line,we(e,t,3,!1,!0),a.push(e.result),ge(e,!0,-1),i=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==i)ce(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break;return!!l&&(e.tag=r,e.anchor=o,e.kind="sequence",e.result=a,!0)}function Ae(e){var t,n,i,r,o=!1,a=!1;if(33!==(r=e.input.charCodeAt(e.position)))return!1;if(null!==e.tag&&ce(e,"duplication of a tag property"),60===(r=e.input.charCodeAt(++e.position))?(o=!0,r=e.input.charCodeAt(++e.position)):33===r?(a=!0,n="!!",r=e.input.charCodeAt(++e.position)):n="!",t=e.position,o){do{r=e.input.charCodeAt(++e.position)}while(0!==r&&62!==r);e.position<e.length?(i=e.input.slice(t,e.position),r=e.input.charCodeAt(++e.position)):ce(e,"unexpected end of the stream within a verbatim tag")}else{for(;0!==r&&!z(r);)33===r&&(a?ce(e,"tag suffix cannot contain exclamation marks"):(n=e.input.slice(t-1,e.position+1),G.test(n)||ce(e,"named tag handle cannot contain such characters"),a=!0,t=e.position+1)),r=e.input.charCodeAt(++e.position);i=e.input.slice(t,e.position),$.test(i)&&ce(e,"tag suffix cannot contain flow indicator characters")}i&&!V.test(i)&&ce(e,"tag name cannot contain such characters: "+i);try{i=decodeURIComponent(i)}catch(t){ce(e,"tag name is malformed: "+i)}return o?e.tag=i:P.call(e.tagMap,n)?e.tag=e.tagMap[n]+i:"!"===n?e.tag="!"+i:"!!"===n?e.tag="tag:yaml.org,2002:"+i:ce(e,'undeclared tag handle "'+n+'"'),!0}function ve(e){var t,n;if(38!==(n=e.input.charCodeAt(e.position)))return!1;for(null!==e.anchor&&ce(e,"duplication of an anchor property"),n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!z(n)&&!X(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&ce(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function we(e,t,i,r,o){var a,l,c,s,u,p,f,d,h,g=1,m=!1,y=!1;if(null!==e.listener&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,a=l=c=4===i||3===i,r&&ge(e,!0,-1)&&(m=!0,e.lineIndent>t?g=1:e.lineIndent===t?g=0:e.lineIndent<t&&(g=-1)),1===g)for(;Ae(e)||ve(e);)ge(e,!0,-1)?(m=!0,c=a,e.lineIndent>t?g=1:e.lineIndent===t?g=0:e.lineIndent<t&&(g=-1)):c=!1;if(c&&(c=m||o),1!==g&&4!==i||(d=1===i||2===i?t:t+1,h=e.position-e.lineStart,1===g?c&&(be(e,h)||function(e,t,n){var i,r,o,a,l,c,s,u=e.tag,p=e.anchor,f={},d=Object.create(null),h=null,g=null,m=null,y=!1,b=!1;if(-1!==e.firstTabInLine)return!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=f),s=e.input.charCodeAt(e.position);0!==s;){if(y||-1===e.firstTabInLine||(e.position=e.firstTabInLine,ce(e,"tab characters must not be used in indentation")),i=e.input.charCodeAt(e.position+1),o=e.line,63!==s&&58!==s||!z(i)){if(a=e.line,l=e.lineStart,c=e.position,!we(e,n,2,!1,!0))break;if(e.line===o){for(s=e.input.charCodeAt(e.position);Q(s);)s=e.input.charCodeAt(++e.position);if(58===s)z(s=e.input.charCodeAt(++e.position))||ce(e,"a whitespace character is expected after the key-value separator within a block mapping"),y&&(de(e,f,d,h,g,null,a,l,c),h=g=m=null),b=!0,y=!1,r=!1,h=e.tag,g=e.result;else{if(!b)return e.tag=u,e.anchor=p,!0;ce(e,"can not read an implicit mapping pair; a colon is missed")}}else{if(!b)return e.tag=u,e.anchor=p,!0;ce(e,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===s?(y&&(de(e,f,d,h,g,null,a,l,c),h=g=m=null),b=!0,y=!0,r=!0):y?(y=!1,r=!0):ce(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,s=i;if((e.line===o||e.lineIndent>t)&&(y&&(a=e.line,l=e.lineStart,c=e.position),we(e,t,4,!0,r)&&(y?g=e.result:m=e.result),y||(de(e,f,d,h,g,m,a,l,c),h=g=m=null),ge(e,!0,-1),s=e.input.charCodeAt(e.position)),(e.line===o||e.lineIndent>t)&&0!==s)ce(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return y&&de(e,f,d,h,g,null,a,l,c),b&&(e.tag=u,e.anchor=p,e.kind="mapping",e.result=f),b}(e,h,d))||function(e,t){var n,i,r,o,a,l,c,s,u,p,f,d,h=!0,g=e.tag,m=e.anchor,y=Object.create(null);if(91===(d=e.input.charCodeAt(e.position)))a=93,s=!1,o=[];else{if(123!==d)return!1;a=125,s=!0,o={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=o),d=e.input.charCodeAt(++e.position);0!==d;){if(ge(e,!0,t),(d=e.input.charCodeAt(e.position))===a)return e.position++,e.tag=g,e.anchor=m,e.kind=s?"mapping":"sequence",e.result=o,!0;h?44===d&&ce(e,"expected the node content, but found ','"):ce(e,"missed comma between flow collection entries"),f=null,l=c=!1,63===d&&z(e.input.charCodeAt(e.position+1))&&(l=c=!0,e.position++,ge(e,!0,t)),n=e.line,i=e.lineStart,r=e.position,we(e,t,1,!1,!0),p=e.tag,u=e.result,ge(e,!0,t),d=e.input.charCodeAt(e.position),!c&&e.line!==n||58!==d||(l=!0,d=e.input.charCodeAt(++e.position),ge(e,!0,t),we(e,t,1,!1,!0),f=e.result),s?de(e,o,y,p,u,f,n,i,r):l?o.push(de(e,null,y,p,u,f,n,i,r)):o.push(u),ge(e,!0,t),44===(d=e.input.charCodeAt(e.position))?(h=!0,d=e.input.charCodeAt(++e.position)):h=!1}ce(e,"unexpected end of the stream within a flow collection")}(e,d)?y=!0:(l&&function(e,t){var i,r,o,a,l,c=1,s=!1,u=!1,p=t,f=0,d=!1;if(124===(a=e.input.charCodeAt(e.position)))r=!1;else{if(62!==a)return!1;r=!0}for(e.kind="scalar",e.result="";0!==a;)if(43===(a=e.input.charCodeAt(++e.position))||45===a)1===c?c=43===a?3:2:ce(e,"repeat of a chomping mode identifier");else{if(!((o=48<=(l=a)&&l<=57?l-48:-1)>=0))break;0===o?ce(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?ce(e,"repeat of an indentation width identifier"):(p=t+o-1,u=!0)}if(Q(a)){do{a=e.input.charCodeAt(++e.position)}while(Q(a));if(35===a)do{a=e.input.charCodeAt(++e.position)}while(!J(a)&&0!==a)}for(;0!==a;){for(he(e),e.lineIndent=0,a=e.input.charCodeAt(e.position);(!u||e.lineIndent<p)&&32===a;)e.lineIndent++,a=e.input.charCodeAt(++e.position);if(!u&&e.lineIndent>p&&(p=e.lineIndent),J(a))f++;else{if(e.lineIndent<p){3===c?e.result+=n.repeat("\n",s?1+f:f):1===c&&s&&(e.result+="\n");break}for(r?Q(a)?(d=!0,e.result+=n.repeat("\n",s?1+f:f)):d?(d=!1,e.result+=n.repeat("\n",f+1)):0===f?s&&(e.result+=" "):e.result+=n.repeat("\n",f):e.result+=n.repeat("\n",s?1+f:f),s=!0,u=!0,f=0,i=e.position;!J(a)&&0!==a;)a=e.input.charCodeAt(++e.position);pe(e,i,e.position,!1)}}return!0}(e,d)||function(e,t){var n,i,r;if(39!==(n=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,i=r=e.position;0!==(n=e.input.charCodeAt(e.position));)if(39===n){if(pe(e,i,e.position,!0),39!==(n=e.input.charCodeAt(++e.position)))return!0;i=e.position,e.position++,r=e.position}else J(n)?(pe(e,i,r,!0),ye(e,ge(e,!1,t)),i=r=e.position):e.position===e.lineStart&&me(e)?ce(e,"unexpected end of the document within a single quoted scalar"):(e.position++,r=e.position);ce(e,"unexpected end of the stream within a single quoted scalar")}(e,d)||function(e,t){var n,i,r,o,a,l,c;if(34!==(l=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,n=i=e.position;0!==(l=e.input.charCodeAt(e.position));){if(34===l)return pe(e,n,e.position,!0),e.position++,!0;if(92===l){if(pe(e,n,e.position,!0),J(l=e.input.charCodeAt(++e.position)))ge(e,!1,t);else if(l<256&&ie[l])e.result+=re[l],e.position++;else if((a=120===(c=l)?2:117===c?4:85===c?8:0)>0){for(r=a,o=0;r>0;r--)(a=ee(l=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:ce(e,"expected hexadecimal character");e.result+=ne(o),e.position++}else ce(e,"unknown escape sequence");n=i=e.position}else J(l)?(pe(e,n,i,!0),ye(e,ge(e,!1,t)),n=i=e.position):e.position===e.lineStart&&me(e)?ce(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}ce(e,"unexpected end of the stream within a double quoted scalar")}(e,d)?y=!0:!function(e){var t,n,i;if(42!==(i=e.input.charCodeAt(e.position)))return!1;for(i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!z(i)&&!X(i);)i=e.input.charCodeAt(++e.position);return e.position===t&&ce(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),P.call(e.anchorMap,n)||ce(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],ge(e,!0,-1),!0}(e)?function(e,t,n){var i,r,o,a,l,c,s,u,p=e.kind,f=e.result;if(z(u=e.input.charCodeAt(e.position))||X(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(z(i=e.input.charCodeAt(e.position+1))||n&&X(i)))return!1;for(e.kind="scalar",e.result="",r=o=e.position,a=!1;0!==u;){if(58===u){if(z(i=e.input.charCodeAt(e.position+1))||n&&X(i))break}else if(35===u){if(z(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&me(e)||n&&X(u))break;if(J(u)){if(l=e.line,c=e.lineStart,s=e.lineIndent,ge(e,!1,-1),e.lineIndent>=t){a=!0,u=e.input.charCodeAt(e.position);continue}e.position=o,e.line=l,e.lineStart=c,e.lineIndent=s;break}}a&&(pe(e,r,o,!1),ye(e,e.line-l),r=o=e.position,a=!1),Q(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return pe(e,r,o,!1),!!e.result||(e.kind=p,e.result=f,!1)}(e,d,1===i)&&(y=!0,null===e.tag&&(e.tag="?")):(y=!0,null===e.tag&&null===e.anchor||ce(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===g&&(y=c&&be(e,h))),null===e.tag)null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);else if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&ce(e,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+e.kind+'"'),s=0,u=e.implicitTypes.length;s<u;s+=1)if((f=e.implicitTypes[s]).resolve(e.result)){e.result=f.construct(e.result),e.tag=f.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else if("!"!==e.tag){if(P.call(e.typeMap[e.kind||"fallback"],e.tag))f=e.typeMap[e.kind||"fallback"][e.tag];else for(f=null,s=0,u=(p=e.typeMap.multi[e.kind||"fallback"]).length;s<u;s+=1)if(e.tag.slice(0,p[s].tag.length)===p[s].tag){f=p[s];break}f||ce(e,"unknown tag !<"+e.tag+">"),null!==e.result&&f.kind!==e.kind&&ce(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+f.kind+'", not "'+e.kind+'"'),f.resolve(e.result,e.tag)?(e.result=f.construct(e.result,e.tag),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):ce(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||y}function ke(e){var t,n,i,r,o=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);0!==(r=e.input.charCodeAt(e.position))&&(ge(e,!0,-1),r=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==r));){for(a=!0,r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!z(r);)r=e.input.charCodeAt(++e.position);for(i=[],(n=e.input.slice(t,e.position)).length<1&&ce(e,"directive name must not be less than one character in length");0!==r;){for(;Q(r);)r=e.input.charCodeAt(++e.position);if(35===r){do{r=e.input.charCodeAt(++e.position)}while(0!==r&&!J(r));break}if(J(r))break;for(t=e.position;0!==r&&!z(r);)r=e.input.charCodeAt(++e.position);i.push(e.input.slice(t,e.position))}0!==r&&he(e),P.call(ue,n)?ue[n](e,n,i):se(e,'unknown document directive "'+n+'"')}ge(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,ge(e,!0,-1)):a&&ce(e,"directives end mark is expected"),we(e,e.lineIndent-1,4,!1,!0),ge(e,!0,-1),e.checkLineBreaks&&H.test(e.input.slice(o,e.position))&&se(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&me(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,ge(e,!0,-1)):e.position<e.length-1&&ce(e,"end of the stream or a document separator is expected")}function Ce(e,t){t=t||{},0!==(e=String(e)).length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var n=new ae(e,t),i=e.indexOf("\0");for(-1!==i&&(n.position=i,ce(n,"null byte is not allowed in input")),n.input+="\0";32===n.input.charCodeAt(n.position);)n.lineIndent+=1,n.position+=1;for(;n.position<n.length-1;)ke(n);return n.documents}var xe={loadAll:function(e,t,n){null!==t&&"object"==typeof t&&void 0===n&&(n=t,t=null);var i=Ce(e,n);if("function"!=typeof t)return i;for(var r=0,o=i.length;r<o;r+=1)t(i[r])},load:function(e,t){var n=Ce(e,t);if(0!==n.length){if(1===n.length)return n[0];throw new o("expected a single document in the stream, but found more")}}},Ie=Object.prototype.toString,Se=Object.prototype.hasOwnProperty,Oe=65279,je={0:"\\0",7:"\\a",8:"\\b",9:"\\t",10:"\\n",11:"\\v",12:"\\f",13:"\\r",27:"\\e",34:'\\"',92:"\\\\",133:"\\N",160:"\\_",8232:"\\L",8233:"\\P"},Te=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],Ne=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function Fe(e){var t,i,r;if(t=e.toString(16).toUpperCase(),e<=255)i="x",r=2;else if(e<=65535)i="u",r=4;else{if(!(e<=4294967295))throw new o("code point within a string may not be greater than 0xFFFFFFFF");i="U",r=8}return"\\"+i+n.repeat("0",r-t.length)+t}function Ee(e){this.schema=e.schema||K,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=n.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=function(e,t){var n,i,r,o,a,l,c;if(null===t)return{};for(n={},r=0,o=(i=Object.keys(t)).length;r<o;r+=1)a=i[r],l=String(t[a]),"!!"===a.slice(0,2)&&(a="tag:yaml.org,2002:"+a.slice(2)),(c=e.compiledTypeMap.fallback[a])&&Se.call(c.styleAliases,l)&&(l=c.styleAliases[l]),n[a]=l;return n}(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.quotingType='"'===e.quotingType?2:1,this.forceQuotes=e.forceQuotes||!1,this.replacer="function"==typeof e.replacer?e.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function Me(e,t){for(var i,r=n.repeat(" ",t),o=0,a=-1,l="",c=e.length;o<c;)-1===(a=e.indexOf("\n",o))?(i=e.slice(o),o=c):(i=e.slice(o,a+1),o=a+1),i.length&&"\n"!==i&&(l+=r),l+=i;return l}function Le(e,t){return"\n"+n.repeat(" ",e.indent*t)}function _e(e){return 32===e||9===e}function De(e){return 32<=e&&e<=126||161<=e&&e<=55295&&8232!==e&&8233!==e||57344<=e&&e<=65533&&e!==Oe||65536<=e&&e<=1114111}function Ue(e){return De(e)&&e!==Oe&&13!==e&&10!==e}function qe(e,t,n){var i=Ue(e),r=i&&!_e(e);return(n?i:i&&44!==e&&91!==e&&93!==e&&123!==e&&125!==e)&&35!==e&&!(58===t&&!r)||Ue(t)&&!_e(t)&&35===e||58===t&&r}function Ye(e,t){var n,i=e.charCodeAt(t);return i>=55296&&i<=56319&&t+1<e.length&&(n=e.charCodeAt(t+1))>=56320&&n<=57343?1024*(i-55296)+n-56320+65536:i}function Re(e){return/^\n* /.test(e)}function Be(e,t,n,i,r,o,a,l){var c,s,u=0,p=null,f=!1,d=!1,h=-1!==i,g=-1,m=De(s=Ye(e,0))&&s!==Oe&&!_e(s)&&45!==s&&63!==s&&58!==s&&44!==s&&91!==s&&93!==s&&123!==s&&125!==s&&35!==s&&38!==s&&42!==s&&33!==s&&124!==s&&61!==s&&62!==s&&39!==s&&34!==s&&37!==s&&64!==s&&96!==s&&function(e){return!_e(e)&&58!==e}(Ye(e,e.length-1));if(t||a)for(c=0;c<e.length;u>=65536?c+=2:c++){if(!De(u=Ye(e,c)))return 5;m=m&&qe(u,p,l),p=u}else{for(c=0;c<e.length;u>=65536?c+=2:c++){if(10===(u=Ye(e,c)))f=!0,h&&(d=d||c-g-1>i&&" "!==e[g+1],g=c);else if(!De(u))return 5;m=m&&qe(u,p,l),p=u}d=d||h&&c-g-1>i&&" "!==e[g+1]}return f||d?n>9&&Re(e)?5:a?2===o?5:2:d?4:3:!m||a||r(e)?2===o?5:2:1}function Ke(e,t,n,i,r){e.dump=function(){if(0===t.length)return 2===e.quotingType?'""':"''";if(!e.noCompatMode&&(-1!==Te.indexOf(t)||Ne.test(t)))return 2===e.quotingType?'"'+t+'"':"'"+t+"'";var a=e.indent*Math.max(1,n),l=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a),c=i||e.flowLevel>-1&&n>=e.flowLevel;switch(Be(t,c,e.indent,l,(function(t){return function(e,t){var n,i;for(n=0,i=e.implicitTypes.length;n<i;n+=1)if(e.implicitTypes[n].resolve(t))return!0;return!1}(e,t)}),e.quotingType,e.forceQuotes&&!i,r)){case 1:return t;case 2:return"'"+t.replace(/'/g,"''")+"'";case 3:return"|"+Pe(t,e.indent)+We(Me(t,a));case 4:return">"+Pe(t,e.indent)+We(Me(function(e,t){var n,i,r=/(\n+)([^\n]*)/g,o=(l=e.indexOf("\n"),l=-1!==l?l:e.length,r.lastIndex=l,He(e.slice(0,l),t)),a="\n"===e[0]||" "===e[0];var l;for(;i=r.exec(e);){var c=i[1],s=i[2];n=" "===s[0],o+=c+(a||n||""===s?"":"\n")+He(s,t),a=n}return o}(t,l),a));case 5:return'"'+function(e){for(var t,n="",i=0,r=0;r<e.length;i>=65536?r+=2:r++)i=Ye(e,r),!(t=je[i])&&De(i)?(n+=e[r],i>=65536&&(n+=e[r+1])):n+=t||Fe(i);return n}(t)+'"';default:throw new o("impossible error: invalid scalar style")}}()}function Pe(e,t){var n=Re(e)?String(t):"",i="\n"===e[e.length-1];return n+(i&&("\n"===e[e.length-2]||"\n"===e)?"+":i?"":"-")+"\n"}function We(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function He(e,t){if(""===e||" "===e[0])return e;for(var n,i,r=/ [^ ]/g,o=0,a=0,l=0,c="";n=r.exec(e);)(l=n.index)-o>t&&(i=a>o?a:l,c+="\n"+e.slice(o,i),o=i+1),a=l;return c+="\n",e.length-o>t&&a>o?c+=e.slice(o,a)+"\n"+e.slice(a+1):c+=e.slice(o),c.slice(1)}function $e(e,t,n,i){var r,o,a,l="",c=e.tag;for(r=0,o=n.length;r<o;r+=1)a=n[r],e.replacer&&(a=e.replacer.call(n,String(r),a)),(Ve(e,t+1,a,!0,!0,!1,!0)||void 0===a&&Ve(e,t+1,null,!0,!0,!1,!0))&&(i&&""===l||(l+=Le(e,t)),e.dump&&10===e.dump.charCodeAt(0)?l+="-":l+="- ",l+=e.dump);e.tag=c,e.dump=l||"[]"}function Ge(e,t,n){var i,r,a,l,c,s;for(a=0,l=(r=n?e.explicitTypes:e.implicitTypes).length;a<l;a+=1)if(((c=r[a]).instanceOf||c.predicate)&&(!c.instanceOf||"object"==typeof t&&t instanceof c.instanceOf)&&(!c.predicate||c.predicate(t))){if(n?c.multi&&c.representName?e.tag=c.representName(t):e.tag=c.tag:e.tag="?",c.represent){if(s=e.styleMap[c.tag]||c.defaultStyle,"[object Function]"===Ie.call(c.represent))i=c.represent(t,s);else{if(!Se.call(c.represent,s))throw new o("!<"+c.tag+'> tag resolver accepts not "'+s+'" style');i=c.represent[s](t,s)}e.dump=i}return!0}return!1}function Ve(e,t,n,i,r,a,l){e.tag=null,e.dump=n,Ge(e,n,!1)||Ge(e,n,!0);var c,s=Ie.call(e.dump),u=i;i&&(i=e.flowLevel<0||e.flowLevel>t);var p,f,d="[object Object]"===s||"[object Array]"===s;if(d&&(f=-1!==(p=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||f||2!==e.indent&&t>0)&&(r=!1),f&&e.usedDuplicates[p])e.dump="*ref_"+p;else{if(d&&f&&!e.usedDuplicates[p]&&(e.usedDuplicates[p]=!0),"[object Object]"===s)i&&0!==Object.keys(e.dump).length?(!function(e,t,n,i){var r,a,l,c,s,u,p="",f=e.tag,d=Object.keys(n);if(!0===e.sortKeys)d.sort();else if("function"==typeof e.sortKeys)d.sort(e.sortKeys);else if(e.sortKeys)throw new o("sortKeys must be a boolean or a function");for(r=0,a=d.length;r<a;r+=1)u="",i&&""===p||(u+=Le(e,t)),c=n[l=d[r]],e.replacer&&(c=e.replacer.call(n,l,c)),Ve(e,t+1,l,!0,!0,!0)&&((s=null!==e.tag&&"?"!==e.tag||e.dump&&e.dump.length>1024)&&(e.dump&&10===e.dump.charCodeAt(0)?u+="?":u+="? "),u+=e.dump,s&&(u+=Le(e,t)),Ve(e,t+1,c,!0,s)&&(e.dump&&10===e.dump.charCodeAt(0)?u+=":":u+=": ",p+=u+=e.dump));e.tag=f,e.dump=p||"{}"}(e,t,e.dump,r),f&&(e.dump="&ref_"+p+e.dump)):(!function(e,t,n){var i,r,o,a,l,c="",s=e.tag,u=Object.keys(n);for(i=0,r=u.length;i<r;i+=1)l="",""!==c&&(l+=", "),e.condenseFlow&&(l+='"'),a=n[o=u[i]],e.replacer&&(a=e.replacer.call(n,o,a)),Ve(e,t,o,!1,!1)&&(e.dump.length>1024&&(l+="? "),l+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Ve(e,t,a,!1,!1)&&(c+=l+=e.dump));e.tag=s,e.dump="{"+c+"}"}(e,t,e.dump),f&&(e.dump="&ref_"+p+" "+e.dump));else if("[object Array]"===s)i&&0!==e.dump.length?(e.noArrayIndent&&!l&&t>0?$e(e,t-1,e.dump,r):$e(e,t,e.dump,r),f&&(e.dump="&ref_"+p+e.dump)):(!function(e,t,n){var i,r,o,a="",l=e.tag;for(i=0,r=n.length;i<r;i+=1)o=n[i],e.replacer&&(o=e.replacer.call(n,String(i),o)),(Ve(e,t,o,!1,!1)||void 0===o&&Ve(e,t,null,!1,!1))&&(""!==a&&(a+=","+(e.condenseFlow?"":" ")),a+=e.dump);e.tag=l,e.dump="["+a+"]"}(e,t,e.dump),f&&(e.dump="&ref_"+p+" "+e.dump));else{if("[object String]"!==s){if("[object Undefined]"===s)return!1;if(e.skipInvalid)return!1;throw new o("unacceptable kind of an object to dump "+s)}"?"!==e.tag&&Ke(e,e.dump,t,a,u)}null!==e.tag&&"?"!==e.tag&&(c=encodeURI("!"===e.tag[0]?e.tag.slice(1):e.tag).replace(/!/g,"%21"),c="!"===e.tag[0]?"!"+c:"tag:yaml.org,2002:"===c.slice(0,18)?"!!"+c.slice(18):"!<"+c+">",e.dump=c+" "+e.dump)}return!0}function Ze(e,t){var n,i,r=[],o=[];for(Je(e,r,o),n=0,i=o.length;n<i;n+=1)t.duplicates.push(r[o[n]]);t.usedDuplicates=new Array(i)}function Je(e,t,n){var i,r,o;if(null!==e&&"object"==typeof e)if(-1!==(r=t.indexOf(e)))-1===n.indexOf(r)&&n.push(r);else if(t.push(e),Array.isArray(e))for(r=0,o=e.length;r<o;r+=1)Je(e[r],t,n);else for(r=0,o=(i=Object.keys(e)).length;r<o;r+=1)Je(e[i[r]],t,n)}function Qe(e,t){return function(){throw new Error("Function yaml."+e+" is removed in js-yaml 4. Use yaml."+t+" instead, which is now safe by default.")}}var ze=p,Xe=h,et=b,tt=O,nt=j,it=K,rt=xe.load,ot=xe.loadAll,at={dump:function(e,t){var n=new Ee(t=t||{});n.noRefs||Ze(e,n);var i=e;return n.replacer&&(i=n.replacer.call({"":i},"",i)),Ve(n,0,i,!0,!0)?n.dump+"\n":""}}.dump,lt=o,ct={binary:L,float:S,map:y,null:A,pairs:Y,set:B,timestamp:F,bool:v,int:C,merge:E,omap:U,seq:m,str:g},st=Qe("safeLoad","load"),ut=Qe("safeLoadAll","loadAll"),pt=Qe("safeDump","dump"),ft={Type:ze,Schema:Xe,FAILSAFE_SCHEMA:et,JSON_SCHEMA:tt,CORE_SCHEMA:nt,DEFAULT_SCHEMA:it,load:rt,loadAll:ot,dump:at,YAMLException:lt,types:ct,safeLoad:st,safeLoadAll:ut,safeDump:pt};e.CORE_SCHEMA=nt,e.DEFAULT_SCHEMA=it,e.FAILSAFE_SCHEMA=et,e.JSON_SCHEMA=tt,e.Schema=Xe,e.Type=ze,e.YAMLException=lt,e.default=ft,e.dump=at,e.load=rt,e.loadAll=ot,e.safeDump=pt,e.safeLoad=st,e.safeLoadAll=ut,e.types=ct,Object.defineProperty(e,"__esModule",{value:!0})}));

/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */
function isNothing(subject) {
  return (typeof subject === 'undefined') || (subject === null);
}


function isObject(subject) {
  return (typeof subject === 'object') && (subject !== null);
}


function toArray(sequence) {
  if (Array.isArray(sequence)) return sequence;
  else if (isNothing(sequence)) return [];

  return [ sequence ];
}


function extend(target, source) {
  var index, length, key, sourceKeys;

  if (source) {
    sourceKeys = Object.keys(source);

    for (index = 0, length = sourceKeys.length; index < length; index += 1) {
      key = sourceKeys[index];
      target[key] = source[key];
    }
  }

  return target;
}


function repeat(string, count) {
  var result = '', cycle;

  for (cycle = 0; cycle < count; cycle += 1) {
    result += string;
  }

  return result;
}


function isNegativeZero(number) {
  return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);
}


var isNothing_1      = isNothing;
var isObject_1       = isObject;
var toArray_1        = toArray;
var repeat_1         = repeat;
var isNegativeZero_1 = isNegativeZero;
var extend_1         = extend;

var common = {
	isNothing: isNothing_1,
	isObject: isObject_1,
	toArray: toArray_1,
	repeat: repeat_1,
	isNegativeZero: isNegativeZero_1,
	extend: extend_1
};

// YAML error class. http://stackoverflow.com/questions/8458984


function formatError(exception, compact) {
  var where = '', message = exception.reason || '(unknown reason)';

  if (!exception.mark) return message;

  if (exception.mark.name) {
    where += 'in "' + exception.mark.name + '" ';
  }

  where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';

  if (!compact && exception.mark.snippet) {
    where += '\n\n' + exception.mark.snippet;
  }

  return message + ' ' + where;
}


function YAMLException$1(reason, mark) {
  // Super constructor
  Error.call(this);

  this.name = 'YAMLException';
  this.reason = reason;
  this.mark = mark;
  this.message = formatError(this, false);

  // Include stack trace in error object
  if (Error.captureStackTrace) {
    // Chrome and NodeJS
    Error.captureStackTrace(this, this.constructor);
  } else {
    // FF, IE 10+ and Safari 6+. Fallback for others
    this.stack = (new Error()).stack || '';
  }
}


// Inherit from Error
YAMLException$1.prototype = Object.create(Error.prototype);
YAMLException$1.prototype.constructor = YAMLException$1;


YAMLException$1.prototype.toString = function toString(compact) {
  return this.name + ': ' + formatError(this, compact);
};


var exception = YAMLException$1;

// get snippet for a single line, respecting maxLength
function getLine(buffer, lineStart, lineEnd, position, maxLineLength) {
  var head = '';
  var tail = '';
  var maxHalfLength = Math.floor(maxLineLength / 2) - 1;

  if (position - lineStart > maxHalfLength) {
    head = ' ... ';
    lineStart = position - maxHalfLength + head.length;
  }

  if (lineEnd - position > maxHalfLength) {
    tail = ' ...';
    lineEnd = position + maxHalfLength - tail.length;
  }

  return {
    str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, '→') + tail,
    pos: position - lineStart + head.length // relative position
  };
}


function padStart(string, max) {
  return common.repeat(' ', max - string.length) + string;
}


function makeSnippet(mark, options) {
  options = Object.create(options || null);

  if (!mark.buffer) return null;

  if (!options.maxLength) options.maxLength = 79;
  if (typeof options.indent      !== 'number') options.indent      = 1;
  if (typeof options.linesBefore !== 'number') options.linesBefore = 3;
  if (typeof options.linesAfter  !== 'number') options.linesAfter  = 2;

  var re = /\r?\n|\r|\0/g;
  var lineStarts = [ 0 ];
  var lineEnds = [];
  var match;
  var foundLineNo = -1;

  while ((match = re.exec(mark.buffer))) {
    lineEnds.push(match.index);
    lineStarts.push(match.index + match[0].length);

    if (mark.position <= match.index && foundLineNo < 0) {
      foundLineNo = lineStarts.length - 2;
    }
  }

  if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;

  var result = '', i, line;
  var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;
  var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);

  for (i = 1; i <= options.linesBefore; i++) {
    if (foundLineNo - i < 0) break;
    line = getLine(
      mark.buffer,
      lineStarts[foundLineNo - i],
      lineEnds[foundLineNo - i],
      mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),
      maxLineLength
    );
    result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +
      ' | ' + line.str + '\n' + result;
  }

  line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);
  result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +
    ' | ' + line.str + '\n';
  result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\n';

  for (i = 1; i <= options.linesAfter; i++) {
    if (foundLineNo + i >= lineEnds.length) break;
    line = getLine(
      mark.buffer,
      lineStarts[foundLineNo + i],
      lineEnds[foundLineNo + i],
      mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),
      maxLineLength
    );
    result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +
      ' | ' + line.str + '\n';
  }

  return result.replace(/\n$/, '');
}


var snippet = makeSnippet;

var TYPE_CONSTRUCTOR_OPTIONS = [
  'kind',
  'multi',
  'resolve',
  'construct',
  'instanceOf',
  'predicate',
  'represent',
  'representName',
  'defaultStyle',
  'styleAliases'
];

var YAML_NODE_KINDS = [
  'scalar',
  'sequence',
  'mapping'
];

function compileStyleAliases(map) {
  var result = {};

  if (map !== null) {
    Object.keys(map).forEach(function (style) {
      map[style].forEach(function (alias) {
        result[String(alias)] = style;
      });
    });
  }

  return result;
}

function Type$1(tag, options) {
  options = options || {};

  Object.keys(options).forEach(function (name) {
    if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {
      throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.');
    }
  });

  // TODO: Add tag format check.
  this.options       = options; // keep original options in case user wants to extend this type later
  this.tag           = tag;
  this.kind          = options['kind']          || null;
  this.resolve       = options['resolve']       || function () { return true; };
  this.construct     = options['construct']     || function (data) { return data; };
  this.instanceOf    = options['instanceOf']    || null;
  this.predicate     = options['predicate']     || null;
  this.represent     = options['represent']     || null;
  this.representName = options['representName'] || null;
  this.defaultStyle  = options['defaultStyle']  || null;
  this.multi         = options['multi']         || false;
  this.styleAliases  = compileStyleAliases(options['styleAliases'] || null);

  if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {
    throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.');
  }
}

var type = Type$1;

/*eslint-disable max-len*/





function compileList(schema, name) {
  var result = [];

  schema[name].forEach(function (currentType) {
    var newIndex = result.length;

    result.forEach(function (previousType, previousIndex) {
      if (previousType.tag === currentType.tag &&
          previousType.kind === currentType.kind &&
          previousType.multi === currentType.multi) {

        newIndex = previousIndex;
      }
    });

    result[newIndex] = currentType;
  });

  return result;
}


function compileMap(/* lists... */) {
  var result = {
        scalar: {},
        sequence: {},
        mapping: {},
        fallback: {},
        multi: {
          scalar: [],
          sequence: [],
          mapping: [],
          fallback: []
        }
      }, index, length;

  function collectType(type) {
    if (type.multi) {
      result.multi[type.kind].push(type);
      result.multi['fallback'].push(type);
    } else {
      result[type.kind][type.tag] = result['fallback'][type.tag] = type;
    }
  }

  for (index = 0, length = arguments.length; index < length; index += 1) {
    arguments[index].forEach(collectType);
  }
  return result;
}


function Schema$1(definition) {
  return this.extend(definition);
}


Schema$1.prototype.extend = function extend(definition) {
  var implicit = [];
  var explicit = [];

  if (definition instanceof type) {
    // Schema.extend(type)
    explicit.push(definition);

  } else if (Array.isArray(definition)) {
    // Schema.extend([ type1, type2, ... ])
    explicit = explicit.concat(definition);

  } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {
    // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })
    if (definition.implicit) implicit = implicit.concat(definition.implicit);
    if (definition.explicit) explicit = explicit.concat(definition.explicit);

  } else {
    throw new exception('Schema.extend argument should be a Type, [ Type ], ' +
      'or a schema definition ({ implicit: [...], explicit: [...] })');
  }

  implicit.forEach(function (type$1) {
    if (!(type$1 instanceof type)) {
      throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');
    }

    if (type$1.loadKind && type$1.loadKind !== 'scalar') {
      throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');
    }

    if (type$1.multi) {
      throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');
    }
  });

  explicit.forEach(function (type$1) {
    if (!(type$1 instanceof type)) {
      throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');
    }
  });

  var result = Object.create(Schema$1.prototype);

  result.implicit = (this.implicit || []).concat(implicit);
  result.explicit = (this.explicit || []).concat(explicit);

  result.compiledImplicit = compileList(result, 'implicit');
  result.compiledExplicit = compileList(result, 'explicit');
  result.compiledTypeMap  = compileMap(result.compiledImplicit, result.compiledExplicit);

  return result;
};


var schema = Schema$1;

var str = new type('tag:yaml.org,2002:str', {
  kind: 'scalar',
  construct: function (data) { return data !== null ? data : ''; }
});

var seq = new type('tag:yaml.org,2002:seq', {
  kind: 'sequence',
  construct: function (data) { return data !== null ? data : []; }
});

var map = new type('tag:yaml.org,2002:map', {
  kind: 'mapping',
  construct: function (data) { return data !== null ? data : {}; }
});

var failsafe = new schema({
  explicit: [
    str,
    seq,
    map
  ]
});

function resolveYamlNull(data) {
  if (data === null) return true;

  var max = data.length;

  return (max === 1 && data === '~') ||
         (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));
}

function constructYamlNull() {
  return null;
}

function isNull(object) {
  return object === null;
}

var _null = new type('tag:yaml.org,2002:null', {
  kind: 'scalar',
  resolve: resolveYamlNull,
  construct: constructYamlNull,
  predicate: isNull,
  represent: {
    canonical: function () { return '~';    },
    lowercase: function () { return 'null'; },
    uppercase: function () { return 'NULL'; },
    camelcase: function () { return 'Null'; },
    empty:     function () { return '';     }
  },
  defaultStyle: 'lowercase'
});

function resolveYamlBoolean(data) {
  if (data === null) return false;

  var max = data.length;

  return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||
         (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));
}

function constructYamlBoolean(data) {
  return data === 'true' ||
         data === 'True' ||
         data === 'TRUE';
}

function isBoolean(object) {
  return Object.prototype.toString.call(object) === '[object Boolean]';
}

var bool = new type('tag:yaml.org,2002:bool', {
  kind: 'scalar',
  resolve: resolveYamlBoolean,
  construct: constructYamlBoolean,
  predicate: isBoolean,
  represent: {
    lowercase: function (object) { return object ? 'true' : 'false'; },
    uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },
    camelcase: function (object) { return object ? 'True' : 'False'; }
  },
  defaultStyle: 'lowercase'
});

function isHexCode(c) {
  return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||
         ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||
         ((0x61/* a */ <= c) && (c <= 0x66/* f */));
}

function isOctCode(c) {
  return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));
}

function isDecCode(c) {
  return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));
}

function resolveYamlInteger(data) {
  if (data === null) return false;

  var max = data.length,
      index = 0,
      hasDigits = false,
      ch;

  if (!max) return false;

  ch = data[index];

  // sign
  if (ch === '-' || ch === '+') {
    ch = data[++index];
  }

  if (ch === '0') {
    // 0
    if (index + 1 === max) return true;
    ch = data[++index];

    // base 2, base 8, base 16

    if (ch === 'b') {
      // base 2
      index++;

      for (; index < max; index++) {
        ch = data[index];
        if (ch === '_') continue;
        if (ch !== '0' && ch !== '1') return false;
        hasDigits = true;
      }
      return hasDigits && ch !== '_';
    }


    if (ch === 'x') {
      // base 16
      index++;

      for (; index < max; index++) {
        ch = data[index];
        if (ch === '_') continue;
        if (!isHexCode(data.charCodeAt(index))) return false;
        hasDigits = true;
      }
      return hasDigits && ch !== '_';
    }


    if (ch === 'o') {
      // base 8
      index++;

      for (; index < max; index++) {
        ch = data[index];
        if (ch === '_') continue;
        if (!isOctCode(data.charCodeAt(index))) return false;
        hasDigits = true;
      }
      return hasDigits && ch !== '_';
    }
  }

  // base 10 (except 0)

  // value should not start with `_`;
  if (ch === '_') return false;

  for (; index < max; index++) {
    ch = data[index];
    if (ch === '_') continue;
    if (!isDecCode(data.charCodeAt(index))) {
      return false;
    }
    hasDigits = true;
  }

  // Should have digits and should not end with `_`
  if (!hasDigits || ch === '_') return false;

  return true;
}

function constructYamlInteger(data) {
  var value = data, sign = 1, ch;

  if (value.indexOf('_') !== -1) {
    value = value.replace(/_/g, '');
  }

  ch = value[0];

  if (ch === '-' || ch === '+') {
    if (ch === '-') sign = -1;
    value = value.slice(1);
    ch = value[0];
  }

  if (value === '0') return 0;

  if (ch === '0') {
    if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);
    if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);
    if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);
  }

  return sign * parseInt(value, 10);
}

function isInteger(object) {
  return (Object.prototype.toString.call(object)) === '[object Number]' &&
         (object % 1 === 0 && !common.isNegativeZero(object));
}

var int = new type('tag:yaml.org,2002:int', {
  kind: 'scalar',
  resolve: resolveYamlInteger,
  construct: constructYamlInteger,
  predicate: isInteger,
  represent: {
    binary:      function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },
    octal:       function (obj) { return obj >= 0 ? '0o'  + obj.toString(8) : '-0o'  + obj.toString(8).slice(1); },
    decimal:     function (obj) { return obj.toString(10); },
    /* eslint-disable max-len */
    hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() :  '-0x' + obj.toString(16).toUpperCase().slice(1); }
  },
  defaultStyle: 'decimal',
  styleAliases: {
    binary:      [ 2,  'bin' ],
    octal:       [ 8,  'oct' ],
    decimal:     [ 10, 'dec' ],
    hexadecimal: [ 16, 'hex' ]
  }
});

var YAML_FLOAT_PATTERN = new RegExp(
  // 2.5e4, 2.5 and integers
  '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +
  // .2e4, .2
  // special case, seems not from spec
  '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +
  // .inf
  '|[-+]?\\.(?:inf|Inf|INF)' +
  // .nan
  '|\\.(?:nan|NaN|NAN))$');

function resolveYamlFloat(data) {
  if (data === null) return false;

  if (!YAML_FLOAT_PATTERN.test(data) ||
      // Quick hack to not allow integers end with `_`
      // Probably should update regexp & check speed
      data[data.length - 1] === '_') {
    return false;
  }

  return true;
}

function constructYamlFloat(data) {
  var value, sign;

  value  = data.replace(/_/g, '').toLowerCase();
  sign   = value[0] === '-' ? -1 : 1;

  if ('+-'.indexOf(value[0]) >= 0) {
    value = value.slice(1);
  }

  if (value === '.inf') {
    return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;

  } else if (value === '.nan') {
    return NaN;
  }
  return sign * parseFloat(value, 10);
}


var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;

function representYamlFloat(object, style) {
  var res;

  if (isNaN(object)) {
    switch (style) {
      case 'lowercase': return '.nan';
      case 'uppercase': return '.NAN';
      case 'camelcase': return '.NaN';
    }
  } else if (Number.POSITIVE_INFINITY === object) {
    switch (style) {
      case 'lowercase': return '.inf';
      case 'uppercase': return '.INF';
      case 'camelcase': return '.Inf';
    }
  } else if (Number.NEGATIVE_INFINITY === object) {
    switch (style) {
      case 'lowercase': return '-.inf';
      case 'uppercase': return '-.INF';
      case 'camelcase': return '-.Inf';
    }
  } else if (common.isNegativeZero(object)) {
    return '-0.0';
  }

  res = object.toString(10);

  // JS stringifier can build scientific format without dots: 5e-100,
  // while YAML requres dot: 5.e-100. Fix it with simple hack

  return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;
}

function isFloat(object) {
  return (Object.prototype.toString.call(object) === '[object Number]') &&
         (object % 1 !== 0 || common.isNegativeZero(object));
}

var float = new type('tag:yaml.org,2002:float', {
  kind: 'scalar',
  resolve: resolveYamlFloat,
  construct: constructYamlFloat,
  predicate: isFloat,
  represent: representYamlFloat,
  defaultStyle: 'lowercase'
});

var json = failsafe.extend({
  implicit: [
    _null,
    bool,
    int,
    float
  ]
});

var core = json;

var YAML_DATE_REGEXP = new RegExp(
  '^([0-9][0-9][0-9][0-9])'          + // [1] year
  '-([0-9][0-9])'                    + // [2] month
  '-([0-9][0-9])$');                   // [3] day

var YAML_TIMESTAMP_REGEXP = new RegExp(
  '^([0-9][0-9][0-9][0-9])'          + // [1] year
  '-([0-9][0-9]?)'                   + // [2] month
  '-([0-9][0-9]?)'                   + // [3] day
  '(?:[Tt]|[ \\t]+)'                 + // ...
  '([0-9][0-9]?)'                    + // [4] hour
  ':([0-9][0-9])'                    + // [5] minute
  ':([0-9][0-9])'                    + // [6] second
  '(?:\\.([0-9]*))?'                 + // [7] fraction
  '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour
  '(?::([0-9][0-9]))?))?$');           // [11] tz_minute

function resolveYamlTimestamp(data) {
  if (data === null) return false;
  if (YAML_DATE_REGEXP.exec(data) !== null) return true;
  if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;
  return false;
}

function constructYamlTimestamp(data) {
  var match, year, month, day, hour, minute, second, fraction = 0,
      delta = null, tz_hour, tz_minute, date;

  match = YAML_DATE_REGEXP.exec(data);
  if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);

  if (match === null) throw new Error('Date resolve error');

  // match: [1] year [2] month [3] day

  year = +(match[1]);
  month = +(match[2]) - 1; // JS month starts with 0
  day = +(match[3]);

  if (!match[4]) { // no hour
    return new Date(Date.UTC(year, month, day));
  }

  // match: [4] hour [5] minute [6] second [7] fraction

  hour = +(match[4]);
  minute = +(match[5]);
  second = +(match[6]);

  if (match[7]) {
    fraction = match[7].slice(0, 3);
    while (fraction.length < 3) { // milli-seconds
      fraction += '0';
    }
    fraction = +fraction;
  }

  // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute

  if (match[9]) {
    tz_hour = +(match[10]);
    tz_minute = +(match[11] || 0);
    delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds
    if (match[9] === '-') delta = -delta;
  }

  date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));

  if (delta) date.setTime(date.getTime() - delta);

  return date;
}

function representYamlTimestamp(object /*, style*/) {
  return object.toISOString();
}

var timestamp = new type('tag:yaml.org,2002:timestamp', {
  kind: 'scalar',
  resolve: resolveYamlTimestamp,
  construct: constructYamlTimestamp,
  instanceOf: Date,
  represent: representYamlTimestamp
});

function resolveYamlMerge(data) {
  return data === '<<' || data === null;
}

var merge = new type('tag:yaml.org,2002:merge', {
  kind: 'scalar',
  resolve: resolveYamlMerge
});

/*eslint-disable no-bitwise*/





// [ 64, 65, 66 ] -> [ padding, CR, LF ]
var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r';


function resolveYamlBinary(data) {
  if (data === null) return false;

  var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;

  // Convert one by one.
  for (idx = 0; idx < max; idx++) {
    code = map.indexOf(data.charAt(idx));

    // Skip CR/LF
    if (code > 64) continue;

    // Fail on illegal characters
    if (code < 0) return false;

    bitlen += 6;
  }

  // If there are any bits left, source was corrupted
  return (bitlen % 8) === 0;
}

function constructYamlBinary(data) {
  var idx, tailbits,
      input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan
      max = input.length,
      map = BASE64_MAP,
      bits = 0,
      result = [];

  // Collect by 6*4 bits (3 bytes)

  for (idx = 0; idx < max; idx++) {
    if ((idx % 4 === 0) && idx) {
      result.push((bits >> 16) & 0xFF);
      result.push((bits >> 8) & 0xFF);
      result.push(bits & 0xFF);
    }

    bits = (bits << 6) | map.indexOf(input.charAt(idx));
  }

  // Dump tail

  tailbits = (max % 4) * 6;

  if (tailbits === 0) {
    result.push((bits >> 16) & 0xFF);
    result.push((bits >> 8) & 0xFF);
    result.push(bits & 0xFF);
  } else if (tailbits === 18) {
    result.push((bits >> 10) & 0xFF);
    result.push((bits >> 2) & 0xFF);
  } else if (tailbits === 12) {
    result.push((bits >> 4) & 0xFF);
  }

  return new Uint8Array(result);
}

function representYamlBinary(object /*, style*/) {
  var result = '', bits = 0, idx, tail,
      max = object.length,
      map = BASE64_MAP;

  // Convert every three bytes to 4 ASCII characters.

  for (idx = 0; idx < max; idx++) {
    if ((idx % 3 === 0) && idx) {
      result += map[(bits >> 18) & 0x3F];
      result += map[(bits >> 12) & 0x3F];
      result += map[(bits >> 6) & 0x3F];
      result += map[bits & 0x3F];
    }

    bits = (bits << 8) + object[idx];
  }

  // Dump tail

  tail = max % 3;

  if (tail === 0) {
    result += map[(bits >> 18) & 0x3F];
    result += map[(bits >> 12) & 0x3F];
    result += map[(bits >> 6) & 0x3F];
    result += map[bits & 0x3F];
  } else if (tail === 2) {
    result += map[(bits >> 10) & 0x3F];
    result += map[(bits >> 4) & 0x3F];
    result += map[(bits << 2) & 0x3F];
    result += map[64];
  } else if (tail === 1) {
    result += map[(bits >> 2) & 0x3F];
    result += map[(bits << 4) & 0x3F];
    result += map[64];
    result += map[64];
  }

  return result;
}

function isBinary(obj) {
  return Object.prototype.toString.call(obj) ===  '[object Uint8Array]';
}

var binary = new type('tag:yaml.org,2002:binary', {
  kind: 'scalar',
  resolve: resolveYamlBinary,
  construct: constructYamlBinary,
  predicate: isBinary,
  represent: representYamlBinary
});

var _hasOwnProperty$3 = Object.prototype.hasOwnProperty;
var _toString$2       = Object.prototype.toString;

function resolveYamlOmap(data) {
  if (data === null) return true;

  var objectKeys = [], index, length, pair, pairKey, pairHasKey,
      object = data;

  for (index = 0, length = object.length; index < length; index += 1) {
    pair = object[index];
    pairHasKey = false;

    if (_toString$2.call(pair) !== '[object Object]') return false;

    for (pairKey in pair) {
      if (_hasOwnProperty$3.call(pair, pairKey)) {
        if (!pairHasKey) pairHasKey = true;
        else return false;
      }
    }

    if (!pairHasKey) return false;

    if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);
    else return false;
  }

  return true;
}

function constructYamlOmap(data) {
  return data !== null ? data : [];
}

var omap = new type('tag:yaml.org,2002:omap', {
  kind: 'sequence',
  resolve: resolveYamlOmap,
  construct: constructYamlOmap
});

var _toString$1 = Object.prototype.toString;

function resolveYamlPairs(data) {
  if (data === null) return true;

  var index, length, pair, keys, result,
      object = data;

  result = new Array(object.length);

  for (index = 0, length = object.length; index < length; index += 1) {
    pair = object[index];

    if (_toString$1.call(pair) !== '[object Object]') return false;

    keys = Object.keys(pair);

    if (keys.length !== 1) return false;

    result[index] = [ keys[0], pair[keys[0]] ];
  }

  return true;
}

function constructYamlPairs(data) {
  if (data === null) return [];

  var index, length, pair, keys, result,
      object = data;

  result = new Array(object.length);

  for (index = 0, length = object.length; index < length; index += 1) {
    pair = object[index];

    keys = Object.keys(pair);

    result[index] = [ keys[0], pair[keys[0]] ];
  }

  return result;
}

var pairs = new type('tag:yaml.org,2002:pairs', {
  kind: 'sequence',
  resolve: resolveYamlPairs,
  construct: constructYamlPairs
});

var _hasOwnProperty$2 = Object.prototype.hasOwnProperty;

function resolveYamlSet(data) {
  if (data === null) return true;

  var key, object = data;

  for (key in object) {
    if (_hasOwnProperty$2.call(object, key)) {
      if (object[key] !== null) return false;
    }
  }

  return true;
}

function constructYamlSet(data) {
  return data !== null ? data : {};
}

var set = new type('tag:yaml.org,2002:set', {
  kind: 'mapping',
  resolve: resolveYamlSet,
  construct: constructYamlSet
});

var _default = core.extend({
  implicit: [
    timestamp,
    merge
  ],
  explicit: [
    binary,
    omap,
    pairs,
    set
  ]
});

/*eslint-disable max-len,no-use-before-define*/







var _hasOwnProperty$1 = Object.prototype.hasOwnProperty;


var CONTEXT_FLOW_IN   = 1;
var CONTEXT_FLOW_OUT  = 2;
var CONTEXT_BLOCK_IN  = 3;
var CONTEXT_BLOCK_OUT = 4;


var CHOMPING_CLIP  = 1;
var CHOMPING_STRIP = 2;
var CHOMPING_KEEP  = 3;


var PATTERN_NON_PRINTABLE         = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/;
var PATTERN_FLOW_INDICATORS       = /[,\[\]\{\}]/;
var PATTERN_TAG_HANDLE            = /^(?:!|!!|![a-z\-]+!)$/i;
var PATTERN_TAG_URI               = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;


function _class(obj) { return Object.prototype.toString.call(obj); }

function is_EOL(c) {
  return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);
}

function is_WHITE_SPACE(c) {
  return (c === 0x09/* Tab */) || (c === 0x20/* Space */);
}

function is_WS_OR_EOL(c) {
  return (c === 0x09/* Tab */) ||
         (c === 0x20/* Space */) ||
         (c === 0x0A/* LF */) ||
         (c === 0x0D/* CR */);
}

function is_FLOW_INDICATOR(c) {
  return c === 0x2C/* , */ ||
         c === 0x5B/* [ */ ||
         c === 0x5D/* ] */ ||
         c === 0x7B/* { */ ||
         c === 0x7D/* } */;
}

function fromHexCode(c) {
  var lc;

  if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {
    return c - 0x30;
  }

  /*eslint-disable no-bitwise*/
  lc = c | 0x20;

  if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {
    return lc - 0x61 + 10;
  }

  return -1;
}

function escapedHexLen(c) {
  if (c === 0x78/* x */) { return 2; }
  if (c === 0x75/* u */) { return 4; }
  if (c === 0x55/* U */) { return 8; }
  return 0;
}

function fromDecimalCode(c) {
  if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {
    return c - 0x30;
  }

  return -1;
}

function simpleEscapeSequence(c) {
  /* eslint-disable indent */
  return (c === 0x30/* 0 */) ? '\x00' :
        (c === 0x61/* a */) ? '\x07' :
        (c === 0x62/* b */) ? '\x08' :
        (c === 0x74/* t */) ? '\x09' :
        (c === 0x09/* Tab */) ? '\x09' :
        (c === 0x6E/* n */) ? '\x0A' :
        (c === 0x76/* v */) ? '\x0B' :
        (c === 0x66/* f */) ? '\x0C' :
        (c === 0x72/* r */) ? '\x0D' :
        (c === 0x65/* e */) ? '\x1B' :
        (c === 0x20/* Space */) ? ' ' :
        (c === 0x22/* " */) ? '\x22' :
        (c === 0x2F/* / */) ? '/' :
        (c === 0x5C/* \ */) ? '\x5C' :
        (c === 0x4E/* N */) ? '\x85' :
        (c === 0x5F/* _ */) ? '\xA0' :
        (c === 0x4C/* L */) ? '\u2028' :
        (c === 0x50/* P */) ? '\u2029' : '';
}

function charFromCodepoint(c) {
  if (c <= 0xFFFF) {
    return String.fromCharCode(c);
  }
  // Encode UTF-16 surrogate pair
  // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF
  return String.fromCharCode(
    ((c - 0x010000) >> 10) + 0xD800,
    ((c - 0x010000) & 0x03FF) + 0xDC00
  );
}

var simpleEscapeCheck = new Array(256); // integer, for fast access
var simpleEscapeMap = new Array(256);
for (var i = 0; i < 256; i++) {
  simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;
  simpleEscapeMap[i] = simpleEscapeSequence(i);
}


function State$1(input, options) {
  this.input = input;

  this.filename  = options['filename']  || null;
  this.schema    = options['schema']    || _default;
  this.onWarning = options['onWarning'] || null;
  // (Hidden) Remove? makes the loader to expect YAML 1.1 documents
  // if such documents have no explicit %YAML directive
  this.legacy    = options['legacy']    || false;

  this.json      = options['json']      || false;
  this.listener  = options['listener']  || null;

  this.implicitTypes = this.schema.compiledImplicit;
  this.typeMap       = this.schema.compiledTypeMap;

  this.length     = input.length;
  this.position   = 0;
  this.line       = 0;
  this.lineStart  = 0;
  this.lineIndent = 0;

  // position of first leading tab in the current line,
  // used to make sure there are no tabs in the indentation
  this.firstTabInLine = -1;

  this.documents = [];

  /*
  this.version;
  this.checkLineBreaks;
  this.tagMap;
  this.anchorMap;
  this.tag;
  this.anchor;
  this.kind;
  this.result;*/

}


function generateError(state, message) {
  var mark = {
    name:     state.filename,
    buffer:   state.input.slice(0, -1), // omit trailing \0
    position: state.position,
    line:     state.line,
    column:   state.position - state.lineStart
  };

  mark.snippet = snippet(mark);

  return new exception(message, mark);
}

function throwError(state, message) {
  throw generateError(state, message);
}

function throwWarning(state, message) {
  if (state.onWarning) {
    state.onWarning.call(null, generateError(state, message));
  }
}


var directiveHandlers = {

  YAML: function handleYamlDirective(state, name, args) {

    var match, major, minor;

    if (state.version !== null) {
      throwError(state, 'duplication of %YAML directive');
    }

    if (args.length !== 1) {
      throwError(state, 'YAML directive accepts exactly one argument');
    }

    match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]);

    if (match === null) {
      throwError(state, 'ill-formed argument of the YAML directive');
    }

    major = parseInt(match[1], 10);
    minor = parseInt(match[2], 10);

    if (major !== 1) {
      throwError(state, 'unacceptable YAML version of the document');
    }

    state.version = args[0];
    state.checkLineBreaks = (minor < 2);

    if (minor !== 1 && minor !== 2) {
      throwWarning(state, 'unsupported YAML version of the document');
    }
  },

  TAG: function handleTagDirective(state, name, args) {

    var handle, prefix;

    if (args.length !== 2) {
      throwError(state, 'TAG directive accepts exactly two arguments');
    }

    handle = args[0];
    prefix = args[1];

    if (!PATTERN_TAG_HANDLE.test(handle)) {
      throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');
    }

    if (_hasOwnProperty$1.call(state.tagMap, handle)) {
      throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle');
    }

    if (!PATTERN_TAG_URI.test(prefix)) {
      throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');
    }

    try {
      prefix = decodeURIComponent(prefix);
    } catch (err) {
      throwError(state, 'tag prefix is malformed: ' + prefix);
    }

    state.tagMap[handle] = prefix;
  }
};


function captureSegment(state, start, end, checkJson) {
  var _position, _length, _character, _result;

  if (start < end) {
    _result = state.input.slice(start, end);

    if (checkJson) {
      for (_position = 0, _length = _result.length; _position < _length; _position += 1) {
        _character = _result.charCodeAt(_position);
        if (!(_character === 0x09 ||
              (0x20 <= _character && _character <= 0x10FFFF))) {
          throwError(state, 'expected valid JSON character');
        }
      }
    } else if (PATTERN_NON_PRINTABLE.test(_result)) {
      throwError(state, 'the stream contains non-printable characters');
    }

    state.result += _result;
  }
}

function mergeMappings(state, destination, source, overridableKeys) {
  var sourceKeys, key, index, quantity;

  if (!common.isObject(source)) {
    throwError(state, 'cannot merge mappings; the provided source object is unacceptable');
  }

  sourceKeys = Object.keys(source);

  for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {
    key = sourceKeys[index];

    if (!_hasOwnProperty$1.call(destination, key)) {
      destination[key] = source[key];
      overridableKeys[key] = true;
    }
  }
}

function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,
  startLine, startLineStart, startPos) {

  var index, quantity;

  // The output is a plain object here, so keys can only be strings.
  // We need to convert keyNode to a string, but doing so can hang the process
  // (deeply nested arrays that explode exponentially using aliases).
  if (Array.isArray(keyNode)) {
    keyNode = Array.prototype.slice.call(keyNode);

    for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {
      if (Array.isArray(keyNode[index])) {
        throwError(state, 'nested arrays are not supported inside keys');
      }

      if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {
        keyNode[index] = '[object Object]';
      }
    }
  }

  // Avoid code execution in load() via toString property
  // (still use its own toString for arrays, timestamps,
  // and whatever user schema extensions happen to have @@toStringTag)
  if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {
    keyNode = '[object Object]';
  }


  keyNode = String(keyNode);

  if (_result === null) {
    _result = {};
  }

  if (keyTag === 'tag:yaml.org,2002:merge') {
    if (Array.isArray(valueNode)) {
      for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {
        mergeMappings(state, _result, valueNode[index], overridableKeys);
      }
    } else {
      mergeMappings(state, _result, valueNode, overridableKeys);
    }
  } else {
    if (!state.json &&
        !_hasOwnProperty$1.call(overridableKeys, keyNode) &&
        _hasOwnProperty$1.call(_result, keyNode)) {
      state.line = startLine || state.line;
      state.lineStart = startLineStart || state.lineStart;
      state.position = startPos || state.position;
      throwError(state, 'duplicated mapping key');
    }

    // used for this specific key only because Object.defineProperty is slow
    if (keyNode === '__proto__') {
      Object.defineProperty(_result, keyNode, {
        configurable: true,
        enumerable: true,
        writable: true,
        value: valueNode
      });
    } else {
      _result[keyNode] = valueNode;
    }
    delete overridableKeys[keyNode];
  }

  return _result;
}

function readLineBreak(state) {
  var ch;

  ch = state.input.charCodeAt(state.position);

  if (ch === 0x0A/* LF */) {
    state.position++;
  } else if (ch === 0x0D/* CR */) {
    state.position++;
    if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {
      state.position++;
    }
  } else {
    throwError(state, 'a line break is expected');
  }

  state.line += 1;
  state.lineStart = state.position;
  state.firstTabInLine = -1;
}

function skipSeparationSpace(state, allowComments, checkIndent) {
  var lineBreaks = 0,
      ch = state.input.charCodeAt(state.position);

  while (ch !== 0) {
    while (is_WHITE_SPACE(ch)) {
      if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {
        state.firstTabInLine = state.position;
      }
      ch = state.input.charCodeAt(++state.position);
    }

    if (allowComments && ch === 0x23/* # */) {
      do {
        ch = state.input.charCodeAt(++state.position);
      } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);
    }

    if (is_EOL(ch)) {
      readLineBreak(state);

      ch = state.input.charCodeAt(state.position);
      lineBreaks++;
      state.lineIndent = 0;

      while (ch === 0x20/* Space */) {
        state.lineIndent++;
        ch = state.input.charCodeAt(++state.position);
      }
    } else {
      break;
    }
  }

  if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {
    throwWarning(state, 'deficient indentation');
  }

  return lineBreaks;
}

function testDocumentSeparator(state) {
  var _position = state.position,
      ch;

  ch = state.input.charCodeAt(_position);

  // Condition state.position === state.lineStart is tested
  // in parent on each call, for efficiency. No needs to test here again.
  if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&
      ch === state.input.charCodeAt(_position + 1) &&
      ch === state.input.charCodeAt(_position + 2)) {

    _position += 3;

    ch = state.input.charCodeAt(_position);

    if (ch === 0 || is_WS_OR_EOL(ch)) {
      return true;
    }
  }

  return false;
}

function writeFoldedLines(state, count) {
  if (count === 1) {
    state.result += ' ';
  } else if (count > 1) {
    state.result += common.repeat('\n', count - 1);
  }
}


function readPlainScalar(state, nodeIndent, withinFlowCollection) {
  var preceding,
      following,
      captureStart,
      captureEnd,
      hasPendingContent,
      _line,
      _lineStart,
      _lineIndent,
      _kind = state.kind,
      _result = state.result,
      ch;

  ch = state.input.charCodeAt(state.position);

  if (is_WS_OR_EOL(ch)      ||
      is_FLOW_INDICATOR(ch) ||
      ch === 0x23/* # */    ||
      ch === 0x26/* & */    ||
      ch === 0x2A/* * */    ||
      ch === 0x21/* ! */    ||
      ch === 0x7C/* | */    ||
      ch === 0x3E/* > */    ||
      ch === 0x27/* ' */    ||
      ch === 0x22/* " */    ||
      ch === 0x25/* % */    ||
      ch === 0x40/* @ */    ||
      ch === 0x60/* ` */) {
    return false;
  }

  if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {
    following = state.input.charCodeAt(state.position + 1);

    if (is_WS_OR_EOL(following) ||
        withinFlowCollection && is_FLOW_INDICATOR(following)) {
      return false;
    }
  }

  state.kind = 'scalar';
  state.result = '';
  captureStart = captureEnd = state.position;
  hasPendingContent = false;

  while (ch !== 0) {
    if (ch === 0x3A/* : */) {
      following = state.input.charCodeAt(state.position + 1);

      if (is_WS_OR_EOL(following) ||
          withinFlowCollection && is_FLOW_INDICATOR(following)) {
        break;
      }

    } else if (ch === 0x23/* # */) {
      preceding = state.input.charCodeAt(state.position - 1);

      if (is_WS_OR_EOL(preceding)) {
        break;
      }

    } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||
               withinFlowCollection && is_FLOW_INDICATOR(ch)) {
      break;

    } else if (is_EOL(ch)) {
      _line = state.line;
      _lineStart = state.lineStart;
      _lineIndent = state.lineIndent;
      skipSeparationSpace(state, false, -1);

      if (state.lineIndent >= nodeIndent) {
        hasPendingContent = true;
        ch = state.input.charCodeAt(state.position);
        continue;
      } else {
        state.position = captureEnd;
        state.line = _line;
        state.lineStart = _lineStart;
        state.lineIndent = _lineIndent;
        break;
      }
    }

    if (hasPendingContent) {
      captureSegment(state, captureStart, captureEnd, false);
      writeFoldedLines(state, state.line - _line);
      captureStart = captureEnd = state.position;
      hasPendingContent = false;
    }

    if (!is_WHITE_SPACE(ch)) {
      captureEnd = state.position + 1;
    }

    ch = state.input.charCodeAt(++state.position);
  }

  captureSegment(state, captureStart, captureEnd, false);

  if (state.result) {
    return true;
  }

  state.kind = _kind;
  state.result = _result;
  return false;
}

function readSingleQuotedScalar(state, nodeIndent) {
  var ch,
      captureStart, captureEnd;

  ch = state.input.charCodeAt(state.position);

  if (ch !== 0x27/* ' */) {
    return false;
  }

  state.kind = 'scalar';
  state.result = '';
  state.position++;
  captureStart = captureEnd = state.position;

  while ((ch = state.input.charCodeAt(state.position)) !== 0) {
    if (ch === 0x27/* ' */) {
      captureSegment(state, captureStart, state.position, true);
      ch = state.input.charCodeAt(++state.position);

      if (ch === 0x27/* ' */) {
        captureStart = state.position;
        state.position++;
        captureEnd = state.position;
      } else {
        return true;
      }

    } else if (is_EOL(ch)) {
      captureSegment(state, captureStart, captureEnd, true);
      writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
      captureStart = captureEnd = state.position;

    } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
      throwError(state, 'unexpected end of the document within a single quoted scalar');

    } else {
      state.position++;
      captureEnd = state.position;
    }
  }

  throwError(state, 'unexpected end of the stream within a single quoted scalar');
}

function readDoubleQuotedScalar(state, nodeIndent) {
  var captureStart,
      captureEnd,
      hexLength,
      hexResult,
      tmp,
      ch;

  ch = state.input.charCodeAt(state.position);

  if (ch !== 0x22/* " */) {
    return false;
  }

  state.kind = 'scalar';
  state.result = '';
  state.position++;
  captureStart = captureEnd = state.position;

  while ((ch = state.input.charCodeAt(state.position)) !== 0) {
    if (ch === 0x22/* " */) {
      captureSegment(state, captureStart, state.position, true);
      state.position++;
      return true;

    } else if (ch === 0x5C/* \ */) {
      captureSegment(state, captureStart, state.position, true);
      ch = state.input.charCodeAt(++state.position);

      if (is_EOL(ch)) {
        skipSeparationSpace(state, false, nodeIndent);

        // TODO: rework to inline fn with no type cast?
      } else if (ch < 256 && simpleEscapeCheck[ch]) {
        state.result += simpleEscapeMap[ch];
        state.position++;

      } else if ((tmp = escapedHexLen(ch)) > 0) {
        hexLength = tmp;
        hexResult = 0;

        for (; hexLength > 0; hexLength--) {
          ch = state.input.charCodeAt(++state.position);

          if ((tmp = fromHexCode(ch)) >= 0) {
            hexResult = (hexResult << 4) + tmp;

          } else {
            throwError(state, 'expected hexadecimal character');
          }
        }

        state.result += charFromCodepoint(hexResult);

        state.position++;

      } else {
        throwError(state, 'unknown escape sequence');
      }

      captureStart = captureEnd = state.position;

    } else if (is_EOL(ch)) {
      captureSegment(state, captureStart, captureEnd, true);
      writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
      captureStart = captureEnd = state.position;

    } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
      throwError(state, 'unexpected end of the document within a double quoted scalar');

    } else {
      state.position++;
      captureEnd = state.position;
    }
  }

  throwError(state, 'unexpected end of the stream within a double quoted scalar');
}

function readFlowCollection(state, nodeIndent) {
  var readNext = true,
      _line,
      _lineStart,
      _pos,
      _tag     = state.tag,
      _result,
      _anchor  = state.anchor,
      following,
      terminator,
      isPair,
      isExplicitPair,
      isMapping,
      overridableKeys = Object.create(null),
      keyNode,
      keyTag,
      valueNode,
      ch;

  ch = state.input.charCodeAt(state.position);

  if (ch === 0x5B/* [ */) {
    terminator = 0x5D;/* ] */
    isMapping = false;
    _result = [];
  } else if (ch === 0x7B/* { */) {
    terminator = 0x7D;/* } */
    isMapping = true;
    _result = {};
  } else {
    return false;
  }

  if (state.anchor !== null) {
    state.anchorMap[state.anchor] = _result;
  }

  ch = state.input.charCodeAt(++state.position);

  while (ch !== 0) {
    skipSeparationSpace(state, true, nodeIndent);

    ch = state.input.charCodeAt(state.position);

    if (ch === terminator) {
      state.position++;
      state.tag = _tag;
      state.anchor = _anchor;
      state.kind = isMapping ? 'mapping' : 'sequence';
      state.result = _result;
      return true;
    } else if (!readNext) {
      throwError(state, 'missed comma between flow collection entries');
    } else if (ch === 0x2C/* , */) {
      // "flow collection entries can never be completely empty", as per YAML 1.2, section 7.4
      throwError(state, "expected the node content, but found ','");
    }

    keyTag = keyNode = valueNode = null;
    isPair = isExplicitPair = false;

    if (ch === 0x3F/* ? */) {
      following = state.input.charCodeAt(state.position + 1);

      if (is_WS_OR_EOL(following)) {
        isPair = isExplicitPair = true;
        state.position++;
        skipSeparationSpace(state, true, nodeIndent);
      }
    }

    _line = state.line; // Save the current line.
    _lineStart = state.lineStart;
    _pos = state.position;
    composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
    keyTag = state.tag;
    keyNode = state.result;
    skipSeparationSpace(state, true, nodeIndent);

    ch = state.input.charCodeAt(state.position);

    if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {
      isPair = true;
      ch = state.input.charCodeAt(++state.position);
      skipSeparationSpace(state, true, nodeIndent);
      composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
      valueNode = state.result;
    }

    if (isMapping) {
      storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);
    } else if (isPair) {
      _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));
    } else {
      _result.push(keyNode);
    }

    skipSeparationSpace(state, true, nodeIndent);

    ch = state.input.charCodeAt(state.position);

    if (ch === 0x2C/* , */) {
      readNext = true;
      ch = state.input.charCodeAt(++state.position);
    } else {
      readNext = false;
    }
  }

  throwError(state, 'unexpected end of the stream within a flow collection');
}

function readBlockScalar(state, nodeIndent) {
  var captureStart,
      folding,
      chomping       = CHOMPING_CLIP,
      didReadContent = false,
      detectedIndent = false,
      textIndent     = nodeIndent,
      emptyLines     = 0,
      atMoreIndented = false,
      tmp,
      ch;

  ch = state.input.charCodeAt(state.position);

  if (ch === 0x7C/* | */) {
    folding = false;
  } else if (ch === 0x3E/* > */) {
    folding = true;
  } else {
    return false;
  }

  state.kind = 'scalar';
  state.result = '';

  while (ch !== 0) {
    ch = state.input.charCodeAt(++state.position);

    if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {
      if (CHOMPING_CLIP === chomping) {
        chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;
      } else {
        throwError(state, 'repeat of a chomping mode identifier');
      }

    } else if ((tmp = fromDecimalCode(ch)) >= 0) {
      if (tmp === 0) {
        throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');
      } else if (!detectedIndent) {
        textIndent = nodeIndent + tmp - 1;
        detectedIndent = true;
      } else {
        throwError(state, 'repeat of an indentation width identifier');
      }

    } else {
      break;
    }
  }

  if (is_WHITE_SPACE(ch)) {
    do { ch = state.input.charCodeAt(++state.position); }
    while (is_WHITE_SPACE(ch));

    if (ch === 0x23/* # */) {
      do { ch = state.input.charCodeAt(++state.position); }
      while (!is_EOL(ch) && (ch !== 0));
    }
  }

  while (ch !== 0) {
    readLineBreak(state);
    state.lineIndent = 0;

    ch = state.input.charCodeAt(state.position);

    while ((!detectedIndent || state.lineIndent < textIndent) &&
           (ch === 0x20/* Space */)) {
      state.lineIndent++;
      ch = state.input.charCodeAt(++state.position);
    }

    if (!detectedIndent && state.lineIndent > textIndent) {
      textIndent = state.lineIndent;
    }

    if (is_EOL(ch)) {
      emptyLines++;
      continue;
    }

    // End of the scalar.
    if (state.lineIndent < textIndent) {

      // Perform the chomping.
      if (chomping === CHOMPING_KEEP) {
        state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines);
      } else if (chomping === CHOMPING_CLIP) {
        if (didReadContent) { // i.e. only if the scalar is not empty.
          state.result += '\n';
        }
      }

      // Break this `while` cycle and go to the funciton's epilogue.
      break;
    }

    // Folded style: use fancy rules to handle line breaks.
    if (folding) {

      // Lines starting with white space characters (more-indented lines) are not folded.
      if (is_WHITE_SPACE(ch)) {
        atMoreIndented = true;
        // except for the first content line (cf. Example 8.1)
        state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines);

      // End of more-indented block.
      } else if (atMoreIndented) {
        atMoreIndented = false;
        state.result += common.repeat('\n', emptyLines + 1);

      // Just one line break - perceive as the same line.
      } else if (emptyLines === 0) {
        if (didReadContent) { // i.e. only if we have already read some scalar content.
          state.result += ' ';
        }

      // Several line breaks - perceive as different lines.
      } else {
        state.result += common.repeat('\n', emptyLines);
      }

    // Literal style: just add exact number of line breaks between content lines.
    } else {
      // Keep all line breaks except the header line break.
      state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines);
    }

    didReadContent = true;
    detectedIndent = true;
    emptyLines = 0;
    captureStart = state.position;

    while (!is_EOL(ch) && (ch !== 0)) {
      ch = state.input.charCodeAt(++state.position);
    }

    captureSegment(state, captureStart, state.position, false);
  }

  return true;
}

function readBlockSequence(state, nodeIndent) {
  var _line,
      _tag      = state.tag,
      _anchor   = state.anchor,
      _result   = [],
      following,
      detected  = false,
      ch;

  // there is a leading tab before this token, so it can't be a block sequence/mapping;
  // it can still be flow sequence/mapping or a scalar
  if (state.firstTabInLine !== -1) return false;

  if (state.anchor !== null) {
    state.anchorMap[state.anchor] = _result;
  }

  ch = state.input.charCodeAt(state.position);

  while (ch !== 0) {
    if (state.firstTabInLine !== -1) {
      state.position = state.firstTabInLine;
      throwError(state, 'tab characters must not be used in indentation');
    }

    if (ch !== 0x2D/* - */) {
      break;
    }

    following = state.input.charCodeAt(state.position + 1);

    if (!is_WS_OR_EOL(following)) {
      break;
    }

    detected = true;
    state.position++;

    if (skipSeparationSpace(state, true, -1)) {
      if (state.lineIndent <= nodeIndent) {
        _result.push(null);
        ch = state.input.charCodeAt(state.position);
        continue;
      }
    }

    _line = state.line;
    composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);
    _result.push(state.result);
    skipSeparationSpace(state, true, -1);

    ch = state.input.charCodeAt(state.position);

    if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {
      throwError(state, 'bad indentation of a sequence entry');
    } else if (state.lineIndent < nodeIndent) {
      break;
    }
  }

  if (detected) {
    state.tag = _tag;
    state.anchor = _anchor;
    state.kind = 'sequence';
    state.result = _result;
    return true;
  }
  return false;
}

function readBlockMapping(state, nodeIndent, flowIndent) {
  var following,
      allowCompact,
      _line,
      _keyLine,
      _keyLineStart,
      _keyPos,
      _tag          = state.tag,
      _anchor       = state.anchor,
      _result       = {},
      overridableKeys = Object.create(null),
      keyTag        = null,
      keyNode       = null,
      valueNode     = null,
      atExplicitKey = false,
      detected      = false,
      ch;

  // there is a leading tab before this token, so it can't be a block sequence/mapping;
  // it can still be flow sequence/mapping or a scalar
  if (state.firstTabInLine !== -1) return false;

  if (state.anchor !== null) {
    state.anchorMap[state.anchor] = _result;
  }

  ch = state.input.charCodeAt(state.position);

  while (ch !== 0) {
    if (!atExplicitKey && state.firstTabInLine !== -1) {
      state.position = state.firstTabInLine;
      throwError(state, 'tab characters must not be used in indentation');
    }

    following = state.input.charCodeAt(state.position + 1);
    _line = state.line; // Save the current line.

    //
    // Explicit notation case. There are two separate blocks:
    // first for the key (denoted by "?") and second for the value (denoted by ":")
    //
    if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {

      if (ch === 0x3F/* ? */) {
        if (atExplicitKey) {
          storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
          keyTag = keyNode = valueNode = null;
        }

        detected = true;
        atExplicitKey = true;
        allowCompact = true;

      } else if (atExplicitKey) {
        // i.e. 0x3A/* : */ === character after the explicit key.
        atExplicitKey = false;
        allowCompact = true;

      } else {
        throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');
      }

      state.position += 1;
      ch = following;

    //
    // Implicit notation case. Flow-style node as the key first, then ":", and the value.
    //
    } else {
      _keyLine = state.line;
      _keyLineStart = state.lineStart;
      _keyPos = state.position;

      if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {
        // Neither implicit nor explicit notation.
        // Reading is done. Go to the epilogue.
        break;
      }

      if (state.line === _line) {
        ch = state.input.charCodeAt(state.position);

        while (is_WHITE_SPACE(ch)) {
          ch = state.input.charCodeAt(++state.position);
        }

        if (ch === 0x3A/* : */) {
          ch = state.input.charCodeAt(++state.position);

          if (!is_WS_OR_EOL(ch)) {
            throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');
          }

          if (atExplicitKey) {
            storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
            keyTag = keyNode = valueNode = null;
          }

          detected = true;
          atExplicitKey = false;
          allowCompact = false;
          keyTag = state.tag;
          keyNode = state.result;

        } else if (detected) {
          throwError(state, 'can not read an implicit mapping pair; a colon is missed');

        } else {
          state.tag = _tag;
          state.anchor = _anchor;
          return true; // Keep the result of `composeNode`.
        }

      } else if (detected) {
        throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');

      } else {
        state.tag = _tag;
        state.anchor = _anchor;
        return true; // Keep the result of `composeNode`.
      }
    }

    //
    // Common reading code for both explicit and implicit notations.
    //
    if (state.line === _line || state.lineIndent > nodeIndent) {
      if (atExplicitKey) {
        _keyLine = state.line;
        _keyLineStart = state.lineStart;
        _keyPos = state.position;
      }

      if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {
        if (atExplicitKey) {
          keyNode = state.result;
        } else {
          valueNode = state.result;
        }
      }

      if (!atExplicitKey) {
        storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);
        keyTag = keyNode = valueNode = null;
      }

      skipSeparationSpace(state, true, -1);
      ch = state.input.charCodeAt(state.position);
    }

    if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {
      throwError(state, 'bad indentation of a mapping entry');
    } else if (state.lineIndent < nodeIndent) {
      break;
    }
  }

  //
  // Epilogue.
  //

  // Special case: last mapping's node contains only the key in explicit notation.
  if (atExplicitKey) {
    storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
  }

  // Expose the resulting mapping.
  if (detected) {
    state.tag = _tag;
    state.anchor = _anchor;
    state.kind = 'mapping';
    state.result = _result;
  }

  return detected;
}

function readTagProperty(state) {
  var _position,
      isVerbatim = false,
      isNamed    = false,
      tagHandle,
      tagName,
      ch;

  ch = state.input.charCodeAt(state.position);

  if (ch !== 0x21/* ! */) return false;

  if (state.tag !== null) {
    throwError(state, 'duplication of a tag property');
  }

  ch = state.input.charCodeAt(++state.position);

  if (ch === 0x3C/* < */) {
    isVerbatim = true;
    ch = state.input.charCodeAt(++state.position);

  } else if (ch === 0x21/* ! */) {
    isNamed = true;
    tagHandle = '!!';
    ch = state.input.charCodeAt(++state.position);

  } else {
    tagHandle = '!';
  }

  _position = state.position;

  if (isVerbatim) {
    do { ch = state.input.charCodeAt(++state.position); }
    while (ch !== 0 && ch !== 0x3E/* > */);

    if (state.position < state.length) {
      tagName = state.input.slice(_position, state.position);
      ch = state.input.charCodeAt(++state.position);
    } else {
      throwError(state, 'unexpected end of the stream within a verbatim tag');
    }
  } else {
    while (ch !== 0 && !is_WS_OR_EOL(ch)) {

      if (ch === 0x21/* ! */) {
        if (!isNamed) {
          tagHandle = state.input.slice(_position - 1, state.position + 1);

          if (!PATTERN_TAG_HANDLE.test(tagHandle)) {
            throwError(state, 'named tag handle cannot contain such characters');
          }

          isNamed = true;
          _position = state.position + 1;
        } else {
          throwError(state, 'tag suffix cannot contain exclamation marks');
        }
      }

      ch = state.input.charCodeAt(++state.position);
    }

    tagName = state.input.slice(_position, state.position);

    if (PATTERN_FLOW_INDICATORS.test(tagName)) {
      throwError(state, 'tag suffix cannot contain flow indicator characters');
    }
  }

  if (tagName && !PATTERN_TAG_URI.test(tagName)) {
    throwError(state, 'tag name cannot contain such characters: ' + tagName);
  }

  try {
    tagName = decodeURIComponent(tagName);
  } catch (err) {
    throwError(state, 'tag name is malformed: ' + tagName);
  }

  if (isVerbatim) {
    state.tag = tagName;

  } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {
    state.tag = state.tagMap[tagHandle] + tagName;

  } else if (tagHandle === '!') {
    state.tag = '!' + tagName;

  } else if (tagHandle === '!!') {
    state.tag = 'tag:yaml.org,2002:' + tagName;

  } else {
    throwError(state, 'undeclared tag handle "' + tagHandle + '"');
  }

  return true;
}

function readAnchorProperty(state) {
  var _position,
      ch;

  ch = state.input.charCodeAt(state.position);

  if (ch !== 0x26/* & */) return false;

  if (state.anchor !== null) {
    throwError(state, 'duplication of an anchor property');
  }

  ch = state.input.charCodeAt(++state.position);
  _position = state.position;

  while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
    ch = state.input.charCodeAt(++state.position);
  }

  if (state.position === _position) {
    throwError(state, 'name of an anchor node must contain at least one character');
  }

  state.anchor = state.input.slice(_position, state.position);
  return true;
}

function readAlias(state) {
  var _position, alias,
      ch;

  ch = state.input.charCodeAt(state.position);

  if (ch !== 0x2A/* * */) return false;

  ch = state.input.charCodeAt(++state.position);
  _position = state.position;

  while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
    ch = state.input.charCodeAt(++state.position);
  }

  if (state.position === _position) {
    throwError(state, 'name of an alias node must contain at least one character');
  }

  alias = state.input.slice(_position, state.position);

  if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {
    throwError(state, 'unidentified alias "' + alias + '"');
  }

  state.result = state.anchorMap[alias];
  skipSeparationSpace(state, true, -1);
  return true;
}

function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {
  var allowBlockStyles,
      allowBlockScalars,
      allowBlockCollections,
      indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this<parent
      atNewLine  = false,
      hasContent = false,
      typeIndex,
      typeQuantity,
      typeList,
      type,
      flowIndent,
      blockIndent;

  if (state.listener !== null) {
    state.listener('open', state);
  }

  state.tag    = null;
  state.anchor = null;
  state.kind   = null;
  state.result = null;

  allowBlockStyles = allowBlockScalars = allowBlockCollections =
    CONTEXT_BLOCK_OUT === nodeContext ||
    CONTEXT_BLOCK_IN  === nodeContext;

  if (allowToSeek) {
    if (skipSeparationSpace(state, true, -1)) {
      atNewLine = true;

      if (state.lineIndent > parentIndent) {
        indentStatus = 1;
      } else if (state.lineIndent === parentIndent) {
        indentStatus = 0;
      } else if (state.lineIndent < parentIndent) {
        indentStatus = -1;
      }
    }
  }

  if (indentStatus === 1) {
    while (readTagProperty(state) || readAnchorProperty(state)) {
      if (skipSeparationSpace(state, true, -1)) {
        atNewLine = true;
        allowBlockCollections = allowBlockStyles;

        if (state.lineIndent > parentIndent) {
          indentStatus = 1;
        } else if (state.lineIndent === parentIndent) {
          indentStatus = 0;
        } else if (state.lineIndent < parentIndent) {
          indentStatus = -1;
        }
      } else {
        allowBlockCollections = false;
      }
    }
  }

  if (allowBlockCollections) {
    allowBlockCollections = atNewLine || allowCompact;
  }

  if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {
    if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {
      flowIndent = parentIndent;
    } else {
      flowIndent = parentIndent + 1;
    }

    blockIndent = state.position - state.lineStart;

    if (indentStatus === 1) {
      if (allowBlockCollections &&
          (readBlockSequence(state, blockIndent) ||
           readBlockMapping(state, blockIndent, flowIndent)) ||
          readFlowCollection(state, flowIndent)) {
        hasContent = true;
      } else {
        if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||
            readSingleQuotedScalar(state, flowIndent) ||
            readDoubleQuotedScalar(state, flowIndent)) {
          hasContent = true;

        } else if (readAlias(state)) {
          hasContent = true;

          if (state.tag !== null || state.anchor !== null) {
            throwError(state, 'alias node should not have any properties');
          }

        } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {
          hasContent = true;

          if (state.tag === null) {
            state.tag = '?';
          }
        }

        if (state.anchor !== null) {
          state.anchorMap[state.anchor] = state.result;
        }
      }
    } else if (indentStatus === 0) {
      // Special case: block sequences are allowed to have same indentation level as the parent.
      // http://www.yaml.org/spec/1.2/spec.html#id2799784
      hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);
    }
  }

  if (state.tag === null) {
    if (state.anchor !== null) {
      state.anchorMap[state.anchor] = state.result;
    }

  } else if (state.tag === '?') {
    // Implicit resolving is not allowed for non-scalar types, and '?'
    // non-specific tag is only automatically assigned to plain scalars.
    //
    // We only need to check kind conformity in case user explicitly assigns '?'
    // tag, for example like this: "!<?> [0]"
    //
    if (state.result !== null && state.kind !== 'scalar') {
      throwError(state, 'unacceptable node kind for !<?> tag; it should be "scalar", not "' + state.kind + '"');
    }

    for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {
      type = state.implicitTypes[typeIndex];

      if (type.resolve(state.result)) { // `state.result` updated in resolver if matched
        state.result = type.construct(state.result);
        state.tag = type.tag;
        if (state.anchor !== null) {
          state.anchorMap[state.anchor] = state.result;
        }
        break;
      }
    }
  } else if (state.tag !== '!') {
    if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {
      type = state.typeMap[state.kind || 'fallback'][state.tag];
    } else {
      // looking for multi type
      type = null;
      typeList = state.typeMap.multi[state.kind || 'fallback'];

      for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {
        if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {
          type = typeList[typeIndex];
          break;
        }
      }
    }

    if (!type) {
      throwError(state, 'unknown tag !<' + state.tag + '>');
    }

    if (state.result !== null && type.kind !== state.kind) {
      throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"');
    }

    if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched
      throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');
    } else {
      state.result = type.construct(state.result, state.tag);
      if (state.anchor !== null) {
        state.anchorMap[state.anchor] = state.result;
      }
    }
  }

  if (state.listener !== null) {
    state.listener('close', state);
  }
  return state.tag !== null ||  state.anchor !== null || hasContent;
}

function readDocument(state) {
  var documentStart = state.position,
      _position,
      directiveName,
      directiveArgs,
      hasDirectives = false,
      ch;

  state.version = null;
  state.checkLineBreaks = state.legacy;
  state.tagMap = Object.create(null);
  state.anchorMap = Object.create(null);

  while ((ch = state.input.charCodeAt(state.position)) !== 0) {
    skipSeparationSpace(state, true, -1);

    ch = state.input.charCodeAt(state.position);

    if (state.lineIndent > 0 || ch !== 0x25/* % */) {
      break;
    }

    hasDirectives = true;
    ch = state.input.charCodeAt(++state.position);
    _position = state.position;

    while (ch !== 0 && !is_WS_OR_EOL(ch)) {
      ch = state.input.charCodeAt(++state.position);
    }

    directiveName = state.input.slice(_position, state.position);
    directiveArgs = [];

    if (directiveName.length < 1) {
      throwError(state, 'directive name must not be less than one character in length');
    }

    while (ch !== 0) {
      while (is_WHITE_SPACE(ch)) {
        ch = state.input.charCodeAt(++state.position);
      }

      if (ch === 0x23/* # */) {
        do { ch = state.input.charCodeAt(++state.position); }
        while (ch !== 0 && !is_EOL(ch));
        break;
      }

      if (is_EOL(ch)) break;

      _position = state.position;

      while (ch !== 0 && !is_WS_OR_EOL(ch)) {
        ch = state.input.charCodeAt(++state.position);
      }

      directiveArgs.push(state.input.slice(_position, state.position));
    }

    if (ch !== 0) readLineBreak(state);

    if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {
      directiveHandlers[directiveName](state, directiveName, directiveArgs);
    } else {
      throwWarning(state, 'unknown document directive "' + directiveName + '"');
    }
  }

  skipSeparationSpace(state, true, -1);

  if (state.lineIndent === 0 &&
      state.input.charCodeAt(state.position)     === 0x2D/* - */ &&
      state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&
      state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {
    state.position += 3;
    skipSeparationSpace(state, true, -1);

  } else if (hasDirectives) {
    throwError(state, 'directives end mark is expected');
  }

  composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);
  skipSeparationSpace(state, true, -1);

  if (state.checkLineBreaks &&
      PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {
    throwWarning(state, 'non-ASCII line breaks are interpreted as content');
  }

  state.documents.push(state.result);

  if (state.position === state.lineStart && testDocumentSeparator(state)) {

    if (state.input.charCodeAt(state.position) === 0x2E/* . */) {
      state.position += 3;
      skipSeparationSpace(state, true, -1);
    }
    return;
  }

  if (state.position < (state.length - 1)) {
    throwError(state, 'end of the stream or a document separator is expected');
  } else {
    return;
  }
}


function loadDocuments(input, options) {
  input = String(input);
  options = options || {};

  if (input.length !== 0) {

    // Add tailing `\n` if not exists
    if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&
        input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {
      input += '\n';
    }

    // Strip BOM
    if (input.charCodeAt(0) === 0xFEFF) {
      input = input.slice(1);
    }
  }

  var state = new State$1(input, options);

  var nullpos = input.indexOf('\0');

  if (nullpos !== -1) {
    state.position = nullpos;
    throwError(state, 'null byte is not allowed in input');
  }

  // Use 0 as string terminator. That significantly simplifies bounds check.
  state.input += '\0';

  while (state.input.charCodeAt(state.position) === 0x20/* Space */) {
    state.lineIndent += 1;
    state.position += 1;
  }

  while (state.position < (state.length - 1)) {
    readDocument(state);
  }

  return state.documents;
}


function loadAll$1(input, iterator, options) {
  if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {
    options = iterator;
    iterator = null;
  }

  var documents = loadDocuments(input, options);

  if (typeof iterator !== 'function') {
    return documents;
  }

  for (var index = 0, length = documents.length; index < length; index += 1) {
    iterator(documents[index]);
  }
}


function load$1(input, options) {
  var documents = loadDocuments(input, options);

  if (documents.length === 0) {
    /*eslint-disable no-undefined*/
    return undefined;
  } else if (documents.length === 1) {
    return documents[0];
  }
  throw new exception('expected a single document in the stream, but found more');
}


var loadAll_1 = loadAll$1;
var load_1    = load$1;

var loader = {
	loadAll: loadAll_1,
	load: load_1
};

/*eslint-disable no-use-before-define*/





var _toString       = Object.prototype.toString;
var _hasOwnProperty = Object.prototype.hasOwnProperty;

var CHAR_BOM                  = 0xFEFF;
var CHAR_TAB                  = 0x09; /* Tab */
var CHAR_LINE_FEED            = 0x0A; /* LF */
var CHAR_CARRIAGE_RETURN      = 0x0D; /* CR */
var CHAR_SPACE                = 0x20; /* Space */
var CHAR_EXCLAMATION          = 0x21; /* ! */
var CHAR_DOUBLE_QUOTE         = 0x22; /* " */
var CHAR_SHARP                = 0x23; /* # */
var CHAR_PERCENT              = 0x25; /* % */
var CHAR_AMPERSAND            = 0x26; /* & */
var CHAR_SINGLE_QUOTE         = 0x27; /* ' */
var CHAR_ASTERISK             = 0x2A; /* * */
var CHAR_COMMA                = 0x2C; /* , */
var CHAR_MINUS                = 0x2D; /* - */
var CHAR_COLON                = 0x3A; /* : */
var CHAR_EQUALS               = 0x3D; /* = */
var CHAR_GREATER_THAN         = 0x3E; /* > */
var CHAR_QUESTION             = 0x3F; /* ? */
var CHAR_COMMERCIAL_AT        = 0x40; /* @ */
var CHAR_LEFT_SQUARE_BRACKET  = 0x5B; /* [ */
var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */
var CHAR_GRAVE_ACCENT         = 0x60; /* ` */
var CHAR_LEFT_CURLY_BRACKET   = 0x7B; /* { */
var CHAR_VERTICAL_LINE        = 0x7C; /* | */
var CHAR_RIGHT_CURLY_BRACKET  = 0x7D; /* } */

var ESCAPE_SEQUENCES = {};

ESCAPE_SEQUENCES[0x00]   = '\\0';
ESCAPE_SEQUENCES[0x07]   = '\\a';
ESCAPE_SEQUENCES[0x08]   = '\\b';
ESCAPE_SEQUENCES[0x09]   = '\\t';
ESCAPE_SEQUENCES[0x0A]   = '\\n';
ESCAPE_SEQUENCES[0x0B]   = '\\v';
ESCAPE_SEQUENCES[0x0C]   = '\\f';
ESCAPE_SEQUENCES[0x0D]   = '\\r';
ESCAPE_SEQUENCES[0x1B]   = '\\e';
ESCAPE_SEQUENCES[0x22]   = '\\"';
ESCAPE_SEQUENCES[0x5C]   = '\\\\';
ESCAPE_SEQUENCES[0x85]   = '\\N';
ESCAPE_SEQUENCES[0xA0]   = '\\_';
ESCAPE_SEQUENCES[0x2028] = '\\L';
ESCAPE_SEQUENCES[0x2029] = '\\P';

var DEPRECATED_BOOLEANS_SYNTAX = [
  'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',
  'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'
];

var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;

function compileStyleMap(schema, map) {
  var result, keys, index, length, tag, style, type;

  if (map === null) return {};

  result = {};
  keys = Object.keys(map);

  for (index = 0, length = keys.length; index < length; index += 1) {
    tag = keys[index];
    style = String(map[tag]);

    if (tag.slice(0, 2) === '!!') {
      tag = 'tag:yaml.org,2002:' + tag.slice(2);
    }
    type = schema.compiledTypeMap['fallback'][tag];

    if (type && _hasOwnProperty.call(type.styleAliases, style)) {
      style = type.styleAliases[style];
    }

    result[tag] = style;
  }

  return result;
}

function encodeHex(character) {
  var string, handle, length;

  string = character.toString(16).toUpperCase();

  if (character <= 0xFF) {
    handle = 'x';
    length = 2;
  } else if (character <= 0xFFFF) {
    handle = 'u';
    length = 4;
  } else if (character <= 0xFFFFFFFF) {
    handle = 'U';
    length = 8;
  } else {
    throw new exception('code point within a string may not be greater than 0xFFFFFFFF');
  }

  return '\\' + handle + common.repeat('0', length - string.length) + string;
}


var QUOTING_TYPE_SINGLE = 1,
    QUOTING_TYPE_DOUBLE = 2;

function State(options) {
  this.schema        = options['schema'] || _default;
  this.indent        = Math.max(1, (options['indent'] || 2));
  this.noArrayIndent = options['noArrayIndent'] || false;
  this.skipInvalid   = options['skipInvalid'] || false;
  this.flowLevel     = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);
  this.styleMap      = compileStyleMap(this.schema, options['styles'] || null);
  this.sortKeys      = options['sortKeys'] || false;
  this.lineWidth     = options['lineWidth'] || 80;
  this.noRefs        = options['noRefs'] || false;
  this.noCompatMode  = options['noCompatMode'] || false;
  this.condenseFlow  = options['condenseFlow'] || false;
  this.quotingType   = options['quotingType'] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;
  this.forceQuotes   = options['forceQuotes'] || false;
  this.replacer      = typeof options['replacer'] === 'function' ? options['replacer'] : null;

  this.implicitTypes = this.schema.compiledImplicit;
  this.explicitTypes = this.schema.compiledExplicit;

  this.tag = null;
  this.result = '';

  this.duplicates = [];
  this.usedDuplicates = null;
}

// Indents every line in a string. Empty lines (\n only) are not indented.
function indentString(string, spaces) {
  var ind = common.repeat(' ', spaces),
      position = 0,
      next = -1,
      result = '',
      line,
      length = string.length;

  while (position < length) {
    next = string.indexOf('\n', position);
    if (next === -1) {
      line = string.slice(position);
      position = length;
    } else {
      line = string.slice(position, next + 1);
      position = next + 1;
    }

    if (line.length && line !== '\n') result += ind;

    result += line;
  }

  return result;
}

function generateNextLine(state, level) {
  return '\n' + common.repeat(' ', state.indent * level);
}

function testImplicitResolving(state, str) {
  var index, length, type;

  for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {
    type = state.implicitTypes[index];

    if (type.resolve(str)) {
      return true;
    }
  }

  return false;
}

// [33] s-white ::= s-space | s-tab
function isWhitespace(c) {
  return c === CHAR_SPACE || c === CHAR_TAB;
}

// Returns true if the character can be printed without escaping.
// From YAML 1.2: "any allowed characters known to be non-printable
// should also be escaped. [However,] This isn’t mandatory"
// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029.
function isPrintable(c) {
  return  (0x00020 <= c && c <= 0x00007E)
      || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)
      || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)
      ||  (0x10000 <= c && c <= 0x10FFFF);
}

// [34] ns-char ::= nb-char - s-white
// [27] nb-char ::= c-printable - b-char - c-byte-order-mark
// [26] b-char  ::= b-line-feed | b-carriage-return
// Including s-white (for some reason, examples doesn't match specs in this aspect)
// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark
function isNsCharOrWhitespace(c) {
  return isPrintable(c)
    && c !== CHAR_BOM
    // - b-char
    && c !== CHAR_CARRIAGE_RETURN
    && c !== CHAR_LINE_FEED;
}

// [127]  ns-plain-safe(c) ::= c = flow-out  ⇒ ns-plain-safe-out
//                             c = flow-in   ⇒ ns-plain-safe-in
//                             c = block-key ⇒ ns-plain-safe-out
//                             c = flow-key  ⇒ ns-plain-safe-in
// [128] ns-plain-safe-out ::= ns-char
// [129]  ns-plain-safe-in ::= ns-char - c-flow-indicator
// [130]  ns-plain-char(c) ::=  ( ns-plain-safe(c) - “:” - “#” )
//                            | ( /* An ns-char preceding */ “#” )
//                            | ( “:” /* Followed by an ns-plain-safe(c) */ )
function isPlainSafe(c, prev, inblock) {
  var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);
  var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);
  return (
    // ns-plain-safe
    inblock ? // c = flow-in
      cIsNsCharOrWhitespace
      : cIsNsCharOrWhitespace
        // - c-flow-indicator
        && c !== CHAR_COMMA
        && c !== CHAR_LEFT_SQUARE_BRACKET
        && c !== CHAR_RIGHT_SQUARE_BRACKET
        && c !== CHAR_LEFT_CURLY_BRACKET
        && c !== CHAR_RIGHT_CURLY_BRACKET
  )
    // ns-plain-char
    && c !== CHAR_SHARP // false on '#'
    && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '
    || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'
    || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'
}

// Simplified test for values allowed as the first character in plain style.
function isPlainSafeFirst(c) {
  // Uses a subset of ns-char - c-indicator
  // where ns-char = nb-char - s-white.
  // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part
  return isPrintable(c) && c !== CHAR_BOM
    && !isWhitespace(c) // - s-white
    // - (c-indicator ::=
    // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”
    && c !== CHAR_MINUS
    && c !== CHAR_QUESTION
    && c !== CHAR_COLON
    && c !== CHAR_COMMA
    && c !== CHAR_LEFT_SQUARE_BRACKET
    && c !== CHAR_RIGHT_SQUARE_BRACKET
    && c !== CHAR_LEFT_CURLY_BRACKET
    && c !== CHAR_RIGHT_CURLY_BRACKET
    // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"”
    && c !== CHAR_SHARP
    && c !== CHAR_AMPERSAND
    && c !== CHAR_ASTERISK
    && c !== CHAR_EXCLAMATION
    && c !== CHAR_VERTICAL_LINE
    && c !== CHAR_EQUALS
    && c !== CHAR_GREATER_THAN
    && c !== CHAR_SINGLE_QUOTE
    && c !== CHAR_DOUBLE_QUOTE
    // | “%” | “@” | “`”)
    && c !== CHAR_PERCENT
    && c !== CHAR_COMMERCIAL_AT
    && c !== CHAR_GRAVE_ACCENT;
}

// Simplified test for values allowed as the last character in plain style.
function isPlainSafeLast(c) {
  // just not whitespace or colon, it will be checked to be plain character later
  return !isWhitespace(c) && c !== CHAR_COLON;
}

// Same as 'string'.codePointAt(pos), but works in older browsers.
function codePointAt(string, pos) {
  var first = string.charCodeAt(pos), second;
  if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {
    second = string.charCodeAt(pos + 1);
    if (second >= 0xDC00 && second <= 0xDFFF) {
      // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
      return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
    }
  }
  return first;
}

// Determines whether block indentation indicator is required.
function needIndentIndicator(string) {
  var leadingSpaceRe = /^\n* /;
  return leadingSpaceRe.test(string);
}

var STYLE_PLAIN   = 1,
    STYLE_SINGLE  = 2,
    STYLE_LITERAL = 3,
    STYLE_FOLDED  = 4,
    STYLE_DOUBLE  = 5;

// Determines which scalar styles are possible and returns the preferred style.
// lineWidth = -1 => no limit.
// Pre-conditions: str.length > 0.
// Post-conditions:
//    STYLE_PLAIN or STYLE_SINGLE => no \n are in the string.
//    STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).
//    STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).
function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,
  testAmbiguousType, quotingType, forceQuotes, inblock) {

  var i;
  var char = 0;
  var prevChar = null;
  var hasLineBreak = false;
  var hasFoldableLine = false; // only checked if shouldTrackWidth
  var shouldTrackWidth = lineWidth !== -1;
  var previousLineBreak = -1; // count the first line correctly
  var plain = isPlainSafeFirst(codePointAt(string, 0))
          && isPlainSafeLast(codePointAt(string, string.length - 1));

  if (singleLineOnly || forceQuotes) {
    // Case: no block styles.
    // Check for disallowed characters to rule out plain and single.
    for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {
      char = codePointAt(string, i);
      if (!isPrintable(char)) {
        return STYLE_DOUBLE;
      }
      plain = plain && isPlainSafe(char, prevChar, inblock);
      prevChar = char;
    }
  } else {
    // Case: block styles permitted.
    for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {
      char = codePointAt(string, i);
      if (char === CHAR_LINE_FEED) {
        hasLineBreak = true;
        // Check if any line can be folded.
        if (shouldTrackWidth) {
          hasFoldableLine = hasFoldableLine ||
            // Foldable line = too long, and not more-indented.
            (i - previousLineBreak - 1 > lineWidth &&
             string[previousLineBreak + 1] !== ' ');
          previousLineBreak = i;
        }
      } else if (!isPrintable(char)) {
        return STYLE_DOUBLE;
      }
      plain = plain && isPlainSafe(char, prevChar, inblock);
      prevChar = char;
    }
    // in case the end is missing a \n
    hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&
      (i - previousLineBreak - 1 > lineWidth &&
       string[previousLineBreak + 1] !== ' '));
  }
  // Although every style can represent \n without escaping, prefer block styles
  // for multiline, since they're more readable and they don't add empty lines.
  // Also prefer folding a super-long line.
  if (!hasLineBreak && !hasFoldableLine) {
    // Strings interpretable as another type have to be quoted;
    // e.g. the string 'true' vs. the boolean true.
    if (plain && !forceQuotes && !testAmbiguousType(string)) {
      return STYLE_PLAIN;
    }
    return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;
  }
  // Edge case: block indentation indicator can only have one digit.
  if (indentPerLevel > 9 && needIndentIndicator(string)) {
    return STYLE_DOUBLE;
  }
  // At this point we know block styles are valid.
  // Prefer literal style unless we want to fold.
  if (!forceQuotes) {
    return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;
  }
  return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;
}

// Note: line breaking/folding is implemented for only the folded style.
// NB. We drop the last trailing newline (if any) of a returned block scalar
//  since the dumper adds its own newline. This always works:
//    • No ending newline => unaffected; already using strip "-" chomping.
//    • Ending newline    => removed then restored.
//  Importantly, this keeps the "+" chomp indicator from gaining an extra line.
function writeScalar(state, string, level, iskey, inblock) {
  state.dump = (function () {
    if (string.length === 0) {
      return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''";
    }
    if (!state.noCompatMode) {
      if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {
        return state.quotingType === QUOTING_TYPE_DOUBLE ? ('"' + string + '"') : ("'" + string + "'");
      }
    }

    var indent = state.indent * Math.max(1, level); // no 0-indent scalars
    // As indentation gets deeper, let the width decrease monotonically
    // to the lower bound min(state.lineWidth, 40).
    // Note that this implies
    //  state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.
    //  state.lineWidth > 40 + state.indent: width decreases until the lower bound.
    // This behaves better than a constant minimum width which disallows narrower options,
    // or an indent threshold which causes the width to suddenly increase.
    var lineWidth = state.lineWidth === -1
      ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);

    // Without knowing if keys are implicit/explicit, assume implicit for safety.
    var singleLineOnly = iskey
      // No block styles in flow mode.
      || (state.flowLevel > -1 && level >= state.flowLevel);
    function testAmbiguity(string) {
      return testImplicitResolving(state, string);
    }

    switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,
      testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {

      case STYLE_PLAIN:
        return string;
      case STYLE_SINGLE:
        return "'" + string.replace(/'/g, "''") + "'";
      case STYLE_LITERAL:
        return '|' + blockHeader(string, state.indent)
          + dropEndingNewline(indentString(string, indent));
      case STYLE_FOLDED:
        return '>' + blockHeader(string, state.indent)
          + dropEndingNewline(indentString(foldString(string, lineWidth), indent));
      case STYLE_DOUBLE:
        return '"' + escapeString(string) + '"';
      default:
        throw new exception('impossible error: invalid scalar style');
    }
  }());
}

// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.
function blockHeader(string, indentPerLevel) {
  var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';

  // note the special case: the string '\n' counts as a "trailing" empty line.
  var clip =          string[string.length - 1] === '\n';
  var keep = clip && (string[string.length - 2] === '\n' || string === '\n');
  var chomp = keep ? '+' : (clip ? '' : '-');

  return indentIndicator + chomp + '\n';
}

// (See the note for writeScalar.)
function dropEndingNewline(string) {
  return string[string.length - 1] === '\n' ? string.slice(0, -1) : string;
}

// Note: a long line without a suitable break point will exceed the width limit.
// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.
function foldString(string, width) {
  // In folded style, $k$ consecutive newlines output as $k+1$ newlines—
  // unless they're before or after a more-indented line, or at the very
  // beginning or end, in which case $k$ maps to $k$.
  // Therefore, parse each chunk as newline(s) followed by a content line.
  var lineRe = /(\n+)([^\n]*)/g;

  // first line (possibly an empty line)
  var result = (function () {
    var nextLF = string.indexOf('\n');
    nextLF = nextLF !== -1 ? nextLF : string.length;
    lineRe.lastIndex = nextLF;
    return foldLine(string.slice(0, nextLF), width);
  }());
  // If we haven't reached the first content line yet, don't add an extra \n.
  var prevMoreIndented = string[0] === '\n' || string[0] === ' ';
  var moreIndented;

  // rest of the lines
  var match;
  while ((match = lineRe.exec(string))) {
    var prefix = match[1], line = match[2];
    moreIndented = (line[0] === ' ');
    result += prefix
      + (!prevMoreIndented && !moreIndented && line !== ''
        ? '\n' : '')
      + foldLine(line, width);
    prevMoreIndented = moreIndented;
  }

  return result;
}

// Greedy line breaking.
// Picks the longest line under the limit each time,
// otherwise settles for the shortest line over the limit.
// NB. More-indented lines *cannot* be folded, as that would add an extra \n.
function foldLine(line, width) {
  if (line === '' || line[0] === ' ') return line;

  // Since a more-indented line adds a \n, breaks can't be followed by a space.
  var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.
  var match;
  // start is an inclusive index. end, curr, and next are exclusive.
  var start = 0, end, curr = 0, next = 0;
  var result = '';

  // Invariants: 0 <= start <= length-1.
  //   0 <= curr <= next <= max(0, length-2). curr - start <= width.
  // Inside the loop:
  //   A match implies length >= 2, so curr and next are <= length-2.
  while ((match = breakRe.exec(line))) {
    next = match.index;
    // maintain invariant: curr - start <= width
    if (next - start > width) {
      end = (curr > start) ? curr : next; // derive end <= length-2
      result += '\n' + line.slice(start, end);
      // skip the space that was output as \n
      start = end + 1;                    // derive start <= length-1
    }
    curr = next;
  }

  // By the invariants, start <= length-1, so there is something left over.
  // It is either the whole string or a part starting from non-whitespace.
  result += '\n';
  // Insert a break if the remainder is too long and there is a break available.
  if (line.length - start > width && curr > start) {
    result += line.slice(start, curr) + '\n' + line.slice(curr + 1);
  } else {
    result += line.slice(start);
  }

  return result.slice(1); // drop extra \n joiner
}

// Escapes a double-quoted string.
function escapeString(string) {
  var result = '';
  var char = 0;
  var escapeSeq;

  for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {
    char = codePointAt(string, i);
    escapeSeq = ESCAPE_SEQUENCES[char];

    if (!escapeSeq && isPrintable(char)) {
      result += string[i];
      if (char >= 0x10000) result += string[i + 1];
    } else {
      result += escapeSeq || encodeHex(char);
    }
  }

  return result;
}

function writeFlowSequence(state, level, object) {
  var _result = '',
      _tag    = state.tag,
      index,
      length,
      value;

  for (index = 0, length = object.length; index < length; index += 1) {
    value = object[index];

    if (state.replacer) {
      value = state.replacer.call(object, String(index), value);
    }

    // Write only valid elements, put null instead of invalid elements.
    if (writeNode(state, level, value, false, false) ||
        (typeof value === 'undefined' &&
         writeNode(state, level, null, false, false))) {

      if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');
      _result += state.dump;
    }
  }

  state.tag = _tag;
  state.dump = '[' + _result + ']';
}

function writeBlockSequence(state, level, object, compact) {
  var _result = '',
      _tag    = state.tag,
      index,
      length,
      value;

  for (index = 0, length = object.length; index < length; index += 1) {
    value = object[index];

    if (state.replacer) {
      value = state.replacer.call(object, String(index), value);
    }

    // Write only valid elements, put null instead of invalid elements.
    if (writeNode(state, level + 1, value, true, true, false, true) ||
        (typeof value === 'undefined' &&
         writeNode(state, level + 1, null, true, true, false, true))) {

      if (!compact || _result !== '') {
        _result += generateNextLine(state, level);
      }

      if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
        _result += '-';
      } else {
        _result += '- ';
      }

      _result += state.dump;
    }
  }

  state.tag = _tag;
  state.dump = _result || '[]'; // Empty sequence if no valid values.
}

function writeFlowMapping(state, level, object) {
  var _result       = '',
      _tag          = state.tag,
      objectKeyList = Object.keys(object),
      index,
      length,
      objectKey,
      objectValue,
      pairBuffer;

  for (index = 0, length = objectKeyList.length; index < length; index += 1) {

    pairBuffer = '';
    if (_result !== '') pairBuffer += ', ';

    if (state.condenseFlow) pairBuffer += '"';

    objectKey = objectKeyList[index];
    objectValue = object[objectKey];

    if (state.replacer) {
      objectValue = state.replacer.call(object, objectKey, objectValue);
    }

    if (!writeNode(state, level, objectKey, false, false)) {
      continue; // Skip this pair because of invalid key;
    }

    if (state.dump.length > 1024) pairBuffer += '? ';

    pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' ');

    if (!writeNode(state, level, objectValue, false, false)) {
      continue; // Skip this pair because of invalid value.
    }

    pairBuffer += state.dump;

    // Both key and value are valid.
    _result += pairBuffer;
  }

  state.tag = _tag;
  state.dump = '{' + _result + '}';
}

function writeBlockMapping(state, level, object, compact) {
  var _result       = '',
      _tag          = state.tag,
      objectKeyList = Object.keys(object),
      index,
      length,
      objectKey,
      objectValue,
      explicitPair,
      pairBuffer;

  // Allow sorting keys so that the output file is deterministic
  if (state.sortKeys === true) {
    // Default sorting
    objectKeyList.sort();
  } else if (typeof state.sortKeys === 'function') {
    // Custom sort function
    objectKeyList.sort(state.sortKeys);
  } else if (state.sortKeys) {
    // Something is wrong
    throw new exception('sortKeys must be a boolean or a function');
  }

  for (index = 0, length = objectKeyList.length; index < length; index += 1) {
    pairBuffer = '';

    if (!compact || _result !== '') {
      pairBuffer += generateNextLine(state, level);
    }

    objectKey = objectKeyList[index];
    objectValue = object[objectKey];

    if (state.replacer) {
      objectValue = state.replacer.call(object, objectKey, objectValue);
    }

    if (!writeNode(state, level + 1, objectKey, true, true, true)) {
      continue; // Skip this pair because of invalid key.
    }

    explicitPair = (state.tag !== null && state.tag !== '?') ||
                   (state.dump && state.dump.length > 1024);

    if (explicitPair) {
      if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
        pairBuffer += '?';
      } else {
        pairBuffer += '? ';
      }
    }

    pairBuffer += state.dump;

    if (explicitPair) {
      pairBuffer += generateNextLine(state, level);
    }

    if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {
      continue; // Skip this pair because of invalid value.
    }

    if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
      pairBuffer += ':';
    } else {
      pairBuffer += ': ';
    }

    pairBuffer += state.dump;

    // Both key and value are valid.
    _result += pairBuffer;
  }

  state.tag = _tag;
  state.dump = _result || '{}'; // Empty mapping if no valid pairs.
}

function detectType(state, object, explicit) {
  var _result, typeList, index, length, type, style;

  typeList = explicit ? state.explicitTypes : state.implicitTypes;

  for (index = 0, length = typeList.length; index < length; index += 1) {
    type = typeList[index];

    if ((type.instanceOf  || type.predicate) &&
        (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&
        (!type.predicate  || type.predicate(object))) {

      if (explicit) {
        if (type.multi && type.representName) {
          state.tag = type.representName(object);
        } else {
          state.tag = type.tag;
        }
      } else {
        state.tag = '?';
      }

      if (type.represent) {
        style = state.styleMap[type.tag] || type.defaultStyle;

        if (_toString.call(type.represent) === '[object Function]') {
          _result = type.represent(object, style);
        } else if (_hasOwnProperty.call(type.represent, style)) {
          _result = type.represent[style](object, style);
        } else {
          throw new exception('!<' + type.tag + '> tag resolver accepts not "' + style + '" style');
        }

        state.dump = _result;
      }

      return true;
    }
  }

  return false;
}

// Serializes `object` and writes it to global `result`.
// Returns true on success, or false on invalid object.
//
function writeNode(state, level, object, block, compact, iskey, isblockseq) {
  state.tag = null;
  state.dump = object;

  if (!detectType(state, object, false)) {
    detectType(state, object, true);
  }

  var type = _toString.call(state.dump);
  var inblock = block;
  var tagStr;

  if (block) {
    block = (state.flowLevel < 0 || state.flowLevel > level);
  }

  var objectOrArray = type === '[object Object]' || type === '[object Array]',
      duplicateIndex,
      duplicate;

  if (objectOrArray) {
    duplicateIndex = state.duplicates.indexOf(object);
    duplicate = duplicateIndex !== -1;
  }

  if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {
    compact = false;
  }

  if (duplicate && state.usedDuplicates[duplicateIndex]) {
    state.dump = '*ref_' + duplicateIndex;
  } else {
    if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {
      state.usedDuplicates[duplicateIndex] = true;
    }
    if (type === '[object Object]') {
      if (block && (Object.keys(state.dump).length !== 0)) {
        writeBlockMapping(state, level, state.dump, compact);
        if (duplicate) {
          state.dump = '&ref_' + duplicateIndex + state.dump;
        }
      } else {
        writeFlowMapping(state, level, state.dump);
        if (duplicate) {
          state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;
        }
      }
    } else if (type === '[object Array]') {
      if (block && (state.dump.length !== 0)) {
        if (state.noArrayIndent && !isblockseq && level > 0) {
          writeBlockSequence(state, level - 1, state.dump, compact);
        } else {
          writeBlockSequence(state, level, state.dump, compact);
        }
        if (duplicate) {
          state.dump = '&ref_' + duplicateIndex + state.dump;
        }
      } else {
        writeFlowSequence(state, level, state.dump);
        if (duplicate) {
          state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;
        }
      }
    } else if (type === '[object String]') {
      if (state.tag !== '?') {
        writeScalar(state, state.dump, level, iskey, inblock);
      }
    } else if (type === '[object Undefined]') {
      return false;
    } else {
      if (state.skipInvalid) return false;
      throw new exception('unacceptable kind of an object to dump ' + type);
    }

    if (state.tag !== null && state.tag !== '?') {
      // Need to encode all characters except those allowed by the spec:
      //
      // [35] ns-dec-digit    ::=  [#x30-#x39] /* 0-9 */
      // [36] ns-hex-digit    ::=  ns-dec-digit
      //                         | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */
      // [37] ns-ascii-letter ::=  [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */
      // [38] ns-word-char    ::=  ns-dec-digit | ns-ascii-letter | “-”
      // [39] ns-uri-char     ::=  “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”
      //                         | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”
      //                         | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”
      //
      // Also need to encode '!' because it has special meaning (end of tag prefix).
      //
      tagStr = encodeURI(
        state.tag[0] === '!' ? state.tag.slice(1) : state.tag
      ).replace(/!/g, '%21');

      if (state.tag[0] === '!') {
        tagStr = '!' + tagStr;
      } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {
        tagStr = '!!' + tagStr.slice(18);
      } else {
        tagStr = '!<' + tagStr + '>';
      }

      state.dump = tagStr + ' ' + state.dump;
    }
  }

  return true;
}

function getDuplicateReferences(object, state) {
  var objects = [],
      duplicatesIndexes = [],
      index,
      length;

  inspectNode(object, objects, duplicatesIndexes);

  for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {
    state.duplicates.push(objects[duplicatesIndexes[index]]);
  }
  state.usedDuplicates = new Array(length);
}

function inspectNode(object, objects, duplicatesIndexes) {
  var objectKeyList,
      index,
      length;

  if (object !== null && typeof object === 'object') {
    index = objects.indexOf(object);
    if (index !== -1) {
      if (duplicatesIndexes.indexOf(index) === -1) {
        duplicatesIndexes.push(index);
      }
    } else {
      objects.push(object);

      if (Array.isArray(object)) {
        for (index = 0, length = object.length; index < length; index += 1) {
          inspectNode(object[index], objects, duplicatesIndexes);
        }
      } else {
        objectKeyList = Object.keys(object);

        for (index = 0, length = objectKeyList.length; index < length; index += 1) {
          inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);
        }
      }
    }
  }
}

function dump$1(input, options) {
  options = options || {};

  var state = new State(options);

  if (!state.noRefs) getDuplicateReferences(input, state);

  var value = input;

  if (state.replacer) {
    value = state.replacer.call({ '': value }, '', value);
  }

  if (writeNode(state, 0, value, true, true)) return state.dump + '\n';

  return '';
}

var dump_1 = dump$1;

var dumper = {
	dump: dump_1
};

function renamed(from, to) {
  return function () {
    throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +
      'Use yaml.' + to + ' instead, which is now safe by default.');
  };
}


var Type                = type;
var Schema              = schema;
var FAILSAFE_SCHEMA     = failsafe;
var JSON_SCHEMA         = json;
var CORE_SCHEMA         = core;
var DEFAULT_SCHEMA      = _default;
var load                = loader.load;
var loadAll             = loader.loadAll;
var dump                = dumper.dump;
var YAMLException       = exception;

// Re-export all types in case user wants to create custom schema
var types = {
  binary:    binary,
  float:     float,
  map:       map,
  null:      _null,
  pairs:     pairs,
  set:       set,
  timestamp: timestamp,
  bool:      bool,
  int:       int,
  merge:     merge,
  omap:      omap,
  seq:       seq,
  str:       str
};

// Removed functions from JS-YAML 3.0.x
var safeLoad            = renamed('safeLoad', 'load');
var safeLoadAll         = renamed('safeLoadAll', 'loadAll');
var safeDump            = renamed('safeDump', 'dump');

var jsYaml = {
	Type: Type,
	Schema: Schema,
	FAILSAFE_SCHEMA: FAILSAFE_SCHEMA,
	JSON_SCHEMA: JSON_SCHEMA,
	CORE_SCHEMA: CORE_SCHEMA,
	DEFAULT_SCHEMA: DEFAULT_SCHEMA,
	load: load,
	loadAll: loadAll,
	dump: dump,
	YAMLException: YAMLException,
	types: types,
	safeLoad: safeLoad,
	safeLoadAll: safeLoadAll,
	safeDump: safeDump
};

export default jsYaml;
export { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };
#!/usr/bin/env node


'use strict';

/*eslint-disable no-console*/


var fs       = require('fs');
var argparse = require('argparse');
var yaml     = require('..');


////////////////////////////////////////////////////////////////////////////////


var cli = new argparse.ArgumentParser({
  prog:     'js-yaml',
  add_help:  true
});

cli.add_argument('-v', '--version', {
  action: 'version',
  version: require('../package.json').version
});

cli.add_argument('-c', '--compact', {
  help:   'Display errors in compact mode',
  action: 'store_true'
});

// deprecated (not needed after we removed output colors)
// option suppressed, but not completely removed for compatibility
cli.add_argument('-j', '--to-json', {
  help:   argparse.SUPPRESS,
  dest:   'json',
  action: 'store_true'
});

cli.add_argument('-t', '--trace', {
  help:   'Show stack trace on error',
  action: 'store_true'
});

cli.add_argument('file', {
  help:   'File to read, utf-8 encoded without BOM',
  nargs:  '?',
  default: '-'
});


////////////////////////////////////////////////////////////////////////////////


var options = cli.parse_args();


////////////////////////////////////////////////////////////////////////////////

function readFile(filename, encoding, callback) {
  if (options.file === '-') {
    // read from stdin

    var chunks = [];

    process.stdin.on('data', function (chunk) {
      chunks.push(chunk);
    });

    process.stdin.on('end', function () {
      return callback(null, Buffer.concat(chunks).toString(encoding));
    });
  } else {
    fs.readFile(filename, encoding, callback);
  }
}

readFile(options.file, 'utf8', function (error, input) {
  var output, isYaml;

  if (error) {
    if (error.code === 'ENOENT') {
      console.error('File not found: ' + options.file);
      process.exit(2);
    }

    console.error(
      options.trace && error.stack ||
      error.message ||
      String(error));

    process.exit(1);
  }

  try {
    output = JSON.parse(input);
    isYaml = false;
  } catch (err) {
    if (err instanceof SyntaxError) {
      try {
        output = [];
        yaml.loadAll(input, function (doc) { output.push(doc); }, {});
        isYaml = true;

        if (output.length === 0) output = null;
        else if (output.length === 1) output = output[0];

      } catch (e) {
        if (options.trace && err.stack) console.error(e.stack);
        else console.error(e.toString(options.compact));

        process.exit(1);
      }
    } else {
      console.error(
        options.trace && err.stack ||
        err.message ||
        String(err));

      process.exit(1);
    }
  }

  if (isYaml) console.log(JSON.stringify(output, null, '  '));
  else console.log(yaml.dump(output));
});
{
  "name": "lazy-val",
  "version": "1.0.5",
  "main": "out/main.js",
  "author": "Vladimir Krivosheev",
  "license": "MIT",
  "repository": "develar/lazy-val",
  "homepage": "https://github.com/develar/lazy-val",
  "files": [
    "out"
  ],
  "devDependencies": {
    "typescript": "^4.2.4"
  },
  "typings": "./out/main.d.ts"
}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Lazy = void 0;
class Lazy {
    constructor(creator) {
        this._value = null;
        this.creator = creator;
    }
    get hasValue() {
        return this.creator == null;
    }
    get value() {
        if (this.creator == null) {
            return this._value;
        }
        const result = this.creator();
        this.value = result;
        return result;
    }
    set value(value) {
        this._value = value;
        this.creator = null;
    }
}
exports.Lazy = Lazy;
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;AAAA,MAAa,IAAI;IAIf,YAAY,OAAyB;QAH7B,WAAM,GAAsB,IAAI,CAAA;QAItC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAA;IAC7B,CAAC;IAED,IAAI,KAAK;QACP,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;YACxB,OAAO,IAAI,CAAC,MAAQ,CAAA;SACrB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAC7B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;QACnB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,KAAK,CAAC,KAAiB;QACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACrB,CAAC;CACF;AA1BD,oBA0BC","sourcesContent":["export class Lazy<T> {\n  private _value: Promise<T> | null = null\n  private creator: (() => Promise<T>) | null\n\n  constructor(creator: () => Promise<T>) {\n    this.creator = creator\n  }\n\n  get hasValue() {\n    return this.creator == null\n  }\n\n  get value(): Promise<T> {\n    if (this.creator == null) {\n      return this._value!!\n    }\n\n    const result = this.creator()\n    this.value = result\n    return result\n  }\n\n  set value(value: Promise<T>) {\n    this._value = value\n    this.creator = null\n  }\n}"]}Copyright jQuery Foundation and other contributors <https://jquery.org/>

Based on Underscore.js, copyright Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>

This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
available at https://github.com/lodash/lodash

The following license applies to all parts of this software except as
documented below:

====

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

====

Copyright and related rights for sample code are waived via CC0. Sample
code is defined as all source code displayed within the prose of the
documentation.

CC0: http://creativecommons.org/publicdomain/zero/1.0/

====

Files located in the node_modules and vendor directories are externally
maintained libraries used by this software which have their own
licenses; we recommend you read them, as their terms may differ from the
terms above.
/**
 * lodash (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */

/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0;

/** `Object#toString` result references. */
var symbolTag = '[object Symbol]';

/**
 * Used to match `RegExp`
 * [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns).
 */
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g,
    reHasRegExpChar = RegExp(reRegExpChar.source);

/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;

/** Detect free variable `self`. */
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;

/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();

/** Used for built-in method references. */
var objectProto = Object.prototype;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
 * of values.
 */
var objectToString = objectProto.toString;

/** Built-in value references. */
var Symbol = root.Symbol;

/** Used to convert symbols to primitives and strings. */
var symbolProto = Symbol ? Symbol.prototype : undefined,
    symbolToString = symbolProto ? symbolProto.toString : undefined;

/**
 * The base implementation of `_.toString` which doesn't convert nullish
 * values to empty strings.
 *
 * @private
 * @param {*} value The value to process.
 * @returns {string} Returns the string.
 */
function baseToString(value) {
  // Exit early for strings to avoid a performance hit in some environments.
  if (typeof value == 'string') {
    return value;
  }
  if (isSymbol(value)) {
    return symbolToString ? symbolToString.call(value) : '';
  }
  var result = (value + '');
  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
}

/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */
function isObjectLike(value) {
  return !!value && typeof value == 'object';
}

/**
 * Checks if `value` is classified as a `Symbol` primitive or object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
 * @example
 *
 * _.isSymbol(Symbol.iterator);
 * // => true
 *
 * _.isSymbol('abc');
 * // => false
 */
function isSymbol(value) {
  return typeof value == 'symbol' ||
    (isObjectLike(value) && objectToString.call(value) == symbolTag);
}

/**
 * Converts `value` to a string. An empty string is returned for `null`
 * and `undefined` values. The sign of `-0` is preserved.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to process.
 * @returns {string} Returns the string.
 * @example
 *
 * _.toString(null);
 * // => ''
 *
 * _.toString(-0);
 * // => '-0'
 *
 * _.toString([1, 2, 3]);
 * // => '1,2,3'
 */
function toString(value) {
  return value == null ? '' : baseToString(value);
}

/**
 * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+",
 * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`.
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category String
 * @param {string} [string=''] The string to escape.
 * @returns {string} Returns the escaped string.
 * @example
 *
 * _.escapeRegExp('[lodash](https://lodash.com/)');
 * // => '\[lodash\]\(https://lodash\.com/\)'
 */
function escapeRegExp(string) {
  string = toString(string);
  return (string && reHasRegExpChar.test(string))
    ? string.replace(reRegExpChar, '\\$&')
    : string;
}

module.exports = escapeRegExp;
{
  "name": "lodash.escaperegexp",
  "version": "4.1.2",
  "description": "The lodash method `_.escapeRegExp` exported as a module.",
  "homepage": "https://lodash.com/",
  "icon": "https://lodash.com/icon.svg",
  "license": "MIT",
  "author": "John-David Dalton <john.david.dalton@gmail.com> (http://allyoucanleet.com/)",
  "repository": "lodash/lodash"
}Copyright JS Foundation and other contributors <https://js.foundation/>

Based on Underscore.js, copyright Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>

This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
available at https://github.com/lodash/lodash

The following license applies to all parts of this software except as
documented below:

====

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

====

Copyright and related rights for sample code are waived via CC0. Sample
code is defined as all source code displayed within the prose of the
documentation.

CC0: http://creativecommons.org/publicdomain/zero/1.0/

====

Files located in the node_modules and vendor directories are externally
maintained libraries used by this software which have their own
licenses; we recommend you read them, as their terms may differ from the
terms above.
/**
 * Lodash (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright JS Foundation and other contributors <https://js.foundation/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */

/** Used as the size to enable large array optimizations. */
var LARGE_ARRAY_SIZE = 200;

/** Used to stand-in for `undefined` hash values. */
var HASH_UNDEFINED = '__lodash_hash_undefined__';

/** Used to compose bitmasks for value comparisons. */
var COMPARE_PARTIAL_FLAG = 1,
    COMPARE_UNORDERED_FLAG = 2;

/** Used as references for various `Number` constants. */
var MAX_SAFE_INTEGER = 9007199254740991;

/** `Object#toString` result references. */
var argsTag = '[object Arguments]',
    arrayTag = '[object Array]',
    asyncTag = '[object AsyncFunction]',
    boolTag = '[object Boolean]',
    dateTag = '[object Date]',
    errorTag = '[object Error]',
    funcTag = '[object Function]',
    genTag = '[object GeneratorFunction]',
    mapTag = '[object Map]',
    numberTag = '[object Number]',
    nullTag = '[object Null]',
    objectTag = '[object Object]',
    promiseTag = '[object Promise]',
    proxyTag = '[object Proxy]',
    regexpTag = '[object RegExp]',
    setTag = '[object Set]',
    stringTag = '[object String]',
    symbolTag = '[object Symbol]',
    undefinedTag = '[object Undefined]',
    weakMapTag = '[object WeakMap]';

var arrayBufferTag = '[object ArrayBuffer]',
    dataViewTag = '[object DataView]',
    float32Tag = '[object Float32Array]',
    float64Tag = '[object Float64Array]',
    int8Tag = '[object Int8Array]',
    int16Tag = '[object Int16Array]',
    int32Tag = '[object Int32Array]',
    uint8Tag = '[object Uint8Array]',
    uint8ClampedTag = '[object Uint8ClampedArray]',
    uint16Tag = '[object Uint16Array]',
    uint32Tag = '[object Uint32Array]';

/**
 * Used to match `RegExp`
 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
 */
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;

/** Used to detect host constructors (Safari). */
var reIsHostCtor = /^\[object .+?Constructor\]$/;

/** Used to detect unsigned integer values. */
var reIsUint = /^(?:0|[1-9]\d*)$/;

/** Used to identify `toStringTag` values of typed arrays. */
var typedArrayTags = {};
typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
typedArrayTags[uint32Tag] = true;
typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
typedArrayTags[errorTag] = typedArrayTags[funcTag] =
typedArrayTags[mapTag] = typedArrayTags[numberTag] =
typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
typedArrayTags[setTag] = typedArrayTags[stringTag] =
typedArrayTags[weakMapTag] = false;

/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;

/** Detect free variable `self`. */
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;

/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();

/** Detect free variable `exports`. */
var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;

/** Detect free variable `module`. */
var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;

/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;

/** Detect free variable `process` from Node.js. */
var freeProcess = moduleExports && freeGlobal.process;

/** Used to access faster Node.js helpers. */
var nodeUtil = (function() {
  try {
    return freeProcess && freeProcess.binding && freeProcess.binding('util');
  } catch (e) {}
}());

/* Node.js helper references. */
var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;

/**
 * A specialized version of `_.filter` for arrays without support for
 * iteratee shorthands.
 *
 * @private
 * @param {Array} [array] The array to iterate over.
 * @param {Function} predicate The function invoked per iteration.
 * @returns {Array} Returns the new filtered array.
 */
function arrayFilter(array, predicate) {
  var index = -1,
      length = array == null ? 0 : array.length,
      resIndex = 0,
      result = [];

  while (++index < length) {
    var value = array[index];
    if (predicate(value, index, array)) {
      result[resIndex++] = value;
    }
  }
  return result;
}

/**
 * Appends the elements of `values` to `array`.
 *
 * @private
 * @param {Array} array The array to modify.
 * @param {Array} values The values to append.
 * @returns {Array} Returns `array`.
 */
function arrayPush(array, values) {
  var index = -1,
      length = values.length,
      offset = array.length;

  while (++index < length) {
    array[offset + index] = values[index];
  }
  return array;
}

/**
 * A specialized version of `_.some` for arrays without support for iteratee
 * shorthands.
 *
 * @private
 * @param {Array} [array] The array to iterate over.
 * @param {Function} predicate The function invoked per iteration.
 * @returns {boolean} Returns `true` if any element passes the predicate check,
 *  else `false`.
 */
function arraySome(array, predicate) {
  var index = -1,
      length = array == null ? 0 : array.length;

  while (++index < length) {
    if (predicate(array[index], index, array)) {
      return true;
    }
  }
  return false;
}

/**
 * The base implementation of `_.times` without support for iteratee shorthands
 * or max array length checks.
 *
 * @private
 * @param {number} n The number of times to invoke `iteratee`.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Array} Returns the array of results.
 */
function baseTimes(n, iteratee) {
  var index = -1,
      result = Array(n);

  while (++index < n) {
    result[index] = iteratee(index);
  }
  return result;
}

/**
 * The base implementation of `_.unary` without support for storing metadata.
 *
 * @private
 * @param {Function} func The function to cap arguments for.
 * @returns {Function} Returns the new capped function.
 */
function baseUnary(func) {
  return function(value) {
    return func(value);
  };
}

/**
 * Checks if a `cache` value for `key` exists.
 *
 * @private
 * @param {Object} cache The cache to query.
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function cacheHas(cache, key) {
  return cache.has(key);
}

/**
 * Gets the value at `key` of `object`.
 *
 * @private
 * @param {Object} [object] The object to query.
 * @param {string} key The key of the property to get.
 * @returns {*} Returns the property value.
 */
function getValue(object, key) {
  return object == null ? undefined : object[key];
}

/**
 * Converts `map` to its key-value pairs.
 *
 * @private
 * @param {Object} map The map to convert.
 * @returns {Array} Returns the key-value pairs.
 */
function mapToArray(map) {
  var index = -1,
      result = Array(map.size);

  map.forEach(function(value, key) {
    result[++index] = [key, value];
  });
  return result;
}

/**
 * Creates a unary function that invokes `func` with its argument transformed.
 *
 * @private
 * @param {Function} func The function to wrap.
 * @param {Function} transform The argument transform.
 * @returns {Function} Returns the new function.
 */
function overArg(func, transform) {
  return function(arg) {
    return func(transform(arg));
  };
}

/**
 * Converts `set` to an array of its values.
 *
 * @private
 * @param {Object} set The set to convert.
 * @returns {Array} Returns the values.
 */
function setToArray(set) {
  var index = -1,
      result = Array(set.size);

  set.forEach(function(value) {
    result[++index] = value;
  });
  return result;
}

/** Used for built-in method references. */
var arrayProto = Array.prototype,
    funcProto = Function.prototype,
    objectProto = Object.prototype;

/** Used to detect overreaching core-js shims. */
var coreJsData = root['__core-js_shared__'];

/** Used to resolve the decompiled source of functions. */
var funcToString = funcProto.toString;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/** Used to detect methods masquerading as native. */
var maskSrcKey = (function() {
  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
  return uid ? ('Symbol(src)_1.' + uid) : '';
}());

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var nativeObjectToString = objectProto.toString;

/** Used to detect if a method is native. */
var reIsNative = RegExp('^' +
  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
  .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
);

/** Built-in value references. */
var Buffer = moduleExports ? root.Buffer : undefined,
    Symbol = root.Symbol,
    Uint8Array = root.Uint8Array,
    propertyIsEnumerable = objectProto.propertyIsEnumerable,
    splice = arrayProto.splice,
    symToStringTag = Symbol ? Symbol.toStringTag : undefined;

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeGetSymbols = Object.getOwnPropertySymbols,
    nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
    nativeKeys = overArg(Object.keys, Object);

/* Built-in method references that are verified to be native. */
var DataView = getNative(root, 'DataView'),
    Map = getNative(root, 'Map'),
    Promise = getNative(root, 'Promise'),
    Set = getNative(root, 'Set'),
    WeakMap = getNative(root, 'WeakMap'),
    nativeCreate = getNative(Object, 'create');

/** Used to detect maps, sets, and weakmaps. */
var dataViewCtorString = toSource(DataView),
    mapCtorString = toSource(Map),
    promiseCtorString = toSource(Promise),
    setCtorString = toSource(Set),
    weakMapCtorString = toSource(WeakMap);

/** Used to convert symbols to primitives and strings. */
var symbolProto = Symbol ? Symbol.prototype : undefined,
    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;

/**
 * Creates a hash object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */
function Hash(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;

  this.clear();
  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}

/**
 * Removes all key-value entries from the hash.
 *
 * @private
 * @name clear
 * @memberOf Hash
 */
function hashClear() {
  this.__data__ = nativeCreate ? nativeCreate(null) : {};
  this.size = 0;
}

/**
 * Removes `key` and its value from the hash.
 *
 * @private
 * @name delete
 * @memberOf Hash
 * @param {Object} hash The hash to modify.
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function hashDelete(key) {
  var result = this.has(key) && delete this.__data__[key];
  this.size -= result ? 1 : 0;
  return result;
}

/**
 * Gets the hash value for `key`.
 *
 * @private
 * @name get
 * @memberOf Hash
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */
function hashGet(key) {
  var data = this.__data__;
  if (nativeCreate) {
    var result = data[key];
    return result === HASH_UNDEFINED ? undefined : result;
  }
  return hasOwnProperty.call(data, key) ? data[key] : undefined;
}

/**
 * Checks if a hash value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf Hash
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function hashHas(key) {
  var data = this.__data__;
  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
}

/**
 * Sets the hash `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf Hash
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the hash instance.
 */
function hashSet(key, value) {
  var data = this.__data__;
  this.size += this.has(key) ? 0 : 1;
  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
  return this;
}

// Add methods to `Hash`.
Hash.prototype.clear = hashClear;
Hash.prototype['delete'] = hashDelete;
Hash.prototype.get = hashGet;
Hash.prototype.has = hashHas;
Hash.prototype.set = hashSet;

/**
 * Creates an list cache object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */
function ListCache(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;

  this.clear();
  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}

/**
 * Removes all key-value entries from the list cache.
 *
 * @private
 * @name clear
 * @memberOf ListCache
 */
function listCacheClear() {
  this.__data__ = [];
  this.size = 0;
}

/**
 * Removes `key` and its value from the list cache.
 *
 * @private
 * @name delete
 * @memberOf ListCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function listCacheDelete(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    return false;
  }
  var lastIndex = data.length - 1;
  if (index == lastIndex) {
    data.pop();
  } else {
    splice.call(data, index, 1);
  }
  --this.size;
  return true;
}

/**
 * Gets the list cache value for `key`.
 *
 * @private
 * @name get
 * @memberOf ListCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */
function listCacheGet(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  return index < 0 ? undefined : data[index][1];
}

/**
 * Checks if a list cache value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf ListCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function listCacheHas(key) {
  return assocIndexOf(this.__data__, key) > -1;
}

/**
 * Sets the list cache `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf ListCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the list cache instance.
 */
function listCacheSet(key, value) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    ++this.size;
    data.push([key, value]);
  } else {
    data[index][1] = value;
  }
  return this;
}

// Add methods to `ListCache`.
ListCache.prototype.clear = listCacheClear;
ListCache.prototype['delete'] = listCacheDelete;
ListCache.prototype.get = listCacheGet;
ListCache.prototype.has = listCacheHas;
ListCache.prototype.set = listCacheSet;

/**
 * Creates a map cache object to store key-value pairs.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */
function MapCache(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;

  this.clear();
  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}

/**
 * Removes all key-value entries from the map.
 *
 * @private
 * @name clear
 * @memberOf MapCache
 */
function mapCacheClear() {
  this.size = 0;
  this.__data__ = {
    'hash': new Hash,
    'map': new (Map || ListCache),
    'string': new Hash
  };
}

/**
 * Removes `key` and its value from the map.
 *
 * @private
 * @name delete
 * @memberOf MapCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function mapCacheDelete(key) {
  var result = getMapData(this, key)['delete'](key);
  this.size -= result ? 1 : 0;
  return result;
}

/**
 * Gets the map value for `key`.
 *
 * @private
 * @name get
 * @memberOf MapCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */
function mapCacheGet(key) {
  return getMapData(this, key).get(key);
}

/**
 * Checks if a map value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf MapCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function mapCacheHas(key) {
  return getMapData(this, key).has(key);
}

/**
 * Sets the map `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf MapCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the map cache instance.
 */
function mapCacheSet(key, value) {
  var data = getMapData(this, key),
      size = data.size;

  data.set(key, value);
  this.size += data.size == size ? 0 : 1;
  return this;
}

// Add methods to `MapCache`.
MapCache.prototype.clear = mapCacheClear;
MapCache.prototype['delete'] = mapCacheDelete;
MapCache.prototype.get = mapCacheGet;
MapCache.prototype.has = mapCacheHas;
MapCache.prototype.set = mapCacheSet;

/**
 *
 * Creates an array cache object to store unique values.
 *
 * @private
 * @constructor
 * @param {Array} [values] The values to cache.
 */
function SetCache(values) {
  var index = -1,
      length = values == null ? 0 : values.length;

  this.__data__ = new MapCache;
  while (++index < length) {
    this.add(values[index]);
  }
}

/**
 * Adds `value` to the array cache.
 *
 * @private
 * @name add
 * @memberOf SetCache
 * @alias push
 * @param {*} value The value to cache.
 * @returns {Object} Returns the cache instance.
 */
function setCacheAdd(value) {
  this.__data__.set(value, HASH_UNDEFINED);
  return this;
}

/**
 * Checks if `value` is in the array cache.
 *
 * @private
 * @name has
 * @memberOf SetCache
 * @param {*} value The value to search for.
 * @returns {number} Returns `true` if `value` is found, else `false`.
 */
function setCacheHas(value) {
  return this.__data__.has(value);
}

// Add methods to `SetCache`.
SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
SetCache.prototype.has = setCacheHas;

/**
 * Creates a stack cache object to store key-value pairs.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */
function Stack(entries) {
  var data = this.__data__ = new ListCache(entries);
  this.size = data.size;
}

/**
 * Removes all key-value entries from the stack.
 *
 * @private
 * @name clear
 * @memberOf Stack
 */
function stackClear() {
  this.__data__ = new ListCache;
  this.size = 0;
}

/**
 * Removes `key` and its value from the stack.
 *
 * @private
 * @name delete
 * @memberOf Stack
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function stackDelete(key) {
  var data = this.__data__,
      result = data['delete'](key);

  this.size = data.size;
  return result;
}

/**
 * Gets the stack value for `key`.
 *
 * @private
 * @name get
 * @memberOf Stack
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */
function stackGet(key) {
  return this.__data__.get(key);
}

/**
 * Checks if a stack value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf Stack
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function stackHas(key) {
  return this.__data__.has(key);
}

/**
 * Sets the stack `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf Stack
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the stack cache instance.
 */
function stackSet(key, value) {
  var data = this.__data__;
  if (data instanceof ListCache) {
    var pairs = data.__data__;
    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
      pairs.push([key, value]);
      this.size = ++data.size;
      return this;
    }
    data = this.__data__ = new MapCache(pairs);
  }
  data.set(key, value);
  this.size = data.size;
  return this;
}

// Add methods to `Stack`.
Stack.prototype.clear = stackClear;
Stack.prototype['delete'] = stackDelete;
Stack.prototype.get = stackGet;
Stack.prototype.has = stackHas;
Stack.prototype.set = stackSet;

/**
 * Creates an array of the enumerable property names of the array-like `value`.
 *
 * @private
 * @param {*} value The value to query.
 * @param {boolean} inherited Specify returning inherited property names.
 * @returns {Array} Returns the array of property names.
 */
function arrayLikeKeys(value, inherited) {
  var isArr = isArray(value),
      isArg = !isArr && isArguments(value),
      isBuff = !isArr && !isArg && isBuffer(value),
      isType = !isArr && !isArg && !isBuff && isTypedArray(value),
      skipIndexes = isArr || isArg || isBuff || isType,
      result = skipIndexes ? baseTimes(value.length, String) : [],
      length = result.length;

  for (var key in value) {
    if ((inherited || hasOwnProperty.call(value, key)) &&
        !(skipIndexes && (
           // Safari 9 has enumerable `arguments.length` in strict mode.
           key == 'length' ||
           // Node.js 0.10 has enumerable non-index properties on buffers.
           (isBuff && (key == 'offset' || key == 'parent')) ||
           // PhantomJS 2 has enumerable non-index properties on typed arrays.
           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
           // Skip index properties.
           isIndex(key, length)
        ))) {
      result.push(key);
    }
  }
  return result;
}

/**
 * Gets the index at which the `key` is found in `array` of key-value pairs.
 *
 * @private
 * @param {Array} array The array to inspect.
 * @param {*} key The key to search for.
 * @returns {number} Returns the index of the matched value, else `-1`.
 */
function assocIndexOf(array, key) {
  var length = array.length;
  while (length--) {
    if (eq(array[length][0], key)) {
      return length;
    }
  }
  return -1;
}

/**
 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
 * `keysFunc` and `symbolsFunc` to get the enumerable property names and
 * symbols of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {Function} keysFunc The function to get the keys of `object`.
 * @param {Function} symbolsFunc The function to get the symbols of `object`.
 * @returns {Array} Returns the array of property names and symbols.
 */
function baseGetAllKeys(object, keysFunc, symbolsFunc) {
  var result = keysFunc(object);
  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
}

/**
 * The base implementation of `getTag` without fallbacks for buggy environments.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */
function baseGetTag(value) {
  if (value == null) {
    return value === undefined ? undefinedTag : nullTag;
  }
  return (symToStringTag && symToStringTag in Object(value))
    ? getRawTag(value)
    : objectToString(value);
}

/**
 * The base implementation of `_.isArguments`.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 */
function baseIsArguments(value) {
  return isObjectLike(value) && baseGetTag(value) == argsTag;
}

/**
 * The base implementation of `_.isEqual` which supports partial comparisons
 * and tracks traversed objects.
 *
 * @private
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @param {boolean} bitmask The bitmask flags.
 *  1 - Unordered comparison
 *  2 - Partial comparison
 * @param {Function} [customizer] The function to customize comparisons.
 * @param {Object} [stack] Tracks traversed `value` and `other` objects.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 */
function baseIsEqual(value, other, bitmask, customizer, stack) {
  if (value === other) {
    return true;
  }
  if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
    return value !== value && other !== other;
  }
  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
}

/**
 * A specialized version of `baseIsEqual` for arrays and objects which performs
 * deep comparisons and tracks traversed objects enabling objects with circular
 * references to be compared.
 *
 * @private
 * @param {Object} object The object to compare.
 * @param {Object} other The other object to compare.
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 * @param {Function} customizer The function to customize comparisons.
 * @param {Function} equalFunc The function to determine equivalents of values.
 * @param {Object} [stack] Tracks traversed `object` and `other` objects.
 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
 */
function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
  var objIsArr = isArray(object),
      othIsArr = isArray(other),
      objTag = objIsArr ? arrayTag : getTag(object),
      othTag = othIsArr ? arrayTag : getTag(other);

  objTag = objTag == argsTag ? objectTag : objTag;
  othTag = othTag == argsTag ? objectTag : othTag;

  var objIsObj = objTag == objectTag,
      othIsObj = othTag == objectTag,
      isSameTag = objTag == othTag;

  if (isSameTag && isBuffer(object)) {
    if (!isBuffer(other)) {
      return false;
    }
    objIsArr = true;
    objIsObj = false;
  }
  if (isSameTag && !objIsObj) {
    stack || (stack = new Stack);
    return (objIsArr || isTypedArray(object))
      ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
      : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
  }
  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
    var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
        othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');

    if (objIsWrapped || othIsWrapped) {
      var objUnwrapped = objIsWrapped ? object.value() : object,
          othUnwrapped = othIsWrapped ? other.value() : other;

      stack || (stack = new Stack);
      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
    }
  }
  if (!isSameTag) {
    return false;
  }
  stack || (stack = new Stack);
  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
}

/**
 * The base implementation of `_.isNative` without bad shim checks.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a native function,
 *  else `false`.
 */
function baseIsNative(value) {
  if (!isObject(value) || isMasked(value)) {
    return false;
  }
  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
  return pattern.test(toSource(value));
}

/**
 * The base implementation of `_.isTypedArray` without Node.js optimizations.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
 */
function baseIsTypedArray(value) {
  return isObjectLike(value) &&
    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
}

/**
 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 */
function baseKeys(object) {
  if (!isPrototype(object)) {
    return nativeKeys(object);
  }
  var result = [];
  for (var key in Object(object)) {
    if (hasOwnProperty.call(object, key) && key != 'constructor') {
      result.push(key);
    }
  }
  return result;
}

/**
 * A specialized version of `baseIsEqualDeep` for arrays with support for
 * partial deep comparisons.
 *
 * @private
 * @param {Array} array The array to compare.
 * @param {Array} other The other array to compare.
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 * @param {Function} customizer The function to customize comparisons.
 * @param {Function} equalFunc The function to determine equivalents of values.
 * @param {Object} stack Tracks traversed `array` and `other` objects.
 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
 */
function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
      arrLength = array.length,
      othLength = other.length;

  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
    return false;
  }
  // Assume cyclic values are equal.
  var stacked = stack.get(array);
  if (stacked && stack.get(other)) {
    return stacked == other;
  }
  var index = -1,
      result = true,
      seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;

  stack.set(array, other);
  stack.set(other, array);

  // Ignore non-index properties.
  while (++index < arrLength) {
    var arrValue = array[index],
        othValue = other[index];

    if (customizer) {
      var compared = isPartial
        ? customizer(othValue, arrValue, index, other, array, stack)
        : customizer(arrValue, othValue, index, array, other, stack);
    }
    if (compared !== undefined) {
      if (compared) {
        continue;
      }
      result = false;
      break;
    }
    // Recursively compare arrays (susceptible to call stack limits).
    if (seen) {
      if (!arraySome(other, function(othValue, othIndex) {
            if (!cacheHas(seen, othIndex) &&
                (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
              return seen.push(othIndex);
            }
          })) {
        result = false;
        break;
      }
    } else if (!(
          arrValue === othValue ||
            equalFunc(arrValue, othValue, bitmask, customizer, stack)
        )) {
      result = false;
      break;
    }
  }
  stack['delete'](array);
  stack['delete'](other);
  return result;
}

/**
 * A specialized version of `baseIsEqualDeep` for comparing objects of
 * the same `toStringTag`.
 *
 * **Note:** This function only supports comparing values with tags of
 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
 *
 * @private
 * @param {Object} object The object to compare.
 * @param {Object} other The other object to compare.
 * @param {string} tag The `toStringTag` of the objects to compare.
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 * @param {Function} customizer The function to customize comparisons.
 * @param {Function} equalFunc The function to determine equivalents of values.
 * @param {Object} stack Tracks traversed `object` and `other` objects.
 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
 */
function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
  switch (tag) {
    case dataViewTag:
      if ((object.byteLength != other.byteLength) ||
          (object.byteOffset != other.byteOffset)) {
        return false;
      }
      object = object.buffer;
      other = other.buffer;

    case arrayBufferTag:
      if ((object.byteLength != other.byteLength) ||
          !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
        return false;
      }
      return true;

    case boolTag:
    case dateTag:
    case numberTag:
      // Coerce booleans to `1` or `0` and dates to milliseconds.
      // Invalid dates are coerced to `NaN`.
      return eq(+object, +other);

    case errorTag:
      return object.name == other.name && object.message == other.message;

    case regexpTag:
    case stringTag:
      // Coerce regexes to strings and treat strings, primitives and objects,
      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
      // for more details.
      return object == (other + '');

    case mapTag:
      var convert = mapToArray;

    case setTag:
      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
      convert || (convert = setToArray);

      if (object.size != other.size && !isPartial) {
        return false;
      }
      // Assume cyclic values are equal.
      var stacked = stack.get(object);
      if (stacked) {
        return stacked == other;
      }
      bitmask |= COMPARE_UNORDERED_FLAG;

      // Recursively compare objects (susceptible to call stack limits).
      stack.set(object, other);
      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
      stack['delete'](object);
      return result;

    case symbolTag:
      if (symbolValueOf) {
        return symbolValueOf.call(object) == symbolValueOf.call(other);
      }
  }
  return false;
}

/**
 * A specialized version of `baseIsEqualDeep` for objects with support for
 * partial deep comparisons.
 *
 * @private
 * @param {Object} object The object to compare.
 * @param {Object} other The other object to compare.
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 * @param {Function} customizer The function to customize comparisons.
 * @param {Function} equalFunc The function to determine equivalents of values.
 * @param {Object} stack Tracks traversed `object` and `other` objects.
 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
 */
function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
      objProps = getAllKeys(object),
      objLength = objProps.length,
      othProps = getAllKeys(other),
      othLength = othProps.length;

  if (objLength != othLength && !isPartial) {
    return false;
  }
  var index = objLength;
  while (index--) {
    var key = objProps[index];
    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
      return false;
    }
  }
  // Assume cyclic values are equal.
  var stacked = stack.get(object);
  if (stacked && stack.get(other)) {
    return stacked == other;
  }
  var result = true;
  stack.set(object, other);
  stack.set(other, object);

  var skipCtor = isPartial;
  while (++index < objLength) {
    key = objProps[index];
    var objValue = object[key],
        othValue = other[key];

    if (customizer) {
      var compared = isPartial
        ? customizer(othValue, objValue, key, other, object, stack)
        : customizer(objValue, othValue, key, object, other, stack);
    }
    // Recursively compare objects (susceptible to call stack limits).
    if (!(compared === undefined
          ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
          : compared
        )) {
      result = false;
      break;
    }
    skipCtor || (skipCtor = key == 'constructor');
  }
  if (result && !skipCtor) {
    var objCtor = object.constructor,
        othCtor = other.constructor;

    // Non `Object` object instances with different constructors are not equal.
    if (objCtor != othCtor &&
        ('constructor' in object && 'constructor' in other) &&
        !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
          typeof othCtor == 'function' && othCtor instanceof othCtor)) {
      result = false;
    }
  }
  stack['delete'](object);
  stack['delete'](other);
  return result;
}

/**
 * Creates an array of own enumerable property names and symbols of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names and symbols.
 */
function getAllKeys(object) {
  return baseGetAllKeys(object, keys, getSymbols);
}

/**
 * Gets the data for `map`.
 *
 * @private
 * @param {Object} map The map to query.
 * @param {string} key The reference key.
 * @returns {*} Returns the map data.
 */
function getMapData(map, key) {
  var data = map.__data__;
  return isKeyable(key)
    ? data[typeof key == 'string' ? 'string' : 'hash']
    : data.map;
}

/**
 * Gets the native function at `key` of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {string} key The key of the method to get.
 * @returns {*} Returns the function if it's native, else `undefined`.
 */
function getNative(object, key) {
  var value = getValue(object, key);
  return baseIsNative(value) ? value : undefined;
}

/**
 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the raw `toStringTag`.
 */
function getRawTag(value) {
  var isOwn = hasOwnProperty.call(value, symToStringTag),
      tag = value[symToStringTag];

  try {
    value[symToStringTag] = undefined;
    var unmasked = true;
  } catch (e) {}

  var result = nativeObjectToString.call(value);
  if (unmasked) {
    if (isOwn) {
      value[symToStringTag] = tag;
    } else {
      delete value[symToStringTag];
    }
  }
  return result;
}

/**
 * Creates an array of the own enumerable symbols of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of symbols.
 */
var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
  if (object == null) {
    return [];
  }
  object = Object(object);
  return arrayFilter(nativeGetSymbols(object), function(symbol) {
    return propertyIsEnumerable.call(object, symbol);
  });
};

/**
 * Gets the `toStringTag` of `value`.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */
var getTag = baseGetTag;

// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
    (Map && getTag(new Map) != mapTag) ||
    (Promise && getTag(Promise.resolve()) != promiseTag) ||
    (Set && getTag(new Set) != setTag) ||
    (WeakMap && getTag(new WeakMap) != weakMapTag)) {
  getTag = function(value) {
    var result = baseGetTag(value),
        Ctor = result == objectTag ? value.constructor : undefined,
        ctorString = Ctor ? toSource(Ctor) : '';

    if (ctorString) {
      switch (ctorString) {
        case dataViewCtorString: return dataViewTag;
        case mapCtorString: return mapTag;
        case promiseCtorString: return promiseTag;
        case setCtorString: return setTag;
        case weakMapCtorString: return weakMapTag;
      }
    }
    return result;
  };
}

/**
 * Checks if `value` is a valid array-like index.
 *
 * @private
 * @param {*} value The value to check.
 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
 */
function isIndex(value, length) {
  length = length == null ? MAX_SAFE_INTEGER : length;
  return !!length &&
    (typeof value == 'number' || reIsUint.test(value)) &&
    (value > -1 && value % 1 == 0 && value < length);
}

/**
 * Checks if `value` is suitable for use as unique object key.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
 */
function isKeyable(value) {
  var type = typeof value;
  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
    ? (value !== '__proto__')
    : (value === null);
}

/**
 * Checks if `func` has its source masked.
 *
 * @private
 * @param {Function} func The function to check.
 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
 */
function isMasked(func) {
  return !!maskSrcKey && (maskSrcKey in func);
}

/**
 * Checks if `value` is likely a prototype object.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
 */
function isPrototype(value) {
  var Ctor = value && value.constructor,
      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;

  return value === proto;
}

/**
 * Converts `value` to a string using `Object.prototype.toString`.
 *
 * @private
 * @param {*} value The value to convert.
 * @returns {string} Returns the converted string.
 */
function objectToString(value) {
  return nativeObjectToString.call(value);
}

/**
 * Converts `func` to its source code.
 *
 * @private
 * @param {Function} func The function to convert.
 * @returns {string} Returns the source code.
 */
function toSource(func) {
  if (func != null) {
    try {
      return funcToString.call(func);
    } catch (e) {}
    try {
      return (func + '');
    } catch (e) {}
  }
  return '';
}

/**
 * Performs a
 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
 * comparison between two values to determine if they are equivalent.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 * @example
 *
 * var object = { 'a': 1 };
 * var other = { 'a': 1 };
 *
 * _.eq(object, object);
 * // => true
 *
 * _.eq(object, other);
 * // => false
 *
 * _.eq('a', 'a');
 * // => true
 *
 * _.eq('a', Object('a'));
 * // => false
 *
 * _.eq(NaN, NaN);
 * // => true
 */
function eq(value, other) {
  return value === other || (value !== value && other !== other);
}

/**
 * Checks if `value` is likely an `arguments` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 *  else `false`.
 * @example
 *
 * _.isArguments(function() { return arguments; }());
 * // => true
 *
 * _.isArguments([1, 2, 3]);
 * // => false
 */
var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
    !propertyIsEnumerable.call(value, 'callee');
};

/**
 * Checks if `value` is classified as an `Array` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
 * @example
 *
 * _.isArray([1, 2, 3]);
 * // => true
 *
 * _.isArray(document.body.children);
 * // => false
 *
 * _.isArray('abc');
 * // => false
 *
 * _.isArray(_.noop);
 * // => false
 */
var isArray = Array.isArray;

/**
 * Checks if `value` is array-like. A value is considered array-like if it's
 * not a function and has a `value.length` that's an integer greater than or
 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
 * @example
 *
 * _.isArrayLike([1, 2, 3]);
 * // => true
 *
 * _.isArrayLike(document.body.children);
 * // => true
 *
 * _.isArrayLike('abc');
 * // => true
 *
 * _.isArrayLike(_.noop);
 * // => false
 */
function isArrayLike(value) {
  return value != null && isLength(value.length) && !isFunction(value);
}

/**
 * Checks if `value` is a buffer.
 *
 * @static
 * @memberOf _
 * @since 4.3.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
 * @example
 *
 * _.isBuffer(new Buffer(2));
 * // => true
 *
 * _.isBuffer(new Uint8Array(2));
 * // => false
 */
var isBuffer = nativeIsBuffer || stubFalse;

/**
 * Performs a deep comparison between two values to determine if they are
 * equivalent.
 *
 * **Note:** This method supports comparing arrays, array buffers, booleans,
 * date objects, error objects, maps, numbers, `Object` objects, regexes,
 * sets, strings, symbols, and typed arrays. `Object` objects are compared
 * by their own, not inherited, enumerable properties. Functions and DOM
 * nodes are compared by strict equality, i.e. `===`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 * @example
 *
 * var object = { 'a': 1 };
 * var other = { 'a': 1 };
 *
 * _.isEqual(object, other);
 * // => true
 *
 * object === other;
 * // => false
 */
function isEqual(value, other) {
  return baseIsEqual(value, other);
}

/**
 * Checks if `value` is classified as a `Function` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
 * @example
 *
 * _.isFunction(_);
 * // => true
 *
 * _.isFunction(/abc/);
 * // => false
 */
function isFunction(value) {
  if (!isObject(value)) {
    return false;
  }
  // The use of `Object#toString` avoids issues with the `typeof` operator
  // in Safari 9 which returns 'object' for typed arrays and other constructors.
  var tag = baseGetTag(value);
  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
}

/**
 * Checks if `value` is a valid array-like length.
 *
 * **Note:** This method is loosely based on
 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
 * @example
 *
 * _.isLength(3);
 * // => true
 *
 * _.isLength(Number.MIN_VALUE);
 * // => false
 *
 * _.isLength(Infinity);
 * // => false
 *
 * _.isLength('3');
 * // => false
 */
function isLength(value) {
  return typeof value == 'number' &&
    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}

/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */
function isObject(value) {
  var type = typeof value;
  return value != null && (type == 'object' || type == 'function');
}

/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */
function isObjectLike(value) {
  return value != null && typeof value == 'object';
}

/**
 * Checks if `value` is classified as a typed array.
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
 * @example
 *
 * _.isTypedArray(new Uint8Array);
 * // => true
 *
 * _.isTypedArray([]);
 * // => false
 */
var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;

/**
 * Creates an array of the own enumerable property names of `object`.
 *
 * **Note:** Non-object values are coerced to objects. See the
 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
 * for more details.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Object
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 *   this.b = 2;
 * }
 *
 * Foo.prototype.c = 3;
 *
 * _.keys(new Foo);
 * // => ['a', 'b'] (iteration order is not guaranteed)
 *
 * _.keys('hi');
 * // => ['0', '1']
 */
function keys(object) {
  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
}

/**
 * This method returns a new empty array.
 *
 * @static
 * @memberOf _
 * @since 4.13.0
 * @category Util
 * @returns {Array} Returns the new empty array.
 * @example
 *
 * var arrays = _.times(2, _.stubArray);
 *
 * console.log(arrays);
 * // => [[], []]
 *
 * console.log(arrays[0] === arrays[1]);
 * // => false
 */
function stubArray() {
  return [];
}

/**
 * This method returns `false`.
 *
 * @static
 * @memberOf _
 * @since 4.13.0
 * @category Util
 * @returns {boolean} Returns `false`.
 * @example
 *
 * _.times(2, _.stubFalse);
 * // => [false, false]
 */
function stubFalse() {
  return false;
}

module.exports = isEqual;
{
  "name": "lodash.isequal",
  "version": "4.5.0",
  "description": "The Lodash method `_.isEqual` exported as a module.",
  "homepage": "https://lodash.com/",
  "icon": "https://lodash.com/icon.svg",
  "license": "MIT",
  "author": "John-David Dalton <john.david.dalton@gmail.com> (http://allyoucanleet.com/)",
  "repository": "lodash/lodash"
}Copyright jQuery Foundation and other contributors <https://jquery.org/>

Based on Underscore.js, copyright Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>

This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
available at https://github.com/lodash/lodash

The following license applies to all parts of this software except as
documented below:

====

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

====

Copyright and related rights for sample code are waived via CC0. Sample
code is defined as all source code displayed within the prose of the
documentation.

CC0: http://creativecommons.org/publicdomain/zero/1.0/

====

Files located in the node_modules and vendor directories are externally
maintained libraries used by this software which have their own
licenses; we recommend you read them, as their terms may differ from the
terms above.
/**
 * lodash (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */

/** Used as the `TypeError` message for "Functions" methods. */
var FUNC_ERROR_TEXT = 'Expected a function';

/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0,
    MAX_INTEGER = 1.7976931348623157e+308,
    NAN = 0 / 0;

/** `Object#toString` result references. */
var symbolTag = '[object Symbol]';

/** Used to match leading and trailing whitespace. */
var reTrim = /^\s+|\s+$/g;

/** Used to detect bad signed hexadecimal string values. */
var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;

/** Used to detect binary string values. */
var reIsBinary = /^0b[01]+$/i;

/** Used to detect octal string values. */
var reIsOctal = /^0o[0-7]+$/i;

/** Built-in method references without a dependency on `root`. */
var freeParseInt = parseInt;

/** Used for built-in method references. */
var objectProto = Object.prototype;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var objectToString = objectProto.toString;

/**
 * Creates a function that invokes `func`, with the `this` binding and arguments
 * of the created function, while it's called less than `n` times. Subsequent
 * calls to the created function return the result of the last `func` invocation.
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category Function
 * @param {number} n The number of calls at which `func` is no longer invoked.
 * @param {Function} func The function to restrict.
 * @returns {Function} Returns the new restricted function.
 * @example
 *
 * jQuery(element).on('click', _.before(5, addContactToList));
 * // => Allows adding up to 4 contacts to the list.
 */
function before(n, func) {
  var result;
  if (typeof func != 'function') {
    throw new TypeError(FUNC_ERROR_TEXT);
  }
  n = toInteger(n);
  return function() {
    if (--n > 0) {
      result = func.apply(this, arguments);
    }
    if (n <= 1) {
      func = undefined;
    }
    return result;
  };
}

/**
 * Creates a function that is restricted to invoking `func` once. Repeat calls
 * to the function return the value of the first invocation. The `func` is
 * invoked with the `this` binding and arguments of the created function.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to restrict.
 * @returns {Function} Returns the new restricted function.
 * @example
 *
 * var initialize = _.once(createApplication);
 * initialize();
 * initialize();
 * // => `createApplication` is invoked once
 */
function once(func) {
  return before(2, func);
}

/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */
function isObject(value) {
  var type = typeof value;
  return !!value && (type == 'object' || type == 'function');
}

/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */
function isObjectLike(value) {
  return !!value && typeof value == 'object';
}

/**
 * Checks if `value` is classified as a `Symbol` primitive or object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
 * @example
 *
 * _.isSymbol(Symbol.iterator);
 * // => true
 *
 * _.isSymbol('abc');
 * // => false
 */
function isSymbol(value) {
  return typeof value == 'symbol' ||
    (isObjectLike(value) && objectToString.call(value) == symbolTag);
}

/**
 * Converts `value` to a finite number.
 *
 * @static
 * @memberOf _
 * @since 4.12.0
 * @category Lang
 * @param {*} value The value to convert.
 * @returns {number} Returns the converted number.
 * @example
 *
 * _.toFinite(3.2);
 * // => 3.2
 *
 * _.toFinite(Number.MIN_VALUE);
 * // => 5e-324
 *
 * _.toFinite(Infinity);
 * // => 1.7976931348623157e+308
 *
 * _.toFinite('3.2');
 * // => 3.2
 */
function toFinite(value) {
  if (!value) {
    return value === 0 ? value : 0;
  }
  value = toNumber(value);
  if (value === INFINITY || value === -INFINITY) {
    var sign = (value < 0 ? -1 : 1);
    return sign * MAX_INTEGER;
  }
  return value === value ? value : 0;
}

/**
 * Converts `value` to an integer.
 *
 * **Note:** This method is loosely based on
 * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to convert.
 * @returns {number} Returns the converted integer.
 * @example
 *
 * _.toInteger(3.2);
 * // => 3
 *
 * _.toInteger(Number.MIN_VALUE);
 * // => 0
 *
 * _.toInteger(Infinity);
 * // => 1.7976931348623157e+308
 *
 * _.toInteger('3.2');
 * // => 3
 */
function toInteger(value) {
  var result = toFinite(value),
      remainder = result % 1;

  return result === result ? (remainder ? result - remainder : result) : 0;
}

/**
 * Converts `value` to a number.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to process.
 * @returns {number} Returns the number.
 * @example
 *
 * _.toNumber(3.2);
 * // => 3.2
 *
 * _.toNumber(Number.MIN_VALUE);
 * // => 5e-324
 *
 * _.toNumber(Infinity);
 * // => Infinity
 *
 * _.toNumber('3.2');
 * // => 3.2
 */
function toNumber(value) {
  if (typeof value == 'number') {
    return value;
  }
  if (isSymbol(value)) {
    return NAN;
  }
  if (isObject(value)) {
    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
    value = isObject(other) ? (other + '') : other;
  }
  if (typeof value != 'string') {
    return value === 0 ? value : +value;
  }
  value = value.replace(reTrim, '');
  var isBinary = reIsBinary.test(value);
  return (isBinary || reIsOctal.test(value))
    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
    : (reIsBadHex.test(value) ? NAN : +value);
}

module.exports = once;
{
  "name": "lodash.once",
  "version": "4.1.1",
  "description": "The lodash method `_.once` exported as a module.",
  "homepage": "https://lodash.com/",
  "icon": "https://lodash.com/icon.svg",
  "license": "MIT",
  "author": "John-David Dalton <john.david.dalton@gmail.com> (http://allyoucanleet.com/)",
  "repository": "lodash/lodash"
}The MIT License (MIT)

Copyright (c) Stephen Sugden <me@stephensugden.com> (stephensugden.com)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
'use strict';

const { PassThrough } = require('stream');

module.exports = function (/*streams...*/) {
  var sources = []
  var output  = new PassThrough({objectMode: true})

  output.setMaxListeners(0)

  output.add = add
  output.isEmpty = isEmpty

  output.on('unpipe', remove)

  Array.prototype.slice.call(arguments).forEach(add)

  return output

  function add (source) {
    if (Array.isArray(source)) {
      source.forEach(add)
      return this
    }

    sources.push(source);
    source.once('end', remove.bind(null, source))
    source.once('error', output.emit.bind(output, 'error'))
    source.pipe(output, {end: false})
    return this
  }

  function isEmpty () {
    return sources.length == 0;
  }

  function remove (source) {
    sources = sources.filter(function (it) { return it !== source })
    if (!sources.length && output.readable) { output.end() }
  }
}
{
  "name": "merge-stream",
  "version": "2.0.0",
  "description": "Create a stream that emits events from multiple other streams",
  "files": [
    "index.js"
  ],
  "repository": "grncdr/merge-stream",
  "author": "Stephen Sugden <me@stephensugden.com>",
  "license": "MIT",
  "dependencies": {},
  "devDependencies": {
    "from2": "^2.0.3",
    "istanbul": "^0.4.5"
  }
}The MIT License (MIT)

Copyright (c) 2014-2020 Teambition

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
'use strict'
/*
 * merge2
 * https://github.com/teambition/merge2
 *
 * Copyright (c) 2014-2020 Teambition
 * Licensed under the MIT license.
 */
const Stream = require('stream')
const PassThrough = Stream.PassThrough
const slice = Array.prototype.slice

module.exports = merge2

function merge2 () {
  const streamsQueue = []
  const args = slice.call(arguments)
  let merging = false
  let options = args[args.length - 1]

  if (options && !Array.isArray(options) && options.pipe == null) {
    args.pop()
  } else {
    options = {}
  }

  const doEnd = options.end !== false
  const doPipeError = options.pipeError === true
  if (options.objectMode == null) {
    options.objectMode = true
  }
  if (options.highWaterMark == null) {
    options.highWaterMark = 64 * 1024
  }
  const mergedStream = PassThrough(options)

  function addStream () {
    for (let i = 0, len = arguments.length; i < len; i++) {
      streamsQueue.push(pauseStreams(arguments[i], options))
    }
    mergeStream()
    return this
  }

  function mergeStream () {
    if (merging) {
      return
    }
    merging = true

    let streams = streamsQueue.shift()
    if (!streams) {
      process.nextTick(endStream)
      return
    }
    if (!Array.isArray(streams)) {
      streams = [streams]
    }

    let pipesCount = streams.length + 1

    function next () {
      if (--pipesCount > 0) {
        return
      }
      merging = false
      mergeStream()
    }

    function pipe (stream) {
      function onend () {
        stream.removeListener('merge2UnpipeEnd', onend)
        stream.removeListener('end', onend)
        if (doPipeError) {
          stream.removeListener('error', onerror)
        }
        next()
      }
      function onerror (err) {
        mergedStream.emit('error', err)
      }
      // skip ended stream
      if (stream._readableState.endEmitted) {
        return next()
      }

      stream.on('merge2UnpipeEnd', onend)
      stream.on('end', onend)

      if (doPipeError) {
        stream.on('error', onerror)
      }

      stream.pipe(mergedStream, { end: false })
      // compatible for old stream
      stream.resume()
    }

    for (let i = 0; i < streams.length; i++) {
      pipe(streams[i])
    }

    next()
  }

  function endStream () {
    merging = false
    // emit 'queueDrain' when all streams merged.
    mergedStream.emit('queueDrain')
    if (doEnd) {
      mergedStream.end()
    }
  }

  mergedStream.setMaxListeners(0)
  mergedStream.add = addStream
  mergedStream.on('unpipe', function (stream) {
    stream.emit('merge2UnpipeEnd')
  })

  if (args.length) {
    addStream.apply(null, args)
  }
  return mergedStream
}

// check and pause streams for pipe.
function pauseStreams (streams, options) {
  if (!Array.isArray(streams)) {
    // Backwards-compat with old-style streams
    if (!streams._readableState && streams.pipe) {
      streams = streams.pipe(PassThrough(options))
    }
    if (!streams._readableState || !streams.pause || !streams.pipe) {
      throw new Error('Only readable stream can be merged.')
    }
    streams.pause()
  } else {
    for (let i = 0, len = streams.length; i < len; i++) {
      streams[i] = pauseStreams(streams[i], options)
    }
  }
  return streams
}
{
  "name": "merge2",
  "description": "Merge multiple streams into one stream in sequence or parallel.",
  "authors": [
    "Yan Qing <admin@zensh.com>"
  ],
  "license": "MIT",
  "version": "1.4.1",
  "main": "./index.js",
  "repository": {
    "type": "git",
    "url": "git@github.com:teambition/merge2.git"
  },
  "homepage": "https://github.com/teambition/merge2",
  "engines": {
    "node": ">= 8"
  },
  "dependencies": {},
  "devDependencies": {
    "standard": "^14.3.4",
    "through2": "^3.0.1",
    "thunks": "^4.9.6",
    "tman": "^1.10.0",
    "to-through": "^2.0.0"
  },
  "files": [
    "README.md",
    "index.js"
  ]
}The MIT License (MIT)

Copyright (c) 2014-present, Jon Schlinkert.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
'use strict';

const util = require('util');
const braces = require('braces');
const picomatch = require('picomatch');
const utils = require('picomatch/lib/utils');

const isEmptyString = v => v === '' || v === './';
const hasBraces = v => {
  const index = v.indexOf('{');
  return index > -1 && v.indexOf('}', index) > -1;
};

/**
 * Returns an array of strings that match one or more glob patterns.
 *
 * ```js
 * const mm = require('micromatch');
 * // mm(list, patterns[, options]);
 *
 * console.log(mm(['a.js', 'a.txt'], ['*.js']));
 * //=> [ 'a.js' ]
 * ```
 * @param {String|Array<string>} `list` List of strings to match.
 * @param {String|Array<string>} `patterns` One or more glob patterns to use for matching.
 * @param {Object} `options` See available [options](#options)
 * @return {Array} Returns an array of matches
 * @summary false
 * @api public
 */

const micromatch = (list, patterns, options) => {
  patterns = [].concat(patterns);
  list = [].concat(list);

  let omit = new Set();
  let keep = new Set();
  let items = new Set();
  let negatives = 0;

  let onResult = state => {
    items.add(state.output);
    if (options && options.onResult) {
      options.onResult(state);
    }
  };

  for (let i = 0; i < patterns.length; i++) {
    let isMatch = picomatch(String(patterns[i]), { ...options, onResult }, true);
    let negated = isMatch.state.negated || isMatch.state.negatedExtglob;
    if (negated) negatives++;

    for (let item of list) {
      let matched = isMatch(item, true);

      let match = negated ? !matched.isMatch : matched.isMatch;
      if (!match) continue;

      if (negated) {
        omit.add(matched.output);
      } else {
        omit.delete(matched.output);
        keep.add(matched.output);
      }
    }
  }

  let result = negatives === patterns.length ? [...items] : [...keep];
  let matches = result.filter(item => !omit.has(item));

  if (options && matches.length === 0) {
    if (options.failglob === true) {
      throw new Error(`No matches found for "${patterns.join(', ')}"`);
    }

    if (options.nonull === true || options.nullglob === true) {
      return options.unescape ? patterns.map(p => p.replace(/\\/g, '')) : patterns;
    }
  }

  return matches;
};

/**
 * Backwards compatibility
 */

micromatch.match = micromatch;

/**
 * Returns a matcher function from the given glob `pattern` and `options`.
 * The returned function takes a string to match as its only argument and returns
 * true if the string is a match.
 *
 * ```js
 * const mm = require('micromatch');
 * // mm.matcher(pattern[, options]);
 *
 * const isMatch = mm.matcher('*.!(*a)');
 * console.log(isMatch('a.a')); //=> false
 * console.log(isMatch('a.b')); //=> true
 * ```
 * @param {String} `pattern` Glob pattern
 * @param {Object} `options`
 * @return {Function} Returns a matcher function.
 * @api public
 */

micromatch.matcher = (pattern, options) => picomatch(pattern, options);

/**
 * Returns true if **any** of the given glob `patterns` match the specified `string`.
 *
 * ```js
 * const mm = require('micromatch');
 * // mm.isMatch(string, patterns[, options]);
 *
 * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true
 * console.log(mm.isMatch('a.a', 'b.*')); //=> false
 * ```
 * @param {String} `str` The string to test.
 * @param {String|Array} `patterns` One or more glob patterns to use for matching.
 * @param {Object} `[options]` See available [options](#options).
 * @return {Boolean} Returns true if any patterns match `str`
 * @api public
 */

micromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);

/**
 * Backwards compatibility
 */

micromatch.any = micromatch.isMatch;

/**
 * Returns a list of strings that _**do not match any**_ of the given `patterns`.
 *
 * ```js
 * const mm = require('micromatch');
 * // mm.not(list, patterns[, options]);
 *
 * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a'));
 * //=> ['b.b', 'c.c']
 * ```
 * @param {Array} `list` Array of strings to match.
 * @param {String|Array} `patterns` One or more glob pattern to use for matching.
 * @param {Object} `options` See available [options](#options) for changing how matches are performed
 * @return {Array} Returns an array of strings that **do not match** the given patterns.
 * @api public
 */

micromatch.not = (list, patterns, options = {}) => {
  patterns = [].concat(patterns).map(String);
  let result = new Set();
  let items = [];

  let onResult = state => {
    if (options.onResult) options.onResult(state);
    items.push(state.output);
  };

  let matches = new Set(micromatch(list, patterns, { ...options, onResult }));

  for (let item of items) {
    if (!matches.has(item)) {
      result.add(item);
    }
  }
  return [...result];
};

/**
 * Returns true if the given `string` contains the given pattern. Similar
 * to [.isMatch](#isMatch) but the pattern can match any part of the string.
 *
 * ```js
 * var mm = require('micromatch');
 * // mm.contains(string, pattern[, options]);
 *
 * console.log(mm.contains('aa/bb/cc', '*b'));
 * //=> true
 * console.log(mm.contains('aa/bb/cc', '*d'));
 * //=> false
 * ```
 * @param {String} `str` The string to match.
 * @param {String|Array} `patterns` Glob pattern to use for matching.
 * @param {Object} `options` See available [options](#options) for changing how matches are performed
 * @return {Boolean} Returns true if any of the patterns matches any part of `str`.
 * @api public
 */

micromatch.contains = (str, pattern, options) => {
  if (typeof str !== 'string') {
    throw new TypeError(`Expected a string: "${util.inspect(str)}"`);
  }

  if (Array.isArray(pattern)) {
    return pattern.some(p => micromatch.contains(str, p, options));
  }

  if (typeof pattern === 'string') {
    if (isEmptyString(str) || isEmptyString(pattern)) {
      return false;
    }

    if (str.includes(pattern) || (str.startsWith('./') && str.slice(2).includes(pattern))) {
      return true;
    }
  }

  return micromatch.isMatch(str, pattern, { ...options, contains: true });
};

/**
 * Filter the keys of the given object with the given `glob` pattern
 * and `options`. Does not attempt to match nested keys. If you need this feature,
 * use [glob-object][] instead.
 *
 * ```js
 * const mm = require('micromatch');
 * // mm.matchKeys(object, patterns[, options]);
 *
 * const obj = { aa: 'a', ab: 'b', ac: 'c' };
 * console.log(mm.matchKeys(obj, '*b'));
 * //=> { ab: 'b' }
 * ```
 * @param {Object} `object` The object with keys to filter.
 * @param {String|Array} `patterns` One or more glob patterns to use for matching.
 * @param {Object} `options` See available [options](#options) for changing how matches are performed
 * @return {Object} Returns an object with only keys that match the given patterns.
 * @api public
 */

micromatch.matchKeys = (obj, patterns, options) => {
  if (!utils.isObject(obj)) {
    throw new TypeError('Expected the first argument to be an object');
  }
  let keys = micromatch(Object.keys(obj), patterns, options);
  let res = {};
  for (let key of keys) res[key] = obj[key];
  return res;
};

/**
 * Returns true if some of the strings in the given `list` match any of the given glob `patterns`.
 *
 * ```js
 * const mm = require('micromatch');
 * // mm.some(list, patterns[, options]);
 *
 * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));
 * // true
 * console.log(mm.some(['foo.js'], ['*.js', '!foo.js']));
 * // false
 * ```
 * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found.
 * @param {String|Array} `patterns` One or more glob patterns to use for matching.
 * @param {Object} `options` See available [options](#options) for changing how matches are performed
 * @return {Boolean} Returns true if any `patterns` matches any of the strings in `list`
 * @api public
 */

micromatch.some = (list, patterns, options) => {
  let items = [].concat(list);

  for (let pattern of [].concat(patterns)) {
    let isMatch = picomatch(String(pattern), options);
    if (items.some(item => isMatch(item))) {
      return true;
    }
  }
  return false;
};

/**
 * Returns true if every string in the given `list` matches
 * any of the given glob `patterns`.
 *
 * ```js
 * const mm = require('micromatch');
 * // mm.every(list, patterns[, options]);
 *
 * console.log(mm.every('foo.js', ['foo.js']));
 * // true
 * console.log(mm.every(['foo.js', 'bar.js'], ['*.js']));
 * // true
 * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));
 * // false
 * console.log(mm.every(['foo.js'], ['*.js', '!foo.js']));
 * // false
 * ```
 * @param {String|Array} `list` The string or array of strings to test.
 * @param {String|Array} `patterns` One or more glob patterns to use for matching.
 * @param {Object} `options` See available [options](#options) for changing how matches are performed
 * @return {Boolean} Returns true if all `patterns` matches all of the strings in `list`
 * @api public
 */

micromatch.every = (list, patterns, options) => {
  let items = [].concat(list);

  for (let pattern of [].concat(patterns)) {
    let isMatch = picomatch(String(pattern), options);
    if (!items.every(item => isMatch(item))) {
      return false;
    }
  }
  return true;
};

/**
 * Returns true if **all** of the given `patterns` match
 * the specified string.
 *
 * ```js
 * const mm = require('micromatch');
 * // mm.all(string, patterns[, options]);
 *
 * console.log(mm.all('foo.js', ['foo.js']));
 * // true
 *
 * console.log(mm.all('foo.js', ['*.js', '!foo.js']));
 * // false
 *
 * console.log(mm.all('foo.js', ['*.js', 'foo.js']));
 * // true
 *
 * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));
 * // true
 * ```
 * @param {String|Array} `str` The string to test.
 * @param {String|Array} `patterns` One or more glob patterns to use for matching.
 * @param {Object} `options` See available [options](#options) for changing how matches are performed
 * @return {Boolean} Returns true if any patterns match `str`
 * @api public
 */

micromatch.all = (str, patterns, options) => {
  if (typeof str !== 'string') {
    throw new TypeError(`Expected a string: "${util.inspect(str)}"`);
  }

  return [].concat(patterns).every(p => picomatch(p, options)(str));
};

/**
 * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match.
 *
 * ```js
 * const mm = require('micromatch');
 * // mm.capture(pattern, string[, options]);
 *
 * console.log(mm.capture('test/*.js', 'test/foo.js'));
 * //=> ['foo']
 * console.log(mm.capture('test/*.js', 'foo/bar.css'));
 * //=> null
 * ```
 * @param {String} `glob` Glob pattern to use for matching.
 * @param {String} `input` String to match
 * @param {Object} `options` See available [options](#options) for changing how matches are performed
 * @return {Array|null} Returns an array of captures if the input matches the glob pattern, otherwise `null`.
 * @api public
 */

micromatch.capture = (glob, input, options) => {
  let posix = utils.isWindows(options);
  let regex = picomatch.makeRe(String(glob), { ...options, capture: true });
  let match = regex.exec(posix ? utils.toPosixSlashes(input) : input);

  if (match) {
    return match.slice(1).map(v => v === void 0 ? '' : v);
  }
};

/**
 * Create a regular expression from the given glob `pattern`.
 *
 * ```js
 * const mm = require('micromatch');
 * // mm.makeRe(pattern[, options]);
 *
 * console.log(mm.makeRe('*.js'));
 * //=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/
 * ```
 * @param {String} `pattern` A glob pattern to convert to regex.
 * @param {Object} `options`
 * @return {RegExp} Returns a regex created from the given pattern.
 * @api public
 */

micromatch.makeRe = (...args) => picomatch.makeRe(...args);

/**
 * Scan a glob pattern to separate the pattern into segments. Used
 * by the [split](#split) method.
 *
 * ```js
 * const mm = require('micromatch');
 * const state = mm.scan(pattern[, options]);
 * ```
 * @param {String} `pattern`
 * @param {Object} `options`
 * @return {Object} Returns an object with
 * @api public
 */

micromatch.scan = (...args) => picomatch.scan(...args);

/**
 * Parse a glob pattern to create the source string for a regular
 * expression.
 *
 * ```js
 * const mm = require('micromatch');
 * const state = mm.parse(pattern[, options]);
 * ```
 * @param {String} `glob`
 * @param {Object} `options`
 * @return {Object} Returns an object with useful properties and output to be used as regex source string.
 * @api public
 */

micromatch.parse = (patterns, options) => {
  let res = [];
  for (let pattern of [].concat(patterns || [])) {
    for (let str of braces(String(pattern), options)) {
      res.push(picomatch.parse(str, options));
    }
  }
  return res;
};

/**
 * Process the given brace `pattern`.
 *
 * ```js
 * const { braces } = require('micromatch');
 * console.log(braces('foo/{a,b,c}/bar'));
 * //=> [ 'foo/(a|b|c)/bar' ]
 *
 * console.log(braces('foo/{a,b,c}/bar', { expand: true }));
 * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ]
 * ```
 * @param {String} `pattern` String with brace pattern to process.
 * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options.
 * @return {Array}
 * @api public
 */

micromatch.braces = (pattern, options) => {
  if (typeof pattern !== 'string') throw new TypeError('Expected a string');
  if ((options && options.nobrace === true) || !hasBraces(pattern)) {
    return [pattern];
  }
  return braces(pattern, options);
};

/**
 * Expand braces
 */

micromatch.braceExpand = (pattern, options) => {
  if (typeof pattern !== 'string') throw new TypeError('Expected a string');
  return micromatch.braces(pattern, { ...options, expand: true });
};

/**
 * Expose micromatch
 */

// exposed for tests
micromatch.hasBraces = hasBraces;
module.exports = micromatch;
{
  "name": "micromatch",
  "description": "Glob matching for javascript/node.js. A replacement and faster alternative to minimatch and multimatch.",
  "version": "4.0.8",
  "homepage": "https://github.com/micromatch/micromatch",
  "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
  "repository": "micromatch/micromatch",
  "license": "MIT",
  "files": [
    "index.js"
  ],
  "main": "index.js",
  "engines": {
    "node": ">=8.6"
  },
  "dependencies": {
    "braces": "^3.0.3",
    "picomatch": "^2.3.1"
  },
  "devDependencies": {
    "fill-range": "^7.0.1",
    "gulp-format-md": "^2.0.0",
    "minimatch": "^5.0.1",
    "mocha": "^9.2.2",
    "time-require": "github:jonschlinkert/time-require"
  },
  "verb": {
    "toc": "collapsible",
    "layout": "default",
    "tasks": [
      "readme"
    ],
    "plugins": [
      "gulp-format-md"
    ],
    "lint": {
      "reflinks": true
    },
    "related": {
      "list": [
        "braces",
        "expand-brackets",
        "extglob",
        "fill-range",
        "nanomatch"
      ]
    },
    "reflinks": [
      "extglob",
      "fill-range",
      "glob-object",
      "minimatch",
      "multimatch"
    ]
  }
}'use strict';

const mimicFn = (to, from) => {
	for (const prop of Reflect.ownKeys(from)) {
		Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop));
	}

	return to;
};

module.exports = mimicFn;
// TODO: Remove this for the next major release
module.exports.default = mimicFn;
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "mimic-fn",
  "version": "2.1.0",
  "description": "Make a function mimic another one",
  "license": "MIT",
  "repository": "sindresorhus/mimic-fn",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "sindresorhus.com"
  },
  "engines": {
    "node": ">=6"
  },
  "files": [
    "index.js",
    "index.d.ts"
  ],
  "devDependencies": {
    "ava": "^1.4.1",
    "tsd": "^0.7.1",
    "xo": "^0.24.0"
  }
}The ISC License

Copyright (c) Isaac Z. Schlueter and Contributors

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
module.exports = minimatch
minimatch.Minimatch = Minimatch

var path = (function () { try { return require('path') } catch (e) {}}()) || {
  sep: '/'
}
minimatch.sep = path.sep

var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
var expand = require('brace-expansion')

var plTypes = {
  '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},
  '?': { open: '(?:', close: ')?' },
  '+': { open: '(?:', close: ')+' },
  '*': { open: '(?:', close: ')*' },
  '@': { open: '(?:', close: ')' }
}

// any single thing other than /
// don't need to escape / when using new RegExp()
var qmark = '[^/]'

// * => any number of characters
var star = qmark + '*?'

// ** when dots are allowed.  Anything goes, except .. and .
// not (^ or / followed by one or two dots followed by $ or /),
// followed by anything, any number of times.
var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'

// not a ^ or / followed by a dot,
// followed by anything, any number of times.
var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'

// characters that need to be escaped in RegExp.
var reSpecials = charSet('().*{}+?[]^$\\!')

// "abc" -> { a:true, b:true, c:true }
function charSet (s) {
  return s.split('').reduce(function (set, c) {
    set[c] = true
    return set
  }, {})
}

// normalizes slashes.
var slashSplit = /\/+/

minimatch.filter = filter
function filter (pattern, options) {
  options = options || {}
  return function (p, i, list) {
    return minimatch(p, pattern, options)
  }
}

function ext (a, b) {
  b = b || {}
  var t = {}
  Object.keys(a).forEach(function (k) {
    t[k] = a[k]
  })
  Object.keys(b).forEach(function (k) {
    t[k] = b[k]
  })
  return t
}

minimatch.defaults = function (def) {
  if (!def || typeof def !== 'object' || !Object.keys(def).length) {
    return minimatch
  }

  var orig = minimatch

  var m = function minimatch (p, pattern, options) {
    return orig(p, pattern, ext(def, options))
  }

  m.Minimatch = function Minimatch (pattern, options) {
    return new orig.Minimatch(pattern, ext(def, options))
  }
  m.Minimatch.defaults = function defaults (options) {
    return orig.defaults(ext(def, options)).Minimatch
  }

  m.filter = function filter (pattern, options) {
    return orig.filter(pattern, ext(def, options))
  }

  m.defaults = function defaults (options) {
    return orig.defaults(ext(def, options))
  }

  m.makeRe = function makeRe (pattern, options) {
    return orig.makeRe(pattern, ext(def, options))
  }

  m.braceExpand = function braceExpand (pattern, options) {
    return orig.braceExpand(pattern, ext(def, options))
  }

  m.match = function (list, pattern, options) {
    return orig.match(list, pattern, ext(def, options))
  }

  return m
}

Minimatch.defaults = function (def) {
  return minimatch.defaults(def).Minimatch
}

function minimatch (p, pattern, options) {
  assertValidPattern(pattern)

  if (!options) options = {}

  // shortcut: comments match nothing.
  if (!options.nocomment && pattern.charAt(0) === '#') {
    return false
  }

  return new Minimatch(pattern, options).match(p)
}

function Minimatch (pattern, options) {
  if (!(this instanceof Minimatch)) {
    return new Minimatch(pattern, options)
  }

  assertValidPattern(pattern)

  if (!options) options = {}

  pattern = pattern.trim()

  // windows support: need to use /, not \
  if (!options.allowWindowsEscape && path.sep !== '/') {
    pattern = pattern.split(path.sep).join('/')
  }

  this.options = options
  this.set = []
  this.pattern = pattern
  this.regexp = null
  this.negate = false
  this.comment = false
  this.empty = false
  this.partial = !!options.partial

  // make the set of regexps etc.
  this.make()
}

Minimatch.prototype.debug = function () {}

Minimatch.prototype.make = make
function make () {
  var pattern = this.pattern
  var options = this.options

  // empty patterns and comments match nothing.
  if (!options.nocomment && pattern.charAt(0) === '#') {
    this.comment = true
    return
  }
  if (!pattern) {
    this.empty = true
    return
  }

  // step 1: figure out negation, etc.
  this.parseNegate()

  // step 2: expand braces
  var set = this.globSet = this.braceExpand()

  if (options.debug) this.debug = function debug() { console.error.apply(console, arguments) }

  this.debug(this.pattern, set)

  // step 3: now we have a set, so turn each one into a series of path-portion
  // matching patterns.
  // These will be regexps, except in the case of "**", which is
  // set to the GLOBSTAR object for globstar behavior,
  // and will not contain any / characters
  set = this.globParts = set.map(function (s) {
    return s.split(slashSplit)
  })

  this.debug(this.pattern, set)

  // glob --> regexps
  set = set.map(function (s, si, set) {
    return s.map(this.parse, this)
  }, this)

  this.debug(this.pattern, set)

  // filter out everything that didn't compile properly.
  set = set.filter(function (s) {
    return s.indexOf(false) === -1
  })

  this.debug(this.pattern, set)

  this.set = set
}

Minimatch.prototype.parseNegate = parseNegate
function parseNegate () {
  var pattern = this.pattern
  var negate = false
  var options = this.options
  var negateOffset = 0

  if (options.nonegate) return

  for (var i = 0, l = pattern.length
    ; i < l && pattern.charAt(i) === '!'
    ; i++) {
    negate = !negate
    negateOffset++
  }

  if (negateOffset) this.pattern = pattern.substr(negateOffset)
  this.negate = negate
}

// Brace expansion:
// a{b,c}d -> abd acd
// a{b,}c -> abc ac
// a{0..3}d -> a0d a1d a2d a3d
// a{b,c{d,e}f}g -> abg acdfg acefg
// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
//
// Invalid sets are not expanded.
// a{2..}b -> a{2..}b
// a{b}c -> a{b}c
minimatch.braceExpand = function (pattern, options) {
  return braceExpand(pattern, options)
}

Minimatch.prototype.braceExpand = braceExpand

function braceExpand (pattern, options) {
  if (!options) {
    if (this instanceof Minimatch) {
      options = this.options
    } else {
      options = {}
    }
  }

  pattern = typeof pattern === 'undefined'
    ? this.pattern : pattern

  assertValidPattern(pattern)

  // Thanks to Yeting Li <https://github.com/yetingli> for
  // improving this regexp to avoid a ReDOS vulnerability.
  if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) {
    // shortcut. no need to expand.
    return [pattern]
  }

  return expand(pattern)
}

var MAX_PATTERN_LENGTH = 1024 * 64
var assertValidPattern = function (pattern) {
  if (typeof pattern !== 'string') {
    throw new TypeError('invalid pattern')
  }

  if (pattern.length > MAX_PATTERN_LENGTH) {
    throw new TypeError('pattern is too long')
  }
}

// parse a component of the expanded set.
// At this point, no pattern may contain "/" in it
// so we're going to return a 2d array, where each entry is the full
// pattern, split on '/', and then turned into a regular expression.
// A regexp is made at the end which joins each array with an
// escaped /, and another full one which joins each regexp with |.
//
// Following the lead of Bash 4.1, note that "**" only has special meaning
// when it is the *only* thing in a path portion.  Otherwise, any series
// of * is equivalent to a single *.  Globstar behavior is enabled by
// default, and can be disabled by setting options.noglobstar.
Minimatch.prototype.parse = parse
var SUBPARSE = {}
function parse (pattern, isSub) {
  assertValidPattern(pattern)

  var options = this.options

  // shortcuts
  if (pattern === '**') {
    if (!options.noglobstar)
      return GLOBSTAR
    else
      pattern = '*'
  }
  if (pattern === '') return ''

  var re = ''
  var hasMagic = !!options.nocase
  var escaping = false
  // ? => one single character
  var patternListStack = []
  var negativeLists = []
  var stateChar
  var inClass = false
  var reClassStart = -1
  var classStart = -1
  // . and .. never match anything that doesn't start with .,
  // even when options.dot is set.
  var patternStart = pattern.charAt(0) === '.' ? '' // anything
  // not (start or / followed by . or .. followed by / or end)
  : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))'
  : '(?!\\.)'
  var self = this

  function clearStateChar () {
    if (stateChar) {
      // we had some state-tracking character
      // that wasn't consumed by this pass.
      switch (stateChar) {
        case '*':
          re += star
          hasMagic = true
        break
        case '?':
          re += qmark
          hasMagic = true
        break
        default:
          re += '\\' + stateChar
        break
      }
      self.debug('clearStateChar %j %j', stateChar, re)
      stateChar = false
    }
  }

  for (var i = 0, len = pattern.length, c
    ; (i < len) && (c = pattern.charAt(i))
    ; i++) {
    this.debug('%s\t%s %s %j', pattern, i, re, c)

    // skip over any that are escaped.
    if (escaping && reSpecials[c]) {
      re += '\\' + c
      escaping = false
      continue
    }

    switch (c) {
      /* istanbul ignore next */
      case '/': {
        // completely not allowed, even escaped.
        // Should already be path-split by now.
        return false
      }

      case '\\':
        clearStateChar()
        escaping = true
      continue

      // the various stateChar values
      // for the "extglob" stuff.
      case '?':
      case '*':
      case '+':
      case '@':
      case '!':
        this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c)

        // all of those are literals inside a class, except that
        // the glob [!a] means [^a] in regexp
        if (inClass) {
          this.debug('  in class')
          if (c === '!' && i === classStart + 1) c = '^'
          re += c
          continue
        }

        // if we already have a stateChar, then it means
        // that there was something like ** or +? in there.
        // Handle the stateChar, then proceed with this one.
        self.debug('call clearStateChar %j', stateChar)
        clearStateChar()
        stateChar = c
        // if extglob is disabled, then +(asdf|foo) isn't a thing.
        // just clear the statechar *now*, rather than even diving into
        // the patternList stuff.
        if (options.noext) clearStateChar()
      continue

      case '(':
        if (inClass) {
          re += '('
          continue
        }

        if (!stateChar) {
          re += '\\('
          continue
        }

        patternListStack.push({
          type: stateChar,
          start: i - 1,
          reStart: re.length,
          open: plTypes[stateChar].open,
          close: plTypes[stateChar].close
        })
        // negation is (?:(?!js)[^/]*)
        re += stateChar === '!' ? '(?:(?!(?:' : '(?:'
        this.debug('plType %j %j', stateChar, re)
        stateChar = false
      continue

      case ')':
        if (inClass || !patternListStack.length) {
          re += '\\)'
          continue
        }

        clearStateChar()
        hasMagic = true
        var pl = patternListStack.pop()
        // negation is (?:(?!js)[^/]*)
        // The others are (?:<pattern>)<type>
        re += pl.close
        if (pl.type === '!') {
          negativeLists.push(pl)
        }
        pl.reEnd = re.length
      continue

      case '|':
        if (inClass || !patternListStack.length || escaping) {
          re += '\\|'
          escaping = false
          continue
        }

        clearStateChar()
        re += '|'
      continue

      // these are mostly the same in regexp and glob
      case '[':
        // swallow any state-tracking char before the [
        clearStateChar()

        if (inClass) {
          re += '\\' + c
          continue
        }

        inClass = true
        classStart = i
        reClassStart = re.length
        re += c
      continue

      case ']':
        //  a right bracket shall lose its special
        //  meaning and represent itself in
        //  a bracket expression if it occurs
        //  first in the list.  -- POSIX.2 2.8.3.2
        if (i === classStart + 1 || !inClass) {
          re += '\\' + c
          escaping = false
          continue
        }

        // handle the case where we left a class open.
        // "[z-a]" is valid, equivalent to "\[z-a\]"
        // split where the last [ was, make sure we don't have
        // an invalid re. if so, re-walk the contents of the
        // would-be class to re-translate any characters that
        // were passed through as-is
        // TODO: It would probably be faster to determine this
        // without a try/catch and a new RegExp, but it's tricky
        // to do safely.  For now, this is safe and works.
        var cs = pattern.substring(classStart + 1, i)
        try {
          RegExp('[' + cs + ']')
        } catch (er) {
          // not a valid class!
          var sp = this.parse(cs, SUBPARSE)
          re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
          hasMagic = hasMagic || sp[1]
          inClass = false
          continue
        }

        // finish up the class.
        hasMagic = true
        inClass = false
        re += c
      continue

      default:
        // swallow any state char that wasn't consumed
        clearStateChar()

        if (escaping) {
          // no need
          escaping = false
        } else if (reSpecials[c]
          && !(c === '^' && inClass)) {
          re += '\\'
        }

        re += c

    } // switch
  } // for

  // handle the case where we left a class open.
  // "[abc" is valid, equivalent to "\[abc"
  if (inClass) {
    // split where the last [ was, and escape it
    // this is a huge pita.  We now have to re-walk
    // the contents of the would-be class to re-translate
    // any characters that were passed through as-is
    cs = pattern.substr(classStart + 1)
    sp = this.parse(cs, SUBPARSE)
    re = re.substr(0, reClassStart) + '\\[' + sp[0]
    hasMagic = hasMagic || sp[1]
  }

  // handle the case where we had a +( thing at the *end*
  // of the pattern.
  // each pattern list stack adds 3 chars, and we need to go through
  // and escape any | chars that were passed through as-is for the regexp.
  // Go through and escape them, taking care not to double-escape any
  // | chars that were already escaped.
  for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
    var tail = re.slice(pl.reStart + pl.open.length)
    this.debug('setting tail', re, pl)
    // maybe some even number of \, then maybe 1 \, followed by a |
    tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) {
      if (!$2) {
        // the | isn't already escaped, so escape it.
        $2 = '\\'
      }

      // need to escape all those slashes *again*, without escaping the
      // one that we need for escaping the | character.  As it works out,
      // escaping an even number of slashes can be done by simply repeating
      // it exactly after itself.  That's why this trick works.
      //
      // I am sorry that you have to see this.
      return $1 + $1 + $2 + '|'
    })

    this.debug('tail=%j\n   %s', tail, tail, pl, re)
    var t = pl.type === '*' ? star
      : pl.type === '?' ? qmark
      : '\\' + pl.type

    hasMagic = true
    re = re.slice(0, pl.reStart) + t + '\\(' + tail
  }

  // handle trailing things that only matter at the very end.
  clearStateChar()
  if (escaping) {
    // trailing \\
    re += '\\\\'
  }

  // only need to apply the nodot start if the re starts with
  // something that could conceivably capture a dot
  var addPatternStart = false
  switch (re.charAt(0)) {
    case '[': case '.': case '(': addPatternStart = true
  }

  // Hack to work around lack of negative lookbehind in JS
  // A pattern like: *.!(x).!(y|z) needs to ensure that a name
  // like 'a.xyz.yz' doesn't match.  So, the first negative
  // lookahead, has to look ALL the way ahead, to the end of
  // the pattern.
  for (var n = negativeLists.length - 1; n > -1; n--) {
    var nl = negativeLists[n]

    var nlBefore = re.slice(0, nl.reStart)
    var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)
    var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)
    var nlAfter = re.slice(nl.reEnd)

    nlLast += nlAfter

    // Handle nested stuff like *(*.js|!(*.json)), where open parens
    // mean that we should *not* include the ) in the bit that is considered
    // "after" the negated section.
    var openParensBefore = nlBefore.split('(').length - 1
    var cleanAfter = nlAfter
    for (i = 0; i < openParensBefore; i++) {
      cleanAfter = cleanAfter.replace(/\)[+*?]?/, '')
    }
    nlAfter = cleanAfter

    var dollar = ''
    if (nlAfter === '' && isSub !== SUBPARSE) {
      dollar = '$'
    }
    var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast
    re = newRe
  }

  // if the re is not "" at this point, then we need to make sure
  // it doesn't match against an empty path part.
  // Otherwise a/* will match a/, which it should not.
  if (re !== '' && hasMagic) {
    re = '(?=.)' + re
  }

  if (addPatternStart) {
    re = patternStart + re
  }

  // parsing just a piece of a larger pattern.
  if (isSub === SUBPARSE) {
    return [re, hasMagic]
  }

  // skip the regexp for non-magical patterns
  // unescape anything in it, though, so that it'll be
  // an exact match against a file etc.
  if (!hasMagic) {
    return globUnescape(pattern)
  }

  var flags = options.nocase ? 'i' : ''
  try {
    var regExp = new RegExp('^' + re + '$', flags)
  } catch (er) /* istanbul ignore next - should be impossible */ {
    // If it was an invalid regular expression, then it can't match
    // anything.  This trick looks for a character after the end of
    // the string, which is of course impossible, except in multi-line
    // mode, but it's not a /m regex.
    return new RegExp('$.')
  }

  regExp._glob = pattern
  regExp._src = re

  return regExp
}

minimatch.makeRe = function (pattern, options) {
  return new Minimatch(pattern, options || {}).makeRe()
}

Minimatch.prototype.makeRe = makeRe
function makeRe () {
  if (this.regexp || this.regexp === false) return this.regexp

  // at this point, this.set is a 2d array of partial
  // pattern strings, or "**".
  //
  // It's better to use .match().  This function shouldn't
  // be used, really, but it's pretty convenient sometimes,
  // when you just want to work with a regex.
  var set = this.set

  if (!set.length) {
    this.regexp = false
    return this.regexp
  }
  var options = this.options

  var twoStar = options.noglobstar ? star
    : options.dot ? twoStarDot
    : twoStarNoDot
  var flags = options.nocase ? 'i' : ''

  var re = set.map(function (pattern) {
    return pattern.map(function (p) {
      return (p === GLOBSTAR) ? twoStar
      : (typeof p === 'string') ? regExpEscape(p)
      : p._src
    }).join('\\\/')
  }).join('|')

  // must match entire pattern
  // ending in a * or ** will make it less strict.
  re = '^(?:' + re + ')$'

  // can match anything, as long as it's not this.
  if (this.negate) re = '^(?!' + re + ').*$'

  try {
    this.regexp = new RegExp(re, flags)
  } catch (ex) /* istanbul ignore next - should be impossible */ {
    this.regexp = false
  }
  return this.regexp
}

minimatch.match = function (list, pattern, options) {
  options = options || {}
  var mm = new Minimatch(pattern, options)
  list = list.filter(function (f) {
    return mm.match(f)
  })
  if (mm.options.nonull && !list.length) {
    list.push(pattern)
  }
  return list
}

Minimatch.prototype.match = function match (f, partial) {
  if (typeof partial === 'undefined') partial = this.partial
  this.debug('match', f, this.pattern)
  // short-circuit in the case of busted things.
  // comments, etc.
  if (this.comment) return false
  if (this.empty) return f === ''

  if (f === '/' && partial) return true

  var options = this.options

  // windows: need to use /, not \
  if (path.sep !== '/') {
    f = f.split(path.sep).join('/')
  }

  // treat the test path as a set of pathparts.
  f = f.split(slashSplit)
  this.debug(this.pattern, 'split', f)

  // just ONE of the pattern sets in this.set needs to match
  // in order for it to be valid.  If negating, then just one
  // match means that we have failed.
  // Either way, return on the first hit.

  var set = this.set
  this.debug(this.pattern, 'set', set)

  // Find the basename of the path by looking for the last non-empty segment
  var filename
  var i
  for (i = f.length - 1; i >= 0; i--) {
    filename = f[i]
    if (filename) break
  }

  for (i = 0; i < set.length; i++) {
    var pattern = set[i]
    var file = f
    if (options.matchBase && pattern.length === 1) {
      file = [filename]
    }
    var hit = this.matchOne(file, pattern, partial)
    if (hit) {
      if (options.flipNegate) return true
      return !this.negate
    }
  }

  // didn't get any hits.  this is success if it's a negative
  // pattern, failure otherwise.
  if (options.flipNegate) return false
  return this.negate
}

// set partial to true to test if, for example,
// "/a/b" matches the start of "/*/b/*/d"
// Partial means, if you run out of file before you run
// out of pattern, then that's fine, as long as all
// the parts match.
Minimatch.prototype.matchOne = function (file, pattern, partial) {
  var options = this.options

  this.debug('matchOne',
    { 'this': this, file: file, pattern: pattern })

  this.debug('matchOne', file.length, pattern.length)

  for (var fi = 0,
      pi = 0,
      fl = file.length,
      pl = pattern.length
      ; (fi < fl) && (pi < pl)
      ; fi++, pi++) {
    this.debug('matchOne loop')
    var p = pattern[pi]
    var f = file[fi]

    this.debug(pattern, p, f)

    // should be impossible.
    // some invalid regexp stuff in the set.
    /* istanbul ignore if */
    if (p === false) return false

    if (p === GLOBSTAR) {
      this.debug('GLOBSTAR', [pattern, p, f])

      // "**"
      // a/**/b/**/c would match the following:
      // a/b/x/y/z/c
      // a/x/y/z/b/c
      // a/b/x/b/x/c
      // a/b/c
      // To do this, take the rest of the pattern after
      // the **, and see if it would match the file remainder.
      // If so, return success.
      // If not, the ** "swallows" a segment, and try again.
      // This is recursively awful.
      //
      // a/**/b/**/c matching a/b/x/y/z/c
      // - a matches a
      // - doublestar
      //   - matchOne(b/x/y/z/c, b/**/c)
      //     - b matches b
      //     - doublestar
      //       - matchOne(x/y/z/c, c) -> no
      //       - matchOne(y/z/c, c) -> no
      //       - matchOne(z/c, c) -> no
      //       - matchOne(c, c) yes, hit
      var fr = fi
      var pr = pi + 1
      if (pr === pl) {
        this.debug('** at the end')
        // a ** at the end will just swallow the rest.
        // We have found a match.
        // however, it will not swallow /.x, unless
        // options.dot is set.
        // . and .. are *never* matched by **, for explosively
        // exponential reasons.
        for (; fi < fl; fi++) {
          if (file[fi] === '.' || file[fi] === '..' ||
            (!options.dot && file[fi].charAt(0) === '.')) return false
        }
        return true
      }

      // ok, let's see if we can swallow whatever we can.
      while (fr < fl) {
        var swallowee = file[fr]

        this.debug('\nglobstar while', file, fr, pattern, pr, swallowee)

        // XXX remove this slice.  Just pass the start index.
        if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
          this.debug('globstar found match!', fr, fl, swallowee)
          // found a match.
          return true
        } else {
          // can't swallow "." or ".." ever.
          // can only swallow ".foo" when explicitly asked.
          if (swallowee === '.' || swallowee === '..' ||
            (!options.dot && swallowee.charAt(0) === '.')) {
            this.debug('dot detected!', file, fr, pattern, pr)
            break
          }

          // ** swallows a segment, and continue.
          this.debug('globstar swallow a segment, and continue')
          fr++
        }
      }

      // no match was found.
      // However, in partial mode, we can't say this is necessarily over.
      // If there's more *pattern* left, then
      /* istanbul ignore if */
      if (partial) {
        // ran out of file
        this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
        if (fr === fl) return true
      }
      return false
    }

    // something other than **
    // non-magic patterns just have to match exactly
    // patterns with magic have been turned into regexps.
    var hit
    if (typeof p === 'string') {
      hit = f === p
      this.debug('string match', p, f, hit)
    } else {
      hit = f.match(p)
      this.debug('pattern match', p, f, hit)
    }

    if (!hit) return false
  }

  // Note: ending in / means that we'll get a final ""
  // at the end of the pattern.  This can only match a
  // corresponding "" at the end of the file.
  // If the file ends in /, then it can only match a
  // a pattern that ends in /, unless the pattern just
  // doesn't have any more for it. But, a/b/ should *not*
  // match "a/b/*", even though "" matches against the
  // [^/]*? pattern, except in partial mode, where it might
  // simply not be reached yet.
  // However, a/b/ should still satisfy a/*

  // now either we fell off the end of the pattern, or we're done.
  if (fi === fl && pi === pl) {
    // ran out of pattern and filename at the same time.
    // an exact hit!
    return true
  } else if (fi === fl) {
    // ran out of file, but still had pattern left.
    // this is ok if we're doing the match as part of
    // a glob fs traversal.
    return partial
  } else /* istanbul ignore else */ if (pi === pl) {
    // ran out of pattern, still have file left.
    // this is only acceptable if we're on the very last
    // empty segment of a file with a trailing slash.
    // a/* should match a/b/
    return (fi === fl - 1) && (file[fi] === '')
  }

  // should be unreachable.
  /* istanbul ignore next */
  throw new Error('wtf?')
}

// replace stuff like \* with *
function globUnescape (s) {
  return s.replace(/\\(.)/g, '$1')
}

function regExpEscape (s) {
  return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
}
{
  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)",
  "name": "minimatch",
  "description": "a glob matcher in javascript",
  "version": "3.1.2",
  "publishConfig": {
    "tag": "v3-legacy"
  },
  "repository": {
    "type": "git",
    "url": "git://github.com/isaacs/minimatch.git"
  },
  "main": "minimatch.js",
  "engines": {
    "node": "*"
  },
  "dependencies": {
    "brace-expansion": "^1.1.7"
  },
  "devDependencies": {
    "tap": "^15.1.6"
  },
  "license": "ISC",
  "files": [
    "minimatch.js"
  ]
}/**
 * Helpers.
 */

var s = 1000;
var m = s * 60;
var h = m * 60;
var d = h * 24;
var w = d * 7;
var y = d * 365.25;

/**
 * Parse or format the given `val`.
 *
 * Options:
 *
 *  - `long` verbose formatting [false]
 *
 * @param {String|Number} val
 * @param {Object} [options]
 * @throws {Error} throw an error if val is not a non-empty string or a number
 * @return {String|Number}
 * @api public
 */

module.exports = function(val, options) {
  options = options || {};
  var type = typeof val;
  if (type === 'string' && val.length > 0) {
    return parse(val);
  } else if (type === 'number' && isFinite(val)) {
    return options.long ? fmtLong(val) : fmtShort(val);
  }
  throw new Error(
    'val is not a non-empty string or a valid number. val=' +
      JSON.stringify(val)
  );
};

/**
 * Parse the given `str` and return milliseconds.
 *
 * @param {String} str
 * @return {Number}
 * @api private
 */

function parse(str) {
  str = String(str);
  if (str.length > 100) {
    return;
  }
  var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
    str
  );
  if (!match) {
    return;
  }
  var n = parseFloat(match[1]);
  var type = (match[2] || 'ms').toLowerCase();
  switch (type) {
    case 'years':
    case 'year':
    case 'yrs':
    case 'yr':
    case 'y':
      return n * y;
    case 'weeks':
    case 'week':
    case 'w':
      return n * w;
    case 'days':
    case 'day':
    case 'd':
      return n * d;
    case 'hours':
    case 'hour':
    case 'hrs':
    case 'hr':
    case 'h':
      return n * h;
    case 'minutes':
    case 'minute':
    case 'mins':
    case 'min':
    case 'm':
      return n * m;
    case 'seconds':
    case 'second':
    case 'secs':
    case 'sec':
    case 's':
      return n * s;
    case 'milliseconds':
    case 'millisecond':
    case 'msecs':
    case 'msec':
    case 'ms':
      return n;
    default:
      return undefined;
  }
}

/**
 * Short format for `ms`.
 *
 * @param {Number} ms
 * @return {String}
 * @api private
 */

function fmtShort(ms) {
  var msAbs = Math.abs(ms);
  if (msAbs >= d) {
    return Math.round(ms / d) + 'd';
  }
  if (msAbs >= h) {
    return Math.round(ms / h) + 'h';
  }
  if (msAbs >= m) {
    return Math.round(ms / m) + 'm';
  }
  if (msAbs >= s) {
    return Math.round(ms / s) + 's';
  }
  return ms + 'ms';
}

/**
 * Long format for `ms`.
 *
 * @param {Number} ms
 * @return {String}
 * @api private
 */

function fmtLong(ms) {
  var msAbs = Math.abs(ms);
  if (msAbs >= d) {
    return plural(ms, msAbs, d, 'day');
  }
  if (msAbs >= h) {
    return plural(ms, msAbs, h, 'hour');
  }
  if (msAbs >= m) {
    return plural(ms, msAbs, m, 'minute');
  }
  if (msAbs >= s) {
    return plural(ms, msAbs, s, 'second');
  }
  return ms + ' ms';
}

/**
 * Pluralization helper.
 */

function plural(ms, msAbs, n, name) {
  var isPlural = msAbs >= n * 1.5;
  return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');
}
The MIT License (MIT)

Copyright (c) 2016 Zeit, Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
{
  "name": "ms",
  "version": "2.1.2",
  "description": "Tiny millisecond conversion utility",
  "repository": "zeit/ms",
  "main": "./index",
  "files": [
    "index.js"
  ],
  "lint-staged": {
    "*.js": [
      "npm run lint",
      "prettier --single-quote --write",
      "git add"
    ]
  },
  "license": "MIT",
  "devDependencies": {
    "eslint": "4.12.1",
    "expect.js": "0.3.1",
    "husky": "0.14.3",
    "lint-staged": "5.0.0",
    "mocha": "4.0.1"
  }
}'use strict';
const path = require('path');
const pathKey = require('path-key');

const npmRunPath = options => {
	options = {
		cwd: process.cwd(),
		path: process.env[pathKey()],
		execPath: process.execPath,
		...options
	};

	let previous;
	let cwdPath = path.resolve(options.cwd);
	const result = [];

	while (previous !== cwdPath) {
		result.push(path.join(cwdPath, 'node_modules/.bin'));
		previous = cwdPath;
		cwdPath = path.resolve(cwdPath, '..');
	}

	// Ensure the running `node` binary is used
	const execPathDir = path.resolve(options.cwd, options.execPath, '..');
	result.push(execPathDir);

	return result.concat(options.path).join(path.delimiter);
};

module.exports = npmRunPath;
// TODO: Remove this for the next major release
module.exports.default = npmRunPath;

module.exports.env = options => {
	options = {
		env: process.env,
		...options
	};

	const env = {...options.env};
	const path = pathKey({env});

	options.path = env[path];
	env[path] = module.exports(options);

	return env;
};
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "npm-run-path",
  "version": "4.0.1",
  "description": "Get your PATH prepended with locally installed binaries",
  "license": "MIT",
  "repository": "sindresorhus/npm-run-path",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "sindresorhus.com"
  },
  "engines": {
    "node": ">=8"
  },
  "files": [
    "index.js",
    "index.d.ts"
  ],
  "dependencies": {
    "path-key": "^3.0.0"
  },
  "devDependencies": {
    "ava": "^1.4.1",
    "tsd": "^0.7.2",
    "xo": "^0.24.0"
  }
}The ISC License

Copyright (c) Isaac Z. Schlueter and Contributors

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
var wrappy = require('wrappy')
module.exports = wrappy(once)
module.exports.strict = wrappy(onceStrict)

once.proto = once(function () {
  Object.defineProperty(Function.prototype, 'once', {
    value: function () {
      return once(this)
    },
    configurable: true
  })

  Object.defineProperty(Function.prototype, 'onceStrict', {
    value: function () {
      return onceStrict(this)
    },
    configurable: true
  })
})

function once (fn) {
  var f = function () {
    if (f.called) return f.value
    f.called = true
    return f.value = fn.apply(this, arguments)
  }
  f.called = false
  return f
}

function onceStrict (fn) {
  var f = function () {
    if (f.called)
      throw new Error(f.onceError)
    f.called = true
    return f.value = fn.apply(this, arguments)
  }
  var name = fn.name || 'Function wrapped with `once`'
  f.onceError = name + " shouldn't be called more than once"
  f.called = false
  return f
}
{
  "name": "once",
  "version": "1.4.0",
  "description": "Run a function exactly one time",
  "main": "once.js",
  "directories": {
    "test": "test"
  },
  "dependencies": {
    "wrappy": "1"
  },
  "devDependencies": {
    "tap": "^7.0.1"
  },
  "files": [
    "once.js"
  ],
  "repository": {
    "type": "git",
    "url": "git://github.com/isaacs/once"
  },
  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
  "license": "ISC"
}'use strict';
const mimicFn = require('mimic-fn');

const calledFunctions = new WeakMap();

const onetime = (function_, options = {}) => {
	if (typeof function_ !== 'function') {
		throw new TypeError('Expected a function');
	}

	let returnValue;
	let callCount = 0;
	const functionName = function_.displayName || function_.name || '<anonymous>';

	const onetime = function (...arguments_) {
		calledFunctions.set(onetime, ++callCount);

		if (callCount === 1) {
			returnValue = function_.apply(this, arguments_);
			function_ = null;
		} else if (options.throw === true) {
			throw new Error(`Function \`${functionName}\` can only be called once`);
		}

		return returnValue;
	};

	mimicFn(onetime, function_);
	calledFunctions.set(onetime, callCount);

	return onetime;
};

module.exports = onetime;
// TODO: Remove this for the next major release
module.exports.default = onetime;

module.exports.callCount = function_ => {
	if (!calledFunctions.has(function_)) {
		throw new Error(`The given function \`${function_.name}\` is not wrapped by the \`onetime\` package`);
	}

	return calledFunctions.get(function_);
};
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "onetime",
  "version": "5.1.2",
  "description": "Ensure a function is only called once",
  "license": "MIT",
  "repository": "sindresorhus/onetime",
  "funding": "https://github.com/sponsors/sindresorhus",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "https://sindresorhus.com"
  },
  "engines": {
    "node": ">=6"
  },
  "files": [
    "index.js",
    "index.d.ts"
  ],
  "dependencies": {
    "mimic-fn": "^2.1.0"
  },
  "devDependencies": {
    "ava": "^1.4.1",
    "tsd": "^0.7.1",
    "xo": "^0.24.0"
  }
}'use strict';
const AggregateError = require('aggregate-error');

module.exports = async (
	iterable,
	mapper,
	{
		concurrency = Infinity,
		stopOnError = true
	} = {}
) => {
	return new Promise((resolve, reject) => {
		if (typeof mapper !== 'function') {
			throw new TypeError('Mapper function is required');
		}

		if (!((Number.isSafeInteger(concurrency) || concurrency === Infinity) && concurrency >= 1)) {
			throw new TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${concurrency}\` (${typeof concurrency})`);
		}

		const result = [];
		const errors = [];
		const iterator = iterable[Symbol.iterator]();
		let isRejected = false;
		let isIterableDone = false;
		let resolvingCount = 0;
		let currentIndex = 0;

		const next = () => {
			if (isRejected) {
				return;
			}

			const nextItem = iterator.next();
			const index = currentIndex;
			currentIndex++;

			if (nextItem.done) {
				isIterableDone = true;

				if (resolvingCount === 0) {
					if (!stopOnError && errors.length !== 0) {
						reject(new AggregateError(errors));
					} else {
						resolve(result);
					}
				}

				return;
			}

			resolvingCount++;

			(async () => {
				try {
					const element = await nextItem.value;
					result[index] = await mapper(element, index);
					resolvingCount--;
					next();
				} catch (error) {
					if (stopOnError) {
						isRejected = true;
						reject(error);
					} else {
						errors.push(error);
						resolvingCount--;
						next();
					}
				}
			})();
		};

		for (let i = 0; i < concurrency; i++) {
			next();

			if (isIterableDone) {
				break;
			}
		}
	});
};
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "p-map",
  "version": "4.0.0",
  "description": "Map over promises concurrently",
  "license": "MIT",
  "repository": "sindresorhus/p-map",
  "funding": "https://github.com/sponsors/sindresorhus",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "https://sindresorhus.com"
  },
  "engines": {
    "node": ">=10"
  },
  "files": [
    "index.js",
    "index.d.ts"
  ],
  "dependencies": {
    "aggregate-error": "^3.0.0"
  },
  "devDependencies": {
    "ava": "^2.2.0",
    "delay": "^4.1.0",
    "in-range": "^2.0.0",
    "random-int": "^2.0.0",
    "time-span": "^3.1.0",
    "tsd": "^0.7.4",
    "xo": "^0.27.2"
  }
}'use strict';

function posix(path) {
	return path.charAt(0) === '/';
}

function win32(path) {
	// https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56
	var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;
	var result = splitDeviceRe.exec(path);
	var device = result[1] || '';
	var isUnc = Boolean(device && device.charAt(1) !== ':');

	// UNC paths are always absolute
	return Boolean(result[2] || isUnc);
}

module.exports = process.platform === 'win32' ? win32 : posix;
module.exports.posix = posix;
module.exports.win32 = win32;
The MIT License (MIT)

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
{
  "name": "path-is-absolute",
  "version": "1.0.1",
  "description": "Node.js 0.12 path.isAbsolute() ponyfill",
  "license": "MIT",
  "repository": "sindresorhus/path-is-absolute",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "sindresorhus.com"
  },
  "engines": {
    "node": ">=0.10.0"
  },
  "files": [
    "index.js"
  ],
  "devDependencies": {
    "xo": "^0.16.0"
  }
}'use strict';

const pathKey = (options = {}) => {
	const environment = options.env || process.env;
	const platform = options.platform || process.platform;

	if (platform !== 'win32') {
		return 'PATH';
	}

	return Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';
};

module.exports = pathKey;
// TODO: Remove this for the next major release
module.exports.default = pathKey;
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "path-key",
  "version": "3.1.1",
  "description": "Get the PATH environment variable key cross-platform",
  "license": "MIT",
  "repository": "sindresorhus/path-key",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "sindresorhus.com"
  },
  "engines": {
    "node": ">=8"
  },
  "files": [
    "index.js",
    "index.d.ts"
  ],
  "devDependencies": {
    "@types/node": "^11.13.0",
    "ava": "^1.4.1",
    "tsd": "^0.7.2",
    "xo": "^0.24.0"
  }
}'use strict';
const {promisify} = require('util');
const fs = require('fs');

async function isType(fsStatType, statsMethodName, filePath) {
	if (typeof filePath !== 'string') {
		throw new TypeError(`Expected a string, got ${typeof filePath}`);
	}

	try {
		const stats = await promisify(fs[fsStatType])(filePath);
		return stats[statsMethodName]();
	} catch (error) {
		if (error.code === 'ENOENT') {
			return false;
		}

		throw error;
	}
}

function isTypeSync(fsStatType, statsMethodName, filePath) {
	if (typeof filePath !== 'string') {
		throw new TypeError(`Expected a string, got ${typeof filePath}`);
	}

	try {
		return fs[fsStatType](filePath)[statsMethodName]();
	} catch (error) {
		if (error.code === 'ENOENT') {
			return false;
		}

		throw error;
	}
}

exports.isFile = isType.bind(null, 'stat', 'isFile');
exports.isDirectory = isType.bind(null, 'stat', 'isDirectory');
exports.isSymlink = isType.bind(null, 'lstat', 'isSymbolicLink');
exports.isFileSync = isTypeSync.bind(null, 'statSync', 'isFile');
exports.isDirectorySync = isTypeSync.bind(null, 'statSync', 'isDirectory');
exports.isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink');
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "path-type",
  "version": "4.0.0",
  "description": "Check if a path is a file, directory, or symlink",
  "license": "MIT",
  "repository": "sindresorhus/path-type",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "sindresorhus.com"
  },
  "engines": {
    "node": ">=8"
  },
  "files": [
    "index.js",
    "index.d.ts"
  ],
  "devDependencies": {
    "ava": "^1.3.1",
    "nyc": "^13.3.0",
    "tsd-check": "^0.3.0",
    "xo": "^0.24.0"
  }
}The MIT License (MIT)

Copyright (c) 2017-present, Jon Schlinkert.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
'use strict';

module.exports = require('./lib/picomatch');
{
  "name": "picomatch",
  "description": "Blazing fast and accurate glob matcher written in JavaScript, with no dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions.",
  "version": "2.3.1",
  "homepage": "https://github.com/micromatch/picomatch",
  "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
  "funding": "https://github.com/sponsors/jonschlinkert",
  "repository": "micromatch/picomatch",
  "license": "MIT",
  "files": [
    "index.js",
    "lib"
  ],
  "main": "index.js",
  "engines": {
    "node": ">=8.6"
  },
  "devDependencies": {
    "eslint": "^6.8.0",
    "fill-range": "^7.0.1",
    "gulp-format-md": "^2.0.0",
    "mocha": "^6.2.2",
    "nyc": "^15.0.0",
    "time-require": "github:jonschlinkert/time-require"
  },
  "verb": {
    "toc": {
      "render": true,
      "method": "preWrite",
      "maxdepth": 3
    },
    "layout": "empty",
    "tasks": [
      "readme"
    ],
    "plugins": [
      "gulp-format-md"
    ],
    "lint": {
      "reflinks": true
    },
    "related": {
      "list": [
        "braces",
        "micromatch"
      ]
    },
    "reflinks": [
      "braces",
      "expand-brackets",
      "extglob",
      "fill-range",
      "micromatch",
      "minimatch",
      "nanomatch",
      "picomatch"
    ]
  }
}'use strict';

const path = require('path');
const WIN_SLASH = '\\\\/';
const WIN_NO_SLASH = `[^${WIN_SLASH}]`;

/**
 * Posix glob regex
 */

const DOT_LITERAL = '\\.';
const PLUS_LITERAL = '\\+';
const QMARK_LITERAL = '\\?';
const SLASH_LITERAL = '\\/';
const ONE_CHAR = '(?=.)';
const QMARK = '[^/]';
const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;
const START_ANCHOR = `(?:^|${SLASH_LITERAL})`;
const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;
const NO_DOT = `(?!${DOT_LITERAL})`;
const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;
const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;
const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;
const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;
const STAR = `${QMARK}*?`;

const POSIX_CHARS = {
  DOT_LITERAL,
  PLUS_LITERAL,
  QMARK_LITERAL,
  SLASH_LITERAL,
  ONE_CHAR,
  QMARK,
  END_ANCHOR,
  DOTS_SLASH,
  NO_DOT,
  NO_DOTS,
  NO_DOT_SLASH,
  NO_DOTS_SLASH,
  QMARK_NO_DOT,
  STAR,
  START_ANCHOR
};

/**
 * Windows glob regex
 */

const WINDOWS_CHARS = {
  ...POSIX_CHARS,

  SLASH_LITERAL: `[${WIN_SLASH}]`,
  QMARK: WIN_NO_SLASH,
  STAR: `${WIN_NO_SLASH}*?`,
  DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,
  NO_DOT: `(?!${DOT_LITERAL})`,
  NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,
  NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,
  NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,
  QMARK_NO_DOT: `[^.${WIN_SLASH}]`,
  START_ANCHOR: `(?:^|[${WIN_SLASH}])`,
  END_ANCHOR: `(?:[${WIN_SLASH}]|$)`
};

/**
 * POSIX Bracket Regex
 */

const POSIX_REGEX_SOURCE = {
  alnum: 'a-zA-Z0-9',
  alpha: 'a-zA-Z',
  ascii: '\\x00-\\x7F',
  blank: ' \\t',
  cntrl: '\\x00-\\x1F\\x7F',
  digit: '0-9',
  graph: '\\x21-\\x7E',
  lower: 'a-z',
  print: '\\x20-\\x7E ',
  punct: '\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~',
  space: ' \\t\\r\\n\\v\\f',
  upper: 'A-Z',
  word: 'A-Za-z0-9_',
  xdigit: 'A-Fa-f0-9'
};

module.exports = {
  MAX_LENGTH: 1024 * 64,
  POSIX_REGEX_SOURCE,

  // regular expressions
  REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g,
  REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/,
  REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/,
  REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g,
  REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g,
  REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g,

  // Replace globs with equivalent patterns to reduce parsing time.
  REPLACEMENTS: {
    '***': '*',
    '**/**': '**',
    '**/**/**': '**'
  },

  // Digits
  CHAR_0: 48, /* 0 */
  CHAR_9: 57, /* 9 */

  // Alphabet chars.
  CHAR_UPPERCASE_A: 65, /* A */
  CHAR_LOWERCASE_A: 97, /* a */
  CHAR_UPPERCASE_Z: 90, /* Z */
  CHAR_LOWERCASE_Z: 122, /* z */

  CHAR_LEFT_PARENTHESES: 40, /* ( */
  CHAR_RIGHT_PARENTHESES: 41, /* ) */

  CHAR_ASTERISK: 42, /* * */

  // Non-alphabetic chars.
  CHAR_AMPERSAND: 38, /* & */
  CHAR_AT: 64, /* @ */
  CHAR_BACKWARD_SLASH: 92, /* \ */
  CHAR_CARRIAGE_RETURN: 13, /* \r */
  CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */
  CHAR_COLON: 58, /* : */
  CHAR_COMMA: 44, /* , */
  CHAR_DOT: 46, /* . */
  CHAR_DOUBLE_QUOTE: 34, /* " */
  CHAR_EQUAL: 61, /* = */
  CHAR_EXCLAMATION_MARK: 33, /* ! */
  CHAR_FORM_FEED: 12, /* \f */
  CHAR_FORWARD_SLASH: 47, /* / */
  CHAR_GRAVE_ACCENT: 96, /* ` */
  CHAR_HASH: 35, /* # */
  CHAR_HYPHEN_MINUS: 45, /* - */
  CHAR_LEFT_ANGLE_BRACKET: 60, /* < */
  CHAR_LEFT_CURLY_BRACE: 123, /* { */
  CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */
  CHAR_LINE_FEED: 10, /* \n */
  CHAR_NO_BREAK_SPACE: 160, /* \u00A0 */
  CHAR_PERCENT: 37, /* % */
  CHAR_PLUS: 43, /* + */
  CHAR_QUESTION_MARK: 63, /* ? */
  CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */
  CHAR_RIGHT_CURLY_BRACE: 125, /* } */
  CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */
  CHAR_SEMICOLON: 59, /* ; */
  CHAR_SINGLE_QUOTE: 39, /* ' */
  CHAR_SPACE: 32, /*   */
  CHAR_TAB: 9, /* \t */
  CHAR_UNDERSCORE: 95, /* _ */
  CHAR_VERTICAL_LINE: 124, /* | */
  CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \uFEFF */

  SEP: path.sep,

  /**
   * Create EXTGLOB_CHARS
   */

  extglobChars(chars) {
    return {
      '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },
      '?': { type: 'qmark', open: '(?:', close: ')?' },
      '+': { type: 'plus', open: '(?:', close: ')+' },
      '*': { type: 'star', open: '(?:', close: ')*' },
      '@': { type: 'at', open: '(?:', close: ')' }
    };
  },

  /**
   * Create GLOB_CHARS
   */

  globChars(win32) {
    return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;
  }
};
'use strict';

const constants = require('./constants');
const utils = require('./utils');

/**
 * Constants
 */

const {
  MAX_LENGTH,
  POSIX_REGEX_SOURCE,
  REGEX_NON_SPECIAL_CHARS,
  REGEX_SPECIAL_CHARS_BACKREF,
  REPLACEMENTS
} = constants;

/**
 * Helpers
 */

const expandRange = (args, options) => {
  if (typeof options.expandRange === 'function') {
    return options.expandRange(...args, options);
  }

  args.sort();
  const value = `[${args.join('-')}]`;

  try {
    /* eslint-disable-next-line no-new */
    new RegExp(value);
  } catch (ex) {
    return args.map(v => utils.escapeRegex(v)).join('..');
  }

  return value;
};

/**
 * Create the message for a syntax error
 */

const syntaxError = (type, char) => {
  return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`;
};

/**
 * Parse the given input string.
 * @param {String} input
 * @param {Object} options
 * @return {Object}
 */

const parse = (input, options) => {
  if (typeof input !== 'string') {
    throw new TypeError('Expected a string');
  }

  input = REPLACEMENTS[input] || input;

  const opts = { ...options };
  const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;

  let len = input.length;
  if (len > max) {
    throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);
  }

  const bos = { type: 'bos', value: '', output: opts.prepend || '' };
  const tokens = [bos];

  const capture = opts.capture ? '' : '?:';
  const win32 = utils.isWindows(options);

  // create constants based on platform, for windows or posix
  const PLATFORM_CHARS = constants.globChars(win32);
  const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);

  const {
    DOT_LITERAL,
    PLUS_LITERAL,
    SLASH_LITERAL,
    ONE_CHAR,
    DOTS_SLASH,
    NO_DOT,
    NO_DOT_SLASH,
    NO_DOTS_SLASH,
    QMARK,
    QMARK_NO_DOT,
    STAR,
    START_ANCHOR
  } = PLATFORM_CHARS;

  const globstar = opts => {
    return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
  };

  const nodot = opts.dot ? '' : NO_DOT;
  const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;
  let star = opts.bash === true ? globstar(opts) : STAR;

  if (opts.capture) {
    star = `(${star})`;
  }

  // minimatch options support
  if (typeof opts.noext === 'boolean') {
    opts.noextglob = opts.noext;
  }

  const state = {
    input,
    index: -1,
    start: 0,
    dot: opts.dot === true,
    consumed: '',
    output: '',
    prefix: '',
    backtrack: false,
    negated: false,
    brackets: 0,
    braces: 0,
    parens: 0,
    quotes: 0,
    globstar: false,
    tokens
  };

  input = utils.removePrefix(input, state);
  len = input.length;

  const extglobs = [];
  const braces = [];
  const stack = [];
  let prev = bos;
  let value;

  /**
   * Tokenizing helpers
   */

  const eos = () => state.index === len - 1;
  const peek = state.peek = (n = 1) => input[state.index + n];
  const advance = state.advance = () => input[++state.index] || '';
  const remaining = () => input.slice(state.index + 1);
  const consume = (value = '', num = 0) => {
    state.consumed += value;
    state.index += num;
  };

  const append = token => {
    state.output += token.output != null ? token.output : token.value;
    consume(token.value);
  };

  const negate = () => {
    let count = 1;

    while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {
      advance();
      state.start++;
      count++;
    }

    if (count % 2 === 0) {
      return false;
    }

    state.negated = true;
    state.start++;
    return true;
  };

  const increment = type => {
    state[type]++;
    stack.push(type);
  };

  const decrement = type => {
    state[type]--;
    stack.pop();
  };

  /**
   * Push tokens onto the tokens array. This helper speeds up
   * tokenizing by 1) helping us avoid backtracking as much as possible,
   * and 2) helping us avoid creating extra tokens when consecutive
   * characters are plain text. This improves performance and simplifies
   * lookbehinds.
   */

  const push = tok => {
    if (prev.type === 'globstar') {
      const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');
      const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));

      if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {
        state.output = state.output.slice(0, -prev.output.length);
        prev.type = 'star';
        prev.value = '*';
        prev.output = star;
        state.output += prev.output;
      }
    }

    if (extglobs.length && tok.type !== 'paren') {
      extglobs[extglobs.length - 1].inner += tok.value;
    }

    if (tok.value || tok.output) append(tok);
    if (prev && prev.type === 'text' && tok.type === 'text') {
      prev.value += tok.value;
      prev.output = (prev.output || '') + tok.value;
      return;
    }

    tok.prev = prev;
    tokens.push(tok);
    prev = tok;
  };

  const extglobOpen = (type, value) => {
    const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };

    token.prev = prev;
    token.parens = state.parens;
    token.output = state.output;
    const output = (opts.capture ? '(' : '') + token.open;

    increment('parens');
    push({ type, value, output: state.output ? '' : ONE_CHAR });
    push({ type: 'paren', extglob: true, value: advance(), output });
    extglobs.push(token);
  };

  const extglobClose = token => {
    let output = token.close + (opts.capture ? ')' : '');
    let rest;

    if (token.type === 'negate') {
      let extglobStar = star;

      if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {
        extglobStar = globstar(opts);
      }

      if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) {
        output = token.close = `)$))${extglobStar}`;
      }

      if (token.inner.includes('*') && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) {
        // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.
        // In this case, we need to parse the string and use it in the output of the original pattern.
        // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.
        //
        // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.
        const expression = parse(rest, { ...options, fastpaths: false }).output;

        output = token.close = `)${expression})${extglobStar})`;
      }

      if (token.prev.type === 'bos') {
        state.negatedExtglob = true;
      }
    }

    push({ type: 'paren', extglob: true, value, output });
    decrement('parens');
  };

  /**
   * Fast paths
   */

  if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) {
    let backslashes = false;

    let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {
      if (first === '\\') {
        backslashes = true;
        return m;
      }

      if (first === '?') {
        if (esc) {
          return esc + first + (rest ? QMARK.repeat(rest.length) : '');
        }
        if (index === 0) {
          return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');
        }
        return QMARK.repeat(chars.length);
      }

      if (first === '.') {
        return DOT_LITERAL.repeat(chars.length);
      }

      if (first === '*') {
        if (esc) {
          return esc + first + (rest ? star : '');
        }
        return star;
      }
      return esc ? m : `\\${m}`;
    });

    if (backslashes === true) {
      if (opts.unescape === true) {
        output = output.replace(/\\/g, '');
      } else {
        output = output.replace(/\\+/g, m => {
          return m.length % 2 === 0 ? '\\\\' : (m ? '\\' : '');
        });
      }
    }

    if (output === input && opts.contains === true) {
      state.output = input;
      return state;
    }

    state.output = utils.wrapOutput(output, state, options);
    return state;
  }

  /**
   * Tokenize input until we reach end-of-string
   */

  while (!eos()) {
    value = advance();

    if (value === '\u0000') {
      continue;
    }

    /**
     * Escaped characters
     */

    if (value === '\\') {
      const next = peek();

      if (next === '/' && opts.bash !== true) {
        continue;
      }

      if (next === '.' || next === ';') {
        continue;
      }

      if (!next) {
        value += '\\';
        push({ type: 'text', value });
        continue;
      }

      // collapse slashes to reduce potential for exploits
      const match = /^\\+/.exec(remaining());
      let slashes = 0;

      if (match && match[0].length > 2) {
        slashes = match[0].length;
        state.index += slashes;
        if (slashes % 2 !== 0) {
          value += '\\';
        }
      }

      if (opts.unescape === true) {
        value = advance();
      } else {
        value += advance();
      }

      if (state.brackets === 0) {
        push({ type: 'text', value });
        continue;
      }
    }

    /**
     * If we're inside a regex character class, continue
     * until we reach the closing bracket.
     */

    if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {
      if (opts.posix !== false && value === ':') {
        const inner = prev.value.slice(1);
        if (inner.includes('[')) {
          prev.posix = true;

          if (inner.includes(':')) {
            const idx = prev.value.lastIndexOf('[');
            const pre = prev.value.slice(0, idx);
            const rest = prev.value.slice(idx + 2);
            const posix = POSIX_REGEX_SOURCE[rest];
            if (posix) {
              prev.value = pre + posix;
              state.backtrack = true;
              advance();

              if (!bos.output && tokens.indexOf(prev) === 1) {
                bos.output = ONE_CHAR;
              }
              continue;
            }
          }
        }
      }

      if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {
        value = `\\${value}`;
      }

      if (value === ']' && (prev.value === '[' || prev.value === '[^')) {
        value = `\\${value}`;
      }

      if (opts.posix === true && value === '!' && prev.value === '[') {
        value = '^';
      }

      prev.value += value;
      append({ value });
      continue;
    }

    /**
     * If we're inside a quoted string, continue
     * until we reach the closing double quote.
     */

    if (state.quotes === 1 && value !== '"') {
      value = utils.escapeRegex(value);
      prev.value += value;
      append({ value });
      continue;
    }

    /**
     * Double quotes
     */

    if (value === '"') {
      state.quotes = state.quotes === 1 ? 0 : 1;
      if (opts.keepQuotes === true) {
        push({ type: 'text', value });
      }
      continue;
    }

    /**
     * Parentheses
     */

    if (value === '(') {
      increment('parens');
      push({ type: 'paren', value });
      continue;
    }

    if (value === ')') {
      if (state.parens === 0 && opts.strictBrackets === true) {
        throw new SyntaxError(syntaxError('opening', '('));
      }

      const extglob = extglobs[extglobs.length - 1];
      if (extglob && state.parens === extglob.parens + 1) {
        extglobClose(extglobs.pop());
        continue;
      }

      push({ type: 'paren', value, output: state.parens ? ')' : '\\)' });
      decrement('parens');
      continue;
    }

    /**
     * Square brackets
     */

    if (value === '[') {
      if (opts.nobracket === true || !remaining().includes(']')) {
        if (opts.nobracket !== true && opts.strictBrackets === true) {
          throw new SyntaxError(syntaxError('closing', ']'));
        }

        value = `\\${value}`;
      } else {
        increment('brackets');
      }

      push({ type: 'bracket', value });
      continue;
    }

    if (value === ']') {
      if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {
        push({ type: 'text', value, output: `\\${value}` });
        continue;
      }

      if (state.brackets === 0) {
        if (opts.strictBrackets === true) {
          throw new SyntaxError(syntaxError('opening', '['));
        }

        push({ type: 'text', value, output: `\\${value}` });
        continue;
      }

      decrement('brackets');

      const prevValue = prev.value.slice(1);
      if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {
        value = `/${value}`;
      }

      prev.value += value;
      append({ value });

      // when literal brackets are explicitly disabled
      // assume we should match with a regex character class
      if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {
        continue;
      }

      const escaped = utils.escapeRegex(prev.value);
      state.output = state.output.slice(0, -prev.value.length);

      // when literal brackets are explicitly enabled
      // assume we should escape the brackets to match literal characters
      if (opts.literalBrackets === true) {
        state.output += escaped;
        prev.value = escaped;
        continue;
      }

      // when the user specifies nothing, try to match both
      prev.value = `(${capture}${escaped}|${prev.value})`;
      state.output += prev.value;
      continue;
    }

    /**
     * Braces
     */

    if (value === '{' && opts.nobrace !== true) {
      increment('braces');

      const open = {
        type: 'brace',
        value,
        output: '(',
        outputIndex: state.output.length,
        tokensIndex: state.tokens.length
      };

      braces.push(open);
      push(open);
      continue;
    }

    if (value === '}') {
      const brace = braces[braces.length - 1];

      if (opts.nobrace === true || !brace) {
        push({ type: 'text', value, output: value });
        continue;
      }

      let output = ')';

      if (brace.dots === true) {
        const arr = tokens.slice();
        const range = [];

        for (let i = arr.length - 1; i >= 0; i--) {
          tokens.pop();
          if (arr[i].type === 'brace') {
            break;
          }
          if (arr[i].type !== 'dots') {
            range.unshift(arr[i].value);
          }
        }

        output = expandRange(range, opts);
        state.backtrack = true;
      }

      if (brace.comma !== true && brace.dots !== true) {
        const out = state.output.slice(0, brace.outputIndex);
        const toks = state.tokens.slice(brace.tokensIndex);
        brace.value = brace.output = '\\{';
        value = output = '\\}';
        state.output = out;
        for (const t of toks) {
          state.output += (t.output || t.value);
        }
      }

      push({ type: 'brace', value, output });
      decrement('braces');
      braces.pop();
      continue;
    }

    /**
     * Pipes
     */

    if (value === '|') {
      if (extglobs.length > 0) {
        extglobs[extglobs.length - 1].conditions++;
      }
      push({ type: 'text', value });
      continue;
    }

    /**
     * Commas
     */

    if (value === ',') {
      let output = value;

      const brace = braces[braces.length - 1];
      if (brace && stack[stack.length - 1] === 'braces') {
        brace.comma = true;
        output = '|';
      }

      push({ type: 'comma', value, output });
      continue;
    }

    /**
     * Slashes
     */

    if (value === '/') {
      // if the beginning of the glob is "./", advance the start
      // to the current index, and don't add the "./" characters
      // to the state. This greatly simplifies lookbehinds when
      // checking for BOS characters like "!" and "." (not "./")
      if (prev.type === 'dot' && state.index === state.start + 1) {
        state.start = state.index + 1;
        state.consumed = '';
        state.output = '';
        tokens.pop();
        prev = bos; // reset "prev" to the first token
        continue;
      }

      push({ type: 'slash', value, output: SLASH_LITERAL });
      continue;
    }

    /**
     * Dots
     */

    if (value === '.') {
      if (state.braces > 0 && prev.type === 'dot') {
        if (prev.value === '.') prev.output = DOT_LITERAL;
        const brace = braces[braces.length - 1];
        prev.type = 'dots';
        prev.output += value;
        prev.value += value;
        brace.dots = true;
        continue;
      }

      if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {
        push({ type: 'text', value, output: DOT_LITERAL });
        continue;
      }

      push({ type: 'dot', value, output: DOT_LITERAL });
      continue;
    }

    /**
     * Question marks
     */

    if (value === '?') {
      const isGroup = prev && prev.value === '(';
      if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {
        extglobOpen('qmark', value);
        continue;
      }

      if (prev && prev.type === 'paren') {
        const next = peek();
        let output = value;

        if (next === '<' && !utils.supportsLookbehinds()) {
          throw new Error('Node.js v10 or higher is required for regex lookbehinds');
        }

        if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\w+>)/.test(remaining()))) {
          output = `\\${value}`;
        }

        push({ type: 'text', value, output });
        continue;
      }

      if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {
        push({ type: 'qmark', value, output: QMARK_NO_DOT });
        continue;
      }

      push({ type: 'qmark', value, output: QMARK });
      continue;
    }

    /**
     * Exclamation
     */

    if (value === '!') {
      if (opts.noextglob !== true && peek() === '(') {
        if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {
          extglobOpen('negate', value);
          continue;
        }
      }

      if (opts.nonegate !== true && state.index === 0) {
        negate();
        continue;
      }
    }

    /**
     * Plus
     */

    if (value === '+') {
      if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {
        extglobOpen('plus', value);
        continue;
      }

      if ((prev && prev.value === '(') || opts.regex === false) {
        push({ type: 'plus', value, output: PLUS_LITERAL });
        continue;
      }

      if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {
        push({ type: 'plus', value });
        continue;
      }

      push({ type: 'plus', value: PLUS_LITERAL });
      continue;
    }

    /**
     * Plain text
     */

    if (value === '@') {
      if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {
        push({ type: 'at', extglob: true, value, output: '' });
        continue;
      }

      push({ type: 'text', value });
      continue;
    }

    /**
     * Plain text
     */

    if (value !== '*') {
      if (value === '$' || value === '^') {
        value = `\\${value}`;
      }

      const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());
      if (match) {
        value += match[0];
        state.index += match[0].length;
      }

      push({ type: 'text', value });
      continue;
    }

    /**
     * Stars
     */

    if (prev && (prev.type === 'globstar' || prev.star === true)) {
      prev.type = 'star';
      prev.star = true;
      prev.value += value;
      prev.output = star;
      state.backtrack = true;
      state.globstar = true;
      consume(value);
      continue;
    }

    let rest = remaining();
    if (opts.noextglob !== true && /^\([^?]/.test(rest)) {
      extglobOpen('star', value);
      continue;
    }

    if (prev.type === 'star') {
      if (opts.noglobstar === true) {
        consume(value);
        continue;
      }

      const prior = prev.prev;
      const before = prior.prev;
      const isStart = prior.type === 'slash' || prior.type === 'bos';
      const afterStar = before && (before.type === 'star' || before.type === 'globstar');

      if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {
        push({ type: 'star', value, output: '' });
        continue;
      }

      const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');
      const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');
      if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {
        push({ type: 'star', value, output: '' });
        continue;
      }

      // strip consecutive `/**/`
      while (rest.slice(0, 3) === '/**') {
        const after = input[state.index + 4];
        if (after && after !== '/') {
          break;
        }
        rest = rest.slice(3);
        consume('/**', 3);
      }

      if (prior.type === 'bos' && eos()) {
        prev.type = 'globstar';
        prev.value += value;
        prev.output = globstar(opts);
        state.output = prev.output;
        state.globstar = true;
        consume(value);
        continue;
      }

      if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {
        state.output = state.output.slice(0, -(prior.output + prev.output).length);
        prior.output = `(?:${prior.output}`;

        prev.type = 'globstar';
        prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');
        prev.value += value;
        state.globstar = true;
        state.output += prior.output + prev.output;
        consume(value);
        continue;
      }

      if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {
        const end = rest[1] !== void 0 ? '|$' : '';

        state.output = state.output.slice(0, -(prior.output + prev.output).length);
        prior.output = `(?:${prior.output}`;

        prev.type = 'globstar';
        prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;
        prev.value += value;

        state.output += prior.output + prev.output;
        state.globstar = true;

        consume(value + advance());

        push({ type: 'slash', value: '/', output: '' });
        continue;
      }

      if (prior.type === 'bos' && rest[0] === '/') {
        prev.type = 'globstar';
        prev.value += value;
        prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;
        state.output = prev.output;
        state.globstar = true;
        consume(value + advance());
        push({ type: 'slash', value: '/', output: '' });
        continue;
      }

      // remove single star from output
      state.output = state.output.slice(0, -prev.output.length);

      // reset previous token to globstar
      prev.type = 'globstar';
      prev.output = globstar(opts);
      prev.value += value;

      // reset output with globstar
      state.output += prev.output;
      state.globstar = true;
      consume(value);
      continue;
    }

    const token = { type: 'star', value, output: star };

    if (opts.bash === true) {
      token.output = '.*?';
      if (prev.type === 'bos' || prev.type === 'slash') {
        token.output = nodot + token.output;
      }
      push(token);
      continue;
    }

    if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {
      token.output = value;
      push(token);
      continue;
    }

    if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {
      if (prev.type === 'dot') {
        state.output += NO_DOT_SLASH;
        prev.output += NO_DOT_SLASH;

      } else if (opts.dot === true) {
        state.output += NO_DOTS_SLASH;
        prev.output += NO_DOTS_SLASH;

      } else {
        state.output += nodot;
        prev.output += nodot;
      }

      if (peek() !== '*') {
        state.output += ONE_CHAR;
        prev.output += ONE_CHAR;
      }
    }

    push(token);
  }

  while (state.brackets > 0) {
    if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));
    state.output = utils.escapeLast(state.output, '[');
    decrement('brackets');
  }

  while (state.parens > 0) {
    if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));
    state.output = utils.escapeLast(state.output, '(');
    decrement('parens');
  }

  while (state.braces > 0) {
    if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));
    state.output = utils.escapeLast(state.output, '{');
    decrement('braces');
  }

  if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {
    push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });
  }

  // rebuild the output if we had to backtrack at any point
  if (state.backtrack === true) {
    state.output = '';

    for (const token of state.tokens) {
      state.output += token.output != null ? token.output : token.value;

      if (token.suffix) {
        state.output += token.suffix;
      }
    }
  }

  return state;
};

/**
 * Fast paths for creating regular expressions for common glob patterns.
 * This can significantly speed up processing and has very little downside
 * impact when none of the fast paths match.
 */

parse.fastpaths = (input, options) => {
  const opts = { ...options };
  const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
  const len = input.length;
  if (len > max) {
    throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);
  }

  input = REPLACEMENTS[input] || input;
  const win32 = utils.isWindows(options);

  // create constants based on platform, for windows or posix
  const {
    DOT_LITERAL,
    SLASH_LITERAL,
    ONE_CHAR,
    DOTS_SLASH,
    NO_DOT,
    NO_DOTS,
    NO_DOTS_SLASH,
    STAR,
    START_ANCHOR
  } = constants.globChars(win32);

  const nodot = opts.dot ? NO_DOTS : NO_DOT;
  const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;
  const capture = opts.capture ? '' : '?:';
  const state = { negated: false, prefix: '' };
  let star = opts.bash === true ? '.*?' : STAR;

  if (opts.capture) {
    star = `(${star})`;
  }

  const globstar = opts => {
    if (opts.noglobstar === true) return star;
    return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
  };

  const create = str => {
    switch (str) {
      case '*':
        return `${nodot}${ONE_CHAR}${star}`;

      case '.*':
        return `${DOT_LITERAL}${ONE_CHAR}${star}`;

      case '*.*':
        return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;

      case '*/*':
        return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;

      case '**':
        return nodot + globstar(opts);

      case '**/*':
        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;

      case '**/*.*':
        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;

      case '**/.*':
        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;

      default: {
        const match = /^(.*?)\.(\w+)$/.exec(str);
        if (!match) return;

        const source = create(match[1]);
        if (!source) return;

        return source + DOT_LITERAL + match[2];
      }
    }
  };

  const output = utils.removePrefix(input, state);
  let source = create(output);

  if (source && opts.strictSlashes !== true) {
    source += `${SLASH_LITERAL}?`;
  }

  return source;
};

module.exports = parse;
'use strict';

const path = require('path');
const scan = require('./scan');
const parse = require('./parse');
const utils = require('./utils');
const constants = require('./constants');
const isObject = val => val && typeof val === 'object' && !Array.isArray(val);

/**
 * Creates a matcher function from one or more glob patterns. The
 * returned function takes a string to match as its first argument,
 * and returns true if the string is a match. The returned matcher
 * function also takes a boolean as the second argument that, when true,
 * returns an object with additional information.
 *
 * ```js
 * const picomatch = require('picomatch');
 * // picomatch(glob[, options]);
 *
 * const isMatch = picomatch('*.!(*a)');
 * console.log(isMatch('a.a')); //=> false
 * console.log(isMatch('a.b')); //=> true
 * ```
 * @name picomatch
 * @param {String|Array} `globs` One or more glob patterns.
 * @param {Object=} `options`
 * @return {Function=} Returns a matcher function.
 * @api public
 */

const picomatch = (glob, options, returnState = false) => {
  if (Array.isArray(glob)) {
    const fns = glob.map(input => picomatch(input, options, returnState));
    const arrayMatcher = str => {
      for (const isMatch of fns) {
        const state = isMatch(str);
        if (state) return state;
      }
      return false;
    };
    return arrayMatcher;
  }

  const isState = isObject(glob) && glob.tokens && glob.input;

  if (glob === '' || (typeof glob !== 'string' && !isState)) {
    throw new TypeError('Expected pattern to be a non-empty string');
  }

  const opts = options || {};
  const posix = utils.isWindows(options);
  const regex = isState
    ? picomatch.compileRe(glob, options)
    : picomatch.makeRe(glob, options, false, true);

  const state = regex.state;
  delete regex.state;

  let isIgnored = () => false;
  if (opts.ignore) {
    const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };
    isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);
  }

  const matcher = (input, returnObject = false) => {
    const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });
    const result = { glob, state, regex, posix, input, output, match, isMatch };

    if (typeof opts.onResult === 'function') {
      opts.onResult(result);
    }

    if (isMatch === false) {
      result.isMatch = false;
      return returnObject ? result : false;
    }

    if (isIgnored(input)) {
      if (typeof opts.onIgnore === 'function') {
        opts.onIgnore(result);
      }
      result.isMatch = false;
      return returnObject ? result : false;
    }

    if (typeof opts.onMatch === 'function') {
      opts.onMatch(result);
    }
    return returnObject ? result : true;
  };

  if (returnState) {
    matcher.state = state;
  }

  return matcher;
};

/**
 * Test `input` with the given `regex`. This is used by the main
 * `picomatch()` function to test the input string.
 *
 * ```js
 * const picomatch = require('picomatch');
 * // picomatch.test(input, regex[, options]);
 *
 * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/));
 * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }
 * ```
 * @param {String} `input` String to test.
 * @param {RegExp} `regex`
 * @return {Object} Returns an object with matching info.
 * @api public
 */

picomatch.test = (input, regex, options, { glob, posix } = {}) => {
  if (typeof input !== 'string') {
    throw new TypeError('Expected input to be a string');
  }

  if (input === '') {
    return { isMatch: false, output: '' };
  }

  const opts = options || {};
  const format = opts.format || (posix ? utils.toPosixSlashes : null);
  let match = input === glob;
  let output = (match && format) ? format(input) : input;

  if (match === false) {
    output = format ? format(input) : input;
    match = output === glob;
  }

  if (match === false || opts.capture === true) {
    if (opts.matchBase === true || opts.basename === true) {
      match = picomatch.matchBase(input, regex, options, posix);
    } else {
      match = regex.exec(output);
    }
  }

  return { isMatch: Boolean(match), match, output };
};

/**
 * Match the basename of a filepath.
 *
 * ```js
 * const picomatch = require('picomatch');
 * // picomatch.matchBase(input, glob[, options]);
 * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true
 * ```
 * @param {String} `input` String to test.
 * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).
 * @return {Boolean}
 * @api public
 */

picomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => {
  const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);
  return regex.test(path.basename(input));
};

/**
 * Returns true if **any** of the given glob `patterns` match the specified `string`.
 *
 * ```js
 * const picomatch = require('picomatch');
 * // picomatch.isMatch(string, patterns[, options]);
 *
 * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true
 * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false
 * ```
 * @param {String|Array} str The string to test.
 * @param {String|Array} patterns One or more glob patterns to use for matching.
 * @param {Object} [options] See available [options](#options).
 * @return {Boolean} Returns true if any patterns match `str`
 * @api public
 */

picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);

/**
 * Parse a glob pattern to create the source string for a regular
 * expression.
 *
 * ```js
 * const picomatch = require('picomatch');
 * const result = picomatch.parse(pattern[, options]);
 * ```
 * @param {String} `pattern`
 * @param {Object} `options`
 * @return {Object} Returns an object with useful properties and output to be used as a regex source string.
 * @api public
 */

picomatch.parse = (pattern, options) => {
  if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));
  return parse(pattern, { ...options, fastpaths: false });
};

/**
 * Scan a glob pattern to separate the pattern into segments.
 *
 * ```js
 * const picomatch = require('picomatch');
 * // picomatch.scan(input[, options]);
 *
 * const result = picomatch.scan('!./foo/*.js');
 * console.log(result);
 * { prefix: '!./',
 *   input: '!./foo/*.js',
 *   start: 3,
 *   base: 'foo',
 *   glob: '*.js',
 *   isBrace: false,
 *   isBracket: false,
 *   isGlob: true,
 *   isExtglob: false,
 *   isGlobstar: false,
 *   negated: true }
 * ```
 * @param {String} `input` Glob pattern to scan.
 * @param {Object} `options`
 * @return {Object} Returns an object with
 * @api public
 */

picomatch.scan = (input, options) => scan(input, options);

/**
 * Compile a regular expression from the `state` object returned by the
 * [parse()](#parse) method.
 *
 * @param {Object} `state`
 * @param {Object} `options`
 * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.
 * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.
 * @return {RegExp}
 * @api public
 */

picomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {
  if (returnOutput === true) {
    return state.output;
  }

  const opts = options || {};
  const prepend = opts.contains ? '' : '^';
  const append = opts.contains ? '' : '$';

  let source = `${prepend}(?:${state.output})${append}`;
  if (state && state.negated === true) {
    source = `^(?!${source}).*$`;
  }

  const regex = picomatch.toRegex(source, options);
  if (returnState === true) {
    regex.state = state;
  }

  return regex;
};

/**
 * Create a regular expression from a parsed glob pattern.
 *
 * ```js
 * const picomatch = require('picomatch');
 * const state = picomatch.parse('*.js');
 * // picomatch.compileRe(state[, options]);
 *
 * console.log(picomatch.compileRe(state));
 * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/
 * ```
 * @param {String} `state` The object returned from the `.parse` method.
 * @param {Object} `options`
 * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.
 * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.
 * @return {RegExp} Returns a regex created from the given pattern.
 * @api public
 */

picomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {
  if (!input || typeof input !== 'string') {
    throw new TypeError('Expected a non-empty string');
  }

  let parsed = { negated: false, fastpaths: true };

  if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {
    parsed.output = parse.fastpaths(input, options);
  }

  if (!parsed.output) {
    parsed = parse(input, options);
  }

  return picomatch.compileRe(parsed, options, returnOutput, returnState);
};

/**
 * Create a regular expression from the given regex source string.
 *
 * ```js
 * const picomatch = require('picomatch');
 * // picomatch.toRegex(source[, options]);
 *
 * const { output } = picomatch.parse('*.js');
 * console.log(picomatch.toRegex(output));
 * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/
 * ```
 * @param {String} `source` Regular expression source string.
 * @param {Object} `options`
 * @return {RegExp}
 * @api public
 */

picomatch.toRegex = (source, options) => {
  try {
    const opts = options || {};
    return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));
  } catch (err) {
    if (options && options.debug === true) throw err;
    return /$^/;
  }
};

/**
 * Picomatch constants.
 * @return {Object}
 */

picomatch.constants = constants;

/**
 * Expose "picomatch"
 */

module.exports = picomatch;
'use strict';

const utils = require('./utils');
const {
  CHAR_ASTERISK,             /* * */
  CHAR_AT,                   /* @ */
  CHAR_BACKWARD_SLASH,       /* \ */
  CHAR_COMMA,                /* , */
  CHAR_DOT,                  /* . */
  CHAR_EXCLAMATION_MARK,     /* ! */
  CHAR_FORWARD_SLASH,        /* / */
  CHAR_LEFT_CURLY_BRACE,     /* { */
  CHAR_LEFT_PARENTHESES,     /* ( */
  CHAR_LEFT_SQUARE_BRACKET,  /* [ */
  CHAR_PLUS,                 /* + */
  CHAR_QUESTION_MARK,        /* ? */
  CHAR_RIGHT_CURLY_BRACE,    /* } */
  CHAR_RIGHT_PARENTHESES,    /* ) */
  CHAR_RIGHT_SQUARE_BRACKET  /* ] */
} = require('./constants');

const isPathSeparator = code => {
  return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;
};

const depth = token => {
  if (token.isPrefix !== true) {
    token.depth = token.isGlobstar ? Infinity : 1;
  }
};

/**
 * Quickly scans a glob pattern and returns an object with a handful of
 * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),
 * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not
 * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).
 *
 * ```js
 * const pm = require('picomatch');
 * console.log(pm.scan('foo/bar/*.js'));
 * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }
 * ```
 * @param {String} `str`
 * @param {Object} `options`
 * @return {Object} Returns an object with tokens and regex source string.
 * @api public
 */

const scan = (input, options) => {
  const opts = options || {};

  const length = input.length - 1;
  const scanToEnd = opts.parts === true || opts.scanToEnd === true;
  const slashes = [];
  const tokens = [];
  const parts = [];

  let str = input;
  let index = -1;
  let start = 0;
  let lastIndex = 0;
  let isBrace = false;
  let isBracket = false;
  let isGlob = false;
  let isExtglob = false;
  let isGlobstar = false;
  let braceEscaped = false;
  let backslashes = false;
  let negated = false;
  let negatedExtglob = false;
  let finished = false;
  let braces = 0;
  let prev;
  let code;
  let token = { value: '', depth: 0, isGlob: false };

  const eos = () => index >= length;
  const peek = () => str.charCodeAt(index + 1);
  const advance = () => {
    prev = code;
    return str.charCodeAt(++index);
  };

  while (index < length) {
    code = advance();
    let next;

    if (code === CHAR_BACKWARD_SLASH) {
      backslashes = token.backslashes = true;
      code = advance();

      if (code === CHAR_LEFT_CURLY_BRACE) {
        braceEscaped = true;
      }
      continue;
    }

    if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {
      braces++;

      while (eos() !== true && (code = advance())) {
        if (code === CHAR_BACKWARD_SLASH) {
          backslashes = token.backslashes = true;
          advance();
          continue;
        }

        if (code === CHAR_LEFT_CURLY_BRACE) {
          braces++;
          continue;
        }

        if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {
          isBrace = token.isBrace = true;
          isGlob = token.isGlob = true;
          finished = true;

          if (scanToEnd === true) {
            continue;
          }

          break;
        }

        if (braceEscaped !== true && code === CHAR_COMMA) {
          isBrace = token.isBrace = true;
          isGlob = token.isGlob = true;
          finished = true;

          if (scanToEnd === true) {
            continue;
          }

          break;
        }

        if (code === CHAR_RIGHT_CURLY_BRACE) {
          braces--;

          if (braces === 0) {
            braceEscaped = false;
            isBrace = token.isBrace = true;
            finished = true;
            break;
          }
        }
      }

      if (scanToEnd === true) {
        continue;
      }

      break;
    }

    if (code === CHAR_FORWARD_SLASH) {
      slashes.push(index);
      tokens.push(token);
      token = { value: '', depth: 0, isGlob: false };

      if (finished === true) continue;
      if (prev === CHAR_DOT && index === (start + 1)) {
        start += 2;
        continue;
      }

      lastIndex = index + 1;
      continue;
    }

    if (opts.noext !== true) {
      const isExtglobChar = code === CHAR_PLUS
        || code === CHAR_AT
        || code === CHAR_ASTERISK
        || code === CHAR_QUESTION_MARK
        || code === CHAR_EXCLAMATION_MARK;

      if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {
        isGlob = token.isGlob = true;
        isExtglob = token.isExtglob = true;
        finished = true;
        if (code === CHAR_EXCLAMATION_MARK && index === start) {
          negatedExtglob = true;
        }

        if (scanToEnd === true) {
          while (eos() !== true && (code = advance())) {
            if (code === CHAR_BACKWARD_SLASH) {
              backslashes = token.backslashes = true;
              code = advance();
              continue;
            }

            if (code === CHAR_RIGHT_PARENTHESES) {
              isGlob = token.isGlob = true;
              finished = true;
              break;
            }
          }
          continue;
        }
        break;
      }
    }

    if (code === CHAR_ASTERISK) {
      if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;
      isGlob = token.isGlob = true;
      finished = true;

      if (scanToEnd === true) {
        continue;
      }
      break;
    }

    if (code === CHAR_QUESTION_MARK) {
      isGlob = token.isGlob = true;
      finished = true;

      if (scanToEnd === true) {
        continue;
      }
      break;
    }

    if (code === CHAR_LEFT_SQUARE_BRACKET) {
      while (eos() !== true && (next = advance())) {
        if (next === CHAR_BACKWARD_SLASH) {
          backslashes = token.backslashes = true;
          advance();
          continue;
        }

        if (next === CHAR_RIGHT_SQUARE_BRACKET) {
          isBracket = token.isBracket = true;
          isGlob = token.isGlob = true;
          finished = true;
          break;
        }
      }

      if (scanToEnd === true) {
        continue;
      }

      break;
    }

    if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {
      negated = token.negated = true;
      start++;
      continue;
    }

    if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {
      isGlob = token.isGlob = true;

      if (scanToEnd === true) {
        while (eos() !== true && (code = advance())) {
          if (code === CHAR_LEFT_PARENTHESES) {
            backslashes = token.backslashes = true;
            code = advance();
            continue;
          }

          if (code === CHAR_RIGHT_PARENTHESES) {
            finished = true;
            break;
          }
        }
        continue;
      }
      break;
    }

    if (isGlob === true) {
      finished = true;

      if (scanToEnd === true) {
        continue;
      }

      break;
    }
  }

  if (opts.noext === true) {
    isExtglob = false;
    isGlob = false;
  }

  let base = str;
  let prefix = '';
  let glob = '';

  if (start > 0) {
    prefix = str.slice(0, start);
    str = str.slice(start);
    lastIndex -= start;
  }

  if (base && isGlob === true && lastIndex > 0) {
    base = str.slice(0, lastIndex);
    glob = str.slice(lastIndex);
  } else if (isGlob === true) {
    base = '';
    glob = str;
  } else {
    base = str;
  }

  if (base && base !== '' && base !== '/' && base !== str) {
    if (isPathSeparator(base.charCodeAt(base.length - 1))) {
      base = base.slice(0, -1);
    }
  }

  if (opts.unescape === true) {
    if (glob) glob = utils.removeBackslashes(glob);

    if (base && backslashes === true) {
      base = utils.removeBackslashes(base);
    }
  }

  const state = {
    prefix,
    input,
    start,
    base,
    glob,
    isBrace,
    isBracket,
    isGlob,
    isExtglob,
    isGlobstar,
    negated,
    negatedExtglob
  };

  if (opts.tokens === true) {
    state.maxDepth = 0;
    if (!isPathSeparator(code)) {
      tokens.push(token);
    }
    state.tokens = tokens;
  }

  if (opts.parts === true || opts.tokens === true) {
    let prevIndex;

    for (let idx = 0; idx < slashes.length; idx++) {
      const n = prevIndex ? prevIndex + 1 : start;
      const i = slashes[idx];
      const value = input.slice(n, i);
      if (opts.tokens) {
        if (idx === 0 && start !== 0) {
          tokens[idx].isPrefix = true;
          tokens[idx].value = prefix;
        } else {
          tokens[idx].value = value;
        }
        depth(tokens[idx]);
        state.maxDepth += tokens[idx].depth;
      }
      if (idx !== 0 || value !== '') {
        parts.push(value);
      }
      prevIndex = i;
    }

    if (prevIndex && prevIndex + 1 < input.length) {
      const value = input.slice(prevIndex + 1);
      parts.push(value);

      if (opts.tokens) {
        tokens[tokens.length - 1].value = value;
        depth(tokens[tokens.length - 1]);
        state.maxDepth += tokens[tokens.length - 1].depth;
      }
    }

    state.slashes = slashes;
    state.parts = parts;
  }

  return state;
};

module.exports = scan;
'use strict';

const path = require('path');
const win32 = process.platform === 'win32';
const {
  REGEX_BACKSLASH,
  REGEX_REMOVE_BACKSLASH,
  REGEX_SPECIAL_CHARS,
  REGEX_SPECIAL_CHARS_GLOBAL
} = require('./constants');

exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);
exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);
exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);
exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1');
exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');

exports.removeBackslashes = str => {
  return str.replace(REGEX_REMOVE_BACKSLASH, match => {
    return match === '\\' ? '' : match;
  });
};

exports.supportsLookbehinds = () => {
  const segs = process.version.slice(1).split('.').map(Number);
  if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) {
    return true;
  }
  return false;
};

exports.isWindows = options => {
  if (options && typeof options.windows === 'boolean') {
    return options.windows;
  }
  return win32 === true || path.sep === '\\';
};

exports.escapeLast = (input, char, lastIdx) => {
  const idx = input.lastIndexOf(char, lastIdx);
  if (idx === -1) return input;
  if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1);
  return `${input.slice(0, idx)}\\${input.slice(idx)}`;
};

exports.removePrefix = (input, state = {}) => {
  let output = input;
  if (output.startsWith('./')) {
    output = output.slice(2);
    state.prefix = './';
  }
  return output;
};

exports.wrapOutput = (input, state = {}, options = {}) => {
  const prepend = options.contains ? '' : '^';
  const append = options.contains ? '' : '$';

  let output = `${prepend}(?:${input})${append}`;
  if (state.negated === true) {
    output = `(?:^(?!${output}).*$)`;
  }
  return output;
};
The MIT License (MIT)

Copyright (c) Feross Aboukhadijeh

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
let promise

module.exports = typeof queueMicrotask === 'function'
  ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global)
  // reuse resolved promise, and allocate it lazily
  : cb => (promise || (promise = Promise.resolve()))
    .then(cb)
    .catch(err => setTimeout(() => { throw err }, 0))
{
  "name": "queue-microtask",
  "description": "fast, tiny `queueMicrotask` shim for modern engines",
  "version": "1.2.3",
  "author": {
    "name": "Feross Aboukhadijeh",
    "email": "feross@feross.org",
    "url": "https://feross.org"
  },
  "devDependencies": {
    "standard": "*",
    "tape": "^5.2.2"
  },
  "funding": [
    {
      "type": "github",
      "url": "https://github.com/sponsors/feross"
    },
    {
      "type": "patreon",
      "url": "https://www.patreon.com/feross"
    },
    {
      "type": "consulting",
      "url": "https://feross.org/support"
    }
  ],
  "homepage": "https://github.com/feross/queue-microtask",
  "license": "MIT",
  "main": "index.js",
  "repository": {
    "type": "git",
    "url": "git://github.com/feross/queue-microtask.git"
  }
}The MIT License (MIT)

Copyright (c) 2015 Matteo Collina

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

{
  "name": "reusify",
  "version": "1.0.4",
  "description": "Reuse objects and functions with style",
  "main": "reusify.js",
  "pre-commit": [
    "lint",
    "test"
  ],
  "repository": {
    "type": "git",
    "url": "git+https://github.com/mcollina/reusify.git"
  },
  "author": "Matteo Collina <hello@matteocollina.com>",
  "license": "MIT",
  "homepage": "https://github.com/mcollina/reusify#readme",
  "engines": {
    "node": ">=0.10.0",
    "iojs": ">=1.0.0"
  },
  "devDependencies": {
    "coveralls": "^2.13.3",
    "faucet": "0.0.1",
    "istanbul": "^0.4.5",
    "pre-commit": "^1.2.2",
    "standard": "^10.0.3",
    "tape": "^4.8.0"
  }
}'use strict'

function reusify (Constructor) {
  var head = new Constructor()
  var tail = head

  function get () {
    var current = head

    if (current.next) {
      head = current.next
    } else {
      head = new Constructor()
      tail = head
    }

    current.next = null

    return current
  }

  function release (obj) {
    tail.next = obj
    tail = obj
  }

  return {
    get: get,
    release: release
  }
}

module.exports = reusify
'use strict'

var test = require('tape')
var reusify = require('./')

test('reuse objects', function (t) {
  t.plan(6)

  function MyObject () {
    t.pass('constructor called')
    this.next = null
  }

  var instance = reusify(MyObject)
  var obj = instance.get()

  t.notEqual(obj, instance.get(), 'two instance created')
  t.notOk(obj.next, 'next must be null')

  instance.release(obj)

  // the internals keeps a hot copy ready for reuse
  // putting this one back in the queue
  instance.release(instance.get())

  // comparing the old one with the one we got
  // never do this in real code, after release you
  // should never reuse that instance
  t.equal(obj, instance.get(), 'instance must be reused')
})

test('reuse more than 2 objects', function (t) {
  function MyObject () {
    t.pass('constructor called')
    this.next = null
  }

  var instance = reusify(MyObject)
  var obj = instance.get()
  var obj2 = instance.get()
  var obj3 = instance.get()

  t.notOk(obj.next, 'next must be null')
  t.notOk(obj2.next, 'next must be null')
  t.notOk(obj3.next, 'next must be null')

  t.notEqual(obj, obj2)
  t.notEqual(obj, obj3)
  t.notEqual(obj3, obj2)

  instance.release(obj)
  instance.release(obj2)
  instance.release(obj3)

  // skip one
  instance.get()

  var obj4 = instance.get()
  var obj5 = instance.get()
  var obj6 = instance.get()

  t.equal(obj4, obj)
  t.equal(obj5, obj2)
  t.equal(obj6, obj3)
  t.end()
})
'use strict'

var fib = require('./fib')
var max = 100000000
var start = Date.now()

// create a funcion with the typical error
// pattern, that delegates the heavy load
// to something else
function createNoCodeFunction () {
  /* eslint no-constant-condition: "off" */
  var num = 100

  ;(function () {
    if (null) {
      // do nothing
    } else {
      fib(num)
    }
  })()
}

for (var i = 0; i < max; i++) {
  createNoCodeFunction()
}

var time = Date.now() - start
console.log('Total time', time)
console.log('Total iterations', max)
console.log('Iteration/s', max / time * 1000)
'use strict'

function fib (num) {
  var fib = []

  fib[0] = 0
  fib[1] = 1
  for (var i = 2; i <= num; i++) {
    fib[i] = fib[i - 2] + fib[i - 1]
  }
}

module.exports = fib
'use strict'

var reusify = require('../')
var fib = require('./fib')
var instance = reusify(MyObject)
var max = 100000000
var start = Date.now()

function reuseNoCodeFunction () {
  var obj = instance.get()
  obj.num = 100
  obj.func()
  obj.num = 0
  instance.release(obj)
}

function MyObject () {
  this.next = null
  var that = this
  this.num = 0
  this.func = function () {
    /* eslint no-constant-condition: "off" */
    if (null) {
      // do nothing
    } else {
      fib(that.num)
    }
  }
}

for (var i = 0; i < max; i++) {
  reuseNoCodeFunction()
}

var time = Date.now() - start
console.log('Total time', time)
console.log('Total iterations', max)
console.log('Iteration/s', max / time * 1000)
The ISC License

Copyright (c) Isaac Z. Schlueter and Contributors

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#!/usr/bin/env node

const rimraf = require('./')

const path = require('path')

const isRoot = arg => /^(\/|[a-zA-Z]:\\)$/.test(path.resolve(arg))
const filterOutRoot = arg => {
  const ok = preserveRoot === false || !isRoot(arg)
  if (!ok) {
    console.error(`refusing to remove ${arg}`)
    console.error('Set --no-preserve-root to allow this')
  }
  return ok
}

let help = false
let dashdash = false
let noglob = false
let preserveRoot = true
const args = process.argv.slice(2).filter(arg => {
  if (dashdash)
    return !!arg
  else if (arg === '--')
    dashdash = true
  else if (arg === '--no-glob' || arg === '-G')
    noglob = true
  else if (arg === '--glob' || arg === '-g')
    noglob = false
  else if (arg.match(/^(-+|\/)(h(elp)?|\?)$/))
    help = true
  else if (arg === '--preserve-root')
    preserveRoot = true
  else if (arg === '--no-preserve-root')
    preserveRoot = false
  else
    return !!arg
}).filter(arg => !preserveRoot || filterOutRoot(arg))

const go = n => {
  if (n >= args.length)
    return
  const options = noglob ? { glob: false } : {}
  rimraf(args[n], options, er => {
    if (er)
      throw er
    go(n+1)
  })
}

if (help || args.length === 0) {
  // If they didn't ask for help, then this is not a "success"
  const log = help ? console.log : console.error
  log('Usage: rimraf <path> [<path> ...]')
  log('')
  log('  Deletes all files and folders at "path" recursively.')
  log('')
  log('Options:')
  log('')
  log('  -h, --help          Display this usage info')
  log('  -G, --no-glob       Do not expand glob patterns in arguments')
  log('  -g, --glob          Expand glob patterns in arguments (default)')
  log('  --preserve-root     Do not remove \'/\' (default)')
  log('  --no-preserve-root  Do not treat \'/\' specially')
  log('  --                  Stop parsing flags')
  process.exit(help ? 0 : 1)
} else
  go(0)
{
  "name": "rimraf",
  "version": "3.0.2",
  "main": "rimraf.js",
  "description": "A deep deletion module for node (like `rm -rf`)",
  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
  "license": "ISC",
  "repository": "git://github.com/isaacs/rimraf.git",
  "bin": "./bin.js",
  "dependencies": {
    "glob": "^7.1.3"
  },
  "files": [
    "LICENSE",
    "README.md",
    "bin.js",
    "rimraf.js"
  ],
  "devDependencies": {
    "mkdirp": "^0.5.1",
    "tap": "^12.1.1"
  },
  "funding": {
    "url": "https://github.com/sponsors/isaacs"
  }
}const assert = require("assert")
const path = require("path")
const fs = require("fs")
let glob = undefined
try {
  glob = require("glob")
} catch (_err) {
  // treat glob as optional.
}

const defaultGlobOpts = {
  nosort: true,
  silent: true
}

// for EMFILE handling
let timeout = 0

const isWindows = (process.platform === "win32")

const defaults = options => {
  const methods = [
    'unlink',
    'chmod',
    'stat',
    'lstat',
    'rmdir',
    'readdir'
  ]
  methods.forEach(m => {
    options[m] = options[m] || fs[m]
    m = m + 'Sync'
    options[m] = options[m] || fs[m]
  })

  options.maxBusyTries = options.maxBusyTries || 3
  options.emfileWait = options.emfileWait || 1000
  if (options.glob === false) {
    options.disableGlob = true
  }
  if (options.disableGlob !== true && glob === undefined) {
    throw Error('glob dependency not found, set `options.disableGlob = true` if intentional')
  }
  options.disableGlob = options.disableGlob || false
  options.glob = options.glob || defaultGlobOpts
}

const rimraf = (p, options, cb) => {
  if (typeof options === 'function') {
    cb = options
    options = {}
  }

  assert(p, 'rimraf: missing path')
  assert.equal(typeof p, 'string', 'rimraf: path should be a string')
  assert.equal(typeof cb, 'function', 'rimraf: callback function required')
  assert(options, 'rimraf: invalid options argument provided')
  assert.equal(typeof options, 'object', 'rimraf: options should be object')

  defaults(options)

  let busyTries = 0
  let errState = null
  let n = 0

  const next = (er) => {
    errState = errState || er
    if (--n === 0)
      cb(errState)
  }

  const afterGlob = (er, results) => {
    if (er)
      return cb(er)

    n = results.length
    if (n === 0)
      return cb()

    results.forEach(p => {
      const CB = (er) => {
        if (er) {
          if ((er.code === "EBUSY" || er.code === "ENOTEMPTY" || er.code === "EPERM") &&
              busyTries < options.maxBusyTries) {
            busyTries ++
            // try again, with the same exact callback as this one.
            return setTimeout(() => rimraf_(p, options, CB), busyTries * 100)
          }

          // this one won't happen if graceful-fs is used.
          if (er.code === "EMFILE" && timeout < options.emfileWait) {
            return setTimeout(() => rimraf_(p, options, CB), timeout ++)
          }

          // already gone
          if (er.code === "ENOENT") er = null
        }

        timeout = 0
        next(er)
      }
      rimraf_(p, options, CB)
    })
  }

  if (options.disableGlob || !glob.hasMagic(p))
    return afterGlob(null, [p])

  options.lstat(p, (er, stat) => {
    if (!er)
      return afterGlob(null, [p])

    glob(p, options.glob, afterGlob)
  })

}

// Two possible strategies.
// 1. Assume it's a file.  unlink it, then do the dir stuff on EPERM or EISDIR
// 2. Assume it's a directory.  readdir, then do the file stuff on ENOTDIR
//
// Both result in an extra syscall when you guess wrong.  However, there
// are likely far more normal files in the world than directories.  This
// is based on the assumption that a the average number of files per
// directory is >= 1.
//
// If anyone ever complains about this, then I guess the strategy could
// be made configurable somehow.  But until then, YAGNI.
const rimraf_ = (p, options, cb) => {
  assert(p)
  assert(options)
  assert(typeof cb === 'function')

  // sunos lets the root user unlink directories, which is... weird.
  // so we have to lstat here and make sure it's not a dir.
  options.lstat(p, (er, st) => {
    if (er && er.code === "ENOENT")
      return cb(null)

    // Windows can EPERM on stat.  Life is suffering.
    if (er && er.code === "EPERM" && isWindows)
      fixWinEPERM(p, options, er, cb)

    if (st && st.isDirectory())
      return rmdir(p, options, er, cb)

    options.unlink(p, er => {
      if (er) {
        if (er.code === "ENOENT")
          return cb(null)
        if (er.code === "EPERM")
          return (isWindows)
            ? fixWinEPERM(p, options, er, cb)
            : rmdir(p, options, er, cb)
        if (er.code === "EISDIR")
          return rmdir(p, options, er, cb)
      }
      return cb(er)
    })
  })
}

const fixWinEPERM = (p, options, er, cb) => {
  assert(p)
  assert(options)
  assert(typeof cb === 'function')

  options.chmod(p, 0o666, er2 => {
    if (er2)
      cb(er2.code === "ENOENT" ? null : er)
    else
      options.stat(p, (er3, stats) => {
        if (er3)
          cb(er3.code === "ENOENT" ? null : er)
        else if (stats.isDirectory())
          rmdir(p, options, er, cb)
        else
          options.unlink(p, cb)
      })
  })
}

const fixWinEPERMSync = (p, options, er) => {
  assert(p)
  assert(options)

  try {
    options.chmodSync(p, 0o666)
  } catch (er2) {
    if (er2.code === "ENOENT")
      return
    else
      throw er
  }

  let stats
  try {
    stats = options.statSync(p)
  } catch (er3) {
    if (er3.code === "ENOENT")
      return
    else
      throw er
  }

  if (stats.isDirectory())
    rmdirSync(p, options, er)
  else
    options.unlinkSync(p)
}

const rmdir = (p, options, originalEr, cb) => {
  assert(p)
  assert(options)
  assert(typeof cb === 'function')

  // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)
  // if we guessed wrong, and it's not a directory, then
  // raise the original error.
  options.rmdir(p, er => {
    if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM"))
      rmkids(p, options, cb)
    else if (er && er.code === "ENOTDIR")
      cb(originalEr)
    else
      cb(er)
  })
}

const rmkids = (p, options, cb) => {
  assert(p)
  assert(options)
  assert(typeof cb === 'function')

  options.readdir(p, (er, files) => {
    if (er)
      return cb(er)
    let n = files.length
    if (n === 0)
      return options.rmdir(p, cb)
    let errState
    files.forEach(f => {
      rimraf(path.join(p, f), options, er => {
        if (errState)
          return
        if (er)
          return cb(errState = er)
        if (--n === 0)
          options.rmdir(p, cb)
      })
    })
  })
}

// this looks simpler, and is strictly *faster*, but will
// tie up the JavaScript thread and fail on excessively
// deep directory trees.
const rimrafSync = (p, options) => {
  options = options || {}
  defaults(options)

  assert(p, 'rimraf: missing path')
  assert.equal(typeof p, 'string', 'rimraf: path should be a string')
  assert(options, 'rimraf: missing options')
  assert.equal(typeof options, 'object', 'rimraf: options should be object')

  let results

  if (options.disableGlob || !glob.hasMagic(p)) {
    results = [p]
  } else {
    try {
      options.lstatSync(p)
      results = [p]
    } catch (er) {
      results = glob.sync(p, options.glob)
    }
  }

  if (!results.length)
    return

  for (let i = 0; i < results.length; i++) {
    const p = results[i]

    let st
    try {
      st = options.lstatSync(p)
    } catch (er) {
      if (er.code === "ENOENT")
        return

      // Windows can EPERM on stat.  Life is suffering.
      if (er.code === "EPERM" && isWindows)
        fixWinEPERMSync(p, options, er)
    }

    try {
      // sunos lets the root user unlink directories, which is... weird.
      if (st && st.isDirectory())
        rmdirSync(p, options, null)
      else
        options.unlinkSync(p)
    } catch (er) {
      if (er.code === "ENOENT")
        return
      if (er.code === "EPERM")
        return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)
      if (er.code !== "EISDIR")
        throw er

      rmdirSync(p, options, er)
    }
  }
}

const rmdirSync = (p, options, originalEr) => {
  assert(p)
  assert(options)

  try {
    options.rmdirSync(p)
  } catch (er) {
    if (er.code === "ENOENT")
      return
    if (er.code === "ENOTDIR")
      throw originalEr
    if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")
      rmkidsSync(p, options)
  }
}

const rmkidsSync = (p, options) => {
  assert(p)
  assert(options)
  options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options))

  // We only end up here once we got ENOTEMPTY at least once, and
  // at this point, we are guaranteed to have removed all the kids.
  // So, we know that it won't be ENOENT or ENOTDIR or anything else.
  // try really hard to delete stuff on windows, because it has a
  // PROFOUNDLY annoying habit of not closing handles promptly when
  // files are deleted, resulting in spurious ENOTEMPTY errors.
  const retries = isWindows ? 100 : 1
  let i = 0
  do {
    let threw = true
    try {
      const ret = options.rmdirSync(p, options)
      threw = false
      return ret
    } finally {
      if (++i < retries && threw)
        continue
    }
  } while (true)
}

module.exports = rimraf
rimraf.sync = rimrafSync
The MIT License (MIT)

Copyright (c) Feross Aboukhadijeh

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/*! run-parallel. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
module.exports = runParallel

const queueMicrotask = require('queue-microtask')

function runParallel (tasks, cb) {
  let results, pending, keys
  let isSync = true

  if (Array.isArray(tasks)) {
    results = []
    pending = tasks.length
  } else {
    keys = Object.keys(tasks)
    results = {}
    pending = keys.length
  }

  function done (err) {
    function end () {
      if (cb) cb(err, results)
      cb = null
    }
    if (isSync) queueMicrotask(end)
    else end()
  }

  function each (i, err, result) {
    results[i] = result
    if (--pending === 0 || err) {
      done(err)
    }
  }

  if (!pending) {
    // empty
    done(null)
  } else if (keys) {
    // object
    keys.forEach(function (key) {
      tasks[key](function (err, result) { each(key, err, result) })
    })
  } else {
    // array
    tasks.forEach(function (task, i) {
      task(function (err, result) { each(i, err, result) })
    })
  }

  isSync = false
}
{
  "name": "run-parallel",
  "description": "Run an array of functions in parallel",
  "version": "1.2.0",
  "author": {
    "name": "Feross Aboukhadijeh",
    "email": "feross@feross.org",
    "url": "https://feross.org"
  },
  "dependencies": {
    "queue-microtask": "^1.2.2"
  },
  "devDependencies": {
    "airtap": "^3.0.0",
    "standard": "*",
    "tape": "^5.0.1"
  },
  "homepage": "https://github.com/feross/run-parallel",
  "license": "MIT",
  "main": "index.js",
  "repository": {
    "type": "git",
    "url": "git://github.com/feross/run-parallel.git"
  },
  "funding": [
    {
      "type": "github",
      "url": "https://github.com/sponsors/feross"
    },
    {
      "type": "patreon",
      "url": "https://www.patreon.com/feross"
    },
    {
      "type": "consulting",
      "url": "https://feross.org/support"
    }
  ]
}The ISC License

Copyright (c) 2010-2024 Isaac Z. Schlueter and Contributors

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

====

`String.fromCodePoint` by Mathias Bynens used according to terms of MIT
License, as follows:

Copyright (c) 2010-2024 Mathias Bynens <https://mathiasbynens.be/>

    Permission is hereby granted, free of charge, to any person obtaining
    a copy of this software and associated documentation files (the
    "Software"), to deal in the Software without restriction, including
    without limitation the rights to use, copy, modify, merge, publish,
    distribute, sublicense, and/or sell copies of the Software, and to
    permit persons to whom the Software is furnished to do so, subject to
    the following conditions:

    The above copyright notice and this permission notice shall be
    included in all copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
    LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "sax",
  "description": "An evented streaming XML parser in JavaScript",
  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
  "version": "1.4.1",
  "main": "lib/sax.js",
  "license": "ISC",
  "repository": "git://github.com/isaacs/sax-js.git",
  "files": [
    "lib/sax.js",
    "LICENSE",
    "README.md"
  ],
  "devDependencies": {
    "tap": "^15.1.6"
  },
  "tap": {
    "statements": 79,
    "branches": 75,
    "functions": 80,
    "lines": 79
  }
};(function (sax) { // wrapper for non-node envs
  sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }
  sax.SAXParser = SAXParser
  sax.SAXStream = SAXStream
  sax.createStream = createStream

  // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.
  // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),
  // since that's the earliest that a buffer overrun could occur.  This way, checks are
  // as rare as required, but as often as necessary to ensure never crossing this bound.
  // Furthermore, buffers are only tested at most once per write(), so passing a very
  // large string into write() might have undesirable effects, but this is manageable by
  // the caller, so it is assumed to be safe.  Thus, a call to write() may, in the extreme
  // edge case, result in creating at most one complete copy of the string passed in.
  // Set to Infinity to have unlimited buffers.
  sax.MAX_BUFFER_LENGTH = 64 * 1024

  var buffers = [
    'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype',
    'procInstName', 'procInstBody', 'entity', 'attribName',
    'attribValue', 'cdata', 'script'
  ]

  sax.EVENTS = [
    'text',
    'processinginstruction',
    'sgmldeclaration',
    'doctype',
    'comment',
    'opentagstart',
    'attribute',
    'opentag',
    'closetag',
    'opencdata',
    'cdata',
    'closecdata',
    'error',
    'end',
    'ready',
    'script',
    'opennamespace',
    'closenamespace'
  ]

  function SAXParser (strict, opt) {
    if (!(this instanceof SAXParser)) {
      return new SAXParser(strict, opt)
    }

    var parser = this
    clearBuffers(parser)
    parser.q = parser.c = ''
    parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH
    parser.opt = opt || {}
    parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags
    parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase'
    parser.tags = []
    parser.closed = parser.closedRoot = parser.sawRoot = false
    parser.tag = parser.error = null
    parser.strict = !!strict
    parser.noscript = !!(strict || parser.opt.noscript)
    parser.state = S.BEGIN
    parser.strictEntities = parser.opt.strictEntities
    parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES)
    parser.attribList = []

    // namespaces form a prototype chain.
    // it always points at the current tag,
    // which protos to its parent tag.
    if (parser.opt.xmlns) {
      parser.ns = Object.create(rootNS)
    }

    // disallow unquoted attribute values if not otherwise configured
    // and strict mode is true
    if (parser.opt.unquotedAttributeValues === undefined) {
      parser.opt.unquotedAttributeValues = !strict;
    }

    // mostly just for error reporting
    parser.trackPosition = parser.opt.position !== false
    if (parser.trackPosition) {
      parser.position = parser.line = parser.column = 0
    }
    emit(parser, 'onready')
  }

  if (!Object.create) {
    Object.create = function (o) {
      function F () {}
      F.prototype = o
      var newf = new F()
      return newf
    }
  }

  if (!Object.keys) {
    Object.keys = function (o) {
      var a = []
      for (var i in o) if (o.hasOwnProperty(i)) a.push(i)
      return a
    }
  }

  function checkBufferLength (parser) {
    var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10)
    var maxActual = 0
    for (var i = 0, l = buffers.length; i < l; i++) {
      var len = parser[buffers[i]].length
      if (len > maxAllowed) {
        // Text/cdata nodes can get big, and since they're buffered,
        // we can get here under normal conditions.
        // Avoid issues by emitting the text node now,
        // so at least it won't get any bigger.
        switch (buffers[i]) {
          case 'textNode':
            closeText(parser)
            break

          case 'cdata':
            emitNode(parser, 'oncdata', parser.cdata)
            parser.cdata = ''
            break

          case 'script':
            emitNode(parser, 'onscript', parser.script)
            parser.script = ''
            break

          default:
            error(parser, 'Max buffer length exceeded: ' + buffers[i])
        }
      }
      maxActual = Math.max(maxActual, len)
    }
    // schedule the next check for the earliest possible buffer overrun.
    var m = sax.MAX_BUFFER_LENGTH - maxActual
    parser.bufferCheckPosition = m + parser.position
  }

  function clearBuffers (parser) {
    for (var i = 0, l = buffers.length; i < l; i++) {
      parser[buffers[i]] = ''
    }
  }

  function flushBuffers (parser) {
    closeText(parser)
    if (parser.cdata !== '') {
      emitNode(parser, 'oncdata', parser.cdata)
      parser.cdata = ''
    }
    if (parser.script !== '') {
      emitNode(parser, 'onscript', parser.script)
      parser.script = ''
    }
  }

  SAXParser.prototype = {
    end: function () { end(this) },
    write: write,
    resume: function () { this.error = null; return this },
    close: function () { return this.write(null) },
    flush: function () { flushBuffers(this) }
  }

  var Stream
  try {
    Stream = require('stream').Stream
  } catch (ex) {
    Stream = function () {}
  }
  if (!Stream) Stream = function () {}

  var streamWraps = sax.EVENTS.filter(function (ev) {
    return ev !== 'error' && ev !== 'end'
  })

  function createStream (strict, opt) {
    return new SAXStream(strict, opt)
  }

  function SAXStream (strict, opt) {
    if (!(this instanceof SAXStream)) {
      return new SAXStream(strict, opt)
    }

    Stream.apply(this)

    this._parser = new SAXParser(strict, opt)
    this.writable = true
    this.readable = true

    var me = this

    this._parser.onend = function () {
      me.emit('end')
    }

    this._parser.onerror = function (er) {
      me.emit('error', er)

      // if didn't throw, then means error was handled.
      // go ahead and clear error, so we can write again.
      me._parser.error = null
    }

    this._decoder = null

    streamWraps.forEach(function (ev) {
      Object.defineProperty(me, 'on' + ev, {
        get: function () {
          return me._parser['on' + ev]
        },
        set: function (h) {
          if (!h) {
            me.removeAllListeners(ev)
            me._parser['on' + ev] = h
            return h
          }
          me.on(ev, h)
        },
        enumerable: true,
        configurable: false
      })
    })
  }

  SAXStream.prototype = Object.create(Stream.prototype, {
    constructor: {
      value: SAXStream
    }
  })

  SAXStream.prototype.write = function (data) {
    if (typeof Buffer === 'function' &&
      typeof Buffer.isBuffer === 'function' &&
      Buffer.isBuffer(data)) {
      if (!this._decoder) {
        var SD = require('string_decoder').StringDecoder
        this._decoder = new SD('utf8')
      }
      data = this._decoder.write(data)
    }

    this._parser.write(data.toString())
    this.emit('data', data)
    return true
  }

  SAXStream.prototype.end = function (chunk) {
    if (chunk && chunk.length) {
      this.write(chunk)
    }
    this._parser.end()
    return true
  }

  SAXStream.prototype.on = function (ev, handler) {
    var me = this
    if (!me._parser['on' + ev] && streamWraps.indexOf(ev) !== -1) {
      me._parser['on' + ev] = function () {
        var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments)
        args.splice(0, 0, ev)
        me.emit.apply(me, args)
      }
    }

    return Stream.prototype.on.call(me, ev, handler)
  }

  // this really needs to be replaced with character classes.
  // XML allows all manner of ridiculous numbers and digits.
  var CDATA = '[CDATA['
  var DOCTYPE = 'DOCTYPE'
  var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace'
  var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/'
  var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE }

  // http://www.w3.org/TR/REC-xml/#NT-NameStartChar
  // This implementation works on strings, a single character at a time
  // as such, it cannot ever support astral-plane characters (10000-EFFFF)
  // without a significant breaking change to either this  parser, or the
  // JavaScript language.  Implementation of an emoji-capable xml parser
  // is left as an exercise for the reader.
  var nameStart = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/

  var nameBody = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/

  var entityStart = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/
  var entityBody = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/

  function isWhitespace (c) {
    return c === ' ' || c === '\n' || c === '\r' || c === '\t'
  }

  function isQuote (c) {
    return c === '"' || c === '\''
  }

  function isAttribEnd (c) {
    return c === '>' || isWhitespace(c)
  }

  function isMatch (regex, c) {
    return regex.test(c)
  }

  function notMatch (regex, c) {
    return !isMatch(regex, c)
  }

  var S = 0
  sax.STATE = {
    BEGIN: S++, // leading byte order mark or whitespace
    BEGIN_WHITESPACE: S++, // leading whitespace
    TEXT: S++, // general stuff
    TEXT_ENTITY: S++, // &amp and such.
    OPEN_WAKA: S++, // <
    SGML_DECL: S++, // <!BLARG
    SGML_DECL_QUOTED: S++, // <!BLARG foo "bar
    DOCTYPE: S++, // <!DOCTYPE
    DOCTYPE_QUOTED: S++, // <!DOCTYPE "//blah
    DOCTYPE_DTD: S++, // <!DOCTYPE "//blah" [ ...
    DOCTYPE_DTD_QUOTED: S++, // <!DOCTYPE "//blah" [ "foo
    COMMENT_STARTING: S++, // <!-
    COMMENT: S++, // <!--
    COMMENT_ENDING: S++, // <!-- blah -
    COMMENT_ENDED: S++, // <!-- blah --
    CDATA: S++, // <![CDATA[ something
    CDATA_ENDING: S++, // ]
    CDATA_ENDING_2: S++, // ]]
    PROC_INST: S++, // <?hi
    PROC_INST_BODY: S++, // <?hi there
    PROC_INST_ENDING: S++, // <?hi "there" ?
    OPEN_TAG: S++, // <strong
    OPEN_TAG_SLASH: S++, // <strong /
    ATTRIB: S++, // <a
    ATTRIB_NAME: S++, // <a foo
    ATTRIB_NAME_SAW_WHITE: S++, // <a foo _
    ATTRIB_VALUE: S++, // <a foo=
    ATTRIB_VALUE_QUOTED: S++, // <a foo="bar
    ATTRIB_VALUE_CLOSED: S++, // <a foo="bar"
    ATTRIB_VALUE_UNQUOTED: S++, // <a foo=bar
    ATTRIB_VALUE_ENTITY_Q: S++, // <foo bar="&quot;"
    ATTRIB_VALUE_ENTITY_U: S++, // <foo bar=&quot
    CLOSE_TAG: S++, // </a
    CLOSE_TAG_SAW_WHITE: S++, // </a   >
    SCRIPT: S++, // <script> ...
    SCRIPT_ENDING: S++ // <script> ... <
  }

  sax.XML_ENTITIES = {
    'amp': '&',
    'gt': '>',
    'lt': '<',
    'quot': '"',
    'apos': "'"
  }

  sax.ENTITIES = {
    'amp': '&',
    'gt': '>',
    'lt': '<',
    'quot': '"',
    'apos': "'",
    'AElig': 198,
    'Aacute': 193,
    'Acirc': 194,
    'Agrave': 192,
    'Aring': 197,
    'Atilde': 195,
    'Auml': 196,
    'Ccedil': 199,
    'ETH': 208,
    'Eacute': 201,
    'Ecirc': 202,
    'Egrave': 200,
    'Euml': 203,
    'Iacute': 205,
    'Icirc': 206,
    'Igrave': 204,
    'Iuml': 207,
    'Ntilde': 209,
    'Oacute': 211,
    'Ocirc': 212,
    'Ograve': 210,
    'Oslash': 216,
    'Otilde': 213,
    'Ouml': 214,
    'THORN': 222,
    'Uacute': 218,
    'Ucirc': 219,
    'Ugrave': 217,
    'Uuml': 220,
    'Yacute': 221,
    'aacute': 225,
    'acirc': 226,
    'aelig': 230,
    'agrave': 224,
    'aring': 229,
    'atilde': 227,
    'auml': 228,
    'ccedil': 231,
    'eacute': 233,
    'ecirc': 234,
    'egrave': 232,
    'eth': 240,
    'euml': 235,
    'iacute': 237,
    'icirc': 238,
    'igrave': 236,
    'iuml': 239,
    'ntilde': 241,
    'oacute': 243,
    'ocirc': 244,
    'ograve': 242,
    'oslash': 248,
    'otilde': 245,
    'ouml': 246,
    'szlig': 223,
    'thorn': 254,
    'uacute': 250,
    'ucirc': 251,
    'ugrave': 249,
    'uuml': 252,
    'yacute': 253,
    'yuml': 255,
    'copy': 169,
    'reg': 174,
    'nbsp': 160,
    'iexcl': 161,
    'cent': 162,
    'pound': 163,
    'curren': 164,
    'yen': 165,
    'brvbar': 166,
    'sect': 167,
    'uml': 168,
    'ordf': 170,
    'laquo': 171,
    'not': 172,
    'shy': 173,
    'macr': 175,
    'deg': 176,
    'plusmn': 177,
    'sup1': 185,
    'sup2': 178,
    'sup3': 179,
    'acute': 180,
    'micro': 181,
    'para': 182,
    'middot': 183,
    'cedil': 184,
    'ordm': 186,
    'raquo': 187,
    'frac14': 188,
    'frac12': 189,
    'frac34': 190,
    'iquest': 191,
    'times': 215,
    'divide': 247,
    'OElig': 338,
    'oelig': 339,
    'Scaron': 352,
    'scaron': 353,
    'Yuml': 376,
    'fnof': 402,
    'circ': 710,
    'tilde': 732,
    'Alpha': 913,
    'Beta': 914,
    'Gamma': 915,
    'Delta': 916,
    'Epsilon': 917,
    'Zeta': 918,
    'Eta': 919,
    'Theta': 920,
    'Iota': 921,
    'Kappa': 922,
    'Lambda': 923,
    'Mu': 924,
    'Nu': 925,
    'Xi': 926,
    'Omicron': 927,
    'Pi': 928,
    'Rho': 929,
    'Sigma': 931,
    'Tau': 932,
    'Upsilon': 933,
    'Phi': 934,
    'Chi': 935,
    'Psi': 936,
    'Omega': 937,
    'alpha': 945,
    'beta': 946,
    'gamma': 947,
    'delta': 948,
    'epsilon': 949,
    'zeta': 950,
    'eta': 951,
    'theta': 952,
    'iota': 953,
    'kappa': 954,
    'lambda': 955,
    'mu': 956,
    'nu': 957,
    'xi': 958,
    'omicron': 959,
    'pi': 960,
    'rho': 961,
    'sigmaf': 962,
    'sigma': 963,
    'tau': 964,
    'upsilon': 965,
    'phi': 966,
    'chi': 967,
    'psi': 968,
    'omega': 969,
    'thetasym': 977,
    'upsih': 978,
    'piv': 982,
    'ensp': 8194,
    'emsp': 8195,
    'thinsp': 8201,
    'zwnj': 8204,
    'zwj': 8205,
    'lrm': 8206,
    'rlm': 8207,
    'ndash': 8211,
    'mdash': 8212,
    'lsquo': 8216,
    'rsquo': 8217,
    'sbquo': 8218,
    'ldquo': 8220,
    'rdquo': 8221,
    'bdquo': 8222,
    'dagger': 8224,
    'Dagger': 8225,
    'bull': 8226,
    'hellip': 8230,
    'permil': 8240,
    'prime': 8242,
    'Prime': 8243,
    'lsaquo': 8249,
    'rsaquo': 8250,
    'oline': 8254,
    'frasl': 8260,
    'euro': 8364,
    'image': 8465,
    'weierp': 8472,
    'real': 8476,
    'trade': 8482,
    'alefsym': 8501,
    'larr': 8592,
    'uarr': 8593,
    'rarr': 8594,
    'darr': 8595,
    'harr': 8596,
    'crarr': 8629,
    'lArr': 8656,
    'uArr': 8657,
    'rArr': 8658,
    'dArr': 8659,
    'hArr': 8660,
    'forall': 8704,
    'part': 8706,
    'exist': 8707,
    'empty': 8709,
    'nabla': 8711,
    'isin': 8712,
    'notin': 8713,
    'ni': 8715,
    'prod': 8719,
    'sum': 8721,
    'minus': 8722,
    'lowast': 8727,
    'radic': 8730,
    'prop': 8733,
    'infin': 8734,
    'ang': 8736,
    'and': 8743,
    'or': 8744,
    'cap': 8745,
    'cup': 8746,
    'int': 8747,
    'there4': 8756,
    'sim': 8764,
    'cong': 8773,
    'asymp': 8776,
    'ne': 8800,
    'equiv': 8801,
    'le': 8804,
    'ge': 8805,
    'sub': 8834,
    'sup': 8835,
    'nsub': 8836,
    'sube': 8838,
    'supe': 8839,
    'oplus': 8853,
    'otimes': 8855,
    'perp': 8869,
    'sdot': 8901,
    'lceil': 8968,
    'rceil': 8969,
    'lfloor': 8970,
    'rfloor': 8971,
    'lang': 9001,
    'rang': 9002,
    'loz': 9674,
    'spades': 9824,
    'clubs': 9827,
    'hearts': 9829,
    'diams': 9830
  }

  Object.keys(sax.ENTITIES).forEach(function (key) {
    var e = sax.ENTITIES[key]
    var s = typeof e === 'number' ? String.fromCharCode(e) : e
    sax.ENTITIES[key] = s
  })

  for (var s in sax.STATE) {
    sax.STATE[sax.STATE[s]] = s
  }

  // shorthand
  S = sax.STATE

  function emit (parser, event, data) {
    parser[event] && parser[event](data)
  }

  function emitNode (parser, nodeType, data) {
    if (parser.textNode) closeText(parser)
    emit(parser, nodeType, data)
  }

  function closeText (parser) {
    parser.textNode = textopts(parser.opt, parser.textNode)
    if (parser.textNode) emit(parser, 'ontext', parser.textNode)
    parser.textNode = ''
  }

  function textopts (opt, text) {
    if (opt.trim) text = text.trim()
    if (opt.normalize) text = text.replace(/\s+/g, ' ')
    return text
  }

  function error (parser, er) {
    closeText(parser)
    if (parser.trackPosition) {
      er += '\nLine: ' + parser.line +
        '\nColumn: ' + parser.column +
        '\nChar: ' + parser.c
    }
    er = new Error(er)
    parser.error = er
    emit(parser, 'onerror', er)
    return parser
  }

  function end (parser) {
    if (parser.sawRoot && !parser.closedRoot) strictFail(parser, 'Unclosed root tag')
    if ((parser.state !== S.BEGIN) &&
      (parser.state !== S.BEGIN_WHITESPACE) &&
      (parser.state !== S.TEXT)) {
      error(parser, 'Unexpected end')
    }
    closeText(parser)
    parser.c = ''
    parser.closed = true
    emit(parser, 'onend')
    SAXParser.call(parser, parser.strict, parser.opt)
    return parser
  }

  function strictFail (parser, message) {
    if (typeof parser !== 'object' || !(parser instanceof SAXParser)) {
      throw new Error('bad call to strictFail')
    }
    if (parser.strict) {
      error(parser, message)
    }
  }

  function newTag (parser) {
    if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]()
    var parent = parser.tags[parser.tags.length - 1] || parser
    var tag = parser.tag = { name: parser.tagName, attributes: {} }

    // will be overridden if tag contails an xmlns="foo" or xmlns:foo="bar"
    if (parser.opt.xmlns) {
      tag.ns = parent.ns
    }
    parser.attribList.length = 0
    emitNode(parser, 'onopentagstart', tag)
  }

  function qname (name, attribute) {
    var i = name.indexOf(':')
    var qualName = i < 0 ? [ '', name ] : name.split(':')
    var prefix = qualName[0]
    var local = qualName[1]

    // <x "xmlns"="http://foo">
    if (attribute && name === 'xmlns') {
      prefix = 'xmlns'
      local = ''
    }

    return { prefix: prefix, local: local }
  }

  function attrib (parser) {
    if (!parser.strict) {
      parser.attribName = parser.attribName[parser.looseCase]()
    }

    if (parser.attribList.indexOf(parser.attribName) !== -1 ||
      parser.tag.attributes.hasOwnProperty(parser.attribName)) {
      parser.attribName = parser.attribValue = ''
      return
    }

    if (parser.opt.xmlns) {
      var qn = qname(parser.attribName, true)
      var prefix = qn.prefix
      var local = qn.local

      if (prefix === 'xmlns') {
        // namespace binding attribute. push the binding into scope
        if (local === 'xml' && parser.attribValue !== XML_NAMESPACE) {
          strictFail(parser,
            'xml: prefix must be bound to ' + XML_NAMESPACE + '\n' +
            'Actual: ' + parser.attribValue)
        } else if (local === 'xmlns' && parser.attribValue !== XMLNS_NAMESPACE) {
          strictFail(parser,
            'xmlns: prefix must be bound to ' + XMLNS_NAMESPACE + '\n' +
            'Actual: ' + parser.attribValue)
        } else {
          var tag = parser.tag
          var parent = parser.tags[parser.tags.length - 1] || parser
          if (tag.ns === parent.ns) {
            tag.ns = Object.create(parent.ns)
          }
          tag.ns[local] = parser.attribValue
        }
      }

      // defer onattribute events until all attributes have been seen
      // so any new bindings can take effect. preserve attribute order
      // so deferred events can be emitted in document order
      parser.attribList.push([parser.attribName, parser.attribValue])
    } else {
      // in non-xmlns mode, we can emit the event right away
      parser.tag.attributes[parser.attribName] = parser.attribValue
      emitNode(parser, 'onattribute', {
        name: parser.attribName,
        value: parser.attribValue
      })
    }

    parser.attribName = parser.attribValue = ''
  }

  function openTag (parser, selfClosing) {
    if (parser.opt.xmlns) {
      // emit namespace binding events
      var tag = parser.tag

      // add namespace info to tag
      var qn = qname(parser.tagName)
      tag.prefix = qn.prefix
      tag.local = qn.local
      tag.uri = tag.ns[qn.prefix] || ''

      if (tag.prefix && !tag.uri) {
        strictFail(parser, 'Unbound namespace prefix: ' +
          JSON.stringify(parser.tagName))
        tag.uri = qn.prefix
      }

      var parent = parser.tags[parser.tags.length - 1] || parser
      if (tag.ns && parent.ns !== tag.ns) {
        Object.keys(tag.ns).forEach(function (p) {
          emitNode(parser, 'onopennamespace', {
            prefix: p,
            uri: tag.ns[p]
          })
        })
      }

      // handle deferred onattribute events
      // Note: do not apply default ns to attributes:
      //   http://www.w3.org/TR/REC-xml-names/#defaulting
      for (var i = 0, l = parser.attribList.length; i < l; i++) {
        var nv = parser.attribList[i]
        var name = nv[0]
        var value = nv[1]
        var qualName = qname(name, true)
        var prefix = qualName.prefix
        var local = qualName.local
        var uri = prefix === '' ? '' : (tag.ns[prefix] || '')
        var a = {
          name: name,
          value: value,
          prefix: prefix,
          local: local,
          uri: uri
        }

        // if there's any attributes with an undefined namespace,
        // then fail on them now.
        if (prefix && prefix !== 'xmlns' && !uri) {
          strictFail(parser, 'Unbound namespace prefix: ' +
            JSON.stringify(prefix))
          a.uri = prefix
        }
        parser.tag.attributes[name] = a
        emitNode(parser, 'onattribute', a)
      }
      parser.attribList.length = 0
    }

    parser.tag.isSelfClosing = !!selfClosing

    // process the tag
    parser.sawRoot = true
    parser.tags.push(parser.tag)
    emitNode(parser, 'onopentag', parser.tag)
    if (!selfClosing) {
      // special case for <script> in non-strict mode.
      if (!parser.noscript && parser.tagName.toLowerCase() === 'script') {
        parser.state = S.SCRIPT
      } else {
        parser.state = S.TEXT
      }
      parser.tag = null
      parser.tagName = ''
    }
    parser.attribName = parser.attribValue = ''
    parser.attribList.length = 0
  }

  function closeTag (parser) {
    if (!parser.tagName) {
      strictFail(parser, 'Weird empty close tag.')
      parser.textNode += '</>'
      parser.state = S.TEXT
      return
    }

    if (parser.script) {
      if (parser.tagName !== 'script') {
        parser.script += '</' + parser.tagName + '>'
        parser.tagName = ''
        parser.state = S.SCRIPT
        return
      }
      emitNode(parser, 'onscript', parser.script)
      parser.script = ''
    }

    // first make sure that the closing tag actually exists.
    // <a><b></c></b></a> will close everything, otherwise.
    var t = parser.tags.length
    var tagName = parser.tagName
    if (!parser.strict) {
      tagName = tagName[parser.looseCase]()
    }
    var closeTo = tagName
    while (t--) {
      var close = parser.tags[t]
      if (close.name !== closeTo) {
        // fail the first time in strict mode
        strictFail(parser, 'Unexpected close tag')
      } else {
        break
      }
    }

    // didn't find it.  we already failed for strict, so just abort.
    if (t < 0) {
      strictFail(parser, 'Unmatched closing tag: ' + parser.tagName)
      parser.textNode += '</' + parser.tagName + '>'
      parser.state = S.TEXT
      return
    }
    parser.tagName = tagName
    var s = parser.tags.length
    while (s-- > t) {
      var tag = parser.tag = parser.tags.pop()
      parser.tagName = parser.tag.name
      emitNode(parser, 'onclosetag', parser.tagName)

      var x = {}
      for (var i in tag.ns) {
        x[i] = tag.ns[i]
      }

      var parent = parser.tags[parser.tags.length - 1] || parser
      if (parser.opt.xmlns && tag.ns !== parent.ns) {
        // remove namespace bindings introduced by tag
        Object.keys(tag.ns).forEach(function (p) {
          var n = tag.ns[p]
          emitNode(parser, 'onclosenamespace', { prefix: p, uri: n })
        })
      }
    }
    if (t === 0) parser.closedRoot = true
    parser.tagName = parser.attribValue = parser.attribName = ''
    parser.attribList.length = 0
    parser.state = S.TEXT
  }

  function parseEntity (parser) {
    var entity = parser.entity
    var entityLC = entity.toLowerCase()
    var num
    var numStr = ''

    if (parser.ENTITIES[entity]) {
      return parser.ENTITIES[entity]
    }
    if (parser.ENTITIES[entityLC]) {
      return parser.ENTITIES[entityLC]
    }
    entity = entityLC
    if (entity.charAt(0) === '#') {
      if (entity.charAt(1) === 'x') {
        entity = entity.slice(2)
        num = parseInt(entity, 16)
        numStr = num.toString(16)
      } else {
        entity = entity.slice(1)
        num = parseInt(entity, 10)
        numStr = num.toString(10)
      }
    }
    entity = entity.replace(/^0+/, '')
    if (isNaN(num) || numStr.toLowerCase() !== entity) {
      strictFail(parser, 'Invalid character entity')
      return '&' + parser.entity + ';'
    }

    return String.fromCodePoint(num)
  }

  function beginWhiteSpace (parser, c) {
    if (c === '<') {
      parser.state = S.OPEN_WAKA
      parser.startTagPosition = parser.position
    } else if (!isWhitespace(c)) {
      // have to process this as a text node.
      // weird, but happens.
      strictFail(parser, 'Non-whitespace before first tag.')
      parser.textNode = c
      parser.state = S.TEXT
    }
  }

  function charAt (chunk, i) {
    var result = ''
    if (i < chunk.length) {
      result = chunk.charAt(i)
    }
    return result
  }

  function write (chunk) {
    var parser = this
    if (this.error) {
      throw this.error
    }
    if (parser.closed) {
      return error(parser,
        'Cannot write after close. Assign an onready handler.')
    }
    if (chunk === null) {
      return end(parser)
    }
    if (typeof chunk === 'object') {
      chunk = chunk.toString()
    }
    var i = 0
    var c = ''
    while (true) {
      c = charAt(chunk, i++)
      parser.c = c

      if (!c) {
        break
      }

      if (parser.trackPosition) {
        parser.position++
        if (c === '\n') {
          parser.line++
          parser.column = 0
        } else {
          parser.column++
        }
      }

      switch (parser.state) {
        case S.BEGIN:
          parser.state = S.BEGIN_WHITESPACE
          if (c === '\uFEFF') {
            continue
          }
          beginWhiteSpace(parser, c)
          continue

        case S.BEGIN_WHITESPACE:
          beginWhiteSpace(parser, c)
          continue

        case S.TEXT:
          if (parser.sawRoot && !parser.closedRoot) {
            var starti = i - 1
            while (c && c !== '<' && c !== '&') {
              c = charAt(chunk, i++)
              if (c && parser.trackPosition) {
                parser.position++
                if (c === '\n') {
                  parser.line++
                  parser.column = 0
                } else {
                  parser.column++
                }
              }
            }
            parser.textNode += chunk.substring(starti, i - 1)
          }
          if (c === '<' && !(parser.sawRoot && parser.closedRoot && !parser.strict)) {
            parser.state = S.OPEN_WAKA
            parser.startTagPosition = parser.position
          } else {
            if (!isWhitespace(c) && (!parser.sawRoot || parser.closedRoot)) {
              strictFail(parser, 'Text data outside of root node.')
            }
            if (c === '&') {
              parser.state = S.TEXT_ENTITY
            } else {
              parser.textNode += c
            }
          }
          continue

        case S.SCRIPT:
          // only non-strict
          if (c === '<') {
            parser.state = S.SCRIPT_ENDING
          } else {
            parser.script += c
          }
          continue

        case S.SCRIPT_ENDING:
          if (c === '/') {
            parser.state = S.CLOSE_TAG
          } else {
            parser.script += '<' + c
            parser.state = S.SCRIPT
          }
          continue

        case S.OPEN_WAKA:
          // either a /, ?, !, or text is coming next.
          if (c === '!') {
            parser.state = S.SGML_DECL
            parser.sgmlDecl = ''
          } else if (isWhitespace(c)) {
            // wait for it...
          } else if (isMatch(nameStart, c)) {
            parser.state = S.OPEN_TAG
            parser.tagName = c
          } else if (c === '/') {
            parser.state = S.CLOSE_TAG
            parser.tagName = ''
          } else if (c === '?') {
            parser.state = S.PROC_INST
            parser.procInstName = parser.procInstBody = ''
          } else {
            strictFail(parser, 'Unencoded <')
            // if there was some whitespace, then add that in.
            if (parser.startTagPosition + 1 < parser.position) {
              var pad = parser.position - parser.startTagPosition
              c = new Array(pad).join(' ') + c
            }
            parser.textNode += '<' + c
            parser.state = S.TEXT
          }
          continue

        case S.SGML_DECL:
          if (parser.sgmlDecl + c === '--') {
            parser.state = S.COMMENT
            parser.comment = ''
            parser.sgmlDecl = ''
            continue;
          }

          if (parser.doctype && parser.doctype !== true && parser.sgmlDecl) {
            parser.state = S.DOCTYPE_DTD
            parser.doctype += '<!' + parser.sgmlDecl + c
            parser.sgmlDecl = ''
          } else if ((parser.sgmlDecl + c).toUpperCase() === CDATA) {
            emitNode(parser, 'onopencdata')
            parser.state = S.CDATA
            parser.sgmlDecl = ''
            parser.cdata = ''
          } else if ((parser.sgmlDecl + c).toUpperCase() === DOCTYPE) {
            parser.state = S.DOCTYPE
            if (parser.doctype || parser.sawRoot) {
              strictFail(parser,
                'Inappropriately located doctype declaration')
            }
            parser.doctype = ''
            parser.sgmlDecl = ''
          } else if (c === '>') {
            emitNode(parser, 'onsgmldeclaration', parser.sgmlDecl)
            parser.sgmlDecl = ''
            parser.state = S.TEXT
          } else if (isQuote(c)) {
            parser.state = S.SGML_DECL_QUOTED
            parser.sgmlDecl += c
          } else {
            parser.sgmlDecl += c
          }
          continue

        case S.SGML_DECL_QUOTED:
          if (c === parser.q) {
            parser.state = S.SGML_DECL
            parser.q = ''
          }
          parser.sgmlDecl += c
          continue

        case S.DOCTYPE:
          if (c === '>') {
            parser.state = S.TEXT
            emitNode(parser, 'ondoctype', parser.doctype)
            parser.doctype = true // just remember that we saw it.
          } else {
            parser.doctype += c
            if (c === '[') {
              parser.state = S.DOCTYPE_DTD
            } else if (isQuote(c)) {
              parser.state = S.DOCTYPE_QUOTED
              parser.q = c
            }
          }
          continue

        case S.DOCTYPE_QUOTED:
          parser.doctype += c
          if (c === parser.q) {
            parser.q = ''
            parser.state = S.DOCTYPE
          }
          continue

        case S.DOCTYPE_DTD:
          if (c === ']') {
            parser.doctype += c
            parser.state = S.DOCTYPE
          } else if (c === '<') {
            parser.state = S.OPEN_WAKA
            parser.startTagPosition = parser.position
          } else if (isQuote(c)) {
            parser.doctype += c
            parser.state = S.DOCTYPE_DTD_QUOTED
            parser.q = c
          } else {
            parser.doctype += c
          }
          continue

        case S.DOCTYPE_DTD_QUOTED:
          parser.doctype += c
          if (c === parser.q) {
            parser.state = S.DOCTYPE_DTD
            parser.q = ''
          }
          continue

        case S.COMMENT:
          if (c === '-') {
            parser.state = S.COMMENT_ENDING
          } else {
            parser.comment += c
          }
          continue

        case S.COMMENT_ENDING:
          if (c === '-') {
            parser.state = S.COMMENT_ENDED
            parser.comment = textopts(parser.opt, parser.comment)
            if (parser.comment) {
              emitNode(parser, 'oncomment', parser.comment)
            }
            parser.comment = ''
          } else {
            parser.comment += '-' + c
            parser.state = S.COMMENT
          }
          continue

        case S.COMMENT_ENDED:
          if (c !== '>') {
            strictFail(parser, 'Malformed comment')
            // allow <!-- blah -- bloo --> in non-strict mode,
            // which is a comment of " blah -- bloo "
            parser.comment += '--' + c
            parser.state = S.COMMENT
          } else if (parser.doctype && parser.doctype !== true) {
            parser.state = S.DOCTYPE_DTD
          } else {
            parser.state = S.TEXT
          }
          continue

        case S.CDATA:
          if (c === ']') {
            parser.state = S.CDATA_ENDING
          } else {
            parser.cdata += c
          }
          continue

        case S.CDATA_ENDING:
          if (c === ']') {
            parser.state = S.CDATA_ENDING_2
          } else {
            parser.cdata += ']' + c
            parser.state = S.CDATA
          }
          continue

        case S.CDATA_ENDING_2:
          if (c === '>') {
            if (parser.cdata) {
              emitNode(parser, 'oncdata', parser.cdata)
            }
            emitNode(parser, 'onclosecdata')
            parser.cdata = ''
            parser.state = S.TEXT
          } else if (c === ']') {
            parser.cdata += ']'
          } else {
            parser.cdata += ']]' + c
            parser.state = S.CDATA
          }
          continue

        case S.PROC_INST:
          if (c === '?') {
            parser.state = S.PROC_INST_ENDING
          } else if (isWhitespace(c)) {
            parser.state = S.PROC_INST_BODY
          } else {
            parser.procInstName += c
          }
          continue

        case S.PROC_INST_BODY:
          if (!parser.procInstBody && isWhitespace(c)) {
            continue
          } else if (c === '?') {
            parser.state = S.PROC_INST_ENDING
          } else {
            parser.procInstBody += c
          }
          continue

        case S.PROC_INST_ENDING:
          if (c === '>') {
            emitNode(parser, 'onprocessinginstruction', {
              name: parser.procInstName,
              body: parser.procInstBody
            })
            parser.procInstName = parser.procInstBody = ''
            parser.state = S.TEXT
          } else {
            parser.procInstBody += '?' + c
            parser.state = S.PROC_INST_BODY
          }
          continue

        case S.OPEN_TAG:
          if (isMatch(nameBody, c)) {
            parser.tagName += c
          } else {
            newTag(parser)
            if (c === '>') {
              openTag(parser)
            } else if (c === '/') {
              parser.state = S.OPEN_TAG_SLASH
            } else {
              if (!isWhitespace(c)) {
                strictFail(parser, 'Invalid character in tag name')
              }
              parser.state = S.ATTRIB
            }
          }
          continue

        case S.OPEN_TAG_SLASH:
          if (c === '>') {
            openTag(parser, true)
            closeTag(parser)
          } else {
            strictFail(parser, 'Forward-slash in opening tag not followed by >')
            parser.state = S.ATTRIB
          }
          continue

        case S.ATTRIB:
          // haven't read the attribute name yet.
          if (isWhitespace(c)) {
            continue
          } else if (c === '>') {
            openTag(parser)
          } else if (c === '/') {
            parser.state = S.OPEN_TAG_SLASH
          } else if (isMatch(nameStart, c)) {
            parser.attribName = c
            parser.attribValue = ''
            parser.state = S.ATTRIB_NAME
          } else {
            strictFail(parser, 'Invalid attribute name')
          }
          continue

        case S.ATTRIB_NAME:
          if (c === '=') {
            parser.state = S.ATTRIB_VALUE
          } else if (c === '>') {
            strictFail(parser, 'Attribute without value')
            parser.attribValue = parser.attribName
            attrib(parser)
            openTag(parser)
          } else if (isWhitespace(c)) {
            parser.state = S.ATTRIB_NAME_SAW_WHITE
          } else if (isMatch(nameBody, c)) {
            parser.attribName += c
          } else {
            strictFail(parser, 'Invalid attribute name')
          }
          continue

        case S.ATTRIB_NAME_SAW_WHITE:
          if (c === '=') {
            parser.state = S.ATTRIB_VALUE
          } else if (isWhitespace(c)) {
            continue
          } else {
            strictFail(parser, 'Attribute without value')
            parser.tag.attributes[parser.attribName] = ''
            parser.attribValue = ''
            emitNode(parser, 'onattribute', {
              name: parser.attribName,
              value: ''
            })
            parser.attribName = ''
            if (c === '>') {
              openTag(parser)
            } else if (isMatch(nameStart, c)) {
              parser.attribName = c
              parser.state = S.ATTRIB_NAME
            } else {
              strictFail(parser, 'Invalid attribute name')
              parser.state = S.ATTRIB
            }
          }
          continue

        case S.ATTRIB_VALUE:
          if (isWhitespace(c)) {
            continue
          } else if (isQuote(c)) {
            parser.q = c
            parser.state = S.ATTRIB_VALUE_QUOTED
          } else {
            if (!parser.opt.unquotedAttributeValues) {
              error(parser, 'Unquoted attribute value')
            }
            parser.state = S.ATTRIB_VALUE_UNQUOTED
            parser.attribValue = c
          }
          continue

        case S.ATTRIB_VALUE_QUOTED:
          if (c !== parser.q) {
            if (c === '&') {
              parser.state = S.ATTRIB_VALUE_ENTITY_Q
            } else {
              parser.attribValue += c
            }
            continue
          }
          attrib(parser)
          parser.q = ''
          parser.state = S.ATTRIB_VALUE_CLOSED
          continue

        case S.ATTRIB_VALUE_CLOSED:
          if (isWhitespace(c)) {
            parser.state = S.ATTRIB
          } else if (c === '>') {
            openTag(parser)
          } else if (c === '/') {
            parser.state = S.OPEN_TAG_SLASH
          } else if (isMatch(nameStart, c)) {
            strictFail(parser, 'No whitespace between attributes')
            parser.attribName = c
            parser.attribValue = ''
            parser.state = S.ATTRIB_NAME
          } else {
            strictFail(parser, 'Invalid attribute name')
          }
          continue

        case S.ATTRIB_VALUE_UNQUOTED:
          if (!isAttribEnd(c)) {
            if (c === '&') {
              parser.state = S.ATTRIB_VALUE_ENTITY_U
            } else {
              parser.attribValue += c
            }
            continue
          }
          attrib(parser)
          if (c === '>') {
            openTag(parser)
          } else {
            parser.state = S.ATTRIB
          }
          continue

        case S.CLOSE_TAG:
          if (!parser.tagName) {
            if (isWhitespace(c)) {
              continue
            } else if (notMatch(nameStart, c)) {
              if (parser.script) {
                parser.script += '</' + c
                parser.state = S.SCRIPT
              } else {
                strictFail(parser, 'Invalid tagname in closing tag.')
              }
            } else {
              parser.tagName = c
            }
          } else if (c === '>') {
            closeTag(parser)
          } else if (isMatch(nameBody, c)) {
            parser.tagName += c
          } else if (parser.script) {
            parser.script += '</' + parser.tagName
            parser.tagName = ''
            parser.state = S.SCRIPT
          } else {
            if (!isWhitespace(c)) {
              strictFail(parser, 'Invalid tagname in closing tag')
            }
            parser.state = S.CLOSE_TAG_SAW_WHITE
          }
          continue

        case S.CLOSE_TAG_SAW_WHITE:
          if (isWhitespace(c)) {
            continue
          }
          if (c === '>') {
            closeTag(parser)
          } else {
            strictFail(parser, 'Invalid characters in closing tag')
          }
          continue

        case S.TEXT_ENTITY:
        case S.ATTRIB_VALUE_ENTITY_Q:
        case S.ATTRIB_VALUE_ENTITY_U:
          var returnState
          var buffer
          switch (parser.state) {
            case S.TEXT_ENTITY:
              returnState = S.TEXT
              buffer = 'textNode'
              break

            case S.ATTRIB_VALUE_ENTITY_Q:
              returnState = S.ATTRIB_VALUE_QUOTED
              buffer = 'attribValue'
              break

            case S.ATTRIB_VALUE_ENTITY_U:
              returnState = S.ATTRIB_VALUE_UNQUOTED
              buffer = 'attribValue'
              break
          }

          if (c === ';') {
            var parsedEntity = parseEntity(parser)
            if (parser.opt.unparsedEntities && !Object.values(sax.XML_ENTITIES).includes(parsedEntity)) {
              parser.entity = ''
              parser.state = returnState
              parser.write(parsedEntity)
            } else {
              parser[buffer] += parsedEntity
              parser.entity = ''
              parser.state = returnState
            }
          } else if (isMatch(parser.entity.length ? entityBody : entityStart, c)) {
            parser.entity += c
          } else {
            strictFail(parser, 'Invalid character in entity name')
            parser[buffer] += '&' + parser.entity + c
            parser.entity = ''
            parser.state = returnState
          }

          continue

        default: /* istanbul ignore next */ {
          throw new Error(parser, 'Unknown state: ' + parser.state)
        }
      }
    } // while

    if (parser.position >= parser.bufferCheckPosition) {
      checkBufferLength(parser)
    }
    return parser
  }

  /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */
  /* istanbul ignore next */
  if (!String.fromCodePoint) {
    (function () {
      var stringFromCharCode = String.fromCharCode
      var floor = Math.floor
      var fromCodePoint = function () {
        var MAX_SIZE = 0x4000
        var codeUnits = []
        var highSurrogate
        var lowSurrogate
        var index = -1
        var length = arguments.length
        if (!length) {
          return ''
        }
        var result = ''
        while (++index < length) {
          var codePoint = Number(arguments[index])
          if (
            !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`
            codePoint < 0 || // not a valid Unicode code point
            codePoint > 0x10FFFF || // not a valid Unicode code point
            floor(codePoint) !== codePoint // not an integer
          ) {
            throw RangeError('Invalid code point: ' + codePoint)
          }
          if (codePoint <= 0xFFFF) { // BMP code point
            codeUnits.push(codePoint)
          } else { // Astral code point; split in surrogate halves
            // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
            codePoint -= 0x10000
            highSurrogate = (codePoint >> 10) + 0xD800
            lowSurrogate = (codePoint % 0x400) + 0xDC00
            codeUnits.push(highSurrogate, lowSurrogate)
          }
          if (index + 1 === length || codeUnits.length > MAX_SIZE) {
            result += stringFromCharCode.apply(null, codeUnits)
            codeUnits.length = 0
          }
        }
        return result
      }
      /* istanbul ignore next */
      if (Object.defineProperty) {
        Object.defineProperty(String, 'fromCodePoint', {
          value: fromCodePoint,
          configurable: true,
          writable: true
        })
      } else {
        String.fromCodePoint = fromCodePoint
      }
    }())
  }
})(typeof exports === 'undefined' ? this.sax = {} : exports)
The ISC License

Copyright (c) Isaac Z. Schlueter and Contributors

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
'use strict'

// just pre-load all the stuff that index.js lazily exports
const internalRe = require('./internal/re')
const constants = require('./internal/constants')
const SemVer = require('./classes/semver')
const identifiers = require('./internal/identifiers')
const parse = require('./functions/parse')
const valid = require('./functions/valid')
const clean = require('./functions/clean')
const inc = require('./functions/inc')
const diff = require('./functions/diff')
const major = require('./functions/major')
const minor = require('./functions/minor')
const patch = require('./functions/patch')
const prerelease = require('./functions/prerelease')
const compare = require('./functions/compare')
const rcompare = require('./functions/rcompare')
const compareLoose = require('./functions/compare-loose')
const compareBuild = require('./functions/compare-build')
const sort = require('./functions/sort')
const rsort = require('./functions/rsort')
const gt = require('./functions/gt')
const lt = require('./functions/lt')
const eq = require('./functions/eq')
const neq = require('./functions/neq')
const gte = require('./functions/gte')
const lte = require('./functions/lte')
const cmp = require('./functions/cmp')
const coerce = require('./functions/coerce')
const Comparator = require('./classes/comparator')
const Range = require('./classes/range')
const satisfies = require('./functions/satisfies')
const toComparators = require('./ranges/to-comparators')
const maxSatisfying = require('./ranges/max-satisfying')
const minSatisfying = require('./ranges/min-satisfying')
const minVersion = require('./ranges/min-version')
const validRange = require('./ranges/valid')
const outside = require('./ranges/outside')
const gtr = require('./ranges/gtr')
const ltr = require('./ranges/ltr')
const intersects = require('./ranges/intersects')
const simplifyRange = require('./ranges/simplify')
const subset = require('./ranges/subset')
module.exports = {
  parse,
  valid,
  clean,
  inc,
  diff,
  major,
  minor,
  patch,
  prerelease,
  compare,
  rcompare,
  compareLoose,
  compareBuild,
  sort,
  rsort,
  gt,
  lt,
  eq,
  neq,
  gte,
  lte,
  cmp,
  coerce,
  Comparator,
  Range,
  satisfies,
  toComparators,
  maxSatisfying,
  minSatisfying,
  minVersion,
  validRange,
  outside,
  gtr,
  ltr,
  intersects,
  simplifyRange,
  subset,
  SemVer,
  re: internalRe.re,
  src: internalRe.src,
  tokens: internalRe.t,
  SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,
  RELEASE_TYPES: constants.RELEASE_TYPES,
  compareIdentifiers: identifiers.compareIdentifiers,
  rcompareIdentifiers: identifiers.rcompareIdentifiers,
}
{
  "name": "semver",
  "version": "7.7.2",
  "description": "The semantic version parser used by npm.",
  "main": "index.js",
  "devDependencies": {
    "@npmcli/eslint-config": "^5.0.0",
    "@npmcli/template-oss": "4.24.3",
    "benchmark": "^2.1.4",
    "tap": "^16.0.0"
  },
  "license": "ISC",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/npm/node-semver.git"
  },
  "bin": {
    "semver": "bin/semver.js"
  },
  "files": [
    "bin/",
    "lib/",
    "classes/",
    "functions/",
    "internal/",
    "ranges/",
    "index.js",
    "preload.js",
    "range.bnf"
  ],
  "tap": {
    "timeout": 30,
    "coverage-map": "map.js",
    "nyc-arg": [
      "--exclude",
      "tap-snapshots/**"
    ]
  },
  "engines": {
    "node": ">=10"
  },
  "author": "GitHub Inc.",
  "templateOSS": {
    "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
    "version": "4.24.3",
    "engines": ">=10",
    "distPaths": [
      "classes/",
      "functions/",
      "internal/",
      "ranges/",
      "index.js",
      "preload.js",
      "range.bnf"
    ],
    "allowPaths": [
      "/classes/",
      "/functions/",
      "/internal/",
      "/ranges/",
      "/index.js",
      "/preload.js",
      "/range.bnf",
      "/benchmarks"
    ],
    "publish": "true"
  }
}'use strict'

// XXX remove in v8 or beyond
module.exports = require('./index.js')
range-set  ::= range ( logical-or range ) *
logical-or ::= ( ' ' ) * '||' ( ' ' ) *
range      ::= hyphen | simple ( ' ' simple ) * | ''
hyphen     ::= partial ' - ' partial
simple     ::= primitive | partial | tilde | caret
primitive  ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial
partial    ::= xr ( '.' xr ( '.' xr qualifier ? )? )?
xr         ::= 'x' | 'X' | '*' | nr
nr         ::= '0' | [1-9] ( [0-9] ) *
tilde      ::= '~' partial
caret      ::= '^' partial
qualifier  ::= ( '-' pre )? ( '+' build )?
pre        ::= parts
build      ::= parts
parts      ::= part ( '.' part ) *
part       ::= nr | [-0-9A-Za-z]+
'use strict'

// Determine if version is greater than all the versions possible in the range.
const outside = require('./outside')
const gtr = (version, range, options) => outside(version, range, '>', options)
module.exports = gtr
'use strict'

const Range = require('../classes/range')
const intersects = (r1, r2, options) => {
  r1 = new Range(r1, options)
  r2 = new Range(r2, options)
  return r1.intersects(r2, options)
}
module.exports = intersects
'use strict'

const outside = require('./outside')
// Determine if version is less than all the versions possible in the range
const ltr = (version, range, options) => outside(version, range, '<', options)
module.exports = ltr
'use strict'

const SemVer = require('../classes/semver')
const Range = require('../classes/range')

const maxSatisfying = (versions, range, options) => {
  let max = null
  let maxSV = null
  let rangeObj = null
  try {
    rangeObj = new Range(range, options)
  } catch (er) {
    return null
  }
  versions.forEach((v) => {
    if (rangeObj.test(v)) {
      // satisfies(v, range, options)
      if (!max || maxSV.compare(v) === -1) {
        // compare(max, v, true)
        max = v
        maxSV = new SemVer(max, options)
      }
    }
  })
  return max
}
module.exports = maxSatisfying
'use strict'

const SemVer = require('../classes/semver')
const Range = require('../classes/range')
const minSatisfying = (versions, range, options) => {
  let min = null
  let minSV = null
  let rangeObj = null
  try {
    rangeObj = new Range(range, options)
  } catch (er) {
    return null
  }
  versions.forEach((v) => {
    if (rangeObj.test(v)) {
      // satisfies(v, range, options)
      if (!min || minSV.compare(v) === 1) {
        // compare(min, v, true)
        min = v
        minSV = new SemVer(min, options)
      }
    }
  })
  return min
}
module.exports = minSatisfying
'use strict'

const SemVer = require('../classes/semver')
const Range = require('../classes/range')
const gt = require('../functions/gt')

const minVersion = (range, loose) => {
  range = new Range(range, loose)

  let minver = new SemVer('0.0.0')
  if (range.test(minver)) {
    return minver
  }

  minver = new SemVer('0.0.0-0')
  if (range.test(minver)) {
    return minver
  }

  minver = null
  for (let i = 0; i < range.set.length; ++i) {
    const comparators = range.set[i]

    let setMin = null
    comparators.forEach((comparator) => {
      // Clone to avoid manipulating the comparator's semver object.
      const compver = new SemVer(comparator.semver.version)
      switch (comparator.operator) {
        case '>':
          if (compver.prerelease.length === 0) {
            compver.patch++
          } else {
            compver.prerelease.push(0)
          }
          compver.raw = compver.format()
          /* fallthrough */
        case '':
        case '>=':
          if (!setMin || gt(compver, setMin)) {
            setMin = compver
          }
          break
        case '<':
        case '<=':
          /* Ignore maximum versions */
          break
        /* istanbul ignore next */
        default:
          throw new Error(`Unexpected operation: ${comparator.operator}`)
      }
    })
    if (setMin && (!minver || gt(minver, setMin))) {
      minver = setMin
    }
  }

  if (minver && range.test(minver)) {
    return minver
  }

  return null
}
module.exports = minVersion
'use strict'

const SemVer = require('../classes/semver')
const Comparator = require('../classes/comparator')
const { ANY } = Comparator
const Range = require('../classes/range')
const satisfies = require('../functions/satisfies')
const gt = require('../functions/gt')
const lt = require('../functions/lt')
const lte = require('../functions/lte')
const gte = require('../functions/gte')

const outside = (version, range, hilo, options) => {
  version = new SemVer(version, options)
  range = new Range(range, options)

  let gtfn, ltefn, ltfn, comp, ecomp
  switch (hilo) {
    case '>':
      gtfn = gt
      ltefn = lte
      ltfn = lt
      comp = '>'
      ecomp = '>='
      break
    case '<':
      gtfn = lt
      ltefn = gte
      ltfn = gt
      comp = '<'
      ecomp = '<='
      break
    default:
      throw new TypeError('Must provide a hilo val of "<" or ">"')
  }

  // If it satisfies the range it is not outside
  if (satisfies(version, range, options)) {
    return false
  }

  // From now on, variable terms are as if we're in "gtr" mode.
  // but note that everything is flipped for the "ltr" function.

  for (let i = 0; i < range.set.length; ++i) {
    const comparators = range.set[i]

    let high = null
    let low = null

    comparators.forEach((comparator) => {
      if (comparator.semver === ANY) {
        comparator = new Comparator('>=0.0.0')
      }
      high = high || comparator
      low = low || comparator
      if (gtfn(comparator.semver, high.semver, options)) {
        high = comparator
      } else if (ltfn(comparator.semver, low.semver, options)) {
        low = comparator
      }
    })

    // If the edge version comparator has a operator then our version
    // isn't outside it
    if (high.operator === comp || high.operator === ecomp) {
      return false
    }

    // If the lowest version comparator has an operator and our version
    // is less than it then it isn't higher than the range
    if ((!low.operator || low.operator === comp) &&
        ltefn(version, low.semver)) {
      return false
    } else if (low.operator === ecomp && ltfn(version, low.semver)) {
      return false
    }
  }
  return true
}

module.exports = outside
'use strict'

// given a set of versions and a range, create a "simplified" range
// that includes the same versions that the original range does
// If the original range is shorter than the simplified one, return that.
const satisfies = require('../functions/satisfies.js')
const compare = require('../functions/compare.js')
module.exports = (versions, range, options) => {
  const set = []
  let first = null
  let prev = null
  const v = versions.sort((a, b) => compare(a, b, options))
  for (const version of v) {
    const included = satisfies(version, range, options)
    if (included) {
      prev = version
      if (!first) {
        first = version
      }
    } else {
      if (prev) {
        set.push([first, prev])
      }
      prev = null
      first = null
    }
  }
  if (first) {
    set.push([first, null])
  }

  const ranges = []
  for (const [min, max] of set) {
    if (min === max) {
      ranges.push(min)
    } else if (!max && min === v[0]) {
      ranges.push('*')
    } else if (!max) {
      ranges.push(`>=${min}`)
    } else if (min === v[0]) {
      ranges.push(`<=${max}`)
    } else {
      ranges.push(`${min} - ${max}`)
    }
  }
  const simplified = ranges.join(' || ')
  const original = typeof range.raw === 'string' ? range.raw : String(range)
  return simplified.length < original.length ? simplified : range
}
'use strict'

const Range = require('../classes/range.js')
const Comparator = require('../classes/comparator.js')
const { ANY } = Comparator
const satisfies = require('../functions/satisfies.js')
const compare = require('../functions/compare.js')

// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:
// - Every simple range `r1, r2, ...` is a null set, OR
// - Every simple range `r1, r2, ...` which is not a null set is a subset of
//   some `R1, R2, ...`
//
// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:
// - If c is only the ANY comparator
//   - If C is only the ANY comparator, return true
//   - Else if in prerelease mode, return false
//   - else replace c with `[>=0.0.0]`
// - If C is only the ANY comparator
//   - if in prerelease mode, return true
//   - else replace C with `[>=0.0.0]`
// - Let EQ be the set of = comparators in c
// - If EQ is more than one, return true (null set)
// - Let GT be the highest > or >= comparator in c
// - Let LT be the lowest < or <= comparator in c
// - If GT and LT, and GT.semver > LT.semver, return true (null set)
// - If any C is a = range, and GT or LT are set, return false
// - If EQ
//   - If GT, and EQ does not satisfy GT, return true (null set)
//   - If LT, and EQ does not satisfy LT, return true (null set)
//   - If EQ satisfies every C, return true
//   - Else return false
// - If GT
//   - If GT.semver is lower than any > or >= comp in C, return false
//   - If GT is >=, and GT.semver does not satisfy every C, return false
//   - If GT.semver has a prerelease, and not in prerelease mode
//     - If no C has a prerelease and the GT.semver tuple, return false
// - If LT
//   - If LT.semver is greater than any < or <= comp in C, return false
//   - If LT is <=, and LT.semver does not satisfy every C, return false
//   - If GT.semver has a prerelease, and not in prerelease mode
//     - If no C has a prerelease and the LT.semver tuple, return false
// - Else return true

const subset = (sub, dom, options = {}) => {
  if (sub === dom) {
    return true
  }

  sub = new Range(sub, options)
  dom = new Range(dom, options)
  let sawNonNull = false

  OUTER: for (const simpleSub of sub.set) {
    for (const simpleDom of dom.set) {
      const isSub = simpleSubset(simpleSub, simpleDom, options)
      sawNonNull = sawNonNull || isSub !== null
      if (isSub) {
        continue OUTER
      }
    }
    // the null set is a subset of everything, but null simple ranges in
    // a complex range should be ignored.  so if we saw a non-null range,
    // then we know this isn't a subset, but if EVERY simple range was null,
    // then it is a subset.
    if (sawNonNull) {
      return false
    }
  }
  return true
}

const minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]
const minimumVersion = [new Comparator('>=0.0.0')]

const simpleSubset = (sub, dom, options) => {
  if (sub === dom) {
    return true
  }

  if (sub.length === 1 && sub[0].semver === ANY) {
    if (dom.length === 1 && dom[0].semver === ANY) {
      return true
    } else if (options.includePrerelease) {
      sub = minimumVersionWithPreRelease
    } else {
      sub = minimumVersion
    }
  }

  if (dom.length === 1 && dom[0].semver === ANY) {
    if (options.includePrerelease) {
      return true
    } else {
      dom = minimumVersion
    }
  }

  const eqSet = new Set()
  let gt, lt
  for (const c of sub) {
    if (c.operator === '>' || c.operator === '>=') {
      gt = higherGT(gt, c, options)
    } else if (c.operator === '<' || c.operator === '<=') {
      lt = lowerLT(lt, c, options)
    } else {
      eqSet.add(c.semver)
    }
  }

  if (eqSet.size > 1) {
    return null
  }

  let gtltComp
  if (gt && lt) {
    gtltComp = compare(gt.semver, lt.semver, options)
    if (gtltComp > 0) {
      return null
    } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {
      return null
    }
  }

  // will iterate one or zero times
  for (const eq of eqSet) {
    if (gt && !satisfies(eq, String(gt), options)) {
      return null
    }

    if (lt && !satisfies(eq, String(lt), options)) {
      return null
    }

    for (const c of dom) {
      if (!satisfies(eq, String(c), options)) {
        return false
      }
    }

    return true
  }

  let higher, lower
  let hasDomLT, hasDomGT
  // if the subset has a prerelease, we need a comparator in the superset
  // with the same tuple and a prerelease, or it's not a subset
  let needDomLTPre = lt &&
    !options.includePrerelease &&
    lt.semver.prerelease.length ? lt.semver : false
  let needDomGTPre = gt &&
    !options.includePrerelease &&
    gt.semver.prerelease.length ? gt.semver : false
  // exception: <1.2.3-0 is the same as <1.2.3
  if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&
      lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {
    needDomLTPre = false
  }

  for (const c of dom) {
    hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='
    hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='
    if (gt) {
      if (needDomGTPre) {
        if (c.semver.prerelease && c.semver.prerelease.length &&
            c.semver.major === needDomGTPre.major &&
            c.semver.minor === needDomGTPre.minor &&
            c.semver.patch === needDomGTPre.patch) {
          needDomGTPre = false
        }
      }
      if (c.operator === '>' || c.operator === '>=') {
        higher = higherGT(gt, c, options)
        if (higher === c && higher !== gt) {
          return false
        }
      } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {
        return false
      }
    }
    if (lt) {
      if (needDomLTPre) {
        if (c.semver.prerelease && c.semver.prerelease.length &&
            c.semver.major === needDomLTPre.major &&
            c.semver.minor === needDomLTPre.minor &&
            c.semver.patch === needDomLTPre.patch) {
          needDomLTPre = false
        }
      }
      if (c.operator === '<' || c.operator === '<=') {
        lower = lowerLT(lt, c, options)
        if (lower === c && lower !== lt) {
          return false
        }
      } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {
        return false
      }
    }
    if (!c.operator && (lt || gt) && gtltComp !== 0) {
      return false
    }
  }

  // if there was a < or >, and nothing in the dom, then must be false
  // UNLESS it was limited by another range in the other direction.
  // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0
  if (gt && hasDomLT && !lt && gtltComp !== 0) {
    return false
  }

  if (lt && hasDomGT && !gt && gtltComp !== 0) {
    return false
  }

  // we needed a prerelease range in a specific tuple, but didn't get one
  // then this isn't a subset.  eg >=1.2.3-pre is not a subset of >=1.0.0,
  // because it includes prereleases in the 1.2.3 tuple
  if (needDomGTPre || needDomLTPre) {
    return false
  }

  return true
}

// >=1.2.3 is lower than >1.2.3
const higherGT = (a, b, options) => {
  if (!a) {
    return b
  }
  const comp = compare(a.semver, b.semver, options)
  return comp > 0 ? a
    : comp < 0 ? b
    : b.operator === '>' && a.operator === '>=' ? b
    : a
}

// <=1.2.3 is higher than <1.2.3
const lowerLT = (a, b, options) => {
  if (!a) {
    return b
  }
  const comp = compare(a.semver, b.semver, options)
  return comp < 0 ? a
    : comp > 0 ? b
    : b.operator === '<' && a.operator === '<=' ? b
    : a
}

module.exports = subset
'use strict'

const Range = require('../classes/range')

// Mostly just for testing and legacy API reasons
const toComparators = (range, options) =>
  new Range(range, options).set
    .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))

module.exports = toComparators
'use strict'

const Range = require('../classes/range')
const validRange = (range, options) => {
  try {
    // Return '*' instead of '' so that truthiness works.
    // This will throw if it's invalid anyway
    return new Range(range, options).range || '*'
  } catch (er) {
    return null
  }
}
module.exports = validRange
'use strict'

// Note: this is the semver.org version of the spec that it implements
// Not necessarily the package version of this code.
const SEMVER_SPEC_VERSION = '2.0.0'

const MAX_LENGTH = 256
const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
/* istanbul ignore next */ 9007199254740991

// Max safe segment length for coercion.
const MAX_SAFE_COMPONENT_LENGTH = 16

// Max safe length for a build identifier. The max length minus 6 characters for
// the shortest version with a build 0.0.0+BUILD.
const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6

const RELEASE_TYPES = [
  'major',
  'premajor',
  'minor',
  'preminor',
  'patch',
  'prepatch',
  'prerelease',
]

module.exports = {
  MAX_LENGTH,
  MAX_SAFE_COMPONENT_LENGTH,
  MAX_SAFE_BUILD_LENGTH,
  MAX_SAFE_INTEGER,
  RELEASE_TYPES,
  SEMVER_SPEC_VERSION,
  FLAG_INCLUDE_PRERELEASE: 0b001,
  FLAG_LOOSE: 0b010,
}
'use strict'

const debug = (
  typeof process === 'object' &&
  process.env &&
  process.env.NODE_DEBUG &&
  /\bsemver\b/i.test(process.env.NODE_DEBUG)
) ? (...args) => console.error('SEMVER', ...args)
  : () => {}

module.exports = debug
'use strict'

const numeric = /^[0-9]+$/
const compareIdentifiers = (a, b) => {
  const anum = numeric.test(a)
  const bnum = numeric.test(b)

  if (anum && bnum) {
    a = +a
    b = +b
  }

  return a === b ? 0
    : (anum && !bnum) ? -1
    : (bnum && !anum) ? 1
    : a < b ? -1
    : 1
}

const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)

module.exports = {
  compareIdentifiers,
  rcompareIdentifiers,
}
'use strict'

class LRUCache {
  constructor () {
    this.max = 1000
    this.map = new Map()
  }

  get (key) {
    const value = this.map.get(key)
    if (value === undefined) {
      return undefined
    } else {
      // Remove the key from the map and add it to the end
      this.map.delete(key)
      this.map.set(key, value)
      return value
    }
  }

  delete (key) {
    return this.map.delete(key)
  }

  set (key, value) {
    const deleted = this.delete(key)

    if (!deleted && value !== undefined) {
      // If cache is full, delete the least recently used item
      if (this.map.size >= this.max) {
        const firstKey = this.map.keys().next().value
        this.delete(firstKey)
      }

      this.map.set(key, value)
    }

    return this
  }
}

module.exports = LRUCache
'use strict'

// parse out just the options we care about
const looseOption = Object.freeze({ loose: true })
const emptyOpts = Object.freeze({ })
const parseOptions = options => {
  if (!options) {
    return emptyOpts
  }

  if (typeof options !== 'object') {
    return looseOption
  }

  return options
}
module.exports = parseOptions
'use strict'

const {
  MAX_SAFE_COMPONENT_LENGTH,
  MAX_SAFE_BUILD_LENGTH,
  MAX_LENGTH,
} = require('./constants')
const debug = require('./debug')
exports = module.exports = {}

// The actual regexps go on exports.re
const re = exports.re = []
const safeRe = exports.safeRe = []
const src = exports.src = []
const safeSrc = exports.safeSrc = []
const t = exports.t = {}
let R = 0

const LETTERDASHNUMBER = '[a-zA-Z0-9-]'

// Replace some greedy regex tokens to prevent regex dos issues. These regex are
// used internally via the safeRe object since all inputs in this library get
// normalized first to trim and collapse all extra whitespace. The original
// regexes are exported for userland consumption and lower level usage. A
// future breaking change could export the safer regex only with a note that
// all input should have extra whitespace removed.
const safeRegexReplacements = [
  ['\\s', 1],
  ['\\d', MAX_LENGTH],
  [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],
]

const makeSafeRegex = (value) => {
  for (const [token, max] of safeRegexReplacements) {
    value = value
      .split(`${token}*`).join(`${token}{0,${max}}`)
      .split(`${token}+`).join(`${token}{1,${max}}`)
  }
  return value
}

const createToken = (name, value, isGlobal) => {
  const safe = makeSafeRegex(value)
  const index = R++
  debug(name, index, value)
  t[name] = index
  src[index] = value
  safeSrc[index] = safe
  re[index] = new RegExp(value, isGlobal ? 'g' : undefined)
  safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)
}

// The following Regular Expressions can be used for tokenizing,
// validating, and parsing SemVer version strings.

// ## Numeric Identifier
// A single `0`, or a non-zero digit followed by zero or more digits.

createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*')
createToken('NUMERICIDENTIFIERLOOSE', '\\d+')

// ## Non-numeric Identifier
// Zero or more digits, followed by a letter or hyphen, and then zero or
// more letters, digits, or hyphens.

createToken('NONNUMERICIDENTIFIER', `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)

// ## Main Version
// Three dot-separated numeric identifiers.

createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` +
                   `(${src[t.NUMERICIDENTIFIER]})\\.` +
                   `(${src[t.NUMERICIDENTIFIER]})`)

createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
                        `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
                        `(${src[t.NUMERICIDENTIFIERLOOSE]})`)

// ## Pre-release Version Identifier
// A numeric identifier, or a non-numeric identifier.
// Non-numberic identifiers include numberic identifiers but can be longer.
// Therefore non-numberic identifiers must go first.

createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]
}|${src[t.NUMERICIDENTIFIER]})`)

createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]
}|${src[t.NUMERICIDENTIFIERLOOSE]})`)

// ## Pre-release Version
// Hyphen, followed by one or more dot-separated pre-release version
// identifiers.

createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]
}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`)

createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]
}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)

// ## Build Metadata Identifier
// Any combination of digits, letters, or hyphens.

createToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)

// ## Build Metadata
// Plus sign, followed by one or more period-separated build metadata
// identifiers.

createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER]
}(?:\\.${src[t.BUILDIDENTIFIER]})*))`)

// ## Full Version String
// A main version, followed optionally by a pre-release version and
// build metadata.

// Note that the only major, minor, patch, and pre-release sections of
// the version string are capturing groups.  The build metadata is not a
// capturing group, because it should not ever be used in version
// comparison.

createToken('FULLPLAIN', `v?${src[t.MAINVERSION]
}${src[t.PRERELEASE]}?${
  src[t.BUILD]}?`)

createToken('FULL', `^${src[t.FULLPLAIN]}$`)

// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
// common in the npm registry.
createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE]
}${src[t.PRERELEASELOOSE]}?${
  src[t.BUILD]}?`)

createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)

createToken('GTLT', '((?:<|>)?=?)')

// Something like "2.*" or "1.2.x".
// Note that "x.x" is a valid xRange identifer, meaning "any version"
// Only the first item is strictly required.
createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`)
createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`)

createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` +
                   `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
                   `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
                   `(?:${src[t.PRERELEASE]})?${
                     src[t.BUILD]}?` +
                   `)?)?`)

createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +
                        `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
                        `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
                        `(?:${src[t.PRERELEASELOOSE]})?${
                          src[t.BUILD]}?` +
                        `)?)?`)

createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`)
createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`)

// Coercion.
// Extract anything that could conceivably be a part of a valid semver
createToken('COERCEPLAIN', `${'(^|[^\\d])' +
              '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +
              `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +
              `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)
createToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\d])`)
createToken('COERCEFULL', src[t.COERCEPLAIN] +
              `(?:${src[t.PRERELEASE]})?` +
              `(?:${src[t.BUILD]})?` +
              `(?:$|[^\\d])`)
createToken('COERCERTL', src[t.COERCE], true)
createToken('COERCERTLFULL', src[t.COERCEFULL], true)

// Tilde ranges.
// Meaning is "reasonably at or greater than"
createToken('LONETILDE', '(?:~>?)')

createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true)
exports.tildeTrimReplace = '$1~'

createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)
createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)

// Caret ranges.
// Meaning is "at least and backwards compatible with"
createToken('LONECARET', '(?:\\^)')

createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true)
exports.caretTrimReplace = '$1^'

createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)
createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)

// A simple gt/lt/eq thing, or just "" to indicate "any version"
createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`)
createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`)

// An expression to strip any whitespace between the gtlt and the thing
// it modifies, so that `> 1.2.3` ==> `>1.2.3`
createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT]
}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)
exports.comparatorTrimReplace = '$1$2$3'

// Something like `1.2.3 - 1.2.4`
// Note that these all use the loose form, because they'll be
// checked against either the strict or loose comparator form
// later.
createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` +
                   `\\s+-\\s+` +
                   `(${src[t.XRANGEPLAIN]})` +
                   `\\s*$`)

createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` +
                        `\\s+-\\s+` +
                        `(${src[t.XRANGEPLAINLOOSE]})` +
                        `\\s*$`)

// Star ranges basically just allow anything at all.
createToken('STAR', '(<|>)?=?\\s*\\*')
// >=0.0.0 is like a star
createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$')
createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$')
'use strict'

const parse = require('./parse')
const clean = (version, options) => {
  const s = parse(version.trim().replace(/^[=v]+/, ''), options)
  return s ? s.version : null
}
module.exports = clean
'use strict'

const eq = require('./eq')
const neq = require('./neq')
const gt = require('./gt')
const gte = require('./gte')
const lt = require('./lt')
const lte = require('./lte')

const cmp = (a, op, b, loose) => {
  switch (op) {
    case '===':
      if (typeof a === 'object') {
        a = a.version
      }
      if (typeof b === 'object') {
        b = b.version
      }
      return a === b

    case '!==':
      if (typeof a === 'object') {
        a = a.version
      }
      if (typeof b === 'object') {
        b = b.version
      }
      return a !== b

    case '':
    case '=':
    case '==':
      return eq(a, b, loose)

    case '!=':
      return neq(a, b, loose)

    case '>':
      return gt(a, b, loose)

    case '>=':
      return gte(a, b, loose)

    case '<':
      return lt(a, b, loose)

    case '<=':
      return lte(a, b, loose)

    default:
      throw new TypeError(`Invalid operator: ${op}`)
  }
}
module.exports = cmp
'use strict'

const SemVer = require('../classes/semver')
const parse = require('./parse')
const { safeRe: re, t } = require('../internal/re')

const coerce = (version, options) => {
  if (version instanceof SemVer) {
    return version
  }

  if (typeof version === 'number') {
    version = String(version)
  }

  if (typeof version !== 'string') {
    return null
  }

  options = options || {}

  let match = null
  if (!options.rtl) {
    match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])
  } else {
    // Find the right-most coercible string that does not share
    // a terminus with a more left-ward coercible string.
    // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'
    // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'
    //
    // Walk through the string checking with a /g regexp
    // Manually set the index so as to pick up overlapping matches.
    // Stop when we get a match that ends at the string end, since no
    // coercible string can be more right-ward without the same terminus.
    const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]
    let next
    while ((next = coerceRtlRegex.exec(version)) &&
        (!match || match.index + match[0].length !== version.length)
    ) {
      if (!match ||
            next.index + next[0].length !== match.index + match[0].length) {
        match = next
      }
      coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length
    }
    // leave it in a clean state
    coerceRtlRegex.lastIndex = -1
  }

  if (match === null) {
    return null
  }

  const major = match[2]
  const minor = match[3] || '0'
  const patch = match[4] || '0'
  const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''
  const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''

  return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)
}
module.exports = coerce
'use strict'

const SemVer = require('../classes/semver')
const compareBuild = (a, b, loose) => {
  const versionA = new SemVer(a, loose)
  const versionB = new SemVer(b, loose)
  return versionA.compare(versionB) || versionA.compareBuild(versionB)
}
module.exports = compareBuild
'use strict'

const compare = require('./compare')
const compareLoose = (a, b) => compare(a, b, true)
module.exports = compareLoose
'use strict'

const SemVer = require('../classes/semver')
const compare = (a, b, loose) =>
  new SemVer(a, loose).compare(new SemVer(b, loose))

module.exports = compare
'use strict'

const parse = require('./parse.js')

const diff = (version1, version2) => {
  const v1 = parse(version1, null, true)
  const v2 = parse(version2, null, true)
  const comparison = v1.compare(v2)

  if (comparison === 0) {
    return null
  }

  const v1Higher = comparison > 0
  const highVersion = v1Higher ? v1 : v2
  const lowVersion = v1Higher ? v2 : v1
  const highHasPre = !!highVersion.prerelease.length
  const lowHasPre = !!lowVersion.prerelease.length

  if (lowHasPre && !highHasPre) {
    // Going from prerelease -> no prerelease requires some special casing

    // If the low version has only a major, then it will always be a major
    // Some examples:
    // 1.0.0-1 -> 1.0.0
    // 1.0.0-1 -> 1.1.1
    // 1.0.0-1 -> 2.0.0
    if (!lowVersion.patch && !lowVersion.minor) {
      return 'major'
    }

    // If the main part has no difference
    if (lowVersion.compareMain(highVersion) === 0) {
      if (lowVersion.minor && !lowVersion.patch) {
        return 'minor'
      }
      return 'patch'
    }
  }

  // add the `pre` prefix if we are going to a prerelease version
  const prefix = highHasPre ? 'pre' : ''

  if (v1.major !== v2.major) {
    return prefix + 'major'
  }

  if (v1.minor !== v2.minor) {
    return prefix + 'minor'
  }

  if (v1.patch !== v2.patch) {
    return prefix + 'patch'
  }

  // high and low are preleases
  return 'prerelease'
}

module.exports = diff
'use strict'

const compare = require('./compare')
const eq = (a, b, loose) => compare(a, b, loose) === 0
module.exports = eq
'use strict'

const compare = require('./compare')
const gt = (a, b, loose) => compare(a, b, loose) > 0
module.exports = gt
'use strict'

const compare = require('./compare')
const gte = (a, b, loose) => compare(a, b, loose) >= 0
module.exports = gte
'use strict'

const SemVer = require('../classes/semver')

const inc = (version, release, options, identifier, identifierBase) => {
  if (typeof (options) === 'string') {
    identifierBase = identifier
    identifier = options
    options = undefined
  }

  try {
    return new SemVer(
      version instanceof SemVer ? version.version : version,
      options
    ).inc(release, identifier, identifierBase).version
  } catch (er) {
    return null
  }
}
module.exports = inc
'use strict'

const compare = require('./compare')
const lt = (a, b, loose) => compare(a, b, loose) < 0
module.exports = lt
'use strict'

const compare = require('./compare')
const lte = (a, b, loose) => compare(a, b, loose) <= 0
module.exports = lte
'use strict'

const SemVer = require('../classes/semver')
const major = (a, loose) => new SemVer(a, loose).major
module.exports = major
'use strict'

const SemVer = require('../classes/semver')
const minor = (a, loose) => new SemVer(a, loose).minor
module.exports = minor
'use strict'

const compare = require('./compare')
const neq = (a, b, loose) => compare(a, b, loose) !== 0
module.exports = neq
'use strict'

const SemVer = require('../classes/semver')
const parse = (version, options, throwErrors = false) => {
  if (version instanceof SemVer) {
    return version
  }
  try {
    return new SemVer(version, options)
  } catch (er) {
    if (!throwErrors) {
      return null
    }
    throw er
  }
}

module.exports = parse
'use strict'

const SemVer = require('../classes/semver')
const patch = (a, loose) => new SemVer(a, loose).patch
module.exports = patch
'use strict'

const parse = require('./parse')
const prerelease = (version, options) => {
  const parsed = parse(version, options)
  return (parsed && parsed.prerelease.length) ? parsed.prerelease : null
}
module.exports = prerelease
'use strict'

const compare = require('./compare')
const rcompare = (a, b, loose) => compare(b, a, loose)
module.exports = rcompare
'use strict'

const compareBuild = require('./compare-build')
const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))
module.exports = rsort
'use strict'

const Range = require('../classes/range')
const satisfies = (version, range, options) => {
  try {
    range = new Range(range, options)
  } catch (er) {
    return false
  }
  return range.test(version)
}
module.exports = satisfies
'use strict'

const compareBuild = require('./compare-build')
const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))
module.exports = sort
'use strict'

const parse = require('./parse')
const valid = (version, options) => {
  const v = parse(version, options)
  return v ? v.version : null
}
module.exports = valid
'use strict'

const ANY = Symbol('SemVer ANY')
// hoisted class for cyclic dependency
class Comparator {
  static get ANY () {
    return ANY
  }

  constructor (comp, options) {
    options = parseOptions(options)

    if (comp instanceof Comparator) {
      if (comp.loose === !!options.loose) {
        return comp
      } else {
        comp = comp.value
      }
    }

    comp = comp.trim().split(/\s+/).join(' ')
    debug('comparator', comp, options)
    this.options = options
    this.loose = !!options.loose
    this.parse(comp)

    if (this.semver === ANY) {
      this.value = ''
    } else {
      this.value = this.operator + this.semver.version
    }

    debug('comp', this)
  }

  parse (comp) {
    const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
    const m = comp.match(r)

    if (!m) {
      throw new TypeError(`Invalid comparator: ${comp}`)
    }

    this.operator = m[1] !== undefined ? m[1] : ''
    if (this.operator === '=') {
      this.operator = ''
    }

    // if it literally is just '>' or '' then allow anything.
    if (!m[2]) {
      this.semver = ANY
    } else {
      this.semver = new SemVer(m[2], this.options.loose)
    }
  }

  toString () {
    return this.value
  }

  test (version) {
    debug('Comparator.test', version, this.options.loose)

    if (this.semver === ANY || version === ANY) {
      return true
    }

    if (typeof version === 'string') {
      try {
        version = new SemVer(version, this.options)
      } catch (er) {
        return false
      }
    }

    return cmp(version, this.operator, this.semver, this.options)
  }

  intersects (comp, options) {
    if (!(comp instanceof Comparator)) {
      throw new TypeError('a Comparator is required')
    }

    if (this.operator === '') {
      if (this.value === '') {
        return true
      }
      return new Range(comp.value, options).test(this.value)
    } else if (comp.operator === '') {
      if (comp.value === '') {
        return true
      }
      return new Range(this.value, options).test(comp.semver)
    }

    options = parseOptions(options)

    // Special cases where nothing can possibly be lower
    if (options.includePrerelease &&
      (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {
      return false
    }
    if (!options.includePrerelease &&
      (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {
      return false
    }

    // Same direction increasing (> or >=)
    if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {
      return true
    }
    // Same direction decreasing (< or <=)
    if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {
      return true
    }
    // same SemVer and both sides are inclusive (<= or >=)
    if (
      (this.semver.version === comp.semver.version) &&
      this.operator.includes('=') && comp.operator.includes('=')) {
      return true
    }
    // opposite directions less than
    if (cmp(this.semver, '<', comp.semver, options) &&
      this.operator.startsWith('>') && comp.operator.startsWith('<')) {
      return true
    }
    // opposite directions greater than
    if (cmp(this.semver, '>', comp.semver, options) &&
      this.operator.startsWith('<') && comp.operator.startsWith('>')) {
      return true
    }
    return false
  }
}

module.exports = Comparator

const parseOptions = require('../internal/parse-options')
const { safeRe: re, t } = require('../internal/re')
const cmp = require('../functions/cmp')
const debug = require('../internal/debug')
const SemVer = require('./semver')
const Range = require('./range')
'use strict'

module.exports = {
  SemVer: require('./semver.js'),
  Range: require('./range.js'),
  Comparator: require('./comparator.js'),
}
'use strict'

const SPACE_CHARACTERS = /\s+/g

// hoisted class for cyclic dependency
class Range {
  constructor (range, options) {
    options = parseOptions(options)

    if (range instanceof Range) {
      if (
        range.loose === !!options.loose &&
        range.includePrerelease === !!options.includePrerelease
      ) {
        return range
      } else {
        return new Range(range.raw, options)
      }
    }

    if (range instanceof Comparator) {
      // just put it in the set and return
      this.raw = range.value
      this.set = [[range]]
      this.formatted = undefined
      return this
    }

    this.options = options
    this.loose = !!options.loose
    this.includePrerelease = !!options.includePrerelease

    // First reduce all whitespace as much as possible so we do not have to rely
    // on potentially slow regexes like \s*. This is then stored and used for
    // future error messages as well.
    this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')

    // First, split on ||
    this.set = this.raw
      .split('||')
      // map the range to a 2d array of comparators
      .map(r => this.parseRange(r.trim()))
      // throw out any comparator lists that are empty
      // this generally means that it was not a valid range, which is allowed
      // in loose mode, but will still throw if the WHOLE range is invalid.
      .filter(c => c.length)

    if (!this.set.length) {
      throw new TypeError(`Invalid SemVer Range: ${this.raw}`)
    }

    // if we have any that are not the null set, throw out null sets.
    if (this.set.length > 1) {
      // keep the first one, in case they're all null sets
      const first = this.set[0]
      this.set = this.set.filter(c => !isNullSet(c[0]))
      if (this.set.length === 0) {
        this.set = [first]
      } else if (this.set.length > 1) {
        // if we have any that are *, then the range is just *
        for (const c of this.set) {
          if (c.length === 1 && isAny(c[0])) {
            this.set = [c]
            break
          }
        }
      }
    }

    this.formatted = undefined
  }

  get range () {
    if (this.formatted === undefined) {
      this.formatted = ''
      for (let i = 0; i < this.set.length; i++) {
        if (i > 0) {
          this.formatted += '||'
        }
        const comps = this.set[i]
        for (let k = 0; k < comps.length; k++) {
          if (k > 0) {
            this.formatted += ' '
          }
          this.formatted += comps[k].toString().trim()
        }
      }
    }
    return this.formatted
  }

  format () {
    return this.range
  }

  toString () {
    return this.range
  }

  parseRange (range) {
    // memoize range parsing for performance.
    // this is a very hot path, and fully deterministic.
    const memoOpts =
      (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |
      (this.options.loose && FLAG_LOOSE)
    const memoKey = memoOpts + ':' + range
    const cached = cache.get(memoKey)
    if (cached) {
      return cached
    }

    const loose = this.options.loose
    // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
    const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]
    range = range.replace(hr, hyphenReplace(this.options.includePrerelease))
    debug('hyphen replace', range)

    // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
    range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)
    debug('comparator trim', range)

    // `~ 1.2.3` => `~1.2.3`
    range = range.replace(re[t.TILDETRIM], tildeTrimReplace)
    debug('tilde trim', range)

    // `^ 1.2.3` => `^1.2.3`
    range = range.replace(re[t.CARETTRIM], caretTrimReplace)
    debug('caret trim', range)

    // At this point, the range is completely trimmed and
    // ready to be split into comparators.

    let rangeList = range
      .split(' ')
      .map(comp => parseComparator(comp, this.options))
      .join(' ')
      .split(/\s+/)
      // >=0.0.0 is equivalent to *
      .map(comp => replaceGTE0(comp, this.options))

    if (loose) {
      // in loose mode, throw out any that are not valid comparators
      rangeList = rangeList.filter(comp => {
        debug('loose invalid filter', comp, this.options)
        return !!comp.match(re[t.COMPARATORLOOSE])
      })
    }
    debug('range list', rangeList)

    // if any comparators are the null set, then replace with JUST null set
    // if more than one comparator, remove any * comparators
    // also, don't include the same comparator more than once
    const rangeMap = new Map()
    const comparators = rangeList.map(comp => new Comparator(comp, this.options))
    for (const comp of comparators) {
      if (isNullSet(comp)) {
        return [comp]
      }
      rangeMap.set(comp.value, comp)
    }
    if (rangeMap.size > 1 && rangeMap.has('')) {
      rangeMap.delete('')
    }

    const result = [...rangeMap.values()]
    cache.set(memoKey, result)
    return result
  }

  intersects (range, options) {
    if (!(range instanceof Range)) {
      throw new TypeError('a Range is required')
    }

    return this.set.some((thisComparators) => {
      return (
        isSatisfiable(thisComparators, options) &&
        range.set.some((rangeComparators) => {
          return (
            isSatisfiable(rangeComparators, options) &&
            thisComparators.every((thisComparator) => {
              return rangeComparators.every((rangeComparator) => {
                return thisComparator.intersects(rangeComparator, options)
              })
            })
          )
        })
      )
    })
  }

  // if ANY of the sets match ALL of its comparators, then pass
  test (version) {
    if (!version) {
      return false
    }

    if (typeof version === 'string') {
      try {
        version = new SemVer(version, this.options)
      } catch (er) {
        return false
      }
    }

    for (let i = 0; i < this.set.length; i++) {
      if (testSet(this.set[i], version, this.options)) {
        return true
      }
    }
    return false
  }
}

module.exports = Range

const LRU = require('../internal/lrucache')
const cache = new LRU()

const parseOptions = require('../internal/parse-options')
const Comparator = require('./comparator')
const debug = require('../internal/debug')
const SemVer = require('./semver')
const {
  safeRe: re,
  t,
  comparatorTrimReplace,
  tildeTrimReplace,
  caretTrimReplace,
} = require('../internal/re')
const { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')

const isNullSet = c => c.value === '<0.0.0-0'
const isAny = c => c.value === ''

// take a set of comparators and determine whether there
// exists a version which can satisfy it
const isSatisfiable = (comparators, options) => {
  let result = true
  const remainingComparators = comparators.slice()
  let testComparator = remainingComparators.pop()

  while (result && remainingComparators.length) {
    result = remainingComparators.every((otherComparator) => {
      return testComparator.intersects(otherComparator, options)
    })

    testComparator = remainingComparators.pop()
  }

  return result
}

// comprised of xranges, tildes, stars, and gtlt's at this point.
// already replaced the hyphen ranges
// turn into a set of JUST comparators.
const parseComparator = (comp, options) => {
  debug('comp', comp, options)
  comp = replaceCarets(comp, options)
  debug('caret', comp)
  comp = replaceTildes(comp, options)
  debug('tildes', comp)
  comp = replaceXRanges(comp, options)
  debug('xrange', comp)
  comp = replaceStars(comp, options)
  debug('stars', comp)
  return comp
}

const isX = id => !id || id.toLowerCase() === 'x' || id === '*'

// ~, ~> --> * (any, kinda silly)
// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0
// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0
// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0
// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0
// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0
// ~0.0.1 --> >=0.0.1 <0.1.0-0
const replaceTildes = (comp, options) => {
  return comp
    .trim()
    .split(/\s+/)
    .map((c) => replaceTilde(c, options))
    .join(' ')
}

const replaceTilde = (comp, options) => {
  const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]
  return comp.replace(r, (_, M, m, p, pr) => {
    debug('tilde', comp, _, M, m, p, pr)
    let ret

    if (isX(M)) {
      ret = ''
    } else if (isX(m)) {
      ret = `>=${M}.0.0 <${+M + 1}.0.0-0`
    } else if (isX(p)) {
      // ~1.2 == >=1.2.0 <1.3.0-0
      ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`
    } else if (pr) {
      debug('replaceTilde pr', pr)
      ret = `>=${M}.${m}.${p}-${pr
      } <${M}.${+m + 1}.0-0`
    } else {
      // ~1.2.3 == >=1.2.3 <1.3.0-0
      ret = `>=${M}.${m}.${p
      } <${M}.${+m + 1}.0-0`
    }

    debug('tilde return', ret)
    return ret
  })
}

// ^ --> * (any, kinda silly)
// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0
// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0
// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0
// ^1.2.3 --> >=1.2.3 <2.0.0-0
// ^1.2.0 --> >=1.2.0 <2.0.0-0
// ^0.0.1 --> >=0.0.1 <0.0.2-0
// ^0.1.0 --> >=0.1.0 <0.2.0-0
const replaceCarets = (comp, options) => {
  return comp
    .trim()
    .split(/\s+/)
    .map((c) => replaceCaret(c, options))
    .join(' ')
}

const replaceCaret = (comp, options) => {
  debug('caret', comp, options)
  const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]
  const z = options.includePrerelease ? '-0' : ''
  return comp.replace(r, (_, M, m, p, pr) => {
    debug('caret', comp, _, M, m, p, pr)
    let ret

    if (isX(M)) {
      ret = ''
    } else if (isX(m)) {
      ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`
    } else if (isX(p)) {
      if (M === '0') {
        ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`
      } else {
        ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`
      }
    } else if (pr) {
      debug('replaceCaret pr', pr)
      if (M === '0') {
        if (m === '0') {
          ret = `>=${M}.${m}.${p}-${pr
          } <${M}.${m}.${+p + 1}-0`
        } else {
          ret = `>=${M}.${m}.${p}-${pr
          } <${M}.${+m + 1}.0-0`
        }
      } else {
        ret = `>=${M}.${m}.${p}-${pr
        } <${+M + 1}.0.0-0`
      }
    } else {
      debug('no pr')
      if (M === '0') {
        if (m === '0') {
          ret = `>=${M}.${m}.${p
          }${z} <${M}.${m}.${+p + 1}-0`
        } else {
          ret = `>=${M}.${m}.${p
          }${z} <${M}.${+m + 1}.0-0`
        }
      } else {
        ret = `>=${M}.${m}.${p
        } <${+M + 1}.0.0-0`
      }
    }

    debug('caret return', ret)
    return ret
  })
}

const replaceXRanges = (comp, options) => {
  debug('replaceXRanges', comp, options)
  return comp
    .split(/\s+/)
    .map((c) => replaceXRange(c, options))
    .join(' ')
}

const replaceXRange = (comp, options) => {
  comp = comp.trim()
  const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]
  return comp.replace(r, (ret, gtlt, M, m, p, pr) => {
    debug('xRange', comp, ret, gtlt, M, m, p, pr)
    const xM = isX(M)
    const xm = xM || isX(m)
    const xp = xm || isX(p)
    const anyX = xp

    if (gtlt === '=' && anyX) {
      gtlt = ''
    }

    // if we're including prereleases in the match, then we need
    // to fix this to -0, the lowest possible prerelease value
    pr = options.includePrerelease ? '-0' : ''

    if (xM) {
      if (gtlt === '>' || gtlt === '<') {
        // nothing is allowed
        ret = '<0.0.0-0'
      } else {
        // nothing is forbidden
        ret = '*'
      }
    } else if (gtlt && anyX) {
      // we know patch is an x, because we have any x at all.
      // replace X with 0
      if (xm) {
        m = 0
      }
      p = 0

      if (gtlt === '>') {
        // >1 => >=2.0.0
        // >1.2 => >=1.3.0
        gtlt = '>='
        if (xm) {
          M = +M + 1
          m = 0
          p = 0
        } else {
          m = +m + 1
          p = 0
        }
      } else if (gtlt === '<=') {
        // <=0.7.x is actually <0.8.0, since any 0.7.x should
        // pass.  Similarly, <=7.x is actually <8.0.0, etc.
        gtlt = '<'
        if (xm) {
          M = +M + 1
        } else {
          m = +m + 1
        }
      }

      if (gtlt === '<') {
        pr = '-0'
      }

      ret = `${gtlt + M}.${m}.${p}${pr}`
    } else if (xm) {
      ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`
    } else if (xp) {
      ret = `>=${M}.${m}.0${pr
      } <${M}.${+m + 1}.0-0`
    }

    debug('xRange return', ret)

    return ret
  })
}

// Because * is AND-ed with everything else in the comparator,
// and '' means "any version", just remove the *s entirely.
const replaceStars = (comp, options) => {
  debug('replaceStars', comp, options)
  // Looseness is ignored here.  star is always as loose as it gets!
  return comp
    .trim()
    .replace(re[t.STAR], '')
}

const replaceGTE0 = (comp, options) => {
  debug('replaceGTE0', comp, options)
  return comp
    .trim()
    .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')
}

// This function is passed to string.replace(re[t.HYPHENRANGE])
// M, m, patch, prerelease, build
// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do
// 1.2 - 3.4 => >=1.2.0 <3.5.0-0
// TODO build?
const hyphenReplace = incPr => ($0,
  from, fM, fm, fp, fpr, fb,
  to, tM, tm, tp, tpr) => {
  if (isX(fM)) {
    from = ''
  } else if (isX(fm)) {
    from = `>=${fM}.0.0${incPr ? '-0' : ''}`
  } else if (isX(fp)) {
    from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`
  } else if (fpr) {
    from = `>=${from}`
  } else {
    from = `>=${from}${incPr ? '-0' : ''}`
  }

  if (isX(tM)) {
    to = ''
  } else if (isX(tm)) {
    to = `<${+tM + 1}.0.0-0`
  } else if (isX(tp)) {
    to = `<${tM}.${+tm + 1}.0-0`
  } else if (tpr) {
    to = `<=${tM}.${tm}.${tp}-${tpr}`
  } else if (incPr) {
    to = `<${tM}.${tm}.${+tp + 1}-0`
  } else {
    to = `<=${to}`
  }

  return `${from} ${to}`.trim()
}

const testSet = (set, version, options) => {
  for (let i = 0; i < set.length; i++) {
    if (!set[i].test(version)) {
      return false
    }
  }

  if (version.prerelease.length && !options.includePrerelease) {
    // Find the set of versions that are allowed to have prereleases
    // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
    // That should allow `1.2.3-pr.2` to pass.
    // However, `1.2.4-alpha.notready` should NOT be allowed,
    // even though it's within the range set by the comparators.
    for (let i = 0; i < set.length; i++) {
      debug(set[i].semver)
      if (set[i].semver === Comparator.ANY) {
        continue
      }

      if (set[i].semver.prerelease.length > 0) {
        const allowed = set[i].semver
        if (allowed.major === version.major &&
            allowed.minor === version.minor &&
            allowed.patch === version.patch) {
          return true
        }
      }
    }

    // Version has a -pre, but it's not one of the ones we like.
    return false
  }

  return true
}
'use strict'

const debug = require('../internal/debug')
const { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')
const { safeRe: re, t } = require('../internal/re')

const parseOptions = require('../internal/parse-options')
const { compareIdentifiers } = require('../internal/identifiers')
class SemVer {
  constructor (version, options) {
    options = parseOptions(options)

    if (version instanceof SemVer) {
      if (version.loose === !!options.loose &&
        version.includePrerelease === !!options.includePrerelease) {
        return version
      } else {
        version = version.version
      }
    } else if (typeof version !== 'string') {
      throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`)
    }

    if (version.length > MAX_LENGTH) {
      throw new TypeError(
        `version is longer than ${MAX_LENGTH} characters`
      )
    }

    debug('SemVer', version, options)
    this.options = options
    this.loose = !!options.loose
    // this isn't actually relevant for versions, but keep it so that we
    // don't run into trouble passing this.options around.
    this.includePrerelease = !!options.includePrerelease

    const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])

    if (!m) {
      throw new TypeError(`Invalid Version: ${version}`)
    }

    this.raw = version

    // these are actually numbers
    this.major = +m[1]
    this.minor = +m[2]
    this.patch = +m[3]

    if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
      throw new TypeError('Invalid major version')
    }

    if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {
      throw new TypeError('Invalid minor version')
    }

    if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
      throw new TypeError('Invalid patch version')
    }

    // numberify any prerelease numeric ids
    if (!m[4]) {
      this.prerelease = []
    } else {
      this.prerelease = m[4].split('.').map((id) => {
        if (/^[0-9]+$/.test(id)) {
          const num = +id
          if (num >= 0 && num < MAX_SAFE_INTEGER) {
            return num
          }
        }
        return id
      })
    }

    this.build = m[5] ? m[5].split('.') : []
    this.format()
  }

  format () {
    this.version = `${this.major}.${this.minor}.${this.patch}`
    if (this.prerelease.length) {
      this.version += `-${this.prerelease.join('.')}`
    }
    return this.version
  }

  toString () {
    return this.version
  }

  compare (other) {
    debug('SemVer.compare', this.version, this.options, other)
    if (!(other instanceof SemVer)) {
      if (typeof other === 'string' && other === this.version) {
        return 0
      }
      other = new SemVer(other, this.options)
    }

    if (other.version === this.version) {
      return 0
    }

    return this.compareMain(other) || this.comparePre(other)
  }

  compareMain (other) {
    if (!(other instanceof SemVer)) {
      other = new SemVer(other, this.options)
    }

    return (
      compareIdentifiers(this.major, other.major) ||
      compareIdentifiers(this.minor, other.minor) ||
      compareIdentifiers(this.patch, other.patch)
    )
  }

  comparePre (other) {
    if (!(other instanceof SemVer)) {
      other = new SemVer(other, this.options)
    }

    // NOT having a prerelease is > having one
    if (this.prerelease.length && !other.prerelease.length) {
      return -1
    } else if (!this.prerelease.length && other.prerelease.length) {
      return 1
    } else if (!this.prerelease.length && !other.prerelease.length) {
      return 0
    }

    let i = 0
    do {
      const a = this.prerelease[i]
      const b = other.prerelease[i]
      debug('prerelease compare', i, a, b)
      if (a === undefined && b === undefined) {
        return 0
      } else if (b === undefined) {
        return 1
      } else if (a === undefined) {
        return -1
      } else if (a === b) {
        continue
      } else {
        return compareIdentifiers(a, b)
      }
    } while (++i)
  }

  compareBuild (other) {
    if (!(other instanceof SemVer)) {
      other = new SemVer(other, this.options)
    }

    let i = 0
    do {
      const a = this.build[i]
      const b = other.build[i]
      debug('build compare', i, a, b)
      if (a === undefined && b === undefined) {
        return 0
      } else if (b === undefined) {
        return 1
      } else if (a === undefined) {
        return -1
      } else if (a === b) {
        continue
      } else {
        return compareIdentifiers(a, b)
      }
    } while (++i)
  }

  // preminor will bump the version up to the next minor release, and immediately
  // down to pre-release. premajor and prepatch work the same way.
  inc (release, identifier, identifierBase) {
    if (release.startsWith('pre')) {
      if (!identifier && identifierBase === false) {
        throw new Error('invalid increment argument: identifier is empty')
      }
      // Avoid an invalid semver results
      if (identifier) {
        const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])
        if (!match || match[1] !== identifier) {
          throw new Error(`invalid identifier: ${identifier}`)
        }
      }
    }

    switch (release) {
      case 'premajor':
        this.prerelease.length = 0
        this.patch = 0
        this.minor = 0
        this.major++
        this.inc('pre', identifier, identifierBase)
        break
      case 'preminor':
        this.prerelease.length = 0
        this.patch = 0
        this.minor++
        this.inc('pre', identifier, identifierBase)
        break
      case 'prepatch':
        // If this is already a prerelease, it will bump to the next version
        // drop any prereleases that might already exist, since they are not
        // relevant at this point.
        this.prerelease.length = 0
        this.inc('patch', identifier, identifierBase)
        this.inc('pre', identifier, identifierBase)
        break
      // If the input is a non-prerelease version, this acts the same as
      // prepatch.
      case 'prerelease':
        if (this.prerelease.length === 0) {
          this.inc('patch', identifier, identifierBase)
        }
        this.inc('pre', identifier, identifierBase)
        break
      case 'release':
        if (this.prerelease.length === 0) {
          throw new Error(`version ${this.raw} is not a prerelease`)
        }
        this.prerelease.length = 0
        break

      case 'major':
        // If this is a pre-major version, bump up to the same major version.
        // Otherwise increment major.
        // 1.0.0-5 bumps to 1.0.0
        // 1.1.0 bumps to 2.0.0
        if (
          this.minor !== 0 ||
          this.patch !== 0 ||
          this.prerelease.length === 0
        ) {
          this.major++
        }
        this.minor = 0
        this.patch = 0
        this.prerelease = []
        break
      case 'minor':
        // If this is a pre-minor version, bump up to the same minor version.
        // Otherwise increment minor.
        // 1.2.0-5 bumps to 1.2.0
        // 1.2.1 bumps to 1.3.0
        if (this.patch !== 0 || this.prerelease.length === 0) {
          this.minor++
        }
        this.patch = 0
        this.prerelease = []
        break
      case 'patch':
        // If this is not a pre-release version, it will increment the patch.
        // If it is a pre-release it will bump up to the same patch version.
        // 1.2.0-5 patches to 1.2.0
        // 1.2.0 patches to 1.2.1
        if (this.prerelease.length === 0) {
          this.patch++
        }
        this.prerelease = []
        break
      // This probably shouldn't be used publicly.
      // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.
      case 'pre': {
        const base = Number(identifierBase) ? 1 : 0

        if (this.prerelease.length === 0) {
          this.prerelease = [base]
        } else {
          let i = this.prerelease.length
          while (--i >= 0) {
            if (typeof this.prerelease[i] === 'number') {
              this.prerelease[i]++
              i = -2
            }
          }
          if (i === -1) {
            // didn't increment anything
            if (identifier === this.prerelease.join('.') && identifierBase === false) {
              throw new Error('invalid increment argument: identifier already exists')
            }
            this.prerelease.push(base)
          }
        }
        if (identifier) {
          // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
          // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
          let prerelease = [identifier, base]
          if (identifierBase === false) {
            prerelease = [identifier]
          }
          if (compareIdentifiers(this.prerelease[0], identifier) === 0) {
            if (isNaN(this.prerelease[1])) {
              this.prerelease = prerelease
            }
          } else {
            this.prerelease = prerelease
          }
        }
        break
      }
      default:
        throw new Error(`invalid increment argument: ${release}`)
    }
    this.raw = this.format()
    if (this.build.length) {
      this.raw += `+${this.build.join('.')}`
    }
    return this
  }
}

module.exports = SemVer
#!/usr/bin/env node
// Standalone semver comparison program.
// Exits successfully and prints matching version(s) if
// any supplied version is valid and passes all tests.

'use strict'

const argv = process.argv.slice(2)

let versions = []

const range = []

let inc = null

const version = require('../package.json').version

let loose = false

let includePrerelease = false

let coerce = false

let rtl = false

let identifier

let identifierBase

const semver = require('../')
const parseOptions = require('../internal/parse-options')

let reverse = false

let options = {}

const main = () => {
  if (!argv.length) {
    return help()
  }
  while (argv.length) {
    let a = argv.shift()
    const indexOfEqualSign = a.indexOf('=')
    if (indexOfEqualSign !== -1) {
      const value = a.slice(indexOfEqualSign + 1)
      a = a.slice(0, indexOfEqualSign)
      argv.unshift(value)
    }
    switch (a) {
      case '-rv': case '-rev': case '--rev': case '--reverse':
        reverse = true
        break
      case '-l': case '--loose':
        loose = true
        break
      case '-p': case '--include-prerelease':
        includePrerelease = true
        break
      case '-v': case '--version':
        versions.push(argv.shift())
        break
      case '-i': case '--inc': case '--increment':
        switch (argv[0]) {
          case 'major': case 'minor': case 'patch': case 'prerelease':
          case 'premajor': case 'preminor': case 'prepatch':
          case 'release':
            inc = argv.shift()
            break
          default:
            inc = 'patch'
            break
        }
        break
      case '--preid':
        identifier = argv.shift()
        break
      case '-r': case '--range':
        range.push(argv.shift())
        break
      case '-n':
        identifierBase = argv.shift()
        if (identifierBase === 'false') {
          identifierBase = false
        }
        break
      case '-c': case '--coerce':
        coerce = true
        break
      case '--rtl':
        rtl = true
        break
      case '--ltr':
        rtl = false
        break
      case '-h': case '--help': case '-?':
        return help()
      default:
        versions.push(a)
        break
    }
  }

  options = parseOptions({ loose, includePrerelease, rtl })

  versions = versions.map((v) => {
    return coerce ? (semver.coerce(v, options) || { version: v }).version : v
  }).filter((v) => {
    return semver.valid(v)
  })
  if (!versions.length) {
    return fail()
  }
  if (inc && (versions.length !== 1 || range.length)) {
    return failInc()
  }

  for (let i = 0, l = range.length; i < l; i++) {
    versions = versions.filter((v) => {
      return semver.satisfies(v, range[i], options)
    })
    if (!versions.length) {
      return fail()
    }
  }
  versions
    .sort((a, b) => semver[reverse ? 'rcompare' : 'compare'](a, b, options))
    .map(v => semver.clean(v, options))
    .map(v => inc ? semver.inc(v, inc, options, identifier, identifierBase) : v)
    .forEach(v => console.log(v))
}

const failInc = () => {
  console.error('--inc can only be used on a single version with no range')
  fail()
}

const fail = () => process.exit(1)

const help = () => console.log(
`SemVer ${version}

A JavaScript implementation of the https://semver.org/ specification
Copyright Isaac Z. Schlueter

Usage: semver [options] <version> [<version> [...]]
Prints valid versions sorted by SemVer precedence

Options:
-r --range <range>
        Print versions that match the specified range.

-i --increment [<level>]
        Increment a version by the specified level.  Level can
        be one of: major, minor, patch, premajor, preminor,
        prepatch, prerelease, or release.  Default level is 'patch'.
        Only one version may be specified.

--preid <identifier>
        Identifier to be used to prefix premajor, preminor,
        prepatch or prerelease version increments.

-l --loose
        Interpret versions and ranges loosely

-p --include-prerelease
        Always include prerelease versions in range matching

-c --coerce
        Coerce a string into SemVer if possible
        (does not imply --loose)

--rtl
        Coerce version strings right to left

--ltr
        Coerce version strings left to right (default)

-n <base>
        Base number to be used for the prerelease identifier.
        Can be either 0 or 1, or false to omit the number altogether.
        Defaults to 0.

Program exits successfully if any valid version satisfies
all supplied ranges, and prints all satisfying versions.

If no satisfying versions are found, then exits failure.

Versions are printed in ascending order, so supplying
multiple versions to the utility will just sort them.`)

main()
'use strict';
const shebangRegex = require('shebang-regex');

module.exports = (string = '') => {
	const match = string.match(shebangRegex);

	if (!match) {
		return null;
	}

	const [path, argument] = match[0].replace(/#! ?/, '').split(' ');
	const binary = path.split('/').pop();

	if (binary === 'env') {
		return argument;
	}

	return argument ? `${binary} ${argument}` : binary;
};
MIT License

Copyright (c) Kevin Mårtensson <kevinmartensson@gmail.com> (github.com/kevva)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "shebang-command",
  "version": "2.0.0",
  "description": "Get the command from a shebang",
  "license": "MIT",
  "repository": "kevva/shebang-command",
  "author": {
    "name": "Kevin Mårtensson",
    "email": "kevinmartensson@gmail.com",
    "url": "github.com/kevva"
  },
  "engines": {
    "node": ">=8"
  },
  "files": [
    "index.js"
  ],
  "dependencies": {
    "shebang-regex": "^3.0.0"
  },
  "devDependencies": {
    "ava": "^2.3.0",
    "xo": "^0.24.0"
  }
}'use strict';
module.exports = /^#!(.*)/;
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "shebang-regex",
  "version": "3.0.0",
  "description": "Regular expression for matching a shebang line",
  "license": "MIT",
  "repository": "sindresorhus/shebang-regex",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "sindresorhus.com"
  },
  "engines": {
    "node": ">=8"
  },
  "files": [
    "index.js",
    "index.d.ts"
  ],
  "devDependencies": {
    "ava": "^1.4.1",
    "tsd": "^0.7.2",
    "xo": "^0.24.0"
  }
}The ISC License

Copyright (c) 2015, Contributors

Permission to use, copy, modify, and/or distribute this software
for any purpose with or without fee is hereby granted, provided
that the above copyright notice and this permission notice
appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE
LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
// Note: since nyc uses this module to output coverage, any lines
// that are in the direct sync flow of nyc's outputCoverage are
// ignored, since we can never get coverage for them.
// grab a reference to node's real process object right away
var process = global.process

const processOk = function (process) {
  return process &&
    typeof process === 'object' &&
    typeof process.removeListener === 'function' &&
    typeof process.emit === 'function' &&
    typeof process.reallyExit === 'function' &&
    typeof process.listeners === 'function' &&
    typeof process.kill === 'function' &&
    typeof process.pid === 'number' &&
    typeof process.on === 'function'
}

// some kind of non-node environment, just no-op
/* istanbul ignore if */
if (!processOk(process)) {
  module.exports = function () {
    return function () {}
  }
} else {
  var assert = require('assert')
  var signals = require('./signals.js')
  var isWin = /^win/i.test(process.platform)

  var EE = require('events')
  /* istanbul ignore if */
  if (typeof EE !== 'function') {
    EE = EE.EventEmitter
  }

  var emitter
  if (process.__signal_exit_emitter__) {
    emitter = process.__signal_exit_emitter__
  } else {
    emitter = process.__signal_exit_emitter__ = new EE()
    emitter.count = 0
    emitter.emitted = {}
  }

  // Because this emitter is a global, we have to check to see if a
  // previous version of this library failed to enable infinite listeners.
  // I know what you're about to say.  But literally everything about
  // signal-exit is a compromise with evil.  Get used to it.
  if (!emitter.infinite) {
    emitter.setMaxListeners(Infinity)
    emitter.infinite = true
  }

  module.exports = function (cb, opts) {
    /* istanbul ignore if */
    if (!processOk(global.process)) {
      return function () {}
    }
    assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler')

    if (loaded === false) {
      load()
    }

    var ev = 'exit'
    if (opts && opts.alwaysLast) {
      ev = 'afterexit'
    }

    var remove = function () {
      emitter.removeListener(ev, cb)
      if (emitter.listeners('exit').length === 0 &&
          emitter.listeners('afterexit').length === 0) {
        unload()
      }
    }
    emitter.on(ev, cb)

    return remove
  }

  var unload = function unload () {
    if (!loaded || !processOk(global.process)) {
      return
    }
    loaded = false

    signals.forEach(function (sig) {
      try {
        process.removeListener(sig, sigListeners[sig])
      } catch (er) {}
    })
    process.emit = originalProcessEmit
    process.reallyExit = originalProcessReallyExit
    emitter.count -= 1
  }
  module.exports.unload = unload

  var emit = function emit (event, code, signal) {
    /* istanbul ignore if */
    if (emitter.emitted[event]) {
      return
    }
    emitter.emitted[event] = true
    emitter.emit(event, code, signal)
  }

  // { <signal>: <listener fn>, ... }
  var sigListeners = {}
  signals.forEach(function (sig) {
    sigListeners[sig] = function listener () {
      /* istanbul ignore if */
      if (!processOk(global.process)) {
        return
      }
      // If there are no other listeners, an exit is coming!
      // Simplest way: remove us and then re-send the signal.
      // We know that this will kill the process, so we can
      // safely emit now.
      var listeners = process.listeners(sig)
      if (listeners.length === emitter.count) {
        unload()
        emit('exit', null, sig)
        /* istanbul ignore next */
        emit('afterexit', null, sig)
        /* istanbul ignore next */
        if (isWin && sig === 'SIGHUP') {
          // "SIGHUP" throws an `ENOSYS` error on Windows,
          // so use a supported signal instead
          sig = 'SIGINT'
        }
        /* istanbul ignore next */
        process.kill(process.pid, sig)
      }
    }
  })

  module.exports.signals = function () {
    return signals
  }

  var loaded = false

  var load = function load () {
    if (loaded || !processOk(global.process)) {
      return
    }
    loaded = true

    // This is the number of onSignalExit's that are in play.
    // It's important so that we can count the correct number of
    // listeners on signals, and don't wait for the other one to
    // handle it instead of us.
    emitter.count += 1

    signals = signals.filter(function (sig) {
      try {
        process.on(sig, sigListeners[sig])
        return true
      } catch (er) {
        return false
      }
    })

    process.emit = processEmit
    process.reallyExit = processReallyExit
  }
  module.exports.load = load

  var originalProcessReallyExit = process.reallyExit
  var processReallyExit = function processReallyExit (code) {
    /* istanbul ignore if */
    if (!processOk(global.process)) {
      return
    }
    process.exitCode = code || /* istanbul ignore next */ 0
    emit('exit', process.exitCode, null)
    /* istanbul ignore next */
    emit('afterexit', process.exitCode, null)
    /* istanbul ignore next */
    originalProcessReallyExit.call(process, process.exitCode)
  }

  var originalProcessEmit = process.emit
  var processEmit = function processEmit (ev, arg) {
    if (ev === 'exit' && processOk(global.process)) {
      /* istanbul ignore else */
      if (arg !== undefined) {
        process.exitCode = arg
      }
      var ret = originalProcessEmit.apply(this, arguments)
      /* istanbul ignore next */
      emit('exit', process.exitCode, null)
      /* istanbul ignore next */
      emit('afterexit', process.exitCode, null)
      /* istanbul ignore next */
      return ret
    } else {
      return originalProcessEmit.apply(this, arguments)
    }
  }
}
{
  "name": "signal-exit",
  "version": "3.0.7",
  "description": "when you want to fire an event no matter how a process exits.",
  "main": "index.js",
  "files": [
    "index.js",
    "signals.js"
  ],
  "repository": {
    "type": "git",
    "url": "https://github.com/tapjs/signal-exit.git"
  },
  "author": "Ben Coe <ben@npmjs.com>",
  "license": "ISC",
  "homepage": "https://github.com/tapjs/signal-exit",
  "devDependencies": {
    "chai": "^3.5.0",
    "coveralls": "^3.1.1",
    "nyc": "^15.1.0",
    "standard-version": "^9.3.1",
    "tap": "^15.1.1"
  }
}// This is not the set of all possible signals.
//
// It IS, however, the set of all signals that trigger
// an exit on either Linux or BSD systems.  Linux is a
// superset of the signal names supported on BSD, and
// the unknown signals just fail to register, so we can
// catch that easily enough.
//
// Don't bother with SIGKILL.  It's uncatchable, which
// means that we can't fire any callbacks anyway.
//
// If a user does happen to register a handler on a non-
// fatal signal like SIGWINCH or something, and then
// exit, it'll end up firing `process.emit('exit')`, so
// the handler will be fired anyway.
//
// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised
// artificially, inherently leave the process in a
// state from which it is not safe to try and enter JS
// listeners.
module.exports = [
  'SIGABRT',
  'SIGALRM',
  'SIGHUP',
  'SIGINT',
  'SIGTERM'
]

if (process.platform !== 'win32') {
  module.exports.push(
    'SIGVTALRM',
    'SIGXCPU',
    'SIGXFSZ',
    'SIGUSR2',
    'SIGTRAP',
    'SIGSYS',
    'SIGQUIT',
    'SIGIOT'
    // should detect profiler and enable/disable accordingly.
    // see #21
    // 'SIGPROF'
  )
}

if (process.platform === 'linux') {
  module.exports.push(
    'SIGIO',
    'SIGPOLL',
    'SIGPWR',
    'SIGSTKFLT',
    'SIGUNUSED'
  )
}
'use strict';
module.exports = path => {
	const isExtendedLengthPath = /^\\\\\?\\/.test(path);
	const hasNonAscii = /[^\u0000-\u0080]+/.test(path); // eslint-disable-line no-control-regex

	if (isExtendedLengthPath || hasNonAscii) {
		return path;
	}

	return path.replace(/\\/g, '/');
};
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "slash",
  "version": "3.0.0",
  "description": "Convert Windows backslash paths to slash paths",
  "license": "MIT",
  "repository": "sindresorhus/slash",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "sindresorhus.com"
  },
  "engines": {
    "node": ">=8"
  },
  "files": [
    "index.js",
    "index.d.ts"
  ],
  "devDependencies": {
    "ava": "^1.4.1",
    "tsd": "^0.7.2",
    "xo": "^0.24.0"
  }
}'use strict';

module.exports = input => {
	const LF = typeof input === 'string' ? '\n' : '\n'.charCodeAt();
	const CR = typeof input === 'string' ? '\r' : '\r'.charCodeAt();

	if (input[input.length - 1] === LF) {
		input = input.slice(0, input.length - 1);
	}

	if (input[input.length - 1] === CR) {
		input = input.slice(0, input.length - 1);
	}

	return input;
};
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "strip-final-newline",
  "version": "2.0.0",
  "description": "Strip the final newline character from a string/buffer",
  "license": "MIT",
  "repository": "sindresorhus/strip-final-newline",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "sindresorhus.com"
  },
  "engines": {
    "node": ">=6"
  },
  "files": [
    "index.js"
  ],
  "devDependencies": {
    "ava": "^0.25.0",
    "xo": "^0.23.0"
  }
}MIT License

Copyright (c) 2020 Zurab Benashvili (binier) <zura.bena@gmail.com>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
{
  "name": "tiny-typed-emitter",
  "version": "2.1.0",
  "description": "Fully type-checked EventEmitter",
  "main": "lib/index",
  "repository": "https://github.com/binier/tiny-typed-emitter.git",
  "author": "Zurab Benashvili <zura.benashvili@gmail.com>",
  "license": "MIT",
  "files": [
    "lib/*"
  ],
  "devDependencies": {
    "@types/node": "^13.13.4",
    "typescript": "^3.8.3"
  }
}"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TypedEmitter = require("events").EventEmitter;
The MIT License (MIT)

Copyright (c) 2015-present, Jon Schlinkert.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
/*!
 * to-regex-range <https://github.com/micromatch/to-regex-range>
 *
 * Copyright (c) 2015-present, Jon Schlinkert.
 * Released under the MIT License.
 */

'use strict';

const isNumber = require('is-number');

const toRegexRange = (min, max, options) => {
  if (isNumber(min) === false) {
    throw new TypeError('toRegexRange: expected the first argument to be a number');
  }

  if (max === void 0 || min === max) {
    return String(min);
  }

  if (isNumber(max) === false) {
    throw new TypeError('toRegexRange: expected the second argument to be a number.');
  }

  let opts = { relaxZeros: true, ...options };
  if (typeof opts.strictZeros === 'boolean') {
    opts.relaxZeros = opts.strictZeros === false;
  }

  let relax = String(opts.relaxZeros);
  let shorthand = String(opts.shorthand);
  let capture = String(opts.capture);
  let wrap = String(opts.wrap);
  let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap;

  if (toRegexRange.cache.hasOwnProperty(cacheKey)) {
    return toRegexRange.cache[cacheKey].result;
  }

  let a = Math.min(min, max);
  let b = Math.max(min, max);

  if (Math.abs(a - b) === 1) {
    let result = min + '|' + max;
    if (opts.capture) {
      return `(${result})`;
    }
    if (opts.wrap === false) {
      return result;
    }
    return `(?:${result})`;
  }

  let isPadded = hasPadding(min) || hasPadding(max);
  let state = { min, max, a, b };
  let positives = [];
  let negatives = [];

  if (isPadded) {
    state.isPadded = isPadded;
    state.maxLen = String(state.max).length;
  }

  if (a < 0) {
    let newMin = b < 0 ? Math.abs(b) : 1;
    negatives = splitToPatterns(newMin, Math.abs(a), state, opts);
    a = state.a = 0;
  }

  if (b >= 0) {
    positives = splitToPatterns(a, b, state, opts);
  }

  state.negatives = negatives;
  state.positives = positives;
  state.result = collatePatterns(negatives, positives, opts);

  if (opts.capture === true) {
    state.result = `(${state.result})`;
  } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) {
    state.result = `(?:${state.result})`;
  }

  toRegexRange.cache[cacheKey] = state;
  return state.result;
};

function collatePatterns(neg, pos, options) {
  let onlyNegative = filterPatterns(neg, pos, '-', false, options) || [];
  let onlyPositive = filterPatterns(pos, neg, '', false, options) || [];
  let intersected = filterPatterns(neg, pos, '-?', true, options) || [];
  let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive);
  return subpatterns.join('|');
}

function splitToRanges(min, max) {
  let nines = 1;
  let zeros = 1;

  let stop = countNines(min, nines);
  let stops = new Set([max]);

  while (min <= stop && stop <= max) {
    stops.add(stop);
    nines += 1;
    stop = countNines(min, nines);
  }

  stop = countZeros(max + 1, zeros) - 1;

  while (min < stop && stop <= max) {
    stops.add(stop);
    zeros += 1;
    stop = countZeros(max + 1, zeros) - 1;
  }

  stops = [...stops];
  stops.sort(compare);
  return stops;
}

/**
 * Convert a range to a regex pattern
 * @param {Number} `start`
 * @param {Number} `stop`
 * @return {String}
 */

function rangeToPattern(start, stop, options) {
  if (start === stop) {
    return { pattern: start, count: [], digits: 0 };
  }

  let zipped = zip(start, stop);
  let digits = zipped.length;
  let pattern = '';
  let count = 0;

  for (let i = 0; i < digits; i++) {
    let [startDigit, stopDigit] = zipped[i];

    if (startDigit === stopDigit) {
      pattern += startDigit;

    } else if (startDigit !== '0' || stopDigit !== '9') {
      pattern += toCharacterClass(startDigit, stopDigit, options);

    } else {
      count++;
    }
  }

  if (count) {
    pattern += options.shorthand === true ? '\\d' : '[0-9]';
  }

  return { pattern, count: [count], digits };
}

function splitToPatterns(min, max, tok, options) {
  let ranges = splitToRanges(min, max);
  let tokens = [];
  let start = min;
  let prev;

  for (let i = 0; i < ranges.length; i++) {
    let max = ranges[i];
    let obj = rangeToPattern(String(start), String(max), options);
    let zeros = '';

    if (!tok.isPadded && prev && prev.pattern === obj.pattern) {
      if (prev.count.length > 1) {
        prev.count.pop();
      }

      prev.count.push(obj.count[0]);
      prev.string = prev.pattern + toQuantifier(prev.count);
      start = max + 1;
      continue;
    }

    if (tok.isPadded) {
      zeros = padZeros(max, tok, options);
    }

    obj.string = zeros + obj.pattern + toQuantifier(obj.count);
    tokens.push(obj);
    start = max + 1;
    prev = obj;
  }

  return tokens;
}

function filterPatterns(arr, comparison, prefix, intersection, options) {
  let result = [];

  for (let ele of arr) {
    let { string } = ele;

    // only push if _both_ are negative...
    if (!intersection && !contains(comparison, 'string', string)) {
      result.push(prefix + string);
    }

    // or _both_ are positive
    if (intersection && contains(comparison, 'string', string)) {
      result.push(prefix + string);
    }
  }
  return result;
}

/**
 * Zip strings
 */

function zip(a, b) {
  let arr = [];
  for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]);
  return arr;
}

function compare(a, b) {
  return a > b ? 1 : b > a ? -1 : 0;
}

function contains(arr, key, val) {
  return arr.some(ele => ele[key] === val);
}

function countNines(min, len) {
  return Number(String(min).slice(0, -len) + '9'.repeat(len));
}

function countZeros(integer, zeros) {
  return integer - (integer % Math.pow(10, zeros));
}

function toQuantifier(digits) {
  let [start = 0, stop = ''] = digits;
  if (stop || start > 1) {
    return `{${start + (stop ? ',' + stop : '')}}`;
  }
  return '';
}

function toCharacterClass(a, b, options) {
  return `[${a}${(b - a === 1) ? '' : '-'}${b}]`;
}

function hasPadding(str) {
  return /^-?(0+)\d/.test(str);
}

function padZeros(value, tok, options) {
  if (!tok.isPadded) {
    return value;
  }

  let diff = Math.abs(tok.maxLen - String(value).length);
  let relax = options.relaxZeros !== false;

  switch (diff) {
    case 0:
      return '';
    case 1:
      return relax ? '0?' : '0';
    case 2:
      return relax ? '0{0,2}' : '00';
    default: {
      return relax ? `0{0,${diff}}` : `0{${diff}}`;
    }
  }
}

/**
 * Cache
 */

toRegexRange.cache = {};
toRegexRange.clearCache = () => (toRegexRange.cache = {});

/**
 * Expose `toRegexRange`
 */

module.exports = toRegexRange;
{
  "name": "to-regex-range",
  "description": "Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions.",
  "version": "5.0.1",
  "homepage": "https://github.com/micromatch/to-regex-range",
  "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
  "repository": "micromatch/to-regex-range",
  "license": "MIT",
  "files": [
    "index.js"
  ],
  "main": "index.js",
  "engines": {
    "node": ">=8.0"
  },
  "dependencies": {
    "is-number": "^7.0.0"
  },
  "devDependencies": {
    "fill-range": "^6.0.0",
    "gulp-format-md": "^2.0.0",
    "mocha": "^6.0.2",
    "text-table": "^0.2.0",
    "time-diff": "^0.3.1"
  },
  "verb": {
    "layout": "default",
    "toc": false,
    "tasks": [
      "readme"
    ],
    "plugins": [
      "gulp-format-md"
    ],
    "lint": {
      "reflinks": true
    },
    "helpers": {
      "examples": {
        "displayName": "examples"
      }
    },
    "related": {
      "list": [
        "expand-range",
        "fill-range",
        "micromatch",
        "repeat-element",
        "repeat-string"
      ]
    }
  }
}(The MIT License)

Copyright (c) 2017, Ryan Zimmerman <opensrc@ryanzim.com>

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the 'Software'), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
'use strict'

exports.fromCallback = function (fn) {
  return Object.defineProperty(function () {
    if (typeof arguments[arguments.length - 1] === 'function') fn.apply(this, arguments)
    else {
      return new Promise((resolve, reject) => {
        arguments[arguments.length] = (err, res) => {
          if (err) return reject(err)
          resolve(res)
        }
        arguments.length++
        fn.apply(this, arguments)
      })
    }
  }, 'name', { value: fn.name })
}

exports.fromPromise = function (fn) {
  return Object.defineProperty(function () {
    const cb = arguments[arguments.length - 1]
    if (typeof cb !== 'function') return fn.apply(this, arguments)
    else fn.apply(this, arguments).then(r => cb(null, r), cb)
  }, 'name', { value: fn.name })
}
{
  "name": "universalify",
  "version": "0.1.2",
  "description": "Make a callback- or promise-based function support both promises and callbacks.",
  "homepage": "https://github.com/RyanZim/universalify#readme",
  "license": "MIT",
  "author": "Ryan Zimmerman <opensrc@ryanzim.com>",
  "files": [
    "index.js"
  ],
  "repository": {
    "type": "git",
    "url": "git+https://github.com/RyanZim/universalify.git"
  },
  "devDependencies": {
    "colortape": "^0.1.2",
    "coveralls": "^3.0.1",
    "nyc": "^10.2.0",
    "standard": "^10.0.1",
    "tape": "^4.6.3"
  },
  "engines": {
    "node": ">= 4.0.0"
  }
}# Contributing

Please feel free to file GitHub Issues or propose Pull Requests. We're always happy to discuss improvements to this library!

## Testing

```shell
npm test
```

## Releasing

Releases are supposed to be done from master, version bumping is automated through [`standard-version`](https://github.com/conventional-changelog/standard-version):

```shell
npm run release -- --dry-run  # verify output manually
npm run release               # follow the instructions from the output of this command
```
The MIT License (MIT)

Copyright (c) 2010-2020 Robert Kieffer and other contributors

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "uuid",
  "version": "8.3.2",
  "description": "RFC4122 (v1, v4, and v5) UUIDs",
  "commitlint": {
    "extends": [
      "@commitlint/config-conventional"
    ]
  },
  "license": "MIT",
  "bin": {
    "uuid": "./dist/bin/uuid"
  },
  "sideEffects": false,
  "main": "./dist/index.js",
  "exports": {
    ".": {
      "node": {
        "module": "./dist/esm-node/index.js",
        "require": "./dist/index.js",
        "import": "./wrapper.mjs"
      },
      "default": "./dist/esm-browser/index.js"
    },
    "./package.json": "./package.json"
  },
  "module": "./dist/esm-node/index.js",
  "browser": {
    "./dist/md5.js": "./dist/md5-browser.js",
    "./dist/rng.js": "./dist/rng-browser.js",
    "./dist/sha1.js": "./dist/sha1-browser.js",
    "./dist/esm-node/index.js": "./dist/esm-browser/index.js"
  },
  "files": [
    "CHANGELOG.md",
    "CONTRIBUTING.md",
    "LICENSE.md",
    "README.md",
    "dist",
    "wrapper.mjs"
  ],
  "devDependencies": {
    "@babel/cli": "7.11.6",
    "@babel/core": "7.11.6",
    "@babel/preset-env": "7.11.5",
    "@commitlint/cli": "11.0.0",
    "@commitlint/config-conventional": "11.0.0",
    "@rollup/plugin-node-resolve": "9.0.0",
    "babel-eslint": "10.1.0",
    "bundlewatch": "0.3.1",
    "eslint": "7.10.0",
    "eslint-config-prettier": "6.12.0",
    "eslint-config-standard": "14.1.1",
    "eslint-plugin-import": "2.22.1",
    "eslint-plugin-node": "11.1.0",
    "eslint-plugin-prettier": "3.1.4",
    "eslint-plugin-promise": "4.2.1",
    "eslint-plugin-standard": "4.0.1",
    "husky": "4.3.0",
    "jest": "25.5.4",
    "lint-staged": "10.4.0",
    "npm-run-all": "4.1.5",
    "optional-dev-dependency": "2.0.1",
    "prettier": "2.1.2",
    "random-seed": "0.3.0",
    "rollup": "2.28.2",
    "rollup-plugin-terser": "7.0.2",
    "runmd": "1.3.2",
    "standard-version": "9.0.0"
  },
  "optionalDevDependencies": {
    "@wdio/browserstack-service": "6.4.0",
    "@wdio/cli": "6.4.0",
    "@wdio/jasmine-framework": "6.4.0",
    "@wdio/local-runner": "6.4.0",
    "@wdio/spec-reporter": "6.4.0",
    "@wdio/static-server-service": "6.4.0",
    "@wdio/sync": "6.4.0"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/uuidjs/uuid.git"
  },
  "husky": {
    "hooks": {
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS",
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "*.{js,jsx,json,md}": [
      "prettier --write"
    ],
    "*.{js,jsx}": [
      "eslint --fix"
    ]
  },
  "standard-version": {
    "scripts": {
      "postchangelog": "prettier --write CHANGELOG.md"
    }
  }
}import uuid from './dist/index.js';
export const v1 = uuid.v1;
export const v3 = uuid.v3;
export const v4 = uuid.v4;
export const v5 = uuid.v5;
export const NIL = uuid.NIL;
export const version = uuid.version;
export const validate = uuid.validate;
export const stringify = uuid.stringify;
export const parse = uuid.parse;
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "v1", {
  enumerable: true,
  get: function () {
    return _v.default;
  }
});
Object.defineProperty(exports, "v3", {
  enumerable: true,
  get: function () {
    return _v2.default;
  }
});
Object.defineProperty(exports, "v4", {
  enumerable: true,
  get: function () {
    return _v3.default;
  }
});
Object.defineProperty(exports, "v5", {
  enumerable: true,
  get: function () {
    return _v4.default;
  }
});
Object.defineProperty(exports, "NIL", {
  enumerable: true,
  get: function () {
    return _nil.default;
  }
});
Object.defineProperty(exports, "version", {
  enumerable: true,
  get: function () {
    return _version.default;
  }
});
Object.defineProperty(exports, "validate", {
  enumerable: true,
  get: function () {
    return _validate.default;
  }
});
Object.defineProperty(exports, "stringify", {
  enumerable: true,
  get: function () {
    return _stringify.default;
  }
});
Object.defineProperty(exports, "parse", {
  enumerable: true,
  get: function () {
    return _parse.default;
  }
});

var _v = _interopRequireDefault(require("./v1.js"));

var _v2 = _interopRequireDefault(require("./v3.js"));

var _v3 = _interopRequireDefault(require("./v4.js"));

var _v4 = _interopRequireDefault(require("./v5.js"));

var _nil = _interopRequireDefault(require("./nil.js"));

var _version = _interopRequireDefault(require("./version.js"));

var _validate = _interopRequireDefault(require("./validate.js"));

var _stringify = _interopRequireDefault(require("./stringify.js"));

var _parse = _interopRequireDefault(require("./parse.js"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

/*
 * Browser-compatible JavaScript MD5
 *
 * Modification of JavaScript MD5
 * https://github.com/blueimp/JavaScript-MD5
 *
 * Copyright 2011, Sebastian Tschan
 * https://blueimp.net
 *
 * Licensed under the MIT license:
 * https://opensource.org/licenses/MIT
 *
 * Based on
 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
 * Digest Algorithm, as defined in RFC 1321.
 * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
 * Distributed under the BSD License
 * See http://pajhome.org.uk/crypt/md5 for more info.
 */
function md5(bytes) {
  if (typeof bytes === 'string') {
    const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape

    bytes = new Uint8Array(msg.length);

    for (let i = 0; i < msg.length; ++i) {
      bytes[i] = msg.charCodeAt(i);
    }
  }

  return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));
}
/*
 * Convert an array of little-endian words to an array of bytes
 */


function md5ToHexEncodedArray(input) {
  const output = [];
  const length32 = input.length * 32;
  const hexTab = '0123456789abcdef';

  for (let i = 0; i < length32; i += 8) {
    const x = input[i >> 5] >>> i % 32 & 0xff;
    const hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);
    output.push(hex);
  }

  return output;
}
/**
 * Calculate output length with padding and bit length
 */


function getOutputLength(inputLength8) {
  return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;
}
/*
 * Calculate the MD5 of an array of little-endian words, and a bit length.
 */


function wordsToMd5(x, len) {
  /* append padding */
  x[len >> 5] |= 0x80 << len % 32;
  x[getOutputLength(len) - 1] = len;
  let a = 1732584193;
  let b = -271733879;
  let c = -1732584194;
  let d = 271733878;

  for (let i = 0; i < x.length; i += 16) {
    const olda = a;
    const oldb = b;
    const oldc = c;
    const oldd = d;
    a = md5ff(a, b, c, d, x[i], 7, -680876936);
    d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
    c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
    b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
    a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
    d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
    c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
    b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
    a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
    d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
    c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
    b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
    a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
    d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
    c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
    b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
    a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
    d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
    c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
    b = md5gg(b, c, d, a, x[i], 20, -373897302);
    a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
    d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
    c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
    b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
    a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
    d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
    c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
    b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
    a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
    d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
    c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
    b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
    a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
    d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
    c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
    b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
    a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
    d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
    c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
    b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
    a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
    d = md5hh(d, a, b, c, x[i], 11, -358537222);
    c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
    b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
    a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
    d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
    c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
    b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
    a = md5ii(a, b, c, d, x[i], 6, -198630844);
    d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
    c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
    b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
    a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
    d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
    c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
    b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
    a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
    d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
    c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
    b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
    a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
    d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
    c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
    b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
    a = safeAdd(a, olda);
    b = safeAdd(b, oldb);
    c = safeAdd(c, oldc);
    d = safeAdd(d, oldd);
  }

  return [a, b, c, d];
}
/*
 * Convert an array bytes to an array of little-endian words
 * Characters >255 have their high-byte silently ignored.
 */


function bytesToWords(input) {
  if (input.length === 0) {
    return [];
  }

  const length8 = input.length * 8;
  const output = new Uint32Array(getOutputLength(length8));

  for (let i = 0; i < length8; i += 8) {
    output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;
  }

  return output;
}
/*
 * Add integers, wrapping at 2^32. This uses 16-bit operations internally
 * to work around bugs in some JS interpreters.
 */


function safeAdd(x, y) {
  const lsw = (x & 0xffff) + (y & 0xffff);
  const msw = (x >> 16) + (y >> 16) + (lsw >> 16);
  return msw << 16 | lsw & 0xffff;
}
/*
 * Bitwise rotate a 32-bit number to the left.
 */


function bitRotateLeft(num, cnt) {
  return num << cnt | num >>> 32 - cnt;
}
/*
 * These functions implement the four basic operations the algorithm uses.
 */


function md5cmn(q, a, b, x, s, t) {
  return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
}

function md5ff(a, b, c, d, x, s, t) {
  return md5cmn(b & c | ~b & d, a, b, x, s, t);
}

function md5gg(a, b, c, d, x, s, t) {
  return md5cmn(b & d | c & ~d, a, b, x, s, t);
}

function md5hh(a, b, c, d, x, s, t) {
  return md5cmn(b ^ c ^ d, a, b, x, s, t);
}

function md5ii(a, b, c, d, x, s, t) {
  return md5cmn(c ^ (b | ~d), a, b, x, s, t);
}

var _default = md5;
exports.default = _default;"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _crypto = _interopRequireDefault(require("crypto"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function md5(bytes) {
  if (Array.isArray(bytes)) {
    bytes = Buffer.from(bytes);
  } else if (typeof bytes === 'string') {
    bytes = Buffer.from(bytes, 'utf8');
  }

  return _crypto.default.createHash('md5').update(bytes).digest();
}

var _default = md5;
exports.default = _default;"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;
var _default = '00000000-0000-0000-0000-000000000000';
exports.default = _default;"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _validate = _interopRequireDefault(require("./validate.js"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function parse(uuid) {
  if (!(0, _validate.default)(uuid)) {
    throw TypeError('Invalid UUID');
  }

  let v;
  const arr = new Uint8Array(16); // Parse ########-....-....-....-............

  arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
  arr[1] = v >>> 16 & 0xff;
  arr[2] = v >>> 8 & 0xff;
  arr[3] = v & 0xff; // Parse ........-####-....-....-............

  arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
  arr[5] = v & 0xff; // Parse ........-....-####-....-............

  arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
  arr[7] = v & 0xff; // Parse ........-....-....-####-............

  arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;
  arr[9] = v & 0xff; // Parse ........-....-....-....-############
  // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes)

  arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;
  arr[11] = v / 0x100000000 & 0xff;
  arr[12] = v >>> 24 & 0xff;
  arr[13] = v >>> 16 & 0xff;
  arr[14] = v >>> 8 & 0xff;
  arr[15] = v & 0xff;
  return arr;
}

var _default = parse;
exports.default = _default;"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;
var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
exports.default = _default;"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = rng;
// Unique ID creation requires a high quality random # generator. In the browser we therefore
// require the crypto API and do not support built-in fallback to lower quality random number
// generators (like Math.random()).
let getRandomValues;
const rnds8 = new Uint8Array(16);

function rng() {
  // lazy load so that environments that need to polyfill have a chance to do so
  if (!getRandomValues) {
    // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. Also,
    // find the complete implementation of crypto (msCrypto) on IE11.
    getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);

    if (!getRandomValues) {
      throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
    }
  }

  return getRandomValues(rnds8);
}"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = rng;

var _crypto = _interopRequireDefault(require("crypto"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate

let poolPtr = rnds8Pool.length;

function rng() {
  if (poolPtr > rnds8Pool.length - 16) {
    _crypto.default.randomFillSync(rnds8Pool);

    poolPtr = 0;
  }

  return rnds8Pool.slice(poolPtr, poolPtr += 16);
}"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

// Adapted from Chris Veness' SHA1 code at
// http://www.movable-type.co.uk/scripts/sha1.html
function f(s, x, y, z) {
  switch (s) {
    case 0:
      return x & y ^ ~x & z;

    case 1:
      return x ^ y ^ z;

    case 2:
      return x & y ^ x & z ^ y & z;

    case 3:
      return x ^ y ^ z;
  }
}

function ROTL(x, n) {
  return x << n | x >>> 32 - n;
}

function sha1(bytes) {
  const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];
  const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];

  if (typeof bytes === 'string') {
    const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape

    bytes = [];

    for (let i = 0; i < msg.length; ++i) {
      bytes.push(msg.charCodeAt(i));
    }
  } else if (!Array.isArray(bytes)) {
    // Convert Array-like to Array
    bytes = Array.prototype.slice.call(bytes);
  }

  bytes.push(0x80);
  const l = bytes.length / 4 + 2;
  const N = Math.ceil(l / 16);
  const M = new Array(N);

  for (let i = 0; i < N; ++i) {
    const arr = new Uint32Array(16);

    for (let j = 0; j < 16; ++j) {
      arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];
    }

    M[i] = arr;
  }

  M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);
  M[N - 1][14] = Math.floor(M[N - 1][14]);
  M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;

  for (let i = 0; i < N; ++i) {
    const W = new Uint32Array(80);

    for (let t = 0; t < 16; ++t) {
      W[t] = M[i][t];
    }

    for (let t = 16; t < 80; ++t) {
      W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);
    }

    let a = H[0];
    let b = H[1];
    let c = H[2];
    let d = H[3];
    let e = H[4];

    for (let t = 0; t < 80; ++t) {
      const s = Math.floor(t / 20);
      const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;
      e = d;
      d = c;
      c = ROTL(b, 30) >>> 0;
      b = a;
      a = T;
    }

    H[0] = H[0] + a >>> 0;
    H[1] = H[1] + b >>> 0;
    H[2] = H[2] + c >>> 0;
    H[3] = H[3] + d >>> 0;
    H[4] = H[4] + e >>> 0;
  }

  return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];
}

var _default = sha1;
exports.default = _default;"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _crypto = _interopRequireDefault(require("crypto"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function sha1(bytes) {
  if (Array.isArray(bytes)) {
    bytes = Buffer.from(bytes);
  } else if (typeof bytes === 'string') {
    bytes = Buffer.from(bytes, 'utf8');
  }

  return _crypto.default.createHash('sha1').update(bytes).digest();
}

var _default = sha1;
exports.default = _default;"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _validate = _interopRequireDefault(require("./validate.js"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/**
 * Convert array of 16 byte values to UUID string format of the form:
 * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
 */
const byteToHex = [];

for (let i = 0; i < 256; ++i) {
  byteToHex.push((i + 0x100).toString(16).substr(1));
}

function stringify(arr, offset = 0) {
  // Note: Be careful editing this code!  It's been tuned for performance
  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
  const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID.  If this throws, it's likely due to one
  // of the following:
  // - One or more input array values don't map to a hex octet (leading to
  // "undefined" in the uuid)
  // - Invalid input values for the RFC `version` or `variant` fields

  if (!(0, _validate.default)(uuid)) {
    throw TypeError('Stringified UUID is invalid');
  }

  return uuid;
}

var _default = stringify;
exports.default = _default;"use strict";

var _assert = _interopRequireDefault(require("assert"));

var _v = _interopRequireDefault(require("./v1.js"));

var _v2 = _interopRequireDefault(require("./v3.js"));

var _v3 = _interopRequireDefault(require("./v4.js"));

var _v4 = _interopRequireDefault(require("./v5.js"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function usage() {
  console.log('Usage:');
  console.log('  uuid');
  console.log('  uuid v1');
  console.log('  uuid v3 <name> <namespace uuid>');
  console.log('  uuid v4');
  console.log('  uuid v5 <name> <namespace uuid>');
  console.log('  uuid --help');
  console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC4122');
}

const args = process.argv.slice(2);

if (args.indexOf('--help') >= 0) {
  usage();
  process.exit(0);
}

const version = args.shift() || 'v4';

switch (version) {
  case 'v1':
    console.log((0, _v.default)());
    break;

  case 'v3':
    {
      const name = args.shift();
      let namespace = args.shift();
      (0, _assert.default)(name != null, 'v3 name not specified');
      (0, _assert.default)(namespace != null, 'v3 namespace not specified');

      if (namespace === 'URL') {
        namespace = _v2.default.URL;
      }

      if (namespace === 'DNS') {
        namespace = _v2.default.DNS;
      }

      console.log((0, _v2.default)(name, namespace));
      break;
    }

  case 'v4':
    console.log((0, _v3.default)());
    break;

  case 'v5':
    {
      const name = args.shift();
      let namespace = args.shift();
      (0, _assert.default)(name != null, 'v5 name not specified');
      (0, _assert.default)(namespace != null, 'v5 namespace not specified');

      if (namespace === 'URL') {
        namespace = _v4.default.URL;
      }

      if (namespace === 'DNS') {
        namespace = _v4.default.DNS;
      }

      console.log((0, _v4.default)(name, namespace));
      break;
    }

  default:
    usage();
    process.exit(1);
}"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _rng = _interopRequireDefault(require("./rng.js"));

var _stringify = _interopRequireDefault(require("./stringify.js"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

// **`v1()` - Generate time-based UUID**
//
// Inspired by https://github.com/LiosK/UUID.js
// and http://docs.python.org/library/uuid.html
let _nodeId;

let _clockseq; // Previous uuid creation time


let _lastMSecs = 0;
let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details

function v1(options, buf, offset) {
  let i = buf && offset || 0;
  const b = buf || new Array(16);
  options = options || {};
  let node = options.node || _nodeId;
  let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not
  // specified.  We do this lazily to minimize issues related to insufficient
  // system entropy.  See #189

  if (node == null || clockseq == null) {
    const seedBytes = options.random || (options.rng || _rng.default)();

    if (node == null) {
      // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
      node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];
    }

    if (clockseq == null) {
      // Per 4.2.2, randomize (14 bit) clockseq
      clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
    }
  } // UUID timestamps are 100 nano-second units since the Gregorian epoch,
  // (1582-10-15 00:00).  JSNumbers aren't precise enough for this, so
  // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
  // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.


  let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock
  // cycle to simulate higher resolution clock

  let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)

  const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression

  if (dt < 0 && options.clockseq === undefined) {
    clockseq = clockseq + 1 & 0x3fff;
  } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
  // time interval


  if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
    nsecs = 0;
  } // Per 4.2.1.2 Throw error if too many uuids are requested


  if (nsecs >= 10000) {
    throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
  }

  _lastMSecs = msecs;
  _lastNSecs = nsecs;
  _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch

  msecs += 12219292800000; // `time_low`

  const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
  b[i++] = tl >>> 24 & 0xff;
  b[i++] = tl >>> 16 & 0xff;
  b[i++] = tl >>> 8 & 0xff;
  b[i++] = tl & 0xff; // `time_mid`

  const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;
  b[i++] = tmh >>> 8 & 0xff;
  b[i++] = tmh & 0xff; // `time_high_and_version`

  b[i++] = tmh >>> 24 & 0xf | 0x10; // include version

  b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)

  b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`

  b[i++] = clockseq & 0xff; // `node`

  for (let n = 0; n < 6; ++n) {
    b[i + n] = node[n];
  }

  return buf || (0, _stringify.default)(b);
}

var _default = v1;
exports.default = _default;"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _v = _interopRequireDefault(require("./v35.js"));

var _md = _interopRequireDefault(require("./md5.js"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

const v3 = (0, _v.default)('v3', 0x30, _md.default);
var _default = v3;
exports.default = _default;"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = _default;
exports.URL = exports.DNS = void 0;

var _stringify = _interopRequireDefault(require("./stringify.js"));

var _parse = _interopRequireDefault(require("./parse.js"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function stringToBytes(str) {
  str = unescape(encodeURIComponent(str)); // UTF8 escape

  const bytes = [];

  for (let i = 0; i < str.length; ++i) {
    bytes.push(str.charCodeAt(i));
  }

  return bytes;
}

const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
exports.DNS = DNS;
const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
exports.URL = URL;

function _default(name, version, hashfunc) {
  function generateUUID(value, namespace, buf, offset) {
    if (typeof value === 'string') {
      value = stringToBytes(value);
    }

    if (typeof namespace === 'string') {
      namespace = (0, _parse.default)(namespace);
    }

    if (namespace.length !== 16) {
      throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');
    } // Compute hash of namespace and value, Per 4.3
    // Future: Use spread syntax when supported on all platforms, e.g. `bytes =
    // hashfunc([...namespace, ... value])`


    let bytes = new Uint8Array(16 + value.length);
    bytes.set(namespace);
    bytes.set(value, namespace.length);
    bytes = hashfunc(bytes);
    bytes[6] = bytes[6] & 0x0f | version;
    bytes[8] = bytes[8] & 0x3f | 0x80;

    if (buf) {
      offset = offset || 0;

      for (let i = 0; i < 16; ++i) {
        buf[offset + i] = bytes[i];
      }

      return buf;
    }

    return (0, _stringify.default)(bytes);
  } // Function#name is not settable on some platforms (#270)


  try {
    generateUUID.name = name; // eslint-disable-next-line no-empty
  } catch (err) {} // For CommonJS default export support


  generateUUID.DNS = DNS;
  generateUUID.URL = URL;
  return generateUUID;
}"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _rng = _interopRequireDefault(require("./rng.js"));

var _stringify = _interopRequireDefault(require("./stringify.js"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function v4(options, buf, offset) {
  options = options || {};

  const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`


  rnds[6] = rnds[6] & 0x0f | 0x40;
  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided

  if (buf) {
    offset = offset || 0;

    for (let i = 0; i < 16; ++i) {
      buf[offset + i] = rnds[i];
    }

    return buf;
  }

  return (0, _stringify.default)(rnds);
}

var _default = v4;
exports.default = _default;"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _v = _interopRequireDefault(require("./v35.js"));

var _sha = _interopRequireDefault(require("./sha1.js"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

const v5 = (0, _v.default)('v5', 0x50, _sha.default);
var _default = v5;
exports.default = _default;"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _regex = _interopRequireDefault(require("./regex.js"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function validate(uuid) {
  return typeof uuid === 'string' && _regex.default.test(uuid);
}

var _default = validate;
exports.default = _default;"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _validate = _interopRequireDefault(require("./validate.js"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function version(uuid) {
  if (!(0, _validate.default)(uuid)) {
    throw TypeError('Invalid UUID');
  }

  return parseInt(uuid.substr(14, 1), 16);
}

var _default = version;
exports.default = _default;!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((r="undefined"!=typeof globalThis?globalThis:r||self).uuid={})}(this,(function(r){"use strict";var e,n=new Uint8Array(16);function t(){if(!e&&!(e="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return e(n)}var o=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function a(r){return"string"==typeof r&&o.test(r)}for(var i,u,f=[],s=0;s<256;++s)f.push((s+256).toString(16).substr(1));function c(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=(f[r[e+0]]+f[r[e+1]]+f[r[e+2]]+f[r[e+3]]+"-"+f[r[e+4]]+f[r[e+5]]+"-"+f[r[e+6]]+f[r[e+7]]+"-"+f[r[e+8]]+f[r[e+9]]+"-"+f[r[e+10]]+f[r[e+11]]+f[r[e+12]]+f[r[e+13]]+f[r[e+14]]+f[r[e+15]]).toLowerCase();if(!a(n))throw TypeError("Stringified UUID is invalid");return n}var l=0,d=0;function v(r){if(!a(r))throw TypeError("Invalid UUID");var e,n=new Uint8Array(16);return n[0]=(e=parseInt(r.slice(0,8),16))>>>24,n[1]=e>>>16&255,n[2]=e>>>8&255,n[3]=255&e,n[4]=(e=parseInt(r.slice(9,13),16))>>>8,n[5]=255&e,n[6]=(e=parseInt(r.slice(14,18),16))>>>8,n[7]=255&e,n[8]=(e=parseInt(r.slice(19,23),16))>>>8,n[9]=255&e,n[10]=(e=parseInt(r.slice(24,36),16))/1099511627776&255,n[11]=e/4294967296&255,n[12]=e>>>24&255,n[13]=e>>>16&255,n[14]=e>>>8&255,n[15]=255&e,n}function p(r,e,n){function t(r,t,o,a){if("string"==typeof r&&(r=function(r){r=unescape(encodeURIComponent(r));for(var e=[],n=0;n<r.length;++n)e.push(r.charCodeAt(n));return e}(r)),"string"==typeof t&&(t=v(t)),16!==t.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var i=new Uint8Array(16+r.length);if(i.set(t),i.set(r,t.length),(i=n(i))[6]=15&i[6]|e,i[8]=63&i[8]|128,o){a=a||0;for(var u=0;u<16;++u)o[a+u]=i[u];return o}return c(i)}try{t.name=r}catch(r){}return t.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",t.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",t}function h(r){return 14+(r+64>>>9<<4)+1}function y(r,e){var n=(65535&r)+(65535&e);return(r>>16)+(e>>16)+(n>>16)<<16|65535&n}function g(r,e,n,t,o,a){return y((i=y(y(e,r),y(t,a)))<<(u=o)|i>>>32-u,n);var i,u}function m(r,e,n,t,o,a,i){return g(e&n|~e&t,r,e,o,a,i)}function w(r,e,n,t,o,a,i){return g(e&t|n&~t,r,e,o,a,i)}function b(r,e,n,t,o,a,i){return g(e^n^t,r,e,o,a,i)}function A(r,e,n,t,o,a,i){return g(n^(e|~t),r,e,o,a,i)}var U=p("v3",48,(function(r){if("string"==typeof r){var e=unescape(encodeURIComponent(r));r=new Uint8Array(e.length);for(var n=0;n<e.length;++n)r[n]=e.charCodeAt(n)}return function(r){for(var e=[],n=32*r.length,t="0123456789abcdef",o=0;o<n;o+=8){var a=r[o>>5]>>>o%32&255,i=parseInt(t.charAt(a>>>4&15)+t.charAt(15&a),16);e.push(i)}return e}(function(r,e){r[e>>5]|=128<<e%32,r[h(e)-1]=e;for(var n=1732584193,t=-271733879,o=-1732584194,a=271733878,i=0;i<r.length;i+=16){var u=n,f=t,s=o,c=a;n=m(n,t,o,a,r[i],7,-680876936),a=m(a,n,t,o,r[i+1],12,-389564586),o=m(o,a,n,t,r[i+2],17,606105819),t=m(t,o,a,n,r[i+3],22,-1044525330),n=m(n,t,o,a,r[i+4],7,-176418897),a=m(a,n,t,o,r[i+5],12,1200080426),o=m(o,a,n,t,r[i+6],17,-1473231341),t=m(t,o,a,n,r[i+7],22,-45705983),n=m(n,t,o,a,r[i+8],7,1770035416),a=m(a,n,t,o,r[i+9],12,-1958414417),o=m(o,a,n,t,r[i+10],17,-42063),t=m(t,o,a,n,r[i+11],22,-1990404162),n=m(n,t,o,a,r[i+12],7,1804603682),a=m(a,n,t,o,r[i+13],12,-40341101),o=m(o,a,n,t,r[i+14],17,-1502002290),n=w(n,t=m(t,o,a,n,r[i+15],22,1236535329),o,a,r[i+1],5,-165796510),a=w(a,n,t,o,r[i+6],9,-1069501632),o=w(o,a,n,t,r[i+11],14,643717713),t=w(t,o,a,n,r[i],20,-373897302),n=w(n,t,o,a,r[i+5],5,-701558691),a=w(a,n,t,o,r[i+10],9,38016083),o=w(o,a,n,t,r[i+15],14,-660478335),t=w(t,o,a,n,r[i+4],20,-405537848),n=w(n,t,o,a,r[i+9],5,568446438),a=w(a,n,t,o,r[i+14],9,-1019803690),o=w(o,a,n,t,r[i+3],14,-187363961),t=w(t,o,a,n,r[i+8],20,1163531501),n=w(n,t,o,a,r[i+13],5,-1444681467),a=w(a,n,t,o,r[i+2],9,-51403784),o=w(o,a,n,t,r[i+7],14,1735328473),n=b(n,t=w(t,o,a,n,r[i+12],20,-1926607734),o,a,r[i+5],4,-378558),a=b(a,n,t,o,r[i+8],11,-2022574463),o=b(o,a,n,t,r[i+11],16,1839030562),t=b(t,o,a,n,r[i+14],23,-35309556),n=b(n,t,o,a,r[i+1],4,-1530992060),a=b(a,n,t,o,r[i+4],11,1272893353),o=b(o,a,n,t,r[i+7],16,-155497632),t=b(t,o,a,n,r[i+10],23,-1094730640),n=b(n,t,o,a,r[i+13],4,681279174),a=b(a,n,t,o,r[i],11,-358537222),o=b(o,a,n,t,r[i+3],16,-722521979),t=b(t,o,a,n,r[i+6],23,76029189),n=b(n,t,o,a,r[i+9],4,-640364487),a=b(a,n,t,o,r[i+12],11,-421815835),o=b(o,a,n,t,r[i+15],16,530742520),n=A(n,t=b(t,o,a,n,r[i+2],23,-995338651),o,a,r[i],6,-198630844),a=A(a,n,t,o,r[i+7],10,1126891415),o=A(o,a,n,t,r[i+14],15,-1416354905),t=A(t,o,a,n,r[i+5],21,-57434055),n=A(n,t,o,a,r[i+12],6,1700485571),a=A(a,n,t,o,r[i+3],10,-1894986606),o=A(o,a,n,t,r[i+10],15,-1051523),t=A(t,o,a,n,r[i+1],21,-2054922799),n=A(n,t,o,a,r[i+8],6,1873313359),a=A(a,n,t,o,r[i+15],10,-30611744),o=A(o,a,n,t,r[i+6],15,-1560198380),t=A(t,o,a,n,r[i+13],21,1309151649),n=A(n,t,o,a,r[i+4],6,-145523070),a=A(a,n,t,o,r[i+11],10,-1120210379),o=A(o,a,n,t,r[i+2],15,718787259),t=A(t,o,a,n,r[i+9],21,-343485551),n=y(n,u),t=y(t,f),o=y(o,s),a=y(a,c)}return[n,t,o,a]}(function(r){if(0===r.length)return[];for(var e=8*r.length,n=new Uint32Array(h(e)),t=0;t<e;t+=8)n[t>>5]|=(255&r[t/8])<<t%32;return n}(r),8*r.length))}));function I(r,e,n,t){switch(r){case 0:return e&n^~e&t;case 1:return e^n^t;case 2:return e&n^e&t^n&t;case 3:return e^n^t}}function C(r,e){return r<<e|r>>>32-e}var R=p("v5",80,(function(r){var e=[1518500249,1859775393,2400959708,3395469782],n=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof r){var t=unescape(encodeURIComponent(r));r=[];for(var o=0;o<t.length;++o)r.push(t.charCodeAt(o))}else Array.isArray(r)||(r=Array.prototype.slice.call(r));r.push(128);for(var a=r.length/4+2,i=Math.ceil(a/16),u=new Array(i),f=0;f<i;++f){for(var s=new Uint32Array(16),c=0;c<16;++c)s[c]=r[64*f+4*c]<<24|r[64*f+4*c+1]<<16|r[64*f+4*c+2]<<8|r[64*f+4*c+3];u[f]=s}u[i-1][14]=8*(r.length-1)/Math.pow(2,32),u[i-1][14]=Math.floor(u[i-1][14]),u[i-1][15]=8*(r.length-1)&4294967295;for(var l=0;l<i;++l){for(var d=new Uint32Array(80),v=0;v<16;++v)d[v]=u[l][v];for(var p=16;p<80;++p)d[p]=C(d[p-3]^d[p-8]^d[p-14]^d[p-16],1);for(var h=n[0],y=n[1],g=n[2],m=n[3],w=n[4],b=0;b<80;++b){var A=Math.floor(b/20),U=C(h,5)+I(A,y,g,m)+w+e[A]+d[b]>>>0;w=m,m=g,g=C(y,30)>>>0,y=h,h=U}n[0]=n[0]+h>>>0,n[1]=n[1]+y>>>0,n[2]=n[2]+g>>>0,n[3]=n[3]+m>>>0,n[4]=n[4]+w>>>0}return[n[0]>>24&255,n[0]>>16&255,n[0]>>8&255,255&n[0],n[1]>>24&255,n[1]>>16&255,n[1]>>8&255,255&n[1],n[2]>>24&255,n[2]>>16&255,n[2]>>8&255,255&n[2],n[3]>>24&255,n[3]>>16&255,n[3]>>8&255,255&n[3],n[4]>>24&255,n[4]>>16&255,n[4]>>8&255,255&n[4]]}));r.NIL="00000000-0000-0000-0000-000000000000",r.parse=v,r.stringify=c,r.v1=function(r,e,n){var o=e&&n||0,a=e||new Array(16),f=(r=r||{}).node||i,s=void 0!==r.clockseq?r.clockseq:u;if(null==f||null==s){var v=r.random||(r.rng||t)();null==f&&(f=i=[1|v[0],v[1],v[2],v[3],v[4],v[5]]),null==s&&(s=u=16383&(v[6]<<8|v[7]))}var p=void 0!==r.msecs?r.msecs:Date.now(),h=void 0!==r.nsecs?r.nsecs:d+1,y=p-l+(h-d)/1e4;if(y<0&&void 0===r.clockseq&&(s=s+1&16383),(y<0||p>l)&&void 0===r.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");l=p,d=h,u=s;var g=(1e4*(268435455&(p+=122192928e5))+h)%4294967296;a[o++]=g>>>24&255,a[o++]=g>>>16&255,a[o++]=g>>>8&255,a[o++]=255&g;var m=p/4294967296*1e4&268435455;a[o++]=m>>>8&255,a[o++]=255&m,a[o++]=m>>>24&15|16,a[o++]=m>>>16&255,a[o++]=s>>>8|128,a[o++]=255&s;for(var w=0;w<6;++w)a[o+w]=f[w];return e||c(a)},r.v3=U,r.v4=function(r,e,n){var o=(r=r||{}).random||(r.rng||t)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,e){n=n||0;for(var a=0;a<16;++a)e[n+a]=o[a];return e}return c(o)},r.v5=R,r.validate=a,r.version=function(r){if(!a(r))throw TypeError("Invalid UUID");return parseInt(r.substr(14,1),16)},Object.defineProperty(r,"__esModule",{value:!0})}));!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).uuidNIL=n()}(this,(function(){"use strict";return"00000000-0000-0000-0000-000000000000"}));!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).uuidParse=n()}(this,(function(){"use strict";var e=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;return function(n){if(!function(n){return"string"==typeof n&&e.test(n)}(n))throw TypeError("Invalid UUID");var t,i=new Uint8Array(16);return i[0]=(t=parseInt(n.slice(0,8),16))>>>24,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i[4]=(t=parseInt(n.slice(9,13),16))>>>8,i[5]=255&t,i[6]=(t=parseInt(n.slice(14,18),16))>>>8,i[7]=255&t,i[8]=(t=parseInt(n.slice(19,23),16))>>>8,i[9]=255&t,i[10]=(t=parseInt(n.slice(24,36),16))/1099511627776&255,i[11]=t/4294967296&255,i[12]=t>>>24&255,i[13]=t>>>16&255,i[14]=t>>>8&255,i[15]=255&t,i}}));!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).uuidStringify=t()}(this,(function(){"use strict";var e=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function t(t){return"string"==typeof t&&e.test(t)}for(var i=[],n=0;n<256;++n)i.push((n+256).toString(16).substr(1));return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,f=(i[e[n+0]]+i[e[n+1]]+i[e[n+2]]+i[e[n+3]]+"-"+i[e[n+4]]+i[e[n+5]]+"-"+i[e[n+6]]+i[e[n+7]]+"-"+i[e[n+8]]+i[e[n+9]]+"-"+i[e[n+10]]+i[e[n+11]]+i[e[n+12]]+i[e[n+13]]+i[e[n+14]]+i[e[n+15]]).toLowerCase();if(!t(f))throw TypeError("Stringified UUID is invalid");return f}}));!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).uuidValidate=t()}(this,(function(){"use strict";var e=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;return function(t){return"string"==typeof t&&e.test(t)}}));!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).uuidVersion=t()}(this,(function(){"use strict";var e=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;return function(t){if(!function(t){return"string"==typeof t&&e.test(t)}(t))throw TypeError("Invalid UUID");return parseInt(t.substr(14,1),16)}}));!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(e="undefined"!=typeof globalThis?globalThis:e||self).uuidv1=o()}(this,(function(){"use strict";var e,o=new Uint8Array(16);function t(){if(!e&&!(e="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return e(o)}var n=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function r(e){return"string"==typeof e&&n.test(e)}for(var i,u,s=[],a=0;a<256;++a)s.push((a+256).toString(16).substr(1));var d=0,f=0;return function(e,o,n){var a=o&&n||0,c=o||new Array(16),l=(e=e||{}).node||i,p=void 0!==e.clockseq?e.clockseq:u;if(null==l||null==p){var v=e.random||(e.rng||t)();null==l&&(l=i=[1|v[0],v[1],v[2],v[3],v[4],v[5]]),null==p&&(p=u=16383&(v[6]<<8|v[7]))}var y=void 0!==e.msecs?e.msecs:Date.now(),m=void 0!==e.nsecs?e.nsecs:f+1,g=y-d+(m-f)/1e4;if(g<0&&void 0===e.clockseq&&(p=p+1&16383),(g<0||y>d)&&void 0===e.nsecs&&(m=0),m>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");d=y,f=m,u=p;var h=(1e4*(268435455&(y+=122192928e5))+m)%4294967296;c[a++]=h>>>24&255,c[a++]=h>>>16&255,c[a++]=h>>>8&255,c[a++]=255&h;var w=y/4294967296*1e4&268435455;c[a++]=w>>>8&255,c[a++]=255&w,c[a++]=w>>>24&15|16,c[a++]=w>>>16&255,c[a++]=p>>>8|128,c[a++]=255&p;for(var b=0;b<6;++b)c[a+b]=l[b];return o||function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=(s[e[o+0]]+s[e[o+1]]+s[e[o+2]]+s[e[o+3]]+"-"+s[e[o+4]]+s[e[o+5]]+"-"+s[e[o+6]]+s[e[o+7]]+"-"+s[e[o+8]]+s[e[o+9]]+"-"+s[e[o+10]]+s[e[o+11]]+s[e[o+12]]+s[e[o+13]]+s[e[o+14]]+s[e[o+15]]).toLowerCase();if(!r(t))throw TypeError("Stringified UUID is invalid");return t}(c)}}));!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):(n="undefined"!=typeof globalThis?globalThis:n||self).uuidv3=r()}(this,(function(){"use strict";var n=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function r(r){return"string"==typeof r&&n.test(r)}for(var e=[],t=0;t<256;++t)e.push((t+256).toString(16).substr(1));function i(n){return 14+(n+64>>>9<<4)+1}function o(n,r){var e=(65535&n)+(65535&r);return(n>>16)+(r>>16)+(e>>16)<<16|65535&e}function a(n,r,e,t,i,a){return o((f=o(o(r,n),o(t,a)))<<(u=i)|f>>>32-u,e);var f,u}function f(n,r,e,t,i,o,f){return a(r&e|~r&t,n,r,i,o,f)}function u(n,r,e,t,i,o,f){return a(r&t|e&~t,n,r,i,o,f)}function c(n,r,e,t,i,o,f){return a(r^e^t,n,r,i,o,f)}function s(n,r,e,t,i,o,f){return a(e^(r|~t),n,r,i,o,f)}return function(n,t,i){function o(n,o,a,f){if("string"==typeof n&&(n=function(n){n=unescape(encodeURIComponent(n));for(var r=[],e=0;e<n.length;++e)r.push(n.charCodeAt(e));return r}(n)),"string"==typeof o&&(o=function(n){if(!r(n))throw TypeError("Invalid UUID");var e,t=new Uint8Array(16);return t[0]=(e=parseInt(n.slice(0,8),16))>>>24,t[1]=e>>>16&255,t[2]=e>>>8&255,t[3]=255&e,t[4]=(e=parseInt(n.slice(9,13),16))>>>8,t[5]=255&e,t[6]=(e=parseInt(n.slice(14,18),16))>>>8,t[7]=255&e,t[8]=(e=parseInt(n.slice(19,23),16))>>>8,t[9]=255&e,t[10]=(e=parseInt(n.slice(24,36),16))/1099511627776&255,t[11]=e/4294967296&255,t[12]=e>>>24&255,t[13]=e>>>16&255,t[14]=e>>>8&255,t[15]=255&e,t}(o)),16!==o.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var u=new Uint8Array(16+n.length);if(u.set(o),u.set(n,o.length),(u=i(u))[6]=15&u[6]|t,u[8]=63&u[8]|128,a){f=f||0;for(var c=0;c<16;++c)a[f+c]=u[c];return a}return function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=(e[n[t+0]]+e[n[t+1]]+e[n[t+2]]+e[n[t+3]]+"-"+e[n[t+4]]+e[n[t+5]]+"-"+e[n[t+6]]+e[n[t+7]]+"-"+e[n[t+8]]+e[n[t+9]]+"-"+e[n[t+10]]+e[n[t+11]]+e[n[t+12]]+e[n[t+13]]+e[n[t+14]]+e[n[t+15]]).toLowerCase();if(!r(i))throw TypeError("Stringified UUID is invalid");return i}(u)}try{o.name=n}catch(n){}return o.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",o.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",o}("v3",48,(function(n){if("string"==typeof n){var r=unescape(encodeURIComponent(n));n=new Uint8Array(r.length);for(var e=0;e<r.length;++e)n[e]=r.charCodeAt(e)}return function(n){for(var r=[],e=32*n.length,t="0123456789abcdef",i=0;i<e;i+=8){var o=n[i>>5]>>>i%32&255,a=parseInt(t.charAt(o>>>4&15)+t.charAt(15&o),16);r.push(a)}return r}(function(n,r){n[r>>5]|=128<<r%32,n[i(r)-1]=r;for(var e=1732584193,t=-271733879,a=-1732584194,l=271733878,d=0;d<n.length;d+=16){var p=e,h=t,v=a,g=l;e=f(e,t,a,l,n[d],7,-680876936),l=f(l,e,t,a,n[d+1],12,-389564586),a=f(a,l,e,t,n[d+2],17,606105819),t=f(t,a,l,e,n[d+3],22,-1044525330),e=f(e,t,a,l,n[d+4],7,-176418897),l=f(l,e,t,a,n[d+5],12,1200080426),a=f(a,l,e,t,n[d+6],17,-1473231341),t=f(t,a,l,e,n[d+7],22,-45705983),e=f(e,t,a,l,n[d+8],7,1770035416),l=f(l,e,t,a,n[d+9],12,-1958414417),a=f(a,l,e,t,n[d+10],17,-42063),t=f(t,a,l,e,n[d+11],22,-1990404162),e=f(e,t,a,l,n[d+12],7,1804603682),l=f(l,e,t,a,n[d+13],12,-40341101),a=f(a,l,e,t,n[d+14],17,-1502002290),e=u(e,t=f(t,a,l,e,n[d+15],22,1236535329),a,l,n[d+1],5,-165796510),l=u(l,e,t,a,n[d+6],9,-1069501632),a=u(a,l,e,t,n[d+11],14,643717713),t=u(t,a,l,e,n[d],20,-373897302),e=u(e,t,a,l,n[d+5],5,-701558691),l=u(l,e,t,a,n[d+10],9,38016083),a=u(a,l,e,t,n[d+15],14,-660478335),t=u(t,a,l,e,n[d+4],20,-405537848),e=u(e,t,a,l,n[d+9],5,568446438),l=u(l,e,t,a,n[d+14],9,-1019803690),a=u(a,l,e,t,n[d+3],14,-187363961),t=u(t,a,l,e,n[d+8],20,1163531501),e=u(e,t,a,l,n[d+13],5,-1444681467),l=u(l,e,t,a,n[d+2],9,-51403784),a=u(a,l,e,t,n[d+7],14,1735328473),e=c(e,t=u(t,a,l,e,n[d+12],20,-1926607734),a,l,n[d+5],4,-378558),l=c(l,e,t,a,n[d+8],11,-2022574463),a=c(a,l,e,t,n[d+11],16,1839030562),t=c(t,a,l,e,n[d+14],23,-35309556),e=c(e,t,a,l,n[d+1],4,-1530992060),l=c(l,e,t,a,n[d+4],11,1272893353),a=c(a,l,e,t,n[d+7],16,-155497632),t=c(t,a,l,e,n[d+10],23,-1094730640),e=c(e,t,a,l,n[d+13],4,681279174),l=c(l,e,t,a,n[d],11,-358537222),a=c(a,l,e,t,n[d+3],16,-722521979),t=c(t,a,l,e,n[d+6],23,76029189),e=c(e,t,a,l,n[d+9],4,-640364487),l=c(l,e,t,a,n[d+12],11,-421815835),a=c(a,l,e,t,n[d+15],16,530742520),e=s(e,t=c(t,a,l,e,n[d+2],23,-995338651),a,l,n[d],6,-198630844),l=s(l,e,t,a,n[d+7],10,1126891415),a=s(a,l,e,t,n[d+14],15,-1416354905),t=s(t,a,l,e,n[d+5],21,-57434055),e=s(e,t,a,l,n[d+12],6,1700485571),l=s(l,e,t,a,n[d+3],10,-1894986606),a=s(a,l,e,t,n[d+10],15,-1051523),t=s(t,a,l,e,n[d+1],21,-2054922799),e=s(e,t,a,l,n[d+8],6,1873313359),l=s(l,e,t,a,n[d+15],10,-30611744),a=s(a,l,e,t,n[d+6],15,-1560198380),t=s(t,a,l,e,n[d+13],21,1309151649),e=s(e,t,a,l,n[d+4],6,-145523070),l=s(l,e,t,a,n[d+11],10,-1120210379),a=s(a,l,e,t,n[d+2],15,718787259),t=s(t,a,l,e,n[d+9],21,-343485551),e=o(e,p),t=o(t,h),a=o(a,v),l=o(l,g)}return[e,t,a,l]}(function(n){if(0===n.length)return[];for(var r=8*n.length,e=new Uint32Array(i(r)),t=0;t<r;t+=8)e[t>>5]|=(255&n[t/8])<<t%32;return e}(n),8*n.length))}))}));!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).uuidv4=e()}(this,(function(){"use strict";var t,e=new Uint8Array(16);function o(){if(!t&&!(t="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return t(e)}var n=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function r(t){return"string"==typeof t&&n.test(t)}for(var i=[],u=0;u<256;++u)i.push((u+256).toString(16).substr(1));return function(t,e,n){var u=(t=t||{}).random||(t.rng||o)();if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,e){n=n||0;for(var f=0;f<16;++f)e[n+f]=u[f];return e}return function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=(i[t[e+0]]+i[t[e+1]]+i[t[e+2]]+i[t[e+3]]+"-"+i[t[e+4]]+i[t[e+5]]+"-"+i[t[e+6]]+i[t[e+7]]+"-"+i[t[e+8]]+i[t[e+9]]+"-"+i[t[e+10]]+i[t[e+11]]+i[t[e+12]]+i[t[e+13]]+i[t[e+14]]+i[t[e+15]]).toLowerCase();if(!r(o))throw TypeError("Stringified UUID is invalid");return o}(u)}}));!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(r="undefined"!=typeof globalThis?globalThis:r||self).uuidv5=e()}(this,(function(){"use strict";var r=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function e(e){return"string"==typeof e&&r.test(e)}for(var t=[],n=0;n<256;++n)t.push((n+256).toString(16).substr(1));function a(r,e,t,n){switch(r){case 0:return e&t^~e&n;case 1:return e^t^n;case 2:return e&t^e&n^t&n;case 3:return e^t^n}}function o(r,e){return r<<e|r>>>32-e}return function(r,n,a){function o(r,o,i,f){if("string"==typeof r&&(r=function(r){r=unescape(encodeURIComponent(r));for(var e=[],t=0;t<r.length;++t)e.push(r.charCodeAt(t));return e}(r)),"string"==typeof o&&(o=function(r){if(!e(r))throw TypeError("Invalid UUID");var t,n=new Uint8Array(16);return n[0]=(t=parseInt(r.slice(0,8),16))>>>24,n[1]=t>>>16&255,n[2]=t>>>8&255,n[3]=255&t,n[4]=(t=parseInt(r.slice(9,13),16))>>>8,n[5]=255&t,n[6]=(t=parseInt(r.slice(14,18),16))>>>8,n[7]=255&t,n[8]=(t=parseInt(r.slice(19,23),16))>>>8,n[9]=255&t,n[10]=(t=parseInt(r.slice(24,36),16))/1099511627776&255,n[11]=t/4294967296&255,n[12]=t>>>24&255,n[13]=t>>>16&255,n[14]=t>>>8&255,n[15]=255&t,n}(o)),16!==o.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var s=new Uint8Array(16+r.length);if(s.set(o),s.set(r,o.length),(s=a(s))[6]=15&s[6]|n,s[8]=63&s[8]|128,i){f=f||0;for(var u=0;u<16;++u)i[f+u]=s[u];return i}return function(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=(t[r[n+0]]+t[r[n+1]]+t[r[n+2]]+t[r[n+3]]+"-"+t[r[n+4]]+t[r[n+5]]+"-"+t[r[n+6]]+t[r[n+7]]+"-"+t[r[n+8]]+t[r[n+9]]+"-"+t[r[n+10]]+t[r[n+11]]+t[r[n+12]]+t[r[n+13]]+t[r[n+14]]+t[r[n+15]]).toLowerCase();if(!e(a))throw TypeError("Stringified UUID is invalid");return a}(s)}try{o.name=r}catch(r){}return o.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",o.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",o}("v5",80,(function(r){var e=[1518500249,1859775393,2400959708,3395469782],t=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof r){var n=unescape(encodeURIComponent(r));r=[];for(var i=0;i<n.length;++i)r.push(n.charCodeAt(i))}else Array.isArray(r)||(r=Array.prototype.slice.call(r));r.push(128);for(var f=r.length/4+2,s=Math.ceil(f/16),u=new Array(s),c=0;c<s;++c){for(var l=new Uint32Array(16),p=0;p<16;++p)l[p]=r[64*c+4*p]<<24|r[64*c+4*p+1]<<16|r[64*c+4*p+2]<<8|r[64*c+4*p+3];u[c]=l}u[s-1][14]=8*(r.length-1)/Math.pow(2,32),u[s-1][14]=Math.floor(u[s-1][14]),u[s-1][15]=8*(r.length-1)&4294967295;for(var d=0;d<s;++d){for(var h=new Uint32Array(80),v=0;v<16;++v)h[v]=u[d][v];for(var y=16;y<80;++y)h[y]=o(h[y-3]^h[y-8]^h[y-14]^h[y-16],1);for(var g=t[0],b=t[1],w=t[2],U=t[3],A=t[4],I=0;I<80;++I){var m=Math.floor(I/20),C=o(g,5)+a(m,b,w,U)+A+e[m]+h[I]>>>0;A=U,U=w,w=o(b,30)>>>0,b=g,g=C}t[0]=t[0]+g>>>0,t[1]=t[1]+b>>>0,t[2]=t[2]+w>>>0,t[3]=t[3]+U>>>0,t[4]=t[4]+A>>>0}return[t[0]>>24&255,t[0]>>16&255,t[0]>>8&255,255&t[0],t[1]>>24&255,t[1]>>16&255,t[1]>>8&255,255&t[1],t[2]>>24&255,t[2]>>16&255,t[2]>>8&255,255&t[2],t[3]>>24&255,t[3]>>16&255,t[3]>>8&255,255&t[3],t[4]>>24&255,t[4]>>16&255,t[4]>>8&255,255&t[4]]}))}));export { default as v1 } from './v1.js';
export { default as v3 } from './v3.js';
export { default as v4 } from './v4.js';
export { default as v5 } from './v5.js';
export { default as NIL } from './nil.js';
export { default as version } from './version.js';
export { default as validate } from './validate.js';
export { default as stringify } from './stringify.js';
export { default as parse } from './parse.js';import crypto from 'crypto';

function md5(bytes) {
  if (Array.isArray(bytes)) {
    bytes = Buffer.from(bytes);
  } else if (typeof bytes === 'string') {
    bytes = Buffer.from(bytes, 'utf8');
  }

  return crypto.createHash('md5').update(bytes).digest();
}

export default md5;export default '00000000-0000-0000-0000-000000000000';import validate from './validate.js';

function parse(uuid) {
  if (!validate(uuid)) {
    throw TypeError('Invalid UUID');
  }

  let v;
  const arr = new Uint8Array(16); // Parse ########-....-....-....-............

  arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
  arr[1] = v >>> 16 & 0xff;
  arr[2] = v >>> 8 & 0xff;
  arr[3] = v & 0xff; // Parse ........-####-....-....-............

  arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
  arr[5] = v & 0xff; // Parse ........-....-####-....-............

  arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
  arr[7] = v & 0xff; // Parse ........-....-....-####-............

  arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;
  arr[9] = v & 0xff; // Parse ........-....-....-....-############
  // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes)

  arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;
  arr[11] = v / 0x100000000 & 0xff;
  arr[12] = v >>> 24 & 0xff;
  arr[13] = v >>> 16 & 0xff;
  arr[14] = v >>> 8 & 0xff;
  arr[15] = v & 0xff;
  return arr;
}

export default parse;export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;import crypto from 'crypto';
const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate

let poolPtr = rnds8Pool.length;
export default function rng() {
  if (poolPtr > rnds8Pool.length - 16) {
    crypto.randomFillSync(rnds8Pool);
    poolPtr = 0;
  }

  return rnds8Pool.slice(poolPtr, poolPtr += 16);
}import crypto from 'crypto';

function sha1(bytes) {
  if (Array.isArray(bytes)) {
    bytes = Buffer.from(bytes);
  } else if (typeof bytes === 'string') {
    bytes = Buffer.from(bytes, 'utf8');
  }

  return crypto.createHash('sha1').update(bytes).digest();
}

export default sha1;import validate from './validate.js';
/**
 * Convert array of 16 byte values to UUID string format of the form:
 * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
 */

const byteToHex = [];

for (let i = 0; i < 256; ++i) {
  byteToHex.push((i + 0x100).toString(16).substr(1));
}

function stringify(arr, offset = 0) {
  // Note: Be careful editing this code!  It's been tuned for performance
  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
  const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID.  If this throws, it's likely due to one
  // of the following:
  // - One or more input array values don't map to a hex octet (leading to
  // "undefined" in the uuid)
  // - Invalid input values for the RFC `version` or `variant` fields

  if (!validate(uuid)) {
    throw TypeError('Stringified UUID is invalid');
  }

  return uuid;
}

export default stringify;import rng from './rng.js';
import stringify from './stringify.js'; // **`v1()` - Generate time-based UUID**
//
// Inspired by https://github.com/LiosK/UUID.js
// and http://docs.python.org/library/uuid.html

let _nodeId;

let _clockseq; // Previous uuid creation time


let _lastMSecs = 0;
let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details

function v1(options, buf, offset) {
  let i = buf && offset || 0;
  const b = buf || new Array(16);
  options = options || {};
  let node = options.node || _nodeId;
  let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not
  // specified.  We do this lazily to minimize issues related to insufficient
  // system entropy.  See #189

  if (node == null || clockseq == null) {
    const seedBytes = options.random || (options.rng || rng)();

    if (node == null) {
      // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
      node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];
    }

    if (clockseq == null) {
      // Per 4.2.2, randomize (14 bit) clockseq
      clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
    }
  } // UUID timestamps are 100 nano-second units since the Gregorian epoch,
  // (1582-10-15 00:00).  JSNumbers aren't precise enough for this, so
  // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
  // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.


  let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock
  // cycle to simulate higher resolution clock

  let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)

  const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression

  if (dt < 0 && options.clockseq === undefined) {
    clockseq = clockseq + 1 & 0x3fff;
  } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
  // time interval


  if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
    nsecs = 0;
  } // Per 4.2.1.2 Throw error if too many uuids are requested


  if (nsecs >= 10000) {
    throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
  }

  _lastMSecs = msecs;
  _lastNSecs = nsecs;
  _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch

  msecs += 12219292800000; // `time_low`

  const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
  b[i++] = tl >>> 24 & 0xff;
  b[i++] = tl >>> 16 & 0xff;
  b[i++] = tl >>> 8 & 0xff;
  b[i++] = tl & 0xff; // `time_mid`

  const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;
  b[i++] = tmh >>> 8 & 0xff;
  b[i++] = tmh & 0xff; // `time_high_and_version`

  b[i++] = tmh >>> 24 & 0xf | 0x10; // include version

  b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)

  b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`

  b[i++] = clockseq & 0xff; // `node`

  for (let n = 0; n < 6; ++n) {
    b[i + n] = node[n];
  }

  return buf || stringify(b);
}

export default v1;import v35 from './v35.js';
import md5 from './md5.js';
const v3 = v35('v3', 0x30, md5);
export default v3;import stringify from './stringify.js';
import parse from './parse.js';

function stringToBytes(str) {
  str = unescape(encodeURIComponent(str)); // UTF8 escape

  const bytes = [];

  for (let i = 0; i < str.length; ++i) {
    bytes.push(str.charCodeAt(i));
  }

  return bytes;
}

export const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
export const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
export default function (name, version, hashfunc) {
  function generateUUID(value, namespace, buf, offset) {
    if (typeof value === 'string') {
      value = stringToBytes(value);
    }

    if (typeof namespace === 'string') {
      namespace = parse(namespace);
    }

    if (namespace.length !== 16) {
      throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');
    } // Compute hash of namespace and value, Per 4.3
    // Future: Use spread syntax when supported on all platforms, e.g. `bytes =
    // hashfunc([...namespace, ... value])`


    let bytes = new Uint8Array(16 + value.length);
    bytes.set(namespace);
    bytes.set(value, namespace.length);
    bytes = hashfunc(bytes);
    bytes[6] = bytes[6] & 0x0f | version;
    bytes[8] = bytes[8] & 0x3f | 0x80;

    if (buf) {
      offset = offset || 0;

      for (let i = 0; i < 16; ++i) {
        buf[offset + i] = bytes[i];
      }

      return buf;
    }

    return stringify(bytes);
  } // Function#name is not settable on some platforms (#270)


  try {
    generateUUID.name = name; // eslint-disable-next-line no-empty
  } catch (err) {} // For CommonJS default export support


  generateUUID.DNS = DNS;
  generateUUID.URL = URL;
  return generateUUID;
}import rng from './rng.js';
import stringify from './stringify.js';

function v4(options, buf, offset) {
  options = options || {};
  const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`

  rnds[6] = rnds[6] & 0x0f | 0x40;
  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided

  if (buf) {
    offset = offset || 0;

    for (let i = 0; i < 16; ++i) {
      buf[offset + i] = rnds[i];
    }

    return buf;
  }

  return stringify(rnds);
}

export default v4;import v35 from './v35.js';
import sha1 from './sha1.js';
const v5 = v35('v5', 0x50, sha1);
export default v5;import REGEX from './regex.js';

function validate(uuid) {
  return typeof uuid === 'string' && REGEX.test(uuid);
}

export default validate;import validate from './validate.js';

function version(uuid) {
  if (!validate(uuid)) {
    throw TypeError('Invalid UUID');
  }

  return parseInt(uuid.substr(14, 1), 16);
}

export default version;export { default as v1 } from './v1.js';
export { default as v3 } from './v3.js';
export { default as v4 } from './v4.js';
export { default as v5 } from './v5.js';
export { default as NIL } from './nil.js';
export { default as version } from './version.js';
export { default as validate } from './validate.js';
export { default as stringify } from './stringify.js';
export { default as parse } from './parse.js';/*
 * Browser-compatible JavaScript MD5
 *
 * Modification of JavaScript MD5
 * https://github.com/blueimp/JavaScript-MD5
 *
 * Copyright 2011, Sebastian Tschan
 * https://blueimp.net
 *
 * Licensed under the MIT license:
 * https://opensource.org/licenses/MIT
 *
 * Based on
 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
 * Digest Algorithm, as defined in RFC 1321.
 * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
 * Distributed under the BSD License
 * See http://pajhome.org.uk/crypt/md5 for more info.
 */
function md5(bytes) {
  if (typeof bytes === 'string') {
    var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape

    bytes = new Uint8Array(msg.length);

    for (var i = 0; i < msg.length; ++i) {
      bytes[i] = msg.charCodeAt(i);
    }
  }

  return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));
}
/*
 * Convert an array of little-endian words to an array of bytes
 */


function md5ToHexEncodedArray(input) {
  var output = [];
  var length32 = input.length * 32;
  var hexTab = '0123456789abcdef';

  for (var i = 0; i < length32; i += 8) {
    var x = input[i >> 5] >>> i % 32 & 0xff;
    var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);
    output.push(hex);
  }

  return output;
}
/**
 * Calculate output length with padding and bit length
 */


function getOutputLength(inputLength8) {
  return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;
}
/*
 * Calculate the MD5 of an array of little-endian words, and a bit length.
 */


function wordsToMd5(x, len) {
  /* append padding */
  x[len >> 5] |= 0x80 << len % 32;
  x[getOutputLength(len) - 1] = len;
  var a = 1732584193;
  var b = -271733879;
  var c = -1732584194;
  var d = 271733878;

  for (var i = 0; i < x.length; i += 16) {
    var olda = a;
    var oldb = b;
    var oldc = c;
    var oldd = d;
    a = md5ff(a, b, c, d, x[i], 7, -680876936);
    d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
    c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
    b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
    a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
    d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
    c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
    b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
    a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
    d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
    c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
    b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
    a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
    d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
    c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
    b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
    a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
    d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
    c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
    b = md5gg(b, c, d, a, x[i], 20, -373897302);
    a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
    d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
    c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
    b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
    a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
    d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
    c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
    b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
    a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
    d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
    c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
    b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
    a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
    d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
    c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
    b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
    a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
    d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
    c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
    b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
    a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
    d = md5hh(d, a, b, c, x[i], 11, -358537222);
    c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
    b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
    a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
    d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
    c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
    b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
    a = md5ii(a, b, c, d, x[i], 6, -198630844);
    d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
    c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
    b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
    a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
    d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
    c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
    b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
    a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
    d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
    c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
    b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
    a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
    d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
    c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
    b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
    a = safeAdd(a, olda);
    b = safeAdd(b, oldb);
    c = safeAdd(c, oldc);
    d = safeAdd(d, oldd);
  }

  return [a, b, c, d];
}
/*
 * Convert an array bytes to an array of little-endian words
 * Characters >255 have their high-byte silently ignored.
 */


function bytesToWords(input) {
  if (input.length === 0) {
    return [];
  }

  var length8 = input.length * 8;
  var output = new Uint32Array(getOutputLength(length8));

  for (var i = 0; i < length8; i += 8) {
    output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;
  }

  return output;
}
/*
 * Add integers, wrapping at 2^32. This uses 16-bit operations internally
 * to work around bugs in some JS interpreters.
 */


function safeAdd(x, y) {
  var lsw = (x & 0xffff) + (y & 0xffff);
  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
  return msw << 16 | lsw & 0xffff;
}
/*
 * Bitwise rotate a 32-bit number to the left.
 */


function bitRotateLeft(num, cnt) {
  return num << cnt | num >>> 32 - cnt;
}
/*
 * These functions implement the four basic operations the algorithm uses.
 */


function md5cmn(q, a, b, x, s, t) {
  return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
}

function md5ff(a, b, c, d, x, s, t) {
  return md5cmn(b & c | ~b & d, a, b, x, s, t);
}

function md5gg(a, b, c, d, x, s, t) {
  return md5cmn(b & d | c & ~d, a, b, x, s, t);
}

function md5hh(a, b, c, d, x, s, t) {
  return md5cmn(b ^ c ^ d, a, b, x, s, t);
}

function md5ii(a, b, c, d, x, s, t) {
  return md5cmn(c ^ (b | ~d), a, b, x, s, t);
}

export default md5;export default '00000000-0000-0000-0000-000000000000';import validate from './validate.js';

function parse(uuid) {
  if (!validate(uuid)) {
    throw TypeError('Invalid UUID');
  }

  var v;
  var arr = new Uint8Array(16); // Parse ########-....-....-....-............

  arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
  arr[1] = v >>> 16 & 0xff;
  arr[2] = v >>> 8 & 0xff;
  arr[3] = v & 0xff; // Parse ........-####-....-....-............

  arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
  arr[5] = v & 0xff; // Parse ........-....-####-....-............

  arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
  arr[7] = v & 0xff; // Parse ........-....-....-####-............

  arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;
  arr[9] = v & 0xff; // Parse ........-....-....-....-############
  // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes)

  arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;
  arr[11] = v / 0x100000000 & 0xff;
  arr[12] = v >>> 24 & 0xff;
  arr[13] = v >>> 16 & 0xff;
  arr[14] = v >>> 8 & 0xff;
  arr[15] = v & 0xff;
  return arr;
}

export default parse;export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;// Unique ID creation requires a high quality random # generator. In the browser we therefore
// require the crypto API and do not support built-in fallback to lower quality random number
// generators (like Math.random()).
var getRandomValues;
var rnds8 = new Uint8Array(16);
export default function rng() {
  // lazy load so that environments that need to polyfill have a chance to do so
  if (!getRandomValues) {
    // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. Also,
    // find the complete implementation of crypto (msCrypto) on IE11.
    getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);

    if (!getRandomValues) {
      throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
    }
  }

  return getRandomValues(rnds8);
}// Adapted from Chris Veness' SHA1 code at
// http://www.movable-type.co.uk/scripts/sha1.html
function f(s, x, y, z) {
  switch (s) {
    case 0:
      return x & y ^ ~x & z;

    case 1:
      return x ^ y ^ z;

    case 2:
      return x & y ^ x & z ^ y & z;

    case 3:
      return x ^ y ^ z;
  }
}

function ROTL(x, n) {
  return x << n | x >>> 32 - n;
}

function sha1(bytes) {
  var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];
  var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];

  if (typeof bytes === 'string') {
    var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape

    bytes = [];

    for (var i = 0; i < msg.length; ++i) {
      bytes.push(msg.charCodeAt(i));
    }
  } else if (!Array.isArray(bytes)) {
    // Convert Array-like to Array
    bytes = Array.prototype.slice.call(bytes);
  }

  bytes.push(0x80);
  var l = bytes.length / 4 + 2;
  var N = Math.ceil(l / 16);
  var M = new Array(N);

  for (var _i = 0; _i < N; ++_i) {
    var arr = new Uint32Array(16);

    for (var j = 0; j < 16; ++j) {
      arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3];
    }

    M[_i] = arr;
  }

  M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);
  M[N - 1][14] = Math.floor(M[N - 1][14]);
  M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;

  for (var _i2 = 0; _i2 < N; ++_i2) {
    var W = new Uint32Array(80);

    for (var t = 0; t < 16; ++t) {
      W[t] = M[_i2][t];
    }

    for (var _t = 16; _t < 80; ++_t) {
      W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1);
    }

    var a = H[0];
    var b = H[1];
    var c = H[2];
    var d = H[3];
    var e = H[4];

    for (var _t2 = 0; _t2 < 80; ++_t2) {
      var s = Math.floor(_t2 / 20);
      var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0;
      e = d;
      d = c;
      c = ROTL(b, 30) >>> 0;
      b = a;
      a = T;
    }

    H[0] = H[0] + a >>> 0;
    H[1] = H[1] + b >>> 0;
    H[2] = H[2] + c >>> 0;
    H[3] = H[3] + d >>> 0;
    H[4] = H[4] + e >>> 0;
  }

  return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];
}

export default sha1;import validate from './validate.js';
/**
 * Convert array of 16 byte values to UUID string format of the form:
 * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
 */

var byteToHex = [];

for (var i = 0; i < 256; ++i) {
  byteToHex.push((i + 0x100).toString(16).substr(1));
}

function stringify(arr) {
  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  // Note: Be careful editing this code!  It's been tuned for performance
  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
  var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID.  If this throws, it's likely due to one
  // of the following:
  // - One or more input array values don't map to a hex octet (leading to
  // "undefined" in the uuid)
  // - Invalid input values for the RFC `version` or `variant` fields

  if (!validate(uuid)) {
    throw TypeError('Stringified UUID is invalid');
  }

  return uuid;
}

export default stringify;import rng from './rng.js';
import stringify from './stringify.js'; // **`v1()` - Generate time-based UUID**
//
// Inspired by https://github.com/LiosK/UUID.js
// and http://docs.python.org/library/uuid.html

var _nodeId;

var _clockseq; // Previous uuid creation time


var _lastMSecs = 0;
var _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details

function v1(options, buf, offset) {
  var i = buf && offset || 0;
  var b = buf || new Array(16);
  options = options || {};
  var node = options.node || _nodeId;
  var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not
  // specified.  We do this lazily to minimize issues related to insufficient
  // system entropy.  See #189

  if (node == null || clockseq == null) {
    var seedBytes = options.random || (options.rng || rng)();

    if (node == null) {
      // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
      node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];
    }

    if (clockseq == null) {
      // Per 4.2.2, randomize (14 bit) clockseq
      clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
    }
  } // UUID timestamps are 100 nano-second units since the Gregorian epoch,
  // (1582-10-15 00:00).  JSNumbers aren't precise enough for this, so
  // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
  // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.


  var msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock
  // cycle to simulate higher resolution clock

  var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)

  var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression

  if (dt < 0 && options.clockseq === undefined) {
    clockseq = clockseq + 1 & 0x3fff;
  } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
  // time interval


  if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
    nsecs = 0;
  } // Per 4.2.1.2 Throw error if too many uuids are requested


  if (nsecs >= 10000) {
    throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
  }

  _lastMSecs = msecs;
  _lastNSecs = nsecs;
  _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch

  msecs += 12219292800000; // `time_low`

  var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
  b[i++] = tl >>> 24 & 0xff;
  b[i++] = tl >>> 16 & 0xff;
  b[i++] = tl >>> 8 & 0xff;
  b[i++] = tl & 0xff; // `time_mid`

  var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;
  b[i++] = tmh >>> 8 & 0xff;
  b[i++] = tmh & 0xff; // `time_high_and_version`

  b[i++] = tmh >>> 24 & 0xf | 0x10; // include version

  b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)

  b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`

  b[i++] = clockseq & 0xff; // `node`

  for (var n = 0; n < 6; ++n) {
    b[i + n] = node[n];
  }

  return buf || stringify(b);
}

export default v1;import v35 from './v35.js';
import md5 from './md5.js';
var v3 = v35('v3', 0x30, md5);
export default v3;import stringify from './stringify.js';
import parse from './parse.js';

function stringToBytes(str) {
  str = unescape(encodeURIComponent(str)); // UTF8 escape

  var bytes = [];

  for (var i = 0; i < str.length; ++i) {
    bytes.push(str.charCodeAt(i));
  }

  return bytes;
}

export var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
export var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
export default function (name, version, hashfunc) {
  function generateUUID(value, namespace, buf, offset) {
    if (typeof value === 'string') {
      value = stringToBytes(value);
    }

    if (typeof namespace === 'string') {
      namespace = parse(namespace);
    }

    if (namespace.length !== 16) {
      throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');
    } // Compute hash of namespace and value, Per 4.3
    // Future: Use spread syntax when supported on all platforms, e.g. `bytes =
    // hashfunc([...namespace, ... value])`


    var bytes = new Uint8Array(16 + value.length);
    bytes.set(namespace);
    bytes.set(value, namespace.length);
    bytes = hashfunc(bytes);
    bytes[6] = bytes[6] & 0x0f | version;
    bytes[8] = bytes[8] & 0x3f | 0x80;

    if (buf) {
      offset = offset || 0;

      for (var i = 0; i < 16; ++i) {
        buf[offset + i] = bytes[i];
      }

      return buf;
    }

    return stringify(bytes);
  } // Function#name is not settable on some platforms (#270)


  try {
    generateUUID.name = name; // eslint-disable-next-line no-empty
  } catch (err) {} // For CommonJS default export support


  generateUUID.DNS = DNS;
  generateUUID.URL = URL;
  return generateUUID;
}import rng from './rng.js';
import stringify from './stringify.js';

function v4(options, buf, offset) {
  options = options || {};
  var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`

  rnds[6] = rnds[6] & 0x0f | 0x40;
  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided

  if (buf) {
    offset = offset || 0;

    for (var i = 0; i < 16; ++i) {
      buf[offset + i] = rnds[i];
    }

    return buf;
  }

  return stringify(rnds);
}

export default v4;import v35 from './v35.js';
import sha1 from './sha1.js';
var v5 = v35('v5', 0x50, sha1);
export default v5;import REGEX from './regex.js';

function validate(uuid) {
  return typeof uuid === 'string' && REGEX.test(uuid);
}

export default validate;import validate from './validate.js';

function version(uuid) {
  if (!validate(uuid)) {
    throw TypeError('Invalid UUID');
  }

  return parseInt(uuid.substr(14, 1), 16);
}

export default version;#!/usr/bin/env node
require('../uuid-bin');
The ISC License

Copyright (c) Isaac Z. Schlueter and Contributors

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
{
  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)",
  "name": "which",
  "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.",
  "version": "2.0.2",
  "repository": {
    "type": "git",
    "url": "git://github.com/isaacs/node-which.git"
  },
  "main": "which.js",
  "bin": {
    "node-which": "./bin/node-which"
  },
  "license": "ISC",
  "dependencies": {
    "isexe": "^2.0.0"
  },
  "devDependencies": {
    "mkdirp": "^0.5.0",
    "rimraf": "^2.6.2",
    "tap": "^14.6.9"
  },
  "files": [
    "which.js",
    "bin/node-which"
  ],
  "tap": {
    "check-coverage": true
  },
  "engines": {
    "node": ">= 8"
  }
}const isWindows = process.platform === 'win32' ||
    process.env.OSTYPE === 'cygwin' ||
    process.env.OSTYPE === 'msys'

const path = require('path')
const COLON = isWindows ? ';' : ':'
const isexe = require('isexe')

const getNotFoundError = (cmd) =>
  Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })

const getPathInfo = (cmd, opt) => {
  const colon = opt.colon || COLON

  // If it has a slash, then we don't bother searching the pathenv.
  // just check the file itself, and that's it.
  const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? ['']
    : (
      [
        // windows always checks the cwd first
        ...(isWindows ? [process.cwd()] : []),
        ...(opt.path || process.env.PATH ||
          /* istanbul ignore next: very unusual */ '').split(colon),
      ]
    )
  const pathExtExe = isWindows
    ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'
    : ''
  const pathExt = isWindows ? pathExtExe.split(colon) : ['']

  if (isWindows) {
    if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')
      pathExt.unshift('')
  }

  return {
    pathEnv,
    pathExt,
    pathExtExe,
  }
}

const which = (cmd, opt, cb) => {
  if (typeof opt === 'function') {
    cb = opt
    opt = {}
  }
  if (!opt)
    opt = {}

  const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)
  const found = []

  const step = i => new Promise((resolve, reject) => {
    if (i === pathEnv.length)
      return opt.all && found.length ? resolve(found)
        : reject(getNotFoundError(cmd))

    const ppRaw = pathEnv[i]
    const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw

    const pCmd = path.join(pathPart, cmd)
    const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd
      : pCmd

    resolve(subStep(p, i, 0))
  })

  const subStep = (p, i, ii) => new Promise((resolve, reject) => {
    if (ii === pathExt.length)
      return resolve(step(i + 1))
    const ext = pathExt[ii]
    isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {
      if (!er && is) {
        if (opt.all)
          found.push(p + ext)
        else
          return resolve(p + ext)
      }
      return resolve(subStep(p, i, ii + 1))
    })
  })

  return cb ? step(0).then(res => cb(null, res), cb) : step(0)
}

const whichSync = (cmd, opt) => {
  opt = opt || {}

  const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)
  const found = []

  for (let i = 0; i < pathEnv.length; i ++) {
    const ppRaw = pathEnv[i]
    const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw

    const pCmd = path.join(pathPart, cmd)
    const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd
      : pCmd

    for (let j = 0; j < pathExt.length; j ++) {
      const cur = p + pathExt[j]
      try {
        const is = isexe.sync(cur, { pathExt: pathExtExe })
        if (is) {
          if (opt.all)
            found.push(cur)
          else
            return cur
        }
      } catch (ex) {}
    }
  }

  if (opt.all && found.length)
    return found

  if (opt.nothrow)
    return null

  throw getNotFoundError(cmd)
}

module.exports = which
which.sync = whichSync
#!/usr/bin/env node
var which = require("../")
if (process.argv.length < 3)
  usage()

function usage () {
  console.error('usage: which [-as] program ...')
  process.exit(1)
}

var all = false
var silent = false
var dashdash = false
var args = process.argv.slice(2).filter(function (arg) {
  if (dashdash || !/^-/.test(arg))
    return true

  if (arg === '--') {
    dashdash = true
    return false
  }

  var flags = arg.substr(1).split('')
  for (var f = 0; f < flags.length; f++) {
    var flag = flags[f]
    switch (flag) {
      case 's':
        silent = true
        break
      case 'a':
        all = true
        break
      default:
        console.error('which: illegal option -- ' + flag)
        usage()
    }
  }
  return false
})

process.exit(args.reduce(function (pv, current) {
  try {
    var f = which.sync(current, { all: all })
    if (all)
      f = f.join('\n')
    if (!silent)
      console.log(f)
    return pv;
  } catch (e) {
    return 1;
  }
}, 0))
The ISC License

Copyright (c) Isaac Z. Schlueter and Contributors

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
{
  "name": "wrappy",
  "version": "1.0.2",
  "description": "Callback wrapping utility",
  "main": "wrappy.js",
  "files": [
    "wrappy.js"
  ],
  "directories": {
    "test": "test"
  },
  "dependencies": {},
  "devDependencies": {
    "tap": "^2.3.1"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/npm/wrappy"
  },
  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
  "license": "ISC",
  "homepage": "https://github.com/npm/wrappy"
}// Returns a wrapper function that returns a wrapped callback
// The wrapper function should do some stuff, and return a
// presumably different callback function.
// This makes sure that own properties are retained, so that
// decorations and such are not lost along the way.
module.exports = wrappy
function wrappy (fn, cb) {
  if (fn && cb) return wrappy(fn)(cb)

  if (typeof fn !== 'function')
    throw new TypeError('need wrapper function')

  Object.keys(fn).forEach(function (k) {
    wrapper[k] = fn[k]
  })

  return wrapper

  function wrapper() {
    var args = new Array(arguments.length)
    for (var i = 0; i < args.length; i++) {
      args[i] = arguments[i]
    }
    var ret = fn.apply(this, args)
    var cb = args[args.length-1]
    if (typeof ret === 'function' && ret !== cb) {
      Object.keys(cb).forEach(function (k) {
        ret[k] = cb[k]
      })
    }
    return ret
  }
}
(The MIT License)

Copyright (c) 2011-2017 JP Richardson

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files
(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify,
 merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "fs-extra",
  "version": "10.1.0",
  "description": "fs-extra contains methods that aren't included in the vanilla Node.js fs package. Such as recursive mkdir, copy, and remove.",
  "engines": {
    "node": ">=12"
  },
  "homepage": "https://github.com/jprichardson/node-fs-extra",
  "repository": {
    "type": "git",
    "url": "https://github.com/jprichardson/node-fs-extra"
  },
  "author": "JP Richardson <jprichardson@gmail.com>",
  "license": "MIT",
  "dependencies": {
    "graceful-fs": "^4.2.0",
    "jsonfile": "^6.0.1",
    "universalify": "^2.0.0"
  },
  "devDependencies": {
    "at-least-node": "^1.0.0",
    "klaw": "^2.1.1",
    "klaw-sync": "^3.0.2",
    "minimist": "^1.1.1",
    "mocha": "^5.0.5",
    "nyc": "^15.0.0",
    "proxyquire": "^2.0.1",
    "read-dir-files": "^0.1.1",
    "standard": "^16.0.3"
  },
  "main": "./lib/index.js",
  "files": [
    "lib/",
    "!lib/**/__tests__/"
  ],
  "sideEffects": false
}'use strict'

module.exports = {
  // Export promiseified graceful-fs:
  ...require('./fs'),
  // Export extra methods:
  ...require('./copy'),
  ...require('./empty'),
  ...require('./ensure'),
  ...require('./json'),
  ...require('./mkdirs'),
  ...require('./move'),
  ...require('./output-file'),
  ...require('./path-exists'),
  ...require('./remove')
}
'use strict'

const fs = require('../fs')
const path = require('path')
const util = require('util')

function getStats (src, dest, opts) {
  const statFunc = opts.dereference
    ? (file) => fs.stat(file, { bigint: true })
    : (file) => fs.lstat(file, { bigint: true })
  return Promise.all([
    statFunc(src),
    statFunc(dest).catch(err => {
      if (err.code === 'ENOENT') return null
      throw err
    })
  ]).then(([srcStat, destStat]) => ({ srcStat, destStat }))
}

function getStatsSync (src, dest, opts) {
  let destStat
  const statFunc = opts.dereference
    ? (file) => fs.statSync(file, { bigint: true })
    : (file) => fs.lstatSync(file, { bigint: true })
  const srcStat = statFunc(src)
  try {
    destStat = statFunc(dest)
  } catch (err) {
    if (err.code === 'ENOENT') return { srcStat, destStat: null }
    throw err
  }
  return { srcStat, destStat }
}

function checkPaths (src, dest, funcName, opts, cb) {
  util.callbackify(getStats)(src, dest, opts, (err, stats) => {
    if (err) return cb(err)
    const { srcStat, destStat } = stats

    if (destStat) {
      if (areIdentical(srcStat, destStat)) {
        const srcBaseName = path.basename(src)
        const destBaseName = path.basename(dest)
        if (funcName === 'move' &&
          srcBaseName !== destBaseName &&
          srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {
          return cb(null, { srcStat, destStat, isChangingCase: true })
        }
        return cb(new Error('Source and destination must not be the same.'))
      }
      if (srcStat.isDirectory() && !destStat.isDirectory()) {
        return cb(new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`))
      }
      if (!srcStat.isDirectory() && destStat.isDirectory()) {
        return cb(new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`))
      }
    }

    if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
      return cb(new Error(errMsg(src, dest, funcName)))
    }
    return cb(null, { srcStat, destStat })
  })
}

function checkPathsSync (src, dest, funcName, opts) {
  const { srcStat, destStat } = getStatsSync(src, dest, opts)

  if (destStat) {
    if (areIdentical(srcStat, destStat)) {
      const srcBaseName = path.basename(src)
      const destBaseName = path.basename(dest)
      if (funcName === 'move' &&
        srcBaseName !== destBaseName &&
        srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {
        return { srcStat, destStat, isChangingCase: true }
      }
      throw new Error('Source and destination must not be the same.')
    }
    if (srcStat.isDirectory() && !destStat.isDirectory()) {
      throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)
    }
    if (!srcStat.isDirectory() && destStat.isDirectory()) {
      throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`)
    }
  }

  if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
    throw new Error(errMsg(src, dest, funcName))
  }
  return { srcStat, destStat }
}

// recursively check if dest parent is a subdirectory of src.
// It works for all file types including symlinks since it
// checks the src and dest inodes. It starts from the deepest
// parent and stops once it reaches the src parent or the root path.
function checkParentPaths (src, srcStat, dest, funcName, cb) {
  const srcParent = path.resolve(path.dirname(src))
  const destParent = path.resolve(path.dirname(dest))
  if (destParent === srcParent || destParent === path.parse(destParent).root) return cb()
  fs.stat(destParent, { bigint: true }, (err, destStat) => {
    if (err) {
      if (err.code === 'ENOENT') return cb()
      return cb(err)
    }
    if (areIdentical(srcStat, destStat)) {
      return cb(new Error(errMsg(src, dest, funcName)))
    }
    return checkParentPaths(src, srcStat, destParent, funcName, cb)
  })
}

function checkParentPathsSync (src, srcStat, dest, funcName) {
  const srcParent = path.resolve(path.dirname(src))
  const destParent = path.resolve(path.dirname(dest))
  if (destParent === srcParent || destParent === path.parse(destParent).root) return
  let destStat
  try {
    destStat = fs.statSync(destParent, { bigint: true })
  } catch (err) {
    if (err.code === 'ENOENT') return
    throw err
  }
  if (areIdentical(srcStat, destStat)) {
    throw new Error(errMsg(src, dest, funcName))
  }
  return checkParentPathsSync(src, srcStat, destParent, funcName)
}

function areIdentical (srcStat, destStat) {
  return destStat.ino && destStat.dev && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev
}

// return true if dest is a subdir of src, otherwise false.
// It only checks the path strings.
function isSrcSubdir (src, dest) {
  const srcArr = path.resolve(src).split(path.sep).filter(i => i)
  const destArr = path.resolve(dest).split(path.sep).filter(i => i)
  return srcArr.reduce((acc, cur, i) => acc && destArr[i] === cur, true)
}

function errMsg (src, dest, funcName) {
  return `Cannot ${funcName} '${src}' to a subdirectory of itself, '${dest}'.`
}

module.exports = {
  checkPaths,
  checkPathsSync,
  checkParentPaths,
  checkParentPathsSync,
  isSrcSubdir,
  areIdentical
}
'use strict'

const fs = require('graceful-fs')

function utimesMillis (path, atime, mtime, callback) {
  // if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback)
  fs.open(path, 'r+', (err, fd) => {
    if (err) return callback(err)
    fs.futimes(fd, atime, mtime, futimesErr => {
      fs.close(fd, closeErr => {
        if (callback) callback(futimesErr || closeErr)
      })
    })
  })
}

function utimesMillisSync (path, atime, mtime) {
  const fd = fs.openSync(path, 'r+')
  fs.futimesSync(fd, atime, mtime)
  return fs.closeSync(fd)
}

module.exports = {
  utimesMillis,
  utimesMillisSync
}
'use strict'

const fs = require('graceful-fs')
const u = require('universalify').fromCallback
const rimraf = require('./rimraf')

function remove (path, callback) {
  // Node 14.14.0+
  if (fs.rm) return fs.rm(path, { recursive: true, force: true }, callback)
  rimraf(path, callback)
}

function removeSync (path) {
  // Node 14.14.0+
  if (fs.rmSync) return fs.rmSync(path, { recursive: true, force: true })
  rimraf.sync(path)
}

module.exports = {
  remove: u(remove),
  removeSync
}
'use strict'

const fs = require('graceful-fs')
const path = require('path')
const assert = require('assert')

const isWindows = (process.platform === 'win32')

function defaults (options) {
  const methods = [
    'unlink',
    'chmod',
    'stat',
    'lstat',
    'rmdir',
    'readdir'
  ]
  methods.forEach(m => {
    options[m] = options[m] || fs[m]
    m = m + 'Sync'
    options[m] = options[m] || fs[m]
  })

  options.maxBusyTries = options.maxBusyTries || 3
}

function rimraf (p, options, cb) {
  let busyTries = 0

  if (typeof options === 'function') {
    cb = options
    options = {}
  }

  assert(p, 'rimraf: missing path')
  assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')
  assert.strictEqual(typeof cb, 'function', 'rimraf: callback function required')
  assert(options, 'rimraf: invalid options argument provided')
  assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')

  defaults(options)

  rimraf_(p, options, function CB (er) {
    if (er) {
      if ((er.code === 'EBUSY' || er.code === 'ENOTEMPTY' || er.code === 'EPERM') &&
          busyTries < options.maxBusyTries) {
        busyTries++
        const time = busyTries * 100
        // try again, with the same exact callback as this one.
        return setTimeout(() => rimraf_(p, options, CB), time)
      }

      // already gone
      if (er.code === 'ENOENT') er = null
    }

    cb(er)
  })
}

// Two possible strategies.
// 1. Assume it's a file.  unlink it, then do the dir stuff on EPERM or EISDIR
// 2. Assume it's a directory.  readdir, then do the file stuff on ENOTDIR
//
// Both result in an extra syscall when you guess wrong.  However, there
// are likely far more normal files in the world than directories.  This
// is based on the assumption that a the average number of files per
// directory is >= 1.
//
// If anyone ever complains about this, then I guess the strategy could
// be made configurable somehow.  But until then, YAGNI.
function rimraf_ (p, options, cb) {
  assert(p)
  assert(options)
  assert(typeof cb === 'function')

  // sunos lets the root user unlink directories, which is... weird.
  // so we have to lstat here and make sure it's not a dir.
  options.lstat(p, (er, st) => {
    if (er && er.code === 'ENOENT') {
      return cb(null)
    }

    // Windows can EPERM on stat.  Life is suffering.
    if (er && er.code === 'EPERM' && isWindows) {
      return fixWinEPERM(p, options, er, cb)
    }

    if (st && st.isDirectory()) {
      return rmdir(p, options, er, cb)
    }

    options.unlink(p, er => {
      if (er) {
        if (er.code === 'ENOENT') {
          return cb(null)
        }
        if (er.code === 'EPERM') {
          return (isWindows)
            ? fixWinEPERM(p, options, er, cb)
            : rmdir(p, options, er, cb)
        }
        if (er.code === 'EISDIR') {
          return rmdir(p, options, er, cb)
        }
      }
      return cb(er)
    })
  })
}

function fixWinEPERM (p, options, er, cb) {
  assert(p)
  assert(options)
  assert(typeof cb === 'function')

  options.chmod(p, 0o666, er2 => {
    if (er2) {
      cb(er2.code === 'ENOENT' ? null : er)
    } else {
      options.stat(p, (er3, stats) => {
        if (er3) {
          cb(er3.code === 'ENOENT' ? null : er)
        } else if (stats.isDirectory()) {
          rmdir(p, options, er, cb)
        } else {
          options.unlink(p, cb)
        }
      })
    }
  })
}

function fixWinEPERMSync (p, options, er) {
  let stats

  assert(p)
  assert(options)

  try {
    options.chmodSync(p, 0o666)
  } catch (er2) {
    if (er2.code === 'ENOENT') {
      return
    } else {
      throw er
    }
  }

  try {
    stats = options.statSync(p)
  } catch (er3) {
    if (er3.code === 'ENOENT') {
      return
    } else {
      throw er
    }
  }

  if (stats.isDirectory()) {
    rmdirSync(p, options, er)
  } else {
    options.unlinkSync(p)
  }
}

function rmdir (p, options, originalEr, cb) {
  assert(p)
  assert(options)
  assert(typeof cb === 'function')

  // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)
  // if we guessed wrong, and it's not a directory, then
  // raise the original error.
  options.rmdir(p, er => {
    if (er && (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM')) {
      rmkids(p, options, cb)
    } else if (er && er.code === 'ENOTDIR') {
      cb(originalEr)
    } else {
      cb(er)
    }
  })
}

function rmkids (p, options, cb) {
  assert(p)
  assert(options)
  assert(typeof cb === 'function')

  options.readdir(p, (er, files) => {
    if (er) return cb(er)

    let n = files.length
    let errState

    if (n === 0) return options.rmdir(p, cb)

    files.forEach(f => {
      rimraf(path.join(p, f), options, er => {
        if (errState) {
          return
        }
        if (er) return cb(errState = er)
        if (--n === 0) {
          options.rmdir(p, cb)
        }
      })
    })
  })
}

// this looks simpler, and is strictly *faster*, but will
// tie up the JavaScript thread and fail on excessively
// deep directory trees.
function rimrafSync (p, options) {
  let st

  options = options || {}
  defaults(options)

  assert(p, 'rimraf: missing path')
  assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')
  assert(options, 'rimraf: missing options')
  assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')

  try {
    st = options.lstatSync(p)
  } catch (er) {
    if (er.code === 'ENOENT') {
      return
    }

    // Windows can EPERM on stat.  Life is suffering.
    if (er.code === 'EPERM' && isWindows) {
      fixWinEPERMSync(p, options, er)
    }
  }

  try {
    // sunos lets the root user unlink directories, which is... weird.
    if (st && st.isDirectory()) {
      rmdirSync(p, options, null)
    } else {
      options.unlinkSync(p)
    }
  } catch (er) {
    if (er.code === 'ENOENT') {
      return
    } else if (er.code === 'EPERM') {
      return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)
    } else if (er.code !== 'EISDIR') {
      throw er
    }
    rmdirSync(p, options, er)
  }
}

function rmdirSync (p, options, originalEr) {
  assert(p)
  assert(options)

  try {
    options.rmdirSync(p)
  } catch (er) {
    if (er.code === 'ENOTDIR') {
      throw originalEr
    } else if (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM') {
      rmkidsSync(p, options)
    } else if (er.code !== 'ENOENT') {
      throw er
    }
  }
}

function rmkidsSync (p, options) {
  assert(p)
  assert(options)
  options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options))

  if (isWindows) {
    // We only end up here once we got ENOTEMPTY at least once, and
    // at this point, we are guaranteed to have removed all the kids.
    // So, we know that it won't be ENOENT or ENOTDIR or anything else.
    // try really hard to delete stuff on windows, because it has a
    // PROFOUNDLY annoying habit of not closing handles promptly when
    // files are deleted, resulting in spurious ENOTEMPTY errors.
    const startTime = Date.now()
    do {
      try {
        const ret = options.rmdirSync(p, options)
        return ret
      } catch {}
    } while (Date.now() - startTime < 500) // give up after 500ms
  } else {
    const ret = options.rmdirSync(p, options)
    return ret
  }
}

module.exports = rimraf
rimraf.sync = rimrafSync
'use strict'
const u = require('universalify').fromPromise
const fs = require('../fs')

function pathExists (path) {
  return fs.access(path).then(() => true).catch(() => false)
}

module.exports = {
  pathExists: u(pathExists),
  pathExistsSync: fs.existsSync
}
'use strict'

const u = require('universalify').fromCallback
const fs = require('graceful-fs')
const path = require('path')
const mkdir = require('../mkdirs')
const pathExists = require('../path-exists').pathExists

function outputFile (file, data, encoding, callback) {
  if (typeof encoding === 'function') {
    callback = encoding
    encoding = 'utf8'
  }

  const dir = path.dirname(file)
  pathExists(dir, (err, itDoes) => {
    if (err) return callback(err)
    if (itDoes) return fs.writeFile(file, data, encoding, callback)

    mkdir.mkdirs(dir, err => {
      if (err) return callback(err)

      fs.writeFile(file, data, encoding, callback)
    })
  })
}

function outputFileSync (file, ...args) {
  const dir = path.dirname(file)
  if (fs.existsSync(dir)) {
    return fs.writeFileSync(file, ...args)
  }
  mkdir.mkdirsSync(dir)
  fs.writeFileSync(file, ...args)
}

module.exports = {
  outputFile: u(outputFile),
  outputFileSync
}
'use strict'

const u = require('universalify').fromCallback
module.exports = {
  move: u(require('./move')),
  moveSync: require('./move-sync')
}
'use strict'

const fs = require('graceful-fs')
const path = require('path')
const copySync = require('../copy').copySync
const removeSync = require('../remove').removeSync
const mkdirpSync = require('../mkdirs').mkdirpSync
const stat = require('../util/stat')

function moveSync (src, dest, opts) {
  opts = opts || {}
  const overwrite = opts.overwrite || opts.clobber || false

  const { srcStat, isChangingCase = false } = stat.checkPathsSync(src, dest, 'move', opts)
  stat.checkParentPathsSync(src, srcStat, dest, 'move')
  if (!isParentRoot(dest)) mkdirpSync(path.dirname(dest))
  return doRename(src, dest, overwrite, isChangingCase)
}

function isParentRoot (dest) {
  const parent = path.dirname(dest)
  const parsedPath = path.parse(parent)
  return parsedPath.root === parent
}

function doRename (src, dest, overwrite, isChangingCase) {
  if (isChangingCase) return rename(src, dest, overwrite)
  if (overwrite) {
    removeSync(dest)
    return rename(src, dest, overwrite)
  }
  if (fs.existsSync(dest)) throw new Error('dest already exists.')
  return rename(src, dest, overwrite)
}

function rename (src, dest, overwrite) {
  try {
    fs.renameSync(src, dest)
  } catch (err) {
    if (err.code !== 'EXDEV') throw err
    return moveAcrossDevice(src, dest, overwrite)
  }
}

function moveAcrossDevice (src, dest, overwrite) {
  const opts = {
    overwrite,
    errorOnExist: true
  }
  copySync(src, dest, opts)
  return removeSync(src)
}

module.exports = moveSync
'use strict'

const fs = require('graceful-fs')
const path = require('path')
const copy = require('../copy').copy
const remove = require('../remove').remove
const mkdirp = require('../mkdirs').mkdirp
const pathExists = require('../path-exists').pathExists
const stat = require('../util/stat')

function move (src, dest, opts, cb) {
  if (typeof opts === 'function') {
    cb = opts
    opts = {}
  }

  opts = opts || {}

  const overwrite = opts.overwrite || opts.clobber || false

  stat.checkPaths(src, dest, 'move', opts, (err, stats) => {
    if (err) return cb(err)
    const { srcStat, isChangingCase = false } = stats
    stat.checkParentPaths(src, srcStat, dest, 'move', err => {
      if (err) return cb(err)
      if (isParentRoot(dest)) return doRename(src, dest, overwrite, isChangingCase, cb)
      mkdirp(path.dirname(dest), err => {
        if (err) return cb(err)
        return doRename(src, dest, overwrite, isChangingCase, cb)
      })
    })
  })
}

function isParentRoot (dest) {
  const parent = path.dirname(dest)
  const parsedPath = path.parse(parent)
  return parsedPath.root === parent
}

function doRename (src, dest, overwrite, isChangingCase, cb) {
  if (isChangingCase) return rename(src, dest, overwrite, cb)
  if (overwrite) {
    return remove(dest, err => {
      if (err) return cb(err)
      return rename(src, dest, overwrite, cb)
    })
  }
  pathExists(dest, (err, destExists) => {
    if (err) return cb(err)
    if (destExists) return cb(new Error('dest already exists.'))
    return rename(src, dest, overwrite, cb)
  })
}

function rename (src, dest, overwrite, cb) {
  fs.rename(src, dest, err => {
    if (!err) return cb()
    if (err.code !== 'EXDEV') return cb(err)
    return moveAcrossDevice(src, dest, overwrite, cb)
  })
}

function moveAcrossDevice (src, dest, overwrite, cb) {
  const opts = {
    overwrite,
    errorOnExist: true
  }
  copy(src, dest, opts, err => {
    if (err) return cb(err)
    return remove(src, cb)
  })
}

module.exports = move
'use strict'
const u = require('universalify').fromPromise
const { makeDir: _makeDir, makeDirSync } = require('./make-dir')
const makeDir = u(_makeDir)

module.exports = {
  mkdirs: makeDir,
  mkdirsSync: makeDirSync,
  // alias
  mkdirp: makeDir,
  mkdirpSync: makeDirSync,
  ensureDir: makeDir,
  ensureDirSync: makeDirSync
}
'use strict'
const fs = require('../fs')
const { checkPath } = require('./utils')

const getMode = options => {
  const defaults = { mode: 0o777 }
  if (typeof options === 'number') return options
  return ({ ...defaults, ...options }).mode
}

module.exports.makeDir = async (dir, options) => {
  checkPath(dir)

  return fs.mkdir(dir, {
    mode: getMode(options),
    recursive: true
  })
}

module.exports.makeDirSync = (dir, options) => {
  checkPath(dir)

  return fs.mkdirSync(dir, {
    mode: getMode(options),
    recursive: true
  })
}
// Adapted from https://github.com/sindresorhus/make-dir
// Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
'use strict'
const path = require('path')

// https://github.com/nodejs/node/issues/8987
// https://github.com/libuv/libuv/pull/1088
module.exports.checkPath = function checkPath (pth) {
  if (process.platform === 'win32') {
    const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path.parse(pth).root, ''))

    if (pathHasInvalidWinCharacters) {
      const error = new Error(`Path contains invalid characters: ${pth}`)
      error.code = 'EINVAL'
      throw error
    }
  }
}
'use strict'

const u = require('universalify').fromPromise
const jsonFile = require('./jsonfile')

jsonFile.outputJson = u(require('./output-json'))
jsonFile.outputJsonSync = require('./output-json-sync')
// aliases
jsonFile.outputJSON = jsonFile.outputJson
jsonFile.outputJSONSync = jsonFile.outputJsonSync
jsonFile.writeJSON = jsonFile.writeJson
jsonFile.writeJSONSync = jsonFile.writeJsonSync
jsonFile.readJSON = jsonFile.readJson
jsonFile.readJSONSync = jsonFile.readJsonSync

module.exports = jsonFile
'use strict'

const jsonFile = require('jsonfile')

module.exports = {
  // jsonfile exports
  readJson: jsonFile.readFile,
  readJsonSync: jsonFile.readFileSync,
  writeJson: jsonFile.writeFile,
  writeJsonSync: jsonFile.writeFileSync
}
'use strict'

const { stringify } = require('jsonfile/utils')
const { outputFileSync } = require('../output-file')

function outputJsonSync (file, data, options) {
  const str = stringify(data, options)

  outputFileSync(file, str, options)
}

module.exports = outputJsonSync
'use strict'

const { stringify } = require('jsonfile/utils')
const { outputFile } = require('../output-file')

async function outputJson (file, data, options = {}) {
  const str = stringify(data, options)

  await outputFile(file, str, options)
}

module.exports = outputJson
'use strict'
// This is adapted from https://github.com/normalize/mz
// Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors
const u = require('universalify').fromCallback
const fs = require('graceful-fs')

const api = [
  'access',
  'appendFile',
  'chmod',
  'chown',
  'close',
  'copyFile',
  'fchmod',
  'fchown',
  'fdatasync',
  'fstat',
  'fsync',
  'ftruncate',
  'futimes',
  'lchmod',
  'lchown',
  'link',
  'lstat',
  'mkdir',
  'mkdtemp',
  'open',
  'opendir',
  'readdir',
  'readFile',
  'readlink',
  'realpath',
  'rename',
  'rm',
  'rmdir',
  'stat',
  'symlink',
  'truncate',
  'unlink',
  'utimes',
  'writeFile'
].filter(key => {
  // Some commands are not available on some systems. Ex:
  // fs.opendir was added in Node.js v12.12.0
  // fs.rm was added in Node.js v14.14.0
  // fs.lchown is not available on at least some Linux
  return typeof fs[key] === 'function'
})

// Export cloned fs:
Object.assign(exports, fs)

// Universalify async methods:
api.forEach(method => {
  exports[method] = u(fs[method])
})

// We differ from mz/fs in that we still ship the old, broken, fs.exists()
// since we are a drop-in replacement for the native module
exports.exists = function (filename, callback) {
  if (typeof callback === 'function') {
    return fs.exists(filename, callback)
  }
  return new Promise(resolve => {
    return fs.exists(filename, resolve)
  })
}

// fs.read(), fs.write(), & fs.writev() need special treatment due to multiple callback args

exports.read = function (fd, buffer, offset, length, position, callback) {
  if (typeof callback === 'function') {
    return fs.read(fd, buffer, offset, length, position, callback)
  }
  return new Promise((resolve, reject) => {
    fs.read(fd, buffer, offset, length, position, (err, bytesRead, buffer) => {
      if (err) return reject(err)
      resolve({ bytesRead, buffer })
    })
  })
}

// Function signature can be
// fs.write(fd, buffer[, offset[, length[, position]]], callback)
// OR
// fs.write(fd, string[, position[, encoding]], callback)
// We need to handle both cases, so we use ...args
exports.write = function (fd, buffer, ...args) {
  if (typeof args[args.length - 1] === 'function') {
    return fs.write(fd, buffer, ...args)
  }

  return new Promise((resolve, reject) => {
    fs.write(fd, buffer, ...args, (err, bytesWritten, buffer) => {
      if (err) return reject(err)
      resolve({ bytesWritten, buffer })
    })
  })
}

// fs.writev only available in Node v12.9.0+
if (typeof fs.writev === 'function') {
  // Function signature is
  // s.writev(fd, buffers[, position], callback)
  // We need to handle the optional arg, so we use ...args
  exports.writev = function (fd, buffers, ...args) {
    if (typeof args[args.length - 1] === 'function') {
      return fs.writev(fd, buffers, ...args)
    }

    return new Promise((resolve, reject) => {
      fs.writev(fd, buffers, ...args, (err, bytesWritten, buffers) => {
        if (err) return reject(err)
        resolve({ bytesWritten, buffers })
      })
    })
  }
}

// fs.realpath.native sometimes not available if fs is monkey-patched
if (typeof fs.realpath.native === 'function') {
  exports.realpath.native = u(fs.realpath.native)
} else {
  process.emitWarning(
    'fs.realpath.native is not a function. Is fs being monkey-patched?',
    'Warning', 'fs-extra-WARN0003'
  )
}
'use strict'

const u = require('universalify').fromCallback
const path = require('path')
const fs = require('graceful-fs')
const mkdir = require('../mkdirs')

function createFile (file, callback) {
  function makeFile () {
    fs.writeFile(file, '', err => {
      if (err) return callback(err)
      callback()
    })
  }

  fs.stat(file, (err, stats) => { // eslint-disable-line handle-callback-err
    if (!err && stats.isFile()) return callback()
    const dir = path.dirname(file)
    fs.stat(dir, (err, stats) => {
      if (err) {
        // if the directory doesn't exist, make it
        if (err.code === 'ENOENT') {
          return mkdir.mkdirs(dir, err => {
            if (err) return callback(err)
            makeFile()
          })
        }
        return callback(err)
      }

      if (stats.isDirectory()) makeFile()
      else {
        // parent is not a directory
        // This is just to cause an internal ENOTDIR error to be thrown
        fs.readdir(dir, err => {
          if (err) return callback(err)
        })
      }
    })
  })
}

function createFileSync (file) {
  let stats
  try {
    stats = fs.statSync(file)
  } catch {}
  if (stats && stats.isFile()) return

  const dir = path.dirname(file)
  try {
    if (!fs.statSync(dir).isDirectory()) {
      // parent is not a directory
      // This is just to cause an internal ENOTDIR error to be thrown
      fs.readdirSync(dir)
    }
  } catch (err) {
    // If the stat call above failed because the directory doesn't exist, create it
    if (err && err.code === 'ENOENT') mkdir.mkdirsSync(dir)
    else throw err
  }

  fs.writeFileSync(file, '')
}

module.exports = {
  createFile: u(createFile),
  createFileSync
}
'use strict'

const { createFile, createFileSync } = require('./file')
const { createLink, createLinkSync } = require('./link')
const { createSymlink, createSymlinkSync } = require('./symlink')

module.exports = {
  // file
  createFile,
  createFileSync,
  ensureFile: createFile,
  ensureFileSync: createFileSync,
  // link
  createLink,
  createLinkSync,
  ensureLink: createLink,
  ensureLinkSync: createLinkSync,
  // symlink
  createSymlink,
  createSymlinkSync,
  ensureSymlink: createSymlink,
  ensureSymlinkSync: createSymlinkSync
}
'use strict'

const u = require('universalify').fromCallback
const path = require('path')
const fs = require('graceful-fs')
const mkdir = require('../mkdirs')
const pathExists = require('../path-exists').pathExists
const { areIdentical } = require('../util/stat')

function createLink (srcpath, dstpath, callback) {
  function makeLink (srcpath, dstpath) {
    fs.link(srcpath, dstpath, err => {
      if (err) return callback(err)
      callback(null)
    })
  }

  fs.lstat(dstpath, (_, dstStat) => {
    fs.lstat(srcpath, (err, srcStat) => {
      if (err) {
        err.message = err.message.replace('lstat', 'ensureLink')
        return callback(err)
      }
      if (dstStat && areIdentical(srcStat, dstStat)) return callback(null)

      const dir = path.dirname(dstpath)
      pathExists(dir, (err, dirExists) => {
        if (err) return callback(err)
        if (dirExists) return makeLink(srcpath, dstpath)
        mkdir.mkdirs(dir, err => {
          if (err) return callback(err)
          makeLink(srcpath, dstpath)
        })
      })
    })
  })
}

function createLinkSync (srcpath, dstpath) {
  let dstStat
  try {
    dstStat = fs.lstatSync(dstpath)
  } catch {}

  try {
    const srcStat = fs.lstatSync(srcpath)
    if (dstStat && areIdentical(srcStat, dstStat)) return
  } catch (err) {
    err.message = err.message.replace('lstat', 'ensureLink')
    throw err
  }

  const dir = path.dirname(dstpath)
  const dirExists = fs.existsSync(dir)
  if (dirExists) return fs.linkSync(srcpath, dstpath)
  mkdir.mkdirsSync(dir)

  return fs.linkSync(srcpath, dstpath)
}

module.exports = {
  createLink: u(createLink),
  createLinkSync
}
'use strict'

const path = require('path')
const fs = require('graceful-fs')
const pathExists = require('../path-exists').pathExists

/**
 * Function that returns two types of paths, one relative to symlink, and one
 * relative to the current working directory. Checks if path is absolute or
 * relative. If the path is relative, this function checks if the path is
 * relative to symlink or relative to current working directory. This is an
 * initiative to find a smarter `srcpath` to supply when building symlinks.
 * This allows you to determine which path to use out of one of three possible
 * types of source paths. The first is an absolute path. This is detected by
 * `path.isAbsolute()`. When an absolute path is provided, it is checked to
 * see if it exists. If it does it's used, if not an error is returned
 * (callback)/ thrown (sync). The other two options for `srcpath` are a
 * relative url. By default Node's `fs.symlink` works by creating a symlink
 * using `dstpath` and expects the `srcpath` to be relative to the newly
 * created symlink. If you provide a `srcpath` that does not exist on the file
 * system it results in a broken symlink. To minimize this, the function
 * checks to see if the 'relative to symlink' source file exists, and if it
 * does it will use it. If it does not, it checks if there's a file that
 * exists that is relative to the current working directory, if does its used.
 * This preserves the expectations of the original fs.symlink spec and adds
 * the ability to pass in `relative to current working direcotry` paths.
 */

function symlinkPaths (srcpath, dstpath, callback) {
  if (path.isAbsolute(srcpath)) {
    return fs.lstat(srcpath, (err) => {
      if (err) {
        err.message = err.message.replace('lstat', 'ensureSymlink')
        return callback(err)
      }
      return callback(null, {
        toCwd: srcpath,
        toDst: srcpath
      })
    })
  } else {
    const dstdir = path.dirname(dstpath)
    const relativeToDst = path.join(dstdir, srcpath)
    return pathExists(relativeToDst, (err, exists) => {
      if (err) return callback(err)
      if (exists) {
        return callback(null, {
          toCwd: relativeToDst,
          toDst: srcpath
        })
      } else {
        return fs.lstat(srcpath, (err) => {
          if (err) {
            err.message = err.message.replace('lstat', 'ensureSymlink')
            return callback(err)
          }
          return callback(null, {
            toCwd: srcpath,
            toDst: path.relative(dstdir, srcpath)
          })
        })
      }
    })
  }
}

function symlinkPathsSync (srcpath, dstpath) {
  let exists
  if (path.isAbsolute(srcpath)) {
    exists = fs.existsSync(srcpath)
    if (!exists) throw new Error('absolute srcpath does not exist')
    return {
      toCwd: srcpath,
      toDst: srcpath
    }
  } else {
    const dstdir = path.dirname(dstpath)
    const relativeToDst = path.join(dstdir, srcpath)
    exists = fs.existsSync(relativeToDst)
    if (exists) {
      return {
        toCwd: relativeToDst,
        toDst: srcpath
      }
    } else {
      exists = fs.existsSync(srcpath)
      if (!exists) throw new Error('relative srcpath does not exist')
      return {
        toCwd: srcpath,
        toDst: path.relative(dstdir, srcpath)
      }
    }
  }
}

module.exports = {
  symlinkPaths,
  symlinkPathsSync
}
'use strict'

const fs = require('graceful-fs')

function symlinkType (srcpath, type, callback) {
  callback = (typeof type === 'function') ? type : callback
  type = (typeof type === 'function') ? false : type
  if (type) return callback(null, type)
  fs.lstat(srcpath, (err, stats) => {
    if (err) return callback(null, 'file')
    type = (stats && stats.isDirectory()) ? 'dir' : 'file'
    callback(null, type)
  })
}

function symlinkTypeSync (srcpath, type) {
  let stats

  if (type) return type
  try {
    stats = fs.lstatSync(srcpath)
  } catch {
    return 'file'
  }
  return (stats && stats.isDirectory()) ? 'dir' : 'file'
}

module.exports = {
  symlinkType,
  symlinkTypeSync
}
'use strict'

const u = require('universalify').fromCallback
const path = require('path')
const fs = require('../fs')
const _mkdirs = require('../mkdirs')
const mkdirs = _mkdirs.mkdirs
const mkdirsSync = _mkdirs.mkdirsSync

const _symlinkPaths = require('./symlink-paths')
const symlinkPaths = _symlinkPaths.symlinkPaths
const symlinkPathsSync = _symlinkPaths.symlinkPathsSync

const _symlinkType = require('./symlink-type')
const symlinkType = _symlinkType.symlinkType
const symlinkTypeSync = _symlinkType.symlinkTypeSync

const pathExists = require('../path-exists').pathExists

const { areIdentical } = require('../util/stat')

function createSymlink (srcpath, dstpath, type, callback) {
  callback = (typeof type === 'function') ? type : callback
  type = (typeof type === 'function') ? false : type

  fs.lstat(dstpath, (err, stats) => {
    if (!err && stats.isSymbolicLink()) {
      Promise.all([
        fs.stat(srcpath),
        fs.stat(dstpath)
      ]).then(([srcStat, dstStat]) => {
        if (areIdentical(srcStat, dstStat)) return callback(null)
        _createSymlink(srcpath, dstpath, type, callback)
      })
    } else _createSymlink(srcpath, dstpath, type, callback)
  })
}

function _createSymlink (srcpath, dstpath, type, callback) {
  symlinkPaths(srcpath, dstpath, (err, relative) => {
    if (err) return callback(err)
    srcpath = relative.toDst
    symlinkType(relative.toCwd, type, (err, type) => {
      if (err) return callback(err)
      const dir = path.dirname(dstpath)
      pathExists(dir, (err, dirExists) => {
        if (err) return callback(err)
        if (dirExists) return fs.symlink(srcpath, dstpath, type, callback)
        mkdirs(dir, err => {
          if (err) return callback(err)
          fs.symlink(srcpath, dstpath, type, callback)
        })
      })
    })
  })
}

function createSymlinkSync (srcpath, dstpath, type) {
  let stats
  try {
    stats = fs.lstatSync(dstpath)
  } catch {}
  if (stats && stats.isSymbolicLink()) {
    const srcStat = fs.statSync(srcpath)
    const dstStat = fs.statSync(dstpath)
    if (areIdentical(srcStat, dstStat)) return
  }

  const relative = symlinkPathsSync(srcpath, dstpath)
  srcpath = relative.toDst
  type = symlinkTypeSync(relative.toCwd, type)
  const dir = path.dirname(dstpath)
  const exists = fs.existsSync(dir)
  if (exists) return fs.symlinkSync(srcpath, dstpath, type)
  mkdirsSync(dir)
  return fs.symlinkSync(srcpath, dstpath, type)
}

module.exports = {
  createSymlink: u(createSymlink),
  createSymlinkSync
}
'use strict'

const u = require('universalify').fromPromise
const fs = require('../fs')
const path = require('path')
const mkdir = require('../mkdirs')
const remove = require('../remove')

const emptyDir = u(async function emptyDir (dir) {
  let items
  try {
    items = await fs.readdir(dir)
  } catch {
    return mkdir.mkdirs(dir)
  }

  return Promise.all(items.map(item => remove.remove(path.join(dir, item))))
})

function emptyDirSync (dir) {
  let items
  try {
    items = fs.readdirSync(dir)
  } catch {
    return mkdir.mkdirsSync(dir)
  }

  items.forEach(item => {
    item = path.join(dir, item)
    remove.removeSync(item)
  })
}

module.exports = {
  emptyDirSync,
  emptydirSync: emptyDirSync,
  emptyDir,
  emptydir: emptyDir
}
'use strict'

const fs = require('graceful-fs')
const path = require('path')
const mkdirsSync = require('../mkdirs').mkdirsSync
const utimesMillisSync = require('../util/utimes').utimesMillisSync
const stat = require('../util/stat')

function copySync (src, dest, opts) {
  if (typeof opts === 'function') {
    opts = { filter: opts }
  }

  opts = opts || {}
  opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now
  opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber

  // Warn about using preserveTimestamps on 32-bit node
  if (opts.preserveTimestamps && process.arch === 'ia32') {
    process.emitWarning(
      'Using the preserveTimestamps option in 32-bit node is not recommended;\n\n' +
      '\tsee https://github.com/jprichardson/node-fs-extra/issues/269',
      'Warning', 'fs-extra-WARN0002'
    )
  }

  const { srcStat, destStat } = stat.checkPathsSync(src, dest, 'copy', opts)
  stat.checkParentPathsSync(src, srcStat, dest, 'copy')
  return handleFilterAndCopy(destStat, src, dest, opts)
}

function handleFilterAndCopy (destStat, src, dest, opts) {
  if (opts.filter && !opts.filter(src, dest)) return
  const destParent = path.dirname(dest)
  if (!fs.existsSync(destParent)) mkdirsSync(destParent)
  return getStats(destStat, src, dest, opts)
}

function startCopy (destStat, src, dest, opts) {
  if (opts.filter && !opts.filter(src, dest)) return
  return getStats(destStat, src, dest, opts)
}

function getStats (destStat, src, dest, opts) {
  const statSync = opts.dereference ? fs.statSync : fs.lstatSync
  const srcStat = statSync(src)

  if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts)
  else if (srcStat.isFile() ||
           srcStat.isCharacterDevice() ||
           srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts)
  else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts)
  else if (srcStat.isSocket()) throw new Error(`Cannot copy a socket file: ${src}`)
  else if (srcStat.isFIFO()) throw new Error(`Cannot copy a FIFO pipe: ${src}`)
  throw new Error(`Unknown file: ${src}`)
}

function onFile (srcStat, destStat, src, dest, opts) {
  if (!destStat) return copyFile(srcStat, src, dest, opts)
  return mayCopyFile(srcStat, src, dest, opts)
}

function mayCopyFile (srcStat, src, dest, opts) {
  if (opts.overwrite) {
    fs.unlinkSync(dest)
    return copyFile(srcStat, src, dest, opts)
  } else if (opts.errorOnExist) {
    throw new Error(`'${dest}' already exists`)
  }
}

function copyFile (srcStat, src, dest, opts) {
  fs.copyFileSync(src, dest)
  if (opts.preserveTimestamps) handleTimestamps(srcStat.mode, src, dest)
  return setDestMode(dest, srcStat.mode)
}

function handleTimestamps (srcMode, src, dest) {
  // Make sure the file is writable before setting the timestamp
  // otherwise open fails with EPERM when invoked with 'r+'
  // (through utimes call)
  if (fileIsNotWritable(srcMode)) makeFileWritable(dest, srcMode)
  return setDestTimestamps(src, dest)
}

function fileIsNotWritable (srcMode) {
  return (srcMode & 0o200) === 0
}

function makeFileWritable (dest, srcMode) {
  return setDestMode(dest, srcMode | 0o200)
}

function setDestMode (dest, srcMode) {
  return fs.chmodSync(dest, srcMode)
}

function setDestTimestamps (src, dest) {
  // The initial srcStat.atime cannot be trusted
  // because it is modified by the read(2) system call
  // (See https://nodejs.org/api/fs.html#fs_stat_time_values)
  const updatedSrcStat = fs.statSync(src)
  return utimesMillisSync(dest, updatedSrcStat.atime, updatedSrcStat.mtime)
}

function onDir (srcStat, destStat, src, dest, opts) {
  if (!destStat) return mkDirAndCopy(srcStat.mode, src, dest, opts)
  return copyDir(src, dest, opts)
}

function mkDirAndCopy (srcMode, src, dest, opts) {
  fs.mkdirSync(dest)
  copyDir(src, dest, opts)
  return setDestMode(dest, srcMode)
}

function copyDir (src, dest, opts) {
  fs.readdirSync(src).forEach(item => copyDirItem(item, src, dest, opts))
}

function copyDirItem (item, src, dest, opts) {
  const srcItem = path.join(src, item)
  const destItem = path.join(dest, item)
  const { destStat } = stat.checkPathsSync(srcItem, destItem, 'copy', opts)
  return startCopy(destStat, srcItem, destItem, opts)
}

function onLink (destStat, src, dest, opts) {
  let resolvedSrc = fs.readlinkSync(src)
  if (opts.dereference) {
    resolvedSrc = path.resolve(process.cwd(), resolvedSrc)
  }

  if (!destStat) {
    return fs.symlinkSync(resolvedSrc, dest)
  } else {
    let resolvedDest
    try {
      resolvedDest = fs.readlinkSync(dest)
    } catch (err) {
      // dest exists and is a regular file or directory,
      // Windows may throw UNKNOWN error. If dest already exists,
      // fs throws error anyway, so no need to guard against it here.
      if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlinkSync(resolvedSrc, dest)
      throw err
    }
    if (opts.dereference) {
      resolvedDest = path.resolve(process.cwd(), resolvedDest)
    }
    if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {
      throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)
    }

    // prevent copy if src is a subdir of dest since unlinking
    // dest in this case would result in removing src contents
    // and therefore a broken symlink would be created.
    if (fs.statSync(dest).isDirectory() && stat.isSrcSubdir(resolvedDest, resolvedSrc)) {
      throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)
    }
    return copyLink(resolvedSrc, dest)
  }
}

function copyLink (resolvedSrc, dest) {
  fs.unlinkSync(dest)
  return fs.symlinkSync(resolvedSrc, dest)
}

module.exports = copySync
'use strict'

const fs = require('graceful-fs')
const path = require('path')
const mkdirs = require('../mkdirs').mkdirs
const pathExists = require('../path-exists').pathExists
const utimesMillis = require('../util/utimes').utimesMillis
const stat = require('../util/stat')

function copy (src, dest, opts, cb) {
  if (typeof opts === 'function' && !cb) {
    cb = opts
    opts = {}
  } else if (typeof opts === 'function') {
    opts = { filter: opts }
  }

  cb = cb || function () {}
  opts = opts || {}

  opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now
  opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber

  // Warn about using preserveTimestamps on 32-bit node
  if (opts.preserveTimestamps && process.arch === 'ia32') {
    process.emitWarning(
      'Using the preserveTimestamps option in 32-bit node is not recommended;\n\n' +
      '\tsee https://github.com/jprichardson/node-fs-extra/issues/269',
      'Warning', 'fs-extra-WARN0001'
    )
  }

  stat.checkPaths(src, dest, 'copy', opts, (err, stats) => {
    if (err) return cb(err)
    const { srcStat, destStat } = stats
    stat.checkParentPaths(src, srcStat, dest, 'copy', err => {
      if (err) return cb(err)
      if (opts.filter) return handleFilter(checkParentDir, destStat, src, dest, opts, cb)
      return checkParentDir(destStat, src, dest, opts, cb)
    })
  })
}

function checkParentDir (destStat, src, dest, opts, cb) {
  const destParent = path.dirname(dest)
  pathExists(destParent, (err, dirExists) => {
    if (err) return cb(err)
    if (dirExists) return getStats(destStat, src, dest, opts, cb)
    mkdirs(destParent, err => {
      if (err) return cb(err)
      return getStats(destStat, src, dest, opts, cb)
    })
  })
}

function handleFilter (onInclude, destStat, src, dest, opts, cb) {
  Promise.resolve(opts.filter(src, dest)).then(include => {
    if (include) return onInclude(destStat, src, dest, opts, cb)
    return cb()
  }, error => cb(error))
}

function startCopy (destStat, src, dest, opts, cb) {
  if (opts.filter) return handleFilter(getStats, destStat, src, dest, opts, cb)
  return getStats(destStat, src, dest, opts, cb)
}

function getStats (destStat, src, dest, opts, cb) {
  const stat = opts.dereference ? fs.stat : fs.lstat
  stat(src, (err, srcStat) => {
    if (err) return cb(err)

    if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts, cb)
    else if (srcStat.isFile() ||
             srcStat.isCharacterDevice() ||
             srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts, cb)
    else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts, cb)
    else if (srcStat.isSocket()) return cb(new Error(`Cannot copy a socket file: ${src}`))
    else if (srcStat.isFIFO()) return cb(new Error(`Cannot copy a FIFO pipe: ${src}`))
    return cb(new Error(`Unknown file: ${src}`))
  })
}

function onFile (srcStat, destStat, src, dest, opts, cb) {
  if (!destStat) return copyFile(srcStat, src, dest, opts, cb)
  return mayCopyFile(srcStat, src, dest, opts, cb)
}

function mayCopyFile (srcStat, src, dest, opts, cb) {
  if (opts.overwrite) {
    fs.unlink(dest, err => {
      if (err) return cb(err)
      return copyFile(srcStat, src, dest, opts, cb)
    })
  } else if (opts.errorOnExist) {
    return cb(new Error(`'${dest}' already exists`))
  } else return cb()
}

function copyFile (srcStat, src, dest, opts, cb) {
  fs.copyFile(src, dest, err => {
    if (err) return cb(err)
    if (opts.preserveTimestamps) return handleTimestampsAndMode(srcStat.mode, src, dest, cb)
    return setDestMode(dest, srcStat.mode, cb)
  })
}

function handleTimestampsAndMode (srcMode, src, dest, cb) {
  // Make sure the file is writable before setting the timestamp
  // otherwise open fails with EPERM when invoked with 'r+'
  // (through utimes call)
  if (fileIsNotWritable(srcMode)) {
    return makeFileWritable(dest, srcMode, err => {
      if (err) return cb(err)
      return setDestTimestampsAndMode(srcMode, src, dest, cb)
    })
  }
  return setDestTimestampsAndMode(srcMode, src, dest, cb)
}

function fileIsNotWritable (srcMode) {
  return (srcMode & 0o200) === 0
}

function makeFileWritable (dest, srcMode, cb) {
  return setDestMode(dest, srcMode | 0o200, cb)
}

function setDestTimestampsAndMode (srcMode, src, dest, cb) {
  setDestTimestamps(src, dest, err => {
    if (err) return cb(err)
    return setDestMode(dest, srcMode, cb)
  })
}

function setDestMode (dest, srcMode, cb) {
  return fs.chmod(dest, srcMode, cb)
}

function setDestTimestamps (src, dest, cb) {
  // The initial srcStat.atime cannot be trusted
  // because it is modified by the read(2) system call
  // (See https://nodejs.org/api/fs.html#fs_stat_time_values)
  fs.stat(src, (err, updatedSrcStat) => {
    if (err) return cb(err)
    return utimesMillis(dest, updatedSrcStat.atime, updatedSrcStat.mtime, cb)
  })
}

function onDir (srcStat, destStat, src, dest, opts, cb) {
  if (!destStat) return mkDirAndCopy(srcStat.mode, src, dest, opts, cb)
  return copyDir(src, dest, opts, cb)
}

function mkDirAndCopy (srcMode, src, dest, opts, cb) {
  fs.mkdir(dest, err => {
    if (err) return cb(err)
    copyDir(src, dest, opts, err => {
      if (err) return cb(err)
      return setDestMode(dest, srcMode, cb)
    })
  })
}

function copyDir (src, dest, opts, cb) {
  fs.readdir(src, (err, items) => {
    if (err) return cb(err)
    return copyDirItems(items, src, dest, opts, cb)
  })
}

function copyDirItems (items, src, dest, opts, cb) {
  const item = items.pop()
  if (!item) return cb()
  return copyDirItem(items, item, src, dest, opts, cb)
}

function copyDirItem (items, item, src, dest, opts, cb) {
  const srcItem = path.join(src, item)
  const destItem = path.join(dest, item)
  stat.checkPaths(srcItem, destItem, 'copy', opts, (err, stats) => {
    if (err) return cb(err)
    const { destStat } = stats
    startCopy(destStat, srcItem, destItem, opts, err => {
      if (err) return cb(err)
      return copyDirItems(items, src, dest, opts, cb)
    })
  })
}

function onLink (destStat, src, dest, opts, cb) {
  fs.readlink(src, (err, resolvedSrc) => {
    if (err) return cb(err)
    if (opts.dereference) {
      resolvedSrc = path.resolve(process.cwd(), resolvedSrc)
    }

    if (!destStat) {
      return fs.symlink(resolvedSrc, dest, cb)
    } else {
      fs.readlink(dest, (err, resolvedDest) => {
        if (err) {
          // dest exists and is a regular file or directory,
          // Windows may throw UNKNOWN error. If dest already exists,
          // fs throws error anyway, so no need to guard against it here.
          if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlink(resolvedSrc, dest, cb)
          return cb(err)
        }
        if (opts.dereference) {
          resolvedDest = path.resolve(process.cwd(), resolvedDest)
        }
        if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {
          return cb(new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`))
        }

        // do not copy if src is a subdir of dest since unlinking
        // dest in this case would result in removing src contents
        // and therefore a broken symlink would be created.
        if (destStat.isDirectory() && stat.isSrcSubdir(resolvedDest, resolvedSrc)) {
          return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`))
        }
        return copyLink(resolvedSrc, dest, cb)
      })
    }
  })
}

function copyLink (resolvedSrc, dest, cb) {
  fs.unlink(dest, err => {
    if (err) return cb(err)
    return fs.symlink(resolvedSrc, dest, cb)
  })
}

module.exports = copy
'use strict'

const u = require('universalify').fromCallback
module.exports = {
  copy: u(require('./copy')),
  copySync: require('./copy-sync')
}
(The MIT License)

Copyright (c) 2012-2015, JP Richardson <jprichardson@gmail.com>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files
(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify,
 merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
let _fs
try {
  _fs = require('graceful-fs')
} catch (_) {
  _fs = require('fs')
}
const universalify = require('universalify')
const { stringify, stripBom } = require('./utils')

async function _readFile (file, options = {}) {
  if (typeof options === 'string') {
    options = { encoding: options }
  }

  const fs = options.fs || _fs

  const shouldThrow = 'throws' in options ? options.throws : true

  let data = await universalify.fromCallback(fs.readFile)(file, options)

  data = stripBom(data)

  let obj
  try {
    obj = JSON.parse(data, options ? options.reviver : null)
  } catch (err) {
    if (shouldThrow) {
      err.message = `${file}: ${err.message}`
      throw err
    } else {
      return null
    }
  }

  return obj
}

const readFile = universalify.fromPromise(_readFile)

function readFileSync (file, options = {}) {
  if (typeof options === 'string') {
    options = { encoding: options }
  }

  const fs = options.fs || _fs

  const shouldThrow = 'throws' in options ? options.throws : true

  try {
    let content = fs.readFileSync(file, options)
    content = stripBom(content)
    return JSON.parse(content, options.reviver)
  } catch (err) {
    if (shouldThrow) {
      err.message = `${file}: ${err.message}`
      throw err
    } else {
      return null
    }
  }
}

async function _writeFile (file, obj, options = {}) {
  const fs = options.fs || _fs

  const str = stringify(obj, options)

  await universalify.fromCallback(fs.writeFile)(file, str, options)
}

const writeFile = universalify.fromPromise(_writeFile)

function writeFileSync (file, obj, options = {}) {
  const fs = options.fs || _fs

  const str = stringify(obj, options)
  // not sure if fs.writeFileSync returns anything, but just in case
  return fs.writeFileSync(file, str, options)
}

const jsonfile = {
  readFile,
  readFileSync,
  writeFile,
  writeFileSync
}

module.exports = jsonfile
{
  "name": "jsonfile",
  "version": "6.1.0",
  "description": "Easily read/write JSON files.",
  "repository": {
    "type": "git",
    "url": "git@github.com:jprichardson/node-jsonfile.git"
  },
  "author": "JP Richardson <jprichardson@gmail.com>",
  "license": "MIT",
  "dependencies": {
    "universalify": "^2.0.0"
  },
  "optionalDependencies": {
    "graceful-fs": "^4.1.6"
  },
  "devDependencies": {
    "mocha": "^8.2.0",
    "rimraf": "^2.4.0",
    "standard": "^16.0.1"
  },
  "main": "index.js",
  "files": [
    "index.js",
    "utils.js"
  ]
}function stringify (obj, { EOL = '\n', finalEOL = true, replacer = null, spaces } = {}) {
  const EOF = finalEOL ? EOL : ''
  const str = JSON.stringify(obj, replacer, spaces)

  return str.replace(/\n/g, EOL) + EOF
}

function stripBom (content) {
  // we do this because JSON.parse would convert it to a utf8 string if encoding wasn't specified
  if (Buffer.isBuffer(content)) content = content.toString('utf8')
  return content.replace(/^\uFEFF/, '')
}

module.exports = { stringify, stripBom }
(The MIT License)

Copyright (c) 2017, Ryan Zimmerman <opensrc@ryanzim.com>

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the 'Software'), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
'use strict'

exports.fromCallback = function (fn) {
  return Object.defineProperty(function (...args) {
    if (typeof args[args.length - 1] === 'function') fn.apply(this, args)
    else {
      return new Promise((resolve, reject) => {
        args.push((err, res) => (err != null) ? reject(err) : resolve(res))
        fn.apply(this, args)
      })
    }
  }, 'name', { value: fn.name })
}

exports.fromPromise = function (fn) {
  return Object.defineProperty(function (...args) {
    const cb = args[args.length - 1]
    if (typeof cb !== 'function') return fn.apply(this, args)
    else {
      args.pop()
      fn.apply(this, args).then(r => cb(null, r), cb)
    }
  }, 'name', { value: fn.name })
}
{
  "name": "universalify",
  "version": "2.0.1",
  "description": "Make a callback- or promise-based function support both promises and callbacks.",
  "homepage": "https://github.com/RyanZim/universalify#readme",
  "license": "MIT",
  "author": "Ryan Zimmerman <opensrc@ryanzim.com>",
  "files": [
    "index.js"
  ],
  "repository": {
    "type": "git",
    "url": "git+https://github.com/RyanZim/universalify.git"
  },
  "devDependencies": {
    "colortape": "^0.1.2",
    "coveralls": "^3.0.1",
    "nyc": "^15.0.0",
    "standard": "^14.3.1",
    "tape": "^5.0.1"
  },
  "engines": {
    "node": ">= 10.0.0"
  }
}'use strict';
const {PassThrough: PassThroughStream} = require('stream');

module.exports = options => {
	options = {...options};

	const {array} = options;
	let {encoding} = options;
	const isBuffer = encoding === 'buffer';
	let objectMode = false;

	if (array) {
		objectMode = !(encoding || isBuffer);
	} else {
		encoding = encoding || 'utf8';
	}

	if (isBuffer) {
		encoding = null;
	}

	const stream = new PassThroughStream({objectMode});

	if (encoding) {
		stream.setEncoding(encoding);
	}

	let length = 0;
	const chunks = [];

	stream.on('data', chunk => {
		chunks.push(chunk);

		if (objectMode) {
			length = chunks.length;
		} else {
			length += chunk.length;
		}
	});

	stream.getBufferedValue = () => {
		if (array) {
			return chunks;
		}

		return isBuffer ? Buffer.concat(chunks, length) : chunks.join('');
	};

	stream.getBufferedLength = () => length;

	return stream;
};
'use strict';
const {constants: BufferConstants} = require('buffer');
const stream = require('stream');
const {promisify} = require('util');
const bufferStream = require('./buffer-stream');

const streamPipelinePromisified = promisify(stream.pipeline);

class MaxBufferError extends Error {
	constructor() {
		super('maxBuffer exceeded');
		this.name = 'MaxBufferError';
	}
}

async function getStream(inputStream, options) {
	if (!inputStream) {
		throw new Error('Expected a stream');
	}

	options = {
		maxBuffer: Infinity,
		...options
	};

	const {maxBuffer} = options;
	const stream = bufferStream(options);

	await new Promise((resolve, reject) => {
		const rejectPromise = error => {
			// Don't retrieve an oversized buffer.
			if (error && stream.getBufferedLength() <= BufferConstants.MAX_LENGTH) {
				error.bufferedData = stream.getBufferedValue();
			}

			reject(error);
		};

		(async () => {
			try {
				await streamPipelinePromisified(inputStream, stream);
				resolve();
			} catch (error) {
				rejectPromise(error);
			}
		})();

		stream.on('data', () => {
			if (stream.getBufferedLength() > maxBuffer) {
				rejectPromise(new MaxBufferError());
			}
		});
	});

	return stream.getBufferedValue();
}

module.exports = getStream;
module.exports.buffer = (stream, options) => getStream(stream, {...options, encoding: 'buffer'});
module.exports.array = (stream, options) => getStream(stream, {...options, array: true});
module.exports.MaxBufferError = MaxBufferError;
MIT License

Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{
  "name": "get-stream",
  "version": "6.0.1",
  "description": "Get a stream as a string, buffer, or array",
  "license": "MIT",
  "repository": "sindresorhus/get-stream",
  "funding": "https://github.com/sponsors/sindresorhus",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "https://sindresorhus.com"
  },
  "engines": {
    "node": ">=10"
  },
  "files": [
    "index.js",
    "index.d.ts",
    "buffer-stream.js"
  ],
  "devDependencies": {
    "@types/node": "^14.0.27",
    "ava": "^2.4.0",
    "into-stream": "^5.0.0",
    "tsd": "^0.13.1",
    "xo": "^0.24.0"
  }
}Copyright (c) 2013 Kael Zhang <i@kael.me>, contributors
http://kael.me/

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.// A simple implementation of make-array
function makeArray (subject) {
  return Array.isArray(subject)
    ? subject
    : [subject]
}

const EMPTY = ''
const SPACE = ' '
const ESCAPE = '\\'
const REGEX_TEST_BLANK_LINE = /^\s+$/
const REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/
const REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/
const REGEX_SPLITALL_CRLF = /\r?\n/g
// /foo,
// ./foo,
// ../foo,
// .
// ..
const REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/

const SLASH = '/'
const KEY_IGNORE = typeof Symbol !== 'undefined'
  ? Symbol.for('node-ignore')
  /* istanbul ignore next */
  : 'node-ignore'

const define = (object, key, value) =>
  Object.defineProperty(object, key, {value})

const REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g

const RETURN_FALSE = () => false

// Sanitize the range of a regular expression
// The cases are complicated, see test cases for details
const sanitizeRange = range => range.replace(
  REGEX_REGEXP_RANGE,
  (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0)
    ? match
    // Invalid range (out of order) which is ok for gitignore rules but
    //   fatal for JavaScript regular expression, so eliminate it.
    : EMPTY
)

// See fixtures #59
const cleanRangeBackSlash = slashes => {
  const {length} = slashes
  return slashes.slice(0, length - length % 2)
}

// > If the pattern ends with a slash,
// > it is removed for the purpose of the following description,
// > but it would only find a match with a directory.
// > In other words, foo/ will match a directory foo and paths underneath it,
// > but will not match a regular file or a symbolic link foo
// >  (this is consistent with the way how pathspec works in general in Git).
// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`'
// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call
//      you could use option `mark: true` with `glob`

// '`foo/`' should not continue with the '`..`'
const REPLACERS = [

  // > Trailing spaces are ignored unless they are quoted with backslash ("\")
  [
    // (a\ ) -> (a )
    // (a  ) -> (a)
    // (a \ ) -> (a  )
    /\\?\s+$/,
    match => match.indexOf('\\') === 0
      ? SPACE
      : EMPTY
  ],

  // replace (\ ) with ' '
  [
    /\\\s/g,
    () => SPACE
  ],

  // Escape metacharacters
  // which is written down by users but means special for regular expressions.

  // > There are 12 characters with special meanings:
  // > - the backslash \,
  // > - the caret ^,
  // > - the dollar sign $,
  // > - the period or dot .,
  // > - the vertical bar or pipe symbol |,
  // > - the question mark ?,
  // > - the asterisk or star *,
  // > - the plus sign +,
  // > - the opening parenthesis (,
  // > - the closing parenthesis ),
  // > - and the opening square bracket [,
  // > - the opening curly brace {,
  // > These special characters are often called "metacharacters".
  [
    /[\\$.|*+(){^]/g,
    match => `\\${match}`
  ],

  [
    // > a question mark (?) matches a single character
    /(?!\\)\?/g,
    () => '[^/]'
  ],

  // leading slash
  [

    // > A leading slash matches the beginning of the pathname.
    // > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c".
    // A leading slash matches the beginning of the pathname
    /^\//,
    () => '^'
  ],

  // replace special metacharacter slash after the leading slash
  [
    /\//g,
    () => '\\/'
  ],

  [
    // > A leading "**" followed by a slash means match in all directories.
    // > For example, "**/foo" matches file or directory "foo" anywhere,
    // > the same as pattern "foo".
    // > "**/foo/bar" matches file or directory "bar" anywhere that is directly
    // >   under directory "foo".
    // Notice that the '*'s have been replaced as '\\*'
    /^\^*\\\*\\\*\\\//,

    // '**/foo' <-> 'foo'
    () => '^(?:.*\\/)?'
  ],

  // starting
  [
    // there will be no leading '/'
    //   (which has been replaced by section "leading slash")
    // If starts with '**', adding a '^' to the regular expression also works
    /^(?=[^^])/,
    function startingReplacer () {
      // If has a slash `/` at the beginning or middle
      return !/\/(?!$)/.test(this)
        // > Prior to 2.22.1
        // > If the pattern does not contain a slash /,
        // >   Git treats it as a shell glob pattern
        // Actually, if there is only a trailing slash,
        //   git also treats it as a shell glob pattern

        // After 2.22.1 (compatible but clearer)
        // > If there is a separator at the beginning or middle (or both)
        // > of the pattern, then the pattern is relative to the directory
        // > level of the particular .gitignore file itself.
        // > Otherwise the pattern may also match at any level below
        // > the .gitignore level.
        ? '(?:^|\\/)'

        // > Otherwise, Git treats the pattern as a shell glob suitable for
        // >   consumption by fnmatch(3)
        : '^'
    }
  ],

  // two globstars
  [
    // Use lookahead assertions so that we could match more than one `'/**'`
    /\\\/\\\*\\\*(?=\\\/|$)/g,

    // Zero, one or several directories
    // should not use '*', or it will be replaced by the next replacer

    // Check if it is not the last `'/**'`
    (_, index, str) => index + 6 < str.length

      // case: /**/
      // > A slash followed by two consecutive asterisks then a slash matches
      // >   zero or more directories.
      // > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on.
      // '/**/'
      ? '(?:\\/[^\\/]+)*'

      // case: /**
      // > A trailing `"/**"` matches everything inside.

      // #21: everything inside but it should not include the current folder
      : '\\/.+'
  ],

  // intermediate wildcards
  [
    // Never replace escaped '*'
    // ignore rule '\*' will match the path '*'

    // 'abc.*/' -> go
    // 'abc.*'  -> skip this rule
    /(^|[^\\]+)\\\*(?=.+)/g,

    // '*.js' matches '.js'
    // '*.js' doesn't match 'abc'
    (_, p1) => `${p1}[^\\/]*`
  ],

  [
    // unescape, revert step 3 except for back slash
    // For example, if a user escape a '\\*',
    // after step 3, the result will be '\\\\\\*'
    /\\\\\\(?=[$.|*+(){^])/g,
    () => ESCAPE
  ],

  [
    // '\\\\' -> '\\'
    /\\\\/g,
    () => ESCAPE
  ],

  [
    // > The range notation, e.g. [a-zA-Z],
    // > can be used to match one of the characters in a range.

    // `\` is escaped by step 3
    /(\\)?\[([^\]/]*?)(\\*)($|\])/g,
    (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE
      // '\\[bar]' -> '\\\\[bar\\]'
      ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}`
      : close === ']'
        ? endEscape.length % 2 === 0
          // A normal case, and it is a range notation
          // '[bar]'
          // '[bar\\\\]'
          ? `[${sanitizeRange(range)}${endEscape}]`
          // Invalid range notaton
          // '[bar\\]' -> '[bar\\\\]'
          : '[]'
        : '[]'
  ],

  // ending
  [
    // 'js' will not match 'js.'
    // 'ab' will not match 'abc'
    /(?:[^*])$/,

    // WTF!
    // https://git-scm.com/docs/gitignore
    // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1)
    // which re-fixes #24, #38

    // > If there is a separator at the end of the pattern then the pattern
    // > will only match directories, otherwise the pattern can match both
    // > files and directories.

    // 'js*' will not match 'a.js'
    // 'js/' will not match 'a.js'
    // 'js' will match 'a.js' and 'a.js/'
    match => /\/$/.test(match)
      // foo/ will not match 'foo'
      ? `${match}$`
      // foo matches 'foo' and 'foo/'
      : `${match}(?=$|\\/$)`
  ],

  // trailing wildcard
  [
    /(\^|\\\/)?\\\*$/,
    (_, p1) => {
      const prefix = p1
        // '\^':
        // '/*' does not match EMPTY
        // '/*' does not match everything

        // '\\\/':
        // 'abc/*' does not match 'abc/'
        ? `${p1}[^/]+`

        // 'a*' matches 'a'
        // 'a*' matches 'aa'
        : '[^/]*'

      return `${prefix}(?=$|\\/$)`
    }
  ],
]

// A simple cache, because an ignore rule only has only one certain meaning
const regexCache = Object.create(null)

// @param {pattern}
const makeRegex = (pattern, ignoreCase) => {
  let source = regexCache[pattern]

  if (!source) {
    source = REPLACERS.reduce(
      (prev, current) => prev.replace(current[0], current[1].bind(pattern)),
      pattern
    )
    regexCache[pattern] = source
  }

  return ignoreCase
    ? new RegExp(source, 'i')
    : new RegExp(source)
}

const isString = subject => typeof subject === 'string'

// > A blank line matches no files, so it can serve as a separator for readability.
const checkPattern = pattern => pattern
  && isString(pattern)
  && !REGEX_TEST_BLANK_LINE.test(pattern)

  // > A line starting with # serves as a comment.
  && pattern.indexOf('#') !== 0

const splitPattern = pattern => pattern.split(REGEX_SPLITALL_CRLF)

class IgnoreRule {
  constructor (
    origin,
    pattern,
    negative,
    regex
  ) {
    this.origin = origin
    this.pattern = pattern
    this.negative = negative
    this.regex = regex
  }
}

const createRule = (pattern, ignoreCase) => {
  const origin = pattern
  let negative = false

  // > An optional prefix "!" which negates the pattern;
  if (pattern.indexOf('!') === 0) {
    negative = true
    pattern = pattern.substr(1)
  }

  pattern = pattern
  // > Put a backslash ("\") in front of the first "!" for patterns that
  // >   begin with a literal "!", for example, `"\!important!.txt"`.
  .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!')
  // > Put a backslash ("\") in front of the first hash for patterns that
  // >   begin with a hash.
  .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#')

  const regex = makeRegex(pattern, ignoreCase)

  return new IgnoreRule(
    origin,
    pattern,
    negative,
    regex
  )
}

const throwError = (message, Ctor) => {
  throw new Ctor(message)
}

const checkPath = (path, originalPath, doThrow) => {
  if (!isString(path)) {
    return doThrow(
      `path must be a string, but got \`${originalPath}\``,
      TypeError
    )
  }

  // We don't know if we should ignore EMPTY, so throw
  if (!path) {
    return doThrow(`path must not be empty`, TypeError)
  }

  // Check if it is a relative path
  if (checkPath.isNotRelative(path)) {
    const r = '`path.relative()`d'
    return doThrow(
      `path should be a ${r} string, but got "${originalPath}"`,
      RangeError
    )
  }

  return true
}

const isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path)

checkPath.isNotRelative = isNotRelative
checkPath.convert = p => p

class Ignore {
  constructor ({
    ignorecase = true,
    ignoreCase = ignorecase,
    allowRelativePaths = false
  } = {}) {
    define(this, KEY_IGNORE, true)

    this._rules = []
    this._ignoreCase = ignoreCase
    this._allowRelativePaths = allowRelativePaths
    this._initCache()
  }

  _initCache () {
    this._ignoreCache = Object.create(null)
    this._testCache = Object.create(null)
  }

  _addPattern (pattern) {
    // #32
    if (pattern && pattern[KEY_IGNORE]) {
      this._rules = this._rules.concat(pattern._rules)
      this._added = true
      return
    }

    if (checkPattern(pattern)) {
      const rule = createRule(pattern, this._ignoreCase)
      this._added = true
      this._rules.push(rule)
    }
  }

  // @param {Array<string> | string | Ignore} pattern
  add (pattern) {
    this._added = false

    makeArray(
      isString(pattern)
        ? splitPattern(pattern)
        : pattern
    ).forEach(this._addPattern, this)

    // Some rules have just added to the ignore,
    // making the behavior changed.
    if (this._added) {
      this._initCache()
    }

    return this
  }

  // legacy
  addPattern (pattern) {
    return this.add(pattern)
  }

  //          |           ignored : unignored
  // negative |   0:0   |   0:1   |   1:0   |   1:1
  // -------- | ------- | ------- | ------- | --------
  //     0    |  TEST   |  TEST   |  SKIP   |    X
  //     1    |  TESTIF |  SKIP   |  TEST   |    X

  // - SKIP: always skip
  // - TEST: always test
  // - TESTIF: only test if checkUnignored
  // - X: that never happen

  // @param {boolean} whether should check if the path is unignored,
  //   setting `checkUnignored` to `false` could reduce additional
  //   path matching.

  // @returns {TestResult} true if a file is ignored
  _testOne (path, checkUnignored) {
    let ignored = false
    let unignored = false

    this._rules.forEach(rule => {
      const {negative} = rule
      if (
        unignored === negative && ignored !== unignored
        || negative && !ignored && !unignored && !checkUnignored
      ) {
        return
      }

      const matched = rule.regex.test(path)

      if (matched) {
        ignored = !negative
        unignored = negative
      }
    })

    return {
      ignored,
      unignored
    }
  }

  // @returns {TestResult}
  _test (originalPath, cache, checkUnignored, slices) {
    const path = originalPath
      // Supports nullable path
      && checkPath.convert(originalPath)

    checkPath(
      path,
      originalPath,
      this._allowRelativePaths
        ? RETURN_FALSE
        : throwError
    )

    return this._t(path, cache, checkUnignored, slices)
  }

  _t (path, cache, checkUnignored, slices) {
    if (path in cache) {
      return cache[path]
    }

    if (!slices) {
      // path/to/a.js
      // ['path', 'to', 'a.js']
      slices = path.split(SLASH)
    }

    slices.pop()

    // If the path has no parent directory, just test it
    if (!slices.length) {
      return cache[path] = this._testOne(path, checkUnignored)
    }

    const parent = this._t(
      slices.join(SLASH) + SLASH,
      cache,
      checkUnignored,
      slices
    )

    // If the path contains a parent directory, check the parent first
    return cache[path] = parent.ignored
      // > It is not possible to re-include a file if a parent directory of
      // >   that file is excluded.
      ? parent
      : this._testOne(path, checkUnignored)
  }

  ignores (path) {
    return this._test(path, this._ignoreCache, false).ignored
  }

  createFilter () {
    return path => !this.ignores(path)
  }

  filter (paths) {
    return makeArray(paths).filter(this.createFilter())
  }

  // @returns {TestResult}
  test (path) {
    return this._test(path, this._testCache, true)
  }
}

const factory = options => new Ignore(options)

const isPathValid = path =>
  checkPath(path && checkPath.convert(path), path, RETURN_FALSE)

factory.isPathValid = isPathValid

// Fixes typescript
factory.default = factory

module.exports = factory

// Windows
// --------------------------------------------------------------
/* istanbul ignore if  */
if (
  // Detect `process` so that it can run in browsers.
  typeof process !== 'undefined'
  && (
    process.env && process.env.IGNORE_TEST_WIN32
    || process.platform === 'win32'
  )
) {
  /* eslint no-control-regex: "off" */
  const makePosix = str => /^\\\\\?\\/.test(str)
  || /["<>|\u0000-\u001F]+/u.test(str)
    ? str
    : str.replace(/\\/g, '/')

  checkPath.convert = makePosix

  // 'C:\\foo'     <- 'C:\\foo' has been converted to 'C:/'
  // 'd:\\foo'
  const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i
  checkPath.isNotRelative = path =>
    REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path)
    || isNotRelative(path)
}
"use strict";

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

// A simple implementation of make-array
function makeArray(subject) {
  return Array.isArray(subject) ? subject : [subject];
}

var EMPTY = '';
var SPACE = ' ';
var ESCAPE = '\\';
var REGEX_TEST_BLANK_LINE = /^\s+$/;
var REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/;
var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/;
var REGEX_SPLITALL_CRLF = /\r?\n/g; // /foo,
// ./foo,
// ../foo,
// .
// ..

var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/;
var SLASH = '/';
var KEY_IGNORE = typeof Symbol !== 'undefined' ? Symbol["for"]('node-ignore')
/* istanbul ignore next */
: 'node-ignore';

var define = function define(object, key, value) {
  return Object.defineProperty(object, key, {
    value: value
  });
};

var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g;

var RETURN_FALSE = function RETURN_FALSE() {
  return false;
}; // Sanitize the range of a regular expression
// The cases are complicated, see test cases for details


var sanitizeRange = function sanitizeRange(range) {
  return range.replace(REGEX_REGEXP_RANGE, function (match, from, to) {
    return from.charCodeAt(0) <= to.charCodeAt(0) ? match // Invalid range (out of order) which is ok for gitignore rules but
    //   fatal for JavaScript regular expression, so eliminate it.
    : EMPTY;
  });
}; // See fixtures #59


var cleanRangeBackSlash = function cleanRangeBackSlash(slashes) {
  var length = slashes.length;
  return slashes.slice(0, length - length % 2);
}; // > If the pattern ends with a slash,
// > it is removed for the purpose of the following description,
// > but it would only find a match with a directory.
// > In other words, foo/ will match a directory foo and paths underneath it,
// > but will not match a regular file or a symbolic link foo
// >  (this is consistent with the way how pathspec works in general in Git).
// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`'
// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call
//      you could use option `mark: true` with `glob`
// '`foo/`' should not continue with the '`..`'


var REPLACERS = [// > Trailing spaces are ignored unless they are quoted with backslash ("\")
[// (a\ ) -> (a )
// (a  ) -> (a)
// (a \ ) -> (a  )
/\\?\s+$/, function (match) {
  return match.indexOf('\\') === 0 ? SPACE : EMPTY;
}], // replace (\ ) with ' '
[/\\\s/g, function () {
  return SPACE;
}], // Escape metacharacters
// which is written down by users but means special for regular expressions.
// > There are 12 characters with special meanings:
// > - the backslash \,
// > - the caret ^,
// > - the dollar sign $,
// > - the period or dot .,
// > - the vertical bar or pipe symbol |,
// > - the question mark ?,
// > - the asterisk or star *,
// > - the plus sign +,
// > - the opening parenthesis (,
// > - the closing parenthesis ),
// > - and the opening square bracket [,
// > - the opening curly brace {,
// > These special characters are often called "metacharacters".
[/[\\$.|*+(){^]/g, function (match) {
  return "\\".concat(match);
}], [// > a question mark (?) matches a single character
/(?!\\)\?/g, function () {
  return '[^/]';
}], // leading slash
[// > A leading slash matches the beginning of the pathname.
// > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c".
// A leading slash matches the beginning of the pathname
/^\//, function () {
  return '^';
}], // replace special metacharacter slash after the leading slash
[/\//g, function () {
  return '\\/';
}], [// > A leading "**" followed by a slash means match in all directories.
// > For example, "**/foo" matches file or directory "foo" anywhere,
// > the same as pattern "foo".
// > "**/foo/bar" matches file or directory "bar" anywhere that is directly
// >   under directory "foo".
// Notice that the '*'s have been replaced as '\\*'
/^\^*\\\*\\\*\\\//, // '**/foo' <-> 'foo'
function () {
  return '^(?:.*\\/)?';
}], // starting
[// there will be no leading '/'
//   (which has been replaced by section "leading slash")
// If starts with '**', adding a '^' to the regular expression also works
/^(?=[^^])/, function startingReplacer() {
  // If has a slash `/` at the beginning or middle
  return !/\/(?!$)/.test(this) // > Prior to 2.22.1
  // > If the pattern does not contain a slash /,
  // >   Git treats it as a shell glob pattern
  // Actually, if there is only a trailing slash,
  //   git also treats it as a shell glob pattern
  // After 2.22.1 (compatible but clearer)
  // > If there is a separator at the beginning or middle (or both)
  // > of the pattern, then the pattern is relative to the directory
  // > level of the particular .gitignore file itself.
  // > Otherwise the pattern may also match at any level below
  // > the .gitignore level.
  ? '(?:^|\\/)' // > Otherwise, Git treats the pattern as a shell glob suitable for
  // >   consumption by fnmatch(3)
  : '^';
}], // two globstars
[// Use lookahead assertions so that we could match more than one `'/**'`
/\\\/\\\*\\\*(?=\\\/|$)/g, // Zero, one or several directories
// should not use '*', or it will be replaced by the next replacer
// Check if it is not the last `'/**'`
function (_, index, str) {
  return index + 6 < str.length // case: /**/
  // > A slash followed by two consecutive asterisks then a slash matches
  // >   zero or more directories.
  // > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on.
  // '/**/'
  ? '(?:\\/[^\\/]+)*' // case: /**
  // > A trailing `"/**"` matches everything inside.
  // #21: everything inside but it should not include the current folder
  : '\\/.+';
}], // intermediate wildcards
[// Never replace escaped '*'
// ignore rule '\*' will match the path '*'
// 'abc.*/' -> go
// 'abc.*'  -> skip this rule
/(^|[^\\]+)\\\*(?=.+)/g, // '*.js' matches '.js'
// '*.js' doesn't match 'abc'
function (_, p1) {
  return "".concat(p1, "[^\\/]*");
}], [// unescape, revert step 3 except for back slash
// For example, if a user escape a '\\*',
// after step 3, the result will be '\\\\\\*'
/\\\\\\(?=[$.|*+(){^])/g, function () {
  return ESCAPE;
}], [// '\\\\' -> '\\'
/\\\\/g, function () {
  return ESCAPE;
}], [// > The range notation, e.g. [a-zA-Z],
// > can be used to match one of the characters in a range.
// `\` is escaped by step 3
/(\\)?\[([^\]/]*?)(\\*)($|\])/g, function (match, leadEscape, range, endEscape, close) {
  return leadEscape === ESCAPE // '\\[bar]' -> '\\\\[bar\\]'
  ? "\\[".concat(range).concat(cleanRangeBackSlash(endEscape)).concat(close) : close === ']' ? endEscape.length % 2 === 0 // A normal case, and it is a range notation
  // '[bar]'
  // '[bar\\\\]'
  ? "[".concat(sanitizeRange(range)).concat(endEscape, "]") // Invalid range notaton
  // '[bar\\]' -> '[bar\\\\]'
  : '[]' : '[]';
}], // ending
[// 'js' will not match 'js.'
// 'ab' will not match 'abc'
/(?:[^*])$/, // WTF!
// https://git-scm.com/docs/gitignore
// changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1)
// which re-fixes #24, #38
// > If there is a separator at the end of the pattern then the pattern
// > will only match directories, otherwise the pattern can match both
// > files and directories.
// 'js*' will not match 'a.js'
// 'js/' will not match 'a.js'
// 'js' will match 'a.js' and 'a.js/'
function (match) {
  return /\/$/.test(match) // foo/ will not match 'foo'
  ? "".concat(match, "$") // foo matches 'foo' and 'foo/'
  : "".concat(match, "(?=$|\\/$)");
}], // trailing wildcard
[/(\^|\\\/)?\\\*$/, function (_, p1) {
  var prefix = p1 // '\^':
  // '/*' does not match EMPTY
  // '/*' does not match everything
  // '\\\/':
  // 'abc/*' does not match 'abc/'
  ? "".concat(p1, "[^/]+") // 'a*' matches 'a'
  // 'a*' matches 'aa'
  : '[^/]*';
  return "".concat(prefix, "(?=$|\\/$)");
}]]; // A simple cache, because an ignore rule only has only one certain meaning

var regexCache = Object.create(null); // @param {pattern}

var makeRegex = function makeRegex(pattern, ignoreCase) {
  var source = regexCache[pattern];

  if (!source) {
    source = REPLACERS.reduce(function (prev, current) {
      return prev.replace(current[0], current[1].bind(pattern));
    }, pattern);
    regexCache[pattern] = source;
  }

  return ignoreCase ? new RegExp(source, 'i') : new RegExp(source);
};

var isString = function isString(subject) {
  return typeof subject === 'string';
}; // > A blank line matches no files, so it can serve as a separator for readability.


var checkPattern = function checkPattern(pattern) {
  return pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) // > A line starting with # serves as a comment.
  && pattern.indexOf('#') !== 0;
};

var splitPattern = function splitPattern(pattern) {
  return pattern.split(REGEX_SPLITALL_CRLF);
};

var IgnoreRule = function IgnoreRule(origin, pattern, negative, regex) {
  _classCallCheck(this, IgnoreRule);

  this.origin = origin;
  this.pattern = pattern;
  this.negative = negative;
  this.regex = regex;
};

var createRule = function createRule(pattern, ignoreCase) {
  var origin = pattern;
  var negative = false; // > An optional prefix "!" which negates the pattern;

  if (pattern.indexOf('!') === 0) {
    negative = true;
    pattern = pattern.substr(1);
  }

  pattern = pattern // > Put a backslash ("\") in front of the first "!" for patterns that
  // >   begin with a literal "!", for example, `"\!important!.txt"`.
  .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!') // > Put a backslash ("\") in front of the first hash for patterns that
  // >   begin with a hash.
  .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#');
  var regex = makeRegex(pattern, ignoreCase);
  return new IgnoreRule(origin, pattern, negative, regex);
};

var throwError = function throwError(message, Ctor) {
  throw new Ctor(message);
};

var checkPath = function checkPath(path, originalPath, doThrow) {
  if (!isString(path)) {
    return doThrow("path must be a string, but got `".concat(originalPath, "`"), TypeError);
  } // We don't know if we should ignore EMPTY, so throw


  if (!path) {
    return doThrow("path must not be empty", TypeError);
  } // Check if it is a relative path


  if (checkPath.isNotRelative(path)) {
    var r = '`path.relative()`d';
    return doThrow("path should be a ".concat(r, " string, but got \"").concat(originalPath, "\""), RangeError);
  }

  return true;
};

var isNotRelative = function isNotRelative(path) {
  return REGEX_TEST_INVALID_PATH.test(path);
};

checkPath.isNotRelative = isNotRelative;

checkPath.convert = function (p) {
  return p;
};

var Ignore = /*#__PURE__*/function () {
  function Ignore() {
    var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        _ref$ignorecase = _ref.ignorecase,
        ignorecase = _ref$ignorecase === void 0 ? true : _ref$ignorecase,
        _ref$ignoreCase = _ref.ignoreCase,
        ignoreCase = _ref$ignoreCase === void 0 ? ignorecase : _ref$ignoreCase,
        _ref$allowRelativePat = _ref.allowRelativePaths,
        allowRelativePaths = _ref$allowRelativePat === void 0 ? false : _ref$allowRelativePat;

    _classCallCheck(this, Ignore);

    define(this, KEY_IGNORE, true);
    this._rules = [];
    this._ignoreCase = ignoreCase;
    this._allowRelativePaths = allowRelativePaths;

    this._initCache();
  }

  _createClass(Ignore, [{
    key: "_initCache",
    value: function _initCache() {
      this._ignoreCache = Object.create(null);
      this._testCache = Object.create(null);
    }
  }, {
    key: "_addPattern",
    value: function _addPattern(pattern) {
      // #32
      if (pattern && pattern[KEY_IGNORE]) {
        this._rules = this._rules.concat(pattern._rules);
        this._added = true;
        return;
      }

      if (checkPattern(pattern)) {
        var rule = createRule(pattern, this._ignoreCase);
        this._added = true;

        this._rules.push(rule);
      }
    } // @param {Array<string> | string | Ignore} pattern

  }, {
    key: "add",
    value: function add(pattern) {
      this._added = false;
      makeArray(isString(pattern) ? splitPattern(pattern) : pattern).forEach(this._addPattern, this); // Some rules have just added to the ignore,
      // making the behavior changed.

      if (this._added) {
        this._initCache();
      }

      return this;
    } // legacy

  }, {
    key: "addPattern",
    value: function addPattern(pattern) {
      return this.add(pattern);
    } //          |           ignored : unignored
    // negative |   0:0   |   0:1   |   1:0   |   1:1
    // -------- | ------- | ------- | ------- | --------
    //     0    |  TEST   |  TEST   |  SKIP   |    X
    //     1    |  TESTIF |  SKIP   |  TEST   |    X
    // - SKIP: always skip
    // - TEST: always test
    // - TESTIF: only test if checkUnignored
    // - X: that never happen
    // @param {boolean} whether should check if the path is unignored,
    //   setting `checkUnignored` to `false` could reduce additional
    //   path matching.
    // @returns {TestResult} true if a file is ignored

  }, {
    key: "_testOne",
    value: function _testOne(path, checkUnignored) {
      var ignored = false;
      var unignored = false;

      this._rules.forEach(function (rule) {
        var negative = rule.negative;

        if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) {
          return;
        }

        var matched = rule.regex.test(path);

        if (matched) {
          ignored = !negative;
          unignored = negative;
        }
      });

      return {
        ignored: ignored,
        unignored: unignored
      };
    } // @returns {TestResult}

  }, {
    key: "_test",
    value: function _test(originalPath, cache, checkUnignored, slices) {
      var path = originalPath // Supports nullable path
      && checkPath.convert(originalPath);
      checkPath(path, originalPath, this._allowRelativePaths ? RETURN_FALSE : throwError);
      return this._t(path, cache, checkUnignored, slices);
    }
  }, {
    key: "_t",
    value: function _t(path, cache, checkUnignored, slices) {
      if (path in cache) {
        return cache[path];
      }

      if (!slices) {
        // path/to/a.js
        // ['path', 'to', 'a.js']
        slices = path.split(SLASH);
      }

      slices.pop(); // If the path has no parent directory, just test it

      if (!slices.length) {
        return cache[path] = this._testOne(path, checkUnignored);
      }

      var parent = this._t(slices.join(SLASH) + SLASH, cache, checkUnignored, slices); // If the path contains a parent directory, check the parent first


      return cache[path] = parent.ignored // > It is not possible to re-include a file if a parent directory of
      // >   that file is excluded.
      ? parent : this._testOne(path, checkUnignored);
    }
  }, {
    key: "ignores",
    value: function ignores(path) {
      return this._test(path, this._ignoreCache, false).ignored;
    }
  }, {
    key: "createFilter",
    value: function createFilter() {
      var _this = this;

      return function (path) {
        return !_this.ignores(path);
      };
    }
  }, {
    key: "filter",
    value: function filter(paths) {
      return makeArray(paths).filter(this.createFilter());
    } // @returns {TestResult}

  }, {
    key: "test",
    value: function test(path) {
      return this._test(path, this._testCache, true);
    }
  }]);

  return Ignore;
}();

var factory = function factory(options) {
  return new Ignore(options);
};

var isPathValid = function isPathValid(path) {
  return checkPath(path && checkPath.convert(path), path, RETURN_FALSE);
};

factory.isPathValid = isPathValid; // Fixes typescript

factory["default"] = factory;
module.exports = factory; // Windows
// --------------------------------------------------------------

/* istanbul ignore if  */

if ( // Detect `process` so that it can run in browsers.
typeof process !== 'undefined' && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === 'win32')) {
  /* eslint no-control-regex: "off" */
  var makePosix = function makePosix(str) {
    return /^\\\\\?\\/.test(str) || /[\0-\x1F"<>\|]+/.test(str) ? str : str.replace(/\\/g, '/');
  };

  checkPath.convert = makePosix; // 'C:\\foo'     <- 'C:\\foo' has been converted to 'C:/'
  // 'd:\\foo'

  var REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i;

  checkPath.isNotRelative = function (path) {
    return REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path) || isNotRelative(path);
  };
}
{
  "name": "ignore",
  "version": "5.2.0",
  "description": "Ignore is a manager and filter for .gitignore rules, the one used by eslint, gitbook and many others.",
  "files": [
    "legacy.js",
    "index.js",
    "index.d.ts",
    "LICENSE-MIT"
  ],
  "repository": {
    "type": "git",
    "url": "git@github.com:kaelzhang/node-ignore.git"
  },
  "author": "kael",
  "license": "MIT",
  "devDependencies": {
    "@babel/cli": "^7.8.4",
    "@babel/core": "^7.9.6",
    "@babel/preset-env": "^7.9.6",
    "codecov": "^3.7.0",
    "debug": "^4.1.1",
    "eslint": "^7.0.0",
    "eslint-config-ostai": "^3.0.0",
    "eslint-plugin-import": "^2.20.2",
    "mkdirp": "^1.0.4",
    "pre-suf": "^1.1.1",
    "rimraf": "^3.0.2",
    "spawn-sync": "^2.0.0",
    "tap": "^14.10.7",
    "tmp": "0.2.1",
    "typescript": "^3.9.3"
  },
  "engines": {
    "node": ">= 4"
  }
}