diff --git a/artifacts/art-validation.json b/artifacts/art-validation.json index 9bd661b..c1b53f4 100644 --- a/artifacts/art-validation.json +++ b/artifacts/art-validation.json @@ -1 +1 @@ -{"hashes":[{"path":"web/public/art/character/vault.webp","bytes":72014,"sha256":"7a0bb9a8c13efa4ec0b5057cf1ceccd4d1eda9708cbe5782f4c1b028e835bd26"},{"path":"web/public/art/character/deposit.webp","bytes":61194,"sha256":"98d42bf6ad7df061fb131fea714a7930adf3db3a6338df15d90d136aed256374"},{"path":"web/public/art/character/redeem.webp","bytes":61992,"sha256":"3a937c9d853cdea982828642225e96e3c14e238bd941bb6eb572c878d1401598"},{"path":"web/public/art/food/bread.svg","bytes":3105,"sha256":"ef08e033f63a4f215744a3067a9c0693411ebcfe57b36bf9d197495ecbccf156"},{"path":"web/public/art/food/baguette.svg","bytes":1019,"sha256":"f65ae926257cfc775bfc0239d7bf4404b75fc6765a24747044f60f4227053f91"},{"path":"web/public/art/food/cheese.svg","bytes":1380,"sha256":"f239293bf0d152a15326a186166168f8da7ad8d6c7127a4ecfa2ace4005aff7a"},{"path":"web/public/art/food/milk.svg","bytes":768,"sha256":"3b60194616354c508ba142fce6e396fea3140abf09df99a31024336fbba384e4"},{"path":"web/public/art/food/canned-food.svg","bytes":1338,"sha256":"4ea41ac2c82bec24344580a0bba49047186537f91dee30c4ddd3b0ffc2e391b1"},{"path":"web/public/art/food/egg.svg","bytes":412,"sha256":"1c7146a519276e93c0f939756e80beb5b0edb4e9a350dbe58ab63c7d0bcc5204"},{"path":"web/public/art/food/honey-pot.svg","bytes":1767,"sha256":"20fdbe3a68d2e017899372e32874fad9c08ee35a8f1509e7be1497b448db5fc6"},{"path":"web/public/art/food/jar.svg","bytes":804,"sha256":"1a619c120858851ed4956bb54beca416c39ac8bc31a87530870e4ab2493a6795"},{"path":"web/public/art/food/beverage-box.svg","bytes":1997,"sha256":"135e7cf6dd378e8ee10bed849ee8452bc4e24ca799a0bf225f8c565669c220da"},{"path":"web/public/art/food/croissant.svg","bytes":2280,"sha256":"ae35174ffabb5610fd7ed0320f48c7bd759e18d4c9d1a06ff67f7597470fb9fd"},{"path":"web/public/art/food/butter.svg","bytes":2620,"sha256":"0b901e32d4e898f1ee910934b4afc635bdac48791d21a9d6c7775ac6128d17c3"},{"path":"web/public/art/food/cookie.svg","bytes":2020,"sha256":"d02b9e85fa0394a4c59fd74654244c069eddb9aaf72abbcba8d0d3060262d6af"},{"path":"web/public/art/food/pie.svg","bytes":2539,"sha256":"e9c5e76220606191921017d96e247ec1b2c5f02291a75fbfcd815e00190eacca"},{"path":"web/public/art/food/bagel.svg","bytes":6347,"sha256":"00b049b844d946392edc9133ed583ef41d8f05b5e0cc1c74b3417e90adaf3bfb"},{"path":"web/public/art/food/apple.svg","bytes":563,"sha256":"bc69f7c89a3621fb564482f9e13818019c6eac3a9d16fe996852514f3b19a073"},{"path":"web/public/art/food/banana.svg","bytes":1909,"sha256":"40047ed9d10462ba41457b0c55beb05b6fde4ce590e6c1f88577539e46c2f20d"},{"path":"web/public/art/food/carrot.svg","bytes":1448,"sha256":"99521ccf4753d9b5312707541eafc41f00b35f616bb6e96cada9acfc7bf1d396"},{"path":"web/public/art/food/broccoli.svg","bytes":1257,"sha256":"53e9899f7e5ee6da63c0357a1152d7da413bbab029bbf53beb5255999c2823df"},{"path":"web/public/art/food/tomato.svg","bytes":924,"sha256":"3b3326c731fce0fe697656d33bb092613eb261d827b6ca319b5cd6df08212add"},{"path":"web/public/art/food/pineapple.svg","bytes":4821,"sha256":"9d064d8f8796b53a9eeb18b642e6e16628848ad2fa944576b597e7c7f36a95be"},{"path":"web/public/art/food/corn.svg","bytes":4009,"sha256":"98badfb85ed658177c2d2002fa6ab9fe619b0330147838d76e95739e73d879e8"},{"path":"web/public/art/food/bell-pepper.svg","bytes":1195,"sha256":"e6327c805e2df2e6c1d18b0d66bfe54e41e14393bc21f4b8f6b4b3be5cecdbe4"},{"path":"web/public/art/food/leafy-green.svg","bytes":2841,"sha256":"4df9bb2eb271ac221b75e16bce9c63ae4e54780159bf4cca83adea4604ea4fec"},{"path":"web/public/art/food/watermelon.svg","bytes":2024,"sha256":"33ce86d2784776504191684fd34495c68ac54be7b98e100ef18c3a19297c735e"},{"path":"web/public/art/food/grapes.svg","bytes":1971,"sha256":"e959e27685f84cead6cc230c719c75feaf3a3cfde878cf00819473036005edd0"},{"path":"web/public/art/food/lemon.svg","bytes":713,"sha256":"f3a924a7031fc0dd7c57a90e5f9794cf72859d860151dec321c4adc38605e4cc"},{"path":"web/public/art/food/pear.svg","bytes":636,"sha256":"ddab6102c0ab2fef2dee700b7bb3d427187df8bfa010b23c4e2516e15c226551"},{"path":"web/public/art/food/strawberry.svg","bytes":2048,"sha256":"d8522f848f305fc81040dd9c5467f97df483fde5e2568429046e7f1ae1a23d91"},{"path":"web/public/art/food/eggplant.svg","bytes":896,"sha256":"a4f479a1476608d8a69bb84a85e83471a09f6cd030c1614c4dca1e5a6796a0d4"},{"path":"web/public/art/food/avocado.svg","bytes":1663,"sha256":"81e6bdde887deddceedbd538ecc14876ab0f3873406632bcd3fd365741efe434"},{"path":"web/public/art/food/onion.svg","bytes":1984,"sha256":"16ef144c9b55823bfe1d6099fdbf884cdc715b74c4cdfaa09e5bb2cc7b970ad9"},{"path":"web/public/art/food/potato.svg","bytes":1551,"sha256":"630cf5cd73f353d09805ff72c9eeab5bf0caa65c65a8c615f6a4658a6993f6dc"},{"path":"web/public/art/food/green-apple.svg","bytes":575,"sha256":"8d16350d03ee8c98f1d58985453b4c7fbe4d69da3fde37cbf8b5c70ecb80bbd4"},{"path":"web/public/art/food/Fluent-Emoji-MIT.txt","bytes":1141,"sha256":"c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383"},{"path":"web/public/art/character/earn.webp","bytes":99214,"sha256":"b6909185b01f73b987c6c9bd2caf7b96a600d0c3dc91a3cb2757d72eac8bc051"},{"path":"web/public/art/character/transparency.webp","bytes":92840,"sha256":"f48d0a806c47889e1f01f6c846428eefc528771c51a43ff24140261d567480fe"},{"path":"dist/art/character/vault.webp","bytes":72014,"sha256":"7a0bb9a8c13efa4ec0b5057cf1ceccd4d1eda9708cbe5782f4c1b028e835bd26"},{"path":"dist/art/character/deposit.webp","bytes":61194,"sha256":"98d42bf6ad7df061fb131fea714a7930adf3db3a6338df15d90d136aed256374"},{"path":"dist/art/character/redeem.webp","bytes":61992,"sha256":"3a937c9d853cdea982828642225e96e3c14e238bd941bb6eb572c878d1401598"},{"path":"dist/art/food/bread.svg","bytes":3105,"sha256":"ef08e033f63a4f215744a3067a9c0693411ebcfe57b36bf9d197495ecbccf156"},{"path":"dist/art/food/baguette.svg","bytes":1019,"sha256":"f65ae926257cfc775bfc0239d7bf4404b75fc6765a24747044f60f4227053f91"},{"path":"dist/art/food/cheese.svg","bytes":1380,"sha256":"f239293bf0d152a15326a186166168f8da7ad8d6c7127a4ecfa2ace4005aff7a"},{"path":"dist/art/food/milk.svg","bytes":768,"sha256":"3b60194616354c508ba142fce6e396fea3140abf09df99a31024336fbba384e4"},{"path":"dist/art/food/canned-food.svg","bytes":1338,"sha256":"4ea41ac2c82bec24344580a0bba49047186537f91dee30c4ddd3b0ffc2e391b1"},{"path":"dist/art/food/egg.svg","bytes":412,"sha256":"1c7146a519276e93c0f939756e80beb5b0edb4e9a350dbe58ab63c7d0bcc5204"},{"path":"dist/art/food/honey-pot.svg","bytes":1767,"sha256":"20fdbe3a68d2e017899372e32874fad9c08ee35a8f1509e7be1497b448db5fc6"},{"path":"dist/art/food/jar.svg","bytes":804,"sha256":"1a619c120858851ed4956bb54beca416c39ac8bc31a87530870e4ab2493a6795"},{"path":"dist/art/food/beverage-box.svg","bytes":1997,"sha256":"135e7cf6dd378e8ee10bed849ee8452bc4e24ca799a0bf225f8c565669c220da"},{"path":"dist/art/food/croissant.svg","bytes":2280,"sha256":"ae35174ffabb5610fd7ed0320f48c7bd759e18d4c9d1a06ff67f7597470fb9fd"},{"path":"dist/art/food/butter.svg","bytes":2620,"sha256":"0b901e32d4e898f1ee910934b4afc635bdac48791d21a9d6c7775ac6128d17c3"},{"path":"dist/art/food/cookie.svg","bytes":2020,"sha256":"d02b9e85fa0394a4c59fd74654244c069eddb9aaf72abbcba8d0d3060262d6af"},{"path":"dist/art/food/pie.svg","bytes":2539,"sha256":"e9c5e76220606191921017d96e247ec1b2c5f02291a75fbfcd815e00190eacca"},{"path":"dist/art/food/bagel.svg","bytes":6347,"sha256":"00b049b844d946392edc9133ed583ef41d8f05b5e0cc1c74b3417e90adaf3bfb"},{"path":"dist/art/food/apple.svg","bytes":563,"sha256":"bc69f7c89a3621fb564482f9e13818019c6eac3a9d16fe996852514f3b19a073"},{"path":"dist/art/food/banana.svg","bytes":1909,"sha256":"40047ed9d10462ba41457b0c55beb05b6fde4ce590e6c1f88577539e46c2f20d"},{"path":"dist/art/food/carrot.svg","bytes":1448,"sha256":"99521ccf4753d9b5312707541eafc41f00b35f616bb6e96cada9acfc7bf1d396"},{"path":"dist/art/food/broccoli.svg","bytes":1257,"sha256":"53e9899f7e5ee6da63c0357a1152d7da413bbab029bbf53beb5255999c2823df"},{"path":"dist/art/food/tomato.svg","bytes":924,"sha256":"3b3326c731fce0fe697656d33bb092613eb261d827b6ca319b5cd6df08212add"},{"path":"dist/art/food/pineapple.svg","bytes":4821,"sha256":"9d064d8f8796b53a9eeb18b642e6e16628848ad2fa944576b597e7c7f36a95be"},{"path":"dist/art/food/corn.svg","bytes":4009,"sha256":"98badfb85ed658177c2d2002fa6ab9fe619b0330147838d76e95739e73d879e8"},{"path":"dist/art/food/bell-pepper.svg","bytes":1195,"sha256":"e6327c805e2df2e6c1d18b0d66bfe54e41e14393bc21f4b8f6b4b3be5cecdbe4"},{"path":"dist/art/food/leafy-green.svg","bytes":2841,"sha256":"4df9bb2eb271ac221b75e16bce9c63ae4e54780159bf4cca83adea4604ea4fec"},{"path":"dist/art/food/watermelon.svg","bytes":2024,"sha256":"33ce86d2784776504191684fd34495c68ac54be7b98e100ef18c3a19297c735e"},{"path":"dist/art/food/grapes.svg","bytes":1971,"sha256":"e959e27685f84cead6cc230c719c75feaf3a3cfde878cf00819473036005edd0"},{"path":"dist/art/food/lemon.svg","bytes":713,"sha256":"f3a924a7031fc0dd7c57a90e5f9794cf72859d860151dec321c4adc38605e4cc"},{"path":"dist/art/food/pear.svg","bytes":636,"sha256":"ddab6102c0ab2fef2dee700b7bb3d427187df8bfa010b23c4e2516e15c226551"},{"path":"dist/art/food/strawberry.svg","bytes":2048,"sha256":"d8522f848f305fc81040dd9c5467f97df483fde5e2568429046e7f1ae1a23d91"},{"path":"dist/art/food/eggplant.svg","bytes":896,"sha256":"a4f479a1476608d8a69bb84a85e83471a09f6cd030c1614c4dca1e5a6796a0d4"},{"path":"dist/art/food/avocado.svg","bytes":1663,"sha256":"81e6bdde887deddceedbd538ecc14876ab0f3873406632bcd3fd365741efe434"},{"path":"dist/art/food/onion.svg","bytes":1984,"sha256":"16ef144c9b55823bfe1d6099fdbf884cdc715b74c4cdfaa09e5bb2cc7b970ad9"},{"path":"dist/art/food/potato.svg","bytes":1551,"sha256":"630cf5cd73f353d09805ff72c9eeab5bf0caa65c65a8c615f6a4658a6993f6dc"},{"path":"dist/art/food/green-apple.svg","bytes":575,"sha256":"8d16350d03ee8c98f1d58985453b4c7fbe4d69da3fde37cbf8b5c70ecb80bbd4"},{"path":"dist/art/food/Fluent-Emoji-MIT.txt","bytes":1141,"sha256":"c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383"},{"path":"dist/art/character/earn.webp","bytes":99214,"sha256":"b6909185b01f73b987c6c9bd2caf7b96a600d0c3dc91a3cb2757d72eac8bc051"},{"path":"dist/art/character/transparency.webp","bytes":92840,"sha256":"f48d0a806c47889e1f01f6c846428eefc528771c51a43ff24140261d567480fe"}],"checks":["Chromium slogan strip, width:lines per half/half px/cycle [320:1/720/22.50048828125s 375:1/720/22.50048828125s 660:1/720/22.50048828125s 661:1/720/90.001953125s 720:1/720/90.001953125s 721:2/1440/180.00390625s 1024:2/1440/180.00390625s 1440:2/1440/180.00390625s 1441:3/2160/270.005859375s 1920:3/2160/270.005859375s 2160:3/2160/270.005859375s 2161:4/2880/360.0078125s 2560:4/2880/360.0078125s 2880:4/2880/360.0078125s 2881:5/3600/450.009765625s 3440:5/3600/450.009765625s 3600:5/3600/450.009765625s 3601:6/4320/540.01171875s 4320:6/4320/540.01171875s 4321:7/5040/630.013671875s 5040:7/5040/630.013671875s 5041:8/5760/720.015625s 5760:8/5760/720.015625s]: eight lines in the markup of each half, the first k shown (k = the fewest 720 px lines covering the viewport), identical halves; v10 loop: the track stays put and the only moving blocks are the two halves (k lines each, at most the viewport plus one line), each its own endless linear Web Animation translateX(100%) to translateX(-100%) on one shared clock, no CSS animation, will-change or 3D in the strip and no endless CSS animation on the page; speed exactly 16 px/s (64 px/s at 660 px and below), two half widths per cycle; at 17 loop phases (just before, at and just after each half's reset among them) the halves sit edge to edge across the window at their expected places, each jumping back only while wholly off screen, line boxes edge to edge and every line join and the seam with the normal word gap; so no animationiteration event can fire (that event comes only from CSS animations); reduced motion: no animation (cancelled), a still, full strip from the left edge; motion back when it is turned off","Chromium 2560: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 1440: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 1000: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 999: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 960: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 800: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 720: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 661: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 660: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 375: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 360: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 359: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 320: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium: normal status area absent; exact single issue paragraph, compact Vault Closed notice, Deposit-only CLOSED LED at all 13 selected widths; desktop/phone exact weekend sentence, motion and reduced-motion cancellation","Chromium deposit 661 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","Chromium deposit 375 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","Chromium deposit 320 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","Chromium redeem 661 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","Chromium redeem 375 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","Chromium redeem 320 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","Chromium vault title: on phones (320-660 px) the picture stands in the middle of the panel at 286 widths and, on the 55 narrowest, as near it as her three-line bubble allows 4 px inside the frame; shelf line across the panel, heading centred (v15); the title equals the live title at every width from 320 to 2560 px","Chromium vault: every width 320-2560 px keeps whole bubble words (bubble lines {\"3\":2241}), the strip clear of the title text, the title text centred beside her (Vault heading 17 px under her on phones), the bubble in its frame and the wallet hint gap; picture pixels checked every 40 px","Chromium deposit title: equals the live title (picture, bubble, heading, shelf line) at every phone width and every 40 px above (389 widths) while the heading has no focus marker","Chromium deposit: every width 320-2560 px keeps whole bubble words (bubble lines {\"2\":341,\"3\":1900}), the strip clear of the title text, the title text centred beside her (Vault heading 17 px under her on phones), the bubble in its frame and the wallet hint gap; picture pixels checked every 40 px","Chromium redeem title: equals the live title (picture, bubble, heading, shelf line) at every phone width and every 40 px above (389 widths) while the heading has no focus marker","Chromium redeem: every width 320-2560 px keeps whole bubble words (bubble lines {\"2\":1561,\"3\":680}), the strip clear of the title text, the title text centred beside her (Vault heading 17 px under her on phones), the bubble in its frame and the wallet hint gap; picture pixels checked every 40 px","Chromium v15 focus marker (keyboard focus moved to the heading by a change of page) at 660, 430, 393, 375, 360, 359 and 320 px: on Deposit and Redeem her shelf line runs from the frame to the marker's outer left edge on the marker's bottom band, same height and colour, and nothing else moves; the same check rejects the v14 line put back; without the marker and after blur the line is the plain line; on Vault the marker stays clear of the line and the v14 placing put back is rejected; at 661 px there is no shelf line","WebKit slogan strip, width:lines per half/half px/cycle [320:1/720/22.5s 375:1/720/22.5s 660:1/720/22.5s 661:1/720/90s 720:1/720/90s 721:2/1440/180s 1024:2/1440/180s 1440:2/1440/180s 1441:3/2160/270s 1920:3/2160/270s 2160:3/2160/270s 2161:4/2880/360s 2560:4/2880/360s 2880:4/2880/360s 2881:5/3600/450s 3440:5/3600/450s 3600:5/3600/450s 3601:6/4320/540s 4320:6/4320/540s 4321:7/5040/630s 5040:7/5040/630s 5041:8/5760/720s 5760:8/5760/720s]: eight lines in the markup of each half, the first k shown (k = the fewest 720 px lines covering the viewport), identical halves; v10 loop: the track stays put and the only moving blocks are the two halves (k lines each, at most the viewport plus one line), each its own endless linear Web Animation translateX(100%) to translateX(-100%) on one shared clock, no CSS animation, will-change or 3D in the strip and no endless CSS animation on the page; speed exactly 16 px/s (64 px/s at 660 px and below), two half widths per cycle; at 17 loop phases (just before, at and just after each half's reset among them) the halves sit edge to edge across the window at their expected places, each jumping back only while wholly off screen, line boxes edge to edge and every line join and the seam with the normal word gap; so no animationiteration event can fire (that event comes only from CSS animations); reduced motion: no animation (cancelled), a still, full strip from the left edge; motion back when it is turned off","WebKit 2560: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 1440: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 1000: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 999: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 960: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 800: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 720: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 661: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 660: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 375: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 360: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 359: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 320: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit: normal status area absent; exact single issue paragraph, compact Vault Closed notice, Deposit-only CLOSED LED at all 13 selected widths; desktop/phone exact weekend sentence, motion and reduced-motion cancellation","WebKit deposit 661 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","WebKit deposit 375 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","WebKit deposit 320 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","WebKit redeem 661 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","WebKit redeem 375 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","WebKit redeem 320 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","WebKit vault title: on phones (320-660 px) the picture stands in the middle of the panel at 286 widths and, on the 55 narrowest, as near it as her three-line bubble allows 4 px inside the frame; shelf line across the panel, heading centred (v15); the title equals the live title at every width from 320 to 2560 px","WebKit vault: every width 320-2560 px keeps whole bubble words (bubble lines {\"3\":2241}), the strip clear of the title text, the title text centred beside her (Vault heading 17 px under her on phones), the bubble in its frame and the wallet hint gap; picture pixels checked every 40 px","WebKit deposit title: equals the live title (picture, bubble, heading, shelf line) at every phone width and every 40 px above (389 widths) while the heading has no focus marker","WebKit deposit: every width 320-2560 px keeps whole bubble words (bubble lines {\"2\":341,\"3\":1900}), the strip clear of the title text, the title text centred beside her (Vault heading 17 px under her on phones), the bubble in its frame and the wallet hint gap; picture pixels checked every 40 px","WebKit redeem title: equals the live title (picture, bubble, heading, shelf line) at every phone width and every 40 px above (389 widths) while the heading has no focus marker","WebKit redeem: every width 320-2560 px keeps whole bubble words (bubble lines {\"2\":1561,\"3\":680}), the strip clear of the title text, the title text centred beside her (Vault heading 17 px under her on phones), the bubble in its frame and the wallet hint gap; picture pixels checked every 40 px","WebKit v15 focus marker (keyboard focus moved to the heading by a change of page) at 660, 430, 393, 375, 360, 359 and 320 px: on Deposit and Redeem her shelf line runs from the frame to the marker's outer left edge on the marker's bottom band, same height and colour, and nothing else moves; the same check rejects the v14 line put back; without the marker and after blur the line is the plain line; on Vault the marker stays clear of the line and the v14 placing put back is rejected; at 661 px there is no shelf line"],"bubbles":[{"engine":"Chromium","name":"vault","width":1440,"picture":{"width":"606","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":390,"src":"./art/character/vault.webp","alt":"Cheerful store worker beside a produce crate"},"geometry":{"picture":{"x":944.94,"y":-879.79,"w":236.33,"h":389.98,"elementHeight":390},"bubble":{"x":1095,"y":-813.19,"w":170,"h":90},"bubbleLines":3,"textToStrip":91.5,"popAboveFrame":44.86,"walletGap":16}},{"engine":"Chromium","name":"deposit","width":1440,"picture":{"width":"313","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":390,"src":"./art/character/deposit.webp","alt":"Store worker holding out a shopping basket"},"geometry":{"picture":{"x":1026.27,"y":742.21,"w":122.06,"h":389.98,"elementHeight":390},"bubble":{"x":1141,"y":822.7,"w":124,"h":90},"bubbleLines":3,"textToStrip":63.75,"popAboveFrame":44.86,"walletGap":16}},{"engine":"Chromium","name":"redeem","width":1440,"picture":{"width":"484","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":390,"src":"./art/character/redeem.webp","alt":"Store worker handing over a full grocery bag"},"geometry":{"picture":{"x":863.47,"y":720.21,"w":188.75,"h":389.98,"elementHeight":390},"bubble":{"x":1039,"y":805.38,"w":226,"h":66},"bubbleLines":2,"textToStrip":69.25,"popAboveFrame":44.86,"walletGap":16}},{"engine":"Chromium","name":"vault","width":800,"picture":{"width":"606","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":340,"src":"./art/character/vault.webp","alt":"Cheerful store worker beside a produce crate"},"geometry":{"picture":{"x":456.17,"y":731.61,"w":206.03,"h":339.99,"elementHeight":340},"bubble":{"x":587,"y":785.42,"w":158,"h":82.78},"bubbleLines":3,"textToStrip":57.5,"popAboveFrame":39.27,"walletGap":16}},{"engine":"Chromium","name":"deposit","width":800,"picture":{"width":"313","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":340,"src":"./art/character/deposit.webp","alt":"Store worker holding out a shopping basket"},"geometry":{"picture":{"x":530.97,"y":747.64,"w":106.41,"h":339.96,"elementHeight":340},"bubble":{"x":631,"y":813.7,"w":114,"h":82.78},"bubbleLines":3,"textToStrip":26,"popAboveFrame":38.24,"walletGap":16}},{"engine":"Chromium","name":"redeem","width":800,"picture":{"width":"484","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":340,"src":"./art/character/redeem.webp","alt":"Store worker handing over a full grocery bag"},"geometry":{"picture":{"x":441.97,"y":768.62,"w":164.55,"h":339.97,"elementHeight":340},"bubble":{"x":595,"y":844.78,"w":150,"h":82.78},"bubbleLines":3,"textToStrip":71.06,"popAboveFrame":39.25,"walletGap":16}},{"engine":"Chromium","name":"vault","width":375,"picture":{"width":"606","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":300,"src":"./art/character/vault.webp","alt":"Cheerful store worker beside a produce crate"},"geometry":{"picture":{"x":96.55,"y":-1078.62,"w":181.8,"h":299.99,"elementHeight":300},"bubble":{"x":212,"y":-1034.81,"w":138,"h":73.17},"bubbleLines":3,"textToStrip":14.98,"popAboveFrame":31.59,"walletGap":12}},{"engine":"Chromium","name":"deposit","width":375,"picture":{"width":"313","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":300,"src":"./art/character/deposit.webp","alt":"Store worker holding out a shopping basket"},"geometry":{"picture":{"x":35,"y":150.4,"w":93.89,"h":299.97,"elementHeight":300},"bubble":{"x":123.27,"y":191.78,"w":150,"h":54.78},"bubbleLines":2,"textToStrip":24,"popAboveFrame":31.57,"walletGap":12}},{"engine":"Chromium","name":"redeem","width":375,"picture":{"width":"484","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":300,"src":"./art/character/redeem.webp","alt":"Store worker handing over a full grocery bag"},"geometry":{"picture":{"x":35,"y":150.4,"w":145.19,"h":299.97,"elementHeight":300},"bubble":{"x":170.03,"y":195.38,"w":160,"h":73.17},"bubbleLines":3,"textToStrip":24,"popAboveFrame":31.57,"walletGap":12}},{"engine":"Chromium","name":"vault","width":320,"picture":{"width":"606","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":270,"src":"./art/character/vault.webp","alt":"Cheerful store worker beside a produce crate"},"geometry":{"picture":{"x":53.09,"y":190.91,"w":163.61,"h":269.98,"elementHeight":270},"bubble":{"x":157,"y":226.42,"w":138,"h":73.17},"bubbleLines":3,"textToStrip":14.98,"popAboveFrame":23.82,"walletGap":12}},{"engine":"Chromium","name":"deposit","width":320,"picture":{"width":"313","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":270,"src":"./art/character/deposit.webp","alt":"Store worker holding out a shopping basket"},"geometry":{"picture":{"x":35,"y":761.92,"w":84.5,"h":269.97,"elementHeight":270},"bubble":{"x":114.44,"y":798.27,"w":140,"h":54.78},"bubbleLines":2,"textToStrip":24,"popAboveFrame":23.81,"walletGap":12}},{"engine":"Chromium","name":"redeem","width":320,"picture":{"width":"484","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":270,"src":"./art/character/redeem.webp","alt":"Store worker handing over a full grocery bag"},"geometry":{"picture":{"x":35,"y":761.91,"w":130.67,"h":269.98,"elementHeight":270},"bubble":{"x":156.53,"y":801.5,"w":138,"h":73.17},"bubbleLines":3,"textToStrip":24,"popAboveFrame":23.82,"walletGap":12}},{"engine":"WebKit","name":"vault","width":1440,"picture":{"width":"606","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":390,"src":"./art/character/vault.webp","alt":"Cheerful store worker beside a produce crate"},"geometry":{"picture":{"x":944.94,"y":-875.98,"w":236.33,"h":389.98,"elementHeight":390},"bubble":{"x":1095,"y":-809.37,"w":170,"h":90},"bubbleLines":3,"textToStrip":91.5,"popAboveFrame":44.86,"walletGap":16}},{"engine":"WebKit","name":"deposit","width":1440,"picture":{"width":"313","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":390,"src":"./art/character/deposit.webp","alt":"Store worker holding out a shopping basket"},"geometry":{"picture":{"x":1026.27,"y":742.02,"w":122.06,"h":389.98,"elementHeight":390},"bubble":{"x":1141,"y":822.52,"w":124,"h":90},"bubbleLines":3,"textToStrip":64,"popAboveFrame":44.86,"walletGap":16}},{"engine":"WebKit","name":"redeem","width":1440,"picture":{"width":"484","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":390,"src":"./art/character/redeem.webp","alt":"Store worker handing over a full grocery bag"},"geometry":{"picture":{"x":863.47,"y":720.02,"w":188.75,"h":389.98,"elementHeight":390},"bubble":{"x":1039,"y":805.19,"w":226,"h":66},"bubbleLines":2,"textToStrip":69.5,"popAboveFrame":44.86,"walletGap":16}},{"engine":"WebKit","name":"vault","width":800,"picture":{"width":"606","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":340,"src":"./art/character/vault.webp","alt":"Cheerful store worker beside a produce crate"},"geometry":{"picture":{"x":456.17,"y":731.01,"w":206.03,"h":339.99,"elementHeight":340},"bubble":{"x":587,"y":784.83,"w":158,"h":81},"bubbleLines":3,"textToStrip":57.5,"popAboveFrame":39.27,"walletGap":16}},{"engine":"WebKit","name":"deposit","width":800,"picture":{"width":"313","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":340,"src":"./art/character/deposit.webp","alt":"Store worker holding out a shopping basket"},"geometry":{"picture":{"x":530.97,"y":748.04,"w":106.41,"h":339.96,"elementHeight":340},"bubble":{"x":631,"y":814.11,"w":114,"h":81},"bubbleLines":3,"textToStrip":26,"popAboveFrame":38.24,"walletGap":16}},{"engine":"WebKit","name":"redeem","width":800,"picture":{"width":"484","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":340,"src":"./art/character/redeem.webp","alt":"Store worker handing over a full grocery bag"},"geometry":{"picture":{"x":441.97,"y":769.03,"w":164.55,"h":339.97,"elementHeight":340},"bubble":{"x":595,"y":845.19,"w":150,"h":81},"bubbleLines":3,"textToStrip":71.5,"popAboveFrame":39.25,"walletGap":16}},{"engine":"WebKit","name":"vault","width":375,"picture":{"width":"606","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":300,"src":"./art/character/vault.webp","alt":"Cheerful store worker beside a produce crate"},"geometry":{"picture":{"x":96.55,"y":-1070.99,"w":181.8,"h":299.99,"elementHeight":300},"bubble":{"x":212,"y":-1027.19,"w":138,"h":72},"bubbleLines":3,"textToStrip":15,"popAboveFrame":31.59,"walletGap":12}},{"engine":"WebKit","name":"deposit","width":375,"picture":{"width":"313","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":300,"src":"./art/character/deposit.webp","alt":"Store worker holding out a shopping basket"},"geometry":{"picture":{"x":35,"y":181.03,"w":93.89,"h":299.97,"elementHeight":300},"bubble":{"x":123.27,"y":222.41,"w":150,"h":54},"bubbleLines":2,"textToStrip":24,"popAboveFrame":31.57,"walletGap":12}},{"engine":"WebKit","name":"redeem","width":375,"picture":{"width":"484","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":300,"src":"./art/character/redeem.webp","alt":"Store worker handing over a full grocery bag"},"geometry":{"picture":{"x":35,"y":149.03,"w":145.19,"h":299.97,"elementHeight":300},"bubble":{"x":170.03,"y":194,"w":160,"h":72},"bubbleLines":3,"textToStrip":24,"popAboveFrame":31.57,"walletGap":12}},{"engine":"WebKit","name":"vault","width":320,"picture":{"width":"606","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":270,"src":"./art/character/vault.webp","alt":"Cheerful store worker beside a produce crate"},"geometry":{"picture":{"x":53.09,"y":223.02,"w":163.61,"h":269.98,"elementHeight":270},"bubble":{"x":157,"y":258.53,"w":138,"h":72},"bubbleLines":3,"textToStrip":15,"popAboveFrame":23.82,"walletGap":12}},{"engine":"WebKit","name":"deposit","width":320,"picture":{"width":"313","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":270,"src":"./art/character/deposit.webp","alt":"Store worker holding out a shopping basket"},"geometry":{"picture":{"x":35,"y":762.03,"w":84.5,"h":269.97,"elementHeight":270},"bubble":{"x":114.44,"y":798.38,"w":140,"h":54},"bubbleLines":2,"textToStrip":24,"popAboveFrame":23.81,"walletGap":12}},{"engine":"WebKit","name":"redeem","width":320,"picture":{"width":"484","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":270,"src":"./art/character/redeem.webp","alt":"Store worker handing over a full grocery bag"},"geometry":{"picture":{"x":35,"y":762.02,"w":130.67,"h":269.98,"elementHeight":270},"bubble":{"x":156.53,"y":801.61,"w":138,"h":72},"bubbleLines":3,"textToStrip":24,"popAboveFrame":23.82,"walletGap":12}}],"wideLabels":[{"engine":"Chromium","name":"deposit","width":661,"spacing":13.5,"oneLine":550.234375,"room":531,"target":547,"strongLines":2,"v11Outside":["24/7."]},{"engine":"Chromium","name":"deposit","width":375,"spacing":3.75,"oneLine":296.734375,"room":277,"target":293,"strongLines":2,"v11Outside":["24/7."]},{"engine":"Chromium","name":"deposit","width":320,"spacing":1.75,"oneLine":244.734375,"room":222,"target":240,"strongLines":2,"v11Outside":["24/7."]},{"engine":"Chromium","name":"redeem","width":661,"spacing":13.5,"oneLine":550.234375,"room":531,"target":547,"strongLines":2,"v11Outside":["24/7."]},{"engine":"Chromium","name":"redeem","width":375,"spacing":3.75,"oneLine":296.734375,"room":277,"target":293,"strongLines":2,"v11Outside":["24/7."]},{"engine":"Chromium","name":"redeem","width":320,"spacing":1.75,"oneLine":244.734375,"room":222,"target":240,"strongLines":2,"v11Outside":["24/7."]},{"engine":"WebKit","name":"deposit","width":661,"spacing":13.5,"oneLine":550.234375,"room":531,"target":547,"strongLines":2,"v11Outside":["24/7."]},{"engine":"WebKit","name":"deposit","width":375,"spacing":3.75,"oneLine":296.734375,"room":277,"target":293,"strongLines":2,"v11Outside":["24/7."]},{"engine":"WebKit","name":"deposit","width":320,"spacing":1.75,"oneLine":244.734375,"room":222,"target":240,"strongLines":2,"v11Outside":["24/7."]},{"engine":"WebKit","name":"redeem","width":661,"spacing":13.5,"oneLine":550.234375,"room":531,"target":547,"strongLines":2,"v11Outside":["24/7."]},{"engine":"WebKit","name":"redeem","width":375,"spacing":3.75,"oneLine":296.734375,"room":277,"target":293,"strongLines":2,"v11Outside":["24/7."]},{"engine":"WebKit","name":"redeem","width":320,"spacing":1.75,"oneLine":244.734375,"room":222,"target":240,"strongLines":2,"v11Outside":["24/7."]}],"limitations":["Headless Chromium and WebKit; physical iPhone not tested. Rendered screenshots inspected separately."]} +{"hashes":[{"path":"web/public/art/character/vault.webp","bytes":72014,"sha256":"7a0bb9a8c13efa4ec0b5057cf1ceccd4d1eda9708cbe5782f4c1b028e835bd26"},{"path":"web/public/art/character/deposit.webp","bytes":61194,"sha256":"98d42bf6ad7df061fb131fea714a7930adf3db3a6338df15d90d136aed256374"},{"path":"web/public/art/character/redeem.webp","bytes":61992,"sha256":"3a937c9d853cdea982828642225e96e3c14e238bd941bb6eb572c878d1401598"},{"path":"web/public/art/food/bread.svg","bytes":3105,"sha256":"ef08e033f63a4f215744a3067a9c0693411ebcfe57b36bf9d197495ecbccf156"},{"path":"web/public/art/food/baguette.svg","bytes":1019,"sha256":"f65ae926257cfc775bfc0239d7bf4404b75fc6765a24747044f60f4227053f91"},{"path":"web/public/art/food/cheese.svg","bytes":1380,"sha256":"f239293bf0d152a15326a186166168f8da7ad8d6c7127a4ecfa2ace4005aff7a"},{"path":"web/public/art/food/milk.svg","bytes":768,"sha256":"3b60194616354c508ba142fce6e396fea3140abf09df99a31024336fbba384e4"},{"path":"web/public/art/food/canned-food.svg","bytes":1338,"sha256":"4ea41ac2c82bec24344580a0bba49047186537f91dee30c4ddd3b0ffc2e391b1"},{"path":"web/public/art/food/egg.svg","bytes":412,"sha256":"1c7146a519276e93c0f939756e80beb5b0edb4e9a350dbe58ab63c7d0bcc5204"},{"path":"web/public/art/food/honey-pot.svg","bytes":1767,"sha256":"20fdbe3a68d2e017899372e32874fad9c08ee35a8f1509e7be1497b448db5fc6"},{"path":"web/public/art/food/jar.svg","bytes":804,"sha256":"1a619c120858851ed4956bb54beca416c39ac8bc31a87530870e4ab2493a6795"},{"path":"web/public/art/food/beverage-box.svg","bytes":1997,"sha256":"135e7cf6dd378e8ee10bed849ee8452bc4e24ca799a0bf225f8c565669c220da"},{"path":"web/public/art/food/croissant.svg","bytes":2280,"sha256":"ae35174ffabb5610fd7ed0320f48c7bd759e18d4c9d1a06ff67f7597470fb9fd"},{"path":"web/public/art/food/butter.svg","bytes":2620,"sha256":"0b901e32d4e898f1ee910934b4afc635bdac48791d21a9d6c7775ac6128d17c3"},{"path":"web/public/art/food/cookie.svg","bytes":2020,"sha256":"d02b9e85fa0394a4c59fd74654244c069eddb9aaf72abbcba8d0d3060262d6af"},{"path":"web/public/art/food/pie.svg","bytes":2539,"sha256":"e9c5e76220606191921017d96e247ec1b2c5f02291a75fbfcd815e00190eacca"},{"path":"web/public/art/food/bagel.svg","bytes":6347,"sha256":"00b049b844d946392edc9133ed583ef41d8f05b5e0cc1c74b3417e90adaf3bfb"},{"path":"web/public/art/food/apple.svg","bytes":563,"sha256":"bc69f7c89a3621fb564482f9e13818019c6eac3a9d16fe996852514f3b19a073"},{"path":"web/public/art/food/banana.svg","bytes":1909,"sha256":"40047ed9d10462ba41457b0c55beb05b6fde4ce590e6c1f88577539e46c2f20d"},{"path":"web/public/art/food/carrot.svg","bytes":1448,"sha256":"99521ccf4753d9b5312707541eafc41f00b35f616bb6e96cada9acfc7bf1d396"},{"path":"web/public/art/food/broccoli.svg","bytes":1257,"sha256":"53e9899f7e5ee6da63c0357a1152d7da413bbab029bbf53beb5255999c2823df"},{"path":"web/public/art/food/tomato.svg","bytes":924,"sha256":"3b3326c731fce0fe697656d33bb092613eb261d827b6ca319b5cd6df08212add"},{"path":"web/public/art/food/pineapple.svg","bytes":4821,"sha256":"9d064d8f8796b53a9eeb18b642e6e16628848ad2fa944576b597e7c7f36a95be"},{"path":"web/public/art/food/corn.svg","bytes":4009,"sha256":"98badfb85ed658177c2d2002fa6ab9fe619b0330147838d76e95739e73d879e8"},{"path":"web/public/art/food/bell-pepper.svg","bytes":1195,"sha256":"e6327c805e2df2e6c1d18b0d66bfe54e41e14393bc21f4b8f6b4b3be5cecdbe4"},{"path":"web/public/art/food/leafy-green.svg","bytes":2841,"sha256":"4df9bb2eb271ac221b75e16bce9c63ae4e54780159bf4cca83adea4604ea4fec"},{"path":"web/public/art/food/watermelon.svg","bytes":2024,"sha256":"33ce86d2784776504191684fd34495c68ac54be7b98e100ef18c3a19297c735e"},{"path":"web/public/art/food/grapes.svg","bytes":1971,"sha256":"e959e27685f84cead6cc230c719c75feaf3a3cfde878cf00819473036005edd0"},{"path":"web/public/art/food/lemon.svg","bytes":713,"sha256":"f3a924a7031fc0dd7c57a90e5f9794cf72859d860151dec321c4adc38605e4cc"},{"path":"web/public/art/food/pear.svg","bytes":636,"sha256":"ddab6102c0ab2fef2dee700b7bb3d427187df8bfa010b23c4e2516e15c226551"},{"path":"web/public/art/food/strawberry.svg","bytes":2048,"sha256":"d8522f848f305fc81040dd9c5467f97df483fde5e2568429046e7f1ae1a23d91"},{"path":"web/public/art/food/eggplant.svg","bytes":896,"sha256":"a4f479a1476608d8a69bb84a85e83471a09f6cd030c1614c4dca1e5a6796a0d4"},{"path":"web/public/art/food/avocado.svg","bytes":1663,"sha256":"81e6bdde887deddceedbd538ecc14876ab0f3873406632bcd3fd365741efe434"},{"path":"web/public/art/food/onion.svg","bytes":1984,"sha256":"16ef144c9b55823bfe1d6099fdbf884cdc715b74c4cdfaa09e5bb2cc7b970ad9"},{"path":"web/public/art/food/potato.svg","bytes":1551,"sha256":"630cf5cd73f353d09805ff72c9eeab5bf0caa65c65a8c615f6a4658a6993f6dc"},{"path":"web/public/art/food/green-apple.svg","bytes":575,"sha256":"8d16350d03ee8c98f1d58985453b4c7fbe4d69da3fde37cbf8b5c70ecb80bbd4"},{"path":"web/public/art/food/Fluent-Emoji-MIT.txt","bytes":1141,"sha256":"c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383"},{"path":"web/public/art/character/earn.webp","bytes":99214,"sha256":"b6909185b01f73b987c6c9bd2caf7b96a600d0c3dc91a3cb2757d72eac8bc051"},{"path":"web/public/art/character/transparency.webp","bytes":92840,"sha256":"f48d0a806c47889e1f01f6c846428eefc528771c51a43ff24140261d567480fe"},{"path":"dist/art/character/vault.webp","bytes":72014,"sha256":"7a0bb9a8c13efa4ec0b5057cf1ceccd4d1eda9708cbe5782f4c1b028e835bd26"},{"path":"dist/art/character/deposit.webp","bytes":61194,"sha256":"98d42bf6ad7df061fb131fea714a7930adf3db3a6338df15d90d136aed256374"},{"path":"dist/art/character/redeem.webp","bytes":61992,"sha256":"3a937c9d853cdea982828642225e96e3c14e238bd941bb6eb572c878d1401598"},{"path":"dist/art/food/bread.svg","bytes":3105,"sha256":"ef08e033f63a4f215744a3067a9c0693411ebcfe57b36bf9d197495ecbccf156"},{"path":"dist/art/food/baguette.svg","bytes":1019,"sha256":"f65ae926257cfc775bfc0239d7bf4404b75fc6765a24747044f60f4227053f91"},{"path":"dist/art/food/cheese.svg","bytes":1380,"sha256":"f239293bf0d152a15326a186166168f8da7ad8d6c7127a4ecfa2ace4005aff7a"},{"path":"dist/art/food/milk.svg","bytes":768,"sha256":"3b60194616354c508ba142fce6e396fea3140abf09df99a31024336fbba384e4"},{"path":"dist/art/food/canned-food.svg","bytes":1338,"sha256":"4ea41ac2c82bec24344580a0bba49047186537f91dee30c4ddd3b0ffc2e391b1"},{"path":"dist/art/food/egg.svg","bytes":412,"sha256":"1c7146a519276e93c0f939756e80beb5b0edb4e9a350dbe58ab63c7d0bcc5204"},{"path":"dist/art/food/honey-pot.svg","bytes":1767,"sha256":"20fdbe3a68d2e017899372e32874fad9c08ee35a8f1509e7be1497b448db5fc6"},{"path":"dist/art/food/jar.svg","bytes":804,"sha256":"1a619c120858851ed4956bb54beca416c39ac8bc31a87530870e4ab2493a6795"},{"path":"dist/art/food/beverage-box.svg","bytes":1997,"sha256":"135e7cf6dd378e8ee10bed849ee8452bc4e24ca799a0bf225f8c565669c220da"},{"path":"dist/art/food/croissant.svg","bytes":2280,"sha256":"ae35174ffabb5610fd7ed0320f48c7bd759e18d4c9d1a06ff67f7597470fb9fd"},{"path":"dist/art/food/butter.svg","bytes":2620,"sha256":"0b901e32d4e898f1ee910934b4afc635bdac48791d21a9d6c7775ac6128d17c3"},{"path":"dist/art/food/cookie.svg","bytes":2020,"sha256":"d02b9e85fa0394a4c59fd74654244c069eddb9aaf72abbcba8d0d3060262d6af"},{"path":"dist/art/food/pie.svg","bytes":2539,"sha256":"e9c5e76220606191921017d96e247ec1b2c5f02291a75fbfcd815e00190eacca"},{"path":"dist/art/food/bagel.svg","bytes":6347,"sha256":"00b049b844d946392edc9133ed583ef41d8f05b5e0cc1c74b3417e90adaf3bfb"},{"path":"dist/art/food/apple.svg","bytes":563,"sha256":"bc69f7c89a3621fb564482f9e13818019c6eac3a9d16fe996852514f3b19a073"},{"path":"dist/art/food/banana.svg","bytes":1909,"sha256":"40047ed9d10462ba41457b0c55beb05b6fde4ce590e6c1f88577539e46c2f20d"},{"path":"dist/art/food/carrot.svg","bytes":1448,"sha256":"99521ccf4753d9b5312707541eafc41f00b35f616bb6e96cada9acfc7bf1d396"},{"path":"dist/art/food/broccoli.svg","bytes":1257,"sha256":"53e9899f7e5ee6da63c0357a1152d7da413bbab029bbf53beb5255999c2823df"},{"path":"dist/art/food/tomato.svg","bytes":924,"sha256":"3b3326c731fce0fe697656d33bb092613eb261d827b6ca319b5cd6df08212add"},{"path":"dist/art/food/pineapple.svg","bytes":4821,"sha256":"9d064d8f8796b53a9eeb18b642e6e16628848ad2fa944576b597e7c7f36a95be"},{"path":"dist/art/food/corn.svg","bytes":4009,"sha256":"98badfb85ed658177c2d2002fa6ab9fe619b0330147838d76e95739e73d879e8"},{"path":"dist/art/food/bell-pepper.svg","bytes":1195,"sha256":"e6327c805e2df2e6c1d18b0d66bfe54e41e14393bc21f4b8f6b4b3be5cecdbe4"},{"path":"dist/art/food/leafy-green.svg","bytes":2841,"sha256":"4df9bb2eb271ac221b75e16bce9c63ae4e54780159bf4cca83adea4604ea4fec"},{"path":"dist/art/food/watermelon.svg","bytes":2024,"sha256":"33ce86d2784776504191684fd34495c68ac54be7b98e100ef18c3a19297c735e"},{"path":"dist/art/food/grapes.svg","bytes":1971,"sha256":"e959e27685f84cead6cc230c719c75feaf3a3cfde878cf00819473036005edd0"},{"path":"dist/art/food/lemon.svg","bytes":713,"sha256":"f3a924a7031fc0dd7c57a90e5f9794cf72859d860151dec321c4adc38605e4cc"},{"path":"dist/art/food/pear.svg","bytes":636,"sha256":"ddab6102c0ab2fef2dee700b7bb3d427187df8bfa010b23c4e2516e15c226551"},{"path":"dist/art/food/strawberry.svg","bytes":2048,"sha256":"d8522f848f305fc81040dd9c5467f97df483fde5e2568429046e7f1ae1a23d91"},{"path":"dist/art/food/eggplant.svg","bytes":896,"sha256":"a4f479a1476608d8a69bb84a85e83471a09f6cd030c1614c4dca1e5a6796a0d4"},{"path":"dist/art/food/avocado.svg","bytes":1663,"sha256":"81e6bdde887deddceedbd538ecc14876ab0f3873406632bcd3fd365741efe434"},{"path":"dist/art/food/onion.svg","bytes":1984,"sha256":"16ef144c9b55823bfe1d6099fdbf884cdc715b74c4cdfaa09e5bb2cc7b970ad9"},{"path":"dist/art/food/potato.svg","bytes":1551,"sha256":"630cf5cd73f353d09805ff72c9eeab5bf0caa65c65a8c615f6a4658a6993f6dc"},{"path":"dist/art/food/green-apple.svg","bytes":575,"sha256":"8d16350d03ee8c98f1d58985453b4c7fbe4d69da3fde37cbf8b5c70ecb80bbd4"},{"path":"dist/art/food/Fluent-Emoji-MIT.txt","bytes":1141,"sha256":"c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383"},{"path":"dist/art/character/earn.webp","bytes":99214,"sha256":"b6909185b01f73b987c6c9bd2caf7b96a600d0c3dc91a3cb2757d72eac8bc051"},{"path":"dist/art/character/transparency.webp","bytes":92840,"sha256":"f48d0a806c47889e1f01f6c846428eefc528771c51a43ff24140261d567480fe"}],"checks":["Chromium slogan strip, width:lines per half/half px/cycle [320:1/720/22.50048828125s 375:1/720/22.50048828125s 660:1/720/22.50048828125s 661:1/720/90.001953125s 720:1/720/90.001953125s 721:2/1440/180.00390625s 1024:2/1440/180.00390625s 1440:2/1440/180.00390625s 1441:3/2160/270.005859375s 1920:3/2160/270.005859375s 2160:3/2160/270.005859375s 2161:4/2880/360.0078125s 2560:4/2880/360.0078125s 2880:4/2880/360.0078125s 2881:5/3600/450.009765625s 3440:5/3600/450.009765625s 3600:5/3600/450.009765625s 3601:6/4320/540.01171875s 4320:6/4320/540.01171875s 4321:7/5040/630.013671875s 5040:7/5040/630.013671875s 5041:8/5760/720.015625s 5760:8/5760/720.015625s]: eight lines in the markup of each half, the first k shown (k = the fewest 720 px lines covering the viewport), identical halves; v10 loop: the track stays put and the only moving blocks are the two halves (k lines each, at most the viewport plus one line), each its own endless linear Web Animation translateX(100%) to translateX(-100%) on one shared clock, no CSS animation, will-change or 3D in the strip and no endless CSS animation on the page; speed exactly 16 px/s (64 px/s at 660 px and below), two half widths per cycle; at 17 loop phases (just before, at and just after each half's reset among them) the halves sit edge to edge across the window at their expected places, each jumping back only while wholly off screen, line boxes edge to edge and every line join and the seam with the normal word gap; so no animationiteration event can fire (that event comes only from CSS animations); reduced motion: no animation (cancelled), a still, full strip from the left edge; motion back when it is turned off","Chromium 2560: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 1440: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 1000: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 999: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 960: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 800: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 720: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 661: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 660: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 375: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 360: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 359: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium 320: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","Chromium: normal status area absent; exact single issue paragraph, compact Vault Closed notice, Deposit-only CLOSED LED at all 13 selected widths; desktop/phone exact weekend sentence, motion and reduced-motion cancellation","Chromium deposit 661 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","Chromium deposit 375 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","Chromium deposit 320 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","Chromium redeem 661 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","Chromium redeem 375 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","Chromium redeem 320 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","Chromium vault title: on phones (320-660 px) the picture stands in the middle of the panel at 286 widths and, on the 55 narrowest, as near it as her three-line bubble allows 4 px inside the frame; shelf line across the panel, heading centred (v15); the title equals the live title at every width from 320 to 2560 px","Chromium vault: every width 320-2560 px keeps whole bubble words (bubble lines {\"3\":2241}), the strip clear of the title text, the title text centred beside her (Vault heading 17 px under her on phones), the bubble in its frame and the wallet hint gap; picture pixels checked every 40 px","Chromium deposit title: equals the live title (picture, bubble, heading, shelf line) at every phone width and every 40 px above (389 widths) while the heading has no focus marker","Chromium deposit: every width 320-2560 px keeps whole bubble words (bubble lines {\"2\":341,\"3\":1900}), the strip clear of the title text, the title text centred beside her (Vault heading 17 px under her on phones), the bubble in its frame and the wallet hint gap; picture pixels checked every 40 px","Chromium redeem title: equals the live title (picture, bubble, heading, shelf line) at every phone width and every 40 px above (389 widths) while the heading has no focus marker","Chromium redeem: every width 320-2560 px keeps whole bubble words (bubble lines {\"2\":1561,\"3\":680}), the strip clear of the title text, the title text centred beside her (Vault heading 17 px under her on phones), the bubble in its frame and the wallet hint gap; picture pixels checked every 40 px","Chromium v15 focus marker (keyboard focus moved to the heading by a change of page) at 660, 430, 393, 375, 360, 359 and 320 px: on Deposit and Redeem her shelf line runs from the frame to the marker's outer left edge on the marker's bottom band, same height and colour, and nothing else moves; the same check rejects the v14 line put back; without the marker and after blur the line is the plain line; on Vault the marker stays clear of the line and the v14 placing put back is rejected; at 661 px there is no shelf line","WebKit slogan strip, width:lines per half/half px/cycle [320:1/720/22.5s 375:1/720/22.5s 660:1/720/22.5s 661:1/720/90s 720:1/720/90s 721:2/1440/180s 1024:2/1440/180s 1440:2/1440/180s 1441:3/2160/270s 1920:3/2160/270s 2160:3/2160/270s 2161:4/2880/360s 2560:4/2880/360s 2880:4/2880/360s 2881:5/3600/450s 3440:5/3600/450s 3600:5/3600/450s 3601:6/4320/540s 4320:6/4320/540s 4321:7/5040/630s 5040:7/5040/630s 5041:8/5760/720s 5760:8/5760/720s]: eight lines in the markup of each half, the first k shown (k = the fewest 720 px lines covering the viewport), identical halves; v10 loop: the track stays put and the only moving blocks are the two halves (k lines each, at most the viewport plus one line), each its own endless linear Web Animation translateX(100%) to translateX(-100%) on one shared clock, no CSS animation, will-change or 3D in the strip and no endless CSS animation on the page; speed exactly 16 px/s (64 px/s at 660 px and below), two half widths per cycle; at 17 loop phases (just before, at and just after each half's reset among them) the halves sit edge to edge across the window at their expected places, each jumping back only while wholly off screen, line boxes edge to edge and every line join and the seam with the normal word gap; so no animationiteration event can fire (that event comes only from CSS animations); reduced motion: no animation (cancelled), a still, full strip from the left edge; motion back when it is turned off","WebKit 2560: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 1440: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 1000: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 999: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 960: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 800: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 720: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 661: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 660: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 375: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 360: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 359: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit 320: six routes without overflow; both shelf rows filled with ordered square images (the Stock shelves unit on Vault shows its first row only, by design); Stock shelves: one shelf-edge label per listed stock (25) with ticker, price, status and Details, inside the shelf unit, labels/filters/search at least 44 px, no old stock cards, still under reduced motion; title character inside the title panel with exact speech and picture height, head above the panel, bubble clear of the picture, tail clear of face/hands/items, whole bubble words, strip clear of the text, wallet hint gap; no old frames or WOW!, Fresh! kept; Docs FAQ; no Redeem receiver note; v10: the 24/7 redemption tag first in the Deposit and Redeem forms (exact words, at least 14 px, white on royal blue, inside its panel, whole words, clear of the character and her bubble), the Redeem title without it, the capitalised Docs deposits sentence, no price time on any Stock shelves label or in the drawer (reason 9 keeps only its \"old price\" tag); no tagline on the page, Vault title without eyebrow (text centred beside her, or 17 px under her on phones), other eyebrows kept, footer icon/name/links","WebKit: normal status area absent; exact single issue paragraph, compact Vault Closed notice, Deposit-only CLOSED LED at all 13 selected widths; desktop/phone exact weekend sentence, motion and reduced-motion cancellation","WebKit deposit 661 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","WebKit deposit 375 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","WebKit deposit 320 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","WebKit redeem 661 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","WebKit redeem 375 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","WebKit redeem 320 wide label: one-line width at least 240 px; wraps at word boundaries inside pill and panel, clear of character/bubble; identical check rejects v11 nowrap","WebKit vault title: on phones (320-660 px) the picture stands in the middle of the panel at 286 widths and, on the 55 narrowest, as near it as her three-line bubble allows 4 px inside the frame; shelf line across the panel, heading centred (v15); the title equals the live title at every width from 320 to 2560 px","WebKit vault: every width 320-2560 px keeps whole bubble words (bubble lines {\"3\":2241}), the strip clear of the title text, the title text centred beside her (Vault heading 17 px under her on phones), the bubble in its frame and the wallet hint gap; picture pixels checked every 40 px","WebKit deposit title: equals the live title (picture, bubble, heading, shelf line) at every phone width and every 40 px above (389 widths) while the heading has no focus marker","WebKit deposit: every width 320-2560 px keeps whole bubble words (bubble lines {\"2\":341,\"3\":1900}), the strip clear of the title text, the title text centred beside her (Vault heading 17 px under her on phones), the bubble in its frame and the wallet hint gap; picture pixels checked every 40 px","WebKit redeem title: equals the live title (picture, bubble, heading, shelf line) at every phone width and every 40 px above (389 widths) while the heading has no focus marker","WebKit redeem: every width 320-2560 px keeps whole bubble words (bubble lines {\"2\":1561,\"3\":680}), the strip clear of the title text, the title text centred beside her (Vault heading 17 px under her on phones), the bubble in its frame and the wallet hint gap; picture pixels checked every 40 px","WebKit v15 focus marker (keyboard focus moved to the heading by a change of page) at 660, 430, 393, 375, 360, 359 and 320 px: on Deposit and Redeem her shelf line runs from the frame to the marker's outer left edge on the marker's bottom band, same height and colour, and nothing else moves; the same check rejects the v14 line put back; without the marker and after blur the line is the plain line; on Vault the marker stays clear of the line and the v14 placing put back is rejected; at 661 px there is no shelf line"],"bubbles":[{"engine":"Chromium","name":"vault","width":1440,"picture":{"width":"606","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":390,"src":"./art/character/vault.webp","alt":"Cheerful store worker beside a produce crate"},"geometry":{"picture":{"x":944.94,"y":-955.79,"w":236.33,"h":389.98,"elementHeight":390},"bubble":{"x":1095,"y":-889.19,"w":170,"h":90},"bubbleLines":3,"textToStrip":91.5,"popAboveFrame":44.86,"walletGap":16}},{"engine":"Chromium","name":"deposit","width":1440,"picture":{"width":"313","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":390,"src":"./art/character/deposit.webp","alt":"Store worker holding out a shopping basket"},"geometry":{"picture":{"x":1026.27,"y":742.21,"w":122.06,"h":389.98,"elementHeight":390},"bubble":{"x":1141,"y":822.7,"w":124,"h":90},"bubbleLines":3,"textToStrip":63.75,"popAboveFrame":44.86,"walletGap":16}},{"engine":"Chromium","name":"redeem","width":1440,"picture":{"width":"484","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":390,"src":"./art/character/redeem.webp","alt":"Store worker handing over a full grocery bag"},"geometry":{"picture":{"x":863.47,"y":720.21,"w":188.75,"h":389.98,"elementHeight":390},"bubble":{"x":1039,"y":805.38,"w":226,"h":66},"bubbleLines":2,"textToStrip":69.25,"popAboveFrame":44.86,"walletGap":16}},{"engine":"Chromium","name":"vault","width":800,"picture":{"width":"606","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":340,"src":"./art/character/vault.webp","alt":"Cheerful store worker beside a produce crate"},"geometry":{"picture":{"x":456.17,"y":731.61,"w":206.03,"h":339.99,"elementHeight":340},"bubble":{"x":587,"y":785.42,"w":158,"h":82.78},"bubbleLines":3,"textToStrip":57.5,"popAboveFrame":39.27,"walletGap":16}},{"engine":"Chromium","name":"deposit","width":800,"picture":{"width":"313","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":340,"src":"./art/character/deposit.webp","alt":"Store worker holding out a shopping basket"},"geometry":{"picture":{"x":530.97,"y":747.64,"w":106.41,"h":339.96,"elementHeight":340},"bubble":{"x":631,"y":813.7,"w":114,"h":82.78},"bubbleLines":3,"textToStrip":26,"popAboveFrame":38.24,"walletGap":16}},{"engine":"Chromium","name":"redeem","width":800,"picture":{"width":"484","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":340,"src":"./art/character/redeem.webp","alt":"Store worker handing over a full grocery bag"},"geometry":{"picture":{"x":441.97,"y":768.62,"w":164.55,"h":339.97,"elementHeight":340},"bubble":{"x":595,"y":844.78,"w":150,"h":82.78},"bubbleLines":3,"textToStrip":71.06,"popAboveFrame":39.25,"walletGap":16}},{"engine":"Chromium","name":"vault","width":375,"picture":{"width":"606","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":300,"src":"./art/character/vault.webp","alt":"Cheerful store worker beside a produce crate"},"geometry":{"picture":{"x":96.55,"y":-1150.62,"w":181.8,"h":299.99,"elementHeight":300},"bubble":{"x":212,"y":-1106.81,"w":138,"h":73.17},"bubbleLines":3,"textToStrip":14.98,"popAboveFrame":31.59,"walletGap":12}},{"engine":"Chromium","name":"deposit","width":375,"picture":{"width":"313","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":300,"src":"./art/character/deposit.webp","alt":"Store worker holding out a shopping basket"},"geometry":{"picture":{"x":35,"y":150.4,"w":93.89,"h":299.97,"elementHeight":300},"bubble":{"x":123.27,"y":191.78,"w":150,"h":54.78},"bubbleLines":2,"textToStrip":24,"popAboveFrame":31.57,"walletGap":12}},{"engine":"Chromium","name":"redeem","width":375,"picture":{"width":"484","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":300,"src":"./art/character/redeem.webp","alt":"Store worker handing over a full grocery bag"},"geometry":{"picture":{"x":35,"y":150.4,"w":145.19,"h":299.97,"elementHeight":300},"bubble":{"x":170.03,"y":195.38,"w":160,"h":73.17},"bubbleLines":3,"textToStrip":24,"popAboveFrame":31.57,"walletGap":12}},{"engine":"Chromium","name":"vault","width":320,"picture":{"width":"606","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":270,"src":"./art/character/vault.webp","alt":"Cheerful store worker beside a produce crate"},"geometry":{"picture":{"x":53.09,"y":190.91,"w":163.61,"h":269.98,"elementHeight":270},"bubble":{"x":157,"y":226.42,"w":138,"h":73.17},"bubbleLines":3,"textToStrip":14.98,"popAboveFrame":23.82,"walletGap":12}},{"engine":"Chromium","name":"deposit","width":320,"picture":{"width":"313","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":270,"src":"./art/character/deposit.webp","alt":"Store worker holding out a shopping basket"},"geometry":{"picture":{"x":35,"y":761.92,"w":84.5,"h":269.97,"elementHeight":270},"bubble":{"x":114.44,"y":798.27,"w":140,"h":54.78},"bubbleLines":2,"textToStrip":24,"popAboveFrame":23.81,"walletGap":12}},{"engine":"Chromium","name":"redeem","width":320,"picture":{"width":"484","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":270,"src":"./art/character/redeem.webp","alt":"Store worker handing over a full grocery bag"},"geometry":{"picture":{"x":35,"y":761.91,"w":130.67,"h":269.98,"elementHeight":270},"bubble":{"x":156.53,"y":801.5,"w":138,"h":73.17},"bubbleLines":3,"textToStrip":24,"popAboveFrame":23.82,"walletGap":12}},{"engine":"WebKit","name":"vault","width":1440,"picture":{"width":"606","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":390,"src":"./art/character/vault.webp","alt":"Cheerful store worker beside a produce crate"},"geometry":{"picture":{"x":944.94,"y":-951.98,"w":236.33,"h":389.98,"elementHeight":390},"bubble":{"x":1095,"y":-885.37,"w":170,"h":90},"bubbleLines":3,"textToStrip":91.5,"popAboveFrame":44.86,"walletGap":16}},{"engine":"WebKit","name":"deposit","width":1440,"picture":{"width":"313","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":390,"src":"./art/character/deposit.webp","alt":"Store worker holding out a shopping basket"},"geometry":{"picture":{"x":1026.27,"y":742.02,"w":122.06,"h":389.98,"elementHeight":390},"bubble":{"x":1141,"y":822.52,"w":124,"h":90},"bubbleLines":3,"textToStrip":64,"popAboveFrame":44.86,"walletGap":16}},{"engine":"WebKit","name":"redeem","width":1440,"picture":{"width":"484","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":390,"src":"./art/character/redeem.webp","alt":"Store worker handing over a full grocery bag"},"geometry":{"picture":{"x":863.47,"y":720.02,"w":188.75,"h":389.98,"elementHeight":390},"bubble":{"x":1039,"y":805.19,"w":226,"h":66},"bubbleLines":2,"textToStrip":69.5,"popAboveFrame":44.86,"walletGap":16}},{"engine":"WebKit","name":"vault","width":800,"picture":{"width":"606","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":340,"src":"./art/character/vault.webp","alt":"Cheerful store worker beside a produce crate"},"geometry":{"picture":{"x":456.17,"y":731.01,"w":206.03,"h":339.99,"elementHeight":340},"bubble":{"x":587,"y":784.83,"w":158,"h":81},"bubbleLines":3,"textToStrip":57.5,"popAboveFrame":39.27,"walletGap":16}},{"engine":"WebKit","name":"deposit","width":800,"picture":{"width":"313","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":340,"src":"./art/character/deposit.webp","alt":"Store worker holding out a shopping basket"},"geometry":{"picture":{"x":530.97,"y":748.04,"w":106.41,"h":339.96,"elementHeight":340},"bubble":{"x":631,"y":814.11,"w":114,"h":81},"bubbleLines":3,"textToStrip":26,"popAboveFrame":38.24,"walletGap":16}},{"engine":"WebKit","name":"redeem","width":800,"picture":{"width":"484","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":340,"src":"./art/character/redeem.webp","alt":"Store worker handing over a full grocery bag"},"geometry":{"picture":{"x":441.97,"y":769.03,"w":164.55,"h":339.97,"elementHeight":340},"bubble":{"x":595,"y":845.19,"w":150,"h":81},"bubbleLines":3,"textToStrip":71.5,"popAboveFrame":39.25,"walletGap":16}},{"engine":"WebKit","name":"vault","width":375,"picture":{"width":"606","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":300,"src":"./art/character/vault.webp","alt":"Cheerful store worker beside a produce crate"},"geometry":{"picture":{"x":96.55,"y":-1142.99,"w":181.8,"h":299.99,"elementHeight":300},"bubble":{"x":212,"y":-1099.19,"w":138,"h":72},"bubbleLines":3,"textToStrip":15,"popAboveFrame":31.59,"walletGap":12}},{"engine":"WebKit","name":"deposit","width":375,"picture":{"width":"313","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":300,"src":"./art/character/deposit.webp","alt":"Store worker holding out a shopping basket"},"geometry":{"picture":{"x":35,"y":181.03,"w":93.89,"h":299.97,"elementHeight":300},"bubble":{"x":123.27,"y":222.41,"w":150,"h":54},"bubbleLines":2,"textToStrip":24,"popAboveFrame":31.57,"walletGap":12}},{"engine":"WebKit","name":"redeem","width":375,"picture":{"width":"484","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":300,"src":"./art/character/redeem.webp","alt":"Store worker handing over a full grocery bag"},"geometry":{"picture":{"x":35,"y":181.03,"w":145.19,"h":299.97,"elementHeight":300},"bubble":{"x":170.03,"y":226,"w":160,"h":72},"bubbleLines":3,"textToStrip":24,"popAboveFrame":31.57,"walletGap":12}},{"engine":"WebKit","name":"vault","width":320,"picture":{"width":"606","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":270,"src":"./art/character/vault.webp","alt":"Cheerful store worker beside a produce crate"},"geometry":{"picture":{"x":53.09,"y":223.02,"w":163.61,"h":269.98,"elementHeight":270},"bubble":{"x":157,"y":258.53,"w":138,"h":72},"bubbleLines":3,"textToStrip":15,"popAboveFrame":23.82,"walletGap":12}},{"engine":"WebKit","name":"deposit","width":320,"picture":{"width":"313","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":270,"src":"./art/character/deposit.webp","alt":"Store worker holding out a shopping basket"},"geometry":{"picture":{"x":35,"y":762.03,"w":84.5,"h":269.97,"elementHeight":270},"bubble":{"x":114.44,"y":798.38,"w":140,"h":54},"bubbleLines":2,"textToStrip":24,"popAboveFrame":23.81,"walletGap":12}},{"engine":"WebKit","name":"redeem","width":320,"picture":{"width":"484","height":"1000","fit":"contain","position":"50% 100%","display":"block","h":270,"src":"./art/character/redeem.webp","alt":"Store worker handing over a full grocery bag"},"geometry":{"picture":{"x":35,"y":730.02,"w":130.67,"h":269.98,"elementHeight":270},"bubble":{"x":156.53,"y":769.61,"w":138,"h":72},"bubbleLines":3,"textToStrip":24,"popAboveFrame":23.82,"walletGap":12}}],"wideLabels":[{"engine":"Chromium","name":"deposit","width":661,"spacing":13.5,"oneLine":550.234375,"room":531,"target":547,"strongLines":2,"v11Outside":["24/7."]},{"engine":"Chromium","name":"deposit","width":375,"spacing":3.75,"oneLine":296.734375,"room":277,"target":293,"strongLines":2,"v11Outside":["24/7."]},{"engine":"Chromium","name":"deposit","width":320,"spacing":1.75,"oneLine":244.734375,"room":222,"target":240,"strongLines":2,"v11Outside":["24/7."]},{"engine":"Chromium","name":"redeem","width":661,"spacing":13.5,"oneLine":550.234375,"room":531,"target":547,"strongLines":2,"v11Outside":["24/7."]},{"engine":"Chromium","name":"redeem","width":375,"spacing":3.75,"oneLine":296.734375,"room":277,"target":293,"strongLines":2,"v11Outside":["24/7."]},{"engine":"Chromium","name":"redeem","width":320,"spacing":1.75,"oneLine":244.734375,"room":222,"target":240,"strongLines":2,"v11Outside":["24/7."]},{"engine":"WebKit","name":"deposit","width":661,"spacing":13.5,"oneLine":550.234375,"room":531,"target":547,"strongLines":2,"v11Outside":["24/7."]},{"engine":"WebKit","name":"deposit","width":375,"spacing":3.75,"oneLine":296.734375,"room":277,"target":293,"strongLines":2,"v11Outside":["24/7."]},{"engine":"WebKit","name":"deposit","width":320,"spacing":1.75,"oneLine":244.734375,"room":222,"target":240,"strongLines":2,"v11Outside":["24/7."]},{"engine":"WebKit","name":"redeem","width":661,"spacing":13.5,"oneLine":550.234375,"room":531,"target":547,"strongLines":2,"v11Outside":["24/7."]},{"engine":"WebKit","name":"redeem","width":375,"spacing":3.75,"oneLine":296.734375,"room":277,"target":293,"strongLines":2,"v11Outside":["24/7."]},{"engine":"WebKit","name":"redeem","width":320,"spacing":1.75,"oneLine":244.734375,"room":222,"target":240,"strongLines":2,"v11Outside":["24/7."]}],"limitations":["Headless Chromium and WebKit; physical iPhone not tested. Rendered screenshots inspected separately."]} diff --git a/artifacts/bundle-check.json b/artifacts/bundle-check.json index ece7698..26c8274 100644 --- a/artifacts/bundle-check.json +++ b/artifacts/bundle-check.json @@ -1,8 +1,8 @@ { "limitBytes": 8388608, - "uncompressedDeliveryBytes": 8235939, - "fileCount": 278, - "productionExportBytes": 1249329, + "uncompressedDeliveryBytes": 8308196, + "fileCount": 282, + "productionExportBytes": 1267708, "productionFiles": { "dist/art/character/deposit.webp": { "bytes": 61194, @@ -168,17 +168,17 @@ "bytes": 17936, "sha256": "8ddbebcc1048154132e1d78eb9b1f7850bca1b7d857035ccf1cb4318ebc615b6" }, - "dist/assets/ccip-BvpA7xm5.js": { + "dist/assets/ccip-DVSpff_c.js": { "bytes": 2610, - "sha256": "bc420bc6544a137d2aba7a0015ae200b891fa7b78b4a1816bc08e57e1f38a694" + "sha256": "6c1b950fbe36ef47072e3a56ff59f70459a3804f5bb439ef681786a36ab01ccf" }, - "dist/assets/index-BfIl7glJ.css": { - "bytes": 59333, - "sha256": "0daff0579c31d87ecf2281da4e61b9d5f838bdf9e07f7557867d2ce9be7a0f68" + "dist/assets/index-BizfU3zC.js": { + "bytes": 651216, + "sha256": "12f8ff483f42e6eeaf00befd1ca7721ba3ac366bb23b4e2514ce534c7f4f938d" }, - "dist/assets/index-CYI-6Qll.js": { - "bytes": 645684, - "sha256": "00dee82aae19bdafded2d97ec92c5fb67ee01419cd308905e2cc773a8e701c15" + "dist/assets/index-wqZRUeaL.css": { + "bytes": 72180, + "sha256": "67c0ffc06c1245f57beafb6f51a8eefa2f60b1d11f6b5971447b31de5a6038a2" }, "dist/favicon.svg": { "bytes": 416, @@ -194,7 +194,7 @@ }, "dist/index.html": { "bytes": 1330, - "sha256": "e009dc75371d08d339c96c5fe40c7d37b8a869c0a108c2e490c8cadca0d00208" + "sha256": "5a03c45efd8ff5a25183f9a3a132589f80a961997b22c9219bbc626e7cd86048" }, "dist/share-card.jpg": { "bytes": 44831, @@ -204,6 +204,7 @@ "accounting": "Complete candidate file contents including tracked lib sources and this report. Excludes Git metadata, removed task inputs and disposable test/scratch. No Git metadata was modified.", "checks": [ "Protected configuration, dependencies, root contracts, web/pinned, build configuration and validation fixtures unchanged; ITEM and BASK source scope independently pinned; exact share shell and both share JPEG copies pinned; both favicon copies unchanged", + "v25: source scope adds Vault.tsx, the two new stats sources and no public asset", "No git submodules or nested dependency/cache/archive payloads", "24 required empty/25-stock screenshots retained: sixteen quality-18 JPEGs and exactly eight full Docs/Owner lossless WebPs with independent browser/Pillow pixel equality; only the exact named ITEM walk JPEGs are added", "Both copies of all 37 original manifest assets and the two exact approved ITEM pictures included" diff --git a/artifacts/calldata-comparison.json b/artifacts/calldata-comparison.json index 2d77768..d74ae00 100644 --- a/artifacts/calldata-comparison.json +++ b/artifacts/calldata-comparison.json @@ -1 +1 @@ -{"result":"PASS","item":{"mode":"final","actions":["baskApprove","baskStake","baskWithdraw","baskClaim","ethApprove","ethStake","ethWithdraw","ethClaim","itemApprove","itemStake","itemUnstake","claimBask","baskLiquidityApprove","usdgLiquidityApprove","baskAddLiquidity","itemLiquidityApprove","ethAddLiquidity"],"encodingCases":51,"nullSlotCases":15,"nullActionCases":255,"reads":[{"view":"earn","account":false,"reads":20,"nativeBalanceReads":0},{"view":"earn","account":true,"reads":37,"nativeBalanceReads":1}],"nativeRpcMethods":[{"method":"eth_getBalance","file":"itemReads.ts","callee":"client.getBalance","scope":"readItemFigures","when":"Earn open, all launch slots filled, connected account only"}],"vaultNoValueBuilders":{"model.ts":3,"Flows.tsx":11,"Owner.tsx":46,"Losses.tsx":4},"safety":[{"file":"itemConstants.ts","storage":0,"providerMethods":0,"sendSinks":0},{"file":"itemAbi.ts","storage":0,"providerMethods":0,"sendSinks":0},{"file":"itemReads.ts","storage":0,"providerMethods":0,"sendSinks":0},{"file":"itemActions.ts","storage":0,"providerMethods":0,"sendSinks":0},{"file":"itemFormat.ts","storage":0,"providerMethods":0,"sendSinks":0},{"file":"Earn.tsx","storage":0,"providerMethods":0,"sendSinks":2},{"file":"Transparency.tsx","storage":0,"providerMethods":0,"sendSinks":0},{"file":"FindItem.tsx","storage":0,"providerMethods":0,"sendSinks":0}],"independentRawSourcePins":{"main.tsx":"20581ffb29277bcb14dcd20526a3ea369f8ef40a0e3ff5b225d03f4d735abbeb","components.tsx":"7b3f5c741ec81e3eef289c0179ad35056fa97641302165f4f72e4ebc8917b40b","wallet.tsx":"6439fafab303be801bc8032ab9d492d94a58f99c3f3df0dbb015e8e1f550044d","chain.ts":"8477f756be249b1446de21f6964124f9e3f22a6a91d90cfffdce123fbe6b01eb","Docs.tsx":"036798a3209d330aaf175dd89984d4bd7c8a5bbee77e5be62dccf71938267ab9","tokenomicsData.ts":"c84d346ab2bc6d04445a0bb0c288b08ab30d2a53b444eefe60bca771be3f3cba","Tokenomics.tsx":"a5c036e37a0684b84c49141bff193c63f0967e39e275065c2da1032559420488","itemConstants.ts":"6ee04472bcc387933d7f3b58234cb42573496e656847a261a009a11831568163","itemAbi.ts":"42a4fb064c2bb1348948b7ea448136e13d97b57d005a2ccc3bce4d1679731d80","itemReads.ts":"45f1b009807305f4c5003fcd6f59047f5fa09a8f095e82db5457f92d63453019","itemActions.ts":"4c84ddbd80962d69c6315e33841e1562308bb2b32dcbda47512e2f34d8f2368a","itemFormat.ts":"ad75601c2b32bc0c3be7ac7e874f765aefd141ef16ee43b7d3583f27a72eb811","Earn.tsx":"9b1dc219c8582e800ca99b614879293ad4475851bebd57acfbc600331bf8e7ae","Transparency.tsx":"3481af8504a07ab82e8b35982bb2ecbaedc4646c33e3763b68b6dd1623c63fad","FindItem.tsx":"398170f167c1ae68286273aafffa60a4c79eea8286054bc376699182c13c5a8d","styles.css":"0db9569699f5bc0aebb5b3734dbcf9d3c0d625c8919a7235fae4f5ce95569de5"},"legacyNormalization":"Exact approved pieces restored to base before unchanged legacy assertions"},"baseline":"736affca69ad6aefe27b27d7e0ceeb405c236a96","protectedFiles":["BaskGuide.tsx","Flows.tsx","Losses.tsx","Owner.tsx","Scenery.tsx","Vault.tsx","baskGuideData.ts","deployment.ts","governance.ts","model.ts","newYork.ts","poolMath.ts","vault.abi.json"],"editedFiles":{"main.tsx":"4 documented pieces [v12, HEAD]","components.tsx":"1 documented pieces [v12, HEAD]","wallet.tsx":"17 documented pieces [v12, HEAD]","chain.ts":"3 documented pieces [v12, HEAD]","Docs.tsx":"6 documented pieces [v12, HEAD]","tokenomicsData.ts":"2 documented pieces [v12, HEAD]","Tokenomics.tsx":"1 documented pieces [v12, HEAD]"},"v12Pieces":{"main.tsx":[{"v12":{"length":398,"sha256":"d78d986aef9d85ee3a5c3c81e6fa038be75e05291cbdcb7a2d4e35fb7161db26"},"head":{"length":236,"sha256":"8c5460fe4cf04ca083f1dcd2bede6ee742f52046bcd24aa32d61a6d2363cd0ee"}},{"v12":{"length":264,"sha256":"7e8c06291e4351bbc3beb5652935234d45d54f7da67950b847aed3fa91644af8"},"head":{"length":90,"sha256":"d810633a0ead9cf320efe6a2c13034589f8fb881386d685c93d91d0493e068ac"}},{"v12":{"length":167,"sha256":"84d1c7696c2fcef23ba449dc9c44e0abde647b12b0f02d5b8f58a78366353b12"},"head":{"length":54,"sha256":"29f2340c2969a20988ee9c2dc7ac037eb1d2afb207666efa2e5480b920e1c06a"}},{"v12":{"length":248,"sha256":"7502040ac982bf2f637b605b0573f4c1794b909ae2ab0d94a6242cc53bc983cf"},"head":{"length":100,"sha256":"e73f86845b46e985f72195abd756a1c7a8ecd9fa4e1e3374240ddc897daf95e8"}}],"components.tsx":[{"v12":{"length":132,"sha256":"fbdd3bc61af8d68ca0b38eb02a04996bac754b9a01425f580e46f1a93c588044"},"head":{"length":75,"sha256":"610c6a8655f59e63df07f111a2a7c8bc1b57b4b15bd2457809709e78b5d99a1b"}}],"wallet.tsx":[{"v12":{"length":218,"sha256":"4f8ca528ac4dec7a0c8e1532ed9214c2c55ace4d80a772cd6eb51f9ddbf84796"},"head":{"length":116,"sha256":"9399b10b2296b7c1b9a07cb4f34c8cfd9fc6c298bbf4911f0adc9545a25b1ac9"}},{"v12":{"length":402,"sha256":"567148333218c3176728199e7c9b830044a6e80daf9dbcf12b9e4ba3c6a8aca1"},"head":{"length":167,"sha256":"b2eecbe094ddcf169e4af9638846a4118e3708e5bf498d22c1b527fe38bc631d"}},{"v12":{"length":495,"sha256":"20c20eca5d44b37e02e228d6076ccbec93fbbeba2546e7aa798aff5e84aa7560"},"head":{"length":81,"sha256":"fe411a20765a5e10cd9ce9fc60351ac1879e4f51fe889145fac775e97022fc53"}},{"v12":{"length":280,"sha256":"24047cbcb179f30824c27e571105f98da4d932c922eef3f67ea6a0e90f7b7134"},"head":{"length":109,"sha256":"fa057020a88c252f7981f94d5bbfa55464415ca41abd5b71b2b23cbd25cbe7bc"}},{"v12":{"length":2673,"sha256":"f71a3d1b6dd60e36d841a515b52f05ab42f7a389b1f54bf583a4b5d3a4b9ef75"},"head":{"length":57,"sha256":"03a9059c9acda890001dc8d941a2828839e9081a908277bbf5941a84787f163b"}},{"v12":{"length":294,"sha256":"a49a5cb3c7729061fe2869b8d8aa086652f0a7ead2425dc11506b4702d899a0c"},"head":{"length":90,"sha256":"d9665a0a3bf948d82811c142b7e07d33d62ad0afff77e7ab81f7b7bc19b81184"}},{"v12":{"length":232,"sha256":"4902eb505c282cb11f9a8d45064d07f9d02e0c41794641b388033d82b5474c77"},"head":{"length":97,"sha256":"28a0ff8cde2b448cb4011de46a6f390e492c8f8cc1d95744be939ac3dac05c6b"}},{"v12":{"length":368,"sha256":"c5e7a54f90539c844e49b1ad6870610da51a1b36a6cab6f55bb07aec33f5a697"},"head":{"length":120,"sha256":"4ad5256d378033b7142a745af83bac4dc9a3fc2e8c22a66059a98a753276839d"}},{"v12":{"length":560,"sha256":"d92ac22086172a753e5c1912090a6ec957c88ccb88c6d2a5a1296a405b7d8128"},"head":{"length":279,"sha256":"c4e28b5e8af39014e32cbc854b5709f34afcc72032ff00e8000cc99096273b71"}},{"v12":{"length":218,"sha256":"7a51cba0063d20148e3a6928cccb0de06c6a411153791f5b1e820c4444ba92ea"},"head":{"length":75,"sha256":"a50d2651eda8917fc2c9f1a68c19afce0f693f50ea2978fe727405ff5b2d5aef"}},{"v12":{"length":670,"sha256":"0d1a7a93a69084e88854e616947f49d7af09cc39fb499e1b704d4e95994010b1"},"head":{"length":270,"sha256":"af7e20bc14c30b89aa415865a0b2ff1f9827255427a936bb51de2bdab3167929"}},{"v12":{"length":517,"sha256":"4e7af3faffbe36f1c24bf23f66ad7befa2c4546ad8ab6ae145f4a0e99da1c1c6"},"head":{"length":177,"sha256":"8c884434d4f367d6ed394b74df19f53aac880a6d6a3040b45b74e86c4fab2f16"}},{"v12":{"length":186,"sha256":"1c080171ef7ff0166445021ef917b150527a7609f25f3ca4aad89208e59ab9b8"},"head":{"length":75,"sha256":"8dcba50bcc6cace1df967d1249c8baf82497f3b7003f1ad01bcdd2a985d4f475"}},{"v12":{"length":341,"sha256":"a46ab81b6eece5f79a99fcd8e8a25b3f2520c577170134d97e4012fcfec39156"},"head":{"length":104,"sha256":"4506112448192b71f4728659248148e36a49718c7616b80824b5ba0469d0b130"}},{"v12":{"length":141,"sha256":"59acb97802bc753ec6d115b482c99a9823df4051a9b8f2c31714d61cfd4c1777"},"head":{"length":78,"sha256":"a878a026d45fcd396d216668d65cbad4d3298687d79e04f0c27a6d2176ef5bf5"}},{"v12":{"length":209,"sha256":"f9e63d2737097bae196c724094ce8bb35b68c311b40d9959a757d623070754bd"},"head":{"length":85,"sha256":"7ad94c4b826803b29edbc39ad9312ff5008797535944b748575889d76f1d562a"}},{"v12":{"length":63,"sha256":"4feed8969fa6fddf1b53425a6a7983377ac23f2c4cf6dd4f58245324186e6cbf"},"head":{"length":30,"sha256":"4214e905f92297c4bae3dd199e08ae7d443e67d0f85e334db8294c356e28689b"}}],"chain.ts":[{"v12":{"length":246,"sha256":"0e240c025be06edaf7a007ba2a941b23ea377f664bff493fc709a3c9d6c0a3b0"},"head":{"length":55,"sha256":"c4f41cc7056773d1073ae40c64be10e3e7252683da9d285baf8b97608a6cbf0f"}},{"v12":{"length":335,"sha256":"45012314dabb26499ca66c63a54b98320e89973427a238a0387f429e43a7f9ab"},"head":{"length":98,"sha256":"0deb14bdc5b3cdd0bd787b6bc9bf861394f11b48e41099b14dae4505aac38ce7"}},{"v12":{"length":593,"sha256":"e6407f601f64256ac5b3a9e0888d2632f1eabcb09bc166b40c9bff124507c32d"},"head":{"length":26,"sha256":"9ec6c3591197b34dc85943f464ce35082bb0a8840ff984c5508785eb05b27c27"}}],"Docs.tsx":[{"v12":{"length":132,"sha256":"968f834c57fafc07397ace779f5a4245877d1c3ef1f7b367146f2b550798a167"},"head":{"length":65,"sha256":"e3adbfcb91c645732443957388d0c7308e8dc56f7b3a2e6b7bc29150346b677a"}},{"v12":{"length":311,"sha256":"a18f5256dbaa6715aa84dc63ade825c41c5ddc9e9d686cc9626a4a712938393e"},"head":{"length":291,"sha256":"b2ec96168a02ab488a615f32b0c8ab5189c1109bd54135de3ca620d5ee619f8f"}},{"v12":{"length":280,"sha256":"b93157f4a741e56a1226c4c5424f6dcf5d7a7dca5414d3ce8c5be3a14de9951a"},"head":{"length":366,"sha256":"e7303e698b9c87b3cc4e7c155d8cd5893f7f8c9ab8133c2c79f54383cab7101f"}},{"v12":{"length":392,"sha256":"9b942eec2f4a6a38c18e3300e53d29d64182cd149be62a3e22763b20c25aa385"},"head":{"length":448,"sha256":"e9e7880c309236673203dc2be385523df0db4e6a15123ab893f47dcda41e1420"}},{"v12":{"length":91,"sha256":"00d07db14b6753d33057f12436ced10465eca5554546c1ecc14b1f2dfe088e75"},"head":{"length":55,"sha256":"e84f60dcace87056fb0517fd5e376d52099f2e78f5fb032105a8a74fcfaeb391"}},{"v12":{"length":206,"sha256":"adcad5429bc6298c463d349c97b7a99c8b3d2ebb6c2b3263211f8cbe989e3cc1"},"head":{"length":29,"sha256":"5aa719a3b1610e6862110aaa8bcf0755e2bf3c6ae7ba292966ea592ce6635233"}}],"tokenomicsData.ts":[{"v12":{"length":138,"sha256":"6190c88e6d25cfece7749d0d12160ad5a5215aebc4c971b5db22c5bc479c1747"},"head":{"length":38,"sha256":"e6916ee735dbd148e121cf4e4ec576fa2c3f7b5be84b021ea9de768205e1de7b"}},{"v12":{"length":438,"sha256":"396264587d55da8faeb72f5fbdf40aff06a5dc16e0a0224d09346645af5d8f6d"},"head":{"length":232,"sha256":"306c92a214d4b56d609ee0f206ce516ef97aec4d788f766f35a4ea4e4f15cd8e"}}],"Tokenomics.tsx":[{"v12":{"length":438,"sha256":"2a146f17f01aeb6886dae6c5b317d876ccae90451867c43d5b30ac4c23bd522a"},"head":{"length":331,"sha256":"44cff304bfad1dfbbc20b510cfef5d81d7c4f1b7311735c5185dfe5794c79cf6"}}]},"counts":{"BaskGuide.tsx":{"guarded":0,"calls":6,"attributes":2},"Docs.tsx":{"guarded":0,"calls":7,"attributes":9},"Flows.tsx":{"guarded":43,"calls":325,"attributes":95},"Losses.tsx":{"guarded":5,"calls":30,"attributes":16},"Owner.tsx":{"guarded":45,"calls":308,"attributes":132},"Scenery.tsx":{"guarded":0,"calls":28,"attributes":0},"Tokenomics.tsx":{"guarded":0,"calls":70,"attributes":5},"Vault.tsx":{"guarded":0,"calls":168,"attributes":20},"baskGuideData.ts":{"guarded":0,"calls":98,"attributes":0},"chain.ts":{"guarded":13,"calls":66,"attributes":0},"components.tsx":{"guarded":1,"calls":22,"attributes":16},"deployment.ts":{"guarded":0,"calls":0,"attributes":0},"governance.ts":{"guarded":51,"calls":125,"attributes":0},"main.tsx":{"guarded":1,"calls":60,"attributes":25},"model.ts":{"guarded":22,"calls":113,"attributes":0},"newYork.ts":{"guarded":0,"calls":60,"attributes":0},"poolMath.ts":{"guarded":0,"calls":9,"attributes":0},"tokenomicsData.ts":{"guarded":0,"calls":25,"attributes":0},"wallet.tsx":{"guarded":38,"calls":164,"attributes":0}},"documentedGuardedCallChanges":{},"documentedAttributeChanges":{"main.tsx":{"removed":[],"added":[" snapshot={data}"," wallet={wallet}"," snapshot={data}"],"why":"each has its why in scripts/check-calldata.mjs"}},"documentedCallChanges":{},"vaultStockShelves":{"attributes":["role=\"img\"","onClick={s.retry}","snapshot={s}","value={VAULT}","snapshot={s}","onClick={onToggle}","onKeyDown={(e) => e.key === \"Escape\" && onClose()}","onClick={onClose}","value={a.token}","value={a.feed}","onClose={() => onClose(o.a.token)}","onToggle={() => onToggle(a.token)}","role=\"list\"","role=\"group\"","onClick={() => show(f, search)}","value={search}","onChange={(e) => show(filter, e.target.value)}","role=\"status\"","onClick={() => show(\"all\", \"\")}","onClick={() => show(\"all\", \"\")}"],"handlers":{"show":"const show = (f: ShelfFilter, text: string) => { stopRestock(); setOpenToken(undefined); setFilter(f); setSearch(text); };","toggle":"const toggle = (token: string) => setOpenToken(openToken === token ? undefined : token);","close":"const close = (token: string) => { setOpenToken(undefined); requestAnimationFrame(() => document.getElementById(`sa-more-${token}`)?.focus()); };","group":"const group = { nav, settings: s.globals.settings, openToken, onToggle: toggle, onClose: close };"}},"pinnedFunctions":{"wallet.tsx send()":{"headEqualToHead":true,"headBytes":3086,"headSha256":"fcd7f2b93240657e0be2323761416e327023fd1cf474f12b1aa1203be410b037","tailPieces":[]},"Flows.tsx approveAll()":{"equalToHead":true,"length":1060,"sha256":"ffcf652ea60d71f8a4c4f3b8197f12d62e73bc97ebf245c1b846b5e0ab43f02a"},"wallet.tsx connect()":{"pinnedText":true,"length":723,"sha256":"9720f515085ddca2d794d6456b5b4297ed0a8868ba0bfd03dcf7d0e9c5127257"},"wallet.tsx disconnect()":{"pinnedText":true,"length":380,"sha256":"d0351b9d4fb2027cec8c256fb2ec0e365eded2f8702ec15e20013967994426cb"}},"walletHookReturn":{"equalToHead":true,"text":"return { account, connecting, progress, report, fail, notice, listingPending, waitPending, chainId, message, hash, busy, confirmed, connect, disconnect, switchChain, addToWallet, send, setMessage, };"},"walletAndRpcMethods":{"named":{"eth_accounts":3,"eth_chainId":7,"eth_requestAccounts":1,"wallet_switchEthereumChain":1,"wallet_addEthereumChain":1,"wallet_watchAsset":1,"eth_sendTransaction":1},"addedInV19":{}},"browserStorageAddedInV12":{},"namesAddedAtTheTopOfAFile":{"main.tsx":{},"components.tsx":{},"wallet.tsx":{},"chain.ts":{},"Docs.tsx":{},"tokenomicsData.ts":{},"Tokenomics.tsx":{}},"moduleDeclarationChanges":{},"namesAddedInsideComponents":{},"transactionCode":{"main.tsx":{"pieces":0,"namesDeclaredAroundThem":[]},"components.tsx":{"pieces":1,"namesDeclaredAroundThem":[]},"wallet.tsx":{"pieces":1,"namesDeclaredAroundThem":[]},"chain.ts":{"pieces":0,"namesDeclaredAroundThem":[]},"Docs.tsx":{"pieces":0,"namesDeclaredAroundThem":[]},"tokenomicsData.ts":{"pieces":0,"namesDeclaredAroundThem":[]},"Tokenomics.tsx":{"pieces":0,"namesDeclaredAroundThem":[]}},"reviewedAddedCalls":{"main.tsx":{"sha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","callees":""},"components.tsx":{"sha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","callees":""},"wallet.tsx":{"sha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","callees":""},"chain.ts":{"sha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","callees":""},"Docs.tsx":{"sha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","callees":""},"tokenomicsData.ts":{"sha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","callees":""},"Tokenomics.tsx":{"sha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","callees":""}},"reviewedSourcePins":{"Docs.tsx":"4a017ccbabc92c33df85c32d34b9f4c2ad94ae8988b50c82eb1115141e413343","main.tsx":"acbfbe99686e824d26720805002343722cc16c8bcfff75a095c1774bcac94e80","wallet.tsx":"550eb23f8c890ee228c218a6e15ffa6e8c1f2f0a3da2aef7c17200103fffcd67","Flows.tsx":"e8f727507de361e7c3f074b33d855867273083aa900f6c0132709c4c8a4246db","Owner.tsx":"9f7b51477f4b3ea2410cad43073ac75c4c2ee3b17085fcf97797dade3942fd65","Tokenomics.tsx":"6d57c2f9d8629f7207368b6d00618da9351e72aba0de52fcff225490be47c85a","tokenomicsData.ts":"8e2cfc45c8055f2dbfdc7a7610e57856809845d52dd103712dd8398f3b11a99a"},"transactionStateWrites":{"main.tsx":0,"components.tsx":0,"wallet.tsx":0,"chain.ts":0,"Docs.tsx":0,"tokenomicsData.ts":0,"Tokenomics.tsx":0},"protectedCode":{"sendTailWrites":["sent = mined;","setHash(mined);","setConfirmed({ hash: mined, functionName: s.functionName });","report(key, { message: `${label}: Confirmed. Refreshing…`, hash: mined });","report(key, { message: `${label}: Confirmed.`, hash: mined, detail });"],"wallet switchChain":[{"bytes":839,"sha256":"f73e8a2cdab011847a0ae0bcb1ad06b04f9d0697dccbc8466eb8e67c0ee58a2d"}],"wallet listingPending":[{"bytes":2122,"sha256":"5e5e619783a582e76b3994c77c5709092b3505ee6cbb9a2d7aea7e07cc85bd12"}],"wallet waitPending":[{"bytes":543,"sha256":"74194fecf66fcd78f506de190ce1b4b59a207d2dbca58803e9e1eb62a44f4aab"}],"Vault DepositState":{"headBytes":1830,"headSha256":"c4d18e62f36a4b4fa553b10b83105c802ea14c17f5c70b4120b682ddc1c04f0a","pieces":[]},"depositSign":{"rawPins":{"DepositLedSign":"5261668a5c55b74287e3dc342168e9176be06b3c7bbd46b0ae98106dc733cf29","DEPOSIT_LETTERS":"4942959fd3db1936945a38cf0bb15be49da43088af5d080c224a19d8e33e44fd"},"uses":[["Flows.tsx","DepositPage",""],["Vault.tsx","VaultPage",""]]},"Flows approveAll":[{"bytes":1356,"sha256":"78cfe9448c872c5343d9a9cbe0179af0765bb962a15ee4d2e67b3d7bc54247f0"}],"Flows onSubmit":[{"bytes":1495,"sha256":"d442f79482bb44dbf3767e2a751e365dd0e504437f05745b20b5a73231e6ffc8"},{"bytes":676,"sha256":"6259d6bdcefb20ba701d4734846c06af54b3a2eb7b3f9bd5b80237745efc6210"}],"Flows getSpec":[{"bytes":1439,"sha256":"f75f13a3d598d3fcbbcd5c2bfd191b3da5cbf31dfbec17bbd26e22192769ad84"},{"bytes":1297,"sha256":"22ff92a5de93cce75de2f39e527e9d76730ee8aaa7db56fe492c38ccabdadb9b"},{"bytes":58,"sha256":"27d05cb77b08c4ca6749f26196255452fa0a55cfabec3148b24969cfc0fababc"}],"Flows transaction buttons":[{"bytes":2117,"sha256":"9b5f0f96d12b49d413e86a816418181f25c430e2a2de182e81233534a6b37252"},{"bytes":1853,"sha256":"8de302b62983d759b62bfe7a1764272cfd62f8120f33da71c79b803a03faa545"},{"bytes":769,"sha256":"e9bec8e32f8ad258d2931f63441337ff165e9ce953bbb04c0d6a9287b19866ba"}],"Claims Claim all handler":[{"bytes":1005,"sha256":"ed305d9823f04b39be4ea80487a45291eae57a33e84cb3dc4b9a9e822dc27773"}],"Claims owed read":[{"bytes":611,"sha256":"a07c30118ad29a940aab1bf6c2122b8cb7aac40861d0511885d0ddadbcebed11"}],"Deposit simulate effect":[{"bytes":759,"sha256":"411ebe4c38ac4c9d98b36aeae92e1e623ba1fe03536c437f9201cfe0f7362242"}],"Deposit confirmed reset":[{"bytes":201,"sha256":"6068779bb1db741c1c316f18ae6db45e5d9a54bf07324b7e5f302fddff2af910"}],"Deposit receipt read":[{"bytes":868,"sha256":"41d40151ddd6344c49fb2e6ce5770be032f782066d48f878a4980daac1c7f90c"}],"Deposit short":[{"bytes":107,"sha256":"6efb1181bd5afb70d086ec077219d23192ea23d977e98a20eb3c8510511ce383"}],"Deposit approvals":[{"bytes":139,"sha256":"fcc50fdb72a433c33e34b55bcb453bbb53547e63dc853fba2e802bf11258113d"}]},"differentialEncoding":{"cases":2213,"sameCalldata":496,"bothRefused":1773,"newRefusals":{},"refusedBoth":{"A pool requires a minLiquidity above zero (a zero floor never rejects a drained pool).":30,"Minimum raw pool liquidity: enter an unsigned 128-bit whole number.":720,"A pool requires its quote feed.":120,"No pool requires zero quote feed and zero liquidity.":105,"Enter a valid nonzero address.":153,"The new guardian must not be the vault.":1,"Enter an amount greater than zero and within the supported range.":1,"Enter a decimal amount with up to 18 decimal places.":2,"The fee recipient must not be the vault.":1,"Enter an unsigned 256-bit whole number.":30,"Dst is 0, 1 or 2.":15,"Choose a setting.":21,"From must be earlier in the week than To.":180,"Enter \"Always open\" in both fields, or two times.":96,"Hours must be 0-23 (Saturday 24:00 only as the end).":132,"Use a weekday and New York time, e.g. Monday 9:30 am or Friday 16:00.":84,"Sunday 2:00-2:59 am New York is skipped on the spring-forward Sunday; choose another start.":36,"Choose a proposal kind.":2,"The new owner must not be the vault.":1,"Line 1: A pool requires a minLiquidity above zero (a zero floor never rejects a drained pool).":1,"Line 1: minLiquidity: enter an unsigned 128-bit whole number.":24,"Line 1: Use TICKER token feed pool quoteFeed minLiquidity.":4,"Line 1: A pool requires a quote feed.":5,"Line 1: No pool requires zero quote feed and zero liquidity.":9}},"sendBuilders":{"clocks":[0,999,1791000000000,1791000000999,1791006123456.7,4102444800000],"deposit":{"sameCalldata":24,"bothRefused":0,"newRefusals":{}},"redeemArgs":{"sameCalldata":72,"bothRefused":0,"newRefusals":{}},"redeem":{"sameCalldata":32,"bothRefused":272,"newRefusals":{}},"approve":{"sameCalldata":23,"bothRefused":53,"newRefusals":{}},"claim":{"sameCalldata":6,"bothRefused":18,"newRefusals":{}},"lowerNAVCap":{"sameCalldata":9,"bothRefused":10,"newRefusals":{}},"close":{"sameCalldata":3,"bothRefused":5,"newRefusals":{}},"removeRetired":{"sameCalldata":3,"bothRefused":5,"newRefusals":{}},"uint":{"sameCalldata":18,"bothRefused":44,"newRefusals":{}},"address":{"sameCalldata":7,"bothRefused":9,"newRefusals":{}}},"pinnedDeclarations":{"web/src/model.ts":["same","deadline","depositArgs","redeemArgs","amount","address","recipient","uint","parseLaunch"],"web/src/chain.ts":["vault","token","encode"]},"sendsAndRequests":{"sendFreeFiles":["Vault.tsx","Scenery.tsx","main.tsx","Docs.tsx"],"usesPerFile":{"Flows.tsx":2,"Owner.tsx":2,"components.tsx":1,"main.tsx":1,"wallet.tsx":27},"components":["wallet.send(await getSpec(), scope, scope)"],"addedInV19":{}},"pageLoads":{"names":["Image","Audio","Worker","SharedWorker","serviceWorker","RTCPeerConnection","location","history","navigator","open","createElement","createElementNS","innerHTML","outerHTML","insertAdjacentHTML","setAttribute","setAttributeNS","write","writeln","src","srcset","srcdoc","href","action","formAction","style","cssText"],"jsxAttributes":["href","xlinkhref","xlink:href","src","srcset","srcdoc","action","formaction","data","poster","ping","style","dangerouslysetinnerhtml","httpequiv"],"usesPerFile":{"Docs.tsx":5,"Flows.tsx":3,"Owner.tsx":28,"Scenery.tsx":1,"Tokenomics.tsx":2,"Vault.tsx":17,"components.tsx":5,"main.tsx":16},"equalToHeadExceptDisplayNames":{"added":{},"removed":{}}},"pinnedV9Declarations":{"web/src/governance.ts":{"proposalAction":"equal to HEAD (0 pieces)","proposalSpec":"equal to HEAD (0 pieces)","settingValues":"equal to HEAD (0 pieces)","poolValues":"equal to HEAD (0 pieces)","newOwner":"v9 text (also at HEAD)","newGuardian":"v9 text (also at HEAD)","feeRecipient":"v9 text (also at HEAD)","minLiquidityOf":"v9 text (also at HEAD)","springForwardStart":"v9 text (also at HEAD)","SPRING_FORWARD_START":"v9 text (also at HEAD)"},"web/src/Owner.tsx":{"checkRows":"equal to HEAD (0 pieces)","listedDiffers":"v9 text (also at HEAD)","differWords":"v9 text (also at HEAD)","PASTE_FIRST":"v9 text (also at HEAD)"}},"importBindings":{"web/src/Owner.tsx":{"newOwner":"./governance","inspectListing":"./governance","proposalSpec":"./governance","vault":"./chain","read":"./chain","InputError":"./chain","address":"./model","same":"./model","parseLaunch":"./model","loadSnapshot":"./model","TransactionCancelled":"./wallet"},"web/src/governance.ts":{"vault":"./chain","VAULT":"./chain","InputError":"./chain","address":"./model","same":"./model","uint":"./model","amount":"./model"}},"checks":["v12 source scope: every other TypeScript source and ABI equal HEAD; edited sources equal HEAD once their exact pieces are restored, and also match independent reviewed SHA-256 pins outside regeneration blocks","Every guarded reading, parsing, encoding, simulation, sending and provider call equals HEAD in order and place; no added chain read, wallet request, storage key or network call","Action attributes equal HEAD except the documented approved presentation changes with a written reason; every onSubmit, getSpec, build and claim attribute equals HEAD","Every removed call and added watched-name use is independently listed; complete ordered added calls match reviewed hashes and ordered callee lists outside regeneration blocks","Direct and aliased transaction-state writes equal HEAD; send-tail receipt-hash writes are individually pinned with their ordered statements","Wallet send head is byte-identical to HEAD through the receipt wait; its tail equals HEAD after exact receipt-hash replacements; connect and disconnect equal reviewed text and the new counter is used only at the pinned sites","All protected wallet functions, flow effects, transaction buttons and handlers are byte-identical to HEAD; declaration and wrapper-scope checks prevent name rebinding","Provider methods and uses, browser storage and network sinks equal HEAD; page loads equal HEAD; Disconnect makes no request; components retains the same single wallet.send","The differential encoding corpus, six-clock send builders, parser declarations, pinned v9 decisions and imported bindings retain every prior assertion","Only approved v12 source files change; shell and share-card bytes are separately pinned by check-bundle.mjs"]} +{"result":"PASS","v25":{"base":"66bf0100cbc5b333b6184cd9b87071886d04742e","restoredBeforeInheritedChecks":["Vault.tsx","styles.css"],"newSources":["VaultStats.tsx","vaultStatsReport.tsx"],"independentRawSourcePins":{"VaultStats.tsx":"2a0f85f2c3494234204a20bdd83a6f0b713860e09cb84270215c097355f61d5c","vaultStatsReport.tsx":"826a6871ec25257580eb9924d135d5a0371ad152c097cceb3fef2ac7ad6c68e7"},"endpoint":"https://monitor-production-2eae.up.railway.app/api/vault-stats"},"item":{"mode":"final","actions":["baskApprove","baskStake","baskWithdraw","baskClaim","ethApprove","ethStake","ethWithdraw","ethClaim","itemApprove","itemStake","itemUnstake","claimBask","baskLiquidityApprove","usdgLiquidityApprove","baskAddLiquidity","itemLiquidityApprove","ethAddLiquidity"],"encodingCases":51,"nullSlotCases":15,"nullActionCases":255,"reads":[{"view":"earn","account":false,"reads":20,"nativeBalanceReads":0},{"view":"earn","account":true,"reads":37,"nativeBalanceReads":1}],"nativeRpcMethods":[{"method":"eth_getBalance","file":"itemReads.ts","callee":"client.getBalance","scope":"readItemFigures","when":"Earn open, all launch slots filled, connected account only"}],"vaultNoValueBuilders":{"model.ts":3,"Flows.tsx":11,"Owner.tsx":46,"Losses.tsx":4},"safety":[{"file":"itemConstants.ts","storage":0,"providerMethods":0,"sendSinks":0},{"file":"itemAbi.ts","storage":0,"providerMethods":0,"sendSinks":0},{"file":"itemReads.ts","storage":0,"providerMethods":0,"sendSinks":0},{"file":"itemActions.ts","storage":0,"providerMethods":0,"sendSinks":0},{"file":"itemFormat.ts","storage":0,"providerMethods":0,"sendSinks":0},{"file":"Earn.tsx","storage":0,"providerMethods":0,"sendSinks":2},{"file":"Transparency.tsx","storage":0,"providerMethods":0,"sendSinks":0},{"file":"FindItem.tsx","storage":0,"providerMethods":0,"sendSinks":0}],"independentRawSourcePins":{"main.tsx":"20581ffb29277bcb14dcd20526a3ea369f8ef40a0e3ff5b225d03f4d735abbeb","components.tsx":"7b3f5c741ec81e3eef289c0179ad35056fa97641302165f4f72e4ebc8917b40b","wallet.tsx":"6439fafab303be801bc8032ab9d492d94a58f99c3f3df0dbb015e8e1f550044d","chain.ts":"8477f756be249b1446de21f6964124f9e3f22a6a91d90cfffdce123fbe6b01eb","Docs.tsx":"036798a3209d330aaf175dd89984d4bd7c8a5bbee77e5be62dccf71938267ab9","tokenomicsData.ts":"c84d346ab2bc6d04445a0bb0c288b08ab30d2a53b444eefe60bca771be3f3cba","Tokenomics.tsx":"a5c036e37a0684b84c49141bff193c63f0967e39e275065c2da1032559420488","itemConstants.ts":"6ee04472bcc387933d7f3b58234cb42573496e656847a261a009a11831568163","itemAbi.ts":"42a4fb064c2bb1348948b7ea448136e13d97b57d005a2ccc3bce4d1679731d80","itemReads.ts":"45f1b009807305f4c5003fcd6f59047f5fa09a8f095e82db5457f92d63453019","itemActions.ts":"4c84ddbd80962d69c6315e33841e1562308bb2b32dcbda47512e2f34d8f2368a","itemFormat.ts":"ad75601c2b32bc0c3be7ac7e874f765aefd141ef16ee43b7d3583f27a72eb811","Earn.tsx":"9b1dc219c8582e800ca99b614879293ad4475851bebd57acfbc600331bf8e7ae","Transparency.tsx":"3481af8504a07ab82e8b35982bb2ecbaedc4646c33e3763b68b6dd1623c63fad","FindItem.tsx":"398170f167c1ae68286273aafffa60a4c79eea8286054bc376699182c13c5a8d","styles.css":"0db9569699f5bc0aebb5b3734dbcf9d3c0d625c8919a7235fae4f5ce95569de5"},"legacyNormalization":"Exact approved pieces restored to base before unchanged legacy assertions"},"baseline":"66bf0100cbc5b333b6184cd9b87071886d04742e","protectedFiles":["BaskGuide.tsx","Flows.tsx","Losses.tsx","Owner.tsx","Scenery.tsx","Vault.tsx","baskGuideData.ts","deployment.ts","governance.ts","model.ts","newYork.ts","poolMath.ts","vault.abi.json"],"editedFiles":{"main.tsx":"4 documented pieces [v12, HEAD]","components.tsx":"1 documented pieces [v12, HEAD]","wallet.tsx":"17 documented pieces [v12, HEAD]","chain.ts":"3 documented pieces [v12, HEAD]","Docs.tsx":"6 documented pieces [v12, HEAD]","tokenomicsData.ts":"2 documented pieces [v12, HEAD]","Tokenomics.tsx":"1 documented pieces [v12, HEAD]"},"v12Pieces":{"main.tsx":[{"v12":{"length":398,"sha256":"d78d986aef9d85ee3a5c3c81e6fa038be75e05291cbdcb7a2d4e35fb7161db26"},"head":{"length":236,"sha256":"8c5460fe4cf04ca083f1dcd2bede6ee742f52046bcd24aa32d61a6d2363cd0ee"}},{"v12":{"length":264,"sha256":"7e8c06291e4351bbc3beb5652935234d45d54f7da67950b847aed3fa91644af8"},"head":{"length":90,"sha256":"d810633a0ead9cf320efe6a2c13034589f8fb881386d685c93d91d0493e068ac"}},{"v12":{"length":167,"sha256":"84d1c7696c2fcef23ba449dc9c44e0abde647b12b0f02d5b8f58a78366353b12"},"head":{"length":54,"sha256":"29f2340c2969a20988ee9c2dc7ac037eb1d2afb207666efa2e5480b920e1c06a"}},{"v12":{"length":248,"sha256":"7502040ac982bf2f637b605b0573f4c1794b909ae2ab0d94a6242cc53bc983cf"},"head":{"length":100,"sha256":"e73f86845b46e985f72195abd756a1c7a8ecd9fa4e1e3374240ddc897daf95e8"}}],"components.tsx":[{"v12":{"length":132,"sha256":"fbdd3bc61af8d68ca0b38eb02a04996bac754b9a01425f580e46f1a93c588044"},"head":{"length":75,"sha256":"610c6a8655f59e63df07f111a2a7c8bc1b57b4b15bd2457809709e78b5d99a1b"}}],"wallet.tsx":[{"v12":{"length":218,"sha256":"4f8ca528ac4dec7a0c8e1532ed9214c2c55ace4d80a772cd6eb51f9ddbf84796"},"head":{"length":116,"sha256":"9399b10b2296b7c1b9a07cb4f34c8cfd9fc6c298bbf4911f0adc9545a25b1ac9"}},{"v12":{"length":402,"sha256":"567148333218c3176728199e7c9b830044a6e80daf9dbcf12b9e4ba3c6a8aca1"},"head":{"length":167,"sha256":"b2eecbe094ddcf169e4af9638846a4118e3708e5bf498d22c1b527fe38bc631d"}},{"v12":{"length":495,"sha256":"20c20eca5d44b37e02e228d6076ccbec93fbbeba2546e7aa798aff5e84aa7560"},"head":{"length":81,"sha256":"fe411a20765a5e10cd9ce9fc60351ac1879e4f51fe889145fac775e97022fc53"}},{"v12":{"length":280,"sha256":"24047cbcb179f30824c27e571105f98da4d932c922eef3f67ea6a0e90f7b7134"},"head":{"length":109,"sha256":"fa057020a88c252f7981f94d5bbfa55464415ca41abd5b71b2b23cbd25cbe7bc"}},{"v12":{"length":2673,"sha256":"f71a3d1b6dd60e36d841a515b52f05ab42f7a389b1f54bf583a4b5d3a4b9ef75"},"head":{"length":57,"sha256":"03a9059c9acda890001dc8d941a2828839e9081a908277bbf5941a84787f163b"}},{"v12":{"length":294,"sha256":"a49a5cb3c7729061fe2869b8d8aa086652f0a7ead2425dc11506b4702d899a0c"},"head":{"length":90,"sha256":"d9665a0a3bf948d82811c142b7e07d33d62ad0afff77e7ab81f7b7bc19b81184"}},{"v12":{"length":232,"sha256":"4902eb505c282cb11f9a8d45064d07f9d02e0c41794641b388033d82b5474c77"},"head":{"length":97,"sha256":"28a0ff8cde2b448cb4011de46a6f390e492c8f8cc1d95744be939ac3dac05c6b"}},{"v12":{"length":368,"sha256":"c5e7a54f90539c844e49b1ad6870610da51a1b36a6cab6f55bb07aec33f5a697"},"head":{"length":120,"sha256":"4ad5256d378033b7142a745af83bac4dc9a3fc2e8c22a66059a98a753276839d"}},{"v12":{"length":560,"sha256":"d92ac22086172a753e5c1912090a6ec957c88ccb88c6d2a5a1296a405b7d8128"},"head":{"length":279,"sha256":"c4e28b5e8af39014e32cbc854b5709f34afcc72032ff00e8000cc99096273b71"}},{"v12":{"length":218,"sha256":"7a51cba0063d20148e3a6928cccb0de06c6a411153791f5b1e820c4444ba92ea"},"head":{"length":75,"sha256":"a50d2651eda8917fc2c9f1a68c19afce0f693f50ea2978fe727405ff5b2d5aef"}},{"v12":{"length":670,"sha256":"0d1a7a93a69084e88854e616947f49d7af09cc39fb499e1b704d4e95994010b1"},"head":{"length":270,"sha256":"af7e20bc14c30b89aa415865a0b2ff1f9827255427a936bb51de2bdab3167929"}},{"v12":{"length":517,"sha256":"4e7af3faffbe36f1c24bf23f66ad7befa2c4546ad8ab6ae145f4a0e99da1c1c6"},"head":{"length":177,"sha256":"8c884434d4f367d6ed394b74df19f53aac880a6d6a3040b45b74e86c4fab2f16"}},{"v12":{"length":186,"sha256":"1c080171ef7ff0166445021ef917b150527a7609f25f3ca4aad89208e59ab9b8"},"head":{"length":75,"sha256":"8dcba50bcc6cace1df967d1249c8baf82497f3b7003f1ad01bcdd2a985d4f475"}},{"v12":{"length":341,"sha256":"a46ab81b6eece5f79a99fcd8e8a25b3f2520c577170134d97e4012fcfec39156"},"head":{"length":104,"sha256":"4506112448192b71f4728659248148e36a49718c7616b80824b5ba0469d0b130"}},{"v12":{"length":141,"sha256":"59acb97802bc753ec6d115b482c99a9823df4051a9b8f2c31714d61cfd4c1777"},"head":{"length":78,"sha256":"a878a026d45fcd396d216668d65cbad4d3298687d79e04f0c27a6d2176ef5bf5"}},{"v12":{"length":209,"sha256":"f9e63d2737097bae196c724094ce8bb35b68c311b40d9959a757d623070754bd"},"head":{"length":85,"sha256":"7ad94c4b826803b29edbc39ad9312ff5008797535944b748575889d76f1d562a"}},{"v12":{"length":63,"sha256":"4feed8969fa6fddf1b53425a6a7983377ac23f2c4cf6dd4f58245324186e6cbf"},"head":{"length":30,"sha256":"4214e905f92297c4bae3dd199e08ae7d443e67d0f85e334db8294c356e28689b"}}],"chain.ts":[{"v12":{"length":246,"sha256":"0e240c025be06edaf7a007ba2a941b23ea377f664bff493fc709a3c9d6c0a3b0"},"head":{"length":55,"sha256":"c4f41cc7056773d1073ae40c64be10e3e7252683da9d285baf8b97608a6cbf0f"}},{"v12":{"length":335,"sha256":"45012314dabb26499ca66c63a54b98320e89973427a238a0387f429e43a7f9ab"},"head":{"length":98,"sha256":"0deb14bdc5b3cdd0bd787b6bc9bf861394f11b48e41099b14dae4505aac38ce7"}},{"v12":{"length":593,"sha256":"e6407f601f64256ac5b3a9e0888d2632f1eabcb09bc166b40c9bff124507c32d"},"head":{"length":26,"sha256":"9ec6c3591197b34dc85943f464ce35082bb0a8840ff984c5508785eb05b27c27"}}],"Docs.tsx":[{"v12":{"length":132,"sha256":"968f834c57fafc07397ace779f5a4245877d1c3ef1f7b367146f2b550798a167"},"head":{"length":65,"sha256":"e3adbfcb91c645732443957388d0c7308e8dc56f7b3a2e6b7bc29150346b677a"}},{"v12":{"length":311,"sha256":"a18f5256dbaa6715aa84dc63ade825c41c5ddc9e9d686cc9626a4a712938393e"},"head":{"length":291,"sha256":"b2ec96168a02ab488a615f32b0c8ab5189c1109bd54135de3ca620d5ee619f8f"}},{"v12":{"length":280,"sha256":"b93157f4a741e56a1226c4c5424f6dcf5d7a7dca5414d3ce8c5be3a14de9951a"},"head":{"length":366,"sha256":"e7303e698b9c87b3cc4e7c155d8cd5893f7f8c9ab8133c2c79f54383cab7101f"}},{"v12":{"length":392,"sha256":"9b942eec2f4a6a38c18e3300e53d29d64182cd149be62a3e22763b20c25aa385"},"head":{"length":448,"sha256":"e9e7880c309236673203dc2be385523df0db4e6a15123ab893f47dcda41e1420"}},{"v12":{"length":91,"sha256":"00d07db14b6753d33057f12436ced10465eca5554546c1ecc14b1f2dfe088e75"},"head":{"length":55,"sha256":"e84f60dcace87056fb0517fd5e376d52099f2e78f5fb032105a8a74fcfaeb391"}},{"v12":{"length":206,"sha256":"adcad5429bc6298c463d349c97b7a99c8b3d2ebb6c2b3263211f8cbe989e3cc1"},"head":{"length":29,"sha256":"5aa719a3b1610e6862110aaa8bcf0755e2bf3c6ae7ba292966ea592ce6635233"}}],"tokenomicsData.ts":[{"v12":{"length":138,"sha256":"6190c88e6d25cfece7749d0d12160ad5a5215aebc4c971b5db22c5bc479c1747"},"head":{"length":38,"sha256":"e6916ee735dbd148e121cf4e4ec576fa2c3f7b5be84b021ea9de768205e1de7b"}},{"v12":{"length":438,"sha256":"396264587d55da8faeb72f5fbdf40aff06a5dc16e0a0224d09346645af5d8f6d"},"head":{"length":232,"sha256":"306c92a214d4b56d609ee0f206ce516ef97aec4d788f766f35a4ea4e4f15cd8e"}}],"Tokenomics.tsx":[{"v12":{"length":438,"sha256":"2a146f17f01aeb6886dae6c5b317d876ccae90451867c43d5b30ac4c23bd522a"},"head":{"length":331,"sha256":"44cff304bfad1dfbbc20b510cfef5d81d7c4f1b7311735c5185dfe5794c79cf6"}}]},"counts":{"BaskGuide.tsx":{"guarded":0,"calls":6,"attributes":2},"Docs.tsx":{"guarded":0,"calls":7,"attributes":9},"Flows.tsx":{"guarded":43,"calls":325,"attributes":95},"Losses.tsx":{"guarded":5,"calls":30,"attributes":16},"Owner.tsx":{"guarded":45,"calls":308,"attributes":132},"Scenery.tsx":{"guarded":0,"calls":28,"attributes":0},"Tokenomics.tsx":{"guarded":0,"calls":70,"attributes":5},"Vault.tsx":{"guarded":0,"calls":168,"attributes":20},"baskGuideData.ts":{"guarded":0,"calls":98,"attributes":0},"chain.ts":{"guarded":13,"calls":66,"attributes":0},"components.tsx":{"guarded":1,"calls":22,"attributes":16},"deployment.ts":{"guarded":0,"calls":0,"attributes":0},"governance.ts":{"guarded":51,"calls":125,"attributes":0},"main.tsx":{"guarded":1,"calls":60,"attributes":25},"model.ts":{"guarded":22,"calls":113,"attributes":0},"newYork.ts":{"guarded":0,"calls":60,"attributes":0},"poolMath.ts":{"guarded":0,"calls":9,"attributes":0},"tokenomicsData.ts":{"guarded":0,"calls":25,"attributes":0},"wallet.tsx":{"guarded":38,"calls":164,"attributes":0}},"documentedGuardedCallChanges":{},"documentedAttributeChanges":{"main.tsx":{"removed":[],"added":[" snapshot={data}"," wallet={wallet}"," snapshot={data}"],"why":"each has its why in scripts/check-calldata.mjs"}},"documentedCallChanges":{},"vaultStockShelves":{"attributes":["role=\"img\"","onClick={s.retry}","snapshot={s}","value={VAULT}","snapshot={s}","onClick={onToggle}","onKeyDown={(e) => e.key === \"Escape\" && onClose()}","onClick={onClose}","value={a.token}","value={a.feed}","onClose={() => onClose(o.a.token)}","onToggle={() => onToggle(a.token)}","role=\"list\"","role=\"group\"","onClick={() => show(f, search)}","value={search}","onChange={(e) => show(filter, e.target.value)}","role=\"status\"","onClick={() => show(\"all\", \"\")}","onClick={() => show(\"all\", \"\")}"],"handlers":{"show":"const show = (f: ShelfFilter, text: string) => { stopRestock(); setOpenToken(undefined); setFilter(f); setSearch(text); };","toggle":"const toggle = (token: string) => setOpenToken(openToken === token ? undefined : token);","close":"const close = (token: string) => { setOpenToken(undefined); requestAnimationFrame(() => document.getElementById(`sa-more-${token}`)?.focus()); };","group":"const group = { nav, settings: s.globals.settings, openToken, onToggle: toggle, onClose: close };"}},"pinnedFunctions":{"wallet.tsx send()":{"headEqualToHead":true,"headBytes":3086,"headSha256":"fcd7f2b93240657e0be2323761416e327023fd1cf474f12b1aa1203be410b037","tailPieces":[]},"Flows.tsx approveAll()":{"equalToHead":true,"length":1060,"sha256":"ffcf652ea60d71f8a4c4f3b8197f12d62e73bc97ebf245c1b846b5e0ab43f02a"},"wallet.tsx connect()":{"pinnedText":true,"length":723,"sha256":"9720f515085ddca2d794d6456b5b4297ed0a8868ba0bfd03dcf7d0e9c5127257"},"wallet.tsx disconnect()":{"pinnedText":true,"length":380,"sha256":"d0351b9d4fb2027cec8c256fb2ec0e365eded2f8702ec15e20013967994426cb"}},"walletHookReturn":{"equalToHead":true,"text":"return { account, connecting, progress, report, fail, notice, listingPending, waitPending, chainId, message, hash, busy, confirmed, connect, disconnect, switchChain, addToWallet, send, setMessage, };"},"walletAndRpcMethods":{"named":{"eth_accounts":3,"eth_chainId":7,"eth_requestAccounts":1,"wallet_switchEthereumChain":1,"wallet_addEthereumChain":1,"wallet_watchAsset":1,"eth_sendTransaction":1},"addedInV19":{}},"browserStorageAddedInV12":{},"namesAddedAtTheTopOfAFile":{"main.tsx":{},"components.tsx":{},"wallet.tsx":{},"chain.ts":{},"Docs.tsx":{},"tokenomicsData.ts":{},"Tokenomics.tsx":{}},"moduleDeclarationChanges":{},"namesAddedInsideComponents":{},"transactionCode":{"main.tsx":{"pieces":0,"namesDeclaredAroundThem":[]},"components.tsx":{"pieces":1,"namesDeclaredAroundThem":[]},"wallet.tsx":{"pieces":1,"namesDeclaredAroundThem":[]},"chain.ts":{"pieces":0,"namesDeclaredAroundThem":[]},"Docs.tsx":{"pieces":0,"namesDeclaredAroundThem":[]},"tokenomicsData.ts":{"pieces":0,"namesDeclaredAroundThem":[]},"Tokenomics.tsx":{"pieces":0,"namesDeclaredAroundThem":[]}},"reviewedAddedCalls":{"main.tsx":{"sha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","callees":""},"components.tsx":{"sha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","callees":""},"wallet.tsx":{"sha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","callees":""},"chain.ts":{"sha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","callees":""},"Docs.tsx":{"sha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","callees":""},"tokenomicsData.ts":{"sha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","callees":""},"Tokenomics.tsx":{"sha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","callees":""}},"reviewedSourcePins":{"Docs.tsx":"4a017ccbabc92c33df85c32d34b9f4c2ad94ae8988b50c82eb1115141e413343","main.tsx":"acbfbe99686e824d26720805002343722cc16c8bcfff75a095c1774bcac94e80","wallet.tsx":"550eb23f8c890ee228c218a6e15ffa6e8c1f2f0a3da2aef7c17200103fffcd67","Flows.tsx":"e8f727507de361e7c3f074b33d855867273083aa900f6c0132709c4c8a4246db","Owner.tsx":"9f7b51477f4b3ea2410cad43073ac75c4c2ee3b17085fcf97797dade3942fd65","Tokenomics.tsx":"6d57c2f9d8629f7207368b6d00618da9351e72aba0de52fcff225490be47c85a","tokenomicsData.ts":"8e2cfc45c8055f2dbfdc7a7610e57856809845d52dd103712dd8398f3b11a99a"},"transactionStateWrites":{"main.tsx":0,"components.tsx":0,"wallet.tsx":0,"chain.ts":0,"Docs.tsx":0,"tokenomicsData.ts":0,"Tokenomics.tsx":0},"protectedCode":{"sendTailWrites":["sent = mined;","setHash(mined);","setConfirmed({ hash: mined, functionName: s.functionName });","report(key, { message: `${label}: Confirmed. Refreshing…`, hash: mined });","report(key, { message: `${label}: Confirmed.`, hash: mined, detail });"],"wallet switchChain":[{"bytes":839,"sha256":"f73e8a2cdab011847a0ae0bcb1ad06b04f9d0697dccbc8466eb8e67c0ee58a2d"}],"wallet listingPending":[{"bytes":2122,"sha256":"5e5e619783a582e76b3994c77c5709092b3505ee6cbb9a2d7aea7e07cc85bd12"}],"wallet waitPending":[{"bytes":543,"sha256":"74194fecf66fcd78f506de190ce1b4b59a207d2dbca58803e9e1eb62a44f4aab"}],"Vault DepositState":{"headBytes":1830,"headSha256":"c4d18e62f36a4b4fa553b10b83105c802ea14c17f5c70b4120b682ddc1c04f0a","pieces":[]},"depositSign":{"rawPins":{"DepositLedSign":"5261668a5c55b74287e3dc342168e9176be06b3c7bbd46b0ae98106dc733cf29","DEPOSIT_LETTERS":"4942959fd3db1936945a38cf0bb15be49da43088af5d080c224a19d8e33e44fd"},"uses":[["Flows.tsx","DepositPage",""],["Vault.tsx","VaultPage",""]]},"Flows approveAll":[{"bytes":1356,"sha256":"78cfe9448c872c5343d9a9cbe0179af0765bb962a15ee4d2e67b3d7bc54247f0"}],"Flows onSubmit":[{"bytes":1495,"sha256":"d442f79482bb44dbf3767e2a751e365dd0e504437f05745b20b5a73231e6ffc8"},{"bytes":676,"sha256":"6259d6bdcefb20ba701d4734846c06af54b3a2eb7b3f9bd5b80237745efc6210"}],"Flows getSpec":[{"bytes":1439,"sha256":"f75f13a3d598d3fcbbcd5c2bfd191b3da5cbf31dfbec17bbd26e22192769ad84"},{"bytes":1297,"sha256":"22ff92a5de93cce75de2f39e527e9d76730ee8aaa7db56fe492c38ccabdadb9b"},{"bytes":58,"sha256":"27d05cb77b08c4ca6749f26196255452fa0a55cfabec3148b24969cfc0fababc"}],"Flows transaction buttons":[{"bytes":2117,"sha256":"9b5f0f96d12b49d413e86a816418181f25c430e2a2de182e81233534a6b37252"},{"bytes":1853,"sha256":"8de302b62983d759b62bfe7a1764272cfd62f8120f33da71c79b803a03faa545"},{"bytes":769,"sha256":"e9bec8e32f8ad258d2931f63441337ff165e9ce953bbb04c0d6a9287b19866ba"}],"Claims Claim all handler":[{"bytes":1005,"sha256":"ed305d9823f04b39be4ea80487a45291eae57a33e84cb3dc4b9a9e822dc27773"}],"Claims owed read":[{"bytes":611,"sha256":"a07c30118ad29a940aab1bf6c2122b8cb7aac40861d0511885d0ddadbcebed11"}],"Deposit simulate effect":[{"bytes":759,"sha256":"411ebe4c38ac4c9d98b36aeae92e1e623ba1fe03536c437f9201cfe0f7362242"}],"Deposit confirmed reset":[{"bytes":201,"sha256":"6068779bb1db741c1c316f18ae6db45e5d9a54bf07324b7e5f302fddff2af910"}],"Deposit receipt read":[{"bytes":868,"sha256":"41d40151ddd6344c49fb2e6ce5770be032f782066d48f878a4980daac1c7f90c"}],"Deposit short":[{"bytes":107,"sha256":"6efb1181bd5afb70d086ec077219d23192ea23d977e98a20eb3c8510511ce383"}],"Deposit approvals":[{"bytes":139,"sha256":"fcc50fdb72a433c33e34b55bcb453bbb53547e63dc853fba2e802bf11258113d"}]},"differentialEncoding":{"cases":2213,"sameCalldata":496,"bothRefused":1773,"newRefusals":{},"refusedBoth":{"A pool requires a minLiquidity above zero (a zero floor never rejects a drained pool).":30,"Minimum raw pool liquidity: enter an unsigned 128-bit whole number.":720,"A pool requires its quote feed.":120,"No pool requires zero quote feed and zero liquidity.":105,"Enter a valid nonzero address.":153,"The new guardian must not be the vault.":1,"Enter an amount greater than zero and within the supported range.":1,"Enter a decimal amount with up to 18 decimal places.":2,"The fee recipient must not be the vault.":1,"Enter an unsigned 256-bit whole number.":30,"Dst is 0, 1 or 2.":15,"Choose a setting.":21,"From must be earlier in the week than To.":180,"Enter \"Always open\" in both fields, or two times.":96,"Hours must be 0-23 (Saturday 24:00 only as the end).":132,"Use a weekday and New York time, e.g. Monday 9:30 am or Friday 16:00.":84,"Sunday 2:00-2:59 am New York is skipped on the spring-forward Sunday; choose another start.":36,"Choose a proposal kind.":2,"The new owner must not be the vault.":1,"Line 1: A pool requires a minLiquidity above zero (a zero floor never rejects a drained pool).":1,"Line 1: minLiquidity: enter an unsigned 128-bit whole number.":24,"Line 1: Use TICKER token feed pool quoteFeed minLiquidity.":4,"Line 1: A pool requires a quote feed.":5,"Line 1: No pool requires zero quote feed and zero liquidity.":9}},"sendBuilders":{"clocks":[0,999,1791000000000,1791000000999,1791006123456.7,4102444800000],"deposit":{"sameCalldata":24,"bothRefused":0,"newRefusals":{}},"redeemArgs":{"sameCalldata":72,"bothRefused":0,"newRefusals":{}},"redeem":{"sameCalldata":32,"bothRefused":272,"newRefusals":{}},"approve":{"sameCalldata":23,"bothRefused":53,"newRefusals":{}},"claim":{"sameCalldata":6,"bothRefused":18,"newRefusals":{}},"lowerNAVCap":{"sameCalldata":9,"bothRefused":10,"newRefusals":{}},"close":{"sameCalldata":3,"bothRefused":5,"newRefusals":{}},"removeRetired":{"sameCalldata":3,"bothRefused":5,"newRefusals":{}},"uint":{"sameCalldata":18,"bothRefused":44,"newRefusals":{}},"address":{"sameCalldata":7,"bothRefused":9,"newRefusals":{}}},"pinnedDeclarations":{"web/src/model.ts":["same","deadline","depositArgs","redeemArgs","amount","address","recipient","uint","parseLaunch"],"web/src/chain.ts":["vault","token","encode"]},"sendsAndRequests":{"sendFreeFiles":["Vault.tsx","Scenery.tsx","main.tsx","Docs.tsx"],"usesPerFile":{"Flows.tsx":2,"Owner.tsx":2,"components.tsx":1,"main.tsx":1,"wallet.tsx":27},"components":["wallet.send(await getSpec(), scope, scope)"],"addedInV19":{}},"pageLoads":{"names":["Image","Audio","Worker","SharedWorker","serviceWorker","RTCPeerConnection","location","history","navigator","open","createElement","createElementNS","innerHTML","outerHTML","insertAdjacentHTML","setAttribute","setAttributeNS","write","writeln","src","srcset","srcdoc","href","action","formAction","style","cssText"],"jsxAttributes":["href","xlinkhref","xlink:href","src","srcset","srcdoc","action","formaction","data","poster","ping","style","dangerouslysetinnerhtml","httpequiv"],"usesPerFile":{"Docs.tsx":5,"Flows.tsx":3,"Owner.tsx":28,"Scenery.tsx":1,"Tokenomics.tsx":2,"Vault.tsx":17,"components.tsx":5,"main.tsx":16},"equalToHeadExceptDisplayNames":{"added":{},"removed":{}}},"pinnedV9Declarations":{"web/src/governance.ts":{"proposalAction":"equal to HEAD (0 pieces)","proposalSpec":"equal to HEAD (0 pieces)","settingValues":"equal to HEAD (0 pieces)","poolValues":"equal to HEAD (0 pieces)","newOwner":"v9 text (also at HEAD)","newGuardian":"v9 text (also at HEAD)","feeRecipient":"v9 text (also at HEAD)","minLiquidityOf":"v9 text (also at HEAD)","springForwardStart":"v9 text (also at HEAD)","SPRING_FORWARD_START":"v9 text (also at HEAD)"},"web/src/Owner.tsx":{"checkRows":"equal to HEAD (0 pieces)","listedDiffers":"v9 text (also at HEAD)","differWords":"v9 text (also at HEAD)","PASTE_FIRST":"v9 text (also at HEAD)"}},"importBindings":{"web/src/Owner.tsx":{"newOwner":"./governance","inspectListing":"./governance","proposalSpec":"./governance","vault":"./chain","read":"./chain","InputError":"./chain","address":"./model","same":"./model","parseLaunch":"./model","loadSnapshot":"./model","TransactionCancelled":"./wallet"},"web/src/governance.ts":{"vault":"./chain","VAULT":"./chain","InputError":"./chain","address":"./model","same":"./model","uint":"./model","amount":"./model"}},"checks":["v12 source scope: every other TypeScript source and ABI equal HEAD; edited sources equal HEAD once their exact pieces are restored, and also match independent reviewed SHA-256 pins outside regeneration blocks","Every guarded reading, parsing, encoding, simulation, sending and provider call equals HEAD in order and place; no added chain read, wallet request, storage key or network call","Action attributes equal HEAD except the documented approved presentation changes with a written reason; every onSubmit, getSpec, build and claim attribute equals HEAD","Every removed call and added watched-name use is independently listed; complete ordered added calls match reviewed hashes and ordered callee lists outside regeneration blocks","Direct and aliased transaction-state writes equal HEAD; send-tail receipt-hash writes are individually pinned with their ordered statements","Wallet send head is byte-identical to HEAD through the receipt wait; its tail equals HEAD after exact receipt-hash replacements; connect and disconnect equal reviewed text and the new counter is used only at the pinned sites","All protected wallet functions, flow effects, transaction buttons and handlers are byte-identical to HEAD; declaration and wrapper-scope checks prevent name rebinding","Provider methods and uses, browser storage and network sinks equal HEAD; page loads equal HEAD; Disconnect makes no request; components retains the same single wallet.send","The differential encoding corpus, six-clock send builders, parser declarations, pinned v9 decisions and imported bindings retain every prior assertion","Only approved v12 source files change; shell and share-card bytes are separately pinned by check-bundle.mjs","v25: Vault.tsx and styles.css equal the live v24 text once their five pieces and the appended stats block are put back; the two new stats sources are pinned by independent digests, import only React and each other, add one credential-free GET of the public stats report as the only new network use, rebuild the report from an allowlist and keep only explorer transaction links"]} diff --git a/artifacts/live-validation.json b/artifacts/live-validation.json index 24d1e84..77af4ff 100644 --- a/artifacts/live-validation.json +++ b/artifacts/live-validation.json @@ -1 +1 @@ -{"at":"2026-10-19T21:38:24.701Z","block":"92938509","vault":"0x739fd5b653aa092a434534fa1ade67c1770b5a5b","runtimeHash":"0x636a9477cd2d80694d0c8cc970f5008edb87d71a11b10ccfa82d9db04090a048","abiHash":"0x47d59929b6c6dd2b66c9d85d22a70b349f0c70496f2e2d06bc35369baa2d3eca","network":{"multicall":true},"globals":{"owner":"0x30B57ECf51D19ABcED7F6f70974e6fBb6f3b9Da3","guardian":"0x5ed39AF86f2C00ad99913B5d727bD68f2A904B68","pendingOwner":"0x0000000000000000000000000000000000000000","feeRecipient":"0xc5e21e7A89F1fBDc5554e31702e627dD6262C856","genesisFinalized":true,"depositsPaused":false,"NAV_CAP":"1000000000000000000000000","totalSupply":"14740283658764635756886","proposalCount":"4","settings":{"band":"4","maxAge":"288000","noPoolAge":"93600","freshCount":"1","freshHours":"1","hoursFrom":"72000","hoursTo":"504000","dst":"0","poolWindow":"1800","poolDeviation":"1000","feedGas":"100000","pauseGas":"100000","poolGas":"150000","balanceGas":"50000","payGas":"250000","maxAssets":"250","directLimit":"50"}},"assetCount":25,"status":[0,"0x0000000000000000000000000000000000000000"],"actions":[{"kind":0,"action":{"kind":0,"token":"0x739fD5B653aA092a434534FA1aDE67C1770b5a5B","target":"0x5ed39AF86f2C00ad99913B5d727bD68f2A904B68","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"Feed 0x5ed39AF86f2C00ad99913B5d727bD68f2A904B68; pool 0x0000000000000000000000000000000000000000; quote feed 0x0000000000000000000000000000000000000000; minimum liquidity 0"},{"kind":1,"action":{"kind":1,"token":"0x739fD5B653aA092a434534FA1aDE67C1770b5a5B","target":"0x5ed39AF86f2C00ad99913B5d727bD68f2A904B68","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"New feed 0x5ed39AF86f2C00ad99913B5d727bD68f2A904B68"},{"kind":2,"action":{"kind":2,"token":"0x739fD5B653aA092a434534FA1aDE67C1770b5a5B","target":"0x0000000000000000000000000000000000000000","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"Re-centre the band at the feed answer at execution."},{"kind":3,"action":{"kind":3,"token":"0x739fD5B653aA092a434534FA1aDE67C1770b5a5B","target":"0x0000000000000000000000000000000000000000","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"Reopen this stock for deposits."},{"kind":4,"action":{"kind":4,"token":"0x739fD5B653aA092a434534FA1aDE67C1770b5a5B","target":"0x0000000000000000000000000000000000000000","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"Retire permanently; zero in deposit NAV, still paid on redemption."},{"kind":5,"action":{"kind":5,"token":"0x739fD5B653aA092a434534FA1aDE67C1770b5a5B","target":"0x0000000000000000000000000000000000000000","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"Pool 0x0000000000000000000000000000000000000000; quote feed 0x0000000000000000000000000000000000000000; minimum liquidity 0"},{"kind":6,"action":{"kind":6,"token":"0x739fD5B653aA092a434534FA1aDE67C1770b5a5B","target":"0x0000000000000000000000000000000000000000","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"Add positive excess to managed holdings. Keep deposits paused until executed and checked."},{"kind":7,"action":{"kind":7,"token":"0x0000000000000000000000000000000000000000","target":"0x5ed39AF86f2C00ad99913B5d727bD68f2A904B68","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"New guardian 0x5ed39AF86f2C00ad99913B5d727bD68f2A904B68"},{"kind":8,"action":{"kind":8,"token":"0x0000000000000000000000000000000000000000","target":"0x0000000000000000000000000000000000000000","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"2000000000000000000000000","value2":"0","setting":0},"words":"New size limit $2,000,000"},{"kind":9,"action":{"kind":9,"token":"0x0000000000000000000000000000000000000000","target":"0x30B57ECf51D19ABcED7F6f70974e6fBb6f3b9Da3","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"Fee recipient 0x30B57ECf51D19ABcED7F6f70974e6fBb6f3b9Da3. Fees begin when executed; the recipient can never be unset."},{"kind":10,"action":{"kind":10,"token":"0x0000000000000000000000000000000000000000","target":"0x0000000000000000000000000000000000000000","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"120600","value2":"489600","setting":5},"words":"hoursFrom / hoursTo = 120600 / 489600; Monday 9:30 am to Friday 4:00 pm New York time"}],"checks":["Decimal-normalized NAV and indicative flags","All 11 proposal kinds encoded as the BaskVault.Action struct and decoded; Hours and Dst cases","Exact deposit and redemption minimums","Input, receiver, hours and listing validation","Live chain, runtime hash, aggregate snapshot and status"],"limitations":"Read-only live checks. Successful wallet flows run separately on an isolated fork."} +{"at":"2026-10-20T01:31:24.016Z","block":"93073005","vault":"0x739fd5b653aa092a434534fa1ade67c1770b5a5b","runtimeHash":"0x636a9477cd2d80694d0c8cc970f5008edb87d71a11b10ccfa82d9db04090a048","abiHash":"0x47d59929b6c6dd2b66c9d85d22a70b349f0c70496f2e2d06bc35369baa2d3eca","network":{"multicall":true},"globals":{"owner":"0x30B57ECf51D19ABcED7F6f70974e6fBb6f3b9Da3","guardian":"0x5ed39AF86f2C00ad99913B5d727bD68f2A904B68","pendingOwner":"0x0000000000000000000000000000000000000000","feeRecipient":"0xc5e21e7A89F1fBDc5554e31702e627dD6262C856","genesisFinalized":true,"depositsPaused":false,"NAV_CAP":"1000000000000000000000000","totalSupply":"19696516051935852942939","proposalCount":"5","settings":{"band":"4","maxAge":"288000","noPoolAge":"93600","freshCount":"1","freshHours":"1","hoursFrom":"72000","hoursTo":"504000","dst":"0","poolWindow":"1800","poolDeviation":"1000","feedGas":"100000","pauseGas":"100000","poolGas":"150000","balanceGas":"50000","payGas":"250000","maxAssets":"250","directLimit":"50"}},"assetCount":25,"status":[0,"0x0000000000000000000000000000000000000000"],"actions":[{"kind":0,"action":{"kind":0,"token":"0x739fD5B653aA092a434534FA1aDE67C1770b5a5B","target":"0x5ed39AF86f2C00ad99913B5d727bD68f2A904B68","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"Feed 0x5ed39AF86f2C00ad99913B5d727bD68f2A904B68; pool 0x0000000000000000000000000000000000000000; quote feed 0x0000000000000000000000000000000000000000; minimum liquidity 0"},{"kind":1,"action":{"kind":1,"token":"0x739fD5B653aA092a434534FA1aDE67C1770b5a5B","target":"0x5ed39AF86f2C00ad99913B5d727bD68f2A904B68","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"New feed 0x5ed39AF86f2C00ad99913B5d727bD68f2A904B68"},{"kind":2,"action":{"kind":2,"token":"0x739fD5B653aA092a434534FA1aDE67C1770b5a5B","target":"0x0000000000000000000000000000000000000000","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"Re-centre the band at the feed answer at execution."},{"kind":3,"action":{"kind":3,"token":"0x739fD5B653aA092a434534FA1aDE67C1770b5a5B","target":"0x0000000000000000000000000000000000000000","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"Reopen this stock for deposits."},{"kind":4,"action":{"kind":4,"token":"0x739fD5B653aA092a434534FA1aDE67C1770b5a5B","target":"0x0000000000000000000000000000000000000000","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"Retire permanently; zero in deposit NAV, still paid on redemption."},{"kind":5,"action":{"kind":5,"token":"0x739fD5B653aA092a434534FA1aDE67C1770b5a5B","target":"0x0000000000000000000000000000000000000000","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"Pool 0x0000000000000000000000000000000000000000; quote feed 0x0000000000000000000000000000000000000000; minimum liquidity 0"},{"kind":6,"action":{"kind":6,"token":"0x739fD5B653aA092a434534FA1aDE67C1770b5a5B","target":"0x0000000000000000000000000000000000000000","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"Add positive excess to managed holdings. Keep deposits paused until executed and checked."},{"kind":7,"action":{"kind":7,"token":"0x0000000000000000000000000000000000000000","target":"0x5ed39AF86f2C00ad99913B5d727bD68f2A904B68","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"New guardian 0x5ed39AF86f2C00ad99913B5d727bD68f2A904B68"},{"kind":8,"action":{"kind":8,"token":"0x0000000000000000000000000000000000000000","target":"0x0000000000000000000000000000000000000000","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"2000000000000000000000000","value2":"0","setting":0},"words":"New size limit $2,000,000"},{"kind":9,"action":{"kind":9,"token":"0x0000000000000000000000000000000000000000","target":"0x30B57ECf51D19ABcED7F6f70974e6fBb6f3b9Da3","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"0","value2":"0","setting":0},"words":"Fee recipient 0x30B57ECf51D19ABcED7F6f70974e6fBb6f3b9Da3. Fees begin when executed; the recipient can never be unset."},{"kind":10,"action":{"kind":10,"token":"0x0000000000000000000000000000000000000000","target":"0x0000000000000000000000000000000000000000","pool":"0x0000000000000000000000000000000000000000","quoteFeed":"0x0000000000000000000000000000000000000000","value":"120600","value2":"489600","setting":5},"words":"hoursFrom / hoursTo = 120600 / 489600; Monday 9:30 am to Friday 4:00 pm New York time"}],"checks":["Decimal-normalized NAV and indicative flags","All 11 proposal kinds encoded as the BaskVault.Action struct and decoded; Hours and Dst cases","Exact deposit and redemption minimums","Input, receiver, hours and listing validation","Live chain, runtime hash, aggregate snapshot and status"],"limitations":"Read-only live checks. Successful wallet flows run separately on an isolated fork."} diff --git a/artifacts/phone-visibility.json b/artifacts/phone-visibility.json index 5df3f60..95d7d73 100644 --- a/artifacts/phone-visibility.json +++ b/artifacts/phone-visibility.json @@ -1 +1 @@ -[{"statusCase":"normal","variant":"no-wallet","name":"vault","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":449.375,"bottom":493.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":515.375,"bottom":649.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":587.375,"bottom":633.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"I was hoping you would come through my aisle","y":709.1875,"bottom":782.359375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Vault: heading, empty title paragraphs, panel height, capacity label and figure value equal the baseline","Vault title: the picture in the middle of the panel, the bubble in its place beside her head and inside the frame, the shelf line across the panel, the heading centred (v15); the whole title equals the baseline across the panel and in every vertical place","Owner follow-up: no normal status area/sign","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[267.375,267.375]},{"statusCase":"normal","variant":"no-wallet","name":"deposit","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":449.375,"bottom":493.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":515.375,"bottom":649.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":587.375,"bottom":633.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"Go ahead and put it in","y":706.78125,"bottom":761.5625,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["deposit title: picture, bubble, heading and shelf line equal the baseline while the heading has no focus marker","Deposit: open stock list across the panel in both empty states, no fold, one button per open stock; the whole list equals the baseline","Owner follow-up: no normal status area/sign","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[267.375,267.375]},{"statusCase":"normal","variant":"no-wallet","name":"redeem","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":449.375,"bottom":493.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":515.375,"bottom":649.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":587.375,"bottom":633.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"are you sure that’s all you came here for?","y":710.375,"bottom":783.546875,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["redeem title: picture, bubble, heading and shelf line equal the baseline while the heading has no focus marker","Owner follow-up: no normal status area/sign","Redeem: unchanged; one column, no aside, exact quiet claims line, no wallet-switch line","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[267.375,267.375]},{"statusCase":"normal","variant":"no-wallet","name":"docs","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":449.375,"bottom":493.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":515.375,"bottom":649.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":587.375,"bottom":633.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"KNOW YOUR BASKET","y":684.375,"bottom":704.375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"How Basket works, what it costs and what to watch for.","y":762.359375,"bottom":810.359375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Owner follow-up: no normal status area/sign","Every Docs word, link and panel equals v23; no remaining legacy copy exception","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[267.375,267.375],"docsAddedHeight":0},{"statusCase":"normal","variant":"no-wallet","name":"owner","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":449.375,"bottom":493.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":515.375,"bottom":649.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":587.375,"bottom":633.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"BEHIND THE COUNTER","y":684.375,"bottom":704.375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Owner follow-up: no normal status area/sign","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[267.375,267.375]},{"statusCase":"normal","variant":"no-wallet","name":"losses","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":449.375,"bottom":493.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":515.375,"bottom":649.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":587.375,"bottom":633.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"ACCOUNTING HEALTH","y":684.375,"bottom":704.375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Owner follow-up: no normal status area/sign","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[267.375,267.375]},{"statusCase":"normal","variant":"connected","name":"vault","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":427.375,"bottom":471.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"I was hoping you would come through my aisle","y":537.1875,"bottom":610.359375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Vault: heading, empty title paragraphs, panel height, capacity label and figure value equal the baseline","Vault title: the picture in the middle of the panel, the bubble in its place beside her head and inside the frame, the shelf line across the panel, the heading centred (v15); the whole title equals the baseline across the panel and in every vertical place","Owner follow-up: no normal status area/sign","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[245.375,245.375]},{"statusCase":"normal","variant":"connected","name":"deposit","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":427.375,"bottom":471.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"FILL YOUR BASKET","y":679.40625,"bottom":699.40625,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"Go ahead and put it in","y":534.78125,"bottom":589.5625,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["deposit title: picture, bubble, heading and shelf line equal the baseline while the heading has no focus marker","Deposit: open stock list across the panel in both empty states, no fold, one button per open stock; the whole list equals the baseline","Owner follow-up: no normal status area/sign","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[245.375,245.375]},{"statusCase":"normal","variant":"connected","name":"redeem","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":427.375,"bottom":471.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"AT THE CHECKOUT","y":679.40625,"bottom":699.40625,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"are you sure that’s all you came here for?","y":538.375,"bottom":611.546875,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["redeem title: picture, bubble, heading and shelf line equal the baseline while the heading has no focus marker","Owner follow-up: no normal status area/sign","Redeem: unchanged; one column, no aside, exact quiet claims line, no wallet-switch line","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[245.375,245.375]},{"statusCase":"normal","variant":"connected","name":"docs","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":427.375,"bottom":471.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"KNOW YOUR BASKET","y":512.375,"bottom":532.375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"How Basket works, what it costs and what to watch for.","y":590.359375,"bottom":638.359375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Docs","y":682.359375,"bottom":726.359375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Tokenomics","y":682.359375,"bottom":726.359375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"BASK","y":682.359375,"bottom":726.359375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Owner follow-up: no normal status area/sign","Every Docs word, link and panel equals v23; no remaining legacy copy exception","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[245.375,245.375],"docsAddedHeight":0},{"statusCase":"normal","variant":"connected","name":"owner","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":427.375,"bottom":471.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"BEHIND THE COUNTER","y":512.375,"bottom":532.375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"All controls and proposals are visible to everyone. Only the wallet allowed by the vault can send each transaction.","y":590.359375,"bottom":662.359375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Launch","y":708.359375,"bottom":754.359375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Pause","y":708.359375,"bottom":754.359375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Pending","y":708.359375,"bottom":754.359375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Immediate","y":762.359375,"bottom":808.359375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Propose","y":762.359375,"bottom":808.359375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Owner follow-up: no normal status area/sign","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[245.375,245.375]},{"statusCase":"normal","variant":"connected","name":"losses","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":427.375,"bottom":471.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"ACCOUNTING HEALTH","y":512.375,"bottom":532.375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"Anyone can flag a shortfall and recognise a recorded loss after seven days. Retired stocks are included.","y":590.359375,"bottom":662.359375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Owner follow-up: no normal status area/sign","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[245.375,245.375]},{"statusCase":"closed","variant":"no-wallet","name":"vault","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":449.375,"bottom":493.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":515.375,"bottom":649.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":587.375,"bottom":633.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"I was hoping you would come through my aisle","y":709.1875,"bottom":782.359375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Vault: heading, empty title paragraphs, panel height, capacity label and figure value equal the baseline","Vault title: the picture in the middle of the panel, the bubble in its place beside her head and inside the frame, the shelf line across the panel, the heading centred (v15); the whole title equals the baseline across the panel and in every vertical place","Owner follow-up: exact single closed sentence, compact Vault Closed notice, Deposit-only CLOSED sign","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[267.375,267.375]},{"statusCase":"closed","variant":"no-wallet","name":"deposit","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":449.375,"bottom":493.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":515.375,"bottom":649.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":587.375,"bottom":633.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"Go ahead and put it in","y":706.78125,"bottom":761.5625,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["deposit title: picture, bubble, heading and shelf line equal the baseline while the heading has no focus marker","Deposit: open stock list across the panel in both empty states, no fold, one button per open stock; the whole list equals the baseline","Owner follow-up: exact single closed sentence, compact Vault Closed notice, Deposit-only CLOSED sign","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[267.375,267.375]},{"statusCase":"closed","variant":"connected","name":"vault","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":427.375,"bottom":471.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"I was hoping you would come through my aisle","y":537.1875,"bottom":610.359375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Vault: heading, empty title paragraphs, panel height, capacity label and figure value equal the baseline","Vault title: the picture in the middle of the panel, the bubble in its place beside her head and inside the frame, the shelf line across the panel, the heading centred (v15); the whole title equals the baseline across the panel and in every vertical place","Owner follow-up: exact single closed sentence, compact Vault Closed notice, Deposit-only CLOSED sign","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[245.375,245.375]},{"statusCase":"closed","variant":"connected","name":"deposit","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":427.375,"bottom":471.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"FILL YOUR BASKET","y":679.40625,"bottom":699.40625,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"Go ahead and put it in","y":534.78125,"bottom":589.5625,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["deposit title: picture, bubble, heading and shelf line equal the baseline while the heading has no focus marker","Deposit: open stock list across the panel in both empty states, no fold, one button per open stock; the whole list equals the baseline","Owner follow-up: exact single closed sentence, compact Vault Closed notice, Deposit-only CLOSED sign","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[245.375,245.375]},{"statusCase":"weekend","variant":"no-wallet","name":"deposit","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":449.375,"bottom":493.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":515.375,"bottom":649.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":587.375,"bottom":633.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"Go ahead and put it in","y":706.78125,"bottom":761.5625,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["deposit title: picture, bubble, heading and shelf line equal the baseline while the heading has no focus marker","Deposit: open stock list across the panel in both empty states, no fold, one button per open stock; the whole list equals the baseline","Owner follow-up: exact single weekend sentence, compact Vault Closed notice, Deposit-only CLOSED sign","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[267.375,267.375]},{"statusCase":"weekend","variant":"connected","name":"deposit","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":427.375,"bottom":471.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"FILL YOUR BASKET","y":679.40625,"bottom":699.40625,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"Go ahead and put it in","y":534.78125,"bottom":589.5625,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["deposit title: picture, bubble, heading and shelf line equal the baseline while the heading has no focus marker","Deposit: open stock list across the panel in both empty states, no fold, one button per open stock; the whole list equals the baseline","Owner follow-up: exact single weekend sentence, compact Vault Closed notice, Deposit-only CLOSED sign","header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false,"header":114,"nav":114,"main":114}],"headerHeights":[245.375,245.375]}] +[{"statusCase":"normal","variant":"no-wallet","name":"vault","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":563.375,"bottom":607.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":629.375,"bottom":763.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":701.375,"bottom":747.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Vault: heading, empty title paragraphs, panel height, capacity label and figure value equal the baseline","Vault title: the picture in the middle of the panel, the bubble in its place beside her head and inside the frame, the shelf line across the panel, the heading centred (v15); the whole title equals the baseline across the panel and in every vertical place","Owner follow-up: no normal status area/sign","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[381.375,381.375],"vaultTabs":{"role":"tablist","label":"Vault view","tabs":[{"text":"Overview","selected":"true","tabIndex":0,"height":44},{"text":"Stats","selected":"false","tabIndex":-1,"height":44}],"top":1192.359375,"height":52,"gap":20,"titleBottom":1176.359375,"stats":0,"hiddenPanel":true,"first":72,"panel":72}},{"statusCase":"normal","variant":"no-wallet","name":"deposit","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":563.375,"bottom":607.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":629.375,"bottom":763.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":701.375,"bottom":747.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["deposit title: picture, bubble, heading and shelf line equal the baseline while the heading has no focus marker","Deposit: open stock list across the panel in both empty states, no fold, one button per open stock; the whole list equals the baseline","Owner follow-up: no normal status area/sign","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[381.375,381.375]},{"statusCase":"normal","variant":"no-wallet","name":"redeem","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":563.375,"bottom":607.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":629.375,"bottom":763.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":701.375,"bottom":747.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["redeem title: picture, bubble, heading and shelf line equal the baseline while the heading has no focus marker","Owner follow-up: no normal status area/sign","Redeem: unchanged; one column, no aside, exact quiet claims line, no wallet-switch line","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[381.375,381.375]},{"statusCase":"normal","variant":"no-wallet","name":"docs","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":563.375,"bottom":607.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":629.375,"bottom":763.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":701.375,"bottom":747.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Owner follow-up: no normal status area/sign","Every Docs word, link and panel equals v23; no remaining legacy copy exception","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[381.375,381.375],"docsAddedHeight":0},{"statusCase":"normal","variant":"no-wallet","name":"owner","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":563.375,"bottom":607.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":629.375,"bottom":763.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":701.375,"bottom":747.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Owner follow-up: no normal status area/sign","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[381.375,381.375]},{"statusCase":"normal","variant":"no-wallet","name":"losses","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":563.375,"bottom":607.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":629.375,"bottom":763.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":701.375,"bottom":747.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Owner follow-up: no normal status area/sign","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[381.375,381.375]},{"statusCase":"normal","variant":"connected","name":"vault","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":541.375,"bottom":585.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"I was hoping you would come through my aisle","y":651.1875,"bottom":724.359375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Vault: heading, empty title paragraphs, panel height, capacity label and figure value equal the baseline","Vault title: the picture in the middle of the panel, the bubble in its place beside her head and inside the frame, the shelf line across the panel, the heading centred (v15); the whole title equals the baseline across the panel and in every vertical place","Owner follow-up: no normal status area/sign","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[359.375,359.375],"vaultTabs":{"role":"tablist","label":"Vault view","tabs":[{"text":"Overview","selected":"true","tabIndex":0,"height":44},{"text":"Stats","selected":"false","tabIndex":-1,"height":44}],"top":1020.359375,"height":52,"gap":20,"titleBottom":1004.359375,"stats":0,"hiddenPanel":true,"first":72,"panel":72}},{"statusCase":"normal","variant":"connected","name":"deposit","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":541.375,"bottom":585.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"Go ahead and put it in","y":648.78125,"bottom":703.5625,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["deposit title: picture, bubble, heading and shelf line equal the baseline while the heading has no focus marker","Deposit: open stock list across the panel in both empty states, no fold, one button per open stock; the whole list equals the baseline","Owner follow-up: no normal status area/sign","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[359.375,359.375]},{"statusCase":"normal","variant":"connected","name":"redeem","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":541.375,"bottom":585.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"are you sure that’s all you came here for?","y":652.375,"bottom":725.546875,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["redeem title: picture, bubble, heading and shelf line equal the baseline while the heading has no focus marker","Owner follow-up: no normal status area/sign","Redeem: unchanged; one column, no aside, exact quiet claims line, no wallet-switch line","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[359.375,359.375]},{"statusCase":"normal","variant":"connected","name":"docs","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":541.375,"bottom":585.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"KNOW YOUR BASKET","y":626.375,"bottom":646.375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"How Basket works, what it costs and what to watch for.","y":704.359375,"bottom":752.359375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Owner follow-up: no normal status area/sign","Every Docs word, link and panel equals v23; no remaining legacy copy exception","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[359.375,359.375],"docsAddedHeight":0},{"statusCase":"normal","variant":"connected","name":"owner","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":541.375,"bottom":585.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"BEHIND THE COUNTER","y":626.375,"bottom":646.375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"All controls and proposals are visible to everyone. Only the wallet allowed by the vault can send each transaction.","y":704.359375,"bottom":776.359375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Owner follow-up: no normal status area/sign","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[359.375,359.375]},{"statusCase":"normal","variant":"connected","name":"losses","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":541.375,"bottom":585.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"ACCOUNTING HEALTH","y":626.375,"bottom":646.375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"Anyone can flag a shortfall and recognise a recorded loss after seven days. Retired stocks are included.","y":704.359375,"bottom":776.359375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Owner follow-up: no normal status area/sign","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[359.375,359.375]},{"statusCase":"closed","variant":"no-wallet","name":"vault","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":563.375,"bottom":607.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":629.375,"bottom":763.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":701.375,"bottom":747.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Vault: heading, empty title paragraphs, panel height, capacity label and figure value equal the baseline","Vault title: the picture in the middle of the panel, the bubble in its place beside her head and inside the frame, the shelf line across the panel, the heading centred (v15); the whole title equals the baseline across the panel and in every vertical place","Owner follow-up: exact single closed sentence, compact Vault Closed notice, Deposit-only CLOSED sign","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[381.375,381.375],"vaultTabs":{"role":"tablist","label":"Vault view","tabs":[{"text":"Overview","selected":"true","tabIndex":0,"height":44},{"text":"Stats","selected":"false","tabIndex":-1,"height":44}],"top":1192.359375,"height":52,"gap":20,"titleBottom":1176.359375,"stats":0,"hiddenPanel":true,"first":72,"panel":72}},{"statusCase":"closed","variant":"no-wallet","name":"deposit","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":563.375,"bottom":607.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":629.375,"bottom":763.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":701.375,"bottom":747.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["deposit title: picture, bubble, heading and shelf line equal the baseline while the heading has no focus marker","Deposit: open stock list across the panel in both empty states, no fold, one button per open stock; the whole list equals the baseline","Owner follow-up: exact single closed sentence, compact Vault Closed notice, Deposit-only CLOSED sign","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[381.375,381.375]},{"statusCase":"closed","variant":"connected","name":"vault","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":541.375,"bottom":585.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"I was hoping you would come through my aisle","y":651.1875,"bottom":724.359375,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["Vault: heading, empty title paragraphs, panel height, capacity label and figure value equal the baseline","Vault title: the picture in the middle of the panel, the bubble in its place beside her head and inside the frame, the shelf line across the panel, the heading centred (v15); the whole title equals the baseline across the panel and in every vertical place","Owner follow-up: exact single closed sentence, compact Vault Closed notice, Deposit-only CLOSED sign","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[359.375,359.375],"vaultTabs":{"role":"tablist","label":"Vault view","tabs":[{"text":"Overview","selected":"true","tabIndex":0,"height":44},{"text":"Stats","selected":"false","tabIndex":-1,"height":44}],"top":1020.359375,"height":52,"gap":20,"titleBottom":1004.359375,"stats":0,"hiddenPanel":true,"first":72,"panel":72}},{"statusCase":"closed","variant":"connected","name":"deposit","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":541.375,"bottom":585.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"Go ahead and put it in","y":648.78125,"bottom":703.5625,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["deposit title: picture, bubble, heading and shelf line equal the baseline while the heading has no focus marker","Deposit: open stock list across the panel in both empty states, no fold, one button per open stock; the whole list equals the baseline","Owner follow-up: exact single closed sentence, compact Vault Closed notice, Deposit-only CLOSED sign","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[359.375,359.375]},{"statusCase":"weekend","variant":"no-wallet","name":"deposit","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":563.375,"bottom":607.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"DIV","text":"Open this page in your wallet app's browser\nCopy site link","y":629.375,"bottom":763.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"BUTTON","text":"Copy site link","y":701.375,"bottom":747.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["deposit title: picture, bubble, heading and shelf line equal the baseline while the heading has no focus marker","Deposit: open stock list across the panel in both empty states, no fold, one button per open stock; the whole list equals the baseline","Owner follow-up: exact single weekend sentence, compact Vault Closed notice, Deposit-only CLOSED sign","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":305.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[381.375,381.375]},{"statusCase":"weekend","variant":"connected","name":"deposit","prior":[{"tag":"BUTTON","text":"Refresh vault ↻","y":541.375,"bottom":585.375,"inTitle":false,"inClaims":false,"inRedeemAside":false,"docsIndex":-1},{"tag":"P","text":"Go ahead and put it in","y":648.78125,"bottom":703.5625,"inTitle":true,"inClaims":false,"inRedeemAside":false,"docsIndex":-1}],"hintGrowth":0,"checks":["deposit title: picture, bubble, heading and shelf line equal the baseline while the heading has no focus marker","Deposit: open stock list across the panel in both empty states, no fold, one button per open stock; the whole list equals the baseline","Owner follow-up: exact single weekend sentence, compact Vault Closed notice, Deposit-only CLOSED sign","the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24","slogan strip in the same place and size, still and full under reduced motion","character picture starts on the first screen"],"exceptions":[],"regressions":[],"headerChanges":[{"version":"old","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false},{"version":"new","top":283.1875,"height":102,"gap":12,"caption":"Pool prices and BASK stock value, read at the last refresh.","logos":[{"name":"BASK","width":20,"height":20},{"name":"ITEM","width":20,"height":20}],"overflow":false}],"headerHeights":[359.375,359.375]}] diff --git a/artifacts/redeem-title-dpr-1.25.png b/artifacts/redeem-title-dpr-1.25.png index 8ea4c3fbbf4163a0106556021b6612badc42b618..c9b80a7f84bab629e11af379acb00e120564ed63 100644 GIT binary patch literal 20625 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

KFT8rh=4JKBp`&4$pZ*Uc!ZFKcJ@POy0bge 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 literal 21514 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 B2}l3{ diff --git a/artifacts/redeem-title-dpr-1.5.png b/artifacts/redeem-title-dpr-1.5.png index 0da26dd849a10a8af542a6d98fa1f95fcd05f36e..4c5009b8affc7f4ae2603f8d3a2947963ec01071 100644 GIT binary patch literal 26097 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 literal 27969 zcmeFZcTiK&_b&>F1yNBD5Ro1ddN0xu5C~Oz2c;uTdM8*w5v3&bD!qe%^e(;k-g_tX z03pdc-h03Qy!qWXZ|$D6tQ!I_*%_TFdhy~^ja);ghY)D#}xe|{ei5APvVQBD&N zkB}D+kAUtT0dQxNb~pzQ?=c=!?v=K8^8Ny`@%%&z4%cSIWz08!S0*0x_%Y)f@;~4| z)=BZ6WW~&T?<+iDg*%7fO4Z^@)pKW6k3#Eu)v;OagMyh7-nrQvLwnz-KS|2McD%Z; zm|CUjBQ5EP9y_%?;4#K6QIQf7^dCG}qB`-F^tKIpcR3iGaEc8ayh=V=N$mKy96W7O zwtp9C2}{y{*Y}Kwf0s983538UD6t##@8h@}7$3O&0`n35`zRO%{ddU=RrxoBwCc(j z%x`YdsQRE$_22y<*c-_I)7Sq$%=CYL`u}P}{*Rdce=eq+4^QL->NX0uij~|pS&XJi z^pe;d=>o?hQ~j5AMM8E;)0=IOsTFsVzCzHZikt91=eO&2N?R7^o9xx?9h--#)(*MU zy2n*qK^Ea|zy7p0)JxM?O9rrn1l_e|~=~lTXz*(>kxV zacF+nvbS{y3dYLmwd>?=>a+B;xqF@Kk5)jW6$PECyj#dK4t0EsA|%vv`?rH zDtm5Yhe6eE>UEK!gjek;L)BEZcw=crHtYsDynX-vT3C7J2_K`XMtaJ@Lgj>s)dbC5 zc3%#%aQRGDLq|4G$@_71#ax^#hZ8R07Pg1;I-{#EL#9Q%C?Q+&p>_{-XoZjk+mwJ^ ziG;-Sg)+3&*qIond#+bB#n*-Vk-%O~{?w39s0MY`)Py_rMV;PFx(h+;=Gpbk`|0kQ z7{Ai8-D#SfeUu&+W?+<@nCsu+o8FLBJ1S&dR64&%9yH0p8wK3%`VEQaNtIvY0xSe;qvSv718-tJm_>4Q{Ot<1cIVZrQ9*x4guVCTE+ zgGk3`VyTaY8r%^B86H!%V5&wtElsDXT9-_J^+$HS^=f2g7awm9`jV$c7B7l1lgA%H zpwpb!Lyjr~VYKMiZQrw5!{;X5S4N5_>I=Fg%V$5u&c*`dq$>s zeci7bkP<*CH3oq=Ei_ynp78({J?Jf&xCcCMTSqzh)~IJ6zWv#Ktvp^xKFihLLuEu% z|5vGQN&lU{&rOa$Pf0Y7N4*ViJUKkz_AoHUeQNzIbz|R4!W}?CU5!CsF>M6L(FUN> zT@%JUeA(4X{Qs0q78VL{8XUEAMh(IqO}r5G!BuSarkvk3aTq^YJuCL=qz>+`vuX|a zDn?uU?5SkAX$_9O%S)I9jfpfSBu(cBOE&Qe_9ZC#4GfSt7T0QLYkY_7%n9d^v#I~A z@!sI;qUDd9`$D<@@MrbXqW4ZktDY*~5{9TsF-5(iIQZ|ZPtTXH_)aTZ^u0BLAq1R3t z&E>Cr6*Z#lr#4IJ$txw$x3wk<$3Xk-c4B>It6nq}zQ?g+jY4&Tda!W#Ym)*uDv9tLUx{f7#={5PG)z z=b@_SYuU!CbkmIwG+ktYR;pWo1n&j5MnVNhkGeUmDrE7o_Zc3O$_xXVbS`c5jWs{(3*0Wx+LlKk9I+-P1hwq6`z6Gs*RQ7 zf&7e3@uq{ihg#}OyTvatBBh2RGmaNwR)obutX$dxe(r^SC~?0tERzMS(0W3zbWUU- zmLqOSVCJj#iNgklxiM#mBhXRS|Hp9YLVQ3Ga4esru=sr){rQ3&tX7eIIn{PDsy&o# z-y8Ew-Oj+KN?M`^?WT|FMhGWRD;>Z(e|>L3)|0~xBDJ4N4BTdnTeAF67Jznm=Zut` zT)&AEavgwo_c?heZVu?tVTU5bz0@^7^2+t!OMBGwe!(c`Y118c<@dDnTSdWgU6RKW zXF6nDc6*$K)cMgYR%Mrc!tqlb9VI<kN@L+^!{nrhqGs>B zfB+6jz@)v=Yq5dnb#L@N7}T1*m0hY`>R0Z1wnogITnwlZ(<(H>N${NfEv(`vt<1`?z~h{aUCpb^MxndX(1j?EqFL*^>tRh z4%4~L?VaU4ShJoPs$ansaNeQT>R8Y2%dM+%jebwfr7K+?3ySayd6}logxE`@uInHF z7hP+UZ@X1Lu!Gw3CAa1`9%REe8`p9a&l6&)gtxwYU!N8fN&KwvY16%0QmDWdDzgdd z60@}X9WA87kFon*w0@S#Tx+kY1a1AW+4Vz#{#mlIt~lC5%06IVYtmt@pjS!pO9SvmP+;_P)b2V0%h{B7U8!A0Eo zj1p@Ywld@)$+}bgzL~00gVf^Xo-5=oWbDY@#`|ScX_(1Am%$h|Mli&~e((z&72BNFsbxZe#N0nc z12!ikLy!Ci2lEcQ#P|pwuj>Q7*h*bd$l|k8#Qjxk+uOmr9OtSiSfj(jAaU1h7b<>t zPx459z$7AdeolOhx(bl<%B(De&OdYR${CY*KC^e)CV7)nyq8d{Fm)hqHYt!^p=&mi z&Tm#zx?iFv2Js2G*}ObZ7mU{S5LS=>HR0s5lkY{7{p|Zc&3{i!Rbn7MPz_)(kGaJ; zLV{Rue>8>TciLTt-4aLI2jASVfl^tKS?;p$Tx+(eZJiEF9Cy9kqUu_o#l+$GHZY0ykpZT|yC;)fsTVV8O-x590~RT>n?U|^-a+(#97~UQ z5jk9#jj4aEXpvR>pF4x_vN4hCH73L zD~Hmhg0u}ObL7o(H`#x`A0monYd88U6<_~vereVJg{Mzt7Ipa#7w{h}{l75Ge}1|G zENuCEnXld7pL$*G)B?OCD{hQ25j-1oA$dpB+eeE{3`WSeUdYH|n_+Wm+xL57Q}3nx zS_3!zk?2a3hn$}HEmEI25H|-uiBP2}+~fS>0!0nl=hJs%rZ_fk7fy_tnJ%2ip~Q+L zJ`;=?R)Svj7hylHcq-#=D>t8*G6wNlV`pAYmLYVP6ogK-&h)r{knW1i3~P-Ia}vbx zwclKCQGBBk5Eq}HkeIfku|@7WBcCsKK!%N*r;kGSRwV;f_bUzD&SqI5p)5<9lB5q1 zFqDh}Y=X+jD&_oWBs{>mnh2((Ji5X8okFt_^YJxRbxp%`xxEF``8ydltE{Y>kN4ib ze-#TQwGg`hgyOyijgo`PZYe8?iRpK!96=P=d=Qe9z zo+-1~KK{SL_RealE4(N|b+7ogXdwuOYpnLU@x<%}- ziaAM;^(5r}YT&VV)4gZH*gZ4#p|{#vN_0tBm)0d1qli=Z7kqW|qRq9kGCG{%KILQ< zD@pcA5cYzbGO!MneDt}wmP_rr@Q@~=0k@UOwTO04j7*clM)Blpp${-^dI1+h1o0GZ z)$95VJW5xWu)-xT{i`Tp6Y4_$*FItzA@`6kkT-2c z#Y$z$c>Gp@<))V^y)i9IGO`_iYkfD?CNtWjN?DLkN-_CYJ9-1=Ia%%Yujvz#ekCQS zWc(;bV#E-nw5tyTsdnXdWn!j(`TK9EjfFK!p;wWE7Z(HW%V%GcN`4X}8YeHOd$^cm z@4YoFa*0!cf+I@J&L&|C-e|}V0(=!8u`B(+eoR^l4(&LFIV)?h=VOlR{+O>AN(SbG ze$ZTGqBV%aVsRWk%XFLU9WPd3oi#1Jpx#=B6_}D8>c~x4+#e+)bsJt5-Mrm}6aqrE~7RO6xk=WZoepFjD-c?<0FdEyZ%#BV5|l z`;-+=D#<4LsGNs8RE4xXI{9cAXLLEKE?Mv((IOKgW~+Apx5_GVO#_~KvWdo&8Vj~n zw$~EPZqXUu^g*ODqC4bx*!yGCpddB-E)IF{ai%&O(*n{gF7-LXcSSi+o z8r_K^)_vL;`b&pi4DsMmXdCh>03TwF&ld_~?y~oiiW=Hx(6?=qt@39$m1>S6%U@H! zh0PfIa_L=Qe*8C&CpEny*fkJSi8MBfrenHc;+1D22*vS@o`*eTmSX8nEp@FGTYQX_ zirBa-6Ly>XspU}UxN@M2h^|exFzbBlT;dYz#@d4VCi_+!;ivW`%+KSWbjEQB@*jz@ z@Qpc+*4L-ru7hm7EEhJo*k<2+Ged1i=bg!V^-nN9_(>gRH#UN>`=^c?m3UL&h~A+< z=-UdAUZ7Cm*2^&HG6i3cO1Dzj{PhOM$K|LB`d!pqNxhX_2Hwrvci+{=swoDU5&c3> z>V~&y8$^Xou&Ml^ydMR<`sh58VEPF~3(=W3dfjBCtEF{crn2aU z{?=YYge<=YoqaAfCO0nDDj9$`+@2qfoW_O2gyY(aUV#%taK{}*(qdtscUaF+bOD@Q zOC~NKZYQSgYo&jdZ>fmUOvg-0+1&FPg}XEG@rM(R?g>d@J6A=b_(ybRh?TDF`zQ$n zxJ|eOH6V=!w&zsTfEd6b-TVq7{MT3NV`Hq{EZoDmW9H3;S9}QPgP^e=e+J?!u~(Bm zq+z@HAE)?5HR;%n&*lN0G5Zj+u7!48aCdb0-M?&TN)HpdD~4zZu!K{2pbBaUTCE4l zv&3R6Zh&w{=aoa8kMWU9SY}yYes&m( zasMC)AcHOCvvcJy^DFM(?24K7-@kDD{rF7=<6n3q4F{VbMXmCq$F?OsKVmD#r=LY8 z$mweOo}E&?Iy; zqzvx=^VX1$7+F;RT1{i&+1sR=2*uDio+}=HPV|UKc|6bmOP8rXM3DN(jMr1{JbJSGmQf^yD3YGs9U$MMp z&a;JBGhY5BdZ#iS2eQDt`{lSQ$;di5mHB=A>tdO>0bz`KfB-|JpY!7K*A9?#Sv+AX zJtA*;b8qeTr(qjC!Wkoaf`qBPaXUi);2PylXr%O9d%zduL68(|ui=-zpk%CTi+wC} zsI*QbXLGlcTtUndvQ*5St^o#}{g-Np=fWOfXh|$i_#se#H2;KljN8>4KMb zm{C+X$<@j{%0trKHl`-D-gVZFXj^c$@7bfXV> z`}*RpC8_t1TBBXX&|J6hQqkgDGq^XRCrIEx+sOwgHRxVBCu-<5^yej;J;k;f(s!Gm z_}57#Aqa~yD<_xYOluC-;CjTDqt`R2Vj_iu>9Jpy@HC83YGnJK3LFU>>#EdNx<>Ow zzjc}OgfO>L3hp0u2Nt1wVPl(ezVqMyX768pjDg;FTkmRUQ!r2=h=_u|(3A|Y{i_!p zmkyk%fPJPicIR)XuF#&A`7So^O0S21ybRdYOmEIYDfe(o1+@|Lh!RV3hNMunqDafs zk+rEWV6p1i4;d9Rw0SB6!U8lY&|*G#aSJ&CgEb0_tGw4T}29Dm%h8X4xh`1U>$?+jK#^Z*K z#|Be%K4Fd7yy`aJGI2(i!^z}so@_Xi_*15Oc}Kp2Q(4l6UQhDAYc;UuE^Rh5gRfNr{eKaqX1W$vRtiY(spzIWZ1V%)HJL>ZLfocQ5fMJmFT}CBb5KCa5F2v zjKnS|IhrGqrl+@%2y{f7&~7sNwQ42(0k`$1v?^6X%bw&dU2u;|<`W)qdY88L5z(ID zM+uy=aET?M5xRxgusEuYA7SH#W{{q~Z?Te;;VIB%V!qJ&eGL3-6<|s6WNHi`&@^_R zIo*CIK7Qy_hsx+ELxtLEhwkAhgo6cp(Mia=c8323VvxuU{1K-TaoWe-xf zivG#n&{REFd9k3Lb0o^TV_-l0-N)al>$4nJVbD7U%|vv=;kq?f5Ktp$-C56Dymce1CvfFO7& z5<1V^c$)$9E6CtiNtul`Urz(b?C#@p8$XaWY5xP}Tla=onbbnZK6h2ky{~?x*ay1f z%m=LwU>PNO9a1R_Y4-bjGD^M0g^R77De?a{vtdCON?snL`#YXc^4(!SZo3x9<}@_6FN_A;6Nu0CvPA_Pt?{j|3p1R68Dwg^Z2qp9=linyji+pZbmqJYYpzJA@7II56@I=@qi9k$ zrG|B%=>ro!vl;xnRTZsLB)X>7*n!PTaMw>T@J0Wt74%JApNMc& z7v!A`y`Zh7zhTv+yB_O0$#VWc`^KqGh)d;S8#!R%jvrFm4RSK51Znv0Emm+=I1aq{ zU{!GHlhWyrvmxC$^NbspEMWM<->h=;qQ?X7gnsi`5BU^&!Ux^D%vDW#y;;#6wx2c6 z0J$+f4of1#o_3uQm)kgUTy0Oly_El;NazAfP4Jok!EZR1#7MP{&#%U%hT!Euyf})D zjT}FhGJz0YOdEWxL*dwB~Y+tiS9buvGdBCf~lH=)@8o-i$XP%g;|~MT#I$c zeMJVYGSM~qdaA9$X{*`xiX5ErmH_#?j#Zx2Z>D72eZ<3l*`#K1hYw1_{SxbCQL;WZ zWGc*eQj$H9C0azr7us*o1ua{&%+-4&K#WTwqq;bC-hySkrQq`6u2FKGWV7HUvZP1U zTnzY)T3B&^sJ?hG*c7MzSkcsDgPlcZeQ!jAWXmyZ%o7Et(gA?+!t}D8|*63i; zB{(WaH^FACL2_^bo!I_k*j^TPqId`(Qu8W(#`;9zm!L-gXyE%DQJ=|tRlrO{*7WQ- zsb)O?R*wCuB%JlCVd~p=1iwr8-IfP$lpaf5q~BY*h&2`9HZQm$>8<`Uly%0@sjVWv zAdGeS7`ZD9b9!Q`5i&xm{>AHunfmCkIUQ|m6$^XoobTWe*832L&J8a2j801>6- z^dI*I@AqyE1vQ>pl#>cG{D{`dJb^wvwLcWGG;~%Oj!V8iAjh-@Uzf zIkRmKPDm5C0{*S~jd4;S6p!|EIxes-ej}hx+Z>-||KmNJ{e|zqit&&zV{+$45~#}S zyssC;tFfY_lUqHML=#wrJL$L414EvzBeg{Gf4@0yLstl{Fi4@>e4hMSeVFJ2rb!c*uXZdqU54DD$U0{eZU$`aJJm1WTcFvKk5uivHsDn18${) z;^kZ>{n5j3$`1PUUMqZ&!quT7!s}w!p{6PsZ-K+i06@o|nm8v}v7gDeqg){c+5Xp& zEe{f{B7V)!l>?@|l2P~E&P>l`dK0eRiF^I#t)bzoa&71U@bk z4&no2dz`5|erWN9YVthMYp9l_M@T;hMxDDJ(;{doaw{L1GL+kF=~#dcDWs_W~OjMx(7oA`%r9u`wme&ClR zm>n6S!k77|aq9SM_2sQQ*6E0!P2t}u22(7d-p`~_srrE`40@uh6v-le9#so^ONc*Ga+BDHO@B*@Nu6r1V9xTyfC8`4=i!dsb zS06kY7wEF*;=(NQW)Y0%(+vvDO}4q7jZnKWZIpoG^#`362RO!l^!|+EE4#`fwkj=2|t6xiV)Fq(b9rEFJI7tA=e<~1=S5~ zZb4<@aMTx`wrI22DXFX%K{b5IqEm$p+koIE5tnhAiDp+Zd;~-vnDeCe#yD70z?Ogc zysXxrlO60OWO~`hpVItt9m}M>>ALNFc)7jlv7>dMwwAw6XePU_uT}gucG_3DM=10} ziTOKs0P>RBx!^RlFxs{WwZY+HwQPAeiwSYrhpwFD4lLcRa&CYe6Fv))*4=a4D=zxu zauDQ3AxE^t0^zIo)7e%aM6rH8;a+-oy+%S@qJ}zOp(yWrL}P-miMZfOP*&1JSZ?O6 zygME;lDu3qn@G?-Q!m_fx{}GMA+Y3*JaWI?$%yDiO_6Zyr54?c>-E7fumOS=@;21L zD8wCm-uUDw|C9qv^eBu{{^07c67Y2^)S2U|^SK28#I^JcQjId4qdLBVL>x$DsBK|j zwVdaL_B#6SrP?U6wzaa>XN=#Y>U)CzYjl()rit{{_3Dc}XlEvC(geAt zqCef-3#k{)bHstDMtj_aJl6apdxuyT=U?Gd1XCwWX{?xCxq;zkYiTfzCwPbns<{U$ z=7&RnxCDwUNQ!eb9WAVt(rUl^E2E$1y=gB(*OR=F3yxdwyeCb|7fNRWWSmB;UCl74 z2o{@W!l0RwHqj5Q)s@ZQOsAXNCTr5k^gAi*-Ur;N-DyWEAJXPUd$f(Jl#SQ8Ea^@O z&9H$JFie$3e@))E-ziCM8(d2y0=@JKcqfqnv|XbM#Y{At$#USA5PCFmx~0Ws(c$t- zPxqx>z6KLX_O4+M&clH4!`yQ61z-eI&h`N0^#c~i>=1}uzc5RE!VmDlsMSqlUca&| zLf0s$^(W01%#MW*L5suITFy>L-tQ5z!o;J;bbc%zhIgMEZKElp0T|SNWm*hYg6p|$ zSCObz@?Hh2B~WW!R;ux>iq)%O(8}lLoeRIGkB%0IJN7H#%*>HrRrq89XgcFQMS%ZS zS8N41gvr5_aWA*5E=8#tu`j})pLF!|^l=G3e`S@v#Z<2l$Ge8Bv@{;Bv>BHT>IRrFo+p)%O2e_HQr1;bYoh+c55Vf zwKquK^H=ti)JkX~#U0?C2M+kQoI0qjZAUszONAYLH`|B%ou)INio?#NJ-=;fjL;qL z*cR(3>cmSZ;K2bZfBf1!V#p8w9wRdK$Ybnm1lvr!b)5)R6S_3~^YOcRW*hF%`3EiL z+x$;S(cBV5e3Dh?!lg*!W4j3&%D{`Sr)CSL5-%&t)_2eHN?}~|V5Jwu$LF`-6KsqV z0qa+;X?ehg^&Z{avY*kViZ2!|x;1bR&~zq5WAb|0k7?PEFH}2i`ciFT$HmLeRQ?Re z5-|JlrqwaLYZ^-GF+K!XUx`^iy+iQfm?iwbgEj3h$%~vy^ctxLTE)3>faOcNMt`k> zaVk(tYC#ph{nPM+G^2u{yc>u?K&Lg5Zqm+j@xz8e0Z0P>@`q@sg?iaOj0LmZjP=;i z>&0PLGI0$Xx3U}d&{;=N*3#t;VIR*$V(AaZE=hj@Y1qk|4f)XJ?!>0i6joplxhaLD zU?&JOPTc9pBZfIhN!aQ32~?BP`j1iWTv21O@}}-#Q+51lcPUBbO<$}Mvq5M=##Bh) z-YJ!gqpWO3hOTSArJZRJ9uQ`~WU=`?n2gj}G{I_)Ty-W<(xOZ2tjzqk_M}AL9Z)?j zUvPg2Yix1Q-J7HO`A0dSy=wq^eJ4amiq&u9&7$07;2x&ew}*j;SNF8cpJeiJ--7>d zw^@}@+9RV{btG)b3BAP`!!P3aZsXzc$KTT!iJ62iz(EaG;mc0L9N*XoH*;GWC8~q* zt@-H+i+b}9ZMUN11(x`r7=uKofxK1*7o=AN@r>lf6Ou(fcvkrST>W(;wj>w6s;!Us z01#oPN*rZF#vC)3D7!FDjiz97rxad-JYlC#{@@I3GKlEj3JtF-M;sr-xP_ScjRXhG}lNRQmua8 z17f=bGO#ji5u)7?qI@sU|8N1FgT^UYI!@qFodY?vN++qRcXy|lii}S0El6VuUVXIm z{cES%H>Qp|2h^kXRw30KTI)^Kb6=h>N;=gZP$P*5i-8>Wqer1WX(Ax<+6lwUbS? zk}B5vkr}7}UZdiK4iMY4Tb|Wv-47lgM!O$NG z>6}VnK~iPY`DE(+Q*`L;P>JHzqPlvYs(Y$$X^#EJaUqwft!ISG{JS77mbRSJVm{#_ z@g4T8c(T5dW<=CX+976+-*h|uB%mK27rKtVtJ33(a88gD zNjPcRKNS5ic02~JcV^A@@ZzfaP_q6|({MIdjLs`vYjdWKYOXindANRgb~&ttWG*)X z)e`}}r_;#nH-T8)l!=XQ(X%9-sTIxO_&%b% zJFqW)Z}D*7E!$~TQoJZDe20x;;J|gu>2`a5oh;JB|3Co}a?|i__98UT@dTeVpm<8o0j&+1p~iav!XBD!+Yr5vbX#@_QOIgoCbGJbbf0%Ab6`fy*2`M-5P2-lGYbfOxi zc6l9$T>Bez-SZrOPatp_i5C}T3W0`t6^8I2sKIQ{xu?Hohs?h|C9ulgaBFt*ey5&! zluJ!fXsmOD5q$sY0Wg})*@EUP?`KT6-U?}bF9eE0$h{Z~GN1hR6)oE3c%||kAwts) zzzPDW-;{L2t63JA{8R18dKMn8dLhq^hj2;@@$;~;-iHZC9SUB_4ZOmei7GJ1`qT>P z4Nm-COE2@sgUrlQ=rtdF?=YZj=ww3pA}=0VFr;W|{Sb9dqL_M^^rG}3(G#vPQrGIs zZFeSvO0RR}eo&8-T>5QIJI(dwO68&SdU*KzAUX}|)Nc_->K*Y<+#*KK=l2EQKoSCsJtKvg_hhq#+#QgvCb#SkqU#;a>8(jS z4l#iS)hRD>UBN)w{~&sS>ChKA7C?Rp?})ha`AI6zn7e&d=!eQwkj{l1z1K-+@Ss6W z40;2A_ooU2{6dD9&Rhk11I2X;57nQxhf-}d>(stc&MSPbSiYa5LzVv| zk(tYr0IC{I^@ZTWPxQA=3iRFFA|EO^if!a}OVc?r^*2Yokgj5720eBIm(9e}@Cs-` zYR;1^mf0(ILJ#kp?)FoC#!Z_zS~5r=#LM1A#k<%+>q02%?}>M*&j5U6Zr~>aqD8EKfdH@hWuRfOZwFKd_4;Gl8A;7F??~RoDk1A8xM2SKdp4|XX6}Td z3Ep~)aD>OB-qcvnwtrftY)RT;!6mGH=P6Rx$hzrV7b8MZGbGc9;Yx)@3$$Kr z$SHTC8AkWrDJW1Q1sPNfH{xLZIModb>heWvzd!l@D~ zjYEyWg&$u{fCrVN$jRxEObX#1_hS)vr3wFxZ&;2|#prFl+_Ej^+qU&=>dZ9-2={zFNLg>-46^F3Qt49|hnpE3 z;=?X)O!QB{+Wuy8AE;g=jwHW<#j0dT?l6ZvDhyMBljd={OOQK%NPwiRcAokRb^r+T%)w{DBi`BkgODXBSqYOl!4*R8?23hlE(0|nNmf20>)L4% z_>e)B;q~1az9&v%yq`r{>248w?-pEX$P~C0U+i#43a|@7sCY5r0&&bt+@SUv4`fGQ zAiEvBaV3=drmR23Aetw>@bA(E?`b7x z87%vh!YrXg;xgb?hpLNBOUIgZ+Lr*k=xyF<=se=i{@CHV>$Z$gT;CT`>kjZCld&~v z9RG}X%(Ft5TIA(H8qfWFARON^x@CJfIYaE3JM05Hzt&3g7W`~ZU+Awp}%*{aQ7S)&U z2;Cj(1&*GunZ{-)-XR0R*ua$nFyhJVmV195S>j~#@9~h_wE4rHh8Jq55Q_KFzJkqD zbmTT4FNy_j*B~nsLk@NRa_`s|kqInlM)1X>2PrEg&o!nhg2X*WC!miv)|FMx_I=pB zL`YP7KtPQMQT}1A;5j9FP%kavrlbjl9Hr<r9OmcT6`;K)ffheI1{4Xbrm5w zz!+W)ohq7amtrxAK)iw8u!5Z9)|3YgO*jySZpF-OaZM-9 zUNgFixYJRxiYD_-2Hz87qN6I(zZ^fcmYrd`b{%7AL z&39wnPSresk(&YIC~6unX0#y1KhD)4%CExF^yHKZ9F&$imzT z2=bpCeQRaV(3oQmsG5K`JmVvpms{d&xrJX7P4{ZWG82}2GxEqu_xZCIfm=0URDwMf zwq#zfz4gEK^{PuB?62I;9;b+>VO>0JYpB_C1I(+J1_Xb8Vovz1tJ?7PaxLPgga|Rn z87YCiHrNy(X0;i+YvTAM9wde+0*bvq`;y$jDD_;A+tX2=WPx{ckO(6KXY}~bKs^+%|NIZ^LWw1{FmtK^zTyjWe5}az97kf zW9mUtdUDauZftGDJEexO8C%$m{f9K_>jg7IIcd=|r}{`vf$_2|IXowN1m5ASS!X+^ zw_SlyW;x;Vnfv9TS2m@wsXPE`+uBxTY?_bW)OW1WCCIxrgc+S3hL)`5emW;w8lUvq zmbgmFQ671}LuatcJp~93zviO~LCtHQLM+D2ID#Yy8t}%MJTNmFInCp8A+j{PH7F$J z>L*+28^dLoZB6RMCe@5>wtkX)(MU7ARdq9>*}#(oJRxxc;fFpTJOi{I-}`kw;_T9K zb!o?q5N?pS{>=#TiZsh>CKf!F@9@rd;S1fNKPCt(nz*IBYa(E?x zkE~%>B64X=|EeHb*8q5!-hR+wzr4K@QtS;FcKo@S^>+5> z4g7#7CS0dB{hyJ3+BD6qfGnRHHQ zhfO`Gyjk8DJ2Y150m&3RD&2H~mLO`XWj3o}cD2I{r>JYAT#w}hy#dB$8mlr zx7g@20(b3bVHbRJPJ;dQ6q<_BdHfXm)M}!nzR`zGKzrUlpaC!EH5flfHj1!(T4lUzRiyKQ>>W zTY7)Ktw3r48d^BER%X2e6a5ibM5I;>Q~hz+R9?LW7{=X$Q4? zrg6s&|KS44EG`0bc4TvQ`A;Y_(_Xd_pk|h(uv_C1X7-P1l_FE14W?A93t6T4ARm1k zukf5Ry3-Fk{dr!298w%{m`C2aS*&!GAon|q5Kx7n(CGWnV_AhE(@1gI=Wp(?$W(dV za(;0~T>`at2RS?2n^Hd^#k22GG5Zf%fPI?O=x_)6JSB?a z08BWOom>5zEJ6_fJc01p7Eo}Xws>ahR=+O97qohIWm;QYJy?BlWie*e4+459=F}Su zvT3MkX!8+Q;6vqN*+bpK#R2Hv0d*bv*kTCVEB*qH{IHx&`B?VVjjrpTNjhbv41LW{ zcEGB`0Qe<*({;=ZYi83I6=HnWlhULE3-18E+V8(w6l=O_^7<(E^7-a&uy)h_HbfY4 z$p<+AYRsB1GRfG4x^?d}i3N^%quUhf>pou=ubbdFSPfd?q$)pK?!R0N1$IGxWB++> z@`^Kr+7~GK75bQd$dLeIVQrgCJCr~jq$Qta(~Qj%_NZ0^7GntHI#q+NQQHIx?6E0p zvD`~`|4JDc-T8eF&sDUL!m0U0N0M(3-yBM>+*Nk72=w@EfQMi}EPwahHAWs{w!E-d z2fw(R+KQHq_s=b>77Oe_2*L!RzLwOs0UTzoqDhME$8kA-D2WFtGVz{z2P!}>x*i3j zG14xPbudhSL%n1SV*pcJUqaHs5Uy?|8(vXiK{5s)7q%V|70+MwfxPw6ZUb1kmI`0 zqb#6UmefM9Y08w#{Q}p8OV*UcZd8q*r$LQg>YX@LKY?LdPIg;!OqjRYIm{2Jv`tNc z>OfM>pB$_!AbK#lWy1QU-5jys^I&bRp~IV%?qDrVh$9gHKA|m}zEdo5tC!ebVXCE8 z*H6~1w6-Vk!~wN}5+(cvx6m|l4*2k0g;aVU)7E&=N{fEuy!0j_;P;r&hgB8S$ZQG9 zz8Gs;8~c>K_Q{8@BnfiY=7&C^qM@g)fq*jgc1`SPD7#ve^d!1DP9_5l4}XPwLyG~H z=4PK{OD&CLxLCtKYhHRM0VJT!!Tkevpsup?7bFv6PoaK#;OOVPP=yj&QBTsvc#ah; zMFb`S?L(P3Z0GDI-HU&nNI}Qgz}n+Pm4pEulIThw6H&DvBmNr|r@`U?i#U1hCN&(t zeUx$Yj5!%dRcA7_Wt_bO@*(cC!_&5^+F#bj6freE%Dwp*H_Ck*?rCa6-@bx6EUL7a zMpx}(?K}VY@zly-wY-$$mB+?*b3nv{f6$fw@@Ds~+cF1b)9?&#I~>92?QVEiY0*JP zk}#-68i3ot-~ZAZJOFh6zw@WS>kL|eKB|8$Q~&14dq2I%as&Rw-(wd3n&>$8-#s2b z-v6?7D<{ZEee`5c31~S3nwwsw{FkpK0ouEwCrv9IOaG1Z_($|{!;vbzCEQ^{_TP;f z#{YWg|H<1-{x{3we=_R|0XB2wX>qb%GObg-vu}D<;cMyVDZGb=t6x+Gr0qg|)G@!} zC)~?4`iL!v`2{k1Jde7AM>pT$p9ja^*PP-G9iFN4Y@F4$BLjN#>|aGfAMEs?ic>A( zZ<1tVt?Pj|I~Y%C7%n+eegunq8O%ytr8kmG)T2Bq&xpG-ly&)_?_;0w=n4$(s*su+ zmTzy|)vEZzl=f(Sw#W+YM}W)^ynSD_SAFq=@}J+PEZlY_f1W(W$2&4zwt+{+|M*hx z45Z#XYB#@E7@6iR(df60rCV2Q=sVPO%y-d~E)H+&k>|d=1qIp}PfPWt2Ry{%a<(|k zo`%H63hX=5Lx4?t@yYHmws!Rf|8#h|bUU*W+S%RkLorkL*{N1FOu^Z^##JGp<$>Jw zfnVSamKNU|XdD0G!EwFIAr^qs+Ir7gS(`ONLC!t>=H+88mq6!RDBz6|tqkAzfH|qp zNoZ0XBGX4Wo9&O?yq=q9tRd_9U65Lw)*+1XGy>_qTSc78erAxN_g->4#6NobW`lrZ z(`unx1vwU^gGz6q*HDfk zy(vg1AicLx0))V^00I&YgkD5SDAH>PAwfZi1OfumLI9}}2%+~j@%`TUH8X3?`hLu; zS!;e}XJ=#}>uFEaf!>lP@h)YGrU+`<|zKOte3v?=G9%^pjpuCy=K z4aB}Dd~B((__$IOjGl~beA4j+wAa<`WtdO)h^ucc{*aWWe{6pW%5O$g;mm7fTcpC}tonMxYZWXPP;awxOZv(irpJ|tfNOYES(;Lz& zs!?g?dxog{LZU_G_gn7sJ?wF-^{wL)&W+rIFZ|dkmPPOx!Wp{lr(7h&3RW!)qx)x6 zh3_y6igs?vafYAES@nGsUwE&h;B$ae{SVxTm_cZIX9$^%+_#eI_9YN zmdhqY1qJ#0j%LNU5FGrBef(@5r|2E=lhe36^cg37r(Idp?n%=u?z(Y;C8rYzD!JhV zI%kQVCtSGF>#Yif06%Y~U! zItC`Or&k8m(%AUg9KsH#b;Np-JeZD3fAYw1;3NC~p+mTqpPLmd_2P|58((2X-vS2} zbV6wAWLa}o8IVmUA7`V&qPI{~aV^Hho%p(g!gcXlGqh0R*l-Loo&^2=tH-)yZ}EM7 z-!-{g-D?e~dz^v*!v-7sh?e6a>F};m>66V5kzt$&p2@5z2rjB~rwqM%n!zmuu>@|6 z3U|fUs=R0BbGrUh!=d~%`o|};ji{&`dD^pE-4It_dv0%z=!?A^NuQHIqAbgRjE3oQ#Vbt>`^9C|FeEXbRqImp6 zV&e4fr}@#q%M9b`&3PtQ0w7QDMJA{!58 z^qlI*!95J0SB%Idg{s;%R+IgbWyl9}YWM7e-9u9rPz6|+nQsMO$eXO|_aY%M()E!y zS643MZ{|ns#xx=qQtjV*#_x3Y7T$>-ha;xoyN0}Z8MS@U^-4C95f0HGw_n82HxvMo zo|wFr6wkq~#yEMR-N9iIphFuR?^e00z0Qp}XwFbz6#n^l;`KY0?oVo`Tdk~;)x*Mq z8B0WLGA|mO`3s*UHr8f_jP85ixSl#Do)lX3e3EPCBw&xnec~HCq9w|`K4?WYm`bEy zCFUIA>laF1b*(S$JQ`G!Iz$T*mk{~k&EK1;)dqcpKZu~)1=dcv-&DV+6*Q3p^I^yn zmAv0R6~8Xng&K-@3K# z-Ycylj@P!zUM!U-OhuDvT9VGtjurFsGNwU{2n;RLy1^->xHl%pXsA{KZ-Xw(GaV5$ zCm~f;)lEf}4Qg_-z|uM?oUk%@FSffgba!Tp54_M&#hR&|GwT!9Kz5VvsS-7`OSx4u zs0*8aUqh%azU=3k)p~g3B;YSnwmEh4d9Z~7BfE@~g{17g9(G#zi+XJF{7^!aB7Cxp z!S&7d>E!u(w?6;VZF@@La_TCNfkP{p)3VyIpP)C1v#x|Tfi2JKRyNe1f?E`g9Gb-K z<886aEov-StkZ{f$5nY+&Ra}J1aS-rR~oh+ZD0GRn2=IJ?ic8JY&O5lpeeyOPWB1M z7D0>})CGYRQfPGO>Ei$p*e9@M!S%DUsNZ_HMZR~(O$vJ zFPi!tsc}c(9~W$ka`$3C7;}KiM2X24ylEC&$nP+yg>J7DFPV+1r)eO&2bJx$kM-YI zM+S5x#nSz=R_6?t+aR0BK-^A?oUJ#&C~+8B=7Z~#j-<*LU=QjMP{|C*oY3}28jU#a zBk{c!lo|Em*lAeGrA)Pf#ICz~&b@-Q@RcaIO>@K3uH>vja9 z4E!|=`4K~aMh8*a!{U!9n%T8#?{m^Se#DP*7eGTAc9vRbsWN@XjIY)C9K%VIgjH#w zck*qokoDU5p%7|K0Hc?h%AwvwRqaM&)$E^@gSvJIM*uGbZ1anV=awF6D%5gUCCbuf z9@Y*2YxvZSxNfUqr;GI-L|^8t4Ua;qd%GUTc4bJg*zd}5QuIDJ;0(Q^ior|pF-qn! z+wlCjTbxSeZ#o)PSE>GYbISLU9d@4JT6C{P#YObwk;d;yurSz{x9HMaPep$fDBziKqF6u$-S5}qHeI^oG^fszOg0qPPeUV~*`1bR-Z7vQvVGN{_SMsOa_iI_ z*smvMtoHbywZcdb4Rx0rc8v!9a#DYOhA!(N_p4P;brhF;IMf+Krm0t`;?C$KCSDe$ zZd#lPJA1W??{X2PE(?$GpivNbV*U^2XVM4N1|cq2E0-t|>9zm?6sSX*m5jI`<;S+q zYvmH)>T+Ps<2>HSdeiY4tFox*gXfg5;`&K`5G{ux(`vfKNVUK=CMwdOrBvp3)HW7T zex&&}q!sJi*Zh7P8AfmWcL&JVPn>Z!-rjtFf-}vQt^(b|t|4o%wPP9bcIMC7Ja5C6 z1n3?fI{3h=XpBsumXU+cZ!nKX9$re9qt;lR1}!nG3i<93B??ZGWFLR&i8|tOzhB|q zx;E67sOWfs2JtaJ4PGRTZUIGe1fha)E;D(1?R*U?_FOc{dbF7wo$bddgSx;Y|C1I% z5#zd?`|`3tac*YJ62Jfee)p{nvY~{9P^Ic;_mBIQoe4igl%sqL?SHlh%rx-h`SaEL zZa_&r?-XLaXMI#Wcvjarzac41983I=s%^f`Ne0ip!*~@5mSx|#G%+TLc4cMB(BaG6 zRjS`jE9{bQm-$=1AM6rj^^w_+Cm${cOB^)c}P2 z`%bQrE8P2LuXxrP*QPb3gQV&wXwm`Ocpv0CaM`|@pLD>T``_hs{CYB-iSsNR^ zn#aSF*TH~-T8~;?kvPDfZB^fanuJ(n;nn^;Q)6JZ&Pk8<*bDE?e25xt^TziILB{;U zn|-OtQ@JYp-<9ua;!8kwEz;}KC+8oOdNAIZN+UzJcHjwts4u3l^B6w(^(1MH3Ss3Z zVfw|AHk5bG>qHY8*MSl#SJDUCTy2KVKI*NM=}fC_dXD0f6T4uRw7cy+{0^J?bqRhP zE5p^X8IjNTO3+oPdf=(OKrBJuSY3_wH$&e+-pqPy>eo>*jrPSCn8Ia3`QE*V)KbLmluO|FCu>E4{yGioX*V5#zwB|h{tCK=<69X^oU>Q1#J6o#p z6uljrw}|2HM!g)iBrfnMN!x{&Z-wAfV(y724hGL8l;o8pnm<|U)euy-Ud>5&LAKwu zD&jLF^+m@!3uUt^au^YqX{zUQlXT9{AF=ld{3LVE8sKTcxWoR|(80yeHlgeJjYc=~ zBZFs=2pos6Jv^ulXUz^V=Av5VRJpDbF1mKMi_=RA?UZD@!si4Hmfj%9+|>usTZ1?J zHNb1hwzkLVvNY*%c+Bsbt~x4$#$PrzDyvpP8ATCHS9%>0GgqOSQ){D|19y6_p?Pn< z;ub1PULb2>wHOTAwf|{{m=ZClu4t) ztHkcIUsPz2=mpu@9EfFdhsVWVL72uz2nF&7rog~{8J@eZJ&j*34Dc#hIQqU1)BCN!yIBv}isZtmoa($%K=b^*(QeF^hcRqyd zt_l2J5z93f?!u&vll`_IlF3DRuk^JgBy$YNBjFs;|7A%mM4~p?L2cG_==nU`v3H_H zPqN-4$8dxB#wM4oZ)3ByTF>3k0 z)3Yb4w+(|(yMf15t$G~`6FHkN;=^rw;|%KaIe|+4AiLe^HJQYdo{KjMs)Nc2GHiQ< z0PNCm3=~Ku!bZ3r>l)@omDs(oaf(oddCcDu^wxvTbcZm7cp za|8SKuHu}0orw9)kfPZ}Q>MaWR+5z zluCpVF6yA0V*4OFMh`vUX@lu&%Xhe@*rR;ouFZPFyq4hF8==T@X=3*A{H~y@oJMJS zo)-GS9U8CB^#-!9jIfADIO!-wIpm>eTkCz(qiCba-IS1t$dW)y^HZ2|p|x1!0n30` zbzNFUGmm&s@s-K1)n5Zz?yRi&dh)hWF`7gpcxx!-CZoAu!_MC)r8K;J3P8g3q-VFt zCe}kIgHBv7RkO% zjzoe;88@X^4xR{VtHb*18X7dFG|@B0X0D|VZr$^`DDnDuk{#MNwX4O!(5&!Sm~N0N)yqxsS5b%n(xPV)Cz z*yca3X2w2-$K9PV4giX|9#;QxfT0HF`w_7)`m0Q;=5gBr zwQ6#jYCru#6rN6F?KdzpWbc7)bBa|KjVqC~7}I&ZDnl-QYo0VAEt-cR%v^sMfKA)J}@}wE_dbAqIb_~YRYO4 ztX}UdhT4^gcy-#i8+|60O3q3{d>_4e#7V#mP5$Vk(6<%;k6E}B^qXI+6^YO-$83DOj5)cO~Wfe9g+BUjDG_A0jA0q zXpeh3HPm`Na&`ari?!!jAl?e?~|0+Iy{$Eiagbj)hP7H4l=J#!^e zoQ8asHq}oAVTP3h`^ftdqphz@m+qoKj{U{~epWM<7Id^3>8paN$aNF_o4k-Yt1jJ4 zTi!RWfb4_A*OvYl{ds*oYnPW}Q;u}sXF36xcqPT+-w1cmhKFxJ&i~|B72c194`0Qz zsWeK7_;(5vKTO=_zJY^slJq%MXRr5+!Rk7F5$F z4^2&c=a<|86vrf6 zLGyucYOu;(|1^BOFN)(S4d1$VGKxIU9EXnOvvd{`@t0tfWB)z zP4cJ`e~^2Ba9~ke2Q|PpDM)!+ZNR)6ju=^R>w*Sv0_dSp+IMAwjCbNfx=K$ypTwPL zOKaZ+3ARg@7;Ap%2rPWvu)(TB%|6E!`{ql}^+5zx2FSU&5W57!jO7{*{C)ZM0PFcU zK3StDTWwn2sggB{n{BUL`b}o)!~@scv<{5eVA@*A{Q+yf9vWk`ImU;!4#-C8he2bT zT-k_bxcSD^csEJsqsFs2zch8aK@xV{lXs2~DJ`%Cvb5$@-K$(ypRa+m!mT+TAP+@S zO!?E07dNYZE>~sKc#UB{$5hh#ZRki0 zXaHo^U;!XS27SrWQQ!|+DyoK*R$*n=QbuVTAX%&M^4@1C0|h^;)i70q{g762v$jW9 zP$se(6=MIFXVC9;3Oz``z~0&1dkelA$== zJN3%|gtK?CdY^#+YgZO_uG2v0SR2s3*A>Qkb#h8=FisUx8m&PtVp&&g zHxf9Le-x2^u!CL=4{i1L{j^j~b4q|?H-L&Y z)j`xgM?!oEP5WWLe@+2_lO4f4&ZCT7H|iQgk~-(fuq)gQl^Ed38+AZi`L`bv$U?01 z)W8mamD6g~hVD4Jx<0w5e0d+E$x?=11zKvEvw!}imqZic0ASNe$JPkj%eM+V+Z@~&U* z^@McnZXXqeR9NeO+iTDqe=*6kvu1FwHjt}_sggh<4>WfOi_qC|Z{L@IiFZ;v_L0>9;k;qm~K{~)Sp*fYQ zn;#g*c~p*G#O|Y=UVB=PoeKyq-Fyxg5|N0C3G$h?3ytV|Aes5lYIV>bDnHj9Qcuv_ zAqD9%5USzk6av;VYehVCFN0b&3k*Er?ptHQdZ+G%A1weol2$h~4!zE3)NXI16mMQ( zahpjCFN^CIh0=muqCZ;{u;%V4>eh?szo44A&PYsV7FbE3>UY#y>?ja?KQLSh5sr&G3D!4`8DCD1SxE~Kx1UwyV2*wk@!CL z{57z$z;IwXuNG8K%RwbpFX_kD$GF2)Yq`|URw2pz#w(}|*ix`w)Yz)h`YO}7gk($F z7}LrKqt<|kJ$89#YTv39hkczcAjC^dp20oOwajZq&#%1JNt5C&`XcHaTyF2dWFxJm zqkid9jYs1{gp#p|f}e=qX?S1>`1mLVNYXeM?v}?%EQO#n$c=lIiDOw!F$QMWb)r9c z!OoTtv!d)6#HYHW0OEQJZk@SbGU0~2+n1Vw*0A1b$^1z0Y?c9CIiLkM6=}IY26Rp; zoscgbG8fleZfG>2mCug+=!uWCh4en?i*Pq?JzZ?tJp55swpd;|3}hr6{TNs+#Ui-h zBag{ghYcLGtLP--iI}2SGi6@lqX_V%zpo6E>>D!bKfB|D^l%86Z8&UK5|H3uzJ}-7 zlvE3ev<;d!{wd>)4NX|LwyRe}sUEtN(@8+RWjh+a;qtya7apUH{|#m9Fl$}!YJ#!m+}q9Fvdvs|2H)Q3{i9Yw*#Wp7q8Iiw?ZE~- z!M5_AYCQm{d+l<}aeGQF$~JUE8S86;namyC;k#@+BDMx7RhYW9^y4z-gLg^n`^P~C>Z+TEmW{OD zYvV$k7W_~!^aN@@`^+pY12b0QfC+r&*|jyzMCXe&lyqrz+mf4|X*n39V_xn&lBAcm z|50o^|2$@E;hGDkmS5}ZmvT{I4W07E;!ANQ0R7C|Tj3QihyOu-o+rv&8dp_56j>Sm zd3Fj+Oei|h$DPoyaqA-mrSfdW+rzt8*Z)QnWX|3Pvr38_i&kR#XABi{^xx9QP>w*H z9D7w(H!IBMs9(b~R=&#fD0cfqeo^hqgSqDX_JKs(H#R?iRK_Ro;2B4Cb(sFcwtmHoG55#<2$2lA!g<^LQxZi^EyRi~Cg#M78ZaO?*7T~Dno{eaA z(!mOie;8U^ev%7l7H^ztOQu)9BT!<|x!LR~rNTq>F@3TQv+R%iSTe49TX)GNhv}Ny z1l#8{=EhVBJ-Bo!tDhxRuO`4zYpoVqtz?=t7)6^Sz4lqT%A!R)+D6q*=G`Ght{hgI zG#@^_OaE6J@#5K-7*Bo{@vz8{lAx_!wCR6b`+nD=PUQ^8g&+PfE#UhrXC(E?P{uZf zABn$LO1W_ZFAAjDn*Q(xE##>yndh~pz@+~z~UD>^b2}>W5z14 zQs^SpV0~_&=ZOR+Ik;Ks_ct~^(*goaSZzE_EIn>;y{68rmY(f)ruQ6IekPoi@sK1h z?d=^G&@CBM4k*&|fYt+&nP!D(0oDzap2*m%je~>BSpTc0VS{+;&# diff --git a/artifacts/redeem-title-dpr-1.png b/artifacts/redeem-title-dpr-1.png index 69768474e540a700b71c17e797bc609c4686f05d..9f70bb5690515f4c230ccfb6346ce11627ab9a8d 100644 GIT binary patch literal 14854 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 E0Mk0H%m4rY literal 15668 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 Y*B%1E=Y(*2;UsuU^6Kx(WIuoZA5m(X;s5{u diff --git a/artifacts/v24-prices.json b/artifacts/v24-prices.json index 4d108f0..0d6f8e8 100644 --- a/artifacts/v24-prices.json +++ b/artifacts/v24-prices.json @@ -1 +1 @@ -{"result":"PASS","results":[{"width":1440,"values":{"bask-pool":"$0.96","bask-nav":"$0.97","item-pool":"$0.000434"}},{"width":375,"values":{"bask-pool":"$0.96","bask-nav":"$0.97","item-pool":"$0.000434"}}],"checks":["two pool buttons select either card","Claim/Withdraw on both card kinds","all eight routes show shared prices","failed feeds clear prices; refresh recovers","no wallet available; only read-only RPC methods","no idle polling; 1440 and 375px fit"]} +{"result":"PASS","results":[{"width":1440,"values":{"bask-pool":"$0.96","bask-nav":"$0.97","item-pool":"$0.000245"}},{"width":375,"values":{"bask-pool":"$0.96","bask-nav":"$0.97","item-pool":"$0.000245"}}],"checks":["two pool buttons select either card","Claim/Withdraw on both card kinds","all eight routes show shared prices","failed feeds clear prices; refresh recovers","no wallet available; only read-only RPC methods","no idle polling; 1440 and 375px fit"]} diff --git a/artifacts/validation.md b/artifacts/validation.md index 93dd998..7657d2c 100644 --- a/artifacts/validation.md +++ b/artifacts/validation.md @@ -1,3 +1,34 @@ +# 2026-10-20 — v25 preparation: Vault Overview/Stats child tabs and the Earn phone corner + +Base `66bf0100cbc5b333b6184cd9b87071886d04742e` (the v24 delivery). Prepared on a fresh clone of that commit with the cumulative patch applied, then the inherited gates narrowly extended as described in the v25 section of `web/validation/README.md`. Static and read-only checks only: no fork walk, wallet send, review-agent pass, upload or payment ran in this preparation. Historical fork records remain v23 evidence. External Playwright (Chromium and WebKit) ran the browser checks; `BASKET_BASELINE_DIST` pointed at the untouched v24 export. + +| Command | Result | +| --- | --- | +| `npm ci` | PASS; existing dependency audit findings remain | +| `npm run typecheck` | PASS | +| `npm run build` | PASS; existing large-chunk advisory remains | +| `node scripts/check-vault-stats-source.mjs` | PASS: 29 original sources byte-identical (main.tsx included), Vault.tsx exactly three pieces, styles.css exactly two replacements plus the pinned appended stats block, two new sources, 31 dependency/configuration/check files unchanged, the four narrowly extended check scripts listed | +| `npx tsx scripts/check-item.ts` | PASS 71 | +| `npx tsx scripts/check-prices.tsx` | PASS 15 | +| `node scripts/check-prices-live.mjs` | PASS eight routes at 1440/375; observed BASK pool $0.96, NAV $0.97, ITEM $0.000249 (observations, nothing embedded) | +| `node scripts/check-calldata.mjs`, also with `BASKET_ITEM_FINAL=1` | PASS after exact v25 then v24 restoration: 17 actions, 51 encodings, 15 null-slot guards, 255 refusals; vault 496 identical / 1,773 jointly refused; the two new sources pinned by digest and name-scanned | +| `npx tsx scripts/check-tokenomics.tsx`, `node scripts/check-tokenomics-live.mjs`, `npx tsx scripts/check-bask-guide.tsx` | PASS | +| `npm run validate` | PASS; block 93,056,947 | +| `node scripts/check-preservation.mjs`, `npx tsx scripts/check-interface.ts` | PASS | +| `node scripts/check-art.mjs` | PASS 78 hashes / 56 layout checks in both engines | +| `node scripts/check-motion.mjs` | PASS 39; native Windows display scaling not verified | +| `node scripts/inspect-export.mjs` | PASS 24 page/viewport checks | +| `node scripts/check-guards.mjs` | PASS four refusals, zero sends | +| `node scripts/check-fixes.mjs` | PASS 44 | +| `node scripts/check-visibility.mjs` | PASS: 48 previous first-screen elements unchanged against the v24 export with the price strip compared rather than hidden; on Vault the tab bar (52 px, 20 px gap, two 44 px tabs, Overview selected, Stats panel hidden, no report mounted) measured and then hidden; the three title panels equal across the panel | +| `node scripts/check-bundle.mjs` | PASS, under the 8,388,608-byte cap (its JSON records the exact count) | + +Export: four changed files (index JS, index CSS, index.html and the CCIP chunk's import); the other 45 of 49 files are byte-identical to the base. + +Two differences from the first local build of this feature, both required by the inherited checks and without visual change: the stats styles are appended to `styles.css` under one marker instead of a separate stylesheet imported by a component (the interface check loads `Vault.tsx` in Node, which cannot import CSS), and the endpoint constant reads `import.meta.env` through optional chaining (Node has no `env`). + +A lean pre-release review (three independent reviewers; each finding then challenged by a second agent) added five defensive bounds to the two new sources, with no visual change: the declared response size is refused above 2 MiB before the body is read, a report with more than 50,000 elements is refused at validation, a `` is kept only inside SVG, children are passed as one keyed array rather than spread, and a rendering failure shows a notice instead of unmounting the page. It also added the export pin to `check-vault-stats-source.mjs`: the one built module script must resolve the stats endpoint through the pinned fallback exactly once, with no override value, no other Railway address and no env file under `web/`. Recorded without change on the monitor side: an invalid `PUBLIC_VAULT_STATS_ORIGINS` value would stop the monitor at start-up, and the adapter does not cache a failed render. + # 2026-10-19 — contributor rerun of the exact v24 patch This entry records this workspace's actual results. Earlier entries and supplied reports remain intact and are not fresh results from this run. The website and export are prepared; the required art suite is **incomplete because WebKit is unavailable**. Every other requested check passed. No assertion, runtime source, drawing, layout or website wording was changed beyond the supplied patch. diff --git a/dist/assets/ccip-BvpA7xm5.js b/dist/assets/ccip-DVSpff_c.js similarity index 97% rename from dist/assets/ccip-BvpA7xm5.js rename to dist/assets/ccip-DVSpff_c.js index 3e85b01..03f257b 100644 --- a/dist/assets/ccip-BvpA7xm5.js +++ b/dist/assets/ccip-DVSpff_c.js @@ -1 +1 @@ -import{B as p,g as m,s as w,d as k,i as b,l as L,a as O,c as R,b as E,e as x,H as y,f as M}from"./index-CYI-6Qll.js";class S extends p{constructor({callbackSelector:s,cause:e,data:o,extraData:n,sender:c,urls:t}){super(e.shortMessage||"An error occurred while fetching for an offchain result.",{cause:e,metaMessages:[...e.metaMessages||[],e.metaMessages?.length?"":[],"Offchain Gateway Call:",t&&[" Gateway URL(s):",...t.map(i=>` ${m(i)}`)],` Sender: ${c}`,` Data: ${o}`,` Callback selector: ${s}`,` Extra data: ${n}`].flat(),name:"OffchainLookupError"})}}class $ extends p{constructor({result:s,url:e}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${m(e)}`,`Response: ${w(s)}`],name:"OffchainLookupResponseMalformedError"})}}class q extends p{constructor({sender:s,to:e}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${e}`,`OffchainLookup sender address: ${s}`],name:"OffchainLookupSenderMismatchError"})}}const A="0x556f1830",T={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]};async function D(d,{blockNumber:s,blockTag:e,data:o,to:n}){const{args:c}=k({data:o,abi:[T]}),[t,i,l,a,r]=c,{ccipRead:f}=d,h=f&&typeof f?.request=="function"?f.request:C;try{if(!b(n,t))throw new q({sender:t,to:n});const u=i.includes(L)?await O({data:l,ccipRequest:h}):await h({data:l,sender:t,urls:i}),{data:g}=await R(d,{blockNumber:s,blockTag:e,data:E([a,x([{type:"bytes"},{type:"bytes"}],[u,r])]),to:n});return g}catch(u){throw new S({callbackSelector:a,cause:u,data:o,extraData:r,sender:t,urls:i})}}async function C({data:d,sender:s,urls:e}){let o=new Error("An unknown error occurred.");for(let n=0;n<e.length;n++){const c=e[n],t=c.includes("{data}")?"GET":"POST",i=t==="POST"?{data:d,sender:s}:void 0,l=t==="POST"?{"Content-Type":"application/json"}:{};try{const a=await fetch(c.replace("{sender}",s.toLowerCase()).replace("{data}",d),{body:JSON.stringify(i),headers:l,method:t});let r;if(a.headers.get("Content-Type")?.startsWith("application/json")?r=(await a.json()).data:r=await a.text(),!a.ok){o=new y({body:i,details:r?.error?w(r.error):a.statusText,headers:a.headers,status:a.status,url:c});continue}if(!M(r)){o=new $({result:r,url:c});continue}return r}catch(a){o=new y({body:i,details:a.message,url:c})}}throw o}export{C as ccipRequest,D as offchainLookup,T as offchainLookupAbiItem,A as offchainLookupSignature}; +import{B as p,g as m,s as w,d as k,i as b,l as L,a as O,c as R,b as E,e as x,H as y,f as M}from"./index-BizfU3zC.js";class S extends p{constructor({callbackSelector:s,cause:e,data:o,extraData:n,sender:c,urls:t}){super(e.shortMessage||"An error occurred while fetching for an offchain result.",{cause:e,metaMessages:[...e.metaMessages||[],e.metaMessages?.length?"":[],"Offchain Gateway Call:",t&&[" Gateway URL(s):",...t.map(i=>` ${m(i)}`)],` Sender: ${c}`,` Data: ${o}`,` Callback selector: ${s}`,` Extra data: ${n}`].flat(),name:"OffchainLookupError"})}}class $ extends p{constructor({result:s,url:e}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${m(e)}`,`Response: ${w(s)}`],name:"OffchainLookupResponseMalformedError"})}}class q extends p{constructor({sender:s,to:e}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${e}`,`OffchainLookup sender address: ${s}`],name:"OffchainLookupSenderMismatchError"})}}const A="0x556f1830",T={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]};async function D(d,{blockNumber:s,blockTag:e,data:o,to:n}){const{args:c}=k({data:o,abi:[T]}),[t,i,l,a,r]=c,{ccipRead:f}=d,h=f&&typeof f?.request=="function"?f.request:C;try{if(!b(n,t))throw new q({sender:t,to:n});const u=i.includes(L)?await O({data:l,ccipRequest:h}):await h({data:l,sender:t,urls:i}),{data:g}=await R(d,{blockNumber:s,blockTag:e,data:E([a,x([{type:"bytes"},{type:"bytes"}],[u,r])]),to:n});return g}catch(u){throw new S({callbackSelector:a,cause:u,data:o,extraData:r,sender:t,urls:i})}}async function C({data:d,sender:s,urls:e}){let o=new Error("An unknown error occurred.");for(let n=0;n<e.length;n++){const c=e[n],t=c.includes("{data}")?"GET":"POST",i=t==="POST"?{data:d,sender:s}:void 0,l=t==="POST"?{"Content-Type":"application/json"}:{};try{const a=await fetch(c.replace("{sender}",s.toLowerCase()).replace("{data}",d),{body:JSON.stringify(i),headers:l,method:t});let r;if(a.headers.get("Content-Type")?.startsWith("application/json")?r=(await a.json()).data:r=await a.text(),!a.ok){o=new y({body:i,details:r?.error?w(r.error):a.statusText,headers:a.headers,status:a.status,url:c});continue}if(!M(r)){o=new $({result:r,url:c});continue}return r}catch(a){o=new y({body:i,details:a.message,url:c})}}throw o}export{C as ccipRequest,D as offchainLookup,T as offchainLookupAbiItem,A as offchainLookupSignature}; diff --git a/dist/assets/index-CYI-6Qll.js b/dist/assets/index-BizfU3zC.js similarity index 62% rename from dist/assets/index-CYI-6Qll.js rename to dist/assets/index-BizfU3zC.js index 2ef2fcd..2d808ae 100644 --- a/dist/assets/index-CYI-6Qll.js +++ b/dist/assets/index-BizfU3zC.js @@ -6,7 +6,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var g1;function wx(){if(g1)return So;g1=1;var e=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function s(r,l,u){var f=null;if(u!==void 0&&(f=""+u),l.key!==void 0&&(f=""+l.key),"key"in l){u={};for(var p in l)p!=="key"&&(u[p]=l[p])}else u=l;return l=u.ref,{$$typeof:e,type:r,key:f,ref:l!==void 0?l:null,props:u}}return So.Fragment=n,So.jsx=s,So.jsxs=s,So}var v1;function xx(){return v1||(v1=1,Jf.exports=wx()),Jf.exports}var c=xx(),Wf={exports:{}},Be={};/** + */var g1;function wx(){if(g1)return So;g1=1;var e=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function s(r,l,u){var f=null;if(u!==void 0&&(f=""+u),l.key!==void 0&&(f=""+l.key),"key"in l){u={};for(var m in l)m!=="key"&&(u[m]=l[m])}else u=l;return l=u.ref,{$$typeof:e,type:r,key:f,ref:l!==void 0?l:null,props:u}}return So.Fragment=n,So.jsx=s,So.jsxs=s,So}var v1;function xx(){return v1||(v1=1,Jf.exports=wx()),Jf.exports}var c=xx(),Wf={exports:{}},Be={};/** * @license React * react.production.js * @@ -14,7 +14,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var w1;function Sx(){if(w1)return Be;w1=1;var e=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),u=Symbol.for("react.consumer"),f=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),y=Symbol.for("react.memo"),b=Symbol.for("react.lazy"),w=Symbol.for("react.activity"),g=Symbol.iterator;function S(k){return k===null||typeof k!="object"?null:(k=g&&k[g]||k["@@iterator"],typeof k=="function"?k:null)}var T={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},x=Object.assign,j={};function C(k,P,ie){this.props=k,this.context=P,this.refs=j,this.updater=ie||T}C.prototype.isReactComponent={},C.prototype.setState=function(k,P){if(typeof k!="object"&&typeof k!="function"&&k!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,k,P,"setState")},C.prototype.forceUpdate=function(k){this.updater.enqueueForceUpdate(this,k,"forceUpdate")};function G(){}G.prototype=C.prototype;function O(k,P,ie){this.props=k,this.context=P,this.refs=j,this.updater=ie||T}var B=O.prototype=new G;B.constructor=O,x(B,C.prototype),B.isPureReactComponent=!0;var A=Array.isArray;function _(){}var M={H:null,A:null,T:null,S:null},Z=Object.prototype.hasOwnProperty;function ee(k,P,ie){var H=ie.ref;return{$$typeof:e,type:k,key:P,ref:H!==void 0?H:null,props:ie}}function J(k,P){return ee(k.type,P,k.props)}function V(k){return typeof k=="object"&&k!==null&&k.$$typeof===e}function X(k){var P={"=":"=0",":":"=2"};return"$"+k.replace(/[=:]/g,function(ie){return P[ie]})}var oe=/\/+/g;function he(k,P){return typeof k=="object"&&k!==null&&k.key!=null?X(""+k.key):P.toString(36)}function ae(k){switch(k.status){case"fulfilled":return k.value;case"rejected":throw k.reason;default:switch(typeof k.status=="string"?k.then(_,_):(k.status="pending",k.then(function(P){k.status==="pending"&&(k.status="fulfilled",k.value=P)},function(P){k.status==="pending"&&(k.status="rejected",k.reason=P)})),k.status){case"fulfilled":return k.value;case"rejected":throw k.reason}}throw k}function R(k,P,ie,H,W){var ue=typeof k;(ue==="undefined"||ue==="boolean")&&(k=null);var pe=!1;if(k===null)pe=!0;else switch(ue){case"bigint":case"string":case"number":pe=!0;break;case"object":switch(k.$$typeof){case e:case n:pe=!0;break;case b:return pe=k._init,R(pe(k._payload),P,ie,H,W)}}if(pe)return W=W(k),pe=H===""?"."+he(k,0):H,A(W)?(ie="",pe!=null&&(ie=pe.replace(oe,"$&/")+"/"),R(W,P,ie,"",function(Oe){return Oe})):W!=null&&(V(W)&&(W=J(W,ie+(W.key==null||k&&k.key===W.key?"":(""+W.key).replace(oe,"$&/")+"/")+pe)),P.push(W)),1;pe=0;var we=H===""?".":H+":";if(A(k))for(var me=0;me<k.length;me++)H=k[me],ue=we+he(H,me),pe+=R(H,P,ie,ue,W);else if(me=S(k),typeof me=="function")for(k=me.call(k),me=0;!(H=k.next()).done;)H=H.value,ue=we+he(H,me++),pe+=R(H,P,ie,ue,W);else if(ue==="object"){if(typeof k.then=="function")return R(ae(k),P,ie,H,W);throw P=String(k),Error("Objects are not valid as a React child (found: "+(P==="[object Object]"?"object with keys {"+Object.keys(k).join(", ")+"}":P)+"). If you meant to render a collection of children, use an array instead.")}return pe}function K(k,P,ie){if(k==null)return k;var H=[],W=0;return R(k,H,"","",function(ue){return P.call(ie,ue,W++)}),H}function Y(k){if(k._status===-1){var P=k._result;P=P(),P.then(function(ie){(k._status===0||k._status===-1)&&(k._status=1,k._result=ie)},function(ie){(k._status===0||k._status===-1)&&(k._status=2,k._result=ie)}),k._status===-1&&(k._status=0,k._result=P)}if(k._status===1)return k._result.default;throw k._result}var se=typeof reportError=="function"?reportError:function(k){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var P=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof k=="object"&&k!==null&&typeof k.message=="string"?String(k.message):String(k),error:k});if(!window.dispatchEvent(P))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",k);return}console.error(k)},le={map:K,forEach:function(k,P,ie){K(k,function(){P.apply(this,arguments)},ie)},count:function(k){var P=0;return K(k,function(){P++}),P},toArray:function(k){return K(k,function(P){return P})||[]},only:function(k){if(!V(k))throw Error("React.Children.only expected to receive a single React element child.");return k}};return Be.Activity=w,Be.Children=le,Be.Component=C,Be.Fragment=s,Be.Profiler=l,Be.PureComponent=O,Be.StrictMode=r,Be.Suspense=m,Be.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=M,Be.__COMPILER_RUNTIME={__proto__:null,c:function(k){return M.H.useMemoCache(k)}},Be.cache=function(k){return function(){return k.apply(null,arguments)}},Be.cacheSignal=function(){return null},Be.cloneElement=function(k,P,ie){if(k==null)throw Error("The argument must be a React element, but you passed "+k+".");var H=x({},k.props),W=k.key;if(P!=null)for(ue in P.key!==void 0&&(W=""+P.key),P)!Z.call(P,ue)||ue==="key"||ue==="__self"||ue==="__source"||ue==="ref"&&P.ref===void 0||(H[ue]=P[ue]);var ue=arguments.length-2;if(ue===1)H.children=ie;else if(1<ue){for(var pe=Array(ue),we=0;we<ue;we++)pe[we]=arguments[we+2];H.children=pe}return ee(k.type,W,H)},Be.createContext=function(k){return k={$$typeof:f,_currentValue:k,_currentValue2:k,_threadCount:0,Provider:null,Consumer:null},k.Provider=k,k.Consumer={$$typeof:u,_context:k},k},Be.createElement=function(k,P,ie){var H,W={},ue=null;if(P!=null)for(H in P.key!==void 0&&(ue=""+P.key),P)Z.call(P,H)&&H!=="key"&&H!=="__self"&&H!=="__source"&&(W[H]=P[H]);var pe=arguments.length-2;if(pe===1)W.children=ie;else if(1<pe){for(var we=Array(pe),me=0;me<pe;me++)we[me]=arguments[me+2];W.children=we}if(k&&k.defaultProps)for(H in pe=k.defaultProps,pe)W[H]===void 0&&(W[H]=pe[H]);return ee(k,ue,W)},Be.createRef=function(){return{current:null}},Be.forwardRef=function(k){return{$$typeof:p,render:k}},Be.isValidElement=V,Be.lazy=function(k){return{$$typeof:b,_payload:{_status:-1,_result:k},_init:Y}},Be.memo=function(k,P){return{$$typeof:y,type:k,compare:P===void 0?null:P}},Be.startTransition=function(k){var P=M.T,ie={};M.T=ie;try{var H=k(),W=M.S;W!==null&&W(ie,H),typeof H=="object"&&H!==null&&typeof H.then=="function"&&H.then(_,se)}catch(ue){se(ue)}finally{P!==null&&ie.types!==null&&(P.types=ie.types),M.T=P}},Be.unstable_useCacheRefresh=function(){return M.H.useCacheRefresh()},Be.use=function(k){return M.H.use(k)},Be.useActionState=function(k,P,ie){return M.H.useActionState(k,P,ie)},Be.useCallback=function(k,P){return M.H.useCallback(k,P)},Be.useContext=function(k){return M.H.useContext(k)},Be.useDebugValue=function(){},Be.useDeferredValue=function(k,P){return M.H.useDeferredValue(k,P)},Be.useEffect=function(k,P){return M.H.useEffect(k,P)},Be.useEffectEvent=function(k){return M.H.useEffectEvent(k)},Be.useId=function(){return M.H.useId()},Be.useImperativeHandle=function(k,P,ie){return M.H.useImperativeHandle(k,P,ie)},Be.useInsertionEffect=function(k,P){return M.H.useInsertionEffect(k,P)},Be.useLayoutEffect=function(k,P){return M.H.useLayoutEffect(k,P)},Be.useMemo=function(k,P){return M.H.useMemo(k,P)},Be.useOptimistic=function(k,P){return M.H.useOptimistic(k,P)},Be.useReducer=function(k,P,ie){return M.H.useReducer(k,P,ie)},Be.useRef=function(k){return M.H.useRef(k)},Be.useState=function(k){return M.H.useState(k)},Be.useSyncExternalStore=function(k,P,ie){return M.H.useSyncExternalStore(k,P,ie)},Be.useTransition=function(){return M.H.useTransition()},Be.version="19.2.0",Be}var x1;function kh(){return x1||(x1=1,Wf.exports=Sx()),Wf.exports}var D=kh(),e0={exports:{}},Eo={},t0={exports:{}},n0={};/** + */var w1;function Sx(){if(w1)return Be;w1=1;var e=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),u=Symbol.for("react.consumer"),f=Symbol.for("react.context"),m=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),y=Symbol.for("react.memo"),b=Symbol.for("react.lazy"),w=Symbol.for("react.activity"),g=Symbol.iterator;function S(k){return k===null||typeof k!="object"?null:(k=g&&k[g]||k["@@iterator"],typeof k=="function"?k:null)}var T={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},x=Object.assign,j={};function M(k,P,ie){this.props=k,this.context=P,this.refs=j,this.updater=ie||T}M.prototype.isReactComponent={},M.prototype.setState=function(k,P){if(typeof k!="object"&&typeof k!="function"&&k!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,k,P,"setState")},M.prototype.forceUpdate=function(k){this.updater.enqueueForceUpdate(this,k,"forceUpdate")};function I(){}I.prototype=M.prototype;function O(k,P,ie){this.props=k,this.context=P,this.refs=j,this.updater=ie||T}var B=O.prototype=new I;B.constructor=O,x(B,M.prototype),B.isPureReactComponent=!0;var A=Array.isArray;function z(){}var C={H:null,A:null,T:null,S:null},Z=Object.prototype.hasOwnProperty;function ee(k,P,ie){var H=ie.ref;return{$$typeof:e,type:k,key:P,ref:H!==void 0?H:null,props:ie}}function J(k,P){return ee(k.type,P,k.props)}function K(k){return typeof k=="object"&&k!==null&&k.$$typeof===e}function X(k){var P={"=":"=0",":":"=2"};return"$"+k.replace(/[=:]/g,function(ie){return P[ie]})}var oe=/\/+/g;function he(k,P){return typeof k=="object"&&k!==null&&k.key!=null?X(""+k.key):P.toString(36)}function ae(k){switch(k.status){case"fulfilled":return k.value;case"rejected":throw k.reason;default:switch(typeof k.status=="string"?k.then(z,z):(k.status="pending",k.then(function(P){k.status==="pending"&&(k.status="fulfilled",k.value=P)},function(P){k.status==="pending"&&(k.status="rejected",k.reason=P)})),k.status){case"fulfilled":return k.value;case"rejected":throw k.reason}}throw k}function R(k,P,ie,H,W){var ue=typeof k;(ue==="undefined"||ue==="boolean")&&(k=null);var pe=!1;if(k===null)pe=!0;else switch(ue){case"bigint":case"string":case"number":pe=!0;break;case"object":switch(k.$$typeof){case e:case n:pe=!0;break;case b:return pe=k._init,R(pe(k._payload),P,ie,H,W)}}if(pe)return W=W(k),pe=H===""?"."+he(k,0):H,A(W)?(ie="",pe!=null&&(ie=pe.replace(oe,"$&/")+"/"),R(W,P,ie,"",function(Oe){return Oe})):W!=null&&(K(W)&&(W=J(W,ie+(W.key==null||k&&k.key===W.key?"":(""+W.key).replace(oe,"$&/")+"/")+pe)),P.push(W)),1;pe=0;var we=H===""?".":H+":";if(A(k))for(var me=0;me<k.length;me++)H=k[me],ue=we+he(H,me),pe+=R(H,P,ie,ue,W);else if(me=S(k),typeof me=="function")for(k=me.call(k),me=0;!(H=k.next()).done;)H=H.value,ue=we+he(H,me++),pe+=R(H,P,ie,ue,W);else if(ue==="object"){if(typeof k.then=="function")return R(ae(k),P,ie,H,W);throw P=String(k),Error("Objects are not valid as a React child (found: "+(P==="[object Object]"?"object with keys {"+Object.keys(k).join(", ")+"}":P)+"). If you meant to render a collection of children, use an array instead.")}return pe}function V(k,P,ie){if(k==null)return k;var H=[],W=0;return R(k,H,"","",function(ue){return P.call(ie,ue,W++)}),H}function Y(k){if(k._status===-1){var P=k._result;P=P(),P.then(function(ie){(k._status===0||k._status===-1)&&(k._status=1,k._result=ie)},function(ie){(k._status===0||k._status===-1)&&(k._status=2,k._result=ie)}),k._status===-1&&(k._status=0,k._result=P)}if(k._status===1)return k._result.default;throw k._result}var se=typeof reportError=="function"?reportError:function(k){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var P=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof k=="object"&&k!==null&&typeof k.message=="string"?String(k.message):String(k),error:k});if(!window.dispatchEvent(P))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",k);return}console.error(k)},le={map:V,forEach:function(k,P,ie){V(k,function(){P.apply(this,arguments)},ie)},count:function(k){var P=0;return V(k,function(){P++}),P},toArray:function(k){return V(k,function(P){return P})||[]},only:function(k){if(!K(k))throw Error("React.Children.only expected to receive a single React element child.");return k}};return Be.Activity=w,Be.Children=le,Be.Component=M,Be.Fragment=s,Be.Profiler=l,Be.PureComponent=O,Be.StrictMode=r,Be.Suspense=p,Be.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=C,Be.__COMPILER_RUNTIME={__proto__:null,c:function(k){return C.H.useMemoCache(k)}},Be.cache=function(k){return function(){return k.apply(null,arguments)}},Be.cacheSignal=function(){return null},Be.cloneElement=function(k,P,ie){if(k==null)throw Error("The argument must be a React element, but you passed "+k+".");var H=x({},k.props),W=k.key;if(P!=null)for(ue in P.key!==void 0&&(W=""+P.key),P)!Z.call(P,ue)||ue==="key"||ue==="__self"||ue==="__source"||ue==="ref"&&P.ref===void 0||(H[ue]=P[ue]);var ue=arguments.length-2;if(ue===1)H.children=ie;else if(1<ue){for(var pe=Array(ue),we=0;we<ue;we++)pe[we]=arguments[we+2];H.children=pe}return ee(k.type,W,H)},Be.createContext=function(k){return k={$$typeof:f,_currentValue:k,_currentValue2:k,_threadCount:0,Provider:null,Consumer:null},k.Provider=k,k.Consumer={$$typeof:u,_context:k},k},Be.createElement=function(k,P,ie){var H,W={},ue=null;if(P!=null)for(H in P.key!==void 0&&(ue=""+P.key),P)Z.call(P,H)&&H!=="key"&&H!=="__self"&&H!=="__source"&&(W[H]=P[H]);var pe=arguments.length-2;if(pe===1)W.children=ie;else if(1<pe){for(var we=Array(pe),me=0;me<pe;me++)we[me]=arguments[me+2];W.children=we}if(k&&k.defaultProps)for(H in pe=k.defaultProps,pe)W[H]===void 0&&(W[H]=pe[H]);return ee(k,ue,W)},Be.createRef=function(){return{current:null}},Be.forwardRef=function(k){return{$$typeof:m,render:k}},Be.isValidElement=K,Be.lazy=function(k){return{$$typeof:b,_payload:{_status:-1,_result:k},_init:Y}},Be.memo=function(k,P){return{$$typeof:y,type:k,compare:P===void 0?null:P}},Be.startTransition=function(k){var P=C.T,ie={};C.T=ie;try{var H=k(),W=C.S;W!==null&&W(ie,H),typeof H=="object"&&H!==null&&typeof H.then=="function"&&H.then(z,se)}catch(ue){se(ue)}finally{P!==null&&ie.types!==null&&(P.types=ie.types),C.T=P}},Be.unstable_useCacheRefresh=function(){return C.H.useCacheRefresh()},Be.use=function(k){return C.H.use(k)},Be.useActionState=function(k,P,ie){return C.H.useActionState(k,P,ie)},Be.useCallback=function(k,P){return C.H.useCallback(k,P)},Be.useContext=function(k){return C.H.useContext(k)},Be.useDebugValue=function(){},Be.useDeferredValue=function(k,P){return C.H.useDeferredValue(k,P)},Be.useEffect=function(k,P){return C.H.useEffect(k,P)},Be.useEffectEvent=function(k){return C.H.useEffectEvent(k)},Be.useId=function(){return C.H.useId()},Be.useImperativeHandle=function(k,P,ie){return C.H.useImperativeHandle(k,P,ie)},Be.useInsertionEffect=function(k,P){return C.H.useInsertionEffect(k,P)},Be.useLayoutEffect=function(k,P){return C.H.useLayoutEffect(k,P)},Be.useMemo=function(k,P){return C.H.useMemo(k,P)},Be.useOptimistic=function(k,P){return C.H.useOptimistic(k,P)},Be.useReducer=function(k,P,ie){return C.H.useReducer(k,P,ie)},Be.useRef=function(k){return C.H.useRef(k)},Be.useState=function(k){return C.H.useState(k)},Be.useSyncExternalStore=function(k,P,ie){return C.H.useSyncExternalStore(k,P,ie)},Be.useTransition=function(){return C.H.useTransition()},Be.version="19.2.0",Be}var x1;function kh(){return x1||(x1=1,Wf.exports=Sx()),Wf.exports}var D=kh(),e0={exports:{}},Eo={},t0={exports:{}},n0={};/** * @license React * scheduler.production.js * @@ -22,7 +22,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var S1;function Ex(){return S1||(S1=1,(function(e){function n(R,K){var Y=R.length;R.push(K);e:for(;0<Y;){var se=Y-1>>>1,le=R[se];if(0<l(le,K))R[se]=K,R[Y]=le,Y=se;else break e}}function s(R){return R.length===0?null:R[0]}function r(R){if(R.length===0)return null;var K=R[0],Y=R.pop();if(Y!==K){R[0]=Y;e:for(var se=0,le=R.length,k=le>>>1;se<k;){var P=2*(se+1)-1,ie=R[P],H=P+1,W=R[H];if(0>l(ie,Y))H<le&&0>l(W,ie)?(R[se]=W,R[H]=Y,se=H):(R[se]=ie,R[P]=Y,se=P);else if(H<le&&0>l(W,Y))R[se]=W,R[H]=Y,se=H;else break e}}return K}function l(R,K){var Y=R.sortIndex-K.sortIndex;return Y!==0?Y:R.id-K.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var u=performance;e.unstable_now=function(){return u.now()}}else{var f=Date,p=f.now();e.unstable_now=function(){return f.now()-p}}var m=[],y=[],b=1,w=null,g=3,S=!1,T=!1,x=!1,j=!1,C=typeof setTimeout=="function"?setTimeout:null,G=typeof clearTimeout=="function"?clearTimeout:null,O=typeof setImmediate<"u"?setImmediate:null;function B(R){for(var K=s(y);K!==null;){if(K.callback===null)r(y);else if(K.startTime<=R)r(y),K.sortIndex=K.expirationTime,n(m,K);else break;K=s(y)}}function A(R){if(x=!1,B(R),!T)if(s(m)!==null)T=!0,_||(_=!0,X());else{var K=s(y);K!==null&&ae(A,K.startTime-R)}}var _=!1,M=-1,Z=5,ee=-1;function J(){return j?!0:!(e.unstable_now()-ee<Z)}function V(){if(j=!1,_){var R=e.unstable_now();ee=R;var K=!0;try{e:{T=!1,x&&(x=!1,G(M),M=-1),S=!0;var Y=g;try{t:{for(B(R),w=s(m);w!==null&&!(w.expirationTime>R&&J());){var se=w.callback;if(typeof se=="function"){w.callback=null,g=w.priorityLevel;var le=se(w.expirationTime<=R);if(R=e.unstable_now(),typeof le=="function"){w.callback=le,B(R),K=!0;break t}w===s(m)&&r(m),B(R)}else r(m);w=s(m)}if(w!==null)K=!0;else{var k=s(y);k!==null&&ae(A,k.startTime-R),K=!1}}break e}finally{w=null,g=Y,S=!1}K=void 0}}finally{K?X():_=!1}}}var X;if(typeof O=="function")X=function(){O(V)};else if(typeof MessageChannel<"u"){var oe=new MessageChannel,he=oe.port2;oe.port1.onmessage=V,X=function(){he.postMessage(null)}}else X=function(){C(V,0)};function ae(R,K){M=C(function(){R(e.unstable_now())},K)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(R){R.callback=null},e.unstable_forceFrameRate=function(R){0>R||125<R?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Z=0<R?Math.floor(1e3/R):5},e.unstable_getCurrentPriorityLevel=function(){return g},e.unstable_next=function(R){switch(g){case 1:case 2:case 3:var K=3;break;default:K=g}var Y=g;g=K;try{return R()}finally{g=Y}},e.unstable_requestPaint=function(){j=!0},e.unstable_runWithPriority=function(R,K){switch(R){case 1:case 2:case 3:case 4:case 5:break;default:R=3}var Y=g;g=R;try{return K()}finally{g=Y}},e.unstable_scheduleCallback=function(R,K,Y){var se=e.unstable_now();switch(typeof Y=="object"&&Y!==null?(Y=Y.delay,Y=typeof Y=="number"&&0<Y?se+Y:se):Y=se,R){case 1:var le=-1;break;case 2:le=250;break;case 5:le=1073741823;break;case 4:le=1e4;break;default:le=5e3}return le=Y+le,R={id:b++,callback:K,priorityLevel:R,startTime:Y,expirationTime:le,sortIndex:-1},Y>se?(R.sortIndex=Y,n(y,R),s(m)===null&&R===s(y)&&(x?(G(M),M=-1):x=!0,ae(A,Y-se))):(R.sortIndex=le,n(m,R),T||S||(T=!0,_||(_=!0,X()))),R},e.unstable_shouldYield=J,e.unstable_wrapCallback=function(R){var K=g;return function(){var Y=g;g=K;try{return R.apply(this,arguments)}finally{g=Y}}}})(n0)),n0}var E1;function Ax(){return E1||(E1=1,t0.exports=Ex()),t0.exports}var a0={exports:{}},Kt={};/** + */var S1;function Ex(){return S1||(S1=1,(function(e){function n(R,V){var Y=R.length;R.push(V);e:for(;0<Y;){var se=Y-1>>>1,le=R[se];if(0<l(le,V))R[se]=V,R[Y]=le,Y=se;else break e}}function s(R){return R.length===0?null:R[0]}function r(R){if(R.length===0)return null;var V=R[0],Y=R.pop();if(Y!==V){R[0]=Y;e:for(var se=0,le=R.length,k=le>>>1;se<k;){var P=2*(se+1)-1,ie=R[P],H=P+1,W=R[H];if(0>l(ie,Y))H<le&&0>l(W,ie)?(R[se]=W,R[H]=Y,se=H):(R[se]=ie,R[P]=Y,se=P);else if(H<le&&0>l(W,Y))R[se]=W,R[H]=Y,se=H;else break e}}return V}function l(R,V){var Y=R.sortIndex-V.sortIndex;return Y!==0?Y:R.id-V.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var u=performance;e.unstable_now=function(){return u.now()}}else{var f=Date,m=f.now();e.unstable_now=function(){return f.now()-m}}var p=[],y=[],b=1,w=null,g=3,S=!1,T=!1,x=!1,j=!1,M=typeof setTimeout=="function"?setTimeout:null,I=typeof clearTimeout=="function"?clearTimeout:null,O=typeof setImmediate<"u"?setImmediate:null;function B(R){for(var V=s(y);V!==null;){if(V.callback===null)r(y);else if(V.startTime<=R)r(y),V.sortIndex=V.expirationTime,n(p,V);else break;V=s(y)}}function A(R){if(x=!1,B(R),!T)if(s(p)!==null)T=!0,z||(z=!0,X());else{var V=s(y);V!==null&&ae(A,V.startTime-R)}}var z=!1,C=-1,Z=5,ee=-1;function J(){return j?!0:!(e.unstable_now()-ee<Z)}function K(){if(j=!1,z){var R=e.unstable_now();ee=R;var V=!0;try{e:{T=!1,x&&(x=!1,I(C),C=-1),S=!0;var Y=g;try{t:{for(B(R),w=s(p);w!==null&&!(w.expirationTime>R&&J());){var se=w.callback;if(typeof se=="function"){w.callback=null,g=w.priorityLevel;var le=se(w.expirationTime<=R);if(R=e.unstable_now(),typeof le=="function"){w.callback=le,B(R),V=!0;break t}w===s(p)&&r(p),B(R)}else r(p);w=s(p)}if(w!==null)V=!0;else{var k=s(y);k!==null&&ae(A,k.startTime-R),V=!1}}break e}finally{w=null,g=Y,S=!1}V=void 0}}finally{V?X():z=!1}}}var X;if(typeof O=="function")X=function(){O(K)};else if(typeof MessageChannel<"u"){var oe=new MessageChannel,he=oe.port2;oe.port1.onmessage=K,X=function(){he.postMessage(null)}}else X=function(){M(K,0)};function ae(R,V){C=M(function(){R(e.unstable_now())},V)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(R){R.callback=null},e.unstable_forceFrameRate=function(R){0>R||125<R?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Z=0<R?Math.floor(1e3/R):5},e.unstable_getCurrentPriorityLevel=function(){return g},e.unstable_next=function(R){switch(g){case 1:case 2:case 3:var V=3;break;default:V=g}var Y=g;g=V;try{return R()}finally{g=Y}},e.unstable_requestPaint=function(){j=!0},e.unstable_runWithPriority=function(R,V){switch(R){case 1:case 2:case 3:case 4:case 5:break;default:R=3}var Y=g;g=R;try{return V()}finally{g=Y}},e.unstable_scheduleCallback=function(R,V,Y){var se=e.unstable_now();switch(typeof Y=="object"&&Y!==null?(Y=Y.delay,Y=typeof Y=="number"&&0<Y?se+Y:se):Y=se,R){case 1:var le=-1;break;case 2:le=250;break;case 5:le=1073741823;break;case 4:le=1e4;break;default:le=5e3}return le=Y+le,R={id:b++,callback:V,priorityLevel:R,startTime:Y,expirationTime:le,sortIndex:-1},Y>se?(R.sortIndex=Y,n(y,R),s(p)===null&&R===s(y)&&(x?(I(C),C=-1):x=!0,ae(A,Y-se))):(R.sortIndex=le,n(p,R),T||S||(T=!0,z||(z=!0,X()))),R},e.unstable_shouldYield=J,e.unstable_wrapCallback=function(R){var V=g;return function(){var Y=g;g=V;try{return R.apply(this,arguments)}finally{g=Y}}}})(n0)),n0}var E1;function Ax(){return E1||(E1=1,t0.exports=Ex()),t0.exports}var a0={exports:{}},Vt={};/** * @license React * react-dom.production.js * @@ -30,7 +30,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var A1;function Tx(){if(A1)return Kt;A1=1;var e=kh();function n(m){var y="https://react.dev/errors/"+m;if(1<arguments.length){y+="?args[]="+encodeURIComponent(arguments[1]);for(var b=2;b<arguments.length;b++)y+="&args[]="+encodeURIComponent(arguments[b])}return"Minified React error #"+m+"; visit "+y+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function s(){}var r={d:{f:s,r:function(){throw Error(n(522))},D:s,C:s,L:s,m:s,X:s,S:s,M:s},p:0,findDOMNode:null},l=Symbol.for("react.portal");function u(m,y,b){var w=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:l,key:w==null?null:""+w,children:m,containerInfo:y,implementation:b}}var f=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function p(m,y){if(m==="font")return"";if(typeof y=="string")return y==="use-credentials"?y:""}return Kt.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=r,Kt.createPortal=function(m,y){var b=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!y||y.nodeType!==1&&y.nodeType!==9&&y.nodeType!==11)throw Error(n(299));return u(m,y,null,b)},Kt.flushSync=function(m){var y=f.T,b=r.p;try{if(f.T=null,r.p=2,m)return m()}finally{f.T=y,r.p=b,r.d.f()}},Kt.preconnect=function(m,y){typeof m=="string"&&(y?(y=y.crossOrigin,y=typeof y=="string"?y==="use-credentials"?y:"":void 0):y=null,r.d.C(m,y))},Kt.prefetchDNS=function(m){typeof m=="string"&&r.d.D(m)},Kt.preinit=function(m,y){if(typeof m=="string"&&y&&typeof y.as=="string"){var b=y.as,w=p(b,y.crossOrigin),g=typeof y.integrity=="string"?y.integrity:void 0,S=typeof y.fetchPriority=="string"?y.fetchPriority:void 0;b==="style"?r.d.S(m,typeof y.precedence=="string"?y.precedence:void 0,{crossOrigin:w,integrity:g,fetchPriority:S}):b==="script"&&r.d.X(m,{crossOrigin:w,integrity:g,fetchPriority:S,nonce:typeof y.nonce=="string"?y.nonce:void 0})}},Kt.preinitModule=function(m,y){if(typeof m=="string")if(typeof y=="object"&&y!==null){if(y.as==null||y.as==="script"){var b=p(y.as,y.crossOrigin);r.d.M(m,{crossOrigin:b,integrity:typeof y.integrity=="string"?y.integrity:void 0,nonce:typeof y.nonce=="string"?y.nonce:void 0})}}else y==null&&r.d.M(m)},Kt.preload=function(m,y){if(typeof m=="string"&&typeof y=="object"&&y!==null&&typeof y.as=="string"){var b=y.as,w=p(b,y.crossOrigin);r.d.L(m,b,{crossOrigin:w,integrity:typeof y.integrity=="string"?y.integrity:void 0,nonce:typeof y.nonce=="string"?y.nonce:void 0,type:typeof y.type=="string"?y.type:void 0,fetchPriority:typeof y.fetchPriority=="string"?y.fetchPriority:void 0,referrerPolicy:typeof y.referrerPolicy=="string"?y.referrerPolicy:void 0,imageSrcSet:typeof y.imageSrcSet=="string"?y.imageSrcSet:void 0,imageSizes:typeof y.imageSizes=="string"?y.imageSizes:void 0,media:typeof y.media=="string"?y.media:void 0})}},Kt.preloadModule=function(m,y){if(typeof m=="string")if(y){var b=p(y.as,y.crossOrigin);r.d.m(m,{as:typeof y.as=="string"&&y.as!=="script"?y.as:void 0,crossOrigin:b,integrity:typeof y.integrity=="string"?y.integrity:void 0})}else r.d.m(m)},Kt.requestFormReset=function(m){r.d.r(m)},Kt.unstable_batchedUpdates=function(m,y){return m(y)},Kt.useFormState=function(m,y,b){return f.H.useFormState(m,y,b)},Kt.useFormStatus=function(){return f.H.useHostTransitionStatus()},Kt.version="19.2.0",Kt}var T1;function kx(){if(T1)return a0.exports;T1=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(n){console.error(n)}}return e(),a0.exports=Tx(),a0.exports}/** + */var A1;function Tx(){if(A1)return Vt;A1=1;var e=kh();function n(p){var y="https://react.dev/errors/"+p;if(1<arguments.length){y+="?args[]="+encodeURIComponent(arguments[1]);for(var b=2;b<arguments.length;b++)y+="&args[]="+encodeURIComponent(arguments[b])}return"Minified React error #"+p+"; visit "+y+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function s(){}var r={d:{f:s,r:function(){throw Error(n(522))},D:s,C:s,L:s,m:s,X:s,S:s,M:s},p:0,findDOMNode:null},l=Symbol.for("react.portal");function u(p,y,b){var w=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:l,key:w==null?null:""+w,children:p,containerInfo:y,implementation:b}}var f=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function m(p,y){if(p==="font")return"";if(typeof y=="string")return y==="use-credentials"?y:""}return Vt.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=r,Vt.createPortal=function(p,y){var b=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!y||y.nodeType!==1&&y.nodeType!==9&&y.nodeType!==11)throw Error(n(299));return u(p,y,null,b)},Vt.flushSync=function(p){var y=f.T,b=r.p;try{if(f.T=null,r.p=2,p)return p()}finally{f.T=y,r.p=b,r.d.f()}},Vt.preconnect=function(p,y){typeof p=="string"&&(y?(y=y.crossOrigin,y=typeof y=="string"?y==="use-credentials"?y:"":void 0):y=null,r.d.C(p,y))},Vt.prefetchDNS=function(p){typeof p=="string"&&r.d.D(p)},Vt.preinit=function(p,y){if(typeof p=="string"&&y&&typeof y.as=="string"){var b=y.as,w=m(b,y.crossOrigin),g=typeof y.integrity=="string"?y.integrity:void 0,S=typeof y.fetchPriority=="string"?y.fetchPriority:void 0;b==="style"?r.d.S(p,typeof y.precedence=="string"?y.precedence:void 0,{crossOrigin:w,integrity:g,fetchPriority:S}):b==="script"&&r.d.X(p,{crossOrigin:w,integrity:g,fetchPriority:S,nonce:typeof y.nonce=="string"?y.nonce:void 0})}},Vt.preinitModule=function(p,y){if(typeof p=="string")if(typeof y=="object"&&y!==null){if(y.as==null||y.as==="script"){var b=m(y.as,y.crossOrigin);r.d.M(p,{crossOrigin:b,integrity:typeof y.integrity=="string"?y.integrity:void 0,nonce:typeof y.nonce=="string"?y.nonce:void 0})}}else y==null&&r.d.M(p)},Vt.preload=function(p,y){if(typeof p=="string"&&typeof y=="object"&&y!==null&&typeof y.as=="string"){var b=y.as,w=m(b,y.crossOrigin);r.d.L(p,b,{crossOrigin:w,integrity:typeof y.integrity=="string"?y.integrity:void 0,nonce:typeof y.nonce=="string"?y.nonce:void 0,type:typeof y.type=="string"?y.type:void 0,fetchPriority:typeof y.fetchPriority=="string"?y.fetchPriority:void 0,referrerPolicy:typeof y.referrerPolicy=="string"?y.referrerPolicy:void 0,imageSrcSet:typeof y.imageSrcSet=="string"?y.imageSrcSet:void 0,imageSizes:typeof y.imageSizes=="string"?y.imageSizes:void 0,media:typeof y.media=="string"?y.media:void 0})}},Vt.preloadModule=function(p,y){if(typeof p=="string")if(y){var b=m(y.as,y.crossOrigin);r.d.m(p,{as:typeof y.as=="string"&&y.as!=="script"?y.as:void 0,crossOrigin:b,integrity:typeof y.integrity=="string"?y.integrity:void 0})}else r.d.m(p)},Vt.requestFormReset=function(p){r.d.r(p)},Vt.unstable_batchedUpdates=function(p,y){return p(y)},Vt.useFormState=function(p,y,b){return f.H.useFormState(p,y,b)},Vt.useFormStatus=function(){return f.H.useHostTransitionStatus()},Vt.version="19.2.0",Vt}var T1;function kx(){if(T1)return a0.exports;T1=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(n){console.error(n)}}return e(),a0.exports=Tx(),a0.exports}/** * @license React * react-dom-client.production.js * @@ -38,16 +38,16 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var k1;function jx(){if(k1)return Eo;k1=1;var e=Ax(),n=kh(),s=kx();function r(t){var a="https://react.dev/errors/"+t;if(1<arguments.length){a+="?args[]="+encodeURIComponent(arguments[1]);for(var i=2;i<arguments.length;i++)a+="&args[]="+encodeURIComponent(arguments[i])}return"Minified React error #"+t+"; visit "+a+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function l(t){return!(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)}function u(t){var a=t,i=t;if(t.alternate)for(;a.return;)a=a.return;else{t=a;do a=t,(a.flags&4098)!==0&&(i=a.return),t=a.return;while(t)}return a.tag===3?i:null}function f(t){if(t.tag===13){var a=t.memoizedState;if(a===null&&(t=t.alternate,t!==null&&(a=t.memoizedState)),a!==null)return a.dehydrated}return null}function p(t){if(t.tag===31){var a=t.memoizedState;if(a===null&&(t=t.alternate,t!==null&&(a=t.memoizedState)),a!==null)return a.dehydrated}return null}function m(t){if(u(t)!==t)throw Error(r(188))}function y(t){var a=t.alternate;if(!a){if(a=u(t),a===null)throw Error(r(188));return a!==t?null:t}for(var i=t,o=a;;){var d=i.return;if(d===null)break;var h=d.alternate;if(h===null){if(o=d.return,o!==null){i=o;continue}break}if(d.child===h.child){for(h=d.child;h;){if(h===i)return m(d),t;if(h===o)return m(d),a;h=h.sibling}throw Error(r(188))}if(i.return!==o.return)i=d,o=h;else{for(var v=!1,E=d.child;E;){if(E===i){v=!0,i=d,o=h;break}if(E===o){v=!0,o=d,i=h;break}E=E.sibling}if(!v){for(E=h.child;E;){if(E===i){v=!0,i=h,o=d;break}if(E===o){v=!0,o=h,i=d;break}E=E.sibling}if(!v)throw Error(r(189))}}if(i.alternate!==o)throw Error(r(190))}if(i.tag!==3)throw Error(r(188));return i.stateNode.current===i?t:a}function b(t){var a=t.tag;if(a===5||a===26||a===27||a===6)return t;for(t=t.child;t!==null;){if(a=b(t),a!==null)return a;t=t.sibling}return null}var w=Object.assign,g=Symbol.for("react.element"),S=Symbol.for("react.transitional.element"),T=Symbol.for("react.portal"),x=Symbol.for("react.fragment"),j=Symbol.for("react.strict_mode"),C=Symbol.for("react.profiler"),G=Symbol.for("react.consumer"),O=Symbol.for("react.context"),B=Symbol.for("react.forward_ref"),A=Symbol.for("react.suspense"),_=Symbol.for("react.suspense_list"),M=Symbol.for("react.memo"),Z=Symbol.for("react.lazy"),ee=Symbol.for("react.activity"),J=Symbol.for("react.memo_cache_sentinel"),V=Symbol.iterator;function X(t){return t===null||typeof t!="object"?null:(t=V&&t[V]||t["@@iterator"],typeof t=="function"?t:null)}var oe=Symbol.for("react.client.reference");function he(t){if(t==null)return null;if(typeof t=="function")return t.$$typeof===oe?null:t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case x:return"Fragment";case C:return"Profiler";case j:return"StrictMode";case A:return"Suspense";case _:return"SuspenseList";case ee:return"Activity"}if(typeof t=="object")switch(t.$$typeof){case T:return"Portal";case O:return t.displayName||"Context";case G:return(t._context.displayName||"Context")+".Consumer";case B:var a=t.render;return t=t.displayName,t||(t=a.displayName||a.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case M:return a=t.displayName||null,a!==null?a:he(t.type)||"Memo";case Z:a=t._payload,t=t._init;try{return he(t(a))}catch{}}return null}var ae=Array.isArray,R=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,K=s.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Y={pending:!1,data:null,method:null,action:null},se=[],le=-1;function k(t){return{current:t}}function P(t){0>le||(t.current=se[le],se[le]=null,le--)}function ie(t,a){le++,se[le]=t.current,t.current=a}var H=k(null),W=k(null),ue=k(null),pe=k(null);function we(t,a){switch(ie(ue,a),ie(W,t),ie(H,null),a.nodeType){case 9:case 11:t=(t=a.documentElement)&&(t=t.namespaceURI)?Hb(t):0;break;default:if(t=a.tagName,a=a.namespaceURI)a=Hb(a),t=Ib(a,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}P(H),ie(H,t)}function me(){P(H),P(W),P(ue)}function Oe(t){t.memoizedState!==null&&ie(pe,t);var a=H.current,i=Ib(a,t.type);a!==i&&(ie(W,t),ie(H,i))}function Te(t){W.current===t&&(P(H),P(W)),pe.current===t&&(P(pe),go._currentValue=Y)}var ct,dt;function Je(t){if(ct===void 0)try{throw Error()}catch(i){var a=i.stack.trim().match(/\n( *(at )?)/);ct=a&&a[1]||"",dt=-1<i.stack.indexOf(` + */var k1;function jx(){if(k1)return Eo;k1=1;var e=Ax(),n=kh(),s=kx();function r(t){var a="https://react.dev/errors/"+t;if(1<arguments.length){a+="?args[]="+encodeURIComponent(arguments[1]);for(var i=2;i<arguments.length;i++)a+="&args[]="+encodeURIComponent(arguments[i])}return"Minified React error #"+t+"; visit "+a+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function l(t){return!(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)}function u(t){var a=t,i=t;if(t.alternate)for(;a.return;)a=a.return;else{t=a;do a=t,(a.flags&4098)!==0&&(i=a.return),t=a.return;while(t)}return a.tag===3?i:null}function f(t){if(t.tag===13){var a=t.memoizedState;if(a===null&&(t=t.alternate,t!==null&&(a=t.memoizedState)),a!==null)return a.dehydrated}return null}function m(t){if(t.tag===31){var a=t.memoizedState;if(a===null&&(t=t.alternate,t!==null&&(a=t.memoizedState)),a!==null)return a.dehydrated}return null}function p(t){if(u(t)!==t)throw Error(r(188))}function y(t){var a=t.alternate;if(!a){if(a=u(t),a===null)throw Error(r(188));return a!==t?null:t}for(var i=t,o=a;;){var d=i.return;if(d===null)break;var h=d.alternate;if(h===null){if(o=d.return,o!==null){i=o;continue}break}if(d.child===h.child){for(h=d.child;h;){if(h===i)return p(d),t;if(h===o)return p(d),a;h=h.sibling}throw Error(r(188))}if(i.return!==o.return)i=d,o=h;else{for(var v=!1,E=d.child;E;){if(E===i){v=!0,i=d,o=h;break}if(E===o){v=!0,o=d,i=h;break}E=E.sibling}if(!v){for(E=h.child;E;){if(E===i){v=!0,i=h,o=d;break}if(E===o){v=!0,o=h,i=d;break}E=E.sibling}if(!v)throw Error(r(189))}}if(i.alternate!==o)throw Error(r(190))}if(i.tag!==3)throw Error(r(188));return i.stateNode.current===i?t:a}function b(t){var a=t.tag;if(a===5||a===26||a===27||a===6)return t;for(t=t.child;t!==null;){if(a=b(t),a!==null)return a;t=t.sibling}return null}var w=Object.assign,g=Symbol.for("react.element"),S=Symbol.for("react.transitional.element"),T=Symbol.for("react.portal"),x=Symbol.for("react.fragment"),j=Symbol.for("react.strict_mode"),M=Symbol.for("react.profiler"),I=Symbol.for("react.consumer"),O=Symbol.for("react.context"),B=Symbol.for("react.forward_ref"),A=Symbol.for("react.suspense"),z=Symbol.for("react.suspense_list"),C=Symbol.for("react.memo"),Z=Symbol.for("react.lazy"),ee=Symbol.for("react.activity"),J=Symbol.for("react.memo_cache_sentinel"),K=Symbol.iterator;function X(t){return t===null||typeof t!="object"?null:(t=K&&t[K]||t["@@iterator"],typeof t=="function"?t:null)}var oe=Symbol.for("react.client.reference");function he(t){if(t==null)return null;if(typeof t=="function")return t.$$typeof===oe?null:t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case x:return"Fragment";case M:return"Profiler";case j:return"StrictMode";case A:return"Suspense";case z:return"SuspenseList";case ee:return"Activity"}if(typeof t=="object")switch(t.$$typeof){case T:return"Portal";case O:return t.displayName||"Context";case I:return(t._context.displayName||"Context")+".Consumer";case B:var a=t.render;return t=t.displayName,t||(t=a.displayName||a.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case C:return a=t.displayName||null,a!==null?a:he(t.type)||"Memo";case Z:a=t._payload,t=t._init;try{return he(t(a))}catch{}}return null}var ae=Array.isArray,R=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,V=s.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Y={pending:!1,data:null,method:null,action:null},se=[],le=-1;function k(t){return{current:t}}function P(t){0>le||(t.current=se[le],se[le]=null,le--)}function ie(t,a){le++,se[le]=t.current,t.current=a}var H=k(null),W=k(null),ue=k(null),pe=k(null);function we(t,a){switch(ie(ue,a),ie(W,t),ie(H,null),a.nodeType){case 9:case 11:t=(t=a.documentElement)&&(t=t.namespaceURI)?Hb(t):0;break;default:if(t=a.tagName,a=a.namespaceURI)a=Hb(a),t=Ib(a,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}P(H),ie(H,t)}function me(){P(H),P(W),P(ue)}function Oe(t){t.memoizedState!==null&&ie(pe,t);var a=H.current,i=Ib(a,t.type);a!==i&&(ie(W,t),ie(H,i))}function Te(t){W.current===t&&(P(H),P(W)),pe.current===t&&(P(pe),go._currentValue=Y)}var ct,dt;function Je(t){if(ct===void 0)try{throw Error()}catch(i){var a=i.stack.trim().match(/\n( *(at )?)/);ct=a&&a[1]||"",dt=-1<i.stack.indexOf(` at`)?" (<anonymous>)":-1<i.stack.indexOf("@")?"@unknown:0:0":""}return` -`+ct+t+dt}var rt=!1;function Ot(t,a){if(!t||rt)return"";rt=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var o={DetermineComponentFrameRoot:function(){try{if(a){var ne=function(){throw Error()};if(Object.defineProperty(ne.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(ne,[])}catch(F){var I=F}Reflect.construct(t,[],ne)}else{try{ne.call()}catch(F){I=F}t.call(ne.prototype)}}else{try{throw Error()}catch(F){I=F}(ne=t())&&typeof ne.catch=="function"&&ne.catch(function(){})}}catch(F){if(F&&I&&typeof F.stack=="string")return[F.stack,I.stack]}return[null,null]}};o.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var d=Object.getOwnPropertyDescriptor(o.DetermineComponentFrameRoot,"name");d&&d.configurable&&Object.defineProperty(o.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var h=o.DetermineComponentFrameRoot(),v=h[0],E=h[1];if(v&&E){var N=v.split(` +`+ct+t+dt}var rt=!1;function Ot(t,a){if(!t||rt)return"";rt=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var o={DetermineComponentFrameRoot:function(){try{if(a){var ne=function(){throw Error()};if(Object.defineProperty(ne.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(ne,[])}catch(F){var G=F}Reflect.construct(t,[],ne)}else{try{ne.call()}catch(F){G=F}t.call(ne.prototype)}}else{try{throw Error()}catch(F){G=F}(ne=t())&&typeof ne.catch=="function"&&ne.catch(function(){})}}catch(F){if(F&&G&&typeof F.stack=="string")return[F.stack,G.stack]}return[null,null]}};o.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var d=Object.getOwnPropertyDescriptor(o.DetermineComponentFrameRoot,"name");d&&d.configurable&&Object.defineProperty(o.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var h=o.DetermineComponentFrameRoot(),v=h[0],E=h[1];if(v&&E){var N=v.split(` `),q=E.split(` `);for(d=o=0;o<N.length&&!N[o].includes("DetermineComponentFrameRoot");)o++;for(;d<q.length&&!q[d].includes("DetermineComponentFrameRoot");)d++;if(o===N.length||d===q.length)for(o=N.length-1,d=q.length-1;1<=o&&0<=d&&N[o]!==q[d];)d--;for(;1<=o&&0<=d;o--,d--)if(N[o]!==q[d]){if(o!==1||d!==1)do if(o--,d--,0>d||N[o]!==q[d]){var Q=` -`+N[o].replace(" at new "," at ");return t.displayName&&Q.includes("<anonymous>")&&(Q=Q.replace("<anonymous>",t.displayName)),Q}while(1<=o&&0<=d);break}}}finally{rt=!1,Error.prepareStackTrace=i}return(i=t?t.displayName||t.name:"")?Je(i):""}function Vt(t,a){switch(t.tag){case 26:case 27:case 5:return Je(t.type);case 16:return Je("Lazy");case 13:return t.child!==a&&a!==null?Je("Suspense Fallback"):Je("Suspense");case 19:return Je("SuspenseList");case 0:case 15:return Ot(t.type,!1);case 11:return Ot(t.type.render,!1);case 1:return Ot(t.type,!0);case 31:return Je("Activity");default:return""}}function pn(t){try{var a="",i=null;do a+=Vt(t,i),i=t,t=t.return;while(t);return a}catch(o){return` +`+N[o].replace(" at new "," at ");return t.displayName&&Q.includes("<anonymous>")&&(Q=Q.replace("<anonymous>",t.displayName)),Q}while(1<=o&&0<=d);break}}}finally{rt=!1,Error.prepareStackTrace=i}return(i=t?t.displayName||t.name:"")?Je(i):""}function Kt(t,a){switch(t.tag){case 26:case 27:case 5:return Je(t.type);case 16:return Je("Lazy");case 13:return t.child!==a&&a!==null?Je("Suspense Fallback"):Je("Suspense");case 19:return Je("SuspenseList");case 0:case 15:return Ot(t.type,!1);case 11:return Ot(t.type.render,!1);case 1:return Ot(t.type,!0);case 31:return Je("Activity");default:return""}}function pn(t){try{var a="",i=null;do a+=Kt(t,i),i=t,t=t.return;while(t);return a}catch(o){return` Error generating stack: `+o.message+` -`+o.stack}}var Ft=Object.prototype.hasOwnProperty,Bt=e.unstable_scheduleCallback,Pt=e.unstable_cancelCallback,Tt=e.unstable_shouldYield,ye=e.unstable_requestPaint,ke=e.unstable_now,Ye=e.unstable_getCurrentPriorityLevel,yt=e.unstable_ImmediatePriority,Ve=e.unstable_UserBlockingPriority,at=e.unstable_NormalPriority,aa=e.unstable_LowPriority,L=e.unstable_IdlePriority,de=e.log,je=e.unstable_setDisableYieldValue,$e=null,He=null;function bt(t){if(typeof de=="function"&&je(t),He&&typeof He.setStrictMode=="function")try{He.setStrictMode($e,t)}catch{}}var st=Math.clz32?Math.clz32:r2,es=Math.log,ts=Math.LN2;function r2(t){return t>>>=0,t===0?32:31-(es(t)/ts|0)|0}var Tl=256,kl=262144,jl=4194304;function qs(t){var a=t&42;if(a!==0)return a;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&261888;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function Nl(t,a,i){var o=t.pendingLanes;if(o===0)return 0;var d=0,h=t.suspendedLanes,v=t.pingedLanes;t=t.warmLanes;var E=o&134217727;return E!==0?(o=E&~h,o!==0?d=qs(o):(v&=E,v!==0?d=qs(v):i||(i=E&~t,i!==0&&(d=qs(i))))):(E=o&~h,E!==0?d=qs(E):v!==0?d=qs(v):i||(i=o&~t,i!==0&&(d=qs(i)))),d===0?0:a!==0&&a!==d&&(a&h)===0&&(h=d&-d,i=a&-a,h>=i||h===32&&(i&4194048)!==0)?a:d}function Rr(t,a){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&a)===0}function o2(t,a){switch(t){case 1:case 2:case 4:case 8:case 64:return a+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Sp(){var t=jl;return jl<<=1,(jl&62914560)===0&&(jl=4194304),t}function qu(t){for(var a=[],i=0;31>i;i++)a.push(t);return a}function Mr(t,a){t.pendingLanes|=a,a!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function l2(t,a,i,o,d,h){var v=t.pendingLanes;t.pendingLanes=i,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=i,t.entangledLanes&=i,t.errorRecoveryDisabledLanes&=i,t.shellSuspendCounter=0;var E=t.entanglements,N=t.expirationTimes,q=t.hiddenUpdates;for(i=v&~i;0<i;){var Q=31-st(i),ne=1<<Q;E[Q]=0,N[Q]=-1;var I=q[Q];if(I!==null)for(q[Q]=null,Q=0;Q<I.length;Q++){var F=I[Q];F!==null&&(F.lane&=-536870913)}i&=~ne}o!==0&&Ep(t,o,0),h!==0&&d===0&&t.tag!==0&&(t.suspendedLanes|=h&~(v&~a))}function Ep(t,a,i){t.pendingLanes|=a,t.suspendedLanes&=~a;var o=31-st(a);t.entangledLanes|=a,t.entanglements[o]=t.entanglements[o]|1073741824|i&261930}function Ap(t,a){var i=t.entangledLanes|=a;for(t=t.entanglements;i;){var o=31-st(i),d=1<<o;d&a|t[o]&a&&(t[o]|=a),i&=~d}}function Tp(t,a){var i=a&-a;return i=(i&42)!==0?1:Lu(i),(i&(t.suspendedLanes|a))!==0?0:i}function Lu(t){switch(t){case 2:t=1;break;case 8:t=4;break;case 32:t=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:t=128;break;case 268435456:t=134217728;break;default:t=0}return t}function Hu(t){return t&=-t,2<t?8<t?(t&134217727)!==0?32:268435456:8:2}function kp(){var t=K.p;return t!==0?t:(t=window.event,t===void 0?32:d1(t.type))}function jp(t,a){var i=K.p;try{return K.p=t,a()}finally{K.p=i}}var ns=Math.random().toString(36).slice(2),zt="__reactFiber$"+ns,Jt="__reactProps$"+ns,xi="__reactContainer$"+ns,Iu="__reactEvents$"+ns,c2="__reactListeners$"+ns,u2="__reactHandles$"+ns,Np="__reactResources$"+ns,Cr="__reactMarker$"+ns;function Gu(t){delete t[zt],delete t[Jt],delete t[Iu],delete t[c2],delete t[u2]}function Si(t){var a=t[zt];if(a)return a;for(var i=t.parentNode;i;){if(a=i[xi]||i[zt]){if(i=a.alternate,a.child!==null||i!==null&&i.child!==null)for(t=Zb(t);t!==null;){if(i=t[zt])return i;t=Zb(t)}return a}t=i,i=t.parentNode}return null}function Ei(t){if(t=t[zt]||t[xi]){var a=t.tag;if(a===5||a===6||a===13||a===31||a===26||a===27||a===3)return t}return null}function Or(t){var a=t.tag;if(a===5||a===26||a===27||a===6)return t.stateNode;throw Error(r(33))}function Ai(t){var a=t[Np];return a||(a=t[Np]={hoistableStyles:new Map,hoistableScripts:new Map}),a}function Rt(t){t[Cr]=!0}var Bp=new Set,Rp={};function Ls(t,a){Ti(t,a),Ti(t+"Capture",a)}function Ti(t,a){for(Rp[t]=a,t=0;t<a.length;t++)Bp.add(a[t])}var d2=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Mp={},Cp={};function f2(t){return Ft.call(Cp,t)?!0:Ft.call(Mp,t)?!1:d2.test(t)?Cp[t]=!0:(Mp[t]=!0,!1)}function Bl(t,a,i){if(f2(a))if(i===null)t.removeAttribute(a);else{switch(typeof i){case"undefined":case"function":case"symbol":t.removeAttribute(a);return;case"boolean":var o=a.toLowerCase().slice(0,5);if(o!=="data-"&&o!=="aria-"){t.removeAttribute(a);return}}t.setAttribute(a,""+i)}}function Rl(t,a,i){if(i===null)t.removeAttribute(a);else{switch(typeof i){case"undefined":case"function":case"symbol":case"boolean":t.removeAttribute(a);return}t.setAttribute(a,""+i)}}function ga(t,a,i,o){if(o===null)t.removeAttribute(i);else{switch(typeof o){case"undefined":case"function":case"symbol":case"boolean":t.removeAttribute(i);return}t.setAttributeNS(a,i,""+o)}}function jn(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function Op(t){var a=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(a==="checkbox"||a==="radio")}function h2(t,a,i){var o=Object.getOwnPropertyDescriptor(t.constructor.prototype,a);if(!t.hasOwnProperty(a)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var d=o.get,h=o.set;return Object.defineProperty(t,a,{configurable:!0,get:function(){return d.call(this)},set:function(v){i=""+v,h.call(this,v)}}),Object.defineProperty(t,a,{enumerable:o.enumerable}),{getValue:function(){return i},setValue:function(v){i=""+v},stopTracking:function(){t._valueTracker=null,delete t[a]}}}}function Pu(t){if(!t._valueTracker){var a=Op(t)?"checked":"value";t._valueTracker=h2(t,a,""+t[a])}}function zp(t){if(!t)return!1;var a=t._valueTracker;if(!a)return!0;var i=a.getValue(),o="";return t&&(o=Op(t)?t.checked?"true":"false":t.value),t=o,t!==i?(a.setValue(t),!0):!1}function Ml(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var p2=/[\n"\\]/g;function Nn(t){return t.replace(p2,function(a){return"\\"+a.charCodeAt(0).toString(16)+" "})}function Ku(t,a,i,o,d,h,v,E){t.name="",v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"?t.type=v:t.removeAttribute("type"),a!=null?v==="number"?(a===0&&t.value===""||t.value!=a)&&(t.value=""+jn(a)):t.value!==""+jn(a)&&(t.value=""+jn(a)):v!=="submit"&&v!=="reset"||t.removeAttribute("value"),a!=null?Vu(t,v,jn(a)):i!=null?Vu(t,v,jn(i)):o!=null&&t.removeAttribute("value"),d==null&&h!=null&&(t.defaultChecked=!!h),d!=null&&(t.checked=d&&typeof d!="function"&&typeof d!="symbol"),E!=null&&typeof E!="function"&&typeof E!="symbol"&&typeof E!="boolean"?t.name=""+jn(E):t.removeAttribute("name")}function _p(t,a,i,o,d,h,v,E){if(h!=null&&typeof h!="function"&&typeof h!="symbol"&&typeof h!="boolean"&&(t.type=h),a!=null||i!=null){if(!(h!=="submit"&&h!=="reset"||a!=null)){Pu(t);return}i=i!=null?""+jn(i):"",a=a!=null?""+jn(a):i,E||a===t.value||(t.value=a),t.defaultValue=a}o=o??d,o=typeof o!="function"&&typeof o!="symbol"&&!!o,t.checked=E?t.checked:!!o,t.defaultChecked=!!o,v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"&&(t.name=v),Pu(t)}function Vu(t,a,i){a==="number"&&Ml(t.ownerDocument)===t||t.defaultValue===""+i||(t.defaultValue=""+i)}function ki(t,a,i,o){if(t=t.options,a){a={};for(var d=0;d<i.length;d++)a["$"+i[d]]=!0;for(i=0;i<t.length;i++)d=a.hasOwnProperty("$"+t[i].value),t[i].selected!==d&&(t[i].selected=d),d&&o&&(t[i].defaultSelected=!0)}else{for(i=""+jn(i),a=null,d=0;d<t.length;d++){if(t[d].value===i){t[d].selected=!0,o&&(t[d].defaultSelected=!0);return}a!==null||t[d].disabled||(a=t[d])}a!==null&&(a.selected=!0)}}function $p(t,a,i){if(a!=null&&(a=""+jn(a),a!==t.value&&(t.value=a),i==null)){t.defaultValue!==a&&(t.defaultValue=a);return}t.defaultValue=i!=null?""+jn(i):""}function Dp(t,a,i,o){if(a==null){if(o!=null){if(i!=null)throw Error(r(92));if(ae(o)){if(1<o.length)throw Error(r(93));o=o[0]}i=o}i==null&&(i=""),a=i}i=jn(a),t.defaultValue=i,o=t.textContent,o===i&&o!==""&&o!==null&&(t.value=o),Pu(t)}function ji(t,a){if(a){var i=t.firstChild;if(i&&i===t.lastChild&&i.nodeType===3){i.nodeValue=a;return}}t.textContent=a}var m2=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function Up(t,a,i){var o=a.indexOf("--")===0;i==null||typeof i=="boolean"||i===""?o?t.setProperty(a,""):a==="float"?t.cssFloat="":t[a]="":o?t.setProperty(a,i):typeof i!="number"||i===0||m2.has(a)?a==="float"?t.cssFloat=i:t[a]=(""+i).trim():t[a]=i+"px"}function qp(t,a,i){if(a!=null&&typeof a!="object")throw Error(r(62));if(t=t.style,i!=null){for(var o in i)!i.hasOwnProperty(o)||a!=null&&a.hasOwnProperty(o)||(o.indexOf("--")===0?t.setProperty(o,""):o==="float"?t.cssFloat="":t[o]="");for(var d in a)o=a[d],a.hasOwnProperty(d)&&i[d]!==o&&Up(t,d,o)}else for(var h in a)a.hasOwnProperty(h)&&Up(t,h,a[h])}function Fu(t){if(t.indexOf("-")===-1)return!1;switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var y2=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),b2=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Cl(t){return b2.test(""+t)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":t}function va(){}var Yu=null;function Zu(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var Ni=null,Bi=null;function Lp(t){var a=Ei(t);if(a&&(t=a.stateNode)){var i=t[Jt]||null;e:switch(t=a.stateNode,a.type){case"input":if(Ku(t,i.value,i.defaultValue,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name),a=i.name,i.type==="radio"&&a!=null){for(i=t;i.parentNode;)i=i.parentNode;for(i=i.querySelectorAll('input[name="'+Nn(""+a)+'"][type="radio"]'),a=0;a<i.length;a++){var o=i[a];if(o!==t&&o.form===t.form){var d=o[Jt]||null;if(!d)throw Error(r(90));Ku(o,d.value,d.defaultValue,d.defaultValue,d.checked,d.defaultChecked,d.type,d.name)}}for(a=0;a<i.length;a++)o=i[a],o.form===t.form&&zp(o)}break e;case"textarea":$p(t,i.value,i.defaultValue);break e;case"select":a=i.value,a!=null&&ki(t,!!i.multiple,a,!1)}}}var Xu=!1;function Hp(t,a,i){if(Xu)return t(a,i);Xu=!0;try{var o=t(a);return o}finally{if(Xu=!1,(Ni!==null||Bi!==null)&&(vc(),Ni&&(a=Ni,t=Bi,Bi=Ni=null,Lp(a),t)))for(a=0;a<t.length;a++)Lp(t[a])}}function zr(t,a){var i=t.stateNode;if(i===null)return null;var o=i[Jt]||null;if(o===null)return null;i=o[a];e:switch(a){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(o=!o.disabled)||(t=t.type,o=!(t==="button"||t==="input"||t==="select"||t==="textarea")),t=!o;break e;default:t=!1}if(t)return null;if(i&&typeof i!="function")throw Error(r(231,a,typeof i));return i}var wa=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Qu=!1;if(wa)try{var _r={};Object.defineProperty(_r,"passive",{get:function(){Qu=!0}}),window.addEventListener("test",_r,_r),window.removeEventListener("test",_r,_r)}catch{Qu=!1}var as=null,Ju=null,Ol=null;function Ip(){if(Ol)return Ol;var t,a=Ju,i=a.length,o,d="value"in as?as.value:as.textContent,h=d.length;for(t=0;t<i&&a[t]===d[t];t++);var v=i-t;for(o=1;o<=v&&a[i-o]===d[h-o];o++);return Ol=d.slice(t,1<o?1-o:void 0)}function zl(t){var a=t.keyCode;return"charCode"in t?(t=t.charCode,t===0&&a===13&&(t=13)):t=a,t===10&&(t=13),32<=t||t===13?t:0}function _l(){return!0}function Gp(){return!1}function Wt(t){function a(i,o,d,h,v){this._reactName=i,this._targetInst=d,this.type=o,this.nativeEvent=h,this.target=v,this.currentTarget=null;for(var E in t)t.hasOwnProperty(E)&&(i=t[E],this[E]=i?i(h):h[E]);return this.isDefaultPrevented=(h.defaultPrevented!=null?h.defaultPrevented:h.returnValue===!1)?_l:Gp,this.isPropagationStopped=Gp,this}return w(a.prototype,{preventDefault:function(){this.defaultPrevented=!0;var i=this.nativeEvent;i&&(i.preventDefault?i.preventDefault():typeof i.returnValue!="unknown"&&(i.returnValue=!1),this.isDefaultPrevented=_l)},stopPropagation:function(){var i=this.nativeEvent;i&&(i.stopPropagation?i.stopPropagation():typeof i.cancelBubble!="unknown"&&(i.cancelBubble=!0),this.isPropagationStopped=_l)},persist:function(){},isPersistent:_l}),a}var Hs={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(t){return t.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},$l=Wt(Hs),$r=w({},Hs,{view:0,detail:0}),g2=Wt($r),Wu,ed,Dr,Dl=w({},$r,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:nd,button:0,buttons:0,relatedTarget:function(t){return t.relatedTarget===void 0?t.fromElement===t.srcElement?t.toElement:t.fromElement:t.relatedTarget},movementX:function(t){return"movementX"in t?t.movementX:(t!==Dr&&(Dr&&t.type==="mousemove"?(Wu=t.screenX-Dr.screenX,ed=t.screenY-Dr.screenY):ed=Wu=0,Dr=t),Wu)},movementY:function(t){return"movementY"in t?t.movementY:ed}}),Pp=Wt(Dl),v2=w({},Dl,{dataTransfer:0}),w2=Wt(v2),x2=w({},$r,{relatedTarget:0}),td=Wt(x2),S2=w({},Hs,{animationName:0,elapsedTime:0,pseudoElement:0}),E2=Wt(S2),A2=w({},Hs,{clipboardData:function(t){return"clipboardData"in t?t.clipboardData:window.clipboardData}}),T2=Wt(A2),k2=w({},Hs,{data:0}),Kp=Wt(k2),j2={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},N2={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},B2={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function R2(t){var a=this.nativeEvent;return a.getModifierState?a.getModifierState(t):(t=B2[t])?!!a[t]:!1}function nd(){return R2}var M2=w({},$r,{key:function(t){if(t.key){var a=j2[t.key]||t.key;if(a!=="Unidentified")return a}return t.type==="keypress"?(t=zl(t),t===13?"Enter":String.fromCharCode(t)):t.type==="keydown"||t.type==="keyup"?N2[t.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:nd,charCode:function(t){return t.type==="keypress"?zl(t):0},keyCode:function(t){return t.type==="keydown"||t.type==="keyup"?t.keyCode:0},which:function(t){return t.type==="keypress"?zl(t):t.type==="keydown"||t.type==="keyup"?t.keyCode:0}}),C2=Wt(M2),O2=w({},Dl,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Vp=Wt(O2),z2=w({},$r,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:nd}),_2=Wt(z2),$2=w({},Hs,{propertyName:0,elapsedTime:0,pseudoElement:0}),D2=Wt($2),U2=w({},Dl,{deltaX:function(t){return"deltaX"in t?t.deltaX:"wheelDeltaX"in t?-t.wheelDeltaX:0},deltaY:function(t){return"deltaY"in t?t.deltaY:"wheelDeltaY"in t?-t.wheelDeltaY:"wheelDelta"in t?-t.wheelDelta:0},deltaZ:0,deltaMode:0}),q2=Wt(U2),L2=w({},Hs,{newState:0,oldState:0}),H2=Wt(L2),I2=[9,13,27,32],ad=wa&&"CompositionEvent"in window,Ur=null;wa&&"documentMode"in document&&(Ur=document.documentMode);var G2=wa&&"TextEvent"in window&&!Ur,Fp=wa&&(!ad||Ur&&8<Ur&&11>=Ur),Yp=" ",Zp=!1;function Xp(t,a){switch(t){case"keyup":return I2.indexOf(a.keyCode)!==-1;case"keydown":return a.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Qp(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Ri=!1;function P2(t,a){switch(t){case"compositionend":return Qp(a);case"keypress":return a.which!==32?null:(Zp=!0,Yp);case"textInput":return t=a.data,t===Yp&&Zp?null:t;default:return null}}function K2(t,a){if(Ri)return t==="compositionend"||!ad&&Xp(t,a)?(t=Ip(),Ol=Ju=as=null,Ri=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(a.ctrlKey||a.altKey||a.metaKey)||a.ctrlKey&&a.altKey){if(a.char&&1<a.char.length)return a.char;if(a.which)return String.fromCharCode(a.which)}return null;case"compositionend":return Fp&&a.locale!=="ko"?null:a.data;default:return null}}var V2={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Jp(t){var a=t&&t.nodeName&&t.nodeName.toLowerCase();return a==="input"?!!V2[t.type]:a==="textarea"}function Wp(t,a,i,o){Ni?Bi?Bi.push(o):Bi=[o]:Ni=o,a=kc(a,"onChange"),0<a.length&&(i=new $l("onChange","change",null,i,o),t.push({event:i,listeners:a}))}var qr=null,Lr=null;function F2(t){_b(t,0)}function Ul(t){var a=Or(t);if(zp(a))return t}function em(t,a){if(t==="change")return a}var tm=!1;if(wa){var sd;if(wa){var id="oninput"in document;if(!id){var nm=document.createElement("div");nm.setAttribute("oninput","return;"),id=typeof nm.oninput=="function"}sd=id}else sd=!1;tm=sd&&(!document.documentMode||9<document.documentMode)}function am(){qr&&(qr.detachEvent("onpropertychange",sm),Lr=qr=null)}function sm(t){if(t.propertyName==="value"&&Ul(Lr)){var a=[];Wp(a,Lr,t,Zu(t)),Hp(F2,a)}}function Y2(t,a,i){t==="focusin"?(am(),qr=a,Lr=i,qr.attachEvent("onpropertychange",sm)):t==="focusout"&&am()}function Z2(t){if(t==="selectionchange"||t==="keyup"||t==="keydown")return Ul(Lr)}function X2(t,a){if(t==="click")return Ul(a)}function Q2(t,a){if(t==="input"||t==="change")return Ul(a)}function J2(t,a){return t===a&&(t!==0||1/t===1/a)||t!==t&&a!==a}var mn=typeof Object.is=="function"?Object.is:J2;function Hr(t,a){if(mn(t,a))return!0;if(typeof t!="object"||t===null||typeof a!="object"||a===null)return!1;var i=Object.keys(t),o=Object.keys(a);if(i.length!==o.length)return!1;for(o=0;o<i.length;o++){var d=i[o];if(!Ft.call(a,d)||!mn(t[d],a[d]))return!1}return!0}function im(t){for(;t&&t.firstChild;)t=t.firstChild;return t}function rm(t,a){var i=im(t);t=0;for(var o;i;){if(i.nodeType===3){if(o=t+i.textContent.length,t<=a&&o>=a)return{node:i,offset:a-t};t=o}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=im(i)}}function om(t,a){return t&&a?t===a?!0:t&&t.nodeType===3?!1:a&&a.nodeType===3?om(t,a.parentNode):"contains"in t?t.contains(a):t.compareDocumentPosition?!!(t.compareDocumentPosition(a)&16):!1:!1}function lm(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var a=Ml(t.document);a instanceof t.HTMLIFrameElement;){try{var i=typeof a.contentWindow.location.href=="string"}catch{i=!1}if(i)t=a.contentWindow;else break;a=Ml(t.document)}return a}function rd(t){var a=t&&t.nodeName&&t.nodeName.toLowerCase();return a&&(a==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||a==="textarea"||t.contentEditable==="true")}var W2=wa&&"documentMode"in document&&11>=document.documentMode,Mi=null,od=null,Ir=null,ld=!1;function cm(t,a,i){var o=i.window===i?i.document:i.nodeType===9?i:i.ownerDocument;ld||Mi==null||Mi!==Ml(o)||(o=Mi,"selectionStart"in o&&rd(o)?o={start:o.selectionStart,end:o.selectionEnd}:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection(),o={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}),Ir&&Hr(Ir,o)||(Ir=o,o=kc(od,"onSelect"),0<o.length&&(a=new $l("onSelect","select",null,a,i),t.push({event:a,listeners:o}),a.target=Mi)))}function Is(t,a){var i={};return i[t.toLowerCase()]=a.toLowerCase(),i["Webkit"+t]="webkit"+a,i["Moz"+t]="moz"+a,i}var Ci={animationend:Is("Animation","AnimationEnd"),animationiteration:Is("Animation","AnimationIteration"),animationstart:Is("Animation","AnimationStart"),transitionrun:Is("Transition","TransitionRun"),transitionstart:Is("Transition","TransitionStart"),transitioncancel:Is("Transition","TransitionCancel"),transitionend:Is("Transition","TransitionEnd")},cd={},um={};wa&&(um=document.createElement("div").style,"AnimationEvent"in window||(delete Ci.animationend.animation,delete Ci.animationiteration.animation,delete Ci.animationstart.animation),"TransitionEvent"in window||delete Ci.transitionend.transition);function Gs(t){if(cd[t])return cd[t];if(!Ci[t])return t;var a=Ci[t],i;for(i in a)if(a.hasOwnProperty(i)&&i in um)return cd[t]=a[i];return t}var dm=Gs("animationend"),fm=Gs("animationiteration"),hm=Gs("animationstart"),ew=Gs("transitionrun"),tw=Gs("transitionstart"),nw=Gs("transitioncancel"),pm=Gs("transitionend"),mm=new Map,ud="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");ud.push("scrollEnd");function Pn(t,a){mm.set(t,a),Ls(a,[t])}var ql=typeof reportError=="function"?reportError:function(t){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var a=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof t=="object"&&t!==null&&typeof t.message=="string"?String(t.message):String(t),error:t});if(!window.dispatchEvent(a))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",t);return}console.error(t)},Bn=[],Oi=0,dd=0;function Ll(){for(var t=Oi,a=dd=Oi=0;a<t;){var i=Bn[a];Bn[a++]=null;var o=Bn[a];Bn[a++]=null;var d=Bn[a];Bn[a++]=null;var h=Bn[a];if(Bn[a++]=null,o!==null&&d!==null){var v=o.pending;v===null?d.next=d:(d.next=v.next,v.next=d),o.pending=d}h!==0&&ym(i,d,h)}}function Hl(t,a,i,o){Bn[Oi++]=t,Bn[Oi++]=a,Bn[Oi++]=i,Bn[Oi++]=o,dd|=o,t.lanes|=o,t=t.alternate,t!==null&&(t.lanes|=o)}function fd(t,a,i,o){return Hl(t,a,i,o),Il(t)}function Ps(t,a){return Hl(t,null,null,a),Il(t)}function ym(t,a,i){t.lanes|=i;var o=t.alternate;o!==null&&(o.lanes|=i);for(var d=!1,h=t.return;h!==null;)h.childLanes|=i,o=h.alternate,o!==null&&(o.childLanes|=i),h.tag===22&&(t=h.stateNode,t===null||t._visibility&1||(d=!0)),t=h,h=h.return;return t.tag===3?(h=t.stateNode,d&&a!==null&&(d=31-st(i),t=h.hiddenUpdates,o=t[d],o===null?t[d]=[a]:o.push(a),a.lane=i|536870912),h):null}function Il(t){if(50<uo)throw uo=0,Sf=null,Error(r(185));for(var a=t.return;a!==null;)t=a,a=t.return;return t.tag===3?t.stateNode:null}var zi={};function aw(t,a,i,o){this.tag=t,this.key=i,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=a,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=o,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function yn(t,a,i,o){return new aw(t,a,i,o)}function hd(t){return t=t.prototype,!(!t||!t.isReactComponent)}function xa(t,a){var i=t.alternate;return i===null?(i=yn(t.tag,a,t.key,t.mode),i.elementType=t.elementType,i.type=t.type,i.stateNode=t.stateNode,i.alternate=t,t.alternate=i):(i.pendingProps=a,i.type=t.type,i.flags=0,i.subtreeFlags=0,i.deletions=null),i.flags=t.flags&65011712,i.childLanes=t.childLanes,i.lanes=t.lanes,i.child=t.child,i.memoizedProps=t.memoizedProps,i.memoizedState=t.memoizedState,i.updateQueue=t.updateQueue,a=t.dependencies,i.dependencies=a===null?null:{lanes:a.lanes,firstContext:a.firstContext},i.sibling=t.sibling,i.index=t.index,i.ref=t.ref,i.refCleanup=t.refCleanup,i}function bm(t,a){t.flags&=65011714;var i=t.alternate;return i===null?(t.childLanes=0,t.lanes=a,t.child=null,t.subtreeFlags=0,t.memoizedProps=null,t.memoizedState=null,t.updateQueue=null,t.dependencies=null,t.stateNode=null):(t.childLanes=i.childLanes,t.lanes=i.lanes,t.child=i.child,t.subtreeFlags=0,t.deletions=null,t.memoizedProps=i.memoizedProps,t.memoizedState=i.memoizedState,t.updateQueue=i.updateQueue,t.type=i.type,a=i.dependencies,t.dependencies=a===null?null:{lanes:a.lanes,firstContext:a.firstContext}),t}function Gl(t,a,i,o,d,h){var v=0;if(o=t,typeof t=="function")hd(t)&&(v=1);else if(typeof t=="string")v=lx(t,i,H.current)?26:t==="html"||t==="head"||t==="body"?27:5;else e:switch(t){case ee:return t=yn(31,i,a,d),t.elementType=ee,t.lanes=h,t;case x:return Ks(i.children,d,h,a);case j:v=8,d|=24;break;case C:return t=yn(12,i,a,d|2),t.elementType=C,t.lanes=h,t;case A:return t=yn(13,i,a,d),t.elementType=A,t.lanes=h,t;case _:return t=yn(19,i,a,d),t.elementType=_,t.lanes=h,t;default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case O:v=10;break e;case G:v=9;break e;case B:v=11;break e;case M:v=14;break e;case Z:v=16,o=null;break e}v=29,i=Error(r(130,t===null?"null":typeof t,"")),o=null}return a=yn(v,i,a,d),a.elementType=t,a.type=o,a.lanes=h,a}function Ks(t,a,i,o){return t=yn(7,t,o,a),t.lanes=i,t}function pd(t,a,i){return t=yn(6,t,null,a),t.lanes=i,t}function gm(t){var a=yn(18,null,null,0);return a.stateNode=t,a}function md(t,a,i){return a=yn(4,t.children!==null?t.children:[],t.key,a),a.lanes=i,a.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},a}var vm=new WeakMap;function Rn(t,a){if(typeof t=="object"&&t!==null){var i=vm.get(t);return i!==void 0?i:(a={value:t,source:a,stack:pn(a)},vm.set(t,a),a)}return{value:t,source:a,stack:pn(a)}}var _i=[],$i=0,Pl=null,Gr=0,Mn=[],Cn=0,ss=null,sa=1,ia="";function Sa(t,a){_i[$i++]=Gr,_i[$i++]=Pl,Pl=t,Gr=a}function wm(t,a,i){Mn[Cn++]=sa,Mn[Cn++]=ia,Mn[Cn++]=ss,ss=t;var o=sa;t=ia;var d=32-st(o)-1;o&=~(1<<d),i+=1;var h=32-st(a)+d;if(30<h){var v=d-d%5;h=(o&(1<<v)-1).toString(32),o>>=v,d-=v,sa=1<<32-st(a)+d|i<<d|o,ia=h+t}else sa=1<<h|i<<d|o,ia=t}function yd(t){t.return!==null&&(Sa(t,1),wm(t,1,0))}function bd(t){for(;t===Pl;)Pl=_i[--$i],_i[$i]=null,Gr=_i[--$i],_i[$i]=null;for(;t===ss;)ss=Mn[--Cn],Mn[Cn]=null,ia=Mn[--Cn],Mn[Cn]=null,sa=Mn[--Cn],Mn[Cn]=null}function xm(t,a){Mn[Cn++]=sa,Mn[Cn++]=ia,Mn[Cn++]=ss,sa=a.id,ia=a.overflow,ss=t}var _t=null,ot=null,qe=!1,is=null,On=!1,gd=Error(r(519));function rs(t){var a=Error(r(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Pr(Rn(a,t)),gd}function Sm(t){var a=t.stateNode,i=t.type,o=t.memoizedProps;switch(a[zt]=t,a[Jt]=o,i){case"dialog":_e("cancel",a),_e("close",a);break;case"iframe":case"object":case"embed":_e("load",a);break;case"video":case"audio":for(i=0;i<ho.length;i++)_e(ho[i],a);break;case"source":_e("error",a);break;case"img":case"image":case"link":_e("error",a),_e("load",a);break;case"details":_e("toggle",a);break;case"input":_e("invalid",a),_p(a,o.value,o.defaultValue,o.checked,o.defaultChecked,o.type,o.name,!0);break;case"select":_e("invalid",a);break;case"textarea":_e("invalid",a),Dp(a,o.value,o.defaultValue,o.children)}i=o.children,typeof i!="string"&&typeof i!="number"&&typeof i!="bigint"||a.textContent===""+i||o.suppressHydrationWarning===!0||qb(a.textContent,i)?(o.popover!=null&&(_e("beforetoggle",a),_e("toggle",a)),o.onScroll!=null&&_e("scroll",a),o.onScrollEnd!=null&&_e("scrollend",a),o.onClick!=null&&(a.onclick=va),a=!0):a=!1,a||rs(t,!0)}function Em(t){for(_t=t.return;_t;)switch(_t.tag){case 5:case 31:case 13:On=!1;return;case 27:case 3:On=!0;return;default:_t=_t.return}}function Di(t){if(t!==_t)return!1;if(!qe)return Em(t),qe=!0,!1;var a=t.tag,i;if((i=a!==3&&a!==27)&&((i=a===5)&&(i=t.type,i=!(i!=="form"&&i!=="button")||Df(t.type,t.memoizedProps)),i=!i),i&&ot&&rs(t),Em(t),a===13){if(t=t.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(r(317));ot=Yb(t)}else if(a===31){if(t=t.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(r(317));ot=Yb(t)}else a===27?(a=ot,ws(t.type)?(t=If,If=null,ot=t):ot=a):ot=_t?_n(t.stateNode.nextSibling):null;return!0}function Vs(){ot=_t=null,qe=!1}function vd(){var t=is;return t!==null&&(an===null?an=t:an.push.apply(an,t),is=null),t}function Pr(t){is===null?is=[t]:is.push(t)}var wd=k(null),Fs=null,Ea=null;function os(t,a,i){ie(wd,a._currentValue),a._currentValue=i}function Aa(t){t._currentValue=wd.current,P(wd)}function xd(t,a,i){for(;t!==null;){var o=t.alternate;if((t.childLanes&a)!==a?(t.childLanes|=a,o!==null&&(o.childLanes|=a)):o!==null&&(o.childLanes&a)!==a&&(o.childLanes|=a),t===i)break;t=t.return}}function Sd(t,a,i,o){var d=t.child;for(d!==null&&(d.return=t);d!==null;){var h=d.dependencies;if(h!==null){var v=d.child;h=h.firstContext;e:for(;h!==null;){var E=h;h=d;for(var N=0;N<a.length;N++)if(E.context===a[N]){h.lanes|=i,E=h.alternate,E!==null&&(E.lanes|=i),xd(h.return,i,t),o||(v=null);break e}h=E.next}}else if(d.tag===18){if(v=d.return,v===null)throw Error(r(341));v.lanes|=i,h=v.alternate,h!==null&&(h.lanes|=i),xd(v,i,t),v=null}else v=d.child;if(v!==null)v.return=d;else for(v=d;v!==null;){if(v===t){v=null;break}if(d=v.sibling,d!==null){d.return=v.return,v=d;break}v=v.return}d=v}}function Ui(t,a,i,o){t=null;for(var d=a,h=!1;d!==null;){if(!h){if((d.flags&524288)!==0)h=!0;else if((d.flags&262144)!==0)break}if(d.tag===10){var v=d.alternate;if(v===null)throw Error(r(387));if(v=v.memoizedProps,v!==null){var E=d.type;mn(d.pendingProps.value,v.value)||(t!==null?t.push(E):t=[E])}}else if(d===pe.current){if(v=d.alternate,v===null)throw Error(r(387));v.memoizedState.memoizedState!==d.memoizedState.memoizedState&&(t!==null?t.push(go):t=[go])}d=d.return}t!==null&&Sd(a,t,i,o),a.flags|=262144}function Kl(t){for(t=t.firstContext;t!==null;){if(!mn(t.context._currentValue,t.memoizedValue))return!0;t=t.next}return!1}function Ys(t){Fs=t,Ea=null,t=t.dependencies,t!==null&&(t.firstContext=null)}function $t(t){return Am(Fs,t)}function Vl(t,a){return Fs===null&&Ys(t),Am(t,a)}function Am(t,a){var i=a._currentValue;if(a={context:a,memoizedValue:i,next:null},Ea===null){if(t===null)throw Error(r(308));Ea=a,t.dependencies={lanes:0,firstContext:a},t.flags|=524288}else Ea=Ea.next=a;return i}var sw=typeof AbortController<"u"?AbortController:function(){var t=[],a=this.signal={aborted:!1,addEventListener:function(i,o){t.push(o)}};this.abort=function(){a.aborted=!0,t.forEach(function(i){return i()})}},iw=e.unstable_scheduleCallback,rw=e.unstable_NormalPriority,xt={$$typeof:O,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Ed(){return{controller:new sw,data:new Map,refCount:0}}function Kr(t){t.refCount--,t.refCount===0&&iw(rw,function(){t.controller.abort()})}var Vr=null,Ad=0,qi=0,Li=null;function ow(t,a){if(Vr===null){var i=Vr=[];Ad=0,qi=Nf(),Li={status:"pending",value:void 0,then:function(o){i.push(o)}}}return Ad++,a.then(Tm,Tm),a}function Tm(){if(--Ad===0&&Vr!==null){Li!==null&&(Li.status="fulfilled");var t=Vr;Vr=null,qi=0,Li=null;for(var a=0;a<t.length;a++)(0,t[a])()}}function lw(t,a){var i=[],o={status:"pending",value:null,reason:null,then:function(d){i.push(d)}};return t.then(function(){o.status="fulfilled",o.value=a;for(var d=0;d<i.length;d++)(0,i[d])(a)},function(d){for(o.status="rejected",o.reason=d,d=0;d<i.length;d++)(0,i[d])(void 0)}),o}var km=R.S;R.S=function(t,a){cb=ke(),typeof a=="object"&&a!==null&&typeof a.then=="function"&&ow(t,a),km!==null&&km(t,a)};var Zs=k(null);function Td(){var t=Zs.current;return t!==null?t:it.pooledCache}function Fl(t,a){a===null?ie(Zs,Zs.current):ie(Zs,a.pool)}function jm(){var t=Td();return t===null?null:{parent:xt._currentValue,pool:t}}var Hi=Error(r(460)),kd=Error(r(474)),Yl=Error(r(542)),Zl={then:function(){}};function Nm(t){return t=t.status,t==="fulfilled"||t==="rejected"}function Bm(t,a,i){switch(i=t[i],i===void 0?t.push(a):i!==a&&(a.then(va,va),a=i),a.status){case"fulfilled":return a.value;case"rejected":throw t=a.reason,Mm(t),t;default:if(typeof a.status=="string")a.then(va,va);else{if(t=it,t!==null&&100<t.shellSuspendCounter)throw Error(r(482));t=a,t.status="pending",t.then(function(o){if(a.status==="pending"){var d=a;d.status="fulfilled",d.value=o}},function(o){if(a.status==="pending"){var d=a;d.status="rejected",d.reason=o}})}switch(a.status){case"fulfilled":return a.value;case"rejected":throw t=a.reason,Mm(t),t}throw Qs=a,Hi}}function Xs(t){try{var a=t._init;return a(t._payload)}catch(i){throw i!==null&&typeof i=="object"&&typeof i.then=="function"?(Qs=i,Hi):i}}var Qs=null;function Rm(){if(Qs===null)throw Error(r(459));var t=Qs;return Qs=null,t}function Mm(t){if(t===Hi||t===Yl)throw Error(r(483))}var Ii=null,Fr=0;function Xl(t){var a=Fr;return Fr+=1,Ii===null&&(Ii=[]),Bm(Ii,t,a)}function Yr(t,a){a=a.props.ref,t.ref=a!==void 0?a:null}function Ql(t,a){throw a.$$typeof===g?Error(r(525)):(t=Object.prototype.toString.call(a),Error(r(31,t==="[object Object]"?"object with keys {"+Object.keys(a).join(", ")+"}":t)))}function Cm(t){function a($,z){if(t){var U=$.deletions;U===null?($.deletions=[z],$.flags|=16):U.push(z)}}function i($,z){if(!t)return null;for(;z!==null;)a($,z),z=z.sibling;return null}function o($){for(var z=new Map;$!==null;)$.key!==null?z.set($.key,$):z.set($.index,$),$=$.sibling;return z}function d($,z){return $=xa($,z),$.index=0,$.sibling=null,$}function h($,z,U){return $.index=U,t?(U=$.alternate,U!==null?(U=U.index,U<z?($.flags|=67108866,z):U):($.flags|=67108866,z)):($.flags|=1048576,z)}function v($){return t&&$.alternate===null&&($.flags|=67108866),$}function E($,z,U,te){return z===null||z.tag!==6?(z=pd(U,$.mode,te),z.return=$,z):(z=d(z,U),z.return=$,z)}function N($,z,U,te){var ve=U.type;return ve===x?Q($,z,U.props.children,te,U.key):z!==null&&(z.elementType===ve||typeof ve=="object"&&ve!==null&&ve.$$typeof===Z&&Xs(ve)===z.type)?(z=d(z,U.props),Yr(z,U),z.return=$,z):(z=Gl(U.type,U.key,U.props,null,$.mode,te),Yr(z,U),z.return=$,z)}function q($,z,U,te){return z===null||z.tag!==4||z.stateNode.containerInfo!==U.containerInfo||z.stateNode.implementation!==U.implementation?(z=md(U,$.mode,te),z.return=$,z):(z=d(z,U.children||[]),z.return=$,z)}function Q($,z,U,te,ve){return z===null||z.tag!==7?(z=Ks(U,$.mode,te,ve),z.return=$,z):(z=d(z,U),z.return=$,z)}function ne($,z,U){if(typeof z=="string"&&z!==""||typeof z=="number"||typeof z=="bigint")return z=pd(""+z,$.mode,U),z.return=$,z;if(typeof z=="object"&&z!==null){switch(z.$$typeof){case S:return U=Gl(z.type,z.key,z.props,null,$.mode,U),Yr(U,z),U.return=$,U;case T:return z=md(z,$.mode,U),z.return=$,z;case Z:return z=Xs(z),ne($,z,U)}if(ae(z)||X(z))return z=Ks(z,$.mode,U,null),z.return=$,z;if(typeof z.then=="function")return ne($,Xl(z),U);if(z.$$typeof===O)return ne($,Vl($,z),U);Ql($,z)}return null}function I($,z,U,te){var ve=z!==null?z.key:null;if(typeof U=="string"&&U!==""||typeof U=="number"||typeof U=="bigint")return ve!==null?null:E($,z,""+U,te);if(typeof U=="object"&&U!==null){switch(U.$$typeof){case S:return U.key===ve?N($,z,U,te):null;case T:return U.key===ve?q($,z,U,te):null;case Z:return U=Xs(U),I($,z,U,te)}if(ae(U)||X(U))return ve!==null?null:Q($,z,U,te,null);if(typeof U.then=="function")return I($,z,Xl(U),te);if(U.$$typeof===O)return I($,z,Vl($,U),te);Ql($,U)}return null}function F($,z,U,te,ve){if(typeof te=="string"&&te!==""||typeof te=="number"||typeof te=="bigint")return $=$.get(U)||null,E(z,$,""+te,ve);if(typeof te=="object"&&te!==null){switch(te.$$typeof){case S:return $=$.get(te.key===null?U:te.key)||null,N(z,$,te,ve);case T:return $=$.get(te.key===null?U:te.key)||null,q(z,$,te,ve);case Z:return te=Xs(te),F($,z,U,te,ve)}if(ae(te)||X(te))return $=$.get(U)||null,Q(z,$,te,ve,null);if(typeof te.then=="function")return F($,z,U,Xl(te),ve);if(te.$$typeof===O)return F($,z,U,Vl(z,te),ve);Ql(z,te)}return null}function fe($,z,U,te){for(var ve=null,Pe=null,be=z,Me=z=0,Ue=null;be!==null&&Me<U.length;Me++){be.index>Me?(Ue=be,be=null):Ue=be.sibling;var Ke=I($,be,U[Me],te);if(Ke===null){be===null&&(be=Ue);break}t&&be&&Ke.alternate===null&&a($,be),z=h(Ke,z,Me),Pe===null?ve=Ke:Pe.sibling=Ke,Pe=Ke,be=Ue}if(Me===U.length)return i($,be),qe&&Sa($,Me),ve;if(be===null){for(;Me<U.length;Me++)be=ne($,U[Me],te),be!==null&&(z=h(be,z,Me),Pe===null?ve=be:Pe.sibling=be,Pe=be);return qe&&Sa($,Me),ve}for(be=o(be);Me<U.length;Me++)Ue=F(be,$,Me,U[Me],te),Ue!==null&&(t&&Ue.alternate!==null&&be.delete(Ue.key===null?Me:Ue.key),z=h(Ue,z,Me),Pe===null?ve=Ue:Pe.sibling=Ue,Pe=Ue);return t&&be.forEach(function(Ts){return a($,Ts)}),qe&&Sa($,Me),ve}function Se($,z,U,te){if(U==null)throw Error(r(151));for(var ve=null,Pe=null,be=z,Me=z=0,Ue=null,Ke=U.next();be!==null&&!Ke.done;Me++,Ke=U.next()){be.index>Me?(Ue=be,be=null):Ue=be.sibling;var Ts=I($,be,Ke.value,te);if(Ts===null){be===null&&(be=Ue);break}t&&be&&Ts.alternate===null&&a($,be),z=h(Ts,z,Me),Pe===null?ve=Ts:Pe.sibling=Ts,Pe=Ts,be=Ue}if(Ke.done)return i($,be),qe&&Sa($,Me),ve;if(be===null){for(;!Ke.done;Me++,Ke=U.next())Ke=ne($,Ke.value,te),Ke!==null&&(z=h(Ke,z,Me),Pe===null?ve=Ke:Pe.sibling=Ke,Pe=Ke);return qe&&Sa($,Me),ve}for(be=o(be);!Ke.done;Me++,Ke=U.next())Ke=F(be,$,Me,Ke.value,te),Ke!==null&&(t&&Ke.alternate!==null&&be.delete(Ke.key===null?Me:Ke.key),z=h(Ke,z,Me),Pe===null?ve=Ke:Pe.sibling=Ke,Pe=Ke);return t&&be.forEach(function(vx){return a($,vx)}),qe&&Sa($,Me),ve}function tt($,z,U,te){if(typeof U=="object"&&U!==null&&U.type===x&&U.key===null&&(U=U.props.children),typeof U=="object"&&U!==null){switch(U.$$typeof){case S:e:{for(var ve=U.key;z!==null;){if(z.key===ve){if(ve=U.type,ve===x){if(z.tag===7){i($,z.sibling),te=d(z,U.props.children),te.return=$,$=te;break e}}else if(z.elementType===ve||typeof ve=="object"&&ve!==null&&ve.$$typeof===Z&&Xs(ve)===z.type){i($,z.sibling),te=d(z,U.props),Yr(te,U),te.return=$,$=te;break e}i($,z);break}else a($,z);z=z.sibling}U.type===x?(te=Ks(U.props.children,$.mode,te,U.key),te.return=$,$=te):(te=Gl(U.type,U.key,U.props,null,$.mode,te),Yr(te,U),te.return=$,$=te)}return v($);case T:e:{for(ve=U.key;z!==null;){if(z.key===ve)if(z.tag===4&&z.stateNode.containerInfo===U.containerInfo&&z.stateNode.implementation===U.implementation){i($,z.sibling),te=d(z,U.children||[]),te.return=$,$=te;break e}else{i($,z);break}else a($,z);z=z.sibling}te=md(U,$.mode,te),te.return=$,$=te}return v($);case Z:return U=Xs(U),tt($,z,U,te)}if(ae(U))return fe($,z,U,te);if(X(U)){if(ve=X(U),typeof ve!="function")throw Error(r(150));return U=ve.call(U),Se($,z,U,te)}if(typeof U.then=="function")return tt($,z,Xl(U),te);if(U.$$typeof===O)return tt($,z,Vl($,U),te);Ql($,U)}return typeof U=="string"&&U!==""||typeof U=="number"||typeof U=="bigint"?(U=""+U,z!==null&&z.tag===6?(i($,z.sibling),te=d(z,U),te.return=$,$=te):(i($,z),te=pd(U,$.mode,te),te.return=$,$=te),v($)):i($,z)}return function($,z,U,te){try{Fr=0;var ve=tt($,z,U,te);return Ii=null,ve}catch(be){if(be===Hi||be===Yl)throw be;var Pe=yn(29,be,null,$.mode);return Pe.lanes=te,Pe.return=$,Pe}finally{}}}var Js=Cm(!0),Om=Cm(!1),ls=!1;function jd(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Nd(t,a){t=t.updateQueue,a.updateQueue===t&&(a.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function cs(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function us(t,a,i){var o=t.updateQueue;if(o===null)return null;if(o=o.shared,(Fe&2)!==0){var d=o.pending;return d===null?a.next=a:(a.next=d.next,d.next=a),o.pending=a,a=Il(t),ym(t,null,i),a}return Hl(t,o,a,i),Il(t)}function Zr(t,a,i){if(a=a.updateQueue,a!==null&&(a=a.shared,(i&4194048)!==0)){var o=a.lanes;o&=t.pendingLanes,i|=o,a.lanes=i,Ap(t,i)}}function Bd(t,a){var i=t.updateQueue,o=t.alternate;if(o!==null&&(o=o.updateQueue,i===o)){var d=null,h=null;if(i=i.firstBaseUpdate,i!==null){do{var v={lane:i.lane,tag:i.tag,payload:i.payload,callback:null,next:null};h===null?d=h=v:h=h.next=v,i=i.next}while(i!==null);h===null?d=h=a:h=h.next=a}else d=h=a;i={baseState:o.baseState,firstBaseUpdate:d,lastBaseUpdate:h,shared:o.shared,callbacks:o.callbacks},t.updateQueue=i;return}t=i.lastBaseUpdate,t===null?i.firstBaseUpdate=a:t.next=a,i.lastBaseUpdate=a}var Rd=!1;function Xr(){if(Rd){var t=Li;if(t!==null)throw t}}function Qr(t,a,i,o){Rd=!1;var d=t.updateQueue;ls=!1;var h=d.firstBaseUpdate,v=d.lastBaseUpdate,E=d.shared.pending;if(E!==null){d.shared.pending=null;var N=E,q=N.next;N.next=null,v===null?h=q:v.next=q,v=N;var Q=t.alternate;Q!==null&&(Q=Q.updateQueue,E=Q.lastBaseUpdate,E!==v&&(E===null?Q.firstBaseUpdate=q:E.next=q,Q.lastBaseUpdate=N))}if(h!==null){var ne=d.baseState;v=0,Q=q=N=null,E=h;do{var I=E.lane&-536870913,F=I!==E.lane;if(F?(De&I)===I:(o&I)===I){I!==0&&I===qi&&(Rd=!0),Q!==null&&(Q=Q.next={lane:0,tag:E.tag,payload:E.payload,callback:null,next:null});e:{var fe=t,Se=E;I=a;var tt=i;switch(Se.tag){case 1:if(fe=Se.payload,typeof fe=="function"){ne=fe.call(tt,ne,I);break e}ne=fe;break e;case 3:fe.flags=fe.flags&-65537|128;case 0:if(fe=Se.payload,I=typeof fe=="function"?fe.call(tt,ne,I):fe,I==null)break e;ne=w({},ne,I);break e;case 2:ls=!0}}I=E.callback,I!==null&&(t.flags|=64,F&&(t.flags|=8192),F=d.callbacks,F===null?d.callbacks=[I]:F.push(I))}else F={lane:I,tag:E.tag,payload:E.payload,callback:E.callback,next:null},Q===null?(q=Q=F,N=ne):Q=Q.next=F,v|=I;if(E=E.next,E===null){if(E=d.shared.pending,E===null)break;F=E,E=F.next,F.next=null,d.lastBaseUpdate=F,d.shared.pending=null}}while(!0);Q===null&&(N=ne),d.baseState=N,d.firstBaseUpdate=q,d.lastBaseUpdate=Q,h===null&&(d.shared.lanes=0),ms|=v,t.lanes=v,t.memoizedState=ne}}function zm(t,a){if(typeof t!="function")throw Error(r(191,t));t.call(a)}function _m(t,a){var i=t.callbacks;if(i!==null)for(t.callbacks=null,t=0;t<i.length;t++)zm(i[t],a)}var Gi=k(null),Jl=k(0);function $m(t,a){t=Oa,ie(Jl,t),ie(Gi,a),Oa=t|a.baseLanes}function Md(){ie(Jl,Oa),ie(Gi,Gi.current)}function Cd(){Oa=Jl.current,P(Gi),P(Jl)}var bn=k(null),zn=null;function ds(t){var a=t.alternate;ie(gt,gt.current&1),ie(bn,t),zn===null&&(a===null||Gi.current!==null||a.memoizedState!==null)&&(zn=t)}function Od(t){ie(gt,gt.current),ie(bn,t),zn===null&&(zn=t)}function Dm(t){t.tag===22?(ie(gt,gt.current),ie(bn,t),zn===null&&(zn=t)):fs()}function fs(){ie(gt,gt.current),ie(bn,bn.current)}function gn(t){P(bn),zn===t&&(zn=null),P(gt)}var gt=k(0);function Wl(t){for(var a=t;a!==null;){if(a.tag===13){var i=a.memoizedState;if(i!==null&&(i=i.dehydrated,i===null||Lf(i)||Hf(i)))return a}else if(a.tag===19&&(a.memoizedProps.revealOrder==="forwards"||a.memoizedProps.revealOrder==="backwards"||a.memoizedProps.revealOrder==="unstable_legacy-backwards"||a.memoizedProps.revealOrder==="together")){if((a.flags&128)!==0)return a}else if(a.child!==null){a.child.return=a,a=a.child;continue}if(a===t)break;for(;a.sibling===null;){if(a.return===null||a.return===t)return null;a=a.return}a.sibling.return=a.return,a=a.sibling}return null}var Ta=0,Re=null,We=null,St=null,ec=!1,Pi=!1,Ws=!1,tc=0,Jr=0,Ki=null,cw=0;function ft(){throw Error(r(321))}function zd(t,a){if(a===null)return!1;for(var i=0;i<a.length&&i<t.length;i++)if(!mn(t[i],a[i]))return!1;return!0}function _d(t,a,i,o,d,h){return Ta=h,Re=a,a.memoizedState=null,a.updateQueue=null,a.lanes=0,R.H=t===null||t.memoizedState===null?wy:Xd,Ws=!1,h=i(o,d),Ws=!1,Pi&&(h=qm(a,i,o,d)),Um(t),h}function Um(t){R.H=to;var a=We!==null&&We.next!==null;if(Ta=0,St=We=Re=null,ec=!1,Jr=0,Ki=null,a)throw Error(r(300));t===null||Et||(t=t.dependencies,t!==null&&Kl(t)&&(Et=!0))}function qm(t,a,i,o){Re=t;var d=0;do{if(Pi&&(Ki=null),Jr=0,Pi=!1,25<=d)throw Error(r(301));if(d+=1,St=We=null,t.updateQueue!=null){var h=t.updateQueue;h.lastEffect=null,h.events=null,h.stores=null,h.memoCache!=null&&(h.memoCache.index=0)}R.H=xy,h=a(i,o)}while(Pi);return h}function uw(){var t=R.H,a=t.useState()[0];return a=typeof a.then=="function"?Wr(a):a,t=t.useState()[0],(We!==null?We.memoizedState:null)!==t&&(Re.flags|=1024),a}function $d(){var t=tc!==0;return tc=0,t}function Dd(t,a,i){a.updateQueue=t.updateQueue,a.flags&=-2053,t.lanes&=~i}function Ud(t){if(ec){for(t=t.memoizedState;t!==null;){var a=t.queue;a!==null&&(a.pending=null),t=t.next}ec=!1}Ta=0,St=We=Re=null,Pi=!1,Jr=tc=0,Ki=null}function Yt(){var t={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return St===null?Re.memoizedState=St=t:St=St.next=t,St}function vt(){if(We===null){var t=Re.alternate;t=t!==null?t.memoizedState:null}else t=We.next;var a=St===null?Re.memoizedState:St.next;if(a!==null)St=a,We=t;else{if(t===null)throw Re.alternate===null?Error(r(467)):Error(r(310));We=t,t={memoizedState:We.memoizedState,baseState:We.baseState,baseQueue:We.baseQueue,queue:We.queue,next:null},St===null?Re.memoizedState=St=t:St=St.next=t}return St}function nc(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Wr(t){var a=Jr;return Jr+=1,Ki===null&&(Ki=[]),t=Bm(Ki,t,a),a=Re,(St===null?a.memoizedState:St.next)===null&&(a=a.alternate,R.H=a===null||a.memoizedState===null?wy:Xd),t}function ac(t){if(t!==null&&typeof t=="object"){if(typeof t.then=="function")return Wr(t);if(t.$$typeof===O)return $t(t)}throw Error(r(438,String(t)))}function qd(t){var a=null,i=Re.updateQueue;if(i!==null&&(a=i.memoCache),a==null){var o=Re.alternate;o!==null&&(o=o.updateQueue,o!==null&&(o=o.memoCache,o!=null&&(a={data:o.data.map(function(d){return d.slice()}),index:0})))}if(a==null&&(a={data:[],index:0}),i===null&&(i=nc(),Re.updateQueue=i),i.memoCache=a,i=a.data[a.index],i===void 0)for(i=a.data[a.index]=Array(t),o=0;o<t;o++)i[o]=J;return a.index++,i}function ka(t,a){return typeof a=="function"?a(t):a}function sc(t){var a=vt();return Ld(a,We,t)}function Ld(t,a,i){var o=t.queue;if(o===null)throw Error(r(311));o.lastRenderedReducer=i;var d=t.baseQueue,h=o.pending;if(h!==null){if(d!==null){var v=d.next;d.next=h.next,h.next=v}a.baseQueue=d=h,o.pending=null}if(h=t.baseState,d===null)t.memoizedState=h;else{a=d.next;var E=v=null,N=null,q=a,Q=!1;do{var ne=q.lane&-536870913;if(ne!==q.lane?(De&ne)===ne:(Ta&ne)===ne){var I=q.revertLane;if(I===0)N!==null&&(N=N.next={lane:0,revertLane:0,gesture:null,action:q.action,hasEagerState:q.hasEagerState,eagerState:q.eagerState,next:null}),ne===qi&&(Q=!0);else if((Ta&I)===I){q=q.next,I===qi&&(Q=!0);continue}else ne={lane:0,revertLane:q.revertLane,gesture:null,action:q.action,hasEagerState:q.hasEagerState,eagerState:q.eagerState,next:null},N===null?(E=N=ne,v=h):N=N.next=ne,Re.lanes|=I,ms|=I;ne=q.action,Ws&&i(h,ne),h=q.hasEagerState?q.eagerState:i(h,ne)}else I={lane:ne,revertLane:q.revertLane,gesture:q.gesture,action:q.action,hasEagerState:q.hasEagerState,eagerState:q.eagerState,next:null},N===null?(E=N=I,v=h):N=N.next=I,Re.lanes|=ne,ms|=ne;q=q.next}while(q!==null&&q!==a);if(N===null?v=h:N.next=E,!mn(h,t.memoizedState)&&(Et=!0,Q&&(i=Li,i!==null)))throw i;t.memoizedState=h,t.baseState=v,t.baseQueue=N,o.lastRenderedState=h}return d===null&&(o.lanes=0),[t.memoizedState,o.dispatch]}function Hd(t){var a=vt(),i=a.queue;if(i===null)throw Error(r(311));i.lastRenderedReducer=t;var o=i.dispatch,d=i.pending,h=a.memoizedState;if(d!==null){i.pending=null;var v=d=d.next;do h=t(h,v.action),v=v.next;while(v!==d);mn(h,a.memoizedState)||(Et=!0),a.memoizedState=h,a.baseQueue===null&&(a.baseState=h),i.lastRenderedState=h}return[h,o]}function Lm(t,a,i){var o=Re,d=vt(),h=qe;if(h){if(i===void 0)throw Error(r(407));i=i()}else i=a();var v=!mn((We||d).memoizedState,i);if(v&&(d.memoizedState=i,Et=!0),d=d.queue,Pd(Gm.bind(null,o,d,t),[t]),d.getSnapshot!==a||v||St!==null&&St.memoizedState.tag&1){if(o.flags|=2048,Vi(9,{destroy:void 0},Im.bind(null,o,d,i,a),null),it===null)throw Error(r(349));h||(Ta&127)!==0||Hm(o,a,i)}return i}function Hm(t,a,i){t.flags|=16384,t={getSnapshot:a,value:i},a=Re.updateQueue,a===null?(a=nc(),Re.updateQueue=a,a.stores=[t]):(i=a.stores,i===null?a.stores=[t]:i.push(t))}function Im(t,a,i,o){a.value=i,a.getSnapshot=o,Pm(a)&&Km(t)}function Gm(t,a,i){return i(function(){Pm(a)&&Km(t)})}function Pm(t){var a=t.getSnapshot;t=t.value;try{var i=a();return!mn(t,i)}catch{return!0}}function Km(t){var a=Ps(t,2);a!==null&&sn(a,t,2)}function Id(t){var a=Yt();if(typeof t=="function"){var i=t;if(t=i(),Ws){bt(!0);try{i()}finally{bt(!1)}}}return a.memoizedState=a.baseState=t,a.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ka,lastRenderedState:t},a}function Vm(t,a,i,o){return t.baseState=i,Ld(t,We,typeof o=="function"?o:ka)}function dw(t,a,i,o,d){if(oc(t))throw Error(r(485));if(t=a.action,t!==null){var h={payload:d,action:t,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(v){h.listeners.push(v)}};R.T!==null?i(!0):h.isTransition=!1,o(h),i=a.pending,i===null?(h.next=a.pending=h,Fm(a,h)):(h.next=i.next,a.pending=i.next=h)}}function Fm(t,a){var i=a.action,o=a.payload,d=t.state;if(a.isTransition){var h=R.T,v={};R.T=v;try{var E=i(d,o),N=R.S;N!==null&&N(v,E),Ym(t,a,E)}catch(q){Gd(t,a,q)}finally{h!==null&&v.types!==null&&(h.types=v.types),R.T=h}}else try{h=i(d,o),Ym(t,a,h)}catch(q){Gd(t,a,q)}}function Ym(t,a,i){i!==null&&typeof i=="object"&&typeof i.then=="function"?i.then(function(o){Zm(t,a,o)},function(o){return Gd(t,a,o)}):Zm(t,a,i)}function Zm(t,a,i){a.status="fulfilled",a.value=i,Xm(a),t.state=i,a=t.pending,a!==null&&(i=a.next,i===a?t.pending=null:(i=i.next,a.next=i,Fm(t,i)))}function Gd(t,a,i){var o=t.pending;if(t.pending=null,o!==null){o=o.next;do a.status="rejected",a.reason=i,Xm(a),a=a.next;while(a!==o)}t.action=null}function Xm(t){t=t.listeners;for(var a=0;a<t.length;a++)(0,t[a])()}function Qm(t,a){return a}function Jm(t,a){if(qe){var i=it.formState;if(i!==null){e:{var o=Re;if(qe){if(ot){t:{for(var d=ot,h=On;d.nodeType!==8;){if(!h){d=null;break t}if(d=_n(d.nextSibling),d===null){d=null;break t}}h=d.data,d=h==="F!"||h==="F"?d:null}if(d){ot=_n(d.nextSibling),o=d.data==="F!";break e}}rs(o)}o=!1}o&&(a=i[0])}}return i=Yt(),i.memoizedState=i.baseState=a,o={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Qm,lastRenderedState:a},i.queue=o,i=by.bind(null,Re,o),o.dispatch=i,o=Id(!1),h=Zd.bind(null,Re,!1,o.queue),o=Yt(),d={state:a,dispatch:null,action:t,pending:null},o.queue=d,i=dw.bind(null,Re,d,h,i),d.dispatch=i,o.memoizedState=t,[a,i,!1]}function Wm(t){var a=vt();return ey(a,We,t)}function ey(t,a,i){if(a=Ld(t,a,Qm)[0],t=sc(ka)[0],typeof a=="object"&&a!==null&&typeof a.then=="function")try{var o=Wr(a)}catch(v){throw v===Hi?Yl:v}else o=a;a=vt();var d=a.queue,h=d.dispatch;return i!==a.memoizedState&&(Re.flags|=2048,Vi(9,{destroy:void 0},fw.bind(null,d,i),null)),[o,h,t]}function fw(t,a){t.action=a}function ty(t){var a=vt(),i=We;if(i!==null)return ey(a,i,t);vt(),a=a.memoizedState,i=vt();var o=i.queue.dispatch;return i.memoizedState=t,[a,o,!1]}function Vi(t,a,i,o){return t={tag:t,create:i,deps:o,inst:a,next:null},a=Re.updateQueue,a===null&&(a=nc(),Re.updateQueue=a),i=a.lastEffect,i===null?a.lastEffect=t.next=t:(o=i.next,i.next=t,t.next=o,a.lastEffect=t),t}function ny(){return vt().memoizedState}function ic(t,a,i,o){var d=Yt();Re.flags|=t,d.memoizedState=Vi(1|a,{destroy:void 0},i,o===void 0?null:o)}function rc(t,a,i,o){var d=vt();o=o===void 0?null:o;var h=d.memoizedState.inst;We!==null&&o!==null&&zd(o,We.memoizedState.deps)?d.memoizedState=Vi(a,h,i,o):(Re.flags|=t,d.memoizedState=Vi(1|a,h,i,o))}function ay(t,a){ic(8390656,8,t,a)}function Pd(t,a){rc(2048,8,t,a)}function hw(t){Re.flags|=4;var a=Re.updateQueue;if(a===null)a=nc(),Re.updateQueue=a,a.events=[t];else{var i=a.events;i===null?a.events=[t]:i.push(t)}}function sy(t){var a=vt().memoizedState;return hw({ref:a,nextImpl:t}),function(){if((Fe&2)!==0)throw Error(r(440));return a.impl.apply(void 0,arguments)}}function iy(t,a){return rc(4,2,t,a)}function ry(t,a){return rc(4,4,t,a)}function oy(t,a){if(typeof a=="function"){t=t();var i=a(t);return function(){typeof i=="function"?i():a(null)}}if(a!=null)return t=t(),a.current=t,function(){a.current=null}}function ly(t,a,i){i=i!=null?i.concat([t]):null,rc(4,4,oy.bind(null,a,t),i)}function Kd(){}function cy(t,a){var i=vt();a=a===void 0?null:a;var o=i.memoizedState;return a!==null&&zd(a,o[1])?o[0]:(i.memoizedState=[t,a],t)}function uy(t,a){var i=vt();a=a===void 0?null:a;var o=i.memoizedState;if(a!==null&&zd(a,o[1]))return o[0];if(o=t(),Ws){bt(!0);try{t()}finally{bt(!1)}}return i.memoizedState=[o,a],o}function Vd(t,a,i){return i===void 0||(Ta&1073741824)!==0&&(De&261930)===0?t.memoizedState=a:(t.memoizedState=i,t=db(),Re.lanes|=t,ms|=t,i)}function dy(t,a,i,o){return mn(i,a)?i:Gi.current!==null?(t=Vd(t,i,o),mn(t,a)||(Et=!0),t):(Ta&42)===0||(Ta&1073741824)!==0&&(De&261930)===0?(Et=!0,t.memoizedState=i):(t=db(),Re.lanes|=t,ms|=t,a)}function fy(t,a,i,o,d){var h=K.p;K.p=h!==0&&8>h?h:8;var v=R.T,E={};R.T=E,Zd(t,!1,a,i);try{var N=d(),q=R.S;if(q!==null&&q(E,N),N!==null&&typeof N=="object"&&typeof N.then=="function"){var Q=lw(N,o);eo(t,a,Q,xn(t))}else eo(t,a,o,xn(t))}catch(ne){eo(t,a,{then:function(){},status:"rejected",reason:ne},xn())}finally{K.p=h,v!==null&&E.types!==null&&(v.types=E.types),R.T=v}}function pw(){}function Fd(t,a,i,o){if(t.tag!==5)throw Error(r(476));var d=hy(t).queue;fy(t,d,a,Y,i===null?pw:function(){return py(t),i(o)})}function hy(t){var a=t.memoizedState;if(a!==null)return a;a={memoizedState:Y,baseState:Y,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ka,lastRenderedState:Y},next:null};var i={};return a.next={memoizedState:i,baseState:i,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ka,lastRenderedState:i},next:null},t.memoizedState=a,t=t.alternate,t!==null&&(t.memoizedState=a),a}function py(t){var a=hy(t);a.next===null&&(a=t.alternate.memoizedState),eo(t,a.next.queue,{},xn())}function Yd(){return $t(go)}function my(){return vt().memoizedState}function yy(){return vt().memoizedState}function mw(t){for(var a=t.return;a!==null;){switch(a.tag){case 24:case 3:var i=xn();t=cs(i);var o=us(a,t,i);o!==null&&(sn(o,a,i),Zr(o,a,i)),a={cache:Ed()},t.payload=a;return}a=a.return}}function yw(t,a,i){var o=xn();i={lane:o,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},oc(t)?gy(a,i):(i=fd(t,a,i,o),i!==null&&(sn(i,t,o),vy(i,a,o)))}function by(t,a,i){var o=xn();eo(t,a,i,o)}function eo(t,a,i,o){var d={lane:o,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null};if(oc(t))gy(a,d);else{var h=t.alternate;if(t.lanes===0&&(h===null||h.lanes===0)&&(h=a.lastRenderedReducer,h!==null))try{var v=a.lastRenderedState,E=h(v,i);if(d.hasEagerState=!0,d.eagerState=E,mn(E,v))return Hl(t,a,d,0),it===null&&Ll(),!1}catch{}finally{}if(i=fd(t,a,d,o),i!==null)return sn(i,t,o),vy(i,a,o),!0}return!1}function Zd(t,a,i,o){if(o={lane:2,revertLane:Nf(),gesture:null,action:o,hasEagerState:!1,eagerState:null,next:null},oc(t)){if(a)throw Error(r(479))}else a=fd(t,i,o,2),a!==null&&sn(a,t,2)}function oc(t){var a=t.alternate;return t===Re||a!==null&&a===Re}function gy(t,a){Pi=ec=!0;var i=t.pending;i===null?a.next=a:(a.next=i.next,i.next=a),t.pending=a}function vy(t,a,i){if((i&4194048)!==0){var o=a.lanes;o&=t.pendingLanes,i|=o,a.lanes=i,Ap(t,i)}}var to={readContext:$t,use:ac,useCallback:ft,useContext:ft,useEffect:ft,useImperativeHandle:ft,useLayoutEffect:ft,useInsertionEffect:ft,useMemo:ft,useReducer:ft,useRef:ft,useState:ft,useDebugValue:ft,useDeferredValue:ft,useTransition:ft,useSyncExternalStore:ft,useId:ft,useHostTransitionStatus:ft,useFormState:ft,useActionState:ft,useOptimistic:ft,useMemoCache:ft,useCacheRefresh:ft};to.useEffectEvent=ft;var wy={readContext:$t,use:ac,useCallback:function(t,a){return Yt().memoizedState=[t,a===void 0?null:a],t},useContext:$t,useEffect:ay,useImperativeHandle:function(t,a,i){i=i!=null?i.concat([t]):null,ic(4194308,4,oy.bind(null,a,t),i)},useLayoutEffect:function(t,a){return ic(4194308,4,t,a)},useInsertionEffect:function(t,a){ic(4,2,t,a)},useMemo:function(t,a){var i=Yt();a=a===void 0?null:a;var o=t();if(Ws){bt(!0);try{t()}finally{bt(!1)}}return i.memoizedState=[o,a],o},useReducer:function(t,a,i){var o=Yt();if(i!==void 0){var d=i(a);if(Ws){bt(!0);try{i(a)}finally{bt(!1)}}}else d=a;return o.memoizedState=o.baseState=d,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:d},o.queue=t,t=t.dispatch=yw.bind(null,Re,t),[o.memoizedState,t]},useRef:function(t){var a=Yt();return t={current:t},a.memoizedState=t},useState:function(t){t=Id(t);var a=t.queue,i=by.bind(null,Re,a);return a.dispatch=i,[t.memoizedState,i]},useDebugValue:Kd,useDeferredValue:function(t,a){var i=Yt();return Vd(i,t,a)},useTransition:function(){var t=Id(!1);return t=fy.bind(null,Re,t.queue,!0,!1),Yt().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,a,i){var o=Re,d=Yt();if(qe){if(i===void 0)throw Error(r(407));i=i()}else{if(i=a(),it===null)throw Error(r(349));(De&127)!==0||Hm(o,a,i)}d.memoizedState=i;var h={value:i,getSnapshot:a};return d.queue=h,ay(Gm.bind(null,o,h,t),[t]),o.flags|=2048,Vi(9,{destroy:void 0},Im.bind(null,o,h,i,a),null),i},useId:function(){var t=Yt(),a=it.identifierPrefix;if(qe){var i=ia,o=sa;i=(o&~(1<<32-st(o)-1)).toString(32)+i,a="_"+a+"R_"+i,i=tc++,0<i&&(a+="H"+i.toString(32)),a+="_"}else i=cw++,a="_"+a+"r_"+i.toString(32)+"_";return t.memoizedState=a},useHostTransitionStatus:Yd,useFormState:Jm,useActionState:Jm,useOptimistic:function(t){var a=Yt();a.memoizedState=a.baseState=t;var i={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return a.queue=i,a=Zd.bind(null,Re,!0,i),i.dispatch=a,[t,a]},useMemoCache:qd,useCacheRefresh:function(){return Yt().memoizedState=mw.bind(null,Re)},useEffectEvent:function(t){var a=Yt(),i={impl:t};return a.memoizedState=i,function(){if((Fe&2)!==0)throw Error(r(440));return i.impl.apply(void 0,arguments)}}},Xd={readContext:$t,use:ac,useCallback:cy,useContext:$t,useEffect:Pd,useImperativeHandle:ly,useInsertionEffect:iy,useLayoutEffect:ry,useMemo:uy,useReducer:sc,useRef:ny,useState:function(){return sc(ka)},useDebugValue:Kd,useDeferredValue:function(t,a){var i=vt();return dy(i,We.memoizedState,t,a)},useTransition:function(){var t=sc(ka)[0],a=vt().memoizedState;return[typeof t=="boolean"?t:Wr(t),a]},useSyncExternalStore:Lm,useId:my,useHostTransitionStatus:Yd,useFormState:Wm,useActionState:Wm,useOptimistic:function(t,a){var i=vt();return Vm(i,We,t,a)},useMemoCache:qd,useCacheRefresh:yy};Xd.useEffectEvent=sy;var xy={readContext:$t,use:ac,useCallback:cy,useContext:$t,useEffect:Pd,useImperativeHandle:ly,useInsertionEffect:iy,useLayoutEffect:ry,useMemo:uy,useReducer:Hd,useRef:ny,useState:function(){return Hd(ka)},useDebugValue:Kd,useDeferredValue:function(t,a){var i=vt();return We===null?Vd(i,t,a):dy(i,We.memoizedState,t,a)},useTransition:function(){var t=Hd(ka)[0],a=vt().memoizedState;return[typeof t=="boolean"?t:Wr(t),a]},useSyncExternalStore:Lm,useId:my,useHostTransitionStatus:Yd,useFormState:ty,useActionState:ty,useOptimistic:function(t,a){var i=vt();return We!==null?Vm(i,We,t,a):(i.baseState=t,[t,i.queue.dispatch])},useMemoCache:qd,useCacheRefresh:yy};xy.useEffectEvent=sy;function Qd(t,a,i,o){a=t.memoizedState,i=i(o,a),i=i==null?a:w({},a,i),t.memoizedState=i,t.lanes===0&&(t.updateQueue.baseState=i)}var Jd={enqueueSetState:function(t,a,i){t=t._reactInternals;var o=xn(),d=cs(o);d.payload=a,i!=null&&(d.callback=i),a=us(t,d,o),a!==null&&(sn(a,t,o),Zr(a,t,o))},enqueueReplaceState:function(t,a,i){t=t._reactInternals;var o=xn(),d=cs(o);d.tag=1,d.payload=a,i!=null&&(d.callback=i),a=us(t,d,o),a!==null&&(sn(a,t,o),Zr(a,t,o))},enqueueForceUpdate:function(t,a){t=t._reactInternals;var i=xn(),o=cs(i);o.tag=2,a!=null&&(o.callback=a),a=us(t,o,i),a!==null&&(sn(a,t,i),Zr(a,t,i))}};function Sy(t,a,i,o,d,h,v){return t=t.stateNode,typeof t.shouldComponentUpdate=="function"?t.shouldComponentUpdate(o,h,v):a.prototype&&a.prototype.isPureReactComponent?!Hr(i,o)||!Hr(d,h):!0}function Ey(t,a,i,o){t=a.state,typeof a.componentWillReceiveProps=="function"&&a.componentWillReceiveProps(i,o),typeof a.UNSAFE_componentWillReceiveProps=="function"&&a.UNSAFE_componentWillReceiveProps(i,o),a.state!==t&&Jd.enqueueReplaceState(a,a.state,null)}function ei(t,a){var i=a;if("ref"in a){i={};for(var o in a)o!=="ref"&&(i[o]=a[o])}if(t=t.defaultProps){i===a&&(i=w({},i));for(var d in t)i[d]===void 0&&(i[d]=t[d])}return i}function Ay(t){ql(t)}function Ty(t){console.error(t)}function ky(t){ql(t)}function lc(t,a){try{var i=t.onUncaughtError;i(a.value,{componentStack:a.stack})}catch(o){setTimeout(function(){throw o})}}function jy(t,a,i){try{var o=t.onCaughtError;o(i.value,{componentStack:i.stack,errorBoundary:a.tag===1?a.stateNode:null})}catch(d){setTimeout(function(){throw d})}}function Wd(t,a,i){return i=cs(i),i.tag=3,i.payload={element:null},i.callback=function(){lc(t,a)},i}function Ny(t){return t=cs(t),t.tag=3,t}function By(t,a,i,o){var d=i.type.getDerivedStateFromError;if(typeof d=="function"){var h=o.value;t.payload=function(){return d(h)},t.callback=function(){jy(a,i,o)}}var v=i.stateNode;v!==null&&typeof v.componentDidCatch=="function"&&(t.callback=function(){jy(a,i,o),typeof d!="function"&&(ys===null?ys=new Set([this]):ys.add(this));var E=o.stack;this.componentDidCatch(o.value,{componentStack:E!==null?E:""})})}function bw(t,a,i,o,d){if(i.flags|=32768,o!==null&&typeof o=="object"&&typeof o.then=="function"){if(a=i.alternate,a!==null&&Ui(a,i,d,!0),i=bn.current,i!==null){switch(i.tag){case 31:case 13:return zn===null?wc():i.alternate===null&&ht===0&&(ht=3),i.flags&=-257,i.flags|=65536,i.lanes=d,o===Zl?i.flags|=16384:(a=i.updateQueue,a===null?i.updateQueue=new Set([o]):a.add(o),Tf(t,o,d)),!1;case 22:return i.flags|=65536,o===Zl?i.flags|=16384:(a=i.updateQueue,a===null?(a={transitions:null,markerInstances:null,retryQueue:new Set([o])},i.updateQueue=a):(i=a.retryQueue,i===null?a.retryQueue=new Set([o]):i.add(o)),Tf(t,o,d)),!1}throw Error(r(435,i.tag))}return Tf(t,o,d),wc(),!1}if(qe)return a=bn.current,a!==null?((a.flags&65536)===0&&(a.flags|=256),a.flags|=65536,a.lanes=d,o!==gd&&(t=Error(r(422),{cause:o}),Pr(Rn(t,i)))):(o!==gd&&(a=Error(r(423),{cause:o}),Pr(Rn(a,i))),t=t.current.alternate,t.flags|=65536,d&=-d,t.lanes|=d,o=Rn(o,i),d=Wd(t.stateNode,o,d),Bd(t,d),ht!==4&&(ht=2)),!1;var h=Error(r(520),{cause:o});if(h=Rn(h,i),co===null?co=[h]:co.push(h),ht!==4&&(ht=2),a===null)return!0;o=Rn(o,i),i=a;do{switch(i.tag){case 3:return i.flags|=65536,t=d&-d,i.lanes|=t,t=Wd(i.stateNode,o,t),Bd(i,t),!1;case 1:if(a=i.type,h=i.stateNode,(i.flags&128)===0&&(typeof a.getDerivedStateFromError=="function"||h!==null&&typeof h.componentDidCatch=="function"&&(ys===null||!ys.has(h))))return i.flags|=65536,d&=-d,i.lanes|=d,d=Ny(d),By(d,t,i,o),Bd(i,d),!1}i=i.return}while(i!==null);return!1}var ef=Error(r(461)),Et=!1;function Dt(t,a,i,o){a.child=t===null?Om(a,null,i,o):Js(a,t.child,i,o)}function Ry(t,a,i,o,d){i=i.render;var h=a.ref;if("ref"in o){var v={};for(var E in o)E!=="ref"&&(v[E]=o[E])}else v=o;return Ys(a),o=_d(t,a,i,v,h,d),E=$d(),t!==null&&!Et?(Dd(t,a,d),ja(t,a,d)):(qe&&E&&yd(a),a.flags|=1,Dt(t,a,o,d),a.child)}function My(t,a,i,o,d){if(t===null){var h=i.type;return typeof h=="function"&&!hd(h)&&h.defaultProps===void 0&&i.compare===null?(a.tag=15,a.type=h,Cy(t,a,h,o,d)):(t=Gl(i.type,null,o,a,a.mode,d),t.ref=a.ref,t.return=a,a.child=t)}if(h=t.child,!cf(t,d)){var v=h.memoizedProps;if(i=i.compare,i=i!==null?i:Hr,i(v,o)&&t.ref===a.ref)return ja(t,a,d)}return a.flags|=1,t=xa(h,o),t.ref=a.ref,t.return=a,a.child=t}function Cy(t,a,i,o,d){if(t!==null){var h=t.memoizedProps;if(Hr(h,o)&&t.ref===a.ref)if(Et=!1,a.pendingProps=o=h,cf(t,d))(t.flags&131072)!==0&&(Et=!0);else return a.lanes=t.lanes,ja(t,a,d)}return tf(t,a,i,o,d)}function Oy(t,a,i,o){var d=o.children,h=t!==null?t.memoizedState:null;if(t===null&&a.stateNode===null&&(a.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),o.mode==="hidden"){if((a.flags&128)!==0){if(h=h!==null?h.baseLanes|i:i,t!==null){for(o=a.child=t.child,d=0;o!==null;)d=d|o.lanes|o.childLanes,o=o.sibling;o=d&~h}else o=0,a.child=null;return zy(t,a,h,i,o)}if((i&536870912)!==0)a.memoizedState={baseLanes:0,cachePool:null},t!==null&&Fl(a,h!==null?h.cachePool:null),h!==null?$m(a,h):Md(),Dm(a);else return o=a.lanes=536870912,zy(t,a,h!==null?h.baseLanes|i:i,i,o)}else h!==null?(Fl(a,h.cachePool),$m(a,h),fs(),a.memoizedState=null):(t!==null&&Fl(a,null),Md(),fs());return Dt(t,a,d,i),a.child}function no(t,a){return t!==null&&t.tag===22||a.stateNode!==null||(a.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),a.sibling}function zy(t,a,i,o,d){var h=Td();return h=h===null?null:{parent:xt._currentValue,pool:h},a.memoizedState={baseLanes:i,cachePool:h},t!==null&&Fl(a,null),Md(),Dm(a),t!==null&&Ui(t,a,o,!0),a.childLanes=d,null}function cc(t,a){return a=dc({mode:a.mode,children:a.children},t.mode),a.ref=t.ref,t.child=a,a.return=t,a}function _y(t,a,i){return Js(a,t.child,null,i),t=cc(a,a.pendingProps),t.flags|=2,gn(a),a.memoizedState=null,t}function gw(t,a,i){var o=a.pendingProps,d=(a.flags&128)!==0;if(a.flags&=-129,t===null){if(qe){if(o.mode==="hidden")return t=cc(a,o),a.lanes=536870912,no(null,t);if(Od(a),(t=ot)?(t=Fb(t,On),t=t!==null&&t.data==="&"?t:null,t!==null&&(a.memoizedState={dehydrated:t,treeContext:ss!==null?{id:sa,overflow:ia}:null,retryLane:536870912,hydrationErrors:null},i=gm(t),i.return=a,a.child=i,_t=a,ot=null)):t=null,t===null)throw rs(a);return a.lanes=536870912,null}return cc(a,o)}var h=t.memoizedState;if(h!==null){var v=h.dehydrated;if(Od(a),d)if(a.flags&256)a.flags&=-257,a=_y(t,a,i);else if(a.memoizedState!==null)a.child=t.child,a.flags|=128,a=null;else throw Error(r(558));else if(Et||Ui(t,a,i,!1),d=(i&t.childLanes)!==0,Et||d){if(o=it,o!==null&&(v=Tp(o,i),v!==0&&v!==h.retryLane))throw h.retryLane=v,Ps(t,v),sn(o,t,v),ef;wc(),a=_y(t,a,i)}else t=h.treeContext,ot=_n(v.nextSibling),_t=a,qe=!0,is=null,On=!1,t!==null&&xm(a,t),a=cc(a,o),a.flags|=4096;return a}return t=xa(t.child,{mode:o.mode,children:o.children}),t.ref=a.ref,a.child=t,t.return=a,t}function uc(t,a){var i=a.ref;if(i===null)t!==null&&t.ref!==null&&(a.flags|=4194816);else{if(typeof i!="function"&&typeof i!="object")throw Error(r(284));(t===null||t.ref!==i)&&(a.flags|=4194816)}}function tf(t,a,i,o,d){return Ys(a),i=_d(t,a,i,o,void 0,d),o=$d(),t!==null&&!Et?(Dd(t,a,d),ja(t,a,d)):(qe&&o&&yd(a),a.flags|=1,Dt(t,a,i,d),a.child)}function $y(t,a,i,o,d,h){return Ys(a),a.updateQueue=null,i=qm(a,o,i,d),Um(t),o=$d(),t!==null&&!Et?(Dd(t,a,h),ja(t,a,h)):(qe&&o&&yd(a),a.flags|=1,Dt(t,a,i,h),a.child)}function Dy(t,a,i,o,d){if(Ys(a),a.stateNode===null){var h=zi,v=i.contextType;typeof v=="object"&&v!==null&&(h=$t(v)),h=new i(o,h),a.memoizedState=h.state!==null&&h.state!==void 0?h.state:null,h.updater=Jd,a.stateNode=h,h._reactInternals=a,h=a.stateNode,h.props=o,h.state=a.memoizedState,h.refs={},jd(a),v=i.contextType,h.context=typeof v=="object"&&v!==null?$t(v):zi,h.state=a.memoizedState,v=i.getDerivedStateFromProps,typeof v=="function"&&(Qd(a,i,v,o),h.state=a.memoizedState),typeof i.getDerivedStateFromProps=="function"||typeof h.getSnapshotBeforeUpdate=="function"||typeof h.UNSAFE_componentWillMount!="function"&&typeof h.componentWillMount!="function"||(v=h.state,typeof h.componentWillMount=="function"&&h.componentWillMount(),typeof h.UNSAFE_componentWillMount=="function"&&h.UNSAFE_componentWillMount(),v!==h.state&&Jd.enqueueReplaceState(h,h.state,null),Qr(a,o,h,d),Xr(),h.state=a.memoizedState),typeof h.componentDidMount=="function"&&(a.flags|=4194308),o=!0}else if(t===null){h=a.stateNode;var E=a.memoizedProps,N=ei(i,E);h.props=N;var q=h.context,Q=i.contextType;v=zi,typeof Q=="object"&&Q!==null&&(v=$t(Q));var ne=i.getDerivedStateFromProps;Q=typeof ne=="function"||typeof h.getSnapshotBeforeUpdate=="function",E=a.pendingProps!==E,Q||typeof h.UNSAFE_componentWillReceiveProps!="function"&&typeof h.componentWillReceiveProps!="function"||(E||q!==v)&&Ey(a,h,o,v),ls=!1;var I=a.memoizedState;h.state=I,Qr(a,o,h,d),Xr(),q=a.memoizedState,E||I!==q||ls?(typeof ne=="function"&&(Qd(a,i,ne,o),q=a.memoizedState),(N=ls||Sy(a,i,N,o,I,q,v))?(Q||typeof h.UNSAFE_componentWillMount!="function"&&typeof h.componentWillMount!="function"||(typeof h.componentWillMount=="function"&&h.componentWillMount(),typeof h.UNSAFE_componentWillMount=="function"&&h.UNSAFE_componentWillMount()),typeof h.componentDidMount=="function"&&(a.flags|=4194308)):(typeof h.componentDidMount=="function"&&(a.flags|=4194308),a.memoizedProps=o,a.memoizedState=q),h.props=o,h.state=q,h.context=v,o=N):(typeof h.componentDidMount=="function"&&(a.flags|=4194308),o=!1)}else{h=a.stateNode,Nd(t,a),v=a.memoizedProps,Q=ei(i,v),h.props=Q,ne=a.pendingProps,I=h.context,q=i.contextType,N=zi,typeof q=="object"&&q!==null&&(N=$t(q)),E=i.getDerivedStateFromProps,(q=typeof E=="function"||typeof h.getSnapshotBeforeUpdate=="function")||typeof h.UNSAFE_componentWillReceiveProps!="function"&&typeof h.componentWillReceiveProps!="function"||(v!==ne||I!==N)&&Ey(a,h,o,N),ls=!1,I=a.memoizedState,h.state=I,Qr(a,o,h,d),Xr();var F=a.memoizedState;v!==ne||I!==F||ls||t!==null&&t.dependencies!==null&&Kl(t.dependencies)?(typeof E=="function"&&(Qd(a,i,E,o),F=a.memoizedState),(Q=ls||Sy(a,i,Q,o,I,F,N)||t!==null&&t.dependencies!==null&&Kl(t.dependencies))?(q||typeof h.UNSAFE_componentWillUpdate!="function"&&typeof h.componentWillUpdate!="function"||(typeof h.componentWillUpdate=="function"&&h.componentWillUpdate(o,F,N),typeof h.UNSAFE_componentWillUpdate=="function"&&h.UNSAFE_componentWillUpdate(o,F,N)),typeof h.componentDidUpdate=="function"&&(a.flags|=4),typeof h.getSnapshotBeforeUpdate=="function"&&(a.flags|=1024)):(typeof h.componentDidUpdate!="function"||v===t.memoizedProps&&I===t.memoizedState||(a.flags|=4),typeof h.getSnapshotBeforeUpdate!="function"||v===t.memoizedProps&&I===t.memoizedState||(a.flags|=1024),a.memoizedProps=o,a.memoizedState=F),h.props=o,h.state=F,h.context=N,o=Q):(typeof h.componentDidUpdate!="function"||v===t.memoizedProps&&I===t.memoizedState||(a.flags|=4),typeof h.getSnapshotBeforeUpdate!="function"||v===t.memoizedProps&&I===t.memoizedState||(a.flags|=1024),o=!1)}return h=o,uc(t,a),o=(a.flags&128)!==0,h||o?(h=a.stateNode,i=o&&typeof i.getDerivedStateFromError!="function"?null:h.render(),a.flags|=1,t!==null&&o?(a.child=Js(a,t.child,null,d),a.child=Js(a,null,i,d)):Dt(t,a,i,d),a.memoizedState=h.state,t=a.child):t=ja(t,a,d),t}function Uy(t,a,i,o){return Vs(),a.flags|=256,Dt(t,a,i,o),a.child}var nf={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function af(t){return{baseLanes:t,cachePool:jm()}}function sf(t,a,i){return t=t!==null?t.childLanes&~i:0,a&&(t|=wn),t}function qy(t,a,i){var o=a.pendingProps,d=!1,h=(a.flags&128)!==0,v;if((v=h)||(v=t!==null&&t.memoizedState===null?!1:(gt.current&2)!==0),v&&(d=!0,a.flags&=-129),v=(a.flags&32)!==0,a.flags&=-33,t===null){if(qe){if(d?ds(a):fs(),(t=ot)?(t=Fb(t,On),t=t!==null&&t.data!=="&"?t:null,t!==null&&(a.memoizedState={dehydrated:t,treeContext:ss!==null?{id:sa,overflow:ia}:null,retryLane:536870912,hydrationErrors:null},i=gm(t),i.return=a,a.child=i,_t=a,ot=null)):t=null,t===null)throw rs(a);return Hf(t)?a.lanes=32:a.lanes=536870912,null}var E=o.children;return o=o.fallback,d?(fs(),d=a.mode,E=dc({mode:"hidden",children:E},d),o=Ks(o,d,i,null),E.return=a,o.return=a,E.sibling=o,a.child=E,o=a.child,o.memoizedState=af(i),o.childLanes=sf(t,v,i),a.memoizedState=nf,no(null,o)):(ds(a),rf(a,E))}var N=t.memoizedState;if(N!==null&&(E=N.dehydrated,E!==null)){if(h)a.flags&256?(ds(a),a.flags&=-257,a=of(t,a,i)):a.memoizedState!==null?(fs(),a.child=t.child,a.flags|=128,a=null):(fs(),E=o.fallback,d=a.mode,o=dc({mode:"visible",children:o.children},d),E=Ks(E,d,i,null),E.flags|=2,o.return=a,E.return=a,o.sibling=E,a.child=o,Js(a,t.child,null,i),o=a.child,o.memoizedState=af(i),o.childLanes=sf(t,v,i),a.memoizedState=nf,a=no(null,o));else if(ds(a),Hf(E)){if(v=E.nextSibling&&E.nextSibling.dataset,v)var q=v.dgst;v=q,o=Error(r(419)),o.stack="",o.digest=v,Pr({value:o,source:null,stack:null}),a=of(t,a,i)}else if(Et||Ui(t,a,i,!1),v=(i&t.childLanes)!==0,Et||v){if(v=it,v!==null&&(o=Tp(v,i),o!==0&&o!==N.retryLane))throw N.retryLane=o,Ps(t,o),sn(v,t,o),ef;Lf(E)||wc(),a=of(t,a,i)}else Lf(E)?(a.flags|=192,a.child=t.child,a=null):(t=N.treeContext,ot=_n(E.nextSibling),_t=a,qe=!0,is=null,On=!1,t!==null&&xm(a,t),a=rf(a,o.children),a.flags|=4096);return a}return d?(fs(),E=o.fallback,d=a.mode,N=t.child,q=N.sibling,o=xa(N,{mode:"hidden",children:o.children}),o.subtreeFlags=N.subtreeFlags&65011712,q!==null?E=xa(q,E):(E=Ks(E,d,i,null),E.flags|=2),E.return=a,o.return=a,o.sibling=E,a.child=o,no(null,o),o=a.child,E=t.child.memoizedState,E===null?E=af(i):(d=E.cachePool,d!==null?(N=xt._currentValue,d=d.parent!==N?{parent:N,pool:N}:d):d=jm(),E={baseLanes:E.baseLanes|i,cachePool:d}),o.memoizedState=E,o.childLanes=sf(t,v,i),a.memoizedState=nf,no(t.child,o)):(ds(a),i=t.child,t=i.sibling,i=xa(i,{mode:"visible",children:o.children}),i.return=a,i.sibling=null,t!==null&&(v=a.deletions,v===null?(a.deletions=[t],a.flags|=16):v.push(t)),a.child=i,a.memoizedState=null,i)}function rf(t,a){return a=dc({mode:"visible",children:a},t.mode),a.return=t,t.child=a}function dc(t,a){return t=yn(22,t,null,a),t.lanes=0,t}function of(t,a,i){return Js(a,t.child,null,i),t=rf(a,a.pendingProps.children),t.flags|=2,a.memoizedState=null,t}function Ly(t,a,i){t.lanes|=a;var o=t.alternate;o!==null&&(o.lanes|=a),xd(t.return,a,i)}function lf(t,a,i,o,d,h){var v=t.memoizedState;v===null?t.memoizedState={isBackwards:a,rendering:null,renderingStartTime:0,last:o,tail:i,tailMode:d,treeForkCount:h}:(v.isBackwards=a,v.rendering=null,v.renderingStartTime=0,v.last=o,v.tail=i,v.tailMode=d,v.treeForkCount=h)}function Hy(t,a,i){var o=a.pendingProps,d=o.revealOrder,h=o.tail;o=o.children;var v=gt.current,E=(v&2)!==0;if(E?(v=v&1|2,a.flags|=128):v&=1,ie(gt,v),Dt(t,a,o,i),o=qe?Gr:0,!E&&t!==null&&(t.flags&128)!==0)e:for(t=a.child;t!==null;){if(t.tag===13)t.memoizedState!==null&&Ly(t,i,a);else if(t.tag===19)Ly(t,i,a);else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===a)break e;for(;t.sibling===null;){if(t.return===null||t.return===a)break e;t=t.return}t.sibling.return=t.return,t=t.sibling}switch(d){case"forwards":for(i=a.child,d=null;i!==null;)t=i.alternate,t!==null&&Wl(t)===null&&(d=i),i=i.sibling;i=d,i===null?(d=a.child,a.child=null):(d=i.sibling,i.sibling=null),lf(a,!1,d,i,h,o);break;case"backwards":case"unstable_legacy-backwards":for(i=null,d=a.child,a.child=null;d!==null;){if(t=d.alternate,t!==null&&Wl(t)===null){a.child=d;break}t=d.sibling,d.sibling=i,i=d,d=t}lf(a,!0,i,null,h,o);break;case"together":lf(a,!1,null,null,void 0,o);break;default:a.memoizedState=null}return a.child}function ja(t,a,i){if(t!==null&&(a.dependencies=t.dependencies),ms|=a.lanes,(i&a.childLanes)===0)if(t!==null){if(Ui(t,a,i,!1),(i&a.childLanes)===0)return null}else return null;if(t!==null&&a.child!==t.child)throw Error(r(153));if(a.child!==null){for(t=a.child,i=xa(t,t.pendingProps),a.child=i,i.return=a;t.sibling!==null;)t=t.sibling,i=i.sibling=xa(t,t.pendingProps),i.return=a;i.sibling=null}return a.child}function cf(t,a){return(t.lanes&a)!==0?!0:(t=t.dependencies,!!(t!==null&&Kl(t)))}function vw(t,a,i){switch(a.tag){case 3:we(a,a.stateNode.containerInfo),os(a,xt,t.memoizedState.cache),Vs();break;case 27:case 5:Oe(a);break;case 4:we(a,a.stateNode.containerInfo);break;case 10:os(a,a.type,a.memoizedProps.value);break;case 31:if(a.memoizedState!==null)return a.flags|=128,Od(a),null;break;case 13:var o=a.memoizedState;if(o!==null)return o.dehydrated!==null?(ds(a),a.flags|=128,null):(i&a.child.childLanes)!==0?qy(t,a,i):(ds(a),t=ja(t,a,i),t!==null?t.sibling:null);ds(a);break;case 19:var d=(t.flags&128)!==0;if(o=(i&a.childLanes)!==0,o||(Ui(t,a,i,!1),o=(i&a.childLanes)!==0),d){if(o)return Hy(t,a,i);a.flags|=128}if(d=a.memoizedState,d!==null&&(d.rendering=null,d.tail=null,d.lastEffect=null),ie(gt,gt.current),o)break;return null;case 22:return a.lanes=0,Oy(t,a,i,a.pendingProps);case 24:os(a,xt,t.memoizedState.cache)}return ja(t,a,i)}function Iy(t,a,i){if(t!==null)if(t.memoizedProps!==a.pendingProps)Et=!0;else{if(!cf(t,i)&&(a.flags&128)===0)return Et=!1,vw(t,a,i);Et=(t.flags&131072)!==0}else Et=!1,qe&&(a.flags&1048576)!==0&&wm(a,Gr,a.index);switch(a.lanes=0,a.tag){case 16:e:{var o=a.pendingProps;if(t=Xs(a.elementType),a.type=t,typeof t=="function")hd(t)?(o=ei(t,o),a.tag=1,a=Dy(null,a,t,o,i)):(a.tag=0,a=tf(null,a,t,o,i));else{if(t!=null){var d=t.$$typeof;if(d===B){a.tag=11,a=Ry(null,a,t,o,i);break e}else if(d===M){a.tag=14,a=My(null,a,t,o,i);break e}}throw a=he(t)||t,Error(r(306,a,""))}}return a;case 0:return tf(t,a,a.type,a.pendingProps,i);case 1:return o=a.type,d=ei(o,a.pendingProps),Dy(t,a,o,d,i);case 3:e:{if(we(a,a.stateNode.containerInfo),t===null)throw Error(r(387));o=a.pendingProps;var h=a.memoizedState;d=h.element,Nd(t,a),Qr(a,o,null,i);var v=a.memoizedState;if(o=v.cache,os(a,xt,o),o!==h.cache&&Sd(a,[xt],i,!0),Xr(),o=v.element,h.isDehydrated)if(h={element:o,isDehydrated:!1,cache:v.cache},a.updateQueue.baseState=h,a.memoizedState=h,a.flags&256){a=Uy(t,a,o,i);break e}else if(o!==d){d=Rn(Error(r(424)),a),Pr(d),a=Uy(t,a,o,i);break e}else{switch(t=a.stateNode.containerInfo,t.nodeType){case 9:t=t.body;break;default:t=t.nodeName==="HTML"?t.ownerDocument.body:t}for(ot=_n(t.firstChild),_t=a,qe=!0,is=null,On=!0,i=Om(a,null,o,i),a.child=i;i;)i.flags=i.flags&-3|4096,i=i.sibling}else{if(Vs(),o===d){a=ja(t,a,i);break e}Dt(t,a,o,i)}a=a.child}return a;case 26:return uc(t,a),t===null?(i=Wb(a.type,null,a.pendingProps,null))?a.memoizedState=i:qe||(i=a.type,t=a.pendingProps,o=jc(ue.current).createElement(i),o[zt]=a,o[Jt]=t,Ut(o,i,t),Rt(o),a.stateNode=o):a.memoizedState=Wb(a.type,t.memoizedProps,a.pendingProps,t.memoizedState),null;case 27:return Oe(a),t===null&&qe&&(o=a.stateNode=Xb(a.type,a.pendingProps,ue.current),_t=a,On=!0,d=ot,ws(a.type)?(If=d,ot=_n(o.firstChild)):ot=d),Dt(t,a,a.pendingProps.children,i),uc(t,a),t===null&&(a.flags|=4194304),a.child;case 5:return t===null&&qe&&((d=o=ot)&&(o=Zw(o,a.type,a.pendingProps,On),o!==null?(a.stateNode=o,_t=a,ot=_n(o.firstChild),On=!1,d=!0):d=!1),d||rs(a)),Oe(a),d=a.type,h=a.pendingProps,v=t!==null?t.memoizedProps:null,o=h.children,Df(d,h)?o=null:v!==null&&Df(d,v)&&(a.flags|=32),a.memoizedState!==null&&(d=_d(t,a,uw,null,null,i),go._currentValue=d),uc(t,a),Dt(t,a,o,i),a.child;case 6:return t===null&&qe&&((t=i=ot)&&(i=Xw(i,a.pendingProps,On),i!==null?(a.stateNode=i,_t=a,ot=null,t=!0):t=!1),t||rs(a)),null;case 13:return qy(t,a,i);case 4:return we(a,a.stateNode.containerInfo),o=a.pendingProps,t===null?a.child=Js(a,null,o,i):Dt(t,a,o,i),a.child;case 11:return Ry(t,a,a.type,a.pendingProps,i);case 7:return Dt(t,a,a.pendingProps,i),a.child;case 8:return Dt(t,a,a.pendingProps.children,i),a.child;case 12:return Dt(t,a,a.pendingProps.children,i),a.child;case 10:return o=a.pendingProps,os(a,a.type,o.value),Dt(t,a,o.children,i),a.child;case 9:return d=a.type._context,o=a.pendingProps.children,Ys(a),d=$t(d),o=o(d),a.flags|=1,Dt(t,a,o,i),a.child;case 14:return My(t,a,a.type,a.pendingProps,i);case 15:return Cy(t,a,a.type,a.pendingProps,i);case 19:return Hy(t,a,i);case 31:return gw(t,a,i);case 22:return Oy(t,a,i,a.pendingProps);case 24:return Ys(a),o=$t(xt),t===null?(d=Td(),d===null&&(d=it,h=Ed(),d.pooledCache=h,h.refCount++,h!==null&&(d.pooledCacheLanes|=i),d=h),a.memoizedState={parent:o,cache:d},jd(a),os(a,xt,d)):((t.lanes&i)!==0&&(Nd(t,a),Qr(a,null,null,i),Xr()),d=t.memoizedState,h=a.memoizedState,d.parent!==o?(d={parent:o,cache:o},a.memoizedState=d,a.lanes===0&&(a.memoizedState=a.updateQueue.baseState=d),os(a,xt,o)):(o=h.cache,os(a,xt,o),o!==d.cache&&Sd(a,[xt],i,!0))),Dt(t,a,a.pendingProps.children,i),a.child;case 29:throw a.pendingProps}throw Error(r(156,a.tag))}function Na(t){t.flags|=4}function uf(t,a,i,o,d){if((a=(t.mode&32)!==0)&&(a=!1),a){if(t.flags|=16777216,(d&335544128)===d)if(t.stateNode.complete)t.flags|=8192;else if(mb())t.flags|=8192;else throw Qs=Zl,kd}else t.flags&=-16777217}function Gy(t,a){if(a.type!=="stylesheet"||(a.state.loading&4)!==0)t.flags&=-16777217;else if(t.flags|=16777216,!s1(a))if(mb())t.flags|=8192;else throw Qs=Zl,kd}function fc(t,a){a!==null&&(t.flags|=4),t.flags&16384&&(a=t.tag!==22?Sp():536870912,t.lanes|=a,Xi|=a)}function ao(t,a){if(!qe)switch(t.tailMode){case"hidden":a=t.tail;for(var i=null;a!==null;)a.alternate!==null&&(i=a),a=a.sibling;i===null?t.tail=null:i.sibling=null;break;case"collapsed":i=t.tail;for(var o=null;i!==null;)i.alternate!==null&&(o=i),i=i.sibling;o===null?a||t.tail===null?t.tail=null:t.tail.sibling=null:o.sibling=null}}function lt(t){var a=t.alternate!==null&&t.alternate.child===t.child,i=0,o=0;if(a)for(var d=t.child;d!==null;)i|=d.lanes|d.childLanes,o|=d.subtreeFlags&65011712,o|=d.flags&65011712,d.return=t,d=d.sibling;else for(d=t.child;d!==null;)i|=d.lanes|d.childLanes,o|=d.subtreeFlags,o|=d.flags,d.return=t,d=d.sibling;return t.subtreeFlags|=o,t.childLanes=i,a}function ww(t,a,i){var o=a.pendingProps;switch(bd(a),a.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return lt(a),null;case 1:return lt(a),null;case 3:return i=a.stateNode,o=null,t!==null&&(o=t.memoizedState.cache),a.memoizedState.cache!==o&&(a.flags|=2048),Aa(xt),me(),i.pendingContext&&(i.context=i.pendingContext,i.pendingContext=null),(t===null||t.child===null)&&(Di(a)?Na(a):t===null||t.memoizedState.isDehydrated&&(a.flags&256)===0||(a.flags|=1024,vd())),lt(a),null;case 26:var d=a.type,h=a.memoizedState;return t===null?(Na(a),h!==null?(lt(a),Gy(a,h)):(lt(a),uf(a,d,null,o,i))):h?h!==t.memoizedState?(Na(a),lt(a),Gy(a,h)):(lt(a),a.flags&=-16777217):(t=t.memoizedProps,t!==o&&Na(a),lt(a),uf(a,d,t,o,i)),null;case 27:if(Te(a),i=ue.current,d=a.type,t!==null&&a.stateNode!=null)t.memoizedProps!==o&&Na(a);else{if(!o){if(a.stateNode===null)throw Error(r(166));return lt(a),null}t=H.current,Di(a)?Sm(a):(t=Xb(d,o,i),a.stateNode=t,Na(a))}return lt(a),null;case 5:if(Te(a),d=a.type,t!==null&&a.stateNode!=null)t.memoizedProps!==o&&Na(a);else{if(!o){if(a.stateNode===null)throw Error(r(166));return lt(a),null}if(h=H.current,Di(a))Sm(a);else{var v=jc(ue.current);switch(h){case 1:h=v.createElementNS("http://www.w3.org/2000/svg",d);break;case 2:h=v.createElementNS("http://www.w3.org/1998/Math/MathML",d);break;default:switch(d){case"svg":h=v.createElementNS("http://www.w3.org/2000/svg",d);break;case"math":h=v.createElementNS("http://www.w3.org/1998/Math/MathML",d);break;case"script":h=v.createElement("div"),h.innerHTML="<script><\/script>",h=h.removeChild(h.firstChild);break;case"select":h=typeof o.is=="string"?v.createElement("select",{is:o.is}):v.createElement("select"),o.multiple?h.multiple=!0:o.size&&(h.size=o.size);break;default:h=typeof o.is=="string"?v.createElement(d,{is:o.is}):v.createElement(d)}}h[zt]=a,h[Jt]=o;e:for(v=a.child;v!==null;){if(v.tag===5||v.tag===6)h.appendChild(v.stateNode);else if(v.tag!==4&&v.tag!==27&&v.child!==null){v.child.return=v,v=v.child;continue}if(v===a)break e;for(;v.sibling===null;){if(v.return===null||v.return===a)break e;v=v.return}v.sibling.return=v.return,v=v.sibling}a.stateNode=h;e:switch(Ut(h,d,o),d){case"button":case"input":case"select":case"textarea":o=!!o.autoFocus;break e;case"img":o=!0;break e;default:o=!1}o&&Na(a)}}return lt(a),uf(a,a.type,t===null?null:t.memoizedProps,a.pendingProps,i),null;case 6:if(t&&a.stateNode!=null)t.memoizedProps!==o&&Na(a);else{if(typeof o!="string"&&a.stateNode===null)throw Error(r(166));if(t=ue.current,Di(a)){if(t=a.stateNode,i=a.memoizedProps,o=null,d=_t,d!==null)switch(d.tag){case 27:case 5:o=d.memoizedProps}t[zt]=a,t=!!(t.nodeValue===i||o!==null&&o.suppressHydrationWarning===!0||qb(t.nodeValue,i)),t||rs(a,!0)}else t=jc(t).createTextNode(o),t[zt]=a,a.stateNode=t}return lt(a),null;case 31:if(i=a.memoizedState,t===null||t.memoizedState!==null){if(o=Di(a),i!==null){if(t===null){if(!o)throw Error(r(318));if(t=a.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(r(557));t[zt]=a}else Vs(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;lt(a),t=!1}else i=vd(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=i),t=!0;if(!t)return a.flags&256?(gn(a),a):(gn(a),null);if((a.flags&128)!==0)throw Error(r(558))}return lt(a),null;case 13:if(o=a.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(d=Di(a),o!==null&&o.dehydrated!==null){if(t===null){if(!d)throw Error(r(318));if(d=a.memoizedState,d=d!==null?d.dehydrated:null,!d)throw Error(r(317));d[zt]=a}else Vs(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;lt(a),d=!1}else d=vd(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=d),d=!0;if(!d)return a.flags&256?(gn(a),a):(gn(a),null)}return gn(a),(a.flags&128)!==0?(a.lanes=i,a):(i=o!==null,t=t!==null&&t.memoizedState!==null,i&&(o=a.child,d=null,o.alternate!==null&&o.alternate.memoizedState!==null&&o.alternate.memoizedState.cachePool!==null&&(d=o.alternate.memoizedState.cachePool.pool),h=null,o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(h=o.memoizedState.cachePool.pool),h!==d&&(o.flags|=2048)),i!==t&&i&&(a.child.flags|=8192),fc(a,a.updateQueue),lt(a),null);case 4:return me(),t===null&&Cf(a.stateNode.containerInfo),lt(a),null;case 10:return Aa(a.type),lt(a),null;case 19:if(P(gt),o=a.memoizedState,o===null)return lt(a),null;if(d=(a.flags&128)!==0,h=o.rendering,h===null)if(d)ao(o,!1);else{if(ht!==0||t!==null&&(t.flags&128)!==0)for(t=a.child;t!==null;){if(h=Wl(t),h!==null){for(a.flags|=128,ao(o,!1),t=h.updateQueue,a.updateQueue=t,fc(a,t),a.subtreeFlags=0,t=i,i=a.child;i!==null;)bm(i,t),i=i.sibling;return ie(gt,gt.current&1|2),qe&&Sa(a,o.treeForkCount),a.child}t=t.sibling}o.tail!==null&&ke()>bc&&(a.flags|=128,d=!0,ao(o,!1),a.lanes=4194304)}else{if(!d)if(t=Wl(h),t!==null){if(a.flags|=128,d=!0,t=t.updateQueue,a.updateQueue=t,fc(a,t),ao(o,!0),o.tail===null&&o.tailMode==="hidden"&&!h.alternate&&!qe)return lt(a),null}else 2*ke()-o.renderingStartTime>bc&&i!==536870912&&(a.flags|=128,d=!0,ao(o,!1),a.lanes=4194304);o.isBackwards?(h.sibling=a.child,a.child=h):(t=o.last,t!==null?t.sibling=h:a.child=h,o.last=h)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=ke(),t.sibling=null,i=gt.current,ie(gt,d?i&1|2:i&1),qe&&Sa(a,o.treeForkCount),t):(lt(a),null);case 22:case 23:return gn(a),Cd(),o=a.memoizedState!==null,t!==null?t.memoizedState!==null!==o&&(a.flags|=8192):o&&(a.flags|=8192),o?(i&536870912)!==0&&(a.flags&128)===0&&(lt(a),a.subtreeFlags&6&&(a.flags|=8192)):lt(a),i=a.updateQueue,i!==null&&fc(a,i.retryQueue),i=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(i=t.memoizedState.cachePool.pool),o=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(o=a.memoizedState.cachePool.pool),o!==i&&(a.flags|=2048),t!==null&&P(Zs),null;case 24:return i=null,t!==null&&(i=t.memoizedState.cache),a.memoizedState.cache!==i&&(a.flags|=2048),Aa(xt),lt(a),null;case 25:return null;case 30:return null}throw Error(r(156,a.tag))}function xw(t,a){switch(bd(a),a.tag){case 1:return t=a.flags,t&65536?(a.flags=t&-65537|128,a):null;case 3:return Aa(xt),me(),t=a.flags,(t&65536)!==0&&(t&128)===0?(a.flags=t&-65537|128,a):null;case 26:case 27:case 5:return Te(a),null;case 31:if(a.memoizedState!==null){if(gn(a),a.alternate===null)throw Error(r(340));Vs()}return t=a.flags,t&65536?(a.flags=t&-65537|128,a):null;case 13:if(gn(a),t=a.memoizedState,t!==null&&t.dehydrated!==null){if(a.alternate===null)throw Error(r(340));Vs()}return t=a.flags,t&65536?(a.flags=t&-65537|128,a):null;case 19:return P(gt),null;case 4:return me(),null;case 10:return Aa(a.type),null;case 22:case 23:return gn(a),Cd(),t!==null&&P(Zs),t=a.flags,t&65536?(a.flags=t&-65537|128,a):null;case 24:return Aa(xt),null;case 25:return null;default:return null}}function Py(t,a){switch(bd(a),a.tag){case 3:Aa(xt),me();break;case 26:case 27:case 5:Te(a);break;case 4:me();break;case 31:a.memoizedState!==null&&gn(a);break;case 13:gn(a);break;case 19:P(gt);break;case 10:Aa(a.type);break;case 22:case 23:gn(a),Cd(),t!==null&&P(Zs);break;case 24:Aa(xt)}}function so(t,a){try{var i=a.updateQueue,o=i!==null?i.lastEffect:null;if(o!==null){var d=o.next;i=d;do{if((i.tag&t)===t){o=void 0;var h=i.create,v=i.inst;o=h(),v.destroy=o}i=i.next}while(i!==d)}}catch(E){Xe(a,a.return,E)}}function hs(t,a,i){try{var o=a.updateQueue,d=o!==null?o.lastEffect:null;if(d!==null){var h=d.next;o=h;do{if((o.tag&t)===t){var v=o.inst,E=v.destroy;if(E!==void 0){v.destroy=void 0,d=a;var N=i,q=E;try{q()}catch(Q){Xe(d,N,Q)}}}o=o.next}while(o!==h)}}catch(Q){Xe(a,a.return,Q)}}function Ky(t){var a=t.updateQueue;if(a!==null){var i=t.stateNode;try{_m(a,i)}catch(o){Xe(t,t.return,o)}}}function Vy(t,a,i){i.props=ei(t.type,t.memoizedProps),i.state=t.memoizedState;try{i.componentWillUnmount()}catch(o){Xe(t,a,o)}}function io(t,a){try{var i=t.ref;if(i!==null){switch(t.tag){case 26:case 27:case 5:var o=t.stateNode;break;case 30:o=t.stateNode;break;default:o=t.stateNode}typeof i=="function"?t.refCleanup=i(o):i.current=o}}catch(d){Xe(t,a,d)}}function ra(t,a){var i=t.ref,o=t.refCleanup;if(i!==null)if(typeof o=="function")try{o()}catch(d){Xe(t,a,d)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof i=="function")try{i(null)}catch(d){Xe(t,a,d)}else i.current=null}function Fy(t){var a=t.type,i=t.memoizedProps,o=t.stateNode;try{e:switch(a){case"button":case"input":case"select":case"textarea":i.autoFocus&&o.focus();break e;case"img":i.src?o.src=i.src:i.srcSet&&(o.srcset=i.srcSet)}}catch(d){Xe(t,t.return,d)}}function df(t,a,i){try{var o=t.stateNode;Gw(o,t.type,i,a),o[Jt]=a}catch(d){Xe(t,t.return,d)}}function Yy(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&ws(t.type)||t.tag===4}function ff(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||Yy(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&ws(t.type)||t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function hf(t,a,i){var o=t.tag;if(o===5||o===6)t=t.stateNode,a?(i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i).insertBefore(t,a):(a=i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i,a.appendChild(t),i=i._reactRootContainer,i!=null||a.onclick!==null||(a.onclick=va));else if(o!==4&&(o===27&&ws(t.type)&&(i=t.stateNode,a=null),t=t.child,t!==null))for(hf(t,a,i),t=t.sibling;t!==null;)hf(t,a,i),t=t.sibling}function hc(t,a,i){var o=t.tag;if(o===5||o===6)t=t.stateNode,a?i.insertBefore(t,a):i.appendChild(t);else if(o!==4&&(o===27&&ws(t.type)&&(i=t.stateNode),t=t.child,t!==null))for(hc(t,a,i),t=t.sibling;t!==null;)hc(t,a,i),t=t.sibling}function Zy(t){var a=t.stateNode,i=t.memoizedProps;try{for(var o=t.type,d=a.attributes;d.length;)a.removeAttributeNode(d[0]);Ut(a,o,i),a[zt]=t,a[Jt]=i}catch(h){Xe(t,t.return,h)}}var Ba=!1,At=!1,pf=!1,Xy=typeof WeakSet=="function"?WeakSet:Set,Mt=null;function Sw(t,a){if(t=t.containerInfo,_f=zc,t=lm(t),rd(t)){if("selectionStart"in t)var i={start:t.selectionStart,end:t.selectionEnd};else e:{i=(i=t.ownerDocument)&&i.defaultView||window;var o=i.getSelection&&i.getSelection();if(o&&o.rangeCount!==0){i=o.anchorNode;var d=o.anchorOffset,h=o.focusNode;o=o.focusOffset;try{i.nodeType,h.nodeType}catch{i=null;break e}var v=0,E=-1,N=-1,q=0,Q=0,ne=t,I=null;t:for(;;){for(var F;ne!==i||d!==0&&ne.nodeType!==3||(E=v+d),ne!==h||o!==0&&ne.nodeType!==3||(N=v+o),ne.nodeType===3&&(v+=ne.nodeValue.length),(F=ne.firstChild)!==null;)I=ne,ne=F;for(;;){if(ne===t)break t;if(I===i&&++q===d&&(E=v),I===h&&++Q===o&&(N=v),(F=ne.nextSibling)!==null)break;ne=I,I=ne.parentNode}ne=F}i=E===-1||N===-1?null:{start:E,end:N}}else i=null}i=i||{start:0,end:0}}else i=null;for($f={focusedElem:t,selectionRange:i},zc=!1,Mt=a;Mt!==null;)if(a=Mt,t=a.child,(a.subtreeFlags&1028)!==0&&t!==null)t.return=a,Mt=t;else for(;Mt!==null;){switch(a=Mt,h=a.alternate,t=a.flags,a.tag){case 0:if((t&4)!==0&&(t=a.updateQueue,t=t!==null?t.events:null,t!==null))for(i=0;i<t.length;i++)d=t[i],d.ref.impl=d.nextImpl;break;case 11:case 15:break;case 1:if((t&1024)!==0&&h!==null){t=void 0,i=a,d=h.memoizedProps,h=h.memoizedState,o=i.stateNode;try{var fe=ei(i.type,d);t=o.getSnapshotBeforeUpdate(fe,h),o.__reactInternalSnapshotBeforeUpdate=t}catch(Se){Xe(i,i.return,Se)}}break;case 3:if((t&1024)!==0){if(t=a.stateNode.containerInfo,i=t.nodeType,i===9)qf(t);else if(i===1)switch(t.nodeName){case"HEAD":case"HTML":case"BODY":qf(t);break;default:t.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((t&1024)!==0)throw Error(r(163))}if(t=a.sibling,t!==null){t.return=a.return,Mt=t;break}Mt=a.return}}function Qy(t,a,i){var o=i.flags;switch(i.tag){case 0:case 11:case 15:Ma(t,i),o&4&&so(5,i);break;case 1:if(Ma(t,i),o&4)if(t=i.stateNode,a===null)try{t.componentDidMount()}catch(v){Xe(i,i.return,v)}else{var d=ei(i.type,a.memoizedProps);a=a.memoizedState;try{t.componentDidUpdate(d,a,t.__reactInternalSnapshotBeforeUpdate)}catch(v){Xe(i,i.return,v)}}o&64&&Ky(i),o&512&&io(i,i.return);break;case 3:if(Ma(t,i),o&64&&(t=i.updateQueue,t!==null)){if(a=null,i.child!==null)switch(i.child.tag){case 27:case 5:a=i.child.stateNode;break;case 1:a=i.child.stateNode}try{_m(t,a)}catch(v){Xe(i,i.return,v)}}break;case 27:a===null&&o&4&&Zy(i);case 26:case 5:Ma(t,i),a===null&&o&4&&Fy(i),o&512&&io(i,i.return);break;case 12:Ma(t,i);break;case 31:Ma(t,i),o&4&&eb(t,i);break;case 13:Ma(t,i),o&4&&tb(t,i),o&64&&(t=i.memoizedState,t!==null&&(t=t.dehydrated,t!==null&&(i=Mw.bind(null,i),Qw(t,i))));break;case 22:if(o=i.memoizedState!==null||Ba,!o){a=a!==null&&a.memoizedState!==null||At,d=Ba;var h=At;Ba=o,(At=a)&&!h?Ca(t,i,(i.subtreeFlags&8772)!==0):Ma(t,i),Ba=d,At=h}break;case 30:break;default:Ma(t,i)}}function Jy(t){var a=t.alternate;a!==null&&(t.alternate=null,Jy(a)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(a=t.stateNode,a!==null&&Gu(a)),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}var ut=null,en=!1;function Ra(t,a,i){for(i=i.child;i!==null;)Wy(t,a,i),i=i.sibling}function Wy(t,a,i){if(He&&typeof He.onCommitFiberUnmount=="function")try{He.onCommitFiberUnmount($e,i)}catch{}switch(i.tag){case 26:At||ra(i,a),Ra(t,a,i),i.memoizedState?i.memoizedState.count--:i.stateNode&&(i=i.stateNode,i.parentNode.removeChild(i));break;case 27:At||ra(i,a);var o=ut,d=en;ws(i.type)&&(ut=i.stateNode,en=!1),Ra(t,a,i),mo(i.stateNode),ut=o,en=d;break;case 5:At||ra(i,a);case 6:if(o=ut,d=en,ut=null,Ra(t,a,i),ut=o,en=d,ut!==null)if(en)try{(ut.nodeType===9?ut.body:ut.nodeName==="HTML"?ut.ownerDocument.body:ut).removeChild(i.stateNode)}catch(h){Xe(i,a,h)}else try{ut.removeChild(i.stateNode)}catch(h){Xe(i,a,h)}break;case 18:ut!==null&&(en?(t=ut,Kb(t.nodeType===9?t.body:t.nodeName==="HTML"?t.ownerDocument.body:t,i.stateNode),sr(t)):Kb(ut,i.stateNode));break;case 4:o=ut,d=en,ut=i.stateNode.containerInfo,en=!0,Ra(t,a,i),ut=o,en=d;break;case 0:case 11:case 14:case 15:hs(2,i,a),At||hs(4,i,a),Ra(t,a,i);break;case 1:At||(ra(i,a),o=i.stateNode,typeof o.componentWillUnmount=="function"&&Vy(i,a,o)),Ra(t,a,i);break;case 21:Ra(t,a,i);break;case 22:At=(o=At)||i.memoizedState!==null,Ra(t,a,i),At=o;break;default:Ra(t,a,i)}}function eb(t,a){if(a.memoizedState===null&&(t=a.alternate,t!==null&&(t=t.memoizedState,t!==null))){t=t.dehydrated;try{sr(t)}catch(i){Xe(a,a.return,i)}}}function tb(t,a){if(a.memoizedState===null&&(t=a.alternate,t!==null&&(t=t.memoizedState,t!==null&&(t=t.dehydrated,t!==null))))try{sr(t)}catch(i){Xe(a,a.return,i)}}function Ew(t){switch(t.tag){case 31:case 13:case 19:var a=t.stateNode;return a===null&&(a=t.stateNode=new Xy),a;case 22:return t=t.stateNode,a=t._retryCache,a===null&&(a=t._retryCache=new Xy),a;default:throw Error(r(435,t.tag))}}function pc(t,a){var i=Ew(t);a.forEach(function(o){if(!i.has(o)){i.add(o);var d=Cw.bind(null,t,o);o.then(d,d)}})}function tn(t,a){var i=a.deletions;if(i!==null)for(var o=0;o<i.length;o++){var d=i[o],h=t,v=a,E=v;e:for(;E!==null;){switch(E.tag){case 27:if(ws(E.type)){ut=E.stateNode,en=!1;break e}break;case 5:ut=E.stateNode,en=!1;break e;case 3:case 4:ut=E.stateNode.containerInfo,en=!0;break e}E=E.return}if(ut===null)throw Error(r(160));Wy(h,v,d),ut=null,en=!1,h=d.alternate,h!==null&&(h.return=null),d.return=null}if(a.subtreeFlags&13886)for(a=a.child;a!==null;)nb(a,t),a=a.sibling}var Kn=null;function nb(t,a){var i=t.alternate,o=t.flags;switch(t.tag){case 0:case 11:case 14:case 15:tn(a,t),nn(t),o&4&&(hs(3,t,t.return),so(3,t),hs(5,t,t.return));break;case 1:tn(a,t),nn(t),o&512&&(At||i===null||ra(i,i.return)),o&64&&Ba&&(t=t.updateQueue,t!==null&&(o=t.callbacks,o!==null&&(i=t.shared.hiddenCallbacks,t.shared.hiddenCallbacks=i===null?o:i.concat(o))));break;case 26:var d=Kn;if(tn(a,t),nn(t),o&512&&(At||i===null||ra(i,i.return)),o&4){var h=i!==null?i.memoizedState:null;if(o=t.memoizedState,i===null)if(o===null)if(t.stateNode===null){e:{o=t.type,i=t.memoizedProps,d=d.ownerDocument||d;t:switch(o){case"title":h=d.getElementsByTagName("title")[0],(!h||h[Cr]||h[zt]||h.namespaceURI==="http://www.w3.org/2000/svg"||h.hasAttribute("itemprop"))&&(h=d.createElement(o),d.head.insertBefore(h,d.querySelector("head > title"))),Ut(h,o,i),h[zt]=t,Rt(h),o=h;break e;case"link":var v=n1("link","href",d).get(o+(i.href||""));if(v){for(var E=0;E<v.length;E++)if(h=v[E],h.getAttribute("href")===(i.href==null||i.href===""?null:i.href)&&h.getAttribute("rel")===(i.rel==null?null:i.rel)&&h.getAttribute("title")===(i.title==null?null:i.title)&&h.getAttribute("crossorigin")===(i.crossOrigin==null?null:i.crossOrigin)){v.splice(E,1);break t}}h=d.createElement(o),Ut(h,o,i),d.head.appendChild(h);break;case"meta":if(v=n1("meta","content",d).get(o+(i.content||""))){for(E=0;E<v.length;E++)if(h=v[E],h.getAttribute("content")===(i.content==null?null:""+i.content)&&h.getAttribute("name")===(i.name==null?null:i.name)&&h.getAttribute("property")===(i.property==null?null:i.property)&&h.getAttribute("http-equiv")===(i.httpEquiv==null?null:i.httpEquiv)&&h.getAttribute("charset")===(i.charSet==null?null:i.charSet)){v.splice(E,1);break t}}h=d.createElement(o),Ut(h,o,i),d.head.appendChild(h);break;default:throw Error(r(468,o))}h[zt]=t,Rt(h),o=h}t.stateNode=o}else a1(d,t.type,t.stateNode);else t.stateNode=t1(d,o,t.memoizedProps);else h!==o?(h===null?i.stateNode!==null&&(i=i.stateNode,i.parentNode.removeChild(i)):h.count--,o===null?a1(d,t.type,t.stateNode):t1(d,o,t.memoizedProps)):o===null&&t.stateNode!==null&&df(t,t.memoizedProps,i.memoizedProps)}break;case 27:tn(a,t),nn(t),o&512&&(At||i===null||ra(i,i.return)),i!==null&&o&4&&df(t,t.memoizedProps,i.memoizedProps);break;case 5:if(tn(a,t),nn(t),o&512&&(At||i===null||ra(i,i.return)),t.flags&32){d=t.stateNode;try{ji(d,"")}catch(fe){Xe(t,t.return,fe)}}o&4&&t.stateNode!=null&&(d=t.memoizedProps,df(t,d,i!==null?i.memoizedProps:d)),o&1024&&(pf=!0);break;case 6:if(tn(a,t),nn(t),o&4){if(t.stateNode===null)throw Error(r(162));o=t.memoizedProps,i=t.stateNode;try{i.nodeValue=o}catch(fe){Xe(t,t.return,fe)}}break;case 3:if(Rc=null,d=Kn,Kn=Nc(a.containerInfo),tn(a,t),Kn=d,nn(t),o&4&&i!==null&&i.memoizedState.isDehydrated)try{sr(a.containerInfo)}catch(fe){Xe(t,t.return,fe)}pf&&(pf=!1,ab(t));break;case 4:o=Kn,Kn=Nc(t.stateNode.containerInfo),tn(a,t),nn(t),Kn=o;break;case 12:tn(a,t),nn(t);break;case 31:tn(a,t),nn(t),o&4&&(o=t.updateQueue,o!==null&&(t.updateQueue=null,pc(t,o)));break;case 13:tn(a,t),nn(t),t.child.flags&8192&&t.memoizedState!==null!=(i!==null&&i.memoizedState!==null)&&(yc=ke()),o&4&&(o=t.updateQueue,o!==null&&(t.updateQueue=null,pc(t,o)));break;case 22:d=t.memoizedState!==null;var N=i!==null&&i.memoizedState!==null,q=Ba,Q=At;if(Ba=q||d,At=Q||N,tn(a,t),At=Q,Ba=q,nn(t),o&8192)e:for(a=t.stateNode,a._visibility=d?a._visibility&-2:a._visibility|1,d&&(i===null||N||Ba||At||ti(t)),i=null,a=t;;){if(a.tag===5||a.tag===26){if(i===null){N=i=a;try{if(h=N.stateNode,d)v=h.style,typeof v.setProperty=="function"?v.setProperty("display","none","important"):v.display="none";else{E=N.stateNode;var ne=N.memoizedProps.style,I=ne!=null&&ne.hasOwnProperty("display")?ne.display:null;E.style.display=I==null||typeof I=="boolean"?"":(""+I).trim()}}catch(fe){Xe(N,N.return,fe)}}}else if(a.tag===6){if(i===null){N=a;try{N.stateNode.nodeValue=d?"":N.memoizedProps}catch(fe){Xe(N,N.return,fe)}}}else if(a.tag===18){if(i===null){N=a;try{var F=N.stateNode;d?Vb(F,!0):Vb(N.stateNode,!1)}catch(fe){Xe(N,N.return,fe)}}}else if((a.tag!==22&&a.tag!==23||a.memoizedState===null||a===t)&&a.child!==null){a.child.return=a,a=a.child;continue}if(a===t)break e;for(;a.sibling===null;){if(a.return===null||a.return===t)break e;i===a&&(i=null),a=a.return}i===a&&(i=null),a.sibling.return=a.return,a=a.sibling}o&4&&(o=t.updateQueue,o!==null&&(i=o.retryQueue,i!==null&&(o.retryQueue=null,pc(t,i))));break;case 19:tn(a,t),nn(t),o&4&&(o=t.updateQueue,o!==null&&(t.updateQueue=null,pc(t,o)));break;case 30:break;case 21:break;default:tn(a,t),nn(t)}}function nn(t){var a=t.flags;if(a&2){try{for(var i,o=t.return;o!==null;){if(Yy(o)){i=o;break}o=o.return}if(i==null)throw Error(r(160));switch(i.tag){case 27:var d=i.stateNode,h=ff(t);hc(t,h,d);break;case 5:var v=i.stateNode;i.flags&32&&(ji(v,""),i.flags&=-33);var E=ff(t);hc(t,E,v);break;case 3:case 4:var N=i.stateNode.containerInfo,q=ff(t);hf(t,q,N);break;default:throw Error(r(161))}}catch(Q){Xe(t,t.return,Q)}t.flags&=-3}a&4096&&(t.flags&=-4097)}function ab(t){if(t.subtreeFlags&1024)for(t=t.child;t!==null;){var a=t;ab(a),a.tag===5&&a.flags&1024&&a.stateNode.reset(),t=t.sibling}}function Ma(t,a){if(a.subtreeFlags&8772)for(a=a.child;a!==null;)Qy(t,a.alternate,a),a=a.sibling}function ti(t){for(t=t.child;t!==null;){var a=t;switch(a.tag){case 0:case 11:case 14:case 15:hs(4,a,a.return),ti(a);break;case 1:ra(a,a.return);var i=a.stateNode;typeof i.componentWillUnmount=="function"&&Vy(a,a.return,i),ti(a);break;case 27:mo(a.stateNode);case 26:case 5:ra(a,a.return),ti(a);break;case 22:a.memoizedState===null&&ti(a);break;case 30:ti(a);break;default:ti(a)}t=t.sibling}}function Ca(t,a,i){for(i=i&&(a.subtreeFlags&8772)!==0,a=a.child;a!==null;){var o=a.alternate,d=t,h=a,v=h.flags;switch(h.tag){case 0:case 11:case 15:Ca(d,h,i),so(4,h);break;case 1:if(Ca(d,h,i),o=h,d=o.stateNode,typeof d.componentDidMount=="function")try{d.componentDidMount()}catch(q){Xe(o,o.return,q)}if(o=h,d=o.updateQueue,d!==null){var E=o.stateNode;try{var N=d.shared.hiddenCallbacks;if(N!==null)for(d.shared.hiddenCallbacks=null,d=0;d<N.length;d++)zm(N[d],E)}catch(q){Xe(o,o.return,q)}}i&&v&64&&Ky(h),io(h,h.return);break;case 27:Zy(h);case 26:case 5:Ca(d,h,i),i&&o===null&&v&4&&Fy(h),io(h,h.return);break;case 12:Ca(d,h,i);break;case 31:Ca(d,h,i),i&&v&4&&eb(d,h);break;case 13:Ca(d,h,i),i&&v&4&&tb(d,h);break;case 22:h.memoizedState===null&&Ca(d,h,i),io(h,h.return);break;case 30:break;default:Ca(d,h,i)}a=a.sibling}}function mf(t,a){var i=null;t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(i=t.memoizedState.cachePool.pool),t=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(t=a.memoizedState.cachePool.pool),t!==i&&(t!=null&&t.refCount++,i!=null&&Kr(i))}function yf(t,a){t=null,a.alternate!==null&&(t=a.alternate.memoizedState.cache),a=a.memoizedState.cache,a!==t&&(a.refCount++,t!=null&&Kr(t))}function Vn(t,a,i,o){if(a.subtreeFlags&10256)for(a=a.child;a!==null;)sb(t,a,i,o),a=a.sibling}function sb(t,a,i,o){var d=a.flags;switch(a.tag){case 0:case 11:case 15:Vn(t,a,i,o),d&2048&&so(9,a);break;case 1:Vn(t,a,i,o);break;case 3:Vn(t,a,i,o),d&2048&&(t=null,a.alternate!==null&&(t=a.alternate.memoizedState.cache),a=a.memoizedState.cache,a!==t&&(a.refCount++,t!=null&&Kr(t)));break;case 12:if(d&2048){Vn(t,a,i,o),t=a.stateNode;try{var h=a.memoizedProps,v=h.id,E=h.onPostCommit;typeof E=="function"&&E(v,a.alternate===null?"mount":"update",t.passiveEffectDuration,-0)}catch(N){Xe(a,a.return,N)}}else Vn(t,a,i,o);break;case 31:Vn(t,a,i,o);break;case 13:Vn(t,a,i,o);break;case 23:break;case 22:h=a.stateNode,v=a.alternate,a.memoizedState!==null?h._visibility&2?Vn(t,a,i,o):ro(t,a):h._visibility&2?Vn(t,a,i,o):(h._visibility|=2,Fi(t,a,i,o,(a.subtreeFlags&10256)!==0||!1)),d&2048&&mf(v,a);break;case 24:Vn(t,a,i,o),d&2048&&yf(a.alternate,a);break;default:Vn(t,a,i,o)}}function Fi(t,a,i,o,d){for(d=d&&((a.subtreeFlags&10256)!==0||!1),a=a.child;a!==null;){var h=t,v=a,E=i,N=o,q=v.flags;switch(v.tag){case 0:case 11:case 15:Fi(h,v,E,N,d),so(8,v);break;case 23:break;case 22:var Q=v.stateNode;v.memoizedState!==null?Q._visibility&2?Fi(h,v,E,N,d):ro(h,v):(Q._visibility|=2,Fi(h,v,E,N,d)),d&&q&2048&&mf(v.alternate,v);break;case 24:Fi(h,v,E,N,d),d&&q&2048&&yf(v.alternate,v);break;default:Fi(h,v,E,N,d)}a=a.sibling}}function ro(t,a){if(a.subtreeFlags&10256)for(a=a.child;a!==null;){var i=t,o=a,d=o.flags;switch(o.tag){case 22:ro(i,o),d&2048&&mf(o.alternate,o);break;case 24:ro(i,o),d&2048&&yf(o.alternate,o);break;default:ro(i,o)}a=a.sibling}}var oo=8192;function Yi(t,a,i){if(t.subtreeFlags&oo)for(t=t.child;t!==null;)ib(t,a,i),t=t.sibling}function ib(t,a,i){switch(t.tag){case 26:Yi(t,a,i),t.flags&oo&&t.memoizedState!==null&&cx(i,Kn,t.memoizedState,t.memoizedProps);break;case 5:Yi(t,a,i);break;case 3:case 4:var o=Kn;Kn=Nc(t.stateNode.containerInfo),Yi(t,a,i),Kn=o;break;case 22:t.memoizedState===null&&(o=t.alternate,o!==null&&o.memoizedState!==null?(o=oo,oo=16777216,Yi(t,a,i),oo=o):Yi(t,a,i));break;default:Yi(t,a,i)}}function rb(t){var a=t.alternate;if(a!==null&&(t=a.child,t!==null)){a.child=null;do a=t.sibling,t.sibling=null,t=a;while(t!==null)}}function lo(t){var a=t.deletions;if((t.flags&16)!==0){if(a!==null)for(var i=0;i<a.length;i++){var o=a[i];Mt=o,lb(o,t)}rb(t)}if(t.subtreeFlags&10256)for(t=t.child;t!==null;)ob(t),t=t.sibling}function ob(t){switch(t.tag){case 0:case 11:case 15:lo(t),t.flags&2048&&hs(9,t,t.return);break;case 3:lo(t);break;case 12:lo(t);break;case 22:var a=t.stateNode;t.memoizedState!==null&&a._visibility&2&&(t.return===null||t.return.tag!==13)?(a._visibility&=-3,mc(t)):lo(t);break;default:lo(t)}}function mc(t){var a=t.deletions;if((t.flags&16)!==0){if(a!==null)for(var i=0;i<a.length;i++){var o=a[i];Mt=o,lb(o,t)}rb(t)}for(t=t.child;t!==null;){switch(a=t,a.tag){case 0:case 11:case 15:hs(8,a,a.return),mc(a);break;case 22:i=a.stateNode,i._visibility&2&&(i._visibility&=-3,mc(a));break;default:mc(a)}t=t.sibling}}function lb(t,a){for(;Mt!==null;){var i=Mt;switch(i.tag){case 0:case 11:case 15:hs(8,i,a);break;case 23:case 22:if(i.memoizedState!==null&&i.memoizedState.cachePool!==null){var o=i.memoizedState.cachePool.pool;o!=null&&o.refCount++}break;case 24:Kr(i.memoizedState.cache)}if(o=i.child,o!==null)o.return=i,Mt=o;else e:for(i=t;Mt!==null;){o=Mt;var d=o.sibling,h=o.return;if(Jy(o),o===i){Mt=null;break e}if(d!==null){d.return=h,Mt=d;break e}Mt=h}}}var Aw={getCacheForType:function(t){var a=$t(xt),i=a.data.get(t);return i===void 0&&(i=t(),a.data.set(t,i)),i},cacheSignal:function(){return $t(xt).controller.signal}},Tw=typeof WeakMap=="function"?WeakMap:Map,Fe=0,it=null,ze=null,De=0,Ze=0,vn=null,ps=!1,Zi=!1,bf=!1,Oa=0,ht=0,ms=0,ni=0,gf=0,wn=0,Xi=0,co=null,an=null,vf=!1,yc=0,cb=0,bc=1/0,gc=null,ys=null,kt=0,bs=null,Qi=null,za=0,wf=0,xf=null,ub=null,uo=0,Sf=null;function xn(){return(Fe&2)!==0&&De!==0?De&-De:R.T!==null?Nf():kp()}function db(){if(wn===0)if((De&536870912)===0||qe){var t=kl;kl<<=1,(kl&3932160)===0&&(kl=262144),wn=t}else wn=536870912;return t=bn.current,t!==null&&(t.flags|=32),wn}function sn(t,a,i){(t===it&&(Ze===2||Ze===9)||t.cancelPendingCommit!==null)&&(Ji(t,0),gs(t,De,wn,!1)),Mr(t,i),((Fe&2)===0||t!==it)&&(t===it&&((Fe&2)===0&&(ni|=i),ht===4&&gs(t,De,wn,!1)),oa(t))}function fb(t,a,i){if((Fe&6)!==0)throw Error(r(327));var o=!i&&(a&127)===0&&(a&t.expiredLanes)===0||Rr(t,a),d=o?Nw(t,a):Af(t,a,!0),h=o;do{if(d===0){Zi&&!o&&gs(t,a,0,!1);break}else{if(i=t.current.alternate,h&&!kw(i)){d=Af(t,a,!1),h=!1;continue}if(d===2){if(h=a,t.errorRecoveryDisabledLanes&h)var v=0;else v=t.pendingLanes&-536870913,v=v!==0?v:v&536870912?536870912:0;if(v!==0){a=v;e:{var E=t;d=co;var N=E.current.memoizedState.isDehydrated;if(N&&(Ji(E,v).flags|=256),v=Af(E,v,!1),v!==2){if(bf&&!N){E.errorRecoveryDisabledLanes|=h,ni|=h,d=4;break e}h=an,an=d,h!==null&&(an===null?an=h:an.push.apply(an,h))}d=v}if(h=!1,d!==2)continue}}if(d===1){Ji(t,0),gs(t,a,0,!0);break}e:{switch(o=t,h=d,h){case 0:case 1:throw Error(r(345));case 4:if((a&4194048)!==a)break;case 6:gs(o,a,wn,!ps);break e;case 2:an=null;break;case 3:case 5:break;default:throw Error(r(329))}if((a&62914560)===a&&(d=yc+300-ke(),10<d)){if(gs(o,a,wn,!ps),Nl(o,0,!0)!==0)break e;za=a,o.timeoutHandle=Gb(hb.bind(null,o,i,an,gc,vf,a,wn,ni,Xi,ps,h,"Throttled",-0,0),d);break e}hb(o,i,an,gc,vf,a,wn,ni,Xi,ps,h,null,-0,0)}}break}while(!0);oa(t)}function hb(t,a,i,o,d,h,v,E,N,q,Q,ne,I,F){if(t.timeoutHandle=-1,ne=a.subtreeFlags,ne&8192||(ne&16785408)===16785408){ne={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:va},ib(a,h,ne);var fe=(h&62914560)===h?yc-ke():(h&4194048)===h?cb-ke():0;if(fe=ux(ne,fe),fe!==null){za=h,t.cancelPendingCommit=fe(xb.bind(null,t,a,h,i,o,d,v,E,N,Q,ne,null,I,F)),gs(t,h,v,!q);return}}xb(t,a,h,i,o,d,v,E,N)}function kw(t){for(var a=t;;){var i=a.tag;if((i===0||i===11||i===15)&&a.flags&16384&&(i=a.updateQueue,i!==null&&(i=i.stores,i!==null)))for(var o=0;o<i.length;o++){var d=i[o],h=d.getSnapshot;d=d.value;try{if(!mn(h(),d))return!1}catch{return!1}}if(i=a.child,a.subtreeFlags&16384&&i!==null)i.return=a,a=i;else{if(a===t)break;for(;a.sibling===null;){if(a.return===null||a.return===t)return!0;a=a.return}a.sibling.return=a.return,a=a.sibling}}return!0}function gs(t,a,i,o){a&=~gf,a&=~ni,t.suspendedLanes|=a,t.pingedLanes&=~a,o&&(t.warmLanes|=a),o=t.expirationTimes;for(var d=a;0<d;){var h=31-st(d),v=1<<h;o[h]=-1,d&=~v}i!==0&&Ep(t,i,a)}function vc(){return(Fe&6)===0?(fo(0),!1):!0}function Ef(){if(ze!==null){if(Ze===0)var t=ze.return;else t=ze,Ea=Fs=null,Ud(t),Ii=null,Fr=0,t=ze;for(;t!==null;)Py(t.alternate,t),t=t.return;ze=null}}function Ji(t,a){var i=t.timeoutHandle;i!==-1&&(t.timeoutHandle=-1,Vw(i)),i=t.cancelPendingCommit,i!==null&&(t.cancelPendingCommit=null,i()),za=0,Ef(),it=t,ze=i=xa(t.current,null),De=a,Ze=0,vn=null,ps=!1,Zi=Rr(t,a),bf=!1,Xi=wn=gf=ni=ms=ht=0,an=co=null,vf=!1,(a&8)!==0&&(a|=a&32);var o=t.entangledLanes;if(o!==0)for(t=t.entanglements,o&=a;0<o;){var d=31-st(o),h=1<<d;a|=t[d],o&=~h}return Oa=a,Ll(),i}function pb(t,a){Re=null,R.H=to,a===Hi||a===Yl?(a=Rm(),Ze=3):a===kd?(a=Rm(),Ze=4):Ze=a===ef?8:a!==null&&typeof a=="object"&&typeof a.then=="function"?6:1,vn=a,ze===null&&(ht=1,lc(t,Rn(a,t.current)))}function mb(){var t=bn.current;return t===null?!0:(De&4194048)===De?zn===null:(De&62914560)===De||(De&536870912)!==0?t===zn:!1}function yb(){var t=R.H;return R.H=to,t===null?to:t}function bb(){var t=R.A;return R.A=Aw,t}function wc(){ht=4,ps||(De&4194048)!==De&&bn.current!==null||(Zi=!0),(ms&134217727)===0&&(ni&134217727)===0||it===null||gs(it,De,wn,!1)}function Af(t,a,i){var o=Fe;Fe|=2;var d=yb(),h=bb();(it!==t||De!==a)&&(gc=null,Ji(t,a)),a=!1;var v=ht;e:do try{if(Ze!==0&&ze!==null){var E=ze,N=vn;switch(Ze){case 8:Ef(),v=6;break e;case 3:case 2:case 9:case 6:bn.current===null&&(a=!0);var q=Ze;if(Ze=0,vn=null,Wi(t,E,N,q),i&&Zi){v=0;break e}break;default:q=Ze,Ze=0,vn=null,Wi(t,E,N,q)}}jw(),v=ht;break}catch(Q){pb(t,Q)}while(!0);return a&&t.shellSuspendCounter++,Ea=Fs=null,Fe=o,R.H=d,R.A=h,ze===null&&(it=null,De=0,Ll()),v}function jw(){for(;ze!==null;)gb(ze)}function Nw(t,a){var i=Fe;Fe|=2;var o=yb(),d=bb();it!==t||De!==a?(gc=null,bc=ke()+500,Ji(t,a)):Zi=Rr(t,a);e:do try{if(Ze!==0&&ze!==null){a=ze;var h=vn;t:switch(Ze){case 1:Ze=0,vn=null,Wi(t,a,h,1);break;case 2:case 9:if(Nm(h)){Ze=0,vn=null,vb(a);break}a=function(){Ze!==2&&Ze!==9||it!==t||(Ze=7),oa(t)},h.then(a,a);break e;case 3:Ze=7;break e;case 4:Ze=5;break e;case 7:Nm(h)?(Ze=0,vn=null,vb(a)):(Ze=0,vn=null,Wi(t,a,h,7));break;case 5:var v=null;switch(ze.tag){case 26:v=ze.memoizedState;case 5:case 27:var E=ze;if(v?s1(v):E.stateNode.complete){Ze=0,vn=null;var N=E.sibling;if(N!==null)ze=N;else{var q=E.return;q!==null?(ze=q,xc(q)):ze=null}break t}}Ze=0,vn=null,Wi(t,a,h,5);break;case 6:Ze=0,vn=null,Wi(t,a,h,6);break;case 8:Ef(),ht=6;break e;default:throw Error(r(462))}}Bw();break}catch(Q){pb(t,Q)}while(!0);return Ea=Fs=null,R.H=o,R.A=d,Fe=i,ze!==null?0:(it=null,De=0,Ll(),ht)}function Bw(){for(;ze!==null&&!Tt();)gb(ze)}function gb(t){var a=Iy(t.alternate,t,Oa);t.memoizedProps=t.pendingProps,a===null?xc(t):ze=a}function vb(t){var a=t,i=a.alternate;switch(a.tag){case 15:case 0:a=$y(i,a,a.pendingProps,a.type,void 0,De);break;case 11:a=$y(i,a,a.pendingProps,a.type.render,a.ref,De);break;case 5:Ud(a);default:Py(i,a),a=ze=bm(a,Oa),a=Iy(i,a,Oa)}t.memoizedProps=t.pendingProps,a===null?xc(t):ze=a}function Wi(t,a,i,o){Ea=Fs=null,Ud(a),Ii=null,Fr=0;var d=a.return;try{if(bw(t,d,a,i,De)){ht=1,lc(t,Rn(i,t.current)),ze=null;return}}catch(h){if(d!==null)throw ze=d,h;ht=1,lc(t,Rn(i,t.current)),ze=null;return}a.flags&32768?(qe||o===1?t=!0:Zi||(De&536870912)!==0?t=!1:(ps=t=!0,(o===2||o===9||o===3||o===6)&&(o=bn.current,o!==null&&o.tag===13&&(o.flags|=16384))),wb(a,t)):xc(a)}function xc(t){var a=t;do{if((a.flags&32768)!==0){wb(a,ps);return}t=a.return;var i=ww(a.alternate,a,Oa);if(i!==null){ze=i;return}if(a=a.sibling,a!==null){ze=a;return}ze=a=t}while(a!==null);ht===0&&(ht=5)}function wb(t,a){do{var i=xw(t.alternate,t);if(i!==null){i.flags&=32767,ze=i;return}if(i=t.return,i!==null&&(i.flags|=32768,i.subtreeFlags=0,i.deletions=null),!a&&(t=t.sibling,t!==null)){ze=t;return}ze=t=i}while(t!==null);ht=6,ze=null}function xb(t,a,i,o,d,h,v,E,N){t.cancelPendingCommit=null;do Sc();while(kt!==0);if((Fe&6)!==0)throw Error(r(327));if(a!==null){if(a===t.current)throw Error(r(177));if(h=a.lanes|a.childLanes,h|=dd,l2(t,i,h,v,E,N),t===it&&(ze=it=null,De=0),Qi=a,bs=t,za=i,wf=h,xf=d,ub=o,(a.subtreeFlags&10256)!==0||(a.flags&10256)!==0?(t.callbackNode=null,t.callbackPriority=0,Ow(at,function(){return kb(),null})):(t.callbackNode=null,t.callbackPriority=0),o=(a.flags&13878)!==0,(a.subtreeFlags&13878)!==0||o){o=R.T,R.T=null,d=K.p,K.p=2,v=Fe,Fe|=4;try{Sw(t,a,i)}finally{Fe=v,K.p=d,R.T=o}}kt=1,Sb(),Eb(),Ab()}}function Sb(){if(kt===1){kt=0;var t=bs,a=Qi,i=(a.flags&13878)!==0;if((a.subtreeFlags&13878)!==0||i){i=R.T,R.T=null;var o=K.p;K.p=2;var d=Fe;Fe|=4;try{nb(a,t);var h=$f,v=lm(t.containerInfo),E=h.focusedElem,N=h.selectionRange;if(v!==E&&E&&E.ownerDocument&&om(E.ownerDocument.documentElement,E)){if(N!==null&&rd(E)){var q=N.start,Q=N.end;if(Q===void 0&&(Q=q),"selectionStart"in E)E.selectionStart=q,E.selectionEnd=Math.min(Q,E.value.length);else{var ne=E.ownerDocument||document,I=ne&&ne.defaultView||window;if(I.getSelection){var F=I.getSelection(),fe=E.textContent.length,Se=Math.min(N.start,fe),tt=N.end===void 0?Se:Math.min(N.end,fe);!F.extend&&Se>tt&&(v=tt,tt=Se,Se=v);var $=rm(E,Se),z=rm(E,tt);if($&&z&&(F.rangeCount!==1||F.anchorNode!==$.node||F.anchorOffset!==$.offset||F.focusNode!==z.node||F.focusOffset!==z.offset)){var U=ne.createRange();U.setStart($.node,$.offset),F.removeAllRanges(),Se>tt?(F.addRange(U),F.extend(z.node,z.offset)):(U.setEnd(z.node,z.offset),F.addRange(U))}}}}for(ne=[],F=E;F=F.parentNode;)F.nodeType===1&&ne.push({element:F,left:F.scrollLeft,top:F.scrollTop});for(typeof E.focus=="function"&&E.focus(),E=0;E<ne.length;E++){var te=ne[E];te.element.scrollLeft=te.left,te.element.scrollTop=te.top}}zc=!!_f,$f=_f=null}finally{Fe=d,K.p=o,R.T=i}}t.current=a,kt=2}}function Eb(){if(kt===2){kt=0;var t=bs,a=Qi,i=(a.flags&8772)!==0;if((a.subtreeFlags&8772)!==0||i){i=R.T,R.T=null;var o=K.p;K.p=2;var d=Fe;Fe|=4;try{Qy(t,a.alternate,a)}finally{Fe=d,K.p=o,R.T=i}}kt=3}}function Ab(){if(kt===4||kt===3){kt=0,ye();var t=bs,a=Qi,i=za,o=ub;(a.subtreeFlags&10256)!==0||(a.flags&10256)!==0?kt=5:(kt=0,Qi=bs=null,Tb(t,t.pendingLanes));var d=t.pendingLanes;if(d===0&&(ys=null),Hu(i),a=a.stateNode,He&&typeof He.onCommitFiberRoot=="function")try{He.onCommitFiberRoot($e,a,void 0,(a.current.flags&128)===128)}catch{}if(o!==null){a=R.T,d=K.p,K.p=2,R.T=null;try{for(var h=t.onRecoverableError,v=0;v<o.length;v++){var E=o[v];h(E.value,{componentStack:E.stack})}}finally{R.T=a,K.p=d}}(za&3)!==0&&Sc(),oa(t),d=t.pendingLanes,(i&261930)!==0&&(d&42)!==0?t===Sf?uo++:(uo=0,Sf=t):uo=0,fo(0)}}function Tb(t,a){(t.pooledCacheLanes&=a)===0&&(a=t.pooledCache,a!=null&&(t.pooledCache=null,Kr(a)))}function Sc(){return Sb(),Eb(),Ab(),kb()}function kb(){if(kt!==5)return!1;var t=bs,a=wf;wf=0;var i=Hu(za),o=R.T,d=K.p;try{K.p=32>i?32:i,R.T=null,i=xf,xf=null;var h=bs,v=za;if(kt=0,Qi=bs=null,za=0,(Fe&6)!==0)throw Error(r(331));var E=Fe;if(Fe|=4,ob(h.current),sb(h,h.current,v,i),Fe=E,fo(0,!1),He&&typeof He.onPostCommitFiberRoot=="function")try{He.onPostCommitFiberRoot($e,h)}catch{}return!0}finally{K.p=d,R.T=o,Tb(t,a)}}function jb(t,a,i){a=Rn(i,a),a=Wd(t.stateNode,a,2),t=us(t,a,2),t!==null&&(Mr(t,2),oa(t))}function Xe(t,a,i){if(t.tag===3)jb(t,t,i);else for(;a!==null;){if(a.tag===3){jb(a,t,i);break}else if(a.tag===1){var o=a.stateNode;if(typeof a.type.getDerivedStateFromError=="function"||typeof o.componentDidCatch=="function"&&(ys===null||!ys.has(o))){t=Rn(i,t),i=Ny(2),o=us(a,i,2),o!==null&&(By(i,o,a,t),Mr(o,2),oa(o));break}}a=a.return}}function Tf(t,a,i){var o=t.pingCache;if(o===null){o=t.pingCache=new Tw;var d=new Set;o.set(a,d)}else d=o.get(a),d===void 0&&(d=new Set,o.set(a,d));d.has(i)||(bf=!0,d.add(i),t=Rw.bind(null,t,a,i),a.then(t,t))}function Rw(t,a,i){var o=t.pingCache;o!==null&&o.delete(a),t.pingedLanes|=t.suspendedLanes&i,t.warmLanes&=~i,it===t&&(De&i)===i&&(ht===4||ht===3&&(De&62914560)===De&&300>ke()-yc?(Fe&2)===0&&Ji(t,0):gf|=i,Xi===De&&(Xi=0)),oa(t)}function Nb(t,a){a===0&&(a=Sp()),t=Ps(t,a),t!==null&&(Mr(t,a),oa(t))}function Mw(t){var a=t.memoizedState,i=0;a!==null&&(i=a.retryLane),Nb(t,i)}function Cw(t,a){var i=0;switch(t.tag){case 31:case 13:var o=t.stateNode,d=t.memoizedState;d!==null&&(i=d.retryLane);break;case 19:o=t.stateNode;break;case 22:o=t.stateNode._retryCache;break;default:throw Error(r(314))}o!==null&&o.delete(a),Nb(t,i)}function Ow(t,a){return Bt(t,a)}var Ec=null,er=null,kf=!1,Ac=!1,jf=!1,vs=0;function oa(t){t!==er&&t.next===null&&(er===null?Ec=er=t:er=er.next=t),Ac=!0,kf||(kf=!0,_w())}function fo(t,a){if(!jf&&Ac){jf=!0;do for(var i=!1,o=Ec;o!==null;){if(t!==0){var d=o.pendingLanes;if(d===0)var h=0;else{var v=o.suspendedLanes,E=o.pingedLanes;h=(1<<31-st(42|t)+1)-1,h&=d&~(v&~E),h=h&201326741?h&201326741|1:h?h|2:0}h!==0&&(i=!0,Cb(o,h))}else h=De,h=Nl(o,o===it?h:0,o.cancelPendingCommit!==null||o.timeoutHandle!==-1),(h&3)===0||Rr(o,h)||(i=!0,Cb(o,h));o=o.next}while(i);jf=!1}}function zw(){Bb()}function Bb(){Ac=kf=!1;var t=0;vs!==0&&Kw()&&(t=vs);for(var a=ke(),i=null,o=Ec;o!==null;){var d=o.next,h=Rb(o,a);h===0?(o.next=null,i===null?Ec=d:i.next=d,d===null&&(er=i)):(i=o,(t!==0||(h&3)!==0)&&(Ac=!0)),o=d}kt!==0&&kt!==5||fo(t),vs!==0&&(vs=0)}function Rb(t,a){for(var i=t.suspendedLanes,o=t.pingedLanes,d=t.expirationTimes,h=t.pendingLanes&-62914561;0<h;){var v=31-st(h),E=1<<v,N=d[v];N===-1?((E&i)===0||(E&o)!==0)&&(d[v]=o2(E,a)):N<=a&&(t.expiredLanes|=E),h&=~E}if(a=it,i=De,i=Nl(t,t===a?i:0,t.cancelPendingCommit!==null||t.timeoutHandle!==-1),o=t.callbackNode,i===0||t===a&&(Ze===2||Ze===9)||t.cancelPendingCommit!==null)return o!==null&&o!==null&&Pt(o),t.callbackNode=null,t.callbackPriority=0;if((i&3)===0||Rr(t,i)){if(a=i&-i,a===t.callbackPriority)return a;switch(o!==null&&Pt(o),Hu(i)){case 2:case 8:i=Ve;break;case 32:i=at;break;case 268435456:i=L;break;default:i=at}return o=Mb.bind(null,t),i=Bt(i,o),t.callbackPriority=a,t.callbackNode=i,a}return o!==null&&o!==null&&Pt(o),t.callbackPriority=2,t.callbackNode=null,2}function Mb(t,a){if(kt!==0&&kt!==5)return t.callbackNode=null,t.callbackPriority=0,null;var i=t.callbackNode;if(Sc()&&t.callbackNode!==i)return null;var o=De;return o=Nl(t,t===it?o:0,t.cancelPendingCommit!==null||t.timeoutHandle!==-1),o===0?null:(fb(t,o,a),Rb(t,ke()),t.callbackNode!=null&&t.callbackNode===i?Mb.bind(null,t):null)}function Cb(t,a){if(Sc())return null;fb(t,a,!0)}function _w(){Fw(function(){(Fe&6)!==0?Bt(yt,zw):Bb()})}function Nf(){if(vs===0){var t=qi;t===0&&(t=Tl,Tl<<=1,(Tl&261888)===0&&(Tl=256)),vs=t}return vs}function Ob(t){return t==null||typeof t=="symbol"||typeof t=="boolean"?null:typeof t=="function"?t:Cl(""+t)}function zb(t,a){var i=a.ownerDocument.createElement("input");return i.name=a.name,i.value=a.value,t.id&&i.setAttribute("form",t.id),a.parentNode.insertBefore(i,a),t=new FormData(t),i.parentNode.removeChild(i),t}function $w(t,a,i,o,d){if(a==="submit"&&i&&i.stateNode===d){var h=Ob((d[Jt]||null).action),v=o.submitter;v&&(a=(a=v[Jt]||null)?Ob(a.formAction):v.getAttribute("formAction"),a!==null&&(h=a,v=null));var E=new $l("action","action",null,o,d);t.push({event:E,listeners:[{instance:null,listener:function(){if(o.defaultPrevented){if(vs!==0){var N=v?zb(d,v):new FormData(d);Fd(i,{pending:!0,data:N,method:d.method,action:h},null,N)}}else typeof h=="function"&&(E.preventDefault(),N=v?zb(d,v):new FormData(d),Fd(i,{pending:!0,data:N,method:d.method,action:h},h,N))},currentTarget:d}]})}}for(var Bf=0;Bf<ud.length;Bf++){var Rf=ud[Bf],Dw=Rf.toLowerCase(),Uw=Rf[0].toUpperCase()+Rf.slice(1);Pn(Dw,"on"+Uw)}Pn(dm,"onAnimationEnd"),Pn(fm,"onAnimationIteration"),Pn(hm,"onAnimationStart"),Pn("dblclick","onDoubleClick"),Pn("focusin","onFocus"),Pn("focusout","onBlur"),Pn(ew,"onTransitionRun"),Pn(tw,"onTransitionStart"),Pn(nw,"onTransitionCancel"),Pn(pm,"onTransitionEnd"),Ti("onMouseEnter",["mouseout","mouseover"]),Ti("onMouseLeave",["mouseout","mouseover"]),Ti("onPointerEnter",["pointerout","pointerover"]),Ti("onPointerLeave",["pointerout","pointerover"]),Ls("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Ls("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Ls("onBeforeInput",["compositionend","keypress","textInput","paste"]),Ls("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Ls("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Ls("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var ho="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),qw=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(ho));function _b(t,a){a=(a&4)!==0;for(var i=0;i<t.length;i++){var o=t[i],d=o.event;o=o.listeners;e:{var h=void 0;if(a)for(var v=o.length-1;0<=v;v--){var E=o[v],N=E.instance,q=E.currentTarget;if(E=E.listener,N!==h&&d.isPropagationStopped())break e;h=E,d.currentTarget=q;try{h(d)}catch(Q){ql(Q)}d.currentTarget=null,h=N}else for(v=0;v<o.length;v++){if(E=o[v],N=E.instance,q=E.currentTarget,E=E.listener,N!==h&&d.isPropagationStopped())break e;h=E,d.currentTarget=q;try{h(d)}catch(Q){ql(Q)}d.currentTarget=null,h=N}}}}function _e(t,a){var i=a[Iu];i===void 0&&(i=a[Iu]=new Set);var o=t+"__bubble";i.has(o)||($b(a,t,2,!1),i.add(o))}function Mf(t,a,i){var o=0;a&&(o|=4),$b(i,t,o,a)}var Tc="_reactListening"+Math.random().toString(36).slice(2);function Cf(t){if(!t[Tc]){t[Tc]=!0,Bp.forEach(function(i){i!=="selectionchange"&&(qw.has(i)||Mf(i,!1,t),Mf(i,!0,t))});var a=t.nodeType===9?t:t.ownerDocument;a===null||a[Tc]||(a[Tc]=!0,Mf("selectionchange",!1,a))}}function $b(t,a,i,o){switch(d1(a)){case 2:var d=hx;break;case 8:d=px;break;default:d=Ff}i=d.bind(null,a,i,t),d=void 0,!Qu||a!=="touchstart"&&a!=="touchmove"&&a!=="wheel"||(d=!0),o?d!==void 0?t.addEventListener(a,i,{capture:!0,passive:d}):t.addEventListener(a,i,!0):d!==void 0?t.addEventListener(a,i,{passive:d}):t.addEventListener(a,i,!1)}function Of(t,a,i,o,d){var h=o;if((a&1)===0&&(a&2)===0&&o!==null)e:for(;;){if(o===null)return;var v=o.tag;if(v===3||v===4){var E=o.stateNode.containerInfo;if(E===d)break;if(v===4)for(v=o.return;v!==null;){var N=v.tag;if((N===3||N===4)&&v.stateNode.containerInfo===d)return;v=v.return}for(;E!==null;){if(v=Si(E),v===null)return;if(N=v.tag,N===5||N===6||N===26||N===27){o=h=v;continue e}E=E.parentNode}}o=o.return}Hp(function(){var q=h,Q=Zu(i),ne=[];e:{var I=mm.get(t);if(I!==void 0){var F=$l,fe=t;switch(t){case"keypress":if(zl(i)===0)break e;case"keydown":case"keyup":F=C2;break;case"focusin":fe="focus",F=td;break;case"focusout":fe="blur",F=td;break;case"beforeblur":case"afterblur":F=td;break;case"click":if(i.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":F=Pp;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":F=w2;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":F=_2;break;case dm:case fm:case hm:F=E2;break;case pm:F=D2;break;case"scroll":case"scrollend":F=g2;break;case"wheel":F=q2;break;case"copy":case"cut":case"paste":F=T2;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":F=Vp;break;case"toggle":case"beforetoggle":F=H2}var Se=(a&4)!==0,tt=!Se&&(t==="scroll"||t==="scrollend"),$=Se?I!==null?I+"Capture":null:I;Se=[];for(var z=q,U;z!==null;){var te=z;if(U=te.stateNode,te=te.tag,te!==5&&te!==26&&te!==27||U===null||$===null||(te=zr(z,$),te!=null&&Se.push(po(z,te,U))),tt)break;z=z.return}0<Se.length&&(I=new F(I,fe,null,i,Q),ne.push({event:I,listeners:Se}))}}if((a&7)===0){e:{if(I=t==="mouseover"||t==="pointerover",F=t==="mouseout"||t==="pointerout",I&&i!==Yu&&(fe=i.relatedTarget||i.fromElement)&&(Si(fe)||fe[xi]))break e;if((F||I)&&(I=Q.window===Q?Q:(I=Q.ownerDocument)?I.defaultView||I.parentWindow:window,F?(fe=i.relatedTarget||i.toElement,F=q,fe=fe?Si(fe):null,fe!==null&&(tt=u(fe),Se=fe.tag,fe!==tt||Se!==5&&Se!==27&&Se!==6)&&(fe=null)):(F=null,fe=q),F!==fe)){if(Se=Pp,te="onMouseLeave",$="onMouseEnter",z="mouse",(t==="pointerout"||t==="pointerover")&&(Se=Vp,te="onPointerLeave",$="onPointerEnter",z="pointer"),tt=F==null?I:Or(F),U=fe==null?I:Or(fe),I=new Se(te,z+"leave",F,i,Q),I.target=tt,I.relatedTarget=U,te=null,Si(Q)===q&&(Se=new Se($,z+"enter",fe,i,Q),Se.target=U,Se.relatedTarget=tt,te=Se),tt=te,F&&fe)t:{for(Se=Lw,$=F,z=fe,U=0,te=$;te;te=Se(te))U++;te=0;for(var ve=z;ve;ve=Se(ve))te++;for(;0<U-te;)$=Se($),U--;for(;0<te-U;)z=Se(z),te--;for(;U--;){if($===z||z!==null&&$===z.alternate){Se=$;break t}$=Se($),z=Se(z)}Se=null}else Se=null;F!==null&&Db(ne,I,F,Se,!1),fe!==null&&tt!==null&&Db(ne,tt,fe,Se,!0)}}e:{if(I=q?Or(q):window,F=I.nodeName&&I.nodeName.toLowerCase(),F==="select"||F==="input"&&I.type==="file")var Pe=em;else if(Jp(I))if(tm)Pe=Q2;else{Pe=Z2;var be=Y2}else F=I.nodeName,!F||F.toLowerCase()!=="input"||I.type!=="checkbox"&&I.type!=="radio"?q&&Fu(q.elementType)&&(Pe=em):Pe=X2;if(Pe&&(Pe=Pe(t,q))){Wp(ne,Pe,i,Q);break e}be&&be(t,I,q),t==="focusout"&&q&&I.type==="number"&&q.memoizedProps.value!=null&&Vu(I,"number",I.value)}switch(be=q?Or(q):window,t){case"focusin":(Jp(be)||be.contentEditable==="true")&&(Mi=be,od=q,Ir=null);break;case"focusout":Ir=od=Mi=null;break;case"mousedown":ld=!0;break;case"contextmenu":case"mouseup":case"dragend":ld=!1,cm(ne,i,Q);break;case"selectionchange":if(W2)break;case"keydown":case"keyup":cm(ne,i,Q)}var Me;if(ad)e:{switch(t){case"compositionstart":var Ue="onCompositionStart";break e;case"compositionend":Ue="onCompositionEnd";break e;case"compositionupdate":Ue="onCompositionUpdate";break e}Ue=void 0}else Ri?Xp(t,i)&&(Ue="onCompositionEnd"):t==="keydown"&&i.keyCode===229&&(Ue="onCompositionStart");Ue&&(Fp&&i.locale!=="ko"&&(Ri||Ue!=="onCompositionStart"?Ue==="onCompositionEnd"&&Ri&&(Me=Ip()):(as=Q,Ju="value"in as?as.value:as.textContent,Ri=!0)),be=kc(q,Ue),0<be.length&&(Ue=new Kp(Ue,t,null,i,Q),ne.push({event:Ue,listeners:be}),Me?Ue.data=Me:(Me=Qp(i),Me!==null&&(Ue.data=Me)))),(Me=G2?P2(t,i):K2(t,i))&&(Ue=kc(q,"onBeforeInput"),0<Ue.length&&(be=new Kp("onBeforeInput","beforeinput",null,i,Q),ne.push({event:be,listeners:Ue}),be.data=Me)),$w(ne,t,q,i,Q)}_b(ne,a)})}function po(t,a,i){return{instance:t,listener:a,currentTarget:i}}function kc(t,a){for(var i=a+"Capture",o=[];t!==null;){var d=t,h=d.stateNode;if(d=d.tag,d!==5&&d!==26&&d!==27||h===null||(d=zr(t,i),d!=null&&o.unshift(po(t,d,h)),d=zr(t,a),d!=null&&o.push(po(t,d,h))),t.tag===3)return o;t=t.return}return[]}function Lw(t){if(t===null)return null;do t=t.return;while(t&&t.tag!==5&&t.tag!==27);return t||null}function Db(t,a,i,o,d){for(var h=a._reactName,v=[];i!==null&&i!==o;){var E=i,N=E.alternate,q=E.stateNode;if(E=E.tag,N!==null&&N===o)break;E!==5&&E!==26&&E!==27||q===null||(N=q,d?(q=zr(i,h),q!=null&&v.unshift(po(i,q,N))):d||(q=zr(i,h),q!=null&&v.push(po(i,q,N)))),i=i.return}v.length!==0&&t.push({event:a,listeners:v})}var Hw=/\r\n?/g,Iw=/\u0000|\uFFFD/g;function Ub(t){return(typeof t=="string"?t:""+t).replace(Hw,` -`).replace(Iw,"")}function qb(t,a){return a=Ub(a),Ub(t)===a}function et(t,a,i,o,d,h){switch(i){case"children":typeof o=="string"?a==="body"||a==="textarea"&&o===""||ji(t,o):(typeof o=="number"||typeof o=="bigint")&&a!=="body"&&ji(t,""+o);break;case"className":Rl(t,"class",o);break;case"tabIndex":Rl(t,"tabindex",o);break;case"dir":case"role":case"viewBox":case"width":case"height":Rl(t,i,o);break;case"style":qp(t,o,h);break;case"data":if(a!=="object"){Rl(t,"data",o);break}case"src":case"href":if(o===""&&(a!=="a"||i!=="href")){t.removeAttribute(i);break}if(o==null||typeof o=="function"||typeof o=="symbol"||typeof o=="boolean"){t.removeAttribute(i);break}o=Cl(""+o),t.setAttribute(i,o);break;case"action":case"formAction":if(typeof o=="function"){t.setAttribute(i,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof h=="function"&&(i==="formAction"?(a!=="input"&&et(t,a,"name",d.name,d,null),et(t,a,"formEncType",d.formEncType,d,null),et(t,a,"formMethod",d.formMethod,d,null),et(t,a,"formTarget",d.formTarget,d,null)):(et(t,a,"encType",d.encType,d,null),et(t,a,"method",d.method,d,null),et(t,a,"target",d.target,d,null)));if(o==null||typeof o=="symbol"||typeof o=="boolean"){t.removeAttribute(i);break}o=Cl(""+o),t.setAttribute(i,o);break;case"onClick":o!=null&&(t.onclick=va);break;case"onScroll":o!=null&&_e("scroll",t);break;case"onScrollEnd":o!=null&&_e("scrollend",t);break;case"dangerouslySetInnerHTML":if(o!=null){if(typeof o!="object"||!("__html"in o))throw Error(r(61));if(i=o.__html,i!=null){if(d.children!=null)throw Error(r(60));t.innerHTML=i}}break;case"multiple":t.multiple=o&&typeof o!="function"&&typeof o!="symbol";break;case"muted":t.muted=o&&typeof o!="function"&&typeof o!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(o==null||typeof o=="function"||typeof o=="boolean"||typeof o=="symbol"){t.removeAttribute("xlink:href");break}i=Cl(""+o),t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",i);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":o!=null&&typeof o!="function"&&typeof o!="symbol"?t.setAttribute(i,""+o):t.removeAttribute(i);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":o&&typeof o!="function"&&typeof o!="symbol"?t.setAttribute(i,""):t.removeAttribute(i);break;case"capture":case"download":o===!0?t.setAttribute(i,""):o!==!1&&o!=null&&typeof o!="function"&&typeof o!="symbol"?t.setAttribute(i,o):t.removeAttribute(i);break;case"cols":case"rows":case"size":case"span":o!=null&&typeof o!="function"&&typeof o!="symbol"&&!isNaN(o)&&1<=o?t.setAttribute(i,o):t.removeAttribute(i);break;case"rowSpan":case"start":o==null||typeof o=="function"||typeof o=="symbol"||isNaN(o)?t.removeAttribute(i):t.setAttribute(i,o);break;case"popover":_e("beforetoggle",t),_e("toggle",t),Bl(t,"popover",o);break;case"xlinkActuate":ga(t,"http://www.w3.org/1999/xlink","xlink:actuate",o);break;case"xlinkArcrole":ga(t,"http://www.w3.org/1999/xlink","xlink:arcrole",o);break;case"xlinkRole":ga(t,"http://www.w3.org/1999/xlink","xlink:role",o);break;case"xlinkShow":ga(t,"http://www.w3.org/1999/xlink","xlink:show",o);break;case"xlinkTitle":ga(t,"http://www.w3.org/1999/xlink","xlink:title",o);break;case"xlinkType":ga(t,"http://www.w3.org/1999/xlink","xlink:type",o);break;case"xmlBase":ga(t,"http://www.w3.org/XML/1998/namespace","xml:base",o);break;case"xmlLang":ga(t,"http://www.w3.org/XML/1998/namespace","xml:lang",o);break;case"xmlSpace":ga(t,"http://www.w3.org/XML/1998/namespace","xml:space",o);break;case"is":Bl(t,"is",o);break;case"innerText":case"textContent":break;default:(!(2<i.length)||i[0]!=="o"&&i[0]!=="O"||i[1]!=="n"&&i[1]!=="N")&&(i=y2.get(i)||i,Bl(t,i,o))}}function zf(t,a,i,o,d,h){switch(i){case"style":qp(t,o,h);break;case"dangerouslySetInnerHTML":if(o!=null){if(typeof o!="object"||!("__html"in o))throw Error(r(61));if(i=o.__html,i!=null){if(d.children!=null)throw Error(r(60));t.innerHTML=i}}break;case"children":typeof o=="string"?ji(t,o):(typeof o=="number"||typeof o=="bigint")&&ji(t,""+o);break;case"onScroll":o!=null&&_e("scroll",t);break;case"onScrollEnd":o!=null&&_e("scrollend",t);break;case"onClick":o!=null&&(t.onclick=va);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Rp.hasOwnProperty(i))e:{if(i[0]==="o"&&i[1]==="n"&&(d=i.endsWith("Capture"),a=i.slice(2,d?i.length-7:void 0),h=t[Jt]||null,h=h!=null?h[i]:null,typeof h=="function"&&t.removeEventListener(a,h,d),typeof o=="function")){typeof h!="function"&&h!==null&&(i in t?t[i]=null:t.hasAttribute(i)&&t.removeAttribute(i)),t.addEventListener(a,o,d);break e}i in t?t[i]=o:o===!0?t.setAttribute(i,""):Bl(t,i,o)}}}function Ut(t,a,i){switch(a){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":_e("error",t),_e("load",t);var o=!1,d=!1,h;for(h in i)if(i.hasOwnProperty(h)){var v=i[h];if(v!=null)switch(h){case"src":o=!0;break;case"srcSet":d=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(r(137,a));default:et(t,a,h,v,i,null)}}d&&et(t,a,"srcSet",i.srcSet,i,null),o&&et(t,a,"src",i.src,i,null);return;case"input":_e("invalid",t);var E=h=v=d=null,N=null,q=null;for(o in i)if(i.hasOwnProperty(o)){var Q=i[o];if(Q!=null)switch(o){case"name":d=Q;break;case"type":v=Q;break;case"checked":N=Q;break;case"defaultChecked":q=Q;break;case"value":h=Q;break;case"defaultValue":E=Q;break;case"children":case"dangerouslySetInnerHTML":if(Q!=null)throw Error(r(137,a));break;default:et(t,a,o,Q,i,null)}}_p(t,h,E,N,q,v,d,!1);return;case"select":_e("invalid",t),o=v=h=null;for(d in i)if(i.hasOwnProperty(d)&&(E=i[d],E!=null))switch(d){case"value":h=E;break;case"defaultValue":v=E;break;case"multiple":o=E;default:et(t,a,d,E,i,null)}a=h,i=v,t.multiple=!!o,a!=null?ki(t,!!o,a,!1):i!=null&&ki(t,!!o,i,!0);return;case"textarea":_e("invalid",t),h=d=o=null;for(v in i)if(i.hasOwnProperty(v)&&(E=i[v],E!=null))switch(v){case"value":o=E;break;case"defaultValue":d=E;break;case"children":h=E;break;case"dangerouslySetInnerHTML":if(E!=null)throw Error(r(91));break;default:et(t,a,v,E,i,null)}Dp(t,o,d,h);return;case"option":for(N in i)if(i.hasOwnProperty(N)&&(o=i[N],o!=null))switch(N){case"selected":t.selected=o&&typeof o!="function"&&typeof o!="symbol";break;default:et(t,a,N,o,i,null)}return;case"dialog":_e("beforetoggle",t),_e("toggle",t),_e("cancel",t),_e("close",t);break;case"iframe":case"object":_e("load",t);break;case"video":case"audio":for(o=0;o<ho.length;o++)_e(ho[o],t);break;case"image":_e("error",t),_e("load",t);break;case"details":_e("toggle",t);break;case"embed":case"source":case"link":_e("error",t),_e("load",t);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(q in i)if(i.hasOwnProperty(q)&&(o=i[q],o!=null))switch(q){case"children":case"dangerouslySetInnerHTML":throw Error(r(137,a));default:et(t,a,q,o,i,null)}return;default:if(Fu(a)){for(Q in i)i.hasOwnProperty(Q)&&(o=i[Q],o!==void 0&&zf(t,a,Q,o,i,void 0));return}}for(E in i)i.hasOwnProperty(E)&&(o=i[E],o!=null&&et(t,a,E,o,i,null))}function Gw(t,a,i,o){switch(a){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var d=null,h=null,v=null,E=null,N=null,q=null,Q=null;for(F in i){var ne=i[F];if(i.hasOwnProperty(F)&&ne!=null)switch(F){case"checked":break;case"value":break;case"defaultValue":N=ne;default:o.hasOwnProperty(F)||et(t,a,F,null,o,ne)}}for(var I in o){var F=o[I];if(ne=i[I],o.hasOwnProperty(I)&&(F!=null||ne!=null))switch(I){case"type":h=F;break;case"name":d=F;break;case"checked":q=F;break;case"defaultChecked":Q=F;break;case"value":v=F;break;case"defaultValue":E=F;break;case"children":case"dangerouslySetInnerHTML":if(F!=null)throw Error(r(137,a));break;default:F!==ne&&et(t,a,I,F,o,ne)}}Ku(t,v,E,N,q,Q,h,d);return;case"select":F=v=E=I=null;for(h in i)if(N=i[h],i.hasOwnProperty(h)&&N!=null)switch(h){case"value":break;case"multiple":F=N;default:o.hasOwnProperty(h)||et(t,a,h,null,o,N)}for(d in o)if(h=o[d],N=i[d],o.hasOwnProperty(d)&&(h!=null||N!=null))switch(d){case"value":I=h;break;case"defaultValue":E=h;break;case"multiple":v=h;default:h!==N&&et(t,a,d,h,o,N)}a=E,i=v,o=F,I!=null?ki(t,!!i,I,!1):!!o!=!!i&&(a!=null?ki(t,!!i,a,!0):ki(t,!!i,i?[]:"",!1));return;case"textarea":F=I=null;for(E in i)if(d=i[E],i.hasOwnProperty(E)&&d!=null&&!o.hasOwnProperty(E))switch(E){case"value":break;case"children":break;default:et(t,a,E,null,o,d)}for(v in o)if(d=o[v],h=i[v],o.hasOwnProperty(v)&&(d!=null||h!=null))switch(v){case"value":I=d;break;case"defaultValue":F=d;break;case"children":break;case"dangerouslySetInnerHTML":if(d!=null)throw Error(r(91));break;default:d!==h&&et(t,a,v,d,o,h)}$p(t,I,F);return;case"option":for(var fe in i)if(I=i[fe],i.hasOwnProperty(fe)&&I!=null&&!o.hasOwnProperty(fe))switch(fe){case"selected":t.selected=!1;break;default:et(t,a,fe,null,o,I)}for(N in o)if(I=o[N],F=i[N],o.hasOwnProperty(N)&&I!==F&&(I!=null||F!=null))switch(N){case"selected":t.selected=I&&typeof I!="function"&&typeof I!="symbol";break;default:et(t,a,N,I,o,F)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var Se in i)I=i[Se],i.hasOwnProperty(Se)&&I!=null&&!o.hasOwnProperty(Se)&&et(t,a,Se,null,o,I);for(q in o)if(I=o[q],F=i[q],o.hasOwnProperty(q)&&I!==F&&(I!=null||F!=null))switch(q){case"children":case"dangerouslySetInnerHTML":if(I!=null)throw Error(r(137,a));break;default:et(t,a,q,I,o,F)}return;default:if(Fu(a)){for(var tt in i)I=i[tt],i.hasOwnProperty(tt)&&I!==void 0&&!o.hasOwnProperty(tt)&&zf(t,a,tt,void 0,o,I);for(Q in o)I=o[Q],F=i[Q],!o.hasOwnProperty(Q)||I===F||I===void 0&&F===void 0||zf(t,a,Q,I,o,F);return}}for(var $ in i)I=i[$],i.hasOwnProperty($)&&I!=null&&!o.hasOwnProperty($)&&et(t,a,$,null,o,I);for(ne in o)I=o[ne],F=i[ne],!o.hasOwnProperty(ne)||I===F||I==null&&F==null||et(t,a,ne,I,o,F)}function Lb(t){switch(t){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function Pw(){if(typeof performance.getEntriesByType=="function"){for(var t=0,a=0,i=performance.getEntriesByType("resource"),o=0;o<i.length;o++){var d=i[o],h=d.transferSize,v=d.initiatorType,E=d.duration;if(h&&E&&Lb(v)){for(v=0,E=d.responseEnd,o+=1;o<i.length;o++){var N=i[o],q=N.startTime;if(q>E)break;var Q=N.transferSize,ne=N.initiatorType;Q&&Lb(ne)&&(N=N.responseEnd,v+=Q*(N<E?1:(E-q)/(N-q)))}if(--o,a+=8*(h+v)/(d.duration/1e3),t++,10<t)break}}if(0<t)return a/t/1e6}return navigator.connection&&(t=navigator.connection.downlink,typeof t=="number")?t:5}var _f=null,$f=null;function jc(t){return t.nodeType===9?t:t.ownerDocument}function Hb(t){switch(t){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function Ib(t,a){if(t===0)switch(a){case"svg":return 1;case"math":return 2;default:return 0}return t===1&&a==="foreignObject"?0:t}function Df(t,a){return t==="textarea"||t==="noscript"||typeof a.children=="string"||typeof a.children=="number"||typeof a.children=="bigint"||typeof a.dangerouslySetInnerHTML=="object"&&a.dangerouslySetInnerHTML!==null&&a.dangerouslySetInnerHTML.__html!=null}var Uf=null;function Kw(){var t=window.event;return t&&t.type==="popstate"?t===Uf?!1:(Uf=t,!0):(Uf=null,!1)}var Gb=typeof setTimeout=="function"?setTimeout:void 0,Vw=typeof clearTimeout=="function"?clearTimeout:void 0,Pb=typeof Promise=="function"?Promise:void 0,Fw=typeof queueMicrotask=="function"?queueMicrotask:typeof Pb<"u"?function(t){return Pb.resolve(null).then(t).catch(Yw)}:Gb;function Yw(t){setTimeout(function(){throw t})}function ws(t){return t==="head"}function Kb(t,a){var i=a,o=0;do{var d=i.nextSibling;if(t.removeChild(i),d&&d.nodeType===8)if(i=d.data,i==="/$"||i==="/&"){if(o===0){t.removeChild(d),sr(a);return}o--}else if(i==="$"||i==="$?"||i==="$~"||i==="$!"||i==="&")o++;else if(i==="html")mo(t.ownerDocument.documentElement);else if(i==="head"){i=t.ownerDocument.head,mo(i);for(var h=i.firstChild;h;){var v=h.nextSibling,E=h.nodeName;h[Cr]||E==="SCRIPT"||E==="STYLE"||E==="LINK"&&h.rel.toLowerCase()==="stylesheet"||i.removeChild(h),h=v}}else i==="body"&&mo(t.ownerDocument.body);i=d}while(i);sr(a)}function Vb(t,a){var i=t;t=0;do{var o=i.nextSibling;if(i.nodeType===1?a?(i._stashedDisplay=i.style.display,i.style.display="none"):(i.style.display=i._stashedDisplay||"",i.getAttribute("style")===""&&i.removeAttribute("style")):i.nodeType===3&&(a?(i._stashedText=i.nodeValue,i.nodeValue=""):i.nodeValue=i._stashedText||""),o&&o.nodeType===8)if(i=o.data,i==="/$"){if(t===0)break;t--}else i!=="$"&&i!=="$?"&&i!=="$~"&&i!=="$!"||t++;i=o}while(i)}function qf(t){var a=t.firstChild;for(a&&a.nodeType===10&&(a=a.nextSibling);a;){var i=a;switch(a=a.nextSibling,i.nodeName){case"HTML":case"HEAD":case"BODY":qf(i),Gu(i);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(i.rel.toLowerCase()==="stylesheet")continue}t.removeChild(i)}}function Zw(t,a,i,o){for(;t.nodeType===1;){var d=i;if(t.nodeName.toLowerCase()!==a.toLowerCase()){if(!o&&(t.nodeName!=="INPUT"||t.type!=="hidden"))break}else if(o){if(!t[Cr])switch(a){case"meta":if(!t.hasAttribute("itemprop"))break;return t;case"link":if(h=t.getAttribute("rel"),h==="stylesheet"&&t.hasAttribute("data-precedence"))break;if(h!==d.rel||t.getAttribute("href")!==(d.href==null||d.href===""?null:d.href)||t.getAttribute("crossorigin")!==(d.crossOrigin==null?null:d.crossOrigin)||t.getAttribute("title")!==(d.title==null?null:d.title))break;return t;case"style":if(t.hasAttribute("data-precedence"))break;return t;case"script":if(h=t.getAttribute("src"),(h!==(d.src==null?null:d.src)||t.getAttribute("type")!==(d.type==null?null:d.type)||t.getAttribute("crossorigin")!==(d.crossOrigin==null?null:d.crossOrigin))&&h&&t.hasAttribute("async")&&!t.hasAttribute("itemprop"))break;return t;default:return t}}else if(a==="input"&&t.type==="hidden"){var h=d.name==null?null:""+d.name;if(d.type==="hidden"&&t.getAttribute("name")===h)return t}else return t;if(t=_n(t.nextSibling),t===null)break}return null}function Xw(t,a,i){if(a==="")return null;for(;t.nodeType!==3;)if((t.nodeType!==1||t.nodeName!=="INPUT"||t.type!=="hidden")&&!i||(t=_n(t.nextSibling),t===null))return null;return t}function Fb(t,a){for(;t.nodeType!==8;)if((t.nodeType!==1||t.nodeName!=="INPUT"||t.type!=="hidden")&&!a||(t=_n(t.nextSibling),t===null))return null;return t}function Lf(t){return t.data==="$?"||t.data==="$~"}function Hf(t){return t.data==="$!"||t.data==="$?"&&t.ownerDocument.readyState!=="loading"}function Qw(t,a){var i=t.ownerDocument;if(t.data==="$~")t._reactRetry=a;else if(t.data!=="$?"||i.readyState!=="loading")a();else{var o=function(){a(),i.removeEventListener("DOMContentLoaded",o)};i.addEventListener("DOMContentLoaded",o),t._reactRetry=o}}function _n(t){for(;t!=null;t=t.nextSibling){var a=t.nodeType;if(a===1||a===3)break;if(a===8){if(a=t.data,a==="$"||a==="$!"||a==="$?"||a==="$~"||a==="&"||a==="F!"||a==="F")break;if(a==="/$"||a==="/&")return null}}return t}var If=null;function Yb(t){t=t.nextSibling;for(var a=0;t;){if(t.nodeType===8){var i=t.data;if(i==="/$"||i==="/&"){if(a===0)return _n(t.nextSibling);a--}else i!=="$"&&i!=="$!"&&i!=="$?"&&i!=="$~"&&i!=="&"||a++}t=t.nextSibling}return null}function Zb(t){t=t.previousSibling;for(var a=0;t;){if(t.nodeType===8){var i=t.data;if(i==="$"||i==="$!"||i==="$?"||i==="$~"||i==="&"){if(a===0)return t;a--}else i!=="/$"&&i!=="/&"||a++}t=t.previousSibling}return null}function Xb(t,a,i){switch(a=jc(i),t){case"html":if(t=a.documentElement,!t)throw Error(r(452));return t;case"head":if(t=a.head,!t)throw Error(r(453));return t;case"body":if(t=a.body,!t)throw Error(r(454));return t;default:throw Error(r(451))}}function mo(t){for(var a=t.attributes;a.length;)t.removeAttributeNode(a[0]);Gu(t)}var $n=new Map,Qb=new Set;function Nc(t){return typeof t.getRootNode=="function"?t.getRootNode():t.nodeType===9?t:t.ownerDocument}var _a=K.d;K.d={f:Jw,r:Ww,D:ex,C:tx,L:nx,m:ax,X:ix,S:sx,M:rx};function Jw(){var t=_a.f(),a=vc();return t||a}function Ww(t){var a=Ei(t);a!==null&&a.tag===5&&a.type==="form"?py(a):_a.r(t)}var tr=typeof document>"u"?null:document;function Jb(t,a,i){var o=tr;if(o&&typeof a=="string"&&a){var d=Nn(a);d='link[rel="'+t+'"][href="'+d+'"]',typeof i=="string"&&(d+='[crossorigin="'+i+'"]'),Qb.has(d)||(Qb.add(d),t={rel:t,crossOrigin:i,href:a},o.querySelector(d)===null&&(a=o.createElement("link"),Ut(a,"link",t),Rt(a),o.head.appendChild(a)))}}function ex(t){_a.D(t),Jb("dns-prefetch",t,null)}function tx(t,a){_a.C(t,a),Jb("preconnect",t,a)}function nx(t,a,i){_a.L(t,a,i);var o=tr;if(o&&t&&a){var d='link[rel="preload"][as="'+Nn(a)+'"]';a==="image"&&i&&i.imageSrcSet?(d+='[imagesrcset="'+Nn(i.imageSrcSet)+'"]',typeof i.imageSizes=="string"&&(d+='[imagesizes="'+Nn(i.imageSizes)+'"]')):d+='[href="'+Nn(t)+'"]';var h=d;switch(a){case"style":h=nr(t);break;case"script":h=ar(t)}$n.has(h)||(t=w({rel:"preload",href:a==="image"&&i&&i.imageSrcSet?void 0:t,as:a},i),$n.set(h,t),o.querySelector(d)!==null||a==="style"&&o.querySelector(yo(h))||a==="script"&&o.querySelector(bo(h))||(a=o.createElement("link"),Ut(a,"link",t),Rt(a),o.head.appendChild(a)))}}function ax(t,a){_a.m(t,a);var i=tr;if(i&&t){var o=a&&typeof a.as=="string"?a.as:"script",d='link[rel="modulepreload"][as="'+Nn(o)+'"][href="'+Nn(t)+'"]',h=d;switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":h=ar(t)}if(!$n.has(h)&&(t=w({rel:"modulepreload",href:t},a),$n.set(h,t),i.querySelector(d)===null)){switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(i.querySelector(bo(h)))return}o=i.createElement("link"),Ut(o,"link",t),Rt(o),i.head.appendChild(o)}}}function sx(t,a,i){_a.S(t,a,i);var o=tr;if(o&&t){var d=Ai(o).hoistableStyles,h=nr(t);a=a||"default";var v=d.get(h);if(!v){var E={loading:0,preload:null};if(v=o.querySelector(yo(h)))E.loading=5;else{t=w({rel:"stylesheet",href:t,"data-precedence":a},i),(i=$n.get(h))&&Gf(t,i);var N=v=o.createElement("link");Rt(N),Ut(N,"link",t),N._p=new Promise(function(q,Q){N.onload=q,N.onerror=Q}),N.addEventListener("load",function(){E.loading|=1}),N.addEventListener("error",function(){E.loading|=2}),E.loading|=4,Bc(v,a,o)}v={type:"stylesheet",instance:v,count:1,state:E},d.set(h,v)}}}function ix(t,a){_a.X(t,a);var i=tr;if(i&&t){var o=Ai(i).hoistableScripts,d=ar(t),h=o.get(d);h||(h=i.querySelector(bo(d)),h||(t=w({src:t,async:!0},a),(a=$n.get(d))&&Pf(t,a),h=i.createElement("script"),Rt(h),Ut(h,"link",t),i.head.appendChild(h)),h={type:"script",instance:h,count:1,state:null},o.set(d,h))}}function rx(t,a){_a.M(t,a);var i=tr;if(i&&t){var o=Ai(i).hoistableScripts,d=ar(t),h=o.get(d);h||(h=i.querySelector(bo(d)),h||(t=w({src:t,async:!0,type:"module"},a),(a=$n.get(d))&&Pf(t,a),h=i.createElement("script"),Rt(h),Ut(h,"link",t),i.head.appendChild(h)),h={type:"script",instance:h,count:1,state:null},o.set(d,h))}}function Wb(t,a,i,o){var d=(d=ue.current)?Nc(d):null;if(!d)throw Error(r(446));switch(t){case"meta":case"title":return null;case"style":return typeof i.precedence=="string"&&typeof i.href=="string"?(a=nr(i.href),i=Ai(d).hoistableStyles,o=i.get(a),o||(o={type:"style",instance:null,count:0,state:null},i.set(a,o)),o):{type:"void",instance:null,count:0,state:null};case"link":if(i.rel==="stylesheet"&&typeof i.href=="string"&&typeof i.precedence=="string"){t=nr(i.href);var h=Ai(d).hoistableStyles,v=h.get(t);if(v||(d=d.ownerDocument||d,v={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},h.set(t,v),(h=d.querySelector(yo(t)))&&!h._p&&(v.instance=h,v.state.loading=5),$n.has(t)||(i={rel:"preload",as:"style",href:i.href,crossOrigin:i.crossOrigin,integrity:i.integrity,media:i.media,hrefLang:i.hrefLang,referrerPolicy:i.referrerPolicy},$n.set(t,i),h||ox(d,t,i,v.state))),a&&o===null)throw Error(r(528,""));return v}if(a&&o!==null)throw Error(r(529,""));return null;case"script":return a=i.async,i=i.src,typeof i=="string"&&a&&typeof a!="function"&&typeof a!="symbol"?(a=ar(i),i=Ai(d).hoistableScripts,o=i.get(a),o||(o={type:"script",instance:null,count:0,state:null},i.set(a,o)),o):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,t))}}function nr(t){return'href="'+Nn(t)+'"'}function yo(t){return'link[rel="stylesheet"]['+t+"]"}function e1(t){return w({},t,{"data-precedence":t.precedence,precedence:null})}function ox(t,a,i,o){t.querySelector('link[rel="preload"][as="style"]['+a+"]")?o.loading=1:(a=t.createElement("link"),o.preload=a,a.addEventListener("load",function(){return o.loading|=1}),a.addEventListener("error",function(){return o.loading|=2}),Ut(a,"link",i),Rt(a),t.head.appendChild(a))}function ar(t){return'[src="'+Nn(t)+'"]'}function bo(t){return"script[async]"+t}function t1(t,a,i){if(a.count++,a.instance===null)switch(a.type){case"style":var o=t.querySelector('style[data-href~="'+Nn(i.href)+'"]');if(o)return a.instance=o,Rt(o),o;var d=w({},i,{"data-href":i.href,"data-precedence":i.precedence,href:null,precedence:null});return o=(t.ownerDocument||t).createElement("style"),Rt(o),Ut(o,"style",d),Bc(o,i.precedence,t),a.instance=o;case"stylesheet":d=nr(i.href);var h=t.querySelector(yo(d));if(h)return a.state.loading|=4,a.instance=h,Rt(h),h;o=e1(i),(d=$n.get(d))&&Gf(o,d),h=(t.ownerDocument||t).createElement("link"),Rt(h);var v=h;return v._p=new Promise(function(E,N){v.onload=E,v.onerror=N}),Ut(h,"link",o),a.state.loading|=4,Bc(h,i.precedence,t),a.instance=h;case"script":return h=ar(i.src),(d=t.querySelector(bo(h)))?(a.instance=d,Rt(d),d):(o=i,(d=$n.get(h))&&(o=w({},i),Pf(o,d)),t=t.ownerDocument||t,d=t.createElement("script"),Rt(d),Ut(d,"link",o),t.head.appendChild(d),a.instance=d);case"void":return null;default:throw Error(r(443,a.type))}else a.type==="stylesheet"&&(a.state.loading&4)===0&&(o=a.instance,a.state.loading|=4,Bc(o,i.precedence,t));return a.instance}function Bc(t,a,i){for(var o=i.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),d=o.length?o[o.length-1]:null,h=d,v=0;v<o.length;v++){var E=o[v];if(E.dataset.precedence===a)h=E;else if(h!==d)break}h?h.parentNode.insertBefore(t,h.nextSibling):(a=i.nodeType===9?i.head:i,a.insertBefore(t,a.firstChild))}function Gf(t,a){t.crossOrigin==null&&(t.crossOrigin=a.crossOrigin),t.referrerPolicy==null&&(t.referrerPolicy=a.referrerPolicy),t.title==null&&(t.title=a.title)}function Pf(t,a){t.crossOrigin==null&&(t.crossOrigin=a.crossOrigin),t.referrerPolicy==null&&(t.referrerPolicy=a.referrerPolicy),t.integrity==null&&(t.integrity=a.integrity)}var Rc=null;function n1(t,a,i){if(Rc===null){var o=new Map,d=Rc=new Map;d.set(i,o)}else d=Rc,o=d.get(i),o||(o=new Map,d.set(i,o));if(o.has(t))return o;for(o.set(t,null),i=i.getElementsByTagName(t),d=0;d<i.length;d++){var h=i[d];if(!(h[Cr]||h[zt]||t==="link"&&h.getAttribute("rel")==="stylesheet")&&h.namespaceURI!=="http://www.w3.org/2000/svg"){var v=h.getAttribute(a)||"";v=t+v;var E=o.get(v);E?E.push(h):o.set(v,[h])}}return o}function a1(t,a,i){t=t.ownerDocument||t,t.head.insertBefore(i,a==="title"?t.querySelector("head > title"):null)}function lx(t,a,i){if(i===1||a.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof a.precedence!="string"||typeof a.href!="string"||a.href==="")break;return!0;case"link":if(typeof a.rel!="string"||typeof a.href!="string"||a.href===""||a.onLoad||a.onError)break;switch(a.rel){case"stylesheet":return t=a.disabled,typeof a.precedence=="string"&&t==null;default:return!0}case"script":if(a.async&&typeof a.async!="function"&&typeof a.async!="symbol"&&!a.onLoad&&!a.onError&&a.src&&typeof a.src=="string")return!0}return!1}function s1(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function cx(t,a,i,o){if(i.type==="stylesheet"&&(typeof o.media!="string"||matchMedia(o.media).matches!==!1)&&(i.state.loading&4)===0){if(i.instance===null){var d=nr(o.href),h=a.querySelector(yo(d));if(h){a=h._p,a!==null&&typeof a=="object"&&typeof a.then=="function"&&(t.count++,t=Mc.bind(t),a.then(t,t)),i.state.loading|=4,i.instance=h,Rt(h);return}h=a.ownerDocument||a,o=e1(o),(d=$n.get(d))&&Gf(o,d),h=h.createElement("link"),Rt(h);var v=h;v._p=new Promise(function(E,N){v.onload=E,v.onerror=N}),Ut(h,"link",o),i.instance=h}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(i,a),(a=i.state.preload)&&(i.state.loading&3)===0&&(t.count++,i=Mc.bind(t),a.addEventListener("load",i),a.addEventListener("error",i))}}var Kf=0;function ux(t,a){return t.stylesheets&&t.count===0&&Oc(t,t.stylesheets),0<t.count||0<t.imgCount?function(i){var o=setTimeout(function(){if(t.stylesheets&&Oc(t,t.stylesheets),t.unsuspend){var h=t.unsuspend;t.unsuspend=null,h()}},6e4+a);0<t.imgBytes&&Kf===0&&(Kf=62500*Pw());var d=setTimeout(function(){if(t.waitingForImages=!1,t.count===0&&(t.stylesheets&&Oc(t,t.stylesheets),t.unsuspend)){var h=t.unsuspend;t.unsuspend=null,h()}},(t.imgBytes>Kf?50:800)+a);return t.unsuspend=i,function(){t.unsuspend=null,clearTimeout(o),clearTimeout(d)}}:null}function Mc(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Oc(this,this.stylesheets);else if(this.unsuspend){var t=this.unsuspend;this.unsuspend=null,t()}}}var Cc=null;function Oc(t,a){t.stylesheets=null,t.unsuspend!==null&&(t.count++,Cc=new Map,a.forEach(dx,t),Cc=null,Mc.call(t))}function dx(t,a){if(!(a.state.loading&4)){var i=Cc.get(t);if(i)var o=i.get(null);else{i=new Map,Cc.set(t,i);for(var d=t.querySelectorAll("link[data-precedence],style[data-precedence]"),h=0;h<d.length;h++){var v=d[h];(v.nodeName==="LINK"||v.getAttribute("media")!=="not all")&&(i.set(v.dataset.precedence,v),o=v)}o&&i.set(null,o)}d=a.instance,v=d.getAttribute("data-precedence"),h=i.get(v)||o,h===o&&i.set(null,d),i.set(v,d),this.count++,o=Mc.bind(this),d.addEventListener("load",o),d.addEventListener("error",o),h?h.parentNode.insertBefore(d,h.nextSibling):(t=t.nodeType===9?t.head:t,t.insertBefore(d,t.firstChild)),a.state.loading|=4}}var go={$$typeof:O,Provider:null,Consumer:null,_currentValue:Y,_currentValue2:Y,_threadCount:0};function fx(t,a,i,o,d,h,v,E,N){this.tag=1,this.containerInfo=t,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=qu(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=qu(0),this.hiddenUpdates=qu(null),this.identifierPrefix=o,this.onUncaughtError=d,this.onCaughtError=h,this.onRecoverableError=v,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=N,this.incompleteTransitions=new Map}function i1(t,a,i,o,d,h,v,E,N,q,Q,ne){return t=new fx(t,a,i,v,N,q,Q,ne,E),a=1,h===!0&&(a|=24),h=yn(3,null,null,a),t.current=h,h.stateNode=t,a=Ed(),a.refCount++,t.pooledCache=a,a.refCount++,h.memoizedState={element:o,isDehydrated:i,cache:a},jd(h),t}function r1(t){return t?(t=zi,t):zi}function o1(t,a,i,o,d,h){d=r1(d),o.context===null?o.context=d:o.pendingContext=d,o=cs(a),o.payload={element:i},h=h===void 0?null:h,h!==null&&(o.callback=h),i=us(t,o,a),i!==null&&(sn(i,t,a),Zr(i,t,a))}function l1(t,a){if(t=t.memoizedState,t!==null&&t.dehydrated!==null){var i=t.retryLane;t.retryLane=i!==0&&i<a?i:a}}function Vf(t,a){l1(t,a),(t=t.alternate)&&l1(t,a)}function c1(t){if(t.tag===13||t.tag===31){var a=Ps(t,67108864);a!==null&&sn(a,t,67108864),Vf(t,67108864)}}function u1(t){if(t.tag===13||t.tag===31){var a=xn();a=Lu(a);var i=Ps(t,a);i!==null&&sn(i,t,a),Vf(t,a)}}var zc=!0;function hx(t,a,i,o){var d=R.T;R.T=null;var h=K.p;try{K.p=2,Ff(t,a,i,o)}finally{K.p=h,R.T=d}}function px(t,a,i,o){var d=R.T;R.T=null;var h=K.p;try{K.p=8,Ff(t,a,i,o)}finally{K.p=h,R.T=d}}function Ff(t,a,i,o){if(zc){var d=Yf(o);if(d===null)Of(t,a,o,_c,i),f1(t,o);else if(yx(d,t,a,i,o))o.stopPropagation();else if(f1(t,o),a&4&&-1<mx.indexOf(t)){for(;d!==null;){var h=Ei(d);if(h!==null)switch(h.tag){case 3:if(h=h.stateNode,h.current.memoizedState.isDehydrated){var v=qs(h.pendingLanes);if(v!==0){var E=h;for(E.pendingLanes|=2,E.entangledLanes|=2;v;){var N=1<<31-st(v);E.entanglements[1]|=N,v&=~N}oa(h),(Fe&6)===0&&(bc=ke()+500,fo(0))}}break;case 31:case 13:E=Ps(h,2),E!==null&&sn(E,h,2),vc(),Vf(h,2)}if(h=Yf(o),h===null&&Of(t,a,o,_c,i),h===d)break;d=h}d!==null&&o.stopPropagation()}else Of(t,a,o,null,i)}}function Yf(t){return t=Zu(t),Zf(t)}var _c=null;function Zf(t){if(_c=null,t=Si(t),t!==null){var a=u(t);if(a===null)t=null;else{var i=a.tag;if(i===13){if(t=f(a),t!==null)return t;t=null}else if(i===31){if(t=p(a),t!==null)return t;t=null}else if(i===3){if(a.stateNode.current.memoizedState.isDehydrated)return a.tag===3?a.stateNode.containerInfo:null;t=null}else a!==t&&(t=null)}}return _c=t,null}function d1(t){switch(t){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(Ye()){case yt:return 2;case Ve:return 8;case at:case aa:return 32;case L:return 268435456;default:return 32}default:return 32}}var Xf=!1,xs=null,Ss=null,Es=null,vo=new Map,wo=new Map,As=[],mx="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function f1(t,a){switch(t){case"focusin":case"focusout":xs=null;break;case"dragenter":case"dragleave":Ss=null;break;case"mouseover":case"mouseout":Es=null;break;case"pointerover":case"pointerout":vo.delete(a.pointerId);break;case"gotpointercapture":case"lostpointercapture":wo.delete(a.pointerId)}}function xo(t,a,i,o,d,h){return t===null||t.nativeEvent!==h?(t={blockedOn:a,domEventName:i,eventSystemFlags:o,nativeEvent:h,targetContainers:[d]},a!==null&&(a=Ei(a),a!==null&&c1(a)),t):(t.eventSystemFlags|=o,a=t.targetContainers,d!==null&&a.indexOf(d)===-1&&a.push(d),t)}function yx(t,a,i,o,d){switch(a){case"focusin":return xs=xo(xs,t,a,i,o,d),!0;case"dragenter":return Ss=xo(Ss,t,a,i,o,d),!0;case"mouseover":return Es=xo(Es,t,a,i,o,d),!0;case"pointerover":var h=d.pointerId;return vo.set(h,xo(vo.get(h)||null,t,a,i,o,d)),!0;case"gotpointercapture":return h=d.pointerId,wo.set(h,xo(wo.get(h)||null,t,a,i,o,d)),!0}return!1}function h1(t){var a=Si(t.target);if(a!==null){var i=u(a);if(i!==null){if(a=i.tag,a===13){if(a=f(i),a!==null){t.blockedOn=a,jp(t.priority,function(){u1(i)});return}}else if(a===31){if(a=p(i),a!==null){t.blockedOn=a,jp(t.priority,function(){u1(i)});return}}else if(a===3&&i.stateNode.current.memoizedState.isDehydrated){t.blockedOn=i.tag===3?i.stateNode.containerInfo:null;return}}}t.blockedOn=null}function $c(t){if(t.blockedOn!==null)return!1;for(var a=t.targetContainers;0<a.length;){var i=Yf(t.nativeEvent);if(i===null){i=t.nativeEvent;var o=new i.constructor(i.type,i);Yu=o,i.target.dispatchEvent(o),Yu=null}else return a=Ei(i),a!==null&&c1(a),t.blockedOn=i,!1;a.shift()}return!0}function p1(t,a,i){$c(t)&&i.delete(a)}function bx(){Xf=!1,xs!==null&&$c(xs)&&(xs=null),Ss!==null&&$c(Ss)&&(Ss=null),Es!==null&&$c(Es)&&(Es=null),vo.forEach(p1),wo.forEach(p1)}function Dc(t,a){t.blockedOn===a&&(t.blockedOn=null,Xf||(Xf=!0,e.unstable_scheduleCallback(e.unstable_NormalPriority,bx)))}var Uc=null;function m1(t){Uc!==t&&(Uc=t,e.unstable_scheduleCallback(e.unstable_NormalPriority,function(){Uc===t&&(Uc=null);for(var a=0;a<t.length;a+=3){var i=t[a],o=t[a+1],d=t[a+2];if(typeof o!="function"){if(Zf(o||i)===null)continue;break}var h=Ei(i);h!==null&&(t.splice(a,3),a-=3,Fd(h,{pending:!0,data:d,method:i.method,action:o},o,d))}}))}function sr(t){function a(N){return Dc(N,t)}xs!==null&&Dc(xs,t),Ss!==null&&Dc(Ss,t),Es!==null&&Dc(Es,t),vo.forEach(a),wo.forEach(a);for(var i=0;i<As.length;i++){var o=As[i];o.blockedOn===t&&(o.blockedOn=null)}for(;0<As.length&&(i=As[0],i.blockedOn===null);)h1(i),i.blockedOn===null&&As.shift();if(i=(t.ownerDocument||t).$$reactFormReplay,i!=null)for(o=0;o<i.length;o+=3){var d=i[o],h=i[o+1],v=d[Jt]||null;if(typeof h=="function")v||m1(i);else if(v){var E=null;if(h&&h.hasAttribute("formAction")){if(d=h,v=h[Jt]||null)E=v.formAction;else if(Zf(d)!==null)continue}else E=v.action;typeof E=="function"?i[o+1]=E:(i.splice(o,3),o-=3),m1(i)}}}function y1(){function t(h){h.canIntercept&&h.info==="react-transition"&&h.intercept({handler:function(){return new Promise(function(v){return d=v})},focusReset:"manual",scroll:"manual"})}function a(){d!==null&&(d(),d=null),o||setTimeout(i,20)}function i(){if(!o&&!navigation.transition){var h=navigation.currentEntry;h&&h.url!=null&&navigation.navigate(h.url,{state:h.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var o=!1,d=null;return navigation.addEventListener("navigate",t),navigation.addEventListener("navigatesuccess",a),navigation.addEventListener("navigateerror",a),setTimeout(i,100),function(){o=!0,navigation.removeEventListener("navigate",t),navigation.removeEventListener("navigatesuccess",a),navigation.removeEventListener("navigateerror",a),d!==null&&(d(),d=null)}}}function Qf(t){this._internalRoot=t}qc.prototype.render=Qf.prototype.render=function(t){var a=this._internalRoot;if(a===null)throw Error(r(409));var i=a.current,o=xn();o1(i,o,t,a,null,null)},qc.prototype.unmount=Qf.prototype.unmount=function(){var t=this._internalRoot;if(t!==null){this._internalRoot=null;var a=t.containerInfo;o1(t.current,2,null,t,null,null),vc(),a[xi]=null}};function qc(t){this._internalRoot=t}qc.prototype.unstable_scheduleHydration=function(t){if(t){var a=kp();t={blockedOn:null,target:t,priority:a};for(var i=0;i<As.length&&a!==0&&a<As[i].priority;i++);As.splice(i,0,t),i===0&&h1(t)}};var b1=n.version;if(b1!=="19.2.0")throw Error(r(527,b1,"19.2.0"));K.findDOMNode=function(t){var a=t._reactInternals;if(a===void 0)throw typeof t.render=="function"?Error(r(188)):(t=Object.keys(t).join(","),Error(r(268,t)));return t=y(a),t=t!==null?b(t):null,t=t===null?null:t.stateNode,t};var gx={bundleType:0,version:"19.2.0",rendererPackageName:"react-dom",currentDispatcherRef:R,reconcilerVersion:"19.2.0"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Lc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Lc.isDisabled&&Lc.supportsFiber)try{$e=Lc.inject(gx),He=Lc}catch{}}return Eo.createRoot=function(t,a){if(!l(t))throw Error(r(299));var i=!1,o="",d=Ay,h=Ty,v=ky;return a!=null&&(a.unstable_strictMode===!0&&(i=!0),a.identifierPrefix!==void 0&&(o=a.identifierPrefix),a.onUncaughtError!==void 0&&(d=a.onUncaughtError),a.onCaughtError!==void 0&&(h=a.onCaughtError),a.onRecoverableError!==void 0&&(v=a.onRecoverableError)),a=i1(t,1,!1,null,null,i,o,null,d,h,v,y1),t[xi]=a.current,Cf(t),new Qf(a)},Eo.hydrateRoot=function(t,a,i){if(!l(t))throw Error(r(299));var o=!1,d="",h=Ay,v=Ty,E=ky,N=null;return i!=null&&(i.unstable_strictMode===!0&&(o=!0),i.identifierPrefix!==void 0&&(d=i.identifierPrefix),i.onUncaughtError!==void 0&&(h=i.onUncaughtError),i.onCaughtError!==void 0&&(v=i.onCaughtError),i.onRecoverableError!==void 0&&(E=i.onRecoverableError),i.formState!==void 0&&(N=i.formState)),a=i1(t,1,!0,a,i??null,o,d,N,h,v,E,y1),a.context=r1(null),i=a.current,o=xn(),o=Lu(o),d=cs(o),d.callback=null,us(i,d,o),i=o,a.current.lanes=i,Mr(a,i),oa(a),t[xi]=a.current,Cf(t),new qc(a)},Eo.version="19.2.0",Eo}var j1;function Nx(){if(j1)return e0.exports;j1=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(n){console.error(n)}}return e(),e0.exports=jx(),e0.exports}var Bx=Nx();const Rx="1.1.0";let fn=class z0 extends Error{constructor(n,s={}){const r=s.cause instanceof z0?s.cause.details:s.cause?.message?s.cause.message:s.details,l=s.cause instanceof z0&&s.cause.docsPath||s.docsPath,u=[n||"An error occurred.","",...s.metaMessages?[...s.metaMessages,""]:[],...l?[`Docs: https://abitype.dev${l}`]:[],...r?[`Details: ${r}`]:[],`Version: abitype@${Rx}`].join(` -`);super(u),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),s.cause&&(this.cause=s.cause),this.details=r,this.docsPath=l,this.metaMessages=s.metaMessages,this.shortMessage=n}};function Ja(e,n){return e.exec(n)?.groups}const Fg=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Yg=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,Zg=/^\(.+?\).*?$/,N1=/^tuple(?<array>(\[(\d*)\])*)$/;function _0(e){let n=e.type;if(N1.test(e.type)&&"components"in e){n="(";const s=e.components.length;for(let l=0;l<s;l++){const u=e.components[l];n+=_0(u),l<s-1&&(n+=", ")}const r=Ja(N1,e.type);return n+=`)${r?.array??""}`,_0({...e,type:n})}return"indexed"in e&&e.indexed&&(n=`${n} indexed`),e.name?`${n} ${e.name}`:n}function lr(e){let n="";const s=e.length;for(let r=0;r<s;r++){const l=e[r];n+=_0(l),r!==s-1&&(n+=", ")}return n}function eu(e){return e.type==="function"?`function ${e.name}(${lr(e.inputs)})${e.stateMutability&&e.stateMutability!=="nonpayable"?` ${e.stateMutability}`:""}${e.outputs?.length?` returns (${lr(e.outputs)})`:""}`:e.type==="event"?`event ${e.name}(${lr(e.inputs)})`:e.type==="error"?`error ${e.name}(${lr(e.inputs)})`:e.type==="constructor"?`constructor(${lr(e.inputs)})${e.stateMutability==="payable"?" payable":""}`:e.type==="fallback"?`fallback() external${e.stateMutability==="payable"?" payable":""}`:"receive() external payable"}const Xg=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function Mx(e){return Xg.test(e)}function Cx(e){return Ja(Xg,e)}const Qg=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function Ox(e){return Qg.test(e)}function zx(e){return Ja(Qg,e)}const Jg=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/;function _x(e){return Jg.test(e)}function $x(e){return Ja(Jg,e)}const Wg=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;function pu(e){return Wg.test(e)}function Dx(e){return Ja(Wg,e)}const e6=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;function Ux(e){return e6.test(e)}function qx(e){return Ja(e6,e)}const t6=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;function Lx(e){return t6.test(e)}function Hx(e){return Ja(t6,e)}const Ix=/^receive\(\) external payable$/;function Gx(e){return Ix.test(e)}const B1=new Set(["memory","indexed","storage","calldata"]),Px=new Set(["indexed"]),$0=new Set(["calldata","memory","storage"]);class Kx extends fn{constructor({signature:n}){super("Failed to parse ABI item.",{details:`parseAbiItem(${JSON.stringify(n,null,2)})`,docsPath:"/api/human#parseabiitem-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiItemError"})}}class Vx extends fn{constructor({type:n}){super("Unknown type.",{metaMessages:[`Type "${n}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}}class Fx extends fn{constructor({type:n}){super("Unknown type.",{metaMessages:[`Type "${n}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}class Yx extends fn{constructor({params:n}){super("Failed to parse ABI parameters.",{details:`parseAbiParameters(${JSON.stringify(n,null,2)})`,docsPath:"/api/human#parseabiparameters-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiParametersError"})}}class Zx extends fn{constructor({param:n}){super("Invalid ABI parameter.",{details:n}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}}class Xx extends fn{constructor({param:n,name:s}){super("Invalid ABI parameter.",{details:n,metaMessages:[`"${s}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}}class Qx extends fn{constructor({param:n,type:s,modifier:r}){super("Invalid ABI parameter.",{details:n,metaMessages:[`Modifier "${r}" not allowed${s?` in "${s}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}}class Jx extends fn{constructor({param:n,type:s,modifier:r}){super("Invalid ABI parameter.",{details:n,metaMessages:[`Modifier "${r}" not allowed${s?` in "${s}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${r}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}}class Wx extends fn{constructor({abiParameter:n}){super("Invalid ABI parameter.",{details:JSON.stringify(n,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}class Tr extends fn{constructor({signature:n,type:s}){super(`Invalid ${s} signature.`,{details:n}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}}class e8 extends fn{constructor({signature:n}){super("Unknown signature.",{details:n}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}}class t8 extends fn{constructor({signature:n}){super("Invalid struct signature.",{details:n,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}class n8 extends fn{constructor({type:n}){super("Circular reference detected.",{metaMessages:[`Struct "${n}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}class a8 extends fn{constructor({current:n,depth:s}){super("Unbalanced parentheses.",{metaMessages:[`"${n.trim()}" has too many ${s>0?"opening":"closing"} parentheses.`],details:`Depth "${s}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}function s8(e,n,s){let r="";if(s)for(const l of Object.entries(s)){if(!l)continue;let u="";for(const f of l[1])u+=`[${f.type}${f.name?`:${f.name}`:""}]`;r+=`(${l[0]}{${u}})`}return n?`${n}:${e}${r}`:e}const s0=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]]);function D0(e,n={}){if(_x(e))return i8(e,n);if(Ox(e))return r8(e,n);if(Mx(e))return o8(e,n);if(Ux(e))return l8(e,n);if(Lx(e))return c8(e);if(Gx(e))return{type:"receive",stateMutability:"payable"};throw new e8({signature:e})}function i8(e,n={}){const s=$x(e);if(!s)throw new Tr({signature:e,type:"function"});const r=En(s.parameters),l=[],u=r.length;for(let p=0;p<u;p++)l.push(Fa(r[p],{modifiers:$0,structs:n,type:"function"}));const f=[];if(s.returns){const p=En(s.returns),m=p.length;for(let y=0;y<m;y++)f.push(Fa(p[y],{modifiers:$0,structs:n,type:"function"}))}return{name:s.name,type:"function",stateMutability:s.stateMutability??"nonpayable",inputs:l,outputs:f}}function r8(e,n={}){const s=zx(e);if(!s)throw new Tr({signature:e,type:"event"});const r=En(s.parameters),l=[],u=r.length;for(let f=0;f<u;f++)l.push(Fa(r[f],{modifiers:Px,structs:n,type:"event"}));return{name:s.name,type:"event",inputs:l}}function o8(e,n={}){const s=Cx(e);if(!s)throw new Tr({signature:e,type:"error"});const r=En(s.parameters),l=[],u=r.length;for(let f=0;f<u;f++)l.push(Fa(r[f],{structs:n,type:"error"}));return{name:s.name,type:"error",inputs:l}}function l8(e,n={}){const s=qx(e);if(!s)throw new Tr({signature:e,type:"constructor"});const r=En(s.parameters),l=[],u=r.length;for(let f=0;f<u;f++)l.push(Fa(r[f],{structs:n,type:"constructor"}));return{type:"constructor",stateMutability:s.stateMutability??"nonpayable",inputs:l}}function c8(e){const n=Hx(e);if(!n)throw new Tr({signature:e,type:"fallback"});return{type:"fallback",stateMutability:n.stateMutability??"nonpayable"}}const u8=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,d8=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,f8=/^u?int$/;function Fa(e,n){const s=s8(e,n?.type,n?.structs);if(s0.has(s))return s0.get(s);const r=Zg.test(e),l=Ja(r?d8:u8,e);if(!l)throw new Zx({param:e});if(l.name&&p8(l.name))throw new Xx({param:e,name:l.name});const u=l.name?{name:l.name}:{},f=l.modifier==="indexed"?{indexed:!0}:{},p=n?.structs??{};let m,y={};if(r){m="tuple";const w=En(l.type),g=[],S=w.length;for(let T=0;T<S;T++)g.push(Fa(w[T],{structs:p}));y={components:g}}else if(l.type in p)m="tuple",y={components:p[l.type]};else if(f8.test(l.type))m=`${l.type}256`;else if(l.type==="address payable")m="address";else if(m=l.type,n?.type!=="struct"&&!n6(m))throw new Fx({type:m});if(l.modifier){if(!n?.modifiers?.has?.(l.modifier))throw new Qx({param:e,type:n?.type,modifier:l.modifier});if($0.has(l.modifier)&&!m8(m,!!l.array))throw new Jx({param:e,type:n?.type,modifier:l.modifier})}const b={type:`${m}${l.array??""}`,...u,...f,...y};return s0.set(s,b),b}function En(e,n=[],s="",r=0){const l=e.trim().length;for(let u=0;u<l;u++){const f=e[u],p=e.slice(u+1);switch(f){case",":return r===0?En(p,[...n,s.trim()]):En(p,n,`${s}${f}`,r);case"(":return En(p,n,`${s}${f}`,r+1);case")":return En(p,n,`${s}${f}`,r-1);default:return En(p,n,`${s}${f}`,r)}}if(s==="")return n;if(r!==0)throw new a8({current:s,depth:r});return n.push(s.trim()),n}function n6(e){return e==="address"||e==="bool"||e==="function"||e==="string"||Fg.test(e)||Yg.test(e)}const h8=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/;function p8(e){return e==="address"||e==="bool"||e==="function"||e==="string"||e==="tuple"||Fg.test(e)||Yg.test(e)||h8.test(e)}function m8(e,n){return n||e==="bytes"||e==="string"||e==="tuple"}function jh(e){const n={},s=e.length;for(let f=0;f<s;f++){const p=e[f];if(!pu(p))continue;const m=Dx(p);if(!m)throw new Tr({signature:p,type:"struct"});const y=m.properties.split(";"),b=[],w=y.length;for(let g=0;g<w;g++){const T=y[g].trim();if(!T)continue;const x=Fa(T,{type:"struct"});b.push(x)}if(!b.length)throw new t8({signature:p});n[m.name]=b}const r={},l=Object.entries(n),u=l.length;for(let f=0;f<u;f++){const[p,m]=l[f];r[p]=a6(m,n)}return r}const y8=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/;function a6(e,n,s=new Set){const r=[],l=e.length;for(let u=0;u<l;u++){const f=e[u];if(Zg.test(f.type))r.push(f);else{const m=Ja(y8,f.type);if(!m?.type)throw new Wx({abiParameter:f});const{array:y,type:b}=m;if(b in n){if(s.has(b))throw new n8({type:b});r.push({...f,type:`tuple${y??""}`,components:a6(n[b]??[],n,new Set([...s,b]))})}else if(n6(b))r.push(f);else throw new Vx({type:b})}}return r}function In(e){const n=jh(e),s=[],r=e.length;for(let l=0;l<r;l++){const u=e[l];pu(u)||s.push(D0(u,n))}return s}function R1(e){let n;if(typeof e=="string")n=D0(e);else{const s=jh(e),r=e.length;for(let l=0;l<r;l++){const u=e[l];if(!pu(u)){n=D0(u,s);break}}}if(!n)throw new Kx({signature:e});return n}function M1(e){const n=[];if(typeof e=="string"){const s=En(e),r=s.length;for(let l=0;l<r;l++)n.push(Fa(s[l],{modifiers:B1}))}else{const s=jh(e),r=e.length;for(let l=0;l<r;l++){const u=e[l];if(pu(u))continue;const f=En(u),p=f.length;for(let m=0;m<p;m++)n.push(Fa(f[m],{modifiers:B1,structs:s}))}}if(n.length===0)throw new Yx({params:e});return n}function Ae(e,n,s){const r=e[n.name];if(typeof r=="function")return r;const l=e[s];return typeof l=="function"?l:u=>n(e,u)}function Xn(e,{includeName:n=!1}={}){if(e.type!=="function"&&e.type!=="event"&&e.type!=="error")throw new B8(e.type);return`${e.name}(${mu(e.inputs,{includeName:n})})`}function mu(e,{includeName:n=!1}={}){return e?e.map(s=>b8(s,{includeName:n})).join(n?", ":","):""}function b8(e,{includeName:n}){return e.type.startsWith("tuple")?`(${mu(e.components,{includeName:n})})${e.type.slice(5)}`:e.type+(n&&e.name?` ${e.name}`:"")}function pa(e,{strict:n=!0}={}){return!e||typeof e!="string"?!1:n?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}function mt(e){return pa(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}const s6="2.38.3";let i0={getDocsUrl:({docsBaseUrl:e,docsPath:n="",docsSlug:s})=>n?`${e??"https://viem.sh"}${n}${s?`#${s}`:""}`:void 0,version:`viem@${s6}`},re=class U0 extends Error{constructor(n,s={}){const r=s.cause instanceof U0?s.cause.details:s.cause?.message?s.cause.message:s.details,l=s.cause instanceof U0&&s.cause.docsPath||s.docsPath,u=i0.getDocsUrl?.({...s,docsPath:l}),f=[n||"An error occurred.","",...s.metaMessages?[...s.metaMessages,""]:[],...u?[`Docs: ${u}`]:[],...r?[`Details: ${r}`]:[],...i0.version?[`Version: ${i0.version}`]:[]].join(` +`+o.stack}}var Ft=Object.prototype.hasOwnProperty,Bt=e.unstable_scheduleCallback,Pt=e.unstable_cancelCallback,Tt=e.unstable_shouldYield,ye=e.unstable_requestPaint,ke=e.unstable_now,Ye=e.unstable_getCurrentPriorityLevel,yt=e.unstable_ImmediatePriority,Ke=e.unstable_UserBlockingPriority,at=e.unstable_NormalPriority,aa=e.unstable_LowPriority,L=e.unstable_IdlePriority,de=e.log,je=e.unstable_setDisableYieldValue,$e=null,He=null;function bt(t){if(typeof de=="function"&&je(t),He&&typeof He.setStrictMode=="function")try{He.setStrictMode($e,t)}catch{}}var st=Math.clz32?Math.clz32:r2,es=Math.log,ts=Math.LN2;function r2(t){return t>>>=0,t===0?32:31-(es(t)/ts|0)|0}var Tl=256,kl=262144,jl=4194304;function qs(t){var a=t&42;if(a!==0)return a;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&261888;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function Nl(t,a,i){var o=t.pendingLanes;if(o===0)return 0;var d=0,h=t.suspendedLanes,v=t.pingedLanes;t=t.warmLanes;var E=o&134217727;return E!==0?(o=E&~h,o!==0?d=qs(o):(v&=E,v!==0?d=qs(v):i||(i=E&~t,i!==0&&(d=qs(i))))):(E=o&~h,E!==0?d=qs(E):v!==0?d=qs(v):i||(i=o&~t,i!==0&&(d=qs(i)))),d===0?0:a!==0&&a!==d&&(a&h)===0&&(h=d&-d,i=a&-a,h>=i||h===32&&(i&4194048)!==0)?a:d}function Rr(t,a){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&a)===0}function o2(t,a){switch(t){case 1:case 2:case 4:case 8:case 64:return a+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Sp(){var t=jl;return jl<<=1,(jl&62914560)===0&&(jl=4194304),t}function qu(t){for(var a=[],i=0;31>i;i++)a.push(t);return a}function Mr(t,a){t.pendingLanes|=a,a!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function l2(t,a,i,o,d,h){var v=t.pendingLanes;t.pendingLanes=i,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=i,t.entangledLanes&=i,t.errorRecoveryDisabledLanes&=i,t.shellSuspendCounter=0;var E=t.entanglements,N=t.expirationTimes,q=t.hiddenUpdates;for(i=v&~i;0<i;){var Q=31-st(i),ne=1<<Q;E[Q]=0,N[Q]=-1;var G=q[Q];if(G!==null)for(q[Q]=null,Q=0;Q<G.length;Q++){var F=G[Q];F!==null&&(F.lane&=-536870913)}i&=~ne}o!==0&&Ep(t,o,0),h!==0&&d===0&&t.tag!==0&&(t.suspendedLanes|=h&~(v&~a))}function Ep(t,a,i){t.pendingLanes|=a,t.suspendedLanes&=~a;var o=31-st(a);t.entangledLanes|=a,t.entanglements[o]=t.entanglements[o]|1073741824|i&261930}function Ap(t,a){var i=t.entangledLanes|=a;for(t=t.entanglements;i;){var o=31-st(i),d=1<<o;d&a|t[o]&a&&(t[o]|=a),i&=~d}}function Tp(t,a){var i=a&-a;return i=(i&42)!==0?1:Lu(i),(i&(t.suspendedLanes|a))!==0?0:i}function Lu(t){switch(t){case 2:t=1;break;case 8:t=4;break;case 32:t=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:t=128;break;case 268435456:t=134217728;break;default:t=0}return t}function Hu(t){return t&=-t,2<t?8<t?(t&134217727)!==0?32:268435456:8:2}function kp(){var t=V.p;return t!==0?t:(t=window.event,t===void 0?32:d1(t.type))}function jp(t,a){var i=V.p;try{return V.p=t,a()}finally{V.p=i}}var ns=Math.random().toString(36).slice(2),_t="__reactFiber$"+ns,Jt="__reactProps$"+ns,xi="__reactContainer$"+ns,Iu="__reactEvents$"+ns,c2="__reactListeners$"+ns,u2="__reactHandles$"+ns,Np="__reactResources$"+ns,Cr="__reactMarker$"+ns;function Gu(t){delete t[_t],delete t[Jt],delete t[Iu],delete t[c2],delete t[u2]}function Si(t){var a=t[_t];if(a)return a;for(var i=t.parentNode;i;){if(a=i[xi]||i[_t]){if(i=a.alternate,a.child!==null||i!==null&&i.child!==null)for(t=Zb(t);t!==null;){if(i=t[_t])return i;t=Zb(t)}return a}t=i,i=t.parentNode}return null}function Ei(t){if(t=t[_t]||t[xi]){var a=t.tag;if(a===5||a===6||a===13||a===31||a===26||a===27||a===3)return t}return null}function Or(t){var a=t.tag;if(a===5||a===26||a===27||a===6)return t.stateNode;throw Error(r(33))}function Ai(t){var a=t[Np];return a||(a=t[Np]={hoistableStyles:new Map,hoistableScripts:new Map}),a}function Rt(t){t[Cr]=!0}var Bp=new Set,Rp={};function Ls(t,a){Ti(t,a),Ti(t+"Capture",a)}function Ti(t,a){for(Rp[t]=a,t=0;t<a.length;t++)Bp.add(a[t])}var d2=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Mp={},Cp={};function f2(t){return Ft.call(Cp,t)?!0:Ft.call(Mp,t)?!1:d2.test(t)?Cp[t]=!0:(Mp[t]=!0,!1)}function Bl(t,a,i){if(f2(a))if(i===null)t.removeAttribute(a);else{switch(typeof i){case"undefined":case"function":case"symbol":t.removeAttribute(a);return;case"boolean":var o=a.toLowerCase().slice(0,5);if(o!=="data-"&&o!=="aria-"){t.removeAttribute(a);return}}t.setAttribute(a,""+i)}}function Rl(t,a,i){if(i===null)t.removeAttribute(a);else{switch(typeof i){case"undefined":case"function":case"symbol":case"boolean":t.removeAttribute(a);return}t.setAttribute(a,""+i)}}function ga(t,a,i,o){if(o===null)t.removeAttribute(i);else{switch(typeof o){case"undefined":case"function":case"symbol":case"boolean":t.removeAttribute(i);return}t.setAttributeNS(a,i,""+o)}}function jn(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function Op(t){var a=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(a==="checkbox"||a==="radio")}function h2(t,a,i){var o=Object.getOwnPropertyDescriptor(t.constructor.prototype,a);if(!t.hasOwnProperty(a)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var d=o.get,h=o.set;return Object.defineProperty(t,a,{configurable:!0,get:function(){return d.call(this)},set:function(v){i=""+v,h.call(this,v)}}),Object.defineProperty(t,a,{enumerable:o.enumerable}),{getValue:function(){return i},setValue:function(v){i=""+v},stopTracking:function(){t._valueTracker=null,delete t[a]}}}}function Pu(t){if(!t._valueTracker){var a=Op(t)?"checked":"value";t._valueTracker=h2(t,a,""+t[a])}}function _p(t){if(!t)return!1;var a=t._valueTracker;if(!a)return!0;var i=a.getValue(),o="";return t&&(o=Op(t)?t.checked?"true":"false":t.value),t=o,t!==i?(a.setValue(t),!0):!1}function Ml(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var p2=/[\n"\\]/g;function Nn(t){return t.replace(p2,function(a){return"\\"+a.charCodeAt(0).toString(16)+" "})}function Vu(t,a,i,o,d,h,v,E){t.name="",v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"?t.type=v:t.removeAttribute("type"),a!=null?v==="number"?(a===0&&t.value===""||t.value!=a)&&(t.value=""+jn(a)):t.value!==""+jn(a)&&(t.value=""+jn(a)):v!=="submit"&&v!=="reset"||t.removeAttribute("value"),a!=null?Ku(t,v,jn(a)):i!=null?Ku(t,v,jn(i)):o!=null&&t.removeAttribute("value"),d==null&&h!=null&&(t.defaultChecked=!!h),d!=null&&(t.checked=d&&typeof d!="function"&&typeof d!="symbol"),E!=null&&typeof E!="function"&&typeof E!="symbol"&&typeof E!="boolean"?t.name=""+jn(E):t.removeAttribute("name")}function zp(t,a,i,o,d,h,v,E){if(h!=null&&typeof h!="function"&&typeof h!="symbol"&&typeof h!="boolean"&&(t.type=h),a!=null||i!=null){if(!(h!=="submit"&&h!=="reset"||a!=null)){Pu(t);return}i=i!=null?""+jn(i):"",a=a!=null?""+jn(a):i,E||a===t.value||(t.value=a),t.defaultValue=a}o=o??d,o=typeof o!="function"&&typeof o!="symbol"&&!!o,t.checked=E?t.checked:!!o,t.defaultChecked=!!o,v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"&&(t.name=v),Pu(t)}function Ku(t,a,i){a==="number"&&Ml(t.ownerDocument)===t||t.defaultValue===""+i||(t.defaultValue=""+i)}function ki(t,a,i,o){if(t=t.options,a){a={};for(var d=0;d<i.length;d++)a["$"+i[d]]=!0;for(i=0;i<t.length;i++)d=a.hasOwnProperty("$"+t[i].value),t[i].selected!==d&&(t[i].selected=d),d&&o&&(t[i].defaultSelected=!0)}else{for(i=""+jn(i),a=null,d=0;d<t.length;d++){if(t[d].value===i){t[d].selected=!0,o&&(t[d].defaultSelected=!0);return}a!==null||t[d].disabled||(a=t[d])}a!==null&&(a.selected=!0)}}function $p(t,a,i){if(a!=null&&(a=""+jn(a),a!==t.value&&(t.value=a),i==null)){t.defaultValue!==a&&(t.defaultValue=a);return}t.defaultValue=i!=null?""+jn(i):""}function Dp(t,a,i,o){if(a==null){if(o!=null){if(i!=null)throw Error(r(92));if(ae(o)){if(1<o.length)throw Error(r(93));o=o[0]}i=o}i==null&&(i=""),a=i}i=jn(a),t.defaultValue=i,o=t.textContent,o===i&&o!==""&&o!==null&&(t.value=o),Pu(t)}function ji(t,a){if(a){var i=t.firstChild;if(i&&i===t.lastChild&&i.nodeType===3){i.nodeValue=a;return}}t.textContent=a}var m2=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function Up(t,a,i){var o=a.indexOf("--")===0;i==null||typeof i=="boolean"||i===""?o?t.setProperty(a,""):a==="float"?t.cssFloat="":t[a]="":o?t.setProperty(a,i):typeof i!="number"||i===0||m2.has(a)?a==="float"?t.cssFloat=i:t[a]=(""+i).trim():t[a]=i+"px"}function qp(t,a,i){if(a!=null&&typeof a!="object")throw Error(r(62));if(t=t.style,i!=null){for(var o in i)!i.hasOwnProperty(o)||a!=null&&a.hasOwnProperty(o)||(o.indexOf("--")===0?t.setProperty(o,""):o==="float"?t.cssFloat="":t[o]="");for(var d in a)o=a[d],a.hasOwnProperty(d)&&i[d]!==o&&Up(t,d,o)}else for(var h in a)a.hasOwnProperty(h)&&Up(t,h,a[h])}function Fu(t){if(t.indexOf("-")===-1)return!1;switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var y2=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),b2=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Cl(t){return b2.test(""+t)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":t}function va(){}var Yu=null;function Zu(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var Ni=null,Bi=null;function Lp(t){var a=Ei(t);if(a&&(t=a.stateNode)){var i=t[Jt]||null;e:switch(t=a.stateNode,a.type){case"input":if(Vu(t,i.value,i.defaultValue,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name),a=i.name,i.type==="radio"&&a!=null){for(i=t;i.parentNode;)i=i.parentNode;for(i=i.querySelectorAll('input[name="'+Nn(""+a)+'"][type="radio"]'),a=0;a<i.length;a++){var o=i[a];if(o!==t&&o.form===t.form){var d=o[Jt]||null;if(!d)throw Error(r(90));Vu(o,d.value,d.defaultValue,d.defaultValue,d.checked,d.defaultChecked,d.type,d.name)}}for(a=0;a<i.length;a++)o=i[a],o.form===t.form&&_p(o)}break e;case"textarea":$p(t,i.value,i.defaultValue);break e;case"select":a=i.value,a!=null&&ki(t,!!i.multiple,a,!1)}}}var Xu=!1;function Hp(t,a,i){if(Xu)return t(a,i);Xu=!0;try{var o=t(a);return o}finally{if(Xu=!1,(Ni!==null||Bi!==null)&&(vc(),Ni&&(a=Ni,t=Bi,Bi=Ni=null,Lp(a),t)))for(a=0;a<t.length;a++)Lp(t[a])}}function _r(t,a){var i=t.stateNode;if(i===null)return null;var o=i[Jt]||null;if(o===null)return null;i=o[a];e:switch(a){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(o=!o.disabled)||(t=t.type,o=!(t==="button"||t==="input"||t==="select"||t==="textarea")),t=!o;break e;default:t=!1}if(t)return null;if(i&&typeof i!="function")throw Error(r(231,a,typeof i));return i}var wa=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Qu=!1;if(wa)try{var zr={};Object.defineProperty(zr,"passive",{get:function(){Qu=!0}}),window.addEventListener("test",zr,zr),window.removeEventListener("test",zr,zr)}catch{Qu=!1}var as=null,Ju=null,Ol=null;function Ip(){if(Ol)return Ol;var t,a=Ju,i=a.length,o,d="value"in as?as.value:as.textContent,h=d.length;for(t=0;t<i&&a[t]===d[t];t++);var v=i-t;for(o=1;o<=v&&a[i-o]===d[h-o];o++);return Ol=d.slice(t,1<o?1-o:void 0)}function _l(t){var a=t.keyCode;return"charCode"in t?(t=t.charCode,t===0&&a===13&&(t=13)):t=a,t===10&&(t=13),32<=t||t===13?t:0}function zl(){return!0}function Gp(){return!1}function Wt(t){function a(i,o,d,h,v){this._reactName=i,this._targetInst=d,this.type=o,this.nativeEvent=h,this.target=v,this.currentTarget=null;for(var E in t)t.hasOwnProperty(E)&&(i=t[E],this[E]=i?i(h):h[E]);return this.isDefaultPrevented=(h.defaultPrevented!=null?h.defaultPrevented:h.returnValue===!1)?zl:Gp,this.isPropagationStopped=Gp,this}return w(a.prototype,{preventDefault:function(){this.defaultPrevented=!0;var i=this.nativeEvent;i&&(i.preventDefault?i.preventDefault():typeof i.returnValue!="unknown"&&(i.returnValue=!1),this.isDefaultPrevented=zl)},stopPropagation:function(){var i=this.nativeEvent;i&&(i.stopPropagation?i.stopPropagation():typeof i.cancelBubble!="unknown"&&(i.cancelBubble=!0),this.isPropagationStopped=zl)},persist:function(){},isPersistent:zl}),a}var Hs={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(t){return t.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},$l=Wt(Hs),$r=w({},Hs,{view:0,detail:0}),g2=Wt($r),Wu,ed,Dr,Dl=w({},$r,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:nd,button:0,buttons:0,relatedTarget:function(t){return t.relatedTarget===void 0?t.fromElement===t.srcElement?t.toElement:t.fromElement:t.relatedTarget},movementX:function(t){return"movementX"in t?t.movementX:(t!==Dr&&(Dr&&t.type==="mousemove"?(Wu=t.screenX-Dr.screenX,ed=t.screenY-Dr.screenY):ed=Wu=0,Dr=t),Wu)},movementY:function(t){return"movementY"in t?t.movementY:ed}}),Pp=Wt(Dl),v2=w({},Dl,{dataTransfer:0}),w2=Wt(v2),x2=w({},$r,{relatedTarget:0}),td=Wt(x2),S2=w({},Hs,{animationName:0,elapsedTime:0,pseudoElement:0}),E2=Wt(S2),A2=w({},Hs,{clipboardData:function(t){return"clipboardData"in t?t.clipboardData:window.clipboardData}}),T2=Wt(A2),k2=w({},Hs,{data:0}),Vp=Wt(k2),j2={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},N2={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},B2={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function R2(t){var a=this.nativeEvent;return a.getModifierState?a.getModifierState(t):(t=B2[t])?!!a[t]:!1}function nd(){return R2}var M2=w({},$r,{key:function(t){if(t.key){var a=j2[t.key]||t.key;if(a!=="Unidentified")return a}return t.type==="keypress"?(t=_l(t),t===13?"Enter":String.fromCharCode(t)):t.type==="keydown"||t.type==="keyup"?N2[t.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:nd,charCode:function(t){return t.type==="keypress"?_l(t):0},keyCode:function(t){return t.type==="keydown"||t.type==="keyup"?t.keyCode:0},which:function(t){return t.type==="keypress"?_l(t):t.type==="keydown"||t.type==="keyup"?t.keyCode:0}}),C2=Wt(M2),O2=w({},Dl,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Kp=Wt(O2),_2=w({},$r,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:nd}),z2=Wt(_2),$2=w({},Hs,{propertyName:0,elapsedTime:0,pseudoElement:0}),D2=Wt($2),U2=w({},Dl,{deltaX:function(t){return"deltaX"in t?t.deltaX:"wheelDeltaX"in t?-t.wheelDeltaX:0},deltaY:function(t){return"deltaY"in t?t.deltaY:"wheelDeltaY"in t?-t.wheelDeltaY:"wheelDelta"in t?-t.wheelDelta:0},deltaZ:0,deltaMode:0}),q2=Wt(U2),L2=w({},Hs,{newState:0,oldState:0}),H2=Wt(L2),I2=[9,13,27,32],ad=wa&&"CompositionEvent"in window,Ur=null;wa&&"documentMode"in document&&(Ur=document.documentMode);var G2=wa&&"TextEvent"in window&&!Ur,Fp=wa&&(!ad||Ur&&8<Ur&&11>=Ur),Yp=" ",Zp=!1;function Xp(t,a){switch(t){case"keyup":return I2.indexOf(a.keyCode)!==-1;case"keydown":return a.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Qp(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Ri=!1;function P2(t,a){switch(t){case"compositionend":return Qp(a);case"keypress":return a.which!==32?null:(Zp=!0,Yp);case"textInput":return t=a.data,t===Yp&&Zp?null:t;default:return null}}function V2(t,a){if(Ri)return t==="compositionend"||!ad&&Xp(t,a)?(t=Ip(),Ol=Ju=as=null,Ri=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(a.ctrlKey||a.altKey||a.metaKey)||a.ctrlKey&&a.altKey){if(a.char&&1<a.char.length)return a.char;if(a.which)return String.fromCharCode(a.which)}return null;case"compositionend":return Fp&&a.locale!=="ko"?null:a.data;default:return null}}var K2={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Jp(t){var a=t&&t.nodeName&&t.nodeName.toLowerCase();return a==="input"?!!K2[t.type]:a==="textarea"}function Wp(t,a,i,o){Ni?Bi?Bi.push(o):Bi=[o]:Ni=o,a=kc(a,"onChange"),0<a.length&&(i=new $l("onChange","change",null,i,o),t.push({event:i,listeners:a}))}var qr=null,Lr=null;function F2(t){zb(t,0)}function Ul(t){var a=Or(t);if(_p(a))return t}function em(t,a){if(t==="change")return a}var tm=!1;if(wa){var sd;if(wa){var id="oninput"in document;if(!id){var nm=document.createElement("div");nm.setAttribute("oninput","return;"),id=typeof nm.oninput=="function"}sd=id}else sd=!1;tm=sd&&(!document.documentMode||9<document.documentMode)}function am(){qr&&(qr.detachEvent("onpropertychange",sm),Lr=qr=null)}function sm(t){if(t.propertyName==="value"&&Ul(Lr)){var a=[];Wp(a,Lr,t,Zu(t)),Hp(F2,a)}}function Y2(t,a,i){t==="focusin"?(am(),qr=a,Lr=i,qr.attachEvent("onpropertychange",sm)):t==="focusout"&&am()}function Z2(t){if(t==="selectionchange"||t==="keyup"||t==="keydown")return Ul(Lr)}function X2(t,a){if(t==="click")return Ul(a)}function Q2(t,a){if(t==="input"||t==="change")return Ul(a)}function J2(t,a){return t===a&&(t!==0||1/t===1/a)||t!==t&&a!==a}var mn=typeof Object.is=="function"?Object.is:J2;function Hr(t,a){if(mn(t,a))return!0;if(typeof t!="object"||t===null||typeof a!="object"||a===null)return!1;var i=Object.keys(t),o=Object.keys(a);if(i.length!==o.length)return!1;for(o=0;o<i.length;o++){var d=i[o];if(!Ft.call(a,d)||!mn(t[d],a[d]))return!1}return!0}function im(t){for(;t&&t.firstChild;)t=t.firstChild;return t}function rm(t,a){var i=im(t);t=0;for(var o;i;){if(i.nodeType===3){if(o=t+i.textContent.length,t<=a&&o>=a)return{node:i,offset:a-t};t=o}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=im(i)}}function om(t,a){return t&&a?t===a?!0:t&&t.nodeType===3?!1:a&&a.nodeType===3?om(t,a.parentNode):"contains"in t?t.contains(a):t.compareDocumentPosition?!!(t.compareDocumentPosition(a)&16):!1:!1}function lm(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var a=Ml(t.document);a instanceof t.HTMLIFrameElement;){try{var i=typeof a.contentWindow.location.href=="string"}catch{i=!1}if(i)t=a.contentWindow;else break;a=Ml(t.document)}return a}function rd(t){var a=t&&t.nodeName&&t.nodeName.toLowerCase();return a&&(a==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||a==="textarea"||t.contentEditable==="true")}var W2=wa&&"documentMode"in document&&11>=document.documentMode,Mi=null,od=null,Ir=null,ld=!1;function cm(t,a,i){var o=i.window===i?i.document:i.nodeType===9?i:i.ownerDocument;ld||Mi==null||Mi!==Ml(o)||(o=Mi,"selectionStart"in o&&rd(o)?o={start:o.selectionStart,end:o.selectionEnd}:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection(),o={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}),Ir&&Hr(Ir,o)||(Ir=o,o=kc(od,"onSelect"),0<o.length&&(a=new $l("onSelect","select",null,a,i),t.push({event:a,listeners:o}),a.target=Mi)))}function Is(t,a){var i={};return i[t.toLowerCase()]=a.toLowerCase(),i["Webkit"+t]="webkit"+a,i["Moz"+t]="moz"+a,i}var Ci={animationend:Is("Animation","AnimationEnd"),animationiteration:Is("Animation","AnimationIteration"),animationstart:Is("Animation","AnimationStart"),transitionrun:Is("Transition","TransitionRun"),transitionstart:Is("Transition","TransitionStart"),transitioncancel:Is("Transition","TransitionCancel"),transitionend:Is("Transition","TransitionEnd")},cd={},um={};wa&&(um=document.createElement("div").style,"AnimationEvent"in window||(delete Ci.animationend.animation,delete Ci.animationiteration.animation,delete Ci.animationstart.animation),"TransitionEvent"in window||delete Ci.transitionend.transition);function Gs(t){if(cd[t])return cd[t];if(!Ci[t])return t;var a=Ci[t],i;for(i in a)if(a.hasOwnProperty(i)&&i in um)return cd[t]=a[i];return t}var dm=Gs("animationend"),fm=Gs("animationiteration"),hm=Gs("animationstart"),ew=Gs("transitionrun"),tw=Gs("transitionstart"),nw=Gs("transitioncancel"),pm=Gs("transitionend"),mm=new Map,ud="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");ud.push("scrollEnd");function Pn(t,a){mm.set(t,a),Ls(a,[t])}var ql=typeof reportError=="function"?reportError:function(t){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var a=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof t=="object"&&t!==null&&typeof t.message=="string"?String(t.message):String(t),error:t});if(!window.dispatchEvent(a))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",t);return}console.error(t)},Bn=[],Oi=0,dd=0;function Ll(){for(var t=Oi,a=dd=Oi=0;a<t;){var i=Bn[a];Bn[a++]=null;var o=Bn[a];Bn[a++]=null;var d=Bn[a];Bn[a++]=null;var h=Bn[a];if(Bn[a++]=null,o!==null&&d!==null){var v=o.pending;v===null?d.next=d:(d.next=v.next,v.next=d),o.pending=d}h!==0&&ym(i,d,h)}}function Hl(t,a,i,o){Bn[Oi++]=t,Bn[Oi++]=a,Bn[Oi++]=i,Bn[Oi++]=o,dd|=o,t.lanes|=o,t=t.alternate,t!==null&&(t.lanes|=o)}function fd(t,a,i,o){return Hl(t,a,i,o),Il(t)}function Ps(t,a){return Hl(t,null,null,a),Il(t)}function ym(t,a,i){t.lanes|=i;var o=t.alternate;o!==null&&(o.lanes|=i);for(var d=!1,h=t.return;h!==null;)h.childLanes|=i,o=h.alternate,o!==null&&(o.childLanes|=i),h.tag===22&&(t=h.stateNode,t===null||t._visibility&1||(d=!0)),t=h,h=h.return;return t.tag===3?(h=t.stateNode,d&&a!==null&&(d=31-st(i),t=h.hiddenUpdates,o=t[d],o===null?t[d]=[a]:o.push(a),a.lane=i|536870912),h):null}function Il(t){if(50<uo)throw uo=0,Sf=null,Error(r(185));for(var a=t.return;a!==null;)t=a,a=t.return;return t.tag===3?t.stateNode:null}var _i={};function aw(t,a,i,o){this.tag=t,this.key=i,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=a,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=o,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function yn(t,a,i,o){return new aw(t,a,i,o)}function hd(t){return t=t.prototype,!(!t||!t.isReactComponent)}function xa(t,a){var i=t.alternate;return i===null?(i=yn(t.tag,a,t.key,t.mode),i.elementType=t.elementType,i.type=t.type,i.stateNode=t.stateNode,i.alternate=t,t.alternate=i):(i.pendingProps=a,i.type=t.type,i.flags=0,i.subtreeFlags=0,i.deletions=null),i.flags=t.flags&65011712,i.childLanes=t.childLanes,i.lanes=t.lanes,i.child=t.child,i.memoizedProps=t.memoizedProps,i.memoizedState=t.memoizedState,i.updateQueue=t.updateQueue,a=t.dependencies,i.dependencies=a===null?null:{lanes:a.lanes,firstContext:a.firstContext},i.sibling=t.sibling,i.index=t.index,i.ref=t.ref,i.refCleanup=t.refCleanup,i}function bm(t,a){t.flags&=65011714;var i=t.alternate;return i===null?(t.childLanes=0,t.lanes=a,t.child=null,t.subtreeFlags=0,t.memoizedProps=null,t.memoizedState=null,t.updateQueue=null,t.dependencies=null,t.stateNode=null):(t.childLanes=i.childLanes,t.lanes=i.lanes,t.child=i.child,t.subtreeFlags=0,t.deletions=null,t.memoizedProps=i.memoizedProps,t.memoizedState=i.memoizedState,t.updateQueue=i.updateQueue,t.type=i.type,a=i.dependencies,t.dependencies=a===null?null:{lanes:a.lanes,firstContext:a.firstContext}),t}function Gl(t,a,i,o,d,h){var v=0;if(o=t,typeof t=="function")hd(t)&&(v=1);else if(typeof t=="string")v=lx(t,i,H.current)?26:t==="html"||t==="head"||t==="body"?27:5;else e:switch(t){case ee:return t=yn(31,i,a,d),t.elementType=ee,t.lanes=h,t;case x:return Vs(i.children,d,h,a);case j:v=8,d|=24;break;case M:return t=yn(12,i,a,d|2),t.elementType=M,t.lanes=h,t;case A:return t=yn(13,i,a,d),t.elementType=A,t.lanes=h,t;case z:return t=yn(19,i,a,d),t.elementType=z,t.lanes=h,t;default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case O:v=10;break e;case I:v=9;break e;case B:v=11;break e;case C:v=14;break e;case Z:v=16,o=null;break e}v=29,i=Error(r(130,t===null?"null":typeof t,"")),o=null}return a=yn(v,i,a,d),a.elementType=t,a.type=o,a.lanes=h,a}function Vs(t,a,i,o){return t=yn(7,t,o,a),t.lanes=i,t}function pd(t,a,i){return t=yn(6,t,null,a),t.lanes=i,t}function gm(t){var a=yn(18,null,null,0);return a.stateNode=t,a}function md(t,a,i){return a=yn(4,t.children!==null?t.children:[],t.key,a),a.lanes=i,a.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},a}var vm=new WeakMap;function Rn(t,a){if(typeof t=="object"&&t!==null){var i=vm.get(t);return i!==void 0?i:(a={value:t,source:a,stack:pn(a)},vm.set(t,a),a)}return{value:t,source:a,stack:pn(a)}}var zi=[],$i=0,Pl=null,Gr=0,Mn=[],Cn=0,ss=null,sa=1,ia="";function Sa(t,a){zi[$i++]=Gr,zi[$i++]=Pl,Pl=t,Gr=a}function wm(t,a,i){Mn[Cn++]=sa,Mn[Cn++]=ia,Mn[Cn++]=ss,ss=t;var o=sa;t=ia;var d=32-st(o)-1;o&=~(1<<d),i+=1;var h=32-st(a)+d;if(30<h){var v=d-d%5;h=(o&(1<<v)-1).toString(32),o>>=v,d-=v,sa=1<<32-st(a)+d|i<<d|o,ia=h+t}else sa=1<<h|i<<d|o,ia=t}function yd(t){t.return!==null&&(Sa(t,1),wm(t,1,0))}function bd(t){for(;t===Pl;)Pl=zi[--$i],zi[$i]=null,Gr=zi[--$i],zi[$i]=null;for(;t===ss;)ss=Mn[--Cn],Mn[Cn]=null,ia=Mn[--Cn],Mn[Cn]=null,sa=Mn[--Cn],Mn[Cn]=null}function xm(t,a){Mn[Cn++]=sa,Mn[Cn++]=ia,Mn[Cn++]=ss,sa=a.id,ia=a.overflow,ss=t}var zt=null,ot=null,qe=!1,is=null,On=!1,gd=Error(r(519));function rs(t){var a=Error(r(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Pr(Rn(a,t)),gd}function Sm(t){var a=t.stateNode,i=t.type,o=t.memoizedProps;switch(a[_t]=t,a[Jt]=o,i){case"dialog":ze("cancel",a),ze("close",a);break;case"iframe":case"object":case"embed":ze("load",a);break;case"video":case"audio":for(i=0;i<ho.length;i++)ze(ho[i],a);break;case"source":ze("error",a);break;case"img":case"image":case"link":ze("error",a),ze("load",a);break;case"details":ze("toggle",a);break;case"input":ze("invalid",a),zp(a,o.value,o.defaultValue,o.checked,o.defaultChecked,o.type,o.name,!0);break;case"select":ze("invalid",a);break;case"textarea":ze("invalid",a),Dp(a,o.value,o.defaultValue,o.children)}i=o.children,typeof i!="string"&&typeof i!="number"&&typeof i!="bigint"||a.textContent===""+i||o.suppressHydrationWarning===!0||qb(a.textContent,i)?(o.popover!=null&&(ze("beforetoggle",a),ze("toggle",a)),o.onScroll!=null&&ze("scroll",a),o.onScrollEnd!=null&&ze("scrollend",a),o.onClick!=null&&(a.onclick=va),a=!0):a=!1,a||rs(t,!0)}function Em(t){for(zt=t.return;zt;)switch(zt.tag){case 5:case 31:case 13:On=!1;return;case 27:case 3:On=!0;return;default:zt=zt.return}}function Di(t){if(t!==zt)return!1;if(!qe)return Em(t),qe=!0,!1;var a=t.tag,i;if((i=a!==3&&a!==27)&&((i=a===5)&&(i=t.type,i=!(i!=="form"&&i!=="button")||Df(t.type,t.memoizedProps)),i=!i),i&&ot&&rs(t),Em(t),a===13){if(t=t.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(r(317));ot=Yb(t)}else if(a===31){if(t=t.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(r(317));ot=Yb(t)}else a===27?(a=ot,ws(t.type)?(t=If,If=null,ot=t):ot=a):ot=zt?zn(t.stateNode.nextSibling):null;return!0}function Ks(){ot=zt=null,qe=!1}function vd(){var t=is;return t!==null&&(an===null?an=t:an.push.apply(an,t),is=null),t}function Pr(t){is===null?is=[t]:is.push(t)}var wd=k(null),Fs=null,Ea=null;function os(t,a,i){ie(wd,a._currentValue),a._currentValue=i}function Aa(t){t._currentValue=wd.current,P(wd)}function xd(t,a,i){for(;t!==null;){var o=t.alternate;if((t.childLanes&a)!==a?(t.childLanes|=a,o!==null&&(o.childLanes|=a)):o!==null&&(o.childLanes&a)!==a&&(o.childLanes|=a),t===i)break;t=t.return}}function Sd(t,a,i,o){var d=t.child;for(d!==null&&(d.return=t);d!==null;){var h=d.dependencies;if(h!==null){var v=d.child;h=h.firstContext;e:for(;h!==null;){var E=h;h=d;for(var N=0;N<a.length;N++)if(E.context===a[N]){h.lanes|=i,E=h.alternate,E!==null&&(E.lanes|=i),xd(h.return,i,t),o||(v=null);break e}h=E.next}}else if(d.tag===18){if(v=d.return,v===null)throw Error(r(341));v.lanes|=i,h=v.alternate,h!==null&&(h.lanes|=i),xd(v,i,t),v=null}else v=d.child;if(v!==null)v.return=d;else for(v=d;v!==null;){if(v===t){v=null;break}if(d=v.sibling,d!==null){d.return=v.return,v=d;break}v=v.return}d=v}}function Ui(t,a,i,o){t=null;for(var d=a,h=!1;d!==null;){if(!h){if((d.flags&524288)!==0)h=!0;else if((d.flags&262144)!==0)break}if(d.tag===10){var v=d.alternate;if(v===null)throw Error(r(387));if(v=v.memoizedProps,v!==null){var E=d.type;mn(d.pendingProps.value,v.value)||(t!==null?t.push(E):t=[E])}}else if(d===pe.current){if(v=d.alternate,v===null)throw Error(r(387));v.memoizedState.memoizedState!==d.memoizedState.memoizedState&&(t!==null?t.push(go):t=[go])}d=d.return}t!==null&&Sd(a,t,i,o),a.flags|=262144}function Vl(t){for(t=t.firstContext;t!==null;){if(!mn(t.context._currentValue,t.memoizedValue))return!0;t=t.next}return!1}function Ys(t){Fs=t,Ea=null,t=t.dependencies,t!==null&&(t.firstContext=null)}function $t(t){return Am(Fs,t)}function Kl(t,a){return Fs===null&&Ys(t),Am(t,a)}function Am(t,a){var i=a._currentValue;if(a={context:a,memoizedValue:i,next:null},Ea===null){if(t===null)throw Error(r(308));Ea=a,t.dependencies={lanes:0,firstContext:a},t.flags|=524288}else Ea=Ea.next=a;return i}var sw=typeof AbortController<"u"?AbortController:function(){var t=[],a=this.signal={aborted:!1,addEventListener:function(i,o){t.push(o)}};this.abort=function(){a.aborted=!0,t.forEach(function(i){return i()})}},iw=e.unstable_scheduleCallback,rw=e.unstable_NormalPriority,xt={$$typeof:O,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Ed(){return{controller:new sw,data:new Map,refCount:0}}function Vr(t){t.refCount--,t.refCount===0&&iw(rw,function(){t.controller.abort()})}var Kr=null,Ad=0,qi=0,Li=null;function ow(t,a){if(Kr===null){var i=Kr=[];Ad=0,qi=Nf(),Li={status:"pending",value:void 0,then:function(o){i.push(o)}}}return Ad++,a.then(Tm,Tm),a}function Tm(){if(--Ad===0&&Kr!==null){Li!==null&&(Li.status="fulfilled");var t=Kr;Kr=null,qi=0,Li=null;for(var a=0;a<t.length;a++)(0,t[a])()}}function lw(t,a){var i=[],o={status:"pending",value:null,reason:null,then:function(d){i.push(d)}};return t.then(function(){o.status="fulfilled",o.value=a;for(var d=0;d<i.length;d++)(0,i[d])(a)},function(d){for(o.status="rejected",o.reason=d,d=0;d<i.length;d++)(0,i[d])(void 0)}),o}var km=R.S;R.S=function(t,a){cb=ke(),typeof a=="object"&&a!==null&&typeof a.then=="function"&&ow(t,a),km!==null&&km(t,a)};var Zs=k(null);function Td(){var t=Zs.current;return t!==null?t:it.pooledCache}function Fl(t,a){a===null?ie(Zs,Zs.current):ie(Zs,a.pool)}function jm(){var t=Td();return t===null?null:{parent:xt._currentValue,pool:t}}var Hi=Error(r(460)),kd=Error(r(474)),Yl=Error(r(542)),Zl={then:function(){}};function Nm(t){return t=t.status,t==="fulfilled"||t==="rejected"}function Bm(t,a,i){switch(i=t[i],i===void 0?t.push(a):i!==a&&(a.then(va,va),a=i),a.status){case"fulfilled":return a.value;case"rejected":throw t=a.reason,Mm(t),t;default:if(typeof a.status=="string")a.then(va,va);else{if(t=it,t!==null&&100<t.shellSuspendCounter)throw Error(r(482));t=a,t.status="pending",t.then(function(o){if(a.status==="pending"){var d=a;d.status="fulfilled",d.value=o}},function(o){if(a.status==="pending"){var d=a;d.status="rejected",d.reason=o}})}switch(a.status){case"fulfilled":return a.value;case"rejected":throw t=a.reason,Mm(t),t}throw Qs=a,Hi}}function Xs(t){try{var a=t._init;return a(t._payload)}catch(i){throw i!==null&&typeof i=="object"&&typeof i.then=="function"?(Qs=i,Hi):i}}var Qs=null;function Rm(){if(Qs===null)throw Error(r(459));var t=Qs;return Qs=null,t}function Mm(t){if(t===Hi||t===Yl)throw Error(r(483))}var Ii=null,Fr=0;function Xl(t){var a=Fr;return Fr+=1,Ii===null&&(Ii=[]),Bm(Ii,t,a)}function Yr(t,a){a=a.props.ref,t.ref=a!==void 0?a:null}function Ql(t,a){throw a.$$typeof===g?Error(r(525)):(t=Object.prototype.toString.call(a),Error(r(31,t==="[object Object]"?"object with keys {"+Object.keys(a).join(", ")+"}":t)))}function Cm(t){function a($,_){if(t){var U=$.deletions;U===null?($.deletions=[_],$.flags|=16):U.push(_)}}function i($,_){if(!t)return null;for(;_!==null;)a($,_),_=_.sibling;return null}function o($){for(var _=new Map;$!==null;)$.key!==null?_.set($.key,$):_.set($.index,$),$=$.sibling;return _}function d($,_){return $=xa($,_),$.index=0,$.sibling=null,$}function h($,_,U){return $.index=U,t?(U=$.alternate,U!==null?(U=U.index,U<_?($.flags|=67108866,_):U):($.flags|=67108866,_)):($.flags|=1048576,_)}function v($){return t&&$.alternate===null&&($.flags|=67108866),$}function E($,_,U,te){return _===null||_.tag!==6?(_=pd(U,$.mode,te),_.return=$,_):(_=d(_,U),_.return=$,_)}function N($,_,U,te){var ve=U.type;return ve===x?Q($,_,U.props.children,te,U.key):_!==null&&(_.elementType===ve||typeof ve=="object"&&ve!==null&&ve.$$typeof===Z&&Xs(ve)===_.type)?(_=d(_,U.props),Yr(_,U),_.return=$,_):(_=Gl(U.type,U.key,U.props,null,$.mode,te),Yr(_,U),_.return=$,_)}function q($,_,U,te){return _===null||_.tag!==4||_.stateNode.containerInfo!==U.containerInfo||_.stateNode.implementation!==U.implementation?(_=md(U,$.mode,te),_.return=$,_):(_=d(_,U.children||[]),_.return=$,_)}function Q($,_,U,te,ve){return _===null||_.tag!==7?(_=Vs(U,$.mode,te,ve),_.return=$,_):(_=d(_,U),_.return=$,_)}function ne($,_,U){if(typeof _=="string"&&_!==""||typeof _=="number"||typeof _=="bigint")return _=pd(""+_,$.mode,U),_.return=$,_;if(typeof _=="object"&&_!==null){switch(_.$$typeof){case S:return U=Gl(_.type,_.key,_.props,null,$.mode,U),Yr(U,_),U.return=$,U;case T:return _=md(_,$.mode,U),_.return=$,_;case Z:return _=Xs(_),ne($,_,U)}if(ae(_)||X(_))return _=Vs(_,$.mode,U,null),_.return=$,_;if(typeof _.then=="function")return ne($,Xl(_),U);if(_.$$typeof===O)return ne($,Kl($,_),U);Ql($,_)}return null}function G($,_,U,te){var ve=_!==null?_.key:null;if(typeof U=="string"&&U!==""||typeof U=="number"||typeof U=="bigint")return ve!==null?null:E($,_,""+U,te);if(typeof U=="object"&&U!==null){switch(U.$$typeof){case S:return U.key===ve?N($,_,U,te):null;case T:return U.key===ve?q($,_,U,te):null;case Z:return U=Xs(U),G($,_,U,te)}if(ae(U)||X(U))return ve!==null?null:Q($,_,U,te,null);if(typeof U.then=="function")return G($,_,Xl(U),te);if(U.$$typeof===O)return G($,_,Kl($,U),te);Ql($,U)}return null}function F($,_,U,te,ve){if(typeof te=="string"&&te!==""||typeof te=="number"||typeof te=="bigint")return $=$.get(U)||null,E(_,$,""+te,ve);if(typeof te=="object"&&te!==null){switch(te.$$typeof){case S:return $=$.get(te.key===null?U:te.key)||null,N(_,$,te,ve);case T:return $=$.get(te.key===null?U:te.key)||null,q(_,$,te,ve);case Z:return te=Xs(te),F($,_,U,te,ve)}if(ae(te)||X(te))return $=$.get(U)||null,Q(_,$,te,ve,null);if(typeof te.then=="function")return F($,_,U,Xl(te),ve);if(te.$$typeof===O)return F($,_,U,Kl(_,te),ve);Ql(_,te)}return null}function fe($,_,U,te){for(var ve=null,Pe=null,be=_,Me=_=0,Ue=null;be!==null&&Me<U.length;Me++){be.index>Me?(Ue=be,be=null):Ue=be.sibling;var Ve=G($,be,U[Me],te);if(Ve===null){be===null&&(be=Ue);break}t&&be&&Ve.alternate===null&&a($,be),_=h(Ve,_,Me),Pe===null?ve=Ve:Pe.sibling=Ve,Pe=Ve,be=Ue}if(Me===U.length)return i($,be),qe&&Sa($,Me),ve;if(be===null){for(;Me<U.length;Me++)be=ne($,U[Me],te),be!==null&&(_=h(be,_,Me),Pe===null?ve=be:Pe.sibling=be,Pe=be);return qe&&Sa($,Me),ve}for(be=o(be);Me<U.length;Me++)Ue=F(be,$,Me,U[Me],te),Ue!==null&&(t&&Ue.alternate!==null&&be.delete(Ue.key===null?Me:Ue.key),_=h(Ue,_,Me),Pe===null?ve=Ue:Pe.sibling=Ue,Pe=Ue);return t&&be.forEach(function(Ts){return a($,Ts)}),qe&&Sa($,Me),ve}function Se($,_,U,te){if(U==null)throw Error(r(151));for(var ve=null,Pe=null,be=_,Me=_=0,Ue=null,Ve=U.next();be!==null&&!Ve.done;Me++,Ve=U.next()){be.index>Me?(Ue=be,be=null):Ue=be.sibling;var Ts=G($,be,Ve.value,te);if(Ts===null){be===null&&(be=Ue);break}t&&be&&Ts.alternate===null&&a($,be),_=h(Ts,_,Me),Pe===null?ve=Ts:Pe.sibling=Ts,Pe=Ts,be=Ue}if(Ve.done)return i($,be),qe&&Sa($,Me),ve;if(be===null){for(;!Ve.done;Me++,Ve=U.next())Ve=ne($,Ve.value,te),Ve!==null&&(_=h(Ve,_,Me),Pe===null?ve=Ve:Pe.sibling=Ve,Pe=Ve);return qe&&Sa($,Me),ve}for(be=o(be);!Ve.done;Me++,Ve=U.next())Ve=F(be,$,Me,Ve.value,te),Ve!==null&&(t&&Ve.alternate!==null&&be.delete(Ve.key===null?Me:Ve.key),_=h(Ve,_,Me),Pe===null?ve=Ve:Pe.sibling=Ve,Pe=Ve);return t&&be.forEach(function(vx){return a($,vx)}),qe&&Sa($,Me),ve}function tt($,_,U,te){if(typeof U=="object"&&U!==null&&U.type===x&&U.key===null&&(U=U.props.children),typeof U=="object"&&U!==null){switch(U.$$typeof){case S:e:{for(var ve=U.key;_!==null;){if(_.key===ve){if(ve=U.type,ve===x){if(_.tag===7){i($,_.sibling),te=d(_,U.props.children),te.return=$,$=te;break e}}else if(_.elementType===ve||typeof ve=="object"&&ve!==null&&ve.$$typeof===Z&&Xs(ve)===_.type){i($,_.sibling),te=d(_,U.props),Yr(te,U),te.return=$,$=te;break e}i($,_);break}else a($,_);_=_.sibling}U.type===x?(te=Vs(U.props.children,$.mode,te,U.key),te.return=$,$=te):(te=Gl(U.type,U.key,U.props,null,$.mode,te),Yr(te,U),te.return=$,$=te)}return v($);case T:e:{for(ve=U.key;_!==null;){if(_.key===ve)if(_.tag===4&&_.stateNode.containerInfo===U.containerInfo&&_.stateNode.implementation===U.implementation){i($,_.sibling),te=d(_,U.children||[]),te.return=$,$=te;break e}else{i($,_);break}else a($,_);_=_.sibling}te=md(U,$.mode,te),te.return=$,$=te}return v($);case Z:return U=Xs(U),tt($,_,U,te)}if(ae(U))return fe($,_,U,te);if(X(U)){if(ve=X(U),typeof ve!="function")throw Error(r(150));return U=ve.call(U),Se($,_,U,te)}if(typeof U.then=="function")return tt($,_,Xl(U),te);if(U.$$typeof===O)return tt($,_,Kl($,U),te);Ql($,U)}return typeof U=="string"&&U!==""||typeof U=="number"||typeof U=="bigint"?(U=""+U,_!==null&&_.tag===6?(i($,_.sibling),te=d(_,U),te.return=$,$=te):(i($,_),te=pd(U,$.mode,te),te.return=$,$=te),v($)):i($,_)}return function($,_,U,te){try{Fr=0;var ve=tt($,_,U,te);return Ii=null,ve}catch(be){if(be===Hi||be===Yl)throw be;var Pe=yn(29,be,null,$.mode);return Pe.lanes=te,Pe.return=$,Pe}finally{}}}var Js=Cm(!0),Om=Cm(!1),ls=!1;function jd(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Nd(t,a){t=t.updateQueue,a.updateQueue===t&&(a.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function cs(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function us(t,a,i){var o=t.updateQueue;if(o===null)return null;if(o=o.shared,(Fe&2)!==0){var d=o.pending;return d===null?a.next=a:(a.next=d.next,d.next=a),o.pending=a,a=Il(t),ym(t,null,i),a}return Hl(t,o,a,i),Il(t)}function Zr(t,a,i){if(a=a.updateQueue,a!==null&&(a=a.shared,(i&4194048)!==0)){var o=a.lanes;o&=t.pendingLanes,i|=o,a.lanes=i,Ap(t,i)}}function Bd(t,a){var i=t.updateQueue,o=t.alternate;if(o!==null&&(o=o.updateQueue,i===o)){var d=null,h=null;if(i=i.firstBaseUpdate,i!==null){do{var v={lane:i.lane,tag:i.tag,payload:i.payload,callback:null,next:null};h===null?d=h=v:h=h.next=v,i=i.next}while(i!==null);h===null?d=h=a:h=h.next=a}else d=h=a;i={baseState:o.baseState,firstBaseUpdate:d,lastBaseUpdate:h,shared:o.shared,callbacks:o.callbacks},t.updateQueue=i;return}t=i.lastBaseUpdate,t===null?i.firstBaseUpdate=a:t.next=a,i.lastBaseUpdate=a}var Rd=!1;function Xr(){if(Rd){var t=Li;if(t!==null)throw t}}function Qr(t,a,i,o){Rd=!1;var d=t.updateQueue;ls=!1;var h=d.firstBaseUpdate,v=d.lastBaseUpdate,E=d.shared.pending;if(E!==null){d.shared.pending=null;var N=E,q=N.next;N.next=null,v===null?h=q:v.next=q,v=N;var Q=t.alternate;Q!==null&&(Q=Q.updateQueue,E=Q.lastBaseUpdate,E!==v&&(E===null?Q.firstBaseUpdate=q:E.next=q,Q.lastBaseUpdate=N))}if(h!==null){var ne=d.baseState;v=0,Q=q=N=null,E=h;do{var G=E.lane&-536870913,F=G!==E.lane;if(F?(De&G)===G:(o&G)===G){G!==0&&G===qi&&(Rd=!0),Q!==null&&(Q=Q.next={lane:0,tag:E.tag,payload:E.payload,callback:null,next:null});e:{var fe=t,Se=E;G=a;var tt=i;switch(Se.tag){case 1:if(fe=Se.payload,typeof fe=="function"){ne=fe.call(tt,ne,G);break e}ne=fe;break e;case 3:fe.flags=fe.flags&-65537|128;case 0:if(fe=Se.payload,G=typeof fe=="function"?fe.call(tt,ne,G):fe,G==null)break e;ne=w({},ne,G);break e;case 2:ls=!0}}G=E.callback,G!==null&&(t.flags|=64,F&&(t.flags|=8192),F=d.callbacks,F===null?d.callbacks=[G]:F.push(G))}else F={lane:G,tag:E.tag,payload:E.payload,callback:E.callback,next:null},Q===null?(q=Q=F,N=ne):Q=Q.next=F,v|=G;if(E=E.next,E===null){if(E=d.shared.pending,E===null)break;F=E,E=F.next,F.next=null,d.lastBaseUpdate=F,d.shared.pending=null}}while(!0);Q===null&&(N=ne),d.baseState=N,d.firstBaseUpdate=q,d.lastBaseUpdate=Q,h===null&&(d.shared.lanes=0),ms|=v,t.lanes=v,t.memoizedState=ne}}function _m(t,a){if(typeof t!="function")throw Error(r(191,t));t.call(a)}function zm(t,a){var i=t.callbacks;if(i!==null)for(t.callbacks=null,t=0;t<i.length;t++)_m(i[t],a)}var Gi=k(null),Jl=k(0);function $m(t,a){t=Oa,ie(Jl,t),ie(Gi,a),Oa=t|a.baseLanes}function Md(){ie(Jl,Oa),ie(Gi,Gi.current)}function Cd(){Oa=Jl.current,P(Gi),P(Jl)}var bn=k(null),_n=null;function ds(t){var a=t.alternate;ie(gt,gt.current&1),ie(bn,t),_n===null&&(a===null||Gi.current!==null||a.memoizedState!==null)&&(_n=t)}function Od(t){ie(gt,gt.current),ie(bn,t),_n===null&&(_n=t)}function Dm(t){t.tag===22?(ie(gt,gt.current),ie(bn,t),_n===null&&(_n=t)):fs()}function fs(){ie(gt,gt.current),ie(bn,bn.current)}function gn(t){P(bn),_n===t&&(_n=null),P(gt)}var gt=k(0);function Wl(t){for(var a=t;a!==null;){if(a.tag===13){var i=a.memoizedState;if(i!==null&&(i=i.dehydrated,i===null||Lf(i)||Hf(i)))return a}else if(a.tag===19&&(a.memoizedProps.revealOrder==="forwards"||a.memoizedProps.revealOrder==="backwards"||a.memoizedProps.revealOrder==="unstable_legacy-backwards"||a.memoizedProps.revealOrder==="together")){if((a.flags&128)!==0)return a}else if(a.child!==null){a.child.return=a,a=a.child;continue}if(a===t)break;for(;a.sibling===null;){if(a.return===null||a.return===t)return null;a=a.return}a.sibling.return=a.return,a=a.sibling}return null}var Ta=0,Re=null,We=null,St=null,ec=!1,Pi=!1,Ws=!1,tc=0,Jr=0,Vi=null,cw=0;function ft(){throw Error(r(321))}function _d(t,a){if(a===null)return!1;for(var i=0;i<a.length&&i<t.length;i++)if(!mn(t[i],a[i]))return!1;return!0}function zd(t,a,i,o,d,h){return Ta=h,Re=a,a.memoizedState=null,a.updateQueue=null,a.lanes=0,R.H=t===null||t.memoizedState===null?wy:Xd,Ws=!1,h=i(o,d),Ws=!1,Pi&&(h=qm(a,i,o,d)),Um(t),h}function Um(t){R.H=to;var a=We!==null&&We.next!==null;if(Ta=0,St=We=Re=null,ec=!1,Jr=0,Vi=null,a)throw Error(r(300));t===null||Et||(t=t.dependencies,t!==null&&Vl(t)&&(Et=!0))}function qm(t,a,i,o){Re=t;var d=0;do{if(Pi&&(Vi=null),Jr=0,Pi=!1,25<=d)throw Error(r(301));if(d+=1,St=We=null,t.updateQueue!=null){var h=t.updateQueue;h.lastEffect=null,h.events=null,h.stores=null,h.memoCache!=null&&(h.memoCache.index=0)}R.H=xy,h=a(i,o)}while(Pi);return h}function uw(){var t=R.H,a=t.useState()[0];return a=typeof a.then=="function"?Wr(a):a,t=t.useState()[0],(We!==null?We.memoizedState:null)!==t&&(Re.flags|=1024),a}function $d(){var t=tc!==0;return tc=0,t}function Dd(t,a,i){a.updateQueue=t.updateQueue,a.flags&=-2053,t.lanes&=~i}function Ud(t){if(ec){for(t=t.memoizedState;t!==null;){var a=t.queue;a!==null&&(a.pending=null),t=t.next}ec=!1}Ta=0,St=We=Re=null,Pi=!1,Jr=tc=0,Vi=null}function Yt(){var t={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return St===null?Re.memoizedState=St=t:St=St.next=t,St}function vt(){if(We===null){var t=Re.alternate;t=t!==null?t.memoizedState:null}else t=We.next;var a=St===null?Re.memoizedState:St.next;if(a!==null)St=a,We=t;else{if(t===null)throw Re.alternate===null?Error(r(467)):Error(r(310));We=t,t={memoizedState:We.memoizedState,baseState:We.baseState,baseQueue:We.baseQueue,queue:We.queue,next:null},St===null?Re.memoizedState=St=t:St=St.next=t}return St}function nc(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Wr(t){var a=Jr;return Jr+=1,Vi===null&&(Vi=[]),t=Bm(Vi,t,a),a=Re,(St===null?a.memoizedState:St.next)===null&&(a=a.alternate,R.H=a===null||a.memoizedState===null?wy:Xd),t}function ac(t){if(t!==null&&typeof t=="object"){if(typeof t.then=="function")return Wr(t);if(t.$$typeof===O)return $t(t)}throw Error(r(438,String(t)))}function qd(t){var a=null,i=Re.updateQueue;if(i!==null&&(a=i.memoCache),a==null){var o=Re.alternate;o!==null&&(o=o.updateQueue,o!==null&&(o=o.memoCache,o!=null&&(a={data:o.data.map(function(d){return d.slice()}),index:0})))}if(a==null&&(a={data:[],index:0}),i===null&&(i=nc(),Re.updateQueue=i),i.memoCache=a,i=a.data[a.index],i===void 0)for(i=a.data[a.index]=Array(t),o=0;o<t;o++)i[o]=J;return a.index++,i}function ka(t,a){return typeof a=="function"?a(t):a}function sc(t){var a=vt();return Ld(a,We,t)}function Ld(t,a,i){var o=t.queue;if(o===null)throw Error(r(311));o.lastRenderedReducer=i;var d=t.baseQueue,h=o.pending;if(h!==null){if(d!==null){var v=d.next;d.next=h.next,h.next=v}a.baseQueue=d=h,o.pending=null}if(h=t.baseState,d===null)t.memoizedState=h;else{a=d.next;var E=v=null,N=null,q=a,Q=!1;do{var ne=q.lane&-536870913;if(ne!==q.lane?(De&ne)===ne:(Ta&ne)===ne){var G=q.revertLane;if(G===0)N!==null&&(N=N.next={lane:0,revertLane:0,gesture:null,action:q.action,hasEagerState:q.hasEagerState,eagerState:q.eagerState,next:null}),ne===qi&&(Q=!0);else if((Ta&G)===G){q=q.next,G===qi&&(Q=!0);continue}else ne={lane:0,revertLane:q.revertLane,gesture:null,action:q.action,hasEagerState:q.hasEagerState,eagerState:q.eagerState,next:null},N===null?(E=N=ne,v=h):N=N.next=ne,Re.lanes|=G,ms|=G;ne=q.action,Ws&&i(h,ne),h=q.hasEagerState?q.eagerState:i(h,ne)}else G={lane:ne,revertLane:q.revertLane,gesture:q.gesture,action:q.action,hasEagerState:q.hasEagerState,eagerState:q.eagerState,next:null},N===null?(E=N=G,v=h):N=N.next=G,Re.lanes|=ne,ms|=ne;q=q.next}while(q!==null&&q!==a);if(N===null?v=h:N.next=E,!mn(h,t.memoizedState)&&(Et=!0,Q&&(i=Li,i!==null)))throw i;t.memoizedState=h,t.baseState=v,t.baseQueue=N,o.lastRenderedState=h}return d===null&&(o.lanes=0),[t.memoizedState,o.dispatch]}function Hd(t){var a=vt(),i=a.queue;if(i===null)throw Error(r(311));i.lastRenderedReducer=t;var o=i.dispatch,d=i.pending,h=a.memoizedState;if(d!==null){i.pending=null;var v=d=d.next;do h=t(h,v.action),v=v.next;while(v!==d);mn(h,a.memoizedState)||(Et=!0),a.memoizedState=h,a.baseQueue===null&&(a.baseState=h),i.lastRenderedState=h}return[h,o]}function Lm(t,a,i){var o=Re,d=vt(),h=qe;if(h){if(i===void 0)throw Error(r(407));i=i()}else i=a();var v=!mn((We||d).memoizedState,i);if(v&&(d.memoizedState=i,Et=!0),d=d.queue,Pd(Gm.bind(null,o,d,t),[t]),d.getSnapshot!==a||v||St!==null&&St.memoizedState.tag&1){if(o.flags|=2048,Ki(9,{destroy:void 0},Im.bind(null,o,d,i,a),null),it===null)throw Error(r(349));h||(Ta&127)!==0||Hm(o,a,i)}return i}function Hm(t,a,i){t.flags|=16384,t={getSnapshot:a,value:i},a=Re.updateQueue,a===null?(a=nc(),Re.updateQueue=a,a.stores=[t]):(i=a.stores,i===null?a.stores=[t]:i.push(t))}function Im(t,a,i,o){a.value=i,a.getSnapshot=o,Pm(a)&&Vm(t)}function Gm(t,a,i){return i(function(){Pm(a)&&Vm(t)})}function Pm(t){var a=t.getSnapshot;t=t.value;try{var i=a();return!mn(t,i)}catch{return!0}}function Vm(t){var a=Ps(t,2);a!==null&&sn(a,t,2)}function Id(t){var a=Yt();if(typeof t=="function"){var i=t;if(t=i(),Ws){bt(!0);try{i()}finally{bt(!1)}}}return a.memoizedState=a.baseState=t,a.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ka,lastRenderedState:t},a}function Km(t,a,i,o){return t.baseState=i,Ld(t,We,typeof o=="function"?o:ka)}function dw(t,a,i,o,d){if(oc(t))throw Error(r(485));if(t=a.action,t!==null){var h={payload:d,action:t,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(v){h.listeners.push(v)}};R.T!==null?i(!0):h.isTransition=!1,o(h),i=a.pending,i===null?(h.next=a.pending=h,Fm(a,h)):(h.next=i.next,a.pending=i.next=h)}}function Fm(t,a){var i=a.action,o=a.payload,d=t.state;if(a.isTransition){var h=R.T,v={};R.T=v;try{var E=i(d,o),N=R.S;N!==null&&N(v,E),Ym(t,a,E)}catch(q){Gd(t,a,q)}finally{h!==null&&v.types!==null&&(h.types=v.types),R.T=h}}else try{h=i(d,o),Ym(t,a,h)}catch(q){Gd(t,a,q)}}function Ym(t,a,i){i!==null&&typeof i=="object"&&typeof i.then=="function"?i.then(function(o){Zm(t,a,o)},function(o){return Gd(t,a,o)}):Zm(t,a,i)}function Zm(t,a,i){a.status="fulfilled",a.value=i,Xm(a),t.state=i,a=t.pending,a!==null&&(i=a.next,i===a?t.pending=null:(i=i.next,a.next=i,Fm(t,i)))}function Gd(t,a,i){var o=t.pending;if(t.pending=null,o!==null){o=o.next;do a.status="rejected",a.reason=i,Xm(a),a=a.next;while(a!==o)}t.action=null}function Xm(t){t=t.listeners;for(var a=0;a<t.length;a++)(0,t[a])()}function Qm(t,a){return a}function Jm(t,a){if(qe){var i=it.formState;if(i!==null){e:{var o=Re;if(qe){if(ot){t:{for(var d=ot,h=On;d.nodeType!==8;){if(!h){d=null;break t}if(d=zn(d.nextSibling),d===null){d=null;break t}}h=d.data,d=h==="F!"||h==="F"?d:null}if(d){ot=zn(d.nextSibling),o=d.data==="F!";break e}}rs(o)}o=!1}o&&(a=i[0])}}return i=Yt(),i.memoizedState=i.baseState=a,o={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Qm,lastRenderedState:a},i.queue=o,i=by.bind(null,Re,o),o.dispatch=i,o=Id(!1),h=Zd.bind(null,Re,!1,o.queue),o=Yt(),d={state:a,dispatch:null,action:t,pending:null},o.queue=d,i=dw.bind(null,Re,d,h,i),d.dispatch=i,o.memoizedState=t,[a,i,!1]}function Wm(t){var a=vt();return ey(a,We,t)}function ey(t,a,i){if(a=Ld(t,a,Qm)[0],t=sc(ka)[0],typeof a=="object"&&a!==null&&typeof a.then=="function")try{var o=Wr(a)}catch(v){throw v===Hi?Yl:v}else o=a;a=vt();var d=a.queue,h=d.dispatch;return i!==a.memoizedState&&(Re.flags|=2048,Ki(9,{destroy:void 0},fw.bind(null,d,i),null)),[o,h,t]}function fw(t,a){t.action=a}function ty(t){var a=vt(),i=We;if(i!==null)return ey(a,i,t);vt(),a=a.memoizedState,i=vt();var o=i.queue.dispatch;return i.memoizedState=t,[a,o,!1]}function Ki(t,a,i,o){return t={tag:t,create:i,deps:o,inst:a,next:null},a=Re.updateQueue,a===null&&(a=nc(),Re.updateQueue=a),i=a.lastEffect,i===null?a.lastEffect=t.next=t:(o=i.next,i.next=t,t.next=o,a.lastEffect=t),t}function ny(){return vt().memoizedState}function ic(t,a,i,o){var d=Yt();Re.flags|=t,d.memoizedState=Ki(1|a,{destroy:void 0},i,o===void 0?null:o)}function rc(t,a,i,o){var d=vt();o=o===void 0?null:o;var h=d.memoizedState.inst;We!==null&&o!==null&&_d(o,We.memoizedState.deps)?d.memoizedState=Ki(a,h,i,o):(Re.flags|=t,d.memoizedState=Ki(1|a,h,i,o))}function ay(t,a){ic(8390656,8,t,a)}function Pd(t,a){rc(2048,8,t,a)}function hw(t){Re.flags|=4;var a=Re.updateQueue;if(a===null)a=nc(),Re.updateQueue=a,a.events=[t];else{var i=a.events;i===null?a.events=[t]:i.push(t)}}function sy(t){var a=vt().memoizedState;return hw({ref:a,nextImpl:t}),function(){if((Fe&2)!==0)throw Error(r(440));return a.impl.apply(void 0,arguments)}}function iy(t,a){return rc(4,2,t,a)}function ry(t,a){return rc(4,4,t,a)}function oy(t,a){if(typeof a=="function"){t=t();var i=a(t);return function(){typeof i=="function"?i():a(null)}}if(a!=null)return t=t(),a.current=t,function(){a.current=null}}function ly(t,a,i){i=i!=null?i.concat([t]):null,rc(4,4,oy.bind(null,a,t),i)}function Vd(){}function cy(t,a){var i=vt();a=a===void 0?null:a;var o=i.memoizedState;return a!==null&&_d(a,o[1])?o[0]:(i.memoizedState=[t,a],t)}function uy(t,a){var i=vt();a=a===void 0?null:a;var o=i.memoizedState;if(a!==null&&_d(a,o[1]))return o[0];if(o=t(),Ws){bt(!0);try{t()}finally{bt(!1)}}return i.memoizedState=[o,a],o}function Kd(t,a,i){return i===void 0||(Ta&1073741824)!==0&&(De&261930)===0?t.memoizedState=a:(t.memoizedState=i,t=db(),Re.lanes|=t,ms|=t,i)}function dy(t,a,i,o){return mn(i,a)?i:Gi.current!==null?(t=Kd(t,i,o),mn(t,a)||(Et=!0),t):(Ta&42)===0||(Ta&1073741824)!==0&&(De&261930)===0?(Et=!0,t.memoizedState=i):(t=db(),Re.lanes|=t,ms|=t,a)}function fy(t,a,i,o,d){var h=V.p;V.p=h!==0&&8>h?h:8;var v=R.T,E={};R.T=E,Zd(t,!1,a,i);try{var N=d(),q=R.S;if(q!==null&&q(E,N),N!==null&&typeof N=="object"&&typeof N.then=="function"){var Q=lw(N,o);eo(t,a,Q,xn(t))}else eo(t,a,o,xn(t))}catch(ne){eo(t,a,{then:function(){},status:"rejected",reason:ne},xn())}finally{V.p=h,v!==null&&E.types!==null&&(v.types=E.types),R.T=v}}function pw(){}function Fd(t,a,i,o){if(t.tag!==5)throw Error(r(476));var d=hy(t).queue;fy(t,d,a,Y,i===null?pw:function(){return py(t),i(o)})}function hy(t){var a=t.memoizedState;if(a!==null)return a;a={memoizedState:Y,baseState:Y,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ka,lastRenderedState:Y},next:null};var i={};return a.next={memoizedState:i,baseState:i,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ka,lastRenderedState:i},next:null},t.memoizedState=a,t=t.alternate,t!==null&&(t.memoizedState=a),a}function py(t){var a=hy(t);a.next===null&&(a=t.alternate.memoizedState),eo(t,a.next.queue,{},xn())}function Yd(){return $t(go)}function my(){return vt().memoizedState}function yy(){return vt().memoizedState}function mw(t){for(var a=t.return;a!==null;){switch(a.tag){case 24:case 3:var i=xn();t=cs(i);var o=us(a,t,i);o!==null&&(sn(o,a,i),Zr(o,a,i)),a={cache:Ed()},t.payload=a;return}a=a.return}}function yw(t,a,i){var o=xn();i={lane:o,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},oc(t)?gy(a,i):(i=fd(t,a,i,o),i!==null&&(sn(i,t,o),vy(i,a,o)))}function by(t,a,i){var o=xn();eo(t,a,i,o)}function eo(t,a,i,o){var d={lane:o,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null};if(oc(t))gy(a,d);else{var h=t.alternate;if(t.lanes===0&&(h===null||h.lanes===0)&&(h=a.lastRenderedReducer,h!==null))try{var v=a.lastRenderedState,E=h(v,i);if(d.hasEagerState=!0,d.eagerState=E,mn(E,v))return Hl(t,a,d,0),it===null&&Ll(),!1}catch{}finally{}if(i=fd(t,a,d,o),i!==null)return sn(i,t,o),vy(i,a,o),!0}return!1}function Zd(t,a,i,o){if(o={lane:2,revertLane:Nf(),gesture:null,action:o,hasEagerState:!1,eagerState:null,next:null},oc(t)){if(a)throw Error(r(479))}else a=fd(t,i,o,2),a!==null&&sn(a,t,2)}function oc(t){var a=t.alternate;return t===Re||a!==null&&a===Re}function gy(t,a){Pi=ec=!0;var i=t.pending;i===null?a.next=a:(a.next=i.next,i.next=a),t.pending=a}function vy(t,a,i){if((i&4194048)!==0){var o=a.lanes;o&=t.pendingLanes,i|=o,a.lanes=i,Ap(t,i)}}var to={readContext:$t,use:ac,useCallback:ft,useContext:ft,useEffect:ft,useImperativeHandle:ft,useLayoutEffect:ft,useInsertionEffect:ft,useMemo:ft,useReducer:ft,useRef:ft,useState:ft,useDebugValue:ft,useDeferredValue:ft,useTransition:ft,useSyncExternalStore:ft,useId:ft,useHostTransitionStatus:ft,useFormState:ft,useActionState:ft,useOptimistic:ft,useMemoCache:ft,useCacheRefresh:ft};to.useEffectEvent=ft;var wy={readContext:$t,use:ac,useCallback:function(t,a){return Yt().memoizedState=[t,a===void 0?null:a],t},useContext:$t,useEffect:ay,useImperativeHandle:function(t,a,i){i=i!=null?i.concat([t]):null,ic(4194308,4,oy.bind(null,a,t),i)},useLayoutEffect:function(t,a){return ic(4194308,4,t,a)},useInsertionEffect:function(t,a){ic(4,2,t,a)},useMemo:function(t,a){var i=Yt();a=a===void 0?null:a;var o=t();if(Ws){bt(!0);try{t()}finally{bt(!1)}}return i.memoizedState=[o,a],o},useReducer:function(t,a,i){var o=Yt();if(i!==void 0){var d=i(a);if(Ws){bt(!0);try{i(a)}finally{bt(!1)}}}else d=a;return o.memoizedState=o.baseState=d,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:d},o.queue=t,t=t.dispatch=yw.bind(null,Re,t),[o.memoizedState,t]},useRef:function(t){var a=Yt();return t={current:t},a.memoizedState=t},useState:function(t){t=Id(t);var a=t.queue,i=by.bind(null,Re,a);return a.dispatch=i,[t.memoizedState,i]},useDebugValue:Vd,useDeferredValue:function(t,a){var i=Yt();return Kd(i,t,a)},useTransition:function(){var t=Id(!1);return t=fy.bind(null,Re,t.queue,!0,!1),Yt().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,a,i){var o=Re,d=Yt();if(qe){if(i===void 0)throw Error(r(407));i=i()}else{if(i=a(),it===null)throw Error(r(349));(De&127)!==0||Hm(o,a,i)}d.memoizedState=i;var h={value:i,getSnapshot:a};return d.queue=h,ay(Gm.bind(null,o,h,t),[t]),o.flags|=2048,Ki(9,{destroy:void 0},Im.bind(null,o,h,i,a),null),i},useId:function(){var t=Yt(),a=it.identifierPrefix;if(qe){var i=ia,o=sa;i=(o&~(1<<32-st(o)-1)).toString(32)+i,a="_"+a+"R_"+i,i=tc++,0<i&&(a+="H"+i.toString(32)),a+="_"}else i=cw++,a="_"+a+"r_"+i.toString(32)+"_";return t.memoizedState=a},useHostTransitionStatus:Yd,useFormState:Jm,useActionState:Jm,useOptimistic:function(t){var a=Yt();a.memoizedState=a.baseState=t;var i={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return a.queue=i,a=Zd.bind(null,Re,!0,i),i.dispatch=a,[t,a]},useMemoCache:qd,useCacheRefresh:function(){return Yt().memoizedState=mw.bind(null,Re)},useEffectEvent:function(t){var a=Yt(),i={impl:t};return a.memoizedState=i,function(){if((Fe&2)!==0)throw Error(r(440));return i.impl.apply(void 0,arguments)}}},Xd={readContext:$t,use:ac,useCallback:cy,useContext:$t,useEffect:Pd,useImperativeHandle:ly,useInsertionEffect:iy,useLayoutEffect:ry,useMemo:uy,useReducer:sc,useRef:ny,useState:function(){return sc(ka)},useDebugValue:Vd,useDeferredValue:function(t,a){var i=vt();return dy(i,We.memoizedState,t,a)},useTransition:function(){var t=sc(ka)[0],a=vt().memoizedState;return[typeof t=="boolean"?t:Wr(t),a]},useSyncExternalStore:Lm,useId:my,useHostTransitionStatus:Yd,useFormState:Wm,useActionState:Wm,useOptimistic:function(t,a){var i=vt();return Km(i,We,t,a)},useMemoCache:qd,useCacheRefresh:yy};Xd.useEffectEvent=sy;var xy={readContext:$t,use:ac,useCallback:cy,useContext:$t,useEffect:Pd,useImperativeHandle:ly,useInsertionEffect:iy,useLayoutEffect:ry,useMemo:uy,useReducer:Hd,useRef:ny,useState:function(){return Hd(ka)},useDebugValue:Vd,useDeferredValue:function(t,a){var i=vt();return We===null?Kd(i,t,a):dy(i,We.memoizedState,t,a)},useTransition:function(){var t=Hd(ka)[0],a=vt().memoizedState;return[typeof t=="boolean"?t:Wr(t),a]},useSyncExternalStore:Lm,useId:my,useHostTransitionStatus:Yd,useFormState:ty,useActionState:ty,useOptimistic:function(t,a){var i=vt();return We!==null?Km(i,We,t,a):(i.baseState=t,[t,i.queue.dispatch])},useMemoCache:qd,useCacheRefresh:yy};xy.useEffectEvent=sy;function Qd(t,a,i,o){a=t.memoizedState,i=i(o,a),i=i==null?a:w({},a,i),t.memoizedState=i,t.lanes===0&&(t.updateQueue.baseState=i)}var Jd={enqueueSetState:function(t,a,i){t=t._reactInternals;var o=xn(),d=cs(o);d.payload=a,i!=null&&(d.callback=i),a=us(t,d,o),a!==null&&(sn(a,t,o),Zr(a,t,o))},enqueueReplaceState:function(t,a,i){t=t._reactInternals;var o=xn(),d=cs(o);d.tag=1,d.payload=a,i!=null&&(d.callback=i),a=us(t,d,o),a!==null&&(sn(a,t,o),Zr(a,t,o))},enqueueForceUpdate:function(t,a){t=t._reactInternals;var i=xn(),o=cs(i);o.tag=2,a!=null&&(o.callback=a),a=us(t,o,i),a!==null&&(sn(a,t,i),Zr(a,t,i))}};function Sy(t,a,i,o,d,h,v){return t=t.stateNode,typeof t.shouldComponentUpdate=="function"?t.shouldComponentUpdate(o,h,v):a.prototype&&a.prototype.isPureReactComponent?!Hr(i,o)||!Hr(d,h):!0}function Ey(t,a,i,o){t=a.state,typeof a.componentWillReceiveProps=="function"&&a.componentWillReceiveProps(i,o),typeof a.UNSAFE_componentWillReceiveProps=="function"&&a.UNSAFE_componentWillReceiveProps(i,o),a.state!==t&&Jd.enqueueReplaceState(a,a.state,null)}function ei(t,a){var i=a;if("ref"in a){i={};for(var o in a)o!=="ref"&&(i[o]=a[o])}if(t=t.defaultProps){i===a&&(i=w({},i));for(var d in t)i[d]===void 0&&(i[d]=t[d])}return i}function Ay(t){ql(t)}function Ty(t){console.error(t)}function ky(t){ql(t)}function lc(t,a){try{var i=t.onUncaughtError;i(a.value,{componentStack:a.stack})}catch(o){setTimeout(function(){throw o})}}function jy(t,a,i){try{var o=t.onCaughtError;o(i.value,{componentStack:i.stack,errorBoundary:a.tag===1?a.stateNode:null})}catch(d){setTimeout(function(){throw d})}}function Wd(t,a,i){return i=cs(i),i.tag=3,i.payload={element:null},i.callback=function(){lc(t,a)},i}function Ny(t){return t=cs(t),t.tag=3,t}function By(t,a,i,o){var d=i.type.getDerivedStateFromError;if(typeof d=="function"){var h=o.value;t.payload=function(){return d(h)},t.callback=function(){jy(a,i,o)}}var v=i.stateNode;v!==null&&typeof v.componentDidCatch=="function"&&(t.callback=function(){jy(a,i,o),typeof d!="function"&&(ys===null?ys=new Set([this]):ys.add(this));var E=o.stack;this.componentDidCatch(o.value,{componentStack:E!==null?E:""})})}function bw(t,a,i,o,d){if(i.flags|=32768,o!==null&&typeof o=="object"&&typeof o.then=="function"){if(a=i.alternate,a!==null&&Ui(a,i,d,!0),i=bn.current,i!==null){switch(i.tag){case 31:case 13:return _n===null?wc():i.alternate===null&&ht===0&&(ht=3),i.flags&=-257,i.flags|=65536,i.lanes=d,o===Zl?i.flags|=16384:(a=i.updateQueue,a===null?i.updateQueue=new Set([o]):a.add(o),Tf(t,o,d)),!1;case 22:return i.flags|=65536,o===Zl?i.flags|=16384:(a=i.updateQueue,a===null?(a={transitions:null,markerInstances:null,retryQueue:new Set([o])},i.updateQueue=a):(i=a.retryQueue,i===null?a.retryQueue=new Set([o]):i.add(o)),Tf(t,o,d)),!1}throw Error(r(435,i.tag))}return Tf(t,o,d),wc(),!1}if(qe)return a=bn.current,a!==null?((a.flags&65536)===0&&(a.flags|=256),a.flags|=65536,a.lanes=d,o!==gd&&(t=Error(r(422),{cause:o}),Pr(Rn(t,i)))):(o!==gd&&(a=Error(r(423),{cause:o}),Pr(Rn(a,i))),t=t.current.alternate,t.flags|=65536,d&=-d,t.lanes|=d,o=Rn(o,i),d=Wd(t.stateNode,o,d),Bd(t,d),ht!==4&&(ht=2)),!1;var h=Error(r(520),{cause:o});if(h=Rn(h,i),co===null?co=[h]:co.push(h),ht!==4&&(ht=2),a===null)return!0;o=Rn(o,i),i=a;do{switch(i.tag){case 3:return i.flags|=65536,t=d&-d,i.lanes|=t,t=Wd(i.stateNode,o,t),Bd(i,t),!1;case 1:if(a=i.type,h=i.stateNode,(i.flags&128)===0&&(typeof a.getDerivedStateFromError=="function"||h!==null&&typeof h.componentDidCatch=="function"&&(ys===null||!ys.has(h))))return i.flags|=65536,d&=-d,i.lanes|=d,d=Ny(d),By(d,t,i,o),Bd(i,d),!1}i=i.return}while(i!==null);return!1}var ef=Error(r(461)),Et=!1;function Dt(t,a,i,o){a.child=t===null?Om(a,null,i,o):Js(a,t.child,i,o)}function Ry(t,a,i,o,d){i=i.render;var h=a.ref;if("ref"in o){var v={};for(var E in o)E!=="ref"&&(v[E]=o[E])}else v=o;return Ys(a),o=zd(t,a,i,v,h,d),E=$d(),t!==null&&!Et?(Dd(t,a,d),ja(t,a,d)):(qe&&E&&yd(a),a.flags|=1,Dt(t,a,o,d),a.child)}function My(t,a,i,o,d){if(t===null){var h=i.type;return typeof h=="function"&&!hd(h)&&h.defaultProps===void 0&&i.compare===null?(a.tag=15,a.type=h,Cy(t,a,h,o,d)):(t=Gl(i.type,null,o,a,a.mode,d),t.ref=a.ref,t.return=a,a.child=t)}if(h=t.child,!cf(t,d)){var v=h.memoizedProps;if(i=i.compare,i=i!==null?i:Hr,i(v,o)&&t.ref===a.ref)return ja(t,a,d)}return a.flags|=1,t=xa(h,o),t.ref=a.ref,t.return=a,a.child=t}function Cy(t,a,i,o,d){if(t!==null){var h=t.memoizedProps;if(Hr(h,o)&&t.ref===a.ref)if(Et=!1,a.pendingProps=o=h,cf(t,d))(t.flags&131072)!==0&&(Et=!0);else return a.lanes=t.lanes,ja(t,a,d)}return tf(t,a,i,o,d)}function Oy(t,a,i,o){var d=o.children,h=t!==null?t.memoizedState:null;if(t===null&&a.stateNode===null&&(a.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),o.mode==="hidden"){if((a.flags&128)!==0){if(h=h!==null?h.baseLanes|i:i,t!==null){for(o=a.child=t.child,d=0;o!==null;)d=d|o.lanes|o.childLanes,o=o.sibling;o=d&~h}else o=0,a.child=null;return _y(t,a,h,i,o)}if((i&536870912)!==0)a.memoizedState={baseLanes:0,cachePool:null},t!==null&&Fl(a,h!==null?h.cachePool:null),h!==null?$m(a,h):Md(),Dm(a);else return o=a.lanes=536870912,_y(t,a,h!==null?h.baseLanes|i:i,i,o)}else h!==null?(Fl(a,h.cachePool),$m(a,h),fs(),a.memoizedState=null):(t!==null&&Fl(a,null),Md(),fs());return Dt(t,a,d,i),a.child}function no(t,a){return t!==null&&t.tag===22||a.stateNode!==null||(a.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),a.sibling}function _y(t,a,i,o,d){var h=Td();return h=h===null?null:{parent:xt._currentValue,pool:h},a.memoizedState={baseLanes:i,cachePool:h},t!==null&&Fl(a,null),Md(),Dm(a),t!==null&&Ui(t,a,o,!0),a.childLanes=d,null}function cc(t,a){return a=dc({mode:a.mode,children:a.children},t.mode),a.ref=t.ref,t.child=a,a.return=t,a}function zy(t,a,i){return Js(a,t.child,null,i),t=cc(a,a.pendingProps),t.flags|=2,gn(a),a.memoizedState=null,t}function gw(t,a,i){var o=a.pendingProps,d=(a.flags&128)!==0;if(a.flags&=-129,t===null){if(qe){if(o.mode==="hidden")return t=cc(a,o),a.lanes=536870912,no(null,t);if(Od(a),(t=ot)?(t=Fb(t,On),t=t!==null&&t.data==="&"?t:null,t!==null&&(a.memoizedState={dehydrated:t,treeContext:ss!==null?{id:sa,overflow:ia}:null,retryLane:536870912,hydrationErrors:null},i=gm(t),i.return=a,a.child=i,zt=a,ot=null)):t=null,t===null)throw rs(a);return a.lanes=536870912,null}return cc(a,o)}var h=t.memoizedState;if(h!==null){var v=h.dehydrated;if(Od(a),d)if(a.flags&256)a.flags&=-257,a=zy(t,a,i);else if(a.memoizedState!==null)a.child=t.child,a.flags|=128,a=null;else throw Error(r(558));else if(Et||Ui(t,a,i,!1),d=(i&t.childLanes)!==0,Et||d){if(o=it,o!==null&&(v=Tp(o,i),v!==0&&v!==h.retryLane))throw h.retryLane=v,Ps(t,v),sn(o,t,v),ef;wc(),a=zy(t,a,i)}else t=h.treeContext,ot=zn(v.nextSibling),zt=a,qe=!0,is=null,On=!1,t!==null&&xm(a,t),a=cc(a,o),a.flags|=4096;return a}return t=xa(t.child,{mode:o.mode,children:o.children}),t.ref=a.ref,a.child=t,t.return=a,t}function uc(t,a){var i=a.ref;if(i===null)t!==null&&t.ref!==null&&(a.flags|=4194816);else{if(typeof i!="function"&&typeof i!="object")throw Error(r(284));(t===null||t.ref!==i)&&(a.flags|=4194816)}}function tf(t,a,i,o,d){return Ys(a),i=zd(t,a,i,o,void 0,d),o=$d(),t!==null&&!Et?(Dd(t,a,d),ja(t,a,d)):(qe&&o&&yd(a),a.flags|=1,Dt(t,a,i,d),a.child)}function $y(t,a,i,o,d,h){return Ys(a),a.updateQueue=null,i=qm(a,o,i,d),Um(t),o=$d(),t!==null&&!Et?(Dd(t,a,h),ja(t,a,h)):(qe&&o&&yd(a),a.flags|=1,Dt(t,a,i,h),a.child)}function Dy(t,a,i,o,d){if(Ys(a),a.stateNode===null){var h=_i,v=i.contextType;typeof v=="object"&&v!==null&&(h=$t(v)),h=new i(o,h),a.memoizedState=h.state!==null&&h.state!==void 0?h.state:null,h.updater=Jd,a.stateNode=h,h._reactInternals=a,h=a.stateNode,h.props=o,h.state=a.memoizedState,h.refs={},jd(a),v=i.contextType,h.context=typeof v=="object"&&v!==null?$t(v):_i,h.state=a.memoizedState,v=i.getDerivedStateFromProps,typeof v=="function"&&(Qd(a,i,v,o),h.state=a.memoizedState),typeof i.getDerivedStateFromProps=="function"||typeof h.getSnapshotBeforeUpdate=="function"||typeof h.UNSAFE_componentWillMount!="function"&&typeof h.componentWillMount!="function"||(v=h.state,typeof h.componentWillMount=="function"&&h.componentWillMount(),typeof h.UNSAFE_componentWillMount=="function"&&h.UNSAFE_componentWillMount(),v!==h.state&&Jd.enqueueReplaceState(h,h.state,null),Qr(a,o,h,d),Xr(),h.state=a.memoizedState),typeof h.componentDidMount=="function"&&(a.flags|=4194308),o=!0}else if(t===null){h=a.stateNode;var E=a.memoizedProps,N=ei(i,E);h.props=N;var q=h.context,Q=i.contextType;v=_i,typeof Q=="object"&&Q!==null&&(v=$t(Q));var ne=i.getDerivedStateFromProps;Q=typeof ne=="function"||typeof h.getSnapshotBeforeUpdate=="function",E=a.pendingProps!==E,Q||typeof h.UNSAFE_componentWillReceiveProps!="function"&&typeof h.componentWillReceiveProps!="function"||(E||q!==v)&&Ey(a,h,o,v),ls=!1;var G=a.memoizedState;h.state=G,Qr(a,o,h,d),Xr(),q=a.memoizedState,E||G!==q||ls?(typeof ne=="function"&&(Qd(a,i,ne,o),q=a.memoizedState),(N=ls||Sy(a,i,N,o,G,q,v))?(Q||typeof h.UNSAFE_componentWillMount!="function"&&typeof h.componentWillMount!="function"||(typeof h.componentWillMount=="function"&&h.componentWillMount(),typeof h.UNSAFE_componentWillMount=="function"&&h.UNSAFE_componentWillMount()),typeof h.componentDidMount=="function"&&(a.flags|=4194308)):(typeof h.componentDidMount=="function"&&(a.flags|=4194308),a.memoizedProps=o,a.memoizedState=q),h.props=o,h.state=q,h.context=v,o=N):(typeof h.componentDidMount=="function"&&(a.flags|=4194308),o=!1)}else{h=a.stateNode,Nd(t,a),v=a.memoizedProps,Q=ei(i,v),h.props=Q,ne=a.pendingProps,G=h.context,q=i.contextType,N=_i,typeof q=="object"&&q!==null&&(N=$t(q)),E=i.getDerivedStateFromProps,(q=typeof E=="function"||typeof h.getSnapshotBeforeUpdate=="function")||typeof h.UNSAFE_componentWillReceiveProps!="function"&&typeof h.componentWillReceiveProps!="function"||(v!==ne||G!==N)&&Ey(a,h,o,N),ls=!1,G=a.memoizedState,h.state=G,Qr(a,o,h,d),Xr();var F=a.memoizedState;v!==ne||G!==F||ls||t!==null&&t.dependencies!==null&&Vl(t.dependencies)?(typeof E=="function"&&(Qd(a,i,E,o),F=a.memoizedState),(Q=ls||Sy(a,i,Q,o,G,F,N)||t!==null&&t.dependencies!==null&&Vl(t.dependencies))?(q||typeof h.UNSAFE_componentWillUpdate!="function"&&typeof h.componentWillUpdate!="function"||(typeof h.componentWillUpdate=="function"&&h.componentWillUpdate(o,F,N),typeof h.UNSAFE_componentWillUpdate=="function"&&h.UNSAFE_componentWillUpdate(o,F,N)),typeof h.componentDidUpdate=="function"&&(a.flags|=4),typeof h.getSnapshotBeforeUpdate=="function"&&(a.flags|=1024)):(typeof h.componentDidUpdate!="function"||v===t.memoizedProps&&G===t.memoizedState||(a.flags|=4),typeof h.getSnapshotBeforeUpdate!="function"||v===t.memoizedProps&&G===t.memoizedState||(a.flags|=1024),a.memoizedProps=o,a.memoizedState=F),h.props=o,h.state=F,h.context=N,o=Q):(typeof h.componentDidUpdate!="function"||v===t.memoizedProps&&G===t.memoizedState||(a.flags|=4),typeof h.getSnapshotBeforeUpdate!="function"||v===t.memoizedProps&&G===t.memoizedState||(a.flags|=1024),o=!1)}return h=o,uc(t,a),o=(a.flags&128)!==0,h||o?(h=a.stateNode,i=o&&typeof i.getDerivedStateFromError!="function"?null:h.render(),a.flags|=1,t!==null&&o?(a.child=Js(a,t.child,null,d),a.child=Js(a,null,i,d)):Dt(t,a,i,d),a.memoizedState=h.state,t=a.child):t=ja(t,a,d),t}function Uy(t,a,i,o){return Ks(),a.flags|=256,Dt(t,a,i,o),a.child}var nf={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function af(t){return{baseLanes:t,cachePool:jm()}}function sf(t,a,i){return t=t!==null?t.childLanes&~i:0,a&&(t|=wn),t}function qy(t,a,i){var o=a.pendingProps,d=!1,h=(a.flags&128)!==0,v;if((v=h)||(v=t!==null&&t.memoizedState===null?!1:(gt.current&2)!==0),v&&(d=!0,a.flags&=-129),v=(a.flags&32)!==0,a.flags&=-33,t===null){if(qe){if(d?ds(a):fs(),(t=ot)?(t=Fb(t,On),t=t!==null&&t.data!=="&"?t:null,t!==null&&(a.memoizedState={dehydrated:t,treeContext:ss!==null?{id:sa,overflow:ia}:null,retryLane:536870912,hydrationErrors:null},i=gm(t),i.return=a,a.child=i,zt=a,ot=null)):t=null,t===null)throw rs(a);return Hf(t)?a.lanes=32:a.lanes=536870912,null}var E=o.children;return o=o.fallback,d?(fs(),d=a.mode,E=dc({mode:"hidden",children:E},d),o=Vs(o,d,i,null),E.return=a,o.return=a,E.sibling=o,a.child=E,o=a.child,o.memoizedState=af(i),o.childLanes=sf(t,v,i),a.memoizedState=nf,no(null,o)):(ds(a),rf(a,E))}var N=t.memoizedState;if(N!==null&&(E=N.dehydrated,E!==null)){if(h)a.flags&256?(ds(a),a.flags&=-257,a=of(t,a,i)):a.memoizedState!==null?(fs(),a.child=t.child,a.flags|=128,a=null):(fs(),E=o.fallback,d=a.mode,o=dc({mode:"visible",children:o.children},d),E=Vs(E,d,i,null),E.flags|=2,o.return=a,E.return=a,o.sibling=E,a.child=o,Js(a,t.child,null,i),o=a.child,o.memoizedState=af(i),o.childLanes=sf(t,v,i),a.memoizedState=nf,a=no(null,o));else if(ds(a),Hf(E)){if(v=E.nextSibling&&E.nextSibling.dataset,v)var q=v.dgst;v=q,o=Error(r(419)),o.stack="",o.digest=v,Pr({value:o,source:null,stack:null}),a=of(t,a,i)}else if(Et||Ui(t,a,i,!1),v=(i&t.childLanes)!==0,Et||v){if(v=it,v!==null&&(o=Tp(v,i),o!==0&&o!==N.retryLane))throw N.retryLane=o,Ps(t,o),sn(v,t,o),ef;Lf(E)||wc(),a=of(t,a,i)}else Lf(E)?(a.flags|=192,a.child=t.child,a=null):(t=N.treeContext,ot=zn(E.nextSibling),zt=a,qe=!0,is=null,On=!1,t!==null&&xm(a,t),a=rf(a,o.children),a.flags|=4096);return a}return d?(fs(),E=o.fallback,d=a.mode,N=t.child,q=N.sibling,o=xa(N,{mode:"hidden",children:o.children}),o.subtreeFlags=N.subtreeFlags&65011712,q!==null?E=xa(q,E):(E=Vs(E,d,i,null),E.flags|=2),E.return=a,o.return=a,o.sibling=E,a.child=o,no(null,o),o=a.child,E=t.child.memoizedState,E===null?E=af(i):(d=E.cachePool,d!==null?(N=xt._currentValue,d=d.parent!==N?{parent:N,pool:N}:d):d=jm(),E={baseLanes:E.baseLanes|i,cachePool:d}),o.memoizedState=E,o.childLanes=sf(t,v,i),a.memoizedState=nf,no(t.child,o)):(ds(a),i=t.child,t=i.sibling,i=xa(i,{mode:"visible",children:o.children}),i.return=a,i.sibling=null,t!==null&&(v=a.deletions,v===null?(a.deletions=[t],a.flags|=16):v.push(t)),a.child=i,a.memoizedState=null,i)}function rf(t,a){return a=dc({mode:"visible",children:a},t.mode),a.return=t,t.child=a}function dc(t,a){return t=yn(22,t,null,a),t.lanes=0,t}function of(t,a,i){return Js(a,t.child,null,i),t=rf(a,a.pendingProps.children),t.flags|=2,a.memoizedState=null,t}function Ly(t,a,i){t.lanes|=a;var o=t.alternate;o!==null&&(o.lanes|=a),xd(t.return,a,i)}function lf(t,a,i,o,d,h){var v=t.memoizedState;v===null?t.memoizedState={isBackwards:a,rendering:null,renderingStartTime:0,last:o,tail:i,tailMode:d,treeForkCount:h}:(v.isBackwards=a,v.rendering=null,v.renderingStartTime=0,v.last=o,v.tail=i,v.tailMode=d,v.treeForkCount=h)}function Hy(t,a,i){var o=a.pendingProps,d=o.revealOrder,h=o.tail;o=o.children;var v=gt.current,E=(v&2)!==0;if(E?(v=v&1|2,a.flags|=128):v&=1,ie(gt,v),Dt(t,a,o,i),o=qe?Gr:0,!E&&t!==null&&(t.flags&128)!==0)e:for(t=a.child;t!==null;){if(t.tag===13)t.memoizedState!==null&&Ly(t,i,a);else if(t.tag===19)Ly(t,i,a);else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===a)break e;for(;t.sibling===null;){if(t.return===null||t.return===a)break e;t=t.return}t.sibling.return=t.return,t=t.sibling}switch(d){case"forwards":for(i=a.child,d=null;i!==null;)t=i.alternate,t!==null&&Wl(t)===null&&(d=i),i=i.sibling;i=d,i===null?(d=a.child,a.child=null):(d=i.sibling,i.sibling=null),lf(a,!1,d,i,h,o);break;case"backwards":case"unstable_legacy-backwards":for(i=null,d=a.child,a.child=null;d!==null;){if(t=d.alternate,t!==null&&Wl(t)===null){a.child=d;break}t=d.sibling,d.sibling=i,i=d,d=t}lf(a,!0,i,null,h,o);break;case"together":lf(a,!1,null,null,void 0,o);break;default:a.memoizedState=null}return a.child}function ja(t,a,i){if(t!==null&&(a.dependencies=t.dependencies),ms|=a.lanes,(i&a.childLanes)===0)if(t!==null){if(Ui(t,a,i,!1),(i&a.childLanes)===0)return null}else return null;if(t!==null&&a.child!==t.child)throw Error(r(153));if(a.child!==null){for(t=a.child,i=xa(t,t.pendingProps),a.child=i,i.return=a;t.sibling!==null;)t=t.sibling,i=i.sibling=xa(t,t.pendingProps),i.return=a;i.sibling=null}return a.child}function cf(t,a){return(t.lanes&a)!==0?!0:(t=t.dependencies,!!(t!==null&&Vl(t)))}function vw(t,a,i){switch(a.tag){case 3:we(a,a.stateNode.containerInfo),os(a,xt,t.memoizedState.cache),Ks();break;case 27:case 5:Oe(a);break;case 4:we(a,a.stateNode.containerInfo);break;case 10:os(a,a.type,a.memoizedProps.value);break;case 31:if(a.memoizedState!==null)return a.flags|=128,Od(a),null;break;case 13:var o=a.memoizedState;if(o!==null)return o.dehydrated!==null?(ds(a),a.flags|=128,null):(i&a.child.childLanes)!==0?qy(t,a,i):(ds(a),t=ja(t,a,i),t!==null?t.sibling:null);ds(a);break;case 19:var d=(t.flags&128)!==0;if(o=(i&a.childLanes)!==0,o||(Ui(t,a,i,!1),o=(i&a.childLanes)!==0),d){if(o)return Hy(t,a,i);a.flags|=128}if(d=a.memoizedState,d!==null&&(d.rendering=null,d.tail=null,d.lastEffect=null),ie(gt,gt.current),o)break;return null;case 22:return a.lanes=0,Oy(t,a,i,a.pendingProps);case 24:os(a,xt,t.memoizedState.cache)}return ja(t,a,i)}function Iy(t,a,i){if(t!==null)if(t.memoizedProps!==a.pendingProps)Et=!0;else{if(!cf(t,i)&&(a.flags&128)===0)return Et=!1,vw(t,a,i);Et=(t.flags&131072)!==0}else Et=!1,qe&&(a.flags&1048576)!==0&&wm(a,Gr,a.index);switch(a.lanes=0,a.tag){case 16:e:{var o=a.pendingProps;if(t=Xs(a.elementType),a.type=t,typeof t=="function")hd(t)?(o=ei(t,o),a.tag=1,a=Dy(null,a,t,o,i)):(a.tag=0,a=tf(null,a,t,o,i));else{if(t!=null){var d=t.$$typeof;if(d===B){a.tag=11,a=Ry(null,a,t,o,i);break e}else if(d===C){a.tag=14,a=My(null,a,t,o,i);break e}}throw a=he(t)||t,Error(r(306,a,""))}}return a;case 0:return tf(t,a,a.type,a.pendingProps,i);case 1:return o=a.type,d=ei(o,a.pendingProps),Dy(t,a,o,d,i);case 3:e:{if(we(a,a.stateNode.containerInfo),t===null)throw Error(r(387));o=a.pendingProps;var h=a.memoizedState;d=h.element,Nd(t,a),Qr(a,o,null,i);var v=a.memoizedState;if(o=v.cache,os(a,xt,o),o!==h.cache&&Sd(a,[xt],i,!0),Xr(),o=v.element,h.isDehydrated)if(h={element:o,isDehydrated:!1,cache:v.cache},a.updateQueue.baseState=h,a.memoizedState=h,a.flags&256){a=Uy(t,a,o,i);break e}else if(o!==d){d=Rn(Error(r(424)),a),Pr(d),a=Uy(t,a,o,i);break e}else{switch(t=a.stateNode.containerInfo,t.nodeType){case 9:t=t.body;break;default:t=t.nodeName==="HTML"?t.ownerDocument.body:t}for(ot=zn(t.firstChild),zt=a,qe=!0,is=null,On=!0,i=Om(a,null,o,i),a.child=i;i;)i.flags=i.flags&-3|4096,i=i.sibling}else{if(Ks(),o===d){a=ja(t,a,i);break e}Dt(t,a,o,i)}a=a.child}return a;case 26:return uc(t,a),t===null?(i=Wb(a.type,null,a.pendingProps,null))?a.memoizedState=i:qe||(i=a.type,t=a.pendingProps,o=jc(ue.current).createElement(i),o[_t]=a,o[Jt]=t,Ut(o,i,t),Rt(o),a.stateNode=o):a.memoizedState=Wb(a.type,t.memoizedProps,a.pendingProps,t.memoizedState),null;case 27:return Oe(a),t===null&&qe&&(o=a.stateNode=Xb(a.type,a.pendingProps,ue.current),zt=a,On=!0,d=ot,ws(a.type)?(If=d,ot=zn(o.firstChild)):ot=d),Dt(t,a,a.pendingProps.children,i),uc(t,a),t===null&&(a.flags|=4194304),a.child;case 5:return t===null&&qe&&((d=o=ot)&&(o=Zw(o,a.type,a.pendingProps,On),o!==null?(a.stateNode=o,zt=a,ot=zn(o.firstChild),On=!1,d=!0):d=!1),d||rs(a)),Oe(a),d=a.type,h=a.pendingProps,v=t!==null?t.memoizedProps:null,o=h.children,Df(d,h)?o=null:v!==null&&Df(d,v)&&(a.flags|=32),a.memoizedState!==null&&(d=zd(t,a,uw,null,null,i),go._currentValue=d),uc(t,a),Dt(t,a,o,i),a.child;case 6:return t===null&&qe&&((t=i=ot)&&(i=Xw(i,a.pendingProps,On),i!==null?(a.stateNode=i,zt=a,ot=null,t=!0):t=!1),t||rs(a)),null;case 13:return qy(t,a,i);case 4:return we(a,a.stateNode.containerInfo),o=a.pendingProps,t===null?a.child=Js(a,null,o,i):Dt(t,a,o,i),a.child;case 11:return Ry(t,a,a.type,a.pendingProps,i);case 7:return Dt(t,a,a.pendingProps,i),a.child;case 8:return Dt(t,a,a.pendingProps.children,i),a.child;case 12:return Dt(t,a,a.pendingProps.children,i),a.child;case 10:return o=a.pendingProps,os(a,a.type,o.value),Dt(t,a,o.children,i),a.child;case 9:return d=a.type._context,o=a.pendingProps.children,Ys(a),d=$t(d),o=o(d),a.flags|=1,Dt(t,a,o,i),a.child;case 14:return My(t,a,a.type,a.pendingProps,i);case 15:return Cy(t,a,a.type,a.pendingProps,i);case 19:return Hy(t,a,i);case 31:return gw(t,a,i);case 22:return Oy(t,a,i,a.pendingProps);case 24:return Ys(a),o=$t(xt),t===null?(d=Td(),d===null&&(d=it,h=Ed(),d.pooledCache=h,h.refCount++,h!==null&&(d.pooledCacheLanes|=i),d=h),a.memoizedState={parent:o,cache:d},jd(a),os(a,xt,d)):((t.lanes&i)!==0&&(Nd(t,a),Qr(a,null,null,i),Xr()),d=t.memoizedState,h=a.memoizedState,d.parent!==o?(d={parent:o,cache:o},a.memoizedState=d,a.lanes===0&&(a.memoizedState=a.updateQueue.baseState=d),os(a,xt,o)):(o=h.cache,os(a,xt,o),o!==d.cache&&Sd(a,[xt],i,!0))),Dt(t,a,a.pendingProps.children,i),a.child;case 29:throw a.pendingProps}throw Error(r(156,a.tag))}function Na(t){t.flags|=4}function uf(t,a,i,o,d){if((a=(t.mode&32)!==0)&&(a=!1),a){if(t.flags|=16777216,(d&335544128)===d)if(t.stateNode.complete)t.flags|=8192;else if(mb())t.flags|=8192;else throw Qs=Zl,kd}else t.flags&=-16777217}function Gy(t,a){if(a.type!=="stylesheet"||(a.state.loading&4)!==0)t.flags&=-16777217;else if(t.flags|=16777216,!s1(a))if(mb())t.flags|=8192;else throw Qs=Zl,kd}function fc(t,a){a!==null&&(t.flags|=4),t.flags&16384&&(a=t.tag!==22?Sp():536870912,t.lanes|=a,Xi|=a)}function ao(t,a){if(!qe)switch(t.tailMode){case"hidden":a=t.tail;for(var i=null;a!==null;)a.alternate!==null&&(i=a),a=a.sibling;i===null?t.tail=null:i.sibling=null;break;case"collapsed":i=t.tail;for(var o=null;i!==null;)i.alternate!==null&&(o=i),i=i.sibling;o===null?a||t.tail===null?t.tail=null:t.tail.sibling=null:o.sibling=null}}function lt(t){var a=t.alternate!==null&&t.alternate.child===t.child,i=0,o=0;if(a)for(var d=t.child;d!==null;)i|=d.lanes|d.childLanes,o|=d.subtreeFlags&65011712,o|=d.flags&65011712,d.return=t,d=d.sibling;else for(d=t.child;d!==null;)i|=d.lanes|d.childLanes,o|=d.subtreeFlags,o|=d.flags,d.return=t,d=d.sibling;return t.subtreeFlags|=o,t.childLanes=i,a}function ww(t,a,i){var o=a.pendingProps;switch(bd(a),a.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return lt(a),null;case 1:return lt(a),null;case 3:return i=a.stateNode,o=null,t!==null&&(o=t.memoizedState.cache),a.memoizedState.cache!==o&&(a.flags|=2048),Aa(xt),me(),i.pendingContext&&(i.context=i.pendingContext,i.pendingContext=null),(t===null||t.child===null)&&(Di(a)?Na(a):t===null||t.memoizedState.isDehydrated&&(a.flags&256)===0||(a.flags|=1024,vd())),lt(a),null;case 26:var d=a.type,h=a.memoizedState;return t===null?(Na(a),h!==null?(lt(a),Gy(a,h)):(lt(a),uf(a,d,null,o,i))):h?h!==t.memoizedState?(Na(a),lt(a),Gy(a,h)):(lt(a),a.flags&=-16777217):(t=t.memoizedProps,t!==o&&Na(a),lt(a),uf(a,d,t,o,i)),null;case 27:if(Te(a),i=ue.current,d=a.type,t!==null&&a.stateNode!=null)t.memoizedProps!==o&&Na(a);else{if(!o){if(a.stateNode===null)throw Error(r(166));return lt(a),null}t=H.current,Di(a)?Sm(a):(t=Xb(d,o,i),a.stateNode=t,Na(a))}return lt(a),null;case 5:if(Te(a),d=a.type,t!==null&&a.stateNode!=null)t.memoizedProps!==o&&Na(a);else{if(!o){if(a.stateNode===null)throw Error(r(166));return lt(a),null}if(h=H.current,Di(a))Sm(a);else{var v=jc(ue.current);switch(h){case 1:h=v.createElementNS("http://www.w3.org/2000/svg",d);break;case 2:h=v.createElementNS("http://www.w3.org/1998/Math/MathML",d);break;default:switch(d){case"svg":h=v.createElementNS("http://www.w3.org/2000/svg",d);break;case"math":h=v.createElementNS("http://www.w3.org/1998/Math/MathML",d);break;case"script":h=v.createElement("div"),h.innerHTML="<script><\/script>",h=h.removeChild(h.firstChild);break;case"select":h=typeof o.is=="string"?v.createElement("select",{is:o.is}):v.createElement("select"),o.multiple?h.multiple=!0:o.size&&(h.size=o.size);break;default:h=typeof o.is=="string"?v.createElement(d,{is:o.is}):v.createElement(d)}}h[_t]=a,h[Jt]=o;e:for(v=a.child;v!==null;){if(v.tag===5||v.tag===6)h.appendChild(v.stateNode);else if(v.tag!==4&&v.tag!==27&&v.child!==null){v.child.return=v,v=v.child;continue}if(v===a)break e;for(;v.sibling===null;){if(v.return===null||v.return===a)break e;v=v.return}v.sibling.return=v.return,v=v.sibling}a.stateNode=h;e:switch(Ut(h,d,o),d){case"button":case"input":case"select":case"textarea":o=!!o.autoFocus;break e;case"img":o=!0;break e;default:o=!1}o&&Na(a)}}return lt(a),uf(a,a.type,t===null?null:t.memoizedProps,a.pendingProps,i),null;case 6:if(t&&a.stateNode!=null)t.memoizedProps!==o&&Na(a);else{if(typeof o!="string"&&a.stateNode===null)throw Error(r(166));if(t=ue.current,Di(a)){if(t=a.stateNode,i=a.memoizedProps,o=null,d=zt,d!==null)switch(d.tag){case 27:case 5:o=d.memoizedProps}t[_t]=a,t=!!(t.nodeValue===i||o!==null&&o.suppressHydrationWarning===!0||qb(t.nodeValue,i)),t||rs(a,!0)}else t=jc(t).createTextNode(o),t[_t]=a,a.stateNode=t}return lt(a),null;case 31:if(i=a.memoizedState,t===null||t.memoizedState!==null){if(o=Di(a),i!==null){if(t===null){if(!o)throw Error(r(318));if(t=a.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(r(557));t[_t]=a}else Ks(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;lt(a),t=!1}else i=vd(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=i),t=!0;if(!t)return a.flags&256?(gn(a),a):(gn(a),null);if((a.flags&128)!==0)throw Error(r(558))}return lt(a),null;case 13:if(o=a.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(d=Di(a),o!==null&&o.dehydrated!==null){if(t===null){if(!d)throw Error(r(318));if(d=a.memoizedState,d=d!==null?d.dehydrated:null,!d)throw Error(r(317));d[_t]=a}else Ks(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;lt(a),d=!1}else d=vd(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=d),d=!0;if(!d)return a.flags&256?(gn(a),a):(gn(a),null)}return gn(a),(a.flags&128)!==0?(a.lanes=i,a):(i=o!==null,t=t!==null&&t.memoizedState!==null,i&&(o=a.child,d=null,o.alternate!==null&&o.alternate.memoizedState!==null&&o.alternate.memoizedState.cachePool!==null&&(d=o.alternate.memoizedState.cachePool.pool),h=null,o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(h=o.memoizedState.cachePool.pool),h!==d&&(o.flags|=2048)),i!==t&&i&&(a.child.flags|=8192),fc(a,a.updateQueue),lt(a),null);case 4:return me(),t===null&&Cf(a.stateNode.containerInfo),lt(a),null;case 10:return Aa(a.type),lt(a),null;case 19:if(P(gt),o=a.memoizedState,o===null)return lt(a),null;if(d=(a.flags&128)!==0,h=o.rendering,h===null)if(d)ao(o,!1);else{if(ht!==0||t!==null&&(t.flags&128)!==0)for(t=a.child;t!==null;){if(h=Wl(t),h!==null){for(a.flags|=128,ao(o,!1),t=h.updateQueue,a.updateQueue=t,fc(a,t),a.subtreeFlags=0,t=i,i=a.child;i!==null;)bm(i,t),i=i.sibling;return ie(gt,gt.current&1|2),qe&&Sa(a,o.treeForkCount),a.child}t=t.sibling}o.tail!==null&&ke()>bc&&(a.flags|=128,d=!0,ao(o,!1),a.lanes=4194304)}else{if(!d)if(t=Wl(h),t!==null){if(a.flags|=128,d=!0,t=t.updateQueue,a.updateQueue=t,fc(a,t),ao(o,!0),o.tail===null&&o.tailMode==="hidden"&&!h.alternate&&!qe)return lt(a),null}else 2*ke()-o.renderingStartTime>bc&&i!==536870912&&(a.flags|=128,d=!0,ao(o,!1),a.lanes=4194304);o.isBackwards?(h.sibling=a.child,a.child=h):(t=o.last,t!==null?t.sibling=h:a.child=h,o.last=h)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=ke(),t.sibling=null,i=gt.current,ie(gt,d?i&1|2:i&1),qe&&Sa(a,o.treeForkCount),t):(lt(a),null);case 22:case 23:return gn(a),Cd(),o=a.memoizedState!==null,t!==null?t.memoizedState!==null!==o&&(a.flags|=8192):o&&(a.flags|=8192),o?(i&536870912)!==0&&(a.flags&128)===0&&(lt(a),a.subtreeFlags&6&&(a.flags|=8192)):lt(a),i=a.updateQueue,i!==null&&fc(a,i.retryQueue),i=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(i=t.memoizedState.cachePool.pool),o=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(o=a.memoizedState.cachePool.pool),o!==i&&(a.flags|=2048),t!==null&&P(Zs),null;case 24:return i=null,t!==null&&(i=t.memoizedState.cache),a.memoizedState.cache!==i&&(a.flags|=2048),Aa(xt),lt(a),null;case 25:return null;case 30:return null}throw Error(r(156,a.tag))}function xw(t,a){switch(bd(a),a.tag){case 1:return t=a.flags,t&65536?(a.flags=t&-65537|128,a):null;case 3:return Aa(xt),me(),t=a.flags,(t&65536)!==0&&(t&128)===0?(a.flags=t&-65537|128,a):null;case 26:case 27:case 5:return Te(a),null;case 31:if(a.memoizedState!==null){if(gn(a),a.alternate===null)throw Error(r(340));Ks()}return t=a.flags,t&65536?(a.flags=t&-65537|128,a):null;case 13:if(gn(a),t=a.memoizedState,t!==null&&t.dehydrated!==null){if(a.alternate===null)throw Error(r(340));Ks()}return t=a.flags,t&65536?(a.flags=t&-65537|128,a):null;case 19:return P(gt),null;case 4:return me(),null;case 10:return Aa(a.type),null;case 22:case 23:return gn(a),Cd(),t!==null&&P(Zs),t=a.flags,t&65536?(a.flags=t&-65537|128,a):null;case 24:return Aa(xt),null;case 25:return null;default:return null}}function Py(t,a){switch(bd(a),a.tag){case 3:Aa(xt),me();break;case 26:case 27:case 5:Te(a);break;case 4:me();break;case 31:a.memoizedState!==null&&gn(a);break;case 13:gn(a);break;case 19:P(gt);break;case 10:Aa(a.type);break;case 22:case 23:gn(a),Cd(),t!==null&&P(Zs);break;case 24:Aa(xt)}}function so(t,a){try{var i=a.updateQueue,o=i!==null?i.lastEffect:null;if(o!==null){var d=o.next;i=d;do{if((i.tag&t)===t){o=void 0;var h=i.create,v=i.inst;o=h(),v.destroy=o}i=i.next}while(i!==d)}}catch(E){Xe(a,a.return,E)}}function hs(t,a,i){try{var o=a.updateQueue,d=o!==null?o.lastEffect:null;if(d!==null){var h=d.next;o=h;do{if((o.tag&t)===t){var v=o.inst,E=v.destroy;if(E!==void 0){v.destroy=void 0,d=a;var N=i,q=E;try{q()}catch(Q){Xe(d,N,Q)}}}o=o.next}while(o!==h)}}catch(Q){Xe(a,a.return,Q)}}function Vy(t){var a=t.updateQueue;if(a!==null){var i=t.stateNode;try{zm(a,i)}catch(o){Xe(t,t.return,o)}}}function Ky(t,a,i){i.props=ei(t.type,t.memoizedProps),i.state=t.memoizedState;try{i.componentWillUnmount()}catch(o){Xe(t,a,o)}}function io(t,a){try{var i=t.ref;if(i!==null){switch(t.tag){case 26:case 27:case 5:var o=t.stateNode;break;case 30:o=t.stateNode;break;default:o=t.stateNode}typeof i=="function"?t.refCleanup=i(o):i.current=o}}catch(d){Xe(t,a,d)}}function ra(t,a){var i=t.ref,o=t.refCleanup;if(i!==null)if(typeof o=="function")try{o()}catch(d){Xe(t,a,d)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof i=="function")try{i(null)}catch(d){Xe(t,a,d)}else i.current=null}function Fy(t){var a=t.type,i=t.memoizedProps,o=t.stateNode;try{e:switch(a){case"button":case"input":case"select":case"textarea":i.autoFocus&&o.focus();break e;case"img":i.src?o.src=i.src:i.srcSet&&(o.srcset=i.srcSet)}}catch(d){Xe(t,t.return,d)}}function df(t,a,i){try{var o=t.stateNode;Gw(o,t.type,i,a),o[Jt]=a}catch(d){Xe(t,t.return,d)}}function Yy(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&ws(t.type)||t.tag===4}function ff(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||Yy(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&ws(t.type)||t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function hf(t,a,i){var o=t.tag;if(o===5||o===6)t=t.stateNode,a?(i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i).insertBefore(t,a):(a=i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i,a.appendChild(t),i=i._reactRootContainer,i!=null||a.onclick!==null||(a.onclick=va));else if(o!==4&&(o===27&&ws(t.type)&&(i=t.stateNode,a=null),t=t.child,t!==null))for(hf(t,a,i),t=t.sibling;t!==null;)hf(t,a,i),t=t.sibling}function hc(t,a,i){var o=t.tag;if(o===5||o===6)t=t.stateNode,a?i.insertBefore(t,a):i.appendChild(t);else if(o!==4&&(o===27&&ws(t.type)&&(i=t.stateNode),t=t.child,t!==null))for(hc(t,a,i),t=t.sibling;t!==null;)hc(t,a,i),t=t.sibling}function Zy(t){var a=t.stateNode,i=t.memoizedProps;try{for(var o=t.type,d=a.attributes;d.length;)a.removeAttributeNode(d[0]);Ut(a,o,i),a[_t]=t,a[Jt]=i}catch(h){Xe(t,t.return,h)}}var Ba=!1,At=!1,pf=!1,Xy=typeof WeakSet=="function"?WeakSet:Set,Mt=null;function Sw(t,a){if(t=t.containerInfo,zf=_c,t=lm(t),rd(t)){if("selectionStart"in t)var i={start:t.selectionStart,end:t.selectionEnd};else e:{i=(i=t.ownerDocument)&&i.defaultView||window;var o=i.getSelection&&i.getSelection();if(o&&o.rangeCount!==0){i=o.anchorNode;var d=o.anchorOffset,h=o.focusNode;o=o.focusOffset;try{i.nodeType,h.nodeType}catch{i=null;break e}var v=0,E=-1,N=-1,q=0,Q=0,ne=t,G=null;t:for(;;){for(var F;ne!==i||d!==0&&ne.nodeType!==3||(E=v+d),ne!==h||o!==0&&ne.nodeType!==3||(N=v+o),ne.nodeType===3&&(v+=ne.nodeValue.length),(F=ne.firstChild)!==null;)G=ne,ne=F;for(;;){if(ne===t)break t;if(G===i&&++q===d&&(E=v),G===h&&++Q===o&&(N=v),(F=ne.nextSibling)!==null)break;ne=G,G=ne.parentNode}ne=F}i=E===-1||N===-1?null:{start:E,end:N}}else i=null}i=i||{start:0,end:0}}else i=null;for($f={focusedElem:t,selectionRange:i},_c=!1,Mt=a;Mt!==null;)if(a=Mt,t=a.child,(a.subtreeFlags&1028)!==0&&t!==null)t.return=a,Mt=t;else for(;Mt!==null;){switch(a=Mt,h=a.alternate,t=a.flags,a.tag){case 0:if((t&4)!==0&&(t=a.updateQueue,t=t!==null?t.events:null,t!==null))for(i=0;i<t.length;i++)d=t[i],d.ref.impl=d.nextImpl;break;case 11:case 15:break;case 1:if((t&1024)!==0&&h!==null){t=void 0,i=a,d=h.memoizedProps,h=h.memoizedState,o=i.stateNode;try{var fe=ei(i.type,d);t=o.getSnapshotBeforeUpdate(fe,h),o.__reactInternalSnapshotBeforeUpdate=t}catch(Se){Xe(i,i.return,Se)}}break;case 3:if((t&1024)!==0){if(t=a.stateNode.containerInfo,i=t.nodeType,i===9)qf(t);else if(i===1)switch(t.nodeName){case"HEAD":case"HTML":case"BODY":qf(t);break;default:t.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((t&1024)!==0)throw Error(r(163))}if(t=a.sibling,t!==null){t.return=a.return,Mt=t;break}Mt=a.return}}function Qy(t,a,i){var o=i.flags;switch(i.tag){case 0:case 11:case 15:Ma(t,i),o&4&&so(5,i);break;case 1:if(Ma(t,i),o&4)if(t=i.stateNode,a===null)try{t.componentDidMount()}catch(v){Xe(i,i.return,v)}else{var d=ei(i.type,a.memoizedProps);a=a.memoizedState;try{t.componentDidUpdate(d,a,t.__reactInternalSnapshotBeforeUpdate)}catch(v){Xe(i,i.return,v)}}o&64&&Vy(i),o&512&&io(i,i.return);break;case 3:if(Ma(t,i),o&64&&(t=i.updateQueue,t!==null)){if(a=null,i.child!==null)switch(i.child.tag){case 27:case 5:a=i.child.stateNode;break;case 1:a=i.child.stateNode}try{zm(t,a)}catch(v){Xe(i,i.return,v)}}break;case 27:a===null&&o&4&&Zy(i);case 26:case 5:Ma(t,i),a===null&&o&4&&Fy(i),o&512&&io(i,i.return);break;case 12:Ma(t,i);break;case 31:Ma(t,i),o&4&&eb(t,i);break;case 13:Ma(t,i),o&4&&tb(t,i),o&64&&(t=i.memoizedState,t!==null&&(t=t.dehydrated,t!==null&&(i=Mw.bind(null,i),Qw(t,i))));break;case 22:if(o=i.memoizedState!==null||Ba,!o){a=a!==null&&a.memoizedState!==null||At,d=Ba;var h=At;Ba=o,(At=a)&&!h?Ca(t,i,(i.subtreeFlags&8772)!==0):Ma(t,i),Ba=d,At=h}break;case 30:break;default:Ma(t,i)}}function Jy(t){var a=t.alternate;a!==null&&(t.alternate=null,Jy(a)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(a=t.stateNode,a!==null&&Gu(a)),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}var ut=null,en=!1;function Ra(t,a,i){for(i=i.child;i!==null;)Wy(t,a,i),i=i.sibling}function Wy(t,a,i){if(He&&typeof He.onCommitFiberUnmount=="function")try{He.onCommitFiberUnmount($e,i)}catch{}switch(i.tag){case 26:At||ra(i,a),Ra(t,a,i),i.memoizedState?i.memoizedState.count--:i.stateNode&&(i=i.stateNode,i.parentNode.removeChild(i));break;case 27:At||ra(i,a);var o=ut,d=en;ws(i.type)&&(ut=i.stateNode,en=!1),Ra(t,a,i),mo(i.stateNode),ut=o,en=d;break;case 5:At||ra(i,a);case 6:if(o=ut,d=en,ut=null,Ra(t,a,i),ut=o,en=d,ut!==null)if(en)try{(ut.nodeType===9?ut.body:ut.nodeName==="HTML"?ut.ownerDocument.body:ut).removeChild(i.stateNode)}catch(h){Xe(i,a,h)}else try{ut.removeChild(i.stateNode)}catch(h){Xe(i,a,h)}break;case 18:ut!==null&&(en?(t=ut,Vb(t.nodeType===9?t.body:t.nodeName==="HTML"?t.ownerDocument.body:t,i.stateNode),sr(t)):Vb(ut,i.stateNode));break;case 4:o=ut,d=en,ut=i.stateNode.containerInfo,en=!0,Ra(t,a,i),ut=o,en=d;break;case 0:case 11:case 14:case 15:hs(2,i,a),At||hs(4,i,a),Ra(t,a,i);break;case 1:At||(ra(i,a),o=i.stateNode,typeof o.componentWillUnmount=="function"&&Ky(i,a,o)),Ra(t,a,i);break;case 21:Ra(t,a,i);break;case 22:At=(o=At)||i.memoizedState!==null,Ra(t,a,i),At=o;break;default:Ra(t,a,i)}}function eb(t,a){if(a.memoizedState===null&&(t=a.alternate,t!==null&&(t=t.memoizedState,t!==null))){t=t.dehydrated;try{sr(t)}catch(i){Xe(a,a.return,i)}}}function tb(t,a){if(a.memoizedState===null&&(t=a.alternate,t!==null&&(t=t.memoizedState,t!==null&&(t=t.dehydrated,t!==null))))try{sr(t)}catch(i){Xe(a,a.return,i)}}function Ew(t){switch(t.tag){case 31:case 13:case 19:var a=t.stateNode;return a===null&&(a=t.stateNode=new Xy),a;case 22:return t=t.stateNode,a=t._retryCache,a===null&&(a=t._retryCache=new Xy),a;default:throw Error(r(435,t.tag))}}function pc(t,a){var i=Ew(t);a.forEach(function(o){if(!i.has(o)){i.add(o);var d=Cw.bind(null,t,o);o.then(d,d)}})}function tn(t,a){var i=a.deletions;if(i!==null)for(var o=0;o<i.length;o++){var d=i[o],h=t,v=a,E=v;e:for(;E!==null;){switch(E.tag){case 27:if(ws(E.type)){ut=E.stateNode,en=!1;break e}break;case 5:ut=E.stateNode,en=!1;break e;case 3:case 4:ut=E.stateNode.containerInfo,en=!0;break e}E=E.return}if(ut===null)throw Error(r(160));Wy(h,v,d),ut=null,en=!1,h=d.alternate,h!==null&&(h.return=null),d.return=null}if(a.subtreeFlags&13886)for(a=a.child;a!==null;)nb(a,t),a=a.sibling}var Vn=null;function nb(t,a){var i=t.alternate,o=t.flags;switch(t.tag){case 0:case 11:case 14:case 15:tn(a,t),nn(t),o&4&&(hs(3,t,t.return),so(3,t),hs(5,t,t.return));break;case 1:tn(a,t),nn(t),o&512&&(At||i===null||ra(i,i.return)),o&64&&Ba&&(t=t.updateQueue,t!==null&&(o=t.callbacks,o!==null&&(i=t.shared.hiddenCallbacks,t.shared.hiddenCallbacks=i===null?o:i.concat(o))));break;case 26:var d=Vn;if(tn(a,t),nn(t),o&512&&(At||i===null||ra(i,i.return)),o&4){var h=i!==null?i.memoizedState:null;if(o=t.memoizedState,i===null)if(o===null)if(t.stateNode===null){e:{o=t.type,i=t.memoizedProps,d=d.ownerDocument||d;t:switch(o){case"title":h=d.getElementsByTagName("title")[0],(!h||h[Cr]||h[_t]||h.namespaceURI==="http://www.w3.org/2000/svg"||h.hasAttribute("itemprop"))&&(h=d.createElement(o),d.head.insertBefore(h,d.querySelector("head > title"))),Ut(h,o,i),h[_t]=t,Rt(h),o=h;break e;case"link":var v=n1("link","href",d).get(o+(i.href||""));if(v){for(var E=0;E<v.length;E++)if(h=v[E],h.getAttribute("href")===(i.href==null||i.href===""?null:i.href)&&h.getAttribute("rel")===(i.rel==null?null:i.rel)&&h.getAttribute("title")===(i.title==null?null:i.title)&&h.getAttribute("crossorigin")===(i.crossOrigin==null?null:i.crossOrigin)){v.splice(E,1);break t}}h=d.createElement(o),Ut(h,o,i),d.head.appendChild(h);break;case"meta":if(v=n1("meta","content",d).get(o+(i.content||""))){for(E=0;E<v.length;E++)if(h=v[E],h.getAttribute("content")===(i.content==null?null:""+i.content)&&h.getAttribute("name")===(i.name==null?null:i.name)&&h.getAttribute("property")===(i.property==null?null:i.property)&&h.getAttribute("http-equiv")===(i.httpEquiv==null?null:i.httpEquiv)&&h.getAttribute("charset")===(i.charSet==null?null:i.charSet)){v.splice(E,1);break t}}h=d.createElement(o),Ut(h,o,i),d.head.appendChild(h);break;default:throw Error(r(468,o))}h[_t]=t,Rt(h),o=h}t.stateNode=o}else a1(d,t.type,t.stateNode);else t.stateNode=t1(d,o,t.memoizedProps);else h!==o?(h===null?i.stateNode!==null&&(i=i.stateNode,i.parentNode.removeChild(i)):h.count--,o===null?a1(d,t.type,t.stateNode):t1(d,o,t.memoizedProps)):o===null&&t.stateNode!==null&&df(t,t.memoizedProps,i.memoizedProps)}break;case 27:tn(a,t),nn(t),o&512&&(At||i===null||ra(i,i.return)),i!==null&&o&4&&df(t,t.memoizedProps,i.memoizedProps);break;case 5:if(tn(a,t),nn(t),o&512&&(At||i===null||ra(i,i.return)),t.flags&32){d=t.stateNode;try{ji(d,"")}catch(fe){Xe(t,t.return,fe)}}o&4&&t.stateNode!=null&&(d=t.memoizedProps,df(t,d,i!==null?i.memoizedProps:d)),o&1024&&(pf=!0);break;case 6:if(tn(a,t),nn(t),o&4){if(t.stateNode===null)throw Error(r(162));o=t.memoizedProps,i=t.stateNode;try{i.nodeValue=o}catch(fe){Xe(t,t.return,fe)}}break;case 3:if(Rc=null,d=Vn,Vn=Nc(a.containerInfo),tn(a,t),Vn=d,nn(t),o&4&&i!==null&&i.memoizedState.isDehydrated)try{sr(a.containerInfo)}catch(fe){Xe(t,t.return,fe)}pf&&(pf=!1,ab(t));break;case 4:o=Vn,Vn=Nc(t.stateNode.containerInfo),tn(a,t),nn(t),Vn=o;break;case 12:tn(a,t),nn(t);break;case 31:tn(a,t),nn(t),o&4&&(o=t.updateQueue,o!==null&&(t.updateQueue=null,pc(t,o)));break;case 13:tn(a,t),nn(t),t.child.flags&8192&&t.memoizedState!==null!=(i!==null&&i.memoizedState!==null)&&(yc=ke()),o&4&&(o=t.updateQueue,o!==null&&(t.updateQueue=null,pc(t,o)));break;case 22:d=t.memoizedState!==null;var N=i!==null&&i.memoizedState!==null,q=Ba,Q=At;if(Ba=q||d,At=Q||N,tn(a,t),At=Q,Ba=q,nn(t),o&8192)e:for(a=t.stateNode,a._visibility=d?a._visibility&-2:a._visibility|1,d&&(i===null||N||Ba||At||ti(t)),i=null,a=t;;){if(a.tag===5||a.tag===26){if(i===null){N=i=a;try{if(h=N.stateNode,d)v=h.style,typeof v.setProperty=="function"?v.setProperty("display","none","important"):v.display="none";else{E=N.stateNode;var ne=N.memoizedProps.style,G=ne!=null&&ne.hasOwnProperty("display")?ne.display:null;E.style.display=G==null||typeof G=="boolean"?"":(""+G).trim()}}catch(fe){Xe(N,N.return,fe)}}}else if(a.tag===6){if(i===null){N=a;try{N.stateNode.nodeValue=d?"":N.memoizedProps}catch(fe){Xe(N,N.return,fe)}}}else if(a.tag===18){if(i===null){N=a;try{var F=N.stateNode;d?Kb(F,!0):Kb(N.stateNode,!1)}catch(fe){Xe(N,N.return,fe)}}}else if((a.tag!==22&&a.tag!==23||a.memoizedState===null||a===t)&&a.child!==null){a.child.return=a,a=a.child;continue}if(a===t)break e;for(;a.sibling===null;){if(a.return===null||a.return===t)break e;i===a&&(i=null),a=a.return}i===a&&(i=null),a.sibling.return=a.return,a=a.sibling}o&4&&(o=t.updateQueue,o!==null&&(i=o.retryQueue,i!==null&&(o.retryQueue=null,pc(t,i))));break;case 19:tn(a,t),nn(t),o&4&&(o=t.updateQueue,o!==null&&(t.updateQueue=null,pc(t,o)));break;case 30:break;case 21:break;default:tn(a,t),nn(t)}}function nn(t){var a=t.flags;if(a&2){try{for(var i,o=t.return;o!==null;){if(Yy(o)){i=o;break}o=o.return}if(i==null)throw Error(r(160));switch(i.tag){case 27:var d=i.stateNode,h=ff(t);hc(t,h,d);break;case 5:var v=i.stateNode;i.flags&32&&(ji(v,""),i.flags&=-33);var E=ff(t);hc(t,E,v);break;case 3:case 4:var N=i.stateNode.containerInfo,q=ff(t);hf(t,q,N);break;default:throw Error(r(161))}}catch(Q){Xe(t,t.return,Q)}t.flags&=-3}a&4096&&(t.flags&=-4097)}function ab(t){if(t.subtreeFlags&1024)for(t=t.child;t!==null;){var a=t;ab(a),a.tag===5&&a.flags&1024&&a.stateNode.reset(),t=t.sibling}}function Ma(t,a){if(a.subtreeFlags&8772)for(a=a.child;a!==null;)Qy(t,a.alternate,a),a=a.sibling}function ti(t){for(t=t.child;t!==null;){var a=t;switch(a.tag){case 0:case 11:case 14:case 15:hs(4,a,a.return),ti(a);break;case 1:ra(a,a.return);var i=a.stateNode;typeof i.componentWillUnmount=="function"&&Ky(a,a.return,i),ti(a);break;case 27:mo(a.stateNode);case 26:case 5:ra(a,a.return),ti(a);break;case 22:a.memoizedState===null&&ti(a);break;case 30:ti(a);break;default:ti(a)}t=t.sibling}}function Ca(t,a,i){for(i=i&&(a.subtreeFlags&8772)!==0,a=a.child;a!==null;){var o=a.alternate,d=t,h=a,v=h.flags;switch(h.tag){case 0:case 11:case 15:Ca(d,h,i),so(4,h);break;case 1:if(Ca(d,h,i),o=h,d=o.stateNode,typeof d.componentDidMount=="function")try{d.componentDidMount()}catch(q){Xe(o,o.return,q)}if(o=h,d=o.updateQueue,d!==null){var E=o.stateNode;try{var N=d.shared.hiddenCallbacks;if(N!==null)for(d.shared.hiddenCallbacks=null,d=0;d<N.length;d++)_m(N[d],E)}catch(q){Xe(o,o.return,q)}}i&&v&64&&Vy(h),io(h,h.return);break;case 27:Zy(h);case 26:case 5:Ca(d,h,i),i&&o===null&&v&4&&Fy(h),io(h,h.return);break;case 12:Ca(d,h,i);break;case 31:Ca(d,h,i),i&&v&4&&eb(d,h);break;case 13:Ca(d,h,i),i&&v&4&&tb(d,h);break;case 22:h.memoizedState===null&&Ca(d,h,i),io(h,h.return);break;case 30:break;default:Ca(d,h,i)}a=a.sibling}}function mf(t,a){var i=null;t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(i=t.memoizedState.cachePool.pool),t=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(t=a.memoizedState.cachePool.pool),t!==i&&(t!=null&&t.refCount++,i!=null&&Vr(i))}function yf(t,a){t=null,a.alternate!==null&&(t=a.alternate.memoizedState.cache),a=a.memoizedState.cache,a!==t&&(a.refCount++,t!=null&&Vr(t))}function Kn(t,a,i,o){if(a.subtreeFlags&10256)for(a=a.child;a!==null;)sb(t,a,i,o),a=a.sibling}function sb(t,a,i,o){var d=a.flags;switch(a.tag){case 0:case 11:case 15:Kn(t,a,i,o),d&2048&&so(9,a);break;case 1:Kn(t,a,i,o);break;case 3:Kn(t,a,i,o),d&2048&&(t=null,a.alternate!==null&&(t=a.alternate.memoizedState.cache),a=a.memoizedState.cache,a!==t&&(a.refCount++,t!=null&&Vr(t)));break;case 12:if(d&2048){Kn(t,a,i,o),t=a.stateNode;try{var h=a.memoizedProps,v=h.id,E=h.onPostCommit;typeof E=="function"&&E(v,a.alternate===null?"mount":"update",t.passiveEffectDuration,-0)}catch(N){Xe(a,a.return,N)}}else Kn(t,a,i,o);break;case 31:Kn(t,a,i,o);break;case 13:Kn(t,a,i,o);break;case 23:break;case 22:h=a.stateNode,v=a.alternate,a.memoizedState!==null?h._visibility&2?Kn(t,a,i,o):ro(t,a):h._visibility&2?Kn(t,a,i,o):(h._visibility|=2,Fi(t,a,i,o,(a.subtreeFlags&10256)!==0||!1)),d&2048&&mf(v,a);break;case 24:Kn(t,a,i,o),d&2048&&yf(a.alternate,a);break;default:Kn(t,a,i,o)}}function Fi(t,a,i,o,d){for(d=d&&((a.subtreeFlags&10256)!==0||!1),a=a.child;a!==null;){var h=t,v=a,E=i,N=o,q=v.flags;switch(v.tag){case 0:case 11:case 15:Fi(h,v,E,N,d),so(8,v);break;case 23:break;case 22:var Q=v.stateNode;v.memoizedState!==null?Q._visibility&2?Fi(h,v,E,N,d):ro(h,v):(Q._visibility|=2,Fi(h,v,E,N,d)),d&&q&2048&&mf(v.alternate,v);break;case 24:Fi(h,v,E,N,d),d&&q&2048&&yf(v.alternate,v);break;default:Fi(h,v,E,N,d)}a=a.sibling}}function ro(t,a){if(a.subtreeFlags&10256)for(a=a.child;a!==null;){var i=t,o=a,d=o.flags;switch(o.tag){case 22:ro(i,o),d&2048&&mf(o.alternate,o);break;case 24:ro(i,o),d&2048&&yf(o.alternate,o);break;default:ro(i,o)}a=a.sibling}}var oo=8192;function Yi(t,a,i){if(t.subtreeFlags&oo)for(t=t.child;t!==null;)ib(t,a,i),t=t.sibling}function ib(t,a,i){switch(t.tag){case 26:Yi(t,a,i),t.flags&oo&&t.memoizedState!==null&&cx(i,Vn,t.memoizedState,t.memoizedProps);break;case 5:Yi(t,a,i);break;case 3:case 4:var o=Vn;Vn=Nc(t.stateNode.containerInfo),Yi(t,a,i),Vn=o;break;case 22:t.memoizedState===null&&(o=t.alternate,o!==null&&o.memoizedState!==null?(o=oo,oo=16777216,Yi(t,a,i),oo=o):Yi(t,a,i));break;default:Yi(t,a,i)}}function rb(t){var a=t.alternate;if(a!==null&&(t=a.child,t!==null)){a.child=null;do a=t.sibling,t.sibling=null,t=a;while(t!==null)}}function lo(t){var a=t.deletions;if((t.flags&16)!==0){if(a!==null)for(var i=0;i<a.length;i++){var o=a[i];Mt=o,lb(o,t)}rb(t)}if(t.subtreeFlags&10256)for(t=t.child;t!==null;)ob(t),t=t.sibling}function ob(t){switch(t.tag){case 0:case 11:case 15:lo(t),t.flags&2048&&hs(9,t,t.return);break;case 3:lo(t);break;case 12:lo(t);break;case 22:var a=t.stateNode;t.memoizedState!==null&&a._visibility&2&&(t.return===null||t.return.tag!==13)?(a._visibility&=-3,mc(t)):lo(t);break;default:lo(t)}}function mc(t){var a=t.deletions;if((t.flags&16)!==0){if(a!==null)for(var i=0;i<a.length;i++){var o=a[i];Mt=o,lb(o,t)}rb(t)}for(t=t.child;t!==null;){switch(a=t,a.tag){case 0:case 11:case 15:hs(8,a,a.return),mc(a);break;case 22:i=a.stateNode,i._visibility&2&&(i._visibility&=-3,mc(a));break;default:mc(a)}t=t.sibling}}function lb(t,a){for(;Mt!==null;){var i=Mt;switch(i.tag){case 0:case 11:case 15:hs(8,i,a);break;case 23:case 22:if(i.memoizedState!==null&&i.memoizedState.cachePool!==null){var o=i.memoizedState.cachePool.pool;o!=null&&o.refCount++}break;case 24:Vr(i.memoizedState.cache)}if(o=i.child,o!==null)o.return=i,Mt=o;else e:for(i=t;Mt!==null;){o=Mt;var d=o.sibling,h=o.return;if(Jy(o),o===i){Mt=null;break e}if(d!==null){d.return=h,Mt=d;break e}Mt=h}}}var Aw={getCacheForType:function(t){var a=$t(xt),i=a.data.get(t);return i===void 0&&(i=t(),a.data.set(t,i)),i},cacheSignal:function(){return $t(xt).controller.signal}},Tw=typeof WeakMap=="function"?WeakMap:Map,Fe=0,it=null,_e=null,De=0,Ze=0,vn=null,ps=!1,Zi=!1,bf=!1,Oa=0,ht=0,ms=0,ni=0,gf=0,wn=0,Xi=0,co=null,an=null,vf=!1,yc=0,cb=0,bc=1/0,gc=null,ys=null,kt=0,bs=null,Qi=null,_a=0,wf=0,xf=null,ub=null,uo=0,Sf=null;function xn(){return(Fe&2)!==0&&De!==0?De&-De:R.T!==null?Nf():kp()}function db(){if(wn===0)if((De&536870912)===0||qe){var t=kl;kl<<=1,(kl&3932160)===0&&(kl=262144),wn=t}else wn=536870912;return t=bn.current,t!==null&&(t.flags|=32),wn}function sn(t,a,i){(t===it&&(Ze===2||Ze===9)||t.cancelPendingCommit!==null)&&(Ji(t,0),gs(t,De,wn,!1)),Mr(t,i),((Fe&2)===0||t!==it)&&(t===it&&((Fe&2)===0&&(ni|=i),ht===4&&gs(t,De,wn,!1)),oa(t))}function fb(t,a,i){if((Fe&6)!==0)throw Error(r(327));var o=!i&&(a&127)===0&&(a&t.expiredLanes)===0||Rr(t,a),d=o?Nw(t,a):Af(t,a,!0),h=o;do{if(d===0){Zi&&!o&&gs(t,a,0,!1);break}else{if(i=t.current.alternate,h&&!kw(i)){d=Af(t,a,!1),h=!1;continue}if(d===2){if(h=a,t.errorRecoveryDisabledLanes&h)var v=0;else v=t.pendingLanes&-536870913,v=v!==0?v:v&536870912?536870912:0;if(v!==0){a=v;e:{var E=t;d=co;var N=E.current.memoizedState.isDehydrated;if(N&&(Ji(E,v).flags|=256),v=Af(E,v,!1),v!==2){if(bf&&!N){E.errorRecoveryDisabledLanes|=h,ni|=h,d=4;break e}h=an,an=d,h!==null&&(an===null?an=h:an.push.apply(an,h))}d=v}if(h=!1,d!==2)continue}}if(d===1){Ji(t,0),gs(t,a,0,!0);break}e:{switch(o=t,h=d,h){case 0:case 1:throw Error(r(345));case 4:if((a&4194048)!==a)break;case 6:gs(o,a,wn,!ps);break e;case 2:an=null;break;case 3:case 5:break;default:throw Error(r(329))}if((a&62914560)===a&&(d=yc+300-ke(),10<d)){if(gs(o,a,wn,!ps),Nl(o,0,!0)!==0)break e;_a=a,o.timeoutHandle=Gb(hb.bind(null,o,i,an,gc,vf,a,wn,ni,Xi,ps,h,"Throttled",-0,0),d);break e}hb(o,i,an,gc,vf,a,wn,ni,Xi,ps,h,null,-0,0)}}break}while(!0);oa(t)}function hb(t,a,i,o,d,h,v,E,N,q,Q,ne,G,F){if(t.timeoutHandle=-1,ne=a.subtreeFlags,ne&8192||(ne&16785408)===16785408){ne={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:va},ib(a,h,ne);var fe=(h&62914560)===h?yc-ke():(h&4194048)===h?cb-ke():0;if(fe=ux(ne,fe),fe!==null){_a=h,t.cancelPendingCommit=fe(xb.bind(null,t,a,h,i,o,d,v,E,N,Q,ne,null,G,F)),gs(t,h,v,!q);return}}xb(t,a,h,i,o,d,v,E,N)}function kw(t){for(var a=t;;){var i=a.tag;if((i===0||i===11||i===15)&&a.flags&16384&&(i=a.updateQueue,i!==null&&(i=i.stores,i!==null)))for(var o=0;o<i.length;o++){var d=i[o],h=d.getSnapshot;d=d.value;try{if(!mn(h(),d))return!1}catch{return!1}}if(i=a.child,a.subtreeFlags&16384&&i!==null)i.return=a,a=i;else{if(a===t)break;for(;a.sibling===null;){if(a.return===null||a.return===t)return!0;a=a.return}a.sibling.return=a.return,a=a.sibling}}return!0}function gs(t,a,i,o){a&=~gf,a&=~ni,t.suspendedLanes|=a,t.pingedLanes&=~a,o&&(t.warmLanes|=a),o=t.expirationTimes;for(var d=a;0<d;){var h=31-st(d),v=1<<h;o[h]=-1,d&=~v}i!==0&&Ep(t,i,a)}function vc(){return(Fe&6)===0?(fo(0),!1):!0}function Ef(){if(_e!==null){if(Ze===0)var t=_e.return;else t=_e,Ea=Fs=null,Ud(t),Ii=null,Fr=0,t=_e;for(;t!==null;)Py(t.alternate,t),t=t.return;_e=null}}function Ji(t,a){var i=t.timeoutHandle;i!==-1&&(t.timeoutHandle=-1,Kw(i)),i=t.cancelPendingCommit,i!==null&&(t.cancelPendingCommit=null,i()),_a=0,Ef(),it=t,_e=i=xa(t.current,null),De=a,Ze=0,vn=null,ps=!1,Zi=Rr(t,a),bf=!1,Xi=wn=gf=ni=ms=ht=0,an=co=null,vf=!1,(a&8)!==0&&(a|=a&32);var o=t.entangledLanes;if(o!==0)for(t=t.entanglements,o&=a;0<o;){var d=31-st(o),h=1<<d;a|=t[d],o&=~h}return Oa=a,Ll(),i}function pb(t,a){Re=null,R.H=to,a===Hi||a===Yl?(a=Rm(),Ze=3):a===kd?(a=Rm(),Ze=4):Ze=a===ef?8:a!==null&&typeof a=="object"&&typeof a.then=="function"?6:1,vn=a,_e===null&&(ht=1,lc(t,Rn(a,t.current)))}function mb(){var t=bn.current;return t===null?!0:(De&4194048)===De?_n===null:(De&62914560)===De||(De&536870912)!==0?t===_n:!1}function yb(){var t=R.H;return R.H=to,t===null?to:t}function bb(){var t=R.A;return R.A=Aw,t}function wc(){ht=4,ps||(De&4194048)!==De&&bn.current!==null||(Zi=!0),(ms&134217727)===0&&(ni&134217727)===0||it===null||gs(it,De,wn,!1)}function Af(t,a,i){var o=Fe;Fe|=2;var d=yb(),h=bb();(it!==t||De!==a)&&(gc=null,Ji(t,a)),a=!1;var v=ht;e:do try{if(Ze!==0&&_e!==null){var E=_e,N=vn;switch(Ze){case 8:Ef(),v=6;break e;case 3:case 2:case 9:case 6:bn.current===null&&(a=!0);var q=Ze;if(Ze=0,vn=null,Wi(t,E,N,q),i&&Zi){v=0;break e}break;default:q=Ze,Ze=0,vn=null,Wi(t,E,N,q)}}jw(),v=ht;break}catch(Q){pb(t,Q)}while(!0);return a&&t.shellSuspendCounter++,Ea=Fs=null,Fe=o,R.H=d,R.A=h,_e===null&&(it=null,De=0,Ll()),v}function jw(){for(;_e!==null;)gb(_e)}function Nw(t,a){var i=Fe;Fe|=2;var o=yb(),d=bb();it!==t||De!==a?(gc=null,bc=ke()+500,Ji(t,a)):Zi=Rr(t,a);e:do try{if(Ze!==0&&_e!==null){a=_e;var h=vn;t:switch(Ze){case 1:Ze=0,vn=null,Wi(t,a,h,1);break;case 2:case 9:if(Nm(h)){Ze=0,vn=null,vb(a);break}a=function(){Ze!==2&&Ze!==9||it!==t||(Ze=7),oa(t)},h.then(a,a);break e;case 3:Ze=7;break e;case 4:Ze=5;break e;case 7:Nm(h)?(Ze=0,vn=null,vb(a)):(Ze=0,vn=null,Wi(t,a,h,7));break;case 5:var v=null;switch(_e.tag){case 26:v=_e.memoizedState;case 5:case 27:var E=_e;if(v?s1(v):E.stateNode.complete){Ze=0,vn=null;var N=E.sibling;if(N!==null)_e=N;else{var q=E.return;q!==null?(_e=q,xc(q)):_e=null}break t}}Ze=0,vn=null,Wi(t,a,h,5);break;case 6:Ze=0,vn=null,Wi(t,a,h,6);break;case 8:Ef(),ht=6;break e;default:throw Error(r(462))}}Bw();break}catch(Q){pb(t,Q)}while(!0);return Ea=Fs=null,R.H=o,R.A=d,Fe=i,_e!==null?0:(it=null,De=0,Ll(),ht)}function Bw(){for(;_e!==null&&!Tt();)gb(_e)}function gb(t){var a=Iy(t.alternate,t,Oa);t.memoizedProps=t.pendingProps,a===null?xc(t):_e=a}function vb(t){var a=t,i=a.alternate;switch(a.tag){case 15:case 0:a=$y(i,a,a.pendingProps,a.type,void 0,De);break;case 11:a=$y(i,a,a.pendingProps,a.type.render,a.ref,De);break;case 5:Ud(a);default:Py(i,a),a=_e=bm(a,Oa),a=Iy(i,a,Oa)}t.memoizedProps=t.pendingProps,a===null?xc(t):_e=a}function Wi(t,a,i,o){Ea=Fs=null,Ud(a),Ii=null,Fr=0;var d=a.return;try{if(bw(t,d,a,i,De)){ht=1,lc(t,Rn(i,t.current)),_e=null;return}}catch(h){if(d!==null)throw _e=d,h;ht=1,lc(t,Rn(i,t.current)),_e=null;return}a.flags&32768?(qe||o===1?t=!0:Zi||(De&536870912)!==0?t=!1:(ps=t=!0,(o===2||o===9||o===3||o===6)&&(o=bn.current,o!==null&&o.tag===13&&(o.flags|=16384))),wb(a,t)):xc(a)}function xc(t){var a=t;do{if((a.flags&32768)!==0){wb(a,ps);return}t=a.return;var i=ww(a.alternate,a,Oa);if(i!==null){_e=i;return}if(a=a.sibling,a!==null){_e=a;return}_e=a=t}while(a!==null);ht===0&&(ht=5)}function wb(t,a){do{var i=xw(t.alternate,t);if(i!==null){i.flags&=32767,_e=i;return}if(i=t.return,i!==null&&(i.flags|=32768,i.subtreeFlags=0,i.deletions=null),!a&&(t=t.sibling,t!==null)){_e=t;return}_e=t=i}while(t!==null);ht=6,_e=null}function xb(t,a,i,o,d,h,v,E,N){t.cancelPendingCommit=null;do Sc();while(kt!==0);if((Fe&6)!==0)throw Error(r(327));if(a!==null){if(a===t.current)throw Error(r(177));if(h=a.lanes|a.childLanes,h|=dd,l2(t,i,h,v,E,N),t===it&&(_e=it=null,De=0),Qi=a,bs=t,_a=i,wf=h,xf=d,ub=o,(a.subtreeFlags&10256)!==0||(a.flags&10256)!==0?(t.callbackNode=null,t.callbackPriority=0,Ow(at,function(){return kb(),null})):(t.callbackNode=null,t.callbackPriority=0),o=(a.flags&13878)!==0,(a.subtreeFlags&13878)!==0||o){o=R.T,R.T=null,d=V.p,V.p=2,v=Fe,Fe|=4;try{Sw(t,a,i)}finally{Fe=v,V.p=d,R.T=o}}kt=1,Sb(),Eb(),Ab()}}function Sb(){if(kt===1){kt=0;var t=bs,a=Qi,i=(a.flags&13878)!==0;if((a.subtreeFlags&13878)!==0||i){i=R.T,R.T=null;var o=V.p;V.p=2;var d=Fe;Fe|=4;try{nb(a,t);var h=$f,v=lm(t.containerInfo),E=h.focusedElem,N=h.selectionRange;if(v!==E&&E&&E.ownerDocument&&om(E.ownerDocument.documentElement,E)){if(N!==null&&rd(E)){var q=N.start,Q=N.end;if(Q===void 0&&(Q=q),"selectionStart"in E)E.selectionStart=q,E.selectionEnd=Math.min(Q,E.value.length);else{var ne=E.ownerDocument||document,G=ne&&ne.defaultView||window;if(G.getSelection){var F=G.getSelection(),fe=E.textContent.length,Se=Math.min(N.start,fe),tt=N.end===void 0?Se:Math.min(N.end,fe);!F.extend&&Se>tt&&(v=tt,tt=Se,Se=v);var $=rm(E,Se),_=rm(E,tt);if($&&_&&(F.rangeCount!==1||F.anchorNode!==$.node||F.anchorOffset!==$.offset||F.focusNode!==_.node||F.focusOffset!==_.offset)){var U=ne.createRange();U.setStart($.node,$.offset),F.removeAllRanges(),Se>tt?(F.addRange(U),F.extend(_.node,_.offset)):(U.setEnd(_.node,_.offset),F.addRange(U))}}}}for(ne=[],F=E;F=F.parentNode;)F.nodeType===1&&ne.push({element:F,left:F.scrollLeft,top:F.scrollTop});for(typeof E.focus=="function"&&E.focus(),E=0;E<ne.length;E++){var te=ne[E];te.element.scrollLeft=te.left,te.element.scrollTop=te.top}}_c=!!zf,$f=zf=null}finally{Fe=d,V.p=o,R.T=i}}t.current=a,kt=2}}function Eb(){if(kt===2){kt=0;var t=bs,a=Qi,i=(a.flags&8772)!==0;if((a.subtreeFlags&8772)!==0||i){i=R.T,R.T=null;var o=V.p;V.p=2;var d=Fe;Fe|=4;try{Qy(t,a.alternate,a)}finally{Fe=d,V.p=o,R.T=i}}kt=3}}function Ab(){if(kt===4||kt===3){kt=0,ye();var t=bs,a=Qi,i=_a,o=ub;(a.subtreeFlags&10256)!==0||(a.flags&10256)!==0?kt=5:(kt=0,Qi=bs=null,Tb(t,t.pendingLanes));var d=t.pendingLanes;if(d===0&&(ys=null),Hu(i),a=a.stateNode,He&&typeof He.onCommitFiberRoot=="function")try{He.onCommitFiberRoot($e,a,void 0,(a.current.flags&128)===128)}catch{}if(o!==null){a=R.T,d=V.p,V.p=2,R.T=null;try{for(var h=t.onRecoverableError,v=0;v<o.length;v++){var E=o[v];h(E.value,{componentStack:E.stack})}}finally{R.T=a,V.p=d}}(_a&3)!==0&&Sc(),oa(t),d=t.pendingLanes,(i&261930)!==0&&(d&42)!==0?t===Sf?uo++:(uo=0,Sf=t):uo=0,fo(0)}}function Tb(t,a){(t.pooledCacheLanes&=a)===0&&(a=t.pooledCache,a!=null&&(t.pooledCache=null,Vr(a)))}function Sc(){return Sb(),Eb(),Ab(),kb()}function kb(){if(kt!==5)return!1;var t=bs,a=wf;wf=0;var i=Hu(_a),o=R.T,d=V.p;try{V.p=32>i?32:i,R.T=null,i=xf,xf=null;var h=bs,v=_a;if(kt=0,Qi=bs=null,_a=0,(Fe&6)!==0)throw Error(r(331));var E=Fe;if(Fe|=4,ob(h.current),sb(h,h.current,v,i),Fe=E,fo(0,!1),He&&typeof He.onPostCommitFiberRoot=="function")try{He.onPostCommitFiberRoot($e,h)}catch{}return!0}finally{V.p=d,R.T=o,Tb(t,a)}}function jb(t,a,i){a=Rn(i,a),a=Wd(t.stateNode,a,2),t=us(t,a,2),t!==null&&(Mr(t,2),oa(t))}function Xe(t,a,i){if(t.tag===3)jb(t,t,i);else for(;a!==null;){if(a.tag===3){jb(a,t,i);break}else if(a.tag===1){var o=a.stateNode;if(typeof a.type.getDerivedStateFromError=="function"||typeof o.componentDidCatch=="function"&&(ys===null||!ys.has(o))){t=Rn(i,t),i=Ny(2),o=us(a,i,2),o!==null&&(By(i,o,a,t),Mr(o,2),oa(o));break}}a=a.return}}function Tf(t,a,i){var o=t.pingCache;if(o===null){o=t.pingCache=new Tw;var d=new Set;o.set(a,d)}else d=o.get(a),d===void 0&&(d=new Set,o.set(a,d));d.has(i)||(bf=!0,d.add(i),t=Rw.bind(null,t,a,i),a.then(t,t))}function Rw(t,a,i){var o=t.pingCache;o!==null&&o.delete(a),t.pingedLanes|=t.suspendedLanes&i,t.warmLanes&=~i,it===t&&(De&i)===i&&(ht===4||ht===3&&(De&62914560)===De&&300>ke()-yc?(Fe&2)===0&&Ji(t,0):gf|=i,Xi===De&&(Xi=0)),oa(t)}function Nb(t,a){a===0&&(a=Sp()),t=Ps(t,a),t!==null&&(Mr(t,a),oa(t))}function Mw(t){var a=t.memoizedState,i=0;a!==null&&(i=a.retryLane),Nb(t,i)}function Cw(t,a){var i=0;switch(t.tag){case 31:case 13:var o=t.stateNode,d=t.memoizedState;d!==null&&(i=d.retryLane);break;case 19:o=t.stateNode;break;case 22:o=t.stateNode._retryCache;break;default:throw Error(r(314))}o!==null&&o.delete(a),Nb(t,i)}function Ow(t,a){return Bt(t,a)}var Ec=null,er=null,kf=!1,Ac=!1,jf=!1,vs=0;function oa(t){t!==er&&t.next===null&&(er===null?Ec=er=t:er=er.next=t),Ac=!0,kf||(kf=!0,zw())}function fo(t,a){if(!jf&&Ac){jf=!0;do for(var i=!1,o=Ec;o!==null;){if(t!==0){var d=o.pendingLanes;if(d===0)var h=0;else{var v=o.suspendedLanes,E=o.pingedLanes;h=(1<<31-st(42|t)+1)-1,h&=d&~(v&~E),h=h&201326741?h&201326741|1:h?h|2:0}h!==0&&(i=!0,Cb(o,h))}else h=De,h=Nl(o,o===it?h:0,o.cancelPendingCommit!==null||o.timeoutHandle!==-1),(h&3)===0||Rr(o,h)||(i=!0,Cb(o,h));o=o.next}while(i);jf=!1}}function _w(){Bb()}function Bb(){Ac=kf=!1;var t=0;vs!==0&&Vw()&&(t=vs);for(var a=ke(),i=null,o=Ec;o!==null;){var d=o.next,h=Rb(o,a);h===0?(o.next=null,i===null?Ec=d:i.next=d,d===null&&(er=i)):(i=o,(t!==0||(h&3)!==0)&&(Ac=!0)),o=d}kt!==0&&kt!==5||fo(t),vs!==0&&(vs=0)}function Rb(t,a){for(var i=t.suspendedLanes,o=t.pingedLanes,d=t.expirationTimes,h=t.pendingLanes&-62914561;0<h;){var v=31-st(h),E=1<<v,N=d[v];N===-1?((E&i)===0||(E&o)!==0)&&(d[v]=o2(E,a)):N<=a&&(t.expiredLanes|=E),h&=~E}if(a=it,i=De,i=Nl(t,t===a?i:0,t.cancelPendingCommit!==null||t.timeoutHandle!==-1),o=t.callbackNode,i===0||t===a&&(Ze===2||Ze===9)||t.cancelPendingCommit!==null)return o!==null&&o!==null&&Pt(o),t.callbackNode=null,t.callbackPriority=0;if((i&3)===0||Rr(t,i)){if(a=i&-i,a===t.callbackPriority)return a;switch(o!==null&&Pt(o),Hu(i)){case 2:case 8:i=Ke;break;case 32:i=at;break;case 268435456:i=L;break;default:i=at}return o=Mb.bind(null,t),i=Bt(i,o),t.callbackPriority=a,t.callbackNode=i,a}return o!==null&&o!==null&&Pt(o),t.callbackPriority=2,t.callbackNode=null,2}function Mb(t,a){if(kt!==0&&kt!==5)return t.callbackNode=null,t.callbackPriority=0,null;var i=t.callbackNode;if(Sc()&&t.callbackNode!==i)return null;var o=De;return o=Nl(t,t===it?o:0,t.cancelPendingCommit!==null||t.timeoutHandle!==-1),o===0?null:(fb(t,o,a),Rb(t,ke()),t.callbackNode!=null&&t.callbackNode===i?Mb.bind(null,t):null)}function Cb(t,a){if(Sc())return null;fb(t,a,!0)}function zw(){Fw(function(){(Fe&6)!==0?Bt(yt,_w):Bb()})}function Nf(){if(vs===0){var t=qi;t===0&&(t=Tl,Tl<<=1,(Tl&261888)===0&&(Tl=256)),vs=t}return vs}function Ob(t){return t==null||typeof t=="symbol"||typeof t=="boolean"?null:typeof t=="function"?t:Cl(""+t)}function _b(t,a){var i=a.ownerDocument.createElement("input");return i.name=a.name,i.value=a.value,t.id&&i.setAttribute("form",t.id),a.parentNode.insertBefore(i,a),t=new FormData(t),i.parentNode.removeChild(i),t}function $w(t,a,i,o,d){if(a==="submit"&&i&&i.stateNode===d){var h=Ob((d[Jt]||null).action),v=o.submitter;v&&(a=(a=v[Jt]||null)?Ob(a.formAction):v.getAttribute("formAction"),a!==null&&(h=a,v=null));var E=new $l("action","action",null,o,d);t.push({event:E,listeners:[{instance:null,listener:function(){if(o.defaultPrevented){if(vs!==0){var N=v?_b(d,v):new FormData(d);Fd(i,{pending:!0,data:N,method:d.method,action:h},null,N)}}else typeof h=="function"&&(E.preventDefault(),N=v?_b(d,v):new FormData(d),Fd(i,{pending:!0,data:N,method:d.method,action:h},h,N))},currentTarget:d}]})}}for(var Bf=0;Bf<ud.length;Bf++){var Rf=ud[Bf],Dw=Rf.toLowerCase(),Uw=Rf[0].toUpperCase()+Rf.slice(1);Pn(Dw,"on"+Uw)}Pn(dm,"onAnimationEnd"),Pn(fm,"onAnimationIteration"),Pn(hm,"onAnimationStart"),Pn("dblclick","onDoubleClick"),Pn("focusin","onFocus"),Pn("focusout","onBlur"),Pn(ew,"onTransitionRun"),Pn(tw,"onTransitionStart"),Pn(nw,"onTransitionCancel"),Pn(pm,"onTransitionEnd"),Ti("onMouseEnter",["mouseout","mouseover"]),Ti("onMouseLeave",["mouseout","mouseover"]),Ti("onPointerEnter",["pointerout","pointerover"]),Ti("onPointerLeave",["pointerout","pointerover"]),Ls("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Ls("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Ls("onBeforeInput",["compositionend","keypress","textInput","paste"]),Ls("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Ls("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Ls("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var ho="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),qw=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(ho));function zb(t,a){a=(a&4)!==0;for(var i=0;i<t.length;i++){var o=t[i],d=o.event;o=o.listeners;e:{var h=void 0;if(a)for(var v=o.length-1;0<=v;v--){var E=o[v],N=E.instance,q=E.currentTarget;if(E=E.listener,N!==h&&d.isPropagationStopped())break e;h=E,d.currentTarget=q;try{h(d)}catch(Q){ql(Q)}d.currentTarget=null,h=N}else for(v=0;v<o.length;v++){if(E=o[v],N=E.instance,q=E.currentTarget,E=E.listener,N!==h&&d.isPropagationStopped())break e;h=E,d.currentTarget=q;try{h(d)}catch(Q){ql(Q)}d.currentTarget=null,h=N}}}}function ze(t,a){var i=a[Iu];i===void 0&&(i=a[Iu]=new Set);var o=t+"__bubble";i.has(o)||($b(a,t,2,!1),i.add(o))}function Mf(t,a,i){var o=0;a&&(o|=4),$b(i,t,o,a)}var Tc="_reactListening"+Math.random().toString(36).slice(2);function Cf(t){if(!t[Tc]){t[Tc]=!0,Bp.forEach(function(i){i!=="selectionchange"&&(qw.has(i)||Mf(i,!1,t),Mf(i,!0,t))});var a=t.nodeType===9?t:t.ownerDocument;a===null||a[Tc]||(a[Tc]=!0,Mf("selectionchange",!1,a))}}function $b(t,a,i,o){switch(d1(a)){case 2:var d=hx;break;case 8:d=px;break;default:d=Ff}i=d.bind(null,a,i,t),d=void 0,!Qu||a!=="touchstart"&&a!=="touchmove"&&a!=="wheel"||(d=!0),o?d!==void 0?t.addEventListener(a,i,{capture:!0,passive:d}):t.addEventListener(a,i,!0):d!==void 0?t.addEventListener(a,i,{passive:d}):t.addEventListener(a,i,!1)}function Of(t,a,i,o,d){var h=o;if((a&1)===0&&(a&2)===0&&o!==null)e:for(;;){if(o===null)return;var v=o.tag;if(v===3||v===4){var E=o.stateNode.containerInfo;if(E===d)break;if(v===4)for(v=o.return;v!==null;){var N=v.tag;if((N===3||N===4)&&v.stateNode.containerInfo===d)return;v=v.return}for(;E!==null;){if(v=Si(E),v===null)return;if(N=v.tag,N===5||N===6||N===26||N===27){o=h=v;continue e}E=E.parentNode}}o=o.return}Hp(function(){var q=h,Q=Zu(i),ne=[];e:{var G=mm.get(t);if(G!==void 0){var F=$l,fe=t;switch(t){case"keypress":if(_l(i)===0)break e;case"keydown":case"keyup":F=C2;break;case"focusin":fe="focus",F=td;break;case"focusout":fe="blur",F=td;break;case"beforeblur":case"afterblur":F=td;break;case"click":if(i.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":F=Pp;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":F=w2;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":F=z2;break;case dm:case fm:case hm:F=E2;break;case pm:F=D2;break;case"scroll":case"scrollend":F=g2;break;case"wheel":F=q2;break;case"copy":case"cut":case"paste":F=T2;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":F=Kp;break;case"toggle":case"beforetoggle":F=H2}var Se=(a&4)!==0,tt=!Se&&(t==="scroll"||t==="scrollend"),$=Se?G!==null?G+"Capture":null:G;Se=[];for(var _=q,U;_!==null;){var te=_;if(U=te.stateNode,te=te.tag,te!==5&&te!==26&&te!==27||U===null||$===null||(te=_r(_,$),te!=null&&Se.push(po(_,te,U))),tt)break;_=_.return}0<Se.length&&(G=new F(G,fe,null,i,Q),ne.push({event:G,listeners:Se}))}}if((a&7)===0){e:{if(G=t==="mouseover"||t==="pointerover",F=t==="mouseout"||t==="pointerout",G&&i!==Yu&&(fe=i.relatedTarget||i.fromElement)&&(Si(fe)||fe[xi]))break e;if((F||G)&&(G=Q.window===Q?Q:(G=Q.ownerDocument)?G.defaultView||G.parentWindow:window,F?(fe=i.relatedTarget||i.toElement,F=q,fe=fe?Si(fe):null,fe!==null&&(tt=u(fe),Se=fe.tag,fe!==tt||Se!==5&&Se!==27&&Se!==6)&&(fe=null)):(F=null,fe=q),F!==fe)){if(Se=Pp,te="onMouseLeave",$="onMouseEnter",_="mouse",(t==="pointerout"||t==="pointerover")&&(Se=Kp,te="onPointerLeave",$="onPointerEnter",_="pointer"),tt=F==null?G:Or(F),U=fe==null?G:Or(fe),G=new Se(te,_+"leave",F,i,Q),G.target=tt,G.relatedTarget=U,te=null,Si(Q)===q&&(Se=new Se($,_+"enter",fe,i,Q),Se.target=U,Se.relatedTarget=tt,te=Se),tt=te,F&&fe)t:{for(Se=Lw,$=F,_=fe,U=0,te=$;te;te=Se(te))U++;te=0;for(var ve=_;ve;ve=Se(ve))te++;for(;0<U-te;)$=Se($),U--;for(;0<te-U;)_=Se(_),te--;for(;U--;){if($===_||_!==null&&$===_.alternate){Se=$;break t}$=Se($),_=Se(_)}Se=null}else Se=null;F!==null&&Db(ne,G,F,Se,!1),fe!==null&&tt!==null&&Db(ne,tt,fe,Se,!0)}}e:{if(G=q?Or(q):window,F=G.nodeName&&G.nodeName.toLowerCase(),F==="select"||F==="input"&&G.type==="file")var Pe=em;else if(Jp(G))if(tm)Pe=Q2;else{Pe=Z2;var be=Y2}else F=G.nodeName,!F||F.toLowerCase()!=="input"||G.type!=="checkbox"&&G.type!=="radio"?q&&Fu(q.elementType)&&(Pe=em):Pe=X2;if(Pe&&(Pe=Pe(t,q))){Wp(ne,Pe,i,Q);break e}be&&be(t,G,q),t==="focusout"&&q&&G.type==="number"&&q.memoizedProps.value!=null&&Ku(G,"number",G.value)}switch(be=q?Or(q):window,t){case"focusin":(Jp(be)||be.contentEditable==="true")&&(Mi=be,od=q,Ir=null);break;case"focusout":Ir=od=Mi=null;break;case"mousedown":ld=!0;break;case"contextmenu":case"mouseup":case"dragend":ld=!1,cm(ne,i,Q);break;case"selectionchange":if(W2)break;case"keydown":case"keyup":cm(ne,i,Q)}var Me;if(ad)e:{switch(t){case"compositionstart":var Ue="onCompositionStart";break e;case"compositionend":Ue="onCompositionEnd";break e;case"compositionupdate":Ue="onCompositionUpdate";break e}Ue=void 0}else Ri?Xp(t,i)&&(Ue="onCompositionEnd"):t==="keydown"&&i.keyCode===229&&(Ue="onCompositionStart");Ue&&(Fp&&i.locale!=="ko"&&(Ri||Ue!=="onCompositionStart"?Ue==="onCompositionEnd"&&Ri&&(Me=Ip()):(as=Q,Ju="value"in as?as.value:as.textContent,Ri=!0)),be=kc(q,Ue),0<be.length&&(Ue=new Vp(Ue,t,null,i,Q),ne.push({event:Ue,listeners:be}),Me?Ue.data=Me:(Me=Qp(i),Me!==null&&(Ue.data=Me)))),(Me=G2?P2(t,i):V2(t,i))&&(Ue=kc(q,"onBeforeInput"),0<Ue.length&&(be=new Vp("onBeforeInput","beforeinput",null,i,Q),ne.push({event:be,listeners:Ue}),be.data=Me)),$w(ne,t,q,i,Q)}zb(ne,a)})}function po(t,a,i){return{instance:t,listener:a,currentTarget:i}}function kc(t,a){for(var i=a+"Capture",o=[];t!==null;){var d=t,h=d.stateNode;if(d=d.tag,d!==5&&d!==26&&d!==27||h===null||(d=_r(t,i),d!=null&&o.unshift(po(t,d,h)),d=_r(t,a),d!=null&&o.push(po(t,d,h))),t.tag===3)return o;t=t.return}return[]}function Lw(t){if(t===null)return null;do t=t.return;while(t&&t.tag!==5&&t.tag!==27);return t||null}function Db(t,a,i,o,d){for(var h=a._reactName,v=[];i!==null&&i!==o;){var E=i,N=E.alternate,q=E.stateNode;if(E=E.tag,N!==null&&N===o)break;E!==5&&E!==26&&E!==27||q===null||(N=q,d?(q=_r(i,h),q!=null&&v.unshift(po(i,q,N))):d||(q=_r(i,h),q!=null&&v.push(po(i,q,N)))),i=i.return}v.length!==0&&t.push({event:a,listeners:v})}var Hw=/\r\n?/g,Iw=/\u0000|\uFFFD/g;function Ub(t){return(typeof t=="string"?t:""+t).replace(Hw,` +`).replace(Iw,"")}function qb(t,a){return a=Ub(a),Ub(t)===a}function et(t,a,i,o,d,h){switch(i){case"children":typeof o=="string"?a==="body"||a==="textarea"&&o===""||ji(t,o):(typeof o=="number"||typeof o=="bigint")&&a!=="body"&&ji(t,""+o);break;case"className":Rl(t,"class",o);break;case"tabIndex":Rl(t,"tabindex",o);break;case"dir":case"role":case"viewBox":case"width":case"height":Rl(t,i,o);break;case"style":qp(t,o,h);break;case"data":if(a!=="object"){Rl(t,"data",o);break}case"src":case"href":if(o===""&&(a!=="a"||i!=="href")){t.removeAttribute(i);break}if(o==null||typeof o=="function"||typeof o=="symbol"||typeof o=="boolean"){t.removeAttribute(i);break}o=Cl(""+o),t.setAttribute(i,o);break;case"action":case"formAction":if(typeof o=="function"){t.setAttribute(i,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof h=="function"&&(i==="formAction"?(a!=="input"&&et(t,a,"name",d.name,d,null),et(t,a,"formEncType",d.formEncType,d,null),et(t,a,"formMethod",d.formMethod,d,null),et(t,a,"formTarget",d.formTarget,d,null)):(et(t,a,"encType",d.encType,d,null),et(t,a,"method",d.method,d,null),et(t,a,"target",d.target,d,null)));if(o==null||typeof o=="symbol"||typeof o=="boolean"){t.removeAttribute(i);break}o=Cl(""+o),t.setAttribute(i,o);break;case"onClick":o!=null&&(t.onclick=va);break;case"onScroll":o!=null&&ze("scroll",t);break;case"onScrollEnd":o!=null&&ze("scrollend",t);break;case"dangerouslySetInnerHTML":if(o!=null){if(typeof o!="object"||!("__html"in o))throw Error(r(61));if(i=o.__html,i!=null){if(d.children!=null)throw Error(r(60));t.innerHTML=i}}break;case"multiple":t.multiple=o&&typeof o!="function"&&typeof o!="symbol";break;case"muted":t.muted=o&&typeof o!="function"&&typeof o!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(o==null||typeof o=="function"||typeof o=="boolean"||typeof o=="symbol"){t.removeAttribute("xlink:href");break}i=Cl(""+o),t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",i);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":o!=null&&typeof o!="function"&&typeof o!="symbol"?t.setAttribute(i,""+o):t.removeAttribute(i);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":o&&typeof o!="function"&&typeof o!="symbol"?t.setAttribute(i,""):t.removeAttribute(i);break;case"capture":case"download":o===!0?t.setAttribute(i,""):o!==!1&&o!=null&&typeof o!="function"&&typeof o!="symbol"?t.setAttribute(i,o):t.removeAttribute(i);break;case"cols":case"rows":case"size":case"span":o!=null&&typeof o!="function"&&typeof o!="symbol"&&!isNaN(o)&&1<=o?t.setAttribute(i,o):t.removeAttribute(i);break;case"rowSpan":case"start":o==null||typeof o=="function"||typeof o=="symbol"||isNaN(o)?t.removeAttribute(i):t.setAttribute(i,o);break;case"popover":ze("beforetoggle",t),ze("toggle",t),Bl(t,"popover",o);break;case"xlinkActuate":ga(t,"http://www.w3.org/1999/xlink","xlink:actuate",o);break;case"xlinkArcrole":ga(t,"http://www.w3.org/1999/xlink","xlink:arcrole",o);break;case"xlinkRole":ga(t,"http://www.w3.org/1999/xlink","xlink:role",o);break;case"xlinkShow":ga(t,"http://www.w3.org/1999/xlink","xlink:show",o);break;case"xlinkTitle":ga(t,"http://www.w3.org/1999/xlink","xlink:title",o);break;case"xlinkType":ga(t,"http://www.w3.org/1999/xlink","xlink:type",o);break;case"xmlBase":ga(t,"http://www.w3.org/XML/1998/namespace","xml:base",o);break;case"xmlLang":ga(t,"http://www.w3.org/XML/1998/namespace","xml:lang",o);break;case"xmlSpace":ga(t,"http://www.w3.org/XML/1998/namespace","xml:space",o);break;case"is":Bl(t,"is",o);break;case"innerText":case"textContent":break;default:(!(2<i.length)||i[0]!=="o"&&i[0]!=="O"||i[1]!=="n"&&i[1]!=="N")&&(i=y2.get(i)||i,Bl(t,i,o))}}function _f(t,a,i,o,d,h){switch(i){case"style":qp(t,o,h);break;case"dangerouslySetInnerHTML":if(o!=null){if(typeof o!="object"||!("__html"in o))throw Error(r(61));if(i=o.__html,i!=null){if(d.children!=null)throw Error(r(60));t.innerHTML=i}}break;case"children":typeof o=="string"?ji(t,o):(typeof o=="number"||typeof o=="bigint")&&ji(t,""+o);break;case"onScroll":o!=null&&ze("scroll",t);break;case"onScrollEnd":o!=null&&ze("scrollend",t);break;case"onClick":o!=null&&(t.onclick=va);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Rp.hasOwnProperty(i))e:{if(i[0]==="o"&&i[1]==="n"&&(d=i.endsWith("Capture"),a=i.slice(2,d?i.length-7:void 0),h=t[Jt]||null,h=h!=null?h[i]:null,typeof h=="function"&&t.removeEventListener(a,h,d),typeof o=="function")){typeof h!="function"&&h!==null&&(i in t?t[i]=null:t.hasAttribute(i)&&t.removeAttribute(i)),t.addEventListener(a,o,d);break e}i in t?t[i]=o:o===!0?t.setAttribute(i,""):Bl(t,i,o)}}}function Ut(t,a,i){switch(a){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":ze("error",t),ze("load",t);var o=!1,d=!1,h;for(h in i)if(i.hasOwnProperty(h)){var v=i[h];if(v!=null)switch(h){case"src":o=!0;break;case"srcSet":d=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(r(137,a));default:et(t,a,h,v,i,null)}}d&&et(t,a,"srcSet",i.srcSet,i,null),o&&et(t,a,"src",i.src,i,null);return;case"input":ze("invalid",t);var E=h=v=d=null,N=null,q=null;for(o in i)if(i.hasOwnProperty(o)){var Q=i[o];if(Q!=null)switch(o){case"name":d=Q;break;case"type":v=Q;break;case"checked":N=Q;break;case"defaultChecked":q=Q;break;case"value":h=Q;break;case"defaultValue":E=Q;break;case"children":case"dangerouslySetInnerHTML":if(Q!=null)throw Error(r(137,a));break;default:et(t,a,o,Q,i,null)}}zp(t,h,E,N,q,v,d,!1);return;case"select":ze("invalid",t),o=v=h=null;for(d in i)if(i.hasOwnProperty(d)&&(E=i[d],E!=null))switch(d){case"value":h=E;break;case"defaultValue":v=E;break;case"multiple":o=E;default:et(t,a,d,E,i,null)}a=h,i=v,t.multiple=!!o,a!=null?ki(t,!!o,a,!1):i!=null&&ki(t,!!o,i,!0);return;case"textarea":ze("invalid",t),h=d=o=null;for(v in i)if(i.hasOwnProperty(v)&&(E=i[v],E!=null))switch(v){case"value":o=E;break;case"defaultValue":d=E;break;case"children":h=E;break;case"dangerouslySetInnerHTML":if(E!=null)throw Error(r(91));break;default:et(t,a,v,E,i,null)}Dp(t,o,d,h);return;case"option":for(N in i)if(i.hasOwnProperty(N)&&(o=i[N],o!=null))switch(N){case"selected":t.selected=o&&typeof o!="function"&&typeof o!="symbol";break;default:et(t,a,N,o,i,null)}return;case"dialog":ze("beforetoggle",t),ze("toggle",t),ze("cancel",t),ze("close",t);break;case"iframe":case"object":ze("load",t);break;case"video":case"audio":for(o=0;o<ho.length;o++)ze(ho[o],t);break;case"image":ze("error",t),ze("load",t);break;case"details":ze("toggle",t);break;case"embed":case"source":case"link":ze("error",t),ze("load",t);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(q in i)if(i.hasOwnProperty(q)&&(o=i[q],o!=null))switch(q){case"children":case"dangerouslySetInnerHTML":throw Error(r(137,a));default:et(t,a,q,o,i,null)}return;default:if(Fu(a)){for(Q in i)i.hasOwnProperty(Q)&&(o=i[Q],o!==void 0&&_f(t,a,Q,o,i,void 0));return}}for(E in i)i.hasOwnProperty(E)&&(o=i[E],o!=null&&et(t,a,E,o,i,null))}function Gw(t,a,i,o){switch(a){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var d=null,h=null,v=null,E=null,N=null,q=null,Q=null;for(F in i){var ne=i[F];if(i.hasOwnProperty(F)&&ne!=null)switch(F){case"checked":break;case"value":break;case"defaultValue":N=ne;default:o.hasOwnProperty(F)||et(t,a,F,null,o,ne)}}for(var G in o){var F=o[G];if(ne=i[G],o.hasOwnProperty(G)&&(F!=null||ne!=null))switch(G){case"type":h=F;break;case"name":d=F;break;case"checked":q=F;break;case"defaultChecked":Q=F;break;case"value":v=F;break;case"defaultValue":E=F;break;case"children":case"dangerouslySetInnerHTML":if(F!=null)throw Error(r(137,a));break;default:F!==ne&&et(t,a,G,F,o,ne)}}Vu(t,v,E,N,q,Q,h,d);return;case"select":F=v=E=G=null;for(h in i)if(N=i[h],i.hasOwnProperty(h)&&N!=null)switch(h){case"value":break;case"multiple":F=N;default:o.hasOwnProperty(h)||et(t,a,h,null,o,N)}for(d in o)if(h=o[d],N=i[d],o.hasOwnProperty(d)&&(h!=null||N!=null))switch(d){case"value":G=h;break;case"defaultValue":E=h;break;case"multiple":v=h;default:h!==N&&et(t,a,d,h,o,N)}a=E,i=v,o=F,G!=null?ki(t,!!i,G,!1):!!o!=!!i&&(a!=null?ki(t,!!i,a,!0):ki(t,!!i,i?[]:"",!1));return;case"textarea":F=G=null;for(E in i)if(d=i[E],i.hasOwnProperty(E)&&d!=null&&!o.hasOwnProperty(E))switch(E){case"value":break;case"children":break;default:et(t,a,E,null,o,d)}for(v in o)if(d=o[v],h=i[v],o.hasOwnProperty(v)&&(d!=null||h!=null))switch(v){case"value":G=d;break;case"defaultValue":F=d;break;case"children":break;case"dangerouslySetInnerHTML":if(d!=null)throw Error(r(91));break;default:d!==h&&et(t,a,v,d,o,h)}$p(t,G,F);return;case"option":for(var fe in i)if(G=i[fe],i.hasOwnProperty(fe)&&G!=null&&!o.hasOwnProperty(fe))switch(fe){case"selected":t.selected=!1;break;default:et(t,a,fe,null,o,G)}for(N in o)if(G=o[N],F=i[N],o.hasOwnProperty(N)&&G!==F&&(G!=null||F!=null))switch(N){case"selected":t.selected=G&&typeof G!="function"&&typeof G!="symbol";break;default:et(t,a,N,G,o,F)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var Se in i)G=i[Se],i.hasOwnProperty(Se)&&G!=null&&!o.hasOwnProperty(Se)&&et(t,a,Se,null,o,G);for(q in o)if(G=o[q],F=i[q],o.hasOwnProperty(q)&&G!==F&&(G!=null||F!=null))switch(q){case"children":case"dangerouslySetInnerHTML":if(G!=null)throw Error(r(137,a));break;default:et(t,a,q,G,o,F)}return;default:if(Fu(a)){for(var tt in i)G=i[tt],i.hasOwnProperty(tt)&&G!==void 0&&!o.hasOwnProperty(tt)&&_f(t,a,tt,void 0,o,G);for(Q in o)G=o[Q],F=i[Q],!o.hasOwnProperty(Q)||G===F||G===void 0&&F===void 0||_f(t,a,Q,G,o,F);return}}for(var $ in i)G=i[$],i.hasOwnProperty($)&&G!=null&&!o.hasOwnProperty($)&&et(t,a,$,null,o,G);for(ne in o)G=o[ne],F=i[ne],!o.hasOwnProperty(ne)||G===F||G==null&&F==null||et(t,a,ne,G,o,F)}function Lb(t){switch(t){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function Pw(){if(typeof performance.getEntriesByType=="function"){for(var t=0,a=0,i=performance.getEntriesByType("resource"),o=0;o<i.length;o++){var d=i[o],h=d.transferSize,v=d.initiatorType,E=d.duration;if(h&&E&&Lb(v)){for(v=0,E=d.responseEnd,o+=1;o<i.length;o++){var N=i[o],q=N.startTime;if(q>E)break;var Q=N.transferSize,ne=N.initiatorType;Q&&Lb(ne)&&(N=N.responseEnd,v+=Q*(N<E?1:(E-q)/(N-q)))}if(--o,a+=8*(h+v)/(d.duration/1e3),t++,10<t)break}}if(0<t)return a/t/1e6}return navigator.connection&&(t=navigator.connection.downlink,typeof t=="number")?t:5}var zf=null,$f=null;function jc(t){return t.nodeType===9?t:t.ownerDocument}function Hb(t){switch(t){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function Ib(t,a){if(t===0)switch(a){case"svg":return 1;case"math":return 2;default:return 0}return t===1&&a==="foreignObject"?0:t}function Df(t,a){return t==="textarea"||t==="noscript"||typeof a.children=="string"||typeof a.children=="number"||typeof a.children=="bigint"||typeof a.dangerouslySetInnerHTML=="object"&&a.dangerouslySetInnerHTML!==null&&a.dangerouslySetInnerHTML.__html!=null}var Uf=null;function Vw(){var t=window.event;return t&&t.type==="popstate"?t===Uf?!1:(Uf=t,!0):(Uf=null,!1)}var Gb=typeof setTimeout=="function"?setTimeout:void 0,Kw=typeof clearTimeout=="function"?clearTimeout:void 0,Pb=typeof Promise=="function"?Promise:void 0,Fw=typeof queueMicrotask=="function"?queueMicrotask:typeof Pb<"u"?function(t){return Pb.resolve(null).then(t).catch(Yw)}:Gb;function Yw(t){setTimeout(function(){throw t})}function ws(t){return t==="head"}function Vb(t,a){var i=a,o=0;do{var d=i.nextSibling;if(t.removeChild(i),d&&d.nodeType===8)if(i=d.data,i==="/$"||i==="/&"){if(o===0){t.removeChild(d),sr(a);return}o--}else if(i==="$"||i==="$?"||i==="$~"||i==="$!"||i==="&")o++;else if(i==="html")mo(t.ownerDocument.documentElement);else if(i==="head"){i=t.ownerDocument.head,mo(i);for(var h=i.firstChild;h;){var v=h.nextSibling,E=h.nodeName;h[Cr]||E==="SCRIPT"||E==="STYLE"||E==="LINK"&&h.rel.toLowerCase()==="stylesheet"||i.removeChild(h),h=v}}else i==="body"&&mo(t.ownerDocument.body);i=d}while(i);sr(a)}function Kb(t,a){var i=t;t=0;do{var o=i.nextSibling;if(i.nodeType===1?a?(i._stashedDisplay=i.style.display,i.style.display="none"):(i.style.display=i._stashedDisplay||"",i.getAttribute("style")===""&&i.removeAttribute("style")):i.nodeType===3&&(a?(i._stashedText=i.nodeValue,i.nodeValue=""):i.nodeValue=i._stashedText||""),o&&o.nodeType===8)if(i=o.data,i==="/$"){if(t===0)break;t--}else i!=="$"&&i!=="$?"&&i!=="$~"&&i!=="$!"||t++;i=o}while(i)}function qf(t){var a=t.firstChild;for(a&&a.nodeType===10&&(a=a.nextSibling);a;){var i=a;switch(a=a.nextSibling,i.nodeName){case"HTML":case"HEAD":case"BODY":qf(i),Gu(i);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(i.rel.toLowerCase()==="stylesheet")continue}t.removeChild(i)}}function Zw(t,a,i,o){for(;t.nodeType===1;){var d=i;if(t.nodeName.toLowerCase()!==a.toLowerCase()){if(!o&&(t.nodeName!=="INPUT"||t.type!=="hidden"))break}else if(o){if(!t[Cr])switch(a){case"meta":if(!t.hasAttribute("itemprop"))break;return t;case"link":if(h=t.getAttribute("rel"),h==="stylesheet"&&t.hasAttribute("data-precedence"))break;if(h!==d.rel||t.getAttribute("href")!==(d.href==null||d.href===""?null:d.href)||t.getAttribute("crossorigin")!==(d.crossOrigin==null?null:d.crossOrigin)||t.getAttribute("title")!==(d.title==null?null:d.title))break;return t;case"style":if(t.hasAttribute("data-precedence"))break;return t;case"script":if(h=t.getAttribute("src"),(h!==(d.src==null?null:d.src)||t.getAttribute("type")!==(d.type==null?null:d.type)||t.getAttribute("crossorigin")!==(d.crossOrigin==null?null:d.crossOrigin))&&h&&t.hasAttribute("async")&&!t.hasAttribute("itemprop"))break;return t;default:return t}}else if(a==="input"&&t.type==="hidden"){var h=d.name==null?null:""+d.name;if(d.type==="hidden"&&t.getAttribute("name")===h)return t}else return t;if(t=zn(t.nextSibling),t===null)break}return null}function Xw(t,a,i){if(a==="")return null;for(;t.nodeType!==3;)if((t.nodeType!==1||t.nodeName!=="INPUT"||t.type!=="hidden")&&!i||(t=zn(t.nextSibling),t===null))return null;return t}function Fb(t,a){for(;t.nodeType!==8;)if((t.nodeType!==1||t.nodeName!=="INPUT"||t.type!=="hidden")&&!a||(t=zn(t.nextSibling),t===null))return null;return t}function Lf(t){return t.data==="$?"||t.data==="$~"}function Hf(t){return t.data==="$!"||t.data==="$?"&&t.ownerDocument.readyState!=="loading"}function Qw(t,a){var i=t.ownerDocument;if(t.data==="$~")t._reactRetry=a;else if(t.data!=="$?"||i.readyState!=="loading")a();else{var o=function(){a(),i.removeEventListener("DOMContentLoaded",o)};i.addEventListener("DOMContentLoaded",o),t._reactRetry=o}}function zn(t){for(;t!=null;t=t.nextSibling){var a=t.nodeType;if(a===1||a===3)break;if(a===8){if(a=t.data,a==="$"||a==="$!"||a==="$?"||a==="$~"||a==="&"||a==="F!"||a==="F")break;if(a==="/$"||a==="/&")return null}}return t}var If=null;function Yb(t){t=t.nextSibling;for(var a=0;t;){if(t.nodeType===8){var i=t.data;if(i==="/$"||i==="/&"){if(a===0)return zn(t.nextSibling);a--}else i!=="$"&&i!=="$!"&&i!=="$?"&&i!=="$~"&&i!=="&"||a++}t=t.nextSibling}return null}function Zb(t){t=t.previousSibling;for(var a=0;t;){if(t.nodeType===8){var i=t.data;if(i==="$"||i==="$!"||i==="$?"||i==="$~"||i==="&"){if(a===0)return t;a--}else i!=="/$"&&i!=="/&"||a++}t=t.previousSibling}return null}function Xb(t,a,i){switch(a=jc(i),t){case"html":if(t=a.documentElement,!t)throw Error(r(452));return t;case"head":if(t=a.head,!t)throw Error(r(453));return t;case"body":if(t=a.body,!t)throw Error(r(454));return t;default:throw Error(r(451))}}function mo(t){for(var a=t.attributes;a.length;)t.removeAttributeNode(a[0]);Gu(t)}var $n=new Map,Qb=new Set;function Nc(t){return typeof t.getRootNode=="function"?t.getRootNode():t.nodeType===9?t:t.ownerDocument}var za=V.d;V.d={f:Jw,r:Ww,D:ex,C:tx,L:nx,m:ax,X:ix,S:sx,M:rx};function Jw(){var t=za.f(),a=vc();return t||a}function Ww(t){var a=Ei(t);a!==null&&a.tag===5&&a.type==="form"?py(a):za.r(t)}var tr=typeof document>"u"?null:document;function Jb(t,a,i){var o=tr;if(o&&typeof a=="string"&&a){var d=Nn(a);d='link[rel="'+t+'"][href="'+d+'"]',typeof i=="string"&&(d+='[crossorigin="'+i+'"]'),Qb.has(d)||(Qb.add(d),t={rel:t,crossOrigin:i,href:a},o.querySelector(d)===null&&(a=o.createElement("link"),Ut(a,"link",t),Rt(a),o.head.appendChild(a)))}}function ex(t){za.D(t),Jb("dns-prefetch",t,null)}function tx(t,a){za.C(t,a),Jb("preconnect",t,a)}function nx(t,a,i){za.L(t,a,i);var o=tr;if(o&&t&&a){var d='link[rel="preload"][as="'+Nn(a)+'"]';a==="image"&&i&&i.imageSrcSet?(d+='[imagesrcset="'+Nn(i.imageSrcSet)+'"]',typeof i.imageSizes=="string"&&(d+='[imagesizes="'+Nn(i.imageSizes)+'"]')):d+='[href="'+Nn(t)+'"]';var h=d;switch(a){case"style":h=nr(t);break;case"script":h=ar(t)}$n.has(h)||(t=w({rel:"preload",href:a==="image"&&i&&i.imageSrcSet?void 0:t,as:a},i),$n.set(h,t),o.querySelector(d)!==null||a==="style"&&o.querySelector(yo(h))||a==="script"&&o.querySelector(bo(h))||(a=o.createElement("link"),Ut(a,"link",t),Rt(a),o.head.appendChild(a)))}}function ax(t,a){za.m(t,a);var i=tr;if(i&&t){var o=a&&typeof a.as=="string"?a.as:"script",d='link[rel="modulepreload"][as="'+Nn(o)+'"][href="'+Nn(t)+'"]',h=d;switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":h=ar(t)}if(!$n.has(h)&&(t=w({rel:"modulepreload",href:t},a),$n.set(h,t),i.querySelector(d)===null)){switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(i.querySelector(bo(h)))return}o=i.createElement("link"),Ut(o,"link",t),Rt(o),i.head.appendChild(o)}}}function sx(t,a,i){za.S(t,a,i);var o=tr;if(o&&t){var d=Ai(o).hoistableStyles,h=nr(t);a=a||"default";var v=d.get(h);if(!v){var E={loading:0,preload:null};if(v=o.querySelector(yo(h)))E.loading=5;else{t=w({rel:"stylesheet",href:t,"data-precedence":a},i),(i=$n.get(h))&&Gf(t,i);var N=v=o.createElement("link");Rt(N),Ut(N,"link",t),N._p=new Promise(function(q,Q){N.onload=q,N.onerror=Q}),N.addEventListener("load",function(){E.loading|=1}),N.addEventListener("error",function(){E.loading|=2}),E.loading|=4,Bc(v,a,o)}v={type:"stylesheet",instance:v,count:1,state:E},d.set(h,v)}}}function ix(t,a){za.X(t,a);var i=tr;if(i&&t){var o=Ai(i).hoistableScripts,d=ar(t),h=o.get(d);h||(h=i.querySelector(bo(d)),h||(t=w({src:t,async:!0},a),(a=$n.get(d))&&Pf(t,a),h=i.createElement("script"),Rt(h),Ut(h,"link",t),i.head.appendChild(h)),h={type:"script",instance:h,count:1,state:null},o.set(d,h))}}function rx(t,a){za.M(t,a);var i=tr;if(i&&t){var o=Ai(i).hoistableScripts,d=ar(t),h=o.get(d);h||(h=i.querySelector(bo(d)),h||(t=w({src:t,async:!0,type:"module"},a),(a=$n.get(d))&&Pf(t,a),h=i.createElement("script"),Rt(h),Ut(h,"link",t),i.head.appendChild(h)),h={type:"script",instance:h,count:1,state:null},o.set(d,h))}}function Wb(t,a,i,o){var d=(d=ue.current)?Nc(d):null;if(!d)throw Error(r(446));switch(t){case"meta":case"title":return null;case"style":return typeof i.precedence=="string"&&typeof i.href=="string"?(a=nr(i.href),i=Ai(d).hoistableStyles,o=i.get(a),o||(o={type:"style",instance:null,count:0,state:null},i.set(a,o)),o):{type:"void",instance:null,count:0,state:null};case"link":if(i.rel==="stylesheet"&&typeof i.href=="string"&&typeof i.precedence=="string"){t=nr(i.href);var h=Ai(d).hoistableStyles,v=h.get(t);if(v||(d=d.ownerDocument||d,v={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},h.set(t,v),(h=d.querySelector(yo(t)))&&!h._p&&(v.instance=h,v.state.loading=5),$n.has(t)||(i={rel:"preload",as:"style",href:i.href,crossOrigin:i.crossOrigin,integrity:i.integrity,media:i.media,hrefLang:i.hrefLang,referrerPolicy:i.referrerPolicy},$n.set(t,i),h||ox(d,t,i,v.state))),a&&o===null)throw Error(r(528,""));return v}if(a&&o!==null)throw Error(r(529,""));return null;case"script":return a=i.async,i=i.src,typeof i=="string"&&a&&typeof a!="function"&&typeof a!="symbol"?(a=ar(i),i=Ai(d).hoistableScripts,o=i.get(a),o||(o={type:"script",instance:null,count:0,state:null},i.set(a,o)),o):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,t))}}function nr(t){return'href="'+Nn(t)+'"'}function yo(t){return'link[rel="stylesheet"]['+t+"]"}function e1(t){return w({},t,{"data-precedence":t.precedence,precedence:null})}function ox(t,a,i,o){t.querySelector('link[rel="preload"][as="style"]['+a+"]")?o.loading=1:(a=t.createElement("link"),o.preload=a,a.addEventListener("load",function(){return o.loading|=1}),a.addEventListener("error",function(){return o.loading|=2}),Ut(a,"link",i),Rt(a),t.head.appendChild(a))}function ar(t){return'[src="'+Nn(t)+'"]'}function bo(t){return"script[async]"+t}function t1(t,a,i){if(a.count++,a.instance===null)switch(a.type){case"style":var o=t.querySelector('style[data-href~="'+Nn(i.href)+'"]');if(o)return a.instance=o,Rt(o),o;var d=w({},i,{"data-href":i.href,"data-precedence":i.precedence,href:null,precedence:null});return o=(t.ownerDocument||t).createElement("style"),Rt(o),Ut(o,"style",d),Bc(o,i.precedence,t),a.instance=o;case"stylesheet":d=nr(i.href);var h=t.querySelector(yo(d));if(h)return a.state.loading|=4,a.instance=h,Rt(h),h;o=e1(i),(d=$n.get(d))&&Gf(o,d),h=(t.ownerDocument||t).createElement("link"),Rt(h);var v=h;return v._p=new Promise(function(E,N){v.onload=E,v.onerror=N}),Ut(h,"link",o),a.state.loading|=4,Bc(h,i.precedence,t),a.instance=h;case"script":return h=ar(i.src),(d=t.querySelector(bo(h)))?(a.instance=d,Rt(d),d):(o=i,(d=$n.get(h))&&(o=w({},i),Pf(o,d)),t=t.ownerDocument||t,d=t.createElement("script"),Rt(d),Ut(d,"link",o),t.head.appendChild(d),a.instance=d);case"void":return null;default:throw Error(r(443,a.type))}else a.type==="stylesheet"&&(a.state.loading&4)===0&&(o=a.instance,a.state.loading|=4,Bc(o,i.precedence,t));return a.instance}function Bc(t,a,i){for(var o=i.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),d=o.length?o[o.length-1]:null,h=d,v=0;v<o.length;v++){var E=o[v];if(E.dataset.precedence===a)h=E;else if(h!==d)break}h?h.parentNode.insertBefore(t,h.nextSibling):(a=i.nodeType===9?i.head:i,a.insertBefore(t,a.firstChild))}function Gf(t,a){t.crossOrigin==null&&(t.crossOrigin=a.crossOrigin),t.referrerPolicy==null&&(t.referrerPolicy=a.referrerPolicy),t.title==null&&(t.title=a.title)}function Pf(t,a){t.crossOrigin==null&&(t.crossOrigin=a.crossOrigin),t.referrerPolicy==null&&(t.referrerPolicy=a.referrerPolicy),t.integrity==null&&(t.integrity=a.integrity)}var Rc=null;function n1(t,a,i){if(Rc===null){var o=new Map,d=Rc=new Map;d.set(i,o)}else d=Rc,o=d.get(i),o||(o=new Map,d.set(i,o));if(o.has(t))return o;for(o.set(t,null),i=i.getElementsByTagName(t),d=0;d<i.length;d++){var h=i[d];if(!(h[Cr]||h[_t]||t==="link"&&h.getAttribute("rel")==="stylesheet")&&h.namespaceURI!=="http://www.w3.org/2000/svg"){var v=h.getAttribute(a)||"";v=t+v;var E=o.get(v);E?E.push(h):o.set(v,[h])}}return o}function a1(t,a,i){t=t.ownerDocument||t,t.head.insertBefore(i,a==="title"?t.querySelector("head > title"):null)}function lx(t,a,i){if(i===1||a.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof a.precedence!="string"||typeof a.href!="string"||a.href==="")break;return!0;case"link":if(typeof a.rel!="string"||typeof a.href!="string"||a.href===""||a.onLoad||a.onError)break;switch(a.rel){case"stylesheet":return t=a.disabled,typeof a.precedence=="string"&&t==null;default:return!0}case"script":if(a.async&&typeof a.async!="function"&&typeof a.async!="symbol"&&!a.onLoad&&!a.onError&&a.src&&typeof a.src=="string")return!0}return!1}function s1(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function cx(t,a,i,o){if(i.type==="stylesheet"&&(typeof o.media!="string"||matchMedia(o.media).matches!==!1)&&(i.state.loading&4)===0){if(i.instance===null){var d=nr(o.href),h=a.querySelector(yo(d));if(h){a=h._p,a!==null&&typeof a=="object"&&typeof a.then=="function"&&(t.count++,t=Mc.bind(t),a.then(t,t)),i.state.loading|=4,i.instance=h,Rt(h);return}h=a.ownerDocument||a,o=e1(o),(d=$n.get(d))&&Gf(o,d),h=h.createElement("link"),Rt(h);var v=h;v._p=new Promise(function(E,N){v.onload=E,v.onerror=N}),Ut(h,"link",o),i.instance=h}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(i,a),(a=i.state.preload)&&(i.state.loading&3)===0&&(t.count++,i=Mc.bind(t),a.addEventListener("load",i),a.addEventListener("error",i))}}var Vf=0;function ux(t,a){return t.stylesheets&&t.count===0&&Oc(t,t.stylesheets),0<t.count||0<t.imgCount?function(i){var o=setTimeout(function(){if(t.stylesheets&&Oc(t,t.stylesheets),t.unsuspend){var h=t.unsuspend;t.unsuspend=null,h()}},6e4+a);0<t.imgBytes&&Vf===0&&(Vf=62500*Pw());var d=setTimeout(function(){if(t.waitingForImages=!1,t.count===0&&(t.stylesheets&&Oc(t,t.stylesheets),t.unsuspend)){var h=t.unsuspend;t.unsuspend=null,h()}},(t.imgBytes>Vf?50:800)+a);return t.unsuspend=i,function(){t.unsuspend=null,clearTimeout(o),clearTimeout(d)}}:null}function Mc(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Oc(this,this.stylesheets);else if(this.unsuspend){var t=this.unsuspend;this.unsuspend=null,t()}}}var Cc=null;function Oc(t,a){t.stylesheets=null,t.unsuspend!==null&&(t.count++,Cc=new Map,a.forEach(dx,t),Cc=null,Mc.call(t))}function dx(t,a){if(!(a.state.loading&4)){var i=Cc.get(t);if(i)var o=i.get(null);else{i=new Map,Cc.set(t,i);for(var d=t.querySelectorAll("link[data-precedence],style[data-precedence]"),h=0;h<d.length;h++){var v=d[h];(v.nodeName==="LINK"||v.getAttribute("media")!=="not all")&&(i.set(v.dataset.precedence,v),o=v)}o&&i.set(null,o)}d=a.instance,v=d.getAttribute("data-precedence"),h=i.get(v)||o,h===o&&i.set(null,d),i.set(v,d),this.count++,o=Mc.bind(this),d.addEventListener("load",o),d.addEventListener("error",o),h?h.parentNode.insertBefore(d,h.nextSibling):(t=t.nodeType===9?t.head:t,t.insertBefore(d,t.firstChild)),a.state.loading|=4}}var go={$$typeof:O,Provider:null,Consumer:null,_currentValue:Y,_currentValue2:Y,_threadCount:0};function fx(t,a,i,o,d,h,v,E,N){this.tag=1,this.containerInfo=t,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=qu(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=qu(0),this.hiddenUpdates=qu(null),this.identifierPrefix=o,this.onUncaughtError=d,this.onCaughtError=h,this.onRecoverableError=v,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=N,this.incompleteTransitions=new Map}function i1(t,a,i,o,d,h,v,E,N,q,Q,ne){return t=new fx(t,a,i,v,N,q,Q,ne,E),a=1,h===!0&&(a|=24),h=yn(3,null,null,a),t.current=h,h.stateNode=t,a=Ed(),a.refCount++,t.pooledCache=a,a.refCount++,h.memoizedState={element:o,isDehydrated:i,cache:a},jd(h),t}function r1(t){return t?(t=_i,t):_i}function o1(t,a,i,o,d,h){d=r1(d),o.context===null?o.context=d:o.pendingContext=d,o=cs(a),o.payload={element:i},h=h===void 0?null:h,h!==null&&(o.callback=h),i=us(t,o,a),i!==null&&(sn(i,t,a),Zr(i,t,a))}function l1(t,a){if(t=t.memoizedState,t!==null&&t.dehydrated!==null){var i=t.retryLane;t.retryLane=i!==0&&i<a?i:a}}function Kf(t,a){l1(t,a),(t=t.alternate)&&l1(t,a)}function c1(t){if(t.tag===13||t.tag===31){var a=Ps(t,67108864);a!==null&&sn(a,t,67108864),Kf(t,67108864)}}function u1(t){if(t.tag===13||t.tag===31){var a=xn();a=Lu(a);var i=Ps(t,a);i!==null&&sn(i,t,a),Kf(t,a)}}var _c=!0;function hx(t,a,i,o){var d=R.T;R.T=null;var h=V.p;try{V.p=2,Ff(t,a,i,o)}finally{V.p=h,R.T=d}}function px(t,a,i,o){var d=R.T;R.T=null;var h=V.p;try{V.p=8,Ff(t,a,i,o)}finally{V.p=h,R.T=d}}function Ff(t,a,i,o){if(_c){var d=Yf(o);if(d===null)Of(t,a,o,zc,i),f1(t,o);else if(yx(d,t,a,i,o))o.stopPropagation();else if(f1(t,o),a&4&&-1<mx.indexOf(t)){for(;d!==null;){var h=Ei(d);if(h!==null)switch(h.tag){case 3:if(h=h.stateNode,h.current.memoizedState.isDehydrated){var v=qs(h.pendingLanes);if(v!==0){var E=h;for(E.pendingLanes|=2,E.entangledLanes|=2;v;){var N=1<<31-st(v);E.entanglements[1]|=N,v&=~N}oa(h),(Fe&6)===0&&(bc=ke()+500,fo(0))}}break;case 31:case 13:E=Ps(h,2),E!==null&&sn(E,h,2),vc(),Kf(h,2)}if(h=Yf(o),h===null&&Of(t,a,o,zc,i),h===d)break;d=h}d!==null&&o.stopPropagation()}else Of(t,a,o,null,i)}}function Yf(t){return t=Zu(t),Zf(t)}var zc=null;function Zf(t){if(zc=null,t=Si(t),t!==null){var a=u(t);if(a===null)t=null;else{var i=a.tag;if(i===13){if(t=f(a),t!==null)return t;t=null}else if(i===31){if(t=m(a),t!==null)return t;t=null}else if(i===3){if(a.stateNode.current.memoizedState.isDehydrated)return a.tag===3?a.stateNode.containerInfo:null;t=null}else a!==t&&(t=null)}}return zc=t,null}function d1(t){switch(t){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(Ye()){case yt:return 2;case Ke:return 8;case at:case aa:return 32;case L:return 268435456;default:return 32}default:return 32}}var Xf=!1,xs=null,Ss=null,Es=null,vo=new Map,wo=new Map,As=[],mx="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function f1(t,a){switch(t){case"focusin":case"focusout":xs=null;break;case"dragenter":case"dragleave":Ss=null;break;case"mouseover":case"mouseout":Es=null;break;case"pointerover":case"pointerout":vo.delete(a.pointerId);break;case"gotpointercapture":case"lostpointercapture":wo.delete(a.pointerId)}}function xo(t,a,i,o,d,h){return t===null||t.nativeEvent!==h?(t={blockedOn:a,domEventName:i,eventSystemFlags:o,nativeEvent:h,targetContainers:[d]},a!==null&&(a=Ei(a),a!==null&&c1(a)),t):(t.eventSystemFlags|=o,a=t.targetContainers,d!==null&&a.indexOf(d)===-1&&a.push(d),t)}function yx(t,a,i,o,d){switch(a){case"focusin":return xs=xo(xs,t,a,i,o,d),!0;case"dragenter":return Ss=xo(Ss,t,a,i,o,d),!0;case"mouseover":return Es=xo(Es,t,a,i,o,d),!0;case"pointerover":var h=d.pointerId;return vo.set(h,xo(vo.get(h)||null,t,a,i,o,d)),!0;case"gotpointercapture":return h=d.pointerId,wo.set(h,xo(wo.get(h)||null,t,a,i,o,d)),!0}return!1}function h1(t){var a=Si(t.target);if(a!==null){var i=u(a);if(i!==null){if(a=i.tag,a===13){if(a=f(i),a!==null){t.blockedOn=a,jp(t.priority,function(){u1(i)});return}}else if(a===31){if(a=m(i),a!==null){t.blockedOn=a,jp(t.priority,function(){u1(i)});return}}else if(a===3&&i.stateNode.current.memoizedState.isDehydrated){t.blockedOn=i.tag===3?i.stateNode.containerInfo:null;return}}}t.blockedOn=null}function $c(t){if(t.blockedOn!==null)return!1;for(var a=t.targetContainers;0<a.length;){var i=Yf(t.nativeEvent);if(i===null){i=t.nativeEvent;var o=new i.constructor(i.type,i);Yu=o,i.target.dispatchEvent(o),Yu=null}else return a=Ei(i),a!==null&&c1(a),t.blockedOn=i,!1;a.shift()}return!0}function p1(t,a,i){$c(t)&&i.delete(a)}function bx(){Xf=!1,xs!==null&&$c(xs)&&(xs=null),Ss!==null&&$c(Ss)&&(Ss=null),Es!==null&&$c(Es)&&(Es=null),vo.forEach(p1),wo.forEach(p1)}function Dc(t,a){t.blockedOn===a&&(t.blockedOn=null,Xf||(Xf=!0,e.unstable_scheduleCallback(e.unstable_NormalPriority,bx)))}var Uc=null;function m1(t){Uc!==t&&(Uc=t,e.unstable_scheduleCallback(e.unstable_NormalPriority,function(){Uc===t&&(Uc=null);for(var a=0;a<t.length;a+=3){var i=t[a],o=t[a+1],d=t[a+2];if(typeof o!="function"){if(Zf(o||i)===null)continue;break}var h=Ei(i);h!==null&&(t.splice(a,3),a-=3,Fd(h,{pending:!0,data:d,method:i.method,action:o},o,d))}}))}function sr(t){function a(N){return Dc(N,t)}xs!==null&&Dc(xs,t),Ss!==null&&Dc(Ss,t),Es!==null&&Dc(Es,t),vo.forEach(a),wo.forEach(a);for(var i=0;i<As.length;i++){var o=As[i];o.blockedOn===t&&(o.blockedOn=null)}for(;0<As.length&&(i=As[0],i.blockedOn===null);)h1(i),i.blockedOn===null&&As.shift();if(i=(t.ownerDocument||t).$$reactFormReplay,i!=null)for(o=0;o<i.length;o+=3){var d=i[o],h=i[o+1],v=d[Jt]||null;if(typeof h=="function")v||m1(i);else if(v){var E=null;if(h&&h.hasAttribute("formAction")){if(d=h,v=h[Jt]||null)E=v.formAction;else if(Zf(d)!==null)continue}else E=v.action;typeof E=="function"?i[o+1]=E:(i.splice(o,3),o-=3),m1(i)}}}function y1(){function t(h){h.canIntercept&&h.info==="react-transition"&&h.intercept({handler:function(){return new Promise(function(v){return d=v})},focusReset:"manual",scroll:"manual"})}function a(){d!==null&&(d(),d=null),o||setTimeout(i,20)}function i(){if(!o&&!navigation.transition){var h=navigation.currentEntry;h&&h.url!=null&&navigation.navigate(h.url,{state:h.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var o=!1,d=null;return navigation.addEventListener("navigate",t),navigation.addEventListener("navigatesuccess",a),navigation.addEventListener("navigateerror",a),setTimeout(i,100),function(){o=!0,navigation.removeEventListener("navigate",t),navigation.removeEventListener("navigatesuccess",a),navigation.removeEventListener("navigateerror",a),d!==null&&(d(),d=null)}}}function Qf(t){this._internalRoot=t}qc.prototype.render=Qf.prototype.render=function(t){var a=this._internalRoot;if(a===null)throw Error(r(409));var i=a.current,o=xn();o1(i,o,t,a,null,null)},qc.prototype.unmount=Qf.prototype.unmount=function(){var t=this._internalRoot;if(t!==null){this._internalRoot=null;var a=t.containerInfo;o1(t.current,2,null,t,null,null),vc(),a[xi]=null}};function qc(t){this._internalRoot=t}qc.prototype.unstable_scheduleHydration=function(t){if(t){var a=kp();t={blockedOn:null,target:t,priority:a};for(var i=0;i<As.length&&a!==0&&a<As[i].priority;i++);As.splice(i,0,t),i===0&&h1(t)}};var b1=n.version;if(b1!=="19.2.0")throw Error(r(527,b1,"19.2.0"));V.findDOMNode=function(t){var a=t._reactInternals;if(a===void 0)throw typeof t.render=="function"?Error(r(188)):(t=Object.keys(t).join(","),Error(r(268,t)));return t=y(a),t=t!==null?b(t):null,t=t===null?null:t.stateNode,t};var gx={bundleType:0,version:"19.2.0",rendererPackageName:"react-dom",currentDispatcherRef:R,reconcilerVersion:"19.2.0"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Lc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Lc.isDisabled&&Lc.supportsFiber)try{$e=Lc.inject(gx),He=Lc}catch{}}return Eo.createRoot=function(t,a){if(!l(t))throw Error(r(299));var i=!1,o="",d=Ay,h=Ty,v=ky;return a!=null&&(a.unstable_strictMode===!0&&(i=!0),a.identifierPrefix!==void 0&&(o=a.identifierPrefix),a.onUncaughtError!==void 0&&(d=a.onUncaughtError),a.onCaughtError!==void 0&&(h=a.onCaughtError),a.onRecoverableError!==void 0&&(v=a.onRecoverableError)),a=i1(t,1,!1,null,null,i,o,null,d,h,v,y1),t[xi]=a.current,Cf(t),new Qf(a)},Eo.hydrateRoot=function(t,a,i){if(!l(t))throw Error(r(299));var o=!1,d="",h=Ay,v=Ty,E=ky,N=null;return i!=null&&(i.unstable_strictMode===!0&&(o=!0),i.identifierPrefix!==void 0&&(d=i.identifierPrefix),i.onUncaughtError!==void 0&&(h=i.onUncaughtError),i.onCaughtError!==void 0&&(v=i.onCaughtError),i.onRecoverableError!==void 0&&(E=i.onRecoverableError),i.formState!==void 0&&(N=i.formState)),a=i1(t,1,!0,a,i??null,o,d,N,h,v,E,y1),a.context=r1(null),i=a.current,o=xn(),o=Lu(o),d=cs(o),d.callback=null,us(i,d,o),i=o,a.current.lanes=i,Mr(a,i),oa(a),t[xi]=a.current,Cf(t),new qc(a)},Eo.version="19.2.0",Eo}var j1;function Nx(){if(j1)return e0.exports;j1=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(n){console.error(n)}}return e(),e0.exports=jx(),e0.exports}var Bx=Nx();const Rx="1.1.0";let fn=class _0 extends Error{constructor(n,s={}){const r=s.cause instanceof _0?s.cause.details:s.cause?.message?s.cause.message:s.details,l=s.cause instanceof _0&&s.cause.docsPath||s.docsPath,u=[n||"An error occurred.","",...s.metaMessages?[...s.metaMessages,""]:[],...l?[`Docs: https://abitype.dev${l}`]:[],...r?[`Details: ${r}`]:[],`Version: abitype@${Rx}`].join(` +`);super(u),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),s.cause&&(this.cause=s.cause),this.details=r,this.docsPath=l,this.metaMessages=s.metaMessages,this.shortMessage=n}};function Ja(e,n){return e.exec(n)?.groups}const Fg=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Yg=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,Zg=/^\(.+?\).*?$/,N1=/^tuple(?<array>(\[(\d*)\])*)$/;function z0(e){let n=e.type;if(N1.test(e.type)&&"components"in e){n="(";const s=e.components.length;for(let l=0;l<s;l++){const u=e.components[l];n+=z0(u),l<s-1&&(n+=", ")}const r=Ja(N1,e.type);return n+=`)${r?.array??""}`,z0({...e,type:n})}return"indexed"in e&&e.indexed&&(n=`${n} indexed`),e.name?`${n} ${e.name}`:n}function lr(e){let n="";const s=e.length;for(let r=0;r<s;r++){const l=e[r];n+=z0(l),r!==s-1&&(n+=", ")}return n}function eu(e){return e.type==="function"?`function ${e.name}(${lr(e.inputs)})${e.stateMutability&&e.stateMutability!=="nonpayable"?` ${e.stateMutability}`:""}${e.outputs?.length?` returns (${lr(e.outputs)})`:""}`:e.type==="event"?`event ${e.name}(${lr(e.inputs)})`:e.type==="error"?`error ${e.name}(${lr(e.inputs)})`:e.type==="constructor"?`constructor(${lr(e.inputs)})${e.stateMutability==="payable"?" payable":""}`:e.type==="fallback"?`fallback() external${e.stateMutability==="payable"?" payable":""}`:"receive() external payable"}const Xg=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function Mx(e){return Xg.test(e)}function Cx(e){return Ja(Xg,e)}const Qg=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function Ox(e){return Qg.test(e)}function _x(e){return Ja(Qg,e)}const Jg=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/;function zx(e){return Jg.test(e)}function $x(e){return Ja(Jg,e)}const Wg=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;function pu(e){return Wg.test(e)}function Dx(e){return Ja(Wg,e)}const e6=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;function Ux(e){return e6.test(e)}function qx(e){return Ja(e6,e)}const t6=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;function Lx(e){return t6.test(e)}function Hx(e){return Ja(t6,e)}const Ix=/^receive\(\) external payable$/;function Gx(e){return Ix.test(e)}const B1=new Set(["memory","indexed","storage","calldata"]),Px=new Set(["indexed"]),$0=new Set(["calldata","memory","storage"]);class Vx extends fn{constructor({signature:n}){super("Failed to parse ABI item.",{details:`parseAbiItem(${JSON.stringify(n,null,2)})`,docsPath:"/api/human#parseabiitem-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiItemError"})}}class Kx extends fn{constructor({type:n}){super("Unknown type.",{metaMessages:[`Type "${n}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}}class Fx extends fn{constructor({type:n}){super("Unknown type.",{metaMessages:[`Type "${n}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}class Yx extends fn{constructor({params:n}){super("Failed to parse ABI parameters.",{details:`parseAbiParameters(${JSON.stringify(n,null,2)})`,docsPath:"/api/human#parseabiparameters-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiParametersError"})}}class Zx extends fn{constructor({param:n}){super("Invalid ABI parameter.",{details:n}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}}class Xx extends fn{constructor({param:n,name:s}){super("Invalid ABI parameter.",{details:n,metaMessages:[`"${s}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}}class Qx extends fn{constructor({param:n,type:s,modifier:r}){super("Invalid ABI parameter.",{details:n,metaMessages:[`Modifier "${r}" not allowed${s?` in "${s}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}}class Jx extends fn{constructor({param:n,type:s,modifier:r}){super("Invalid ABI parameter.",{details:n,metaMessages:[`Modifier "${r}" not allowed${s?` in "${s}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${r}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}}class Wx extends fn{constructor({abiParameter:n}){super("Invalid ABI parameter.",{details:JSON.stringify(n,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}class Tr extends fn{constructor({signature:n,type:s}){super(`Invalid ${s} signature.`,{details:n}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}}class e8 extends fn{constructor({signature:n}){super("Unknown signature.",{details:n}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}}class t8 extends fn{constructor({signature:n}){super("Invalid struct signature.",{details:n,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}class n8 extends fn{constructor({type:n}){super("Circular reference detected.",{metaMessages:[`Struct "${n}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}class a8 extends fn{constructor({current:n,depth:s}){super("Unbalanced parentheses.",{metaMessages:[`"${n.trim()}" has too many ${s>0?"opening":"closing"} parentheses.`],details:`Depth "${s}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}function s8(e,n,s){let r="";if(s)for(const l of Object.entries(s)){if(!l)continue;let u="";for(const f of l[1])u+=`[${f.type}${f.name?`:${f.name}`:""}]`;r+=`(${l[0]}{${u}})`}return n?`${n}:${e}${r}`:e}const s0=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]]);function D0(e,n={}){if(zx(e))return i8(e,n);if(Ox(e))return r8(e,n);if(Mx(e))return o8(e,n);if(Ux(e))return l8(e,n);if(Lx(e))return c8(e);if(Gx(e))return{type:"receive",stateMutability:"payable"};throw new e8({signature:e})}function i8(e,n={}){const s=$x(e);if(!s)throw new Tr({signature:e,type:"function"});const r=En(s.parameters),l=[],u=r.length;for(let m=0;m<u;m++)l.push(Fa(r[m],{modifiers:$0,structs:n,type:"function"}));const f=[];if(s.returns){const m=En(s.returns),p=m.length;for(let y=0;y<p;y++)f.push(Fa(m[y],{modifiers:$0,structs:n,type:"function"}))}return{name:s.name,type:"function",stateMutability:s.stateMutability??"nonpayable",inputs:l,outputs:f}}function r8(e,n={}){const s=_x(e);if(!s)throw new Tr({signature:e,type:"event"});const r=En(s.parameters),l=[],u=r.length;for(let f=0;f<u;f++)l.push(Fa(r[f],{modifiers:Px,structs:n,type:"event"}));return{name:s.name,type:"event",inputs:l}}function o8(e,n={}){const s=Cx(e);if(!s)throw new Tr({signature:e,type:"error"});const r=En(s.parameters),l=[],u=r.length;for(let f=0;f<u;f++)l.push(Fa(r[f],{structs:n,type:"error"}));return{name:s.name,type:"error",inputs:l}}function l8(e,n={}){const s=qx(e);if(!s)throw new Tr({signature:e,type:"constructor"});const r=En(s.parameters),l=[],u=r.length;for(let f=0;f<u;f++)l.push(Fa(r[f],{structs:n,type:"constructor"}));return{type:"constructor",stateMutability:s.stateMutability??"nonpayable",inputs:l}}function c8(e){const n=Hx(e);if(!n)throw new Tr({signature:e,type:"fallback"});return{type:"fallback",stateMutability:n.stateMutability??"nonpayable"}}const u8=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,d8=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,f8=/^u?int$/;function Fa(e,n){const s=s8(e,n?.type,n?.structs);if(s0.has(s))return s0.get(s);const r=Zg.test(e),l=Ja(r?d8:u8,e);if(!l)throw new Zx({param:e});if(l.name&&p8(l.name))throw new Xx({param:e,name:l.name});const u=l.name?{name:l.name}:{},f=l.modifier==="indexed"?{indexed:!0}:{},m=n?.structs??{};let p,y={};if(r){p="tuple";const w=En(l.type),g=[],S=w.length;for(let T=0;T<S;T++)g.push(Fa(w[T],{structs:m}));y={components:g}}else if(l.type in m)p="tuple",y={components:m[l.type]};else if(f8.test(l.type))p=`${l.type}256`;else if(l.type==="address payable")p="address";else if(p=l.type,n?.type!=="struct"&&!n6(p))throw new Fx({type:p});if(l.modifier){if(!n?.modifiers?.has?.(l.modifier))throw new Qx({param:e,type:n?.type,modifier:l.modifier});if($0.has(l.modifier)&&!m8(p,!!l.array))throw new Jx({param:e,type:n?.type,modifier:l.modifier})}const b={type:`${p}${l.array??""}`,...u,...f,...y};return s0.set(s,b),b}function En(e,n=[],s="",r=0){const l=e.trim().length;for(let u=0;u<l;u++){const f=e[u],m=e.slice(u+1);switch(f){case",":return r===0?En(m,[...n,s.trim()]):En(m,n,`${s}${f}`,r);case"(":return En(m,n,`${s}${f}`,r+1);case")":return En(m,n,`${s}${f}`,r-1);default:return En(m,n,`${s}${f}`,r)}}if(s==="")return n;if(r!==0)throw new a8({current:s,depth:r});return n.push(s.trim()),n}function n6(e){return e==="address"||e==="bool"||e==="function"||e==="string"||Fg.test(e)||Yg.test(e)}const h8=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/;function p8(e){return e==="address"||e==="bool"||e==="function"||e==="string"||e==="tuple"||Fg.test(e)||Yg.test(e)||h8.test(e)}function m8(e,n){return n||e==="bytes"||e==="string"||e==="tuple"}function jh(e){const n={},s=e.length;for(let f=0;f<s;f++){const m=e[f];if(!pu(m))continue;const p=Dx(m);if(!p)throw new Tr({signature:m,type:"struct"});const y=p.properties.split(";"),b=[],w=y.length;for(let g=0;g<w;g++){const T=y[g].trim();if(!T)continue;const x=Fa(T,{type:"struct"});b.push(x)}if(!b.length)throw new t8({signature:m});n[p.name]=b}const r={},l=Object.entries(n),u=l.length;for(let f=0;f<u;f++){const[m,p]=l[f];r[m]=a6(p,n)}return r}const y8=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/;function a6(e,n,s=new Set){const r=[],l=e.length;for(let u=0;u<l;u++){const f=e[u];if(Zg.test(f.type))r.push(f);else{const p=Ja(y8,f.type);if(!p?.type)throw new Wx({abiParameter:f});const{array:y,type:b}=p;if(b in n){if(s.has(b))throw new n8({type:b});r.push({...f,type:`tuple${y??""}`,components:a6(n[b]??[],n,new Set([...s,b]))})}else if(n6(b))r.push(f);else throw new Kx({type:b})}}return r}function In(e){const n=jh(e),s=[],r=e.length;for(let l=0;l<r;l++){const u=e[l];pu(u)||s.push(D0(u,n))}return s}function R1(e){let n;if(typeof e=="string")n=D0(e);else{const s=jh(e),r=e.length;for(let l=0;l<r;l++){const u=e[l];if(!pu(u)){n=D0(u,s);break}}}if(!n)throw new Vx({signature:e});return n}function M1(e){const n=[];if(typeof e=="string"){const s=En(e),r=s.length;for(let l=0;l<r;l++)n.push(Fa(s[l],{modifiers:B1}))}else{const s=jh(e),r=e.length;for(let l=0;l<r;l++){const u=e[l];if(pu(u))continue;const f=En(u),m=f.length;for(let p=0;p<m;p++)n.push(Fa(f[p],{modifiers:B1,structs:s}))}}if(n.length===0)throw new Yx({params:e});return n}function Ae(e,n,s){const r=e[n.name];if(typeof r=="function")return r;const l=e[s];return typeof l=="function"?l:u=>n(e,u)}function Xn(e,{includeName:n=!1}={}){if(e.type!=="function"&&e.type!=="event"&&e.type!=="error")throw new B8(e.type);return`${e.name}(${mu(e.inputs,{includeName:n})})`}function mu(e,{includeName:n=!1}={}){return e?e.map(s=>b8(s,{includeName:n})).join(n?", ":","):""}function b8(e,{includeName:n}){return e.type.startsWith("tuple")?`(${mu(e.components,{includeName:n})})${e.type.slice(5)}`:e.type+(n&&e.name?` ${e.name}`:"")}function pa(e,{strict:n=!0}={}){return!e||typeof e!="string"?!1:n?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}function mt(e){return pa(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}const s6="2.38.3";let i0={getDocsUrl:({docsBaseUrl:e,docsPath:n="",docsSlug:s})=>n?`${e??"https://viem.sh"}${n}${s?`#${s}`:""}`:void 0,version:`viem@${s6}`},re=class U0 extends Error{constructor(n,s={}){const r=s.cause instanceof U0?s.cause.details:s.cause?.message?s.cause.message:s.details,l=s.cause instanceof U0&&s.cause.docsPath||s.docsPath,u=i0.getDocsUrl?.({...s,docsPath:l}),f=[n||"An error occurred.","",...s.metaMessages?[...s.metaMessages,""]:[],...u?[`Docs: ${u}`]:[],...r?[`Details: ${r}`]:[],...i0.version?[`Version: ${i0.version}`]:[]].join(` `);super(f,s.cause?{cause:s.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=r,this.docsPath=l,this.metaMessages=s.metaMessages,this.name=s.name??this.name,this.shortMessage=n,this.version=s6}walk(n){return i6(this,n)}};function i6(e,n){return n?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause!==void 0?i6(e.cause,n):n?null:e}class g8 extends re{constructor({docsPath:n}){super(["A constructor was not found on the ABI.","Make sure you are using the correct ABI and that the constructor exists on it."].join(` `),{docsPath:n,name:"AbiConstructorNotFoundError"})}}class C1 extends re{constructor({docsPath:n}){super(["Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.","Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists."].join(` `),{docsPath:n,name:"AbiConstructorParamsNotFoundError"})}}class r6 extends re{constructor({data:n,params:s,size:r}){super([`Data size of ${r} bytes is too small for given parameters.`].join(` @@ -57,35 +57,35 @@ Error generating stack: `+o.message+` `),{docsPath:s,name:"AbiErrorInputsNotFoundError"})}}class O1 extends re{constructor(n,{docsPath:s}={}){super([`Error ${n?`"${n}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it."].join(` `),{docsPath:s,name:"AbiErrorNotFoundError"})}}class o6 extends re{constructor(n,{docsPath:s}){super([`Encoded error signature "${n}" not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${n}.`].join(` `),{docsPath:s,name:"AbiErrorSignatureNotFoundError"}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=n}}class E8 extends re{constructor({docsPath:n}){super("Cannot extract event signature from empty topics.",{docsPath:n,name:"AbiEventSignatureEmptyTopicsError"})}}class l6 extends re{constructor(n,{docsPath:s}){super([`Encoded event signature "${n}" not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${n}.`].join(` -`),{docsPath:s,name:"AbiEventSignatureNotFoundError"})}}class z1 extends re{constructor(n,{docsPath:s}={}){super([`Event ${n?`"${n}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it."].join(` +`),{docsPath:s,name:"AbiEventSignatureNotFoundError"})}}class _1 extends re{constructor(n,{docsPath:s}={}){super([`Event ${n?`"${n}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it."].join(` `),{docsPath:s,name:"AbiEventNotFoundError"})}}class gr extends re{constructor(n,{docsPath:s}={}){super([`Function ${n?`"${n}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it."].join(` `),{docsPath:s,name:"AbiFunctionNotFoundError"})}}class c6 extends re{constructor(n,{docsPath:s}){super([`Function "${n}" does not contain any \`outputs\` on ABI.`,"Cannot decode function result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the function exists on it."].join(` `),{docsPath:s,name:"AbiFunctionOutputsNotFoundError"})}}class A8 extends re{constructor(n,{docsPath:s}){super([`Encoded function signature "${n}" not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${n}.`].join(` -`),{docsPath:s,name:"AbiFunctionSignatureNotFoundError"})}}class T8 extends re{constructor(n,s){super("Found ambiguous types in overloaded ABI items.",{metaMessages:[`\`${n.type}\` in \`${Xn(n.abiItem)}\`, and`,`\`${s.type}\` in \`${Xn(s.abiItem)}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."],name:"AbiItemAmbiguityError"})}}let k8=class extends re{constructor({expectedSize:n,givenSize:s}){super(`Expected bytes${n}, got bytes${s}.`,{name:"BytesSizeMismatchError"})}};class zo extends re{constructor({abiItem:n,data:s,params:r,size:l}){super([`Data size of ${l} bytes is too small for non-indexed event parameters.`].join(` +`),{docsPath:s,name:"AbiFunctionSignatureNotFoundError"})}}class T8 extends re{constructor(n,s){super("Found ambiguous types in overloaded ABI items.",{metaMessages:[`\`${n.type}\` in \`${Xn(n.abiItem)}\`, and`,`\`${s.type}\` in \`${Xn(s.abiItem)}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."],name:"AbiItemAmbiguityError"})}}let k8=class extends re{constructor({expectedSize:n,givenSize:s}){super(`Expected bytes${n}, got bytes${s}.`,{name:"BytesSizeMismatchError"})}};class _o extends re{constructor({abiItem:n,data:s,params:r,size:l}){super([`Data size of ${l} bytes is too small for non-indexed event parameters.`].join(` `),{metaMessages:[`Params: (${mu(r,{includeName:!0})})`,`Data: ${s} (${l} bytes)`],name:"DecodeLogDataMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=n,this.data=s,this.params=r,this.size=l}}class yu extends re{constructor({abiItem:n,param:s}){super([`Expected a topic for indexed event parameter${s.name?` "${s.name}"`:""} on event "${Xn(n,{includeName:!0})}".`].join(` `),{name:"DecodeLogTopicsMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=n}}class j8 extends re{constructor(n,{docsPath:s}){super([`Type "${n}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(` `),{docsPath:s,name:"InvalidAbiEncodingType"})}}class N8 extends re{constructor(n,{docsPath:s}){super([`Type "${n}" is not a valid decoding type.`,"Please provide a valid ABI type."].join(` `),{docsPath:s,name:"InvalidAbiDecodingType"})}}let u6=class extends re{constructor(n){super([`Value "${n}" is not a valid array.`].join(` `),{name:"InvalidArrayError"})}};class B8 extends re{constructor(n){super([`"${n}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(` -`),{name:"InvalidDefinitionTypeError"})}}class R8 extends re{constructor(n){super(`Filter type "${n}" is not supported.`,{name:"FilterTypeNotSupportedError"})}}let d6=class extends re{constructor({offset:n,position:s,size:r}){super(`Slice ${s==="start"?"starting":"ending"} at offset "${n}" is out-of-bounds (size: ${r}).`,{name:"SliceOffsetOutOfBoundsError"})}},f6=class extends re{constructor({size:n,targetSize:s,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (${n}) exceeds padding size (${s}).`,{name:"SizeExceedsPaddingSizeError"})}};class _1 extends re{constructor({size:n,targetSize:s,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} is expected to be ${s} ${r} long, but is ${n} ${r} long.`,{name:"InvalidBytesLengthError"})}}function kr(e,{dir:n,size:s=32}={}){return typeof e=="string"?Cs(e,{dir:n,size:s}):M8(e,{dir:n,size:s})}function Cs(e,{dir:n,size:s=32}={}){if(s===null)return e;const r=e.replace("0x","");if(r.length>s*2)throw new f6({size:Math.ceil(r.length/2),targetSize:s,type:"hex"});return`0x${r[n==="right"?"padEnd":"padStart"](s*2,"0")}`}function M8(e,{dir:n,size:s=32}={}){if(s===null)return e;if(e.length>s)throw new f6({size:e.length,targetSize:s,type:"bytes"});const r=new Uint8Array(s);for(let l=0;l<s;l++){const u=n==="right";r[u?l:s-l-1]=e[u?l:e.length-l-1]}return r}let h6=class extends re{constructor({max:n,min:s,signed:r,size:l,value:u}){super(`Number "${u}" is not in safe ${l?`${l*8}-bit ${r?"signed":"unsigned"} `:""}integer range ${n?`(${s} to ${n})`:`(above ${s})`}`,{name:"IntegerOutOfRangeError"})}},C8=class extends re{constructor(n){super(`Bytes value "${n}" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,{name:"InvalidBytesBooleanError"})}};class O8 extends re{constructor(n){super(`Hex value "${n}" is not a valid boolean. The hex value must be "0x0" (false) or "0x1" (true).`,{name:"InvalidHexBooleanError"})}}let z8=class extends re{constructor({givenSize:n,maxSize:s}){super(`Size cannot exceed ${s} bytes. Given size: ${n} bytes.`,{name:"SizeOverflowError"})}};function ri(e,{dir:n="left"}={}){let s=typeof e=="string"?e.replace("0x",""):e,r=0;for(let l=0;l<s.length-1&&s[n==="left"?l:s.length-l-1].toString()==="0";l++)r++;return s=n==="left"?s.slice(r):s.slice(0,s.length-r),typeof e=="string"?(s.length===1&&n==="right"&&(s=`${s}0`),`0x${s.length%2===1?`0${s}`:s}`):s}function ta(e,{size:n}){if(mt(e)>n)throw new z8({givenSize:mt(e),maxSize:n})}function ma(e,n={}){const{signed:s}=n;n.size&&ta(e,{size:n.size});const r=BigInt(e);if(!s)return r;const l=(e.length-2)/2,u=(1n<<BigInt(l)*8n-1n)-1n;return r<=u?r:r-BigInt(`0x${"f".padStart(l*2,"f")}`)-1n}function _8(e,n={}){let s=e;if(n.size&&(ta(s,{size:n.size}),s=ri(s)),ri(s)==="0x00")return!1;if(ri(s)==="0x01")return!0;throw new O8(s)}function Ya(e,n={}){return Number(ma(e,n))}const $8=Array.from({length:256},(e,n)=>n.toString(16).padStart(2,"0"));function _s(e,n={}){return typeof e=="number"||typeof e=="bigint"?Ee(e,n):typeof e=="string"?_o(e,n):typeof e=="boolean"?p6(e,n):Nt(e,n)}function p6(e,n={}){const s=`0x${Number(e)}`;return typeof n.size=="number"?(ta(s,{size:n.size}),kr(s,{size:n.size})):s}function Nt(e,n={}){let s="";for(let l=0;l<e.length;l++)s+=$8[e[l]];const r=`0x${s}`;return typeof n.size=="number"?(ta(r,{size:n.size}),kr(r,{dir:"right",size:n.size})):r}function Ee(e,n={}){const{signed:s,size:r}=n,l=BigInt(e);let u;r?s?u=(1n<<BigInt(r)*8n-1n)-1n:u=2n**(BigInt(r)*8n)-1n:typeof e=="number"&&(u=BigInt(Number.MAX_SAFE_INTEGER));const f=typeof u=="bigint"&&s?-u-1n:0;if(u&&l>u||l<f){const m=typeof e=="bigint"?"n":"";throw new h6({max:u?`${u}${m}`:void 0,min:`${f}${m}`,signed:s,size:r,value:`${e}${m}`})}const p=`0x${(s&&l<0?(1n<<BigInt(r*8))+BigInt(l):l).toString(16)}`;return r?kr(p,{size:r}):p}const D8=new TextEncoder;function _o(e,n={}){const s=D8.encode(e);return Nt(s,n)}const U8=new TextEncoder;function jr(e,n={}){return typeof e=="number"||typeof e=="bigint"?L8(e,n):typeof e=="boolean"?q8(e,n):pa(e)?ya(e,n):oi(e,n)}function q8(e,n={}){const s=new Uint8Array(1);return s[0]=Number(e),typeof n.size=="number"?(ta(s,{size:n.size}),kr(s,{size:n.size})):s}const $a={zero:48,nine:57,A:65,F:70,a:97,f:102};function $1(e){if(e>=$a.zero&&e<=$a.nine)return e-$a.zero;if(e>=$a.A&&e<=$a.F)return e-($a.A-10);if(e>=$a.a&&e<=$a.f)return e-($a.a-10)}function ya(e,n={}){let s=e;n.size&&(ta(s,{size:n.size}),s=kr(s,{dir:"right",size:n.size}));let r=s.slice(2);r.length%2&&(r=`0${r}`);const l=r.length/2,u=new Uint8Array(l);for(let f=0,p=0;f<l;f++){const m=$1(r.charCodeAt(p++)),y=$1(r.charCodeAt(p++));if(m===void 0||y===void 0)throw new re(`Invalid byte sequence ("${r[p-2]}${r[p-1]}" in "${r}").`);u[f]=m*16+y}return u}function L8(e,n){const s=Ee(e,n);return ya(s)}function oi(e,n={}){const s=U8.encode(e);return typeof n.size=="number"?(ta(s,{size:n.size}),kr(s,{dir:"right",size:n.size})):s}const Hc=BigInt(2**32-1),D1=BigInt(32);function H8(e,n=!1){return n?{h:Number(e&Hc),l:Number(e>>D1&Hc)}:{h:Number(e>>D1&Hc)|0,l:Number(e&Hc)|0}}function I8(e,n=!1){const s=e.length;let r=new Uint32Array(s),l=new Uint32Array(s);for(let u=0;u<s;u++){const{h:f,l:p}=H8(e[u],n);[r[u],l[u]]=[f,p]}return[r,l]}const G8=(e,n,s)=>e<<s|n>>>32-s,P8=(e,n,s)=>n<<s|e>>>32-s,K8=(e,n,s)=>n<<s-32|e>>>64-s,V8=(e,n,s)=>e<<s-32|n>>>64-s,ir=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function F8(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function $o(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function di(e,...n){if(!F8(e))throw new Error("Uint8Array expected");if(n.length>0&&!n.includes(e.length))throw new Error("Uint8Array expected of length "+n+", got length="+e.length)}function Y8(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");$o(e.outputLen),$o(e.blockLen)}function vr(e,n=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(n&&e.finished)throw new Error("Hash#digest() has already been called")}function m6(e,n){di(e);const s=n.outputLen;if(e.length<s)throw new Error("digestInto() expects output buffer of length at least "+s)}function Z8(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function wr(...e){for(let n=0;n<e.length;n++)e[n].fill(0)}function r0(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function la(e,n){return e<<32-n|e>>>n}const X8=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Q8(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function J8(e){for(let n=0;n<e.length;n++)e[n]=Q8(e[n]);return e}const U1=X8?e=>e:J8;function W8(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function bu(e){return typeof e=="string"&&(e=W8(e)),di(e),e}function e3(...e){let n=0;for(let r=0;r<e.length;r++){const l=e[r];di(l),n+=l.length}const s=new Uint8Array(n);for(let r=0,l=0;r<e.length;r++){const u=e[r];s.set(u,l),l+=u.length}return s}class Nh{}function y6(e){const n=r=>e().update(bu(r)).digest(),s=e();return n.outputLen=s.outputLen,n.blockLen=s.blockLen,n.create=()=>e(),n}function t3(e=32){if(ir&&typeof ir.getRandomValues=="function")return ir.getRandomValues(new Uint8Array(e));if(ir&&typeof ir.randomBytes=="function")return Uint8Array.from(ir.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}const n3=BigInt(0),Ao=BigInt(1),a3=BigInt(2),s3=BigInt(7),i3=BigInt(256),r3=BigInt(113),b6=[],g6=[],v6=[];for(let e=0,n=Ao,s=1,r=0;e<24;e++){[s,r]=[r,(2*s+3*r)%5],b6.push(2*(5*r+s)),g6.push((e+1)*(e+2)/2%64);let l=n3;for(let u=0;u<7;u++)n=(n<<Ao^(n>>s3)*r3)%i3,n&a3&&(l^=Ao<<(Ao<<BigInt(u))-Ao);v6.push(l)}const w6=I8(v6,!0),o3=w6[0],l3=w6[1],q1=(e,n,s)=>s>32?K8(e,n,s):G8(e,n,s),L1=(e,n,s)=>s>32?V8(e,n,s):P8(e,n,s);function c3(e,n=24){const s=new Uint32Array(10);for(let r=24-n;r<24;r++){for(let f=0;f<10;f++)s[f]=e[f]^e[f+10]^e[f+20]^e[f+30]^e[f+40];for(let f=0;f<10;f+=2){const p=(f+8)%10,m=(f+2)%10,y=s[m],b=s[m+1],w=q1(y,b,1)^s[p],g=L1(y,b,1)^s[p+1];for(let S=0;S<50;S+=10)e[f+S]^=w,e[f+S+1]^=g}let l=e[2],u=e[3];for(let f=0;f<24;f++){const p=g6[f],m=q1(l,u,p),y=L1(l,u,p),b=b6[f];l=e[b],u=e[b+1],e[b]=m,e[b+1]=y}for(let f=0;f<50;f+=10){for(let p=0;p<10;p++)s[p]=e[f+p];for(let p=0;p<10;p++)e[f+p]^=~s[(p+2)%10]&s[(p+4)%10]}e[0]^=o3[r],e[1]^=l3[r]}wr(s)}class Bh extends Nh{constructor(n,s,r,l=!1,u=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=n,this.suffix=s,this.outputLen=r,this.enableXOF=l,this.rounds=u,$o(r),!(0<n&&n<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=Z8(this.state)}clone(){return this._cloneInto()}keccak(){U1(this.state32),c3(this.state32,this.rounds),U1(this.state32),this.posOut=0,this.pos=0}update(n){vr(this),n=bu(n),di(n);const{blockLen:s,state:r}=this,l=n.length;for(let u=0;u<l;){const f=Math.min(s-this.pos,l-u);for(let p=0;p<f;p++)r[this.pos++]^=n[u++];this.pos===s&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:n,suffix:s,pos:r,blockLen:l}=this;n[r]^=s,(s&128)!==0&&r===l-1&&this.keccak(),n[l-1]^=128,this.keccak()}writeInto(n){vr(this,!1),di(n),this.finish();const s=this.state,{blockLen:r}=this;for(let l=0,u=n.length;l<u;){this.posOut>=r&&this.keccak();const f=Math.min(r-this.posOut,u-l);n.set(s.subarray(this.posOut,this.posOut+f),l),this.posOut+=f,l+=f}return n}xofInto(n){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(n)}xof(n){return $o(n),this.xofInto(new Uint8Array(n))}digestInto(n){if(m6(n,this),this.finished)throw new Error("digest() was already called");return this.writeInto(n),this.destroy(),n}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,wr(this.state)}_cloneInto(n){const{blockLen:s,suffix:r,outputLen:l,rounds:u,enableXOF:f}=this;return n||(n=new Bh(s,r,l,f,u)),n.state32.set(this.state32),n.pos=this.pos,n.posOut=this.posOut,n.finished=this.finished,n.rounds=u,n.suffix=r,n.outputLen=l,n.enableXOF=f,n.destroyed=this.destroyed,n}}const u3=(e,n,s)=>y6(()=>new Bh(n,e,s)),x6=u3(1,136,256/8);function jt(e,n){const s=n||"hex",r=x6(pa(e,{strict:!1})?jr(e):e);return s==="bytes"?r:_s(r)}const d3=e=>jt(jr(e));function f3(e){return d3(e)}function h3(e){let n=!0,s="",r=0,l="",u=!1;for(let f=0;f<e.length;f++){const p=e[f];if(["(",")",","].includes(p)&&(n=!0),p==="("&&r++,p===")"&&r--,!!n){if(r===0){if(p===" "&&["event","function",""].includes(l))l="";else if(l+=p,p===")"){u=!0;break}continue}if(p===" "){e[f-1]!==","&&s!==","&&s!==",("&&(s="",n=!1);continue}l+=p,s+=p}}if(!u)throw new re("Unable to normalize signature.");return l}const p3=e=>{const n=typeof e=="string"?e:eu(e);return h3(n)};function S6(e){return f3(p3(e))}const gu=S6;let $s=class extends re{constructor({address:n}){super(`Address "${n}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}},Rh=class extends Map{constructor(n){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=n}get(n){const s=super.get(n);return super.has(n)&&s!==void 0&&(this.delete(n),super.set(n,s)),s}set(n,s){if(super.set(n,s),this.maxSize&&this.size>this.maxSize){const r=this.keys().next().value;r&&this.delete(r)}return this}};const o0=new Rh(8192);function vu(e,n){if(o0.has(`${e}.${n}`))return o0.get(`${e}.${n}`);const s=e.substring(2).toLowerCase(),r=jt(oi(s),"bytes"),l=s.split("");for(let f=0;f<40;f+=2)r[f>>1]>>4>=8&&l[f]&&(l[f]=l[f].toUpperCase()),(r[f>>1]&15)>=8&&l[f+1]&&(l[f+1]=l[f+1].toUpperCase());const u=`0x${l.join("")}`;return o0.set(`${e}.${n}`,u),u}function E6(e,n){if(!dn(e,{strict:!1}))throw new $s({address:e});return vu(e,n)}const m3=/^0x[a-fA-F0-9]{40}$/,l0=new Rh(8192);function dn(e,n){const{strict:s=!0}=n??{},r=`${e}.${s}`;if(l0.has(r))return l0.get(r);const l=m3.test(e)?e.toLowerCase()===e?!0:s?vu(e)===e:!0:!1;return l0.set(r,l),l}function ba(e){return typeof e[0]=="string"?Nr(e):y3(e)}function y3(e){let n=0;for(const l of e)n+=l.length;const s=new Uint8Array(n);let r=0;for(const l of e)s.set(l,r),r+=l.length;return s}function Nr(e){return`0x${e.reduce((n,s)=>n+s.replace("0x",""),"")}`}function xr(e,n,s,{strict:r}={}){return pa(e,{strict:!1})?b3(e,n,s,{strict:r}):k6(e,n,s,{strict:r})}function A6(e,n){if(typeof n=="number"&&n>0&&n>mt(e)-1)throw new d6({offset:n,position:"start",size:mt(e)})}function T6(e,n,s){if(typeof n=="number"&&typeof s=="number"&&mt(e)!==s-n)throw new d6({offset:s,position:"end",size:mt(e)})}function k6(e,n,s,{strict:r}={}){A6(e,n);const l=e.slice(n,s);return r&&T6(l,n,s),l}function b3(e,n,s,{strict:r}={}){A6(e,n);const l=`0x${e.replace("0x","").slice((n??0)*2,(s??e.length)*2)}`;return r&&T6(l,n,s),l}const g3=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,j6=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;function vi(e,n){if(e.length!==n.length)throw new x8({expectedLength:e.length,givenLength:n.length});const s=v3({params:e,values:n}),r=Ch(s);return r.length===0?"0x":r}function v3({params:e,values:n}){const s=[];for(let r=0;r<e.length;r++)s.push(Mh({param:e[r],value:n[r]}));return s}function Mh({param:e,value:n}){const s=Oh(e.type);if(s){const[r,l]=s;return x3(n,{length:r,param:{...e,type:l}})}if(e.type==="tuple")return k3(n,{param:e});if(e.type==="address")return w3(n);if(e.type==="bool")return E3(n);if(e.type.startsWith("uint")||e.type.startsWith("int")){const r=e.type.startsWith("int"),[,,l="256"]=j6.exec(e.type)??[];return A3(n,{signed:r,size:Number(l)})}if(e.type.startsWith("bytes"))return S3(n,{param:e});if(e.type==="string")return T3(n);throw new j8(e.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function Ch(e){let n=0;for(let u=0;u<e.length;u++){const{dynamic:f,encoded:p}=e[u];f?n+=32:n+=mt(p)}const s=[],r=[];let l=0;for(let u=0;u<e.length;u++){const{dynamic:f,encoded:p}=e[u];f?(s.push(Ee(n+l,{size:32})),r.push(p),l+=mt(p)):s.push(p)}return ba([...s,...r])}function w3(e){if(!dn(e))throw new $s({address:e});return{dynamic:!1,encoded:Cs(e.toLowerCase())}}function x3(e,{length:n,param:s}){const r=n===null;if(!Array.isArray(e))throw new u6(e);if(!r&&e.length!==n)throw new v8({expectedLength:n,givenLength:e.length,type:`${s.type}[${n}]`});let l=!1;const u=[];for(let f=0;f<e.length;f++){const p=Mh({param:s,value:e[f]});p.dynamic&&(l=!0),u.push(p)}if(r||l){const f=Ch(u);if(r){const p=Ee(u.length,{size:32});return{dynamic:!0,encoded:u.length>0?ba([p,f]):p}}if(l)return{dynamic:!0,encoded:f}}return{dynamic:!1,encoded:ba(u.map(({encoded:f})=>f))}}function S3(e,{param:n}){const[,s]=n.type.split("bytes"),r=mt(e);if(!s){let l=e;return r%32!==0&&(l=Cs(l,{dir:"right",size:Math.ceil((e.length-2)/2/32)*32})),{dynamic:!0,encoded:ba([Cs(Ee(r,{size:32})),l])}}if(r!==Number.parseInt(s,10))throw new w8({expectedSize:Number.parseInt(s,10),value:e});return{dynamic:!1,encoded:Cs(e,{dir:"right"})}}function E3(e){if(typeof e!="boolean")throw new re(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:Cs(p6(e))}}function A3(e,{signed:n,size:s=256}){if(typeof s=="number"){const r=2n**(BigInt(s)-(n?1n:0n))-1n,l=n?-r-1n:0n;if(e>r||e<l)throw new h6({max:r.toString(),min:l.toString(),signed:n,size:s/8,value:e.toString()})}return{dynamic:!1,encoded:Ee(e,{size:32,signed:n})}}function T3(e){const n=_o(e),s=Math.ceil(mt(n)/32),r=[];for(let l=0;l<s;l++)r.push(Cs(xr(n,l*32,(l+1)*32),{dir:"right"}));return{dynamic:!0,encoded:ba([Cs(Ee(mt(n),{size:32})),...r])}}function k3(e,{param:n}){let s=!1;const r=[];for(let l=0;l<n.components.length;l++){const u=n.components[l],f=Array.isArray(e)?l:u.name,p=Mh({param:u,value:e[f]});r.push(p),p.dynamic&&(s=!0)}return{dynamic:s,encoded:s?Ch(r):ba(r.map(({encoded:l})=>l))}}function Oh(e){const n=e.match(/^(.*)\[(\d+)?\]$/);return n?[n[2]?Number(n[2]):null,n[1]]:void 0}const hl=e=>xr(S6(e),0,4);function wi(e){const{abi:n,args:s=[],name:r}=e,l=pa(r,{strict:!1}),u=n.filter(p=>l?p.type==="function"?hl(p)===r:p.type==="event"?gu(p)===r:!1:"name"in p&&p.name===r);if(u.length===0)return;if(u.length===1)return u[0];let f;for(const p of u){if(!("inputs"in p))continue;if(!s||s.length===0){if(!p.inputs||p.inputs.length===0)return p;continue}if(!p.inputs||p.inputs.length===0||p.inputs.length!==s.length)continue;if(s.every((y,b)=>{const w="inputs"in p&&p.inputs[b];return w?q0(y,w):!1})){if(f&&"inputs"in f&&f.inputs){const y=N6(p.inputs,f.inputs,s);if(y)throw new T8({abiItem:p,type:y[0]},{abiItem:f,type:y[1]})}f=p}}return f||u[0]}function q0(e,n){const s=typeof e,r=n.type;switch(r){case"address":return dn(e,{strict:!1});case"bool":return s==="boolean";case"function":return s==="string";case"string":return s==="string";default:return r==="tuple"&&"components"in n?Object.values(n.components).every((l,u)=>q0(Object.values(e)[u],l)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(r)?s==="number"||s==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(r)?s==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(r)?Array.isArray(e)&&e.every(l=>q0(l,{...n,type:r.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function N6(e,n,s){for(const r in e){const l=e[r],u=n[r];if(l.type==="tuple"&&u.type==="tuple"&&"components"in l&&"components"in u)return N6(l.components,u.components,s[r]);const f=[l.type,u.type];if(f.includes("address")&&f.includes("bytes20")?!0:f.includes("address")&&f.includes("string")?dn(s[r],{strict:!1}):f.includes("address")&&f.includes("bytes")?dn(s[r],{strict:!1}):!1)return f}}const H1="/docs/contract/encodeEventTopics";function pl(e){const{abi:n,eventName:s,args:r}=e;let l=n[0];if(s){const m=wi({abi:n,name:s});if(!m)throw new z1(s,{docsPath:H1});l=m}if(l.type!=="event")throw new z1(void 0,{docsPath:H1});const u=Xn(l),f=gu(u);let p=[];if(r&&"inputs"in l){const m=l.inputs?.filter(b=>"indexed"in b&&b.indexed),y=Array.isArray(r)?r:Object.values(r).length>0?m?.map(b=>r[b.name])??[]:[];y.length>0&&(p=m?.map((b,w)=>Array.isArray(y[w])?y[w].map((g,S)=>I1({param:b,value:y[w][S]})):typeof y[w]<"u"&&y[w]!==null?I1({param:b,value:y[w]}):null)??[])}return[f,...p]}function I1({param:e,value:n}){if(e.type==="string"||e.type==="bytes")return jt(jr(n));if(e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/))throw new R8(e.type);return vi([e],[n])}function wu(e,{method:n}){const s={};return e.transport.type==="fallback"&&e.transport.onResponse?.(({method:r,response:l,status:u,transport:f})=>{u==="success"&&n===r&&(s[l]=f.request)}),(r=>s[r]||e.request)}async function B6(e,n){const{address:s,abi:r,args:l,eventName:u,fromBlock:f,strict:p,toBlock:m}=n,y=wu(e,{method:"eth_newFilter"}),b=u?pl({abi:r,args:l,eventName:u}):void 0,w=await e.request({method:"eth_newFilter",params:[{address:s,fromBlock:typeof f=="bigint"?Ee(f):f,toBlock:typeof m=="bigint"?Ee(m):m,topics:b}]});return{abi:r,args:l,eventName:u,id:w,request:y(w),strict:!!p,type:"event"}}function na(e){return typeof e=="string"?{address:e,type:"json-rpc"}:e}const G1="/docs/contract/encodeFunctionData";function j3(e){const{abi:n,args:s,functionName:r}=e;let l=n[0];if(r){const u=wi({abi:n,args:s,name:r});if(!u)throw new gr(r,{docsPath:G1});l=u}if(l.type!=="function")throw new gr(void 0,{docsPath:G1});return{abi:[l],functionName:hl(Xn(l))}}function Gn(e){const{args:n}=e,{abi:s,functionName:r}=e.abi.length===1&&e.functionName?.startsWith("0x")?e:j3(e),l=s[0],u=r,f="inputs"in l&&l.inputs?vi(l.inputs,n??[]):void 0;return Nr([u,f??"0x"])}const N3={1:"An `assert` condition failed.",17:"Arithmetic operation resulted in underflow or overflow.",18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:"Attempted to convert to an invalid type.",34:"Attempted to access a storage byte array that is incorrectly encoded.",49:"Performed `.pop()` on an empty array",50:"Array index is out of bounds.",65:"Allocated too much memory or created an array which is too large.",81:"Attempted to call a zero-initialized variable of internal function type."},R6={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},B3={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"};let P1=class extends re{constructor({offset:n}){super(`Offset \`${n}\` cannot be negative.`,{name:"NegativeOffsetError"})}},M6=class extends re{constructor({length:n,position:s}){super(`Position \`${s}\` is out of bounds (\`0 < position < ${n}\`).`,{name:"PositionOutOfBoundsError"})}},R3=class extends re{constructor({count:n,limit:s}){super(`Recursive read limit of \`${s}\` exceeded (recursive read count: \`${n}\`).`,{name:"RecursiveReadLimitExceededError"})}};const M3={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new R3({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new M6({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new P1({offset:e});const n=this.position-e;this.assertPosition(n),this.position=n},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new P1({offset:e});const n=this.position+e;this.assertPosition(n),this.position=n},inspectByte(e){const n=e??this.position;return this.assertPosition(n),this.bytes[n]},inspectBytes(e,n){const s=n??this.position;return this.assertPosition(s+e-1),this.bytes.subarray(s,s+e)},inspectUint8(e){const n=e??this.position;return this.assertPosition(n),this.bytes[n]},inspectUint16(e){const n=e??this.position;return this.assertPosition(n+1),this.dataView.getUint16(n)},inspectUint24(e){const n=e??this.position;return this.assertPosition(n+2),(this.dataView.getUint16(n)<<8)+this.dataView.getUint8(n+2)},inspectUint32(e){const n=e??this.position;return this.assertPosition(n+3),this.dataView.getUint32(n)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,n){this.assertReadLimit(),this._touch();const s=this.inspectBytes(e);return this.position+=n??e,s},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const n=this.position;return this.assertPosition(e),this.position=e,()=>this.position=n},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function zh(e,{recursiveReadLimit:n=8192}={}){const s=Object.create(M3);return s.bytes=e,s.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),s.positionReadCount=new Map,s.recursiveReadLimit=n,s}function C3(e,n={}){typeof n.size<"u"&&ta(e,{size:n.size});const s=Nt(e,n);return ma(s,n)}function O3(e,n={}){let s=e;if(typeof n.size<"u"&&(ta(s,{size:n.size}),s=ri(s)),s.length>1||s[0]>1)throw new C8(s);return!!s[0]}function Ga(e,n={}){typeof n.size<"u"&&ta(e,{size:n.size});const s=Nt(e,n);return Ya(s,n)}function z3(e,n={}){let s=e;return typeof n.size<"u"&&(ta(s,{size:n.size}),s=ri(s,{dir:"right"})),new TextDecoder().decode(s)}function ml(e,n){const s=typeof n=="string"?ya(n):n,r=zh(s);if(mt(s)===0&&e.length>0)throw new fl;if(mt(n)&&mt(n)<32)throw new r6({data:typeof n=="string"?n:Nt(n),params:e,size:mt(n)});let l=0;const u=[];for(let f=0;f<e.length;++f){const p=e[f];r.setPosition(l);const[m,y]=hr(r,p,{staticPosition:0});l+=y,u.push(m)}return u}function hr(e,n,{staticPosition:s}){const r=Oh(n.type);if(r){const[l,u]=r;return $3(e,{...n,type:u},{length:l,staticPosition:s})}if(n.type==="tuple")return L3(e,n,{staticPosition:s});if(n.type==="address")return _3(e);if(n.type==="bool")return D3(e);if(n.type.startsWith("bytes"))return U3(e,n,{staticPosition:s});if(n.type.startsWith("uint")||n.type.startsWith("int"))return q3(e,n);if(n.type==="string")return H3(e,{staticPosition:s});throw new N8(n.type,{docsPath:"/docs/contract/decodeAbiParameters"})}const K1=32,L0=32;function _3(e){const n=e.readBytes(32);return[vu(Nt(k6(n,-20))),32]}function $3(e,n,{length:s,staticPosition:r}){if(!s){const f=Ga(e.readBytes(L0)),p=r+f,m=p+K1;e.setPosition(p);const y=Ga(e.readBytes(K1)),b=Do(n);let w=0;const g=[];for(let S=0;S<y;++S){e.setPosition(m+(b?S*32:w));const[T,x]=hr(e,n,{staticPosition:m});w+=x,g.push(T)}return e.setPosition(r+32),[g,32]}if(Do(n)){const f=Ga(e.readBytes(L0)),p=r+f,m=[];for(let y=0;y<s;++y){e.setPosition(p+y*32);const[b]=hr(e,n,{staticPosition:p});m.push(b)}return e.setPosition(r+32),[m,32]}let l=0;const u=[];for(let f=0;f<s;++f){const[p,m]=hr(e,n,{staticPosition:r+l});l+=m,u.push(p)}return[u,l]}function D3(e){return[O3(e.readBytes(32),{size:32}),32]}function U3(e,n,{staticPosition:s}){const[r,l]=n.type.split("bytes");if(!l){const f=Ga(e.readBytes(32));e.setPosition(s+f);const p=Ga(e.readBytes(32));if(p===0)return e.setPosition(s+32),["0x",32];const m=e.readBytes(p);return e.setPosition(s+32),[Nt(m),32]}return[Nt(e.readBytes(Number.parseInt(l,10),32)),32]}function q3(e,n){const s=n.type.startsWith("int"),r=Number.parseInt(n.type.split("int")[1]||"256",10),l=e.readBytes(32);return[r>48?C3(l,{signed:s}):Ga(l,{signed:s}),32]}function L3(e,n,{staticPosition:s}){const r=n.components.length===0||n.components.some(({name:f})=>!f),l=r?[]:{};let u=0;if(Do(n)){const f=Ga(e.readBytes(L0)),p=s+f;for(let m=0;m<n.components.length;++m){const y=n.components[m];e.setPosition(p+u);const[b,w]=hr(e,y,{staticPosition:p});u+=w,l[r?m:y?.name]=b}return e.setPosition(s+32),[l,32]}for(let f=0;f<n.components.length;++f){const p=n.components[f],[m,y]=hr(e,p,{staticPosition:s});l[r?f:p?.name]=m,u+=y}return[l,u]}function H3(e,{staticPosition:n}){const s=Ga(e.readBytes(32)),r=n+s;e.setPosition(r);const l=Ga(e.readBytes(32));if(l===0)return e.setPosition(n+32),["",32];const u=e.readBytes(l,32),f=z3(ri(u));return e.setPosition(n+32),[f,32]}function Do(e){const{type:n}=e;if(n==="string"||n==="bytes"||n.endsWith("[]"))return!0;if(n==="tuple")return e.components?.some(Do);const s=Oh(e.type);return!!(s&&Do({...e,type:s[1]}))}function C6(e){const{abi:n,data:s}=e,r=xr(s,0,4);if(r==="0x")throw new fl;const u=[...n||[],R6,B3].find(f=>f.type==="error"&&r===hl(Xn(f)));if(!u)throw new o6(r,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:u,args:"inputs"in u&&u.inputs&&u.inputs.length>0?ml(u.inputs,xr(s,4)):void 0,errorName:u.name}}const Gt=(e,n,s)=>JSON.stringify(e,(r,l)=>typeof l=="bigint"?l.toString():l,s);function O6({abiItem:e,args:n,includeFunctionName:s=!0,includeName:r=!1}){if("name"in e&&"inputs"in e&&e.inputs)return`${s?e.name:""}(${e.inputs.map((l,u)=>`${r&&l.name?`${l.name}: `:""}${typeof n[u]=="object"?Gt(n[u]):n[u]}`).join(", ")})`}const I3={gwei:9,wei:18},G3={ether:-9,wei:9};function Pa(e,n){let s=e.toString();const r=s.startsWith("-");r&&(s=s.slice(1)),s=s.padStart(n,"0");let[l,u]=[s.slice(0,s.length-n),s.slice(s.length-n)];return u=u.replace(/(0+)$/,""),`${r?"-":""}${l||"0"}${u?`.${u}`:""}`}function z6(e,n="wei"){return Pa(e,I3[n])}function Yn(e,n="wei"){return Pa(e,G3[n])}class P3 extends re{constructor({address:n}){super(`State for account "${n}" is set multiple times.`,{name:"AccountStateConflictError"})}}class K3 extends re{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}function V1(e){return e.reduce((n,{slot:s,value:r})=>`${n} ${s}: ${r} -`,"")}function V3(e){return e.reduce((n,{address:s,...r})=>{let l=`${n} ${s}: +`),{name:"InvalidDefinitionTypeError"})}}class R8 extends re{constructor(n){super(`Filter type "${n}" is not supported.`,{name:"FilterTypeNotSupportedError"})}}let d6=class extends re{constructor({offset:n,position:s,size:r}){super(`Slice ${s==="start"?"starting":"ending"} at offset "${n}" is out-of-bounds (size: ${r}).`,{name:"SliceOffsetOutOfBoundsError"})}},f6=class extends re{constructor({size:n,targetSize:s,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (${n}) exceeds padding size (${s}).`,{name:"SizeExceedsPaddingSizeError"})}};class z1 extends re{constructor({size:n,targetSize:s,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} is expected to be ${s} ${r} long, but is ${n} ${r} long.`,{name:"InvalidBytesLengthError"})}}function kr(e,{dir:n,size:s=32}={}){return typeof e=="string"?Cs(e,{dir:n,size:s}):M8(e,{dir:n,size:s})}function Cs(e,{dir:n,size:s=32}={}){if(s===null)return e;const r=e.replace("0x","");if(r.length>s*2)throw new f6({size:Math.ceil(r.length/2),targetSize:s,type:"hex"});return`0x${r[n==="right"?"padEnd":"padStart"](s*2,"0")}`}function M8(e,{dir:n,size:s=32}={}){if(s===null)return e;if(e.length>s)throw new f6({size:e.length,targetSize:s,type:"bytes"});const r=new Uint8Array(s);for(let l=0;l<s;l++){const u=n==="right";r[u?l:s-l-1]=e[u?l:e.length-l-1]}return r}let h6=class extends re{constructor({max:n,min:s,signed:r,size:l,value:u}){super(`Number "${u}" is not in safe ${l?`${l*8}-bit ${r?"signed":"unsigned"} `:""}integer range ${n?`(${s} to ${n})`:`(above ${s})`}`,{name:"IntegerOutOfRangeError"})}},C8=class extends re{constructor(n){super(`Bytes value "${n}" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,{name:"InvalidBytesBooleanError"})}};class O8 extends re{constructor(n){super(`Hex value "${n}" is not a valid boolean. The hex value must be "0x0" (false) or "0x1" (true).`,{name:"InvalidHexBooleanError"})}}let _8=class extends re{constructor({givenSize:n,maxSize:s}){super(`Size cannot exceed ${s} bytes. Given size: ${n} bytes.`,{name:"SizeOverflowError"})}};function ri(e,{dir:n="left"}={}){let s=typeof e=="string"?e.replace("0x",""):e,r=0;for(let l=0;l<s.length-1&&s[n==="left"?l:s.length-l-1].toString()==="0";l++)r++;return s=n==="left"?s.slice(r):s.slice(0,s.length-r),typeof e=="string"?(s.length===1&&n==="right"&&(s=`${s}0`),`0x${s.length%2===1?`0${s}`:s}`):s}function ta(e,{size:n}){if(mt(e)>n)throw new _8({givenSize:mt(e),maxSize:n})}function ma(e,n={}){const{signed:s}=n;n.size&&ta(e,{size:n.size});const r=BigInt(e);if(!s)return r;const l=(e.length-2)/2,u=(1n<<BigInt(l)*8n-1n)-1n;return r<=u?r:r-BigInt(`0x${"f".padStart(l*2,"f")}`)-1n}function z8(e,n={}){let s=e;if(n.size&&(ta(s,{size:n.size}),s=ri(s)),ri(s)==="0x00")return!1;if(ri(s)==="0x01")return!0;throw new O8(s)}function Ya(e,n={}){return Number(ma(e,n))}const $8=Array.from({length:256},(e,n)=>n.toString(16).padStart(2,"0"));function zs(e,n={}){return typeof e=="number"||typeof e=="bigint"?Ee(e,n):typeof e=="string"?zo(e,n):typeof e=="boolean"?p6(e,n):Nt(e,n)}function p6(e,n={}){const s=`0x${Number(e)}`;return typeof n.size=="number"?(ta(s,{size:n.size}),kr(s,{size:n.size})):s}function Nt(e,n={}){let s="";for(let l=0;l<e.length;l++)s+=$8[e[l]];const r=`0x${s}`;return typeof n.size=="number"?(ta(r,{size:n.size}),kr(r,{dir:"right",size:n.size})):r}function Ee(e,n={}){const{signed:s,size:r}=n,l=BigInt(e);let u;r?s?u=(1n<<BigInt(r)*8n-1n)-1n:u=2n**(BigInt(r)*8n)-1n:typeof e=="number"&&(u=BigInt(Number.MAX_SAFE_INTEGER));const f=typeof u=="bigint"&&s?-u-1n:0;if(u&&l>u||l<f){const p=typeof e=="bigint"?"n":"";throw new h6({max:u?`${u}${p}`:void 0,min:`${f}${p}`,signed:s,size:r,value:`${e}${p}`})}const m=`0x${(s&&l<0?(1n<<BigInt(r*8))+BigInt(l):l).toString(16)}`;return r?kr(m,{size:r}):m}const D8=new TextEncoder;function zo(e,n={}){const s=D8.encode(e);return Nt(s,n)}const U8=new TextEncoder;function jr(e,n={}){return typeof e=="number"||typeof e=="bigint"?L8(e,n):typeof e=="boolean"?q8(e,n):pa(e)?ya(e,n):oi(e,n)}function q8(e,n={}){const s=new Uint8Array(1);return s[0]=Number(e),typeof n.size=="number"?(ta(s,{size:n.size}),kr(s,{size:n.size})):s}const $a={zero:48,nine:57,A:65,F:70,a:97,f:102};function $1(e){if(e>=$a.zero&&e<=$a.nine)return e-$a.zero;if(e>=$a.A&&e<=$a.F)return e-($a.A-10);if(e>=$a.a&&e<=$a.f)return e-($a.a-10)}function ya(e,n={}){let s=e;n.size&&(ta(s,{size:n.size}),s=kr(s,{dir:"right",size:n.size}));let r=s.slice(2);r.length%2&&(r=`0${r}`);const l=r.length/2,u=new Uint8Array(l);for(let f=0,m=0;f<l;f++){const p=$1(r.charCodeAt(m++)),y=$1(r.charCodeAt(m++));if(p===void 0||y===void 0)throw new re(`Invalid byte sequence ("${r[m-2]}${r[m-1]}" in "${r}").`);u[f]=p*16+y}return u}function L8(e,n){const s=Ee(e,n);return ya(s)}function oi(e,n={}){const s=U8.encode(e);return typeof n.size=="number"?(ta(s,{size:n.size}),kr(s,{dir:"right",size:n.size})):s}const Hc=BigInt(2**32-1),D1=BigInt(32);function H8(e,n=!1){return n?{h:Number(e&Hc),l:Number(e>>D1&Hc)}:{h:Number(e>>D1&Hc)|0,l:Number(e&Hc)|0}}function I8(e,n=!1){const s=e.length;let r=new Uint32Array(s),l=new Uint32Array(s);for(let u=0;u<s;u++){const{h:f,l:m}=H8(e[u],n);[r[u],l[u]]=[f,m]}return[r,l]}const G8=(e,n,s)=>e<<s|n>>>32-s,P8=(e,n,s)=>n<<s|e>>>32-s,V8=(e,n,s)=>n<<s-32|e>>>64-s,K8=(e,n,s)=>e<<s-32|n>>>64-s,ir=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function F8(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function $o(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function di(e,...n){if(!F8(e))throw new Error("Uint8Array expected");if(n.length>0&&!n.includes(e.length))throw new Error("Uint8Array expected of length "+n+", got length="+e.length)}function Y8(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");$o(e.outputLen),$o(e.blockLen)}function vr(e,n=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(n&&e.finished)throw new Error("Hash#digest() has already been called")}function m6(e,n){di(e);const s=n.outputLen;if(e.length<s)throw new Error("digestInto() expects output buffer of length at least "+s)}function Z8(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function wr(...e){for(let n=0;n<e.length;n++)e[n].fill(0)}function r0(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function la(e,n){return e<<32-n|e>>>n}const X8=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Q8(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function J8(e){for(let n=0;n<e.length;n++)e[n]=Q8(e[n]);return e}const U1=X8?e=>e:J8;function W8(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function bu(e){return typeof e=="string"&&(e=W8(e)),di(e),e}function e3(...e){let n=0;for(let r=0;r<e.length;r++){const l=e[r];di(l),n+=l.length}const s=new Uint8Array(n);for(let r=0,l=0;r<e.length;r++){const u=e[r];s.set(u,l),l+=u.length}return s}class Nh{}function y6(e){const n=r=>e().update(bu(r)).digest(),s=e();return n.outputLen=s.outputLen,n.blockLen=s.blockLen,n.create=()=>e(),n}function t3(e=32){if(ir&&typeof ir.getRandomValues=="function")return ir.getRandomValues(new Uint8Array(e));if(ir&&typeof ir.randomBytes=="function")return Uint8Array.from(ir.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}const n3=BigInt(0),Ao=BigInt(1),a3=BigInt(2),s3=BigInt(7),i3=BigInt(256),r3=BigInt(113),b6=[],g6=[],v6=[];for(let e=0,n=Ao,s=1,r=0;e<24;e++){[s,r]=[r,(2*s+3*r)%5],b6.push(2*(5*r+s)),g6.push((e+1)*(e+2)/2%64);let l=n3;for(let u=0;u<7;u++)n=(n<<Ao^(n>>s3)*r3)%i3,n&a3&&(l^=Ao<<(Ao<<BigInt(u))-Ao);v6.push(l)}const w6=I8(v6,!0),o3=w6[0],l3=w6[1],q1=(e,n,s)=>s>32?V8(e,n,s):G8(e,n,s),L1=(e,n,s)=>s>32?K8(e,n,s):P8(e,n,s);function c3(e,n=24){const s=new Uint32Array(10);for(let r=24-n;r<24;r++){for(let f=0;f<10;f++)s[f]=e[f]^e[f+10]^e[f+20]^e[f+30]^e[f+40];for(let f=0;f<10;f+=2){const m=(f+8)%10,p=(f+2)%10,y=s[p],b=s[p+1],w=q1(y,b,1)^s[m],g=L1(y,b,1)^s[m+1];for(let S=0;S<50;S+=10)e[f+S]^=w,e[f+S+1]^=g}let l=e[2],u=e[3];for(let f=0;f<24;f++){const m=g6[f],p=q1(l,u,m),y=L1(l,u,m),b=b6[f];l=e[b],u=e[b+1],e[b]=p,e[b+1]=y}for(let f=0;f<50;f+=10){for(let m=0;m<10;m++)s[m]=e[f+m];for(let m=0;m<10;m++)e[f+m]^=~s[(m+2)%10]&s[(m+4)%10]}e[0]^=o3[r],e[1]^=l3[r]}wr(s)}class Bh extends Nh{constructor(n,s,r,l=!1,u=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=n,this.suffix=s,this.outputLen=r,this.enableXOF=l,this.rounds=u,$o(r),!(0<n&&n<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=Z8(this.state)}clone(){return this._cloneInto()}keccak(){U1(this.state32),c3(this.state32,this.rounds),U1(this.state32),this.posOut=0,this.pos=0}update(n){vr(this),n=bu(n),di(n);const{blockLen:s,state:r}=this,l=n.length;for(let u=0;u<l;){const f=Math.min(s-this.pos,l-u);for(let m=0;m<f;m++)r[this.pos++]^=n[u++];this.pos===s&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:n,suffix:s,pos:r,blockLen:l}=this;n[r]^=s,(s&128)!==0&&r===l-1&&this.keccak(),n[l-1]^=128,this.keccak()}writeInto(n){vr(this,!1),di(n),this.finish();const s=this.state,{blockLen:r}=this;for(let l=0,u=n.length;l<u;){this.posOut>=r&&this.keccak();const f=Math.min(r-this.posOut,u-l);n.set(s.subarray(this.posOut,this.posOut+f),l),this.posOut+=f,l+=f}return n}xofInto(n){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(n)}xof(n){return $o(n),this.xofInto(new Uint8Array(n))}digestInto(n){if(m6(n,this),this.finished)throw new Error("digest() was already called");return this.writeInto(n),this.destroy(),n}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,wr(this.state)}_cloneInto(n){const{blockLen:s,suffix:r,outputLen:l,rounds:u,enableXOF:f}=this;return n||(n=new Bh(s,r,l,f,u)),n.state32.set(this.state32),n.pos=this.pos,n.posOut=this.posOut,n.finished=this.finished,n.rounds=u,n.suffix=r,n.outputLen=l,n.enableXOF=f,n.destroyed=this.destroyed,n}}const u3=(e,n,s)=>y6(()=>new Bh(n,e,s)),x6=u3(1,136,256/8);function jt(e,n){const s=n||"hex",r=x6(pa(e,{strict:!1})?jr(e):e);return s==="bytes"?r:zs(r)}const d3=e=>jt(jr(e));function f3(e){return d3(e)}function h3(e){let n=!0,s="",r=0,l="",u=!1;for(let f=0;f<e.length;f++){const m=e[f];if(["(",")",","].includes(m)&&(n=!0),m==="("&&r++,m===")"&&r--,!!n){if(r===0){if(m===" "&&["event","function",""].includes(l))l="";else if(l+=m,m===")"){u=!0;break}continue}if(m===" "){e[f-1]!==","&&s!==","&&s!==",("&&(s="",n=!1);continue}l+=m,s+=m}}if(!u)throw new re("Unable to normalize signature.");return l}const p3=e=>{const n=typeof e=="string"?e:eu(e);return h3(n)};function S6(e){return f3(p3(e))}const gu=S6;let $s=class extends re{constructor({address:n}){super(`Address "${n}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}},Rh=class extends Map{constructor(n){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=n}get(n){const s=super.get(n);return super.has(n)&&s!==void 0&&(this.delete(n),super.set(n,s)),s}set(n,s){if(super.set(n,s),this.maxSize&&this.size>this.maxSize){const r=this.keys().next().value;r&&this.delete(r)}return this}};const o0=new Rh(8192);function vu(e,n){if(o0.has(`${e}.${n}`))return o0.get(`${e}.${n}`);const s=e.substring(2).toLowerCase(),r=jt(oi(s),"bytes"),l=s.split("");for(let f=0;f<40;f+=2)r[f>>1]>>4>=8&&l[f]&&(l[f]=l[f].toUpperCase()),(r[f>>1]&15)>=8&&l[f+1]&&(l[f+1]=l[f+1].toUpperCase());const u=`0x${l.join("")}`;return o0.set(`${e}.${n}`,u),u}function E6(e,n){if(!dn(e,{strict:!1}))throw new $s({address:e});return vu(e,n)}const m3=/^0x[a-fA-F0-9]{40}$/,l0=new Rh(8192);function dn(e,n){const{strict:s=!0}=n??{},r=`${e}.${s}`;if(l0.has(r))return l0.get(r);const l=m3.test(e)?e.toLowerCase()===e?!0:s?vu(e)===e:!0:!1;return l0.set(r,l),l}function ba(e){return typeof e[0]=="string"?Nr(e):y3(e)}function y3(e){let n=0;for(const l of e)n+=l.length;const s=new Uint8Array(n);let r=0;for(const l of e)s.set(l,r),r+=l.length;return s}function Nr(e){return`0x${e.reduce((n,s)=>n+s.replace("0x",""),"")}`}function xr(e,n,s,{strict:r}={}){return pa(e,{strict:!1})?b3(e,n,s,{strict:r}):k6(e,n,s,{strict:r})}function A6(e,n){if(typeof n=="number"&&n>0&&n>mt(e)-1)throw new d6({offset:n,position:"start",size:mt(e)})}function T6(e,n,s){if(typeof n=="number"&&typeof s=="number"&&mt(e)!==s-n)throw new d6({offset:s,position:"end",size:mt(e)})}function k6(e,n,s,{strict:r}={}){A6(e,n);const l=e.slice(n,s);return r&&T6(l,n,s),l}function b3(e,n,s,{strict:r}={}){A6(e,n);const l=`0x${e.replace("0x","").slice((n??0)*2,(s??e.length)*2)}`;return r&&T6(l,n,s),l}const g3=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,j6=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;function vi(e,n){if(e.length!==n.length)throw new x8({expectedLength:e.length,givenLength:n.length});const s=v3({params:e,values:n}),r=Ch(s);return r.length===0?"0x":r}function v3({params:e,values:n}){const s=[];for(let r=0;r<e.length;r++)s.push(Mh({param:e[r],value:n[r]}));return s}function Mh({param:e,value:n}){const s=Oh(e.type);if(s){const[r,l]=s;return x3(n,{length:r,param:{...e,type:l}})}if(e.type==="tuple")return k3(n,{param:e});if(e.type==="address")return w3(n);if(e.type==="bool")return E3(n);if(e.type.startsWith("uint")||e.type.startsWith("int")){const r=e.type.startsWith("int"),[,,l="256"]=j6.exec(e.type)??[];return A3(n,{signed:r,size:Number(l)})}if(e.type.startsWith("bytes"))return S3(n,{param:e});if(e.type==="string")return T3(n);throw new j8(e.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function Ch(e){let n=0;for(let u=0;u<e.length;u++){const{dynamic:f,encoded:m}=e[u];f?n+=32:n+=mt(m)}const s=[],r=[];let l=0;for(let u=0;u<e.length;u++){const{dynamic:f,encoded:m}=e[u];f?(s.push(Ee(n+l,{size:32})),r.push(m),l+=mt(m)):s.push(m)}return ba([...s,...r])}function w3(e){if(!dn(e))throw new $s({address:e});return{dynamic:!1,encoded:Cs(e.toLowerCase())}}function x3(e,{length:n,param:s}){const r=n===null;if(!Array.isArray(e))throw new u6(e);if(!r&&e.length!==n)throw new v8({expectedLength:n,givenLength:e.length,type:`${s.type}[${n}]`});let l=!1;const u=[];for(let f=0;f<e.length;f++){const m=Mh({param:s,value:e[f]});m.dynamic&&(l=!0),u.push(m)}if(r||l){const f=Ch(u);if(r){const m=Ee(u.length,{size:32});return{dynamic:!0,encoded:u.length>0?ba([m,f]):m}}if(l)return{dynamic:!0,encoded:f}}return{dynamic:!1,encoded:ba(u.map(({encoded:f})=>f))}}function S3(e,{param:n}){const[,s]=n.type.split("bytes"),r=mt(e);if(!s){let l=e;return r%32!==0&&(l=Cs(l,{dir:"right",size:Math.ceil((e.length-2)/2/32)*32})),{dynamic:!0,encoded:ba([Cs(Ee(r,{size:32})),l])}}if(r!==Number.parseInt(s,10))throw new w8({expectedSize:Number.parseInt(s,10),value:e});return{dynamic:!1,encoded:Cs(e,{dir:"right"})}}function E3(e){if(typeof e!="boolean")throw new re(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:Cs(p6(e))}}function A3(e,{signed:n,size:s=256}){if(typeof s=="number"){const r=2n**(BigInt(s)-(n?1n:0n))-1n,l=n?-r-1n:0n;if(e>r||e<l)throw new h6({max:r.toString(),min:l.toString(),signed:n,size:s/8,value:e.toString()})}return{dynamic:!1,encoded:Ee(e,{size:32,signed:n})}}function T3(e){const n=zo(e),s=Math.ceil(mt(n)/32),r=[];for(let l=0;l<s;l++)r.push(Cs(xr(n,l*32,(l+1)*32),{dir:"right"}));return{dynamic:!0,encoded:ba([Cs(Ee(mt(n),{size:32})),...r])}}function k3(e,{param:n}){let s=!1;const r=[];for(let l=0;l<n.components.length;l++){const u=n.components[l],f=Array.isArray(e)?l:u.name,m=Mh({param:u,value:e[f]});r.push(m),m.dynamic&&(s=!0)}return{dynamic:s,encoded:s?Ch(r):ba(r.map(({encoded:l})=>l))}}function Oh(e){const n=e.match(/^(.*)\[(\d+)?\]$/);return n?[n[2]?Number(n[2]):null,n[1]]:void 0}const hl=e=>xr(S6(e),0,4);function wi(e){const{abi:n,args:s=[],name:r}=e,l=pa(r,{strict:!1}),u=n.filter(m=>l?m.type==="function"?hl(m)===r:m.type==="event"?gu(m)===r:!1:"name"in m&&m.name===r);if(u.length===0)return;if(u.length===1)return u[0];let f;for(const m of u){if(!("inputs"in m))continue;if(!s||s.length===0){if(!m.inputs||m.inputs.length===0)return m;continue}if(!m.inputs||m.inputs.length===0||m.inputs.length!==s.length)continue;if(s.every((y,b)=>{const w="inputs"in m&&m.inputs[b];return w?q0(y,w):!1})){if(f&&"inputs"in f&&f.inputs){const y=N6(m.inputs,f.inputs,s);if(y)throw new T8({abiItem:m,type:y[0]},{abiItem:f,type:y[1]})}f=m}}return f||u[0]}function q0(e,n){const s=typeof e,r=n.type;switch(r){case"address":return dn(e,{strict:!1});case"bool":return s==="boolean";case"function":return s==="string";case"string":return s==="string";default:return r==="tuple"&&"components"in n?Object.values(n.components).every((l,u)=>q0(Object.values(e)[u],l)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(r)?s==="number"||s==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(r)?s==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(r)?Array.isArray(e)&&e.every(l=>q0(l,{...n,type:r.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function N6(e,n,s){for(const r in e){const l=e[r],u=n[r];if(l.type==="tuple"&&u.type==="tuple"&&"components"in l&&"components"in u)return N6(l.components,u.components,s[r]);const f=[l.type,u.type];if(f.includes("address")&&f.includes("bytes20")?!0:f.includes("address")&&f.includes("string")?dn(s[r],{strict:!1}):f.includes("address")&&f.includes("bytes")?dn(s[r],{strict:!1}):!1)return f}}const H1="/docs/contract/encodeEventTopics";function pl(e){const{abi:n,eventName:s,args:r}=e;let l=n[0];if(s){const p=wi({abi:n,name:s});if(!p)throw new _1(s,{docsPath:H1});l=p}if(l.type!=="event")throw new _1(void 0,{docsPath:H1});const u=Xn(l),f=gu(u);let m=[];if(r&&"inputs"in l){const p=l.inputs?.filter(b=>"indexed"in b&&b.indexed),y=Array.isArray(r)?r:Object.values(r).length>0?p?.map(b=>r[b.name])??[]:[];y.length>0&&(m=p?.map((b,w)=>Array.isArray(y[w])?y[w].map((g,S)=>I1({param:b,value:y[w][S]})):typeof y[w]<"u"&&y[w]!==null?I1({param:b,value:y[w]}):null)??[])}return[f,...m]}function I1({param:e,value:n}){if(e.type==="string"||e.type==="bytes")return jt(jr(n));if(e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/))throw new R8(e.type);return vi([e],[n])}function wu(e,{method:n}){const s={};return e.transport.type==="fallback"&&e.transport.onResponse?.(({method:r,response:l,status:u,transport:f})=>{u==="success"&&n===r&&(s[l]=f.request)}),(r=>s[r]||e.request)}async function B6(e,n){const{address:s,abi:r,args:l,eventName:u,fromBlock:f,strict:m,toBlock:p}=n,y=wu(e,{method:"eth_newFilter"}),b=u?pl({abi:r,args:l,eventName:u}):void 0,w=await e.request({method:"eth_newFilter",params:[{address:s,fromBlock:typeof f=="bigint"?Ee(f):f,toBlock:typeof p=="bigint"?Ee(p):p,topics:b}]});return{abi:r,args:l,eventName:u,id:w,request:y(w),strict:!!m,type:"event"}}function na(e){return typeof e=="string"?{address:e,type:"json-rpc"}:e}const G1="/docs/contract/encodeFunctionData";function j3(e){const{abi:n,args:s,functionName:r}=e;let l=n[0];if(r){const u=wi({abi:n,args:s,name:r});if(!u)throw new gr(r,{docsPath:G1});l=u}if(l.type!=="function")throw new gr(void 0,{docsPath:G1});return{abi:[l],functionName:hl(Xn(l))}}function Gn(e){const{args:n}=e,{abi:s,functionName:r}=e.abi.length===1&&e.functionName?.startsWith("0x")?e:j3(e),l=s[0],u=r,f="inputs"in l&&l.inputs?vi(l.inputs,n??[]):void 0;return Nr([u,f??"0x"])}const N3={1:"An `assert` condition failed.",17:"Arithmetic operation resulted in underflow or overflow.",18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:"Attempted to convert to an invalid type.",34:"Attempted to access a storage byte array that is incorrectly encoded.",49:"Performed `.pop()` on an empty array",50:"Array index is out of bounds.",65:"Allocated too much memory or created an array which is too large.",81:"Attempted to call a zero-initialized variable of internal function type."},R6={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},B3={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"};let P1=class extends re{constructor({offset:n}){super(`Offset \`${n}\` cannot be negative.`,{name:"NegativeOffsetError"})}},M6=class extends re{constructor({length:n,position:s}){super(`Position \`${s}\` is out of bounds (\`0 < position < ${n}\`).`,{name:"PositionOutOfBoundsError"})}},R3=class extends re{constructor({count:n,limit:s}){super(`Recursive read limit of \`${s}\` exceeded (recursive read count: \`${n}\`).`,{name:"RecursiveReadLimitExceededError"})}};const M3={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new R3({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new M6({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new P1({offset:e});const n=this.position-e;this.assertPosition(n),this.position=n},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new P1({offset:e});const n=this.position+e;this.assertPosition(n),this.position=n},inspectByte(e){const n=e??this.position;return this.assertPosition(n),this.bytes[n]},inspectBytes(e,n){const s=n??this.position;return this.assertPosition(s+e-1),this.bytes.subarray(s,s+e)},inspectUint8(e){const n=e??this.position;return this.assertPosition(n),this.bytes[n]},inspectUint16(e){const n=e??this.position;return this.assertPosition(n+1),this.dataView.getUint16(n)},inspectUint24(e){const n=e??this.position;return this.assertPosition(n+2),(this.dataView.getUint16(n)<<8)+this.dataView.getUint8(n+2)},inspectUint32(e){const n=e??this.position;return this.assertPosition(n+3),this.dataView.getUint32(n)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,n){this.assertReadLimit(),this._touch();const s=this.inspectBytes(e);return this.position+=n??e,s},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const n=this.position;return this.assertPosition(e),this.position=e,()=>this.position=n},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function _h(e,{recursiveReadLimit:n=8192}={}){const s=Object.create(M3);return s.bytes=e,s.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),s.positionReadCount=new Map,s.recursiveReadLimit=n,s}function C3(e,n={}){typeof n.size<"u"&&ta(e,{size:n.size});const s=Nt(e,n);return ma(s,n)}function O3(e,n={}){let s=e;if(typeof n.size<"u"&&(ta(s,{size:n.size}),s=ri(s)),s.length>1||s[0]>1)throw new C8(s);return!!s[0]}function Ga(e,n={}){typeof n.size<"u"&&ta(e,{size:n.size});const s=Nt(e,n);return Ya(s,n)}function _3(e,n={}){let s=e;return typeof n.size<"u"&&(ta(s,{size:n.size}),s=ri(s,{dir:"right"})),new TextDecoder().decode(s)}function ml(e,n){const s=typeof n=="string"?ya(n):n,r=_h(s);if(mt(s)===0&&e.length>0)throw new fl;if(mt(n)&&mt(n)<32)throw new r6({data:typeof n=="string"?n:Nt(n),params:e,size:mt(n)});let l=0;const u=[];for(let f=0;f<e.length;++f){const m=e[f];r.setPosition(l);const[p,y]=hr(r,m,{staticPosition:0});l+=y,u.push(p)}return u}function hr(e,n,{staticPosition:s}){const r=Oh(n.type);if(r){const[l,u]=r;return $3(e,{...n,type:u},{length:l,staticPosition:s})}if(n.type==="tuple")return L3(e,n,{staticPosition:s});if(n.type==="address")return z3(e);if(n.type==="bool")return D3(e);if(n.type.startsWith("bytes"))return U3(e,n,{staticPosition:s});if(n.type.startsWith("uint")||n.type.startsWith("int"))return q3(e,n);if(n.type==="string")return H3(e,{staticPosition:s});throw new N8(n.type,{docsPath:"/docs/contract/decodeAbiParameters"})}const V1=32,L0=32;function z3(e){const n=e.readBytes(32);return[vu(Nt(k6(n,-20))),32]}function $3(e,n,{length:s,staticPosition:r}){if(!s){const f=Ga(e.readBytes(L0)),m=r+f,p=m+V1;e.setPosition(m);const y=Ga(e.readBytes(V1)),b=Do(n);let w=0;const g=[];for(let S=0;S<y;++S){e.setPosition(p+(b?S*32:w));const[T,x]=hr(e,n,{staticPosition:p});w+=x,g.push(T)}return e.setPosition(r+32),[g,32]}if(Do(n)){const f=Ga(e.readBytes(L0)),m=r+f,p=[];for(let y=0;y<s;++y){e.setPosition(m+y*32);const[b]=hr(e,n,{staticPosition:m});p.push(b)}return e.setPosition(r+32),[p,32]}let l=0;const u=[];for(let f=0;f<s;++f){const[m,p]=hr(e,n,{staticPosition:r+l});l+=p,u.push(m)}return[u,l]}function D3(e){return[O3(e.readBytes(32),{size:32}),32]}function U3(e,n,{staticPosition:s}){const[r,l]=n.type.split("bytes");if(!l){const f=Ga(e.readBytes(32));e.setPosition(s+f);const m=Ga(e.readBytes(32));if(m===0)return e.setPosition(s+32),["0x",32];const p=e.readBytes(m);return e.setPosition(s+32),[Nt(p),32]}return[Nt(e.readBytes(Number.parseInt(l,10),32)),32]}function q3(e,n){const s=n.type.startsWith("int"),r=Number.parseInt(n.type.split("int")[1]||"256",10),l=e.readBytes(32);return[r>48?C3(l,{signed:s}):Ga(l,{signed:s}),32]}function L3(e,n,{staticPosition:s}){const r=n.components.length===0||n.components.some(({name:f})=>!f),l=r?[]:{};let u=0;if(Do(n)){const f=Ga(e.readBytes(L0)),m=s+f;for(let p=0;p<n.components.length;++p){const y=n.components[p];e.setPosition(m+u);const[b,w]=hr(e,y,{staticPosition:m});u+=w,l[r?p:y?.name]=b}return e.setPosition(s+32),[l,32]}for(let f=0;f<n.components.length;++f){const m=n.components[f],[p,y]=hr(e,m,{staticPosition:s});l[r?f:m?.name]=p,u+=y}return[l,u]}function H3(e,{staticPosition:n}){const s=Ga(e.readBytes(32)),r=n+s;e.setPosition(r);const l=Ga(e.readBytes(32));if(l===0)return e.setPosition(n+32),["",32];const u=e.readBytes(l,32),f=_3(ri(u));return e.setPosition(n+32),[f,32]}function Do(e){const{type:n}=e;if(n==="string"||n==="bytes"||n.endsWith("[]"))return!0;if(n==="tuple")return e.components?.some(Do);const s=Oh(e.type);return!!(s&&Do({...e,type:s[1]}))}function C6(e){const{abi:n,data:s}=e,r=xr(s,0,4);if(r==="0x")throw new fl;const u=[...n||[],R6,B3].find(f=>f.type==="error"&&r===hl(Xn(f)));if(!u)throw new o6(r,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:u,args:"inputs"in u&&u.inputs&&u.inputs.length>0?ml(u.inputs,xr(s,4)):void 0,errorName:u.name}}const Gt=(e,n,s)=>JSON.stringify(e,(r,l)=>typeof l=="bigint"?l.toString():l,s);function O6({abiItem:e,args:n,includeFunctionName:s=!0,includeName:r=!1}){if("name"in e&&"inputs"in e&&e.inputs)return`${s?e.name:""}(${e.inputs.map((l,u)=>`${r&&l.name?`${l.name}: `:""}${typeof n[u]=="object"?Gt(n[u]):n[u]}`).join(", ")})`}const I3={gwei:9,wei:18},G3={ether:-9,wei:9};function Pa(e,n){let s=e.toString();const r=s.startsWith("-");r&&(s=s.slice(1)),s=s.padStart(n,"0");let[l,u]=[s.slice(0,s.length-n),s.slice(s.length-n)];return u=u.replace(/(0+)$/,""),`${r?"-":""}${l||"0"}${u?`.${u}`:""}`}function _6(e,n="wei"){return Pa(e,I3[n])}function Yn(e,n="wei"){return Pa(e,G3[n])}class P3 extends re{constructor({address:n}){super(`State for account "${n}" is set multiple times.`,{name:"AccountStateConflictError"})}}class V3 extends re{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}function K1(e){return e.reduce((n,{slot:s,value:r})=>`${n} ${s}: ${r} +`,"")}function K3(e){return e.reduce((n,{address:s,...r})=>{let l=`${n} ${s}: `;return r.nonce&&(l+=` nonce: ${r.nonce} `),r.balance&&(l+=` balance: ${r.balance} `),r.code&&(l+=` code: ${r.code} `),r.state&&(l+=` state: -`,l+=V1(r.state)),r.stateDiff&&(l+=` stateDiff: -`,l+=V1(r.stateDiff)),l},` State Override: +`,l+=K1(r.state)),r.stateDiff&&(l+=` stateDiff: +`,l+=K1(r.stateDiff)),l},` State Override: `).slice(0,-1)}function xu(e){const n=Object.entries(e).map(([r,l])=>l===void 0||l===!1?null:[r,l]).filter(Boolean),s=n.reduce((r,[l])=>Math.max(r,l.length),0);return n.map(([r,l])=>` ${`${r}:`.padEnd(s+1)} ${l}`).join(` `)}class F3 extends re{constructor(){super(["Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.","Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others."].join(` -`),{name:"FeeConflictError"})}}class Y3 extends re{constructor({transaction:n}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",xu(n),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class _6 extends re{constructor({blockHash:n,blockNumber:s,blockTag:r,hash:l,index:u}){let f="Transaction";r&&u!==void 0&&(f=`Transaction at block time "${r}" at index "${u}"`),n&&u!==void 0&&(f=`Transaction at block hash "${n}" at index "${u}"`),s&&u!==void 0&&(f=`Transaction at block number "${s}" at index "${u}"`),l&&(f=`Transaction with hash "${l}"`),super(`${f} could not be found.`,{name:"TransactionNotFoundError"})}}class $6 extends re{constructor({hash:n}){super(`Transaction receipt with hash "${n}" could not be found. The Transaction may not be processed on a block yet.`,{name:"TransactionReceiptNotFoundError"})}}class Z3 extends re{constructor({receipt:n}){super(`Transaction with hash "${n.transactionHash}" reverted.`,{metaMessages:['The receipt marked the transaction as "reverted". This could mean that the function on the contract you are trying to call threw an error.'," ","You can attempt to extract the revert reason by:","- calling the `simulateContract` or `simulateCalls` Action with the `abi` and `functionName` of the contract","- using the `call` Action with raw `data`"],name:"TransactionReceiptRevertedError"}),Object.defineProperty(this,"receipt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.receipt=n}}class X3 extends re{constructor({hash:n}){super(`Timed out while waiting for transaction with hash "${n}" to be confirmed.`,{name:"WaitForTransactionReceiptTimeoutError"})}}const Q3=e=>e,_h=e=>e;class D6 extends re{constructor(n,{account:s,docsPath:r,chain:l,data:u,gas:f,gasPrice:p,maxFeePerGas:m,maxPriorityFeePerGas:y,nonce:b,to:w,value:g,stateOverride:S}){const T=s?na(s):void 0;let x=xu({from:T?.address,to:w,value:typeof g<"u"&&`${z6(g)} ${l?.nativeCurrency?.symbol||"ETH"}`,data:u,gas:f,gasPrice:typeof p<"u"&&`${Yn(p)} gwei`,maxFeePerGas:typeof m<"u"&&`${Yn(m)} gwei`,maxPriorityFeePerGas:typeof y<"u"&&`${Yn(y)} gwei`,nonce:b});S&&(x+=` -${V3(S)}`),super(n.shortMessage,{cause:n,docsPath:r,metaMessages:[...n.metaMessages?[...n.metaMessages," "]:[],"Raw Call Arguments:",x].filter(Boolean),name:"CallExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=n}}class U6 extends re{constructor(n,{abi:s,args:r,contractAddress:l,docsPath:u,functionName:f,sender:p}){const m=wi({abi:s,args:r,name:f}),y=m?O6({abiItem:m,args:r,includeFunctionName:!1,includeName:!1}):void 0,b=m?Xn(m,{includeName:!0}):void 0,w=xu({address:l&&Q3(l),function:b,args:y&&y!=="()"&&`${[...Array(f?.length??0).keys()].map(()=>" ").join("")}${y}`,sender:p});super(n.shortMessage||`An unknown error occurred while executing the contract function "${f}".`,{cause:n,docsPath:u,metaMessages:[...n.metaMessages?[...n.metaMessages," "]:[],w&&"Contract Call:",w].filter(Boolean),name:"ContractFunctionExecutionError"}),Object.defineProperty(this,"abi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"contractAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formattedArgs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sender",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abi=s,this.args=r,this.cause=n,this.contractAddress=l,this.functionName=f,this.sender=p}}class H0 extends re{constructor({abi:n,data:s,functionName:r,message:l}){let u,f,p,m;if(s&&s!=="0x")try{f=C6({abi:n,data:s});const{abiItem:b,errorName:w,args:g}=f;if(w==="Error")m=g[0];else if(w==="Panic"){const[S]=g;m=N3[S]}else{const S=b?Xn(b,{includeName:!0}):void 0,T=b&&g?O6({abiItem:b,args:g,includeFunctionName:!1,includeName:!1}):void 0;p=[S?`Error: ${S}`:"",T&&T!=="()"?` ${[...Array(w?.length??0).keys()].map(()=>" ").join("")}${T}`:""]}}catch(b){u=b}else l&&(m=l);let y;u instanceof o6&&(y=u.signature,p=[`Unable to decode signature "${y}" as it was not found on the provided ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${y}.`]),super(m&&m!=="execution reverted"||y?[`The contract function "${r}" reverted with the following ${y?"signature":"reason"}:`,m||y].join(` -`):`The contract function "${r}" reverted.`,{cause:u,metaMessages:p,name:"ContractFunctionRevertedError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reason",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=f,this.raw=s,this.reason=m,this.signature=y}}class J3 extends re{constructor({functionName:n}){super(`The contract function "${n}" returned no data ("0x").`,{metaMessages:["This could be due to any of the following:",` - The contract does not have the function "${n}",`," - The parameters passed to the contract function may be invalid, or"," - The address is not a contract."],name:"ContractFunctionZeroDataError"})}}class W3 extends re{constructor({factory:n}){super(`Deployment for counterfactual contract call failed${n?` for factory "${n}".`:""}`,{metaMessages:["Please ensure:","- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).","- The `factoryData` is a valid encoded function call for contract deployment function on the factory."],name:"CounterfactualDeploymentFailedError"})}}class Su extends re{constructor({data:n,message:s}){super(s||"",{name:"RawContractError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=n}}class Mo extends re{constructor({body:n,cause:s,details:r,headers:l,status:u,url:f}){super("HTTP request failed.",{cause:s,details:r,metaMessages:[u&&`Status: ${u}`,`URL: ${_h(f)}`,n&&`Request body: ${Gt(n)}`].filter(Boolean),name:"HttpRequestError"}),Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=n,this.headers=l,this.status=u,this.url=f}}class $h extends re{constructor({body:n,error:s,url:r}){super("RPC Request failed.",{cause:s,details:s.message,metaMessages:[`URL: ${_h(r)}`,`Request body: ${Gt(n)}`],name:"RpcRequestError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=s.code,this.data=s.data}}class F1 extends re{constructor({body:n,url:s}){super("The request took too long to respond.",{details:"The request timed out.",metaMessages:[`URL: ${_h(s)}`,`Request body: ${Gt(n)}`],name:"TimeoutError"})}}const eS=-1;class hn extends re{constructor(n,{code:s,docsPath:r,metaMessages:l,name:u,shortMessage:f}){super(f,{cause:n,docsPath:r,metaMessages:l||n?.metaMessages,name:u||"RpcError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=u||n.name,this.code=n instanceof $h?n.code:s??eS}}class kn extends hn{constructor(n,s){super(n,s),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=s.data}}class Uo extends hn{constructor(n){super(n,{code:Uo.code,name:"ParseRpcError",shortMessage:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."})}}Object.defineProperty(Uo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});class qo extends hn{constructor(n){super(n,{code:qo.code,name:"InvalidRequestRpcError",shortMessage:"JSON is not a valid request object."})}}Object.defineProperty(qo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});class Lo extends hn{constructor(n,{method:s}={}){super(n,{code:Lo.code,name:"MethodNotFoundRpcError",shortMessage:`The method${s?` "${s}"`:""} does not exist / is not available.`})}}Object.defineProperty(Lo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});class Ho extends hn{constructor(n){super(n,{code:Ho.code,name:"InvalidParamsRpcError",shortMessage:["Invalid parameters were provided to the RPC method.","Double check you have provided the correct parameters."].join(` +`),{name:"FeeConflictError"})}}class Y3 extends re{constructor({transaction:n}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",xu(n),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class z6 extends re{constructor({blockHash:n,blockNumber:s,blockTag:r,hash:l,index:u}){let f="Transaction";r&&u!==void 0&&(f=`Transaction at block time "${r}" at index "${u}"`),n&&u!==void 0&&(f=`Transaction at block hash "${n}" at index "${u}"`),s&&u!==void 0&&(f=`Transaction at block number "${s}" at index "${u}"`),l&&(f=`Transaction with hash "${l}"`),super(`${f} could not be found.`,{name:"TransactionNotFoundError"})}}class $6 extends re{constructor({hash:n}){super(`Transaction receipt with hash "${n}" could not be found. The Transaction may not be processed on a block yet.`,{name:"TransactionReceiptNotFoundError"})}}class Z3 extends re{constructor({receipt:n}){super(`Transaction with hash "${n.transactionHash}" reverted.`,{metaMessages:['The receipt marked the transaction as "reverted". This could mean that the function on the contract you are trying to call threw an error.'," ","You can attempt to extract the revert reason by:","- calling the `simulateContract` or `simulateCalls` Action with the `abi` and `functionName` of the contract","- using the `call` Action with raw `data`"],name:"TransactionReceiptRevertedError"}),Object.defineProperty(this,"receipt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.receipt=n}}class X3 extends re{constructor({hash:n}){super(`Timed out while waiting for transaction with hash "${n}" to be confirmed.`,{name:"WaitForTransactionReceiptTimeoutError"})}}const Q3=e=>e,zh=e=>e;class D6 extends re{constructor(n,{account:s,docsPath:r,chain:l,data:u,gas:f,gasPrice:m,maxFeePerGas:p,maxPriorityFeePerGas:y,nonce:b,to:w,value:g,stateOverride:S}){const T=s?na(s):void 0;let x=xu({from:T?.address,to:w,value:typeof g<"u"&&`${_6(g)} ${l?.nativeCurrency?.symbol||"ETH"}`,data:u,gas:f,gasPrice:typeof m<"u"&&`${Yn(m)} gwei`,maxFeePerGas:typeof p<"u"&&`${Yn(p)} gwei`,maxPriorityFeePerGas:typeof y<"u"&&`${Yn(y)} gwei`,nonce:b});S&&(x+=` +${K3(S)}`),super(n.shortMessage,{cause:n,docsPath:r,metaMessages:[...n.metaMessages?[...n.metaMessages," "]:[],"Raw Call Arguments:",x].filter(Boolean),name:"CallExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=n}}class U6 extends re{constructor(n,{abi:s,args:r,contractAddress:l,docsPath:u,functionName:f,sender:m}){const p=wi({abi:s,args:r,name:f}),y=p?O6({abiItem:p,args:r,includeFunctionName:!1,includeName:!1}):void 0,b=p?Xn(p,{includeName:!0}):void 0,w=xu({address:l&&Q3(l),function:b,args:y&&y!=="()"&&`${[...Array(f?.length??0).keys()].map(()=>" ").join("")}${y}`,sender:m});super(n.shortMessage||`An unknown error occurred while executing the contract function "${f}".`,{cause:n,docsPath:u,metaMessages:[...n.metaMessages?[...n.metaMessages," "]:[],w&&"Contract Call:",w].filter(Boolean),name:"ContractFunctionExecutionError"}),Object.defineProperty(this,"abi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"contractAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formattedArgs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sender",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abi=s,this.args=r,this.cause=n,this.contractAddress=l,this.functionName=f,this.sender=m}}class H0 extends re{constructor({abi:n,data:s,functionName:r,message:l}){let u,f,m,p;if(s&&s!=="0x")try{f=C6({abi:n,data:s});const{abiItem:b,errorName:w,args:g}=f;if(w==="Error")p=g[0];else if(w==="Panic"){const[S]=g;p=N3[S]}else{const S=b?Xn(b,{includeName:!0}):void 0,T=b&&g?O6({abiItem:b,args:g,includeFunctionName:!1,includeName:!1}):void 0;m=[S?`Error: ${S}`:"",T&&T!=="()"?` ${[...Array(w?.length??0).keys()].map(()=>" ").join("")}${T}`:""]}}catch(b){u=b}else l&&(p=l);let y;u instanceof o6&&(y=u.signature,m=[`Unable to decode signature "${y}" as it was not found on the provided ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${y}.`]),super(p&&p!=="execution reverted"||y?[`The contract function "${r}" reverted with the following ${y?"signature":"reason"}:`,p||y].join(` +`):`The contract function "${r}" reverted.`,{cause:u,metaMessages:m,name:"ContractFunctionRevertedError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reason",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=f,this.raw=s,this.reason=p,this.signature=y}}class J3 extends re{constructor({functionName:n}){super(`The contract function "${n}" returned no data ("0x").`,{metaMessages:["This could be due to any of the following:",` - The contract does not have the function "${n}",`," - The parameters passed to the contract function may be invalid, or"," - The address is not a contract."],name:"ContractFunctionZeroDataError"})}}class W3 extends re{constructor({factory:n}){super(`Deployment for counterfactual contract call failed${n?` for factory "${n}".`:""}`,{metaMessages:["Please ensure:","- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).","- The `factoryData` is a valid encoded function call for contract deployment function on the factory."],name:"CounterfactualDeploymentFailedError"})}}class Su extends re{constructor({data:n,message:s}){super(s||"",{name:"RawContractError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=n}}class Mo extends re{constructor({body:n,cause:s,details:r,headers:l,status:u,url:f}){super("HTTP request failed.",{cause:s,details:r,metaMessages:[u&&`Status: ${u}`,`URL: ${zh(f)}`,n&&`Request body: ${Gt(n)}`].filter(Boolean),name:"HttpRequestError"}),Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=n,this.headers=l,this.status=u,this.url=f}}class $h extends re{constructor({body:n,error:s,url:r}){super("RPC Request failed.",{cause:s,details:s.message,metaMessages:[`URL: ${zh(r)}`,`Request body: ${Gt(n)}`],name:"RpcRequestError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=s.code,this.data=s.data}}class F1 extends re{constructor({body:n,url:s}){super("The request took too long to respond.",{details:"The request timed out.",metaMessages:[`URL: ${zh(s)}`,`Request body: ${Gt(n)}`],name:"TimeoutError"})}}const eS=-1;class hn extends re{constructor(n,{code:s,docsPath:r,metaMessages:l,name:u,shortMessage:f}){super(f,{cause:n,docsPath:r,metaMessages:l||n?.metaMessages,name:u||"RpcError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=u||n.name,this.code=n instanceof $h?n.code:s??eS}}class kn extends hn{constructor(n,s){super(n,s),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=s.data}}class Uo extends hn{constructor(n){super(n,{code:Uo.code,name:"ParseRpcError",shortMessage:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."})}}Object.defineProperty(Uo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});class qo extends hn{constructor(n){super(n,{code:qo.code,name:"InvalidRequestRpcError",shortMessage:"JSON is not a valid request object."})}}Object.defineProperty(qo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});class Lo extends hn{constructor(n,{method:s}={}){super(n,{code:Lo.code,name:"MethodNotFoundRpcError",shortMessage:`The method${s?` "${s}"`:""} does not exist / is not available.`})}}Object.defineProperty(Lo,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});class Ho extends hn{constructor(n){super(n,{code:Ho.code,name:"InvalidParamsRpcError",shortMessage:["Invalid parameters were provided to the RPC method.","Double check you have provided the correct parameters."].join(` `)})}}Object.defineProperty(Ho,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});class fi extends hn{constructor(n){super(n,{code:fi.code,name:"InternalRpcError",shortMessage:"An internal error was received."})}}Object.defineProperty(fi,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});class hi extends hn{constructor(n){super(n,{code:hi.code,name:"InvalidInputRpcError",shortMessage:["Missing or invalid parameters.","Double check you have provided the correct parameters."].join(` -`)})}}Object.defineProperty(hi,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});class Io extends hn{constructor(n){super(n,{code:Io.code,name:"ResourceNotFoundRpcError",shortMessage:"Requested resource not found."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceNotFoundRpcError"})}}Object.defineProperty(Io,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});class Go extends hn{constructor(n){super(n,{code:Go.code,name:"ResourceUnavailableRpcError",shortMessage:"Requested resource not available."})}}Object.defineProperty(Go,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});class Sr extends hn{constructor(n){super(n,{code:Sr.code,name:"TransactionRejectedRpcError",shortMessage:"Transaction creation failed."})}}Object.defineProperty(Sr,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003});class ai extends hn{constructor(n,{method:s}={}){super(n,{code:ai.code,name:"MethodNotSupportedRpcError",shortMessage:`Method${s?` "${s}"`:""} is not supported.`})}}Object.defineProperty(ai,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004});class Er extends hn{constructor(n){super(n,{code:Er.code,name:"LimitExceededRpcError",shortMessage:"Request exceeds defined limit."})}}Object.defineProperty(Er,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});class Po extends hn{constructor(n){super(n,{code:Po.code,name:"JsonRpcVersionUnsupportedError",shortMessage:"Version of JSON-RPC protocol is not supported."})}}Object.defineProperty(Po,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});class li extends kn{constructor(n){super(n,{code:li.code,name:"UserRejectedRequestError",shortMessage:"User rejected the request."})}}Object.defineProperty(li,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});class Ko extends kn{constructor(n){super(n,{code:Ko.code,name:"UnauthorizedProviderError",shortMessage:"The requested method and/or account has not been authorized by the user."})}}Object.defineProperty(Ko,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});class Vo extends kn{constructor(n,{method:s}={}){super(n,{code:Vo.code,name:"UnsupportedProviderMethodError",shortMessage:`The Provider does not support the requested method${s?` " ${s}"`:""}.`})}}Object.defineProperty(Vo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});class Fo extends kn{constructor(n){super(n,{code:Fo.code,name:"ProviderDisconnectedError",shortMessage:"The Provider is disconnected from all chains."})}}Object.defineProperty(Fo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});class Yo extends kn{constructor(n){super(n,{code:Yo.code,name:"ChainDisconnectedError",shortMessage:"The Provider is not connected to the requested chain."})}}Object.defineProperty(Yo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});class Zo extends kn{constructor(n){super(n,{code:Zo.code,name:"SwitchChainError",shortMessage:"An error occurred when attempting to switch chain."})}}Object.defineProperty(Zo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902});class Xo extends kn{constructor(n){super(n,{code:Xo.code,name:"UnsupportedNonOptionalCapabilityError",shortMessage:"This Wallet does not support a capability that was not marked as optional."})}}Object.defineProperty(Xo,"code",{enumerable:!0,configurable:!0,writable:!0,value:5700});class Qo extends kn{constructor(n){super(n,{code:Qo.code,name:"UnsupportedChainIdError",shortMessage:"This Wallet does not support the requested chain ID."})}}Object.defineProperty(Qo,"code",{enumerable:!0,configurable:!0,writable:!0,value:5710});class Jo extends kn{constructor(n){super(n,{code:Jo.code,name:"DuplicateIdError",shortMessage:"There is already a bundle submitted with this ID."})}}Object.defineProperty(Jo,"code",{enumerable:!0,configurable:!0,writable:!0,value:5720});class Wo extends kn{constructor(n){super(n,{code:Wo.code,name:"UnknownBundleIdError",shortMessage:"This bundle id is unknown / has not been submitted"})}}Object.defineProperty(Wo,"code",{enumerable:!0,configurable:!0,writable:!0,value:5730});class el extends kn{constructor(n){super(n,{code:el.code,name:"BundleTooLargeError",shortMessage:"The call bundle is too large for the Wallet to process."})}}Object.defineProperty(el,"code",{enumerable:!0,configurable:!0,writable:!0,value:5740});class tl extends kn{constructor(n){super(n,{code:tl.code,name:"AtomicReadyWalletRejectedUpgradeError",shortMessage:"The Wallet can support atomicity after an upgrade, but the user rejected the upgrade."})}}Object.defineProperty(tl,"code",{enumerable:!0,configurable:!0,writable:!0,value:5750});class nl extends kn{constructor(n){super(n,{code:nl.code,name:"AtomicityNotSupportedError",shortMessage:"The wallet does not support atomic execution but the request requires it."})}}Object.defineProperty(nl,"code",{enumerable:!0,configurable:!0,writable:!0,value:5760});class tS extends hn{constructor(n){super(n,{name:"UnknownRpcError",shortMessage:"An unknown RPC error occurred."})}}const nS=3;function Ar(e,{abi:n,address:s,args:r,docsPath:l,functionName:u,sender:f}){const p=e instanceof Su?e:e instanceof re?e.walk(T=>"data"in T)||e.walk():{},{code:m,data:y,details:b,message:w,shortMessage:g}=p,S=e instanceof fl?new J3({functionName:u}):[nS,fi.code].includes(m)&&(y||b||w||g)?new H0({abi:n,data:typeof y=="object"?y.data:y,functionName:u,message:p instanceof $h?b:g??w}):e;return new U6(S,{abi:n,args:r,contractAddress:s,docsPath:l,functionName:u,sender:f})}function aS(e){const n=jt(`0x${e.substring(4)}`).substring(26);return vu(`0x${n}`)}const sS="modulepreload",iS=function(e,n){return new URL(e,n).href},Y1={},q6=function(n,s,r){let l=Promise.resolve();if(s&&s.length>0){let y=function(b){return Promise.all(b.map(w=>Promise.resolve(w).then(g=>({status:"fulfilled",value:g}),g=>({status:"rejected",reason:g}))))};const f=document.getElementsByTagName("link"),p=document.querySelector("meta[property=csp-nonce]"),m=p?.nonce||p?.getAttribute("nonce");l=y(s.map(b=>{if(b=iS(b,r),b in Y1)return;Y1[b]=!0;const w=b.endsWith(".css"),g=w?'[rel="stylesheet"]':"";if(r)for(let T=f.length-1;T>=0;T--){const x=f[T];if(x.href===b&&(!w||x.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${b}"]${g}`))return;const S=document.createElement("link");if(S.rel=w?"stylesheet":sS,w||(S.as="script"),S.crossOrigin="",S.href=b,m&&S.setAttribute("nonce",m),document.head.appendChild(S),w)return new Promise((T,x)=>{S.addEventListener("load",T),S.addEventListener("error",()=>x(new Error(`Unable to preload CSS for ${b}`)))})}))}function u(f){const p=new Event("vite:preloadError",{cancelable:!0});if(p.payload=f,window.dispatchEvent(p),!p.defaultPrevented)throw f}return l.then(f=>{for(const p of f||[])p.status==="rejected"&&u(p.reason);return n().catch(u)})};async function rS({hash:e,signature:n}){const s=pa(e)?e:_s(e),{secp256k1:r}=await q6(async()=>{const{secp256k1:f}=await Promise.resolve().then(()=>_T);return{secp256k1:f}},void 0,import.meta.url);return`0x${(()=>{if(typeof n=="object"&&"r"in n&&"s"in n){const{r:y,s:b,v:w,yParity:g}=n,S=Number(g??w),T=Z1(S);return new r.Signature(ma(y),ma(b)).addRecoveryBit(T)}const f=pa(n)?n:_s(n);if(mt(f)!==65)throw new Error("invalid signature length");const p=Ya(`0x${f.slice(130)}`),m=Z1(p);return r.Signature.fromCompact(f.substring(2,130)).addRecoveryBit(m)})().recoverPublicKey(s.substring(2)).toHex(!1)}`}function Z1(e){if(e===0||e===1)return e;if(e===27)return 0;if(e===28)return 1;throw new Error("Invalid yParityOrV value")}async function L6({hash:e,signature:n}){return aS(await rS({hash:e,signature:n}))}function oS(e,n="hex"){const s=H6(e),r=zh(new Uint8Array(s.length));return s.encode(r),n==="hex"?Nt(r.bytes):r.bytes}function H6(e){return Array.isArray(e)?lS(e.map(n=>H6(n))):cS(e)}function lS(e){const n=e.reduce((l,u)=>l+u.length,0),s=I6(n);return{length:n<=55?1+n:1+s+n,encode(l){n<=55?l.pushByte(192+n):(l.pushByte(247+s),s===1?l.pushUint8(n):s===2?l.pushUint16(n):s===3?l.pushUint24(n):l.pushUint32(n));for(const{encode:u}of e)u(l)}}}function cS(e){const n=typeof e=="string"?ya(e):e,s=I6(n.length);return{length:n.length===1&&n[0]<128?1:n.length<=55?1+n.length:1+s+n.length,encode(l){n.length===1&&n[0]<128?l.pushBytes(n):n.length<=55?(l.pushByte(128+n.length),l.pushBytes(n)):(l.pushByte(183+s),s===1?l.pushUint8(n.length):s===2?l.pushUint16(n.length):s===3?l.pushUint24(n.length):l.pushUint32(n.length),l.pushBytes(n))}}}function I6(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new re("Length is too large.")}function uS(e){const{chainId:n,nonce:s,to:r}=e,l=e.contractAddress??e.address,u=jt(Nr(["0x05",oS([n?Ee(n):"0x",l,s?Ee(s):"0x"])]));return r==="bytes"?ya(u):u}async function G6(e){const{authorization:n,signature:s}=e;return L6({hash:uS(n),signature:s??n})}class dS extends re{constructor(n,{account:s,docsPath:r,chain:l,data:u,gas:f,gasPrice:p,maxFeePerGas:m,maxPriorityFeePerGas:y,nonce:b,to:w,value:g}){const S=xu({from:s?.address,to:w,value:typeof g<"u"&&`${z6(g)} ${l?.nativeCurrency?.symbol||"ETH"}`,data:u,gas:f,gasPrice:typeof p<"u"&&`${Yn(p)} gwei`,maxFeePerGas:typeof m<"u"&&`${Yn(m)} gwei`,maxPriorityFeePerGas:typeof y<"u"&&`${Yn(y)} gwei`,nonce:b});super(n.shortMessage,{cause:n,docsPath:r,metaMessages:[...n.metaMessages?[...n.metaMessages," "]:[],"Estimate Gas Arguments:",S].filter(Boolean),name:"EstimateGasExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=n}}class si extends re{constructor({cause:n,message:s}={}){const r=s?.replace("execution reverted: ","")?.replace("execution reverted","");super(`Execution reverted ${r?`with reason: ${r}`:"for an unknown reason"}.`,{cause:n,name:"ExecutionRevertedError"})}}Object.defineProperty(si,"code",{enumerable:!0,configurable:!0,writable:!0,value:3});Object.defineProperty(si,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted/});class tu extends re{constructor({cause:n,maxFeePerGas:s}={}){super(`The fee cap (\`maxFeePerGas\`${s?` = ${Yn(s)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:n,name:"FeeCapTooHighError"})}}Object.defineProperty(tu,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class I0 extends re{constructor({cause:n,maxFeePerGas:s}={}){super(`The fee cap (\`maxFeePerGas\`${s?` = ${Yn(s)}`:""} gwei) cannot be lower than the block base fee.`,{cause:n,name:"FeeCapTooLowError"})}}Object.defineProperty(I0,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});class G0 extends re{constructor({cause:n,nonce:s}={}){super(`Nonce provided for the transaction ${s?`(${s}) `:""}is higher than the next one expected.`,{cause:n,name:"NonceTooHighError"})}}Object.defineProperty(G0,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});class P0 extends re{constructor({cause:n,nonce:s}={}){super([`Nonce provided for the transaction ${s?`(${s}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(` -`),{cause:n,name:"NonceTooLowError"})}}Object.defineProperty(P0,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});class K0 extends re{constructor({cause:n,nonce:s}={}){super(`Nonce provided for the transaction ${s?`(${s}) `:""}exceeds the maximum allowed nonce.`,{cause:n,name:"NonceMaxValueError"})}}Object.defineProperty(K0,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});class V0 extends re{constructor({cause:n}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(` -`),{cause:n,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}}Object.defineProperty(V0,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});class F0 extends re{constructor({cause:n,gas:s}={}){super(`The amount of gas ${s?`(${s}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:n,name:"IntrinsicGasTooHighError"})}}Object.defineProperty(F0,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});class Y0 extends re{constructor({cause:n,gas:s}={}){super(`The amount of gas ${s?`(${s}) `:""}provided for the transaction is too low.`,{cause:n,name:"IntrinsicGasTooLowError"})}}Object.defineProperty(Y0,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});class Z0 extends re{constructor({cause:n}){super("The transaction type is not supported for this chain.",{cause:n,name:"TransactionTypeNotSupportedError"})}}Object.defineProperty(Z0,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});class nu extends re{constructor({cause:n,maxPriorityFeePerGas:s,maxFeePerGas:r}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${s?` = ${Yn(s)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${r?` = ${Yn(r)} gwei`:""}).`].join(` -`),{cause:n,name:"TipAboveFeeCapError"})}}Object.defineProperty(nu,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class Eu extends re{constructor({cause:n}){super(`An error occurred while executing: ${n?.shortMessage}`,{cause:n,name:"UnknownNodeError"})}}function Dh(e,n){const s=(e.details||"").toLowerCase(),r=e instanceof re?e.walk(l=>l?.code===si.code):e;return r instanceof re?new si({cause:e,message:r.details}):si.nodeMessage.test(s)?new si({cause:e,message:e.details}):tu.nodeMessage.test(s)?new tu({cause:e,maxFeePerGas:n?.maxFeePerGas}):I0.nodeMessage.test(s)?new I0({cause:e,maxFeePerGas:n?.maxFeePerGas}):G0.nodeMessage.test(s)?new G0({cause:e,nonce:n?.nonce}):P0.nodeMessage.test(s)?new P0({cause:e,nonce:n?.nonce}):K0.nodeMessage.test(s)?new K0({cause:e,nonce:n?.nonce}):V0.nodeMessage.test(s)?new V0({cause:e}):F0.nodeMessage.test(s)?new F0({cause:e,gas:n?.gas}):Y0.nodeMessage.test(s)?new Y0({cause:e,gas:n?.gas}):Z0.nodeMessage.test(s)?new Z0({cause:e}):nu.nodeMessage.test(s)?new nu({cause:e,maxFeePerGas:n?.maxFeePerGas,maxPriorityFeePerGas:n?.maxPriorityFeePerGas}):new Eu({cause:e})}function fS(e,{docsPath:n,...s}){const r=(()=>{const l=Dh(e,s);return l instanceof Eu?e:l})();return new dS(r,{docsPath:n,...s})}function Uh(e,{format:n}){if(!n)return{};const s={};function r(u){const f=Object.keys(u);for(const p of f)p in e&&(s[p]=e[p]),u[p]&&typeof u[p]=="object"&&!Array.isArray(u[p])&&r(u[p])}const l=n(e||{});return r(l),s}const hS={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"};function Au(e,n){const s={};return typeof e.authorizationList<"u"&&(s.authorizationList=pS(e.authorizationList)),typeof e.accessList<"u"&&(s.accessList=e.accessList),typeof e.blobVersionedHashes<"u"&&(s.blobVersionedHashes=e.blobVersionedHashes),typeof e.blobs<"u"&&(typeof e.blobs[0]!="string"?s.blobs=e.blobs.map(r=>Nt(r)):s.blobs=e.blobs),typeof e.data<"u"&&(s.data=e.data),typeof e.from<"u"&&(s.from=e.from),typeof e.gas<"u"&&(s.gas=Ee(e.gas)),typeof e.gasPrice<"u"&&(s.gasPrice=Ee(e.gasPrice)),typeof e.maxFeePerBlobGas<"u"&&(s.maxFeePerBlobGas=Ee(e.maxFeePerBlobGas)),typeof e.maxFeePerGas<"u"&&(s.maxFeePerGas=Ee(e.maxFeePerGas)),typeof e.maxPriorityFeePerGas<"u"&&(s.maxPriorityFeePerGas=Ee(e.maxPriorityFeePerGas)),typeof e.nonce<"u"&&(s.nonce=Ee(e.nonce)),typeof e.to<"u"&&(s.to=e.to),typeof e.type<"u"&&(s.type=hS[e.type]),typeof e.value<"u"&&(s.value=Ee(e.value)),s}function pS(e){return e.map(n=>({address:n.address,r:n.r?Ee(BigInt(n.r)):n.r,s:n.s?Ee(BigInt(n.s)):n.s,chainId:Ee(n.chainId),nonce:Ee(n.nonce),...typeof n.yParity<"u"?{yParity:Ee(n.yParity)}:{},...typeof n.v<"u"&&typeof n.yParity>"u"?{v:Ee(n.v)}:{}}))}function X1(e){if(!(!e||e.length===0))return e.reduce((n,{slot:s,value:r})=>{if(s.length!==66)throw new _1({size:s.length,targetSize:66,type:"hex"});if(r.length!==66)throw new _1({size:r.length,targetSize:66,type:"hex"});return n[s]=r,n},{})}function mS(e){const{balance:n,nonce:s,state:r,stateDiff:l,code:u}=e,f={};if(u!==void 0&&(f.code=u),n!==void 0&&(f.balance=Ee(n)),s!==void 0&&(f.nonce=Ee(s)),r!==void 0&&(f.state=X1(r)),l!==void 0){if(f.state)throw new K3;f.stateDiff=X1(l)}return f}function qh(e){if(!e)return;const n={};for(const{address:s,...r}of e){if(!dn(s,{strict:!1}))throw new $s({address:s});if(n[s])throw new P3({address:s});n[s]=mS(r)}return n}const yS=2n**256n-1n;function yl(e){const{account:n,gasPrice:s,maxFeePerGas:r,maxPriorityFeePerGas:l,to:u}=e,f=n?na(n):void 0;if(f&&!dn(f.address))throw new $s({address:f.address});if(u&&!dn(u))throw new $s({address:u});if(typeof s<"u"&&(typeof r<"u"||typeof l<"u"))throw new F3;if(r&&r>yS)throw new tu({maxFeePerGas:r});if(l&&r&&l>r)throw new nu({maxFeePerGas:r,maxPriorityFeePerGas:l})}class bS extends re{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}}class Lh extends re{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}}class gS extends re{constructor({maxPriorityFeePerGas:n}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${Yn(n)} gwei).`,{name:"MaxFeePerGasTooLowError"})}}class P6 extends re{constructor({blockHash:n,blockNumber:s}){let r="Block";n&&(r=`Block at hash "${n}"`),s&&(r=`Block at number "${s}"`),super(`${r} could not be found.`,{name:"BlockNotFoundError"})}}const K6={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function V6(e,n){const s={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?Ya(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?Ya(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?K6[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(s.authorizationList=vS(e.authorizationList)),s.yParity=(()=>{if(e.yParity)return Number(e.yParity);if(typeof s.v=="bigint"){if(s.v===0n||s.v===27n)return 0;if(s.v===1n||s.v===28n)return 1;if(s.v>=35n)return s.v%2n===0n?1:0}})(),s.type==="legacy"&&(delete s.accessList,delete s.maxFeePerBlobGas,delete s.maxFeePerGas,delete s.maxPriorityFeePerGas,delete s.yParity),s.type==="eip2930"&&(delete s.maxFeePerBlobGas,delete s.maxFeePerGas,delete s.maxPriorityFeePerGas),s.type==="eip1559"&&delete s.maxFeePerBlobGas,s}function vS(e){return e.map(n=>({address:n.address,chainId:Number(n.chainId),nonce:Number(n.nonce),r:n.r,s:n.s,yParity:Number(n.yParity)}))}function F6(e,n){const s=(e.transactions??[]).map(r=>typeof r=="string"?r:V6(r));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:s,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}async function da(e,{blockHash:n,blockNumber:s,blockTag:r=e.experimental_blockTag??"latest",includeTransactions:l}={}){const u=l??!1,f=s!==void 0?Ee(s):void 0;let p=null;if(n?p=await e.request({method:"eth_getBlockByHash",params:[n,u]},{dedupe:!0}):p=await e.request({method:"eth_getBlockByNumber",params:[f||r,u]},{dedupe:!!f}),!p)throw new P6({blockHash:n,blockNumber:s});return(e.chain?.formatters?.block?.format||F6)(p,"getBlock")}async function Hh(e){const n=await e.request({method:"eth_gasPrice"});return BigInt(n)}async function wS(e,n){return Y6(e,n)}async function Y6(e,n){const{block:s,chain:r=e.chain,request:l}=n||{};try{const u=r?.fees?.maxPriorityFeePerGas??r?.fees?.defaultPriorityFee;if(typeof u=="function"){const p=s||await Ae(e,da,"getBlock")({}),m=await u({block:p,client:e,request:l});if(m===null)throw new Error;return m}if(typeof u<"u")return u;const f=await e.request({method:"eth_maxPriorityFeePerGas"});return ma(f)}catch{const[u,f]=await Promise.all([s?Promise.resolve(s):Ae(e,da,"getBlock")({}),Ae(e,Hh,"getGasPrice")({})]);if(typeof u.baseFeePerGas!="bigint")throw new Lh;const p=f-u.baseFeePerGas;return p<0n?0n:p}}async function xS(e,n){return X0(e,n)}async function X0(e,n){const{block:s,chain:r=e.chain,request:l,type:u="eip1559"}=n||{},f=await(async()=>typeof r?.fees?.baseFeeMultiplier=="function"?r.fees.baseFeeMultiplier({block:s,client:e,request:l}):r?.fees?.baseFeeMultiplier??1.2)();if(f<1)throw new bS;const m=10**(f.toString().split(".")[1]?.length??0),y=g=>g*BigInt(Math.ceil(f*m))/BigInt(m),b=s||await Ae(e,da,"getBlock")({});if(typeof r?.fees?.estimateFeesPerGas=="function"){const g=await r.fees.estimateFeesPerGas({block:s,client:e,multiply:y,request:l,type:u});if(g!==null)return g}if(u==="eip1559"){if(typeof b.baseFeePerGas!="bigint")throw new Lh;const g=typeof l?.maxPriorityFeePerGas=="bigint"?l.maxPriorityFeePerGas:await Y6(e,{block:b,chain:r,request:l}),S=y(b.baseFeePerGas);return{maxFeePerGas:l?.maxFeePerGas??S+g,maxPriorityFeePerGas:g}}return{gasPrice:l?.gasPrice??y(await Ae(e,Hh,"getGasPrice")({}))}}async function Z6(e,{address:n,blockTag:s="latest",blockNumber:r}){const l=await e.request({method:"eth_getTransactionCount",params:[n,typeof r=="bigint"?Ee(r):s]},{dedupe:!!r});return Ya(l)}function X6(e){const{kzg:n}=e,s=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),r=typeof e.blobs[0]=="string"?e.blobs.map(u=>ya(u)):e.blobs,l=[];for(const u of r)l.push(Uint8Array.from(n.blobToKzgCommitment(u)));return s==="bytes"?l:l.map(u=>Nt(u))}function Q6(e){const{kzg:n}=e,s=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),r=typeof e.blobs[0]=="string"?e.blobs.map(f=>ya(f)):e.blobs,l=typeof e.commitments[0]=="string"?e.commitments.map(f=>ya(f)):e.commitments,u=[];for(let f=0;f<r.length;f++){const p=r[f],m=l[f];u.push(Uint8Array.from(n.computeBlobKzgProof(p,m)))}return s==="bytes"?u:u.map(f=>Nt(f))}function SS(e,n,s,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(n,s,r);const l=BigInt(32),u=BigInt(4294967295),f=Number(s>>l&u),p=Number(s&u),m=r?4:0,y=r?0:4;e.setUint32(n+m,f,r),e.setUint32(n+y,p,r)}function ES(e,n,s){return e&n^~e&s}function AS(e,n,s){return e&n^e&s^n&s}class TS extends Nh{constructor(n,s,r,l){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=n,this.outputLen=s,this.padOffset=r,this.isLE=l,this.buffer=new Uint8Array(n),this.view=r0(this.buffer)}update(n){vr(this),n=bu(n),di(n);const{view:s,buffer:r,blockLen:l}=this,u=n.length;for(let f=0;f<u;){const p=Math.min(l-this.pos,u-f);if(p===l){const m=r0(n);for(;l<=u-f;f+=l)this.process(m,f);continue}r.set(n.subarray(f,f+p),this.pos),this.pos+=p,f+=p,this.pos===l&&(this.process(s,0),this.pos=0)}return this.length+=n.length,this.roundClean(),this}digestInto(n){vr(this),m6(n,this),this.finished=!0;const{buffer:s,view:r,blockLen:l,isLE:u}=this;let{pos:f}=this;s[f++]=128,wr(this.buffer.subarray(f)),this.padOffset>l-f&&(this.process(r,0),f=0);for(let w=f;w<l;w++)s[w]=0;SS(r,l-8,BigInt(this.length*8),u),this.process(r,0);const p=r0(n),m=this.outputLen;if(m%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const y=m/4,b=this.get();if(y>b.length)throw new Error("_sha2: outputLen bigger than state");for(let w=0;w<y;w++)p.setUint32(4*w,b[w],u)}digest(){const{buffer:n,outputLen:s}=this;this.digestInto(n);const r=n.slice(0,s);return this.destroy(),r}_cloneInto(n){n||(n=new this.constructor),n.set(...this.get());const{blockLen:s,buffer:r,length:l,finished:u,destroyed:f,pos:p}=this;return n.destroyed=f,n.finished=u,n.length=l,n.pos=p,l%s&&n.buffer.set(r),n}clone(){return this._cloneInto()}}const ks=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),kS=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),js=new Uint32Array(64);class jS extends TS{constructor(n=32){super(64,n,8,!1),this.A=ks[0]|0,this.B=ks[1]|0,this.C=ks[2]|0,this.D=ks[3]|0,this.E=ks[4]|0,this.F=ks[5]|0,this.G=ks[6]|0,this.H=ks[7]|0}get(){const{A:n,B:s,C:r,D:l,E:u,F:f,G:p,H:m}=this;return[n,s,r,l,u,f,p,m]}set(n,s,r,l,u,f,p,m){this.A=n|0,this.B=s|0,this.C=r|0,this.D=l|0,this.E=u|0,this.F=f|0,this.G=p|0,this.H=m|0}process(n,s){for(let w=0;w<16;w++,s+=4)js[w]=n.getUint32(s,!1);for(let w=16;w<64;w++){const g=js[w-15],S=js[w-2],T=la(g,7)^la(g,18)^g>>>3,x=la(S,17)^la(S,19)^S>>>10;js[w]=x+js[w-7]+T+js[w-16]|0}let{A:r,B:l,C:u,D:f,E:p,F:m,G:y,H:b}=this;for(let w=0;w<64;w++){const g=la(p,6)^la(p,11)^la(p,25),S=b+g+ES(p,m,y)+kS[w]+js[w]|0,x=(la(r,2)^la(r,13)^la(r,22))+AS(r,l,u)|0;b=y,y=m,m=p,p=f+S|0,f=u,u=l,l=r,r=S+x|0}r=r+this.A|0,l=l+this.B|0,u=u+this.C|0,f=f+this.D|0,p=p+this.E|0,m=m+this.F|0,y=y+this.G|0,b=b+this.H|0,this.set(r,l,u,f,p,m,y,b)}roundClean(){wr(js)}destroy(){this.set(0,0,0,0,0,0,0,0),wr(this.buffer)}}const J6=y6(()=>new jS),NS=J6;function BS(e,n){return NS(pa(e,{strict:!1})?jr(e):e)}function RS(e){const{commitment:n,version:s=1}=e,r=e.to??(typeof n=="string"?"hex":"bytes"),l=BS(n);return l.set([s],0),r==="bytes"?l:Nt(l)}function MS(e){const{commitments:n,version:s}=e,r=e.to,l=[];for(const u of n)l.push(RS({commitment:u,to:r,version:s}));return l}const Q1=6,W6=32,Ih=4096,e5=W6*Ih,J1=e5*Q1-1-1*Ih*Q1;class CS extends re{constructor({maxSize:n,size:s}){super("Blob size is too large.",{metaMessages:[`Max: ${n} bytes`,`Given: ${s} bytes`],name:"BlobSizeTooLargeError"})}}class OS extends re{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}function zS(e){const n=typeof e.data=="string"?ya(e.data):e.data,s=mt(n);if(!s)throw new OS;if(s>J1)throw new CS({maxSize:J1,size:s});const r=[];let l=!0,u=0;for(;l;){const f=zh(new Uint8Array(e5));let p=0;for(;p<Ih;){const m=n.slice(u,u+(W6-1));if(f.pushByte(0),f.pushBytes(m),m.length<31){f.pushByte(128),l=!1;break}p++,u+=31}r.push(f)}return r.map(f=>Nt(f.bytes))}function _S(e){const{data:n,kzg:s,to:r}=e,l=e.blobs??zS({data:n}),u=e.commitments??X6({blobs:l,kzg:s,to:r}),f=e.proofs??Q6({blobs:l,commitments:u,kzg:s,to:r}),p=[];for(let m=0;m<l.length;m++)p.push({blob:l[m],commitment:u[m],proof:f[m]});return p}function $S(e){if(e.type)return e.type;if(typeof e.authorizationList<"u")return"eip7702";if(typeof e.blobs<"u"||typeof e.blobVersionedHashes<"u"||typeof e.maxFeePerBlobGas<"u"||typeof e.sidecars<"u")return"eip4844";if(typeof e.maxFeePerGas<"u"||typeof e.maxPriorityFeePerGas<"u")return"eip1559";if(typeof e.gasPrice<"u")return typeof e.accessList<"u"?"eip2930":"legacy";throw new Y3({transaction:e})}async function t5(e){const n=await e.request({method:"eth_chainId"},{dedupe:!0});return Ya(n)}const DS=["blobVersionedHashes","chainId","fees","gas","nonce","type"],W1=new Map;async function n5(e,n){const{account:s=e.account,blobs:r,chain:l,gas:u,kzg:f,nonce:p,nonceManager:m,parameters:y=DS,type:b}=n,w=s&&na(s),g={...n,...w?{from:w?.address}:{}};let S;async function T(){return S||(S=await Ae(e,da,"getBlock")({blockTag:"latest"}),S)}let x;async function j(){return x||(l?l.id:typeof n.chainId<"u"?n.chainId:(x=await Ae(e,t5,"getChainId")({}),x))}if(y.includes("nonce")&&typeof p>"u"&&w)if(m){const C=await j();g.nonce=await m.consume({address:w.address,chainId:C,client:e})}else g.nonce=await Ae(e,Z6,"getTransactionCount")({address:w.address,blockTag:"pending"});if((y.includes("blobVersionedHashes")||y.includes("sidecars"))&&r&&f){const C=X6({blobs:r,kzg:f});if(y.includes("blobVersionedHashes")){const G=MS({commitments:C,to:"hex"});g.blobVersionedHashes=G}if(y.includes("sidecars")){const G=Q6({blobs:r,commitments:C,kzg:f}),O=_S({blobs:r,commitments:C,proofs:G,to:"hex"});g.sidecars=O}}if(y.includes("chainId")&&(g.chainId=await j()),(y.includes("fees")||y.includes("type"))&&typeof b>"u")try{g.type=$S(g)}catch{let C=W1.get(e.uid);typeof C>"u"&&(C=typeof(await T())?.baseFeePerGas=="bigint",W1.set(e.uid,C)),g.type=C?"eip1559":"legacy"}if(y.includes("fees"))if(g.type!=="legacy"&&g.type!=="eip2930"){if(typeof g.maxFeePerGas>"u"||typeof g.maxPriorityFeePerGas>"u"){const C=await T(),{maxFeePerGas:G,maxPriorityFeePerGas:O}=await X0(e,{block:C,chain:l,request:g});if(typeof n.maxPriorityFeePerGas>"u"&&n.maxFeePerGas&&n.maxFeePerGas<O)throw new gS({maxPriorityFeePerGas:O});g.maxPriorityFeePerGas=O,g.maxFeePerGas=G}}else{if(typeof n.maxFeePerGas<"u"||typeof n.maxPriorityFeePerGas<"u")throw new Lh;if(typeof n.gasPrice>"u"){const C=await T(),{gasPrice:G}=await X0(e,{block:C,chain:l,request:g,type:"legacy"});g.gasPrice=G}}return y.includes("gas")&&typeof u>"u"&&(g.gas=await Ae(e,Gh,"estimateGas")({...g,account:w&&{address:w.address,type:"json-rpc"}})),yl(g),delete g.parameters,g}async function Gh(e,n){const{account:s=e.account}=n,r=s?na(s):void 0;try{const{accessList:l,authorizationList:u,blobs:f,blobVersionedHashes:p,blockNumber:m,blockTag:y,data:b,gas:w,gasPrice:g,maxFeePerBlobGas:S,maxFeePerGas:T,maxPriorityFeePerGas:x,nonce:j,value:C,stateOverride:G,...O}=await n5(e,{...n,parameters:r?.type==="local"?void 0:["blobVersionedHashes"]}),A=(typeof m=="bigint"?Ee(m):void 0)||y,_=qh(G),M=await(async()=>{if(O.to)return O.to;if(u&&u.length>0)return await G6({authorization:u[0]}).catch(()=>{throw new re("`to` is required. Could not infer from `authorizationList`")})})();yl(n);const Z=e.chain?.formatters?.transactionRequest?.format,J=(Z||Au)({...Uh(O,{format:Z}),from:r?.address,accessList:l,authorizationList:u,blobs:f,blobVersionedHashes:p,data:b,gas:w,gasPrice:g,maxFeePerBlobGas:S,maxFeePerGas:T,maxPriorityFeePerGas:x,nonce:j,to:M,value:C},"estimateGas");return BigInt(await e.request({method:"eth_estimateGas",params:_?[J,A??e.experimental_blockTag??"latest",_]:A?[J,A]:[J]}))}catch(l){throw fS(l,{...n,account:r,chain:e.chain})}}async function US(e,n){const{abi:s,address:r,args:l,functionName:u,dataSuffix:f,...p}=n,m=Gn({abi:s,args:l,functionName:u});try{return await Ae(e,Gh,"estimateGas")({data:`${m}${f?f.replace("0x",""):""}`,to:r,...p})}catch(y){const b=p.account?na(p.account):void 0;throw Ar(y,{abi:s,address:r,args:l,docsPath:"/docs/contract/estimateContractGas",functionName:u,sender:b?.address})}}function Tu(e,n){if(!dn(e,{strict:!1}))throw new $s({address:e});if(!dn(n,{strict:!1}))throw new $s({address:n});return e.toLowerCase()===n.toLowerCase()}const eg="/docs/contract/decodeEventLog";function bl(e){const{abi:n,data:s,strict:r,topics:l}=e,u=r??!0,[f,...p]=l;if(!f)throw new E8({docsPath:eg});const m=n.find(x=>x.type==="event"&&f===gu(Xn(x)));if(!(m&&"name"in m)||m.type!=="event")throw new l6(f,{docsPath:eg});const{name:y,inputs:b}=m,w=b?.some(x=>!("name"in x&&x.name)),g=w?[]:{},S=b.map((x,j)=>[x,j]).filter(([x])=>"indexed"in x&&x.indexed);for(let x=0;x<S.length;x++){const[j,C]=S[x],G=p[x];if(!G)throw new yu({abiItem:m,param:j});g[w?C:j.name||C]=qS({param:j,value:G})}const T=b.filter(x=>!("indexed"in x&&x.indexed));if(T.length>0){if(s&&s!=="0x")try{const x=ml(T,s);if(x)if(w)for(let j=0;j<b.length;j++)g[j]=g[j]??x.shift();else for(let j=0;j<T.length;j++)g[T[j].name]=x[j]}catch(x){if(u)throw x instanceof r6||x instanceof M6?new zo({abiItem:m,data:s,params:T,size:mt(s)}):x}else if(u)throw new zo({abiItem:m,data:"0x",params:T,size:0})}return{eventName:y,args:Object.values(g).length>0?g:void 0}}function qS({param:e,value:n}){return e.type==="string"||e.type==="bytes"||e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/)?n:(ml([e],n)||[])[0]}function Ph(e){const{abi:n,args:s,logs:r,strict:l=!0}=e,u=(()=>{if(e.eventName)return Array.isArray(e.eventName)?e.eventName:[e.eventName]})();return r.map(f=>{try{const p=n.find(y=>y.type==="event"&&f.topics[0]===gu(y));if(!p)return null;const m=bl({...f,abi:[p],strict:l});return u&&!u.includes(m.eventName)||!LS({args:m.args,inputs:p.inputs,matchArgs:s})?null:{...m,...f}}catch(p){let m,y;if(p instanceof l6)return null;if(p instanceof zo||p instanceof yu){if(l)return null;m=p.abiItem.name,y=p.abiItem.inputs?.some(b=>!("name"in b&&b.name))}return{...f,args:y?[]:{},eventName:m}}}).filter(Boolean)}function LS(e){const{args:n,inputs:s,matchArgs:r}=e;if(!r)return!0;if(!n)return!1;function l(u,f,p){try{return u.type==="address"?Tu(f,p):u.type==="string"||u.type==="bytes"?jt(jr(f))===p:f===p}catch{return!1}}return Array.isArray(n)&&Array.isArray(r)?r.every((u,f)=>{if(u==null)return!0;const p=s[f];return p?(Array.isArray(u)?u:[u]).some(y=>l(p,y,n[f])):!1}):typeof n=="object"&&!Array.isArray(n)&&typeof r=="object"&&!Array.isArray(r)?Object.entries(r).every(([u,f])=>{if(f==null)return!0;const p=s.find(y=>y.name===u);return p?(Array.isArray(f)?f:[f]).some(y=>l(p,y,n[u])):!1}):!1}function Za(e,{args:n,eventName:s}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...s?{args:n,eventName:s}:{}}}async function Kh(e,{address:n,blockHash:s,fromBlock:r,toBlock:l,event:u,events:f,args:p,strict:m}={}){const y=m??!1,b=f??(u?[u]:void 0);let w=[];b&&(w=[b.flatMap(x=>pl({abi:[x],eventName:x.name,args:f?void 0:p}))],u&&(w=w[0]));let g;s?g=await e.request({method:"eth_getLogs",params:[{address:n,topics:w,blockHash:s}]}):g=await e.request({method:"eth_getLogs",params:[{address:n,topics:w,fromBlock:typeof r=="bigint"?Ee(r):r,toBlock:typeof l=="bigint"?Ee(l):l}]});const S=g.map(T=>Za(T));return b?Ph({abi:b,args:p,logs:S,strict:y}):S}async function a5(e,n){const{abi:s,address:r,args:l,blockHash:u,eventName:f,fromBlock:p,toBlock:m,strict:y}=n,b=f?wi({abi:s,name:f}):void 0,w=b?void 0:s.filter(g=>g.type==="event");return Ae(e,Kh,"getLogs")({address:r,args:l,blockHash:u,event:b,events:w,fromBlock:p,toBlock:m,strict:y})}const c0="/docs/contract/decodeFunctionResult";function Wa(e){const{abi:n,args:s,functionName:r,data:l}=e;let u=n[0];if(r){const p=wi({abi:n,args:s,name:r});if(!p)throw new gr(r,{docsPath:c0});u=p}if(u.type!=="function")throw new gr(void 0,{docsPath:c0});if(!u.outputs)throw new c6(u.name,{docsPath:c0});const f=ml(u.outputs,l);if(f&&f.length>1)return f;if(f&&f.length===1)return f[0]}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Vh=BigInt(0),Q0=BigInt(1);function gl(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Fh(e){if(!gl(e))throw new Error("Uint8Array expected")}function al(e,n){if(typeof n!="boolean")throw new Error(e+" boolean expected, got "+n)}function Ic(e){const n=e.toString(16);return n.length&1?"0"+n:n}function s5(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?Vh:BigInt("0x"+e)}const i5=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",HS=Array.from({length:256},(e,n)=>n.toString(16).padStart(2,"0"));function sl(e){if(Fh(e),i5)return e.toHex();let n="";for(let s=0;s<e.length;s++)n+=HS[e[s]];return n}const Da={_0:48,_9:57,A:65,F:70,a:97,f:102};function tg(e){if(e>=Da._0&&e<=Da._9)return e-Da._0;if(e>=Da.A&&e<=Da.F)return e-(Da.A-10);if(e>=Da.a&&e<=Da.f)return e-(Da.a-10)}function au(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(i5)return Uint8Array.fromHex(e);const n=e.length,s=n/2;if(n%2)throw new Error("hex string expected, got unpadded hex of length "+n);const r=new Uint8Array(s);for(let l=0,u=0;l<s;l++,u+=2){const f=tg(e.charCodeAt(u)),p=tg(e.charCodeAt(u+1));if(f===void 0||p===void 0){const m=e[u]+e[u+1];throw new Error('hex string expected, got non-hex character "'+m+'" at index '+u)}r[l]=f*16+p}return r}function ci(e){return s5(sl(e))}function r5(e){return Fh(e),s5(sl(Uint8Array.from(e).reverse()))}function vl(e,n){return au(e.toString(16).padStart(n*2,"0"))}function o5(e,n){return vl(e,n).reverse()}function Un(e,n,s){let r;if(typeof n=="string")try{r=au(n)}catch(u){throw new Error(e+" must be hex string or Uint8Array, cause: "+u)}else if(gl(n))r=Uint8Array.from(n);else throw new Error(e+" must be hex string or Uint8Array");const l=r.length;if(typeof s=="number"&&l!==s)throw new Error(e+" of length "+s+" expected, got "+l);return r}function su(...e){let n=0;for(let r=0;r<e.length;r++){const l=e[r];Fh(l),n+=l.length}const s=new Uint8Array(n);for(let r=0,l=0;r<e.length;r++){const u=e[r];s.set(u,l),l+=u.length}return s}const u0=e=>typeof e=="bigint"&&Vh<=e;function Yh(e,n,s){return u0(e)&&u0(n)&&u0(s)&&n<=e&&e<s}function pr(e,n,s,r){if(!Yh(n,s,r))throw new Error("expected valid "+e+": "+s+" <= n < "+r+", got "+n)}function IS(e){let n;for(n=0;e>Vh;e>>=Q0,n+=1);return n}const ku=e=>(Q0<<BigInt(e))-Q0,d0=e=>new Uint8Array(e),ng=e=>Uint8Array.from(e);function GS(e,n,s){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof n!="number"||n<2)throw new Error("qByteLen must be a number");if(typeof s!="function")throw new Error("hmacFn must be a function");let r=d0(e),l=d0(e),u=0;const f=()=>{r.fill(1),l.fill(0),u=0},p=(...w)=>s(l,r,...w),m=(w=d0(0))=>{l=p(ng([0]),w),r=p(),w.length!==0&&(l=p(ng([1]),w),r=p())},y=()=>{if(u++>=1e3)throw new Error("drbg: tried 1000 values");let w=0;const g=[];for(;w<n;){r=p();const S=r.slice();g.push(S),w+=r.length}return su(...g)};return(w,g)=>{f(),m(w);let S;for(;!(S=g(y()));)m();return f(),S}}const PS={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||gl(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,n)=>n.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function ju(e,n,s={}){const r=(l,u,f)=>{const p=PS[u];if(typeof p!="function")throw new Error("invalid validator function");const m=e[l];if(!(f&&m===void 0)&&!p(m,e))throw new Error("param "+String(l)+" is invalid. Expected "+u+", got "+m)};for(const[l,u]of Object.entries(n))r(l,u,!1);for(const[l,u]of Object.entries(s))r(l,u,!0);return e}function ag(e){const n=new WeakMap;return(s,...r)=>{const l=n.get(s);if(l!==void 0)return l;const u=e(s,...r);return n.set(s,u),u}}const KS="0.1.1";function VS(){return KS}class Ce extends Error{constructor(n,s={}){const r=(()=>{if(s.cause instanceof Ce){if(s.cause.details)return s.cause.details;if(s.cause.shortMessage)return s.cause.shortMessage}return s.cause&&"details"in s.cause&&typeof s.cause.details=="string"?s.cause.details:s.cause?.message?s.cause.message:s.details})(),l=s.cause instanceof Ce&&s.cause.docsPath||s.docsPath,f=`https://oxlib.sh${l??""}`,p=[n||"An error occurred.",...s.metaMessages?["",...s.metaMessages]:[],...r||l?["",r?`Details: ${r}`:void 0,l?`See: ${f}`:void 0]:[]].filter(m=>typeof m=="string").join(` -`);super(p,s.cause?{cause:s.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:`ox@${VS()}`}),this.cause=s.cause,this.details=r,this.docs=f,this.docsPath=l,this.shortMessage=n}walk(n){return l5(this,n)}}function l5(e,n){return n?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause?l5(e.cause,n):n?null:e}function wl(e,n){if(ur(e)>n)throw new cE({givenSize:ur(e),maxSize:n})}const Ua={zero:48,nine:57,A:65,F:70,a:97,f:102};function sg(e){if(e>=Ua.zero&&e<=Ua.nine)return e-Ua.zero;if(e>=Ua.A&&e<=Ua.F)return e-(Ua.A-10);if(e>=Ua.a&&e<=Ua.f)return e-(Ua.a-10)}function FS(e,n={}){const{dir:s,size:r=32}=n;if(r===0)return e;if(e.length>r)throw new uE({size:e.length,targetSize:r,type:"Bytes"});const l=new Uint8Array(r);for(let u=0;u<r;u++){const f=s==="right";l[f?u:r-u-1]=e[f?u:e.length-u-1]}return l}function c5(e,n={}){const{dir:s="left"}=n;let r=e,l=0;for(let u=0;u<r.length-1&&r[s==="left"?u:r.length-u-1].toString()==="0";u++)l++;return r=s==="left"?r.slice(l):r.slice(0,r.length-l),r}function Nu(e,n){if(Tn(e)>n)throw new yE({givenSize:Tn(e),maxSize:n})}function YS(e,n){if(typeof n=="number"&&n>0&&n>Tn(e)-1)throw new g5({offset:n,position:"start",size:Tn(e)})}function ZS(e,n,s){if(typeof n=="number"&&typeof s=="number"&&Tn(e)!==s-n)throw new g5({offset:s,position:"end",size:Tn(e)})}function u5(e,n={}){const{dir:s,size:r=32}=n;if(r===0)return e;const l=e.replace("0x","");if(l.length>r*2)throw new bE({size:Math.ceil(l.length/2),targetSize:r,type:"Hex"});return`0x${l[s==="right"?"padEnd":"padStart"](r*2,"0")}`}const XS="#__bigint";function d5(e,n,s){return JSON.stringify(e,(r,l)=>typeof l=="bigint"?l.toString()+XS:l,s)}const QS=new TextDecoder,JS=new TextEncoder;function WS(e){return e instanceof Uint8Array?e:typeof e=="string"?f5(e):eE(e)}function eE(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function f5(e,n={}){const{size:s}=n;let r=e;s&&(Nu(e,s),r=mi(e,s));let l=r.slice(2);l.length%2&&(l=`0${l}`);const u=l.length/2,f=new Uint8Array(u);for(let p=0,m=0;p<u;p++){const y=sg(l.charCodeAt(m++)),b=sg(l.charCodeAt(m++));if(y===void 0||b===void 0)throw new Ce(`Invalid byte sequence ("${l[m-2]}${l[m-1]}" in "${l}").`);f[p]=y*16+b}return f}function tE(e,n={}){const{size:s}=n,r=JS.encode(e);return typeof s=="number"?(wl(r,s),nE(r,s)):r}function nE(e,n){return FS(e,{dir:"right",size:n})}function ur(e){return e.length}function aE(e,n,s,r={}){const{strict:l}=r;return e.slice(n,s)}function sE(e,n={}){const{size:s}=n;typeof s<"u"&&wl(e,s);const r=Jn(e,n);return m5(r,n)}function iE(e,n={}){const{size:s}=n;let r=e;if(typeof s<"u"&&(wl(r,s),r=h5(r)),r.length>1||r[0]>1)throw new lE(r);return!!r[0]}function Ka(e,n={}){const{size:s}=n;typeof s<"u"&&wl(e,s);const r=Jn(e,n);return y5(r,n)}function rE(e,n={}){const{size:s}=n;let r=e;return typeof s<"u"&&(wl(r,s),r=oE(r)),QS.decode(r)}function h5(e){return c5(e,{dir:"left"})}function oE(e){return c5(e,{dir:"right"})}class lE extends Ce{constructor(n){super(`Bytes value \`${n}\` is not a valid boolean.`,{metaMessages:["The bytes array must contain a single byte of either a `0` or `1` value."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesBooleanError"})}}let cE=class extends Ce{constructor({givenSize:n,maxSize:s}){super(`Size cannot exceed \`${s}\` bytes. Given size: \`${n}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"})}},uE=class extends Ce{constructor({size:n,targetSize:s,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (\`${n}\`) exceeds padding size (\`${s}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"})}};const dE=new TextEncoder,fE=Array.from({length:256},(e,n)=>n.toString(16).padStart(2,"0"));function hE(e,n={}){const{strict:s=!1}=n;if(!e)throw new ig(e);if(typeof e!="string")throw new ig(e);if(s&&!/^0x[0-9a-fA-F]*$/.test(e))throw new rg(e);if(!e.startsWith("0x"))throw new rg(e)}function Qn(...e){return`0x${e.reduce((n,s)=>n+s.replace("0x",""),"")}`}function pE(e){return e instanceof Uint8Array?Jn(e):Array.isArray(e)?Jn(new Uint8Array(e)):e}function p5(e,n={}){const s=`0x${Number(e)}`;return typeof n.size=="number"?(Nu(s,n.size),pi(s,n.size)):s}function Jn(e,n={}){let s="";for(let l=0;l<e.length;l++)s+=fE[e[l]];const r=`0x${s}`;return typeof n.size=="number"?(Nu(r,n.size),mi(r,n.size)):r}function Zt(e,n={}){const{signed:s,size:r}=n,l=BigInt(e);let u;r?s?u=(1n<<BigInt(r)*8n-1n)-1n:u=2n**(BigInt(r)*8n)-1n:typeof e=="number"&&(u=BigInt(Number.MAX_SAFE_INTEGER));const f=typeof u=="bigint"&&s?-u-1n:0;if(u&&l>u||l<f){const y=typeof e=="bigint"?"n":"";throw new b5({max:u?`${u}${y}`:void 0,min:`${f}${y}`,signed:s,size:r,value:`${e}${y}`})}const m=`0x${(s&&l<0?(1n<<BigInt(r*8))+BigInt(l):l).toString(16)}`;return r?pi(m,r):m}function Zh(e,n={}){return Jn(dE.encode(e),n)}function pi(e,n){return u5(e,{dir:"left",size:n})}function mi(e,n){return u5(e,{dir:"right",size:n})}function ha(e,n,s,r={}){const{strict:l}=r;YS(e,n);const u=`0x${e.replace("0x","").slice((n??0)*2,(s??e.length)*2)}`;return l&&ZS(u,n,s),u}function Tn(e){return Math.ceil((e.length-2)/2)}function m5(e,n={}){const{signed:s}=n;n.size&&Nu(e,n.size);const r=BigInt(e);if(!s)return r;const l=(e.length-2)/2,u=(1n<<BigInt(l)*8n)-1n,f=u>>1n;return r<=f?r:r-u-1n}function y5(e,n={}){const{signed:s,size:r}=n;return Number(!s&&!r?e:m5(e,n))}function mE(e,n={}){const{strict:s=!1}=n;try{return hE(e,{strict:s}),!0}catch{return!1}}class b5 extends Ce{constructor({max:n,min:s,signed:r,size:l,value:u}){super(`Number \`${u}\` is not in safe${l?` ${l*8}-bit`:""}${r?" signed":" unsigned"} integer range ${n?`(\`${s}\` to \`${n}\`)`:`(above \`${s}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}}class ig extends Ce{constructor(n){super(`Value \`${typeof n=="object"?d5(n):n}\` of type \`${typeof n}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexTypeError"})}}class rg extends Ce{constructor(n){super(`Value \`${n}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexValueError"})}}class yE extends Ce{constructor({givenSize:n,maxSize:s}){super(`Size cannot exceed \`${s}\` bytes. Given size: \`${n}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"})}}class g5 extends Ce{constructor({offset:n,position:s,size:r}){super(`Slice ${s==="start"?"starting":"ending"} at offset \`${n}\` is out-of-bounds (size: \`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SliceOffsetOutOfBoundsError"})}}class bE extends Ce{constructor({size:n,targetSize:s,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (\`${n}\`) exceeds padding size (\`${s}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}function gE(e){return{address:e.address,amount:Zt(e.amount),index:Zt(e.index),validatorIndex:Zt(e.validatorIndex)}}function v5(e){return{...typeof e.baseFeePerGas=="bigint"&&{baseFeePerGas:Zt(e.baseFeePerGas)},...typeof e.blobBaseFee=="bigint"&&{blobBaseFee:Zt(e.blobBaseFee)},...typeof e.feeRecipient=="string"&&{feeRecipient:e.feeRecipient},...typeof e.gasLimit=="bigint"&&{gasLimit:Zt(e.gasLimit)},...typeof e.number=="bigint"&&{number:Zt(e.number)},...typeof e.prevRandao=="bigint"&&{prevRandao:Zt(e.prevRandao)},...typeof e.time=="bigint"&&{time:Zt(e.time)},...e.withdrawals&&{withdrawals:e.withdrawals.map(gE)}}}const il=[{inputs:[{components:[{name:"target",type:"address"},{name:"allowFailure",type:"bool"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{name:"success",type:"bool"},{name:"returnData",type:"bytes"}],name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"}],J0=[{name:"query",type:"function",stateMutability:"view",inputs:[{type:"tuple[]",name:"queries",components:[{type:"address",name:"sender"},{type:"string[]",name:"urls"},{type:"bytes",name:"data"}]}],outputs:[{type:"bool[]",name:"failures"},{type:"bytes[]",name:"responses"}]},{name:"HttpError",type:"error",inputs:[{type:"uint16",name:"status"},{type:"string",name:"message"}]}],w5=[{inputs:[{name:"dns",type:"bytes"}],name:"DNSDecodingFailed",type:"error"},{inputs:[{name:"ens",type:"string"}],name:"DNSEncodingFailed",type:"error"},{inputs:[],name:"EmptyAddress",type:"error"},{inputs:[{name:"status",type:"uint16"},{name:"message",type:"string"}],name:"HttpError",type:"error"},{inputs:[],name:"InvalidBatchGatewayResponse",type:"error"},{inputs:[{name:"errorData",type:"bytes"}],name:"ResolverError",type:"error"},{inputs:[{name:"name",type:"bytes"},{name:"resolver",type:"address"}],name:"ResolverNotContract",type:"error"},{inputs:[{name:"name",type:"bytes"}],name:"ResolverNotFound",type:"error"},{inputs:[{name:"primary",type:"string"},{name:"primaryAddress",type:"bytes"}],name:"ReverseAddressMismatch",type:"error"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"}],name:"UnsupportedResolverProfile",type:"error"}],x5=[...w5,{name:"resolveWithGateways",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"},{name:"gateways",type:"string[]"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]}],vE=[...w5,{name:"reverseWithGateways",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"},{type:"uint256",name:"coinType"},{type:"string[]",name:"gateways"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolver"},{type:"address",name:"reverseResolver"}]}],og=[{name:"text",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"key",type:"string"}],outputs:[{name:"",type:"string"}]}],lg=[{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"}],outputs:[{name:"",type:"address"}]},{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"coinType",type:"uint256"}],outputs:[{name:"",type:"bytes"}]}],S5=[{name:"isValidSignature",type:"function",stateMutability:"view",inputs:[{name:"hash",type:"bytes32"},{name:"signature",type:"bytes"}],outputs:[{name:"",type:"bytes4"}]}],cg=[{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],outputs:[{type:"bool"}],stateMutability:"nonpayable",type:"function",name:"isValidSig"}],wE="0x82ad56cb",E5="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",xE="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",SE="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",Xh="0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033";class W0 extends re{constructor({blockNumber:n,chain:s,contract:r}){super(`Chain "${s.name}" does not support contract "${r.name}".`,{metaMessages:["This could be due to any of the following:",...n&&r.blockCreated&&r.blockCreated>n?[`- The contract "${r.name}" was not deployed until block ${r.blockCreated} (current block ${n}).`]:[`- The chain does not have the contract "${r.name}" configured.`]],name:"ChainDoesNotSupportContract"})}}class A5 extends re{constructor(){super("No chain was provided to the Client.",{name:"ClientChainNotConfiguredError"})}}const f0="/docs/contract/encodeDeployData";function Qh(e){const{abi:n,args:s,bytecode:r}=e;if(!s||s.length===0)return r;const l=n.find(f=>"type"in f&&f.type==="constructor");if(!l)throw new g8({docsPath:f0});if(!("inputs"in l))throw new C1({docsPath:f0});if(!l.inputs||l.inputs.length===0)throw new C1({docsPath:f0});const u=vi(l.inputs,s);return Nr([r,u])}function Br({blockNumber:e,chain:n,contract:s}){const r=n?.contracts?.[s];if(!r)throw new W0({chain:n,contract:{name:s}});if(e&&r.blockCreated&&r.blockCreated>e)throw new W0({blockNumber:e,chain:n,contract:{name:s,blockCreated:r.blockCreated}});return r.address}function T5(e,{docsPath:n,...s}){const r=(()=>{const l=Dh(e,s);return l instanceof Eu?e:l})();return new D6(r,{docsPath:n,...s})}function k5(){let e=()=>{},n=()=>{};return{promise:new Promise((r,l)=>{e=r,n=l}),resolve:e,reject:n}}const h0=new Map;function j5({fn:e,id:n,shouldSplitBatch:s,wait:r=0,sort:l}){const u=async()=>{const b=m();f();const w=b.map(({args:g})=>g);w.length!==0&&e(w).then(g=>{l&&Array.isArray(g)&&g.sort(l);for(let S=0;S<b.length;S++){const{resolve:T}=b[S];T?.([g[S],g])}}).catch(g=>{for(let S=0;S<b.length;S++){const{reject:T}=b[S];T?.(g)}})},f=()=>h0.delete(n),p=()=>m().map(({args:b})=>b),m=()=>h0.get(n)||[],y=b=>h0.set(n,[...m(),b]);return{flush:f,async schedule(b){const{promise:w,resolve:g,reject:S}=k5();return s?.([...p(),b])&&u(),m().length>0?(y({args:b,resolve:g,reject:S}),w):(y({args:b,resolve:g,reject:S}),setTimeout(u,r),w)}}}async function Bu(e,n){const{account:s=e.account,authorizationList:r,batch:l=!!e.batch?.multicall,blockNumber:u,blockTag:f=e.experimental_blockTag??"latest",accessList:p,blobs:m,blockOverrides:y,code:b,data:w,factory:g,factoryData:S,gas:T,gasPrice:x,maxFeePerBlobGas:j,maxFeePerGas:C,maxPriorityFeePerGas:G,nonce:O,to:B,value:A,stateOverride:_,...M}=n,Z=s?na(s):void 0;if(b&&(g||S))throw new re("Cannot provide both `code` & `factory`/`factoryData` as parameters.");if(b&&B)throw new re("Cannot provide both `code` & `to` as parameters.");const ee=b&&w,J=g&&S&&B&&w,V=ee||J,X=ee?N5({code:b,data:w}):J?TE({data:w,factory:g,factoryData:S,to:B}):w;try{yl(n);const he=(typeof u=="bigint"?Ee(u):void 0)||f,ae=y?v5(y):void 0,R=qh(_),K=e.chain?.formatters?.transactionRequest?.format,se=(K||Au)({...Uh(M,{format:K}),from:Z?.address,accessList:p,authorizationList:r,blobs:m,data:X,gas:T,gasPrice:x,maxFeePerBlobGas:j,maxFeePerGas:C,maxPriorityFeePerGas:G,nonce:O,to:V?void 0:B,value:A},"call");if(l&&EE({request:se})&&!R&&!ae)try{return await AE(e,{...se,blockNumber:u,blockTag:f})}catch(P){if(!(P instanceof A5)&&!(P instanceof W0))throw P}const le=(()=>{const P=[se,he];return R&&ae?[...P,R,ae]:R?[...P,R]:ae?[...P,{},ae]:P})(),k=await e.request({method:"eth_call",params:le});return k==="0x"?{data:void 0}:{data:k}}catch(oe){const he=kE(oe),{offchainLookup:ae,offchainLookupSignature:R}=await q6(async()=>{const{offchainLookup:K,offchainLookupSignature:Y}=await import("./ccip-BvpA7xm5.js");return{offchainLookup:K,offchainLookupSignature:Y}},[],import.meta.url);if(e.ccipRead!==!1&&he?.slice(0,10)===R&&B)return{data:await ae(e,{data:he,to:B})};throw V&&he?.slice(0,10)==="0x101bb98d"?new W3({factory:g}):T5(oe,{...n,account:Z,chain:e.chain})}}function EE({request:e}){const{data:n,to:s,...r}=e;return!(!n||n.startsWith(wE)||!s||Object.values(r).filter(l=>typeof l<"u").length>0)}async function AE(e,n){const{batchSize:s=1024,deployless:r=!1,wait:l=0}=typeof e.batch?.multicall=="object"?e.batch.multicall:{},{blockNumber:u,blockTag:f=e.experimental_blockTag??"latest",data:p,to:m}=n,y=(()=>{if(r)return null;if(n.multicallAddress)return n.multicallAddress;if(e.chain)return Br({blockNumber:u,chain:e.chain,contract:"multicall3"});throw new A5})(),w=(typeof u=="bigint"?Ee(u):void 0)||f,{schedule:g}=j5({id:`${e.uid}.${w}`,wait:l,shouldSplitBatch(x){return x.reduce((C,{data:G})=>C+(G.length-2),0)>s*2},fn:async x=>{const j=x.map(O=>({allowFailure:!0,callData:O.data,target:O.to})),C=Gn({abi:il,args:[j],functionName:"aggregate3"}),G=await e.request({method:"eth_call",params:[{...y===null?{data:N5({code:Xh,data:C})}:{to:y,data:C}},w]});return Wa({abi:il,args:[j],functionName:"aggregate3",data:G||"0x"})}}),[{returnData:S,success:T}]=await g({data:p,to:m});if(!T)throw new Su({data:S});return S==="0x"?{data:void 0}:{data:S}}function N5(e){const{code:n,data:s}=e;return Qh({abi:In(["constructor(bytes, bytes)"]),bytecode:E5,args:[n,s]})}function TE(e){const{data:n,factory:s,factoryData:r,to:l}=e;return Qh({abi:In(["constructor(address, bytes, address, bytes)"]),bytecode:xE,args:[l,n,s,r]})}function kE(e){if(!(e instanceof re))return;const n=e.walk();return typeof n?.data=="object"?n.data?.data:n.data}async function Wn(e,n){const{abi:s,address:r,args:l,functionName:u,...f}=n,p=Gn({abi:s,args:l,functionName:u});try{const{data:m}=await Ae(e,Bu,"call")({...f,data:p,to:r});return Wa({abi:s,args:l,functionName:u,data:m||"0x"})}catch(m){throw Ar(m,{abi:s,address:r,args:l,docsPath:"/docs/contract/readContract",functionName:u})}}async function jE(e,n){const{abi:s,address:r,args:l,dataSuffix:u,functionName:f,...p}=n,m=p.account?na(p.account):e.account,y=Gn({abi:s,args:l,functionName:f});try{const{data:b}=await Ae(e,Bu,"call")({batch:!1,data:`${y}${u?u.replace("0x",""):""}`,to:r,...p,account:m}),w=Wa({abi:s,args:l,functionName:f,data:b||"0x"}),g=s.filter(S=>"name"in S&&S.name===n.functionName);return{result:w,request:{abi:g,address:r,args:l,dataSuffix:u,functionName:f,...p,account:m}}}catch(b){throw Ar(b,{abi:s,address:r,args:l,docsPath:"/docs/contract/simulateContract",functionName:f,sender:m?.address})}}const p0=new Map,ug=new Map;let NE=0;function Ds(e,n,s){const r=++NE,l=()=>p0.get(e)||[],u=()=>{const b=l();p0.set(e,b.filter(w=>w.id!==r))},f=()=>{const b=l();if(!b.some(g=>g.id===r))return;const w=ug.get(e);if(b.length===1&&w){const g=w();g instanceof Promise&&g.catch(()=>{})}u()},p=l();if(p0.set(e,[...p,{id:r,fns:n}]),p&&p.length>0)return f;const m={};for(const b in n)m[b]=((...w)=>{const g=l();if(g.length!==0)for(const S of g)S.fns[b]?.(...w)});const y=s(m);return typeof y=="function"&&ug.set(e,y),f}async function iu(e){return new Promise(n=>setTimeout(n,e))}function xl(e,{emitOnBegin:n,initialWaitTime:s,interval:r}){let l=!0;const u=()=>l=!1;return(async()=>{let p;n&&(p=await e({unpoll:u}));const m=await s?.(p)??r;await iu(m);const y=async()=>{l&&(await e({unpoll:u}),await iu(r),y())};y()})(),u}const BE=new Map,RE=new Map;function ME(e){const n=(l,u)=>({clear:()=>u.delete(l),get:()=>u.get(l),set:f=>u.set(l,f)}),s=n(e,BE),r=n(e,RE);return{clear:()=>{s.clear(),r.clear()},promise:s,response:r}}async function CE(e,{cacheKey:n,cacheTime:s=Number.POSITIVE_INFINITY}){const r=ME(n),l=r.response.get();if(l&&s>0&&Date.now()-l.created.getTime()<s)return l.data;let u=r.promise.get();u||(u=e(),r.promise.set(u));try{const f=await u;return r.response.set({created:new Date,data:f}),f}finally{r.promise.clear()}}const OE=e=>`blockNumber.${e}`;async function Sl(e,{cacheTime:n=e.cacheTime}={}){const s=await CE(()=>e.request({method:"eth_blockNumber"}),{cacheKey:OE(e.uid),cacheTime:n});return BigInt(s)}async function Ru(e,{filter:n}){const s="strict"in n&&n.strict,r=await n.request({method:"eth_getFilterChanges",params:[n.id]});if(typeof r[0]=="string")return r;const l=r.map(u=>Za(u));return!("abi"in n)||!n.abi?l:Ph({abi:n.abi,logs:l,strict:s})}async function Mu(e,{filter:n}){return n.request({method:"eth_uninstallFilter",params:[n.id]})}function zE(e,n){const{abi:s,address:r,args:l,batch:u=!0,eventName:f,fromBlock:p,onError:m,onLogs:y,poll:b,pollingInterval:w=e.pollingInterval,strict:g}=n;return(typeof b<"u"?b:typeof p=="bigint"?!0:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc")))?(()=>{const j=g??!1,C=Gt(["watchContractEvent",r,l,u,e.uid,f,w,j,p]);return Ds(C,{onLogs:y,onError:m},G=>{let O;p!==void 0&&(O=p-1n);let B,A=!1;const _=xl(async()=>{if(!A){try{B=await Ae(e,B6,"createContractEventFilter")({abi:s,address:r,args:l,eventName:f,strict:j,fromBlock:p})}catch{}A=!0;return}try{let M;if(B)M=await Ae(e,Ru,"getFilterChanges")({filter:B});else{const Z=await Ae(e,Sl,"getBlockNumber")({});O&&O<Z?M=await Ae(e,a5,"getContractEvents")({abi:s,address:r,args:l,eventName:f,fromBlock:O+1n,toBlock:Z,strict:j}):M=[],O=Z}if(M.length===0)return;if(u)G.onLogs(M);else for(const Z of M)G.onLogs([Z])}catch(M){B&&M instanceof hi&&(A=!1),G.onError?.(M)}},{emitOnBegin:!0,interval:w});return async()=>{B&&await Ae(e,Mu,"uninstallFilter")({filter:B}),_()}})})():(()=>{const j=g??!1,C=Gt(["watchContractEvent",r,l,u,e.uid,f,w,j]);let G=!0,O=()=>G=!1;return Ds(C,{onLogs:y,onError:m},B=>((async()=>{try{const A=(()=>{if(e.transport.type==="fallback"){const Z=e.transport.transports.find(ee=>ee.config.type==="webSocket"||ee.config.type==="ipc");return Z?Z.value:e.transport}return e.transport})(),_=f?pl({abi:s,eventName:f,args:l}):[],{unsubscribe:M}=await A.subscribe({params:["logs",{address:r,topics:_}],onData(Z){if(!G)return;const ee=Z.result;try{const{eventName:J,args:V}=bl({abi:s,data:ee.data,topics:ee.topics,strict:g}),X=Za(ee,{args:V,eventName:J});B.onLogs([X])}catch(J){let V,X;if(J instanceof zo||J instanceof yu){if(g)return;V=J.abiItem.name,X=J.abiItem.inputs?.some(he=>!("name"in he&&he.name))}const oe=Za(ee,{args:X?[]:{},eventName:V});B.onLogs([oe])}},onError(Z){B.onError?.(Z)}});O=M,G||O()}catch(A){m?.(A)}})(),()=>O()))})()}async function _E(e,{serializedTransaction:n}){return e.request({method:"eth_sendRawTransaction",params:[n]},{retryCount:0})}function eh(e,{delay:n=100,retryCount:s=2,shouldRetry:r=()=>!0}={}){return new Promise((l,u)=>{const f=async({count:p=0}={})=>{const m=async({error:y})=>{const b=typeof n=="function"?n({count:p,error:y}):n;b&&await iu(b),f({count:p+1})};try{const y=await e();l(y)}catch(y){if(p<s&&await r({count:p,error:y}))return m({error:y});u(y)}};f()})}const $E={"0x0":"reverted","0x1":"success"};function B5(e,n){const s={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map(r=>Za(r)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Ya(e.transactionIndex):null,status:e.status?$E[e.status]:null,type:e.type?K6[e.type]||e.type:null};return e.blobGasPrice&&(s.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(s.blobGasUsed=BigInt(e.blobGasUsed)),s}const th=256;let Gc=th,Pc;function R5(e=11){if(!Pc||Gc+e>th*2){Pc="",Gc=0;for(let n=0;n<th;n++)Pc+=(256+Math.random()*256|0).toString(16).substring(1)}return Pc.substring(Gc,Gc+++e)}function DE(e){const{batch:n,chain:s,ccipRead:r,key:l="base",name:u="Base Client",type:f="base"}=e,p=e.experimental_blockTag??(typeof s?.experimental_preconfirmationTime=="number"?"pending":void 0),m=s?.blockTime??12e3,y=Math.min(Math.max(Math.floor(m/2),500),4e3),b=e.pollingInterval??y,w=e.cacheTime??b,g=e.account?na(e.account):void 0,{config:S,request:T,value:x}=e.transport({chain:s,pollingInterval:b}),j={...S,...x},C={account:g,batch:n,cacheTime:w,ccipRead:r,chain:s,key:l,name:u,pollingInterval:b,request:T,transport:j,type:f,uid:R5(),...p?{experimental_blockTag:p}:{}};function G(O){return B=>{const A=B(O);for(const M in C)delete A[M];const _={...O,...A};return Object.assign(_,{extend:G(_)})}}return Object.assign(C,{extend:G(C)})}function Jh(e){if(!(e instanceof re))return!1;const n=e.walk(s=>s instanceof H0);return n instanceof H0?n.data?.errorName==="HttpError"||n.data?.errorName==="ResolverError"||n.data?.errorName==="ResolverNotContract"||n.data?.errorName==="ResolverNotFound"||n.data?.errorName==="ReverseAddressMismatch"||n.data?.errorName==="UnsupportedResolverProfile":!1}function UE(e){const{abi:n,data:s}=e,r=xr(s,0,4),l=n.find(u=>u.type==="function"&&r===hl(Xn(u)));if(!l)throw new A8(r,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:l.name,args:"inputs"in l&&l.inputs&&l.inputs.length>0?ml(l.inputs,xr(s,4)):void 0}}const m0="/docs/contract/encodeErrorResult";function dg(e){const{abi:n,errorName:s,args:r}=e;let l=n[0];if(s){const m=wi({abi:n,args:r,name:s});if(!m)throw new O1(s,{docsPath:m0});l=m}if(l.type!=="error")throw new O1(void 0,{docsPath:m0});const u=Xn(l),f=hl(u);let p="0x";if(r&&r.length>0){if(!l.inputs)throw new S8(l.name,{docsPath:m0});p=vi(l.inputs,r)}return Nr([f,p])}const y0="/docs/contract/encodeFunctionResult";function qE(e){const{abi:n,functionName:s,result:r}=e;let l=n[0];if(s){const f=wi({abi:n,name:s});if(!f)throw new gr(s,{docsPath:y0});l=f}if(l.type!=="function")throw new gr(void 0,{docsPath:y0});if(!l.outputs)throw new c6(l.name,{docsPath:y0});const u=(()=>{if(l.outputs.length===0)return[];if(l.outputs.length===1)return[r];if(Array.isArray(r))return r;throw new u6(r)})();return vi(l.outputs,u)}const Cu="x-batch-gateway:true";async function LE(e){const{data:n,ccipRequest:s}=e,{args:[r]}=UE({abi:J0,data:n}),l=[],u=[];return await Promise.all(r.map(async(f,p)=>{try{u[p]=f.urls.includes(Cu)?await LE({data:f.data,ccipRequest:s}):await s(f),l[p]=!1}catch(m){l[p]=!0,u[p]=HE(m)}})),qE({abi:J0,functionName:"query",result:[l,u]})}function HE(e){return e.name==="HttpRequestError"&&e.status?dg({abi:J0,errorName:"HttpError",args:[e.status,e.shortMessage]}):dg({abi:[R6],errorName:"Error",args:["shortMessage"in e?e.shortMessage:e.message]})}function M5(e){if(e.length!==66||e.indexOf("[")!==0||e.indexOf("]")!==65)return null;const n=`0x${e.slice(1,65)}`;return pa(n)?n:null}function nh(e){let n=new Uint8Array(32).fill(0);if(!e)return Nt(n);const s=e.split(".");for(let r=s.length-1;r>=0;r-=1){const l=M5(s[r]),u=l?jr(l):jt(oi(s[r]),"bytes");n=jt(ba([n,u]),"bytes")}return Nt(n)}function IE(e){return`[${e.slice(2)}]`}function GE(e){const n=new Uint8Array(32).fill(0);return e?M5(e)||jt(oi(e)):Nt(n)}function Wh(e){const n=e.replace(/^\.|\.$/gm,"");if(n.length===0)return new Uint8Array(1);const s=new Uint8Array(oi(n).byteLength+2);let r=0;const l=n.split(".");for(let u=0;u<l.length;u++){let f=oi(l[u]);f.byteLength>255&&(f=oi(IE(GE(l[u])))),s[r]=f.length,s.set(f,r+1),r+=f.length+1}return s.byteLength!==r+1?s.slice(0,r+1):s}async function PE(e,n){const{blockNumber:s,blockTag:r,coinType:l,name:u,gatewayUrls:f,strict:p}=n,{chain:m}=e,y=(()=>{if(n.universalResolverAddress)return n.universalResolverAddress;if(!m)throw new Error("client chain not configured. universalResolverAddress is required.");return Br({blockNumber:s,chain:m,contract:"ensUniversalResolver"})})(),b=m?.ensTlds;if(b&&!b.some(g=>u.endsWith(g)))return null;const w=l!=null?[nh(u),BigInt(l)]:[nh(u)];try{const g=Gn({abi:lg,functionName:"addr",args:w}),S={address:y,abi:x5,functionName:"resolveWithGateways",args:[_s(Wh(u)),g,f??[Cu]],blockNumber:s,blockTag:r},x=await Ae(e,Wn,"readContract")(S);if(x[0]==="0x")return null;const j=Wa({abi:lg,args:w,functionName:"addr",data:x[0]});return j==="0x"||ri(j)==="0x00"?null:j}catch(g){if(p)throw g;if(Jh(g))return null;throw g}}class KE extends re{constructor({data:n}){super("Unable to extract image from metadata. The metadata may be malformed or invalid.",{metaMessages:["- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.","",`Provided data: ${JSON.stringify(n)}`],name:"EnsAvatarInvalidMetadataError"})}}class To extends re{constructor({reason:n}){super(`ENS NFT avatar URI is invalid. ${n}`,{name:"EnsAvatarInvalidNftUriError"})}}class ep extends re{constructor({uri:n}){super(`Unable to resolve ENS avatar URI "${n}". The URI may be malformed, invalid, or does not respond with a valid image.`,{name:"EnsAvatarUriResolutionError"})}}class VE extends re{constructor({namespace:n}){super(`ENS NFT avatar namespace "${n}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}}const FE=/(?<protocol>https?:\/\/[^/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/,YE=/^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\/(?<target>[\w\-.]+))?(?<subtarget>\/.*)?$/,ZE=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,XE=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function QE(e){try{const n=await fetch(e,{method:"HEAD"});return n.status===200?n.headers.get("content-type")?.startsWith("image/"):!1}catch(n){return typeof n=="object"&&typeof n.response<"u"||!Object.hasOwn(globalThis,"Image")?!1:new Promise(s=>{const r=new Image;r.onload=()=>{s(!0)},r.onerror=()=>{s(!1)},r.src=e})}}function fg(e,n){return e?e.endsWith("/")?e.slice(0,-1):e:n}function C5({uri:e,gatewayUrls:n}){const s=ZE.test(e);if(s)return{uri:e,isOnChain:!0,isEncoded:s};const r=fg(n?.ipfs,"https://ipfs.io"),l=fg(n?.arweave,"https://arweave.net"),u=e.match(FE),{protocol:f,subpath:p,target:m,subtarget:y=""}=u?.groups||{},b=f==="ipns:/"||p==="ipns/",w=f==="ipfs:/"||p==="ipfs/"||YE.test(e);if(e.startsWith("http")&&!b&&!w){let S=e;return n?.arweave&&(S=e.replace(/https:\/\/arweave.net/g,n?.arweave)),{uri:S,isOnChain:!1,isEncoded:!1}}if((b||w)&&m)return{uri:`${r}/${b?"ipns":"ipfs"}/${m}${y}`,isOnChain:!1,isEncoded:!1};if(f==="ar:/"&&m)return{uri:`${l}/${m}${y||""}`,isOnChain:!1,isEncoded:!1};let g=e.replace(XE,"");if(g.startsWith("<svg")&&(g=`data:image/svg+xml;base64,${btoa(g)}`),g.startsWith("data:")||g.startsWith("{"))return{uri:g,isOnChain:!0,isEncoded:!1};throw new ep({uri:e})}function O5(e){if(typeof e!="object"||!("image"in e)&&!("image_url"in e)&&!("image_data"in e))throw new KE({data:e});return e.image||e.image_url||e.image_data}async function JE({gatewayUrls:e,uri:n}){try{const s=await fetch(n).then(l=>l.json());return await tp({gatewayUrls:e,uri:O5(s)})}catch{throw new ep({uri:n})}}async function tp({gatewayUrls:e,uri:n}){const{uri:s,isOnChain:r}=C5({uri:n,gatewayUrls:e});if(r||await QE(s))return s;throw new ep({uri:n})}function WE(e){let n=e;n.startsWith("did:nft:")&&(n=n.replace("did:nft:","").replace(/_/g,"/"));const[s,r,l]=n.split("/"),[u,f]=s.split(":"),[p,m]=r.split(":");if(!u||u.toLowerCase()!=="eip155")throw new To({reason:"Only EIP-155 supported"});if(!f)throw new To({reason:"Chain ID not found"});if(!m)throw new To({reason:"Contract address not found"});if(!l)throw new To({reason:"Token ID not found"});if(!p)throw new To({reason:"ERC namespace not found"});return{chainID:Number.parseInt(f,10),namespace:p.toLowerCase(),contractAddress:m,tokenID:l}}async function eA(e,{nft:n}){if(n.namespace==="erc721")return Wn(e,{address:n.contractAddress,abi:[{name:"tokenURI",type:"function",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"tokenURI",args:[BigInt(n.tokenID)]});if(n.namespace==="erc1155")return Wn(e,{address:n.contractAddress,abi:[{name:"uri",type:"function",stateMutability:"view",inputs:[{name:"_id",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"uri",args:[BigInt(n.tokenID)]});throw new VE({namespace:n.namespace})}async function tA(e,{gatewayUrls:n,record:s}){return/eip155:/i.test(s)?nA(e,{gatewayUrls:n,record:s}):tp({uri:s,gatewayUrls:n})}async function nA(e,{gatewayUrls:n,record:s}){const r=WE(s),l=await eA(e,{nft:r}),{uri:u,isOnChain:f,isEncoded:p}=C5({uri:l,gatewayUrls:n});if(f&&(u.includes("data:application/json;base64,")||u.startsWith("{"))){const y=p?atob(u.replace("data:application/json;base64,","")):u,b=JSON.parse(y);return tp({uri:O5(b),gatewayUrls:n})}let m=r.tokenID;return r.namespace==="erc1155"&&(m=m.replace("0x","").padStart(64,"0")),JE({gatewayUrls:n,uri:u.replace(/(?:0x)?{id}/,m)})}async function z5(e,n){const{blockNumber:s,blockTag:r,key:l,name:u,gatewayUrls:f,strict:p}=n,{chain:m}=e,y=(()=>{if(n.universalResolverAddress)return n.universalResolverAddress;if(!m)throw new Error("client chain not configured. universalResolverAddress is required.");return Br({blockNumber:s,chain:m,contract:"ensUniversalResolver"})})(),b=m?.ensTlds;if(b&&!b.some(w=>u.endsWith(w)))return null;try{const w={address:y,abi:x5,args:[_s(Wh(u)),Gn({abi:og,functionName:"text",args:[nh(u),l]}),f??[Cu]],functionName:"resolveWithGateways",blockNumber:s,blockTag:r},S=await Ae(e,Wn,"readContract")(w);if(S[0]==="0x")return null;const T=Wa({abi:og,functionName:"text",data:S[0]});return T===""?null:T}catch(w){if(p)throw w;if(Jh(w))return null;throw w}}async function aA(e,{blockNumber:n,blockTag:s,assetGatewayUrls:r,name:l,gatewayUrls:u,strict:f,universalResolverAddress:p}){const m=await Ae(e,z5,"getEnsText")({blockNumber:n,blockTag:s,key:"avatar",name:l,universalResolverAddress:p,gatewayUrls:u,strict:f});if(!m)return null;try{return await tA(e,{record:m,gatewayUrls:r})}catch{return null}}async function sA(e,n){const{address:s,blockNumber:r,blockTag:l,coinType:u=60n,gatewayUrls:f,strict:p}=n,{chain:m}=e,y=(()=>{if(n.universalResolverAddress)return n.universalResolverAddress;if(!m)throw new Error("client chain not configured. universalResolverAddress is required.");return Br({blockNumber:r,chain:m,contract:"ensUniversalResolver"})})();try{const b={address:y,abi:vE,args:[s,u,f??[Cu]],functionName:"reverseWithGateways",blockNumber:r,blockTag:l},w=Ae(e,Wn,"readContract"),[g]=await w(b);return g||null}catch(b){if(p)throw b;if(Jh(b))return null;throw b}}async function iA(e,n){const{blockNumber:s,blockTag:r,name:l}=n,{chain:u}=e,f=(()=>{if(n.universalResolverAddress)return n.universalResolverAddress;if(!u)throw new Error("client chain not configured. universalResolverAddress is required.");return Br({blockNumber:s,chain:u,contract:"ensUniversalResolver"})})(),p=u?.ensTlds;if(p&&!p.some(y=>l.endsWith(y)))throw new Error(`${l} is not a valid ENS TLD (${p?.join(", ")}) for chain "${u.name}" (id: ${u.id}).`);const[m]=await Ae(e,Wn,"readContract")({address:f,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"},{type:"uint256"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[_s(Wh(l))],blockNumber:s,blockTag:r});return m}async function _5(e,n){const{account:s=e.account,blockNumber:r,blockTag:l="latest",blobs:u,data:f,gas:p,gasPrice:m,maxFeePerBlobGas:y,maxFeePerGas:b,maxPriorityFeePerGas:w,to:g,value:S,...T}=n,x=s?na(s):void 0;try{yl(n);const C=(typeof r=="bigint"?Ee(r):void 0)||l,G=e.chain?.formatters?.transactionRequest?.format,B=(G||Au)({...Uh(T,{format:G}),from:x?.address,blobs:u,data:f,gas:p,gasPrice:m,maxFeePerBlobGas:y,maxFeePerGas:b,maxPriorityFeePerGas:w,to:g,value:S},"createAccessList"),A=await e.request({method:"eth_createAccessList",params:[B,C]});return{accessList:A.accessList,gasUsed:BigInt(A.gasUsed)}}catch(j){throw T5(j,{...n,account:x,chain:e.chain})}}async function rA(e){const n=wu(e,{method:"eth_newBlockFilter"}),s=await e.request({method:"eth_newBlockFilter"});return{id:s,request:n(s),type:"block"}}async function $5(e,{address:n,args:s,event:r,events:l,fromBlock:u,strict:f,toBlock:p}={}){const m=l??(r?[r]:void 0),y=wu(e,{method:"eth_newFilter"});let b=[];m&&(b=[m.flatMap(S=>pl({abi:[S],eventName:S.name,args:s}))],r&&(b=b[0]));const w=await e.request({method:"eth_newFilter",params:[{address:n,fromBlock:typeof u=="bigint"?Ee(u):u,toBlock:typeof p=="bigint"?Ee(p):p,...b.length?{topics:b}:{}}]});return{abi:m,args:s,eventName:r?r.name:void 0,fromBlock:u,id:w,request:y(w),strict:!!f,toBlock:p,type:"event"}}async function D5(e){const n=wu(e,{method:"eth_newPendingTransactionFilter"}),s=await e.request({method:"eth_newPendingTransactionFilter"});return{id:s,request:n(s),type:"transaction"}}async function oA(e,{address:n,blockNumber:s,blockTag:r=e.experimental_blockTag??"latest"}){const l=typeof s=="bigint"?Ee(s):void 0,u=await e.request({method:"eth_getBalance",params:[n,l||r]});return BigInt(u)}async function lA(e){const n=await e.request({method:"eth_blobBaseFee"});return BigInt(n)}async function cA(e,{blockHash:n,blockNumber:s,blockTag:r="latest"}={}){const l=s!==void 0?Ee(s):void 0;let u;return n?u=await e.request({method:"eth_getBlockTransactionCountByHash",params:[n]},{dedupe:!0}):u=await e.request({method:"eth_getBlockTransactionCountByNumber",params:[l||r]},{dedupe:!!l}),Ya(u)}async function ah(e,{address:n,blockNumber:s,blockTag:r="latest"}){const l=s!==void 0?Ee(s):void 0,u=await e.request({method:"eth_getCode",params:[n,l||r]},{dedupe:!!l});if(u!=="0x")return u}class uA extends re{constructor({address:n}){super(`No EIP-712 domain found on contract "${n}".`,{metaMessages:["Ensure that:",`- The contract is deployed at the address "${n}".`,"- `eip712Domain()` function exists on the contract.","- `eip712Domain()` function matches signature to ERC-5267 specification."],name:"Eip712DomainNotFoundError"})}}async function dA(e,n){const{address:s,factory:r,factoryData:l}=n;try{const[u,f,p,m,y,b,w]=await Ae(e,Wn,"readContract")({abi:fA,address:s,functionName:"eip712Domain",factory:r,factoryData:l});return{domain:{name:f,version:p,chainId:Number(m),verifyingContract:y,salt:b},extensions:w,fields:u}}catch(u){const f=u;throw f.name==="ContractFunctionExecutionError"&&f.cause.name==="ContractFunctionZeroDataError"?new uA({address:s}):f}}const fA=[{inputs:[],name:"eip712Domain",outputs:[{name:"fields",type:"bytes1"},{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"},{name:"salt",type:"bytes32"},{name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"}];function hA(e){return{baseFeePerGas:e.baseFeePerGas.map(n=>BigInt(n)),gasUsedRatio:e.gasUsedRatio,oldestBlock:BigInt(e.oldestBlock),reward:e.reward?.map(n=>n.map(s=>BigInt(s)))}}async function pA(e,{blockCount:n,blockNumber:s,blockTag:r="latest",rewardPercentiles:l}){const u=typeof s=="bigint"?Ee(s):void 0,f=await e.request({method:"eth_feeHistory",params:[Ee(n),u||r,l]},{dedupe:!!u});return hA(f)}async function mA(e,{filter:n}){const s=n.strict??!1,l=(await n.request({method:"eth_getFilterLogs",params:[n.id]})).map(u=>Za(u));return n.abi?Ph({abi:n.abi,logs:l,strict:s}):l}async function yA({address:e,authorization:n,signature:s}){return Tu(E6(e),await G6({authorization:n,signature:s}))}const Kc=new Rh(8192);function bA(e,{enabled:n=!0,id:s}){if(!n||!s)return e();if(Kc.get(s))return Kc.get(s);const r=e().finally(()=>Kc.delete(s));return Kc.set(s,r),r}function gA(e,n={}){return async(s,r={})=>{const{dedupe:l=!1,methods:u,retryDelay:f=150,retryCount:p=3,uid:m}={...n,...r},{method:y}=s;if(u?.exclude?.includes(y))throw new ai(new Error("method not supported"),{method:y});if(u?.include&&!u.include.includes(y))throw new ai(new Error("method not supported"),{method:y});const b=l?_o(`${m}.${Gt(s)}`):void 0;return bA(()=>eh(async()=>{try{return await e(s)}catch(w){const g=w;switch(g.code){case Uo.code:throw new Uo(g);case qo.code:throw new qo(g);case Lo.code:throw new Lo(g,{method:s.method});case Ho.code:throw new Ho(g);case fi.code:throw new fi(g);case hi.code:throw new hi(g);case Io.code:throw new Io(g);case Go.code:throw new Go(g);case Sr.code:throw new Sr(g);case ai.code:throw new ai(g,{method:s.method});case Er.code:throw new Er(g);case Po.code:throw new Po(g);case li.code:throw new li(g);case Ko.code:throw new Ko(g);case Vo.code:throw new Vo(g);case Fo.code:throw new Fo(g);case Yo.code:throw new Yo(g);case Zo.code:throw new Zo(g);case Xo.code:throw new Xo(g);case Qo.code:throw new Qo(g);case Jo.code:throw new Jo(g);case Wo.code:throw new Wo(g);case el.code:throw new el(g);case tl.code:throw new tl(g);case nl.code:throw new nl(g);case 5e3:throw new li(g);default:throw w instanceof re?w:new tS(g)}}},{delay:({count:w,error:g})=>{if(g&&g instanceof Mo){const S=g?.headers?.get("Retry-After");if(S?.match(/\d/))return Number.parseInt(S,10)*1e3}return~~(1<<w)*f},retryCount:p,shouldRetry:({error:w})=>vA(w)}),{enabled:l,id:b})}}function vA(e){return"code"in e&&typeof e.code=="number"?e.code===-1||e.code===Er.code||e.code===fi.code:e instanceof Mo&&e.status?e.status===403||e.status===408||e.status===413||e.status===429||e.status===500||e.status===502||e.status===503||e.status===504:!0}function U5(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}function wA(e,{errorInstance:n=new Error("timed out"),timeout:s,signal:r}){return new Promise((l,u)=>{(async()=>{let f;try{const p=new AbortController;s>0&&(f=setTimeout(()=>{r&&p.abort()},s)),l(await e({signal:p?.signal||null}))}catch(p){p?.name==="AbortError"&&u(n),u(p)}finally{clearTimeout(f)}})()})}function xA(){return{current:0,take(){return this.current++},reset(){this.current=0}}}const hg=xA();function SA(e,n={}){return{async request(s){const{body:r,fetchFn:l=n.fetchFn??fetch,onRequest:u=n.onRequest,onResponse:f=n.onResponse,timeout:p=n.timeout??1e4}=s,m={...n.fetchOptions??{},...s.fetchOptions??{}},{headers:y,method:b,signal:w}=m;try{const g=await wA(async({signal:T})=>{const x={...m,body:Array.isArray(r)?Gt(r.map(O=>({jsonrpc:"2.0",id:O.id??hg.take(),...O}))):Gt({jsonrpc:"2.0",id:r.id??hg.take(),...r}),headers:{"Content-Type":"application/json",...y},method:b||"POST",signal:w||(p>0?T:null)},j=new Request(e,x),C=await u?.(j,x)??{...x,url:e};return await l(C.url??e,C)},{errorInstance:new F1({body:r,url:e}),timeout:p,signal:!0});f&&await f(g);let S;if(g.headers.get("Content-Type")?.startsWith("application/json"))S=await g.json();else{S=await g.text();try{S=JSON.parse(S||"{}")}catch(T){if(g.ok)throw T;S={error:S}}}if(!g.ok)throw new Mo({body:r,details:Gt(S.error)||g.statusText,headers:g.headers,status:g.status,url:e});return S}catch(g){throw g instanceof Mo||g instanceof F1?g:new Mo({body:r,cause:g,url:e})}}}}const EA=`Ethereum Signed Message: -`;function AA(e){const n=typeof e=="string"?_o(e):typeof e.raw=="string"?e.raw:Nt(e.raw),s=_o(`${EA}${mt(n)}`);return ba([s,n])}function q5(e,n){return jt(AA(e),n)}class TA extends re{constructor({domain:n}){super(`Invalid domain "${Gt(n)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}}class kA extends re{constructor({primaryType:n,types:s}){super(`Invalid primary type \`${n}\` must be one of \`${JSON.stringify(Object.keys(s))}\`.`,{docsPath:"/api/glossary/Errors#typeddatainvalidprimarytypeerror",metaMessages:["Check that the primary type is a key in `types`."]})}}class jA extends re{constructor({type:n}){super(`Struct type "${n}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}}function NA(e){const{domain:n,message:s,primaryType:r,types:l}=e,u=(f,p)=>{for(const m of f){const{name:y,type:b}=m,w=p[y],g=b.match(j6);if(g&&(typeof w=="number"||typeof w=="bigint")){const[x,j,C]=g;Ee(w,{signed:j==="int",size:Number.parseInt(C,10)/8})}if(b==="address"&&typeof w=="string"&&!dn(w))throw new $s({address:w});const S=b.match(g3);if(S){const[x,j]=S;if(j&&mt(w)!==Number.parseInt(j,10))throw new k8({expectedSize:Number.parseInt(j,10),givenSize:mt(w)})}const T=l[b];T&&(RA(b),u(T,w))}};if(l.EIP712Domain&&n){if(typeof n!="object")throw new TA({domain:n});u(l.EIP712Domain,n)}if(r!=="EIP712Domain")if(l[r])u(l[r],s);else throw new kA({primaryType:r,types:l})}function BA({domain:e}){return[typeof e?.name=="string"&&{name:"name",type:"string"},e?.version&&{name:"version",type:"string"},(typeof e?.chainId=="number"||typeof e?.chainId=="bigint")&&{name:"chainId",type:"uint256"},e?.verifyingContract&&{name:"verifyingContract",type:"address"},e?.salt&&{name:"salt",type:"bytes32"}].filter(Boolean)}function RA(e){if(e==="address"||e==="bool"||e==="string"||e.startsWith("bytes")||e.startsWith("uint")||e.startsWith("int"))throw new jA({type:e})}function MA(e){const{domain:n={},message:s,primaryType:r}=e,l={EIP712Domain:BA({domain:n}),...e.types};NA({domain:n,message:s,primaryType:r,types:l});const u=["0x1901"];return n&&u.push(CA({domain:n,types:l})),r!=="EIP712Domain"&&u.push(L5({data:s,primaryType:r,types:l})),jt(ba(u))}function CA({domain:e,types:n}){return L5({data:e,primaryType:"EIP712Domain",types:n})}function L5({data:e,primaryType:n,types:s}){const r=H5({data:e,primaryType:n,types:s});return jt(r)}function H5({data:e,primaryType:n,types:s}){const r=[{type:"bytes32"}],l=[OA({primaryType:n,types:s})];for(const u of s[n]){const[f,p]=G5({types:s,name:u.name,type:u.type,value:e[u.name]});r.push(f),l.push(p)}return vi(r,l)}function OA({primaryType:e,types:n}){const s=_s(zA({primaryType:e,types:n}));return jt(s)}function zA({primaryType:e,types:n}){let s="";const r=I5({primaryType:e,types:n});r.delete(e);const l=[e,...Array.from(r).sort()];for(const u of l)s+=`${u}(${n[u].map(({name:f,type:p})=>`${p} ${f}`).join(",")})`;return s}function I5({primaryType:e,types:n},s=new Set){const l=e.match(/^\w*/u)?.[0];if(s.has(l)||n[l]===void 0)return s;s.add(l);for(const u of n[l])I5({primaryType:u.type,types:n},s);return s}function G5({types:e,name:n,type:s,value:r}){if(e[s]!==void 0)return[{type:"bytes32"},jt(H5({data:r,primaryType:s,types:e}))];if(s==="bytes")return r=`0x${(r.length%2?"0":"")+r.slice(2)}`,[{type:"bytes32"},jt(r)];if(s==="string")return[{type:"bytes32"},jt(_s(r))];if(s.lastIndexOf("]")===s.length-1){const l=s.slice(0,s.lastIndexOf("[")),u=r.map(f=>G5({name:n,type:l,types:e,value:f}));return[{type:"bytes32"},jt(vi(u.map(([f])=>f),u.map(([,f])=>f)))]}return[{type:s},r]}class _A extends Map{constructor(n){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=n}get(n){const s=super.get(n);return super.has(n)&&s!==void 0&&(this.delete(n),super.set(n,s)),s}set(n,s){if(super.set(n,s),this.maxSize&&this.size>this.maxSize){const r=this.keys().next().value;r&&this.delete(r)}return this}}const $A={checksum:new _A(8192)},b0=$A.checksum;function P5(e,n={}){const{as:s=typeof e=="string"?"Hex":"Bytes"}=n,r=x6(WS(e));return s==="Bytes"?r:Jn(r)}const DA=/^0x[a-fA-F0-9]{40}$/;function Ou(e,n={}){const{strict:s=!0}=n;if(!DA.test(e))throw new pg({address:e,cause:new UA});if(s){if(e.toLowerCase()===e)return;if(K5(e)!==e)throw new pg({address:e,cause:new qA})}}function K5(e){if(b0.has(e))return b0.get(e);Ou(e,{strict:!1});const n=e.substring(2).toLowerCase(),s=P5(tE(n),{as:"Bytes"}),r=n.split("");for(let u=0;u<40;u+=2)s[u>>1]>>4>=8&&r[u]&&(r[u]=r[u].toUpperCase()),(s[u>>1]&15)>=8&&r[u+1]&&(r[u+1]=r[u+1].toUpperCase());const l=`0x${r.join("")}`;return b0.set(e,l),l}function sh(e,n={}){const{strict:s=!0}=n??{};try{return Ou(e,{strict:s}),!0}catch{return!1}}class pg extends Ce{constructor({address:n,cause:s}){super(`Address "${n}" is invalid.`,{cause:s}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}}class UA extends Ce{constructor(){super("Address is not a 20 byte (40 hexadecimal character) value."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"})}}class qA extends Ce{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}const LA=/^(.*)\[([0-9]*)\]$/,HA=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,V5=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,mg=2n**256n-1n;function mr(e,n,s){const{checksumAddress:r,staticPosition:l}=s,u=sp(n.type);if(u){const[f,p]=u;return GA(e,{...n,type:p},{checksumAddress:r,length:f,staticPosition:l})}if(n.type==="tuple")return FA(e,n,{checksumAddress:r,staticPosition:l});if(n.type==="address")return IA(e,{checksum:r});if(n.type==="bool")return PA(e);if(n.type.startsWith("bytes"))return KA(e,n,{staticPosition:l});if(n.type.startsWith("uint")||n.type.startsWith("int"))return VA(e,n);if(n.type==="string")return YA(e,{staticPosition:l});throw new rp(n.type)}const yg=32,ih=32;function IA(e,n={}){const{checksum:s=!1}=n,r=e.readBytes(32);return[(u=>s?K5(u):u)(Jn(aE(r,-20))),32]}function GA(e,n,s){const{checksumAddress:r,length:l,staticPosition:u}=s;if(!l){const m=Ka(e.readBytes(ih)),y=u+m,b=y+yg;e.setPosition(y);const w=Ka(e.readBytes(yg)),g=rl(n);let S=0;const T=[];for(let x=0;x<w;++x){e.setPosition(b+(g?x*32:S));const[j,C]=mr(e,n,{checksumAddress:r,staticPosition:b});S+=C,T.push(j)}return e.setPosition(u+32),[T,32]}if(rl(n)){const m=Ka(e.readBytes(ih)),y=u+m,b=[];for(let w=0;w<l;++w){e.setPosition(y+w*32);const[g]=mr(e,n,{checksumAddress:r,staticPosition:y});b.push(g)}return e.setPosition(u+32),[b,32]}let f=0;const p=[];for(let m=0;m<l;++m){const[y,b]=mr(e,n,{checksumAddress:r,staticPosition:u+f});f+=b,p.push(y)}return[p,f]}function PA(e){return[iE(e.readBytes(32),{size:32}),32]}function KA(e,n,{staticPosition:s}){const[r,l]=n.type.split("bytes");if(!l){const f=Ka(e.readBytes(32));e.setPosition(s+f);const p=Ka(e.readBytes(32));if(p===0)return e.setPosition(s+32),["0x",32];const m=e.readBytes(p);return e.setPosition(s+32),[Jn(m),32]}return[Jn(e.readBytes(Number.parseInt(l,10),32)),32]}function VA(e,n){const s=n.type.startsWith("int"),r=Number.parseInt(n.type.split("int")[1]||"256",10),l=e.readBytes(32);return[r>48?sE(l,{signed:s}):Ka(l,{signed:s}),32]}function FA(e,n,s){const{checksumAddress:r,staticPosition:l}=s,u=n.components.length===0||n.components.some(({name:m})=>!m),f=u?[]:{};let p=0;if(rl(n)){const m=Ka(e.readBytes(ih)),y=l+m;for(let b=0;b<n.components.length;++b){const w=n.components[b];e.setPosition(y+p);const[g,S]=mr(e,w,{checksumAddress:r,staticPosition:y});p+=S,f[u?b:w?.name]=g}return e.setPosition(l+32),[f,32]}for(let m=0;m<n.components.length;++m){const y=n.components[m],[b,w]=mr(e,y,{checksumAddress:r,staticPosition:l});f[u?m:y?.name]=b,p+=w}return[f,p]}function YA(e,{staticPosition:n}){const s=Ka(e.readBytes(32)),r=n+s;e.setPosition(r);const l=Ka(e.readBytes(32));if(l===0)return e.setPosition(n+32),["",32];const u=e.readBytes(l,32),f=rE(h5(u));return e.setPosition(n+32),[f,32]}function ZA({checksumAddress:e,parameters:n,values:s}){const r=[];for(let l=0;l<n.length;l++)r.push(np({checksumAddress:e,parameter:n[l],value:s[l]}));return r}function np({checksumAddress:e=!1,parameter:n,value:s}){const r=n,l=sp(r.type);if(l){const[u,f]=l;return QA(s,{checksumAddress:e,length:u,parameter:{...r,type:f}})}if(r.type==="tuple")return nT(s,{checksumAddress:e,parameter:r});if(r.type==="address")return XA(s,{checksum:e});if(r.type==="bool")return WA(s);if(r.type.startsWith("uint")||r.type.startsWith("int")){const u=r.type.startsWith("int"),[,,f="256"]=V5.exec(r.type)??[];return eT(s,{signed:u,size:Number(f)})}if(r.type.startsWith("bytes"))return JA(s,{type:r.type});if(r.type==="string")return tT(s);throw new rp(r.type)}function ap(e){let n=0;for(let u=0;u<e.length;u++){const{dynamic:f,encoded:p}=e[u];f?n+=32:n+=Tn(p)}const s=[],r=[];let l=0;for(let u=0;u<e.length;u++){const{dynamic:f,encoded:p}=e[u];f?(s.push(Zt(n+l,{size:32})),r.push(p),l+=Tn(p)):s.push(p)}return Qn(...s,...r)}function XA(e,n){const{checksum:s=!1}=n;return Ou(e,{strict:s}),{dynamic:!1,encoded:pi(e.toLowerCase())}}function QA(e,n){const{checksumAddress:s,length:r,parameter:l}=n,u=r===null;if(!Array.isArray(e))throw new dT(e);if(!u&&e.length!==r)throw new uT({expectedLength:r,givenLength:e.length,type:`${l.type}[${r}]`});let f=!1;const p=[];for(let m=0;m<e.length;m++){const y=np({checksumAddress:s,parameter:l,value:e[m]});y.dynamic&&(f=!0),p.push(y)}if(u||f){const m=ap(p);if(u){const y=Zt(p.length,{size:32});return{dynamic:!0,encoded:p.length>0?Qn(y,m):y}}if(f)return{dynamic:!0,encoded:m}}return{dynamic:!1,encoded:Qn(...p.map(({encoded:m})=>m))}}function JA(e,{type:n}){const[,s]=n.split("bytes"),r=Tn(e);if(!s){let l=e;return r%32!==0&&(l=mi(l,Math.ceil((e.length-2)/2/32)*32)),{dynamic:!0,encoded:Qn(pi(Zt(r,{size:32})),l)}}if(r!==Number.parseInt(s,10))throw new Y5({expectedSize:Number.parseInt(s,10),value:e});return{dynamic:!1,encoded:mi(e)}}function WA(e){if(typeof e!="boolean")throw new Ce(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:pi(p5(e))}}function eT(e,{signed:n,size:s}){if(typeof s=="number"){const r=2n**(BigInt(s)-(n?1n:0n))-1n,l=n?-r-1n:0n;if(e>r||e<l)throw new b5({max:r.toString(),min:l.toString(),signed:n,size:s/8,value:e.toString()})}return{dynamic:!1,encoded:Zt(e,{size:32,signed:n})}}function tT(e){const n=Zh(e),s=Math.ceil(Tn(n)/32),r=[];for(let l=0;l<s;l++)r.push(mi(ha(n,l*32,(l+1)*32)));return{dynamic:!0,encoded:Qn(mi(Zt(Tn(n),{size:32})),...r)}}function nT(e,n){const{checksumAddress:s,parameter:r}=n;let l=!1;const u=[];for(let f=0;f<r.components.length;f++){const p=r.components[f],m=Array.isArray(e)?f:p.name,y=np({checksumAddress:s,parameter:p,value:e[m]});u.push(y),y.dynamic&&(l=!0)}return{dynamic:l,encoded:l?ap(u):Qn(...u.map(({encoded:f})=>f))}}function sp(e){const n=e.match(/^(.*)\[(\d+)?\]$/);return n?[n[2]?Number(n[2]):null,n[1]]:void 0}function rl(e){const{type:n}=e;if(n==="string"||n==="bytes"||n.endsWith("[]"))return!0;if(n==="tuple")return e.components?.some(rl);const s=sp(e.type);return!!(s&&rl({...e,type:s[1]}))}const aT={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new rT({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new iT({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new bg({offset:e});const n=this.position-e;this.assertPosition(n),this.position=n},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new bg({offset:e});const n=this.position+e;this.assertPosition(n),this.position=n},inspectByte(e){const n=e??this.position;return this.assertPosition(n),this.bytes[n]},inspectBytes(e,n){const s=n??this.position;return this.assertPosition(s+e-1),this.bytes.subarray(s,s+e)},inspectUint8(e){const n=e??this.position;return this.assertPosition(n),this.bytes[n]},inspectUint16(e){const n=e??this.position;return this.assertPosition(n+1),this.dataView.getUint16(n)},inspectUint24(e){const n=e??this.position;return this.assertPosition(n+2),(this.dataView.getUint16(n)<<8)+this.dataView.getUint8(n+2)},inspectUint32(e){const n=e??this.position;return this.assertPosition(n+3),this.dataView.getUint32(n)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,n){this.assertReadLimit(),this._touch();const s=this.inspectBytes(e);return this.position+=n??e,s},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const n=this.position;return this.assertPosition(e),this.position=e,()=>this.position=n},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function sT(e,{recursiveReadLimit:n=8192}={}){const s=Object.create(aT);return s.bytes=e,s.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),s.positionReadCount=new Map,s.recursiveReadLimit=n,s}class bg extends Ce{constructor({offset:n}){super(`Offset \`${n}\` cannot be negative.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"})}}class iT extends Ce{constructor({length:n,position:s}){super(`Position \`${s}\` is out of bounds (\`0 < position < ${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.PositionOutOfBoundsError"})}}class rT extends Ce{constructor({count:n,limit:s}){super(`Recursive read limit of \`${s}\` exceeded (recursive read count: \`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.RecursiveReadLimitExceededError"})}}function oT(e,n,s={}){const{as:r="Array",checksumAddress:l=!1}=s,u=typeof n=="string"?f5(n):n,f=sT(u);if(ur(u)===0&&e.length>0)throw new cT;if(ur(u)&&ur(u)<32)throw new lT({data:typeof n=="string"?n:Jn(n),parameters:e,size:ur(u)});let p=0;const m=r==="Array"?[]:{};for(let y=0;y<e.length;++y){const b=e[y];f.setPosition(p);const[w,g]=mr(f,b,{checksumAddress:l,staticPosition:0});p+=g,r==="Array"?m.push(w):m[b.name??y]=w}return m}function ip(e,n,s){const{checksumAddress:r=!1}={};if(e.length!==n.length)throw new Z5({expectedLength:e.length,givenLength:n.length});const l=ZA({checksumAddress:r,parameters:e,values:n}),u=ap(l);return u.length===0?"0x":u}function rh(e,n){if(e.length!==n.length)throw new Z5({expectedLength:e.length,givenLength:n.length});const s=[];for(let r=0;r<e.length;r++){const l=e[r],u=n[r];s.push(rh.encode(l,u))}return Qn(...s)}(function(e){function n(s,r,l=!1){if(s==="address"){const m=r;return Ou(m),pi(m.toLowerCase(),l?32:0)}if(s==="string")return Zh(r);if(s==="bytes")return r;if(s==="bool")return pi(p5(r),l?32:1);const u=s.match(V5);if(u){const[m,y,b="256"]=u,w=Number.parseInt(b,10)/8;return Zt(r,{size:l?32:w,signed:y==="int"})}const f=s.match(HA);if(f){const[m,y]=f;if(Number.parseInt(y,10)!==(r.length-2)/2)throw new Y5({expectedSize:Number.parseInt(y,10),value:r});return mi(r,l?32:0)}const p=s.match(LA);if(p&&Array.isArray(r)){const[m,y]=p,b=[];for(let w=0;w<r.length;w++)b.push(n(y,r[w],!0));return b.length===0?"0x":Qn(...b)}throw new rp(s)}e.encode=n})(rh||(rh={}));function F5(e){return Array.isArray(e)&&typeof e[0]=="string"||typeof e=="string"?M1(e):e}class lT extends Ce{constructor({data:n,parameters:s,size:r}){super(`Data size of ${r} bytes is too small for given parameters.`,{metaMessages:[`Params: (${lr(s)})`,`Data: ${n} (${r} bytes)`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.DataSizeTooSmallError"})}}class cT extends Ce{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.'),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ZeroDataError"})}}class uT extends Ce{constructor({expectedLength:n,givenLength:s,type:r}){super(`Array length mismatch for type \`${r}\`. Expected: \`${n}\`. Given: \`${s}\`.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ArrayLengthMismatchError"})}}class Y5 extends Ce{constructor({expectedSize:n,value:s}){super(`Size of bytes "${s}" (bytes${Tn(s)}) does not match expected size (bytes${n}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}}class Z5 extends Ce{constructor({expectedLength:n,givenLength:s}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${n}`,`Given length (values): ${s}`].join(` -`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.LengthMismatchError"})}}class dT extends Ce{constructor(n){super(`Value \`${n}\` is not a valid array.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidArrayError"})}}class rp extends Ce{constructor(n){super(`Type \`${n}\` is not a valid ABI Type.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidTypeError"})}}class X5 extends Nh{constructor(n,s){super(),this.finished=!1,this.destroyed=!1,Y8(n);const r=bu(s);if(this.iHash=n.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const l=this.blockLen,u=new Uint8Array(l);u.set(r.length>l?n.create().update(r).digest():r);for(let f=0;f<u.length;f++)u[f]^=54;this.iHash.update(u),this.oHash=n.create();for(let f=0;f<u.length;f++)u[f]^=106;this.oHash.update(u),wr(u)}update(n){return vr(this),this.iHash.update(n),this}digestInto(n){vr(this),di(n,this.outputLen),this.finished=!0,this.iHash.digestInto(n),this.oHash.update(n),this.oHash.digestInto(n),this.destroy()}digest(){const n=new Uint8Array(this.oHash.outputLen);return this.digestInto(n),n}_cloneInto(n){n||(n=Object.create(Object.getPrototypeOf(this),{}));const{oHash:s,iHash:r,finished:l,destroyed:u,blockLen:f,outputLen:p}=this;return n=n,n.finished=l,n.destroyed=u,n.blockLen=f,n.outputLen=p,n.oHash=s._cloneInto(n.oHash),n.iHash=r._cloneInto(n.iHash),n}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const Q5=(e,n,s)=>new X5(e,n).update(s).digest();Q5.create=(e,n)=>new X5(e,n);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const un=BigInt(0),Qt=BigInt(1),ii=BigInt(2),fT=BigInt(3),J5=BigInt(4),W5=BigInt(5),ev=BigInt(8);function on(e,n){const s=e%n;return s>=un?s:n+s}function Dn(e,n,s){let r=e;for(;n-- >un;)r*=r,r%=s;return r}function oh(e,n){if(e===un)throw new Error("invert: expected non-zero number");if(n<=un)throw new Error("invert: expected positive modulus, got "+n);let s=on(e,n),r=n,l=un,u=Qt;for(;s!==un;){const p=r/s,m=r%s,y=l-u*p;r=s,s=m,l=u,u=y}if(r!==Qt)throw new Error("invert: does not exist");return on(l,n)}function tv(e,n){const s=(e.ORDER+Qt)/J5,r=e.pow(n,s);if(!e.eql(e.sqr(r),n))throw new Error("Cannot find square root");return r}function hT(e,n){const s=(e.ORDER-W5)/ev,r=e.mul(n,ii),l=e.pow(r,s),u=e.mul(n,l),f=e.mul(e.mul(u,ii),l),p=e.mul(u,e.sub(f,e.ONE));if(!e.eql(e.sqr(p),n))throw new Error("Cannot find square root");return p}function pT(e){if(e<BigInt(3))throw new Error("sqrt is not defined for small field");let n=e-Qt,s=0;for(;n%ii===un;)n/=ii,s++;let r=ii;const l=op(e);for(;gg(l,r)===1;)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(s===1)return tv;let u=l.pow(r,n);const f=(n+Qt)/ii;return function(m,y){if(m.is0(y))return y;if(gg(m,y)!==1)throw new Error("Cannot find square root");let b=s,w=m.mul(m.ONE,u),g=m.pow(y,n),S=m.pow(y,f);for(;!m.eql(g,m.ONE);){if(m.is0(g))return m.ZERO;let T=1,x=m.sqr(g);for(;!m.eql(x,m.ONE);)if(T++,x=m.sqr(x),T===b)throw new Error("Cannot find square root");const j=Qt<<BigInt(b-T-1),C=m.pow(w,j);b=T,w=m.sqr(C),g=m.mul(g,w),S=m.mul(S,C)}return S}}function mT(e){return e%J5===fT?tv:e%ev===W5?hT:pT(e)}const yT=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function bT(e){const n={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},s=yT.reduce((r,l)=>(r[l]="function",r),n);return ju(e,s)}function gT(e,n,s){if(s<un)throw new Error("invalid exponent, negatives unsupported");if(s===un)return e.ONE;if(s===Qt)return n;let r=e.ONE,l=n;for(;s>un;)s&Qt&&(r=e.mul(r,l)),l=e.sqr(l),s>>=Qt;return r}function nv(e,n,s=!1){const r=new Array(n.length).fill(s?e.ZERO:void 0),l=n.reduce((f,p,m)=>e.is0(p)?f:(r[m]=f,e.mul(f,p)),e.ONE),u=e.inv(l);return n.reduceRight((f,p,m)=>e.is0(p)?f:(r[m]=e.mul(f,r[m]),e.mul(f,p)),u),r}function gg(e,n){const s=(e.ORDER-Qt)/ii,r=e.pow(n,s),l=e.eql(r,e.ONE),u=e.eql(r,e.ZERO),f=e.eql(r,e.neg(e.ONE));if(!l&&!u&&!f)throw new Error("invalid Legendre symbol result");return l?1:u?0:-1}function av(e,n){n!==void 0&&$o(n);const s=n!==void 0?n:e.toString(2).length,r=Math.ceil(s/8);return{nBitLength:s,nByteLength:r}}function op(e,n,s=!1,r={}){if(e<=un)throw new Error("invalid field: expected ORDER > 0, got "+e);const{nBitLength:l,nByteLength:u}=av(e,n);if(u>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let f;const p=Object.freeze({ORDER:e,isLE:s,BITS:l,BYTES:u,MASK:ku(l),ZERO:un,ONE:Qt,create:m=>on(m,e),isValid:m=>{if(typeof m!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof m);return un<=m&&m<e},is0:m=>m===un,isOdd:m=>(m&Qt)===Qt,neg:m=>on(-m,e),eql:(m,y)=>m===y,sqr:m=>on(m*m,e),add:(m,y)=>on(m+y,e),sub:(m,y)=>on(m-y,e),mul:(m,y)=>on(m*y,e),pow:(m,y)=>gT(p,m,y),div:(m,y)=>on(m*oh(y,e),e),sqrN:m=>m*m,addN:(m,y)=>m+y,subN:(m,y)=>m-y,mulN:(m,y)=>m*y,inv:m=>oh(m,e),sqrt:r.sqrt||(m=>(f||(f=mT(e)),f(p,m))),toBytes:m=>s?o5(m,u):vl(m,u),fromBytes:m=>{if(m.length!==u)throw new Error("Field.fromBytes: expected "+u+" bytes, got "+m.length);return s?r5(m):ci(m)},invertBatch:m=>nv(p,m),cmov:(m,y,b)=>b?y:m});return Object.freeze(p)}function sv(e){if(typeof e!="bigint")throw new Error("field order must be bigint");const n=e.toString(2).length;return Math.ceil(n/8)}function iv(e){const n=sv(e);return n+Math.ceil(n/2)}function vT(e,n,s=!1){const r=e.length,l=sv(n),u=iv(n);if(r<16||r<u||r>1024)throw new Error("expected "+u+"-1024 bytes of input, got "+r);const f=s?r5(e):ci(e),p=on(f,n-Qt)+Qt;return s?o5(p,l):vl(p,l)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const vg=BigInt(0),lh=BigInt(1);function g0(e,n){const s=n.negate();return e?s:n}function rv(e,n){if(!Number.isSafeInteger(e)||e<=0||e>n)throw new Error("invalid window size, expected [1.."+n+"], got W="+e)}function v0(e,n){rv(e,n);const s=Math.ceil(n/e)+1,r=2**(e-1),l=2**e,u=ku(e),f=BigInt(e);return{windows:s,windowSize:r,mask:u,maxNumber:l,shiftBy:f}}function wg(e,n,s){const{windowSize:r,mask:l,maxNumber:u,shiftBy:f}=s;let p=Number(e&l),m=e>>f;p>r&&(p-=u,m+=lh);const y=n*r,b=y+Math.abs(p)-1,w=p===0,g=p<0,S=n%2!==0;return{nextN:m,offset:b,isZero:w,isNeg:g,isNegF:S,offsetF:y}}function wT(e,n){if(!Array.isArray(e))throw new Error("array expected");e.forEach((s,r)=>{if(!(s instanceof n))throw new Error("invalid point at index "+r)})}function xT(e,n){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((s,r)=>{if(!n.isValid(s))throw new Error("invalid scalar at index "+r)})}const w0=new WeakMap,ov=new WeakMap;function x0(e){return ov.get(e)||1}function ST(e,n){return{constTimeNegate:g0,hasPrecomputes(s){return x0(s)!==1},unsafeLadder(s,r,l=e.ZERO){let u=s;for(;r>vg;)r&lh&&(l=l.add(u)),u=u.double(),r>>=lh;return l},precomputeWindow(s,r){const{windows:l,windowSize:u}=v0(r,n),f=[];let p=s,m=p;for(let y=0;y<l;y++){m=p,f.push(m);for(let b=1;b<u;b++)m=m.add(p),f.push(m);p=m.double()}return f},wNAF(s,r,l){let u=e.ZERO,f=e.BASE;const p=v0(s,n);for(let m=0;m<p.windows;m++){const{nextN:y,offset:b,isZero:w,isNeg:g,isNegF:S,offsetF:T}=wg(l,m,p);l=y,w?f=f.add(g0(S,r[T])):u=u.add(g0(g,r[b]))}return{p:u,f}},wNAFUnsafe(s,r,l,u=e.ZERO){const f=v0(s,n);for(let p=0;p<f.windows&&l!==vg;p++){const{nextN:m,offset:y,isZero:b,isNeg:w}=wg(l,p,f);if(l=m,!b){const g=r[y];u=u.add(w?g.negate():g)}}return u},getPrecomputes(s,r,l){let u=w0.get(r);return u||(u=this.precomputeWindow(r,s),s!==1&&w0.set(r,l(u))),u},wNAFCached(s,r,l){const u=x0(s);return this.wNAF(u,this.getPrecomputes(u,s,l),r)},wNAFCachedUnsafe(s,r,l,u){const f=x0(s);return f===1?this.unsafeLadder(s,r,u):this.wNAFUnsafe(f,this.getPrecomputes(f,s,l),r,u)},setWindowSize(s,r){rv(r,n),ov.set(s,r),w0.delete(s)}}}function ET(e,n,s,r){wT(s,e),xT(r,n);const l=s.length,u=r.length;if(l!==u)throw new Error("arrays of points and scalars must have equal length");const f=e.ZERO,p=IS(BigInt(l));let m=1;p>12?m=p-3:p>4?m=p-2:p>0&&(m=2);const y=ku(m),b=new Array(Number(y)+1).fill(f),w=Math.floor((n.BITS-1)/m)*m;let g=f;for(let S=w;S>=0;S-=m){b.fill(f);for(let x=0;x<u;x++){const j=r[x],C=Number(j>>BigInt(S)&y);b[C]=b[C].add(s[x])}let T=f;for(let x=b.length-1,j=f;x>0;x--)j=j.add(b[x]),T=T.add(j);if(g=g.add(T),S!==0)for(let x=0;x<m;x++)g=g.double()}return g}function lv(e){return bT(e.Fp),ju(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...av(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function xg(e){e.lowS!==void 0&&al("lowS",e.lowS),e.prehash!==void 0&&al("prehash",e.prehash)}function AT(e){const n=lv(e);ju(n,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});const{endo:s,Fp:r,a:l}=n;if(s){if(!r.eql(l,r.ZERO))throw new Error("invalid endo: CURVE.a must be 0");if(typeof s!="object"||typeof s.beta!="bigint"||typeof s.splitScalar!="function")throw new Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...n})}class TT extends Error{constructor(n=""){super(n)}}const La={Err:TT,_tlv:{encode:(e,n)=>{const{Err:s}=La;if(e<0||e>256)throw new s("tlv.encode: wrong tag");if(n.length&1)throw new s("tlv.encode: unpadded data");const r=n.length/2,l=Ic(r);if(l.length/2&128)throw new s("tlv.encode: long form length too big");const u=r>127?Ic(l.length/2|128):"";return Ic(e)+u+l+n},decode(e,n){const{Err:s}=La;let r=0;if(e<0||e>256)throw new s("tlv.encode: wrong tag");if(n.length<2||n[r++]!==e)throw new s("tlv.decode: wrong tlv");const l=n[r++],u=!!(l&128);let f=0;if(!u)f=l;else{const m=l&127;if(!m)throw new s("tlv.decode(long): indefinite length not supported");if(m>4)throw new s("tlv.decode(long): byte length is too big");const y=n.subarray(r,r+m);if(y.length!==m)throw new s("tlv.decode: length bytes not complete");if(y[0]===0)throw new s("tlv.decode(long): zero leftmost byte");for(const b of y)f=f<<8|b;if(r+=m,f<128)throw new s("tlv.decode(long): not minimal encoding")}const p=n.subarray(r,r+f);if(p.length!==f)throw new s("tlv.decode: wrong value length");return{v:p,l:n.subarray(r+f)}}},_int:{encode(e){const{Err:n}=La;if(e<Ia)throw new n("integer: negative integers are not allowed");let s=Ic(e);if(Number.parseInt(s[0],16)&8&&(s="00"+s),s.length&1)throw new n("unexpected DER parsing assertion: unpadded hex");return s},decode(e){const{Err:n}=La;if(e[0]&128)throw new n("invalid signature integer: negative");if(e[0]===0&&!(e[1]&128))throw new n("invalid signature integer: unnecessary leading zero");return ci(e)}},toSig(e){const{Err:n,_int:s,_tlv:r}=La,l=Un("signature",e),{v:u,l:f}=r.decode(48,l);if(f.length)throw new n("invalid signature: left bytes after parsing");const{v:p,l:m}=r.decode(2,u),{v:y,l:b}=r.decode(2,m);if(b.length)throw new n("invalid signature: left bytes after parsing");return{r:s.decode(p),s:s.decode(y)}},hexFromSig(e){const{_tlv:n,_int:s}=La,r=n.encode(2,s.encode(e.r)),l=n.encode(2,s.encode(e.s)),u=r+l;return n.encode(48,u)}};function S0(e,n){return sl(vl(e,n))}const Ia=BigInt(0),Ct=BigInt(1);BigInt(2);const E0=BigInt(3),kT=BigInt(4);function jT(e){const n=AT(e),{Fp:s}=n,r=op(n.n,n.nBitLength),l=n.toBytes||((O,B,A)=>{const _=B.toAffine();return su(Uint8Array.from([4]),s.toBytes(_.x),s.toBytes(_.y))}),u=n.fromBytes||(O=>{const B=O.subarray(1),A=s.fromBytes(B.subarray(0,s.BYTES)),_=s.fromBytes(B.subarray(s.BYTES,2*s.BYTES));return{x:A,y:_}});function f(O){const{a:B,b:A}=n,_=s.sqr(O),M=s.mul(_,O);return s.add(s.add(M,s.mul(O,B)),A)}function p(O,B){const A=s.sqr(B),_=f(O);return s.eql(A,_)}if(!p(n.Gx,n.Gy))throw new Error("bad curve params: generator point");const m=s.mul(s.pow(n.a,E0),kT),y=s.mul(s.sqr(n.b),BigInt(27));if(s.is0(s.add(m,y)))throw new Error("bad curve params: a or b");function b(O){return Yh(O,Ct,n.n)}function w(O){const{allowedPrivateKeyLengths:B,nByteLength:A,wrapPrivateKey:_,n:M}=n;if(B&&typeof O!="bigint"){if(gl(O)&&(O=sl(O)),typeof O!="string"||!B.includes(O.length))throw new Error("invalid private key");O=O.padStart(A*2,"0")}let Z;try{Z=typeof O=="bigint"?O:ci(Un("private key",O,A))}catch{throw new Error("invalid private key, expected hex or "+A+" bytes, got "+typeof O)}return _&&(Z=on(Z,M)),pr("private key",Z,Ct,M),Z}function g(O){if(!(O instanceof x))throw new Error("ProjectivePoint expected")}const S=ag((O,B)=>{const{px:A,py:_,pz:M}=O;if(s.eql(M,s.ONE))return{x:A,y:_};const Z=O.is0();B==null&&(B=Z?s.ONE:s.inv(M));const ee=s.mul(A,B),J=s.mul(_,B),V=s.mul(M,B);if(Z)return{x:s.ZERO,y:s.ZERO};if(!s.eql(V,s.ONE))throw new Error("invZ was invalid");return{x:ee,y:J}}),T=ag(O=>{if(O.is0()){if(n.allowInfinityPoint&&!s.is0(O.py))return;throw new Error("bad point: ZERO")}const{x:B,y:A}=O.toAffine();if(!s.isValid(B)||!s.isValid(A))throw new Error("bad point: x or y not FE");if(!p(B,A))throw new Error("bad point: equation left != right");if(!O.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class x{constructor(B,A,_){if(B==null||!s.isValid(B))throw new Error("x required");if(A==null||!s.isValid(A)||s.is0(A))throw new Error("y required");if(_==null||!s.isValid(_))throw new Error("z required");this.px=B,this.py=A,this.pz=_,Object.freeze(this)}static fromAffine(B){const{x:A,y:_}=B||{};if(!B||!s.isValid(A)||!s.isValid(_))throw new Error("invalid affine point");if(B instanceof x)throw new Error("projective point not allowed");const M=Z=>s.eql(Z,s.ZERO);return M(A)&&M(_)?x.ZERO:new x(A,_,s.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(B){const A=nv(s,B.map(_=>_.pz));return B.map((_,M)=>_.toAffine(A[M])).map(x.fromAffine)}static fromHex(B){const A=x.fromAffine(u(Un("pointHex",B)));return A.assertValidity(),A}static fromPrivateKey(B){return x.BASE.multiply(w(B))}static msm(B,A){return ET(x,r,B,A)}_setWindowSize(B){G.setWindowSize(this,B)}assertValidity(){T(this)}hasEvenY(){const{y:B}=this.toAffine();if(s.isOdd)return!s.isOdd(B);throw new Error("Field doesn't support isOdd")}equals(B){g(B);const{px:A,py:_,pz:M}=this,{px:Z,py:ee,pz:J}=B,V=s.eql(s.mul(A,J),s.mul(Z,M)),X=s.eql(s.mul(_,J),s.mul(ee,M));return V&&X}negate(){return new x(this.px,s.neg(this.py),this.pz)}double(){const{a:B,b:A}=n,_=s.mul(A,E0),{px:M,py:Z,pz:ee}=this;let J=s.ZERO,V=s.ZERO,X=s.ZERO,oe=s.mul(M,M),he=s.mul(Z,Z),ae=s.mul(ee,ee),R=s.mul(M,Z);return R=s.add(R,R),X=s.mul(M,ee),X=s.add(X,X),J=s.mul(B,X),V=s.mul(_,ae),V=s.add(J,V),J=s.sub(he,V),V=s.add(he,V),V=s.mul(J,V),J=s.mul(R,J),X=s.mul(_,X),ae=s.mul(B,ae),R=s.sub(oe,ae),R=s.mul(B,R),R=s.add(R,X),X=s.add(oe,oe),oe=s.add(X,oe),oe=s.add(oe,ae),oe=s.mul(oe,R),V=s.add(V,oe),ae=s.mul(Z,ee),ae=s.add(ae,ae),oe=s.mul(ae,R),J=s.sub(J,oe),X=s.mul(ae,he),X=s.add(X,X),X=s.add(X,X),new x(J,V,X)}add(B){g(B);const{px:A,py:_,pz:M}=this,{px:Z,py:ee,pz:J}=B;let V=s.ZERO,X=s.ZERO,oe=s.ZERO;const he=n.a,ae=s.mul(n.b,E0);let R=s.mul(A,Z),K=s.mul(_,ee),Y=s.mul(M,J),se=s.add(A,_),le=s.add(Z,ee);se=s.mul(se,le),le=s.add(R,K),se=s.sub(se,le),le=s.add(A,M);let k=s.add(Z,J);return le=s.mul(le,k),k=s.add(R,Y),le=s.sub(le,k),k=s.add(_,M),V=s.add(ee,J),k=s.mul(k,V),V=s.add(K,Y),k=s.sub(k,V),oe=s.mul(he,le),V=s.mul(ae,Y),oe=s.add(V,oe),V=s.sub(K,oe),oe=s.add(K,oe),X=s.mul(V,oe),K=s.add(R,R),K=s.add(K,R),Y=s.mul(he,Y),le=s.mul(ae,le),K=s.add(K,Y),Y=s.sub(R,Y),Y=s.mul(he,Y),le=s.add(le,Y),R=s.mul(K,le),X=s.add(X,R),R=s.mul(k,le),V=s.mul(se,V),V=s.sub(V,R),R=s.mul(se,K),oe=s.mul(k,oe),oe=s.add(oe,R),new x(V,X,oe)}subtract(B){return this.add(B.negate())}is0(){return this.equals(x.ZERO)}wNAF(B){return G.wNAFCached(this,B,x.normalizeZ)}multiplyUnsafe(B){const{endo:A,n:_}=n;pr("scalar",B,Ia,_);const M=x.ZERO;if(B===Ia)return M;if(this.is0()||B===Ct)return this;if(!A||G.hasPrecomputes(this))return G.wNAFCachedUnsafe(this,B,x.normalizeZ);let{k1neg:Z,k1:ee,k2neg:J,k2:V}=A.splitScalar(B),X=M,oe=M,he=this;for(;ee>Ia||V>Ia;)ee&Ct&&(X=X.add(he)),V&Ct&&(oe=oe.add(he)),he=he.double(),ee>>=Ct,V>>=Ct;return Z&&(X=X.negate()),J&&(oe=oe.negate()),oe=new x(s.mul(oe.px,A.beta),oe.py,oe.pz),X.add(oe)}multiply(B){const{endo:A,n:_}=n;pr("scalar",B,Ct,_);let M,Z;if(A){const{k1neg:ee,k1:J,k2neg:V,k2:X}=A.splitScalar(B);let{p:oe,f:he}=this.wNAF(J),{p:ae,f:R}=this.wNAF(X);oe=G.constTimeNegate(ee,oe),ae=G.constTimeNegate(V,ae),ae=new x(s.mul(ae.px,A.beta),ae.py,ae.pz),M=oe.add(ae),Z=he.add(R)}else{const{p:ee,f:J}=this.wNAF(B);M=ee,Z=J}return x.normalizeZ([M,Z])[0]}multiplyAndAddUnsafe(B,A,_){const M=x.BASE,Z=(J,V)=>V===Ia||V===Ct||!J.equals(M)?J.multiplyUnsafe(V):J.multiply(V),ee=Z(this,A).add(Z(B,_));return ee.is0()?void 0:ee}toAffine(B){return S(this,B)}isTorsionFree(){const{h:B,isTorsionFree:A}=n;if(B===Ct)return!0;if(A)return A(x,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:B,clearCofactor:A}=n;return B===Ct?this:A?A(x,this):this.multiplyUnsafe(n.h)}toRawBytes(B=!0){return al("isCompressed",B),this.assertValidity(),l(x,this,B)}toHex(B=!0){return al("isCompressed",B),sl(this.toRawBytes(B))}}x.BASE=new x(n.Gx,n.Gy,s.ONE),x.ZERO=new x(s.ZERO,s.ONE,s.ZERO);const{endo:j,nBitLength:C}=n,G=ST(x,j?Math.ceil(C/2):C);return{CURVE:n,ProjectivePoint:x,normPrivateKeyToScalar:w,weierstrassEquation:f,isWithinCurveOrder:b}}function NT(e){const n=lv(e);return ju(n,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...n})}function BT(e){const n=NT(e),{Fp:s,n:r,nByteLength:l,nBitLength:u}=n,f=s.BYTES+1,p=2*s.BYTES+1;function m(ae){return on(ae,r)}function y(ae){return oh(ae,r)}const{ProjectivePoint:b,normPrivateKeyToScalar:w,weierstrassEquation:g,isWithinCurveOrder:S}=jT({...n,toBytes(ae,R,K){const Y=R.toAffine(),se=s.toBytes(Y.x),le=su;return al("isCompressed",K),K?le(Uint8Array.from([R.hasEvenY()?2:3]),se):le(Uint8Array.from([4]),se,s.toBytes(Y.y))},fromBytes(ae){const R=ae.length,K=ae[0],Y=ae.subarray(1);if(R===f&&(K===2||K===3)){const se=ci(Y);if(!Yh(se,Ct,s.ORDER))throw new Error("Point is not on curve");const le=g(se);let k;try{k=s.sqrt(le)}catch(H){const W=H instanceof Error?": "+H.message:"";throw new Error("Point is not on curve"+W)}const P=(k&Ct)===Ct;return(K&1)===1!==P&&(k=s.neg(k)),{x:se,y:k}}else if(R===p&&K===4){const se=s.fromBytes(Y.subarray(0,s.BYTES)),le=s.fromBytes(Y.subarray(s.BYTES,2*s.BYTES));return{x:se,y:le}}else{const se=f,le=p;throw new Error("invalid Point, expected length of "+se+", or uncompressed "+le+", got "+R)}}});function T(ae){const R=r>>Ct;return ae>R}function x(ae){return T(ae)?m(-ae):ae}const j=(ae,R,K)=>ci(ae.slice(R,K));class C{constructor(R,K,Y){pr("r",R,Ct,r),pr("s",K,Ct,r),this.r=R,this.s=K,Y!=null&&(this.recovery=Y),Object.freeze(this)}static fromCompact(R){const K=l;return R=Un("compactSignature",R,K*2),new C(j(R,0,K),j(R,K,2*K))}static fromDER(R){const{r:K,s:Y}=La.toSig(Un("DER",R));return new C(K,Y)}assertValidity(){}addRecoveryBit(R){return new C(this.r,this.s,R)}recoverPublicKey(R){const{r:K,s:Y,recovery:se}=this,le=M(Un("msgHash",R));if(se==null||![0,1,2,3].includes(se))throw new Error("recovery id invalid");const k=se===2||se===3?K+n.n:K;if(k>=s.ORDER)throw new Error("recovery id 2 or 3 invalid");const P=(se&1)===0?"02":"03",ie=b.fromHex(P+S0(k,s.BYTES)),H=y(k),W=m(-le*H),ue=m(Y*H),pe=b.BASE.multiplyAndAddUnsafe(ie,W,ue);if(!pe)throw new Error("point at infinify");return pe.assertValidity(),pe}hasHighS(){return T(this.s)}normalizeS(){return this.hasHighS()?new C(this.r,m(-this.s),this.recovery):this}toDERRawBytes(){return au(this.toDERHex())}toDERHex(){return La.hexFromSig(this)}toCompactRawBytes(){return au(this.toCompactHex())}toCompactHex(){const R=l;return S0(this.r,R)+S0(this.s,R)}}const G={isValidPrivateKey(ae){try{return w(ae),!0}catch{return!1}},normPrivateKeyToScalar:w,randomPrivateKey:()=>{const ae=iv(n.n);return vT(n.randomBytes(ae),n.n)},precompute(ae=8,R=b.BASE){return R._setWindowSize(ae),R.multiply(BigInt(3)),R}};function O(ae,R=!0){return b.fromPrivateKey(ae).toRawBytes(R)}function B(ae){if(typeof ae=="bigint")return!1;if(ae instanceof b)return!0;const K=Un("key",ae).length,Y=s.BYTES,se=Y+1,le=2*Y+1;if(!(n.allowedPrivateKeyLengths||l===se))return K===se||K===le}function A(ae,R,K=!0){if(B(ae)===!0)throw new Error("first arg must be private key");if(B(R)===!1)throw new Error("second arg must be public key");return b.fromHex(R).multiply(w(ae)).toRawBytes(K)}const _=n.bits2int||function(ae){if(ae.length>8192)throw new Error("input is too large");const R=ci(ae),K=ae.length*8-u;return K>0?R>>BigInt(K):R},M=n.bits2int_modN||function(ae){return m(_(ae))},Z=ku(u);function ee(ae){return pr("num < 2^"+u,ae,Ia,Z),vl(ae,l)}function J(ae,R,K=V){if(["recovered","canonical"].some(me=>me in K))throw new Error("sign() legacy options not supported");const{hash:Y,randomBytes:se}=n;let{lowS:le,prehash:k,extraEntropy:P}=K;le==null&&(le=!0),ae=Un("msgHash",ae),xg(K),k&&(ae=Un("prehashed msgHash",Y(ae)));const ie=M(ae),H=w(R),W=[ee(H),ee(ie)];if(P!=null&&P!==!1){const me=P===!0?se(s.BYTES):P;W.push(Un("extraEntropy",me))}const ue=su(...W),pe=ie;function we(me){const Oe=_(me);if(!S(Oe))return;const Te=y(Oe),ct=b.BASE.multiply(Oe).toAffine(),dt=m(ct.x);if(dt===Ia)return;const Je=m(Te*m(pe+dt*H));if(Je===Ia)return;let rt=(ct.x===dt?0:2)|Number(ct.y&Ct),Ot=Je;return le&&T(Je)&&(Ot=x(Je),rt^=1),new C(dt,Ot,rt)}return{seed:ue,k2sig:we}}const V={lowS:n.lowS,prehash:!1},X={lowS:n.lowS,prehash:!1};function oe(ae,R,K=V){const{seed:Y,k2sig:se}=J(ae,R,K),le=n;return GS(le.hash.outputLen,le.nByteLength,le.hmac)(Y,se)}b.BASE._setWindowSize(8);function he(ae,R,K,Y=X){const se=ae;R=Un("msgHash",R),K=Un("publicKey",K);const{lowS:le,prehash:k,format:P}=Y;if(xg(Y),"strict"in Y)throw new Error("options.strict was renamed to lowS");if(P!==void 0&&P!=="compact"&&P!=="der")throw new Error("format must be compact or der");const ie=typeof se=="string"||gl(se),H=!ie&&!P&&typeof se=="object"&&se!==null&&typeof se.r=="bigint"&&typeof se.s=="bigint";if(!ie&&!H)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let W,ue;try{if(H&&(W=new C(se.r,se.s)),ie){try{P!=="compact"&&(W=C.fromDER(se))}catch(rt){if(!(rt instanceof La.Err))throw rt}!W&&P!=="der"&&(W=C.fromCompact(se))}ue=b.fromHex(K)}catch{return!1}if(!W||le&&W.hasHighS())return!1;k&&(R=n.hash(R));const{r:pe,s:we}=W,me=M(R),Oe=y(we),Te=m(me*Oe),ct=m(pe*Oe),dt=b.BASE.multiplyAndAddUnsafe(ue,Te,ct)?.toAffine();return dt?m(dt.x)===pe:!1}return{CURVE:n,getPublicKey:O,getSharedSecret:A,sign:oe,verify:he,ProjectivePoint:b,Signature:C,utils:G}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function RT(e){return{hash:e,hmac:(n,...s)=>Q5(e,n,e3(...s)),randomBytes:t3}}function MT(e,n){const s=r=>BT({...e,...RT(r)});return{...s(n),create:s}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const cv=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Sg=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),CT=BigInt(0),OT=BigInt(1),ch=BigInt(2),Eg=(e,n)=>(e+n/ch)/n;function zT(e){const n=cv,s=BigInt(3),r=BigInt(6),l=BigInt(11),u=BigInt(22),f=BigInt(23),p=BigInt(44),m=BigInt(88),y=e*e*e%n,b=y*y*e%n,w=Dn(b,s,n)*b%n,g=Dn(w,s,n)*b%n,S=Dn(g,ch,n)*y%n,T=Dn(S,l,n)*S%n,x=Dn(T,u,n)*T%n,j=Dn(x,p,n)*x%n,C=Dn(j,m,n)*j%n,G=Dn(C,p,n)*x%n,O=Dn(G,s,n)*b%n,B=Dn(O,f,n)*T%n,A=Dn(B,r,n)*y%n,_=Dn(A,ch,n);if(!uh.eql(uh.sqr(_),e))throw new Error("Cannot find square root");return _}const uh=op(cv,void 0,void 0,{sqrt:zT}),uv=MT({a:CT,b:BigInt(7),Fp:uh,n:Sg,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const n=Sg,s=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-OT*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),l=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),u=s,f=BigInt("0x100000000000000000000000000000000"),p=Eg(u*e,n),m=Eg(-r*e,n);let y=on(e-p*s-m*l,n),b=on(-p*r-m*u,n);const w=y>f,g=b>f;if(w&&(y=n-y),g&&(b=n-b),y>f||b>f)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:w,k1:y,k2neg:g,k2:b}}}},J6),_T=Object.freeze(Object.defineProperty({__proto__:null,secp256k1:uv},Symbol.toStringTag,{value:"Module"}));function dv(e,n={}){const{recovered:s}=n;if(typeof e.r>"u")throw new A0({signature:e});if(typeof e.s>"u")throw new A0({signature:e});if(s&&typeof e.yParity>"u")throw new A0({signature:e});if(e.r<0n||e.r>mg)throw new IT({value:e.r});if(e.s<0n||e.s>mg)throw new GT({value:e.s});if(typeof e.yParity=="number"&&e.yParity!==0&&e.yParity!==1)throw new cp({value:e.yParity})}function $T(e){return fv(Jn(e))}function fv(e){if(e.length!==130&&e.length!==132)throw new HT({signature:e});const n=BigInt(ha(e,0,32)),s=BigInt(ha(e,32,64)),r=(()=>{const l=+`0x${e.slice(130)}`;if(!Number.isNaN(l))try{return lp(l)}catch{throw new cp({value:l})}})();return typeof r>"u"?{r:n,s}:{r:n,s,yParity:r}}function DT(e){if(!(typeof e.r>"u")&&!(typeof e.s>"u"))return UT(e)}function UT(e){const n=typeof e=="string"?fv(e):e instanceof Uint8Array?$T(e):typeof e.r=="string"?LT(e):e.v?qT(e):{r:e.r,s:e.s,...typeof e.yParity<"u"?{yParity:e.yParity}:{}};return dv(n),n}function qT(e){return{r:e.r,s:e.s,yParity:lp(e.v)}}function LT(e){const n=(()=>{const s=e.v?Number(e.v):void 0;let r=e.yParity?Number(e.yParity):void 0;if(typeof s=="number"&&typeof r!="number"&&(r=lp(s)),typeof r!="number")throw new cp({value:e.yParity});return r})();return{r:BigInt(e.r),s:BigInt(e.s),yParity:n}}function lp(e){if(e===0||e===27)return 0;if(e===1||e===28)return 1;if(e>=35)return e%2===0?1:0;throw new PT({value:e})}class HT extends Ce{constructor({signature:n}){super(`Value \`${n}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${Tn(pE(n))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}}class A0 extends Ce{constructor({signature:n}){super(`Signature \`${d5(n)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.MissingPropertiesError"})}}class IT extends Ce{constructor({value:n}){super(`Value \`${n}\` is an invalid r value. r must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidRError"})}}class GT extends Ce{constructor({value:n}){super(`Value \`${n}\` is an invalid s value. s must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSError"})}}class cp extends Ce{constructor({value:n}){super(`Value \`${n}\` is an invalid y-parity value. Y-parity must be 0 or 1.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidYParityError"})}}class PT extends Ce{constructor({value:n}){super(`Value \`${n}\` is an invalid v value. v must be 27, 28 or >=35.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidVError"})}}function KT(e,n={}){return typeof e.chainId=="string"?VT(e):{...e,...n.signature}}function VT(e){const{address:n,chainId:s,nonce:r}=e,l=DT(e);return{address:n,chainId:Number(s),nonce:BigInt(r),...l}}const FT="0x8010801080108010801080108010801080108010801080108010801080108010",YT=F5("(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data");function hv(e){if(typeof e=="string"){if(ha(e,-32)!==FT)throw new QT(e)}else dv(e.authorization)}function ZT(e){hv(e);const n=y5(ha(e,-64,-32)),s=ha(e,-n-64,-64),r=ha(e,0,-n-64),[l,u,f]=oT(YT,s);return{authorization:KT({address:l.delegation,chainId:Number(l.chainId),nonce:l.nonce,yParity:l.yParity,r:l.r,s:l.s}),signature:r,...f&&f!=="0x"?{data:f,to:u}:{}}}function XT(e){try{return hv(e),!0}catch{return!1}}let QT=class extends Ce{constructor(n){super(`Value \`${n}\` is an invalid ERC-8010 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc8010.InvalidWrappedSignatureError"})}};class JT extends re{constructor({value:n}){super(`Number \`${n}\` is not a valid decimal number.`,{name:"InvalidDecimalNumberError"})}}function pv(e,n){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new JT({value:e});let[s,r="0"]=e.split(".");const l=s.startsWith("-");if(l&&(s=s.slice(1)),r=r.replace(/(0+)$/,""),n===0)Math.round(+`.${r}`)===1&&(s=`${BigInt(s)+1n}`),r="";else if(r.length>n){const[u,f,p]=[r.slice(0,n-1),r.slice(n-1,n),r.slice(n)],m=Math.round(+`${f}.${p}`);m>9?r=`${BigInt(u)+BigInt(1)}0`.padStart(u.length+1,"0"):r=`${u}${m}`,r.length>n&&(r=r.slice(1),s=`${BigInt(s)+1n}`),r=r.slice(0,n)}else r=r.padEnd(n,"0");return BigInt(`${l?"-":""}${s}${r}`)}function WT(e){return e.map(n=>({...n,value:BigInt(n.value)}))}function e4(e){return{...e,balance:e.balance?BigInt(e.balance):void 0,nonce:e.nonce?Ya(e.nonce):void 0,storageProof:e.storageProof?WT(e.storageProof):void 0}}async function t4(e,{address:n,blockNumber:s,blockTag:r,storageKeys:l}){const u=r??"latest",f=s!==void 0?Ee(s):void 0,p=await e.request({method:"eth_getProof",params:[n,l,f||u]});return e4(p)}async function n4(e,{address:n,blockNumber:s,blockTag:r="latest",slot:l}){const u=s!==void 0?Ee(s):void 0;return await e.request({method:"eth_getStorageAt",params:[n,l,u||r]})}async function up(e,{blockHash:n,blockNumber:s,blockTag:r,hash:l,index:u}){const f=r||"latest",p=s!==void 0?Ee(s):void 0;let m=null;if(l?m=await e.request({method:"eth_getTransactionByHash",params:[l]},{dedupe:!0}):n?m=await e.request({method:"eth_getTransactionByBlockHashAndIndex",params:[n,Ee(u)]},{dedupe:!0}):m=await e.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[p||f,Ee(u)]},{dedupe:!!p}),!m)throw new _6({blockHash:n,blockNumber:s,blockTag:f,hash:l,index:u});return(e.chain?.formatters?.transaction?.format||V6)(m,"getTransaction")}async function a4(e,{hash:n,transactionReceipt:s}){const[r,l]=await Promise.all([Ae(e,Sl,"getBlockNumber")({}),n?Ae(e,up,"getTransaction")({hash:n}):void 0]),u=s?.blockNumber||l?.blockNumber;return u?r-u+1n:0n}async function Zc(e,{hash:n}){const s=await e.request({method:"eth_getTransactionReceipt",params:[n]},{dedupe:!0});if(!s)throw new $6({hash:n});return(e.chain?.formatters?.transactionReceipt?.format||B5)(s,"getTransactionReceipt")}async function s4(e,n){const{account:s,authorizationList:r,allowFailure:l=!0,blockNumber:u,blockOverrides:f,blockTag:p,stateOverride:m}=n,y=n.contracts,{batchSize:b=n.batchSize??1024,deployless:w=n.deployless??!1}=typeof e.batch?.multicall=="object"?e.batch.multicall:{},g=(()=>{if(n.multicallAddress)return n.multicallAddress;if(w)return null;if(e.chain)return Br({blockNumber:u,chain:e.chain,contract:"multicall3"});throw new Error("client chain not configured. multicallAddress is required.")})(),S=[[]];let T=0,x=0;for(let G=0;G<y.length;G++){const{abi:O,address:B,args:A,functionName:_}=y[G];try{const M=Gn({abi:O,args:A,functionName:_});x+=(M.length-2)/2,b>0&&x>b&&S[T].length>0&&(T++,x=(M.length-2)/2,S[T]=[]),S[T]=[...S[T],{allowFailure:!0,callData:M,target:B}]}catch(M){const Z=Ar(M,{abi:O,address:B,args:A,docsPath:"/docs/contract/multicall",functionName:_,sender:s});if(!l)throw Z;S[T]=[...S[T],{allowFailure:!0,callData:"0x",target:B}]}}const j=await Promise.allSettled(S.map(G=>Ae(e,Wn,"readContract")({...g===null?{code:Xh}:{address:g},abi:il,account:s,args:[G],authorizationList:r,blockNumber:u,blockOverrides:f,blockTag:p,functionName:"aggregate3",stateOverride:m}))),C=[];for(let G=0;G<j.length;G++){const O=j[G];if(O.status==="rejected"){if(!l)throw O.reason;for(let A=0;A<S[G].length;A++)C.push({status:"failure",error:O.reason,result:void 0});continue}const B=O.value;for(let A=0;A<B.length;A++){const{returnData:_,success:M}=B[A],{callData:Z}=S[G][A],{abi:ee,address:J,functionName:V,args:X}=y[C.length];try{if(Z==="0x")throw new fl;if(!M)throw new Su({data:_});const oe=Wa({abi:ee,args:X,data:_,functionName:V});C.push(l?{result:oe,status:"success"}:oe)}catch(oe){const he=Ar(oe,{abi:ee,address:J,args:X,docsPath:"/docs/contract/multicall",functionName:V});if(!l)throw he;C.push({error:he,result:void 0,status:"failure"})}}}if(C.length!==y.length)throw new re("multicall results mismatch");return C}async function dh(e,n){const{blockNumber:s,blockTag:r=e.experimental_blockTag??"latest",blocks:l,returnFullTransactions:u,traceTransfers:f,validation:p}=n;try{const m=[];for(const g of l){const S=g.blockOverrides?v5(g.blockOverrides):void 0,T=g.calls.map(j=>{const C=j,G=C.account?na(C.account):void 0,O=C.abi?Gn(C):C.data,B={...C,data:C.dataSuffix?ba([O||"0x",C.dataSuffix]):O,from:C.from??G?.address};return yl(B),Au(B)}),x=g.stateOverrides?qh(g.stateOverrides):void 0;m.push({blockOverrides:S,calls:T,stateOverrides:x})}const b=(typeof s=="bigint"?Ee(s):void 0)||r;return(await e.request({method:"eth_simulateV1",params:[{blockStateCalls:m,returnFullTransactions:u,traceTransfers:f,validation:p},b]})).map((g,S)=>({...F6(g),calls:g.calls.map((T,x)=>{const{abi:j,args:C,functionName:G,to:O}=l[S].calls[x],B=T.error?.data??T.returnData,A=BigInt(T.gasUsed),_=T.logs?.map(J=>Za(J)),M=T.status==="0x1"?"success":"failure",Z=j&&M==="success"&&B!=="0x"?Wa({abi:j,data:B,functionName:G}):null,ee=(()=>{if(M==="success")return;let J;if(T.error?.data==="0x"?J=new fl:T.error&&(J=new Su(T.error)),!!J)return Ar(J,{abi:j??[],address:O??"0x",args:C,functionName:G??"<unknown>"})})();return{data:B,gasUsed:A,logs:_,status:M,...M==="success"?{result:Z}:{error:ee}}})}))}catch(m){const y=m,b=Dh(y,{});throw b instanceof Eu?y:b}}function fh(e){let n=!0,s="",r=0,l="",u=!1;for(let f=0;f<e.length;f++){const p=e[f];if(["(",")",","].includes(p)&&(n=!0),p==="("&&r++,p===")"&&r--,!!n){if(r===0){if(p===" "&&["event","function","error",""].includes(l))l="";else if(l+=p,p===")"){u=!0;break}continue}if(p===" "){e[f-1]!==","&&s!==","&&s!==",("&&(s="",n=!1);continue}l+=p,s+=p}}if(!u)throw new Ce("Unable to normalize signature.");return l}function hh(e,n){const s=typeof e,r=n.type;switch(r){case"address":return sh(e,{strict:!1});case"bool":return s==="boolean";case"function":return s==="string";case"string":return s==="string";default:return r==="tuple"&&"components"in n?Object.values(n.components).every((l,u)=>hh(Object.values(e)[u],l)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(r)?s==="number"||s==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(r)?s==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(r)?Array.isArray(e)&&e.every(l=>hh(l,{...n,type:r.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function mv(e,n,s){for(const r in e){const l=e[r],u=n[r];if(l.type==="tuple"&&u.type==="tuple"&&"components"in l&&"components"in u)return mv(l.components,u.components,s[r]);const f=[l.type,u.type];if(f.includes("address")&&f.includes("bytes20")?!0:f.includes("address")&&f.includes("string")?sh(s[r],{strict:!1}):f.includes("address")&&f.includes("bytes")?sh(s[r],{strict:!1}):!1)return f}}function yv(e,n={}){const{prepare:s=!0}=n,r=Array.isArray(e)||typeof e=="string"?R1(e):e;return{...r,...s?{hash:dr(r)}:{}}}function zu(e,n,s){const{args:r=[],prepare:l=!0}=s??{},u=mE(n,{strict:!1}),f=e.filter(y=>u?y.type==="function"||y.type==="error"?bv(y)===ha(n,0,4):y.type==="event"?dr(y)===n:!1:"name"in y&&y.name===n);if(f.length===0)throw new ru({name:n});if(f.length===1)return{...f[0],...l?{hash:dr(f[0])}:{}};let p;for(const y of f){if(!("inputs"in y))continue;if(!r||r.length===0){if(!y.inputs||y.inputs.length===0)return{...y,...l?{hash:dr(y)}:{}};continue}if(!y.inputs||y.inputs.length===0||y.inputs.length!==r.length)continue;if(r.every((w,g)=>{const S="inputs"in y&&y.inputs[g];return S?hh(w,S):!1})){if(p&&"inputs"in p&&p.inputs){const w=mv(y.inputs,p.inputs,r);if(w)throw new r4({abiItem:y,type:w[0]},{abiItem:p,type:w[1]})}p=y}}const m=(()=>{if(p)return p;const[y,...b]=f;return{...y,overloads:b}})();if(!m)throw new ru({name:n});return{...m,...l?{hash:dr(m)}:{}}}function bv(...e){const n=(()=>{if(Array.isArray(e[0])){const[s,r]=e;return zu(s,r)}return e[0]})();return ha(dr(n),0,4)}function i4(...e){const n=(()=>{if(Array.isArray(e[0])){const[r,l]=e;return zu(r,l)}return e[0]})(),s=typeof n=="string"?n:eu(n);return fh(s)}function dr(...e){const n=(()=>{if(Array.isArray(e[0])){const[s,r]=e;return zu(s,r)}return e[0]})();return typeof n!="string"&&"hash"in n&&n.hash?n.hash:P5(Zh(i4(n)))}class r4 extends Ce{constructor(n,s){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${n.type}\` in \`${fh(eu(n.abiItem))}\`, and`,`\`${s.type}\` in \`${fh(eu(s.abiItem))}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.AmbiguityError"})}}class ru extends Ce{constructor({name:n,data:s,type:r="item"}){const l=n?` with name "${n}"`:s?` with data "${s}"`:"";super(`ABI ${r}${l} not found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.NotFoundError"})}}function o4(...e){const[n,s]=(()=>{if(Array.isArray(e[0])){const[u,f]=e;return[c4(u),f]}return e})(),{bytecode:r,args:l}=s;return Qn(r,n.inputs?.length&&l?.length?ip(n.inputs,l):"0x")}function l4(e){return yv(e)}function c4(e){const n=e.find(s=>s.type==="constructor");if(!n)throw new ru({name:"constructor"});return n}function u4(...e){const[n,s=[]]=(()=>{if(Array.isArray(e[0])){const[y,b,w]=e;return[Ag(y,b,{args:w}),w]}const[p,m]=e;return[p,m]})(),{overloads:r}=n,l=r?Ag([n,...r],n.name,{args:s}):n,u=d4(l),f=s.length>0?ip(l.inputs,s):void 0;return f?Qn(u,f):u}function rr(e,n={}){return yv(e,n)}function Ag(e,n,s){const r=zu(e,n,s);if(r.type!=="function")throw new ru({name:n,type:"function"});return r}function d4(e){return bv(e)}const f4="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",Le="0x0000000000000000000000000000000000000000",h4="0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033";async function p4(e,n){const{blockNumber:s,blockTag:r,calls:l,stateOverrides:u,traceAssetChanges:f,traceTransfers:p,validation:m}=n,y=n.account?na(n.account):void 0;if(f&&!y)throw new re("`account` is required when `traceAssetChanges` is true");const b=y?o4(l4("constructor(bytes, bytes)"),{bytecode:E5,args:[h4,u4(rr("function getBalance(address)"),[y.address])]}):void 0,w=f?await Promise.all(n.calls.map(async Y=>{if(!Y.data&&!Y.abi)return;const{accessList:se}=await _5(e,{account:y.address,...Y,data:Y.abi?Gn(Y):Y.data});return se.map(({address:le,storageKeys:k})=>k.length>0?le:null)})).then(Y=>Y.flat().filter(Boolean)):[],g=await dh(e,{blockNumber:s,blockTag:r,blocks:[...f?[{calls:[{data:b}],stateOverrides:u},{calls:w.map((Y,se)=>({abi:[rr("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[y.address],to:Y,from:Le,nonce:se})),stateOverrides:[{address:Le,nonce:0}]}]:[],{calls:[...l,{}].map(Y=>({...Y,from:y?.address})),stateOverrides:u},...f?[{calls:[{data:b}]},{calls:w.map((Y,se)=>({abi:[rr("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[y.address],to:Y,from:Le,nonce:se})),stateOverrides:[{address:Le,nonce:0}]},{calls:w.map((Y,se)=>({to:Y,abi:[rr("function decimals() returns (uint256)")],functionName:"decimals",from:Le,nonce:se})),stateOverrides:[{address:Le,nonce:0}]},{calls:w.map((Y,se)=>({to:Y,abi:[rr("function tokenURI(uint256) returns (string)")],functionName:"tokenURI",args:[0n],from:Le,nonce:se})),stateOverrides:[{address:Le,nonce:0}]},{calls:w.map((Y,se)=>({to:Y,abi:[rr("function symbol() returns (string)")],functionName:"symbol",from:Le,nonce:se})),stateOverrides:[{address:Le,nonce:0}]}]:[]],traceTransfers:p,validation:m}),S=f?g[2]:g[0],[T,x,,j,C,G,O,B]=f?g:[],{calls:A,..._}=S,M=A.slice(0,-1)??[],Z=T?.calls??[],ee=x?.calls??[],J=[...Z,...ee].map(Y=>Y.status==="success"?ma(Y.data):null),V=j?.calls??[],X=C?.calls??[],oe=[...V,...X].map(Y=>Y.status==="success"?ma(Y.data):null),he=(G?.calls??[]).map(Y=>Y.status==="success"?Y.result:null),ae=(B?.calls??[]).map(Y=>Y.status==="success"?Y.result:null),R=(O?.calls??[]).map(Y=>Y.status==="success"?Y.result:null),K=[];for(const[Y,se]of oe.entries()){const le=J[Y];if(typeof se!="bigint"||typeof le!="bigint")continue;const k=he[Y-1],P=ae[Y-1],ie=R[Y-1],H=Y===0?{address:f4,decimals:18,symbol:"ETH"}:{address:w[Y-1],decimals:ie||k?Number(k??1):void 0,symbol:P??void 0};K.some(W=>W.token.address===H.address)||K.push({token:H,value:{pre:le,post:se,diff:se-le}})}return{assetChanges:K,block:_,results:M}}const gv="0x6492649264926492649264926492649264926492649264926492649264926492";function m4(e){if(ha(e,-32)!==gv)throw new g4(e)}function y4(e){const{data:n,signature:s,to:r}=e;return Qn(ip(F5("address, bytes, bytes"),[r,n,s]),gv)}function b4(e){try{return m4(e),!0}catch{return!1}}class g4 extends Ce{constructor(n){super(`Value \`${n}\` is an invalid ERC-6492 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc6492.InvalidWrappedSignatureError"})}}function v4({r:e,s:n,to:s="hex",v:r,yParity:l}){const u=(()=>{if(l===0||l===1)return l;if(r&&(r===27n||r===28n||r>=35n))return r%2n===0n?1:0;throw new Error("Invalid `v` or `yParity` value")})(),f=`0x${new uv.Signature(ma(e),ma(n)).toCompactHex()}${u===0?"1b":"1c"}`;return s==="hex"?f:ya(f)}async function _u(e,n){const{address:s,hash:r,erc6492VerifierAddress:l=n.universalSignatureVerifierAddress??e.chain?.contracts?.erc6492Verifier?.address,multicallAddress:u=n.multicallAddress??e.chain?.contracts?.multicall3?.address}=n,f=(()=>{const p=n.signature;return pa(p)?p:typeof p=="object"&&"r"in p&&"s"in p?v4(p):Nt(p)})();try{return XT(f)?await w4(e,{...n,multicallAddress:u,signature:f}):await x4(e,{...n,verifierAddress:l,signature:f})}catch(p){try{if(Tu(E6(s),await L6({hash:r,signature:f})))return!0}catch{}if(p instanceof yi)return!1;throw p}}async function w4(e,n){const{address:s,blockNumber:r,blockTag:l,hash:u,multicallAddress:f}=n,{authorization:p,data:m,signature:y,to:b}=ZT(n.signature);if(await ah(e,{address:s,blockNumber:r,blockTag:l})===Nr(["0xef0100",p.address]))return await S4(e,{address:s,blockNumber:r,blockTag:l,hash:u,signature:y});const g={address:p.address,chainId:Number(p.chainId),nonce:Number(p.nonce),r:Ee(p.r,{size:32}),s:Ee(p.s,{size:32}),yParity:p.yParity};if(!await yA({address:s,authorization:g}))throw new yi;const T=await Ae(e,Wn,"readContract")({...f?{address:f}:{code:Xh},authorizationList:[g],abi:il,blockNumber:r,blockTag:"pending",functionName:"aggregate3",args:[[...m?[{allowFailure:!0,target:b??s,callData:m}]:[],{allowFailure:!0,target:s,callData:Gn({abi:S5,functionName:"isValidSignature",args:[u,y]})}]]});if(T[T.length-1]?.returnData?.startsWith("0x1626ba7e"))return!0;throw new yi}async function x4(e,n){const{address:s,factory:r,factoryData:l,hash:u,signature:f,verifierAddress:p,...m}=n,y=await(async()=>!r&&!l||b4(f)?f:y4({data:l,signature:f,to:r}))(),b=p?{to:p,data:Gn({abi:cg,functionName:"isValidSig",args:[s,u,y]}),...m}:{data:Qh({abi:cg,args:[s,u,y],bytecode:SE}),...m},{data:w}=await Ae(e,Bu,"call")(b).catch(g=>{throw g instanceof D6?new yi:g});if(_8(w??"0x0"))return!0;throw new yi}async function S4(e,n){const{address:s,blockNumber:r,blockTag:l,hash:u,signature:f}=n;if((await Ae(e,Wn,"readContract")({address:s,abi:S5,args:[u,f],blockNumber:r,blockTag:l,functionName:"isValidSignature"}).catch(m=>{throw m instanceof U6?new yi:m})).startsWith("0x1626ba7e"))return!0;throw new yi}class yi extends Error{}async function E4(e,{address:n,message:s,factory:r,factoryData:l,signature:u,...f}){const p=q5(s);return _u(e,{address:n,factory:r,factoryData:l,hash:p,signature:u,...f})}async function A4(e,n){const{address:s,factory:r,factoryData:l,signature:u,message:f,primaryType:p,types:m,domain:y,...b}=n,w=MA({message:f,primaryType:p,types:m,domain:y});return _u(e,{address:s,factory:r,factoryData:l,hash:w,signature:u,...b})}function vv(e,{emitOnBegin:n=!1,emitMissed:s=!1,onBlockNumber:r,onError:l,poll:u,pollingInterval:f=e.pollingInterval}){const p=typeof u<"u"?u:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc"));let m;return p?(()=>{const w=Gt(["watchBlockNumber",e.uid,n,s,f]);return Ds(w,{onBlockNumber:r,onError:l},g=>xl(async()=>{try{const S=await Ae(e,Sl,"getBlockNumber")({cacheTime:0});if(m!==void 0){if(S===m)return;if(S-m>1&&s)for(let T=m+1n;T<S;T++)g.onBlockNumber(T,m),m=T}(m===void 0||S>m)&&(g.onBlockNumber(S,m),m=S)}catch(S){g.onError?.(S)}},{emitOnBegin:n,interval:f}))})():(()=>{const w=Gt(["watchBlockNumber",e.uid,n,s]);return Ds(w,{onBlockNumber:r,onError:l},g=>{let S=!0,T=()=>S=!1;return(async()=>{try{const x=(()=>{if(e.transport.type==="fallback"){const C=e.transport.transports.find(G=>G.config.type==="webSocket"||G.config.type==="ipc");return C?C.value:e.transport}return e.transport})(),{unsubscribe:j}=await x.subscribe({params:["newHeads"],onData(C){if(!S)return;const G=ma(C.result?.number);g.onBlockNumber(G,m),m=G},onError(C){g.onError?.(C)}});T=j,S||T()}catch(x){l?.(x)}})(),()=>T()})})()}async function T4(e,n){const{checkReplacement:s=!0,confirmations:r=1,hash:l,onReplaced:u,retryCount:f=6,retryDelay:p=({count:A})=>~~(1<<A)*200,timeout:m=18e4}=n,y=Gt(["waitForTransactionReceipt",e.uid,l]),b=n.pollingInterval?n.pollingInterval:e.chain?.experimental_preconfirmationTime?e.chain.experimental_preconfirmationTime:e.pollingInterval;let w,g,S,T=!1,x,j;const{promise:C,resolve:G,reject:O}=k5(),B=m?setTimeout(()=>{j?.(),x?.(),O(new X3({hash:l}))},m):void 0;return x=Ds(y,{onReplaced:u,resolve:G,reject:O},async A=>{if(S=await Ae(e,Zc,"getTransactionReceipt")({hash:l}).catch(()=>{}),S&&r<=1){clearTimeout(B),A.resolve(S),x?.();return}j=Ae(e,vv,"watchBlockNumber")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:b,async onBlockNumber(_){const M=ee=>{clearTimeout(B),j?.(),ee(),x?.()};let Z=_;if(!T)try{if(S){if(r>1&&(!S.blockNumber||Z-S.blockNumber+1n<r))return;M(()=>A.resolve(S));return}if(s&&!w&&(T=!0,await eh(async()=>{w=await Ae(e,up,"getTransaction")({hash:l}),w.blockNumber&&(Z=w.blockNumber)},{delay:p,retryCount:f}),T=!1),S=await Ae(e,Zc,"getTransactionReceipt")({hash:l}),r>1&&(!S.blockNumber||Z-S.blockNumber+1n<r))return;M(()=>A.resolve(S))}catch(ee){if(ee instanceof _6||ee instanceof $6){if(!w){T=!1;return}try{g=w,T=!0;const J=await eh(()=>Ae(e,da,"getBlock")({blockNumber:Z,includeTransactions:!0}),{delay:p,retryCount:f,shouldRetry:({error:oe})=>oe instanceof P6});T=!1;const V=J.transactions.find(({from:oe,nonce:he})=>oe===g.from&&he===g.nonce);if(!V||(S=await Ae(e,Zc,"getTransactionReceipt")({hash:V.hash}),r>1&&(!S.blockNumber||Z-S.blockNumber+1n<r)))return;let X="replaced";V.to===g.to&&V.value===g.value&&V.input===g.input?X="repriced":V.from===V.to&&V.value===0n&&(X="cancelled"),M(()=>{A.onReplaced?.({reason:X,replacedTransaction:g,transaction:V,transactionReceipt:S}),A.resolve(S)})}catch(J){M(()=>A.reject(J))}}else M(()=>A.reject(ee))}}})}),C}function k4(e,{blockTag:n=e.experimental_blockTag??"latest",emitMissed:s=!1,emitOnBegin:r=!1,onBlock:l,onError:u,includeTransactions:f,poll:p,pollingInterval:m=e.pollingInterval}){const y=typeof p<"u"?p:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc")),b=f??!1;let w;return y?(()=>{const T=Gt(["watchBlocks",e.uid,n,s,r,b,m]);return Ds(T,{onBlock:l,onError:u},x=>xl(async()=>{try{const j=await Ae(e,da,"getBlock")({blockTag:n,includeTransactions:b});if(j.number!==null&&w?.number!=null){if(j.number===w.number)return;if(j.number-w.number>1&&s)for(let C=w?.number+1n;C<j.number;C++){const G=await Ae(e,da,"getBlock")({blockNumber:C,includeTransactions:b});x.onBlock(G,w),w=G}}(w?.number==null||n==="pending"&&j?.number==null||j.number!==null&&j.number>w.number)&&(x.onBlock(j,w),w=j)}catch(j){x.onError?.(j)}},{emitOnBegin:r,interval:m}))})():(()=>{let T=!0,x=!0,j=()=>T=!1;return(async()=>{try{r&&Ae(e,da,"getBlock")({blockTag:n,includeTransactions:b}).then(O=>{T&&x&&(l(O,void 0),x=!1)}).catch(u);const C=(()=>{if(e.transport.type==="fallback"){const O=e.transport.transports.find(B=>B.config.type==="webSocket"||B.config.type==="ipc");return O?O.value:e.transport}return e.transport})(),{unsubscribe:G}=await C.subscribe({params:["newHeads"],async onData(O){if(!T)return;const B=await Ae(e,da,"getBlock")({blockNumber:O.result?.number,includeTransactions:b}).catch(()=>{});T&&(l(B,w),x=!1,w=B)},onError(O){u?.(O)}});j=G,T||j()}catch(C){u?.(C)}})(),()=>j()})()}function j4(e,{address:n,args:s,batch:r=!0,event:l,events:u,fromBlock:f,onError:p,onLogs:m,poll:y,pollingInterval:b=e.pollingInterval,strict:w}){const g=typeof y<"u"?y:typeof f=="bigint"?!0:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc")),S=w??!1;return g?(()=>{const j=Gt(["watchEvent",n,s,r,e.uid,l,b,f]);return Ds(j,{onLogs:m,onError:p},C=>{let G;f!==void 0&&(G=f-1n);let O,B=!1;const A=xl(async()=>{if(!B){try{O=await Ae(e,$5,"createEventFilter")({address:n,args:s,event:l,events:u,strict:S,fromBlock:f})}catch{}B=!0;return}try{let _;if(O)_=await Ae(e,Ru,"getFilterChanges")({filter:O});else{const M=await Ae(e,Sl,"getBlockNumber")({});G&&G!==M?_=await Ae(e,Kh,"getLogs")({address:n,args:s,event:l,events:u,fromBlock:G+1n,toBlock:M}):_=[],G=M}if(_.length===0)return;if(r)C.onLogs(_);else for(const M of _)C.onLogs([M])}catch(_){O&&_ instanceof hi&&(B=!1),C.onError?.(_)}},{emitOnBegin:!0,interval:b});return async()=>{O&&await Ae(e,Mu,"uninstallFilter")({filter:O}),A()}})})():(()=>{let j=!0,C=()=>j=!1;return(async()=>{try{const G=(()=>{if(e.transport.type==="fallback"){const _=e.transport.transports.find(M=>M.config.type==="webSocket"||M.config.type==="ipc");return _?_.value:e.transport}return e.transport})(),O=u??(l?[l]:void 0);let B=[];O&&(B=[O.flatMap(M=>pl({abi:[M],eventName:M.name,args:s}))],l&&(B=B[0]));const{unsubscribe:A}=await G.subscribe({params:["logs",{address:n,topics:B}],onData(_){if(!j)return;const M=_.result;try{const{eventName:Z,args:ee}=bl({abi:O??[],data:M.data,topics:M.topics,strict:S}),J=Za(M,{args:ee,eventName:Z});m([J])}catch(Z){let ee,J;if(Z instanceof zo||Z instanceof yu){if(w)return;ee=Z.abiItem.name,J=Z.abiItem.inputs?.some(X=>!("name"in X&&X.name))}const V=Za(M,{args:J?[]:{},eventName:ee});m([V])}},onError(_){p?.(_)}});C=A,j||C()}catch(G){p?.(G)}})(),()=>C()})()}function N4(e,{batch:n=!0,onError:s,onTransactions:r,poll:l,pollingInterval:u=e.pollingInterval}){return(typeof l<"u"?l:e.transport.type!=="webSocket"&&e.transport.type!=="ipc")?(()=>{const y=Gt(["watchPendingTransactions",e.uid,n,u]);return Ds(y,{onTransactions:r,onError:s},b=>{let w;const g=xl(async()=>{try{if(!w)try{w=await Ae(e,D5,"createPendingTransactionFilter")({});return}catch(T){throw g(),T}const S=await Ae(e,Ru,"getFilterChanges")({filter:w});if(S.length===0)return;if(n)b.onTransactions(S);else for(const T of S)b.onTransactions([T])}catch(S){b.onError?.(S)}},{emitOnBegin:!0,interval:u});return async()=>{w&&await Ae(e,Mu,"uninstallFilter")({filter:w}),g()}})})():(()=>{let y=!0,b=()=>y=!1;return(async()=>{try{const{unsubscribe:w}=await e.transport.subscribe({params:["newPendingTransactions"],onData(g){if(!y)return;const S=g.result;r([S])},onError(g){s?.(g)}});b=w,y||b()}catch(w){s?.(w)}})(),()=>b()})()}function B4(e){const{scheme:n,statement:s,...r}=e.match(R4)?.groups??{},{chainId:l,expirationTime:u,issuedAt:f,notBefore:p,requestId:m,...y}=e.match(M4)?.groups??{},b=e.split("Resources:")[1]?.split(` -- `).slice(1);return{...r,...y,...l?{chainId:Number(l)}:{},...u?{expirationTime:new Date(u)}:{},...f?{issuedAt:new Date(f)}:{},...p?{notBefore:new Date(p)}:{},...m?{requestId:m}:{},...b?{resources:b}:{},...n?{scheme:n}:{},...s?{statement:s}:{}}}const R4=/^(?:(?<scheme>[a-zA-Z][a-zA-Z0-9+-.]*):\/\/)?(?<domain>[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\n)(?<address>0x[a-fA-F0-9]{40})\n\n(?:(?<statement>.*)\n\n)?/,M4=/(?:URI: (?<uri>.+))\n(?:Version: (?<version>.+))\n(?:Chain ID: (?<chainId>\d+))\n(?:Nonce: (?<nonce>[a-zA-Z0-9]+))\n(?:Issued At: (?<issuedAt>.+))(?:\nExpiration Time: (?<expirationTime>.+))?(?:\nNot Before: (?<notBefore>.+))?(?:\nRequest ID: (?<requestId>.+))?/;function C4(e){const{address:n,domain:s,message:r,nonce:l,scheme:u,time:f=new Date}=e;if(s&&r.domain!==s||l&&r.nonce!==l||u&&r.scheme!==u||r.expirationTime&&f>=r.expirationTime||r.notBefore&&f<r.notBefore)return!1;try{if(!r.address||!dn(r.address,{strict:!1})||n&&!Tu(r.address,n))return!1}catch{return!1}return!0}async function O4(e,n){const{address:s,domain:r,message:l,nonce:u,scheme:f,signature:p,time:m=new Date,...y}=n,b=B4(l);if(!b.address||!C4({address:s,domain:r,message:b,nonce:u,scheme:f,time:m}))return!1;const g=q5(l);return _u(e,{address:b.address,hash:g,signature:p,...y})}async function z4(e,{serializedTransaction:n,throwOnReceiptRevert:s,timeout:r}){const l=await e.request({method:"eth_sendRawTransactionSync",params:r?[n,Ee(r)]:[n]},{retryCount:0}),f=(e.chain?.formatters?.transactionReceipt?.format||B5)(l);if(f.status==="reverted"&&s)throw new Z3({receipt:f});return f}function _4(e){return{call:n=>Bu(e,n),createAccessList:n=>_5(e,n),createBlockFilter:()=>rA(e),createContractEventFilter:n=>B6(e,n),createEventFilter:n=>$5(e,n),createPendingTransactionFilter:()=>D5(e),estimateContractGas:n=>US(e,n),estimateGas:n=>Gh(e,n),getBalance:n=>oA(e,n),getBlobBaseFee:()=>lA(e),getBlock:n=>da(e,n),getBlockNumber:n=>Sl(e,n),getBlockTransactionCount:n=>cA(e,n),getBytecode:n=>ah(e,n),getChainId:()=>t5(e),getCode:n=>ah(e,n),getContractEvents:n=>a5(e,n),getEip712Domain:n=>dA(e,n),getEnsAddress:n=>PE(e,n),getEnsAvatar:n=>aA(e,n),getEnsName:n=>sA(e,n),getEnsResolver:n=>iA(e,n),getEnsText:n=>z5(e,n),getFeeHistory:n=>pA(e,n),estimateFeesPerGas:n=>xS(e,n),getFilterChanges:n=>Ru(e,n),getFilterLogs:n=>mA(e,n),getGasPrice:()=>Hh(e),getLogs:n=>Kh(e,n),getProof:n=>t4(e,n),estimateMaxPriorityFeePerGas:n=>wS(e,n),getStorageAt:n=>n4(e,n),getTransaction:n=>up(e,n),getTransactionConfirmations:n=>a4(e,n),getTransactionCount:n=>Z6(e,n),getTransactionReceipt:n=>Zc(e,n),multicall:n=>s4(e,n),prepareTransactionRequest:n=>n5(e,n),readContract:n=>Wn(e,n),sendRawTransaction:n=>_E(e,n),sendRawTransactionSync:n=>z4(e,n),simulate:n=>dh(e,n),simulateBlocks:n=>dh(e,n),simulateCalls:n=>p4(e,n),simulateContract:n=>jE(e,n),verifyHash:n=>_u(e,n),verifyMessage:n=>E4(e,n),verifySiweMessage:n=>O4(e,n),verifyTypedData:n=>A4(e,n),uninstallFilter:n=>Mu(e,n),waitForTransactionReceipt:n=>T4(e,n),watchBlocks:n=>k4(e,n),watchBlockNumber:n=>vv(e,n),watchContractEvent:n=>zE(e,n),watchEvent:n=>j4(e,n),watchPendingTransactions:n=>N4(e,n)}}function $4(e){const{key:n="public",name:s="Public Client"}=e;return DE({...e,key:n,name:s,type:"publicClient"}).extend(_4)}function wv({key:e,methods:n,name:s,request:r,retryCount:l=3,retryDelay:u=150,timeout:f,type:p},m){const y=R5();return{config:{key:e,methods:n,name:s,request:r,retryCount:l,retryDelay:u,timeout:f,type:p},request:gA(r,{methods:n,retryCount:l,retryDelay:u,uid:y}),value:m}}function D4(e,n={}){const{key:s="fallback",name:r="Fallback",rank:l=!1,shouldThrow:u=U4,retryCount:f,retryDelay:p}=n;return(({chain:m,pollingInterval:y=4e3,timeout:b,...w})=>{let g=e,S=()=>{};const T=wv({key:s,name:r,async request({method:x,params:j}){let C;const G=async(O=0)=>{const B=g[O]({...w,chain:m,retryCount:0,timeout:b});try{const A=await B.request({method:x,params:j});return S({method:x,params:j,response:A,transport:B,status:"success"}),A}catch(A){if(S({error:A,method:x,params:j,transport:B,status:"error"}),u(A)||O===g.length-1||(C??=g.slice(O+1).some(_=>{const{include:M,exclude:Z}=_({chain:m}).config.methods||{};return M?M.includes(x):Z?!Z.includes(x):!0}),!C))throw A;return G(O+1)}};return G()},retryCount:f,retryDelay:p,type:"fallback"},{onResponse:x=>S=x,transports:g.map(x=>x({chain:m,retryCount:0}))});if(l){const x=typeof l=="object"?l:{};q4({chain:m,interval:x.interval??y,onTransports:j=>g=j,ping:x.ping,sampleCount:x.sampleCount,timeout:x.timeout,transports:g,weights:x.weights})}return T})}function U4(e){return!!("code"in e&&typeof e.code=="number"&&(e.code===Sr.code||e.code===li.code||si.nodeMessage.test(e.message)||e.code===5e3))}function q4({chain:e,interval:n=4e3,onTransports:s,ping:r,sampleCount:l=10,timeout:u=1e3,transports:f,weights:p={}}){const{stability:m=.7,latency:y=.3}=p,b=[],w=async()=>{const g=await Promise.all(f.map(async x=>{const j=x({chain:e,retryCount:0,timeout:u}),C=Date.now();let G,O;try{await(r?r({transport:j}):j.request({method:"net_listening"})),O=1}catch{O=0}finally{G=Date.now()}return{latency:G-C,success:O}}));b.push(g),b.length>l&&b.shift();const S=Math.max(...b.map(x=>Math.max(...x.map(({latency:j})=>j)))),T=f.map((x,j)=>{const C=b.map(_=>_[j].latency),O=1-C.reduce((_,M)=>_+M,0)/C.length/S,B=b.map(_=>_[j].success),A=B.reduce((_,M)=>_+M,0)/B.length;return A===0?[0,j]:[y*O+m*A,j]}).sort((x,j)=>j[0]-x[0]);s(T.map(([,x])=>f[x])),await iu(n),w()};w()}class L4 extends re{constructor(){super("No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.",{docsPath:"/docs/clients/intro",name:"UrlRequiredError"})}}function H4(e,n={}){const{batch:s,fetchFn:r,fetchOptions:l,key:u="http",methods:f,name:p="HTTP JSON-RPC",onFetchRequest:m,onFetchResponse:y,retryDelay:b,raw:w}=n;return({chain:g,retryCount:S,timeout:T})=>{const{batchSize:x=1e3,wait:j=0}=typeof s=="object"?s:{},C=n.retryCount??S,G=T??n.timeout??1e4,O=e||g?.rpcUrls.default.http[0];if(!O)throw new L4;const B=SA(O,{fetchFn:r,fetchOptions:l,onRequest:m,onResponse:y,timeout:G});return wv({key:u,methods:f,name:p,async request({method:A,params:_}){const M={method:A,params:_},{schedule:Z}=j5({id:O,wait:j,shouldSplitBatch(X){return X.length>x},fn:X=>B.request({body:X}),sort:(X,oe)=>X.id-oe.id}),ee=async X=>s?Z(X):[await B.request({body:X})],[{error:J,result:V}]=await ee(M);if(w)return{error:J,result:V};if(J)throw new $h({body:M,error:J,url:O});return V},retryCount:C,retryDelay:b,timeout:G,type:"http"},{fetchOptions:l,url:O})}}const Tg=U5({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:12e3,rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:23085558},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}}),I4=JSON.parse('[{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"guardian_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"BalanceUnreadable","type":"error"},{"inputs":[],"name":"CapExceeded","type":"error"},{"inputs":[],"name":"Deadline","type":"error"},{"inputs":[{"internalType":"enum BaskVault.Reason","name":"reason","type":"uint8"},{"internalType":"address","name":"token","type":"address"}],"name":"DepositUnavailable","type":"error"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidAddress","type":"error"},{"inputs":[],"name":"InvalidAsset","type":"error"},{"inputs":[],"name":"InvalidFeed","type":"error"},{"inputs":[],"name":"InvalidInput","type":"error"},{"inputs":[],"name":"InvalidPool","type":"error"},{"inputs":[],"name":"InvalidProposal","type":"error"},{"inputs":[],"name":"InvalidSetting","type":"error"},{"inputs":[],"name":"InvalidTick","type":"error"},{"inputs":[],"name":"MathOverflow","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"PaymentFailed","type":"error"},{"inputs":[],"name":"Reentrant","type":"error"},{"inputs":[],"name":"Slippage","type":"error"},{"inputs":[],"name":"Timelock","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroNAV","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"enum BaskVault.Kind","name":"kind","type":"uint8"}],"name":"AssetChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"}],"name":"AssetClosed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"feed","type":"address"}],"name":"AssetListed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"}],"name":"AssetRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"cap","type":"uint256"}],"name":"CapChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"since","type":"uint256"}],"name":"DeficitFlagged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"paused","type":"bool"}],"name":"DepositsPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"}],"name":"FeeRecipientChanged","type":"event"},{"anonymous":false,"inputs":[],"name":"GenesisFinalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"guardian","type":"address"}],"name":"GuardianChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LossRecognized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Paid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"components":[{"internalType":"enum BaskVault.Kind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"quoteFeed","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"value2","type":"uint256"},{"internalType":"enum BaskVault.Setting","name":"setting","type":"uint8"}],"indexed":false,"internalType":"struct BaskVault.Action","name":"action","type":"tuple"},{"indexed":false,"internalType":"uint256","name":"executableAt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"expiresAt","type":"uint256"}],"name":"Proposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"net","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Resynced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum BaskVault.Setting","name":"setting","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value2","type":"uint256"}],"name":"SettingChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"NAV_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"allAssets","outputs":[{"components":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"feed","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"quoteFeed","type":"address"},{"internalType":"uint256","name":"minLiquidity","type":"uint256"},{"internalType":"uint256","name":"centre","type":"uint256"},{"internalType":"uint8","name":"tokenDecimals","type":"uint8"},{"internalType":"uint8","name":"feedDecimals","type":"uint8"},{"internalType":"uint8","name":"quoteDecimals","type":"uint8"},{"internalType":"uint8","name":"quoteFeedDecimals","type":"uint8"},{"internalType":"bool","name":"open","type":"bool"},{"internalType":"bool","name":"retired","type":"bool"},{"internalType":"bool","name":"hasPause","type":"bool"},{"internalType":"bool","name":"baseIsToken0","type":"bool"}],"internalType":"struct BaskVault.Asset","name":"config","type":"tuple"},{"internalType":"uint256","name":"answer","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint256","name":"poolPrice","type":"uint256"},{"internalType":"uint256","name":"managedBalance","type":"uint256"},{"internalType":"uint256","name":"shortfall","type":"uint256"},{"internalType":"uint256","name":"owedBalance","type":"uint256"},{"internalType":"bool","name":"balanceReadable","type":"bool"},{"internalType":"enum BaskVault.Reason","name":"reason","type":"uint8"}],"internalType":"struct BaskVault.AssetView[]","name":"result","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"asset","outputs":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"feed","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"quoteFeed","type":"address"},{"internalType":"uint256","name":"minLiquidity","type":"uint256"},{"internalType":"uint256","name":"centre","type":"uint256"},{"internalType":"uint8","name":"tokenDecimals","type":"uint8"},{"internalType":"uint8","name":"feedDecimals","type":"uint8"},{"internalType":"uint8","name":"quoteDecimals","type":"uint8"},{"internalType":"uint8","name":"quoteFeedDecimals","type":"uint8"},{"internalType":"bool","name":"open","type":"bool"},{"internalType":"bool","name":"retired","type":"bool"},{"internalType":"bool","name":"hasPause","type":"bool"},{"internalType":"bool","name":"baseIsToken0","type":"bool"}],"internalType":"struct BaskVault.Asset","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"assetCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"assetTokens","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"claimTokens","type":"address[]"},{"internalType":"address","name":"to","type":"address"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"deficits","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"since","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"inputTokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"minSharesOut","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"inputTokens","type":"address[]"}],"name":"depositStatus","outputs":[{"internalType":"enum BaskVault.Reason","name":"reason","type":"uint8"},{"internalType":"address","name":"fault","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositsPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feedAsset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalizeGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"flagDeficit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"genesisFinalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"insideHours","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"feed","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"quoteFeed","type":"address"},{"internalType":"uint256","name":"minLiquidity","type":"uint256"}],"name":"listGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"cap","type":"uint256"}],"name":"lowerNAVCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"managed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"owed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseDeposits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"pay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"first","type":"uint256"},{"internalType":"uint256","name":"last","type":"uint256"}],"name":"pendingProposals","outputs":[{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"inputTokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"previewDeposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"nav","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewRedeem","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"bool","name":"direct","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"proposal","outputs":[{"components":[{"components":[{"internalType":"enum BaskVault.Kind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"quoteFeed","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"value2","type":"uint256"},{"internalType":"enum BaskVault.Setting","name":"setting","type":"uint8"}],"internalType":"struct BaskVault.Action","name":"action","type":"tuple"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"assetEpoch","type":"uint256"},{"internalType":"uint256","name":"closeEpoch","type":"uint256"},{"internalType":"uint256","name":"capEpoch","type":"uint256"},{"internalType":"bool","name":"done","type":"bool"}],"internalType":"struct BaskVault.Proposal","name":"data","type":"tuple"},{"internalType":"bool","name":"pending","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"enum BaskVault.Kind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"quoteFeed","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"value2","type":"uint256"},{"internalType":"enum BaskVault.Setting","name":"setting","type":"uint8"}],"internalType":"struct BaskVault.Action","name":"action","type":"tuple"}],"name":"propose","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"recognizeLoss","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256[]","name":"minAmountsOut","type":"uint256[]"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"redeem","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"removeRetired","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"settings","outputs":[{"components":[{"internalType":"uint256","name":"band","type":"uint256"},{"internalType":"uint256","name":"maxAge","type":"uint256"},{"internalType":"uint256","name":"noPoolAge","type":"uint256"},{"internalType":"uint256","name":"freshCount","type":"uint256"},{"internalType":"uint256","name":"freshHours","type":"uint256"},{"internalType":"uint256","name":"hoursFrom","type":"uint256"},{"internalType":"uint256","name":"hoursTo","type":"uint256"},{"internalType":"uint256","name":"dst","type":"uint256"},{"internalType":"uint256","name":"poolWindow","type":"uint256"},{"internalType":"uint256","name":"poolDeviation","type":"uint256"},{"internalType":"uint256","name":"feedGas","type":"uint256"},{"internalType":"uint256","name":"pauseGas","type":"uint256"},{"internalType":"uint256","name":"poolGas","type":"uint256"},{"internalType":"uint256","name":"balanceGas","type":"uint256"},{"internalType":"uint256","name":"payGas","type":"uint256"},{"internalType":"uint256","name":"maxAssets","type":"uint256"},{"internalType":"uint256","name":"directLimit","type":"uint256"}],"internalType":"struct BaskVault.Settings","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalOwed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"next","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseDeposits","outputs":[],"stateMutability":"nonpayable","type":"function"}]'),It="0x739fd5b653aa092a434534fa1ade67c1770b5a5b",xv="0x636a9477cd2d80694d0c8cc970f5008edb87d71a11b10ccfa82d9db04090a048",Sv=30000000n,fa=U5({id:4663,name:"Robinhood Chain",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.mainnet.chain.robinhood.com","https://robinhood-rpc.publicnode.com"]}},blockExplorers:{default:{name:"Explorer",url:"https://robin.etherscan.io"}}}),nt=$4({chain:fa,ccipRead:!1,batch:{multicall:!1},transport:D4(fa.rpcUrls.default.http.map(e=>H4(e,{timeout:15e3,retryCount:0})),{retryCount:0})}),$u=I4,G4=In(["function symbol() view returns (string)","function decimals() view returns (uint8)","function balanceOf(address) view returns (uint256)","function allowance(address,address) view returns (uint256)","function approve(address,uint256) returns (bool)"]),P4=In(["function description() view returns (string)","function decimals() view returns (uint8)","function latestRoundData() view returns (uint80,int256,uint256,uint256,uint80)"]);class ce extends Error{}const Ne=(e,n=[])=>({address:It,abi:$u,functionName:e,args:n}),cn=(e,n,s=[])=>({address:e,abi:G4,functionName:n,args:s}),Ha=(e,n)=>({address:e,abi:P4,functionName:n}),bi=e=>Gn(e);async function Ie(e,n){const s=await nt.call({to:e.address,data:bi(e),gas:Sv,account:n,batch:!1});return Wa({...e,data:s.data??"0x"})}async function Ms(e){try{return{ok:!0,value:await Ie(e)}}catch{return{ok:!1,error:`${e.functionName}: unreadable`}}}let ou;async function Ev(){const[e,n,s]=await Promise.all([nt.getChainId(),nt.getCode({address:It}),nt.getCode({address:Tg.contracts.multicall3.address}).catch(()=>{})]);if(ou=s&&s!=="0x"?Tg.contracts.multicall3.address:void 0,e!==fa.id)throw new Error("RPC chain is not 4663. Transactions are unavailable.");if(!n||jt(n)!==xv)throw new Error("Vault code could not be verified. Transactions are unavailable.");return{multicall:!!ou}}async function Ln(e){if(!e.length)return[];if(e.some(s=>["allAssets","depositStatus","previewDeposit","previewRedeem"].includes(s.functionName)))throw new Error("Heavy view cannot be batched");if(!ou)return Promise.all(e.map(Ms));const n=[];for(let s=0;s<e.length;s+=20){const r=e.slice(s,s+20);try{const l=await Ie({address:ou,abi:il,functionName:"aggregate3",args:[r.map(u=>({target:u.address,allowFailure:!0,callData:bi(u)}))]});n.push(...await Promise.all(r.map(async(u,f)=>{try{return l[f].success?{ok:!0,value:Wa({...u,data:l[f].returnData})}:await Ms(u)}catch{return Ms(u)}})))}catch{n.push(...await Promise.all(r.map(Ms)))}}return n}const K4=["OK","genesis not finished","deposits paused","outside deposit hours","not listed","closed or retired","listed twice","balance unreadable","vault short of this stock","feed price missing or too old","price outside its band","paused by its issuer","pool check failed (pool price too far off the feed, unreadable, under its floor or quote feed bad)","no pool and feed older than noPoolAge","too few fresh prices"],lu={symbols:{}};function V4(e,n){lu.symbols=Object.fromEntries(e.map(s=>[s.token.toLowerCase(),s.symbol])),lu.settings=n}function Av(e){const n=lu.symbols[String(e).toLowerCase()];return n&&n!=="unreadable"?n:e}const F4=e=>`${Number(e)/100}%`,dp=e=>`${Number(e)/60}-minute`;function gi(e,n=lu.settings){return e===void 0?"unreadable":e===12&&n?`pool check failed (${dp(BigInt(n.poolWindow))} pool price over ${F4(BigInt(n.poolDeviation))} off the feed, unreadable, under its floor or quote feed bad)`:K4[e]??`Unknown reason ${e}`}const Y4=["List","Feed","Recentre","Reopen","Retire","Pool","Resync","Guardian","RaiseCap","FeeRecipient","Setting"],Z4={Unauthorized:"This wallet is not allowed to perform this action.",Reentrant:"The contract rejected a reentrant call.",InvalidAddress:"Choose a valid allowed address.",InvalidInput:"Check the amounts, array lengths and allowed values, then retry.",InvalidSetting:"This setting is outside its bounds or exceeds the combined gas limits. Refresh settings and retry.",InvalidAsset:"Check this stock’s listing, closed or retired status and the asset limit.",InvalidFeed:"The feed is unreadable, has more than 18 decimals, a stale or invalid answer, or is already used by another stock.",InvalidPool:"The pool is unreadable or does not include this stock, or the pool, quote feed and minimum liquidity are not set together.",InvalidProposal:"This proposal is cancelled, expired or no longer valid. Retry the proposal list.",Timelock:"The waiting period has not ended. Check the execution time.",BalanceUnreadable:"A stock balance could not be read. Retry later.",PaymentFailed:"The stock transfer failed. If the issuer paused it, retry later or use another claim recipient.",Slippage:"The preview changed beyond your minimum. Refresh and retry.",Deadline:"The deadline has passed. Refresh the preview and retry.",CapExceeded:"This deposit exceeds the vault size limit. Reduce the amount.",ZeroNAV:"The vault has shares but zero NAV. Deposits cannot proceed.",InsufficientBalance:"Your balance is too low for this amount.",InsufficientAllowance:"The BASK allowance is too low for this transfer.",MathOverflow:"This amount is outside the supported range.",InvalidTick:"The pool price is outside its supported range."},Tv=["PaymentFailed","BalanceUnreadable"];async function X4(e,n){const s=wt(e),r=kv(e),l=n.functionName==="claim"?n.args?.[0]??[]:[];return r&&Tv.includes(r.errorName)&&l.length>1?`${s} ${Av(r.args[0])} blocked this batch, so nothing in it was claimed. The other stocks can be claimed with their own Claim buttons.`:s}function Xc(e){if(!(!e||typeof e!="object"))return typeof e.data=="string"&&/^0x[0-9a-fA-F]{8,}$/.test(e.data)?e.data:Xc(e.cause)??Xc(e.error)??Xc(e.data)}function kv(e){const n=Xc(e);if(n)try{return C6({abi:$u,data:n})}catch{return}}function wt(e,n=Av,s=!1){if(e instanceof ce)return e.message;const r=kv(e);if(r){if(r.errorName==="DepositUnavailable"){const[f,p]=r.args;return`${gi(Number(f))}. Stock at fault: ${p===Le?"none":n(p)}.`}const u=Z4[r.errorName]??r.errorName;return Tv.includes(r.errorName)?`${n(r.args[0])}: ${u}`:u}if(s)return"Preview: unreadable. Retry the preview.";const l=e;return/timed out while waiting for transaction|receipt.*not found/i.test(l.shortMessage??l.message??"")?"Confirmation could not be read. Check the transaction link and refresh the vault before retrying.":l.code===4001||/rejected|denied/i.test(l.message??"")?"The wallet request was declined. You can try again.":l.shortMessage??l.message??"The request failed. Please retry."}async function fp(e,n){if(e.itemUser!==void 0&&e.itemUser.toLowerCase()!==n?.toLowerCase())throw new ce("The wallet account changed. Please retry.");await nt.call({to:e.address,data:bi(e),account:n,gas:Sv,batch:!1,...e.value!==void 0?{value:e.value}:{}})}async function Q4(e,n){const[s,r]=await Promise.all([nt.getChainId(),nt.getCode({address:e})]);if(s!==4663||!r||r==="0x"||jt(r)!==n)throw new ce("ITEM contract code could not be verified. Transactions are unavailable.")}const ua=604800n,Os=86400n,hp=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function kg(e){return e%4n===0n&&(e%100n!==0n||e%400n===0n)}function jg(e){const n=e-1n;return 365n*(e-1970n)+n/4n-n/100n+n/400n-477n}function J4(e){const n=e/Os;let s=1970n+n/365n;for(;jg(s)>n;)--s;const r=jg(s),l=r+59n+(kg(s)?1n:0n),u=r+304n+(kg(s)?1n:0n),f=l+(7n-(l+4n)%7n)%7n+7n,p=u+(7n-(u+4n)%7n)%7n;return e>=f*Os+7n*3600n&&e<p*Os+6n*3600n}function pp(e,n){return n===2n||n===0n&&J4(e)?4n*3600n:5n*3600n}function ph(e,n){return(e+4n*Os+ua-pp(e,n))%ua}function W4(e,n,s,r){if(n===0n&&s===0n)return!0;const l=ph(e,r);return l>=n&&l<s}function e9(e,n,s){const r=ph(e,s);let l=e+(r<n?n-r:ua-r+n);for(let u=0;u<3;u++){let f=((n-ph(l,s))%ua+ua)%ua;if(f>ua/2n&&(f-=ua),f===0n)break;l+=f}return l}function t9(e){const n=Number(e/3600n)%24,s=Number(e%3600n/60n);if(e===Os)return"24:00";const r=n<12?"am":"pm";return`${n%12===0?12:n%12}:${String(s).padStart(2,"0")} ${r}`}function mh(e){return e===ua?"Saturday 24:00":`${hp[Number(e/Os)]} ${t9(e%Os)}`}function jv(e,n,s=0n){return e===0n&&n===0n?"always open":`${mh(e)} to ${mh(n)} ${mp(s)}`}const Nv=["US daylight saving rule","never daylight saving (UTC-5)","always daylight saving (UTC-4)"];function mp(e){return e===1n?"UTC-5":e===2n?"UTC-4":"New York time"}function n9(e,n){return new Date(Number(e-pp(e,n))*1e3).toLocaleDateString("en-GB",{timeZone:"UTC",weekday:"long",day:"numeric",month:"long",year:"numeric"})}const a9=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Ng=e=>String(e).padStart(2,"0");function s9(e){const n=new Date(Number(e)*1e3),s=new Date(Number(e-pp(e,0n))*1e3),r=f=>hp[f.getUTCDay()].slice(0,3),l=f=>`${Ng(f.getUTCHours())}:${Ng(f.getUTCMinutes())}`,u=s.getUTCDay()===n.getUTCDay()?"":`${r(s)} `;return`${r(n)} ${n.getUTCDate()} ${a9[n.getUTCMonth()]} ${n.getUTCFullYear()}, ${l(n)} UTC (${u}${l(s)} New York)`}function i9(e){const n=e<0n?0n:e;return`${n/3600n} h ${n%3600n/60n} min`}function Bg(e,n=!1){const s=e.trim().match(/^([A-Za-z]+)\s+(\d{1,2}):(\d{2})(?:\s*([AaPp])\.?[Mm]\.?)?$/);if(!s)throw new ce("Use a weekday and New York time, e.g. Monday 9:30 am or Friday 16:00.");const r=hp.findIndex(f=>f.toLowerCase()===s[1].toLowerCase());if(r<0)throw new ce(`Unknown weekday ${s[1]}.`);let l=Number(s[2]);const u=Number(s[3]);if(s[4]){if(l<1||l>12)throw new ce("Use 1-12 with am or pm.");l=l%12+(s[4].toLowerCase()==="p"?12:0)}if(u>59)throw new ce("Minutes must be 00-59.");if(l===24&&u===0&&r===6&&n)return ua;if(l>23)throw new ce("Hours must be 0-23 (Saturday 24:00 only as the end).");return BigInt(r)*Os+BigInt(l)*3600n+BigInt(u)*60n}function r9(e,n){const s=u=>/^always\s+open$/i.test(u.trim());if(s(e)||s(n)){if(!(s(e)&&s(n)))throw new ce('Enter "Always open" in both fields, or two times.');return[0n,0n]}const r=Bg(e),l=Bg(n,!0);if(r>=l)throw new ce("From must be earlier in the week than To.");return[r,l]}const Rg=["owner","guardian","pendingOwner","feeRecipient","genesisFinalized","depositsPaused","NAV_CAP","totalSupply","proposalCount","settings"],o9={assets:[],globals:{},errors:[],complete:!1,aggregate:!1,loadedAt:0};async function yp(){const e=[],n={};let s;const[r,l,u,f]=await Promise.all([Ln(Rg.map(b=>Ne(b))),Ms(Ne("allAssets")),Ms(Ne("depositStatus",[[]])),nt.getBlock({blockTag:"latest"}).then(b=>(s=Date.now(),b)).catch(()=>{})]);f||e.push("latest block: unreadable"),r.forEach((b,w)=>{b.ok?n[Rg[w]]=b.value:e.push(b.error)}),u.ok||e.push(u.error);let p=[],m=!0;if(l.ok)p=l.value.map((b,w)=>({...b.config,answer:b.answer,updatedAt:b.updatedAt,poolPrice:b.poolPrice,managed:b.managedBalance,totalOwed:b.owedBalance,short:b.balanceReadable?b.shortfall>0n:void 0,balanceReadable:b.balanceReadable,reason:Number(b.reason),symbol:"unreadable",description:"unreadable",index:w}));else{e.push("allAssets: unreadable. Showing individual stock reads; pool checks and price reasons are unreadable.");const b=await Ms(Ne("assetTokens"));if(!b.ok)m=!1,e.push(b.error);else for(let w=0;w<b.value.length;w++){const g=await Ms(Ne("asset",[b.value[w]]));if(!g.ok){m=!1,e.push(g.error);continue}const S=g.value,[T,x,j,C]=await Ln([Ne("managed",[S.token]),Ne("totalOwed",[S.token]),Ha(S.feed,"latestRoundData"),cn(S.token,"balanceOf",[It])]);p.push({...S,managed:T.ok?T.value:void 0,totalOwed:x.ok?x.value:void 0,answer:j.ok?j.value[1]:void 0,updatedAt:j.ok?j.value[3]:void 0,balanceReadable:C.ok&&x.ok,short:C.ok&&x.ok&&T.ok?(C.value>x.value?C.value-x.value:0n)<T.value:void 0,index:w,symbol:"unreadable",description:"unreadable"});for(const G of[T,x,j,C])G.ok||e.push(`${S.token}: ${G.error}`)}}const y=await Ln(p.flatMap(b=>[cn(b.token,"symbol"),Ha(b.feed,"description")]));return p.forEach((b,w)=>{const g=y[2*w],S=y[2*w+1];b.symbol=g.ok?g.value:"unreadable",b.description=S.ok?uu(S.value,b.symbol):"unreadable",(!g.ok||!S.ok)&&e.push(`${b.token}: label unreadable`)}),V4(p,n.settings),{assets:p,globals:n,errors:e,complete:m,aggregate:l.ok,status:u,blockTime:f?.timestamp,blockReadAt:f?s:void 0,loadedAt:Date.now()}}function ol(e){if(e.retired)return 0n;if(e.managed!==void 0){if(e.managed===0n)return 0n;if(!(e.answer===void 0||e.answer<=0n))return e.managed*e.answer*10n**18n/10n**BigInt(e.tokenDecimals+e.feedDecimals)}}function Du(e,n=!0){let s=0n,r=n,l=!1;for(const u of e){const f=ol(u);f===void 0?r=!1:s+=f,u.managed!==0n&&u.reason!==0&&(l=!0)}return{nav:r?s:void 0,indicative:l}}function ll(e,n=!1,s=18){if(!new RegExp(`^\\d+(\\.\\d{1,${Math.max(s,1)}})?$`).test(e.trim())||s===0&&e.includes("."))throw new ce(`Enter a decimal amount with up to ${s} decimal places.`);const r=pv(e.trim(),s);if(!n&&r===0n||r>=2n**256n)throw new ce("Enter an amount greater than zero and within the supported range.");return r}function Xt(e,n=!1){if(!dn(e.trim())||!n&&ge(e.trim(),Le))throw new ce("Enter a valid nonzero address.");return e.trim()}function cu(e){const n=Xt(e);if(ge(n,It))throw new ce("The receiver must not be the vault.");return n}function bp(e,n=256){if(!/^\d+$/.test(e)||BigInt(e)>=2n**BigInt(n))throw new ce(`Enter an unsigned ${n}-bit whole number.`);return BigInt(e)}function yh(e){if(!e.trim())throw new ce("Line 1: enter at least one TICKER token feed pool quoteFeed minLiquidity line.");const n=[];for(const[s,r]of e.split(/\n/).entries())if(r.trim())try{const l=r.trim().split(/\s+/);if(l.length!==6)throw new ce("Use TICKER token feed pool quoteFeed minLiquidity.");const u=(w,g,S=!1)=>{try{return Xt(w,S)}catch{throw new ce(`${g}: invalid address or checksum${S?"":" (nonzero required)"}.`)}},f=u(l[3],"pool",!0),p=u(l[4],"quoteFeed",!0);let m;try{m=bp(l[5],128)}catch{throw new ce("minLiquidity: enter an unsigned 128-bit whole number.")}if(ge(f,Le)&&(!ge(p,Le)||m!==0n))throw new ce("No pool requires zero quote feed and zero liquidity.");if(!ge(f,Le)&&ge(p,Le))throw new ce("A pool requires a quote feed.");if(!ge(f,Le)&&m===0n)throw new ce("A pool requires a minLiquidity above zero (a zero floor never rejects a drained pool).");const y=u(l[1],"token"),b=u(l[2],"feed");if(n.some(w=>ge(w.token,y)))throw new ce("Each stock must appear only once.");if(n.some(w=>ge(w.feed,b)))throw new ce("Each stock feed must be unique.");n.push({ticker:l[0],token:y,feed:b,pool:f,quoteFeed:p,minLiquidity:m,line:s+1})}catch(l){throw new ce(`Line ${s+1}: ${l.message}`)}return n}function pt(e,n=18,s=4){if(e===void 0)return"unreadable";const[r,l=""]=Pa(e,n).split("."),u=l.slice(0,s).replace(/0+$/,"");return e>0n&&BigInt(r)===0n&&!u&&l.replace(/0/g,"")?`<0.${"0".repeat(s-1)}1`:`${r==="-0"?"-0":BigInt(r).toLocaleString("en-US")}${u?"."+u:""}`}const Bv=(e,n=18)=>Pa(e,n),Zn=e=>e===void 0?"unreadable":"$"+pt(e,18,2);function ui(e,n="start"){if(e===void 0)return"unreadable";if(e===0n)return"Not set";try{const s=BigInt(e),r=(n==="start"?s+59n:s)/60n;return r*60n>253402300799n?"unreadable":s9(r*60n)}catch{return"unreadable"}}const ge=(e,n)=>!!e&&!!n&&e.toLowerCase()===n.toLowerCase(),cl=()=>BigInt(Math.floor(Date.now()/1e3)+600),Mg=(e,n,s,r)=>[e,n,s,r*995n/1000n,cl()],l9=(e,n,s)=>[e,n,s.map(r=>r*999n/1000n),cl()];function uu(e,n=""){return e.replace(/^Robinhood\s+/,"").replace(/^RH\s*/,"")}function Rv(e,n){const s=uu(n,e);return e!=="unreadable"&&e.length>0&&s.startsWith(e)&&[" ","/","-"].includes(s.charAt(e.length))}const Cg={USDG:"0x61b7e5650328764b076a108eff5fa7282a1b9ad2",ETH:"0x78f3556b67e17df817d51ef5a990cdaf09e8d3a9"},Ge={BASK:"0x739fD5B653aA092a434534FA1aDE67C1770b5a5B",USDG:"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168",WETH:"0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73",V2_ROUTER:"0x89e5DB8B5aA49aA85AC63f691524311AEB649eba",BASK_USDG_PAIR:"0xCC23688c49D58c5FF1f3Bf77e3cAB1927cBa6e70",DEV:"0xc5e21e7A89F1fBDc5554e31702e627dD6262C856",V2_ROUTER_HASH:"0xbd55ea26b2f8d42a8ff151511cef92a326a9817686899fe96a8a8f81ee7fc55e",USDG_HASH:"0x864cc9ad53b338b82da1f7cab85ab0b3d5c8861acb422b6fec63cf36234f36a6"},gp=["ITEM","ITEM_STAKING","BASK_USDG_GAUGE","ITEM_ETH_GAUGE","DEV_VESTING"],Mv=[...gp,"ITEM_WETH_PAIR"],c9=[...Mv.map(e=>`${e}_HASH`),"BASK_USDG_PAIR_HASH"],Qe={ITEM:"0x4F1b7a5aAF3768F7500E9ab5CBBF3762834e8B57",ITEM_STAKING:"0x7E82d352D3F6336e474bA28040785414A8E2E1D3",BASK_USDG_GAUGE:"0xF5eBBF7A60B22FB38270AB4942585AD1654a9A11",ITEM_ETH_GAUGE:"0x5a2fc207f7d9f84426B8C0f7908a492450E0add6",DEV_VESTING:"0xf1670d095d32b1011aA843E7b7d44Eeb7bA222C7",ITEM_WETH_PAIR:"0x9a2B386290Cbfeb40be6EDA694de73B97D66B269",ITEM_HASH:"0x88e6958c93593f86b2ce10ddb6aad48e7fe950c2d77b3ad17bd20135b54dd094",ITEM_STAKING_HASH:"0xb1a29155cc3f1181b3f7d2fb201b8a341234312c8fc4ca757a4350b50147ac26",BASK_USDG_GAUGE_HASH:"0x393b4efe68a8fe743ec9e0df52c9a278a2f11cbcecd85c0ad369083e422d67af",ITEM_ETH_GAUGE_HASH:"0x08bb4f4a8857373753a0f79a7fbfb38e90556593abb4774f1e873d9462ac3d8f",DEV_VESTING_HASH:"0x6562ef49618a0becdacdd132444e5f6a5b460bd36bf2b9e1a4b522a1b4db4b47",ITEM_WETH_PAIR_HASH:"0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5",BASK_USDG_PAIR_HASH:"0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5",ITEM_REPO:"https://github.com/identity-md-launches/launch-2241-item",ITEM_COMMIT:"f0f84fcd6637ea334d50af06b8f694c19b643461"};function An(e=Qe){return[...Mv,...c9,"ITEM_REPO","ITEM_COMMIT"].every(n=>e[n]!==null)}const Sn=In(["function symbol() view returns (string)","function decimals() view returns (uint8)","function totalSupply() view returns (uint256)","function balanceOf(address) view returns (uint256)","function allowance(address,address) view returns (uint256)","function approve(address,uint256) returns (bool)"]),Cv=In(["function getReserves() view returns (uint112,uint112,uint32)","function token0() view returns (address)","function totalSupply() view returns (uint256)"]),Og=In(["function addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256) returns (uint256,uint256,uint256)","function addLiquidityETH(address,uint256,uint256,uint256,address,uint256) payable returns (uint256,uint256,uint256)"]),Bs=In(["function item() view returns (address)","function tokenA() view returns (address)","function tokenB() view returns (address)","function V2_FACTORY() view returns (address)","function ALLOCATION() view returns (uint256)","function pair() view returns (address)","function started() view returns (bool)","function stakedSeconds() view returns (uint256)","function released() view returns (uint256)","function rate() view returns (uint256)","function remaining() view returns (uint256)","function totalStaked() view returns (uint256)","function staked(address) view returns (uint256)","function earned(address) view returns (uint256)","function stake(uint256)","function withdraw(uint256)","function claim()"]),yr=In(["function item() view returns (address)","function BASK() view returns (address)","function USDG() view returns (address)","function WETH() view returns (address)","function totalStaked() view returns (uint256)","function staked(address) view returns (uint256)","function earned(address,address) view returns (uint256)","function stake(uint256)","function unstake(uint256)","function claim(address)"]);In(["function item() view returns (address)","function beneficiary() view returns (address)","function ALLOCATION() view returns (uint256)","function deployedAt() view returns (uint256)","function funded() view returns (bool)","function vested() view returns (uint256)","function released() view returns (uint256)"]);const u9=["baskApprove","baskStake","baskWithdraw","baskClaim","ethApprove","ethStake","ethWithdraw","ethClaim","itemApprove","itemStake","itemUnstake","claimBask","baskLiquidityApprove","usdgLiquidityApprove","baskAddLiquidity","itemLiquidityApprove","ethAddLiquidity"];function bh(e,n,s=Qe,r){if(!An(s))throw new ce("ITEM figures: unreadable. Retry.");if(["baskApprove","baskStake","baskWithdraw","ethApprove","ethStake","ethWithdraw","itemApprove","itemStake","itemUnstake","baskLiquidityApprove","usdgLiquidityApprove","baskAddLiquidity","itemLiquidityApprove","ethAddLiquidity"].includes(e)&&(n===void 0||n<=0n||n>=2n**256n))throw new ce("Enter an amount.");const u=e==="baskAddLiquidity"||e==="ethAddLiquidity";if(u&&(!r||!dn(r.user)||/^0x0{40}$/i.test(r.user)||r.matched<=0n||r.matched>=2n**256n||r.minimumA<=0n||r.minimumB<=0n||r.minimumA!==n*995n/1000n||r.minimumB!==r.matched*995n/1000n||r.deadline<=cl()-600n||r.deadline>cl()))throw new ce("The request failed. Please retry.");if(!u&&r!==void 0)throw new ce("The request failed. Please retry.");const f={baskApprove:{address:Ge.BASK_USDG_PAIR,abi:Sn,functionName:"approve",args:[s.BASK_USDG_GAUGE,n],itemHash:s.BASK_USDG_PAIR_HASH},baskStake:{address:s.BASK_USDG_GAUGE,abi:Bs,functionName:"stake",args:[n],itemHash:s.BASK_USDG_GAUGE_HASH},baskWithdraw:{address:s.BASK_USDG_GAUGE,abi:Bs,functionName:"withdraw",args:[n],itemHash:s.BASK_USDG_GAUGE_HASH},baskClaim:{address:s.BASK_USDG_GAUGE,abi:Bs,functionName:"claim",args:[],itemHash:s.BASK_USDG_GAUGE_HASH},ethApprove:{address:s.ITEM_WETH_PAIR,abi:Sn,functionName:"approve",args:[s.ITEM_ETH_GAUGE,n],itemHash:s.ITEM_WETH_PAIR_HASH},ethStake:{address:s.ITEM_ETH_GAUGE,abi:Bs,functionName:"stake",args:[n],itemHash:s.ITEM_ETH_GAUGE_HASH},ethWithdraw:{address:s.ITEM_ETH_GAUGE,abi:Bs,functionName:"withdraw",args:[n],itemHash:s.ITEM_ETH_GAUGE_HASH},ethClaim:{address:s.ITEM_ETH_GAUGE,abi:Bs,functionName:"claim",args:[],itemHash:s.ITEM_ETH_GAUGE_HASH},itemApprove:{address:s.ITEM,abi:Sn,functionName:"approve",args:[s.ITEM_STAKING,n],itemHash:s.ITEM_HASH},itemStake:{address:s.ITEM_STAKING,abi:yr,functionName:"stake",args:[n],itemHash:s.ITEM_STAKING_HASH},itemUnstake:{address:s.ITEM_STAKING,abi:yr,functionName:"unstake",args:[n],itemHash:s.ITEM_STAKING_HASH},claimBask:{address:s.ITEM_STAKING,abi:yr,functionName:"claim",args:[Ge.BASK],itemHash:s.ITEM_STAKING_HASH},baskLiquidityApprove:{address:Ge.BASK,abi:Sn,functionName:"approve",args:[Ge.V2_ROUTER,n],itemHash:xv},usdgLiquidityApprove:{address:Ge.USDG,abi:Sn,functionName:"approve",args:[Ge.V2_ROUTER,n],itemHash:Ge.USDG_HASH},baskAddLiquidity:{address:Ge.V2_ROUTER,abi:Og,functionName:"addLiquidity",args:[Ge.BASK,Ge.USDG,n,r?.matched,r?.minimumA,r?.minimumB,r?.user,r?.deadline],itemHash:Ge.V2_ROUTER_HASH,itemUser:r?.user},itemLiquidityApprove:{address:s.ITEM,abi:Sn,functionName:"approve",args:[Ge.V2_ROUTER,n],itemHash:s.ITEM_HASH},ethAddLiquidity:{address:Ge.V2_ROUTER,abi:Og,functionName:"addLiquidityETH",args:[s.ITEM,n,r?.minimumA,r?.minimumB,r?.user,r?.deadline],value:r?.matched,itemHash:Ge.V2_ROUTER_HASH,itemUser:r?.user}};if(!u9.includes(e))throw new ce("The request failed. Please retry.");return{...f[e],itemAction:e,itemAmount:n,...u?{itemLiquidity:r}:{}}}async function d9(e){const n=e,s=bh(n.itemAction,n.itemAmount,Qe,n.itemLiquidity);if(n.address!==s.address||n.itemHash!==s.itemHash||n.value!==s.value||n.itemUser!==s.itemUser||bi(n)!==bi(s))throw new ce("The request failed. Please retry.");await Q4(s.address,s.itemHash)}const f9=["Connect a wallet to send this transaction.","Switch your wallet to Robinhood Chain (4663) before sending.","The wallet account changed. Please retry.","The wallet chain changed. Please retry.","The transaction reverted. Refresh the data before retrying."];function Qc(e){if(e instanceof ce||e instanceof Error&&f9.includes(e.message))return e.message;const n=e;return n.code===4001||/rejected|denied/i.test(n.message??"")?"The wallet request was declined. You can try again.":"The request failed. Please retry."}class du extends ce{}const h9="The earlier transaction is finished (confirmed or replaced). Press Resume listing.",p9="Another transaction is pending. Finish it in your wallet or wait for its receipt.",zg="Receipt timed out or unreadable. This transaction may still be pending. Wait for its receipt before retrying.",m9="The earlier transaction is finished (confirmed or replaced). Refresh the vault before retrying.";class ko extends Error{constructor(n,s){super(n),this.hash=s}}const cr="basket-pending-4663";function y9(){try{return JSON.parse(sessionStorage.getItem(cr)||"null")||void 0}catch{return}}const Jc="basket-item-pending-4663";function b9(){try{return JSON.parse(sessionStorage.getItem(Jc)||"null")||void 0}catch{return}}const gh="basket-disconnected-4663";function g9(){try{return localStorage.getItem(gh)==="1"}catch{return!1}}const v9="https://gateway.pinata.cloud/ipfs/bafkreiczp2hrpey42mx5hngo37rrwwwexrt3mdm537pyztv22pn4skxsvi";function w9(e){const n=D.useRef(!1),s=D.useRef(!1),r=D.useRef(g9()),l=D.useRef(0),u=D.useRef(0),[f,p]=D.useState(!1),[m,y]=D.useState({}),b=D.useRef(y9()),w=D.useRef(!!b.current),g=D.useRef(b9());function S(H,W){y(ue=>({...ue,[H]:W})),J(W.message)}function T(H,W){y(ue=>({...ue,[H]:{message:W}})),J(W),X(void 0)}function x(){return w.current&&T("listing",h9),w.current=!1,!0}function j(H,W){y(ue=>({...ue,[H]:{...ue[H],message:W}}))}async function C(H=!1){if(!A)return!1;const W=b.current;let ue=!1;if(W&&ge(W.account,A))try{await nt.getTransactionReceipt({hash:W.hash})&&(b.current=void 0,sessionStorage.removeItem(cr),ue=x())}catch{const[me,Oe]=await Promise.all([nt.getTransaction({hash:W.hash}).catch(()=>{}),nt.getTransactionCount({address:A,blockTag:"latest"})]),Te=me?.nonce??W.nonce;if(Te!==void 0&&Oe>Te)b.current=void 0,sessionStorage.removeItem(cr),X(void 0),ue=x();else if(!H)throw X(W.hash),w.current=!0,S("listing",{message:"A transaction is still pending. Wait for its receipt before resuming listing.",hash:W.hash}),new ce("A transaction is still pending. Wait for its receipt, then resume listing.")}const[pe,we]=await Promise.all([nt.getTransactionCount({address:A,blockTag:"latest"}),nt.getTransactionCount({address:A,blockTag:"pending"})]);if(!H&&pe!==we)throw new ce("A transaction is still pending. Wait until the owner's pending and latest nonce match, then resume listing.");return ue}async function G(){await C(!0);const H=b.current;H&&ge(H.account,A)&&(S("listing",{message:"Submitted. Waiting for the pending transaction…",hash:H.hash}),await nt.waitForTransactionReceipt({hash:H.hash,timeout:18e4,pollingInterval:3e3})),await C(),await e()}async function O(H){const W=b.current;if(!W)return;const ue=we=>me=>{if(me?.name!==we)throw new ko(zg,W.hash)};let pe=!!await nt.getTransactionReceipt({hash:W.hash}).catch(ue("TransactionReceiptNotFoundError"));if(!pe){const[we,me,Oe]=await Promise.all([nt.getTransaction({hash:W.hash}).catch(ue("TransactionNotFoundError")),nt.getTransactionCount({address:W.account,blockTag:"latest"}),nt.getTransactionCount({address:W.account,blockTag:"pending"})]);pe=we!==void 0?me>we.nonce:W.nonce!==void 0&&me>W.nonce&&me===Oe}if(!pe)throw new ko(zg,W.hash);b.current=void 0;try{sessionStorage.removeItem(cr)}catch{}throw e().catch(()=>{}),new ko(m9,W.hash)}async function B(){const H=g.current;if(!A||!H){R(void 0);return}let W=!1;const ue=Oe=>Te=>{Te?.name!==Oe&&(W=!0)};let pe=!!await nt.getTransactionReceipt({hash:H.hash}).catch(ue("TransactionReceiptNotFoundError"));if(!pe&&!W){const[Oe,Te,ct]=await Promise.all([nt.getTransaction({hash:H.hash}).catch(ue("TransactionNotFoundError")),nt.getTransactionCount({address:H.account,blockTag:"latest"}).catch(()=>{}),nt.getTransactionCount({address:H.account,blockTag:"pending"}).catch(()=>{})]);pe=!W&&Te!==void 0&&(Oe!==void 0?Te>Oe.nonce:H.nonce!==void 0&&Te>H.nonce&&Te===ct)}const we=g.current;if(pe&&(we===H||we===void 0)){g.current=void 0;try{sessionStorage.removeItem(Jc)}catch{}R(void 0);return}const me=we?.hash;return R(me),me}const[A,_]=D.useState(),[M,Z]=D.useState(),[ee,J]=D.useState(""),[V,X]=D.useState(),[oe,he]=D.useState(!1),[ae,R]=D.useState(g.current?.hash),[K,Y]=D.useState();D.useEffect(()=>{const H=window.ethereum;if(!H)return;const W=we=>{l.current++,r.current||_(we[0])},ue=we=>Z(Number(we)),pe=l.current;return H.request({method:"eth_accounts"}).then(we=>{pe===l.current&&W(we)}).catch(()=>{}),H.request({method:"eth_chainId"}).then(ue).catch(()=>{}),H.on?.("accountsChanged",W),H.on?.("chainChanged",ue),()=>{l.current++,H.removeListener?.("accountsChanged",W),H.removeListener?.("chainChanged",ue)}},[]);async function se(){if(s.current)return;s.current=!0,l.current++;const H=++u.current;p(!0);try{if(!window.ethereum)throw new Error("Open this page in your wallet app's browser");const W=await window.ethereum.request({method:"eth_requestAccounts"});if(H!==u.current)return;if(W[0]){r.current=!1;try{localStorage.removeItem(gh)}catch{}}_(W[0]),Z(Number(await window.ethereum.request({method:"eth_chainId"}))),J("")}catch(W){J(wt(W))}finally{s.current=!1,p(!1)}}function le(){if(!n.current){l.current++,u.current++,r.current=!0;try{localStorage.setItem(gh,"1")}catch{}_(void 0),X(void 0),J("Wallet disconnected from this page. To use another wallet, switch the address in your wallet app, then press Connect wallet.")}}async function k(){try{const H=window.ethereum;if(!H)return;try{await H.request({method:"wallet_switchEthereumChain",params:[{chainId:"0x1237"}]})}catch(W){if(W.code!==4902)throw W;await H.request({method:"wallet_addEthereumChain",params:[{chainId:"0x1237",chainName:fa.name,nativeCurrency:fa.nativeCurrency,rpcUrls:fa.rpcUrls.default.http,blockExplorerUrls:[fa.blockExplorers.default.url]}]})}Z(Number(await H.request({method:"eth_chainId"})))}catch(H){J(wt(H))}}async function P(){try{const H=window.ethereum;if(!H)throw new Error("Open this page in your wallet app's browser");if(Number(await H.request({method:"eth_chainId"}))!==4663&&await k(),Number(await H.request({method:"eth_chainId"}))!==4663)throw new Error("Switch your wallet to Robinhood Chain (4663), then press Add BASK to MetaMask again.");const W=await H.request({method:"wallet_watchAsset",params:{type:"ERC20",options:{address:It,symbol:"BASK",decimals:18,image:v9}}});J(W?"The wallet accepted the request to list BASK.":"The wallet did not add BASK.")}catch(H){J(wt(H))}}async function ie(H,W=H.functionName,ue=W,pe){const we="itemAction"in H;if(n.current)throw new ce("A transaction is already in progress.");n.current=!0,he(!0),X(void 0),S(W,{message:`${ue}: Checking…`});let me,Oe=!1;try{const Te=window.ethereum;if(!Te||!A)throw new Error("Connect a wallet to send this transaction.");if(we){const ye=await B();if(ye)throw new ko(p9,ye)}const[ct,dt]=await Promise.all([Te.request({method:"eth_chainId"}),Te.request({method:"eth_accounts"})]);if(Number(ct)!==4663)throw new Error("Switch your wallet to Robinhood Chain (4663) before sending.");if(dt[0]?.toLowerCase()!==A.toLowerCase())throw new Error("The wallet account changed. Please retry.");H.functionName==="listGenesis"?await C():we||await O(W),we?await d9(H):await Ev(),await fp(H,A);const Je=!we&&["deposit","redeem","claim"].includes(H.functionName)?(await nt.estimateGas({account:A,to:H.address,data:bi(H)})*130n+99n)/100n:void 0,rt=await nt.getTransactionCount({address:A,blockTag:"pending"});if(Number(await Te.request({method:"eth_chainId"}))!==4663)throw new Error("The wallet chain changed. Please retry.");if((await Te.request({method:"eth_accounts"}))[0]?.toLowerCase()!==A.toLowerCase())throw new Error("The wallet account changed. Please retry.");S(W,{message:`${ue}: Waiting for wallet…`});const Vt=await Te.request({method:"eth_sendTransaction",params:[{from:A,to:H.address,data:bi(H),...Je?{gas:`0x${Je.toString(16)}`}:{},...H.value!==void 0?{value:`0x${H.value.toString(16)}`}:{}}]});me=Vt,X(Vt);const pn={hash:Vt,account:A,functionName:H.functionName,nonce:rt};if(we){g.current=pn;try{sessionStorage.setItem(Jc,JSON.stringify(pn))}catch{}}else{b.current=pn;try{sessionStorage.setItem(cr,JSON.stringify(b.current))}catch{}}S(W,{message:`${ue}: Submitted. Waiting for confirmation…`,hash:Vt});let Ft;const Bt=await nt.waitForTransactionReceipt({hash:Vt,timeout:18e4,pollingInterval:3e3,onReplaced:ye=>{Ft=ye.reason}});if(Oe=!0,we){g.current=void 0;try{sessionStorage.removeItem(Jc)}catch{}R(void 0)}else{b.current=void 0;try{sessionStorage.removeItem(cr)}catch{}}if(Ft==="cancelled"||Ft==="replaced")throw new du(we?"The transaction did not run. Refresh before retrying.":Ft==="cancelled"?"The transaction was cancelled in the wallet; it did not run. Refresh the vault before retrying.":"The transaction was replaced in the wallet by a different one; it did not run. Refresh the vault before retrying.");const Pt=Bt.transactionHash;if(me=Pt,X(Pt),Bt.status!=="success")throw new Error("The transaction reverted. Refresh the data before retrying.");if(Y({hash:Pt,functionName:H.functionName}),S(W,{message:`${ue}: Confirmed. Refreshing…`,hash:Pt}),we)return await pe?.(),S(W,{message:`${ue}: Confirmed.`,hash:Pt}),Bt;let Tt="";try{const ye=await e();if(H.functionName==="propose"){const ke=Bt.logs.filter(at=>ge(at.address,It)).map(at=>{try{return bl({abi:$u,data:at.data,topics:at.topics})}catch{return}}).find(at=>at?.eventName==="Proposed");if(!ke)throw new Error("Proposal event unreadable");const{id:Ye,executableAt:yt,expiresAt:Ve}=ke.args;Tt=`Proposal ${Ye}; executable from ${ui(yt)} until just before ${ui(Ve,"end")}, from the Proposed event.`}if(["redeem","claim"].includes(H.functionName)){const ke=H.functionName==="redeem"?H.args[1]:A,Ye=await Ln(ye.assets.map(Ve=>Ne("owed",[ke,Ve.token]))),yt=ye.assets.flatMap((Ve,at)=>{const aa=Ye[at];return aa.ok?aa.value>0n?[`${Ve.symbol}: ${pt(aa.value,Ve.tokenDecimals)}`]:[]:[`${Ve.symbol}: unreadable — Retry claims`]});Tt=`Still owed to ${ke}: `+(ye.complete?yt.join("; ")||"Nothing owed.":"Stock list unreadable — Retry vault.")}}catch{Tt="Refresh unreadable. Retry vault / claims to read the confirmed result."}return S(W,{message:`${ue}: Confirmed.`,hash:Pt,detail:Tt}),Bt}catch(Te){if(Te instanceof du)throw T(W,Te.message),Te;if(Te instanceof ko)throw S(W,{message:Te.message,hash:Te.hash}),new ce(Te.message);const ct=we?Qc(Te):await X4(Te,H),dt=me&&!Oe?"Receipt timed out or unreadable. This transaction may still be pending. Wait for its receipt before retrying.":ct;throw we&&me&&!Oe&&R(me),me&&!Oe&&H.functionName==="listGenesis"&&(w.current=!0),S(W,{message:dt,hash:me}),new ce(dt)}finally{n.current=!1,he(!1)}}return{account:A,connecting:f,progress:m,report:S,fail:j,notice:T,listingPending:C,waitPending:G,itemPending:B,unresolved:ae,chainId:M,message:ee,hash:V,busy:oe,confirmed:K,connect:se,disconnect:le,switchChain:k,addToWallet:P,send:ie,setMessage:J}}function vh({large:e=!1}){return c.jsxs("svg",{className:e?"basket-art":"basket-icon",viewBox:"0 0 80 72",fill:"none","aria-hidden":"true",children:[c.jsx("path",{d:"M9 28h62L63 62H17L9 28Z",stroke:"currentColor",strokeWidth:"4",strokeLinejoin:"round"}),c.jsx("path",{d:"M23 28 35 8M57 28 45 8M28 39v12M40 39v12M52 39v12M6 28h68",stroke:"currentColor",strokeWidth:"4",strokeLinecap:"round"})]})}function qn({value:e}){return e?c.jsx("span",{className:"address",dir:"ltr",children:e}):c.jsx("span",{children:"unreadable"})}function Hn({value:e}){return c.jsx("a",{className:"address",href:`${fa.blockExplorers.default.url}/address/${e}`,target:"_blank",rel:"noreferrer",children:e})}function br({children:e,warning:n=!1}){return c.jsx("div",{className:n?"note warning":"note",children:e})}function vp({title:e,children:n}){return c.jsxs("div",{className:"empty",children:[c.jsx(vh,{}),c.jsx("h3",{children:e}),c.jsx("p",{children:n})]})}function Us({eyebrow:e,title:n,children:s,character:r}){return c.jsxs("div",{className:r?`page-title has-character character-${r.kind}`:"page-title",children:[e&&c.jsx("p",{className:"eyebrow",children:e}),c.jsx("h1",{tabIndex:-1,children:n}),s!=null&&c.jsx("p",{children:s}),r&&c.jsxs("div",{className:"title-character",children:[c.jsx("img",{className:"character-picture",src:r.src,width:r.width,height:r.height,alt:r.alt}),c.jsx("p",{className:"speech-bubble",children:r.line})]})]})}function ul({role:e,snapshot:n}){const s=n.globals;return n.loading?c.jsx("p",{className:"role-info",children:"Reading..."}):c.jsx("p",{className:"role-info",children:e==="anyone"?"Anyone may send this transaction.":c.jsxs(c.Fragment,{children:[e==="pending"?"Allowed: pending owner":e==="operator"?"Allowed: owner or guardian":"Allowed: owner",c.jsx("br",{}),c.jsx(qn,{value:e==="pending"?s.pendingOwner:s.owner}),e==="operator"&&c.jsxs(c.Fragment,{children:[c.jsx("br",{}),c.jsx(qn,{value:s.guardian})]})]})})}function x9(e,n,s){return!!n.account&&n.chainId===4663&&(e==="anyone"||e==="owner"&&ge(n.account,s.globals.owner)||e==="operator"&&(ge(n.account,s.globals.owner)||ge(n.account,s.globals.guardian))||e==="pending"&&s.globals.pendingOwner!==Le&&ge(n.account,s.globals.pendingOwner))}function ea({wallet:e,scope:n}){const s=e.progress[n];return c.jsx("div",{className:"action-status",role:"status","aria-live":"polite",children:s&&c.jsxs(c.Fragment,{children:[c.jsx("p",{children:s.message}),s.hash&&c.jsx("a",{href:`${fa.blockExplorers.default.url}/tx/${s.hash}`,target:"_blank",rel:"noreferrer",children:"View submitted transaction"}),s.detail&&c.jsx("p",{children:s.detail})]})})}function El(e,n,s="anyone"){return e.account?e.chainId!==4663?"Switch to Robinhood Chain to continue.":e.busy?"Another transaction is pending. Finish it in your wallet or wait for its receipt.":n.loading?"Reading... Wait for current vault data.":(s==="owner"||s==="operator")&&!n.globals.owner||s==="pending"&&!n.globals.pendingOwner?"Role data missing or unreadable. Retry vault.":x9(s,e,n)?"":"Not your role. Connect the allowed wallet shown above.":"Connect your wallet to continue."}function Al({reason:e,wallet:n,snapshot:s}){return e?c.jsxs("div",{className:"disabled-reason",children:[c.jsx("p",{children:e}),n.account?n.chainId!==4663?c.jsx("button",{onClick:n.switchChain,children:"Switch to Robinhood Chain"}):/unreadable|data missing/i.test(e)&&s.retry?c.jsx("button",{onClick:s.retry,children:"Retry vault"}):null:c.jsx("button",{onClick:n.connect,disabled:n.connecting,children:n.connecting?"Connecting...":"Connect wallet"})]}):null}function wh({value:e,wallet:n,claim:s=!1}){return c.jsxs("div",{className:"receiver",children:[c.jsxs("strong",{children:["Receiver ·"," ",ge(e,n.account)?"your connected wallet":"a different wallet"]}),c.jsx(qn,{value:e}),!ge(e,n.account)&&c.jsx("p",{children:s?"Existing claims belong to your connected wallet. Any stocks still owed stay with that wallet.":"A different receiver must connect here to claim any stocks still owed to it."})]})}function Xa({label:e,getSpec:n,role:s="anyone",wallet:r,snapshot:l,disabled:u=!1,primary:f=!1,disabledReason:p="Data missing. Complete the fields or refresh the vault.",scope:m=e}){const[y,b]=D.useState(""),[w,g]=D.useState(!1),S=D.useRef(!1),T=El(r,l,s)||(w?"Checking... Wait for this action.":u?p:"");return c.jsxs("div",{className:"tx-control",children:[c.jsx("button",{type:"button",className:f?"primary":"",disabled:!!T,onClick:async()=>{if(!S.current){S.current=!0,b(""),g(!0),r.report(m,{message:`${e}: Checking…`});try{await r.send(await n(),m,m)}catch(x){b(wt(x)),r.fail(m,wt(x))}finally{g(!1),S.current=!1}}},children:w?`${e}…`:e}),c.jsx(Al,{reason:T,wallet:r,snapshot:l}),c.jsx(ea,{wallet:r,scope:m}),c.jsx("p",{role:"alert",className:"error",children:y})]})}function S9(){const e=D.useRef(null);return D.useLayoutEffect(()=>{const n=Array.from(e.current.children),s=matchMedia("(prefers-reduced-motion: reduce)"),r=matchMedia("(max-width: 660px)");let l=[],u=0,f=0;const p=()=>{const y=n[0].getBoundingClientRect().width,b=r.matches?64:16;if(s.matches){l.forEach(x=>x.cancel()),l=[];return}if(!y||l.length&&u===y&&f===b)return;const w=Number(l[0]?.currentTime??0)*f/1e3;l.forEach(x=>x.cancel()),u=y,f=b;const g=u/f*1e3,S=w%u/f*1e3,T=Number(document.timeline.currentTime)-S;l=n.map((x,j)=>{const C=x.animate([{transform:"translateX(100%)"},{transform:"translateX(-100%)"}],{duration:g*2,delay:j===0?-g:0,iterations:1/0,easing:"linear"});return C.startTime=T,C})},m=new ResizeObserver(p);return m.observe(n[0]),s.addEventListener("change",p),r.addEventListener("change",p),p(),()=>{m.disconnect(),s.removeEventListener("change",p),r.removeEventListener("change",p),l.forEach(y=>y.cancel())}},[]),c.jsx("div",{className:"marquee",children:c.jsx("div",{"aria-hidden":"true",className:"marquee-window",children:c.jsx("div",{className:"marquee-track",ref:e,children:[0,1].map(n=>c.jsx("div",{className:"marquee-half",children:Array.from({length:8},(s,r)=>c.jsxs("span",{children:["Basket buddies! • Take a stroll down the aisles • Give your cart a twirl •"," "]},r))},n))})})})}const E9=[["art/food/bread.svg","art/food/baguette.svg","art/food/cheese.svg","art/food/milk.svg","art/food/canned-food.svg","art/food/egg.svg","art/food/honey-pot.svg","art/food/jar.svg","art/food/beverage-box.svg","art/food/croissant.svg","art/food/butter.svg","art/food/cookie.svg","art/food/pie.svg","art/food/bagel.svg"],["art/food/apple.svg","art/food/banana.svg","art/food/carrot.svg","art/food/broccoli.svg","art/food/tomato.svg","art/food/pineapple.svg","art/food/corn.svg","art/food/bell-pepper.svg","art/food/leafy-green.svg","art/food/watermelon.svg","art/food/grapes.svg","art/food/lemon.svg","art/food/pear.svg","art/food/strawberry.svg","art/food/eggplant.svg","art/food/avocado.svg","art/food/onion.svg","art/food/potato.svg","art/food/green-apple.svg"]];function Ov(){return c.jsx("div",{className:"store-shelf","aria-hidden":"true",children:E9.map((e,n)=>c.jsx("div",{className:"shelf-row",children:Array.from({length:5},(s,r)=>e.map(l=>c.jsx("img",{src:`./${l}`,width:"40",height:"40",alt:""},`${r}-${l}`)))},n))})}const zv="Deposits may be open now. Press Refresh vault.",A9=e=>new Date(Number(e)*1e3).toLocaleString(void 0,{weekday:"short",day:"numeric",month:"short",hour:"numeric",minute:"2-digit",timeZoneName:"short"});function _v(e,n){if(!e||n===void 0)return;const s=BigInt(e.hoursFrom),r=BigInt(e.hoursTo),l=BigInt(e.dst);if(!W4(n,s,r,l))return e9(n,s,l)}function T9(e,n,s,r=s){if(!n)return;if(e===14)return`Deposits are closed until stock prices update (at least ${n.freshCount} must have updated in the last ${n.freshHours} hour(s), e.g. a US market holiday); no set time. Redemptions are always open.`;if(e!==3||s===void 0||r===void 0)return;const l=_v(n,s);if(l===void 0||r>=l)return zv;const u=BigInt(n.hoursFrom),f=BigInt(n.dst),p=BigInt(n.freshCount)>0n?" On a US market holiday they reopen when prices update.":"";return`Deposits reopen ${mh(u)} ${mp(f)} (${n9(l,f)}, in ${i9(l-r)}; your time ${A9(l)}).${p} Redemptions are always open.`}function k9(e,n){const[,s]=D.useState(0),r=D.useRef(void 0),l=e.blockTime===void 0?void 0:e.blockTime+BigInt(Math.max(0,Math.floor((Date.now()-(e.blockReadAt??e.loadedAt))/1e3))),u=n?_v(e.globals.settings,e.blockTime):void 0;return D.useEffect(()=>{if(u===void 0||l===void 0)return;const f=u-l;if(f<=0n){r.current!==u&&(r.current=u,e.retry?.());return}const p=f%60n+1n,m=f<p?f:p,y=setTimeout(()=>s(b=>b+1),Number(m)*1e3);return()=>clearTimeout(y)}),l}const j9={O:["01110","10001","10001","10001","10001","10001","01110"],E:["11111","10000","10000","11110","10000","10000","11111"],C:["01111","10000","10000","10000","10000","10000","01111"],L:["10000","10000","10000","10000","10000","10000","11111"],S:["01111","10000","10000","01110","00001","00001","11110"],D:["11110","10001","10001","10001","10001","10001","11110"]};function N9(){const e="Closed",n=e.toUpperCase(),s=4.8,r=(220-(n.length*6-2)*s)/2;return c.jsxs("svg",{className:"deposit-led-sign",viewBox:"0 0 220 80",width:"220",height:"80",role:"img","aria-label":e,children:[c.jsx("rect",{x:"1",y:"1",width:"218",height:"78",rx:"14",fill:"#080b14",stroke:"#263144",strokeWidth:"2"}),c.jsx("rect",{className:"deposit-led-border",x:"9",y:"9",width:"202",height:"62",rx:"9"}),c.jsx("rect",{className:"deposit-led-chase",x:"9",y:"9",width:"202",height:"62",rx:"9"}),c.jsx("g",{className:"deposit-led-letters",children:[...n].flatMap((l,u)=>j9[l].flatMap((f,p)=>[...f].map((m,y)=>c.jsx("circle",{cx:r+(u*6+y)*s,cy:25.6+p*s,r:"1.7",fill:m==="1"?"#ff373d":"#3e111c"},`${u}-${p}-${y}`))))})]})}function $v({snapshot:e,showSign:n=!1}){const s=e.status,r=s?.ok&&!e.loading?Number(s.value[0]):void 0,l=k9(e,r===3),u=r!==void 0?T9(r,e.globals.settings,e.blockTime,l):void 0,f=!e.complete||!s?.ok||e.globals.genesisFinalized===void 0,p=!f&&r===0&&e.globals.genesisFinalized===!0&&e.assets.some(w=>w.open&&!w.retired);if(e.loading||p||u===zv)return null;const m=e.globals.genesisFinalized===!1?1:e.assets.length?e.assets.every(w=>!w.open||w.retired)?5:r===13?9:r:4,y=gi(m,e.globals.settings).split(" (")[0],b=r===3&&e.globals.settings?.hoursFrom===72000n&&e.globals.settings?.hoursTo===504000n;return c.jsx("div",{className:n?"deposit-state deposit-notice":"deposit-state",children:f?c.jsxs(c.Fragment,{children:[!n&&c.jsx("strong",{children:"Vault status:"}),c.jsx("p",{children:"unreadable — Retry vault"}),c.jsx("button",{onClick:e.retry,children:"Retry vault"})]}):n?c.jsxs(c.Fragment,{children:[c.jsx(N9,{}),c.jsx("p",{children:b?"Deposits reopen when the stock feed prices update around 8pm on Sundays.":`Deposits will be back open when “${y}” is resolved.`})]}):c.jsxs(c.Fragment,{children:[c.jsx("strong",{children:"Vault status:"}),c.jsx("p",{children:"Closed"})]})})}function B9({snapshot:e}){const n=Du(e.assets,e.complete),s=e.globals.totalSupply;return c.jsxs(c.Fragment,{children:[c.jsx(Us,{title:"Always in stock",character:{kind:"vault",src:"./art/character/vault.webp",width:606,height:1e3,alt:"Cheerful store worker beside a produce crate",line:"I was hoping you would come through my aisle"}}),c.jsxs("section",{className:"panel",children:[c.jsxs("div",{className:"section-heading",children:[c.jsx("h2",{children:"Inside the basket"}),c.jsx("span",{className:"eyebrow",children:"On-chain figures"})]}),c.jsxs("div",{className:"stats",children:[c.jsxs("div",{children:[c.jsxs("span",{children:["NAV",n.indicative?" · indicative":""]}),c.jsx("strong",{children:e.loading?"Reading...":Zn(n.nav)})]}),c.jsxs("div",{children:[c.jsx("span",{children:"NAV per BASK"}),c.jsx("strong",{children:e.loading?"Reading...":s===void 0||n.nav===void 0?"unreadable":s===0n?"No BASK issued":Zn(n.nav*10n**18n/s)})]}),c.jsxs("div",{children:[c.jsx("span",{children:"BASK supply"}),c.jsx("strong",{children:e.loading?"Reading...":pt(s)})]}),c.jsxs("div",{children:[c.jsxs("span",{children:["Maximum Basket Capacity",c.jsx("small",{children:"(eligible to be raised)"})]}),c.jsx("strong",{children:e.loading?"Reading...":Zn(e.globals.NAV_CAP)})]})]}),n.indicative&&c.jsx(br,{warning:!0,children:"NAV is indicative: at least one held stock has a price reason other than OK, or an unreadable reason."}),c.jsxs("div",{className:"two-col",children:[c.jsx("div",{className:"deposit-summary",children:c.jsx($v,{snapshot:e})}),c.jsxs("div",{children:[c.jsx("strong",{children:"Fees"}),c.jsx("p",{children:e.loading?"Reading...":e.globals.feeRecipient===void 0?"Fee recipient unreadable — Retry vault":e.globals.feeRecipient===Le?"no fees yet":"0.5% on deposit and 0.5% on redemption"}),c.jsx("p",{children:"BaskVault · Robinhood Chain"}),c.jsx(Hn,{value:It})]})]})]}),c.jsx(K9,{snapshot:e})]})}const R9=[["all","All"],["open","Open"],["closed","Closed"],["held","Held"]],M9=e=>e.managed!==void 0&&e.managed>0n;function _g(e,n){return n==="open"?!e.retired&&e.open:n==="closed"?e.retired||!e.open:n==="held"?M9(e):!0}function Dv(e,n){return e.retired?{kind:"retired",more:"Retired: removed from the basket."}:e.open?e.reason===0?{kind:"open"}:e.reason===void 0?{kind:"unknown",more:"Open, but its price reason is unreadable."}:{kind:"paused",more:`Open, but deposits of this stock are blocked right now: ${gi(e.reason,n)}.`}:{kind:"closed",more:"Closed by the owner or guardian: no new deposits of this stock. Redemptions still pay it out."}}function C9(e,n,s){if(e.reason===0)return;const r=gi(e.reason,s);return n==="paused"?r:`price reason: ${r}`}function Uv(e){const n=[];return Rv(e.symbol,e.description)||n.push("check this pairing"),e.balanceReadable?e.short&&n.push("Balance check: vault short of this stock"):n.push("Balance check: unreadable"),n}const O9=e=>e.reason!==0||Uv(e).length>0,z9=(e,n)=>O9(e)||n&&!e.retired&&!e.open,qv=e=>e.answer===void 0?void 0:e.answer*10n**18n/10n**BigInt(e.feedDecimals),_9=e=>e.answer!==void 0&&e.answer>0n,$9=e=>e.reason===9;function D9({a:e,stale:n}){if(!_9(e))return c.jsx("p",{className:"sa-price is-unreadable",children:"price unreadable"});const s=Zn(qv(e)),r=/^\$([\d,]+)(?:\.(\d{1,2}))?$/.exec(s);return c.jsx("p",{className:n?"sa-price is-stale":"sa-price",children:r?c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"sa-cur",children:"$"}),r[1],c.jsxs("span",{className:"sa-cents",children:[c.jsx("span",{className:"sa-sr",children:"."}),(r[2]??"").padEnd(2,"0")]})]}):s})}function U9({stale:e}){return e?c.jsx("p",{className:"sa-age is-stale",children:c.jsx("span",{className:"sa-old",children:"old price"})}):null}function Lv(e,n){return n===void 0||e===void 0?"unreadable":n===0n?"—":pt(e*10000n/n,2,2)+"%"}function q9(e){const n=qv(e),s=e.poolPrice&&n?Number((e.poolPrice-n)*10000n/n)/100:void 0;return[9,10,11].includes(e.reason??-1)?"not run":e.poolPrice===void 0?"unreadable":e.pool===Le?"No pool; feed-age check":e.poolPrice===0n?"Failed · poolPrice 0":`${Zn(e.poolPrice)} · ${s===void 0?"gap unreadable":`${s>0?"+":""}${s}% vs feed`}`}const L9=[{transform:"none"},{transform:"translateY(-12px) rotate(-6deg)",offset:.2},{transform:"translateY(2px) rotate(3.5deg)",offset:.46},{transform:"translateY(0) rotate(-1.8deg)",offset:.68},{transform:"translateY(0) rotate(0.7deg)",offset:.86},{transform:"none"}];function H9(e,n){const s=D.useRef(!1),r=D.useRef(void 0);return D.useEffect(()=>{const l=e.current;if(!n||s.current||!l||typeof IntersectionObserver>"u"||typeof l.animate!="function"||matchMedia("(prefers-reduced-motion: reduce)").matches)return;const u=p=>{const m=[...new Set(p.map(y=>Number(y.dataset.row)))].sort((y,b)=>y-b);for(const y of p)f.unobserve(y),y.firstElementChild?.animate(L9,{duration:640,easing:"ease-out",delay:Math.min(m.indexOf(Number(y.dataset.row)),3)*120+Number(y.dataset.col)*45})},f=new IntersectionObserver(p=>{const m=p.filter(y=>y.isIntersecting).map(y=>y.target);m.length&&!s.current&&u(m)},{threshold:.35});r.current=f;for(const p of l.querySelectorAll(".sa-slot[data-row]"))f.observe(p);return()=>f.disconnect()},[n,e]),()=>{s.current=!0,r.current?.disconnect()}}function I9(e){const[n,s]=D.useState(1);return D.useLayoutEffect(()=>{const r=e.current;if(!r)return;const l=()=>s(Math.max(1,getComputedStyle(r).gridTemplateColumns.split(" ").length));if(l(),typeof ResizeObserver>"u")return;const u=new ResizeObserver(l);return u.observe(r),()=>u.disconnect()},[e]),n}function G9({a:e,nav:n,settings:s,mini:r,row:l,col:u,span:f,open:p,onToggle:m}){const y=ol(e),b=Dv(e,s),w=$9(e),g=C9(e,b.kind,s),S=Uv(e),T=n&&y?Number(y*10000n/n)/100:0,x=c.jsxs("button",{type:"button",className:"sa-more",id:`sa-more-${e.token}`,"aria-expanded":p,"aria-controls":p?"sa-drawer":void 0,onClick:m,children:[c.jsx("span",{className:r?"sa-sr":void 0,children:"Details"}),c.jsxs("span",{className:"sa-sr",children:[" for ",e.symbol]}),c.jsx("span",{className:"sa-chev","aria-hidden":"true"})]}),j=b.kind==="closed"&&c.jsx("span",{className:"sa-stamp","aria-hidden":"true",children:"Closed"});return c.jsx("li",{className:"sa-slot","data-row":l,"data-col":u,style:f>1?{gridColumn:`span ${f}`}:void 0,children:c.jsxs("article",{className:`sa-label sa-label--${b.kind} sa-label--${r?"mini":"full"}${g||S.length?" sa-label--chip":""}${p?" is-open":""}`,"aria-labelledby":`sa-t-${e.token}`,children:[c.jsx("span",{className:"sa-clip","aria-hidden":"true"}),c.jsxs("div",{className:"sa-main",children:[c.jsxs("div",{className:"sa-top",children:[c.jsx("h4",{id:`sa-t-${e.token}`,children:c.jsx("bdi",{children:e.symbol})}),j,c.jsx(D9,{a:e,stale:w}),c.jsx(U9,{stale:w})]}),c.jsxs("p",{className:"sa-st",children:[c.jsxs("span",{className:"sa-stw",children:[c.jsx("span",{className:"sa-mark","aria-hidden":"true"}),b.kind==="retired"?c.jsx("b",{children:"Retired"}):b.kind==="closed"?c.jsxs("b",{children:["Closed",c.jsx("span",{className:"sa-wide",children:" to deposits"})]}):c.jsx("b",{children:"Open"}),b.kind==="paused"&&c.jsxs(c.Fragment,{children:[" · ",c.jsx("b",{className:"sa-warn",children:"not taking deposits"})]})]}),r&&x]}),g&&c.jsx("p",{className:"sa-chip",children:g}),S.map(C=>c.jsx("p",{className:"sa-flag",children:C},C))]}),!r&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"sa-figs",children:[c.jsxs("div",{className:"sa-share",children:[c.jsx("b",{className:y===0n?"sa-pct is-zero":"sa-pct",children:Lv(y,n)}),c.jsxs("span",{className:"sa-meter",children:[c.jsxs("span",{className:"sa-of",children:[c.jsx("span",{className:"sa-wide",children:"of basket"}),c.jsx("span",{className:"sa-narrow",children:"share"})]}),c.jsx("span",{className:"sa-bar","aria-hidden":"true",children:c.jsx("i",{style:{width:y?`max(3px, ${Math.min(T,100)}%)`:0}})})]})]}),c.jsxs("p",{className:"sa-kv sa-kv--value",children:[c.jsx("span",{children:"Value"})," ",c.jsx("b",{children:Zn(y)})]}),c.jsxs("p",{className:"sa-kv",children:[c.jsx("span",{children:"Held"})," ",c.jsxs("b",{children:[pt(e.managed,e.tokenDecimals),c.jsxs("span",{className:"sa-wide",children:[" ",c.jsx("bdi",{children:e.symbol})]})]})]})]}),c.jsxs("div",{className:"sa-foot",children:[x,c.jsx("span",{className:"sa-barcode","aria-hidden":"true"})]})]})]})})}function P9({a:e,nav:n,settings:s,at:r,cols:l,onClose:u}){const f=Dv(e,s),p=D.useRef(null);return D.useEffect(()=>{p.current?.focus({preventScroll:!0}),p.current?.scrollIntoView({block:"nearest"})},[e.token]),c.jsxs("li",{className:"sa-drawer",id:"sa-drawer",style:{"--sa-at":r,"--sa-cols":l},onKeyDown:m=>m.key==="Escape"&&u(),children:[c.jsxs("div",{className:"sa-drawer-top",children:[c.jsxs("h5",{ref:p,tabIndex:-1,children:[c.jsx("bdi",{children:e.symbol})," details"]}),c.jsx("button",{type:"button",onClick:u,children:"Close"})]}),f.more&&c.jsx("p",{className:"sa-drawer-status",children:f.more}),c.jsxs("dl",{children:[c.jsxs("div",{children:[c.jsx("dt",{children:"Feed"}),c.jsx("dd",{className:"chain-text",children:c.jsx("bdi",{children:e.description})})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Feed price"}),c.jsx("dd",{children:e.answer===void 0||e.answer<=0n?"unreadable / invalid feed":"$"+pt(e.answer,e.feedDecimals)})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Pool check"}),c.jsx("dd",{children:q9(e)})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Held (managed)"}),c.jsx("dd",{children:pt(e.managed,e.tokenDecimals)})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Share of basket"}),c.jsx("dd",{children:Lv(ol(e),n)})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Owed"}),c.jsx("dd",{children:pt(e.totalOwed,e.tokenDecimals)})]})]}),c.jsxs("dl",{className:"sa-addrs",children:[c.jsxs("div",{children:[c.jsx("dt",{children:"Stock Token"}),c.jsx("dd",{children:c.jsx(Hn,{value:e.token})})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Price feed"}),c.jsx("dd",{children:c.jsx(Hn,{value:e.feed})})]})]})]})}function $g({items:e,mini:n,nav:s,settings:r,rowBase:l,openToken:u,onToggle:f,onClose:p}){const m=D.useRef(null),y=I9(m),b=[];let w=0,g=0,S;const T=()=>{for(;g<y;g++)b.push(c.jsx("li",{className:"sa-slot sa-slot--empty","aria-hidden":"true"},`e${w}-${g}`));const x=S;x&&x.row===w&&b.push(c.jsx(P9,{a:x.a,nav:s,settings:r,at:x.at,cols:y,onClose:()=>p(x.a.token)},"drawer")),w++,g=0};for(const x of e){const j=z9(x,n)?n&&y<=3?y:Math.min(2,y):1;g+j>y&&T(),b.push(c.jsx(G9,{a:x,nav:s,settings:r,mini:n,row:l+w,col:g,span:j,open:u===x.token,onToggle:()=>f(x.token)},x.token)),u===x.token&&(S={a:x,row:w,at:g+(j-1)/2}),g+=j,g===y&&T()}return g>0&&T(),c.jsx("ul",{ref:m,role:"list",className:`sa-shelves sa-shelves--${n?"mini":"full"}`,children:b})}function T0({name:e,count:n,children:s}){return c.jsxs("div",{className:"sa-signrow",children:[c.jsxs("h3",{className:"sa-sign",children:[e," ",c.jsx("span",{className:"sa-n",children:n})]}),c.jsx("p",{className:"sa-sub",children:s})]})}function K9({snapshot:e}){const[n,s]=D.useState(""),[r,l]=D.useState("all"),[u,f]=D.useState(),p=D.useRef(null),m=e.assets.length>0,y=H9(p,m),b=Du(e.assets,e.complete).nav,w=n.trim().toLowerCase(),g=e.assets.filter(A=>_g(A,r)&&(A.symbol.toLowerCase().includes(w)||A.token.toLowerCase().includes(w))),S=g.filter(A=>A.managed!==0n).sort((A,_)=>{const M=ol(A)??-1n,Z=ol(_)??-1n;return Z>M?1:Z<M?-1:A.index-_.index}),T=g.filter(A=>A.managed===0n).sort((A,_)=>A.index-_.index),x=e.assets.every(A=>A.managed===0n),j=(A,_)=>{y(),f(void 0),l(A),s(_)},C=(r!=="all"||w!=="")&&g.length>0,G=A=>f(u===A?void 0:A),O=A=>{f(void 0),requestAnimationFrame(()=>document.getElementById(`sa-more-${A}`)?.focus())},B={nav:b,settings:e.globals.settings,openToken:u,onToggle:G,onClose:O};return c.jsxs("section",{className:"panel stock-section sa-section",children:[c.jsxs("div",{className:"section-heading",children:[c.jsx("h2",{children:"Stock shelves"}),c.jsx("span",{className:"burst small",children:"Fresh!"})]}),m&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"sa-toolbar",children:[c.jsx("div",{className:"sa-filters",role:"group","aria-label":"Show stocks",children:R9.map(([A,_])=>c.jsxs("button",{type:"button","aria-pressed":r===A,onClick:()=>j(A,n),children:[_," ",c.jsx("span",{className:"sa-count",children:e.assets.filter(M=>_g(M,A)).length})]},A))}),c.jsxs("label",{className:"sa-search",children:["Search stocks",c.jsx("input",{type:"search",value:n,placeholder:"Ticker or address",onChange:A=>j(r,A.target.value)})]})]}),c.jsxs("p",{className:"sa-note",children:[c.jsxs("span",{role:"status",children:["Showing ",g.length," of ",e.assets.length]}),C&&c.jsxs(c.Fragment,{children:[" · ",c.jsx("button",{type:"button",className:"sa-reset",onClick:()=>j("all",""),children:"Show all"})]})," · tap a label for its details"]})]}),c.jsxs("div",{className:"sa-unit",ref:p,children:[c.jsx(Ov,{}),m?g.length?c.jsxs(c.Fragment,{children:[x?c.jsx(T0,{name:"In the basket",count:0,children:c.jsxs("b",{className:"sa-emptyline",children:["Nothing is in the basket yet.",e.globals.genesisFinalized===!1&&" Deposits start after the owner finishes setup."]})}):S.length>0&&c.jsxs(c.Fragment,{children:[c.jsx(T0,{name:"In the basket",count:S.length,children:"biggest share first"}),c.jsx($g,{items:S,mini:!1,rowBase:0,...B})]}),T.length>0&&c.jsxs(c.Fragment,{children:[c.jsx(T0,{name:"On the shelf, not held",count:T.length,children:"listing order"}),c.jsx($g,{items:T,mini:!0,rowBase:100,...B})]})]}):c.jsxs("p",{className:"sa-none",children:["No stocks match",w?` "${n.trim()}"`:""," here."," ",c.jsx("button",{type:"button",onClick:()=>j("all",""),children:"Show all"})]}):c.jsx(vp,{title:e.loading?"Reading...":e.complete?"No Stock Tokens are listed yet.":"Stocks unreadable",children:e.loading?"Please wait for current vault data.":e.complete?"Deposits start after the owner finishes setup.":"Retry the vault for current data."})]})]})}function Hv(){return c.jsxs("p",{className:"hours-tag",children:[c.jsx("strong",{children:"Redemptions are open 24/7."})," ",c.jsx("span",{children:"Deposit hours apply to deposits only."})]})}function V9({snapshot:e,wallet:n}){const s=e.assets.filter(L=>L.open&&!L.retired),[r,l]=D.useState({}),[u,f]=D.useState(""),[p,m]=D.useState(!1),[y,b]=D.useState(),[w,g]=D.useState(""),[S,T]=D.useState(!1),[x,j]=D.useState({}),[C,G]=D.useState({}),[O,B]=D.useState(!1),[A,_]=D.useState(0),[M,Z]=D.useState(),[ee,J]=D.useState(),[V,X]=D.useState({}),[oe,he]=D.useState(!1),[ae,R]=D.useState(),[K,Y]=D.useState(()=>window.matchMedia("(min-width: 961px)").matches);D.useEffect(()=>{const L=window.matchMedia("(min-width: 961px)"),de=()=>Y(L.matches);return L.addEventListener("change",de),()=>L.removeEventListener("change",de)},[]);const se=D.useRef(void 0),le=D.useRef(0),k=D.useRef(!1);D.useLayoutEffect(()=>{le.current++,b(void 0),B(!1),g(""),T(!1)},[r,n.account,n.chainId]),D.useLayoutEffect(()=>{n.confirmed?.functionName==="deposit"&&(l({}),b(void 0),B(!1),le.current++)},[n.confirmed]),D.useLayoutEffect(()=>{n.confirmed?.functionName==="deposit"&&X({})},[n.confirmed]),D.useLayoutEffect(()=>{J(void 0),X({})},[n.account]),D.useLayoutEffect(()=>{const L=se.current?document.getElementById(`amount-${se.current}`):null;L instanceof HTMLInputElement&&L.disabled?L.closest(".deposit-row")?.focus():L?.focus(),se.current=void 0},[r]),D.useEffect(()=>{const L=n.confirmed;if(L?.functionName!=="deposit")return;let de=!0;return nt.getTransactionReceipt({hash:L.hash}).then(je=>{const $e=je.logs.filter(st=>ge(st.address,It)).map(st=>{try{return bl({abi:$u,data:st.data,topics:st.topics})}catch{return}}).find(st=>st?.eventName==="Deposit");if(!de||!$e)return;const{receiver:He,shares:bt}=$e.args;Z({hash:L.hash,receiver:He,shares:bt})}).catch(()=>{}),()=>{de=!1}},[n.confirmed]),D.useEffect(()=>{let L=!0;return j({}),G({}),m(!!n.account),n.account&&Ln(s.flatMap(de=>[cn(de.token,"balanceOf",[n.account]),cn(de.token,"allowance",[n.account,It])])).then(de=>{if(!L)return;const je={},$e={};s.forEach((He,bt)=>{const st=de[bt*2],es=de[bt*2+1];je[He.token]=st.ok?st.value:void 0,$e[He.token]=es.ok?es.value:void 0}),j(je),J(je),G($e),m(!1)}),()=>{L=!1}},[n.account,e.loadedAt,A]),D.useEffect(()=>{let L=!0;return B(!1),y&&n.account&&y.tokens.every((de,je)=>x[de]!==void 0&&x[de]>=y.amounts[je]&&C[de]!==void 0&&C[de]>=y.amounts[je])&&fp(Ne("deposit",Mg(y.tokens,y.amounts,n.account,y.shares)),n.account).then(()=>{L&&B(!0)}).catch(de=>{L&&g(wt(de))}),()=>{L=!1}},[y,x,C,n.account,e.loadedAt]);const P=y?.tokens.some((L,de)=>x[L]===void 0||x[L]<y.amounts[de]),ie=y?.tokens.filter((L,de)=>C[L]!==void 0&&C[L]<y.amounts[de])??[];async function H(){if(!y||!n.account||k.current)return;k.current=!0,T(!0);const L=le.current;g(""),n.report("approvals",{message:"Checking approvals..."});try{let de=0;for(let je=0;je<y.tokens.length;je++){if(le.current!==L)throw new ce("Deposit changed. Preview again.");const $e=y.tokens[je],He=y.amounts[je],[bt,st]=await Promise.all([Ie(cn($e,"balanceOf",[n.account])),Ie(cn($e,"allowance",[n.account,It]))]);if(bt<He)throw new ce("Your stock balance is too low. Reduce the amount.");st<He&&(de++,await n.send(cn($e,"approve",[It,He]),"approvals",`Approval ${de} of ${ie.length}: ${e.assets.find(es=>ge(es.token,$e))?.symbol??$e}`))}_(je=>je+1),n.report("approvals",{message:"Approvals done: press Deposit"})}catch(de){g(wt(de)),n.fail("approvals",wt(de))}finally{k.current=!1,T(!1)}}const W=(L,de)=>L.answer!==void 0&&L.answer>0n?de*L.answer*10n**18n/10n**BigInt(L.tokenDecimals+L.feedDecimals):void 0,ue=L=>L<10n**16n?"under $0.01":`about ${Zn(L)}`,pe=s.map(L=>{const de=ee?.[L.token]??0n,je=de>0n?W(L,de):void 0;return{a:L,value:je,inWallet:de>0n,small:je!==void 0&&je<10n**16n,added:r[L.token]!==void 0}}),we=L=>L.inWallet&&!V[L.a.token],me=L=>L.added||we(L)&&(!L.small||oe),Oe=pe.filter(L=>we(L)&&!me(L)).length,Te=[...pe.filter(L=>me(L)&&L.inWallet).sort((L,de)=>L.value===de.value?0:L.value===void 0?1:de.value===void 0||L.value>de.value?-1:1),...pe.filter(L=>me(L)&&!L.inWallet)],ct=!!ee&&s.every(L=>L.token in ee),dt=ct&&s.some(L=>ee[L.token]===void 0),Je=u.trim().toLowerCase(),rt=L=>{const de=L.symbol.toLowerCase();return de===Je?0:de.startsWith(Je)?1:de.includes(Je)?2:Je.length>=4&&L.token.toLowerCase().includes(Je)?3:4},Ot=Je?pe.filter(L=>!me(L)&&rt(L.a)<4).map(L=>L.a).sort((L,de)=>rt(L)-rt(de)):[],Vt=[...s].sort((L,de)=>{const je=L.symbol.toLowerCase(),$e=de.symbol.toLowerCase();return je<$e?-1:je>$e?1:0}),pn=!n.account||ct&&!dt&&!Te.length&&!pe.some(L=>L.inWallet),Ft=n.account??"";D.useEffect(()=>{pn&&R(Ft)},[pn,Ft]);const Bt=K||pn||ae===Ft,Pt=Bt?"div":"details";function Tt(L,de=!0){de&&(se.current=L),X(je=>({...je,[L]:!1})),l(je=>({...je,[L]:""})),f("")}function ye(L){const de=document.getElementById(`amount-${L}`)?.closest(".deposit-row"),je=de?.nextElementSibling??de?.previousElementSibling;de?.contains(document.activeElement)&&(je instanceof HTMLElement?je.focus({preventScroll:!0}):document.querySelector(".stock-search input")?.focus({preventScroll:!0})),X($e=>({...$e,[L]:!0})),r[L]!==void 0&&l($e=>{const He={...$e};return delete He[L],He})}let ke=0n,Ye=0;const yt=[],Ve=[];for(const L of s){const de=r[L.token];if(!de?.trim())continue;let je;try{je=W(L,ll(de,!1,L.tokenDecimals))}catch{yt.push(L.symbol);continue}je===void 0?Ve.push(L.symbol):(ke+=je,Ye++)}const at=c.jsxs(Pt,{className:Bt?"all-stocks open-list":"all-stocks",children:[Bt?c.jsxs("p",{className:"list-title",children:["All stocks you can deposit (",s.length,")"]}):c.jsxs("summary",{children:["All stocks you can deposit (",s.length,")"]}),c.jsx("p",{children:"Press a stock to add it to your deposit."}),c.jsx("ul",{children:Vt.map(L=>c.jsx("li",{className:L.symbol.length>5?"wide":void 0,children:c.jsx("button",{type:"button",className:"quiet",disabled:S||n.busy||Te.some(de=>de.a.token===L.token),onClick:()=>Tt(L.token),children:c.jsx("bdi",{children:L.symbol})})},L.token))})]}),aa=c.jsxs(c.Fragment,{children:[c.jsx("h2",{children:"Before you deposit"}),c.jsxs("p",{children:["Size limit: ",Zn(e.globals.NAV_CAP),"."]}),c.jsx("p",{children:"First deposit: 0.001 BASK is locked forever. The preview already subtracts this lock and any fee."}),c.jsx("p",{children:"You approve each stock for exactly the amount you deposit. Each approval is its own wallet prompt; the deposit prompt comes last."}),c.jsx("p",{children:"A prepared deposit must be sent within ten minutes. The BASK goes to your connected wallet."}),c.jsx(br,{warning:!0,children:"Issuer restrictions and pool checks can temporarily halt deposits."})]});return c.jsxs(c.Fragment,{children:[c.jsx(Us,{eyebrow:"Fill your basket",title:"Deposit Stock Tokens",character:{kind:"deposit",src:"./art/character/deposit.webp",width:313,height:1e3,alt:"Store worker holding out a shopping basket",line:"Go ahead and put it in"},children:"Choose one or more open stocks. They go into the vault together in one deposit."}),c.jsxs("div",{className:"flow-layout one-column",children:[c.jsxs("section",{className:"panel",children:[c.jsx(Hv,{}),c.jsx($v,{snapshot:e,showSign:!0}),c.jsx("p",{className:"flow-steps",children:"Choose amounts, preview, approve each stock, press Deposit."}),c.jsx("h2",{children:"Make a deposit"}),c.jsxs("div",{className:"deposit-columns",children:[c.jsxs("div",{className:"deposit-main",children:[s.length?c.jsxs(c.Fragment,{children:[c.jsxs("form",{onSubmit:async L=>{L.preventDefault();const de=++le.current;T(!0),g(""),b(void 0);try{const je=s.filter(ts=>r[ts.token]?.trim());if(!je.length)throw new ce("Enter an amount for at least one stock.");const $e=je.map(ts=>ts.token),He=je.map(ts=>ll(r[ts.token],!1,ts.tokenDecimals)),[bt,st,es]=await Ie(Ne("previewDeposit",[$e,He]));de===le.current&&b({tokens:$e,amounts:He,shares:bt,fee:st,value:es})}catch(je){de===le.current&&g(wt(je,$e=>e.assets.find(He=>ge(He.token,$e))?.symbol??$e,!0))}finally{de===le.current&&T(!1)}},children:[n.account?c.jsxs(c.Fragment,{children:[!ct&&c.jsx("p",{children:"Reading your wallet..."}),dt?c.jsx("p",{children:"Some balances could not be read. Press Retry balances below."}):ct&&!Te.length&&!pe.some(L=>L.inWallet)&&c.jsx("p",{children:"No open listed stock in this wallet."})]}):c.jsxs("div",{className:"wallet-connect",children:[c.jsx("p",{children:"Connect your wallet to see the stocks you hold."}),c.jsx("button",{type:"button",onClick:n.connect,disabled:n.connecting,children:n.connecting?"Connecting...":"Connect wallet"})]}),c.jsx("div",{className:"deposit-rows",children:Te.map(({a:L,value:de,inWallet:je})=>{const $e=L.reason!==void 0&&L.reason!==0,He=ee?.[L.token];return c.jsxs("div",{className:$e?"deposit-row blocked":"deposit-row",tabIndex:-1,children:[c.jsxs("div",{className:"row-stock",children:[c.jsx("label",{htmlFor:`amount-${L.token}`,children:c.jsx("bdi",{children:L.symbol})}),c.jsxs("small",{id:`balance-${L.token}`,children:["Wallet balance:"," ",n.account?He===void 0&&(p||!ct)?"Reading...":pt(He,L.tokenDecimals):"Connect wallet",je&&de!==void 0&&c.jsxs("span",{children:[" · ",ue(de)]})]})]}),c.jsx("input",{id:`amount-${L.token}`,"aria-label":`${L.symbol} amount`,"aria-describedby":`balance-${L.token}`,inputMode:"decimal",autoComplete:"off",value:r[L.token]??"",disabled:S||n.busy||$e,onChange:bt=>l({...r,[L.token]:bt.target.value})}),c.jsx("button",{type:"button",className:"quiet","aria-label":`Max ${L.symbol}`,disabled:S||n.busy||$e||x[L.token]===void 0,onClick:()=>l(bt=>({...bt,[L.token]:Bv(x[L.token],L.tokenDecimals)})),children:"Max"}),c.jsx("button",{type:"button",className:"quiet remove","aria-label":`Remove ${L.symbol}`,disabled:S||n.busy,onClick:()=>ye(L.token),children:"Remove"}),$e&&c.jsxs("p",{className:"row-note",children:["Deposits of this stock are blocked right now:"," ",gi(L.reason,e.globals.settings),"."," ",c.jsx("button",{type:"button",className:"quiet","aria-label":`Refresh ${L.symbol}`,disabled:S||n.busy||e.loading,onClick:e.retry,children:"Refresh"})]})]},L.token)})}),(Oe>0||oe)&&c.jsx("button",{type:"button",className:"quiet small-toggle",onClick:()=>he(!oe),children:oe?"Hide small balances":`Show small balances (${Oe})`}),c.jsxs("label",{className:"stock-search",children:["Add another stock",c.jsx("input",{type:"search",placeholder:"Ticker or token address",autoComplete:"off",spellCheck:!1,value:u,disabled:S||n.busy,onChange:L=>f(L.target.value),onKeyDown:L=>{L.key==="Enter"&&(L.preventDefault(),Ot[0]&&Tt(Ot[0].token,!1))}})]}),c.jsxs("div",{className:"stock-matches",role:"status",children:[Ot.slice(0,6).map(L=>c.jsxs("button",{type:"button",disabled:S||n.busy,onClick:()=>Tt(L.token),children:["Add ",L.symbol]},L.token)),Ot.length>6&&c.jsxs("p",{children:[Ot.length-6," more: keep typing."]}),!!Je&&!Ot.length&&c.jsx("p",{children:Te.some(L=>rt(L.a)===0||L.a.token.toLowerCase()===Je)?"That stock is already in the list above.":"No open stock matches."})]}),!K&&at,Ye+yt.length+Ve.length>0&&c.jsxs("div",{className:"deposit-total",children:[Ye>0&&c.jsxs(c.Fragment,{children:[c.jsx("p",{children:c.jsxs("strong",{children:["Total: ",ue(ke)]})}),c.jsx("small",{children:"An estimate from the last vault read. Preview gives the exact figure."})]}),yt.length>0&&c.jsxs("p",{children:["Not counted: ",yt.join(", ")," (check the amount typed)."]}),Ve.length>0&&c.jsxs("p",{children:["Not counted: ",Ve.join(", ")," (price unreadable)."]})]}),c.jsx("button",{className:"primary",disabled:S||n.busy,children:S?"Checking...":"Preview deposit"}),(S||n.busy)&&c.jsx("p",{className:"disabled-reason",children:"Checking or waiting for the current transaction. Finish it before previewing again."})]}),y&&c.jsxs("div",{className:"receipt",children:[c.jsx("h3",{children:"Deposit preview"}),c.jsxs("dl",{children:[c.jsxs("div",{children:[c.jsx("dt",{children:"BASK received"}),c.jsx("dd",{children:pt(y.shares)})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Fee in BASK"}),c.jsx("dd",{children:pt(y.fee)})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Dollar value"}),c.jsx("dd",{children:Zn(y.value)})]})]}),c.jsxs("p",{children:["Size-limit check passed. Minimum received:"," ",pt(y.shares*995n/1000n)," BASK (0.5% below preview)."]}),!p&&P&&c.jsx(br,{warning:!0,children:"Wallet balance unreadable or too low. Retry balances or reduce the amount."}),!p&&y.tokens.some(L=>C[L]===void 0)&&c.jsx(br,{warning:!0,children:"Allowance unreadable. Retry balances before continuing."}),ie.length>0&&c.jsxs(c.Fragment,{children:[c.jsx("button",{disabled:S||n.busy||P||n.chainId!==4663,onClick:H,children:"Approve exact amounts"}),c.jsx(Al,{wallet:n,snapshot:e,reason:El(n,e)||(S?"Approval pending. Finish each wallet prompt.":P?"Balance too low or unreadable. Reduce amounts or retry balances.":"")})]}),c.jsx(ea,{wallet:n,scope:"approvals"}),c.jsx("p",{role:"status",children:O?"Deposit simulation passed. Prices and limits can change before confirmation.":"Approvals and balances must be ready before the deposit simulation passes."}),c.jsx(Xa,{snapshot:e,wallet:n,label:"Deposit",primary:!0,disabled:!O||S||P,disabledReason:P?"Balance too low or unreadable. Reduce amounts or retry balances.":S||ie.length?"Approval pending. Approve each stock above, then press Deposit.":"Checking deposit simulation. If it fails, correct the error and preview again.",getSpec:async()=>{const L=le.current;for(let je=0;je<y.tokens.length;je++)if(await Ie(cn(y.tokens[je],"balanceOf",[n.account]))<y.amounts[je])throw new ce("Your stock balance is too low. Preview again.");const[,de]=await Ie(Ne("previewDeposit",[y.tokens,y.amounts]));if(de!==y.fee)throw new ce("Deposit changed. Preview again.");if(L!==le.current)throw new ce("Deposit changed. Preview again.");return Ne("deposit",Mg(y.tokens,y.amounts,n.account,y.shares))}})]}),n.account&&!p&&s.some(L=>x[L.token]===void 0||C[L.token]===void 0)&&c.jsx("button",{onClick:()=>_(L=>L+1),children:"Retry balances"})]}):c.jsx(vp,{title:e.loading?"Reading...":e.complete?e.globals.genesisFinalized?"Every stock is closed":"No Stock Tokens are listed yet.":"Open stocks unreadable",children:e.loading?"Please wait for current vault data.":e.complete?e.globals.genesisFinalized?"Deposits need an open, unretired stock. The owner can propose reopening a stock.":"Deposits start after the owner finishes setup.":"Retry the vault to read stocks."}),c.jsx(ea,{wallet:n,scope:"Deposit"}),M&&M.hash===n.confirmed?.hash&&M.hash===n.progress.Deposit?.hash&&ge(M.receiver,n.account)&&c.jsxs("p",{className:"received",role:"status",children:["You received ",pt(M.shares)," BASK."]}),c.jsx("p",{className:"error",role:"alert",children:w}),K&&c.jsx("div",{className:"deposit-notes",children:aa})]}),K&&s.length>0&&c.jsx("div",{className:"deposit-right",children:at})]})]}),!K&&c.jsx("aside",{className:"panel",children:aa})]})]})}function F9({snapshot:e,wallet:n}){const[s,r]=D.useState(""),[l,u]=D.useState(""),[f,p]=D.useState(),[m,y]=D.useState(),[b,w]=D.useState(""),[g,S]=D.useState(!1),[T,x]=D.useState(0),j=D.useRef(0),[C,G]=D.useState(!1);return D.useEffect(()=>{u(n.account??"")},[n.account]),D.useLayoutEffect(()=>{j.current++,y(void 0),S(!1)},[s,l,n.account,e.loadedAt]),D.useLayoutEffect(()=>{n.confirmed?.functionName==="redeem"&&r("")},[n.confirmed]),D.useEffect(()=>{let O=!0;return p(void 0),G(!!n.account),n.account&&Ie(Ne("balanceOf",[n.account])).then(B=>{O&&p(B)}).catch(()=>{}).finally(()=>{O&&G(!1)}),()=>{O=!1}},[n.account,e.loadedAt,T]),c.jsxs(c.Fragment,{children:[c.jsx(Us,{eyebrow:"At the checkout",title:"Redeem BASK",character:{kind:"redeem",src:"./art/character/redeem.webp",width:484,height:1e3,alt:"Store worker handing over a full grocery bag",line:"are you sure that’s all you came here for?"},children:"Receive your share of every stock."}),c.jsx("div",{className:"flow-layout one-column",children:c.jsxs("section",{className:"panel",children:[c.jsx(Hv,{}),c.jsx("h2",{children:"Redeem shares"}),c.jsx("p",{children:"Choose BASK and a receiver, preview, then press Redeem. The estimate is read again just before sending. Minimums are 0.1% under it; stocks not sent stay owed to the receiver."}),c.jsxs("form",{onSubmit:async O=>{O.preventDefault(),w(""),S(!0);const B=++j.current;try{cu(l);const A=ll(s),[_,M]=await Ie(Ne("previewRedeem",[A]));B===j.current&&y({shares:A,amounts:_,fee:M})}catch(A){B===j.current&&w(wt(A,void 0,!0))}finally{B===j.current&&S(!1)}},children:[c.jsxs("label",{children:["BASK amount",c.jsx("input",{disabled:n.busy,"aria-label":"BASK amount","aria-describedby":"bask-balance",inputMode:"decimal",value:s,onChange:O=>r(O.target.value)}),c.jsxs("small",{id:"bask-balance",children:["Wallet balance:"," ",n.account?C?"Reading...":pt(f):"Connect wallet"]})]}),c.jsx("button",{type:"button",disabled:n.busy||C||f===void 0,onClick:()=>r(Bv(f)),children:"Use full balance"}),f===void 0&&c.jsx("p",{className:"disabled-reason",children:n.account?C?"Reading...":"BASK balance unreadable. Retry balance below.":"Connect wallet to read BASK balance."}),c.jsxs("label",{children:["Receiver",c.jsx("input",{disabled:n.busy||g,value:l,onChange:O=>u(O.target.value),autoComplete:"off",spellCheck:!1})]}),c.jsx("button",{disabled:g||n.busy,children:g?"Checking...":"Preview redemption"}),(g||n.busy)&&c.jsx("p",{className:"disabled-reason",children:"Checking or waiting for the current transaction before previewing again."})]}),n.account&&!C&&f===void 0&&c.jsx("button",{onClick:()=>x(O=>O+1),children:"Retry balance"}),m&&c.jsxs("div",{className:"receipt",children:[c.jsx("h3",{children:"Redemption preview"}),c.jsxs("p",{children:["Fee: ",pt(m.fee)," BASK"]}),e.complete&&m.amounts.length===e.assets.length?e.assets.map(O=>c.jsxs("p",{children:[c.jsx("bdi",{children:O.symbol}),":"," ",pt(m.amounts[O.index],O.tokenDecimals)]},O.token)):c.jsx("p",{children:"Amounts per stock are not shown: the stock list is unreadable or has changed. Refresh vault and preview again."}),c.jsx(wh,{value:l,wallet:n}),c.jsx(Xa,{snapshot:e,wallet:n,label:"Redeem",primary:!0,disabled:f===void 0||f<m.shares||!e.complete,disabledReason:f===void 0||!e.complete?"Data missing or balance unreadable. Retry balance and vault.":"BASK balance too low. Reduce the amount or use full balance.",getSpec:async()=>{const O=j.current,B=cu(l);if(await Ie(Ne("balanceOf",[n.account]))<m.shares)throw new ce("Your BASK balance is too low.");const[_,M]=await Ie(Ne("previewRedeem",[m.shares]));if(O!==j.current)throw new ce("Redemption changed. Preview again.");if(M!==m.fee||_.length!==m.amounts.length||_.some((Z,ee)=>Z<m.amounts[ee]*999n/1000n))throw new ce("Redemption changed. Preview again.");return Ne("redeem",l9(m.shares,B,m.amounts))}})]}),c.jsx(ea,{wallet:n,scope:"Redeem"}),c.jsx("p",{role:"alert",className:"error",children:b})]})})]})}function Y9({snapshot:e,wallet:n}){const[s,r]=D.useState({}),[l,u]=D.useState(""),[f,p]=D.useState(0),[m,y]=D.useState(""),[b,w]=D.useState(!1),g=D.useRef(!1),[S,T]=D.useState(!1);D.useEffect(()=>u(n.account??""),[n.account]),D.useEffect(()=>{let A=!0;return r({}),T(!!n.account),n.account&&Ln(e.assets.map(_=>Ne("owed",[n.account,_.token]))).then(_=>{A&&(T(!1),r(Object.fromEntries(e.assets.map((M,Z)=>{const ee=_[Z];return[M.token,ee.ok?ee.value:void 0]}))))}),()=>{A=!1}},[n.account,e.loadedAt,f]);const x=e.assets.filter(A=>s[A.token]!==void 0&&s[A.token]>0n),j=[...x,...e.assets.filter(A=>s[A.token]===void 0)],C=D.useRef({account:n.account,initialOwed:s,progress:n.progress,error:m}),G=D.useRef(s);D.useLayoutEffect(()=>{G.current=s},[n.account,e.loadedAt,f]);const[O,B]=D.useState({account:n.account,finished:!1,shown:!1,items:[],count:0});return D.useLayoutEffect(()=>{if(C.current.account!==n.account){C.current={account:n.account,initialOwed:s,progress:n.progress,error:m},B({account:n.account,finished:!1,shown:!1,items:[],count:0});return}if(!n.account)return;const A=!S&&!e.loading&&s!==G.current,_=Object.keys(n.progress).some(Z=>(Z==="claim-all"||Z.startsWith("Claim "))&&n.progress[Z]!==C.current.progress[Z]),M=b||m!==""&&m!==C.current.error||_||A&&(!e.complete||j.length>0);(A||M)&&B(Z=>({account:n.account,finished:Z.finished||A,shown:Z.shown||M,items:A?j:Z.items,count:A?x.length:Z.count}))},[n.account,s,S,e.loading,e.complete,b,m,n.progress]),n.account?O.account!==n.account||!O.shown?O.account===n.account&&O.finished?c.jsx("p",{className:"claims-quiet",children:"Nothing is owed to this wallet."}):null:c.jsxs("section",{className:"panel claims",children:[c.jsx("h2",{children:"Claim owed stocks"}),c.jsxs("p",{children:["Claims belong to the connected wallet:"," ",n.account?c.jsx(qn,{value:n.account}):"Connect wallet to read claims."]}),c.jsxs("label",{children:["Send claimed stocks to",c.jsx("input",{disabled:n.busy||b,value:l,onChange:A=>u(A.target.value),spellCheck:!1})]}),n.account&&!S&&e.assets.some(A=>s[A.token]===void 0)&&c.jsx("button",{onClick:()=>p(A=>A+1),children:"Retry claims"}),n.account?c.jsxs(c.Fragment,{children:[c.jsx(wh,{value:l,wallet:n,claim:!0}),c.jsx("button",{disabled:b||n.busy||n.chainId!==4663||!x.length,onClick:async()=>{if(!g.current){g.current=!0,w(!0),y("");try{const A=cu(l);for(let _=0;_<x.length;_+=10)await n.send(Ne("claim",[x.slice(_,_+10).map(M=>M.token),A]),"claim-all",`Claim batch ${Math.floor(_/10)+1} of ${Math.ceil(x.length/10)}: ${x.slice(_,_+10).map(M=>M.symbol).join(", ")}`);p(_=>_+1)}catch(A){y(wt(A))}finally{w(!1),g.current=!1}}},children:"Claim all"}),c.jsx(Al,{wallet:n,snapshot:e,reason:El(n,e)||(e.complete?b?"Claim batch pending. Wait for its receipt.":S?"Reading...":x.length?"":j.length?"Owed balances are unreadable. Retry claims above.":"Nothing is owed to your connected wallet.":"Owed balances unreadable. Retry vault.")}),c.jsx(ea,{wallet:n,scope:"claim-all"}),c.jsx("div",{className:"claim-grid",children:O.items.map(A=>c.jsxs("div",{className:"receipt",children:[c.jsx("bdi",{children:A.symbol}),c.jsxs("p",{children:["Still owed:"," ",S?"Reading...":pt(s[A.token],A.tokenDecimals)]}),c.jsx(wh,{value:l,wallet:n,claim:!0}),c.jsx(Xa,{snapshot:e,wallet:n,label:`Claim ${A.symbol}`,scope:`Claim ${A.symbol} · ${A.token}`,disabled:b||s[A.token]===void 0||s[A.token]===0n,disabledReason:S?"Reading... Wait for owed balances.":s[A.token]===void 0?"Owed balance unreadable. Retry claims above.":"Nothing owed for this stock.",getSpec:()=>Ne("claim",[[A.token],cu(l)])})]},A.token))}),!e.assets.length&&c.jsx("p",{children:e.loading?"Reading...":e.complete?"No listed stocks.":"Listed stocks unreadable. Retry the vault."}),O.count>1&&c.jsx("p",{children:"Claim all collects up to 10 stocks per wallet prompt. If one stock can’t be paid, that batch stays owed: collect the others with their own Claim buttons."})]}):c.jsx("p",{children:"Connect the receiver wallet to read and claim its owed stocks."}),Object.keys(n.progress).filter(A=>A.startsWith("Claim ")).map(A=>c.jsx(ea,{wallet:n,scope:A},A)),c.jsx("p",{role:"alert",className:"error",children:m})]}):c.jsx("p",{className:"claims-quiet",children:"Connect the receiver wallet to read and claim its owed stocks."})}const Dg=[0xfffcb933bd6fad37aa2d162d1a594001n,0xfff97272373d413259a46990580e213an,0xfff2e50f5f656932ef12357cf3c7fdccn,0xffe5caca7e10e4e61c3624eaa0941cd0n,0xffcb9843d60f6159c9db58835c926644n,0xff973b41fa98c081472e6896dfb254c0n,0xff2ea16466c96a3843ec78b326b52861n,0xfe5dee046a99a2a811c461f1969c3053n,0xfcbe86c7900a88aedcffc83b479aa3a4n,0xf987a7253ac413176f2b074cf7815e54n,0xf3392b0822b70005940c7a398e4b70f3n,0xe7159475a2c29b7443b29c7fa6e889d9n,0xd097f3bdfd2022b8845ad8f792aa5825n,0xa9f746462d870fdf8a65dc1f90e061e5n,0x70d869a156d2a1b890bb3df62baf32f7n,0x31be135f97d08fd981231505542fcfa6n,0x9aa508b5b7a84e1c677de54f3e99bc9n,0x5d6af8dedb81196699c329225ee604n,0x2216e584f5fa1ea926041bedfe98n,0x48a170391f7dc42444e8fa2n];function Z9(e){const n=e<0n?-e:e;if(n>887272n)throw new Error("Pool mean tick out of bounds.");let s=1n<<128n;for(let r=0;r<Dg.length;r++)n&1n<<BigInt(r)&&(s=s*Dg[r]>>128n);return e>0n&&(s=((1n<<256n)-1n)/s),(s>>32n)+(s%(1n<<32n)?1n:0n)}function X9(e,n,s){const r=Z9(e);if(r<=(1n<<128n)-1n){const u=r*r;return s?u*n/(1n<<192n):(1n<<192n)*n/u}const l=r*r/(1n<<64n);return s?l*n/(1n<<128n):(1n<<128n)*n/l}function Q9(e,n,s,r){const l=s+r;return l>=18?e*n/10n**BigInt(l-18):e*n*10n**BigInt(18-l)}function J9(e,n,s,r,l,u,f,p){if(e.length!==2||n.length!==2)throw new Error("Pool observations unreadable.");const m=BigInt.asIntN(56,e[1]-e[0]),y=BigInt.asUintN(160,n[1]-n[0]);if(!y)throw new Error("Pool liquidity observation is zero.");const b=s*((1n<<160n)-1n)/(y<<32n);if(b>=1n<<128n)throw new Error("Pool liquidity out of bounds.");const w=m/s-(m<0n&&m%s?1n:0n),g=X9(w,10n**BigInt(l),r);return{liquidity:b,price:Q9(g,f,u,p)}}const xh=["Band","MaxAge","NoPoolAge","FreshCount","FreshHours","Hours","Dst","PoolWindow","PoolDeviation","FeedGas","PauseGas","PoolGas","BalanceGas","PayGas","MaxAssets","DirectLimit"],Bo=["band","maxAge","noPoolAge","freshCount","freshHours","hoursFrom / hoursTo","dst","poolWindow","poolDeviation","feedGas","pauseGas","poolGas","balanceGas","payGas","maxAssets","directLimit"],Vc=["2–100","3,600–2,592,000 seconds","3,600–2,592,000 seconds","0–10","1–48 hours","Seconds since Sunday 00:00 New York time; from < to ≤ 604,800, or both zero for always open","0 (US daylight saving rule), 1 (never daylight saving, UTC-5) or 2 (always daylight saving, UTC-4)","300–86,400 seconds","50–2,000 basis points","20,000–500,000","20,000–500,000","20,000–500,000","20,000–500,000 gas, and the vault's combined rules: maxAssets × (balanceGas + 60,000) ≤ 28,000,000 and directLimit × (balanceGas + payGas + 70,000) ≤ 28,000,000","20,000–500,000 gas, and the vault's combined rule: directLimit × (balanceGas + payGas + 70,000) ≤ 28,000,000","At least assetCount; maxAssets × (balanceGas + 60,000) ≤ 28,000,000","directLimit × (balanceGas + payGas + 70,000) ≤ 28,000,000; zero disables direct attempts"],Fc=28000000n;function Iv(e,n){if(!n||e!==12&&e!==13)return;const s=BigInt(n.maxAssets),r=BigInt(n.directLimit),l=BigInt(e===12?n.payGas:n.balanceGas);let u=500000n;return e===12&&s>0n&&Fc/s-60000n<u&&(u=Fc/s-60000n),r>0n&&Fc/r-70000n-l<u&&(u=Fc/r-70000n-l),u}const or=e=>BigInt(e).toLocaleString("en-US");function W9(e,n){if(e!==12&&e!==13)return Vc[e];if(!n)return`${Vc[e]}. Current maximum unreadable — Retry vault.`;const s=Iv(e,n),r=e===12?`maxAssets ${or(n.maxAssets)}, directLimit ${or(n.directLimit)}, payGas ${or(n.payGas)}`:`directLimit ${or(n.directLimit)}, balanceGas ${or(n.balanceGas)}`;return s<20000n?`${Vc[e]}. With the current ${r}, no value fits: lower ${e===12?"MaxAssets or DirectLimit":"DirectLimit"} first.`:`${Vc[e]}. Current maximum ${or(s)} (with the current ${r}).`}function ek(e){try{return bp(e,128)}catch{throw new ce("Minimum raw pool liquidity: enter an unsigned 128-bit whole number.")}}function Ug(e){const n=Xt(e.pool,!0),s=Xt(e.quoteFeed,!0),r=ek(e.minLiquidity);if(ge(n,Le)&&(!ge(s,Le)||r!==0n))throw new ce("No pool requires zero quote feed and zero liquidity.");if(!ge(n,Le)&&ge(s,Le))throw new ce("A pool requires its quote feed.");if(!ge(n,Le)&&r===0n)throw new ce("A pool requires a minLiquidity above zero (a zero floor never rejects a drained pool).");return[n,s,r]}const tk={kind:0,token:Le,target:Le,pool:Le,quoteFeed:Le,value:0n,value2:0n,setting:0},nk="Sunday 2:00-2:59 am New York is skipped on the spring-forward Sunday; choose another start.";function ak(e,n){return n===0n&&e>=7200n&&e<10800n}function Gv(e,n){const s=Number(e.setting??"0");if(!xh[s])throw new ce("Choose a setting.");if(s===5){const[l,u]=r9(e.from??"",e.to??"");if(ak(l,n?BigInt(n.dst):0n))throw new ce(nk);return[s,l,u]}const r=bp(e.value||"0");if(s===6&&r>2n)throw new ce("Dst is 0, 1 or 2.");return[s,r,0n]}function sk(e){const n=Xt(e);if(ge(n,It))throw new ce("The new owner must not be the vault.");return n}function ik(e){const n=Xt(e);if(ge(n,It))throw new ce("The new guardian must not be the vault.");return n}function rk(e){const n=Xt(e);if(ge(n,It))throw new ce("The fee recipient must not be the vault.");return n}function ok(e,n,s){const r={...tk,kind:e};switch(e){case 0:{const[l,u,f]=Ug(n);return{...r,token:Xt(n.token),target:Xt(n.feed),pool:l,quoteFeed:u,value:f}}case 1:return{...r,token:Xt(n.token),target:Xt(n.feed)};case 2:case 3:case 4:case 6:return{...r,token:Xt(n.token)};case 5:{const[l,u,f]=Ug(n);return{...r,token:Xt(n.token),pool:l,quoteFeed:u,value:f}}case 7:return{...r,target:ik(n.next)};case 8:return{...r,value:ll(n.cap)};case 9:return{...r,target:rk(n.recipient)};case 10:{const[l,u,f]=Gv(n,s);return{...r,setting:l,value:u,value2:f}}default:throw new ce("Choose a proposal kind.")}}function Fn(e,n,s){return Ne("propose",[ok(e,n,s)])}function lk(e,n){try{switch(Number(e.kind)){case 0:return`Feed ${e.target}; pool ${e.pool}; quote feed ${e.quoteFeed}; minimum liquidity ${e.value}`;case 1:return`New feed ${e.target}`;case 2:return"Re-centre the band at the feed answer at execution.";case 3:return"Reopen this stock for deposits.";case 4:return"Retire permanently; zero in deposit NAV, still paid on redemption.";case 5:return`Pool ${e.pool}; quote feed ${e.quoteFeed}; minimum liquidity ${e.value}`;case 6:return"Add positive excess to managed holdings. Keep deposits paused until executed and checked.";case 7:return`New guardian ${e.target}`;case 8:return`New size limit ${Zn(e.value)}`;case 9:return`Fee recipient ${e.target}. Fees begin when executed; the recipient can never be unset.`;case 10:{const s=Number(e.setting);return s===5?`hoursFrom / hoursTo = ${e.value} / ${e.value2}; ${Co(s,e.value,e.value2,n)}`:`${Bo[s]} = ${e.value}; ${Co(s,e.value,0n,n)}`}default:return"Unknown action. Retry."}}catch{return"Proposal data unreadable. Retry."}}const k0=In(["function token0() view returns (address)","function token1() view returns (address)","function observe(uint32[]) view returns (int56[], uint160[])"]);async function j0(e){const[n,s,r,l,u,f]=await Promise.all([Ie(cn(e.token,"symbol")),Ie(Ha(e.feed,"description")),Ie(Ha(e.feed,"latestRoundData")),Ie(Ha(e.feed,"decimals")),Ie(Ne("assetTokens")),Ie(Ne("settings"))]),p=u.some(C=>ge(C,e.token)),m=p?await Ie(Ne("asset",[e.token])):void 0;let y,b,w,g,S,T="No pool",x="No quote feed";if(!ge(e.pool,Le)){const[C,G,O]=await Promise.all([Ie({address:e.pool,abi:k0,functionName:"token0"}),Ie({address:e.pool,abi:k0,functionName:"token1"}),Ie(Ha(e.quoteFeed,"description"))]);if(!ge(C,e.token)&&!ge(G,e.token))throw new ce("The pool does not include this Stock Token.");T=(await Promise.all([Ie(cn(C,"symbol")),Ie(cn(G,"symbol"))])).join(" / "),x=uu(O);const A=BigInt(f.poolWindow),[_,M,Z,ee,J]=await Promise.all([Ie({address:e.pool,abi:k0,functionName:"observe",args:[[Number(A),0]]}),Ie(cn(e.token,"decimals")),Ie(cn(ge(C,e.token)?G:C,"decimals")),Ie(Ha(e.quoteFeed,"decimals")),Ie(Ha(e.quoteFeed,"latestRoundData"))]);if(r[1]<=0n||J[1]<=0n)throw new ce("Stock or quote feed answer is invalid.");const V=await nt.getBlock({blockTag:"latest"});if(J[3]>V.timestamp||V.timestamp-J[3]>BigInt(f.maxAge))throw new ce("Quote feed is stale or has a future timestamp.");const X=J9(_[0],_[1],A,ge(C,e.token),Number(M),Number(Z),J[1],Number(ee));y=X.liquidity,w=X.price;const oe=r[1]*10n**18n/10n**BigInt(l);if(!oe)throw new ce("Feed price normalizes to zero.");const he=w>oe?w-oe:oe-w;b=he*10000n/oe,y<e.minLiquidity&&(g=`${dp(A)} pool liquidity is under minLiquidity.`),he>oe*BigInt(f.poolDeviation)/10000n&&(g=(g?g+" ":"")+"Pool-vs-feed gap is over poolDeviation."),y*2n<e.minLiquidity*3n&&(S="Liquidity is under 1.5× minLiquidity.")}const j=uu(s,n);if(m){const C=["feed","pool","quoteFeed"].filter(G=>!ge(m[G],e[G]));m.minLiquidity!==e.minLiquidity&&C.push("minLiquidity"),C.length&&(g=`Already-listed row differs: ${C.join(", ")}. Correct the pasted line.`)}return{...e,symbol:n,liquidity:y,gapBps:b,poolPrice:w,error:g,warning:S,description:j,price:r[1],feedDecimals:Number(l),poolSymbols:T,quoteName:x,listed:p,marked:e.ticker!==n||!Rv(n,j),poolWindow:BigInt(f.poolWindow)}}const Pv=e=>`${e} hour${e===1n?"":"s"}`;function ck(e,n){return e===0n?"off: deposits stay open when prices stop":`at least ${e} listed stock price${e===1n?"":"s"} updated within the last ${n===void 0?"FreshHours hours":Pv(n)}; deposits close when prices stop (US market holidays) until one updates`}function Co(e,n,s=0n,r){return e===0?`centre /${n} to ×${n}`:[1,2,7].includes(e)?`${Number(n)/3600} hours (${n} s)`:e===8?`${Number(n)/100}% (${n} basis points)`:e===5?jv(n,s,r?BigInt(r.dst):0n):e===6?Nv[Number(n)]??"unknown daylight rule":e===15?`With at most ${n} held stocks, every leg is tried now; with more, every leg is owed for claims. Zero disables direct attempts.`:e===3?ck(n,r?BigInt(r.freshHours):void 0):e===4?`${Pv(n)}; deposits need FreshCount prices updated within this window, so they close when prices stop (US market holidays) until one updates`:e>=9&&e<=13?`${n} gas`:`${n} stocks`}function qt({title:e,description:n,fields:s=[],label:r,build:l,confirmation:u,role:f="owner",disabled:p=!1,disabledReason:m="Data missing. Complete setup or retry the vault.",folded:y=!0,preview:b,snapshot:w,wallet:g}){const[S,T]=D.useState({}),[x,j]=D.useState(!1),[C,G]=D.useState(""),[O,B]=D.useState(!1),A=D.useRef(!1),_=s.some(V=>V.type==="stock"&&!V.stocks?.some(X=>ge(X.token,S[V.key]))),M=s.some(V=>!(S[V.key]||"").trim()),Z=El(g,w,f)||(O?"Checking... Wait for this action.":_?"Choose a stock. If your previous stock disappeared, choose again.":M?"Complete the fields above.":u&&!x?"Read and confirm the consequence above.":p?m:"");D.useEffect(()=>{w.loading||T(V=>{const X={...V};let oe=!1;return s.filter(he=>he.type==="stock").forEach(he=>{X[he.key]&&!he.stocks?.some(ae=>ge(ae.token,X[he.key]))&&(X[he.key]="",oe=!0)}),oe?X:V})},[w.loadedAt]);const ee=e.toLowerCase().replace(/[^a-z0-9]/g,"-");async function J(V){if(V.preventDefault(),!(A.current||Z)){A.current=!0,G(""),B(!0);try{if(u&&!x)throw new Error("Confirm the stated consequence before continuing.");await g.send(await l(Object.fromEntries(s.map(X=>[X.key,S[X.key]??""]))),e,r)}catch(X){G(wt(X)),g.fail(e,wt(X)),V.target.querySelector("input, textarea, select")?.focus()}finally{B(!1),A.current=!1}}}return c.jsxs("details",{className:"panel action-panel",open:y?void 0:!0,children:[c.jsx("summary",{children:e}),n&&c.jsx("p",{children:n}),c.jsxs("form",{onSubmit:J,children:[s.map(V=>c.jsxs("label",{children:[V.label,V.type==="textarea"?c.jsx("textarea",{disabled:O||g.busy,"aria-label":V.label,rows:5,value:S[V.key]??"",onChange:X=>T({...S,[V.key]:X.target.value}),required:!0,"aria-describedby":`${ee}-error`}):V.type==="stock"?c.jsxs("select",{disabled:O||g.busy,"aria-label":V.label,value:V.stocks?.some(X=>ge(X.token,S[V.key]))?S[V.key]:"",onChange:X=>T({...S,[V.key]:X.target.value}),required:!0,"aria-describedby":`${ee}-error`,children:[c.jsx("option",{value:"",disabled:!0,children:"Choose a stock"}),V.stocks?.map(X=>c.jsxs("option",{value:X.token,children:[X.symbol,X.retired?" · retired":X.open?"":" · closed"]},X.token))]}):c.jsx("input",{disabled:O||g.busy,"aria-label":V.label,value:S[V.key]??"",onChange:X=>T({...S,[V.key]:X.target.value}),inputMode:V.type==="amount"?"decimal":"text",required:!0,"aria-describedby":`${ee}-error`,"aria-invalid":!!C})," ",V.hint&&c.jsx("small",{children:V.hint}),V.type==="stock"&&V.stocks?.some(X=>ge(X.token,S[V.key]))&&c.jsxs("span",{className:"chosen-stock",children:["Chosen:"," ",V.stocks.find(X=>ge(X.token,S[V.key]))?.symbol,c.jsx(qn,{value:S[V.key]})]})]},V.key)),u&&c.jsxs("label",{className:"confirm",children:[c.jsx("input",{type:"checkbox",checked:x,onChange:V=>j(V.target.checked),required:!0}),u]}),b&&c.jsx("p",{className:"setting-preview",children:b(S)}),c.jsx(ul,{role:f,snapshot:w}),c.jsx("button",{type:"submit",disabled:!!Z,children:O?`${r}…`:r}),c.jsx(Al,{reason:Z,wallet:g,snapshot:w}),c.jsx(ea,{wallet:g,scope:e}),c.jsx("p",{role:"alert",className:"error",id:`${ee}-error`,children:C})]})]})}function uk({rows:e}){return c.jsx("div",{className:"pairing-grid",children:e.map((n,s)=>c.jsxs("article",{className:"receipt",children:[c.jsxs("h3",{children:["Row ",s+1,": ",c.jsx("bdi",{children:n.symbol})]}),c.jsxs("p",{children:["Input line ",n.line]}),c.jsx(Hn,{value:n.token}),c.jsxs("p",{children:["Stock feed: ",c.jsx("bdi",{children:n.description})]}),c.jsx(Hn,{value:n.feed}),n.marked&&c.jsx("strong",{className:"pairing-warning",children:"check this pairing"}),c.jsxs("p",{children:["Feed price:"," ",n.price===void 0?"unreadable":"$"+pt(n.price,n.feedDecimals)]}),c.jsxs("p",{children:["Pool: ",c.jsx(qn,{value:n.pool}),"Pool tokens: ",c.jsx("bdi",{children:n.poolSymbols})]}),c.jsxs("p",{children:["Quote feed: ",c.jsx("bdi",{children:n.quoteName}),c.jsx(qn,{value:n.quoteFeed})]}),c.jsxs("p",{children:["minLiquidity: ",String(n.minLiquidity)]}),!ge(n.pool,Le)&&c.jsxs(c.Fragment,{children:[c.jsxs("p",{children:["Current"," ",n.poolWindow===void 0?"pool-window":dp(n.poolWindow)," ","liquidity:"," ",n.liquidity===void 0?"unreadable":String(n.liquidity)," ","·"," ",n.liquidity===void 0?"unreadable":n.minLiquidity===0n?"No minimum (0)":pt(n.liquidity*10000n/n.minLiquidity,4,4)+"× minLiquidity"]}),c.jsxs("p",{children:["Pool-vs-feed gap:"," ",n.gapBps===void 0?"unreadable":pt(n.gapBps,2,2)+"%"]})]}),c.jsx("strong",{children:n.error||n.marked?"Needs correction":n.listed?"Already listed; matches this line":"Ready to list"}),n.warning&&c.jsx("p",{className:"note warning",children:n.warning}),n.error&&c.jsx("p",{className:"error",children:n.error})]},n.token))})}function dk({snapshot:e,wallet:n,input:s,setInput:r}){const[l,u]=D.useState([]),[f,p]=D.useState(""),[m,y]=D.useState(""),[b,w]=D.useState(""),[g,S]=D.useState(!1),[T,x]=D.useState(!1),[j,C]=D.useState(""),G=D.useRef(!1);D.useEffect(()=>{let _=!0;return n.account&&ge(n.account,e.globals.owner)&&n.listingPending().then(M=>{_&&(C(""),M&&(y(""),x(!0)))}).catch(M=>{_&&C(wt(M))}),()=>{_=!1}},[n.account,e.loadedAt]);async function O(){p(""),y("");const _=yh(s),M=[],Z=await yp();if(!Z.complete)throw new ce("Listed stocks unreadable. Retry vault before checking.");for(let ee=0;ee<_.length;ee++){w(`Checking row ${ee+1} of ${_.length}`);let J;try{J=await j0(_[ee]),!J.listed&&Z.assets.some(V=>!V.retired&&ge(V.feed,J.feed))&&(J.error="Stock feed already used by an unretired stock."),!J.listed&&!J.error&&!J.marked&&await fp(Ne("listGenesis",[J.token,J.feed,J.pool,J.quoteFeed,J.minLiquidity]),e.globals.owner)}catch(V){J={..._[ee],symbol:_[ee].ticker,description:"unreadable",price:void 0,feedDecimals:0,poolSymbols:"unreadable",quoteName:"unreadable",listed:!1,marked:!1,error:`Row ${ee+1}, line ${_[ee].line} (${_[ee].ticker}): ${wt(V)}`}}M.push(J),u([...M])}return p(s),w(M.some(ee=>ee.error||ee.marked)?"Checks finished. Rows marked Needs correction cannot be listed.":"Checks finished. Pairings ready."),M}async function B(){if(!G.current){G.current=!0,S(!0);try{await O()}catch(_){y(wt(_))}finally{S(!1),G.current=!1}}}const A=El(n,e,"owner")||(g?"Checking or listing. Wait for the current row.":j||(f!==s&&!T?"Check pairings before listing.":s.trim()?l.some(_=>_.marked||_.error)?"Needs correction. Fix the marked rows, then check pairings again.":"":"Paste the stock rows above."));return c.jsxs("section",{className:"panel",children:[c.jsx("h3",{children:"List initial stocks"}),c.jsx("p",{children:"Paste one line per stock: TICKER token feed pool quoteFeed minLiquidity. For no pool, enter zero addresses for pool and quoteFeed, and 0 for minLiquidity."}),c.jsxs("label",{children:["Listing rows",c.jsx("textarea",{rows:5,value:s,disabled:g||n.busy,onChange:_=>{r(_.target.value),p(""),u([]),x(!1)},spellCheck:!1})]}),c.jsx("button",{onClick:B,disabled:g||e.loading||e.globals.genesisFinalized!==!1,children:"Check pairings / Retry"}),(g||e.loading||e.globals.genesisFinalized!==!1)&&c.jsx("p",{className:"disabled-reason",children:g||e.loading?"Reading... Wait for the check.":"Genesis must be readable and not finalized. Retry vault."}),c.jsx("p",{role:"status",children:b}),c.jsx(uk,{rows:l}),c.jsx(ul,{role:"owner",snapshot:e}),c.jsx("button",{disabled:!!A,onClick:async()=>{if(G.current)return;G.current=!0,S(!0),y("");let _="Listing",M=0;try{await n.listingPending();const Z=await O();if(Z.some(ee=>ee.marked||ee.error))throw new ce("Needs correction. Fix the marked rows before resuming.");for(let ee=0;ee<Z.length;ee++){const J=Z[ee];M=ee+1,_=`Row ${ee+1} of ${Z.length}: ${J.symbol}`,w(_),await n.listingPending();const V=await j0(J);if(V.marked||V.error)throw new ce(V.error||"check this pairing");if(V.listed)continue;await n.send(Ne("listGenesis",[J.token,J.feed,J.pool,J.quoteFeed,J.minLiquidity]),"listing",_);const X=await j0(J);if(!X.listed)throw new du("Not listed after the receipt.");if(X.error)throw new ce(X.error);u(oe=>oe.map(he=>ge(he.token,J.token)?X:he))}w("All rows listed and matched against chain."),x(!1)}catch(Z){if(Z instanceof du){const ee=`Row ${M}: the transaction was cancelled in the wallet; nothing was listed. Press Resume listing.`;y(ee),n.notice("listing",ee)}else y(`${_}: ${wt(Z)}`);x(!0);try{await n.listingPending()}catch(ee){C(wt(ee))}}finally{S(!1),G.current=!1}},children:T?"Resume listing":"List stocks"}),c.jsx(Al,{reason:A,wallet:n,snapshot:e}),j&&c.jsx("button",{disabled:g||n.busy,onClick:async()=>{S(!0);try{await n.waitPending(),C(""),y(""),x(!0)}catch(_){C(wt(_))}finally{S(!1)}},children:"Wait for pending transaction / Retry"}),c.jsx(ea,{wallet:n,scope:"listing"}),c.jsx("p",{role:"alert",className:"error",children:m})]})}function fk(e){const[n,s]=D.useState(0),r=e.snapshot.globals.settings,l=r?n===5?`${jv(BigInt(r.hoursFrom),BigInt(r.hoursTo),BigInt(r.dst))}; ${r.hoursFrom}-${r.hoursTo}`:n===6?`${Nv[Number(r.dst)]??"unknown"}; ${r.dst}`:`${r[Bo[n]]}; ${Co(n,BigInt(r[Bo[n]]),0n,r)}`:"unreadable — Retry vault",u=r&&BigInt(r.dst)!==0n?BigInt(r.dst):void 0;return c.jsxs("div",{className:"panel setting-panel",children:[c.jsx("h3",{children:"Setting"}),c.jsxs("label",{children:["Setting name",c.jsx("select",{"aria-label":"Setting name",value:n,onChange:f=>s(Number(f.target.value)),children:xh.map((f,p)=>c.jsx("option",{value:p,children:f},f))})]}),c.jsxs("p",{children:["Current ",Bo[n],":"," ",e.snapshot.loading?"Reading...":l]}),c.jsxs("p",{children:["Bounds: ",W9(n,r)]}),n===5&&c.jsxs("p",{children:['Hours are seconds since Sunday 00:00 New York time. Enter From and To as a weekday and New York time, e.g. "Monday 9:30 am" and "Friday 4:00 pm" (To may be "Saturday 24:00"), or "Always open" in both. The start is inclusive and the end exclusive.',u!==void 0&&` With the current Dst ${u}, the vault reads these times as ${mp(u)} all year, not New York time.`]}),n===6&&c.jsx("p",{children:"0 follows the US daylight saving rule; 1 never applies daylight saving (UTC-5); 2 always applies it (UTC-4)."}),(n===3||n===4)&&c.jsx("p",{children:"Deposits need at least FreshCount listed stock prices updated within the last FreshHours hours, so they close when prices stop (US market holidays) until one updates. FreshCount 0 turns this off."}),c.jsx(qt,{...e,title:`Set ${xh[n]}`,label:"Propose setting",fields:n===5?[{key:"from",label:"From (weekday and New York time, or Always open)"},{key:"to",label:"To (weekday and New York time; Saturday 24:00 allowed)"}]:[{key:"value",label:`New ${Bo[n]} value`,type:"amount"}],preview:f=>{try{const[,p,m]=Gv({...f,setting:String(n)},r),y=Iv(n,r);return n===5?`Proposed value ${p}, value2 ${m}; ${Co(n,p,m,r)}`:`Proposed raw value: ${p}; ${Co(n,p,0n,r)}`+(y!==void 0&&p>y?`. Over the current maximum ${y}: the vault would refuse it.`:"")}catch(p){return p instanceof ce?p.message:"Enter a proposed value to see its plain units."}},build:f=>Fn(10,{...f,setting:String(n)},r)},n)]})}function hk({snapshot:e,wallet:n}){const[s,r]=D.useState(1n),[l,u]=D.useState([]),[f,p]=D.useState(""),[m,y]=D.useState(0),[b,w]=D.useState(!0);return D.useEffect(()=>{let g=!0;return w(!0),u([]),p(""),Ie(Ne("pendingProposals",[s,s+49n])).then(async S=>{const T=await Ln(S.map(x=>Ne("proposal",[x])));if(T.some(x=>!x.ok))throw new Error("proposal unreadable");g&&u(T.map((x,j)=>({...x.value[0],id:S[j]})))}).catch(()=>{g&&p("Pending proposals unreadable. Retry proposals.")}).finally(()=>{g&&w(!1)}),()=>{g=!1}},[s,e.loadedAt,m]),c.jsxs("section",{className:"owner-section panel",id:"owner-pending",tabIndex:-1,children:[c.jsxs("div",{className:"section-heading",children:[c.jsx("h2",{children:"Pending proposals"}),c.jsx("button",{onClick:()=>y(g=>g+1),disabled:b,children:b?"Reading...":f?"Retry proposals":"Refresh proposals"})]}),c.jsxs("p",{children:["Scanning IDs ",String(s),"–",String(s+49n)," of"," ",e.globals.proposalCount===void 0?"unreadable":String(e.globals.proposalCount),". Empty ranges may occur."]}),c.jsx("p",{role:"alert",className:"error",children:f}),b?c.jsx("p",{role:"status",children:"Reading proposals…"}):!f&&!l.length?c.jsx("p",{children:"No pending proposals in this range."}):null,c.jsx("div",{className:"two-col",children:l.map(g=>{const S=BigInt(Math.floor(Date.now()/1e3)),T=g.createdAt+2n*86400n,x=g.createdAt+9n*86400n,j=S>=T,C=S>=x,G=Number(g.action.kind),O=g.action.token,B=[4,6].includes(G);return c.jsxs("article",{className:"receipt",children:[c.jsxs("h3",{children:[Y4[G]," · Proposal ",String(g.id)]}),c.jsxs("p",{children:["Stock:"," ",ge(O,Le)?"Global setting":e.assets.find(A=>ge(A.token,O))?.symbol??"unlisted / symbol unreadable"]}),!ge(O,Le)&&c.jsx(qn,{value:O}),c.jsx("p",{className:"chain-text",children:lk(g.action,e.globals.settings)}),c.jsx("p",{children:j?`ready until just before ${ui(x,"end")}`:`waiting, executable from ${ui(T)}`}),B&&c.jsx(br,{warning:!0,children:"Keep deposits paused for execution."}),c.jsx(Xa,{snapshot:e,wallet:n,role:"owner",label:"Execute",scope:`Execute proposal ${g.id}`,disabled:!j||C||B&&e.globals.depositsPaused!==!0,disabledReason:C?"Proposal expired. Propose the change again.":j?"Pause deposits before executing this proposal.":`Wait until ${ui(T)}.`,getSpec:async()=>{if(B&&await Ie(Ne("depositsPaused"))!==!0)throw new ce("Pause deposits before executing Retire or Resync.");return Ne("execute",[g.id])}}),c.jsx(Xa,{snapshot:e,wallet:n,role:G===7?"owner":"operator",label:"Cancel proposal",scope:`Cancel proposal ${g.id}`,getSpec:()=>Ne("cancel",[g.id])})]},String(g.id))})}),Object.keys(n.progress).filter(g=>/^(Execute|Cancel) proposal /.test(g)).map(g=>c.jsx(ea,{wallet:n,scope:g},g)),c.jsxs("div",{className:"button-row",children:[c.jsx("button",{disabled:b||s===1n,onClick:()=>r(g=>g-50n),children:"Previous proposal page"}),c.jsx("button",{disabled:b||e.globals.proposalCount===void 0||s+50n>e.globals.proposalCount,onClick:()=>r(g=>g+50n),children:"Next proposal page"})]}),c.jsx("p",{className:"disabled-reason",children:b?"Reading...":`Pages show up to 50 proposal IDs. ${s===1n?"This is the first page.":""} ${e.globals.proposalCount===void 0?"Proposal count unreadable. Retry vault.":s+50n>e.globals.proposalCount?"This is the last page.":""}`})]})}const qg=[()=>sessionStorage,()=>localStorage],Lg="Paste the listing rows first so the page can check none is missing.";function Hg(e,n){const s=e.find(r=>ge(r.token,n.token));return!!s&&(!ge(s.feed,n.feed)||!ge(s.pool,n.pool)||!ge(s.quoteFeed,n.quoteFeed)||s.minLiquidity!==n.minLiquidity)}const N0=e=>`Listed with other values than the pasted lines: ${e.join(", ")}. Check pairings shows which field; paste the lines that were listed.`;function pk(e){const{snapshot:n,wallet:s}=e,r=(x=n.assets)=>({key:"token",label:"Stock Token",type:"stock",stocks:x}),l=[{key:"pool",label:"Pool address (zero for no pool)"},{key:"quoteFeed",label:"Quote feed address (zero for no pool)"},{key:"minLiquidity",label:"Minimum raw pool liquidity",type:"amount"}],u={key:"feed",label:"Stock USD feed address"},f=n.assets.filter(x=>x.reason!==0),p=n.globals.genesisFinalized,[m,y]=D.useState(()=>{for(const x of qg)try{const j=x().getItem("basket-listing");if(j)return j}catch{}return""}),b=x=>{y(x);for(const j of qg)try{j().setItem("basket-listing",x)}catch{}};let w=[],g=[],S="";if(m.trim())try{const x=yh(m);w=x.filter(j=>!n.assets.some(C=>ge(C.token,j.token))).map(j=>j.ticker),g=x.filter(j=>Hg(n.assets,j)).map(j=>j.ticker)}catch(x){S=wt(x)}const T=x=>{const j=document.getElementById(`owner-${x}`);j?.scrollIntoView(),j?.focus({preventScroll:!0})};return c.jsxs(c.Fragment,{children:[c.jsx(Us,{eyebrow:"Behind the counter",title:"Owner",children:"All controls and proposals are visible to everyone. Only the wallet allowed by the vault can send each transaction."}),c.jsx("div",{className:"jump-links","aria-label":"Owner sections",children:["Launch","Pause","Pending","Immediate","Propose"].map(x=>c.jsx("button",{onClick:()=>T(x.toLowerCase()),children:x},x))}),c.jsxs("div",{className:"roles panel",children:[c.jsxs("div",{children:[c.jsx("strong",{children:"Owner"}),n.loading?"Reading...":c.jsx(qn,{value:n.globals.owner})]}),c.jsxs("div",{children:[c.jsx("strong",{children:"Guardian"}),n.loading?"Reading...":c.jsx(qn,{value:n.globals.guardian})]}),c.jsxs("div",{children:[c.jsx("strong",{children:"Pending owner"}),n.loading?"Reading...":ge(n.globals.pendingOwner,Le)?c.jsx("span",{children:"None"}):c.jsx(qn,{value:n.globals.pendingOwner})]}),c.jsxs("div",{children:[c.jsx("strong",{children:"Fee recipient"}),n.loading?"Reading...":n.globals.feeRecipient===void 0?c.jsx("span",{children:"unreadable"}):ge(n.globals.feeRecipient,Le)?c.jsx("span",{children:"None"}):c.jsx(qn,{value:n.globals.feeRecipient})]})]}),p?c.jsx("p",{className:"panel",id:"owner-launch",tabIndex:-1,children:"Launch done · Genesis finalized."}):c.jsxs("section",{className:"owner-section panel",id:"owner-launch",tabIndex:-1,children:[c.jsx("h2",{children:"Launch"}),c.jsx("p",{children:n.loading?"Reading...":p===void 0?"Genesis unreadable — Retry vault":p?"Genesis finalized":"Genesis not finalized"}),c.jsxs("div",{className:"two-col",children:[c.jsx(dk,{...e,input:m,setInput:b}),c.jsxs("div",{children:[c.jsx(qt,{...e,title:"Finalize genesis",folded:!1,disabledReason:m.trim()?S||(w.length?`Unlisted rows: ${w.join(", ")}. List them first.`:g.length?N0(g):"At least three readable stocks must pass every check. Correct failed stocks and retry vault."):Lg,label:"Finalize genesis",description:"At least three listed stocks must each have reason OK in allAssets().",disabled:p!==!1||!m.trim()||!!S||!!w.length||!!g.length||!n.aggregate||!n.complete||n.assets.length<3||!!f.length,confirmation:"I understand this is irreversible, deposits can start at once, and later stocks can only be added by a List proposal.",build:async()=>{if(!m.trim())throw new ce(Lg);await s.listingPending();const x=await yp(),j=yh(m),C=j.filter(O=>!x.assets.some(B=>ge(B.token,O.token)));if(C.length)throw new ce(`Unlisted rows: ${C.map(O=>O.ticker).join(", ")}. List them first.`);const G=j.filter(O=>Hg(x.assets,O));if(G.length)throw new ce(N0(G.map(O=>O.ticker)));if(!x.aggregate||!x.complete||x.assets.length<3||x.assets.some(O=>O.reason!==0))throw new ce("Finalization blocked: "+(x.assets.filter(O=>O.reason!==0).map(O=>`${O.symbol}: ${gi(O.reason,x.globals.settings)}`).join("; ")||"At least three readable stocks required."));return Ne("finalizeGenesis")}}),c.jsx("p",{children:n.loading?"Reading...":n.complete?`${n.assets.length} ${n.assets.length===1?"stock":"stocks"} listed: ${n.assets.map(x=>x.symbol).join(", ")||"None"}`:"Listed stocks unreadable · Retry vault"}),w.length>0&&c.jsxs("p",{className:"error",children:["Unlisted rows: ",w.join(", ")]}),g.length>0&&c.jsx("p",{className:"error",children:N0(g)}),S&&c.jsx("p",{className:"error",children:S}),f.map(x=>c.jsxs("p",{className:"error",children:[x.symbol,": ",gi(x.reason,n.globals.settings)]},x.token))]})]})]}),c.jsxs("section",{className:"owner-section panel",id:"owner-pause",tabIndex:-1,children:[c.jsx("h2",{children:"Deposit pause"}),c.jsx("p",{children:n.loading?"Reading...":n.globals.depositsPaused===void 0?"Pause state unreadable — Retry vault":n.globals.depositsPaused?"Paused":"Not paused"}),c.jsx(ul,{role:"operator",snapshot:n}),c.jsx(Xa,{...e,label:"Pause deposits",disabled:n.globals.depositsPaused!==!1,disabledReason:n.globals.depositsPaused?"Deposits are already paused.":"Pause state unreadable. Retry vault.",role:"operator",getSpec:()=>Ne("pauseDeposits")}),c.jsx(ul,{role:"owner",snapshot:n}),c.jsx(Xa,{...e,label:"Unpause deposits",disabled:n.globals.depositsPaused!==!0,disabledReason:n.globals.depositsPaused===!1?"Deposits are already unpaused.":"Pause state unreadable. Retry vault.",role:"owner",getSpec:()=>Ne("unpauseDeposits")})]}),c.jsx(hk,{...e}),c.jsxs("section",{className:"owner-section panel",id:"owner-immediate",tabIndex:-1,children:[c.jsx("h2",{children:"Immediate controls"}),c.jsxs("div",{className:"two-col",children:[c.jsx(qt,{...e,title:"Close a stock",label:"Close stock",role:"operator",fields:[r()],build:x=>Ne("close",[Xt(x.token)])}),c.jsx(qt,{...e,title:"Lower size limit",label:"Lower NAV cap",description:"Acts at once and voids pending raises. Zero is allowed.",fields:[{key:"cap",label:"Lower limit in dollars",type:"amount"}],build:x=>Ne("lowerNAVCap",[ll(x.cap,!0)])}),c.jsx(qt,{...e,title:"Remove retired stock",label:"Remove retired",role:"anyone",description:"Only when managed and total owed are both zero. Removal changes assetTokens order.",fields:[r(n.assets.filter(x=>x.retired))],build:x=>Ne("removeRetired",[Xt(x.token)])}),c.jsx(qt,{...e,title:"Transfer ownership",label:"Start ownership transfer",description:"The new owner must accept from their own wallet and must not be the guardian.",fields:[{key:"next",label:"New owner address"}],build:async x=>{const j=sk(x.next);if(ge(j,await Ie(Ne("guardian"))))throw new ce("The new owner must not be the guardian.");return Ne("transferOwnership",[j])}}),c.jsx(qt,{...e,title:"Accept ownership",label:"Accept ownership",role:"pending",build:async()=>{if(ge(s.account,await Ie(Ne("guardian"))))throw new ce("The new owner must not be the guardian.");return Ne("acceptOwnership")}})]})]}),c.jsxs("section",{className:"owner-section panel",id:"owner-propose",tabIndex:-1,children:[c.jsx("h2",{children:"Propose a change"}),c.jsx("p",{children:"Changes wait two days. Only the owner can execute within the following seven days. The guardian can cancel, except its own replacement."}),c.jsxs("div",{className:"two-col",children:[c.jsx(qt,{...e,title:"List",label:"Propose List",fields:[{key:"token",label:"New Stock Token address"},u,...l],build:x=>Fn(0,x)}),c.jsx(qt,{...e,title:"Feed",label:"Propose Feed",fields:[r(),u],build:x=>Fn(1,x)}),c.jsx(qt,{...e,title:"Recentre",label:"Propose Recentre",description:"Re-centres the band on the feed answer at execution.",fields:[r()],build:x=>Fn(2,x)}),c.jsx(qt,{...e,title:"Reopen",label:"Propose Reopen",fields:[r(n.assets.filter(x=>!x.open&&!x.retired))],build:x=>Fn(3,x)}),c.jsx(qt,{...e,title:"Retire",label:"Propose Retire",description:"Pause deposits before execution.",fields:[r(n.assets.filter(x=>!x.open&&!x.retired))],confirmation:"I understand retirement is permanent: zero in deposit NAV, still paid out on redemption. New depositors take a share of its value from current holders.",build:x=>Fn(4,x)}),c.jsx(qt,{...e,title:"Pool",label:"Propose Pool",fields:[r(),...l],build:x=>Fn(5,x)}),c.jsx(qt,{...e,title:"Resync",label:"Propose Resync",description:"Pause deposits before proposing; unpause after it executes.",fields:[r()],build:async x=>{if(await Ie(Ne("depositsPaused"))!==!0)throw new ce("Pause deposits before proposing Resync.");return Fn(6,x)}}),c.jsx(qt,{...e,title:"Guardian",label:"Propose Guardian",fields:[{key:"next",label:"New guardian address"}],build:x=>Fn(7,x)}),c.jsx(qt,{...e,title:"RaiseCap",label:"Propose RaiseCap",description:`Current size limit: ${Zn(n.globals.NAV_CAP)}. Maximum $10 billion.`,fields:[{key:"cap",label:"New size limit in dollars",type:"amount"}],build:x=>Fn(8,x)}),c.jsx(qt,{...e,title:"FeeRecipient",label:"Propose FeeRecipient",description:"Never unset. Fees start once executed. Later recipient changes use the same waiting period.",fields:[{key:"recipient",label:"Fee recipient address"}],confirmation:"I understand fees begin once a recipient is set and the recipient can never be unset.",build:x=>Fn(9,x)}),c.jsx(fk,{...e})]})]})]})}const wp=1e9,Uu=86400,fu=4*365*Uu,mk=365*Uu,Ig=1460*Uu,zs=[{share:49,amount:49e7,who:"BASK/USDG liquidity providers",terms:"Released over four years, with more rewards at the start"},{share:21,amount:21e7,who:"ITEM/ETH liquidity providers",terms:"Same schedule, same rules"},{share:10,amount:1e8,who:"ITEM/ETH launch pool",terms:"Paired with ETH at launch; where ITEM first trades"},{share:10,amount:1e8,who:"The IMD swarm that built and launched the contracts",terms:"Paid to IMD's members under IMD's own rules"},{share:5,amount:5e7,who:"Operations",terms:"Seeding the two pools and the first stakes; held by the owner wallet"},{share:4,amount:4e7,who:"Development, vested",terms:"Nothing for 12 months, 25% at month 12, the rest evenly to month 48; cannot be revoked or sped up"},{share:1,amount:1e7,who:"Development, unlocked",terms:"Sent once at launch"}],Wc=["ITEM's supply is 1,000,000,000, created once at launch. Nothing can mint more. It is a plain token: anyone can hold, send or trade it.","How the supply is divided:","What is available when. At launch, 260,000,000 ITEM (26% of the supply) is available through the launch pool, the swarm's share, operations and the unlocked development amount. The remaining 740,000,000 ITEM is released over four years: 700,000,000 as liquidity rewards and 40,000,000 through development vesting. The chart and table show this schedule with liquidity providers staked in both reward pools from launch throughout the four years.","The line shows the total ITEM available: the 260,000,000 available at launch plus the liquidity rewards and development tokens released by each date. The table shows the breakdown.","Where value flows. ITEM pays the people who make BASK and ITEM tradable: liquidity providers earn ITEM from the gauges. ITEM holders who stake earn the vault's fees, 0.5% of every deposit and 0.5% of every redemption, paid in BASK. Trading fees in the two Uniswap v2 pools stay with the liquidity providers of those pools. Trades in the launch pool carry a 1.25% fee set by IMD: 1% to the protocol's operations wallet and 0.25% to IMD.","What cannot change. The split above, the four-year gauge schedule, the 7-day fee stream and the vesting dates are constants in contracts with no owner. Nobody holds a key that can alter them."],yk=["Share","ITEM","Who","Terms"],bk=["End of","Liquidity rewards released","Development unlocked","Total ITEM available"],gk={ITEM:An(Qe)?Qe.ITEM:null,ITEM_STAKING:An(Qe)?Qe.ITEM_STAKING:null,BASK_USDG_GAUGE:An(Qe)?Qe.BASK_USDG_GAUGE:null,ITEM_ETH_GAUGE:An(Qe)?Qe.ITEM_ETH_GAUGE:null,DEV_VESTING:An(Qe)?Qe.DEV_VESTING:null},Kv=zs[0].amount+zs[1].amount,Vv=zs[5].amount,xp=wp-Kv-Vv,Va=e=>Math.round(e).toLocaleString("en-US"),Fv=(e,n=Kv)=>{const r=Math.max(0,Math.min(e,fu))/fu;return n*r*(2-r)},Yv=e=>e<mk?0:Vv*Math.min(e,Ig)/Ig,Oo=e=>xp+Fv(e)+Yv(e),Zv=[1,2,3,4].map(e=>{const n=e*365*Uu;return{year:e,gauges:Fv(n),vested:Yv(n),outside:Oo(n),share:Math.round(Oo(n)/wp*1e3)/10}}),vk=zs.map(e=>[e.share+"%",Va(e.amount),e.who,e.terms]),wk=Zv.map(e=>["Year "+e.year,Va(e.gauges),Va(e.vested),Va(e.outside)+" ("+e.share+"%)"]),xk=zs.map(e=>e.who+" "+e.share+"%").join(", "),Sk="Total ITEM available: "+Va(xp)+" at launch, "+Zv.map(e=>Va(e.outside)+" at year "+e.year).join(", ")+". Includes the launch allocation, liquidity rewards and unlocked development tokens, with liquidity providers staked in both reward pools throughout the four years.",Gg=["var(--royal)","var(--sky)","var(--sun)","var(--red)","var(--ink)","#93aaca","#dbe6f4"];function Pg({headers:e,rows:n,kind:s}){return c.jsxs("table",{className:"tm-table "+s,children:[c.jsx("thead",{children:c.jsx("tr",{children:e.map(r=>c.jsx("th",{scope:"col",children:r},r))})}),c.jsx("tbody",{children:n.map((r,l)=>c.jsx("tr",{children:r.map((u,f)=>f===0?c.jsx("th",{scope:"row","data-label":e[f],children:u},f):c.jsx("td",{"data-label":e[f],children:u},f))},l))})]})}function Ek(){return c.jsxs("figure",{className:"tm-chart tm-supply","aria-label":"How the supply is divided",children:[c.jsx("svg",{viewBox:"0 0 1000 48",preserveAspectRatio:"none",role:"img","aria-label":xk,children:zs.map((e,n)=>c.jsx("rect",{x:zs.slice(0,n).reduce((s,r)=>s+r.share,0)*10,y:"0",width:e.share*10,height:"48",fill:Gg[n],stroke:"var(--paper)",strokeWidth:"2"},e.who))}),c.jsx("figcaption",{className:"tm-supply-legend",children:zs.map((e,n)=>c.jsxs("div",{children:[c.jsx("span",{className:"tm-key",style:{background:Gg[n]}}),c.jsx("span",{children:e.who}),c.jsxs("strong",{children:[e.share,"%"]})]},e.who))})]})}function Kg({width:e,height:n}){const f=e-44-12,p=n-12-28,m=g=>44+g/48*f,y=g=>12+p-g/1e9*p,b=[...Array.from({length:12},(g,S)=>S),11.999999,...Array.from({length:37},(g,S)=>S+12)],w=g=>b.map((S,T)=>`${T?"L":"M"}${m(S).toFixed(3)},${y(g(S/48*fu)).toFixed(3)}`).join(" ");return c.jsxs("svg",{viewBox:`0 0 ${e} ${n}`,role:"img","aria-label":Sk,children:[[0,250,500,750,1e3].map(g=>c.jsxs("g",{children:[c.jsx("line",{x1:44,x2:e-12,y1:y(g*1e6),y2:y(g*1e6),stroke:"var(--line)",strokeOpacity:".4"}),c.jsx("text",{x:36,y:y(g*1e6)+4,textAnchor:"end",children:Va(g)})]},g)),[0,12,24,36,48].map(g=>c.jsx("text",{x:m(g),y:n-6,textAnchor:g===48?"end":"middle",children:g},g)),c.jsx("path",{d:`${w(Oo)} L${m(48)},${y(0)} L${m(0)},${y(0)} Z`,fill:"var(--royal)",fillOpacity:".05"}),c.jsx("path",{d:w(Oo),fill:"none",stroke:"var(--royal)",strokeWidth:"3"}),[12,24,36,48].map(g=>c.jsx("circle",{cx:m(g),cy:y(Oo(g/48*fu)),r:"3.5",fill:"var(--royal)"},g))]})}function Ak(){return c.jsxs("figure",{className:"tm-chart tm-release",children:[c.jsx("figcaption",{children:"Total ITEM available"}),c.jsx("div",{className:"tm-unit",children:"Million ITEM"}),c.jsx("div",{className:"tm-plot-wide",children:c.jsx(Kg,{width:1e3,height:310})}),c.jsx("div",{className:"tm-plot-phone",children:c.jsx(Kg,{width:248,height:228})}),c.jsx("div",{className:"tm-x-label",children:"Months after launch"}),c.jsx("div",{className:"tm-series",children:c.jsxs("span",{children:[c.jsx("i",{className:"tm-line outside"}),Va(xp/1e6)," million at launch → ",Va(wp/1e9)," billion by year four"]})})]})}const Tk=In(["function totalSupply() view returns (uint256)","function released() view returns (uint256)","function remaining() view returns (uint256)","function totalStaked() view returns (uint256)","function vested() view returns (uint256)"]),Sh=e=>Object.values(e).every(n=>n!==null);async function kk(e,n=Ln){if(!Sh(e))return null;const s=[[e.ITEM,"totalSupply"],[e.BASK_USDG_GAUGE,"released"],[e.BASK_USDG_GAUGE,"remaining"],[e.BASK_USDG_GAUGE,"totalStaked"],[e.ITEM_ETH_GAUGE,"released"],[e.ITEM_ETH_GAUGE,"remaining"],[e.ITEM_ETH_GAUGE,"totalStaked"],[e.DEV_VESTING,"vested"],[e.DEV_VESTING,"released"],[e.ITEM_STAKING,"totalStaked"]];return(await n(s.map(([l,u])=>({address:l,abi:Tk,functionName:u})))).map(l=>{if(!l.ok||typeof l.value!="bigint")throw new Error("Live figures unreadable.");return l.value})}const jk=["ITEM supply","BASK/USDG gauge: released","remaining","LP staked","ITEM/ETH gauge: released","remaining","LP staked","Development vesting: vested","released","ITEM staking: ITEM staked"],Nk=["ITEM","ITEM staking","BASK/USDG gauge","ITEM/ETH gauge","Development vesting"];function Bk(e,n=!1){const[s,r=""]=Pa(e,18).split("."),l=r.slice(0,n?18:6).replace(/0+$/,"");return e>0n&&s==="0"&&!l?"<0.000001":BigInt(s).toLocaleString("en-US")+(l?"."+l:"")}function Rk({addresses:e=gk,reader:n=Ln}){const[s,r]=D.useState(null),[l,u]=D.useState(!1),[f,p]=D.useState(0);return D.useEffect(()=>{if(!Sh(e))return;let m=!0;return r(null),u(!1),kk(e,n).then(y=>{m&&r(y)}).catch(()=>{m&&u(!0)}),()=>{m=!1}},[e,n,f]),Sh(e)?c.jsxs("section",{className:"tm-live",children:[c.jsx("h3",{children:"Live figures"}),l?c.jsxs(c.Fragment,{children:[c.jsx("p",{children:"Live figures unreadable."}),c.jsx("button",{type:"button",onClick:()=>p(m=>m+1),children:"Retry"})]}):s&&c.jsxs(c.Fragment,{children:[c.jsx("dl",{children:s.map((m,y)=>c.jsxs("div",{children:[c.jsx("dt",{children:jk[y]}),c.jsx("dd",{children:Bk(m,y===3||y===6)})]},y))}),c.jsx("h3",{children:"Addresses"}),c.jsx("div",{className:"tm-addresses",children:Object.values(e).map((m,y)=>c.jsxs("div",{children:[c.jsxs("span",{children:[Nk[y]," "]}),c.jsx("a",{href:`https://robin.etherscan.io/address/${m}`,target:"_blank",rel:"noreferrer",children:m})]},m))})]})]}):null}function B0({index:e}){const n=Wc[e],s=n.indexOf(".")+1;return c.jsxs("p",{children:[c.jsx("strong",{children:n.slice(0,s)}),n.slice(s)]})}function Mk(){return c.jsxs("section",{id:"tokenomics",className:"panel tm-module",children:[c.jsx("h2",{children:"Tokenomics"}),c.jsx("p",{children:Wc[0]}),c.jsx("p",{children:Wc[1]}),c.jsx(Ek,{}),c.jsx(Pg,{headers:yk,rows:vk,kind:"tm-allocations"}),c.jsx(B0,{index:2}),c.jsx(Ak,{}),c.jsx(Pg,{headers:bk,rows:wk,kind:"tm-releases"}),c.jsx("p",{children:Wc[3]}),c.jsx(B0,{index:4}),c.jsx(B0,{index:5}),c.jsx(Rk,{})]})}const dl=10n**18n,Ck=10n**15n,Eh=200n;function Xv(e,n=!0){return n?e/Eh+(e%Eh===0n?0n:1n):0n}function Qa(e,n,s,r){const l=s+r;return e*n/10n**BigInt(l-18)}function Qv(e,n,s,r=!0){if(n!==0n&&s===0n)throw new Error("Zero NAV");const l=n===0n?e:e*n/s,u=Xv(l,r),f=n===0n?Ck:0n;if(l-u<=f)throw new Error("Zero shares");return{gross:l,fee:u,locked:f,received:l-u-f,supplyAfter:n+l,navAfter:s+e}}function Jv(e,n,s=!0){if(n===0n||e>n)throw new Error("Invalid supply");const r=Xv(e,s),l=e-r;return{fee:r,burned:l,supplyAfter:n-l}}function Wv(e,n,s,r,l){const u=n===null?e:n>s?n-s:0n;return(e<u?e:u)*r/l}function xe(e,n=18){const s=10n**BigInt(n),r=e/s,l=(e%s).toString().padStart(n,"0").replace(/0+$/,"");return r.toLocaleString("en-US")+(l?"."+l:"")}const Ht=e=>e*dl,fr={quantity:Ht(10n),price:Ht(100n)},e2=Qa(fr.quantity,fr.price,18,18),ca=Qv(e2,0n,0n),rn={quantity:Ht(5n),price:Ht(200n),nav:Ht(20000n),supply:Ht(10000n)},Ah=Qa(rn.quantity,rn.price,18,18),Ns=Qv(Ah,rn.supply,rn.nav),ln={submitted:Ht(1000n),supply:Ht(10000n),stocks:[{name:"Stock A",quantity:Ht(100n),price:Ht(80n)},{name:"Stock B",quantity:Ht(60n),price:Ht(200n)}]},Rs=Jv(ln.submitted,ln.supply),Ro=ln.stocks.map(e=>Wv(e.quantity,e.quantity,0n,Rs.burned,ln.supply)),R0=xe(Rs.burned*100n*dl/ln.supply)+"%",Ok=ln.stocks.reduce((e,n)=>e+Qa(n.quantity,n.price,18,18),0n),zk=ln.stocks.reduce((e,n,s)=>e+Qa(Ro[s],n.price,18,18),0n),jo=xe(100n*dl/Eh)+"%",Lt={holdings:10n,risen:2n,quantity:Ht(100n),price:Ht(100n),risenPrice:Ht(110n),supply:Ht(100000n),bought:Ht(1000n)};Qa(Lt.quantity,Lt.price,18,18)*Lt.holdings;Qa(Lt.quantity,Lt.price,18,18)*(Lt.holdings-Lt.risen)+Qa(Lt.quantity,Lt.risenPrice,18,18)*Lt.risen;const _k=Jv(Lt.bought,Lt.supply),t2=Wv(Lt.quantity,Lt.quantity,0n,_k.burned,Lt.supply);Qa(t2,Lt.price,18,18);Qa(t2,Lt.risenPrice,18,18);const $k="BASK represents a share of the Stock Tokens accounted for by the vault. Deposits create new BASK. Redemptions burn BASK and release a proportional amount of each stock. Its supply grows and shrinks with those actions; there is no fixed supply.",Dk=[{title:"What one BASK represents",blocks:[{kind:"p",text:"The vault's net asset value, or NAV, is the sum of each stock's managed quantity multiplied by its feed price. Dividing that value by the total BASK supply gives the feed-based backing per BASK. The total supply includes fee BASK and the permanently locked first-deposit amount. BASK's trading price can be different."},{kind:"formula",text:"NAV = sum of managed stock quantities × their feed prices"},{kind:"formula",text:"Backing per BASK = NAV ÷ BASK supply"},{kind:"p",text:"Managed quantities are the vault's accounted holdings. Stock already owed to earlier redeemers is kept separate. Direct donations are not counted until a Resync updates the accounting."}],examples:[]},{title:"Minting BASK",blocks:[{kind:"p",text:"You can deposit one or more eligible Stock Tokens. The vault values each amount using its feed price, then adds those values together. Your deposit receives the same backing per BASK as the existing supply, before the fee."},{kind:"formula",text:"Deposit value = sum of deposited quantities × their feed prices"},{kind:"formula",text:"Gross BASK = deposit value × BASK supply ÷ NAV before the deposit"},{kind:"formula",text:"BASK you receive = gross BASK − deposit fee"},{kind:"p",text:`The deposit fee is ${jo} of gross BASK. Fee BASK is minted to the fee recipient alongside the BASK minted to you. The Stock Tokens stay in the vault.`}],examples:[{title:"Example 1: the first deposit",blocks:[{kind:"p",text:`When the supply is zero, the first deposit creates 1 gross BASK per $1 of deposit value. It also locks ${xe(ca.locked)} BASK forever. That lock is taken only on the first deposit. Here, you deposit ${xe(fr.quantity)+" Stock A"} at a feed price of ${"$"+xe(fr.price)} each.`},{kind:"table",headers:["Step","Amount"],rows:[[`Deposit value: ${xe(fr.quantity)+" Stock A"} × ${"$"+xe(fr.price)}`,`$${xe(e2)}`],["Gross BASK created",`${xe(ca.gross)} BASK`],[`Deposit fee: ${xe(ca.gross)} × ${jo}`,`${xe(ca.fee)+" BASK"}`],["Permanently locked",`${xe(ca.locked)} BASK`],["You receive",`${xe(ca.received)} BASK`]]},{kind:"p",text:`The total supply is ${xe(ca.supplyAfter)} BASK: your ${xe(ca.received)}, ${"the "+xe(ca.fee)+" paid"} as the fee and the ${xe(ca.locked)} permanently locked.`}]},{title:"Example 2: adding to an existing basket",blocks:[{kind:"p",text:`Suppose the vault has $${xe(rn.nav)} of NAV and a total supply of ${xe(rn.supply)} BASK. Each BASK has ${"$"+xe(rn.nav*dl/rn.supply)} of feed-based backing. You deposit ${xe(rn.quantity)+" eligible"} Stock C at a feed price of ${"$"+xe(rn.price)} each, worth $${xe(Ah)} in total.`},{kind:"table",headers:["Step","Amount"],rows:[[`Gross BASK: $${xe(Ah)} × ${xe(rn.supply)} ÷ $${xe(rn.nav)}`,`${xe(Ns.gross)+" BASK"}`],[`Deposit fee: ${xe(Ns.gross)+" ×"} ${jo}`,`${xe(Ns.fee)} BASK`],["You receive",`${xe(Ns.received)} BASK`],["NAV after the deposit",`$${xe(Ns.navAfter)}`],["BASK supply after the deposit",`${xe(Ns.supplyAfter)} BASK`]]},{kind:"p",text:`At unchanged feed prices, $${xe(Ns.navAfter)} ÷ ${xe(Ns.supplyAfter)} is still ${"$"+xe(rn.nav*dl/rn.supply)} of backing per BASK. The fee changes how the new BASK is divided between you and the fee recipient.`}]}]},{title:"Redeeming BASK",blocks:[{kind:"p",text:`You submit BASK and receive a share of each stock in the vault. The ${jo} redemption fee is transferred in BASK to the fee recipient. The remaining BASK is burned.`},{kind:"formula",text:"BASK burned = BASK submitted − redemption fee"},{kind:"formula",text:"Your fraction = BASK burned ÷ BASK supply before the redemption"},{kind:"formula",text:"Each stock amount = that stock's redeemable quantity × your fraction"},{kind:"p",text:"For a readable balance, the redeemable quantity is the smaller of its managed quantity and the balance available after earlier claims are reserved. If the balance cannot be read, the calculation uses the managed quantity and an unsuccessful payment is queued. Redemption calculates quantities without using price feeds."}],examples:[{title:"Example 3: receiving both stocks",blocks:[{kind:"p",text:`Consider a separate basket with a total supply of ${xe(ln.supply)} BASK and the two stocks below. You redeem ${xe(ln.submitted)} BASK: ${xe(Rs.fee)+" BASK"} is the fee, ${xe(Rs.burned)} BASK is burned, and your fraction is ${xe(Rs.burned)} ÷ ${xe(ln.supply)} = ${R0}.`},{kind:"table",headers:["Stock","Redeemable quantity","Your fraction","You receive"],rows:[["Stock A",`${xe(ln.stocks[0].quantity)}`,`${R0}`,`${xe(Ro[0])+" Stock A"}`],["Stock B",`${xe(ln.stocks[1].quantity)}`,`${R0}`,`${xe(Ro[1])+" Stock B"}`]]},{kind:"p",text:`For illustration, if Stock A's feed price is ${"$"+xe(ln.stocks[0].price)} and Stock B's is ${"$"+xe(ln.stocks[1].price)}, the basket's NAV is $${xe(Ok)} and these stock amounts have a combined feed value of $${xe(zk)}. Those prices explain the value; they are not inputs to the redemption calculation. The BASK supply becomes ${xe(Rs.supplyAfter)} because only the ${xe(Rs.burned)} BASK is burned; the ${xe(Rs.fee)+" fee"} BASK remains in circulation.`}]},{title:"Example 4: one stock is queued",blocks:[{kind:"p",text:"Use the same redemption, but suppose Stock B cannot be transferred and the basket is within the direct-payout limit. Stock A can still be paid. The receiver's claim to Stock B is recorded separately."},{kind:"table",headers:["Stock","Paid now","Owed to the receiver"],rows:[["Stock A",`${xe(Ro[0])+" Stock A"}`,"0"],["Stock B","0",`${xe(Ro[1])+" Stock B"}`]]},{kind:"p",text:"Only the receiver wallet can claim the queued stock. Choose a receiver you control. Claiming does not burn more BASK or charge another redemption fee; gas still applies. Payment depends on the token becoming transferable and the vault having an available balance. If the basket exceeds the direct-payout limit, all stock amounts are queued for claiming."}]}]},{title:"The arbitrage flywheel",blocks:[{kind:"p",text:"As the prices of the stocks inside BASK move, BASK’s market price can drift away from the value of the stocks it represents. That gap creates an opportunity for arbitrageurs:"},{kind:"p",text:"• BASK trades above its backing value: deposit stocks to mint BASK, then sell that BASK on the market."},{kind:"p",text:"• BASK trades below its backing value: buy BASK on the market, then redeem it for its share of the underlying stocks."},{kind:"p",text:"When the difference covers fees and trading costs, arbitrageurs can profit from closing the gap. Their trades help bring BASK’s market price closer to its backing value. Each mint or redemption pays a 0.5% fee in BASK to ITEM staking."},{kind:"formula",text:"Stock prices move → price gaps open → arbitrageurs mint or redeem → BASK fees flow to ITEM stakers."}],examples:[]},{title:"How TVL and liquidity support the flywheel",blocks:[{kind:"p",text:"TVL is the total value of the stocks held by the vault. As TVL and basket diversity grow, so does the potential for arbitrage: a larger basket provides more backing to trade against, while a wider mix of stocks creates more individual price movements that can open up opportunities."},{kind:"p",text:"Liquidity in the BASK/USDG pool helps turn those opportunities into trades. A deeper pool lets arbitrageurs buy and sell larger amounts of BASK with less price impact, making more price gaps practical to capture."},{kind:"p",text:"Together, a larger and more diverse basket and deeper BASK/USDG liquidity can create more arbitrage opportunities and support larger trades. Each opportunity captured through minting or redemption generates BASK fees for ITEM stakers."},{kind:"formula",text:"More backing + more stock diversity + deeper liquidity → more room for arbitrage → more minting and redemption activity → more BASK fees for ITEM stakers."}],examples:[{title:"A simple example: ten stocks in the basket",blocks:[{kind:"p",text:"The basket holds 10 stocks worth $10,000 each, for $100,000 total. With 100,000 BASK outstanding, each BASK represents $1 of backing."},{kind:"p",text:"Two stocks rise 10%. Those holdings are now worth $11,000 each, while the other eight remain worth $10,000 each."},{kind:"p",text:"The basket is now worth $102,000, or $1.02 per BASK. But BASK is still available on the market for $1."},{kind:"p",text:"An arbitrageur:"},{kind:"p",text:"1. Buys 1,000 BASK for $1,000."},{kind:"p",text:"2. Redeems it. The 0.5% fee sends 5 BASK to ITEM staking, and the remaining 995 BASK is burned."},{kind:"p",text:"3. Receives 0.995% of each stock holding:"},{kind:"table",headers:["Holding","Received"],rows:[["Eight unchanged stocks: $99.50 each","$796"],["Two stocks that rose: $109.45 each","$218.90"],["Total stock value received","$1,014.90"]]},{kind:"p",text:"4. Sells those stocks at the illustrated prices, capturing $14.90 before other trading costs and gas."},{kind:"p",text:"The arbitrageur captures the price difference, buying pressure helps move BASK’s market price toward its backing value, and ITEM stakers receive 5 BASK in fees."}]}]},{title:"Reading a real preview",blocks:[{kind:"p",text:`These are independent worked examples, with the ${jo} fee enabled and gas excluded. They are not live quotes. The contract charges the fee when a fee recipient is configured; otherwise it is zero.`},{kind:"p",text:"BASK has 18 decimals. The contract rounds the BASK fee up to the smallest BASK unit, gross minting down to the smallest BASK unit, and each redemption amount down to that stock's smallest unit. The examples use amounts that divide exactly."},{kind:"p",text:"Deposits must pass the vault's price, balance, availability and size-limit checks. A new deposit is rejected if the vault's NAV falls to zero. Your transaction also carries an expiry and minimum amounts: a deposit reverts if it would mint less BASK than your minimum, and a redemption reverts if a stock allocation falls below its supplied minimum. A queued allocation can still satisfy a redemption minimum; the minimum does not guarantee immediate delivery."},{kind:"p",text:"Use the Deposit or Redeem preview for the amounts calculated from the current vault state."}],examples:[]}];function n2({blocks:e}){return c.jsx(c.Fragment,{children:e.map((n,s)=>n.kind==="table"?c.jsxs("table",{className:"bg-table",children:[c.jsx("thead",{children:c.jsx("tr",{children:n.headers.map(r=>c.jsx("th",{scope:"col",children:r},r))})}),c.jsx("tbody",{children:n.rows.map((r,l)=>c.jsx("tr",{children:r.map((u,f)=>f===0?c.jsx("th",{scope:"row",children:u},f):c.jsx("td",{"data-label":n.headers[f],children:u},f))},l))})]},s):n.kind==="formula"?c.jsx("div",{className:"bg-formula",children:n.text},s):c.jsx("p",{children:n.text},s))})}function Uk({example:e}){return c.jsxs("article",{className:"bg-example",children:[c.jsx("h4",{children:e.title}),c.jsx(n2,{blocks:e.blocks})]})}function qk(){return c.jsxs("section",{className:"panel bg-module","aria-labelledby":"bask-guide-heading",children:[c.jsx("h2",{id:"bask-guide-heading",children:"BASK"}),c.jsx("p",{className:"bg-intro",children:$k}),Dk.map(e=>c.jsxs("section",{className:"bg-section",children:[c.jsx("h3",{children:e.title}),c.jsx(n2,{blocks:e.blocks}),e.examples.length>0&&c.jsx("div",{className:e.title==="Minting BASK"?"bg-examples bg-deposits":"bg-examples",children:e.examples.map(n=>c.jsx(Uk,{example:n},n.title))})]},e.title))]})}const a2=["ITEM token","ITEM staking","BASK/USDG gauge","ITEM/ETH gauge","Development vesting"];function Th({item:e=!1}){if(!An(Qe))return null;const n=e?`https://app.uniswap.org/positions/add/new?chain=robinhood&protocolVersion=v2¤cyA=NATIVE¤cyB=${Qe.ITEM}`:`https://app.uniswap.org/positions/add/new?chain=robinhood&protocolVersion=v2¤cyA=${Ge.BASK}¤cyB=${Ge.USDG}`;return c.jsx("a",{href:n,target:"_blank",rel:"noreferrer",children:"Add liquidity on Uniswap"})}function Lk(){return An(Qe)?c.jsxs("section",{className:"panel find-item",children:[c.jsx("h2",{children:"Find ITEM"}),gp.map((e,n)=>c.jsxs("p",{children:[a2[n],": ",c.jsx(Hn,{value:Qe[e]})]},e)),c.jsxs("p",{children:["BASK/USDG pool: ",c.jsx(Hn,{value:Ge.BASK_USDG_PAIR}),c.jsx("br",{}),c.jsx(Th,{})]}),c.jsxs("p",{children:["ITEM/ETH pool: ",c.jsx(Hn,{value:Qe.ITEM_WETH_PAIR}),c.jsx("br",{}),c.jsx(Th,{item:!0})]}),c.jsx("p",{children:"ITEM first trades in IMD's launch pool. Liquidity for ITEM rewards goes in the ITEM/ETH Uniswap v2 pool above."}),c.jsx("p",{children:c.jsx("a",{href:"#transparency",children:"Contracts and source on the Transparency page"})})]}):null}function Hk({onAddToWallet:e}){const[n,s]=D.useState(0),r=D.useRef([]);function l(u){const f=u.key==="Home"?0:u.key==="End"?2:u.key==="ArrowRight"?(n+1)%3:u.key==="ArrowLeft"?(n+2)%3:void 0;f!==void 0&&(u.preventDefault(),s(f),r.current[f]?.focus())}return c.jsxs(c.Fragment,{children:[c.jsx(Us,{eyebrow:"Know your basket",title:"Docs",children:"How Basket works, what it costs and what to watch for."}),c.jsx("div",{className:"docs-tabs",role:"tablist","aria-label":"Docs",children:["Docs","Tokenomics","BASK"].map((u,f)=>c.jsx("button",{ref:p=>{r.current[f]=p},type:"button",role:"tab",id:"docs-tab-"+f,"aria-controls":"docs-panel-"+f,"aria-selected":n===f,tabIndex:n===f?0:-1,onClick:()=>s(f),onKeyDown:l,children:u},u))}),c.jsx("div",{id:"docs-panel-0",role:"tabpanel","aria-labelledby":"docs-tab-0",hidden:n!==0,children:c.jsxs("div",{className:"docs-grid",children:[c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"What Basket is"}),c.jsx("p",{children:"One token, BASK, backed by a basket of Stock Tokens held in a vault on Robinhood Chain. Deposit one or more listed Stock Tokens at once and receive BASK. Redeeming BASK pays a share of every stock in the vault."}),c.jsx("p",{children:"The basket has no set weights. Any listed stock can be deposited, in any amount, as long as the vault’s checks pass and the vault stays under its size limit. So the mix is whatever holders have put in, and it changes with every deposit and redemption."}),c.jsx("p",{children:"BASK’s backing moves with every stock in the vault, so its market price can drift from the value behind it. Traders close that gap: they deposit stocks and sell BASK when it trades high, or buy BASK and redeem when it trades low. That keeps BASK near its backing."}),c.jsx("p",{children:"The 0.5% fee on each deposit and redemption goes to ITEM staking, so more trading through the vault means more fees for ITEM."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Deposits"}),c.jsx("p",{children:"Deposits open Sunday 8 pm to Friday 8 pm New York time, closed on US market holidays, redemptions always open"}),c.jsx("p",{children:"Each stock’s price comes from its on-chain feed. Deposits also need at least one listed stock price updated within the last hour, so they close when prices stop until one updates."}),c.jsx("p",{children:"Every stock deposited or held must pass a pool check: a 30-minute pool average within 3% of the feed and enough liquidity. With no pool, the feed must be under 26 hours old. These are the initial settings; the owner can propose changes."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Redemption"}),c.jsx("p",{children:"Always open, never paused. Redeeming BASK pays a share of every stock, retired ones included."}),c.jsxs("p",{children:["Anything not sent at once is kept as owed to the receiver. Only that wallet can claim it on the ",c.jsx("a",{href:"#redeem",children:"Redeem page"}),". Choose a receiver you control."]})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"FAQ"}),c.jsx("h3",{children:"What if a stock can’t be sent when I redeem?"}),c.jsx("p",{children:"Rarely, a stock can’t be sent at that moment (for example its issuer has paused transfers). The vault then keeps it for the receiver, who collects it later with Claim on the Redeem page. Only the receiver wallet can claim, so redeem to a wallet you control, not an exchange deposit address."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"NAV"}),c.jsx("p",{children:"Each unretired stock’s managed quantity times its feed price, added up using that token’s and feed’s decimals. Retired stocks count 0. The vault accounts for accepted deposits and payments; direct donations do not increase NAV until a Resync executes."}),c.jsx("p",{children:"NAV is indicative unless every held stock has price reason OK. It is a feed-based value and may lag the market."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Numbers"}),c.jsx("p",{children:"Fees are 0.5% in and 0.5% out, only once the owner sets a fee recipient through a proposal. Until then there are no fees. The first deposit locks 0.001 BASK forever."}),c.jsx("p",{children:"The size limit starts at $1,000,000, raisable to $10 billion. The initial configuration supports up to 250 stocks. Asset capacity is a setting constrained by the contract’s gas limits."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Safety"}),c.jsx("p",{children:"Owner changes wait 2 days. Only the owner executes them, within 7 days after they become ready. The guardian can cancel them, except its own replacement. Initial listings happen before genesis is finalized."}),c.jsx("p",{children:"Pause, close and a lower size limit act at once. Only the owner can unpause deposits. Ownership transfers in two steps."}),c.jsx("p",{children:"A retired stock counts 0 for new deposits but is still paid out. Retirement is permanent. A retired stock can be removed only with zero managed holdings and zero owed."}),c.jsx("p",{children:"Pause deposits before proposing Resync; unpause after it executes. Stock splits, donations and other balance increases can leave NAV understated until Resync."}),c.jsx("p",{children:"Anyone can flag a shortfall; it can be recognised 7 days later. No one can move the stocks outside the vault’s deposit and redemption rules, mint BASK outside deposits, change the fee rate or upgrade the vault."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"If a stock goes missing"}),c.jsx("p",{children:"The vault keeps its own count of each stock it holds. If the real balance ever falls below that count, for example because the issuer burned or took back tokens, that stock is short. While an unretired stock is short, deposits are paused. Redemptions keep working and pay from the real balance."}),c.jsxs("p",{children:["Anyone can correct the count on the"," ",c.jsx("a",{href:"#losses",children:"Losses page"}),", in two steps. Flag shortfall records the gap and starts a 7-day wait. After the wait, Recognise loss lowers the count by the recorded gap or the current gap, whichever is smaller, and deposits can open again. If the tokens come back during the wait, less or nothing is written off. If the gap grows, flagging again records the larger gap and starts a new 7-day wait."]}),c.jsx("p",{children:"This only corrects the records: the missing tokens were already gone, and redemptions were already paying from what is really there."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Risks"}),c.jsx("p",{children:"Feeds lag the market. The issuer can pause, block, burn or change Stock Tokens. One stock may be most of the vault. Thin pools can be pushed to stop deposits. Smart contracts can fail. Not for US persons."}),c.jsx("p",{children:"Redemption minimums follow the current stock order. Removing an empty retired stock can change that order before execution. Failed transfers remain owed; a permanently blocked stock may never become transferable."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"ITEM"}),c.jsx("p",{children:"ITEM is Basket's reward token. It has two jobs: it pays the people who provide liquidity for BASK and ITEM, and staking it earns the vault's fees. Its supply is fixed at 1,000,000,000 and its reward schedules are written into contracts that have no owner, no pause and no upgrade. Nobody can change the amounts, speed them up or stop them."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Earn ITEM by providing liquidity"}),c.jsxs("p",{children:["Add liquidity to one of the two Uniswap v2 pools, BASK/USDG or ITEM/ETH, and stake the pool token you receive on ",c.jsx("a",{href:"#earn",children:"the Earn page"}),". From that moment ITEM accrues to you every second, in proportion to your share of everything staked in that pool's gauge."]}),c.jsx("p",{children:"There is no lock and no minimum time. Stake more, withdraw some or all, and claim whenever you like, in any order. Claiming pays everything you have earned so far and resets nothing. Unclaimed ITEM stays yours. Withdrawing moves only your pool token, so it always works, even if a claim could not go through."}),c.jsx("p",{children:"The schedule is fixed and front loaded. Each gauge releases its allocation over four years, fastest at the start and slowing in a straight line to zero at the end. The clock only runs while at least one person is staked, so an empty gauge releases nothing and loses nothing."}),c.jsx("div",{className:"item-table",children:c.jsxs("table",{className:"item-gauges",children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Gauge"}),c.jsx("th",{children:"Total ITEM"}),c.jsx("th",{children:"Year 1"}),c.jsx("th",{children:"Year 2"}),c.jsx("th",{children:"Year 3"}),c.jsx("th",{children:"Year 4"})]})}),c.jsxs("tbody",{children:[c.jsxs("tr",{children:[c.jsx("th",{children:"BASK/USDG"}),c.jsx("td",{children:"490,000,000"}),c.jsx("td",{children:"43.75%"}),c.jsx("td",{children:"31.25%"}),c.jsx("td",{children:"18.75%"}),c.jsx("td",{children:"6.25%"})]}),c.jsxs("tr",{children:[c.jsx("th",{children:"ITEM/ETH"}),c.jsx("td",{children:"210,000,000"}),c.jsx("td",{children:"43.75%"}),c.jsx("td",{children:"31.25%"}),c.jsx("td",{children:"18.75%"}),c.jsx("td",{children:"6.25%"})]})]})]})}),c.jsx("p",{children:"Rewards are shared among everyone staked at the time. Fewer stakers means a larger share each; more stakers means a smaller one."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Earn BASK by staking ITEM"}),c.jsxs("p",{children:["The 0.5% fee on each deposit and redemption goes to ITEM staking, so more trading through the vault means more fees for ITEM. Stake ITEM on ",c.jsx("a",{href:"#earn",children:"the Earn page"})," and you receive those fees in BASK, in proportion to your stake."]}),c.jsx("p",{children:"Fees are not paid out the moment they arrive. Each batch is streamed to stakers evenly over 7 days, second by second, and you earn only for the time you are staked. This stops anyone from staking just before a large fee lands and leaving with it. While one stream is running, new fees wait and start their own 7-day stream when it ends."}),c.jsx("p",{children:"Stake and unstake at any time, with no lock or cooldown. Claim BASK pays the BASK you have earned so far. Unclaimed amounts stay owed to you. A reward token that cannot be transferred can never block staking or unstaking; it can only delay its own claim. BASK you claim can be redeemed for the Stock Tokens in the vault or sold in the BASK/USDG pool."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Rewards FAQ"}),c.jsx("h3",{children:"Can I claim whenever I want?"}),c.jsx("p",{children:"Yes. Every claim pays what has accrued to that second."}),c.jsx("h3",{children:"Is anything locked?"}),c.jsx("p",{children:"No. Staked pool tokens and staked ITEM can be withdrawn at any time."}),c.jsx("h3",{children:"What if nobody uses the vault?"}),c.jsx("p",{children:"Then no fees are collected and ITEM stakers earn nothing for that time. Liquidity rewards keep running as long as someone is staked. Nothing is lost either way."}),c.jsx("h3",{children:"Do rewards expire?"}),c.jsx("p",{children:"No. Unclaimed rewards wait for you."}),c.jsx("h3",{children:"Can the team change the rewards?"}),c.jsx("p",{children:"No. The allocations, schedules and the 7-day stream are fixed in the contracts."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"ITEM risks"}),c.jsx("p",{children:"Rewards depend on use. Liquidity rewards fall every day by design, and fee rewards are zero when nobody deposits or redeems. Providing liquidity carries the usual pool risk: if the two tokens move apart in price, you can end up with less value than holding them. ITEM's price can fall. The contracts cannot be changed or paused, which also means a defect could not be fixed."})]}),n===0&&c.jsx(Lk,{}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Find Basket"}),c.jsx("p",{children:"BaskVault on Robinhood Chain:"}),c.jsx(Hn,{value:It}),c.jsx("p",{children:c.jsx("a",{href:"https://x.com/Basket_IMD",target:"_blank",rel:"noreferrer",children:"Basket Protocol on X"})}),c.jsx("p",{children:c.jsx("a",{href:"https://t.me/basket_protocol",target:"_blank",rel:"noreferrer",children:"Basket Protocol on Telegram"})}),c.jsx("p",{children:c.jsx("a",{href:"https://medium.com/@protocolbasket",target:"_blank",rel:"noreferrer",children:"Basket Protocol on Medium"})}),c.jsxs("p",{children:["Contact: ",c.jsx("a",{href:"mailto:protocolbasket@gmail.com",children:"protocolbasket@gmail.com"})]}),c.jsx("p",{children:c.jsx("button",{onClick:e,children:"Add BASK to MetaMask"})}),c.jsx("p",{children:"Asks your wallet to list BASK with its logo. No transaction."})]})]})}),c.jsx("div",{id:"docs-panel-1",role:"tabpanel","aria-labelledby":"docs-tab-1",hidden:n!==1,children:n===1&&c.jsx(Mk,{})}),c.jsx("div",{id:"docs-panel-2",role:"tabpanel","aria-labelledby":"docs-tab-2",hidden:n!==2,children:n===2&&c.jsx(qk,{})})]})}function Ik({snapshot:e,wallet:n}){const s=e.assets.filter(p=>p.short&&p.balanceReadable),[r,l]=D.useState({}),[u,f]=D.useState(!1);return D.useEffect(()=>{let p=!0;return l({}),f(!0),Ln(s.flatMap(m=>[cn(m.token,"balanceOf",[It]),Ne("deficits",[m.token])])).then(m=>{if(!p)return;const y={};s.forEach((b,w)=>{const g=m[w*2],S=m[w*2+1],T=g.ok&&b.totalOwed!==void 0?g.value>b.totalOwed?g.value-b.totalOwed:0n:void 0;y[b.token]={shortfall:T!==void 0&&b.managed!==void 0?b.managed>T?b.managed-T:0n:void 0,amount:S.ok?S.value[0]:void 0,flaggedAt:S.ok?S.value[1]:void 0}}),l(y),f(!1)}),()=>{p=!1}},[e.loadedAt]),c.jsxs(c.Fragment,{children:[c.jsx(Us,{eyebrow:"Accounting health",title:"Losses",children:"Anyone can flag a shortfall and recognise a recorded loss after seven days. Retired stocks are included."}),c.jsx(br,{children:"Recognition reduces managed funds by the smaller of the recorded and current shortfall. An increased flag starts a new seven-day wait."}),!s.length&&c.jsx(vp,{title:e.loading?"Reading...":e.complete?"No readable stock shortfalls":"Stock shortfalls are unreadable",children:"Shortfalls appear here when a readable stock balance is below the vault’s managed amount after reserving outstanding claims."}),c.jsx("div",{className:"two-col",children:s.map(p=>{const m=r[p.token],y=m?.flaggedAt!==void 0&&m?.amount!==void 0&&m.amount>0n?m.flaggedAt+7n*86400n:void 0;return c.jsxs("article",{className:"panel",children:[c.jsxs("div",{className:"stock-top",children:[c.jsx("h2",{children:c.jsx("bdi",{children:p.symbol})}),c.jsx("span",{className:"badge",children:p.retired?"Retired · short":"Short"})]}),c.jsxs("dl",{children:[c.jsxs("div",{children:[c.jsx("dt",{children:"Current shortfall"}),c.jsx("dd",{children:u?"Reading...":pt(m?.shortfall,p.tokenDecimals)})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Recorded shortfall"}),c.jsx("dd",{children:u?"Reading...":pt(m?.amount,p.tokenDecimals)})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Recognition available"}),c.jsx("dd",{children:u?"Reading...":m?.amount===0n?"Not flagged; seven days after flagging":ui(y)})]})]}),c.jsx(ul,{role:"anyone",snapshot:e}),c.jsxs("div",{className:"button-row",children:[c.jsx(Xa,{wallet:n,snapshot:e,label:"Flag shortfall",scope:`Loss flag: ${p.symbol} · ${p.token}`,getSpec:()=>Ne("flagDeficit",[p.token])}),c.jsx(Xa,{wallet:n,snapshot:e,label:"Recognise loss",scope:`Loss recognition: ${p.symbol} · ${p.token}`,disabled:y===void 0||BigInt(Math.floor(Date.now()/1e3))<y,disabledReason:u?"Reading...":y===void 0?"No readable flag yet. Flag the shortfall first, or retry vault if unreadable.":`Wait until ${ui(y)} to recognise this loss.`,getSpec:()=>Ne("recognizeLoss",[p.token])})]})]},p.token)})}),Object.keys(n.progress).filter(p=>p.startsWith("Loss ")).map(p=>c.jsx(ea,{wallet:n,scope:p},p)),e.assets.filter(p=>!p.balanceReadable).map(p=>c.jsxs("p",{className:"error",children:[c.jsx("bdi",{children:p.symbol}),": shortfall unreadable. Refresh to retry."]},p.token))]})}function hu(e,n=BigInt(Math.floor(Date.now()/1e3))){return typeof e=="bigint"&&e>0n&&e<=n&&n-e<=26n*60n*60n}function Gk(e,n,s,r,l,u,f,p){if(!Array.isArray(e)||typeof e[0]!="bigint"||typeof e[1]!="bigint"||e[0]<=0n||e[1]<=0n||typeof n!="string"||!Array.isArray(u)||u.length!==5||!u.every(g=>typeof g=="bigint")||u[1]<=0n||!hu(u[3],p)||u[4]<u[0]||typeof f!="number"||!Number.isInteger(f)||f<0||f>255)return;const m=n.toLowerCase()===s.toLowerCase();if(!m&&n.toLowerCase()!==r.toLowerCase())return;const y=e[m?0:1],w=e[m?1:0]*u[1]*10n**36n/(y*10n**BigInt(l+f));return w>0n?w:void 0}function Pk(e,n=BigInt(Math.floor(Date.now()/1e3))){if(!e||e.loading||!e.loadedAt||!e.complete||n*1000n-BigInt(e.loadedAt)>26n*60n*60n*1000n)return;const s=e.globals.totalSupply;if(typeof s!="bigint"||s<=0n||e.assets.some(l=>l.managed!==0n&&(l.answer===void 0||l.answer<=0n||!hu(l.updatedAt,n))))return;const{nav:r}=Du(e.assets,e.complete);return r!==void 0&&r>=0n?r*10n**18n/s:void 0}function M0(e,n){if(e===void 0||e<0n)return"—";const s=10n**BigInt(18-n);if(e>0n&&e<s)return n===2?"<$0.01":"<$0.000001";const r=(e+s/2n)/s,l=10n**BigInt(n);return"$"+(r/l).toLocaleString("en-US")+"."+(r%l).toString().padStart(n,"0")}function qa(e,n=18,s=!1){const[r,l=""]=Pa(e,n).split("."),u=l.slice(0,s?n:6).replace(/0+$/,"");return e>0n&&BigInt(r)===0n&&!u?"<0.000001":BigInt(r).toLocaleString("en-US")+(u?"."+u:"")}function Yc(e){if(!/^(?:0|[1-9]\d*)(?:\.\d{1,18})?$/.test(e))return;const n=pv(e,18);return n>0n&&n<2n**256n?n:void 0}function Kk(e,n){if(!n||!e)return"0%";const s=e*100n*10n**18n/n;return(s===0n?"<0.000001":qa(s))+"%"}function Vk(e,n,s,r){if(n<=0n||s<=0n||r<=0n)throw new ce("Pool not seeded yet.");if(e<=0n||e>=2n**256n)throw new ce("Enter an amount.");const l=e*s/n,u=e*995n/1000n,f=l*995n/1000n;if(l<=0n||l>=2n**256n||u<=0n||f<=0n)throw new ce("Enter an amount.");const p=e*r/n,m=l*r/s;return{matched:l,minimumA:u,minimumB:f,poolTokens:p<m?p:m}}function C0(e,n){if(n<=0n||e===0n)return"0";const s=e/n;return s===0n&&e>0n?"<0.000001":qa(s)}function Fk(e,n,s){if(n===void 0||s===void 0||s<=0n||n<0n||e<0n)return"Unavailable";const r=e*n,l=r/(s*10n**16n);return r>0n&&l===0n?"<$0.01":"$"+(l/100n).toLocaleString("en-US")+"."+(l%100n).toString().padStart(2,"0")}async function s2(e,n,s=Qe,r=Ln,l=u=>nt.getBalance({address:u})){if(!An(s))return null;const u=[],f=(b,w,g,S,T=[])=>u.push([b,{address:w,abi:g,functionName:S,args:T}]);for(const[b,w,g]of[["bask",s.BASK_USDG_GAUGE,Ge.BASK_USDG_PAIR],["eth",s.ITEM_ETH_GAUGE,s.ITEM_WETH_PAIR]]){for(const S of["started","pair","totalStaked","released","remaining","rate"])f(b+"."+S,w,Bs,S);if(n){for(const S of["staked","earned"])f(b+"."+S,w,Bs,S,[n]);f(b+".balance",g,Sn,"balanceOf",[n]),f(b+".allowance",g,Sn,"allowance",[n,w])}for(const S of["getReserves","token0","totalSupply"])f(b+"."+(S==="totalSupply"?"poolSupply":S),g,Cv,S)}if(f("staking.totalStaked",s.ITEM_STAKING,yr,"totalStaked"),f("staking.pot",Ge.BASK,Sn,"balanceOf",[s.ITEM_STAKING]),n){f("staking.staked",s.ITEM_STAKING,yr,"staked",[n]),f("staking.balance",s.ITEM,Sn,"balanceOf",[n]),f("staking.allowance",s.ITEM,Sn,"allowance",[n,s.ITEM_STAKING]),f("staking.BASK",s.ITEM_STAKING,yr,"earned",[n,Ge.BASK]);for(const[b,w,g]of[["bask","token",Ge.BASK],["bask","quote",Ge.USDG],["eth","token",s.ITEM]])g!==s.ITEM&&f(b+"."+w+"Balance",g,Sn,"balanceOf",[n]),f(b+"."+w+"Allowance",g,Sn,"allowance",[n,Ge.V2_ROUTER])}const[p,m]=await Promise.all([r(u.map(([,b])=>b)),n?l(n).catch(()=>{}):void 0]),y=Object.fromEntries(p.flatMap((b,w)=>{if(!b.ok)return[];const g=u[w][1].functionName;if(g==="getReserves"){if(!Array.isArray(b.value)||b.value.length!==3||typeof b.value[0]!="bigint"||typeof b.value[1]!="bigint"||typeof b.value[2]!="number")return[];const T=u[w][0].split(".")[0];return[[T+".reserve0",b.value[0]],[T+".reserve1",b.value[1]]]}const S=g==="started"||g==="funded"?"boolean":g==="pair"||g==="token0"?"string":"bigint";return typeof b.value!==S?[]:[[u[w][0],b.value]]}));if(n&&(typeof m=="bigint"&&(y["eth.quoteBalance"]=m),y["staking.balance"]!==void 0&&(y["eth.tokenBalance"]=y["staking.balance"])),!p.some(b=>b.ok))throw new Error("ITEM figures: unreadable. Retry.");return y}let No;function Yk(e,n,s=e){const[r,l]=D.useState(null),[u,f]=D.useState(null),[p,m]=D.useState(!1),[y,b]=D.useState(!1),w=D.useRef(0),[g,S]=D.useState(""),T=e+":"+(n??"")+":"+s,x=D.useRef(T);D.useLayoutEffect(()=>(x.current=T,()=>{x.current=void 0}),[T]);const j=D.useCallback(async()=>{if(x.current!==e+":"+(n??"")+":"+s)return No===j?void 0:No?.();const C=++w.current;if(f(null),!!An()){b(!0),m(!1);try{const G=e==="earn"?await s2(e,n):null,O=await Zk(e==="earn"?G??{}:void 0);w.current===C&&(l(G),f(O),S(e+":"+(n??"")+":"+s))}catch{w.current===C&&(m(!0),l(null),f(null))}finally{w.current===C&&b(!1)}}},[e,n,s]);return D.useLayoutEffect(()=>(No=j,()=>{No===j&&(No=void 0)}),[j]),D.useEffect(()=>(j(),()=>{w.current++}),[j]),{figures:g===T?r:null,prices:g===T?u:null,failed:p,loading:y,refresh:j}}async function Zk(e,n=Qe,s=Ln,r=BigInt(Math.floor(Date.now()/1e3))){if(!An(n))return{};const l=[];for(const m of[Ge.BASK_USDG_PAIR,n.ITEM_WETH_PAIR])if(!e)for(const y of["getReserves","token0"])l.push({address:m,abi:Cv,functionName:y,args:[]});for(const m of[Cg.USDG,Cg.ETH])for(const y of["latestRoundData","decimals"])l.push(Ha(m,y));const u=await s(l).catch(()=>[]),f=m=>u[m]?.ok?u[m].value:void 0,p={};for(const[m,y,b,w,g,S]of[[0,"bask",Ge.BASK,Ge.USDG,6,"bask"],[1,"eth",n.ITEM,Ge.WETH,18,"item"]]){const T=e?[e[y+".reserve0"],e[y+".reserve1"]]:f(m*2),x=e?e[y+".token0"]:f(m*2+1),j=f((e?0:4)+m*2),C=f((e?0:4)+m*2+1);p[S]=Gk(T,x,b,w,g,j,C,r),p[S]!==void 0&&(p[S==="bask"?"baskUpdatedAt":"itemUpdatedAt"]=j[3])}return p}function O0({prefix:e,figures:n,wallet:s,refresh:r,snapshot:l}){const[u,f]=D.useState(""),[p,m]=D.useState(""),[y,b]=D.useState(""),[w,g]=D.useState(0),S=D.useRef([]),T=D.useRef(!1),x=D.useRef(0);D.useLayoutEffect(()=>()=>{x.current++},[s.account,s.chainId]);const[j,C]=D.useState(!1),[G,O]=D.useState(""),B=ye=>n[e+"."+ye],A=(...ye)=>ye.every(ke=>n[e+"."+ke]!==void 0),_="ITEM figures: unreadable. Retry.",M=e!=="staking",Z=M?["Add liquidity","Stake","Claim/Withdraw","Pool stats"]:["Stake","Claim/Withdraw","Staking stats"],ee=M?1:0,J=M?2:1,V=M?3:2;function X(ye){const ke=ye.key==="Home"?0:ye.key==="End"?Z.length-1:ye.key==="ArrowRight"||ye.key==="ArrowDown"?(w+1)%Z.length:ye.key==="ArrowLeft"||ye.key==="ArrowUp"?(w+Z.length-1)%Z.length:void 0;ke!==void 0&&(ye.preventDefault(),g(ke),S.current[ke]?.focus())}const oe=e==="bask"?"BASK/USDG pool":e==="eth"?"ITEM/ETH pool":"ITEM staking",he=e==="bask"?Ge.BASK_USDG_PAIR:Qe.ITEM_WETH_PAIR,ae=!M||A("started"),R=!M||n[e+".started"]===!0,K=M&&R&&A("pair")&&String(n[e+".pair"]).toLowerCase()!==he.toLowerCase(),Y=B("balance")??0n,se=B("staked")??0n,le=B("allowance")??0n,k=Yc(u),P=Yc(p),ie=s.account?s.chainId!==4663?"Switch to Robinhood Chain to continue.":s.busy||j||s.unresolved?"Another transaction is pending. Finish it in your wallet or wait for its receipt.":K?"This gauge's pool does not match the pool listed here. Staking is off.":"":"Connect a wallet to stake.",H=ie||(!ae||!A("balance","allowance")||M&&!A("pair")?_:R?k?k>Y?"More than your balance.":"":"Enter an amount.":"Rewards for this pool have not started yet."),W=ie||(A("staked")?P?P>se?"More than you have staked.":"":"Enter an amount.":_),ue=e==="staking"?"item":e,pe=l?Du(l.assets,l.complete):void 0,we=!M&&s.account?l?.loading?"Reading...":A("BASK")?Fk(B("BASK"),pe?.nav,l?.globals.totalSupply):"Unavailable":"Unavailable",me=e==="bask"?"BASK":"ITEM",Oe=e==="bask"?"USDG":"ETH",Te=Yc(y),ct=M&&A("reserve0","reserve1","poolSupply","token0"),dt=ct&&B("reserve0")>0n&&B("reserve1")>0n&&B("poolSupply")>0n;function Je(ye,ke){const Ye=e==="bask"?Ge.BASK:Qe.ITEM,yt=e==="bask"?Ge.USDG:Ge.WETH,Ve=String(ye[e+".token0"]).toLowerCase();if(Ve!==Ye.toLowerCase()&&Ve!==yt.toLowerCase())throw new ce("ITEM figures: unreadable. Retry.");const at=Ve===Ye.toLowerCase();return Vk(ke,ye[e+(at?".reserve0":".reserve1")],ye[e+(at?".reserve1":".reserve0")],ye[e+".poolSupply"])}let rt,Ot="";if(M&&dt&&Te)try{rt=Je(n,Te)}catch(ye){Ot=Qc(ye)}const Vt=s.account?ie||(!ct||!A("tokenBalance","quoteBalance","tokenAllowance")||e==="bask"&&!A("quoteAllowance")?_:dt?Te?Ot||(Te>B("tokenBalance")||(rt?.matched??0n)>B("quoteBalance")?"More than your balance.":""):"Enter an amount.":"Pool not seeded yet."):"Connect a wallet to add liquidity.",pn=!!Te&&B("tokenAllowance")<Te,Ft=e==="bask"&&!!rt&&B("quoteAllowance")<rt.matched;async function Bt(ye,ke){if(!T.current){T.current=!0,C(!0),O("");try{await s.send(bh(ye,ke),e,ye.includes("Approve")?"Approve":ye.includes("Unstake")?"Unstake":ye.includes("Withdraw")?"Withdraw":ye.includes("Stake")?"Stake":ye==="claimBask"?"Claim BASK":"Claim ITEM",r)}catch(Ye){O(Qc(Ye))}finally{T.current=!1,C(!1)}}}async function Pt(ye){if(T.current)return;const ke=x.current;T.current=!0,C(!0),O("");try{const Ye=s.account;if(!Ye)throw new ce("Connect a wallet to add liquidity.");const yt=Yc(y);if(!yt)throw new ce("Enter an amount.");const Ve=await s2("earn",Ye);if(ke!==x.current)return;if(!Ve)throw new ce("ITEM figures: unreadable. Retry.");if(!["started","pair","token0","reserve0","reserve1","poolSupply","tokenBalance","quoteBalance","tokenAllowance",...e==="bask"?["quoteAllowance"]:[]].every(de=>Ve[e+"."+de]!==void 0))throw new ce("ITEM figures: unreadable. Retry.");if(Ve[e+".started"]&&String(Ve[e+".pair"]).toLowerCase()!==he.toLowerCase())throw new ce("This gauge's pool does not match the pool listed here. Staking is off.");const at=Je(Ve,yt);if(yt>Ve[e+".tokenBalance"]||at.matched>Ve[e+".quoteBalance"])throw new ce("More than your balance.");if(ye==="add"&&at.matched!==rt?.matched)throw await r(),new ce("The request failed. Please retry.");const aa=ye==="token"?e==="bask"?"baskLiquidityApprove":"itemLiquidityApprove":ye==="quote"?"usdgLiquidityApprove":e==="bask"?"baskAddLiquidity":"ethAddLiquidity";if(ye==="add"&&(Ve[e+".tokenAllowance"]<yt||e==="bask"&&Ve[e+".quoteAllowance"]<at.matched))throw await r(),new ce("The request failed. Please retry.");const L=bh(aa,ye==="quote"?at.matched:yt,Qe,ye==="add"?{user:Ye,matched:at.matched,minimumA:at.minimumA,minimumB:at.minimumB,deadline:cl()}:void 0);await s.send(L,e,ye==="add"?"Add liquidity":"Approve "+(ye==="token"?me:Oe),r)}catch(Ye){O(Qc(Ye))}finally{T.current=!1,C(!1)}}const Tt=(ye,ke,Ye,yt=!1,Ve=18)=>c.jsxs("div",{children:[c.jsx("dt",{children:ye}),c.jsx("dd",{"data-figure":e+"."+ke,children:A(ke)?qa(B(ke),Ve,yt)+" "+Ye:"Unavailable"})]});return c.jsxs("section",{className:"panel earn-card refined-card refined-b3","data-item-card":e,children:[c.jsx("div",{className:"refined-heading",children:c.jsx("h3",{children:oe})}),ae&&!R&&c.jsx("p",{className:"note",children:"Rewards for this pool have not started yet."}),K&&c.jsx("p",{className:"note warning",children:"This gauge's pool does not match the pool listed here. Staking is off."}),s.account?c.jsxs("dl",{className:"item-figures refined-personal",children:[Tt("You have staked","staked",M?"pool tokens":"ITEM",M),M?Tt("Your ITEM earned","earned","ITEM"):Tt("Your BASK earned","BASK","BASK")]}):c.jsx("p",{className:"refined-empty",children:"Connect a wallet to view your position."}),c.jsxs("div",{className:"refined-workspace",children:[c.jsx("div",{className:"docs-tabs refined-tabs",role:"tablist","aria-label":oe,children:Z.map((ye,ke)=>c.jsx("button",{ref:Ye=>{S.current[ke]=Ye},type:"button",role:"tab",id:e+"-tab-"+ke,"aria-controls":e+"-panel-"+ke,"aria-selected":w===ke,tabIndex:w===ke?0:-1,onClick:()=>g(ke),onKeyDown:X,children:ye==="Claim/Withdraw"?c.jsxs(c.Fragment,{children:["Claim/",c.jsx("wbr",{}),"Withdraw"]}):ye},ye))}),c.jsxs("div",{className:"refined-panels",children:[M&&c.jsx("div",{className:"refined-tab-panel",id:e+"-panel-0",role:"tabpanel","aria-labelledby":e+"-tab-0",hidden:w!==0,children:c.jsxs("div",{className:"item-action","data-liquidity":e,children:[c.jsxs("p",{className:"refined-explainer",children:[c.jsxs("strong",{children:["This pool takes both ",me," and ",Oe,"."]})," Enter how much ",me," you want to add. The required ",Oe," amount is calculated automatically using the pool's current ratio. You must have enough of both tokens to continue."]}),c.jsxs("div",{className:"refined-token-pair",children:[c.jsxs("div",{className:"refined-token-entry",children:[c.jsxs("label",{htmlFor:e+"-add",children:[me," to add"]}),c.jsx("input",{id:e+"-add",inputMode:"decimal",value:y,onChange:ye=>b(ye.target.value),disabled:!!ie||!dt}),s.account&&c.jsx("dl",{className:"item-figures refined-balance",children:c.jsxs("div",{children:[c.jsxs("dt",{children:[me," in your wallet"]}),c.jsx("dd",{"data-figure":e+".tokenBalance",children:A("tokenBalance")?qa(B("tokenBalance"))+" "+me:"Unavailable"})]})}),c.jsx("button",{type:"button",className:"refined-max",onClick:()=>b(Pa(B("tokenBalance")??0n,18)),disabled:!!ie||!dt||!A("tokenBalance"),children:"Use full balance"})]}),c.jsxs("div",{className:"refined-token-entry",children:[c.jsx("dl",{className:"item-figures refined-matched",children:c.jsxs("div",{children:[c.jsxs("dt",{children:[Oe," required ",c.jsx("span",{children:"Calculated"})]}),c.jsxs("dd",{"data-figure":e+".matched",children:[qa(rt?.matched??0n,e==="bask"?6:18)," ",Oe]})]})}),s.account&&c.jsx("dl",{className:"item-figures refined-balance",children:c.jsxs("div",{children:[c.jsxs("dt",{children:[Oe," in your wallet"]}),c.jsx("dd",{"data-figure":e+".quoteBalance",children:A("quoteBalance")?qa(B("quoteBalance"),e==="bask"?6:18)+" "+Oe:"Unavailable"})]})})]})]}),c.jsx("dl",{className:"item-figures refined-estimate",children:c.jsxs("div",{children:[c.jsx("dt",{children:"You receive about"}),c.jsxs("dd",{"data-figure":e+".liquidityEstimate",children:[qa(rt?.poolTokens??0n,18,!0)," pool tokens"]})]})}),c.jsxs("div",{className:"item-buttons",children:[pn&&c.jsxs("button",{type:"button",disabled:!!Vt,onClick:()=>void Pt("token"),children:["Approve ",me]}),Ft&&c.jsx("button",{type:"button",disabled:!!Vt,onClick:()=>void Pt("quote"),children:"Approve USDG"}),c.jsx("button",{type:"button",className:"primary",disabled:!!Vt||pn||Ft,onClick:()=>void Pt("add"),children:"Add liquidity"})]}),Vt&&c.jsx("p",{className:"disabled-reason",children:Vt}),c.jsxs("details",{className:"refined-details",children:[c.jsx("summary",{children:"Details"}),c.jsx("p",{children:"Minimums 0.5% under these amounts; the add fails instead of filling at a worse ratio."}),c.jsx("div",{className:"item-pool",children:c.jsx(Th,{item:e==="eth"})})]})]})}),c.jsxs("div",{className:"refined-tab-panel",id:e+"-panel-"+ee,role:"tabpanel","aria-labelledby":e+"-tab-"+ee,hidden:w!==ee,children:[c.jsx("p",{className:"refined-explainer",children:M?"Stake your pool tokens to earn ITEM.":"Stake ITEM to earn BASK."}),s.account&&c.jsx("dl",{className:"item-figures refined-available",children:Tt(M?"Pool tokens in your wallet":"ITEM in your wallet","balance",M?"pool tokens":"ITEM",M)}),c.jsxs("div",{className:"item-action",children:[c.jsx("label",{htmlFor:e+"-stake",children:M?"Pool tokens to stake":"ITEM to stake"}),c.jsx("input",{id:e+"-stake",inputMode:"decimal",value:u,onChange:ye=>f(ye.target.value),disabled:!!ie||!R}),c.jsx("button",{type:"button",onClick:()=>f(Pa(Y,18)),disabled:!!ie||!R||!A("balance"),children:"Use full balance"}),c.jsxs("div",{className:"item-buttons",children:[(!k||le<k)&&c.jsx("button",{type:"button",disabled:!!H,onClick:()=>void Bt(ue+"Approve",k),children:"Approve"}),c.jsx("button",{type:"button",className:"primary",disabled:!!H||le<(k??0n),onClick:()=>void Bt(ue+"Stake",k),children:"Stake"})]}),H&&c.jsx("p",{className:"disabled-reason",children:H})]})]}),c.jsxs("div",{className:"refined-tab-panel",id:e+"-panel-"+J,role:"tabpanel","aria-labelledby":e+"-tab-"+J,hidden:w!==J,children:[c.jsxs("div",{className:"refined-rewards",children:[c.jsx("h4",{children:"Your rewards"}),s.account&&c.jsxs("dl",{className:"item-figures refined-manage-figures",children:[c.jsxs("div",{children:[c.jsx("dt",{children:"Your share"}),c.jsx("dd",{"data-figure":e+".share",children:A("staked","totalStaked")?Kk(se,B("totalStaked")):"Unavailable"})]}),M?c.jsxs("div",{children:[c.jsx("dt",{children:"Your ITEM per day"}),c.jsx("dd",{"data-figure":e+".daily",children:A("rate","staked","totalStaked")?C0(B("rate")*86400n*se,B("totalStaked"))+" ITEM a day":"Unavailable"})]}):c.jsxs(c.Fragment,{children:[c.jsxs("div",{children:[c.jsx("dt",{children:"Your estimated BASK"}),c.jsx("dd",{"data-figure":"staking.estimatedBASK",children:A("pot","staked","totalStaked","BASK")?C0(B("pot")*se,B("totalStaked"))+" BASK (of which "+qa(B("BASK"))+" already earned)":"Unavailable"})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Estimated value in USD"}),c.jsxs("dd",{"data-figure":"staking.USDValue",children:[we,pe?.indicative&&we!=="Unavailable"&&we!=="Reading..."?" (indicative)":""]})]})]})]}),!M&&s.account&&c.jsx("p",{className:"refined-caption",children:"Unclaimed rewards, paid in BASK. The USD estimate uses the vault's last read, not a sale price."}),c.jsx("div",{className:"item-claims",children:(M?[["Claim ITEM",ue+"Claim","earned"]]:[["Claim BASK","claimBask","BASK"]]).map(([ye,ke,Ye])=>c.jsxs("div",{children:[c.jsx("button",{type:"button",disabled:!!ie||!A(Ye)||!B(Ye),onClick:()=>void Bt(ke),children:ye}),!ie&&(A(Ye)?!B(Ye)&&c.jsx("p",{className:"disabled-reason",children:"Nothing to claim yet."}):c.jsx("p",{className:"disabled-reason",children:_}))]},ke))})]}),c.jsxs("details",{className:"refined-withdraw",children:[c.jsx("summary",{children:M?"Withdraw pool tokens":"Unstake ITEM"}),c.jsx("p",{className:"refined-caption",children:M?"Withdraw returns your pool tokens. Claim ITEM separately.":"Unstake returns your ITEM. Claim BASK separately."}),c.jsxs("div",{className:"item-action",children:[c.jsx("label",{htmlFor:e+"-withdraw",children:M?"Pool tokens to withdraw":"ITEM to unstake"}),c.jsx("input",{id:e+"-withdraw",inputMode:"decimal",value:p,onChange:ye=>m(ye.target.value),disabled:!!ie}),c.jsx("button",{type:"button",onClick:()=>m(Pa(se,18)),disabled:!!ie||!A("staked"),children:"Use full staked amount"}),c.jsx("div",{className:"item-buttons",children:c.jsx("button",{type:"button",disabled:!!W,onClick:()=>void Bt(ue+(M?"Withdraw":"Unstake"),P),children:M?"Withdraw":"Unstake"})}),W&&c.jsx("p",{className:"disabled-reason",children:W})]})]})]}),c.jsxs("div",{className:"refined-tab-panel",id:e+"-panel-"+V,role:"tabpanel","aria-labelledby":e+"-tab-"+V,hidden:w!==V,children:[c.jsx("h4",{children:M?"Global release":"Staking overview"}),c.jsxs("dl",{className:"item-figures refined-global",children:[M&&c.jsxs(c.Fragment,{children:[Tt("Released so far","released","ITEM"),Tt("Left to release","remaining","ITEM"),c.jsxs("div",{children:[c.jsx("dt",{children:"Released per day now"}),c.jsx("dd",{"data-figure":e+".rate",children:A("rate")?qa(B("rate")*86400n)+" ITEM a day":"Unavailable"})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"ITEM per day per pool token"}),c.jsx("dd",{"data-figure":e+".dailyPerToken",children:A("rate","totalStaked")?C0(B("rate")*86400n*10n**18n,B("totalStaked"))+" ITEM a day":"Unavailable"})]})]}),Tt("Staked by everyone","totalStaked",M?"pool tokens":"ITEM",M),!M&&Tt("BASK in the fee pot","pot","BASK")]}),c.jsx("p",{className:"refined-caption",children:M?"The daily rate falls over the four years by design and is shared by everyone staked.":"Fees stream to stakers over 7 days; your share is applied to what is in the pot today."}),M&&c.jsx("div",{className:"item-pool refined-address",children:c.jsxs("p",{children:["Pool ",c.jsx(Hn,{value:he})]})})]})]})]}),c.jsx(ea,{wallet:s,scope:e}),c.jsx("p",{className:"error",role:"alert",children:G})]})}function Xk({wallet:e,snapshot:n,data:s}){const[r,l]=D.useState("bask");return D.useLayoutEffect(()=>{e.itemPending()},[e.account]),c.jsxs(c.Fragment,{children:[c.jsx(Us,{eyebrow:"Rewards counter",title:"Earn",character:{kind:"earn",src:"art/character/earn.webp",width:453,height:1e3,alt:"Store worker waving goodbye with a big smile",line:"same time tomorrow?"},children:"Stake pool tokens to earn ITEM. Stake ITEM to earn the vault's fees in BASK."}),An()&&c.jsxs("div",{className:"item-refresh",children:[c.jsx("button",{type:"button",disabled:s.loading||e.busy,onClick:()=>{e.itemPending(),s.refresh(),n.retry?.()},children:s.failed?"Retry":"Refresh"}),s.loading&&c.jsx("p",{role:"status",children:"Reading..."}),s.failed&&c.jsx("p",{role:"alert",children:"ITEM figures: unreadable. Retry."})]}),c.jsxs("section",{className:"item-section refined-focused-section",children:[c.jsx("h2",{children:"Earn ITEM by providing liquidity"}),c.jsx("p",{children:"Add liquidity to a pool, then stake the pool tokens you receive. There is no lock: withdraw and claim whenever you like."}),s.figures&&c.jsxs(c.Fragment,{children:[c.jsxs("fieldset",{className:"refined-pool-picker pool-buttons",children:[c.jsx("legend",{className:"price-sr-only",children:"Pool"}),[["bask","BASK/USDG"],["eth","ITEM/ETH"]].map(([u,f])=>c.jsxs("label",{children:[c.jsx("input",{type:"radio",name:"earn-pool",value:u,checked:r===u,onChange:()=>l(u)}),c.jsx("span",{children:f})]},u))]}),c.jsxs("div",{className:"earn-gauges refined-gauges refined-focused-gauges",children:[c.jsx("div",{"data-pool-view":"bask",hidden:r!=="bask",children:c.jsx(O0,{prefix:"bask",figures:s.figures,wallet:e,refresh:s.refresh},"bask-"+e.account)}),c.jsx("div",{"data-pool-view":"eth",hidden:r!=="eth",children:c.jsx(O0,{prefix:"eth",figures:s.figures,wallet:e,refresh:s.refresh},"eth-"+e.account)})]})]})]}),c.jsxs("section",{className:"item-section",children:[c.jsx("h2",{children:"Earn BASK by staking ITEM"}),c.jsx("p",{children:"Fees reach stakers as a 7-day stream, second by second."}),s.figures&&c.jsx(O0,{prefix:"staking",figures:s.figures,wallet:e,refresh:s.refresh,snapshot:n},"staking-"+e.account)]}),c.jsxs("p",{className:"item-links",children:[c.jsx("a",{href:"#docs",children:"How rewards work"}),c.jsx("a",{href:"#transparency",children:"Contracts and source"})]})]})}function Qk({prices:e,snapshot:n}){const s=hu(e?.baskUpdatedAt)?e?.bask:void 0,r=hu(e?.itemUpdatedAt)?e?.item:void 0;return c.jsxs("div",{className:"token-prices",children:[c.jsxs("div",{className:"token-price-values",children:[c.jsxs("span",{className:"token-price",children:[c.jsxs("svg",{role:"img","aria-label":"BASK",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",width:"1024",height:"1024",children:[c.jsx("rect",{width:"1024",height:"1024",fill:"#df2029"}),c.jsxs("g",{transform:"translate(176 218) scale(8.4)",fill:"none",stroke:"#ffdb29",strokeWidth:"7",strokeLinejoin:"round",strokeLinecap:"round",children:[c.jsx("path",{d:"M9 28h62L63 62H17L9 28Z"}),c.jsx("path",{d:"M23 28 35 8M57 28 45 8M28 39v12M40 39v12M52 39v12M6 28h68"})]})]}),c.jsx("b",{children:"BASK"}),c.jsxs("span",{children:["Pool ",c.jsx("strong",{"data-price":"bask-pool",children:M0(s,2)})," · NAV ",c.jsx("strong",{"data-price":"bask-nav",children:M0(e?Pk(n):void 0,2)})]})]}),c.jsxs("span",{className:"token-price",children:[c.jsx("svg",{role:"img","aria-label":"ITEM",xmlns:"http://www.w3.org/2000/svg",width:"1024",height:"1024",viewBox:"0 0 1024 1024",children:c.jsxs("g",{transform:"matrix(.65 0 0 .65 93.4 79.75)",children:[c.jsx("path",{fill:"#ffdb29",fillRule:"evenodd",d:"M682 187C714 152 755 137 803 143L1083 180C1129 186 1152 221 1158 259L1197 550C1202 590 1189 616 1162 641L547 1155C515 1182 481 1195 447 1190C421 1186 394 1175 374 1156L119 907C81 869 80 815 103 769C109 756 120 742 133 729ZM1022 392A69 69 0 1 0 884 392A69 69 0 1 0 1022 392Z"}),c.jsx("path",{fill:"#df2029",fillRule:"evenodd",d:"M722 224C743 207 764 198 793 203L1082 241C1097 243 1097 249 1099 261L1137 547C1142 572 1130 588 1110 605L511 1117C481 1141 450 1143 421 1124L167 875C141 849 140 815 162 786ZM1067 392A114 114 0 1 0 839 392A114 114 0 1 0 1067 392Z"}),c.jsx("circle",{cx:"534",cy:"602",r:"59",fill:"#ffdb29"}),c.jsx("circle",{cx:"786",cy:"666",r:"59",fill:"#ffdb29"}),c.jsx("path",{d:"M453 719C486 831 643 870 743 790",fill:"none",stroke:"#ffdb29",strokeWidth:"70",strokeLinecap:"round"})]})}),c.jsx("b",{children:"ITEM"}),c.jsx("strong",{"data-price":"item-pool",children:M0(r,6)})]})]}),c.jsx("p",{children:"Pool prices and BASK stock value, read at the last refresh."})]})}function Jk({snapshot:e}){const n=r=>c.jsx(Hn,{value:r}),s=r=>e.loading?"Reading...":e.globals[r]?n(e.globals[r]):"unreadable";return c.jsxs(c.Fragment,{children:[c.jsx(Us,{eyebrow:"Open books",title:"Transparency",character:{kind:"transparency",src:"art/character/transparency.webp",width:400,height:1e3,alt:"Store worker looking at you through a magnifying glass",line:"go ahead and take a closer look"},children:"Contract addresses, protocol roles and source code."}),An(Qe)&&c.jsxs("section",{className:"panel item-source",children:[c.jsx("h2",{children:"Contracts and source"}),gp.map((r,l)=>c.jsxs("p",{children:[a2[l],": ",n(Qe[r])]},r)),c.jsxs("p",{children:["BASK/USDG pool: ",n(Ge.BASK_USDG_PAIR)]}),c.jsxs("p",{children:["ITEM/ETH pool: ",n(Qe.ITEM_WETH_PAIR)]}),c.jsxs("p",{"data-role":"dev",children:["Developer: ",n(Ge.DEV)]}),c.jsxs("p",{"data-role":"owner",children:["Vault owner: ",s("owner")]}),c.jsxs("p",{"data-role":"guardian",children:["Vault guardian: ",s("guardian")]}),c.jsxs("p",{children:["Source code: ",c.jsx("a",{href:Qe.ITEM_REPO,target:"_blank",rel:"noreferrer",children:Qe.ITEM_REPO})," at commit ",Qe.ITEM_COMMIT.slice(0,7)]})]})]})}const i2=["Vault","Deposit","Redeem","Earn","Docs"],Wk=[...i2,"Owner","Losses","Transparency"];function Vg(){const e=location.hash.slice(1).toLowerCase();return Wk.find(n=>n.toLowerCase()===e)??"Vault"}function ej(){const[e,n]=D.useState(Vg),[s,r]=D.useState(o9),[l,u]=D.useState(!0),[f,p]=D.useState(""),m=D.useRef(0),y=D.useCallback(async()=>{const x=++m.current;u(!0),p("");try{try{await Ev()}catch(C){x===m.current&&p(C.message)}const j=await yp();return x===m.current&&r(j),j}catch(j){throw x===m.current&&p("Vault data: unreadable. Retry vault."),j}finally{x===m.current&&u(!1)}},[]),b=w9(y),w=Yk(e==="Earn"?"earn":"prices",e==="Earn"?b.account:void 0,e);D.useEffect(()=>{y().catch(()=>{})},[y]),D.useEffect(()=>{const x=()=>{n(Vg()),requestAnimationFrame(()=>document.querySelector("h1")?.focus()),window.scrollTo(0,0)};return window.addEventListener("hashchange",x),()=>window.removeEventListener("hashchange",x)},[]);const g={...s,loading:l,retry:()=>{y().catch(()=>{})}},[,S]=D.useState(0);D.useEffect(()=>{const x=setInterval(()=>S(j=>j+1),6e4);return()=>clearInterval(x)},[]);const T=s.assets.filter(x=>x.short&&!x.retired);return c.jsxs(c.Fragment,{children:[c.jsx("a",{className:"skip",href:"#main-content",onClick:x=>{x.preventDefault(),document.getElementById("main-content")?.focus()},children:"Skip to content"}),c.jsxs("div",{className:"restriction",children:[c.jsx("span",{className:"restriction-mark","aria-hidden":"true",children:"!"}),c.jsx("p",{children:"Not for US persons. Stock Tokens are not offered in the United States and are restricted in other countries. Basket Protocol is not affiliated with the issuer of Stock Tokens."})]}),c.jsxs("header",{children:[c.jsx(S9,{}),c.jsxs("div",{className:"header-inner",children:[c.jsxs("a",{href:"#vault",className:"brand","aria-label":"Basket Protocol home",children:[c.jsx(vh,{large:!0}),c.jsxs("span",{children:["Basket",c.jsx("span",{className:"brand-sub",children:"Protocol"})]})]}),c.jsxs("div",{className:"wallet-area",children:[c.jsxs("span",{className:"chain-label",children:[c.jsx("span",{"aria-hidden":"true",children:"●"})," Robinhood Chain"]}),b.account?c.jsxs(c.Fragment,{children:[c.jsxs("span",{className:"connected-address",title:b.account,children:[b.account.slice(0,6),"…",b.account.slice(-4)]}),c.jsx("button",{className:"disconnect",onClick:b.disconnect,disabled:b.busy,children:"Disconnect"}),b.chainId!==4663&&c.jsx("button",{onClick:b.switchChain,children:"Switch to chain 4663"})]}):c.jsxs("button",{onClick:b.connect,disabled:b.connecting,children:[b.connecting?"Connecting...":"Connect wallet"," ",c.jsx("span",{"aria-hidden":"true",children:"↗"})]})]})]}),c.jsx(Qk,{prices:w.prices,snapshot:f?void 0:g}),c.jsx("nav",{"aria-label":"Primary navigation",children:c.jsx("div",{children:i2.map(x=>c.jsx("a",{href:"#"+x.toLowerCase(),"aria-current":x===e?"page":void 0,children:x},x))})})]}),c.jsx("div",{className:"shop-window",children:c.jsx(Ov,{})}),c.jsxs("main",{id:"main-content",tabIndex:-1,children:[c.jsxs("div",{className:"data-bar",children:[c.jsx("span",{role:"status",children:l?"Reading the vault…":s.loadedAt?"Read from chain · "+new Date(s.loadedAt).toLocaleTimeString("en-GB",{timeZone:"UTC"})+" UTC":"Vault data unreadable"}),c.jsxs("button",{className:"refresh",disabled:l,onClick:()=>{y().catch(()=>{}),w.refresh()},children:[l?"Reading...":f||s.errors.length?"Retry vault":"Refresh vault"," ",c.jsx("span",{"aria-hidden":"true",children:"↻"})]})]}),!window.ethereum&&c.jsxs("div",{className:"note wallet-help",children:["Open this page in your wallet app's browser",c.jsx("button",{onClick:async()=>{try{await navigator.clipboard.writeText(location.href),b.setMessage("Site link copied.")}catch{b.setMessage(`Copy this site link: ${location.href}`)}},children:"Copy site link"})]}),f&&c.jsx("div",{className:"note warning",role:"alert",children:f}),s.errors.length>0&&c.jsxs("details",{className:"read-errors",children:[c.jsxs("summary",{children:[s.errors.length," read issue",s.errors.length===1?"":"s"," · other data remains available"]}),s.errors.map((x,j)=>c.jsx("p",{children:x},j))]}),c.jsxs("div",{className:"wallet-status"+(Object.values(b.progress).some(x=>x.message===b.message)?" transaction-summary":""),role:"status",children:[b.message,b.hash&&c.jsxs(c.Fragment,{children:[" ",c.jsx("a",{href:`${fa.blockExplorers.default.url}/tx/${b.hash}`,target:"_blank",rel:"noreferrer",children:"View transaction"})]})]}),b.account&&b.chainId!==4663&&c.jsx("div",{className:"note warning",children:"Your wallet must be on Robinhood Chain (4663) to send. Public data remains available."}),(e==="Vault"||e==="Deposit")&&T.length>0&&c.jsxs("div",{className:"note warning",children:["Deposits are paused: the vault is short of"," ",c.jsx("bdi",{children:T.map(x=>x.symbol).join(", ")}),"."," ",c.jsx("a",{href:"#losses",children:"Anyone can start the fix."})]}),e==="Vault"?c.jsx(B9,{snapshot:g}):e==="Deposit"?c.jsx(V9,{snapshot:g,wallet:b}):e==="Redeem"?c.jsx(F9,{snapshot:g,wallet:b}):e==="Earn"?c.jsx(Xk,{snapshot:g,wallet:b,data:w}):e==="Transparency"?c.jsx(Jk,{snapshot:g}):e==="Owner"?c.jsx(pk,{snapshot:g,wallet:b}):e==="Docs"?c.jsx(Hk,{onAddToWallet:b.addToWallet}):c.jsx(Ik,{snapshot:g,wallet:b}),c.jsx(D.Activity,{mode:e==="Redeem"?"visible":"hidden",children:c.jsx(Y9,{snapshot:g,wallet:b},b.account)})]}),c.jsx("div",{className:"floor-strip","aria-hidden":"true"}),c.jsxs("footer",{children:[c.jsxs("div",{children:[c.jsx(vh,{}),c.jsx("strong",{children:"Basket Protocol"}),c.jsxs("span",{className:"footer-links",children:[c.jsx("a",{href:"#owner","aria-current":e==="Owner"?"page":void 0,children:"Owner controls"}),c.jsx("a",{href:"#transparency","aria-current":e==="Transparency"?"page":void 0,children:"Transparency"}),c.jsx("a",{href:"#docs",children:"Docs"}),c.jsx("a",{href:"https://x.com/Basket_IMD",target:"_blank",rel:"noreferrer",children:"Basket Protocol on X"}),c.jsx("a",{href:"https://t.me/basket_protocol",target:"_blank",rel:"noreferrer",children:"Basket Protocol on Telegram"}),c.jsx("a",{href:"https://medium.com/@protocolbasket",target:"_blank",rel:"noreferrer",children:"Basket Protocol on Medium"}),c.jsx("a",{href:"mailto:protocolbasket@gmail.com",children:"protocolbasket@gmail.com"})]})]}),c.jsxs("div",{children:[c.jsx("span",{children:"BaskVault · Chain 4663"}),c.jsx(Hn,{value:It})]})]})]})}Bx.createRoot(document.getElementById("root")).render(c.jsx(ej,{}));export{re as B,Mo as H,LE as a,ba as b,Bu as c,C6 as d,vi as e,pa as f,_h as g,Tu as i,Cu as l,Gt as s}; +`)})}}Object.defineProperty(hi,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});class Io extends hn{constructor(n){super(n,{code:Io.code,name:"ResourceNotFoundRpcError",shortMessage:"Requested resource not found."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceNotFoundRpcError"})}}Object.defineProperty(Io,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});class Go extends hn{constructor(n){super(n,{code:Go.code,name:"ResourceUnavailableRpcError",shortMessage:"Requested resource not available."})}}Object.defineProperty(Go,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});class Sr extends hn{constructor(n){super(n,{code:Sr.code,name:"TransactionRejectedRpcError",shortMessage:"Transaction creation failed."})}}Object.defineProperty(Sr,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003});class ai extends hn{constructor(n,{method:s}={}){super(n,{code:ai.code,name:"MethodNotSupportedRpcError",shortMessage:`Method${s?` "${s}"`:""} is not supported.`})}}Object.defineProperty(ai,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004});class Er extends hn{constructor(n){super(n,{code:Er.code,name:"LimitExceededRpcError",shortMessage:"Request exceeds defined limit."})}}Object.defineProperty(Er,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});class Po extends hn{constructor(n){super(n,{code:Po.code,name:"JsonRpcVersionUnsupportedError",shortMessage:"Version of JSON-RPC protocol is not supported."})}}Object.defineProperty(Po,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});class li extends kn{constructor(n){super(n,{code:li.code,name:"UserRejectedRequestError",shortMessage:"User rejected the request."})}}Object.defineProperty(li,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});class Vo extends kn{constructor(n){super(n,{code:Vo.code,name:"UnauthorizedProviderError",shortMessage:"The requested method and/or account has not been authorized by the user."})}}Object.defineProperty(Vo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});class Ko extends kn{constructor(n,{method:s}={}){super(n,{code:Ko.code,name:"UnsupportedProviderMethodError",shortMessage:`The Provider does not support the requested method${s?` " ${s}"`:""}.`})}}Object.defineProperty(Ko,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});class Fo extends kn{constructor(n){super(n,{code:Fo.code,name:"ProviderDisconnectedError",shortMessage:"The Provider is disconnected from all chains."})}}Object.defineProperty(Fo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});class Yo extends kn{constructor(n){super(n,{code:Yo.code,name:"ChainDisconnectedError",shortMessage:"The Provider is not connected to the requested chain."})}}Object.defineProperty(Yo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});class Zo extends kn{constructor(n){super(n,{code:Zo.code,name:"SwitchChainError",shortMessage:"An error occurred when attempting to switch chain."})}}Object.defineProperty(Zo,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902});class Xo extends kn{constructor(n){super(n,{code:Xo.code,name:"UnsupportedNonOptionalCapabilityError",shortMessage:"This Wallet does not support a capability that was not marked as optional."})}}Object.defineProperty(Xo,"code",{enumerable:!0,configurable:!0,writable:!0,value:5700});class Qo extends kn{constructor(n){super(n,{code:Qo.code,name:"UnsupportedChainIdError",shortMessage:"This Wallet does not support the requested chain ID."})}}Object.defineProperty(Qo,"code",{enumerable:!0,configurable:!0,writable:!0,value:5710});class Jo extends kn{constructor(n){super(n,{code:Jo.code,name:"DuplicateIdError",shortMessage:"There is already a bundle submitted with this ID."})}}Object.defineProperty(Jo,"code",{enumerable:!0,configurable:!0,writable:!0,value:5720});class Wo extends kn{constructor(n){super(n,{code:Wo.code,name:"UnknownBundleIdError",shortMessage:"This bundle id is unknown / has not been submitted"})}}Object.defineProperty(Wo,"code",{enumerable:!0,configurable:!0,writable:!0,value:5730});class el extends kn{constructor(n){super(n,{code:el.code,name:"BundleTooLargeError",shortMessage:"The call bundle is too large for the Wallet to process."})}}Object.defineProperty(el,"code",{enumerable:!0,configurable:!0,writable:!0,value:5740});class tl extends kn{constructor(n){super(n,{code:tl.code,name:"AtomicReadyWalletRejectedUpgradeError",shortMessage:"The Wallet can support atomicity after an upgrade, but the user rejected the upgrade."})}}Object.defineProperty(tl,"code",{enumerable:!0,configurable:!0,writable:!0,value:5750});class nl extends kn{constructor(n){super(n,{code:nl.code,name:"AtomicityNotSupportedError",shortMessage:"The wallet does not support atomic execution but the request requires it."})}}Object.defineProperty(nl,"code",{enumerable:!0,configurable:!0,writable:!0,value:5760});class tS extends hn{constructor(n){super(n,{name:"UnknownRpcError",shortMessage:"An unknown RPC error occurred."})}}const nS=3;function Ar(e,{abi:n,address:s,args:r,docsPath:l,functionName:u,sender:f}){const m=e instanceof Su?e:e instanceof re?e.walk(T=>"data"in T)||e.walk():{},{code:p,data:y,details:b,message:w,shortMessage:g}=m,S=e instanceof fl?new J3({functionName:u}):[nS,fi.code].includes(p)&&(y||b||w||g)?new H0({abi:n,data:typeof y=="object"?y.data:y,functionName:u,message:m instanceof $h?b:g??w}):e;return new U6(S,{abi:n,args:r,contractAddress:s,docsPath:l,functionName:u,sender:f})}function aS(e){const n=jt(`0x${e.substring(4)}`).substring(26);return vu(`0x${n}`)}const sS="modulepreload",iS=function(e,n){return new URL(e,n).href},Y1={},q6=function(n,s,r){let l=Promise.resolve();if(s&&s.length>0){let y=function(b){return Promise.all(b.map(w=>Promise.resolve(w).then(g=>({status:"fulfilled",value:g}),g=>({status:"rejected",reason:g}))))};const f=document.getElementsByTagName("link"),m=document.querySelector("meta[property=csp-nonce]"),p=m?.nonce||m?.getAttribute("nonce");l=y(s.map(b=>{if(b=iS(b,r),b in Y1)return;Y1[b]=!0;const w=b.endsWith(".css"),g=w?'[rel="stylesheet"]':"";if(r)for(let T=f.length-1;T>=0;T--){const x=f[T];if(x.href===b&&(!w||x.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${b}"]${g}`))return;const S=document.createElement("link");if(S.rel=w?"stylesheet":sS,w||(S.as="script"),S.crossOrigin="",S.href=b,p&&S.setAttribute("nonce",p),document.head.appendChild(S),w)return new Promise((T,x)=>{S.addEventListener("load",T),S.addEventListener("error",()=>x(new Error(`Unable to preload CSS for ${b}`)))})}))}function u(f){const m=new Event("vite:preloadError",{cancelable:!0});if(m.payload=f,window.dispatchEvent(m),!m.defaultPrevented)throw f}return l.then(f=>{for(const m of f||[])m.status==="rejected"&&u(m.reason);return n().catch(u)})};async function rS({hash:e,signature:n}){const s=pa(e)?e:zs(e),{secp256k1:r}=await q6(async()=>{const{secp256k1:f}=await Promise.resolve().then(()=>zT);return{secp256k1:f}},void 0,import.meta.url);return`0x${(()=>{if(typeof n=="object"&&"r"in n&&"s"in n){const{r:y,s:b,v:w,yParity:g}=n,S=Number(g??w),T=Z1(S);return new r.Signature(ma(y),ma(b)).addRecoveryBit(T)}const f=pa(n)?n:zs(n);if(mt(f)!==65)throw new Error("invalid signature length");const m=Ya(`0x${f.slice(130)}`),p=Z1(m);return r.Signature.fromCompact(f.substring(2,130)).addRecoveryBit(p)})().recoverPublicKey(s.substring(2)).toHex(!1)}`}function Z1(e){if(e===0||e===1)return e;if(e===27)return 0;if(e===28)return 1;throw new Error("Invalid yParityOrV value")}async function L6({hash:e,signature:n}){return aS(await rS({hash:e,signature:n}))}function oS(e,n="hex"){const s=H6(e),r=_h(new Uint8Array(s.length));return s.encode(r),n==="hex"?Nt(r.bytes):r.bytes}function H6(e){return Array.isArray(e)?lS(e.map(n=>H6(n))):cS(e)}function lS(e){const n=e.reduce((l,u)=>l+u.length,0),s=I6(n);return{length:n<=55?1+n:1+s+n,encode(l){n<=55?l.pushByte(192+n):(l.pushByte(247+s),s===1?l.pushUint8(n):s===2?l.pushUint16(n):s===3?l.pushUint24(n):l.pushUint32(n));for(const{encode:u}of e)u(l)}}}function cS(e){const n=typeof e=="string"?ya(e):e,s=I6(n.length);return{length:n.length===1&&n[0]<128?1:n.length<=55?1+n.length:1+s+n.length,encode(l){n.length===1&&n[0]<128?l.pushBytes(n):n.length<=55?(l.pushByte(128+n.length),l.pushBytes(n)):(l.pushByte(183+s),s===1?l.pushUint8(n.length):s===2?l.pushUint16(n.length):s===3?l.pushUint24(n.length):l.pushUint32(n.length),l.pushBytes(n))}}}function I6(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new re("Length is too large.")}function uS(e){const{chainId:n,nonce:s,to:r}=e,l=e.contractAddress??e.address,u=jt(Nr(["0x05",oS([n?Ee(n):"0x",l,s?Ee(s):"0x"])]));return r==="bytes"?ya(u):u}async function G6(e){const{authorization:n,signature:s}=e;return L6({hash:uS(n),signature:s??n})}class dS extends re{constructor(n,{account:s,docsPath:r,chain:l,data:u,gas:f,gasPrice:m,maxFeePerGas:p,maxPriorityFeePerGas:y,nonce:b,to:w,value:g}){const S=xu({from:s?.address,to:w,value:typeof g<"u"&&`${_6(g)} ${l?.nativeCurrency?.symbol||"ETH"}`,data:u,gas:f,gasPrice:typeof m<"u"&&`${Yn(m)} gwei`,maxFeePerGas:typeof p<"u"&&`${Yn(p)} gwei`,maxPriorityFeePerGas:typeof y<"u"&&`${Yn(y)} gwei`,nonce:b});super(n.shortMessage,{cause:n,docsPath:r,metaMessages:[...n.metaMessages?[...n.metaMessages," "]:[],"Estimate Gas Arguments:",S].filter(Boolean),name:"EstimateGasExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=n}}class si extends re{constructor({cause:n,message:s}={}){const r=s?.replace("execution reverted: ","")?.replace("execution reverted","");super(`Execution reverted ${r?`with reason: ${r}`:"for an unknown reason"}.`,{cause:n,name:"ExecutionRevertedError"})}}Object.defineProperty(si,"code",{enumerable:!0,configurable:!0,writable:!0,value:3});Object.defineProperty(si,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted/});class tu extends re{constructor({cause:n,maxFeePerGas:s}={}){super(`The fee cap (\`maxFeePerGas\`${s?` = ${Yn(s)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:n,name:"FeeCapTooHighError"})}}Object.defineProperty(tu,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class I0 extends re{constructor({cause:n,maxFeePerGas:s}={}){super(`The fee cap (\`maxFeePerGas\`${s?` = ${Yn(s)}`:""} gwei) cannot be lower than the block base fee.`,{cause:n,name:"FeeCapTooLowError"})}}Object.defineProperty(I0,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});class G0 extends re{constructor({cause:n,nonce:s}={}){super(`Nonce provided for the transaction ${s?`(${s}) `:""}is higher than the next one expected.`,{cause:n,name:"NonceTooHighError"})}}Object.defineProperty(G0,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});class P0 extends re{constructor({cause:n,nonce:s}={}){super([`Nonce provided for the transaction ${s?`(${s}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(` +`),{cause:n,name:"NonceTooLowError"})}}Object.defineProperty(P0,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});class V0 extends re{constructor({cause:n,nonce:s}={}){super(`Nonce provided for the transaction ${s?`(${s}) `:""}exceeds the maximum allowed nonce.`,{cause:n,name:"NonceMaxValueError"})}}Object.defineProperty(V0,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});class K0 extends re{constructor({cause:n}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(` +`),{cause:n,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}}Object.defineProperty(K0,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});class F0 extends re{constructor({cause:n,gas:s}={}){super(`The amount of gas ${s?`(${s}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:n,name:"IntrinsicGasTooHighError"})}}Object.defineProperty(F0,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});class Y0 extends re{constructor({cause:n,gas:s}={}){super(`The amount of gas ${s?`(${s}) `:""}provided for the transaction is too low.`,{cause:n,name:"IntrinsicGasTooLowError"})}}Object.defineProperty(Y0,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});class Z0 extends re{constructor({cause:n}){super("The transaction type is not supported for this chain.",{cause:n,name:"TransactionTypeNotSupportedError"})}}Object.defineProperty(Z0,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});class nu extends re{constructor({cause:n,maxPriorityFeePerGas:s,maxFeePerGas:r}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${s?` = ${Yn(s)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${r?` = ${Yn(r)} gwei`:""}).`].join(` +`),{cause:n,name:"TipAboveFeeCapError"})}}Object.defineProperty(nu,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class Eu extends re{constructor({cause:n}){super(`An error occurred while executing: ${n?.shortMessage}`,{cause:n,name:"UnknownNodeError"})}}function Dh(e,n){const s=(e.details||"").toLowerCase(),r=e instanceof re?e.walk(l=>l?.code===si.code):e;return r instanceof re?new si({cause:e,message:r.details}):si.nodeMessage.test(s)?new si({cause:e,message:e.details}):tu.nodeMessage.test(s)?new tu({cause:e,maxFeePerGas:n?.maxFeePerGas}):I0.nodeMessage.test(s)?new I0({cause:e,maxFeePerGas:n?.maxFeePerGas}):G0.nodeMessage.test(s)?new G0({cause:e,nonce:n?.nonce}):P0.nodeMessage.test(s)?new P0({cause:e,nonce:n?.nonce}):V0.nodeMessage.test(s)?new V0({cause:e,nonce:n?.nonce}):K0.nodeMessage.test(s)?new K0({cause:e}):F0.nodeMessage.test(s)?new F0({cause:e,gas:n?.gas}):Y0.nodeMessage.test(s)?new Y0({cause:e,gas:n?.gas}):Z0.nodeMessage.test(s)?new Z0({cause:e}):nu.nodeMessage.test(s)?new nu({cause:e,maxFeePerGas:n?.maxFeePerGas,maxPriorityFeePerGas:n?.maxPriorityFeePerGas}):new Eu({cause:e})}function fS(e,{docsPath:n,...s}){const r=(()=>{const l=Dh(e,s);return l instanceof Eu?e:l})();return new dS(r,{docsPath:n,...s})}function Uh(e,{format:n}){if(!n)return{};const s={};function r(u){const f=Object.keys(u);for(const m of f)m in e&&(s[m]=e[m]),u[m]&&typeof u[m]=="object"&&!Array.isArray(u[m])&&r(u[m])}const l=n(e||{});return r(l),s}const hS={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"};function Au(e,n){const s={};return typeof e.authorizationList<"u"&&(s.authorizationList=pS(e.authorizationList)),typeof e.accessList<"u"&&(s.accessList=e.accessList),typeof e.blobVersionedHashes<"u"&&(s.blobVersionedHashes=e.blobVersionedHashes),typeof e.blobs<"u"&&(typeof e.blobs[0]!="string"?s.blobs=e.blobs.map(r=>Nt(r)):s.blobs=e.blobs),typeof e.data<"u"&&(s.data=e.data),typeof e.from<"u"&&(s.from=e.from),typeof e.gas<"u"&&(s.gas=Ee(e.gas)),typeof e.gasPrice<"u"&&(s.gasPrice=Ee(e.gasPrice)),typeof e.maxFeePerBlobGas<"u"&&(s.maxFeePerBlobGas=Ee(e.maxFeePerBlobGas)),typeof e.maxFeePerGas<"u"&&(s.maxFeePerGas=Ee(e.maxFeePerGas)),typeof e.maxPriorityFeePerGas<"u"&&(s.maxPriorityFeePerGas=Ee(e.maxPriorityFeePerGas)),typeof e.nonce<"u"&&(s.nonce=Ee(e.nonce)),typeof e.to<"u"&&(s.to=e.to),typeof e.type<"u"&&(s.type=hS[e.type]),typeof e.value<"u"&&(s.value=Ee(e.value)),s}function pS(e){return e.map(n=>({address:n.address,r:n.r?Ee(BigInt(n.r)):n.r,s:n.s?Ee(BigInt(n.s)):n.s,chainId:Ee(n.chainId),nonce:Ee(n.nonce),...typeof n.yParity<"u"?{yParity:Ee(n.yParity)}:{},...typeof n.v<"u"&&typeof n.yParity>"u"?{v:Ee(n.v)}:{}}))}function X1(e){if(!(!e||e.length===0))return e.reduce((n,{slot:s,value:r})=>{if(s.length!==66)throw new z1({size:s.length,targetSize:66,type:"hex"});if(r.length!==66)throw new z1({size:r.length,targetSize:66,type:"hex"});return n[s]=r,n},{})}function mS(e){const{balance:n,nonce:s,state:r,stateDiff:l,code:u}=e,f={};if(u!==void 0&&(f.code=u),n!==void 0&&(f.balance=Ee(n)),s!==void 0&&(f.nonce=Ee(s)),r!==void 0&&(f.state=X1(r)),l!==void 0){if(f.state)throw new V3;f.stateDiff=X1(l)}return f}function qh(e){if(!e)return;const n={};for(const{address:s,...r}of e){if(!dn(s,{strict:!1}))throw new $s({address:s});if(n[s])throw new P3({address:s});n[s]=mS(r)}return n}const yS=2n**256n-1n;function yl(e){const{account:n,gasPrice:s,maxFeePerGas:r,maxPriorityFeePerGas:l,to:u}=e,f=n?na(n):void 0;if(f&&!dn(f.address))throw new $s({address:f.address});if(u&&!dn(u))throw new $s({address:u});if(typeof s<"u"&&(typeof r<"u"||typeof l<"u"))throw new F3;if(r&&r>yS)throw new tu({maxFeePerGas:r});if(l&&r&&l>r)throw new nu({maxFeePerGas:r,maxPriorityFeePerGas:l})}class bS extends re{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}}class Lh extends re{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}}class gS extends re{constructor({maxPriorityFeePerGas:n}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${Yn(n)} gwei).`,{name:"MaxFeePerGasTooLowError"})}}class P6 extends re{constructor({blockHash:n,blockNumber:s}){let r="Block";n&&(r=`Block at hash "${n}"`),s&&(r=`Block at number "${s}"`),super(`${r} could not be found.`,{name:"BlockNotFoundError"})}}const V6={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function K6(e,n){const s={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?Ya(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?Ya(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?V6[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(s.authorizationList=vS(e.authorizationList)),s.yParity=(()=>{if(e.yParity)return Number(e.yParity);if(typeof s.v=="bigint"){if(s.v===0n||s.v===27n)return 0;if(s.v===1n||s.v===28n)return 1;if(s.v>=35n)return s.v%2n===0n?1:0}})(),s.type==="legacy"&&(delete s.accessList,delete s.maxFeePerBlobGas,delete s.maxFeePerGas,delete s.maxPriorityFeePerGas,delete s.yParity),s.type==="eip2930"&&(delete s.maxFeePerBlobGas,delete s.maxFeePerGas,delete s.maxPriorityFeePerGas),s.type==="eip1559"&&delete s.maxFeePerBlobGas,s}function vS(e){return e.map(n=>({address:n.address,chainId:Number(n.chainId),nonce:Number(n.nonce),r:n.r,s:n.s,yParity:Number(n.yParity)}))}function F6(e,n){const s=(e.transactions??[]).map(r=>typeof r=="string"?r:K6(r));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:s,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}async function da(e,{blockHash:n,blockNumber:s,blockTag:r=e.experimental_blockTag??"latest",includeTransactions:l}={}){const u=l??!1,f=s!==void 0?Ee(s):void 0;let m=null;if(n?m=await e.request({method:"eth_getBlockByHash",params:[n,u]},{dedupe:!0}):m=await e.request({method:"eth_getBlockByNumber",params:[f||r,u]},{dedupe:!!f}),!m)throw new P6({blockHash:n,blockNumber:s});return(e.chain?.formatters?.block?.format||F6)(m,"getBlock")}async function Hh(e){const n=await e.request({method:"eth_gasPrice"});return BigInt(n)}async function wS(e,n){return Y6(e,n)}async function Y6(e,n){const{block:s,chain:r=e.chain,request:l}=n||{};try{const u=r?.fees?.maxPriorityFeePerGas??r?.fees?.defaultPriorityFee;if(typeof u=="function"){const m=s||await Ae(e,da,"getBlock")({}),p=await u({block:m,client:e,request:l});if(p===null)throw new Error;return p}if(typeof u<"u")return u;const f=await e.request({method:"eth_maxPriorityFeePerGas"});return ma(f)}catch{const[u,f]=await Promise.all([s?Promise.resolve(s):Ae(e,da,"getBlock")({}),Ae(e,Hh,"getGasPrice")({})]);if(typeof u.baseFeePerGas!="bigint")throw new Lh;const m=f-u.baseFeePerGas;return m<0n?0n:m}}async function xS(e,n){return X0(e,n)}async function X0(e,n){const{block:s,chain:r=e.chain,request:l,type:u="eip1559"}=n||{},f=await(async()=>typeof r?.fees?.baseFeeMultiplier=="function"?r.fees.baseFeeMultiplier({block:s,client:e,request:l}):r?.fees?.baseFeeMultiplier??1.2)();if(f<1)throw new bS;const p=10**(f.toString().split(".")[1]?.length??0),y=g=>g*BigInt(Math.ceil(f*p))/BigInt(p),b=s||await Ae(e,da,"getBlock")({});if(typeof r?.fees?.estimateFeesPerGas=="function"){const g=await r.fees.estimateFeesPerGas({block:s,client:e,multiply:y,request:l,type:u});if(g!==null)return g}if(u==="eip1559"){if(typeof b.baseFeePerGas!="bigint")throw new Lh;const g=typeof l?.maxPriorityFeePerGas=="bigint"?l.maxPriorityFeePerGas:await Y6(e,{block:b,chain:r,request:l}),S=y(b.baseFeePerGas);return{maxFeePerGas:l?.maxFeePerGas??S+g,maxPriorityFeePerGas:g}}return{gasPrice:l?.gasPrice??y(await Ae(e,Hh,"getGasPrice")({}))}}async function Z6(e,{address:n,blockTag:s="latest",blockNumber:r}){const l=await e.request({method:"eth_getTransactionCount",params:[n,typeof r=="bigint"?Ee(r):s]},{dedupe:!!r});return Ya(l)}function X6(e){const{kzg:n}=e,s=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),r=typeof e.blobs[0]=="string"?e.blobs.map(u=>ya(u)):e.blobs,l=[];for(const u of r)l.push(Uint8Array.from(n.blobToKzgCommitment(u)));return s==="bytes"?l:l.map(u=>Nt(u))}function Q6(e){const{kzg:n}=e,s=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),r=typeof e.blobs[0]=="string"?e.blobs.map(f=>ya(f)):e.blobs,l=typeof e.commitments[0]=="string"?e.commitments.map(f=>ya(f)):e.commitments,u=[];for(let f=0;f<r.length;f++){const m=r[f],p=l[f];u.push(Uint8Array.from(n.computeBlobKzgProof(m,p)))}return s==="bytes"?u:u.map(f=>Nt(f))}function SS(e,n,s,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(n,s,r);const l=BigInt(32),u=BigInt(4294967295),f=Number(s>>l&u),m=Number(s&u),p=r?4:0,y=r?0:4;e.setUint32(n+p,f,r),e.setUint32(n+y,m,r)}function ES(e,n,s){return e&n^~e&s}function AS(e,n,s){return e&n^e&s^n&s}class TS extends Nh{constructor(n,s,r,l){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=n,this.outputLen=s,this.padOffset=r,this.isLE=l,this.buffer=new Uint8Array(n),this.view=r0(this.buffer)}update(n){vr(this),n=bu(n),di(n);const{view:s,buffer:r,blockLen:l}=this,u=n.length;for(let f=0;f<u;){const m=Math.min(l-this.pos,u-f);if(m===l){const p=r0(n);for(;l<=u-f;f+=l)this.process(p,f);continue}r.set(n.subarray(f,f+m),this.pos),this.pos+=m,f+=m,this.pos===l&&(this.process(s,0),this.pos=0)}return this.length+=n.length,this.roundClean(),this}digestInto(n){vr(this),m6(n,this),this.finished=!0;const{buffer:s,view:r,blockLen:l,isLE:u}=this;let{pos:f}=this;s[f++]=128,wr(this.buffer.subarray(f)),this.padOffset>l-f&&(this.process(r,0),f=0);for(let w=f;w<l;w++)s[w]=0;SS(r,l-8,BigInt(this.length*8),u),this.process(r,0);const m=r0(n),p=this.outputLen;if(p%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const y=p/4,b=this.get();if(y>b.length)throw new Error("_sha2: outputLen bigger than state");for(let w=0;w<y;w++)m.setUint32(4*w,b[w],u)}digest(){const{buffer:n,outputLen:s}=this;this.digestInto(n);const r=n.slice(0,s);return this.destroy(),r}_cloneInto(n){n||(n=new this.constructor),n.set(...this.get());const{blockLen:s,buffer:r,length:l,finished:u,destroyed:f,pos:m}=this;return n.destroyed=f,n.finished=u,n.length=l,n.pos=m,l%s&&n.buffer.set(r),n}clone(){return this._cloneInto()}}const ks=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),kS=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),js=new Uint32Array(64);class jS extends TS{constructor(n=32){super(64,n,8,!1),this.A=ks[0]|0,this.B=ks[1]|0,this.C=ks[2]|0,this.D=ks[3]|0,this.E=ks[4]|0,this.F=ks[5]|0,this.G=ks[6]|0,this.H=ks[7]|0}get(){const{A:n,B:s,C:r,D:l,E:u,F:f,G:m,H:p}=this;return[n,s,r,l,u,f,m,p]}set(n,s,r,l,u,f,m,p){this.A=n|0,this.B=s|0,this.C=r|0,this.D=l|0,this.E=u|0,this.F=f|0,this.G=m|0,this.H=p|0}process(n,s){for(let w=0;w<16;w++,s+=4)js[w]=n.getUint32(s,!1);for(let w=16;w<64;w++){const g=js[w-15],S=js[w-2],T=la(g,7)^la(g,18)^g>>>3,x=la(S,17)^la(S,19)^S>>>10;js[w]=x+js[w-7]+T+js[w-16]|0}let{A:r,B:l,C:u,D:f,E:m,F:p,G:y,H:b}=this;for(let w=0;w<64;w++){const g=la(m,6)^la(m,11)^la(m,25),S=b+g+ES(m,p,y)+kS[w]+js[w]|0,x=(la(r,2)^la(r,13)^la(r,22))+AS(r,l,u)|0;b=y,y=p,p=m,m=f+S|0,f=u,u=l,l=r,r=S+x|0}r=r+this.A|0,l=l+this.B|0,u=u+this.C|0,f=f+this.D|0,m=m+this.E|0,p=p+this.F|0,y=y+this.G|0,b=b+this.H|0,this.set(r,l,u,f,m,p,y,b)}roundClean(){wr(js)}destroy(){this.set(0,0,0,0,0,0,0,0),wr(this.buffer)}}const J6=y6(()=>new jS),NS=J6;function BS(e,n){return NS(pa(e,{strict:!1})?jr(e):e)}function RS(e){const{commitment:n,version:s=1}=e,r=e.to??(typeof n=="string"?"hex":"bytes"),l=BS(n);return l.set([s],0),r==="bytes"?l:Nt(l)}function MS(e){const{commitments:n,version:s}=e,r=e.to,l=[];for(const u of n)l.push(RS({commitment:u,to:r,version:s}));return l}const Q1=6,W6=32,Ih=4096,e5=W6*Ih,J1=e5*Q1-1-1*Ih*Q1;class CS extends re{constructor({maxSize:n,size:s}){super("Blob size is too large.",{metaMessages:[`Max: ${n} bytes`,`Given: ${s} bytes`],name:"BlobSizeTooLargeError"})}}class OS extends re{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}function _S(e){const n=typeof e.data=="string"?ya(e.data):e.data,s=mt(n);if(!s)throw new OS;if(s>J1)throw new CS({maxSize:J1,size:s});const r=[];let l=!0,u=0;for(;l;){const f=_h(new Uint8Array(e5));let m=0;for(;m<Ih;){const p=n.slice(u,u+(W6-1));if(f.pushByte(0),f.pushBytes(p),p.length<31){f.pushByte(128),l=!1;break}m++,u+=31}r.push(f)}return r.map(f=>Nt(f.bytes))}function zS(e){const{data:n,kzg:s,to:r}=e,l=e.blobs??_S({data:n}),u=e.commitments??X6({blobs:l,kzg:s,to:r}),f=e.proofs??Q6({blobs:l,commitments:u,kzg:s,to:r}),m=[];for(let p=0;p<l.length;p++)m.push({blob:l[p],commitment:u[p],proof:f[p]});return m}function $S(e){if(e.type)return e.type;if(typeof e.authorizationList<"u")return"eip7702";if(typeof e.blobs<"u"||typeof e.blobVersionedHashes<"u"||typeof e.maxFeePerBlobGas<"u"||typeof e.sidecars<"u")return"eip4844";if(typeof e.maxFeePerGas<"u"||typeof e.maxPriorityFeePerGas<"u")return"eip1559";if(typeof e.gasPrice<"u")return typeof e.accessList<"u"?"eip2930":"legacy";throw new Y3({transaction:e})}async function t5(e){const n=await e.request({method:"eth_chainId"},{dedupe:!0});return Ya(n)}const DS=["blobVersionedHashes","chainId","fees","gas","nonce","type"],W1=new Map;async function n5(e,n){const{account:s=e.account,blobs:r,chain:l,gas:u,kzg:f,nonce:m,nonceManager:p,parameters:y=DS,type:b}=n,w=s&&na(s),g={...n,...w?{from:w?.address}:{}};let S;async function T(){return S||(S=await Ae(e,da,"getBlock")({blockTag:"latest"}),S)}let x;async function j(){return x||(l?l.id:typeof n.chainId<"u"?n.chainId:(x=await Ae(e,t5,"getChainId")({}),x))}if(y.includes("nonce")&&typeof m>"u"&&w)if(p){const M=await j();g.nonce=await p.consume({address:w.address,chainId:M,client:e})}else g.nonce=await Ae(e,Z6,"getTransactionCount")({address:w.address,blockTag:"pending"});if((y.includes("blobVersionedHashes")||y.includes("sidecars"))&&r&&f){const M=X6({blobs:r,kzg:f});if(y.includes("blobVersionedHashes")){const I=MS({commitments:M,to:"hex"});g.blobVersionedHashes=I}if(y.includes("sidecars")){const I=Q6({blobs:r,commitments:M,kzg:f}),O=zS({blobs:r,commitments:M,proofs:I,to:"hex"});g.sidecars=O}}if(y.includes("chainId")&&(g.chainId=await j()),(y.includes("fees")||y.includes("type"))&&typeof b>"u")try{g.type=$S(g)}catch{let M=W1.get(e.uid);typeof M>"u"&&(M=typeof(await T())?.baseFeePerGas=="bigint",W1.set(e.uid,M)),g.type=M?"eip1559":"legacy"}if(y.includes("fees"))if(g.type!=="legacy"&&g.type!=="eip2930"){if(typeof g.maxFeePerGas>"u"||typeof g.maxPriorityFeePerGas>"u"){const M=await T(),{maxFeePerGas:I,maxPriorityFeePerGas:O}=await X0(e,{block:M,chain:l,request:g});if(typeof n.maxPriorityFeePerGas>"u"&&n.maxFeePerGas&&n.maxFeePerGas<O)throw new gS({maxPriorityFeePerGas:O});g.maxPriorityFeePerGas=O,g.maxFeePerGas=I}}else{if(typeof n.maxFeePerGas<"u"||typeof n.maxPriorityFeePerGas<"u")throw new Lh;if(typeof n.gasPrice>"u"){const M=await T(),{gasPrice:I}=await X0(e,{block:M,chain:l,request:g,type:"legacy"});g.gasPrice=I}}return y.includes("gas")&&typeof u>"u"&&(g.gas=await Ae(e,Gh,"estimateGas")({...g,account:w&&{address:w.address,type:"json-rpc"}})),yl(g),delete g.parameters,g}async function Gh(e,n){const{account:s=e.account}=n,r=s?na(s):void 0;try{const{accessList:l,authorizationList:u,blobs:f,blobVersionedHashes:m,blockNumber:p,blockTag:y,data:b,gas:w,gasPrice:g,maxFeePerBlobGas:S,maxFeePerGas:T,maxPriorityFeePerGas:x,nonce:j,value:M,stateOverride:I,...O}=await n5(e,{...n,parameters:r?.type==="local"?void 0:["blobVersionedHashes"]}),A=(typeof p=="bigint"?Ee(p):void 0)||y,z=qh(I),C=await(async()=>{if(O.to)return O.to;if(u&&u.length>0)return await G6({authorization:u[0]}).catch(()=>{throw new re("`to` is required. Could not infer from `authorizationList`")})})();yl(n);const Z=e.chain?.formatters?.transactionRequest?.format,J=(Z||Au)({...Uh(O,{format:Z}),from:r?.address,accessList:l,authorizationList:u,blobs:f,blobVersionedHashes:m,data:b,gas:w,gasPrice:g,maxFeePerBlobGas:S,maxFeePerGas:T,maxPriorityFeePerGas:x,nonce:j,to:C,value:M},"estimateGas");return BigInt(await e.request({method:"eth_estimateGas",params:z?[J,A??e.experimental_blockTag??"latest",z]:A?[J,A]:[J]}))}catch(l){throw fS(l,{...n,account:r,chain:e.chain})}}async function US(e,n){const{abi:s,address:r,args:l,functionName:u,dataSuffix:f,...m}=n,p=Gn({abi:s,args:l,functionName:u});try{return await Ae(e,Gh,"estimateGas")({data:`${p}${f?f.replace("0x",""):""}`,to:r,...m})}catch(y){const b=m.account?na(m.account):void 0;throw Ar(y,{abi:s,address:r,args:l,docsPath:"/docs/contract/estimateContractGas",functionName:u,sender:b?.address})}}function Tu(e,n){if(!dn(e,{strict:!1}))throw new $s({address:e});if(!dn(n,{strict:!1}))throw new $s({address:n});return e.toLowerCase()===n.toLowerCase()}const eg="/docs/contract/decodeEventLog";function bl(e){const{abi:n,data:s,strict:r,topics:l}=e,u=r??!0,[f,...m]=l;if(!f)throw new E8({docsPath:eg});const p=n.find(x=>x.type==="event"&&f===gu(Xn(x)));if(!(p&&"name"in p)||p.type!=="event")throw new l6(f,{docsPath:eg});const{name:y,inputs:b}=p,w=b?.some(x=>!("name"in x&&x.name)),g=w?[]:{},S=b.map((x,j)=>[x,j]).filter(([x])=>"indexed"in x&&x.indexed);for(let x=0;x<S.length;x++){const[j,M]=S[x],I=m[x];if(!I)throw new yu({abiItem:p,param:j});g[w?M:j.name||M]=qS({param:j,value:I})}const T=b.filter(x=>!("indexed"in x&&x.indexed));if(T.length>0){if(s&&s!=="0x")try{const x=ml(T,s);if(x)if(w)for(let j=0;j<b.length;j++)g[j]=g[j]??x.shift();else for(let j=0;j<T.length;j++)g[T[j].name]=x[j]}catch(x){if(u)throw x instanceof r6||x instanceof M6?new _o({abiItem:p,data:s,params:T,size:mt(s)}):x}else if(u)throw new _o({abiItem:p,data:"0x",params:T,size:0})}return{eventName:y,args:Object.values(g).length>0?g:void 0}}function qS({param:e,value:n}){return e.type==="string"||e.type==="bytes"||e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/)?n:(ml([e],n)||[])[0]}function Ph(e){const{abi:n,args:s,logs:r,strict:l=!0}=e,u=(()=>{if(e.eventName)return Array.isArray(e.eventName)?e.eventName:[e.eventName]})();return r.map(f=>{try{const m=n.find(y=>y.type==="event"&&f.topics[0]===gu(y));if(!m)return null;const p=bl({...f,abi:[m],strict:l});return u&&!u.includes(p.eventName)||!LS({args:p.args,inputs:m.inputs,matchArgs:s})?null:{...p,...f}}catch(m){let p,y;if(m instanceof l6)return null;if(m instanceof _o||m instanceof yu){if(l)return null;p=m.abiItem.name,y=m.abiItem.inputs?.some(b=>!("name"in b&&b.name))}return{...f,args:y?[]:{},eventName:p}}}).filter(Boolean)}function LS(e){const{args:n,inputs:s,matchArgs:r}=e;if(!r)return!0;if(!n)return!1;function l(u,f,m){try{return u.type==="address"?Tu(f,m):u.type==="string"||u.type==="bytes"?jt(jr(f))===m:f===m}catch{return!1}}return Array.isArray(n)&&Array.isArray(r)?r.every((u,f)=>{if(u==null)return!0;const m=s[f];return m?(Array.isArray(u)?u:[u]).some(y=>l(m,y,n[f])):!1}):typeof n=="object"&&!Array.isArray(n)&&typeof r=="object"&&!Array.isArray(r)?Object.entries(r).every(([u,f])=>{if(f==null)return!0;const m=s.find(y=>y.name===u);return m?(Array.isArray(f)?f:[f]).some(y=>l(m,y,n[u])):!1}):!1}function Za(e,{args:n,eventName:s}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...s?{args:n,eventName:s}:{}}}async function Vh(e,{address:n,blockHash:s,fromBlock:r,toBlock:l,event:u,events:f,args:m,strict:p}={}){const y=p??!1,b=f??(u?[u]:void 0);let w=[];b&&(w=[b.flatMap(x=>pl({abi:[x],eventName:x.name,args:f?void 0:m}))],u&&(w=w[0]));let g;s?g=await e.request({method:"eth_getLogs",params:[{address:n,topics:w,blockHash:s}]}):g=await e.request({method:"eth_getLogs",params:[{address:n,topics:w,fromBlock:typeof r=="bigint"?Ee(r):r,toBlock:typeof l=="bigint"?Ee(l):l}]});const S=g.map(T=>Za(T));return b?Ph({abi:b,args:m,logs:S,strict:y}):S}async function a5(e,n){const{abi:s,address:r,args:l,blockHash:u,eventName:f,fromBlock:m,toBlock:p,strict:y}=n,b=f?wi({abi:s,name:f}):void 0,w=b?void 0:s.filter(g=>g.type==="event");return Ae(e,Vh,"getLogs")({address:r,args:l,blockHash:u,event:b,events:w,fromBlock:m,toBlock:p,strict:y})}const c0="/docs/contract/decodeFunctionResult";function Wa(e){const{abi:n,args:s,functionName:r,data:l}=e;let u=n[0];if(r){const m=wi({abi:n,args:s,name:r});if(!m)throw new gr(r,{docsPath:c0});u=m}if(u.type!=="function")throw new gr(void 0,{docsPath:c0});if(!u.outputs)throw new c6(u.name,{docsPath:c0});const f=ml(u.outputs,l);if(f&&f.length>1)return f;if(f&&f.length===1)return f[0]}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Kh=BigInt(0),Q0=BigInt(1);function gl(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Fh(e){if(!gl(e))throw new Error("Uint8Array expected")}function al(e,n){if(typeof n!="boolean")throw new Error(e+" boolean expected, got "+n)}function Ic(e){const n=e.toString(16);return n.length&1?"0"+n:n}function s5(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?Kh:BigInt("0x"+e)}const i5=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",HS=Array.from({length:256},(e,n)=>n.toString(16).padStart(2,"0"));function sl(e){if(Fh(e),i5)return e.toHex();let n="";for(let s=0;s<e.length;s++)n+=HS[e[s]];return n}const Da={_0:48,_9:57,A:65,F:70,a:97,f:102};function tg(e){if(e>=Da._0&&e<=Da._9)return e-Da._0;if(e>=Da.A&&e<=Da.F)return e-(Da.A-10);if(e>=Da.a&&e<=Da.f)return e-(Da.a-10)}function au(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(i5)return Uint8Array.fromHex(e);const n=e.length,s=n/2;if(n%2)throw new Error("hex string expected, got unpadded hex of length "+n);const r=new Uint8Array(s);for(let l=0,u=0;l<s;l++,u+=2){const f=tg(e.charCodeAt(u)),m=tg(e.charCodeAt(u+1));if(f===void 0||m===void 0){const p=e[u]+e[u+1];throw new Error('hex string expected, got non-hex character "'+p+'" at index '+u)}r[l]=f*16+m}return r}function ci(e){return s5(sl(e))}function r5(e){return Fh(e),s5(sl(Uint8Array.from(e).reverse()))}function vl(e,n){return au(e.toString(16).padStart(n*2,"0"))}function o5(e,n){return vl(e,n).reverse()}function Un(e,n,s){let r;if(typeof n=="string")try{r=au(n)}catch(u){throw new Error(e+" must be hex string or Uint8Array, cause: "+u)}else if(gl(n))r=Uint8Array.from(n);else throw new Error(e+" must be hex string or Uint8Array");const l=r.length;if(typeof s=="number"&&l!==s)throw new Error(e+" of length "+s+" expected, got "+l);return r}function su(...e){let n=0;for(let r=0;r<e.length;r++){const l=e[r];Fh(l),n+=l.length}const s=new Uint8Array(n);for(let r=0,l=0;r<e.length;r++){const u=e[r];s.set(u,l),l+=u.length}return s}const u0=e=>typeof e=="bigint"&&Kh<=e;function Yh(e,n,s){return u0(e)&&u0(n)&&u0(s)&&n<=e&&e<s}function pr(e,n,s,r){if(!Yh(n,s,r))throw new Error("expected valid "+e+": "+s+" <= n < "+r+", got "+n)}function IS(e){let n;for(n=0;e>Kh;e>>=Q0,n+=1);return n}const ku=e=>(Q0<<BigInt(e))-Q0,d0=e=>new Uint8Array(e),ng=e=>Uint8Array.from(e);function GS(e,n,s){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof n!="number"||n<2)throw new Error("qByteLen must be a number");if(typeof s!="function")throw new Error("hmacFn must be a function");let r=d0(e),l=d0(e),u=0;const f=()=>{r.fill(1),l.fill(0),u=0},m=(...w)=>s(l,r,...w),p=(w=d0(0))=>{l=m(ng([0]),w),r=m(),w.length!==0&&(l=m(ng([1]),w),r=m())},y=()=>{if(u++>=1e3)throw new Error("drbg: tried 1000 values");let w=0;const g=[];for(;w<n;){r=m();const S=r.slice();g.push(S),w+=r.length}return su(...g)};return(w,g)=>{f(),p(w);let S;for(;!(S=g(y()));)p();return f(),S}}const PS={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||gl(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,n)=>n.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function ju(e,n,s={}){const r=(l,u,f)=>{const m=PS[u];if(typeof m!="function")throw new Error("invalid validator function");const p=e[l];if(!(f&&p===void 0)&&!m(p,e))throw new Error("param "+String(l)+" is invalid. Expected "+u+", got "+p)};for(const[l,u]of Object.entries(n))r(l,u,!1);for(const[l,u]of Object.entries(s))r(l,u,!0);return e}function ag(e){const n=new WeakMap;return(s,...r)=>{const l=n.get(s);if(l!==void 0)return l;const u=e(s,...r);return n.set(s,u),u}}const VS="0.1.1";function KS(){return VS}class Ce extends Error{constructor(n,s={}){const r=(()=>{if(s.cause instanceof Ce){if(s.cause.details)return s.cause.details;if(s.cause.shortMessage)return s.cause.shortMessage}return s.cause&&"details"in s.cause&&typeof s.cause.details=="string"?s.cause.details:s.cause?.message?s.cause.message:s.details})(),l=s.cause instanceof Ce&&s.cause.docsPath||s.docsPath,f=`https://oxlib.sh${l??""}`,m=[n||"An error occurred.",...s.metaMessages?["",...s.metaMessages]:[],...r||l?["",r?`Details: ${r}`:void 0,l?`See: ${f}`:void 0]:[]].filter(p=>typeof p=="string").join(` +`);super(m,s.cause?{cause:s.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:`ox@${KS()}`}),this.cause=s.cause,this.details=r,this.docs=f,this.docsPath=l,this.shortMessage=n}walk(n){return l5(this,n)}}function l5(e,n){return n?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause?l5(e.cause,n):n?null:e}function wl(e,n){if(ur(e)>n)throw new cE({givenSize:ur(e),maxSize:n})}const Ua={zero:48,nine:57,A:65,F:70,a:97,f:102};function sg(e){if(e>=Ua.zero&&e<=Ua.nine)return e-Ua.zero;if(e>=Ua.A&&e<=Ua.F)return e-(Ua.A-10);if(e>=Ua.a&&e<=Ua.f)return e-(Ua.a-10)}function FS(e,n={}){const{dir:s,size:r=32}=n;if(r===0)return e;if(e.length>r)throw new uE({size:e.length,targetSize:r,type:"Bytes"});const l=new Uint8Array(r);for(let u=0;u<r;u++){const f=s==="right";l[f?u:r-u-1]=e[f?u:e.length-u-1]}return l}function c5(e,n={}){const{dir:s="left"}=n;let r=e,l=0;for(let u=0;u<r.length-1&&r[s==="left"?u:r.length-u-1].toString()==="0";u++)l++;return r=s==="left"?r.slice(l):r.slice(0,r.length-l),r}function Nu(e,n){if(Tn(e)>n)throw new yE({givenSize:Tn(e),maxSize:n})}function YS(e,n){if(typeof n=="number"&&n>0&&n>Tn(e)-1)throw new g5({offset:n,position:"start",size:Tn(e)})}function ZS(e,n,s){if(typeof n=="number"&&typeof s=="number"&&Tn(e)!==s-n)throw new g5({offset:s,position:"end",size:Tn(e)})}function u5(e,n={}){const{dir:s,size:r=32}=n;if(r===0)return e;const l=e.replace("0x","");if(l.length>r*2)throw new bE({size:Math.ceil(l.length/2),targetSize:r,type:"Hex"});return`0x${l[s==="right"?"padEnd":"padStart"](r*2,"0")}`}const XS="#__bigint";function d5(e,n,s){return JSON.stringify(e,(r,l)=>typeof l=="bigint"?l.toString()+XS:l,s)}const QS=new TextDecoder,JS=new TextEncoder;function WS(e){return e instanceof Uint8Array?e:typeof e=="string"?f5(e):eE(e)}function eE(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function f5(e,n={}){const{size:s}=n;let r=e;s&&(Nu(e,s),r=mi(e,s));let l=r.slice(2);l.length%2&&(l=`0${l}`);const u=l.length/2,f=new Uint8Array(u);for(let m=0,p=0;m<u;m++){const y=sg(l.charCodeAt(p++)),b=sg(l.charCodeAt(p++));if(y===void 0||b===void 0)throw new Ce(`Invalid byte sequence ("${l[p-2]}${l[p-1]}" in "${l}").`);f[m]=y*16+b}return f}function tE(e,n={}){const{size:s}=n,r=JS.encode(e);return typeof s=="number"?(wl(r,s),nE(r,s)):r}function nE(e,n){return FS(e,{dir:"right",size:n})}function ur(e){return e.length}function aE(e,n,s,r={}){const{strict:l}=r;return e.slice(n,s)}function sE(e,n={}){const{size:s}=n;typeof s<"u"&&wl(e,s);const r=Jn(e,n);return m5(r,n)}function iE(e,n={}){const{size:s}=n;let r=e;if(typeof s<"u"&&(wl(r,s),r=h5(r)),r.length>1||r[0]>1)throw new lE(r);return!!r[0]}function Va(e,n={}){const{size:s}=n;typeof s<"u"&&wl(e,s);const r=Jn(e,n);return y5(r,n)}function rE(e,n={}){const{size:s}=n;let r=e;return typeof s<"u"&&(wl(r,s),r=oE(r)),QS.decode(r)}function h5(e){return c5(e,{dir:"left"})}function oE(e){return c5(e,{dir:"right"})}class lE extends Ce{constructor(n){super(`Bytes value \`${n}\` is not a valid boolean.`,{metaMessages:["The bytes array must contain a single byte of either a `0` or `1` value."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesBooleanError"})}}let cE=class extends Ce{constructor({givenSize:n,maxSize:s}){super(`Size cannot exceed \`${s}\` bytes. Given size: \`${n}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"})}},uE=class extends Ce{constructor({size:n,targetSize:s,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (\`${n}\`) exceeds padding size (\`${s}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"})}};const dE=new TextEncoder,fE=Array.from({length:256},(e,n)=>n.toString(16).padStart(2,"0"));function hE(e,n={}){const{strict:s=!1}=n;if(!e)throw new ig(e);if(typeof e!="string")throw new ig(e);if(s&&!/^0x[0-9a-fA-F]*$/.test(e))throw new rg(e);if(!e.startsWith("0x"))throw new rg(e)}function Qn(...e){return`0x${e.reduce((n,s)=>n+s.replace("0x",""),"")}`}function pE(e){return e instanceof Uint8Array?Jn(e):Array.isArray(e)?Jn(new Uint8Array(e)):e}function p5(e,n={}){const s=`0x${Number(e)}`;return typeof n.size=="number"?(Nu(s,n.size),pi(s,n.size)):s}function Jn(e,n={}){let s="";for(let l=0;l<e.length;l++)s+=fE[e[l]];const r=`0x${s}`;return typeof n.size=="number"?(Nu(r,n.size),mi(r,n.size)):r}function Zt(e,n={}){const{signed:s,size:r}=n,l=BigInt(e);let u;r?s?u=(1n<<BigInt(r)*8n-1n)-1n:u=2n**(BigInt(r)*8n)-1n:typeof e=="number"&&(u=BigInt(Number.MAX_SAFE_INTEGER));const f=typeof u=="bigint"&&s?-u-1n:0;if(u&&l>u||l<f){const y=typeof e=="bigint"?"n":"";throw new b5({max:u?`${u}${y}`:void 0,min:`${f}${y}`,signed:s,size:r,value:`${e}${y}`})}const p=`0x${(s&&l<0?(1n<<BigInt(r*8))+BigInt(l):l).toString(16)}`;return r?pi(p,r):p}function Zh(e,n={}){return Jn(dE.encode(e),n)}function pi(e,n){return u5(e,{dir:"left",size:n})}function mi(e,n){return u5(e,{dir:"right",size:n})}function ha(e,n,s,r={}){const{strict:l}=r;YS(e,n);const u=`0x${e.replace("0x","").slice((n??0)*2,(s??e.length)*2)}`;return l&&ZS(u,n,s),u}function Tn(e){return Math.ceil((e.length-2)/2)}function m5(e,n={}){const{signed:s}=n;n.size&&Nu(e,n.size);const r=BigInt(e);if(!s)return r;const l=(e.length-2)/2,u=(1n<<BigInt(l)*8n)-1n,f=u>>1n;return r<=f?r:r-u-1n}function y5(e,n={}){const{signed:s,size:r}=n;return Number(!s&&!r?e:m5(e,n))}function mE(e,n={}){const{strict:s=!1}=n;try{return hE(e,{strict:s}),!0}catch{return!1}}class b5 extends Ce{constructor({max:n,min:s,signed:r,size:l,value:u}){super(`Number \`${u}\` is not in safe${l?` ${l*8}-bit`:""}${r?" signed":" unsigned"} integer range ${n?`(\`${s}\` to \`${n}\`)`:`(above \`${s}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}}class ig extends Ce{constructor(n){super(`Value \`${typeof n=="object"?d5(n):n}\` of type \`${typeof n}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexTypeError"})}}class rg extends Ce{constructor(n){super(`Value \`${n}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexValueError"})}}class yE extends Ce{constructor({givenSize:n,maxSize:s}){super(`Size cannot exceed \`${s}\` bytes. Given size: \`${n}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"})}}class g5 extends Ce{constructor({offset:n,position:s,size:r}){super(`Slice ${s==="start"?"starting":"ending"} at offset \`${n}\` is out-of-bounds (size: \`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SliceOffsetOutOfBoundsError"})}}class bE extends Ce{constructor({size:n,targetSize:s,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (\`${n}\`) exceeds padding size (\`${s}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}function gE(e){return{address:e.address,amount:Zt(e.amount),index:Zt(e.index),validatorIndex:Zt(e.validatorIndex)}}function v5(e){return{...typeof e.baseFeePerGas=="bigint"&&{baseFeePerGas:Zt(e.baseFeePerGas)},...typeof e.blobBaseFee=="bigint"&&{blobBaseFee:Zt(e.blobBaseFee)},...typeof e.feeRecipient=="string"&&{feeRecipient:e.feeRecipient},...typeof e.gasLimit=="bigint"&&{gasLimit:Zt(e.gasLimit)},...typeof e.number=="bigint"&&{number:Zt(e.number)},...typeof e.prevRandao=="bigint"&&{prevRandao:Zt(e.prevRandao)},...typeof e.time=="bigint"&&{time:Zt(e.time)},...e.withdrawals&&{withdrawals:e.withdrawals.map(gE)}}}const il=[{inputs:[{components:[{name:"target",type:"address"},{name:"allowFailure",type:"bool"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{name:"success",type:"bool"},{name:"returnData",type:"bytes"}],name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"}],J0=[{name:"query",type:"function",stateMutability:"view",inputs:[{type:"tuple[]",name:"queries",components:[{type:"address",name:"sender"},{type:"string[]",name:"urls"},{type:"bytes",name:"data"}]}],outputs:[{type:"bool[]",name:"failures"},{type:"bytes[]",name:"responses"}]},{name:"HttpError",type:"error",inputs:[{type:"uint16",name:"status"},{type:"string",name:"message"}]}],w5=[{inputs:[{name:"dns",type:"bytes"}],name:"DNSDecodingFailed",type:"error"},{inputs:[{name:"ens",type:"string"}],name:"DNSEncodingFailed",type:"error"},{inputs:[],name:"EmptyAddress",type:"error"},{inputs:[{name:"status",type:"uint16"},{name:"message",type:"string"}],name:"HttpError",type:"error"},{inputs:[],name:"InvalidBatchGatewayResponse",type:"error"},{inputs:[{name:"errorData",type:"bytes"}],name:"ResolverError",type:"error"},{inputs:[{name:"name",type:"bytes"},{name:"resolver",type:"address"}],name:"ResolverNotContract",type:"error"},{inputs:[{name:"name",type:"bytes"}],name:"ResolverNotFound",type:"error"},{inputs:[{name:"primary",type:"string"},{name:"primaryAddress",type:"bytes"}],name:"ReverseAddressMismatch",type:"error"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"}],name:"UnsupportedResolverProfile",type:"error"}],x5=[...w5,{name:"resolveWithGateways",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"},{name:"gateways",type:"string[]"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]}],vE=[...w5,{name:"reverseWithGateways",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"},{type:"uint256",name:"coinType"},{type:"string[]",name:"gateways"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolver"},{type:"address",name:"reverseResolver"}]}],og=[{name:"text",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"key",type:"string"}],outputs:[{name:"",type:"string"}]}],lg=[{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"}],outputs:[{name:"",type:"address"}]},{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"coinType",type:"uint256"}],outputs:[{name:"",type:"bytes"}]}],S5=[{name:"isValidSignature",type:"function",stateMutability:"view",inputs:[{name:"hash",type:"bytes32"},{name:"signature",type:"bytes"}],outputs:[{name:"",type:"bytes4"}]}],cg=[{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],outputs:[{type:"bool"}],stateMutability:"nonpayable",type:"function",name:"isValidSig"}],wE="0x82ad56cb",E5="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",xE="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",SE="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",Xh="0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033";class W0 extends re{constructor({blockNumber:n,chain:s,contract:r}){super(`Chain "${s.name}" does not support contract "${r.name}".`,{metaMessages:["This could be due to any of the following:",...n&&r.blockCreated&&r.blockCreated>n?[`- The contract "${r.name}" was not deployed until block ${r.blockCreated} (current block ${n}).`]:[`- The chain does not have the contract "${r.name}" configured.`]],name:"ChainDoesNotSupportContract"})}}class A5 extends re{constructor(){super("No chain was provided to the Client.",{name:"ClientChainNotConfiguredError"})}}const f0="/docs/contract/encodeDeployData";function Qh(e){const{abi:n,args:s,bytecode:r}=e;if(!s||s.length===0)return r;const l=n.find(f=>"type"in f&&f.type==="constructor");if(!l)throw new g8({docsPath:f0});if(!("inputs"in l))throw new C1({docsPath:f0});if(!l.inputs||l.inputs.length===0)throw new C1({docsPath:f0});const u=vi(l.inputs,s);return Nr([r,u])}function Br({blockNumber:e,chain:n,contract:s}){const r=n?.contracts?.[s];if(!r)throw new W0({chain:n,contract:{name:s}});if(e&&r.blockCreated&&r.blockCreated>e)throw new W0({blockNumber:e,chain:n,contract:{name:s,blockCreated:r.blockCreated}});return r.address}function T5(e,{docsPath:n,...s}){const r=(()=>{const l=Dh(e,s);return l instanceof Eu?e:l})();return new D6(r,{docsPath:n,...s})}function k5(){let e=()=>{},n=()=>{};return{promise:new Promise((r,l)=>{e=r,n=l}),resolve:e,reject:n}}const h0=new Map;function j5({fn:e,id:n,shouldSplitBatch:s,wait:r=0,sort:l}){const u=async()=>{const b=p();f();const w=b.map(({args:g})=>g);w.length!==0&&e(w).then(g=>{l&&Array.isArray(g)&&g.sort(l);for(let S=0;S<b.length;S++){const{resolve:T}=b[S];T?.([g[S],g])}}).catch(g=>{for(let S=0;S<b.length;S++){const{reject:T}=b[S];T?.(g)}})},f=()=>h0.delete(n),m=()=>p().map(({args:b})=>b),p=()=>h0.get(n)||[],y=b=>h0.set(n,[...p(),b]);return{flush:f,async schedule(b){const{promise:w,resolve:g,reject:S}=k5();return s?.([...m(),b])&&u(),p().length>0?(y({args:b,resolve:g,reject:S}),w):(y({args:b,resolve:g,reject:S}),setTimeout(u,r),w)}}}async function Bu(e,n){const{account:s=e.account,authorizationList:r,batch:l=!!e.batch?.multicall,blockNumber:u,blockTag:f=e.experimental_blockTag??"latest",accessList:m,blobs:p,blockOverrides:y,code:b,data:w,factory:g,factoryData:S,gas:T,gasPrice:x,maxFeePerBlobGas:j,maxFeePerGas:M,maxPriorityFeePerGas:I,nonce:O,to:B,value:A,stateOverride:z,...C}=n,Z=s?na(s):void 0;if(b&&(g||S))throw new re("Cannot provide both `code` & `factory`/`factoryData` as parameters.");if(b&&B)throw new re("Cannot provide both `code` & `to` as parameters.");const ee=b&&w,J=g&&S&&B&&w,K=ee||J,X=ee?N5({code:b,data:w}):J?TE({data:w,factory:g,factoryData:S,to:B}):w;try{yl(n);const he=(typeof u=="bigint"?Ee(u):void 0)||f,ae=y?v5(y):void 0,R=qh(z),V=e.chain?.formatters?.transactionRequest?.format,se=(V||Au)({...Uh(C,{format:V}),from:Z?.address,accessList:m,authorizationList:r,blobs:p,data:X,gas:T,gasPrice:x,maxFeePerBlobGas:j,maxFeePerGas:M,maxPriorityFeePerGas:I,nonce:O,to:K?void 0:B,value:A},"call");if(l&&EE({request:se})&&!R&&!ae)try{return await AE(e,{...se,blockNumber:u,blockTag:f})}catch(P){if(!(P instanceof A5)&&!(P instanceof W0))throw P}const le=(()=>{const P=[se,he];return R&&ae?[...P,R,ae]:R?[...P,R]:ae?[...P,{},ae]:P})(),k=await e.request({method:"eth_call",params:le});return k==="0x"?{data:void 0}:{data:k}}catch(oe){const he=kE(oe),{offchainLookup:ae,offchainLookupSignature:R}=await q6(async()=>{const{offchainLookup:V,offchainLookupSignature:Y}=await import("./ccip-DVSpff_c.js");return{offchainLookup:V,offchainLookupSignature:Y}},[],import.meta.url);if(e.ccipRead!==!1&&he?.slice(0,10)===R&&B)return{data:await ae(e,{data:he,to:B})};throw K&&he?.slice(0,10)==="0x101bb98d"?new W3({factory:g}):T5(oe,{...n,account:Z,chain:e.chain})}}function EE({request:e}){const{data:n,to:s,...r}=e;return!(!n||n.startsWith(wE)||!s||Object.values(r).filter(l=>typeof l<"u").length>0)}async function AE(e,n){const{batchSize:s=1024,deployless:r=!1,wait:l=0}=typeof e.batch?.multicall=="object"?e.batch.multicall:{},{blockNumber:u,blockTag:f=e.experimental_blockTag??"latest",data:m,to:p}=n,y=(()=>{if(r)return null;if(n.multicallAddress)return n.multicallAddress;if(e.chain)return Br({blockNumber:u,chain:e.chain,contract:"multicall3"});throw new A5})(),w=(typeof u=="bigint"?Ee(u):void 0)||f,{schedule:g}=j5({id:`${e.uid}.${w}`,wait:l,shouldSplitBatch(x){return x.reduce((M,{data:I})=>M+(I.length-2),0)>s*2},fn:async x=>{const j=x.map(O=>({allowFailure:!0,callData:O.data,target:O.to})),M=Gn({abi:il,args:[j],functionName:"aggregate3"}),I=await e.request({method:"eth_call",params:[{...y===null?{data:N5({code:Xh,data:M})}:{to:y,data:M}},w]});return Wa({abi:il,args:[j],functionName:"aggregate3",data:I||"0x"})}}),[{returnData:S,success:T}]=await g({data:m,to:p});if(!T)throw new Su({data:S});return S==="0x"?{data:void 0}:{data:S}}function N5(e){const{code:n,data:s}=e;return Qh({abi:In(["constructor(bytes, bytes)"]),bytecode:E5,args:[n,s]})}function TE(e){const{data:n,factory:s,factoryData:r,to:l}=e;return Qh({abi:In(["constructor(address, bytes, address, bytes)"]),bytecode:xE,args:[l,n,s,r]})}function kE(e){if(!(e instanceof re))return;const n=e.walk();return typeof n?.data=="object"?n.data?.data:n.data}async function Wn(e,n){const{abi:s,address:r,args:l,functionName:u,...f}=n,m=Gn({abi:s,args:l,functionName:u});try{const{data:p}=await Ae(e,Bu,"call")({...f,data:m,to:r});return Wa({abi:s,args:l,functionName:u,data:p||"0x"})}catch(p){throw Ar(p,{abi:s,address:r,args:l,docsPath:"/docs/contract/readContract",functionName:u})}}async function jE(e,n){const{abi:s,address:r,args:l,dataSuffix:u,functionName:f,...m}=n,p=m.account?na(m.account):e.account,y=Gn({abi:s,args:l,functionName:f});try{const{data:b}=await Ae(e,Bu,"call")({batch:!1,data:`${y}${u?u.replace("0x",""):""}`,to:r,...m,account:p}),w=Wa({abi:s,args:l,functionName:f,data:b||"0x"}),g=s.filter(S=>"name"in S&&S.name===n.functionName);return{result:w,request:{abi:g,address:r,args:l,dataSuffix:u,functionName:f,...m,account:p}}}catch(b){throw Ar(b,{abi:s,address:r,args:l,docsPath:"/docs/contract/simulateContract",functionName:f,sender:p?.address})}}const p0=new Map,ug=new Map;let NE=0;function Ds(e,n,s){const r=++NE,l=()=>p0.get(e)||[],u=()=>{const b=l();p0.set(e,b.filter(w=>w.id!==r))},f=()=>{const b=l();if(!b.some(g=>g.id===r))return;const w=ug.get(e);if(b.length===1&&w){const g=w();g instanceof Promise&&g.catch(()=>{})}u()},m=l();if(p0.set(e,[...m,{id:r,fns:n}]),m&&m.length>0)return f;const p={};for(const b in n)p[b]=((...w)=>{const g=l();if(g.length!==0)for(const S of g)S.fns[b]?.(...w)});const y=s(p);return typeof y=="function"&&ug.set(e,y),f}async function iu(e){return new Promise(n=>setTimeout(n,e))}function xl(e,{emitOnBegin:n,initialWaitTime:s,interval:r}){let l=!0;const u=()=>l=!1;return(async()=>{let m;n&&(m=await e({unpoll:u}));const p=await s?.(m)??r;await iu(p);const y=async()=>{l&&(await e({unpoll:u}),await iu(r),y())};y()})(),u}const BE=new Map,RE=new Map;function ME(e){const n=(l,u)=>({clear:()=>u.delete(l),get:()=>u.get(l),set:f=>u.set(l,f)}),s=n(e,BE),r=n(e,RE);return{clear:()=>{s.clear(),r.clear()},promise:s,response:r}}async function CE(e,{cacheKey:n,cacheTime:s=Number.POSITIVE_INFINITY}){const r=ME(n),l=r.response.get();if(l&&s>0&&Date.now()-l.created.getTime()<s)return l.data;let u=r.promise.get();u||(u=e(),r.promise.set(u));try{const f=await u;return r.response.set({created:new Date,data:f}),f}finally{r.promise.clear()}}const OE=e=>`blockNumber.${e}`;async function Sl(e,{cacheTime:n=e.cacheTime}={}){const s=await CE(()=>e.request({method:"eth_blockNumber"}),{cacheKey:OE(e.uid),cacheTime:n});return BigInt(s)}async function Ru(e,{filter:n}){const s="strict"in n&&n.strict,r=await n.request({method:"eth_getFilterChanges",params:[n.id]});if(typeof r[0]=="string")return r;const l=r.map(u=>Za(u));return!("abi"in n)||!n.abi?l:Ph({abi:n.abi,logs:l,strict:s})}async function Mu(e,{filter:n}){return n.request({method:"eth_uninstallFilter",params:[n.id]})}function _E(e,n){const{abi:s,address:r,args:l,batch:u=!0,eventName:f,fromBlock:m,onError:p,onLogs:y,poll:b,pollingInterval:w=e.pollingInterval,strict:g}=n;return(typeof b<"u"?b:typeof m=="bigint"?!0:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc")))?(()=>{const j=g??!1,M=Gt(["watchContractEvent",r,l,u,e.uid,f,w,j,m]);return Ds(M,{onLogs:y,onError:p},I=>{let O;m!==void 0&&(O=m-1n);let B,A=!1;const z=xl(async()=>{if(!A){try{B=await Ae(e,B6,"createContractEventFilter")({abi:s,address:r,args:l,eventName:f,strict:j,fromBlock:m})}catch{}A=!0;return}try{let C;if(B)C=await Ae(e,Ru,"getFilterChanges")({filter:B});else{const Z=await Ae(e,Sl,"getBlockNumber")({});O&&O<Z?C=await Ae(e,a5,"getContractEvents")({abi:s,address:r,args:l,eventName:f,fromBlock:O+1n,toBlock:Z,strict:j}):C=[],O=Z}if(C.length===0)return;if(u)I.onLogs(C);else for(const Z of C)I.onLogs([Z])}catch(C){B&&C instanceof hi&&(A=!1),I.onError?.(C)}},{emitOnBegin:!0,interval:w});return async()=>{B&&await Ae(e,Mu,"uninstallFilter")({filter:B}),z()}})})():(()=>{const j=g??!1,M=Gt(["watchContractEvent",r,l,u,e.uid,f,w,j]);let I=!0,O=()=>I=!1;return Ds(M,{onLogs:y,onError:p},B=>((async()=>{try{const A=(()=>{if(e.transport.type==="fallback"){const Z=e.transport.transports.find(ee=>ee.config.type==="webSocket"||ee.config.type==="ipc");return Z?Z.value:e.transport}return e.transport})(),z=f?pl({abi:s,eventName:f,args:l}):[],{unsubscribe:C}=await A.subscribe({params:["logs",{address:r,topics:z}],onData(Z){if(!I)return;const ee=Z.result;try{const{eventName:J,args:K}=bl({abi:s,data:ee.data,topics:ee.topics,strict:g}),X=Za(ee,{args:K,eventName:J});B.onLogs([X])}catch(J){let K,X;if(J instanceof _o||J instanceof yu){if(g)return;K=J.abiItem.name,X=J.abiItem.inputs?.some(he=>!("name"in he&&he.name))}const oe=Za(ee,{args:X?[]:{},eventName:K});B.onLogs([oe])}},onError(Z){B.onError?.(Z)}});O=C,I||O()}catch(A){p?.(A)}})(),()=>O()))})()}async function zE(e,{serializedTransaction:n}){return e.request({method:"eth_sendRawTransaction",params:[n]},{retryCount:0})}function eh(e,{delay:n=100,retryCount:s=2,shouldRetry:r=()=>!0}={}){return new Promise((l,u)=>{const f=async({count:m=0}={})=>{const p=async({error:y})=>{const b=typeof n=="function"?n({count:m,error:y}):n;b&&await iu(b),f({count:m+1})};try{const y=await e();l(y)}catch(y){if(m<s&&await r({count:m,error:y}))return p({error:y});u(y)}};f()})}const $E={"0x0":"reverted","0x1":"success"};function B5(e,n){const s={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map(r=>Za(r)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Ya(e.transactionIndex):null,status:e.status?$E[e.status]:null,type:e.type?V6[e.type]||e.type:null};return e.blobGasPrice&&(s.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(s.blobGasUsed=BigInt(e.blobGasUsed)),s}const th=256;let Gc=th,Pc;function R5(e=11){if(!Pc||Gc+e>th*2){Pc="",Gc=0;for(let n=0;n<th;n++)Pc+=(256+Math.random()*256|0).toString(16).substring(1)}return Pc.substring(Gc,Gc+++e)}function DE(e){const{batch:n,chain:s,ccipRead:r,key:l="base",name:u="Base Client",type:f="base"}=e,m=e.experimental_blockTag??(typeof s?.experimental_preconfirmationTime=="number"?"pending":void 0),p=s?.blockTime??12e3,y=Math.min(Math.max(Math.floor(p/2),500),4e3),b=e.pollingInterval??y,w=e.cacheTime??b,g=e.account?na(e.account):void 0,{config:S,request:T,value:x}=e.transport({chain:s,pollingInterval:b}),j={...S,...x},M={account:g,batch:n,cacheTime:w,ccipRead:r,chain:s,key:l,name:u,pollingInterval:b,request:T,transport:j,type:f,uid:R5(),...m?{experimental_blockTag:m}:{}};function I(O){return B=>{const A=B(O);for(const C in M)delete A[C];const z={...O,...A};return Object.assign(z,{extend:I(z)})}}return Object.assign(M,{extend:I(M)})}function Jh(e){if(!(e instanceof re))return!1;const n=e.walk(s=>s instanceof H0);return n instanceof H0?n.data?.errorName==="HttpError"||n.data?.errorName==="ResolverError"||n.data?.errorName==="ResolverNotContract"||n.data?.errorName==="ResolverNotFound"||n.data?.errorName==="ReverseAddressMismatch"||n.data?.errorName==="UnsupportedResolverProfile":!1}function UE(e){const{abi:n,data:s}=e,r=xr(s,0,4),l=n.find(u=>u.type==="function"&&r===hl(Xn(u)));if(!l)throw new A8(r,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:l.name,args:"inputs"in l&&l.inputs&&l.inputs.length>0?ml(l.inputs,xr(s,4)):void 0}}const m0="/docs/contract/encodeErrorResult";function dg(e){const{abi:n,errorName:s,args:r}=e;let l=n[0];if(s){const p=wi({abi:n,args:r,name:s});if(!p)throw new O1(s,{docsPath:m0});l=p}if(l.type!=="error")throw new O1(void 0,{docsPath:m0});const u=Xn(l),f=hl(u);let m="0x";if(r&&r.length>0){if(!l.inputs)throw new S8(l.name,{docsPath:m0});m=vi(l.inputs,r)}return Nr([f,m])}const y0="/docs/contract/encodeFunctionResult";function qE(e){const{abi:n,functionName:s,result:r}=e;let l=n[0];if(s){const f=wi({abi:n,name:s});if(!f)throw new gr(s,{docsPath:y0});l=f}if(l.type!=="function")throw new gr(void 0,{docsPath:y0});if(!l.outputs)throw new c6(l.name,{docsPath:y0});const u=(()=>{if(l.outputs.length===0)return[];if(l.outputs.length===1)return[r];if(Array.isArray(r))return r;throw new u6(r)})();return vi(l.outputs,u)}const Cu="x-batch-gateway:true";async function LE(e){const{data:n,ccipRequest:s}=e,{args:[r]}=UE({abi:J0,data:n}),l=[],u=[];return await Promise.all(r.map(async(f,m)=>{try{u[m]=f.urls.includes(Cu)?await LE({data:f.data,ccipRequest:s}):await s(f),l[m]=!1}catch(p){l[m]=!0,u[m]=HE(p)}})),qE({abi:J0,functionName:"query",result:[l,u]})}function HE(e){return e.name==="HttpRequestError"&&e.status?dg({abi:J0,errorName:"HttpError",args:[e.status,e.shortMessage]}):dg({abi:[R6],errorName:"Error",args:["shortMessage"in e?e.shortMessage:e.message]})}function M5(e){if(e.length!==66||e.indexOf("[")!==0||e.indexOf("]")!==65)return null;const n=`0x${e.slice(1,65)}`;return pa(n)?n:null}function nh(e){let n=new Uint8Array(32).fill(0);if(!e)return Nt(n);const s=e.split(".");for(let r=s.length-1;r>=0;r-=1){const l=M5(s[r]),u=l?jr(l):jt(oi(s[r]),"bytes");n=jt(ba([n,u]),"bytes")}return Nt(n)}function IE(e){return`[${e.slice(2)}]`}function GE(e){const n=new Uint8Array(32).fill(0);return e?M5(e)||jt(oi(e)):Nt(n)}function Wh(e){const n=e.replace(/^\.|\.$/gm,"");if(n.length===0)return new Uint8Array(1);const s=new Uint8Array(oi(n).byteLength+2);let r=0;const l=n.split(".");for(let u=0;u<l.length;u++){let f=oi(l[u]);f.byteLength>255&&(f=oi(IE(GE(l[u])))),s[r]=f.length,s.set(f,r+1),r+=f.length+1}return s.byteLength!==r+1?s.slice(0,r+1):s}async function PE(e,n){const{blockNumber:s,blockTag:r,coinType:l,name:u,gatewayUrls:f,strict:m}=n,{chain:p}=e,y=(()=>{if(n.universalResolverAddress)return n.universalResolverAddress;if(!p)throw new Error("client chain not configured. universalResolverAddress is required.");return Br({blockNumber:s,chain:p,contract:"ensUniversalResolver"})})(),b=p?.ensTlds;if(b&&!b.some(g=>u.endsWith(g)))return null;const w=l!=null?[nh(u),BigInt(l)]:[nh(u)];try{const g=Gn({abi:lg,functionName:"addr",args:w}),S={address:y,abi:x5,functionName:"resolveWithGateways",args:[zs(Wh(u)),g,f??[Cu]],blockNumber:s,blockTag:r},x=await Ae(e,Wn,"readContract")(S);if(x[0]==="0x")return null;const j=Wa({abi:lg,args:w,functionName:"addr",data:x[0]});return j==="0x"||ri(j)==="0x00"?null:j}catch(g){if(m)throw g;if(Jh(g))return null;throw g}}class VE extends re{constructor({data:n}){super("Unable to extract image from metadata. The metadata may be malformed or invalid.",{metaMessages:["- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.","",`Provided data: ${JSON.stringify(n)}`],name:"EnsAvatarInvalidMetadataError"})}}class To extends re{constructor({reason:n}){super(`ENS NFT avatar URI is invalid. ${n}`,{name:"EnsAvatarInvalidNftUriError"})}}class ep extends re{constructor({uri:n}){super(`Unable to resolve ENS avatar URI "${n}". The URI may be malformed, invalid, or does not respond with a valid image.`,{name:"EnsAvatarUriResolutionError"})}}class KE extends re{constructor({namespace:n}){super(`ENS NFT avatar namespace "${n}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}}const FE=/(?<protocol>https?:\/\/[^/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/,YE=/^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\/(?<target>[\w\-.]+))?(?<subtarget>\/.*)?$/,ZE=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,XE=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function QE(e){try{const n=await fetch(e,{method:"HEAD"});return n.status===200?n.headers.get("content-type")?.startsWith("image/"):!1}catch(n){return typeof n=="object"&&typeof n.response<"u"||!Object.hasOwn(globalThis,"Image")?!1:new Promise(s=>{const r=new Image;r.onload=()=>{s(!0)},r.onerror=()=>{s(!1)},r.src=e})}}function fg(e,n){return e?e.endsWith("/")?e.slice(0,-1):e:n}function C5({uri:e,gatewayUrls:n}){const s=ZE.test(e);if(s)return{uri:e,isOnChain:!0,isEncoded:s};const r=fg(n?.ipfs,"https://ipfs.io"),l=fg(n?.arweave,"https://arweave.net"),u=e.match(FE),{protocol:f,subpath:m,target:p,subtarget:y=""}=u?.groups||{},b=f==="ipns:/"||m==="ipns/",w=f==="ipfs:/"||m==="ipfs/"||YE.test(e);if(e.startsWith("http")&&!b&&!w){let S=e;return n?.arweave&&(S=e.replace(/https:\/\/arweave.net/g,n?.arweave)),{uri:S,isOnChain:!1,isEncoded:!1}}if((b||w)&&p)return{uri:`${r}/${b?"ipns":"ipfs"}/${p}${y}`,isOnChain:!1,isEncoded:!1};if(f==="ar:/"&&p)return{uri:`${l}/${p}${y||""}`,isOnChain:!1,isEncoded:!1};let g=e.replace(XE,"");if(g.startsWith("<svg")&&(g=`data:image/svg+xml;base64,${btoa(g)}`),g.startsWith("data:")||g.startsWith("{"))return{uri:g,isOnChain:!0,isEncoded:!1};throw new ep({uri:e})}function O5(e){if(typeof e!="object"||!("image"in e)&&!("image_url"in e)&&!("image_data"in e))throw new VE({data:e});return e.image||e.image_url||e.image_data}async function JE({gatewayUrls:e,uri:n}){try{const s=await fetch(n).then(l=>l.json());return await tp({gatewayUrls:e,uri:O5(s)})}catch{throw new ep({uri:n})}}async function tp({gatewayUrls:e,uri:n}){const{uri:s,isOnChain:r}=C5({uri:n,gatewayUrls:e});if(r||await QE(s))return s;throw new ep({uri:n})}function WE(e){let n=e;n.startsWith("did:nft:")&&(n=n.replace("did:nft:","").replace(/_/g,"/"));const[s,r,l]=n.split("/"),[u,f]=s.split(":"),[m,p]=r.split(":");if(!u||u.toLowerCase()!=="eip155")throw new To({reason:"Only EIP-155 supported"});if(!f)throw new To({reason:"Chain ID not found"});if(!p)throw new To({reason:"Contract address not found"});if(!l)throw new To({reason:"Token ID not found"});if(!m)throw new To({reason:"ERC namespace not found"});return{chainID:Number.parseInt(f,10),namespace:m.toLowerCase(),contractAddress:p,tokenID:l}}async function eA(e,{nft:n}){if(n.namespace==="erc721")return Wn(e,{address:n.contractAddress,abi:[{name:"tokenURI",type:"function",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"tokenURI",args:[BigInt(n.tokenID)]});if(n.namespace==="erc1155")return Wn(e,{address:n.contractAddress,abi:[{name:"uri",type:"function",stateMutability:"view",inputs:[{name:"_id",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"uri",args:[BigInt(n.tokenID)]});throw new KE({namespace:n.namespace})}async function tA(e,{gatewayUrls:n,record:s}){return/eip155:/i.test(s)?nA(e,{gatewayUrls:n,record:s}):tp({uri:s,gatewayUrls:n})}async function nA(e,{gatewayUrls:n,record:s}){const r=WE(s),l=await eA(e,{nft:r}),{uri:u,isOnChain:f,isEncoded:m}=C5({uri:l,gatewayUrls:n});if(f&&(u.includes("data:application/json;base64,")||u.startsWith("{"))){const y=m?atob(u.replace("data:application/json;base64,","")):u,b=JSON.parse(y);return tp({uri:O5(b),gatewayUrls:n})}let p=r.tokenID;return r.namespace==="erc1155"&&(p=p.replace("0x","").padStart(64,"0")),JE({gatewayUrls:n,uri:u.replace(/(?:0x)?{id}/,p)})}async function _5(e,n){const{blockNumber:s,blockTag:r,key:l,name:u,gatewayUrls:f,strict:m}=n,{chain:p}=e,y=(()=>{if(n.universalResolverAddress)return n.universalResolverAddress;if(!p)throw new Error("client chain not configured. universalResolverAddress is required.");return Br({blockNumber:s,chain:p,contract:"ensUniversalResolver"})})(),b=p?.ensTlds;if(b&&!b.some(w=>u.endsWith(w)))return null;try{const w={address:y,abi:x5,args:[zs(Wh(u)),Gn({abi:og,functionName:"text",args:[nh(u),l]}),f??[Cu]],functionName:"resolveWithGateways",blockNumber:s,blockTag:r},S=await Ae(e,Wn,"readContract")(w);if(S[0]==="0x")return null;const T=Wa({abi:og,functionName:"text",data:S[0]});return T===""?null:T}catch(w){if(m)throw w;if(Jh(w))return null;throw w}}async function aA(e,{blockNumber:n,blockTag:s,assetGatewayUrls:r,name:l,gatewayUrls:u,strict:f,universalResolverAddress:m}){const p=await Ae(e,_5,"getEnsText")({blockNumber:n,blockTag:s,key:"avatar",name:l,universalResolverAddress:m,gatewayUrls:u,strict:f});if(!p)return null;try{return await tA(e,{record:p,gatewayUrls:r})}catch{return null}}async function sA(e,n){const{address:s,blockNumber:r,blockTag:l,coinType:u=60n,gatewayUrls:f,strict:m}=n,{chain:p}=e,y=(()=>{if(n.universalResolverAddress)return n.universalResolverAddress;if(!p)throw new Error("client chain not configured. universalResolverAddress is required.");return Br({blockNumber:r,chain:p,contract:"ensUniversalResolver"})})();try{const b={address:y,abi:vE,args:[s,u,f??[Cu]],functionName:"reverseWithGateways",blockNumber:r,blockTag:l},w=Ae(e,Wn,"readContract"),[g]=await w(b);return g||null}catch(b){if(m)throw b;if(Jh(b))return null;throw b}}async function iA(e,n){const{blockNumber:s,blockTag:r,name:l}=n,{chain:u}=e,f=(()=>{if(n.universalResolverAddress)return n.universalResolverAddress;if(!u)throw new Error("client chain not configured. universalResolverAddress is required.");return Br({blockNumber:s,chain:u,contract:"ensUniversalResolver"})})(),m=u?.ensTlds;if(m&&!m.some(y=>l.endsWith(y)))throw new Error(`${l} is not a valid ENS TLD (${m?.join(", ")}) for chain "${u.name}" (id: ${u.id}).`);const[p]=await Ae(e,Wn,"readContract")({address:f,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"},{type:"uint256"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[zs(Wh(l))],blockNumber:s,blockTag:r});return p}async function z5(e,n){const{account:s=e.account,blockNumber:r,blockTag:l="latest",blobs:u,data:f,gas:m,gasPrice:p,maxFeePerBlobGas:y,maxFeePerGas:b,maxPriorityFeePerGas:w,to:g,value:S,...T}=n,x=s?na(s):void 0;try{yl(n);const M=(typeof r=="bigint"?Ee(r):void 0)||l,I=e.chain?.formatters?.transactionRequest?.format,B=(I||Au)({...Uh(T,{format:I}),from:x?.address,blobs:u,data:f,gas:m,gasPrice:p,maxFeePerBlobGas:y,maxFeePerGas:b,maxPriorityFeePerGas:w,to:g,value:S},"createAccessList"),A=await e.request({method:"eth_createAccessList",params:[B,M]});return{accessList:A.accessList,gasUsed:BigInt(A.gasUsed)}}catch(j){throw T5(j,{...n,account:x,chain:e.chain})}}async function rA(e){const n=wu(e,{method:"eth_newBlockFilter"}),s=await e.request({method:"eth_newBlockFilter"});return{id:s,request:n(s),type:"block"}}async function $5(e,{address:n,args:s,event:r,events:l,fromBlock:u,strict:f,toBlock:m}={}){const p=l??(r?[r]:void 0),y=wu(e,{method:"eth_newFilter"});let b=[];p&&(b=[p.flatMap(S=>pl({abi:[S],eventName:S.name,args:s}))],r&&(b=b[0]));const w=await e.request({method:"eth_newFilter",params:[{address:n,fromBlock:typeof u=="bigint"?Ee(u):u,toBlock:typeof m=="bigint"?Ee(m):m,...b.length?{topics:b}:{}}]});return{abi:p,args:s,eventName:r?r.name:void 0,fromBlock:u,id:w,request:y(w),strict:!!f,toBlock:m,type:"event"}}async function D5(e){const n=wu(e,{method:"eth_newPendingTransactionFilter"}),s=await e.request({method:"eth_newPendingTransactionFilter"});return{id:s,request:n(s),type:"transaction"}}async function oA(e,{address:n,blockNumber:s,blockTag:r=e.experimental_blockTag??"latest"}){const l=typeof s=="bigint"?Ee(s):void 0,u=await e.request({method:"eth_getBalance",params:[n,l||r]});return BigInt(u)}async function lA(e){const n=await e.request({method:"eth_blobBaseFee"});return BigInt(n)}async function cA(e,{blockHash:n,blockNumber:s,blockTag:r="latest"}={}){const l=s!==void 0?Ee(s):void 0;let u;return n?u=await e.request({method:"eth_getBlockTransactionCountByHash",params:[n]},{dedupe:!0}):u=await e.request({method:"eth_getBlockTransactionCountByNumber",params:[l||r]},{dedupe:!!l}),Ya(u)}async function ah(e,{address:n,blockNumber:s,blockTag:r="latest"}){const l=s!==void 0?Ee(s):void 0,u=await e.request({method:"eth_getCode",params:[n,l||r]},{dedupe:!!l});if(u!=="0x")return u}class uA extends re{constructor({address:n}){super(`No EIP-712 domain found on contract "${n}".`,{metaMessages:["Ensure that:",`- The contract is deployed at the address "${n}".`,"- `eip712Domain()` function exists on the contract.","- `eip712Domain()` function matches signature to ERC-5267 specification."],name:"Eip712DomainNotFoundError"})}}async function dA(e,n){const{address:s,factory:r,factoryData:l}=n;try{const[u,f,m,p,y,b,w]=await Ae(e,Wn,"readContract")({abi:fA,address:s,functionName:"eip712Domain",factory:r,factoryData:l});return{domain:{name:f,version:m,chainId:Number(p),verifyingContract:y,salt:b},extensions:w,fields:u}}catch(u){const f=u;throw f.name==="ContractFunctionExecutionError"&&f.cause.name==="ContractFunctionZeroDataError"?new uA({address:s}):f}}const fA=[{inputs:[],name:"eip712Domain",outputs:[{name:"fields",type:"bytes1"},{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"},{name:"salt",type:"bytes32"},{name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"}];function hA(e){return{baseFeePerGas:e.baseFeePerGas.map(n=>BigInt(n)),gasUsedRatio:e.gasUsedRatio,oldestBlock:BigInt(e.oldestBlock),reward:e.reward?.map(n=>n.map(s=>BigInt(s)))}}async function pA(e,{blockCount:n,blockNumber:s,blockTag:r="latest",rewardPercentiles:l}){const u=typeof s=="bigint"?Ee(s):void 0,f=await e.request({method:"eth_feeHistory",params:[Ee(n),u||r,l]},{dedupe:!!u});return hA(f)}async function mA(e,{filter:n}){const s=n.strict??!1,l=(await n.request({method:"eth_getFilterLogs",params:[n.id]})).map(u=>Za(u));return n.abi?Ph({abi:n.abi,logs:l,strict:s}):l}async function yA({address:e,authorization:n,signature:s}){return Tu(E6(e),await G6({authorization:n,signature:s}))}const Vc=new Rh(8192);function bA(e,{enabled:n=!0,id:s}){if(!n||!s)return e();if(Vc.get(s))return Vc.get(s);const r=e().finally(()=>Vc.delete(s));return Vc.set(s,r),r}function gA(e,n={}){return async(s,r={})=>{const{dedupe:l=!1,methods:u,retryDelay:f=150,retryCount:m=3,uid:p}={...n,...r},{method:y}=s;if(u?.exclude?.includes(y))throw new ai(new Error("method not supported"),{method:y});if(u?.include&&!u.include.includes(y))throw new ai(new Error("method not supported"),{method:y});const b=l?zo(`${p}.${Gt(s)}`):void 0;return bA(()=>eh(async()=>{try{return await e(s)}catch(w){const g=w;switch(g.code){case Uo.code:throw new Uo(g);case qo.code:throw new qo(g);case Lo.code:throw new Lo(g,{method:s.method});case Ho.code:throw new Ho(g);case fi.code:throw new fi(g);case hi.code:throw new hi(g);case Io.code:throw new Io(g);case Go.code:throw new Go(g);case Sr.code:throw new Sr(g);case ai.code:throw new ai(g,{method:s.method});case Er.code:throw new Er(g);case Po.code:throw new Po(g);case li.code:throw new li(g);case Vo.code:throw new Vo(g);case Ko.code:throw new Ko(g);case Fo.code:throw new Fo(g);case Yo.code:throw new Yo(g);case Zo.code:throw new Zo(g);case Xo.code:throw new Xo(g);case Qo.code:throw new Qo(g);case Jo.code:throw new Jo(g);case Wo.code:throw new Wo(g);case el.code:throw new el(g);case tl.code:throw new tl(g);case nl.code:throw new nl(g);case 5e3:throw new li(g);default:throw w instanceof re?w:new tS(g)}}},{delay:({count:w,error:g})=>{if(g&&g instanceof Mo){const S=g?.headers?.get("Retry-After");if(S?.match(/\d/))return Number.parseInt(S,10)*1e3}return~~(1<<w)*f},retryCount:m,shouldRetry:({error:w})=>vA(w)}),{enabled:l,id:b})}}function vA(e){return"code"in e&&typeof e.code=="number"?e.code===-1||e.code===Er.code||e.code===fi.code:e instanceof Mo&&e.status?e.status===403||e.status===408||e.status===413||e.status===429||e.status===500||e.status===502||e.status===503||e.status===504:!0}function U5(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}function wA(e,{errorInstance:n=new Error("timed out"),timeout:s,signal:r}){return new Promise((l,u)=>{(async()=>{let f;try{const m=new AbortController;s>0&&(f=setTimeout(()=>{r&&m.abort()},s)),l(await e({signal:m?.signal||null}))}catch(m){m?.name==="AbortError"&&u(n),u(m)}finally{clearTimeout(f)}})()})}function xA(){return{current:0,take(){return this.current++},reset(){this.current=0}}}const hg=xA();function SA(e,n={}){return{async request(s){const{body:r,fetchFn:l=n.fetchFn??fetch,onRequest:u=n.onRequest,onResponse:f=n.onResponse,timeout:m=n.timeout??1e4}=s,p={...n.fetchOptions??{},...s.fetchOptions??{}},{headers:y,method:b,signal:w}=p;try{const g=await wA(async({signal:T})=>{const x={...p,body:Array.isArray(r)?Gt(r.map(O=>({jsonrpc:"2.0",id:O.id??hg.take(),...O}))):Gt({jsonrpc:"2.0",id:r.id??hg.take(),...r}),headers:{"Content-Type":"application/json",...y},method:b||"POST",signal:w||(m>0?T:null)},j=new Request(e,x),M=await u?.(j,x)??{...x,url:e};return await l(M.url??e,M)},{errorInstance:new F1({body:r,url:e}),timeout:m,signal:!0});f&&await f(g);let S;if(g.headers.get("Content-Type")?.startsWith("application/json"))S=await g.json();else{S=await g.text();try{S=JSON.parse(S||"{}")}catch(T){if(g.ok)throw T;S={error:S}}}if(!g.ok)throw new Mo({body:r,details:Gt(S.error)||g.statusText,headers:g.headers,status:g.status,url:e});return S}catch(g){throw g instanceof Mo||g instanceof F1?g:new Mo({body:r,cause:g,url:e})}}}}const EA=`Ethereum Signed Message: +`;function AA(e){const n=typeof e=="string"?zo(e):typeof e.raw=="string"?e.raw:Nt(e.raw),s=zo(`${EA}${mt(n)}`);return ba([s,n])}function q5(e,n){return jt(AA(e),n)}class TA extends re{constructor({domain:n}){super(`Invalid domain "${Gt(n)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}}class kA extends re{constructor({primaryType:n,types:s}){super(`Invalid primary type \`${n}\` must be one of \`${JSON.stringify(Object.keys(s))}\`.`,{docsPath:"/api/glossary/Errors#typeddatainvalidprimarytypeerror",metaMessages:["Check that the primary type is a key in `types`."]})}}class jA extends re{constructor({type:n}){super(`Struct type "${n}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}}function NA(e){const{domain:n,message:s,primaryType:r,types:l}=e,u=(f,m)=>{for(const p of f){const{name:y,type:b}=p,w=m[y],g=b.match(j6);if(g&&(typeof w=="number"||typeof w=="bigint")){const[x,j,M]=g;Ee(w,{signed:j==="int",size:Number.parseInt(M,10)/8})}if(b==="address"&&typeof w=="string"&&!dn(w))throw new $s({address:w});const S=b.match(g3);if(S){const[x,j]=S;if(j&&mt(w)!==Number.parseInt(j,10))throw new k8({expectedSize:Number.parseInt(j,10),givenSize:mt(w)})}const T=l[b];T&&(RA(b),u(T,w))}};if(l.EIP712Domain&&n){if(typeof n!="object")throw new TA({domain:n});u(l.EIP712Domain,n)}if(r!=="EIP712Domain")if(l[r])u(l[r],s);else throw new kA({primaryType:r,types:l})}function BA({domain:e}){return[typeof e?.name=="string"&&{name:"name",type:"string"},e?.version&&{name:"version",type:"string"},(typeof e?.chainId=="number"||typeof e?.chainId=="bigint")&&{name:"chainId",type:"uint256"},e?.verifyingContract&&{name:"verifyingContract",type:"address"},e?.salt&&{name:"salt",type:"bytes32"}].filter(Boolean)}function RA(e){if(e==="address"||e==="bool"||e==="string"||e.startsWith("bytes")||e.startsWith("uint")||e.startsWith("int"))throw new jA({type:e})}function MA(e){const{domain:n={},message:s,primaryType:r}=e,l={EIP712Domain:BA({domain:n}),...e.types};NA({domain:n,message:s,primaryType:r,types:l});const u=["0x1901"];return n&&u.push(CA({domain:n,types:l})),r!=="EIP712Domain"&&u.push(L5({data:s,primaryType:r,types:l})),jt(ba(u))}function CA({domain:e,types:n}){return L5({data:e,primaryType:"EIP712Domain",types:n})}function L5({data:e,primaryType:n,types:s}){const r=H5({data:e,primaryType:n,types:s});return jt(r)}function H5({data:e,primaryType:n,types:s}){const r=[{type:"bytes32"}],l=[OA({primaryType:n,types:s})];for(const u of s[n]){const[f,m]=G5({types:s,name:u.name,type:u.type,value:e[u.name]});r.push(f),l.push(m)}return vi(r,l)}function OA({primaryType:e,types:n}){const s=zs(_A({primaryType:e,types:n}));return jt(s)}function _A({primaryType:e,types:n}){let s="";const r=I5({primaryType:e,types:n});r.delete(e);const l=[e,...Array.from(r).sort()];for(const u of l)s+=`${u}(${n[u].map(({name:f,type:m})=>`${m} ${f}`).join(",")})`;return s}function I5({primaryType:e,types:n},s=new Set){const l=e.match(/^\w*/u)?.[0];if(s.has(l)||n[l]===void 0)return s;s.add(l);for(const u of n[l])I5({primaryType:u.type,types:n},s);return s}function G5({types:e,name:n,type:s,value:r}){if(e[s]!==void 0)return[{type:"bytes32"},jt(H5({data:r,primaryType:s,types:e}))];if(s==="bytes")return r=`0x${(r.length%2?"0":"")+r.slice(2)}`,[{type:"bytes32"},jt(r)];if(s==="string")return[{type:"bytes32"},jt(zs(r))];if(s.lastIndexOf("]")===s.length-1){const l=s.slice(0,s.lastIndexOf("[")),u=r.map(f=>G5({name:n,type:l,types:e,value:f}));return[{type:"bytes32"},jt(vi(u.map(([f])=>f),u.map(([,f])=>f)))]}return[{type:s},r]}class zA extends Map{constructor(n){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=n}get(n){const s=super.get(n);return super.has(n)&&s!==void 0&&(this.delete(n),super.set(n,s)),s}set(n,s){if(super.set(n,s),this.maxSize&&this.size>this.maxSize){const r=this.keys().next().value;r&&this.delete(r)}return this}}const $A={checksum:new zA(8192)},b0=$A.checksum;function P5(e,n={}){const{as:s=typeof e=="string"?"Hex":"Bytes"}=n,r=x6(WS(e));return s==="Bytes"?r:Jn(r)}const DA=/^0x[a-fA-F0-9]{40}$/;function Ou(e,n={}){const{strict:s=!0}=n;if(!DA.test(e))throw new pg({address:e,cause:new UA});if(s){if(e.toLowerCase()===e)return;if(V5(e)!==e)throw new pg({address:e,cause:new qA})}}function V5(e){if(b0.has(e))return b0.get(e);Ou(e,{strict:!1});const n=e.substring(2).toLowerCase(),s=P5(tE(n),{as:"Bytes"}),r=n.split("");for(let u=0;u<40;u+=2)s[u>>1]>>4>=8&&r[u]&&(r[u]=r[u].toUpperCase()),(s[u>>1]&15)>=8&&r[u+1]&&(r[u+1]=r[u+1].toUpperCase());const l=`0x${r.join("")}`;return b0.set(e,l),l}function sh(e,n={}){const{strict:s=!0}=n??{};try{return Ou(e,{strict:s}),!0}catch{return!1}}class pg extends Ce{constructor({address:n,cause:s}){super(`Address "${n}" is invalid.`,{cause:s}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}}class UA extends Ce{constructor(){super("Address is not a 20 byte (40 hexadecimal character) value."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"})}}class qA extends Ce{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}const LA=/^(.*)\[([0-9]*)\]$/,HA=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,K5=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,mg=2n**256n-1n;function mr(e,n,s){const{checksumAddress:r,staticPosition:l}=s,u=sp(n.type);if(u){const[f,m]=u;return GA(e,{...n,type:m},{checksumAddress:r,length:f,staticPosition:l})}if(n.type==="tuple")return FA(e,n,{checksumAddress:r,staticPosition:l});if(n.type==="address")return IA(e,{checksum:r});if(n.type==="bool")return PA(e);if(n.type.startsWith("bytes"))return VA(e,n,{staticPosition:l});if(n.type.startsWith("uint")||n.type.startsWith("int"))return KA(e,n);if(n.type==="string")return YA(e,{staticPosition:l});throw new rp(n.type)}const yg=32,ih=32;function IA(e,n={}){const{checksum:s=!1}=n,r=e.readBytes(32);return[(u=>s?V5(u):u)(Jn(aE(r,-20))),32]}function GA(e,n,s){const{checksumAddress:r,length:l,staticPosition:u}=s;if(!l){const p=Va(e.readBytes(ih)),y=u+p,b=y+yg;e.setPosition(y);const w=Va(e.readBytes(yg)),g=rl(n);let S=0;const T=[];for(let x=0;x<w;++x){e.setPosition(b+(g?x*32:S));const[j,M]=mr(e,n,{checksumAddress:r,staticPosition:b});S+=M,T.push(j)}return e.setPosition(u+32),[T,32]}if(rl(n)){const p=Va(e.readBytes(ih)),y=u+p,b=[];for(let w=0;w<l;++w){e.setPosition(y+w*32);const[g]=mr(e,n,{checksumAddress:r,staticPosition:y});b.push(g)}return e.setPosition(u+32),[b,32]}let f=0;const m=[];for(let p=0;p<l;++p){const[y,b]=mr(e,n,{checksumAddress:r,staticPosition:u+f});f+=b,m.push(y)}return[m,f]}function PA(e){return[iE(e.readBytes(32),{size:32}),32]}function VA(e,n,{staticPosition:s}){const[r,l]=n.type.split("bytes");if(!l){const f=Va(e.readBytes(32));e.setPosition(s+f);const m=Va(e.readBytes(32));if(m===0)return e.setPosition(s+32),["0x",32];const p=e.readBytes(m);return e.setPosition(s+32),[Jn(p),32]}return[Jn(e.readBytes(Number.parseInt(l,10),32)),32]}function KA(e,n){const s=n.type.startsWith("int"),r=Number.parseInt(n.type.split("int")[1]||"256",10),l=e.readBytes(32);return[r>48?sE(l,{signed:s}):Va(l,{signed:s}),32]}function FA(e,n,s){const{checksumAddress:r,staticPosition:l}=s,u=n.components.length===0||n.components.some(({name:p})=>!p),f=u?[]:{};let m=0;if(rl(n)){const p=Va(e.readBytes(ih)),y=l+p;for(let b=0;b<n.components.length;++b){const w=n.components[b];e.setPosition(y+m);const[g,S]=mr(e,w,{checksumAddress:r,staticPosition:y});m+=S,f[u?b:w?.name]=g}return e.setPosition(l+32),[f,32]}for(let p=0;p<n.components.length;++p){const y=n.components[p],[b,w]=mr(e,y,{checksumAddress:r,staticPosition:l});f[u?p:y?.name]=b,m+=w}return[f,m]}function YA(e,{staticPosition:n}){const s=Va(e.readBytes(32)),r=n+s;e.setPosition(r);const l=Va(e.readBytes(32));if(l===0)return e.setPosition(n+32),["",32];const u=e.readBytes(l,32),f=rE(h5(u));return e.setPosition(n+32),[f,32]}function ZA({checksumAddress:e,parameters:n,values:s}){const r=[];for(let l=0;l<n.length;l++)r.push(np({checksumAddress:e,parameter:n[l],value:s[l]}));return r}function np({checksumAddress:e=!1,parameter:n,value:s}){const r=n,l=sp(r.type);if(l){const[u,f]=l;return QA(s,{checksumAddress:e,length:u,parameter:{...r,type:f}})}if(r.type==="tuple")return nT(s,{checksumAddress:e,parameter:r});if(r.type==="address")return XA(s,{checksum:e});if(r.type==="bool")return WA(s);if(r.type.startsWith("uint")||r.type.startsWith("int")){const u=r.type.startsWith("int"),[,,f="256"]=K5.exec(r.type)??[];return eT(s,{signed:u,size:Number(f)})}if(r.type.startsWith("bytes"))return JA(s,{type:r.type});if(r.type==="string")return tT(s);throw new rp(r.type)}function ap(e){let n=0;for(let u=0;u<e.length;u++){const{dynamic:f,encoded:m}=e[u];f?n+=32:n+=Tn(m)}const s=[],r=[];let l=0;for(let u=0;u<e.length;u++){const{dynamic:f,encoded:m}=e[u];f?(s.push(Zt(n+l,{size:32})),r.push(m),l+=Tn(m)):s.push(m)}return Qn(...s,...r)}function XA(e,n){const{checksum:s=!1}=n;return Ou(e,{strict:s}),{dynamic:!1,encoded:pi(e.toLowerCase())}}function QA(e,n){const{checksumAddress:s,length:r,parameter:l}=n,u=r===null;if(!Array.isArray(e))throw new dT(e);if(!u&&e.length!==r)throw new uT({expectedLength:r,givenLength:e.length,type:`${l.type}[${r}]`});let f=!1;const m=[];for(let p=0;p<e.length;p++){const y=np({checksumAddress:s,parameter:l,value:e[p]});y.dynamic&&(f=!0),m.push(y)}if(u||f){const p=ap(m);if(u){const y=Zt(m.length,{size:32});return{dynamic:!0,encoded:m.length>0?Qn(y,p):y}}if(f)return{dynamic:!0,encoded:p}}return{dynamic:!1,encoded:Qn(...m.map(({encoded:p})=>p))}}function JA(e,{type:n}){const[,s]=n.split("bytes"),r=Tn(e);if(!s){let l=e;return r%32!==0&&(l=mi(l,Math.ceil((e.length-2)/2/32)*32)),{dynamic:!0,encoded:Qn(pi(Zt(r,{size:32})),l)}}if(r!==Number.parseInt(s,10))throw new Y5({expectedSize:Number.parseInt(s,10),value:e});return{dynamic:!1,encoded:mi(e)}}function WA(e){if(typeof e!="boolean")throw new Ce(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:pi(p5(e))}}function eT(e,{signed:n,size:s}){if(typeof s=="number"){const r=2n**(BigInt(s)-(n?1n:0n))-1n,l=n?-r-1n:0n;if(e>r||e<l)throw new b5({max:r.toString(),min:l.toString(),signed:n,size:s/8,value:e.toString()})}return{dynamic:!1,encoded:Zt(e,{size:32,signed:n})}}function tT(e){const n=Zh(e),s=Math.ceil(Tn(n)/32),r=[];for(let l=0;l<s;l++)r.push(mi(ha(n,l*32,(l+1)*32)));return{dynamic:!0,encoded:Qn(mi(Zt(Tn(n),{size:32})),...r)}}function nT(e,n){const{checksumAddress:s,parameter:r}=n;let l=!1;const u=[];for(let f=0;f<r.components.length;f++){const m=r.components[f],p=Array.isArray(e)?f:m.name,y=np({checksumAddress:s,parameter:m,value:e[p]});u.push(y),y.dynamic&&(l=!0)}return{dynamic:l,encoded:l?ap(u):Qn(...u.map(({encoded:f})=>f))}}function sp(e){const n=e.match(/^(.*)\[(\d+)?\]$/);return n?[n[2]?Number(n[2]):null,n[1]]:void 0}function rl(e){const{type:n}=e;if(n==="string"||n==="bytes"||n.endsWith("[]"))return!0;if(n==="tuple")return e.components?.some(rl);const s=sp(e.type);return!!(s&&rl({...e,type:s[1]}))}const aT={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new rT({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new iT({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new bg({offset:e});const n=this.position-e;this.assertPosition(n),this.position=n},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new bg({offset:e});const n=this.position+e;this.assertPosition(n),this.position=n},inspectByte(e){const n=e??this.position;return this.assertPosition(n),this.bytes[n]},inspectBytes(e,n){const s=n??this.position;return this.assertPosition(s+e-1),this.bytes.subarray(s,s+e)},inspectUint8(e){const n=e??this.position;return this.assertPosition(n),this.bytes[n]},inspectUint16(e){const n=e??this.position;return this.assertPosition(n+1),this.dataView.getUint16(n)},inspectUint24(e){const n=e??this.position;return this.assertPosition(n+2),(this.dataView.getUint16(n)<<8)+this.dataView.getUint8(n+2)},inspectUint32(e){const n=e??this.position;return this.assertPosition(n+3),this.dataView.getUint32(n)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,n){this.assertReadLimit(),this._touch();const s=this.inspectBytes(e);return this.position+=n??e,s},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const n=this.position;return this.assertPosition(e),this.position=e,()=>this.position=n},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function sT(e,{recursiveReadLimit:n=8192}={}){const s=Object.create(aT);return s.bytes=e,s.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),s.positionReadCount=new Map,s.recursiveReadLimit=n,s}class bg extends Ce{constructor({offset:n}){super(`Offset \`${n}\` cannot be negative.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"})}}class iT extends Ce{constructor({length:n,position:s}){super(`Position \`${s}\` is out of bounds (\`0 < position < ${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.PositionOutOfBoundsError"})}}class rT extends Ce{constructor({count:n,limit:s}){super(`Recursive read limit of \`${s}\` exceeded (recursive read count: \`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.RecursiveReadLimitExceededError"})}}function oT(e,n,s={}){const{as:r="Array",checksumAddress:l=!1}=s,u=typeof n=="string"?f5(n):n,f=sT(u);if(ur(u)===0&&e.length>0)throw new cT;if(ur(u)&&ur(u)<32)throw new lT({data:typeof n=="string"?n:Jn(n),parameters:e,size:ur(u)});let m=0;const p=r==="Array"?[]:{};for(let y=0;y<e.length;++y){const b=e[y];f.setPosition(m);const[w,g]=mr(f,b,{checksumAddress:l,staticPosition:0});m+=g,r==="Array"?p.push(w):p[b.name??y]=w}return p}function ip(e,n,s){const{checksumAddress:r=!1}={};if(e.length!==n.length)throw new Z5({expectedLength:e.length,givenLength:n.length});const l=ZA({checksumAddress:r,parameters:e,values:n}),u=ap(l);return u.length===0?"0x":u}function rh(e,n){if(e.length!==n.length)throw new Z5({expectedLength:e.length,givenLength:n.length});const s=[];for(let r=0;r<e.length;r++){const l=e[r],u=n[r];s.push(rh.encode(l,u))}return Qn(...s)}(function(e){function n(s,r,l=!1){if(s==="address"){const p=r;return Ou(p),pi(p.toLowerCase(),l?32:0)}if(s==="string")return Zh(r);if(s==="bytes")return r;if(s==="bool")return pi(p5(r),l?32:1);const u=s.match(K5);if(u){const[p,y,b="256"]=u,w=Number.parseInt(b,10)/8;return Zt(r,{size:l?32:w,signed:y==="int"})}const f=s.match(HA);if(f){const[p,y]=f;if(Number.parseInt(y,10)!==(r.length-2)/2)throw new Y5({expectedSize:Number.parseInt(y,10),value:r});return mi(r,l?32:0)}const m=s.match(LA);if(m&&Array.isArray(r)){const[p,y]=m,b=[];for(let w=0;w<r.length;w++)b.push(n(y,r[w],!0));return b.length===0?"0x":Qn(...b)}throw new rp(s)}e.encode=n})(rh||(rh={}));function F5(e){return Array.isArray(e)&&typeof e[0]=="string"||typeof e=="string"?M1(e):e}class lT extends Ce{constructor({data:n,parameters:s,size:r}){super(`Data size of ${r} bytes is too small for given parameters.`,{metaMessages:[`Params: (${lr(s)})`,`Data: ${n} (${r} bytes)`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.DataSizeTooSmallError"})}}class cT extends Ce{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.'),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ZeroDataError"})}}class uT extends Ce{constructor({expectedLength:n,givenLength:s,type:r}){super(`Array length mismatch for type \`${r}\`. Expected: \`${n}\`. Given: \`${s}\`.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ArrayLengthMismatchError"})}}class Y5 extends Ce{constructor({expectedSize:n,value:s}){super(`Size of bytes "${s}" (bytes${Tn(s)}) does not match expected size (bytes${n}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}}class Z5 extends Ce{constructor({expectedLength:n,givenLength:s}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${n}`,`Given length (values): ${s}`].join(` +`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.LengthMismatchError"})}}class dT extends Ce{constructor(n){super(`Value \`${n}\` is not a valid array.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidArrayError"})}}class rp extends Ce{constructor(n){super(`Type \`${n}\` is not a valid ABI Type.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidTypeError"})}}class X5 extends Nh{constructor(n,s){super(),this.finished=!1,this.destroyed=!1,Y8(n);const r=bu(s);if(this.iHash=n.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const l=this.blockLen,u=new Uint8Array(l);u.set(r.length>l?n.create().update(r).digest():r);for(let f=0;f<u.length;f++)u[f]^=54;this.iHash.update(u),this.oHash=n.create();for(let f=0;f<u.length;f++)u[f]^=106;this.oHash.update(u),wr(u)}update(n){return vr(this),this.iHash.update(n),this}digestInto(n){vr(this),di(n,this.outputLen),this.finished=!0,this.iHash.digestInto(n),this.oHash.update(n),this.oHash.digestInto(n),this.destroy()}digest(){const n=new Uint8Array(this.oHash.outputLen);return this.digestInto(n),n}_cloneInto(n){n||(n=Object.create(Object.getPrototypeOf(this),{}));const{oHash:s,iHash:r,finished:l,destroyed:u,blockLen:f,outputLen:m}=this;return n=n,n.finished=l,n.destroyed=u,n.blockLen=f,n.outputLen=m,n.oHash=s._cloneInto(n.oHash),n.iHash=r._cloneInto(n.iHash),n}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const Q5=(e,n,s)=>new X5(e,n).update(s).digest();Q5.create=(e,n)=>new X5(e,n);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const un=BigInt(0),Qt=BigInt(1),ii=BigInt(2),fT=BigInt(3),J5=BigInt(4),W5=BigInt(5),ev=BigInt(8);function on(e,n){const s=e%n;return s>=un?s:n+s}function Dn(e,n,s){let r=e;for(;n-- >un;)r*=r,r%=s;return r}function oh(e,n){if(e===un)throw new Error("invert: expected non-zero number");if(n<=un)throw new Error("invert: expected positive modulus, got "+n);let s=on(e,n),r=n,l=un,u=Qt;for(;s!==un;){const m=r/s,p=r%s,y=l-u*m;r=s,s=p,l=u,u=y}if(r!==Qt)throw new Error("invert: does not exist");return on(l,n)}function tv(e,n){const s=(e.ORDER+Qt)/J5,r=e.pow(n,s);if(!e.eql(e.sqr(r),n))throw new Error("Cannot find square root");return r}function hT(e,n){const s=(e.ORDER-W5)/ev,r=e.mul(n,ii),l=e.pow(r,s),u=e.mul(n,l),f=e.mul(e.mul(u,ii),l),m=e.mul(u,e.sub(f,e.ONE));if(!e.eql(e.sqr(m),n))throw new Error("Cannot find square root");return m}function pT(e){if(e<BigInt(3))throw new Error("sqrt is not defined for small field");let n=e-Qt,s=0;for(;n%ii===un;)n/=ii,s++;let r=ii;const l=op(e);for(;gg(l,r)===1;)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(s===1)return tv;let u=l.pow(r,n);const f=(n+Qt)/ii;return function(p,y){if(p.is0(y))return y;if(gg(p,y)!==1)throw new Error("Cannot find square root");let b=s,w=p.mul(p.ONE,u),g=p.pow(y,n),S=p.pow(y,f);for(;!p.eql(g,p.ONE);){if(p.is0(g))return p.ZERO;let T=1,x=p.sqr(g);for(;!p.eql(x,p.ONE);)if(T++,x=p.sqr(x),T===b)throw new Error("Cannot find square root");const j=Qt<<BigInt(b-T-1),M=p.pow(w,j);b=T,w=p.sqr(M),g=p.mul(g,w),S=p.mul(S,M)}return S}}function mT(e){return e%J5===fT?tv:e%ev===W5?hT:pT(e)}const yT=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function bT(e){const n={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},s=yT.reduce((r,l)=>(r[l]="function",r),n);return ju(e,s)}function gT(e,n,s){if(s<un)throw new Error("invalid exponent, negatives unsupported");if(s===un)return e.ONE;if(s===Qt)return n;let r=e.ONE,l=n;for(;s>un;)s&Qt&&(r=e.mul(r,l)),l=e.sqr(l),s>>=Qt;return r}function nv(e,n,s=!1){const r=new Array(n.length).fill(s?e.ZERO:void 0),l=n.reduce((f,m,p)=>e.is0(m)?f:(r[p]=f,e.mul(f,m)),e.ONE),u=e.inv(l);return n.reduceRight((f,m,p)=>e.is0(m)?f:(r[p]=e.mul(f,r[p]),e.mul(f,m)),u),r}function gg(e,n){const s=(e.ORDER-Qt)/ii,r=e.pow(n,s),l=e.eql(r,e.ONE),u=e.eql(r,e.ZERO),f=e.eql(r,e.neg(e.ONE));if(!l&&!u&&!f)throw new Error("invalid Legendre symbol result");return l?1:u?0:-1}function av(e,n){n!==void 0&&$o(n);const s=n!==void 0?n:e.toString(2).length,r=Math.ceil(s/8);return{nBitLength:s,nByteLength:r}}function op(e,n,s=!1,r={}){if(e<=un)throw new Error("invalid field: expected ORDER > 0, got "+e);const{nBitLength:l,nByteLength:u}=av(e,n);if(u>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let f;const m=Object.freeze({ORDER:e,isLE:s,BITS:l,BYTES:u,MASK:ku(l),ZERO:un,ONE:Qt,create:p=>on(p,e),isValid:p=>{if(typeof p!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof p);return un<=p&&p<e},is0:p=>p===un,isOdd:p=>(p&Qt)===Qt,neg:p=>on(-p,e),eql:(p,y)=>p===y,sqr:p=>on(p*p,e),add:(p,y)=>on(p+y,e),sub:(p,y)=>on(p-y,e),mul:(p,y)=>on(p*y,e),pow:(p,y)=>gT(m,p,y),div:(p,y)=>on(p*oh(y,e),e),sqrN:p=>p*p,addN:(p,y)=>p+y,subN:(p,y)=>p-y,mulN:(p,y)=>p*y,inv:p=>oh(p,e),sqrt:r.sqrt||(p=>(f||(f=mT(e)),f(m,p))),toBytes:p=>s?o5(p,u):vl(p,u),fromBytes:p=>{if(p.length!==u)throw new Error("Field.fromBytes: expected "+u+" bytes, got "+p.length);return s?r5(p):ci(p)},invertBatch:p=>nv(m,p),cmov:(p,y,b)=>b?y:p});return Object.freeze(m)}function sv(e){if(typeof e!="bigint")throw new Error("field order must be bigint");const n=e.toString(2).length;return Math.ceil(n/8)}function iv(e){const n=sv(e);return n+Math.ceil(n/2)}function vT(e,n,s=!1){const r=e.length,l=sv(n),u=iv(n);if(r<16||r<u||r>1024)throw new Error("expected "+u+"-1024 bytes of input, got "+r);const f=s?r5(e):ci(e),m=on(f,n-Qt)+Qt;return s?o5(m,l):vl(m,l)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const vg=BigInt(0),lh=BigInt(1);function g0(e,n){const s=n.negate();return e?s:n}function rv(e,n){if(!Number.isSafeInteger(e)||e<=0||e>n)throw new Error("invalid window size, expected [1.."+n+"], got W="+e)}function v0(e,n){rv(e,n);const s=Math.ceil(n/e)+1,r=2**(e-1),l=2**e,u=ku(e),f=BigInt(e);return{windows:s,windowSize:r,mask:u,maxNumber:l,shiftBy:f}}function wg(e,n,s){const{windowSize:r,mask:l,maxNumber:u,shiftBy:f}=s;let m=Number(e&l),p=e>>f;m>r&&(m-=u,p+=lh);const y=n*r,b=y+Math.abs(m)-1,w=m===0,g=m<0,S=n%2!==0;return{nextN:p,offset:b,isZero:w,isNeg:g,isNegF:S,offsetF:y}}function wT(e,n){if(!Array.isArray(e))throw new Error("array expected");e.forEach((s,r)=>{if(!(s instanceof n))throw new Error("invalid point at index "+r)})}function xT(e,n){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((s,r)=>{if(!n.isValid(s))throw new Error("invalid scalar at index "+r)})}const w0=new WeakMap,ov=new WeakMap;function x0(e){return ov.get(e)||1}function ST(e,n){return{constTimeNegate:g0,hasPrecomputes(s){return x0(s)!==1},unsafeLadder(s,r,l=e.ZERO){let u=s;for(;r>vg;)r&lh&&(l=l.add(u)),u=u.double(),r>>=lh;return l},precomputeWindow(s,r){const{windows:l,windowSize:u}=v0(r,n),f=[];let m=s,p=m;for(let y=0;y<l;y++){p=m,f.push(p);for(let b=1;b<u;b++)p=p.add(m),f.push(p);m=p.double()}return f},wNAF(s,r,l){let u=e.ZERO,f=e.BASE;const m=v0(s,n);for(let p=0;p<m.windows;p++){const{nextN:y,offset:b,isZero:w,isNeg:g,isNegF:S,offsetF:T}=wg(l,p,m);l=y,w?f=f.add(g0(S,r[T])):u=u.add(g0(g,r[b]))}return{p:u,f}},wNAFUnsafe(s,r,l,u=e.ZERO){const f=v0(s,n);for(let m=0;m<f.windows&&l!==vg;m++){const{nextN:p,offset:y,isZero:b,isNeg:w}=wg(l,m,f);if(l=p,!b){const g=r[y];u=u.add(w?g.negate():g)}}return u},getPrecomputes(s,r,l){let u=w0.get(r);return u||(u=this.precomputeWindow(r,s),s!==1&&w0.set(r,l(u))),u},wNAFCached(s,r,l){const u=x0(s);return this.wNAF(u,this.getPrecomputes(u,s,l),r)},wNAFCachedUnsafe(s,r,l,u){const f=x0(s);return f===1?this.unsafeLadder(s,r,u):this.wNAFUnsafe(f,this.getPrecomputes(f,s,l),r,u)},setWindowSize(s,r){rv(r,n),ov.set(s,r),w0.delete(s)}}}function ET(e,n,s,r){wT(s,e),xT(r,n);const l=s.length,u=r.length;if(l!==u)throw new Error("arrays of points and scalars must have equal length");const f=e.ZERO,m=IS(BigInt(l));let p=1;m>12?p=m-3:m>4?p=m-2:m>0&&(p=2);const y=ku(p),b=new Array(Number(y)+1).fill(f),w=Math.floor((n.BITS-1)/p)*p;let g=f;for(let S=w;S>=0;S-=p){b.fill(f);for(let x=0;x<u;x++){const j=r[x],M=Number(j>>BigInt(S)&y);b[M]=b[M].add(s[x])}let T=f;for(let x=b.length-1,j=f;x>0;x--)j=j.add(b[x]),T=T.add(j);if(g=g.add(T),S!==0)for(let x=0;x<p;x++)g=g.double()}return g}function lv(e){return bT(e.Fp),ju(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...av(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function xg(e){e.lowS!==void 0&&al("lowS",e.lowS),e.prehash!==void 0&&al("prehash",e.prehash)}function AT(e){const n=lv(e);ju(n,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});const{endo:s,Fp:r,a:l}=n;if(s){if(!r.eql(l,r.ZERO))throw new Error("invalid endo: CURVE.a must be 0");if(typeof s!="object"||typeof s.beta!="bigint"||typeof s.splitScalar!="function")throw new Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...n})}class TT extends Error{constructor(n=""){super(n)}}const La={Err:TT,_tlv:{encode:(e,n)=>{const{Err:s}=La;if(e<0||e>256)throw new s("tlv.encode: wrong tag");if(n.length&1)throw new s("tlv.encode: unpadded data");const r=n.length/2,l=Ic(r);if(l.length/2&128)throw new s("tlv.encode: long form length too big");const u=r>127?Ic(l.length/2|128):"";return Ic(e)+u+l+n},decode(e,n){const{Err:s}=La;let r=0;if(e<0||e>256)throw new s("tlv.encode: wrong tag");if(n.length<2||n[r++]!==e)throw new s("tlv.decode: wrong tlv");const l=n[r++],u=!!(l&128);let f=0;if(!u)f=l;else{const p=l&127;if(!p)throw new s("tlv.decode(long): indefinite length not supported");if(p>4)throw new s("tlv.decode(long): byte length is too big");const y=n.subarray(r,r+p);if(y.length!==p)throw new s("tlv.decode: length bytes not complete");if(y[0]===0)throw new s("tlv.decode(long): zero leftmost byte");for(const b of y)f=f<<8|b;if(r+=p,f<128)throw new s("tlv.decode(long): not minimal encoding")}const m=n.subarray(r,r+f);if(m.length!==f)throw new s("tlv.decode: wrong value length");return{v:m,l:n.subarray(r+f)}}},_int:{encode(e){const{Err:n}=La;if(e<Ia)throw new n("integer: negative integers are not allowed");let s=Ic(e);if(Number.parseInt(s[0],16)&8&&(s="00"+s),s.length&1)throw new n("unexpected DER parsing assertion: unpadded hex");return s},decode(e){const{Err:n}=La;if(e[0]&128)throw new n("invalid signature integer: negative");if(e[0]===0&&!(e[1]&128))throw new n("invalid signature integer: unnecessary leading zero");return ci(e)}},toSig(e){const{Err:n,_int:s,_tlv:r}=La,l=Un("signature",e),{v:u,l:f}=r.decode(48,l);if(f.length)throw new n("invalid signature: left bytes after parsing");const{v:m,l:p}=r.decode(2,u),{v:y,l:b}=r.decode(2,p);if(b.length)throw new n("invalid signature: left bytes after parsing");return{r:s.decode(m),s:s.decode(y)}},hexFromSig(e){const{_tlv:n,_int:s}=La,r=n.encode(2,s.encode(e.r)),l=n.encode(2,s.encode(e.s)),u=r+l;return n.encode(48,u)}};function S0(e,n){return sl(vl(e,n))}const Ia=BigInt(0),Ct=BigInt(1);BigInt(2);const E0=BigInt(3),kT=BigInt(4);function jT(e){const n=AT(e),{Fp:s}=n,r=op(n.n,n.nBitLength),l=n.toBytes||((O,B,A)=>{const z=B.toAffine();return su(Uint8Array.from([4]),s.toBytes(z.x),s.toBytes(z.y))}),u=n.fromBytes||(O=>{const B=O.subarray(1),A=s.fromBytes(B.subarray(0,s.BYTES)),z=s.fromBytes(B.subarray(s.BYTES,2*s.BYTES));return{x:A,y:z}});function f(O){const{a:B,b:A}=n,z=s.sqr(O),C=s.mul(z,O);return s.add(s.add(C,s.mul(O,B)),A)}function m(O,B){const A=s.sqr(B),z=f(O);return s.eql(A,z)}if(!m(n.Gx,n.Gy))throw new Error("bad curve params: generator point");const p=s.mul(s.pow(n.a,E0),kT),y=s.mul(s.sqr(n.b),BigInt(27));if(s.is0(s.add(p,y)))throw new Error("bad curve params: a or b");function b(O){return Yh(O,Ct,n.n)}function w(O){const{allowedPrivateKeyLengths:B,nByteLength:A,wrapPrivateKey:z,n:C}=n;if(B&&typeof O!="bigint"){if(gl(O)&&(O=sl(O)),typeof O!="string"||!B.includes(O.length))throw new Error("invalid private key");O=O.padStart(A*2,"0")}let Z;try{Z=typeof O=="bigint"?O:ci(Un("private key",O,A))}catch{throw new Error("invalid private key, expected hex or "+A+" bytes, got "+typeof O)}return z&&(Z=on(Z,C)),pr("private key",Z,Ct,C),Z}function g(O){if(!(O instanceof x))throw new Error("ProjectivePoint expected")}const S=ag((O,B)=>{const{px:A,py:z,pz:C}=O;if(s.eql(C,s.ONE))return{x:A,y:z};const Z=O.is0();B==null&&(B=Z?s.ONE:s.inv(C));const ee=s.mul(A,B),J=s.mul(z,B),K=s.mul(C,B);if(Z)return{x:s.ZERO,y:s.ZERO};if(!s.eql(K,s.ONE))throw new Error("invZ was invalid");return{x:ee,y:J}}),T=ag(O=>{if(O.is0()){if(n.allowInfinityPoint&&!s.is0(O.py))return;throw new Error("bad point: ZERO")}const{x:B,y:A}=O.toAffine();if(!s.isValid(B)||!s.isValid(A))throw new Error("bad point: x or y not FE");if(!m(B,A))throw new Error("bad point: equation left != right");if(!O.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class x{constructor(B,A,z){if(B==null||!s.isValid(B))throw new Error("x required");if(A==null||!s.isValid(A)||s.is0(A))throw new Error("y required");if(z==null||!s.isValid(z))throw new Error("z required");this.px=B,this.py=A,this.pz=z,Object.freeze(this)}static fromAffine(B){const{x:A,y:z}=B||{};if(!B||!s.isValid(A)||!s.isValid(z))throw new Error("invalid affine point");if(B instanceof x)throw new Error("projective point not allowed");const C=Z=>s.eql(Z,s.ZERO);return C(A)&&C(z)?x.ZERO:new x(A,z,s.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(B){const A=nv(s,B.map(z=>z.pz));return B.map((z,C)=>z.toAffine(A[C])).map(x.fromAffine)}static fromHex(B){const A=x.fromAffine(u(Un("pointHex",B)));return A.assertValidity(),A}static fromPrivateKey(B){return x.BASE.multiply(w(B))}static msm(B,A){return ET(x,r,B,A)}_setWindowSize(B){I.setWindowSize(this,B)}assertValidity(){T(this)}hasEvenY(){const{y:B}=this.toAffine();if(s.isOdd)return!s.isOdd(B);throw new Error("Field doesn't support isOdd")}equals(B){g(B);const{px:A,py:z,pz:C}=this,{px:Z,py:ee,pz:J}=B,K=s.eql(s.mul(A,J),s.mul(Z,C)),X=s.eql(s.mul(z,J),s.mul(ee,C));return K&&X}negate(){return new x(this.px,s.neg(this.py),this.pz)}double(){const{a:B,b:A}=n,z=s.mul(A,E0),{px:C,py:Z,pz:ee}=this;let J=s.ZERO,K=s.ZERO,X=s.ZERO,oe=s.mul(C,C),he=s.mul(Z,Z),ae=s.mul(ee,ee),R=s.mul(C,Z);return R=s.add(R,R),X=s.mul(C,ee),X=s.add(X,X),J=s.mul(B,X),K=s.mul(z,ae),K=s.add(J,K),J=s.sub(he,K),K=s.add(he,K),K=s.mul(J,K),J=s.mul(R,J),X=s.mul(z,X),ae=s.mul(B,ae),R=s.sub(oe,ae),R=s.mul(B,R),R=s.add(R,X),X=s.add(oe,oe),oe=s.add(X,oe),oe=s.add(oe,ae),oe=s.mul(oe,R),K=s.add(K,oe),ae=s.mul(Z,ee),ae=s.add(ae,ae),oe=s.mul(ae,R),J=s.sub(J,oe),X=s.mul(ae,he),X=s.add(X,X),X=s.add(X,X),new x(J,K,X)}add(B){g(B);const{px:A,py:z,pz:C}=this,{px:Z,py:ee,pz:J}=B;let K=s.ZERO,X=s.ZERO,oe=s.ZERO;const he=n.a,ae=s.mul(n.b,E0);let R=s.mul(A,Z),V=s.mul(z,ee),Y=s.mul(C,J),se=s.add(A,z),le=s.add(Z,ee);se=s.mul(se,le),le=s.add(R,V),se=s.sub(se,le),le=s.add(A,C);let k=s.add(Z,J);return le=s.mul(le,k),k=s.add(R,Y),le=s.sub(le,k),k=s.add(z,C),K=s.add(ee,J),k=s.mul(k,K),K=s.add(V,Y),k=s.sub(k,K),oe=s.mul(he,le),K=s.mul(ae,Y),oe=s.add(K,oe),K=s.sub(V,oe),oe=s.add(V,oe),X=s.mul(K,oe),V=s.add(R,R),V=s.add(V,R),Y=s.mul(he,Y),le=s.mul(ae,le),V=s.add(V,Y),Y=s.sub(R,Y),Y=s.mul(he,Y),le=s.add(le,Y),R=s.mul(V,le),X=s.add(X,R),R=s.mul(k,le),K=s.mul(se,K),K=s.sub(K,R),R=s.mul(se,V),oe=s.mul(k,oe),oe=s.add(oe,R),new x(K,X,oe)}subtract(B){return this.add(B.negate())}is0(){return this.equals(x.ZERO)}wNAF(B){return I.wNAFCached(this,B,x.normalizeZ)}multiplyUnsafe(B){const{endo:A,n:z}=n;pr("scalar",B,Ia,z);const C=x.ZERO;if(B===Ia)return C;if(this.is0()||B===Ct)return this;if(!A||I.hasPrecomputes(this))return I.wNAFCachedUnsafe(this,B,x.normalizeZ);let{k1neg:Z,k1:ee,k2neg:J,k2:K}=A.splitScalar(B),X=C,oe=C,he=this;for(;ee>Ia||K>Ia;)ee&Ct&&(X=X.add(he)),K&Ct&&(oe=oe.add(he)),he=he.double(),ee>>=Ct,K>>=Ct;return Z&&(X=X.negate()),J&&(oe=oe.negate()),oe=new x(s.mul(oe.px,A.beta),oe.py,oe.pz),X.add(oe)}multiply(B){const{endo:A,n:z}=n;pr("scalar",B,Ct,z);let C,Z;if(A){const{k1neg:ee,k1:J,k2neg:K,k2:X}=A.splitScalar(B);let{p:oe,f:he}=this.wNAF(J),{p:ae,f:R}=this.wNAF(X);oe=I.constTimeNegate(ee,oe),ae=I.constTimeNegate(K,ae),ae=new x(s.mul(ae.px,A.beta),ae.py,ae.pz),C=oe.add(ae),Z=he.add(R)}else{const{p:ee,f:J}=this.wNAF(B);C=ee,Z=J}return x.normalizeZ([C,Z])[0]}multiplyAndAddUnsafe(B,A,z){const C=x.BASE,Z=(J,K)=>K===Ia||K===Ct||!J.equals(C)?J.multiplyUnsafe(K):J.multiply(K),ee=Z(this,A).add(Z(B,z));return ee.is0()?void 0:ee}toAffine(B){return S(this,B)}isTorsionFree(){const{h:B,isTorsionFree:A}=n;if(B===Ct)return!0;if(A)return A(x,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:B,clearCofactor:A}=n;return B===Ct?this:A?A(x,this):this.multiplyUnsafe(n.h)}toRawBytes(B=!0){return al("isCompressed",B),this.assertValidity(),l(x,this,B)}toHex(B=!0){return al("isCompressed",B),sl(this.toRawBytes(B))}}x.BASE=new x(n.Gx,n.Gy,s.ONE),x.ZERO=new x(s.ZERO,s.ONE,s.ZERO);const{endo:j,nBitLength:M}=n,I=ST(x,j?Math.ceil(M/2):M);return{CURVE:n,ProjectivePoint:x,normPrivateKeyToScalar:w,weierstrassEquation:f,isWithinCurveOrder:b}}function NT(e){const n=lv(e);return ju(n,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...n})}function BT(e){const n=NT(e),{Fp:s,n:r,nByteLength:l,nBitLength:u}=n,f=s.BYTES+1,m=2*s.BYTES+1;function p(ae){return on(ae,r)}function y(ae){return oh(ae,r)}const{ProjectivePoint:b,normPrivateKeyToScalar:w,weierstrassEquation:g,isWithinCurveOrder:S}=jT({...n,toBytes(ae,R,V){const Y=R.toAffine(),se=s.toBytes(Y.x),le=su;return al("isCompressed",V),V?le(Uint8Array.from([R.hasEvenY()?2:3]),se):le(Uint8Array.from([4]),se,s.toBytes(Y.y))},fromBytes(ae){const R=ae.length,V=ae[0],Y=ae.subarray(1);if(R===f&&(V===2||V===3)){const se=ci(Y);if(!Yh(se,Ct,s.ORDER))throw new Error("Point is not on curve");const le=g(se);let k;try{k=s.sqrt(le)}catch(H){const W=H instanceof Error?": "+H.message:"";throw new Error("Point is not on curve"+W)}const P=(k&Ct)===Ct;return(V&1)===1!==P&&(k=s.neg(k)),{x:se,y:k}}else if(R===m&&V===4){const se=s.fromBytes(Y.subarray(0,s.BYTES)),le=s.fromBytes(Y.subarray(s.BYTES,2*s.BYTES));return{x:se,y:le}}else{const se=f,le=m;throw new Error("invalid Point, expected length of "+se+", or uncompressed "+le+", got "+R)}}});function T(ae){const R=r>>Ct;return ae>R}function x(ae){return T(ae)?p(-ae):ae}const j=(ae,R,V)=>ci(ae.slice(R,V));class M{constructor(R,V,Y){pr("r",R,Ct,r),pr("s",V,Ct,r),this.r=R,this.s=V,Y!=null&&(this.recovery=Y),Object.freeze(this)}static fromCompact(R){const V=l;return R=Un("compactSignature",R,V*2),new M(j(R,0,V),j(R,V,2*V))}static fromDER(R){const{r:V,s:Y}=La.toSig(Un("DER",R));return new M(V,Y)}assertValidity(){}addRecoveryBit(R){return new M(this.r,this.s,R)}recoverPublicKey(R){const{r:V,s:Y,recovery:se}=this,le=C(Un("msgHash",R));if(se==null||![0,1,2,3].includes(se))throw new Error("recovery id invalid");const k=se===2||se===3?V+n.n:V;if(k>=s.ORDER)throw new Error("recovery id 2 or 3 invalid");const P=(se&1)===0?"02":"03",ie=b.fromHex(P+S0(k,s.BYTES)),H=y(k),W=p(-le*H),ue=p(Y*H),pe=b.BASE.multiplyAndAddUnsafe(ie,W,ue);if(!pe)throw new Error("point at infinify");return pe.assertValidity(),pe}hasHighS(){return T(this.s)}normalizeS(){return this.hasHighS()?new M(this.r,p(-this.s),this.recovery):this}toDERRawBytes(){return au(this.toDERHex())}toDERHex(){return La.hexFromSig(this)}toCompactRawBytes(){return au(this.toCompactHex())}toCompactHex(){const R=l;return S0(this.r,R)+S0(this.s,R)}}const I={isValidPrivateKey(ae){try{return w(ae),!0}catch{return!1}},normPrivateKeyToScalar:w,randomPrivateKey:()=>{const ae=iv(n.n);return vT(n.randomBytes(ae),n.n)},precompute(ae=8,R=b.BASE){return R._setWindowSize(ae),R.multiply(BigInt(3)),R}};function O(ae,R=!0){return b.fromPrivateKey(ae).toRawBytes(R)}function B(ae){if(typeof ae=="bigint")return!1;if(ae instanceof b)return!0;const V=Un("key",ae).length,Y=s.BYTES,se=Y+1,le=2*Y+1;if(!(n.allowedPrivateKeyLengths||l===se))return V===se||V===le}function A(ae,R,V=!0){if(B(ae)===!0)throw new Error("first arg must be private key");if(B(R)===!1)throw new Error("second arg must be public key");return b.fromHex(R).multiply(w(ae)).toRawBytes(V)}const z=n.bits2int||function(ae){if(ae.length>8192)throw new Error("input is too large");const R=ci(ae),V=ae.length*8-u;return V>0?R>>BigInt(V):R},C=n.bits2int_modN||function(ae){return p(z(ae))},Z=ku(u);function ee(ae){return pr("num < 2^"+u,ae,Ia,Z),vl(ae,l)}function J(ae,R,V=K){if(["recovered","canonical"].some(me=>me in V))throw new Error("sign() legacy options not supported");const{hash:Y,randomBytes:se}=n;let{lowS:le,prehash:k,extraEntropy:P}=V;le==null&&(le=!0),ae=Un("msgHash",ae),xg(V),k&&(ae=Un("prehashed msgHash",Y(ae)));const ie=C(ae),H=w(R),W=[ee(H),ee(ie)];if(P!=null&&P!==!1){const me=P===!0?se(s.BYTES):P;W.push(Un("extraEntropy",me))}const ue=su(...W),pe=ie;function we(me){const Oe=z(me);if(!S(Oe))return;const Te=y(Oe),ct=b.BASE.multiply(Oe).toAffine(),dt=p(ct.x);if(dt===Ia)return;const Je=p(Te*p(pe+dt*H));if(Je===Ia)return;let rt=(ct.x===dt?0:2)|Number(ct.y&Ct),Ot=Je;return le&&T(Je)&&(Ot=x(Je),rt^=1),new M(dt,Ot,rt)}return{seed:ue,k2sig:we}}const K={lowS:n.lowS,prehash:!1},X={lowS:n.lowS,prehash:!1};function oe(ae,R,V=K){const{seed:Y,k2sig:se}=J(ae,R,V),le=n;return GS(le.hash.outputLen,le.nByteLength,le.hmac)(Y,se)}b.BASE._setWindowSize(8);function he(ae,R,V,Y=X){const se=ae;R=Un("msgHash",R),V=Un("publicKey",V);const{lowS:le,prehash:k,format:P}=Y;if(xg(Y),"strict"in Y)throw new Error("options.strict was renamed to lowS");if(P!==void 0&&P!=="compact"&&P!=="der")throw new Error("format must be compact or der");const ie=typeof se=="string"||gl(se),H=!ie&&!P&&typeof se=="object"&&se!==null&&typeof se.r=="bigint"&&typeof se.s=="bigint";if(!ie&&!H)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let W,ue;try{if(H&&(W=new M(se.r,se.s)),ie){try{P!=="compact"&&(W=M.fromDER(se))}catch(rt){if(!(rt instanceof La.Err))throw rt}!W&&P!=="der"&&(W=M.fromCompact(se))}ue=b.fromHex(V)}catch{return!1}if(!W||le&&W.hasHighS())return!1;k&&(R=n.hash(R));const{r:pe,s:we}=W,me=C(R),Oe=y(we),Te=p(me*Oe),ct=p(pe*Oe),dt=b.BASE.multiplyAndAddUnsafe(ue,Te,ct)?.toAffine();return dt?p(dt.x)===pe:!1}return{CURVE:n,getPublicKey:O,getSharedSecret:A,sign:oe,verify:he,ProjectivePoint:b,Signature:M,utils:I}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function RT(e){return{hash:e,hmac:(n,...s)=>Q5(e,n,e3(...s)),randomBytes:t3}}function MT(e,n){const s=r=>BT({...e,...RT(r)});return{...s(n),create:s}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const cv=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Sg=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),CT=BigInt(0),OT=BigInt(1),ch=BigInt(2),Eg=(e,n)=>(e+n/ch)/n;function _T(e){const n=cv,s=BigInt(3),r=BigInt(6),l=BigInt(11),u=BigInt(22),f=BigInt(23),m=BigInt(44),p=BigInt(88),y=e*e*e%n,b=y*y*e%n,w=Dn(b,s,n)*b%n,g=Dn(w,s,n)*b%n,S=Dn(g,ch,n)*y%n,T=Dn(S,l,n)*S%n,x=Dn(T,u,n)*T%n,j=Dn(x,m,n)*x%n,M=Dn(j,p,n)*j%n,I=Dn(M,m,n)*x%n,O=Dn(I,s,n)*b%n,B=Dn(O,f,n)*T%n,A=Dn(B,r,n)*y%n,z=Dn(A,ch,n);if(!uh.eql(uh.sqr(z),e))throw new Error("Cannot find square root");return z}const uh=op(cv,void 0,void 0,{sqrt:_T}),uv=MT({a:CT,b:BigInt(7),Fp:uh,n:Sg,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const n=Sg,s=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-OT*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),l=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),u=s,f=BigInt("0x100000000000000000000000000000000"),m=Eg(u*e,n),p=Eg(-r*e,n);let y=on(e-m*s-p*l,n),b=on(-m*r-p*u,n);const w=y>f,g=b>f;if(w&&(y=n-y),g&&(b=n-b),y>f||b>f)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:w,k1:y,k2neg:g,k2:b}}}},J6),zT=Object.freeze(Object.defineProperty({__proto__:null,secp256k1:uv},Symbol.toStringTag,{value:"Module"}));function dv(e,n={}){const{recovered:s}=n;if(typeof e.r>"u")throw new A0({signature:e});if(typeof e.s>"u")throw new A0({signature:e});if(s&&typeof e.yParity>"u")throw new A0({signature:e});if(e.r<0n||e.r>mg)throw new IT({value:e.r});if(e.s<0n||e.s>mg)throw new GT({value:e.s});if(typeof e.yParity=="number"&&e.yParity!==0&&e.yParity!==1)throw new cp({value:e.yParity})}function $T(e){return fv(Jn(e))}function fv(e){if(e.length!==130&&e.length!==132)throw new HT({signature:e});const n=BigInt(ha(e,0,32)),s=BigInt(ha(e,32,64)),r=(()=>{const l=+`0x${e.slice(130)}`;if(!Number.isNaN(l))try{return lp(l)}catch{throw new cp({value:l})}})();return typeof r>"u"?{r:n,s}:{r:n,s,yParity:r}}function DT(e){if(!(typeof e.r>"u")&&!(typeof e.s>"u"))return UT(e)}function UT(e){const n=typeof e=="string"?fv(e):e instanceof Uint8Array?$T(e):typeof e.r=="string"?LT(e):e.v?qT(e):{r:e.r,s:e.s,...typeof e.yParity<"u"?{yParity:e.yParity}:{}};return dv(n),n}function qT(e){return{r:e.r,s:e.s,yParity:lp(e.v)}}function LT(e){const n=(()=>{const s=e.v?Number(e.v):void 0;let r=e.yParity?Number(e.yParity):void 0;if(typeof s=="number"&&typeof r!="number"&&(r=lp(s)),typeof r!="number")throw new cp({value:e.yParity});return r})();return{r:BigInt(e.r),s:BigInt(e.s),yParity:n}}function lp(e){if(e===0||e===27)return 0;if(e===1||e===28)return 1;if(e>=35)return e%2===0?1:0;throw new PT({value:e})}class HT extends Ce{constructor({signature:n}){super(`Value \`${n}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${Tn(pE(n))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}}class A0 extends Ce{constructor({signature:n}){super(`Signature \`${d5(n)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.MissingPropertiesError"})}}class IT extends Ce{constructor({value:n}){super(`Value \`${n}\` is an invalid r value. r must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidRError"})}}class GT extends Ce{constructor({value:n}){super(`Value \`${n}\` is an invalid s value. s must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSError"})}}class cp extends Ce{constructor({value:n}){super(`Value \`${n}\` is an invalid y-parity value. Y-parity must be 0 or 1.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidYParityError"})}}class PT extends Ce{constructor({value:n}){super(`Value \`${n}\` is an invalid v value. v must be 27, 28 or >=35.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidVError"})}}function VT(e,n={}){return typeof e.chainId=="string"?KT(e):{...e,...n.signature}}function KT(e){const{address:n,chainId:s,nonce:r}=e,l=DT(e);return{address:n,chainId:Number(s),nonce:BigInt(r),...l}}const FT="0x8010801080108010801080108010801080108010801080108010801080108010",YT=F5("(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data");function hv(e){if(typeof e=="string"){if(ha(e,-32)!==FT)throw new QT(e)}else dv(e.authorization)}function ZT(e){hv(e);const n=y5(ha(e,-64,-32)),s=ha(e,-n-64,-64),r=ha(e,0,-n-64),[l,u,f]=oT(YT,s);return{authorization:VT({address:l.delegation,chainId:Number(l.chainId),nonce:l.nonce,yParity:l.yParity,r:l.r,s:l.s}),signature:r,...f&&f!=="0x"?{data:f,to:u}:{}}}function XT(e){try{return hv(e),!0}catch{return!1}}let QT=class extends Ce{constructor(n){super(`Value \`${n}\` is an invalid ERC-8010 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc8010.InvalidWrappedSignatureError"})}};class JT extends re{constructor({value:n}){super(`Number \`${n}\` is not a valid decimal number.`,{name:"InvalidDecimalNumberError"})}}function pv(e,n){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new JT({value:e});let[s,r="0"]=e.split(".");const l=s.startsWith("-");if(l&&(s=s.slice(1)),r=r.replace(/(0+)$/,""),n===0)Math.round(+`.${r}`)===1&&(s=`${BigInt(s)+1n}`),r="";else if(r.length>n){const[u,f,m]=[r.slice(0,n-1),r.slice(n-1,n),r.slice(n)],p=Math.round(+`${f}.${m}`);p>9?r=`${BigInt(u)+BigInt(1)}0`.padStart(u.length+1,"0"):r=`${u}${p}`,r.length>n&&(r=r.slice(1),s=`${BigInt(s)+1n}`),r=r.slice(0,n)}else r=r.padEnd(n,"0");return BigInt(`${l?"-":""}${s}${r}`)}function WT(e){return e.map(n=>({...n,value:BigInt(n.value)}))}function e4(e){return{...e,balance:e.balance?BigInt(e.balance):void 0,nonce:e.nonce?Ya(e.nonce):void 0,storageProof:e.storageProof?WT(e.storageProof):void 0}}async function t4(e,{address:n,blockNumber:s,blockTag:r,storageKeys:l}){const u=r??"latest",f=s!==void 0?Ee(s):void 0,m=await e.request({method:"eth_getProof",params:[n,l,f||u]});return e4(m)}async function n4(e,{address:n,blockNumber:s,blockTag:r="latest",slot:l}){const u=s!==void 0?Ee(s):void 0;return await e.request({method:"eth_getStorageAt",params:[n,l,u||r]})}async function up(e,{blockHash:n,blockNumber:s,blockTag:r,hash:l,index:u}){const f=r||"latest",m=s!==void 0?Ee(s):void 0;let p=null;if(l?p=await e.request({method:"eth_getTransactionByHash",params:[l]},{dedupe:!0}):n?p=await e.request({method:"eth_getTransactionByBlockHashAndIndex",params:[n,Ee(u)]},{dedupe:!0}):p=await e.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[m||f,Ee(u)]},{dedupe:!!m}),!p)throw new z6({blockHash:n,blockNumber:s,blockTag:f,hash:l,index:u});return(e.chain?.formatters?.transaction?.format||K6)(p,"getTransaction")}async function a4(e,{hash:n,transactionReceipt:s}){const[r,l]=await Promise.all([Ae(e,Sl,"getBlockNumber")({}),n?Ae(e,up,"getTransaction")({hash:n}):void 0]),u=s?.blockNumber||l?.blockNumber;return u?r-u+1n:0n}async function Zc(e,{hash:n}){const s=await e.request({method:"eth_getTransactionReceipt",params:[n]},{dedupe:!0});if(!s)throw new $6({hash:n});return(e.chain?.formatters?.transactionReceipt?.format||B5)(s,"getTransactionReceipt")}async function s4(e,n){const{account:s,authorizationList:r,allowFailure:l=!0,blockNumber:u,blockOverrides:f,blockTag:m,stateOverride:p}=n,y=n.contracts,{batchSize:b=n.batchSize??1024,deployless:w=n.deployless??!1}=typeof e.batch?.multicall=="object"?e.batch.multicall:{},g=(()=>{if(n.multicallAddress)return n.multicallAddress;if(w)return null;if(e.chain)return Br({blockNumber:u,chain:e.chain,contract:"multicall3"});throw new Error("client chain not configured. multicallAddress is required.")})(),S=[[]];let T=0,x=0;for(let I=0;I<y.length;I++){const{abi:O,address:B,args:A,functionName:z}=y[I];try{const C=Gn({abi:O,args:A,functionName:z});x+=(C.length-2)/2,b>0&&x>b&&S[T].length>0&&(T++,x=(C.length-2)/2,S[T]=[]),S[T]=[...S[T],{allowFailure:!0,callData:C,target:B}]}catch(C){const Z=Ar(C,{abi:O,address:B,args:A,docsPath:"/docs/contract/multicall",functionName:z,sender:s});if(!l)throw Z;S[T]=[...S[T],{allowFailure:!0,callData:"0x",target:B}]}}const j=await Promise.allSettled(S.map(I=>Ae(e,Wn,"readContract")({...g===null?{code:Xh}:{address:g},abi:il,account:s,args:[I],authorizationList:r,blockNumber:u,blockOverrides:f,blockTag:m,functionName:"aggregate3",stateOverride:p}))),M=[];for(let I=0;I<j.length;I++){const O=j[I];if(O.status==="rejected"){if(!l)throw O.reason;for(let A=0;A<S[I].length;A++)M.push({status:"failure",error:O.reason,result:void 0});continue}const B=O.value;for(let A=0;A<B.length;A++){const{returnData:z,success:C}=B[A],{callData:Z}=S[I][A],{abi:ee,address:J,functionName:K,args:X}=y[M.length];try{if(Z==="0x")throw new fl;if(!C)throw new Su({data:z});const oe=Wa({abi:ee,args:X,data:z,functionName:K});M.push(l?{result:oe,status:"success"}:oe)}catch(oe){const he=Ar(oe,{abi:ee,address:J,args:X,docsPath:"/docs/contract/multicall",functionName:K});if(!l)throw he;M.push({error:he,result:void 0,status:"failure"})}}}if(M.length!==y.length)throw new re("multicall results mismatch");return M}async function dh(e,n){const{blockNumber:s,blockTag:r=e.experimental_blockTag??"latest",blocks:l,returnFullTransactions:u,traceTransfers:f,validation:m}=n;try{const p=[];for(const g of l){const S=g.blockOverrides?v5(g.blockOverrides):void 0,T=g.calls.map(j=>{const M=j,I=M.account?na(M.account):void 0,O=M.abi?Gn(M):M.data,B={...M,data:M.dataSuffix?ba([O||"0x",M.dataSuffix]):O,from:M.from??I?.address};return yl(B),Au(B)}),x=g.stateOverrides?qh(g.stateOverrides):void 0;p.push({blockOverrides:S,calls:T,stateOverrides:x})}const b=(typeof s=="bigint"?Ee(s):void 0)||r;return(await e.request({method:"eth_simulateV1",params:[{blockStateCalls:p,returnFullTransactions:u,traceTransfers:f,validation:m},b]})).map((g,S)=>({...F6(g),calls:g.calls.map((T,x)=>{const{abi:j,args:M,functionName:I,to:O}=l[S].calls[x],B=T.error?.data??T.returnData,A=BigInt(T.gasUsed),z=T.logs?.map(J=>Za(J)),C=T.status==="0x1"?"success":"failure",Z=j&&C==="success"&&B!=="0x"?Wa({abi:j,data:B,functionName:I}):null,ee=(()=>{if(C==="success")return;let J;if(T.error?.data==="0x"?J=new fl:T.error&&(J=new Su(T.error)),!!J)return Ar(J,{abi:j??[],address:O??"0x",args:M,functionName:I??"<unknown>"})})();return{data:B,gasUsed:A,logs:z,status:C,...C==="success"?{result:Z}:{error:ee}}})}))}catch(p){const y=p,b=Dh(y,{});throw b instanceof Eu?y:b}}function fh(e){let n=!0,s="",r=0,l="",u=!1;for(let f=0;f<e.length;f++){const m=e[f];if(["(",")",","].includes(m)&&(n=!0),m==="("&&r++,m===")"&&r--,!!n){if(r===0){if(m===" "&&["event","function","error",""].includes(l))l="";else if(l+=m,m===")"){u=!0;break}continue}if(m===" "){e[f-1]!==","&&s!==","&&s!==",("&&(s="",n=!1);continue}l+=m,s+=m}}if(!u)throw new Ce("Unable to normalize signature.");return l}function hh(e,n){const s=typeof e,r=n.type;switch(r){case"address":return sh(e,{strict:!1});case"bool":return s==="boolean";case"function":return s==="string";case"string":return s==="string";default:return r==="tuple"&&"components"in n?Object.values(n.components).every((l,u)=>hh(Object.values(e)[u],l)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(r)?s==="number"||s==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(r)?s==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(r)?Array.isArray(e)&&e.every(l=>hh(l,{...n,type:r.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function mv(e,n,s){for(const r in e){const l=e[r],u=n[r];if(l.type==="tuple"&&u.type==="tuple"&&"components"in l&&"components"in u)return mv(l.components,u.components,s[r]);const f=[l.type,u.type];if(f.includes("address")&&f.includes("bytes20")?!0:f.includes("address")&&f.includes("string")?sh(s[r],{strict:!1}):f.includes("address")&&f.includes("bytes")?sh(s[r],{strict:!1}):!1)return f}}function yv(e,n={}){const{prepare:s=!0}=n,r=Array.isArray(e)||typeof e=="string"?R1(e):e;return{...r,...s?{hash:dr(r)}:{}}}function _u(e,n,s){const{args:r=[],prepare:l=!0}=s??{},u=mE(n,{strict:!1}),f=e.filter(y=>u?y.type==="function"||y.type==="error"?bv(y)===ha(n,0,4):y.type==="event"?dr(y)===n:!1:"name"in y&&y.name===n);if(f.length===0)throw new ru({name:n});if(f.length===1)return{...f[0],...l?{hash:dr(f[0])}:{}};let m;for(const y of f){if(!("inputs"in y))continue;if(!r||r.length===0){if(!y.inputs||y.inputs.length===0)return{...y,...l?{hash:dr(y)}:{}};continue}if(!y.inputs||y.inputs.length===0||y.inputs.length!==r.length)continue;if(r.every((w,g)=>{const S="inputs"in y&&y.inputs[g];return S?hh(w,S):!1})){if(m&&"inputs"in m&&m.inputs){const w=mv(y.inputs,m.inputs,r);if(w)throw new r4({abiItem:y,type:w[0]},{abiItem:m,type:w[1]})}m=y}}const p=(()=>{if(m)return m;const[y,...b]=f;return{...y,overloads:b}})();if(!p)throw new ru({name:n});return{...p,...l?{hash:dr(p)}:{}}}function bv(...e){const n=(()=>{if(Array.isArray(e[0])){const[s,r]=e;return _u(s,r)}return e[0]})();return ha(dr(n),0,4)}function i4(...e){const n=(()=>{if(Array.isArray(e[0])){const[r,l]=e;return _u(r,l)}return e[0]})(),s=typeof n=="string"?n:eu(n);return fh(s)}function dr(...e){const n=(()=>{if(Array.isArray(e[0])){const[s,r]=e;return _u(s,r)}return e[0]})();return typeof n!="string"&&"hash"in n&&n.hash?n.hash:P5(Zh(i4(n)))}class r4 extends Ce{constructor(n,s){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${n.type}\` in \`${fh(eu(n.abiItem))}\`, and`,`\`${s.type}\` in \`${fh(eu(s.abiItem))}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.AmbiguityError"})}}class ru extends Ce{constructor({name:n,data:s,type:r="item"}){const l=n?` with name "${n}"`:s?` with data "${s}"`:"";super(`ABI ${r}${l} not found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.NotFoundError"})}}function o4(...e){const[n,s]=(()=>{if(Array.isArray(e[0])){const[u,f]=e;return[c4(u),f]}return e})(),{bytecode:r,args:l}=s;return Qn(r,n.inputs?.length&&l?.length?ip(n.inputs,l):"0x")}function l4(e){return yv(e)}function c4(e){const n=e.find(s=>s.type==="constructor");if(!n)throw new ru({name:"constructor"});return n}function u4(...e){const[n,s=[]]=(()=>{if(Array.isArray(e[0])){const[y,b,w]=e;return[Ag(y,b,{args:w}),w]}const[m,p]=e;return[m,p]})(),{overloads:r}=n,l=r?Ag([n,...r],n.name,{args:s}):n,u=d4(l),f=s.length>0?ip(l.inputs,s):void 0;return f?Qn(u,f):u}function rr(e,n={}){return yv(e,n)}function Ag(e,n,s){const r=_u(e,n,s);if(r.type!=="function")throw new ru({name:n,type:"function"});return r}function d4(e){return bv(e)}const f4="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",Le="0x0000000000000000000000000000000000000000",h4="0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033";async function p4(e,n){const{blockNumber:s,blockTag:r,calls:l,stateOverrides:u,traceAssetChanges:f,traceTransfers:m,validation:p}=n,y=n.account?na(n.account):void 0;if(f&&!y)throw new re("`account` is required when `traceAssetChanges` is true");const b=y?o4(l4("constructor(bytes, bytes)"),{bytecode:E5,args:[h4,u4(rr("function getBalance(address)"),[y.address])]}):void 0,w=f?await Promise.all(n.calls.map(async Y=>{if(!Y.data&&!Y.abi)return;const{accessList:se}=await z5(e,{account:y.address,...Y,data:Y.abi?Gn(Y):Y.data});return se.map(({address:le,storageKeys:k})=>k.length>0?le:null)})).then(Y=>Y.flat().filter(Boolean)):[],g=await dh(e,{blockNumber:s,blockTag:r,blocks:[...f?[{calls:[{data:b}],stateOverrides:u},{calls:w.map((Y,se)=>({abi:[rr("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[y.address],to:Y,from:Le,nonce:se})),stateOverrides:[{address:Le,nonce:0}]}]:[],{calls:[...l,{}].map(Y=>({...Y,from:y?.address})),stateOverrides:u},...f?[{calls:[{data:b}]},{calls:w.map((Y,se)=>({abi:[rr("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[y.address],to:Y,from:Le,nonce:se})),stateOverrides:[{address:Le,nonce:0}]},{calls:w.map((Y,se)=>({to:Y,abi:[rr("function decimals() returns (uint256)")],functionName:"decimals",from:Le,nonce:se})),stateOverrides:[{address:Le,nonce:0}]},{calls:w.map((Y,se)=>({to:Y,abi:[rr("function tokenURI(uint256) returns (string)")],functionName:"tokenURI",args:[0n],from:Le,nonce:se})),stateOverrides:[{address:Le,nonce:0}]},{calls:w.map((Y,se)=>({to:Y,abi:[rr("function symbol() returns (string)")],functionName:"symbol",from:Le,nonce:se})),stateOverrides:[{address:Le,nonce:0}]}]:[]],traceTransfers:m,validation:p}),S=f?g[2]:g[0],[T,x,,j,M,I,O,B]=f?g:[],{calls:A,...z}=S,C=A.slice(0,-1)??[],Z=T?.calls??[],ee=x?.calls??[],J=[...Z,...ee].map(Y=>Y.status==="success"?ma(Y.data):null),K=j?.calls??[],X=M?.calls??[],oe=[...K,...X].map(Y=>Y.status==="success"?ma(Y.data):null),he=(I?.calls??[]).map(Y=>Y.status==="success"?Y.result:null),ae=(B?.calls??[]).map(Y=>Y.status==="success"?Y.result:null),R=(O?.calls??[]).map(Y=>Y.status==="success"?Y.result:null),V=[];for(const[Y,se]of oe.entries()){const le=J[Y];if(typeof se!="bigint"||typeof le!="bigint")continue;const k=he[Y-1],P=ae[Y-1],ie=R[Y-1],H=Y===0?{address:f4,decimals:18,symbol:"ETH"}:{address:w[Y-1],decimals:ie||k?Number(k??1):void 0,symbol:P??void 0};V.some(W=>W.token.address===H.address)||V.push({token:H,value:{pre:le,post:se,diff:se-le}})}return{assetChanges:V,block:z,results:C}}const gv="0x6492649264926492649264926492649264926492649264926492649264926492";function m4(e){if(ha(e,-32)!==gv)throw new g4(e)}function y4(e){const{data:n,signature:s,to:r}=e;return Qn(ip(F5("address, bytes, bytes"),[r,n,s]),gv)}function b4(e){try{return m4(e),!0}catch{return!1}}class g4 extends Ce{constructor(n){super(`Value \`${n}\` is an invalid ERC-6492 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc6492.InvalidWrappedSignatureError"})}}function v4({r:e,s:n,to:s="hex",v:r,yParity:l}){const u=(()=>{if(l===0||l===1)return l;if(r&&(r===27n||r===28n||r>=35n))return r%2n===0n?1:0;throw new Error("Invalid `v` or `yParity` value")})(),f=`0x${new uv.Signature(ma(e),ma(n)).toCompactHex()}${u===0?"1b":"1c"}`;return s==="hex"?f:ya(f)}async function zu(e,n){const{address:s,hash:r,erc6492VerifierAddress:l=n.universalSignatureVerifierAddress??e.chain?.contracts?.erc6492Verifier?.address,multicallAddress:u=n.multicallAddress??e.chain?.contracts?.multicall3?.address}=n,f=(()=>{const m=n.signature;return pa(m)?m:typeof m=="object"&&"r"in m&&"s"in m?v4(m):Nt(m)})();try{return XT(f)?await w4(e,{...n,multicallAddress:u,signature:f}):await x4(e,{...n,verifierAddress:l,signature:f})}catch(m){try{if(Tu(E6(s),await L6({hash:r,signature:f})))return!0}catch{}if(m instanceof yi)return!1;throw m}}async function w4(e,n){const{address:s,blockNumber:r,blockTag:l,hash:u,multicallAddress:f}=n,{authorization:m,data:p,signature:y,to:b}=ZT(n.signature);if(await ah(e,{address:s,blockNumber:r,blockTag:l})===Nr(["0xef0100",m.address]))return await S4(e,{address:s,blockNumber:r,blockTag:l,hash:u,signature:y});const g={address:m.address,chainId:Number(m.chainId),nonce:Number(m.nonce),r:Ee(m.r,{size:32}),s:Ee(m.s,{size:32}),yParity:m.yParity};if(!await yA({address:s,authorization:g}))throw new yi;const T=await Ae(e,Wn,"readContract")({...f?{address:f}:{code:Xh},authorizationList:[g],abi:il,blockNumber:r,blockTag:"pending",functionName:"aggregate3",args:[[...p?[{allowFailure:!0,target:b??s,callData:p}]:[],{allowFailure:!0,target:s,callData:Gn({abi:S5,functionName:"isValidSignature",args:[u,y]})}]]});if(T[T.length-1]?.returnData?.startsWith("0x1626ba7e"))return!0;throw new yi}async function x4(e,n){const{address:s,factory:r,factoryData:l,hash:u,signature:f,verifierAddress:m,...p}=n,y=await(async()=>!r&&!l||b4(f)?f:y4({data:l,signature:f,to:r}))(),b=m?{to:m,data:Gn({abi:cg,functionName:"isValidSig",args:[s,u,y]}),...p}:{data:Qh({abi:cg,args:[s,u,y],bytecode:SE}),...p},{data:w}=await Ae(e,Bu,"call")(b).catch(g=>{throw g instanceof D6?new yi:g});if(z8(w??"0x0"))return!0;throw new yi}async function S4(e,n){const{address:s,blockNumber:r,blockTag:l,hash:u,signature:f}=n;if((await Ae(e,Wn,"readContract")({address:s,abi:S5,args:[u,f],blockNumber:r,blockTag:l,functionName:"isValidSignature"}).catch(p=>{throw p instanceof U6?new yi:p})).startsWith("0x1626ba7e"))return!0;throw new yi}class yi extends Error{}async function E4(e,{address:n,message:s,factory:r,factoryData:l,signature:u,...f}){const m=q5(s);return zu(e,{address:n,factory:r,factoryData:l,hash:m,signature:u,...f})}async function A4(e,n){const{address:s,factory:r,factoryData:l,signature:u,message:f,primaryType:m,types:p,domain:y,...b}=n,w=MA({message:f,primaryType:m,types:p,domain:y});return zu(e,{address:s,factory:r,factoryData:l,hash:w,signature:u,...b})}function vv(e,{emitOnBegin:n=!1,emitMissed:s=!1,onBlockNumber:r,onError:l,poll:u,pollingInterval:f=e.pollingInterval}){const m=typeof u<"u"?u:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc"));let p;return m?(()=>{const w=Gt(["watchBlockNumber",e.uid,n,s,f]);return Ds(w,{onBlockNumber:r,onError:l},g=>xl(async()=>{try{const S=await Ae(e,Sl,"getBlockNumber")({cacheTime:0});if(p!==void 0){if(S===p)return;if(S-p>1&&s)for(let T=p+1n;T<S;T++)g.onBlockNumber(T,p),p=T}(p===void 0||S>p)&&(g.onBlockNumber(S,p),p=S)}catch(S){g.onError?.(S)}},{emitOnBegin:n,interval:f}))})():(()=>{const w=Gt(["watchBlockNumber",e.uid,n,s]);return Ds(w,{onBlockNumber:r,onError:l},g=>{let S=!0,T=()=>S=!1;return(async()=>{try{const x=(()=>{if(e.transport.type==="fallback"){const M=e.transport.transports.find(I=>I.config.type==="webSocket"||I.config.type==="ipc");return M?M.value:e.transport}return e.transport})(),{unsubscribe:j}=await x.subscribe({params:["newHeads"],onData(M){if(!S)return;const I=ma(M.result?.number);g.onBlockNumber(I,p),p=I},onError(M){g.onError?.(M)}});T=j,S||T()}catch(x){l?.(x)}})(),()=>T()})})()}async function T4(e,n){const{checkReplacement:s=!0,confirmations:r=1,hash:l,onReplaced:u,retryCount:f=6,retryDelay:m=({count:A})=>~~(1<<A)*200,timeout:p=18e4}=n,y=Gt(["waitForTransactionReceipt",e.uid,l]),b=n.pollingInterval?n.pollingInterval:e.chain?.experimental_preconfirmationTime?e.chain.experimental_preconfirmationTime:e.pollingInterval;let w,g,S,T=!1,x,j;const{promise:M,resolve:I,reject:O}=k5(),B=p?setTimeout(()=>{j?.(),x?.(),O(new X3({hash:l}))},p):void 0;return x=Ds(y,{onReplaced:u,resolve:I,reject:O},async A=>{if(S=await Ae(e,Zc,"getTransactionReceipt")({hash:l}).catch(()=>{}),S&&r<=1){clearTimeout(B),A.resolve(S),x?.();return}j=Ae(e,vv,"watchBlockNumber")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:b,async onBlockNumber(z){const C=ee=>{clearTimeout(B),j?.(),ee(),x?.()};let Z=z;if(!T)try{if(S){if(r>1&&(!S.blockNumber||Z-S.blockNumber+1n<r))return;C(()=>A.resolve(S));return}if(s&&!w&&(T=!0,await eh(async()=>{w=await Ae(e,up,"getTransaction")({hash:l}),w.blockNumber&&(Z=w.blockNumber)},{delay:m,retryCount:f}),T=!1),S=await Ae(e,Zc,"getTransactionReceipt")({hash:l}),r>1&&(!S.blockNumber||Z-S.blockNumber+1n<r))return;C(()=>A.resolve(S))}catch(ee){if(ee instanceof z6||ee instanceof $6){if(!w){T=!1;return}try{g=w,T=!0;const J=await eh(()=>Ae(e,da,"getBlock")({blockNumber:Z,includeTransactions:!0}),{delay:m,retryCount:f,shouldRetry:({error:oe})=>oe instanceof P6});T=!1;const K=J.transactions.find(({from:oe,nonce:he})=>oe===g.from&&he===g.nonce);if(!K||(S=await Ae(e,Zc,"getTransactionReceipt")({hash:K.hash}),r>1&&(!S.blockNumber||Z-S.blockNumber+1n<r)))return;let X="replaced";K.to===g.to&&K.value===g.value&&K.input===g.input?X="repriced":K.from===K.to&&K.value===0n&&(X="cancelled"),C(()=>{A.onReplaced?.({reason:X,replacedTransaction:g,transaction:K,transactionReceipt:S}),A.resolve(S)})}catch(J){C(()=>A.reject(J))}}else C(()=>A.reject(ee))}}})}),M}function k4(e,{blockTag:n=e.experimental_blockTag??"latest",emitMissed:s=!1,emitOnBegin:r=!1,onBlock:l,onError:u,includeTransactions:f,poll:m,pollingInterval:p=e.pollingInterval}){const y=typeof m<"u"?m:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc")),b=f??!1;let w;return y?(()=>{const T=Gt(["watchBlocks",e.uid,n,s,r,b,p]);return Ds(T,{onBlock:l,onError:u},x=>xl(async()=>{try{const j=await Ae(e,da,"getBlock")({blockTag:n,includeTransactions:b});if(j.number!==null&&w?.number!=null){if(j.number===w.number)return;if(j.number-w.number>1&&s)for(let M=w?.number+1n;M<j.number;M++){const I=await Ae(e,da,"getBlock")({blockNumber:M,includeTransactions:b});x.onBlock(I,w),w=I}}(w?.number==null||n==="pending"&&j?.number==null||j.number!==null&&j.number>w.number)&&(x.onBlock(j,w),w=j)}catch(j){x.onError?.(j)}},{emitOnBegin:r,interval:p}))})():(()=>{let T=!0,x=!0,j=()=>T=!1;return(async()=>{try{r&&Ae(e,da,"getBlock")({blockTag:n,includeTransactions:b}).then(O=>{T&&x&&(l(O,void 0),x=!1)}).catch(u);const M=(()=>{if(e.transport.type==="fallback"){const O=e.transport.transports.find(B=>B.config.type==="webSocket"||B.config.type==="ipc");return O?O.value:e.transport}return e.transport})(),{unsubscribe:I}=await M.subscribe({params:["newHeads"],async onData(O){if(!T)return;const B=await Ae(e,da,"getBlock")({blockNumber:O.result?.number,includeTransactions:b}).catch(()=>{});T&&(l(B,w),x=!1,w=B)},onError(O){u?.(O)}});j=I,T||j()}catch(M){u?.(M)}})(),()=>j()})()}function j4(e,{address:n,args:s,batch:r=!0,event:l,events:u,fromBlock:f,onError:m,onLogs:p,poll:y,pollingInterval:b=e.pollingInterval,strict:w}){const g=typeof y<"u"?y:typeof f=="bigint"?!0:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc")),S=w??!1;return g?(()=>{const j=Gt(["watchEvent",n,s,r,e.uid,l,b,f]);return Ds(j,{onLogs:p,onError:m},M=>{let I;f!==void 0&&(I=f-1n);let O,B=!1;const A=xl(async()=>{if(!B){try{O=await Ae(e,$5,"createEventFilter")({address:n,args:s,event:l,events:u,strict:S,fromBlock:f})}catch{}B=!0;return}try{let z;if(O)z=await Ae(e,Ru,"getFilterChanges")({filter:O});else{const C=await Ae(e,Sl,"getBlockNumber")({});I&&I!==C?z=await Ae(e,Vh,"getLogs")({address:n,args:s,event:l,events:u,fromBlock:I+1n,toBlock:C}):z=[],I=C}if(z.length===0)return;if(r)M.onLogs(z);else for(const C of z)M.onLogs([C])}catch(z){O&&z instanceof hi&&(B=!1),M.onError?.(z)}},{emitOnBegin:!0,interval:b});return async()=>{O&&await Ae(e,Mu,"uninstallFilter")({filter:O}),A()}})})():(()=>{let j=!0,M=()=>j=!1;return(async()=>{try{const I=(()=>{if(e.transport.type==="fallback"){const z=e.transport.transports.find(C=>C.config.type==="webSocket"||C.config.type==="ipc");return z?z.value:e.transport}return e.transport})(),O=u??(l?[l]:void 0);let B=[];O&&(B=[O.flatMap(C=>pl({abi:[C],eventName:C.name,args:s}))],l&&(B=B[0]));const{unsubscribe:A}=await I.subscribe({params:["logs",{address:n,topics:B}],onData(z){if(!j)return;const C=z.result;try{const{eventName:Z,args:ee}=bl({abi:O??[],data:C.data,topics:C.topics,strict:S}),J=Za(C,{args:ee,eventName:Z});p([J])}catch(Z){let ee,J;if(Z instanceof _o||Z instanceof yu){if(w)return;ee=Z.abiItem.name,J=Z.abiItem.inputs?.some(X=>!("name"in X&&X.name))}const K=Za(C,{args:J?[]:{},eventName:ee});p([K])}},onError(z){m?.(z)}});M=A,j||M()}catch(I){m?.(I)}})(),()=>M()})()}function N4(e,{batch:n=!0,onError:s,onTransactions:r,poll:l,pollingInterval:u=e.pollingInterval}){return(typeof l<"u"?l:e.transport.type!=="webSocket"&&e.transport.type!=="ipc")?(()=>{const y=Gt(["watchPendingTransactions",e.uid,n,u]);return Ds(y,{onTransactions:r,onError:s},b=>{let w;const g=xl(async()=>{try{if(!w)try{w=await Ae(e,D5,"createPendingTransactionFilter")({});return}catch(T){throw g(),T}const S=await Ae(e,Ru,"getFilterChanges")({filter:w});if(S.length===0)return;if(n)b.onTransactions(S);else for(const T of S)b.onTransactions([T])}catch(S){b.onError?.(S)}},{emitOnBegin:!0,interval:u});return async()=>{w&&await Ae(e,Mu,"uninstallFilter")({filter:w}),g()}})})():(()=>{let y=!0,b=()=>y=!1;return(async()=>{try{const{unsubscribe:w}=await e.transport.subscribe({params:["newPendingTransactions"],onData(g){if(!y)return;const S=g.result;r([S])},onError(g){s?.(g)}});b=w,y||b()}catch(w){s?.(w)}})(),()=>b()})()}function B4(e){const{scheme:n,statement:s,...r}=e.match(R4)?.groups??{},{chainId:l,expirationTime:u,issuedAt:f,notBefore:m,requestId:p,...y}=e.match(M4)?.groups??{},b=e.split("Resources:")[1]?.split(` +- `).slice(1);return{...r,...y,...l?{chainId:Number(l)}:{},...u?{expirationTime:new Date(u)}:{},...f?{issuedAt:new Date(f)}:{},...m?{notBefore:new Date(m)}:{},...p?{requestId:p}:{},...b?{resources:b}:{},...n?{scheme:n}:{},...s?{statement:s}:{}}}const R4=/^(?:(?<scheme>[a-zA-Z][a-zA-Z0-9+-.]*):\/\/)?(?<domain>[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\n)(?<address>0x[a-fA-F0-9]{40})\n\n(?:(?<statement>.*)\n\n)?/,M4=/(?:URI: (?<uri>.+))\n(?:Version: (?<version>.+))\n(?:Chain ID: (?<chainId>\d+))\n(?:Nonce: (?<nonce>[a-zA-Z0-9]+))\n(?:Issued At: (?<issuedAt>.+))(?:\nExpiration Time: (?<expirationTime>.+))?(?:\nNot Before: (?<notBefore>.+))?(?:\nRequest ID: (?<requestId>.+))?/;function C4(e){const{address:n,domain:s,message:r,nonce:l,scheme:u,time:f=new Date}=e;if(s&&r.domain!==s||l&&r.nonce!==l||u&&r.scheme!==u||r.expirationTime&&f>=r.expirationTime||r.notBefore&&f<r.notBefore)return!1;try{if(!r.address||!dn(r.address,{strict:!1})||n&&!Tu(r.address,n))return!1}catch{return!1}return!0}async function O4(e,n){const{address:s,domain:r,message:l,nonce:u,scheme:f,signature:m,time:p=new Date,...y}=n,b=B4(l);if(!b.address||!C4({address:s,domain:r,message:b,nonce:u,scheme:f,time:p}))return!1;const g=q5(l);return zu(e,{address:b.address,hash:g,signature:m,...y})}async function _4(e,{serializedTransaction:n,throwOnReceiptRevert:s,timeout:r}){const l=await e.request({method:"eth_sendRawTransactionSync",params:r?[n,Ee(r)]:[n]},{retryCount:0}),f=(e.chain?.formatters?.transactionReceipt?.format||B5)(l);if(f.status==="reverted"&&s)throw new Z3({receipt:f});return f}function z4(e){return{call:n=>Bu(e,n),createAccessList:n=>z5(e,n),createBlockFilter:()=>rA(e),createContractEventFilter:n=>B6(e,n),createEventFilter:n=>$5(e,n),createPendingTransactionFilter:()=>D5(e),estimateContractGas:n=>US(e,n),estimateGas:n=>Gh(e,n),getBalance:n=>oA(e,n),getBlobBaseFee:()=>lA(e),getBlock:n=>da(e,n),getBlockNumber:n=>Sl(e,n),getBlockTransactionCount:n=>cA(e,n),getBytecode:n=>ah(e,n),getChainId:()=>t5(e),getCode:n=>ah(e,n),getContractEvents:n=>a5(e,n),getEip712Domain:n=>dA(e,n),getEnsAddress:n=>PE(e,n),getEnsAvatar:n=>aA(e,n),getEnsName:n=>sA(e,n),getEnsResolver:n=>iA(e,n),getEnsText:n=>_5(e,n),getFeeHistory:n=>pA(e,n),estimateFeesPerGas:n=>xS(e,n),getFilterChanges:n=>Ru(e,n),getFilterLogs:n=>mA(e,n),getGasPrice:()=>Hh(e),getLogs:n=>Vh(e,n),getProof:n=>t4(e,n),estimateMaxPriorityFeePerGas:n=>wS(e,n),getStorageAt:n=>n4(e,n),getTransaction:n=>up(e,n),getTransactionConfirmations:n=>a4(e,n),getTransactionCount:n=>Z6(e,n),getTransactionReceipt:n=>Zc(e,n),multicall:n=>s4(e,n),prepareTransactionRequest:n=>n5(e,n),readContract:n=>Wn(e,n),sendRawTransaction:n=>zE(e,n),sendRawTransactionSync:n=>_4(e,n),simulate:n=>dh(e,n),simulateBlocks:n=>dh(e,n),simulateCalls:n=>p4(e,n),simulateContract:n=>jE(e,n),verifyHash:n=>zu(e,n),verifyMessage:n=>E4(e,n),verifySiweMessage:n=>O4(e,n),verifyTypedData:n=>A4(e,n),uninstallFilter:n=>Mu(e,n),waitForTransactionReceipt:n=>T4(e,n),watchBlocks:n=>k4(e,n),watchBlockNumber:n=>vv(e,n),watchContractEvent:n=>_E(e,n),watchEvent:n=>j4(e,n),watchPendingTransactions:n=>N4(e,n)}}function $4(e){const{key:n="public",name:s="Public Client"}=e;return DE({...e,key:n,name:s,type:"publicClient"}).extend(z4)}function wv({key:e,methods:n,name:s,request:r,retryCount:l=3,retryDelay:u=150,timeout:f,type:m},p){const y=R5();return{config:{key:e,methods:n,name:s,request:r,retryCount:l,retryDelay:u,timeout:f,type:m},request:gA(r,{methods:n,retryCount:l,retryDelay:u,uid:y}),value:p}}function D4(e,n={}){const{key:s="fallback",name:r="Fallback",rank:l=!1,shouldThrow:u=U4,retryCount:f,retryDelay:m}=n;return(({chain:p,pollingInterval:y=4e3,timeout:b,...w})=>{let g=e,S=()=>{};const T=wv({key:s,name:r,async request({method:x,params:j}){let M;const I=async(O=0)=>{const B=g[O]({...w,chain:p,retryCount:0,timeout:b});try{const A=await B.request({method:x,params:j});return S({method:x,params:j,response:A,transport:B,status:"success"}),A}catch(A){if(S({error:A,method:x,params:j,transport:B,status:"error"}),u(A)||O===g.length-1||(M??=g.slice(O+1).some(z=>{const{include:C,exclude:Z}=z({chain:p}).config.methods||{};return C?C.includes(x):Z?!Z.includes(x):!0}),!M))throw A;return I(O+1)}};return I()},retryCount:f,retryDelay:m,type:"fallback"},{onResponse:x=>S=x,transports:g.map(x=>x({chain:p,retryCount:0}))});if(l){const x=typeof l=="object"?l:{};q4({chain:p,interval:x.interval??y,onTransports:j=>g=j,ping:x.ping,sampleCount:x.sampleCount,timeout:x.timeout,transports:g,weights:x.weights})}return T})}function U4(e){return!!("code"in e&&typeof e.code=="number"&&(e.code===Sr.code||e.code===li.code||si.nodeMessage.test(e.message)||e.code===5e3))}function q4({chain:e,interval:n=4e3,onTransports:s,ping:r,sampleCount:l=10,timeout:u=1e3,transports:f,weights:m={}}){const{stability:p=.7,latency:y=.3}=m,b=[],w=async()=>{const g=await Promise.all(f.map(async x=>{const j=x({chain:e,retryCount:0,timeout:u}),M=Date.now();let I,O;try{await(r?r({transport:j}):j.request({method:"net_listening"})),O=1}catch{O=0}finally{I=Date.now()}return{latency:I-M,success:O}}));b.push(g),b.length>l&&b.shift();const S=Math.max(...b.map(x=>Math.max(...x.map(({latency:j})=>j)))),T=f.map((x,j)=>{const M=b.map(z=>z[j].latency),O=1-M.reduce((z,C)=>z+C,0)/M.length/S,B=b.map(z=>z[j].success),A=B.reduce((z,C)=>z+C,0)/B.length;return A===0?[0,j]:[y*O+p*A,j]}).sort((x,j)=>j[0]-x[0]);s(T.map(([,x])=>f[x])),await iu(n),w()};w()}class L4 extends re{constructor(){super("No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.",{docsPath:"/docs/clients/intro",name:"UrlRequiredError"})}}function H4(e,n={}){const{batch:s,fetchFn:r,fetchOptions:l,key:u="http",methods:f,name:m="HTTP JSON-RPC",onFetchRequest:p,onFetchResponse:y,retryDelay:b,raw:w}=n;return({chain:g,retryCount:S,timeout:T})=>{const{batchSize:x=1e3,wait:j=0}=typeof s=="object"?s:{},M=n.retryCount??S,I=T??n.timeout??1e4,O=e||g?.rpcUrls.default.http[0];if(!O)throw new L4;const B=SA(O,{fetchFn:r,fetchOptions:l,onRequest:p,onResponse:y,timeout:I});return wv({key:u,methods:f,name:m,async request({method:A,params:z}){const C={method:A,params:z},{schedule:Z}=j5({id:O,wait:j,shouldSplitBatch(X){return X.length>x},fn:X=>B.request({body:X}),sort:(X,oe)=>X.id-oe.id}),ee=async X=>s?Z(X):[await B.request({body:X})],[{error:J,result:K}]=await ee(C);if(w)return{error:J,result:K};if(J)throw new $h({body:C,error:J,url:O});return K},retryCount:M,retryDelay:b,timeout:I,type:"http"},{fetchOptions:l,url:O})}}const Tg=U5({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:12e3,rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:23085558},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}}),I4=JSON.parse('[{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"guardian_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"BalanceUnreadable","type":"error"},{"inputs":[],"name":"CapExceeded","type":"error"},{"inputs":[],"name":"Deadline","type":"error"},{"inputs":[{"internalType":"enum BaskVault.Reason","name":"reason","type":"uint8"},{"internalType":"address","name":"token","type":"address"}],"name":"DepositUnavailable","type":"error"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidAddress","type":"error"},{"inputs":[],"name":"InvalidAsset","type":"error"},{"inputs":[],"name":"InvalidFeed","type":"error"},{"inputs":[],"name":"InvalidInput","type":"error"},{"inputs":[],"name":"InvalidPool","type":"error"},{"inputs":[],"name":"InvalidProposal","type":"error"},{"inputs":[],"name":"InvalidSetting","type":"error"},{"inputs":[],"name":"InvalidTick","type":"error"},{"inputs":[],"name":"MathOverflow","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"PaymentFailed","type":"error"},{"inputs":[],"name":"Reentrant","type":"error"},{"inputs":[],"name":"Slippage","type":"error"},{"inputs":[],"name":"Timelock","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroNAV","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"enum BaskVault.Kind","name":"kind","type":"uint8"}],"name":"AssetChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"}],"name":"AssetClosed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"feed","type":"address"}],"name":"AssetListed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"}],"name":"AssetRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"cap","type":"uint256"}],"name":"CapChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"since","type":"uint256"}],"name":"DeficitFlagged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"paused","type":"bool"}],"name":"DepositsPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"}],"name":"FeeRecipientChanged","type":"event"},{"anonymous":false,"inputs":[],"name":"GenesisFinalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"guardian","type":"address"}],"name":"GuardianChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LossRecognized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Paid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"components":[{"internalType":"enum BaskVault.Kind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"quoteFeed","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"value2","type":"uint256"},{"internalType":"enum BaskVault.Setting","name":"setting","type":"uint8"}],"indexed":false,"internalType":"struct BaskVault.Action","name":"action","type":"tuple"},{"indexed":false,"internalType":"uint256","name":"executableAt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"expiresAt","type":"uint256"}],"name":"Proposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"net","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Resynced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum BaskVault.Setting","name":"setting","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value2","type":"uint256"}],"name":"SettingChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"NAV_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"allAssets","outputs":[{"components":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"feed","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"quoteFeed","type":"address"},{"internalType":"uint256","name":"minLiquidity","type":"uint256"},{"internalType":"uint256","name":"centre","type":"uint256"},{"internalType":"uint8","name":"tokenDecimals","type":"uint8"},{"internalType":"uint8","name":"feedDecimals","type":"uint8"},{"internalType":"uint8","name":"quoteDecimals","type":"uint8"},{"internalType":"uint8","name":"quoteFeedDecimals","type":"uint8"},{"internalType":"bool","name":"open","type":"bool"},{"internalType":"bool","name":"retired","type":"bool"},{"internalType":"bool","name":"hasPause","type":"bool"},{"internalType":"bool","name":"baseIsToken0","type":"bool"}],"internalType":"struct BaskVault.Asset","name":"config","type":"tuple"},{"internalType":"uint256","name":"answer","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint256","name":"poolPrice","type":"uint256"},{"internalType":"uint256","name":"managedBalance","type":"uint256"},{"internalType":"uint256","name":"shortfall","type":"uint256"},{"internalType":"uint256","name":"owedBalance","type":"uint256"},{"internalType":"bool","name":"balanceReadable","type":"bool"},{"internalType":"enum BaskVault.Reason","name":"reason","type":"uint8"}],"internalType":"struct BaskVault.AssetView[]","name":"result","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"asset","outputs":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"feed","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"quoteFeed","type":"address"},{"internalType":"uint256","name":"minLiquidity","type":"uint256"},{"internalType":"uint256","name":"centre","type":"uint256"},{"internalType":"uint8","name":"tokenDecimals","type":"uint8"},{"internalType":"uint8","name":"feedDecimals","type":"uint8"},{"internalType":"uint8","name":"quoteDecimals","type":"uint8"},{"internalType":"uint8","name":"quoteFeedDecimals","type":"uint8"},{"internalType":"bool","name":"open","type":"bool"},{"internalType":"bool","name":"retired","type":"bool"},{"internalType":"bool","name":"hasPause","type":"bool"},{"internalType":"bool","name":"baseIsToken0","type":"bool"}],"internalType":"struct BaskVault.Asset","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"assetCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"assetTokens","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"claimTokens","type":"address[]"},{"internalType":"address","name":"to","type":"address"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"deficits","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"since","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"inputTokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"minSharesOut","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"inputTokens","type":"address[]"}],"name":"depositStatus","outputs":[{"internalType":"enum BaskVault.Reason","name":"reason","type":"uint8"},{"internalType":"address","name":"fault","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositsPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feedAsset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalizeGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"flagDeficit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"genesisFinalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"insideHours","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"feed","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"quoteFeed","type":"address"},{"internalType":"uint256","name":"minLiquidity","type":"uint256"}],"name":"listGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"cap","type":"uint256"}],"name":"lowerNAVCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"managed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"owed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseDeposits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"pay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"first","type":"uint256"},{"internalType":"uint256","name":"last","type":"uint256"}],"name":"pendingProposals","outputs":[{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"inputTokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"previewDeposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"nav","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewRedeem","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"bool","name":"direct","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"proposal","outputs":[{"components":[{"components":[{"internalType":"enum BaskVault.Kind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"quoteFeed","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"value2","type":"uint256"},{"internalType":"enum BaskVault.Setting","name":"setting","type":"uint8"}],"internalType":"struct BaskVault.Action","name":"action","type":"tuple"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"assetEpoch","type":"uint256"},{"internalType":"uint256","name":"closeEpoch","type":"uint256"},{"internalType":"uint256","name":"capEpoch","type":"uint256"},{"internalType":"bool","name":"done","type":"bool"}],"internalType":"struct BaskVault.Proposal","name":"data","type":"tuple"},{"internalType":"bool","name":"pending","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"enum BaskVault.Kind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"quoteFeed","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"value2","type":"uint256"},{"internalType":"enum BaskVault.Setting","name":"setting","type":"uint8"}],"internalType":"struct BaskVault.Action","name":"action","type":"tuple"}],"name":"propose","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"recognizeLoss","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256[]","name":"minAmountsOut","type":"uint256[]"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"redeem","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"removeRetired","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"settings","outputs":[{"components":[{"internalType":"uint256","name":"band","type":"uint256"},{"internalType":"uint256","name":"maxAge","type":"uint256"},{"internalType":"uint256","name":"noPoolAge","type":"uint256"},{"internalType":"uint256","name":"freshCount","type":"uint256"},{"internalType":"uint256","name":"freshHours","type":"uint256"},{"internalType":"uint256","name":"hoursFrom","type":"uint256"},{"internalType":"uint256","name":"hoursTo","type":"uint256"},{"internalType":"uint256","name":"dst","type":"uint256"},{"internalType":"uint256","name":"poolWindow","type":"uint256"},{"internalType":"uint256","name":"poolDeviation","type":"uint256"},{"internalType":"uint256","name":"feedGas","type":"uint256"},{"internalType":"uint256","name":"pauseGas","type":"uint256"},{"internalType":"uint256","name":"poolGas","type":"uint256"},{"internalType":"uint256","name":"balanceGas","type":"uint256"},{"internalType":"uint256","name":"payGas","type":"uint256"},{"internalType":"uint256","name":"maxAssets","type":"uint256"},{"internalType":"uint256","name":"directLimit","type":"uint256"}],"internalType":"struct BaskVault.Settings","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalOwed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"next","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseDeposits","outputs":[],"stateMutability":"nonpayable","type":"function"}]'),It="0x739fd5b653aa092a434534fa1ade67c1770b5a5b",xv="0x636a9477cd2d80694d0c8cc970f5008edb87d71a11b10ccfa82d9db04090a048",Sv=30000000n,fa=U5({id:4663,name:"Robinhood Chain",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.mainnet.chain.robinhood.com","https://robinhood-rpc.publicnode.com"]}},blockExplorers:{default:{name:"Explorer",url:"https://robin.etherscan.io"}}}),nt=$4({chain:fa,ccipRead:!1,batch:{multicall:!1},transport:D4(fa.rpcUrls.default.http.map(e=>H4(e,{timeout:15e3,retryCount:0})),{retryCount:0})}),$u=I4,G4=In(["function symbol() view returns (string)","function decimals() view returns (uint8)","function balanceOf(address) view returns (uint256)","function allowance(address,address) view returns (uint256)","function approve(address,uint256) returns (bool)"]),P4=In(["function description() view returns (string)","function decimals() view returns (uint8)","function latestRoundData() view returns (uint80,int256,uint256,uint256,uint80)"]);class ce extends Error{}const Ne=(e,n=[])=>({address:It,abi:$u,functionName:e,args:n}),cn=(e,n,s=[])=>({address:e,abi:G4,functionName:n,args:s}),Ha=(e,n)=>({address:e,abi:P4,functionName:n}),bi=e=>Gn(e);async function Ie(e,n){const s=await nt.call({to:e.address,data:bi(e),gas:Sv,account:n,batch:!1});return Wa({...e,data:s.data??"0x"})}async function Ms(e){try{return{ok:!0,value:await Ie(e)}}catch{return{ok:!1,error:`${e.functionName}: unreadable`}}}let ou;async function Ev(){const[e,n,s]=await Promise.all([nt.getChainId(),nt.getCode({address:It}),nt.getCode({address:Tg.contracts.multicall3.address}).catch(()=>{})]);if(ou=s&&s!=="0x"?Tg.contracts.multicall3.address:void 0,e!==fa.id)throw new Error("RPC chain is not 4663. Transactions are unavailable.");if(!n||jt(n)!==xv)throw new Error("Vault code could not be verified. Transactions are unavailable.");return{multicall:!!ou}}async function Ln(e){if(!e.length)return[];if(e.some(s=>["allAssets","depositStatus","previewDeposit","previewRedeem"].includes(s.functionName)))throw new Error("Heavy view cannot be batched");if(!ou)return Promise.all(e.map(Ms));const n=[];for(let s=0;s<e.length;s+=20){const r=e.slice(s,s+20);try{const l=await Ie({address:ou,abi:il,functionName:"aggregate3",args:[r.map(u=>({target:u.address,allowFailure:!0,callData:bi(u)}))]});n.push(...await Promise.all(r.map(async(u,f)=>{try{return l[f].success?{ok:!0,value:Wa({...u,data:l[f].returnData})}:await Ms(u)}catch{return Ms(u)}})))}catch{n.push(...await Promise.all(r.map(Ms)))}}return n}const V4=["OK","genesis not finished","deposits paused","outside deposit hours","not listed","closed or retired","listed twice","balance unreadable","vault short of this stock","feed price missing or too old","price outside its band","paused by its issuer","pool check failed (pool price too far off the feed, unreadable, under its floor or quote feed bad)","no pool and feed older than noPoolAge","too few fresh prices"],lu={symbols:{}};function K4(e,n){lu.symbols=Object.fromEntries(e.map(s=>[s.token.toLowerCase(),s.symbol])),lu.settings=n}function Av(e){const n=lu.symbols[String(e).toLowerCase()];return n&&n!=="unreadable"?n:e}const F4=e=>`${Number(e)/100}%`,dp=e=>`${Number(e)/60}-minute`;function gi(e,n=lu.settings){return e===void 0?"unreadable":e===12&&n?`pool check failed (${dp(BigInt(n.poolWindow))} pool price over ${F4(BigInt(n.poolDeviation))} off the feed, unreadable, under its floor or quote feed bad)`:V4[e]??`Unknown reason ${e}`}const Y4=["List","Feed","Recentre","Reopen","Retire","Pool","Resync","Guardian","RaiseCap","FeeRecipient","Setting"],Z4={Unauthorized:"This wallet is not allowed to perform this action.",Reentrant:"The contract rejected a reentrant call.",InvalidAddress:"Choose a valid allowed address.",InvalidInput:"Check the amounts, array lengths and allowed values, then retry.",InvalidSetting:"This setting is outside its bounds or exceeds the combined gas limits. Refresh settings and retry.",InvalidAsset:"Check this stock’s listing, closed or retired status and the asset limit.",InvalidFeed:"The feed is unreadable, has more than 18 decimals, a stale or invalid answer, or is already used by another stock.",InvalidPool:"The pool is unreadable or does not include this stock, or the pool, quote feed and minimum liquidity are not set together.",InvalidProposal:"This proposal is cancelled, expired or no longer valid. Retry the proposal list.",Timelock:"The waiting period has not ended. Check the execution time.",BalanceUnreadable:"A stock balance could not be read. Retry later.",PaymentFailed:"The stock transfer failed. If the issuer paused it, retry later or use another claim recipient.",Slippage:"The preview changed beyond your minimum. Refresh and retry.",Deadline:"The deadline has passed. Refresh the preview and retry.",CapExceeded:"This deposit exceeds the vault size limit. Reduce the amount.",ZeroNAV:"The vault has shares but zero NAV. Deposits cannot proceed.",InsufficientBalance:"Your balance is too low for this amount.",InsufficientAllowance:"The BASK allowance is too low for this transfer.",MathOverflow:"This amount is outside the supported range.",InvalidTick:"The pool price is outside its supported range."},Tv=["PaymentFailed","BalanceUnreadable"];async function X4(e,n){const s=wt(e),r=kv(e),l=n.functionName==="claim"?n.args?.[0]??[]:[];return r&&Tv.includes(r.errorName)&&l.length>1?`${s} ${Av(r.args[0])} blocked this batch, so nothing in it was claimed. The other stocks can be claimed with their own Claim buttons.`:s}function Xc(e){if(!(!e||typeof e!="object"))return typeof e.data=="string"&&/^0x[0-9a-fA-F]{8,}$/.test(e.data)?e.data:Xc(e.cause)??Xc(e.error)??Xc(e.data)}function kv(e){const n=Xc(e);if(n)try{return C6({abi:$u,data:n})}catch{return}}function wt(e,n=Av,s=!1){if(e instanceof ce)return e.message;const r=kv(e);if(r){if(r.errorName==="DepositUnavailable"){const[f,m]=r.args;return`${gi(Number(f))}. Stock at fault: ${m===Le?"none":n(m)}.`}const u=Z4[r.errorName]??r.errorName;return Tv.includes(r.errorName)?`${n(r.args[0])}: ${u}`:u}if(s)return"Preview: unreadable. Retry the preview.";const l=e;return/timed out while waiting for transaction|receipt.*not found/i.test(l.shortMessage??l.message??"")?"Confirmation could not be read. Check the transaction link and refresh the vault before retrying.":l.code===4001||/rejected|denied/i.test(l.message??"")?"The wallet request was declined. You can try again.":l.shortMessage??l.message??"The request failed. Please retry."}async function fp(e,n){if(e.itemUser!==void 0&&e.itemUser.toLowerCase()!==n?.toLowerCase())throw new ce("The wallet account changed. Please retry.");await nt.call({to:e.address,data:bi(e),account:n,gas:Sv,batch:!1,...e.value!==void 0?{value:e.value}:{}})}async function Q4(e,n){const[s,r]=await Promise.all([nt.getChainId(),nt.getCode({address:e})]);if(s!==4663||!r||r==="0x"||jt(r)!==n)throw new ce("ITEM contract code could not be verified. Transactions are unavailable.")}const ua=604800n,Os=86400n,hp=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function kg(e){return e%4n===0n&&(e%100n!==0n||e%400n===0n)}function jg(e){const n=e-1n;return 365n*(e-1970n)+n/4n-n/100n+n/400n-477n}function J4(e){const n=e/Os;let s=1970n+n/365n;for(;jg(s)>n;)--s;const r=jg(s),l=r+59n+(kg(s)?1n:0n),u=r+304n+(kg(s)?1n:0n),f=l+(7n-(l+4n)%7n)%7n+7n,m=u+(7n-(u+4n)%7n)%7n;return e>=f*Os+7n*3600n&&e<m*Os+6n*3600n}function pp(e,n){return n===2n||n===0n&&J4(e)?4n*3600n:5n*3600n}function ph(e,n){return(e+4n*Os+ua-pp(e,n))%ua}function W4(e,n,s,r){if(n===0n&&s===0n)return!0;const l=ph(e,r);return l>=n&&l<s}function e9(e,n,s){const r=ph(e,s);let l=e+(r<n?n-r:ua-r+n);for(let u=0;u<3;u++){let f=((n-ph(l,s))%ua+ua)%ua;if(f>ua/2n&&(f-=ua),f===0n)break;l+=f}return l}function t9(e){const n=Number(e/3600n)%24,s=Number(e%3600n/60n);if(e===Os)return"24:00";const r=n<12?"am":"pm";return`${n%12===0?12:n%12}:${String(s).padStart(2,"0")} ${r}`}function mh(e){return e===ua?"Saturday 24:00":`${hp[Number(e/Os)]} ${t9(e%Os)}`}function jv(e,n,s=0n){return e===0n&&n===0n?"always open":`${mh(e)} to ${mh(n)} ${mp(s)}`}const Nv=["US daylight saving rule","never daylight saving (UTC-5)","always daylight saving (UTC-4)"];function mp(e){return e===1n?"UTC-5":e===2n?"UTC-4":"New York time"}function n9(e,n){return new Date(Number(e-pp(e,n))*1e3).toLocaleDateString("en-GB",{timeZone:"UTC",weekday:"long",day:"numeric",month:"long",year:"numeric"})}const a9=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Ng=e=>String(e).padStart(2,"0");function s9(e){const n=new Date(Number(e)*1e3),s=new Date(Number(e-pp(e,0n))*1e3),r=f=>hp[f.getUTCDay()].slice(0,3),l=f=>`${Ng(f.getUTCHours())}:${Ng(f.getUTCMinutes())}`,u=s.getUTCDay()===n.getUTCDay()?"":`${r(s)} `;return`${r(n)} ${n.getUTCDate()} ${a9[n.getUTCMonth()]} ${n.getUTCFullYear()}, ${l(n)} UTC (${u}${l(s)} New York)`}function i9(e){const n=e<0n?0n:e;return`${n/3600n} h ${n%3600n/60n} min`}function Bg(e,n=!1){const s=e.trim().match(/^([A-Za-z]+)\s+(\d{1,2}):(\d{2})(?:\s*([AaPp])\.?[Mm]\.?)?$/);if(!s)throw new ce("Use a weekday and New York time, e.g. Monday 9:30 am or Friday 16:00.");const r=hp.findIndex(f=>f.toLowerCase()===s[1].toLowerCase());if(r<0)throw new ce(`Unknown weekday ${s[1]}.`);let l=Number(s[2]);const u=Number(s[3]);if(s[4]){if(l<1||l>12)throw new ce("Use 1-12 with am or pm.");l=l%12+(s[4].toLowerCase()==="p"?12:0)}if(u>59)throw new ce("Minutes must be 00-59.");if(l===24&&u===0&&r===6&&n)return ua;if(l>23)throw new ce("Hours must be 0-23 (Saturday 24:00 only as the end).");return BigInt(r)*Os+BigInt(l)*3600n+BigInt(u)*60n}function r9(e,n){const s=u=>/^always\s+open$/i.test(u.trim());if(s(e)||s(n)){if(!(s(e)&&s(n)))throw new ce('Enter "Always open" in both fields, or two times.');return[0n,0n]}const r=Bg(e),l=Bg(n,!0);if(r>=l)throw new ce("From must be earlier in the week than To.");return[r,l]}const Rg=["owner","guardian","pendingOwner","feeRecipient","genesisFinalized","depositsPaused","NAV_CAP","totalSupply","proposalCount","settings"],o9={assets:[],globals:{},errors:[],complete:!1,aggregate:!1,loadedAt:0};async function yp(){const e=[],n={};let s;const[r,l,u,f]=await Promise.all([Ln(Rg.map(b=>Ne(b))),Ms(Ne("allAssets")),Ms(Ne("depositStatus",[[]])),nt.getBlock({blockTag:"latest"}).then(b=>(s=Date.now(),b)).catch(()=>{})]);f||e.push("latest block: unreadable"),r.forEach((b,w)=>{b.ok?n[Rg[w]]=b.value:e.push(b.error)}),u.ok||e.push(u.error);let m=[],p=!0;if(l.ok)m=l.value.map((b,w)=>({...b.config,answer:b.answer,updatedAt:b.updatedAt,poolPrice:b.poolPrice,managed:b.managedBalance,totalOwed:b.owedBalance,short:b.balanceReadable?b.shortfall>0n:void 0,balanceReadable:b.balanceReadable,reason:Number(b.reason),symbol:"unreadable",description:"unreadable",index:w}));else{e.push("allAssets: unreadable. Showing individual stock reads; pool checks and price reasons are unreadable.");const b=await Ms(Ne("assetTokens"));if(!b.ok)p=!1,e.push(b.error);else for(let w=0;w<b.value.length;w++){const g=await Ms(Ne("asset",[b.value[w]]));if(!g.ok){p=!1,e.push(g.error);continue}const S=g.value,[T,x,j,M]=await Ln([Ne("managed",[S.token]),Ne("totalOwed",[S.token]),Ha(S.feed,"latestRoundData"),cn(S.token,"balanceOf",[It])]);m.push({...S,managed:T.ok?T.value:void 0,totalOwed:x.ok?x.value:void 0,answer:j.ok?j.value[1]:void 0,updatedAt:j.ok?j.value[3]:void 0,balanceReadable:M.ok&&x.ok,short:M.ok&&x.ok&&T.ok?(M.value>x.value?M.value-x.value:0n)<T.value:void 0,index:w,symbol:"unreadable",description:"unreadable"});for(const I of[T,x,j,M])I.ok||e.push(`${S.token}: ${I.error}`)}}const y=await Ln(m.flatMap(b=>[cn(b.token,"symbol"),Ha(b.feed,"description")]));return m.forEach((b,w)=>{const g=y[2*w],S=y[2*w+1];b.symbol=g.ok?g.value:"unreadable",b.description=S.ok?uu(S.value,b.symbol):"unreadable",(!g.ok||!S.ok)&&e.push(`${b.token}: label unreadable`)}),K4(m,n.settings),{assets:m,globals:n,errors:e,complete:p,aggregate:l.ok,status:u,blockTime:f?.timestamp,blockReadAt:f?s:void 0,loadedAt:Date.now()}}function ol(e){if(e.retired)return 0n;if(e.managed!==void 0){if(e.managed===0n)return 0n;if(!(e.answer===void 0||e.answer<=0n))return e.managed*e.answer*10n**18n/10n**BigInt(e.tokenDecimals+e.feedDecimals)}}function Du(e,n=!0){let s=0n,r=n,l=!1;for(const u of e){const f=ol(u);f===void 0?r=!1:s+=f,u.managed!==0n&&u.reason!==0&&(l=!0)}return{nav:r?s:void 0,indicative:l}}function ll(e,n=!1,s=18){if(!new RegExp(`^\\d+(\\.\\d{1,${Math.max(s,1)}})?$`).test(e.trim())||s===0&&e.includes("."))throw new ce(`Enter a decimal amount with up to ${s} decimal places.`);const r=pv(e.trim(),s);if(!n&&r===0n||r>=2n**256n)throw new ce("Enter an amount greater than zero and within the supported range.");return r}function Xt(e,n=!1){if(!dn(e.trim())||!n&&ge(e.trim(),Le))throw new ce("Enter a valid nonzero address.");return e.trim()}function cu(e){const n=Xt(e);if(ge(n,It))throw new ce("The receiver must not be the vault.");return n}function bp(e,n=256){if(!/^\d+$/.test(e)||BigInt(e)>=2n**BigInt(n))throw new ce(`Enter an unsigned ${n}-bit whole number.`);return BigInt(e)}function yh(e){if(!e.trim())throw new ce("Line 1: enter at least one TICKER token feed pool quoteFeed minLiquidity line.");const n=[];for(const[s,r]of e.split(/\n/).entries())if(r.trim())try{const l=r.trim().split(/\s+/);if(l.length!==6)throw new ce("Use TICKER token feed pool quoteFeed minLiquidity.");const u=(w,g,S=!1)=>{try{return Xt(w,S)}catch{throw new ce(`${g}: invalid address or checksum${S?"":" (nonzero required)"}.`)}},f=u(l[3],"pool",!0),m=u(l[4],"quoteFeed",!0);let p;try{p=bp(l[5],128)}catch{throw new ce("minLiquidity: enter an unsigned 128-bit whole number.")}if(ge(f,Le)&&(!ge(m,Le)||p!==0n))throw new ce("No pool requires zero quote feed and zero liquidity.");if(!ge(f,Le)&&ge(m,Le))throw new ce("A pool requires a quote feed.");if(!ge(f,Le)&&p===0n)throw new ce("A pool requires a minLiquidity above zero (a zero floor never rejects a drained pool).");const y=u(l[1],"token"),b=u(l[2],"feed");if(n.some(w=>ge(w.token,y)))throw new ce("Each stock must appear only once.");if(n.some(w=>ge(w.feed,b)))throw new ce("Each stock feed must be unique.");n.push({ticker:l[0],token:y,feed:b,pool:f,quoteFeed:m,minLiquidity:p,line:s+1})}catch(l){throw new ce(`Line ${s+1}: ${l.message}`)}return n}function pt(e,n=18,s=4){if(e===void 0)return"unreadable";const[r,l=""]=Pa(e,n).split("."),u=l.slice(0,s).replace(/0+$/,"");return e>0n&&BigInt(r)===0n&&!u&&l.replace(/0/g,"")?`<0.${"0".repeat(s-1)}1`:`${r==="-0"?"-0":BigInt(r).toLocaleString("en-US")}${u?"."+u:""}`}const Bv=(e,n=18)=>Pa(e,n),Zn=e=>e===void 0?"unreadable":"$"+pt(e,18,2);function ui(e,n="start"){if(e===void 0)return"unreadable";if(e===0n)return"Not set";try{const s=BigInt(e),r=(n==="start"?s+59n:s)/60n;return r*60n>253402300799n?"unreadable":s9(r*60n)}catch{return"unreadable"}}const ge=(e,n)=>!!e&&!!n&&e.toLowerCase()===n.toLowerCase(),cl=()=>BigInt(Math.floor(Date.now()/1e3)+600),Mg=(e,n,s,r)=>[e,n,s,r*995n/1000n,cl()],l9=(e,n,s)=>[e,n,s.map(r=>r*999n/1000n),cl()];function uu(e,n=""){return e.replace(/^Robinhood\s+/,"").replace(/^RH\s*/,"")}function Rv(e,n){const s=uu(n,e);return e!=="unreadable"&&e.length>0&&s.startsWith(e)&&[" ","/","-"].includes(s.charAt(e.length))}const Cg={USDG:"0x61b7e5650328764b076a108eff5fa7282a1b9ad2",ETH:"0x78f3556b67e17df817d51ef5a990cdaf09e8d3a9"},Ge={BASK:"0x739fD5B653aA092a434534FA1aDE67C1770b5a5B",USDG:"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168",WETH:"0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73",V2_ROUTER:"0x89e5DB8B5aA49aA85AC63f691524311AEB649eba",BASK_USDG_PAIR:"0xCC23688c49D58c5FF1f3Bf77e3cAB1927cBa6e70",DEV:"0xc5e21e7A89F1fBDc5554e31702e627dD6262C856",V2_ROUTER_HASH:"0xbd55ea26b2f8d42a8ff151511cef92a326a9817686899fe96a8a8f81ee7fc55e",USDG_HASH:"0x864cc9ad53b338b82da1f7cab85ab0b3d5c8861acb422b6fec63cf36234f36a6"},gp=["ITEM","ITEM_STAKING","BASK_USDG_GAUGE","ITEM_ETH_GAUGE","DEV_VESTING"],Mv=[...gp,"ITEM_WETH_PAIR"],c9=[...Mv.map(e=>`${e}_HASH`),"BASK_USDG_PAIR_HASH"],Qe={ITEM:"0x4F1b7a5aAF3768F7500E9ab5CBBF3762834e8B57",ITEM_STAKING:"0x7E82d352D3F6336e474bA28040785414A8E2E1D3",BASK_USDG_GAUGE:"0xF5eBBF7A60B22FB38270AB4942585AD1654a9A11",ITEM_ETH_GAUGE:"0x5a2fc207f7d9f84426B8C0f7908a492450E0add6",DEV_VESTING:"0xf1670d095d32b1011aA843E7b7d44Eeb7bA222C7",ITEM_WETH_PAIR:"0x9a2B386290Cbfeb40be6EDA694de73B97D66B269",ITEM_HASH:"0x88e6958c93593f86b2ce10ddb6aad48e7fe950c2d77b3ad17bd20135b54dd094",ITEM_STAKING_HASH:"0xb1a29155cc3f1181b3f7d2fb201b8a341234312c8fc4ca757a4350b50147ac26",BASK_USDG_GAUGE_HASH:"0x393b4efe68a8fe743ec9e0df52c9a278a2f11cbcecd85c0ad369083e422d67af",ITEM_ETH_GAUGE_HASH:"0x08bb4f4a8857373753a0f79a7fbfb38e90556593abb4774f1e873d9462ac3d8f",DEV_VESTING_HASH:"0x6562ef49618a0becdacdd132444e5f6a5b460bd36bf2b9e1a4b522a1b4db4b47",ITEM_WETH_PAIR_HASH:"0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5",BASK_USDG_PAIR_HASH:"0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5",ITEM_REPO:"https://github.com/identity-md-launches/launch-2241-item",ITEM_COMMIT:"f0f84fcd6637ea334d50af06b8f694c19b643461"};function An(e=Qe){return[...Mv,...c9,"ITEM_REPO","ITEM_COMMIT"].every(n=>e[n]!==null)}const Sn=In(["function symbol() view returns (string)","function decimals() view returns (uint8)","function totalSupply() view returns (uint256)","function balanceOf(address) view returns (uint256)","function allowance(address,address) view returns (uint256)","function approve(address,uint256) returns (bool)"]),Cv=In(["function getReserves() view returns (uint112,uint112,uint32)","function token0() view returns (address)","function totalSupply() view returns (uint256)"]),Og=In(["function addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256) returns (uint256,uint256,uint256)","function addLiquidityETH(address,uint256,uint256,uint256,address,uint256) payable returns (uint256,uint256,uint256)"]),Bs=In(["function item() view returns (address)","function tokenA() view returns (address)","function tokenB() view returns (address)","function V2_FACTORY() view returns (address)","function ALLOCATION() view returns (uint256)","function pair() view returns (address)","function started() view returns (bool)","function stakedSeconds() view returns (uint256)","function released() view returns (uint256)","function rate() view returns (uint256)","function remaining() view returns (uint256)","function totalStaked() view returns (uint256)","function staked(address) view returns (uint256)","function earned(address) view returns (uint256)","function stake(uint256)","function withdraw(uint256)","function claim()"]),yr=In(["function item() view returns (address)","function BASK() view returns (address)","function USDG() view returns (address)","function WETH() view returns (address)","function totalStaked() view returns (uint256)","function staked(address) view returns (uint256)","function earned(address,address) view returns (uint256)","function stake(uint256)","function unstake(uint256)","function claim(address)"]);In(["function item() view returns (address)","function beneficiary() view returns (address)","function ALLOCATION() view returns (uint256)","function deployedAt() view returns (uint256)","function funded() view returns (bool)","function vested() view returns (uint256)","function released() view returns (uint256)"]);const u9=["baskApprove","baskStake","baskWithdraw","baskClaim","ethApprove","ethStake","ethWithdraw","ethClaim","itemApprove","itemStake","itemUnstake","claimBask","baskLiquidityApprove","usdgLiquidityApprove","baskAddLiquidity","itemLiquidityApprove","ethAddLiquidity"];function bh(e,n,s=Qe,r){if(!An(s))throw new ce("ITEM figures: unreadable. Retry.");if(["baskApprove","baskStake","baskWithdraw","ethApprove","ethStake","ethWithdraw","itemApprove","itemStake","itemUnstake","baskLiquidityApprove","usdgLiquidityApprove","baskAddLiquidity","itemLiquidityApprove","ethAddLiquidity"].includes(e)&&(n===void 0||n<=0n||n>=2n**256n))throw new ce("Enter an amount.");const u=e==="baskAddLiquidity"||e==="ethAddLiquidity";if(u&&(!r||!dn(r.user)||/^0x0{40}$/i.test(r.user)||r.matched<=0n||r.matched>=2n**256n||r.minimumA<=0n||r.minimumB<=0n||r.minimumA!==n*995n/1000n||r.minimumB!==r.matched*995n/1000n||r.deadline<=cl()-600n||r.deadline>cl()))throw new ce("The request failed. Please retry.");if(!u&&r!==void 0)throw new ce("The request failed. Please retry.");const f={baskApprove:{address:Ge.BASK_USDG_PAIR,abi:Sn,functionName:"approve",args:[s.BASK_USDG_GAUGE,n],itemHash:s.BASK_USDG_PAIR_HASH},baskStake:{address:s.BASK_USDG_GAUGE,abi:Bs,functionName:"stake",args:[n],itemHash:s.BASK_USDG_GAUGE_HASH},baskWithdraw:{address:s.BASK_USDG_GAUGE,abi:Bs,functionName:"withdraw",args:[n],itemHash:s.BASK_USDG_GAUGE_HASH},baskClaim:{address:s.BASK_USDG_GAUGE,abi:Bs,functionName:"claim",args:[],itemHash:s.BASK_USDG_GAUGE_HASH},ethApprove:{address:s.ITEM_WETH_PAIR,abi:Sn,functionName:"approve",args:[s.ITEM_ETH_GAUGE,n],itemHash:s.ITEM_WETH_PAIR_HASH},ethStake:{address:s.ITEM_ETH_GAUGE,abi:Bs,functionName:"stake",args:[n],itemHash:s.ITEM_ETH_GAUGE_HASH},ethWithdraw:{address:s.ITEM_ETH_GAUGE,abi:Bs,functionName:"withdraw",args:[n],itemHash:s.ITEM_ETH_GAUGE_HASH},ethClaim:{address:s.ITEM_ETH_GAUGE,abi:Bs,functionName:"claim",args:[],itemHash:s.ITEM_ETH_GAUGE_HASH},itemApprove:{address:s.ITEM,abi:Sn,functionName:"approve",args:[s.ITEM_STAKING,n],itemHash:s.ITEM_HASH},itemStake:{address:s.ITEM_STAKING,abi:yr,functionName:"stake",args:[n],itemHash:s.ITEM_STAKING_HASH},itemUnstake:{address:s.ITEM_STAKING,abi:yr,functionName:"unstake",args:[n],itemHash:s.ITEM_STAKING_HASH},claimBask:{address:s.ITEM_STAKING,abi:yr,functionName:"claim",args:[Ge.BASK],itemHash:s.ITEM_STAKING_HASH},baskLiquidityApprove:{address:Ge.BASK,abi:Sn,functionName:"approve",args:[Ge.V2_ROUTER,n],itemHash:xv},usdgLiquidityApprove:{address:Ge.USDG,abi:Sn,functionName:"approve",args:[Ge.V2_ROUTER,n],itemHash:Ge.USDG_HASH},baskAddLiquidity:{address:Ge.V2_ROUTER,abi:Og,functionName:"addLiquidity",args:[Ge.BASK,Ge.USDG,n,r?.matched,r?.minimumA,r?.minimumB,r?.user,r?.deadline],itemHash:Ge.V2_ROUTER_HASH,itemUser:r?.user},itemLiquidityApprove:{address:s.ITEM,abi:Sn,functionName:"approve",args:[Ge.V2_ROUTER,n],itemHash:s.ITEM_HASH},ethAddLiquidity:{address:Ge.V2_ROUTER,abi:Og,functionName:"addLiquidityETH",args:[s.ITEM,n,r?.minimumA,r?.minimumB,r?.user,r?.deadline],value:r?.matched,itemHash:Ge.V2_ROUTER_HASH,itemUser:r?.user}};if(!u9.includes(e))throw new ce("The request failed. Please retry.");return{...f[e],itemAction:e,itemAmount:n,...u?{itemLiquidity:r}:{}}}async function d9(e){const n=e,s=bh(n.itemAction,n.itemAmount,Qe,n.itemLiquidity);if(n.address!==s.address||n.itemHash!==s.itemHash||n.value!==s.value||n.itemUser!==s.itemUser||bi(n)!==bi(s))throw new ce("The request failed. Please retry.");await Q4(s.address,s.itemHash)}const f9=["Connect a wallet to send this transaction.","Switch your wallet to Robinhood Chain (4663) before sending.","The wallet account changed. Please retry.","The wallet chain changed. Please retry.","The transaction reverted. Refresh the data before retrying."];function Qc(e){if(e instanceof ce||e instanceof Error&&f9.includes(e.message))return e.message;const n=e;return n.code===4001||/rejected|denied/i.test(n.message??"")?"The wallet request was declined. You can try again.":"The request failed. Please retry."}class du extends ce{}const h9="The earlier transaction is finished (confirmed or replaced). Press Resume listing.",p9="Another transaction is pending. Finish it in your wallet or wait for its receipt.",_g="Receipt timed out or unreadable. This transaction may still be pending. Wait for its receipt before retrying.",m9="The earlier transaction is finished (confirmed or replaced). Refresh the vault before retrying.";class ko extends Error{constructor(n,s){super(n),this.hash=s}}const cr="basket-pending-4663";function y9(){try{return JSON.parse(sessionStorage.getItem(cr)||"null")||void 0}catch{return}}const Jc="basket-item-pending-4663";function b9(){try{return JSON.parse(sessionStorage.getItem(Jc)||"null")||void 0}catch{return}}const gh="basket-disconnected-4663";function g9(){try{return localStorage.getItem(gh)==="1"}catch{return!1}}const v9="https://gateway.pinata.cloud/ipfs/bafkreiczp2hrpey42mx5hngo37rrwwwexrt3mdm537pyztv22pn4skxsvi";function w9(e){const n=D.useRef(!1),s=D.useRef(!1),r=D.useRef(g9()),l=D.useRef(0),u=D.useRef(0),[f,m]=D.useState(!1),[p,y]=D.useState({}),b=D.useRef(y9()),w=D.useRef(!!b.current),g=D.useRef(b9());function S(H,W){y(ue=>({...ue,[H]:W})),J(W.message)}function T(H,W){y(ue=>({...ue,[H]:{message:W}})),J(W),X(void 0)}function x(){return w.current&&T("listing",h9),w.current=!1,!0}function j(H,W){y(ue=>({...ue,[H]:{...ue[H],message:W}}))}async function M(H=!1){if(!A)return!1;const W=b.current;let ue=!1;if(W&&ge(W.account,A))try{await nt.getTransactionReceipt({hash:W.hash})&&(b.current=void 0,sessionStorage.removeItem(cr),ue=x())}catch{const[me,Oe]=await Promise.all([nt.getTransaction({hash:W.hash}).catch(()=>{}),nt.getTransactionCount({address:A,blockTag:"latest"})]),Te=me?.nonce??W.nonce;if(Te!==void 0&&Oe>Te)b.current=void 0,sessionStorage.removeItem(cr),X(void 0),ue=x();else if(!H)throw X(W.hash),w.current=!0,S("listing",{message:"A transaction is still pending. Wait for its receipt before resuming listing.",hash:W.hash}),new ce("A transaction is still pending. Wait for its receipt, then resume listing.")}const[pe,we]=await Promise.all([nt.getTransactionCount({address:A,blockTag:"latest"}),nt.getTransactionCount({address:A,blockTag:"pending"})]);if(!H&&pe!==we)throw new ce("A transaction is still pending. Wait until the owner's pending and latest nonce match, then resume listing.");return ue}async function I(){await M(!0);const H=b.current;H&&ge(H.account,A)&&(S("listing",{message:"Submitted. Waiting for the pending transaction…",hash:H.hash}),await nt.waitForTransactionReceipt({hash:H.hash,timeout:18e4,pollingInterval:3e3})),await M(),await e()}async function O(H){const W=b.current;if(!W)return;const ue=we=>me=>{if(me?.name!==we)throw new ko(_g,W.hash)};let pe=!!await nt.getTransactionReceipt({hash:W.hash}).catch(ue("TransactionReceiptNotFoundError"));if(!pe){const[we,me,Oe]=await Promise.all([nt.getTransaction({hash:W.hash}).catch(ue("TransactionNotFoundError")),nt.getTransactionCount({address:W.account,blockTag:"latest"}),nt.getTransactionCount({address:W.account,blockTag:"pending"})]);pe=we!==void 0?me>we.nonce:W.nonce!==void 0&&me>W.nonce&&me===Oe}if(!pe)throw new ko(_g,W.hash);b.current=void 0;try{sessionStorage.removeItem(cr)}catch{}throw e().catch(()=>{}),new ko(m9,W.hash)}async function B(){const H=g.current;if(!A||!H){R(void 0);return}let W=!1;const ue=Oe=>Te=>{Te?.name!==Oe&&(W=!0)};let pe=!!await nt.getTransactionReceipt({hash:H.hash}).catch(ue("TransactionReceiptNotFoundError"));if(!pe&&!W){const[Oe,Te,ct]=await Promise.all([nt.getTransaction({hash:H.hash}).catch(ue("TransactionNotFoundError")),nt.getTransactionCount({address:H.account,blockTag:"latest"}).catch(()=>{}),nt.getTransactionCount({address:H.account,blockTag:"pending"}).catch(()=>{})]);pe=!W&&Te!==void 0&&(Oe!==void 0?Te>Oe.nonce:H.nonce!==void 0&&Te>H.nonce&&Te===ct)}const we=g.current;if(pe&&(we===H||we===void 0)){g.current=void 0;try{sessionStorage.removeItem(Jc)}catch{}R(void 0);return}const me=we?.hash;return R(me),me}const[A,z]=D.useState(),[C,Z]=D.useState(),[ee,J]=D.useState(""),[K,X]=D.useState(),[oe,he]=D.useState(!1),[ae,R]=D.useState(g.current?.hash),[V,Y]=D.useState();D.useEffect(()=>{const H=window.ethereum;if(!H)return;const W=we=>{l.current++,r.current||z(we[0])},ue=we=>Z(Number(we)),pe=l.current;return H.request({method:"eth_accounts"}).then(we=>{pe===l.current&&W(we)}).catch(()=>{}),H.request({method:"eth_chainId"}).then(ue).catch(()=>{}),H.on?.("accountsChanged",W),H.on?.("chainChanged",ue),()=>{l.current++,H.removeListener?.("accountsChanged",W),H.removeListener?.("chainChanged",ue)}},[]);async function se(){if(s.current)return;s.current=!0,l.current++;const H=++u.current;m(!0);try{if(!window.ethereum)throw new Error("Open this page in your wallet app's browser");const W=await window.ethereum.request({method:"eth_requestAccounts"});if(H!==u.current)return;if(W[0]){r.current=!1;try{localStorage.removeItem(gh)}catch{}}z(W[0]),Z(Number(await window.ethereum.request({method:"eth_chainId"}))),J("")}catch(W){J(wt(W))}finally{s.current=!1,m(!1)}}function le(){if(!n.current){l.current++,u.current++,r.current=!0;try{localStorage.setItem(gh,"1")}catch{}z(void 0),X(void 0),J("Wallet disconnected from this page. To use another wallet, switch the address in your wallet app, then press Connect wallet.")}}async function k(){try{const H=window.ethereum;if(!H)return;try{await H.request({method:"wallet_switchEthereumChain",params:[{chainId:"0x1237"}]})}catch(W){if(W.code!==4902)throw W;await H.request({method:"wallet_addEthereumChain",params:[{chainId:"0x1237",chainName:fa.name,nativeCurrency:fa.nativeCurrency,rpcUrls:fa.rpcUrls.default.http,blockExplorerUrls:[fa.blockExplorers.default.url]}]})}Z(Number(await H.request({method:"eth_chainId"})))}catch(H){J(wt(H))}}async function P(){try{const H=window.ethereum;if(!H)throw new Error("Open this page in your wallet app's browser");if(Number(await H.request({method:"eth_chainId"}))!==4663&&await k(),Number(await H.request({method:"eth_chainId"}))!==4663)throw new Error("Switch your wallet to Robinhood Chain (4663), then press Add BASK to MetaMask again.");const W=await H.request({method:"wallet_watchAsset",params:{type:"ERC20",options:{address:It,symbol:"BASK",decimals:18,image:v9}}});J(W?"The wallet accepted the request to list BASK.":"The wallet did not add BASK.")}catch(H){J(wt(H))}}async function ie(H,W=H.functionName,ue=W,pe){const we="itemAction"in H;if(n.current)throw new ce("A transaction is already in progress.");n.current=!0,he(!0),X(void 0),S(W,{message:`${ue}: Checking…`});let me,Oe=!1;try{const Te=window.ethereum;if(!Te||!A)throw new Error("Connect a wallet to send this transaction.");if(we){const ye=await B();if(ye)throw new ko(p9,ye)}const[ct,dt]=await Promise.all([Te.request({method:"eth_chainId"}),Te.request({method:"eth_accounts"})]);if(Number(ct)!==4663)throw new Error("Switch your wallet to Robinhood Chain (4663) before sending.");if(dt[0]?.toLowerCase()!==A.toLowerCase())throw new Error("The wallet account changed. Please retry.");H.functionName==="listGenesis"?await M():we||await O(W),we?await d9(H):await Ev(),await fp(H,A);const Je=!we&&["deposit","redeem","claim"].includes(H.functionName)?(await nt.estimateGas({account:A,to:H.address,data:bi(H)})*130n+99n)/100n:void 0,rt=await nt.getTransactionCount({address:A,blockTag:"pending"});if(Number(await Te.request({method:"eth_chainId"}))!==4663)throw new Error("The wallet chain changed. Please retry.");if((await Te.request({method:"eth_accounts"}))[0]?.toLowerCase()!==A.toLowerCase())throw new Error("The wallet account changed. Please retry.");S(W,{message:`${ue}: Waiting for wallet…`});const Kt=await Te.request({method:"eth_sendTransaction",params:[{from:A,to:H.address,data:bi(H),...Je?{gas:`0x${Je.toString(16)}`}:{},...H.value!==void 0?{value:`0x${H.value.toString(16)}`}:{}}]});me=Kt,X(Kt);const pn={hash:Kt,account:A,functionName:H.functionName,nonce:rt};if(we){g.current=pn;try{sessionStorage.setItem(Jc,JSON.stringify(pn))}catch{}}else{b.current=pn;try{sessionStorage.setItem(cr,JSON.stringify(b.current))}catch{}}S(W,{message:`${ue}: Submitted. Waiting for confirmation…`,hash:Kt});let Ft;const Bt=await nt.waitForTransactionReceipt({hash:Kt,timeout:18e4,pollingInterval:3e3,onReplaced:ye=>{Ft=ye.reason}});if(Oe=!0,we){g.current=void 0;try{sessionStorage.removeItem(Jc)}catch{}R(void 0)}else{b.current=void 0;try{sessionStorage.removeItem(cr)}catch{}}if(Ft==="cancelled"||Ft==="replaced")throw new du(we?"The transaction did not run. Refresh before retrying.":Ft==="cancelled"?"The transaction was cancelled in the wallet; it did not run. Refresh the vault before retrying.":"The transaction was replaced in the wallet by a different one; it did not run. Refresh the vault before retrying.");const Pt=Bt.transactionHash;if(me=Pt,X(Pt),Bt.status!=="success")throw new Error("The transaction reverted. Refresh the data before retrying.");if(Y({hash:Pt,functionName:H.functionName}),S(W,{message:`${ue}: Confirmed. Refreshing…`,hash:Pt}),we)return await pe?.(),S(W,{message:`${ue}: Confirmed.`,hash:Pt}),Bt;let Tt="";try{const ye=await e();if(H.functionName==="propose"){const ke=Bt.logs.filter(at=>ge(at.address,It)).map(at=>{try{return bl({abi:$u,data:at.data,topics:at.topics})}catch{return}}).find(at=>at?.eventName==="Proposed");if(!ke)throw new Error("Proposal event unreadable");const{id:Ye,executableAt:yt,expiresAt:Ke}=ke.args;Tt=`Proposal ${Ye}; executable from ${ui(yt)} until just before ${ui(Ke,"end")}, from the Proposed event.`}if(["redeem","claim"].includes(H.functionName)){const ke=H.functionName==="redeem"?H.args[1]:A,Ye=await Ln(ye.assets.map(Ke=>Ne("owed",[ke,Ke.token]))),yt=ye.assets.flatMap((Ke,at)=>{const aa=Ye[at];return aa.ok?aa.value>0n?[`${Ke.symbol}: ${pt(aa.value,Ke.tokenDecimals)}`]:[]:[`${Ke.symbol}: unreadable — Retry claims`]});Tt=`Still owed to ${ke}: `+(ye.complete?yt.join("; ")||"Nothing owed.":"Stock list unreadable — Retry vault.")}}catch{Tt="Refresh unreadable. Retry vault / claims to read the confirmed result."}return S(W,{message:`${ue}: Confirmed.`,hash:Pt,detail:Tt}),Bt}catch(Te){if(Te instanceof du)throw T(W,Te.message),Te;if(Te instanceof ko)throw S(W,{message:Te.message,hash:Te.hash}),new ce(Te.message);const ct=we?Qc(Te):await X4(Te,H),dt=me&&!Oe?"Receipt timed out or unreadable. This transaction may still be pending. Wait for its receipt before retrying.":ct;throw we&&me&&!Oe&&R(me),me&&!Oe&&H.functionName==="listGenesis"&&(w.current=!0),S(W,{message:dt,hash:me}),new ce(dt)}finally{n.current=!1,he(!1)}}return{account:A,connecting:f,progress:p,report:S,fail:j,notice:T,listingPending:M,waitPending:I,itemPending:B,unresolved:ae,chainId:C,message:ee,hash:K,busy:oe,confirmed:V,connect:se,disconnect:le,switchChain:k,addToWallet:P,send:ie,setMessage:J}}function vh({large:e=!1}){return c.jsxs("svg",{className:e?"basket-art":"basket-icon",viewBox:"0 0 80 72",fill:"none","aria-hidden":"true",children:[c.jsx("path",{d:"M9 28h62L63 62H17L9 28Z",stroke:"currentColor",strokeWidth:"4",strokeLinejoin:"round"}),c.jsx("path",{d:"M23 28 35 8M57 28 45 8M28 39v12M40 39v12M52 39v12M6 28h68",stroke:"currentColor",strokeWidth:"4",strokeLinecap:"round"})]})}function qn({value:e}){return e?c.jsx("span",{className:"address",dir:"ltr",children:e}):c.jsx("span",{children:"unreadable"})}function Hn({value:e}){return c.jsx("a",{className:"address",href:`${fa.blockExplorers.default.url}/address/${e}`,target:"_blank",rel:"noreferrer",children:e})}function br({children:e,warning:n=!1}){return c.jsx("div",{className:n?"note warning":"note",children:e})}function vp({title:e,children:n}){return c.jsxs("div",{className:"empty",children:[c.jsx(vh,{}),c.jsx("h3",{children:e}),c.jsx("p",{children:n})]})}function Us({eyebrow:e,title:n,children:s,character:r}){return c.jsxs("div",{className:r?`page-title has-character character-${r.kind}`:"page-title",children:[e&&c.jsx("p",{className:"eyebrow",children:e}),c.jsx("h1",{tabIndex:-1,children:n}),s!=null&&c.jsx("p",{children:s}),r&&c.jsxs("div",{className:"title-character",children:[c.jsx("img",{className:"character-picture",src:r.src,width:r.width,height:r.height,alt:r.alt}),c.jsx("p",{className:"speech-bubble",children:r.line})]})]})}function ul({role:e,snapshot:n}){const s=n.globals;return n.loading?c.jsx("p",{className:"role-info",children:"Reading..."}):c.jsx("p",{className:"role-info",children:e==="anyone"?"Anyone may send this transaction.":c.jsxs(c.Fragment,{children:[e==="pending"?"Allowed: pending owner":e==="operator"?"Allowed: owner or guardian":"Allowed: owner",c.jsx("br",{}),c.jsx(qn,{value:e==="pending"?s.pendingOwner:s.owner}),e==="operator"&&c.jsxs(c.Fragment,{children:[c.jsx("br",{}),c.jsx(qn,{value:s.guardian})]})]})})}function x9(e,n,s){return!!n.account&&n.chainId===4663&&(e==="anyone"||e==="owner"&&ge(n.account,s.globals.owner)||e==="operator"&&(ge(n.account,s.globals.owner)||ge(n.account,s.globals.guardian))||e==="pending"&&s.globals.pendingOwner!==Le&&ge(n.account,s.globals.pendingOwner))}function ea({wallet:e,scope:n}){const s=e.progress[n];return c.jsx("div",{className:"action-status",role:"status","aria-live":"polite",children:s&&c.jsxs(c.Fragment,{children:[c.jsx("p",{children:s.message}),s.hash&&c.jsx("a",{href:`${fa.blockExplorers.default.url}/tx/${s.hash}`,target:"_blank",rel:"noreferrer",children:"View submitted transaction"}),s.detail&&c.jsx("p",{children:s.detail})]})})}function El(e,n,s="anyone"){return e.account?e.chainId!==4663?"Switch to Robinhood Chain to continue.":e.busy?"Another transaction is pending. Finish it in your wallet or wait for its receipt.":n.loading?"Reading... Wait for current vault data.":(s==="owner"||s==="operator")&&!n.globals.owner||s==="pending"&&!n.globals.pendingOwner?"Role data missing or unreadable. Retry vault.":x9(s,e,n)?"":"Not your role. Connect the allowed wallet shown above.":"Connect your wallet to continue."}function Al({reason:e,wallet:n,snapshot:s}){return e?c.jsxs("div",{className:"disabled-reason",children:[c.jsx("p",{children:e}),n.account?n.chainId!==4663?c.jsx("button",{onClick:n.switchChain,children:"Switch to Robinhood Chain"}):/unreadable|data missing/i.test(e)&&s.retry?c.jsx("button",{onClick:s.retry,children:"Retry vault"}):null:c.jsx("button",{onClick:n.connect,disabled:n.connecting,children:n.connecting?"Connecting...":"Connect wallet"})]}):null}function wh({value:e,wallet:n,claim:s=!1}){return c.jsxs("div",{className:"receiver",children:[c.jsxs("strong",{children:["Receiver ·"," ",ge(e,n.account)?"your connected wallet":"a different wallet"]}),c.jsx(qn,{value:e}),!ge(e,n.account)&&c.jsx("p",{children:s?"Existing claims belong to your connected wallet. Any stocks still owed stay with that wallet.":"A different receiver must connect here to claim any stocks still owed to it."})]})}function Xa({label:e,getSpec:n,role:s="anyone",wallet:r,snapshot:l,disabled:u=!1,primary:f=!1,disabledReason:m="Data missing. Complete the fields or refresh the vault.",scope:p=e}){const[y,b]=D.useState(""),[w,g]=D.useState(!1),S=D.useRef(!1),T=El(r,l,s)||(w?"Checking... Wait for this action.":u?m:"");return c.jsxs("div",{className:"tx-control",children:[c.jsx("button",{type:"button",className:f?"primary":"",disabled:!!T,onClick:async()=>{if(!S.current){S.current=!0,b(""),g(!0),r.report(p,{message:`${e}: Checking…`});try{await r.send(await n(),p,p)}catch(x){b(wt(x)),r.fail(p,wt(x))}finally{g(!1),S.current=!1}}},children:w?`${e}…`:e}),c.jsx(Al,{reason:T,wallet:r,snapshot:l}),c.jsx(ea,{wallet:r,scope:p}),c.jsx("p",{role:"alert",className:"error",children:y})]})}function S9(e,n){if(!e||typeof e!="object")throw new Error("Invalid stats response");const s=e;if(s.schemaVersion!==1||s.period!==n||typeof s.generatedAt!="string"||!Number.isFinite(Date.parse(s.generatedAt))||typeof s.html!="string"||s.html.length>1e6||!s.html.includes('class="vault-page"'))throw new Error("Invalid stats response");const r=new DOMParser().parseFromString(s.html,"text/html");if(!r.querySelector("div.vault-page")||r.querySelectorAll("*").length>5e4)throw new Error("Invalid stats report");return{schemaVersion:1,period:n,generatedAt:s.generatedAt,html:s.html,preview:s.preview===!0}}const E9=new Set("div section aside p h2 h3 dl dt dd nav a svg line text polyline circle title span strong ul li small meter figure figcaption details summary table thead tr th tbody td ol br".split(" ")),A9=new Set("class id role aria-label aria-labelledby aria-current scope viewBox x y x1 x2 y1 y2 cx cy r points text-anchor min max value".split(" ")),T9={class:"className","text-anchor":"textAnchor"};function k9(e,n){const r=new DOMParser().parseFromString(e,"text/html").querySelector(".vault-page");if(!r)throw new Error("Missing stats report");const l=(u,f,m=!1)=>{if(u.nodeType===Node.TEXT_NODE)return u.textContent;if(u.nodeType!==Node.ELEMENT_NODE)return null;const p=u,y=p.tagName.toLowerCase();if(!E9.has(y)||p.classList.contains("vault-intro")||y==="title"&&!m)return null;const b={key:f};for(const w of Array.from(p.attributes))A9.has(w.name)&&(w.name==="id"?b.id="stats-"+w.value:w.name==="aria-labelledby"?b[w.name]=w.value.split(/\s+/).map(g=>"stats-"+g).join(" "):w.name==="class"?b.className=w.value.split(/\s+/).filter(g=>/^(vault-[a-z-]+|card|section|section-head|small|muted|below|above|replay|sample|deposit|redemption)$/.test(g)).join(" "):b[T9[w.name]||w.name]=w.value);if(y==="svg"&&(b.viewBox=p.getAttribute("viewBox")||"0 0 760 240",b.role="img"),y==="a"){const w=p.getAttribute("href")||"",g=/^\/vault\?period=(1d|7d|30d|all)$/.exec(w)?.[1];if(g)b.href="#vault",b.onClick=S=>{S.preventDefault(),n(g)};else if(/^https:\/\/robin\.etherscan\.io\/tx\/0x[0-9a-fA-F]{64}$/.test(w))b.href=w,b.target="_blank",b.rel="noopener noreferrer";else return D.createElement("span",{key:f},p.textContent)}return y==="br"?D.createElement(y,b):D.createElement(y,b,Array.from(p.childNodes).map((w,g)=>l(w,f+"."+g,m||y==="svg")))};return l(r,"report")}const j9={},N9=j9?.VITE_VAULT_STATS_URL||"https://monitor-production-2eae.up.railway.app/api/vault-stats";function B9({children:e}){const[n,s]=D.useState(0),r=D.useRef([]);function l(u){const f=u.key==="Home"?0:u.key==="End"?1:u.key==="ArrowRight"||u.key==="ArrowLeft"?1-n:void 0;f!==void 0&&(u.preventDefault(),s(f),r.current[f]?.focus())}return c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"docs-tabs vault-view-tabs",role:"tablist","aria-label":"Vault view",children:["Overview","Stats"].map((u,f)=>c.jsx("button",{ref:m=>{r.current[f]=m},type:"button",role:"tab",id:"vault-view-tab-"+f,"aria-controls":"vault-view-panel-"+f,"aria-selected":n===f,tabIndex:n===f?0:-1,onClick:()=>s(f),onKeyDown:l,children:u},u))}),c.jsx("div",{id:"vault-view-panel-0",role:"tabpanel","aria-labelledby":"vault-view-tab-0",hidden:n!==0,children:e}),c.jsx("div",{id:"vault-view-panel-1",role:"tabpanel","aria-labelledby":"vault-view-tab-1",hidden:n!==1,children:n===1&&c.jsx(R9,{})})]})}function R9(){const[e,n]=D.useState("all"),[s,r]=D.useState(),[l,u]=D.useState(!0),[f,m]=D.useState(""),[p,y]=D.useState(0),b=D.useRef(0);D.useEffect(()=>{const S=++b.current,T=new AbortController,x=setTimeout(()=>T.abort(),2e4);u(!0),m("");const j=new URL(N9);return j.searchParams.set("period",e),fetch(j,{signal:T.signal,credentials:"omit",cache:"no-store",referrerPolicy:"no-referrer"}).then(async M=>{if(!M.ok)throw new Error("Stats unavailable");if(Number(M.headers.get("content-length")||0)>2097152)throw new Error("Stats too large");const I=S9(await M.json(),e);b.current===S&&r(I)}).catch(()=>{b.current===S&&(r(void 0),m("Vault stats are unavailable right now. Please try again."))}).finally(()=>{clearTimeout(x),b.current===S&&u(!1)}),()=>{++b.current,clearTimeout(x),T.abort()}},[e,p]);const w=D.useCallback(S=>n(S),[]),g=D.useMemo(()=>{if(!s)return null;try{return k9(s.html,w)}catch{return c.jsx("div",{className:"note warning",role:"alert",children:"Vault stats could not be displayed. Please try again."})}},[s,w]);return c.jsxs("div",{className:"basket-vault-stats",children:[c.jsx("p",{className:"vault-stats-intro",children:"The vault holds tokens linked to stock prices. BASK represents a share of that basket."}),c.jsxs("div",{className:"vault-stats-toolbar",children:[c.jsx("span",{role:"status",children:l?"Reading vault stats…":s?s.preview?"Preview · captured monitor readings":"Report updated "+new Date(s.generatedAt).toLocaleString("en-US",{timeZone:"America/New_York",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})+" New York":"Stats connection unavailable"}),c.jsxs("button",{disabled:l,onClick:()=>y(S=>S+1),children:[l?"Reading…":f?"Retry stats":"Refresh stats"," ",c.jsx("span",{"aria-hidden":"true",children:"↻"})]})]}),s?.preview&&c.jsx("p",{className:"note",children:"Design preview using captured readings from the reference monitor. These figures are not live."}),f&&c.jsx("div",{className:"note warning",role:"alert",children:f}),c.jsx("div",{"aria-busy":l,children:g||(l?c.jsx("div",{className:"vault-stats-loading",children:c.jsx("p",{children:"Reading BASK value, holdings and history…"})}):null)})]})}function M9(){const e=D.useRef(null);return D.useLayoutEffect(()=>{const n=Array.from(e.current.children),s=matchMedia("(prefers-reduced-motion: reduce)"),r=matchMedia("(max-width: 660px)");let l=[],u=0,f=0;const m=()=>{const y=n[0].getBoundingClientRect().width,b=r.matches?64:16;if(s.matches){l.forEach(x=>x.cancel()),l=[];return}if(!y||l.length&&u===y&&f===b)return;const w=Number(l[0]?.currentTime??0)*f/1e3;l.forEach(x=>x.cancel()),u=y,f=b;const g=u/f*1e3,S=w%u/f*1e3,T=Number(document.timeline.currentTime)-S;l=n.map((x,j)=>{const M=x.animate([{transform:"translateX(100%)"},{transform:"translateX(-100%)"}],{duration:g*2,delay:j===0?-g:0,iterations:1/0,easing:"linear"});return M.startTime=T,M})},p=new ResizeObserver(m);return p.observe(n[0]),s.addEventListener("change",m),r.addEventListener("change",m),m(),()=>{p.disconnect(),s.removeEventListener("change",m),r.removeEventListener("change",m),l.forEach(y=>y.cancel())}},[]),c.jsx("div",{className:"marquee",children:c.jsx("div",{"aria-hidden":"true",className:"marquee-window",children:c.jsx("div",{className:"marquee-track",ref:e,children:[0,1].map(n=>c.jsx("div",{className:"marquee-half",children:Array.from({length:8},(s,r)=>c.jsxs("span",{children:["Basket buddies! • Take a stroll down the aisles • Give your cart a twirl •"," "]},r))},n))})})})}const C9=[["art/food/bread.svg","art/food/baguette.svg","art/food/cheese.svg","art/food/milk.svg","art/food/canned-food.svg","art/food/egg.svg","art/food/honey-pot.svg","art/food/jar.svg","art/food/beverage-box.svg","art/food/croissant.svg","art/food/butter.svg","art/food/cookie.svg","art/food/pie.svg","art/food/bagel.svg"],["art/food/apple.svg","art/food/banana.svg","art/food/carrot.svg","art/food/broccoli.svg","art/food/tomato.svg","art/food/pineapple.svg","art/food/corn.svg","art/food/bell-pepper.svg","art/food/leafy-green.svg","art/food/watermelon.svg","art/food/grapes.svg","art/food/lemon.svg","art/food/pear.svg","art/food/strawberry.svg","art/food/eggplant.svg","art/food/avocado.svg","art/food/onion.svg","art/food/potato.svg","art/food/green-apple.svg"]];function Ov(){return c.jsx("div",{className:"store-shelf","aria-hidden":"true",children:C9.map((e,n)=>c.jsx("div",{className:"shelf-row",children:Array.from({length:5},(s,r)=>e.map(l=>c.jsx("img",{src:`./${l}`,width:"40",height:"40",alt:""},`${r}-${l}`)))},n))})}const _v="Deposits may be open now. Press Refresh vault.",O9=e=>new Date(Number(e)*1e3).toLocaleString(void 0,{weekday:"short",day:"numeric",month:"short",hour:"numeric",minute:"2-digit",timeZoneName:"short"});function zv(e,n){if(!e||n===void 0)return;const s=BigInt(e.hoursFrom),r=BigInt(e.hoursTo),l=BigInt(e.dst);if(!W4(n,s,r,l))return e9(n,s,l)}function _9(e,n,s,r=s){if(!n)return;if(e===14)return`Deposits are closed until stock prices update (at least ${n.freshCount} must have updated in the last ${n.freshHours} hour(s), e.g. a US market holiday); no set time. Redemptions are always open.`;if(e!==3||s===void 0||r===void 0)return;const l=zv(n,s);if(l===void 0||r>=l)return _v;const u=BigInt(n.hoursFrom),f=BigInt(n.dst),m=BigInt(n.freshCount)>0n?" On a US market holiday they reopen when prices update.":"";return`Deposits reopen ${mh(u)} ${mp(f)} (${n9(l,f)}, in ${i9(l-r)}; your time ${O9(l)}).${m} Redemptions are always open.`}function z9(e,n){const[,s]=D.useState(0),r=D.useRef(void 0),l=e.blockTime===void 0?void 0:e.blockTime+BigInt(Math.max(0,Math.floor((Date.now()-(e.blockReadAt??e.loadedAt))/1e3))),u=n?zv(e.globals.settings,e.blockTime):void 0;return D.useEffect(()=>{if(u===void 0||l===void 0)return;const f=u-l;if(f<=0n){r.current!==u&&(r.current=u,e.retry?.());return}const m=f%60n+1n,p=f<m?f:m,y=setTimeout(()=>s(b=>b+1),Number(p)*1e3);return()=>clearTimeout(y)}),l}const $9={O:["01110","10001","10001","10001","10001","10001","01110"],E:["11111","10000","10000","11110","10000","10000","11111"],C:["01111","10000","10000","10000","10000","10000","01111"],L:["10000","10000","10000","10000","10000","10000","11111"],S:["01111","10000","10000","01110","00001","00001","11110"],D:["11110","10001","10001","10001","10001","10001","11110"]};function D9(){const e="Closed",n=e.toUpperCase(),s=4.8,r=(220-(n.length*6-2)*s)/2;return c.jsxs("svg",{className:"deposit-led-sign",viewBox:"0 0 220 80",width:"220",height:"80",role:"img","aria-label":e,children:[c.jsx("rect",{x:"1",y:"1",width:"218",height:"78",rx:"14",fill:"#080b14",stroke:"#263144",strokeWidth:"2"}),c.jsx("rect",{className:"deposit-led-border",x:"9",y:"9",width:"202",height:"62",rx:"9"}),c.jsx("rect",{className:"deposit-led-chase",x:"9",y:"9",width:"202",height:"62",rx:"9"}),c.jsx("g",{className:"deposit-led-letters",children:[...n].flatMap((l,u)=>$9[l].flatMap((f,m)=>[...f].map((p,y)=>c.jsx("circle",{cx:r+(u*6+y)*s,cy:25.6+m*s,r:"1.7",fill:p==="1"?"#ff373d":"#3e111c"},`${u}-${m}-${y}`))))})]})}function $v({snapshot:e,showSign:n=!1}){const s=e.status,r=s?.ok&&!e.loading?Number(s.value[0]):void 0,l=z9(e,r===3),u=r!==void 0?_9(r,e.globals.settings,e.blockTime,l):void 0,f=!e.complete||!s?.ok||e.globals.genesisFinalized===void 0,m=!f&&r===0&&e.globals.genesisFinalized===!0&&e.assets.some(w=>w.open&&!w.retired);if(e.loading||m||u===_v)return null;const p=e.globals.genesisFinalized===!1?1:e.assets.length?e.assets.every(w=>!w.open||w.retired)?5:r===13?9:r:4,y=gi(p,e.globals.settings).split(" (")[0],b=r===3&&e.globals.settings?.hoursFrom===72000n&&e.globals.settings?.hoursTo===504000n;return c.jsx("div",{className:n?"deposit-state deposit-notice":"deposit-state",children:f?c.jsxs(c.Fragment,{children:[!n&&c.jsx("strong",{children:"Vault status:"}),c.jsx("p",{children:"unreadable — Retry vault"}),c.jsx("button",{onClick:e.retry,children:"Retry vault"})]}):n?c.jsxs(c.Fragment,{children:[c.jsx(D9,{}),c.jsx("p",{children:b?"Deposits reopen when the stock feed prices update around 8pm on Sundays.":`Deposits will be back open when “${y}” is resolved.`})]}):c.jsxs(c.Fragment,{children:[c.jsx("strong",{children:"Vault status:"}),c.jsx("p",{children:"Closed"})]})})}function U9({snapshot:e}){const n=Du(e.assets,e.complete),s=e.globals.totalSupply;return c.jsxs(c.Fragment,{children:[c.jsx(Us,{title:"Always in stock",character:{kind:"vault",src:"./art/character/vault.webp",width:606,height:1e3,alt:"Cheerful store worker beside a produce crate",line:"I was hoping you would come through my aisle"}}),c.jsxs(B9,{children:[c.jsxs("section",{className:"panel",children:[c.jsxs("div",{className:"section-heading",children:[c.jsx("h2",{children:"Inside the basket"}),c.jsx("span",{className:"eyebrow",children:"On-chain figures"})]}),c.jsxs("div",{className:"stats",children:[c.jsxs("div",{children:[c.jsxs("span",{children:["NAV",n.indicative?" · indicative":""]}),c.jsx("strong",{children:e.loading?"Reading...":Zn(n.nav)})]}),c.jsxs("div",{children:[c.jsx("span",{children:"NAV per BASK"}),c.jsx("strong",{children:e.loading?"Reading...":s===void 0||n.nav===void 0?"unreadable":s===0n?"No BASK issued":Zn(n.nav*10n**18n/s)})]}),c.jsxs("div",{children:[c.jsx("span",{children:"BASK supply"}),c.jsx("strong",{children:e.loading?"Reading...":pt(s)})]}),c.jsxs("div",{children:[c.jsxs("span",{children:["Maximum Basket Capacity",c.jsx("small",{children:"(eligible to be raised)"})]}),c.jsx("strong",{children:e.loading?"Reading...":Zn(e.globals.NAV_CAP)})]})]}),n.indicative&&c.jsx(br,{warning:!0,children:"NAV is indicative: at least one held stock has a price reason other than OK, or an unreadable reason."}),c.jsxs("div",{className:"two-col",children:[c.jsx("div",{className:"deposit-summary",children:c.jsx($v,{snapshot:e})}),c.jsxs("div",{children:[c.jsx("strong",{children:"Fees"}),c.jsx("p",{children:e.loading?"Reading...":e.globals.feeRecipient===void 0?"Fee recipient unreadable — Retry vault":e.globals.feeRecipient===Le?"no fees yet":"0.5% on deposit and 0.5% on redemption"}),c.jsx("p",{children:"BaskVault · Robinhood Chain"}),c.jsx(Hn,{value:It})]})]})]}),c.jsx(ek,{snapshot:e})]})]})}const q9=[["all","All"],["open","Open"],["closed","Closed"],["held","Held"]],L9=e=>e.managed!==void 0&&e.managed>0n;function zg(e,n){return n==="open"?!e.retired&&e.open:n==="closed"?e.retired||!e.open:n==="held"?L9(e):!0}function Dv(e,n){return e.retired?{kind:"retired",more:"Retired: removed from the basket."}:e.open?e.reason===0?{kind:"open"}:e.reason===void 0?{kind:"unknown",more:"Open, but its price reason is unreadable."}:{kind:"paused",more:`Open, but deposits of this stock are blocked right now: ${gi(e.reason,n)}.`}:{kind:"closed",more:"Closed by the owner or guardian: no new deposits of this stock. Redemptions still pay it out."}}function H9(e,n,s){if(e.reason===0)return;const r=gi(e.reason,s);return n==="paused"?r:`price reason: ${r}`}function Uv(e){const n=[];return Rv(e.symbol,e.description)||n.push("check this pairing"),e.balanceReadable?e.short&&n.push("Balance check: vault short of this stock"):n.push("Balance check: unreadable"),n}const I9=e=>e.reason!==0||Uv(e).length>0,G9=(e,n)=>I9(e)||n&&!e.retired&&!e.open,qv=e=>e.answer===void 0?void 0:e.answer*10n**18n/10n**BigInt(e.feedDecimals),P9=e=>e.answer!==void 0&&e.answer>0n,V9=e=>e.reason===9;function K9({a:e,stale:n}){if(!P9(e))return c.jsx("p",{className:"sa-price is-unreadable",children:"price unreadable"});const s=Zn(qv(e)),r=/^\$([\d,]+)(?:\.(\d{1,2}))?$/.exec(s);return c.jsx("p",{className:n?"sa-price is-stale":"sa-price",children:r?c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"sa-cur",children:"$"}),r[1],c.jsxs("span",{className:"sa-cents",children:[c.jsx("span",{className:"sa-sr",children:"."}),(r[2]??"").padEnd(2,"0")]})]}):s})}function F9({stale:e}){return e?c.jsx("p",{className:"sa-age is-stale",children:c.jsx("span",{className:"sa-old",children:"old price"})}):null}function Lv(e,n){return n===void 0||e===void 0?"unreadable":n===0n?"—":pt(e*10000n/n,2,2)+"%"}function Y9(e){const n=qv(e),s=e.poolPrice&&n?Number((e.poolPrice-n)*10000n/n)/100:void 0;return[9,10,11].includes(e.reason??-1)?"not run":e.poolPrice===void 0?"unreadable":e.pool===Le?"No pool; feed-age check":e.poolPrice===0n?"Failed · poolPrice 0":`${Zn(e.poolPrice)} · ${s===void 0?"gap unreadable":`${s>0?"+":""}${s}% vs feed`}`}const Z9=[{transform:"none"},{transform:"translateY(-12px) rotate(-6deg)",offset:.2},{transform:"translateY(2px) rotate(3.5deg)",offset:.46},{transform:"translateY(0) rotate(-1.8deg)",offset:.68},{transform:"translateY(0) rotate(0.7deg)",offset:.86},{transform:"none"}];function X9(e,n){const s=D.useRef(!1),r=D.useRef(void 0);return D.useEffect(()=>{const l=e.current;if(!n||s.current||!l||typeof IntersectionObserver>"u"||typeof l.animate!="function"||matchMedia("(prefers-reduced-motion: reduce)").matches)return;const u=m=>{const p=[...new Set(m.map(y=>Number(y.dataset.row)))].sort((y,b)=>y-b);for(const y of m)f.unobserve(y),y.firstElementChild?.animate(Z9,{duration:640,easing:"ease-out",delay:Math.min(p.indexOf(Number(y.dataset.row)),3)*120+Number(y.dataset.col)*45})},f=new IntersectionObserver(m=>{const p=m.filter(y=>y.isIntersecting).map(y=>y.target);p.length&&!s.current&&u(p)},{threshold:.35});r.current=f;for(const m of l.querySelectorAll(".sa-slot[data-row]"))f.observe(m);return()=>f.disconnect()},[n,e]),()=>{s.current=!0,r.current?.disconnect()}}function Q9(e){const[n,s]=D.useState(1);return D.useLayoutEffect(()=>{const r=e.current;if(!r)return;const l=()=>s(Math.max(1,getComputedStyle(r).gridTemplateColumns.split(" ").length));if(l(),typeof ResizeObserver>"u")return;const u=new ResizeObserver(l);return u.observe(r),()=>u.disconnect()},[e]),n}function J9({a:e,nav:n,settings:s,mini:r,row:l,col:u,span:f,open:m,onToggle:p}){const y=ol(e),b=Dv(e,s),w=V9(e),g=H9(e,b.kind,s),S=Uv(e),T=n&&y?Number(y*10000n/n)/100:0,x=c.jsxs("button",{type:"button",className:"sa-more",id:`sa-more-${e.token}`,"aria-expanded":m,"aria-controls":m?"sa-drawer":void 0,onClick:p,children:[c.jsx("span",{className:r?"sa-sr":void 0,children:"Details"}),c.jsxs("span",{className:"sa-sr",children:[" for ",e.symbol]}),c.jsx("span",{className:"sa-chev","aria-hidden":"true"})]}),j=b.kind==="closed"&&c.jsx("span",{className:"sa-stamp","aria-hidden":"true",children:"Closed"});return c.jsx("li",{className:"sa-slot","data-row":l,"data-col":u,style:f>1?{gridColumn:`span ${f}`}:void 0,children:c.jsxs("article",{className:`sa-label sa-label--${b.kind} sa-label--${r?"mini":"full"}${g||S.length?" sa-label--chip":""}${m?" is-open":""}`,"aria-labelledby":`sa-t-${e.token}`,children:[c.jsx("span",{className:"sa-clip","aria-hidden":"true"}),c.jsxs("div",{className:"sa-main",children:[c.jsxs("div",{className:"sa-top",children:[c.jsx("h4",{id:`sa-t-${e.token}`,children:c.jsx("bdi",{children:e.symbol})}),j,c.jsx(K9,{a:e,stale:w}),c.jsx(F9,{stale:w})]}),c.jsxs("p",{className:"sa-st",children:[c.jsxs("span",{className:"sa-stw",children:[c.jsx("span",{className:"sa-mark","aria-hidden":"true"}),b.kind==="retired"?c.jsx("b",{children:"Retired"}):b.kind==="closed"?c.jsxs("b",{children:["Closed",c.jsx("span",{className:"sa-wide",children:" to deposits"})]}):c.jsx("b",{children:"Open"}),b.kind==="paused"&&c.jsxs(c.Fragment,{children:[" · ",c.jsx("b",{className:"sa-warn",children:"not taking deposits"})]})]}),r&&x]}),g&&c.jsx("p",{className:"sa-chip",children:g}),S.map(M=>c.jsx("p",{className:"sa-flag",children:M},M))]}),!r&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"sa-figs",children:[c.jsxs("div",{className:"sa-share",children:[c.jsx("b",{className:y===0n?"sa-pct is-zero":"sa-pct",children:Lv(y,n)}),c.jsxs("span",{className:"sa-meter",children:[c.jsxs("span",{className:"sa-of",children:[c.jsx("span",{className:"sa-wide",children:"of basket"}),c.jsx("span",{className:"sa-narrow",children:"share"})]}),c.jsx("span",{className:"sa-bar","aria-hidden":"true",children:c.jsx("i",{style:{width:y?`max(3px, ${Math.min(T,100)}%)`:0}})})]})]}),c.jsxs("p",{className:"sa-kv sa-kv--value",children:[c.jsx("span",{children:"Value"})," ",c.jsx("b",{children:Zn(y)})]}),c.jsxs("p",{className:"sa-kv",children:[c.jsx("span",{children:"Held"})," ",c.jsxs("b",{children:[pt(e.managed,e.tokenDecimals),c.jsxs("span",{className:"sa-wide",children:[" ",c.jsx("bdi",{children:e.symbol})]})]})]})]}),c.jsxs("div",{className:"sa-foot",children:[x,c.jsx("span",{className:"sa-barcode","aria-hidden":"true"})]})]})]})})}function W9({a:e,nav:n,settings:s,at:r,cols:l,onClose:u}){const f=Dv(e,s),m=D.useRef(null);return D.useEffect(()=>{m.current?.focus({preventScroll:!0}),m.current?.scrollIntoView({block:"nearest"})},[e.token]),c.jsxs("li",{className:"sa-drawer",id:"sa-drawer",style:{"--sa-at":r,"--sa-cols":l},onKeyDown:p=>p.key==="Escape"&&u(),children:[c.jsxs("div",{className:"sa-drawer-top",children:[c.jsxs("h5",{ref:m,tabIndex:-1,children:[c.jsx("bdi",{children:e.symbol})," details"]}),c.jsx("button",{type:"button",onClick:u,children:"Close"})]}),f.more&&c.jsx("p",{className:"sa-drawer-status",children:f.more}),c.jsxs("dl",{children:[c.jsxs("div",{children:[c.jsx("dt",{children:"Feed"}),c.jsx("dd",{className:"chain-text",children:c.jsx("bdi",{children:e.description})})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Feed price"}),c.jsx("dd",{children:e.answer===void 0||e.answer<=0n?"unreadable / invalid feed":"$"+pt(e.answer,e.feedDecimals)})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Pool check"}),c.jsx("dd",{children:Y9(e)})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Held (managed)"}),c.jsx("dd",{children:pt(e.managed,e.tokenDecimals)})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Share of basket"}),c.jsx("dd",{children:Lv(ol(e),n)})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Owed"}),c.jsx("dd",{children:pt(e.totalOwed,e.tokenDecimals)})]})]}),c.jsxs("dl",{className:"sa-addrs",children:[c.jsxs("div",{children:[c.jsx("dt",{children:"Stock Token"}),c.jsx("dd",{children:c.jsx(Hn,{value:e.token})})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Price feed"}),c.jsx("dd",{children:c.jsx(Hn,{value:e.feed})})]})]})]})}function $g({items:e,mini:n,nav:s,settings:r,rowBase:l,openToken:u,onToggle:f,onClose:m}){const p=D.useRef(null),y=Q9(p),b=[];let w=0,g=0,S;const T=()=>{for(;g<y;g++)b.push(c.jsx("li",{className:"sa-slot sa-slot--empty","aria-hidden":"true"},`e${w}-${g}`));const x=S;x&&x.row===w&&b.push(c.jsx(W9,{a:x.a,nav:s,settings:r,at:x.at,cols:y,onClose:()=>m(x.a.token)},"drawer")),w++,g=0};for(const x of e){const j=G9(x,n)?n&&y<=3?y:Math.min(2,y):1;g+j>y&&T(),b.push(c.jsx(J9,{a:x,nav:s,settings:r,mini:n,row:l+w,col:g,span:j,open:u===x.token,onToggle:()=>f(x.token)},x.token)),u===x.token&&(S={a:x,row:w,at:g+(j-1)/2}),g+=j,g===y&&T()}return g>0&&T(),c.jsx("ul",{ref:p,role:"list",className:`sa-shelves sa-shelves--${n?"mini":"full"}`,children:b})}function T0({name:e,count:n,children:s}){return c.jsxs("div",{className:"sa-signrow",children:[c.jsxs("h3",{className:"sa-sign",children:[e," ",c.jsx("span",{className:"sa-n",children:n})]}),c.jsx("p",{className:"sa-sub",children:s})]})}function ek({snapshot:e}){const[n,s]=D.useState(""),[r,l]=D.useState("all"),[u,f]=D.useState(),m=D.useRef(null),p=e.assets.length>0,y=X9(m,p),b=Du(e.assets,e.complete).nav,w=n.trim().toLowerCase(),g=e.assets.filter(A=>zg(A,r)&&(A.symbol.toLowerCase().includes(w)||A.token.toLowerCase().includes(w))),S=g.filter(A=>A.managed!==0n).sort((A,z)=>{const C=ol(A)??-1n,Z=ol(z)??-1n;return Z>C?1:Z<C?-1:A.index-z.index}),T=g.filter(A=>A.managed===0n).sort((A,z)=>A.index-z.index),x=e.assets.every(A=>A.managed===0n),j=(A,z)=>{y(),f(void 0),l(A),s(z)},M=(r!=="all"||w!=="")&&g.length>0,I=A=>f(u===A?void 0:A),O=A=>{f(void 0),requestAnimationFrame(()=>document.getElementById(`sa-more-${A}`)?.focus())},B={nav:b,settings:e.globals.settings,openToken:u,onToggle:I,onClose:O};return c.jsxs("section",{className:"panel stock-section sa-section",children:[c.jsxs("div",{className:"section-heading",children:[c.jsx("h2",{children:"Stock shelves"}),c.jsx("span",{className:"burst small",children:"Fresh!"})]}),p&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"sa-toolbar",children:[c.jsx("div",{className:"sa-filters",role:"group","aria-label":"Show stocks",children:q9.map(([A,z])=>c.jsxs("button",{type:"button","aria-pressed":r===A,onClick:()=>j(A,n),children:[z," ",c.jsx("span",{className:"sa-count",children:e.assets.filter(C=>zg(C,A)).length})]},A))}),c.jsxs("label",{className:"sa-search",children:["Search stocks",c.jsx("input",{type:"search",value:n,placeholder:"Ticker or address",onChange:A=>j(r,A.target.value)})]})]}),c.jsxs("p",{className:"sa-note",children:[c.jsxs("span",{role:"status",children:["Showing ",g.length," of ",e.assets.length]}),M&&c.jsxs(c.Fragment,{children:[" · ",c.jsx("button",{type:"button",className:"sa-reset",onClick:()=>j("all",""),children:"Show all"})]})," · tap a label for its details"]})]}),c.jsxs("div",{className:"sa-unit",ref:m,children:[c.jsx(Ov,{}),p?g.length?c.jsxs(c.Fragment,{children:[x?c.jsx(T0,{name:"In the basket",count:0,children:c.jsxs("b",{className:"sa-emptyline",children:["Nothing is in the basket yet.",e.globals.genesisFinalized===!1&&" Deposits start after the owner finishes setup."]})}):S.length>0&&c.jsxs(c.Fragment,{children:[c.jsx(T0,{name:"In the basket",count:S.length,children:"biggest share first"}),c.jsx($g,{items:S,mini:!1,rowBase:0,...B})]}),T.length>0&&c.jsxs(c.Fragment,{children:[c.jsx(T0,{name:"On the shelf, not held",count:T.length,children:"listing order"}),c.jsx($g,{items:T,mini:!0,rowBase:100,...B})]})]}):c.jsxs("p",{className:"sa-none",children:["No stocks match",w?` "${n.trim()}"`:""," here."," ",c.jsx("button",{type:"button",onClick:()=>j("all",""),children:"Show all"})]}):c.jsx(vp,{title:e.loading?"Reading...":e.complete?"No Stock Tokens are listed yet.":"Stocks unreadable",children:e.loading?"Please wait for current vault data.":e.complete?"Deposits start after the owner finishes setup.":"Retry the vault for current data."})]})]})}function Hv(){return c.jsxs("p",{className:"hours-tag",children:[c.jsx("strong",{children:"Redemptions are open 24/7."})," ",c.jsx("span",{children:"Deposit hours apply to deposits only."})]})}function tk({snapshot:e,wallet:n}){const s=e.assets.filter(L=>L.open&&!L.retired),[r,l]=D.useState({}),[u,f]=D.useState(""),[m,p]=D.useState(!1),[y,b]=D.useState(),[w,g]=D.useState(""),[S,T]=D.useState(!1),[x,j]=D.useState({}),[M,I]=D.useState({}),[O,B]=D.useState(!1),[A,z]=D.useState(0),[C,Z]=D.useState(),[ee,J]=D.useState(),[K,X]=D.useState({}),[oe,he]=D.useState(!1),[ae,R]=D.useState(),[V,Y]=D.useState(()=>window.matchMedia("(min-width: 961px)").matches);D.useEffect(()=>{const L=window.matchMedia("(min-width: 961px)"),de=()=>Y(L.matches);return L.addEventListener("change",de),()=>L.removeEventListener("change",de)},[]);const se=D.useRef(void 0),le=D.useRef(0),k=D.useRef(!1);D.useLayoutEffect(()=>{le.current++,b(void 0),B(!1),g(""),T(!1)},[r,n.account,n.chainId]),D.useLayoutEffect(()=>{n.confirmed?.functionName==="deposit"&&(l({}),b(void 0),B(!1),le.current++)},[n.confirmed]),D.useLayoutEffect(()=>{n.confirmed?.functionName==="deposit"&&X({})},[n.confirmed]),D.useLayoutEffect(()=>{J(void 0),X({})},[n.account]),D.useLayoutEffect(()=>{const L=se.current?document.getElementById(`amount-${se.current}`):null;L instanceof HTMLInputElement&&L.disabled?L.closest(".deposit-row")?.focus():L?.focus(),se.current=void 0},[r]),D.useEffect(()=>{const L=n.confirmed;if(L?.functionName!=="deposit")return;let de=!0;return nt.getTransactionReceipt({hash:L.hash}).then(je=>{const $e=je.logs.filter(st=>ge(st.address,It)).map(st=>{try{return bl({abi:$u,data:st.data,topics:st.topics})}catch{return}}).find(st=>st?.eventName==="Deposit");if(!de||!$e)return;const{receiver:He,shares:bt}=$e.args;Z({hash:L.hash,receiver:He,shares:bt})}).catch(()=>{}),()=>{de=!1}},[n.confirmed]),D.useEffect(()=>{let L=!0;return j({}),I({}),p(!!n.account),n.account&&Ln(s.flatMap(de=>[cn(de.token,"balanceOf",[n.account]),cn(de.token,"allowance",[n.account,It])])).then(de=>{if(!L)return;const je={},$e={};s.forEach((He,bt)=>{const st=de[bt*2],es=de[bt*2+1];je[He.token]=st.ok?st.value:void 0,$e[He.token]=es.ok?es.value:void 0}),j(je),J(je),I($e),p(!1)}),()=>{L=!1}},[n.account,e.loadedAt,A]),D.useEffect(()=>{let L=!0;return B(!1),y&&n.account&&y.tokens.every((de,je)=>x[de]!==void 0&&x[de]>=y.amounts[je]&&M[de]!==void 0&&M[de]>=y.amounts[je])&&fp(Ne("deposit",Mg(y.tokens,y.amounts,n.account,y.shares)),n.account).then(()=>{L&&B(!0)}).catch(de=>{L&&g(wt(de))}),()=>{L=!1}},[y,x,M,n.account,e.loadedAt]);const P=y?.tokens.some((L,de)=>x[L]===void 0||x[L]<y.amounts[de]),ie=y?.tokens.filter((L,de)=>M[L]!==void 0&&M[L]<y.amounts[de])??[];async function H(){if(!y||!n.account||k.current)return;k.current=!0,T(!0);const L=le.current;g(""),n.report("approvals",{message:"Checking approvals..."});try{let de=0;for(let je=0;je<y.tokens.length;je++){if(le.current!==L)throw new ce("Deposit changed. Preview again.");const $e=y.tokens[je],He=y.amounts[je],[bt,st]=await Promise.all([Ie(cn($e,"balanceOf",[n.account])),Ie(cn($e,"allowance",[n.account,It]))]);if(bt<He)throw new ce("Your stock balance is too low. Reduce the amount.");st<He&&(de++,await n.send(cn($e,"approve",[It,He]),"approvals",`Approval ${de} of ${ie.length}: ${e.assets.find(es=>ge(es.token,$e))?.symbol??$e}`))}z(je=>je+1),n.report("approvals",{message:"Approvals done: press Deposit"})}catch(de){g(wt(de)),n.fail("approvals",wt(de))}finally{k.current=!1,T(!1)}}const W=(L,de)=>L.answer!==void 0&&L.answer>0n?de*L.answer*10n**18n/10n**BigInt(L.tokenDecimals+L.feedDecimals):void 0,ue=L=>L<10n**16n?"under $0.01":`about ${Zn(L)}`,pe=s.map(L=>{const de=ee?.[L.token]??0n,je=de>0n?W(L,de):void 0;return{a:L,value:je,inWallet:de>0n,small:je!==void 0&&je<10n**16n,added:r[L.token]!==void 0}}),we=L=>L.inWallet&&!K[L.a.token],me=L=>L.added||we(L)&&(!L.small||oe),Oe=pe.filter(L=>we(L)&&!me(L)).length,Te=[...pe.filter(L=>me(L)&&L.inWallet).sort((L,de)=>L.value===de.value?0:L.value===void 0?1:de.value===void 0||L.value>de.value?-1:1),...pe.filter(L=>me(L)&&!L.inWallet)],ct=!!ee&&s.every(L=>L.token in ee),dt=ct&&s.some(L=>ee[L.token]===void 0),Je=u.trim().toLowerCase(),rt=L=>{const de=L.symbol.toLowerCase();return de===Je?0:de.startsWith(Je)?1:de.includes(Je)?2:Je.length>=4&&L.token.toLowerCase().includes(Je)?3:4},Ot=Je?pe.filter(L=>!me(L)&&rt(L.a)<4).map(L=>L.a).sort((L,de)=>rt(L)-rt(de)):[],Kt=[...s].sort((L,de)=>{const je=L.symbol.toLowerCase(),$e=de.symbol.toLowerCase();return je<$e?-1:je>$e?1:0}),pn=!n.account||ct&&!dt&&!Te.length&&!pe.some(L=>L.inWallet),Ft=n.account??"";D.useEffect(()=>{pn&&R(Ft)},[pn,Ft]);const Bt=V||pn||ae===Ft,Pt=Bt?"div":"details";function Tt(L,de=!0){de&&(se.current=L),X(je=>({...je,[L]:!1})),l(je=>({...je,[L]:""})),f("")}function ye(L){const de=document.getElementById(`amount-${L}`)?.closest(".deposit-row"),je=de?.nextElementSibling??de?.previousElementSibling;de?.contains(document.activeElement)&&(je instanceof HTMLElement?je.focus({preventScroll:!0}):document.querySelector(".stock-search input")?.focus({preventScroll:!0})),X($e=>({...$e,[L]:!0})),r[L]!==void 0&&l($e=>{const He={...$e};return delete He[L],He})}let ke=0n,Ye=0;const yt=[],Ke=[];for(const L of s){const de=r[L.token];if(!de?.trim())continue;let je;try{je=W(L,ll(de,!1,L.tokenDecimals))}catch{yt.push(L.symbol);continue}je===void 0?Ke.push(L.symbol):(ke+=je,Ye++)}const at=c.jsxs(Pt,{className:Bt?"all-stocks open-list":"all-stocks",children:[Bt?c.jsxs("p",{className:"list-title",children:["All stocks you can deposit (",s.length,")"]}):c.jsxs("summary",{children:["All stocks you can deposit (",s.length,")"]}),c.jsx("p",{children:"Press a stock to add it to your deposit."}),c.jsx("ul",{children:Kt.map(L=>c.jsx("li",{className:L.symbol.length>5?"wide":void 0,children:c.jsx("button",{type:"button",className:"quiet",disabled:S||n.busy||Te.some(de=>de.a.token===L.token),onClick:()=>Tt(L.token),children:c.jsx("bdi",{children:L.symbol})})},L.token))})]}),aa=c.jsxs(c.Fragment,{children:[c.jsx("h2",{children:"Before you deposit"}),c.jsxs("p",{children:["Size limit: ",Zn(e.globals.NAV_CAP),"."]}),c.jsx("p",{children:"First deposit: 0.001 BASK is locked forever. The preview already subtracts this lock and any fee."}),c.jsx("p",{children:"You approve each stock for exactly the amount you deposit. Each approval is its own wallet prompt; the deposit prompt comes last."}),c.jsx("p",{children:"A prepared deposit must be sent within ten minutes. The BASK goes to your connected wallet."}),c.jsx(br,{warning:!0,children:"Issuer restrictions and pool checks can temporarily halt deposits."})]});return c.jsxs(c.Fragment,{children:[c.jsx(Us,{eyebrow:"Fill your basket",title:"Deposit Stock Tokens",character:{kind:"deposit",src:"./art/character/deposit.webp",width:313,height:1e3,alt:"Store worker holding out a shopping basket",line:"Go ahead and put it in"},children:"Choose one or more open stocks. They go into the vault together in one deposit."}),c.jsxs("div",{className:"flow-layout one-column",children:[c.jsxs("section",{className:"panel",children:[c.jsx(Hv,{}),c.jsx($v,{snapshot:e,showSign:!0}),c.jsx("p",{className:"flow-steps",children:"Choose amounts, preview, approve each stock, press Deposit."}),c.jsx("h2",{children:"Make a deposit"}),c.jsxs("div",{className:"deposit-columns",children:[c.jsxs("div",{className:"deposit-main",children:[s.length?c.jsxs(c.Fragment,{children:[c.jsxs("form",{onSubmit:async L=>{L.preventDefault();const de=++le.current;T(!0),g(""),b(void 0);try{const je=s.filter(ts=>r[ts.token]?.trim());if(!je.length)throw new ce("Enter an amount for at least one stock.");const $e=je.map(ts=>ts.token),He=je.map(ts=>ll(r[ts.token],!1,ts.tokenDecimals)),[bt,st,es]=await Ie(Ne("previewDeposit",[$e,He]));de===le.current&&b({tokens:$e,amounts:He,shares:bt,fee:st,value:es})}catch(je){de===le.current&&g(wt(je,$e=>e.assets.find(He=>ge(He.token,$e))?.symbol??$e,!0))}finally{de===le.current&&T(!1)}},children:[n.account?c.jsxs(c.Fragment,{children:[!ct&&c.jsx("p",{children:"Reading your wallet..."}),dt?c.jsx("p",{children:"Some balances could not be read. Press Retry balances below."}):ct&&!Te.length&&!pe.some(L=>L.inWallet)&&c.jsx("p",{children:"No open listed stock in this wallet."})]}):c.jsxs("div",{className:"wallet-connect",children:[c.jsx("p",{children:"Connect your wallet to see the stocks you hold."}),c.jsx("button",{type:"button",onClick:n.connect,disabled:n.connecting,children:n.connecting?"Connecting...":"Connect wallet"})]}),c.jsx("div",{className:"deposit-rows",children:Te.map(({a:L,value:de,inWallet:je})=>{const $e=L.reason!==void 0&&L.reason!==0,He=ee?.[L.token];return c.jsxs("div",{className:$e?"deposit-row blocked":"deposit-row",tabIndex:-1,children:[c.jsxs("div",{className:"row-stock",children:[c.jsx("label",{htmlFor:`amount-${L.token}`,children:c.jsx("bdi",{children:L.symbol})}),c.jsxs("small",{id:`balance-${L.token}`,children:["Wallet balance:"," ",n.account?He===void 0&&(m||!ct)?"Reading...":pt(He,L.tokenDecimals):"Connect wallet",je&&de!==void 0&&c.jsxs("span",{children:[" · ",ue(de)]})]})]}),c.jsx("input",{id:`amount-${L.token}`,"aria-label":`${L.symbol} amount`,"aria-describedby":`balance-${L.token}`,inputMode:"decimal",autoComplete:"off",value:r[L.token]??"",disabled:S||n.busy||$e,onChange:bt=>l({...r,[L.token]:bt.target.value})}),c.jsx("button",{type:"button",className:"quiet","aria-label":`Max ${L.symbol}`,disabled:S||n.busy||$e||x[L.token]===void 0,onClick:()=>l(bt=>({...bt,[L.token]:Bv(x[L.token],L.tokenDecimals)})),children:"Max"}),c.jsx("button",{type:"button",className:"quiet remove","aria-label":`Remove ${L.symbol}`,disabled:S||n.busy,onClick:()=>ye(L.token),children:"Remove"}),$e&&c.jsxs("p",{className:"row-note",children:["Deposits of this stock are blocked right now:"," ",gi(L.reason,e.globals.settings),"."," ",c.jsx("button",{type:"button",className:"quiet","aria-label":`Refresh ${L.symbol}`,disabled:S||n.busy||e.loading,onClick:e.retry,children:"Refresh"})]})]},L.token)})}),(Oe>0||oe)&&c.jsx("button",{type:"button",className:"quiet small-toggle",onClick:()=>he(!oe),children:oe?"Hide small balances":`Show small balances (${Oe})`}),c.jsxs("label",{className:"stock-search",children:["Add another stock",c.jsx("input",{type:"search",placeholder:"Ticker or token address",autoComplete:"off",spellCheck:!1,value:u,disabled:S||n.busy,onChange:L=>f(L.target.value),onKeyDown:L=>{L.key==="Enter"&&(L.preventDefault(),Ot[0]&&Tt(Ot[0].token,!1))}})]}),c.jsxs("div",{className:"stock-matches",role:"status",children:[Ot.slice(0,6).map(L=>c.jsxs("button",{type:"button",disabled:S||n.busy,onClick:()=>Tt(L.token),children:["Add ",L.symbol]},L.token)),Ot.length>6&&c.jsxs("p",{children:[Ot.length-6," more: keep typing."]}),!!Je&&!Ot.length&&c.jsx("p",{children:Te.some(L=>rt(L.a)===0||L.a.token.toLowerCase()===Je)?"That stock is already in the list above.":"No open stock matches."})]}),!V&&at,Ye+yt.length+Ke.length>0&&c.jsxs("div",{className:"deposit-total",children:[Ye>0&&c.jsxs(c.Fragment,{children:[c.jsx("p",{children:c.jsxs("strong",{children:["Total: ",ue(ke)]})}),c.jsx("small",{children:"An estimate from the last vault read. Preview gives the exact figure."})]}),yt.length>0&&c.jsxs("p",{children:["Not counted: ",yt.join(", ")," (check the amount typed)."]}),Ke.length>0&&c.jsxs("p",{children:["Not counted: ",Ke.join(", ")," (price unreadable)."]})]}),c.jsx("button",{className:"primary",disabled:S||n.busy,children:S?"Checking...":"Preview deposit"}),(S||n.busy)&&c.jsx("p",{className:"disabled-reason",children:"Checking or waiting for the current transaction. Finish it before previewing again."})]}),y&&c.jsxs("div",{className:"receipt",children:[c.jsx("h3",{children:"Deposit preview"}),c.jsxs("dl",{children:[c.jsxs("div",{children:[c.jsx("dt",{children:"BASK received"}),c.jsx("dd",{children:pt(y.shares)})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Fee in BASK"}),c.jsx("dd",{children:pt(y.fee)})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Dollar value"}),c.jsx("dd",{children:Zn(y.value)})]})]}),c.jsxs("p",{children:["Size-limit check passed. Minimum received:"," ",pt(y.shares*995n/1000n)," BASK (0.5% below preview)."]}),!m&&P&&c.jsx(br,{warning:!0,children:"Wallet balance unreadable or too low. Retry balances or reduce the amount."}),!m&&y.tokens.some(L=>M[L]===void 0)&&c.jsx(br,{warning:!0,children:"Allowance unreadable. Retry balances before continuing."}),ie.length>0&&c.jsxs(c.Fragment,{children:[c.jsx("button",{disabled:S||n.busy||P||n.chainId!==4663,onClick:H,children:"Approve exact amounts"}),c.jsx(Al,{wallet:n,snapshot:e,reason:El(n,e)||(S?"Approval pending. Finish each wallet prompt.":P?"Balance too low or unreadable. Reduce amounts or retry balances.":"")})]}),c.jsx(ea,{wallet:n,scope:"approvals"}),c.jsx("p",{role:"status",children:O?"Deposit simulation passed. Prices and limits can change before confirmation.":"Approvals and balances must be ready before the deposit simulation passes."}),c.jsx(Xa,{snapshot:e,wallet:n,label:"Deposit",primary:!0,disabled:!O||S||P,disabledReason:P?"Balance too low or unreadable. Reduce amounts or retry balances.":S||ie.length?"Approval pending. Approve each stock above, then press Deposit.":"Checking deposit simulation. If it fails, correct the error and preview again.",getSpec:async()=>{const L=le.current;for(let je=0;je<y.tokens.length;je++)if(await Ie(cn(y.tokens[je],"balanceOf",[n.account]))<y.amounts[je])throw new ce("Your stock balance is too low. Preview again.");const[,de]=await Ie(Ne("previewDeposit",[y.tokens,y.amounts]));if(de!==y.fee)throw new ce("Deposit changed. Preview again.");if(L!==le.current)throw new ce("Deposit changed. Preview again.");return Ne("deposit",Mg(y.tokens,y.amounts,n.account,y.shares))}})]}),n.account&&!m&&s.some(L=>x[L.token]===void 0||M[L.token]===void 0)&&c.jsx("button",{onClick:()=>z(L=>L+1),children:"Retry balances"})]}):c.jsx(vp,{title:e.loading?"Reading...":e.complete?e.globals.genesisFinalized?"Every stock is closed":"No Stock Tokens are listed yet.":"Open stocks unreadable",children:e.loading?"Please wait for current vault data.":e.complete?e.globals.genesisFinalized?"Deposits need an open, unretired stock. The owner can propose reopening a stock.":"Deposits start after the owner finishes setup.":"Retry the vault to read stocks."}),c.jsx(ea,{wallet:n,scope:"Deposit"}),C&&C.hash===n.confirmed?.hash&&C.hash===n.progress.Deposit?.hash&&ge(C.receiver,n.account)&&c.jsxs("p",{className:"received",role:"status",children:["You received ",pt(C.shares)," BASK."]}),c.jsx("p",{className:"error",role:"alert",children:w}),V&&c.jsx("div",{className:"deposit-notes",children:aa})]}),V&&s.length>0&&c.jsx("div",{className:"deposit-right",children:at})]})]}),!V&&c.jsx("aside",{className:"panel",children:aa})]})]})}function nk({snapshot:e,wallet:n}){const[s,r]=D.useState(""),[l,u]=D.useState(""),[f,m]=D.useState(),[p,y]=D.useState(),[b,w]=D.useState(""),[g,S]=D.useState(!1),[T,x]=D.useState(0),j=D.useRef(0),[M,I]=D.useState(!1);return D.useEffect(()=>{u(n.account??"")},[n.account]),D.useLayoutEffect(()=>{j.current++,y(void 0),S(!1)},[s,l,n.account,e.loadedAt]),D.useLayoutEffect(()=>{n.confirmed?.functionName==="redeem"&&r("")},[n.confirmed]),D.useEffect(()=>{let O=!0;return m(void 0),I(!!n.account),n.account&&Ie(Ne("balanceOf",[n.account])).then(B=>{O&&m(B)}).catch(()=>{}).finally(()=>{O&&I(!1)}),()=>{O=!1}},[n.account,e.loadedAt,T]),c.jsxs(c.Fragment,{children:[c.jsx(Us,{eyebrow:"At the checkout",title:"Redeem BASK",character:{kind:"redeem",src:"./art/character/redeem.webp",width:484,height:1e3,alt:"Store worker handing over a full grocery bag",line:"are you sure that’s all you came here for?"},children:"Receive your share of every stock."}),c.jsx("div",{className:"flow-layout one-column",children:c.jsxs("section",{className:"panel",children:[c.jsx(Hv,{}),c.jsx("h2",{children:"Redeem shares"}),c.jsx("p",{children:"Choose BASK and a receiver, preview, then press Redeem. The estimate is read again just before sending. Minimums are 0.1% under it; stocks not sent stay owed to the receiver."}),c.jsxs("form",{onSubmit:async O=>{O.preventDefault(),w(""),S(!0);const B=++j.current;try{cu(l);const A=ll(s),[z,C]=await Ie(Ne("previewRedeem",[A]));B===j.current&&y({shares:A,amounts:z,fee:C})}catch(A){B===j.current&&w(wt(A,void 0,!0))}finally{B===j.current&&S(!1)}},children:[c.jsxs("label",{children:["BASK amount",c.jsx("input",{disabled:n.busy,"aria-label":"BASK amount","aria-describedby":"bask-balance",inputMode:"decimal",value:s,onChange:O=>r(O.target.value)}),c.jsxs("small",{id:"bask-balance",children:["Wallet balance:"," ",n.account?M?"Reading...":pt(f):"Connect wallet"]})]}),c.jsx("button",{type:"button",disabled:n.busy||M||f===void 0,onClick:()=>r(Bv(f)),children:"Use full balance"}),f===void 0&&c.jsx("p",{className:"disabled-reason",children:n.account?M?"Reading...":"BASK balance unreadable. Retry balance below.":"Connect wallet to read BASK balance."}),c.jsxs("label",{children:["Receiver",c.jsx("input",{disabled:n.busy||g,value:l,onChange:O=>u(O.target.value),autoComplete:"off",spellCheck:!1})]}),c.jsx("button",{disabled:g||n.busy,children:g?"Checking...":"Preview redemption"}),(g||n.busy)&&c.jsx("p",{className:"disabled-reason",children:"Checking or waiting for the current transaction before previewing again."})]}),n.account&&!M&&f===void 0&&c.jsx("button",{onClick:()=>x(O=>O+1),children:"Retry balance"}),p&&c.jsxs("div",{className:"receipt",children:[c.jsx("h3",{children:"Redemption preview"}),c.jsxs("p",{children:["Fee: ",pt(p.fee)," BASK"]}),e.complete&&p.amounts.length===e.assets.length?e.assets.map(O=>c.jsxs("p",{children:[c.jsx("bdi",{children:O.symbol}),":"," ",pt(p.amounts[O.index],O.tokenDecimals)]},O.token)):c.jsx("p",{children:"Amounts per stock are not shown: the stock list is unreadable or has changed. Refresh vault and preview again."}),c.jsx(wh,{value:l,wallet:n}),c.jsx(Xa,{snapshot:e,wallet:n,label:"Redeem",primary:!0,disabled:f===void 0||f<p.shares||!e.complete,disabledReason:f===void 0||!e.complete?"Data missing or balance unreadable. Retry balance and vault.":"BASK balance too low. Reduce the amount or use full balance.",getSpec:async()=>{const O=j.current,B=cu(l);if(await Ie(Ne("balanceOf",[n.account]))<p.shares)throw new ce("Your BASK balance is too low.");const[z,C]=await Ie(Ne("previewRedeem",[p.shares]));if(O!==j.current)throw new ce("Redemption changed. Preview again.");if(C!==p.fee||z.length!==p.amounts.length||z.some((Z,ee)=>Z<p.amounts[ee]*999n/1000n))throw new ce("Redemption changed. Preview again.");return Ne("redeem",l9(p.shares,B,p.amounts))}})]}),c.jsx(ea,{wallet:n,scope:"Redeem"}),c.jsx("p",{role:"alert",className:"error",children:b})]})})]})}function ak({snapshot:e,wallet:n}){const[s,r]=D.useState({}),[l,u]=D.useState(""),[f,m]=D.useState(0),[p,y]=D.useState(""),[b,w]=D.useState(!1),g=D.useRef(!1),[S,T]=D.useState(!1);D.useEffect(()=>u(n.account??""),[n.account]),D.useEffect(()=>{let A=!0;return r({}),T(!!n.account),n.account&&Ln(e.assets.map(z=>Ne("owed",[n.account,z.token]))).then(z=>{A&&(T(!1),r(Object.fromEntries(e.assets.map((C,Z)=>{const ee=z[Z];return[C.token,ee.ok?ee.value:void 0]}))))}),()=>{A=!1}},[n.account,e.loadedAt,f]);const x=e.assets.filter(A=>s[A.token]!==void 0&&s[A.token]>0n),j=[...x,...e.assets.filter(A=>s[A.token]===void 0)],M=D.useRef({account:n.account,initialOwed:s,progress:n.progress,error:p}),I=D.useRef(s);D.useLayoutEffect(()=>{I.current=s},[n.account,e.loadedAt,f]);const[O,B]=D.useState({account:n.account,finished:!1,shown:!1,items:[],count:0});return D.useLayoutEffect(()=>{if(M.current.account!==n.account){M.current={account:n.account,initialOwed:s,progress:n.progress,error:p},B({account:n.account,finished:!1,shown:!1,items:[],count:0});return}if(!n.account)return;const A=!S&&!e.loading&&s!==I.current,z=Object.keys(n.progress).some(Z=>(Z==="claim-all"||Z.startsWith("Claim "))&&n.progress[Z]!==M.current.progress[Z]),C=b||p!==""&&p!==M.current.error||z||A&&(!e.complete||j.length>0);(A||C)&&B(Z=>({account:n.account,finished:Z.finished||A,shown:Z.shown||C,items:A?j:Z.items,count:A?x.length:Z.count}))},[n.account,s,S,e.loading,e.complete,b,p,n.progress]),n.account?O.account!==n.account||!O.shown?O.account===n.account&&O.finished?c.jsx("p",{className:"claims-quiet",children:"Nothing is owed to this wallet."}):null:c.jsxs("section",{className:"panel claims",children:[c.jsx("h2",{children:"Claim owed stocks"}),c.jsxs("p",{children:["Claims belong to the connected wallet:"," ",n.account?c.jsx(qn,{value:n.account}):"Connect wallet to read claims."]}),c.jsxs("label",{children:["Send claimed stocks to",c.jsx("input",{disabled:n.busy||b,value:l,onChange:A=>u(A.target.value),spellCheck:!1})]}),n.account&&!S&&e.assets.some(A=>s[A.token]===void 0)&&c.jsx("button",{onClick:()=>m(A=>A+1),children:"Retry claims"}),n.account?c.jsxs(c.Fragment,{children:[c.jsx(wh,{value:l,wallet:n,claim:!0}),c.jsx("button",{disabled:b||n.busy||n.chainId!==4663||!x.length,onClick:async()=>{if(!g.current){g.current=!0,w(!0),y("");try{const A=cu(l);for(let z=0;z<x.length;z+=10)await n.send(Ne("claim",[x.slice(z,z+10).map(C=>C.token),A]),"claim-all",`Claim batch ${Math.floor(z/10)+1} of ${Math.ceil(x.length/10)}: ${x.slice(z,z+10).map(C=>C.symbol).join(", ")}`);m(z=>z+1)}catch(A){y(wt(A))}finally{w(!1),g.current=!1}}},children:"Claim all"}),c.jsx(Al,{wallet:n,snapshot:e,reason:El(n,e)||(e.complete?b?"Claim batch pending. Wait for its receipt.":S?"Reading...":x.length?"":j.length?"Owed balances are unreadable. Retry claims above.":"Nothing is owed to your connected wallet.":"Owed balances unreadable. Retry vault.")}),c.jsx(ea,{wallet:n,scope:"claim-all"}),c.jsx("div",{className:"claim-grid",children:O.items.map(A=>c.jsxs("div",{className:"receipt",children:[c.jsx("bdi",{children:A.symbol}),c.jsxs("p",{children:["Still owed:"," ",S?"Reading...":pt(s[A.token],A.tokenDecimals)]}),c.jsx(wh,{value:l,wallet:n,claim:!0}),c.jsx(Xa,{snapshot:e,wallet:n,label:`Claim ${A.symbol}`,scope:`Claim ${A.symbol} · ${A.token}`,disabled:b||s[A.token]===void 0||s[A.token]===0n,disabledReason:S?"Reading... Wait for owed balances.":s[A.token]===void 0?"Owed balance unreadable. Retry claims above.":"Nothing owed for this stock.",getSpec:()=>Ne("claim",[[A.token],cu(l)])})]},A.token))}),!e.assets.length&&c.jsx("p",{children:e.loading?"Reading...":e.complete?"No listed stocks.":"Listed stocks unreadable. Retry the vault."}),O.count>1&&c.jsx("p",{children:"Claim all collects up to 10 stocks per wallet prompt. If one stock can’t be paid, that batch stays owed: collect the others with their own Claim buttons."})]}):c.jsx("p",{children:"Connect the receiver wallet to read and claim its owed stocks."}),Object.keys(n.progress).filter(A=>A.startsWith("Claim ")).map(A=>c.jsx(ea,{wallet:n,scope:A},A)),c.jsx("p",{role:"alert",className:"error",children:p})]}):c.jsx("p",{className:"claims-quiet",children:"Connect the receiver wallet to read and claim its owed stocks."})}const Dg=[0xfffcb933bd6fad37aa2d162d1a594001n,0xfff97272373d413259a46990580e213an,0xfff2e50f5f656932ef12357cf3c7fdccn,0xffe5caca7e10e4e61c3624eaa0941cd0n,0xffcb9843d60f6159c9db58835c926644n,0xff973b41fa98c081472e6896dfb254c0n,0xff2ea16466c96a3843ec78b326b52861n,0xfe5dee046a99a2a811c461f1969c3053n,0xfcbe86c7900a88aedcffc83b479aa3a4n,0xf987a7253ac413176f2b074cf7815e54n,0xf3392b0822b70005940c7a398e4b70f3n,0xe7159475a2c29b7443b29c7fa6e889d9n,0xd097f3bdfd2022b8845ad8f792aa5825n,0xa9f746462d870fdf8a65dc1f90e061e5n,0x70d869a156d2a1b890bb3df62baf32f7n,0x31be135f97d08fd981231505542fcfa6n,0x9aa508b5b7a84e1c677de54f3e99bc9n,0x5d6af8dedb81196699c329225ee604n,0x2216e584f5fa1ea926041bedfe98n,0x48a170391f7dc42444e8fa2n];function sk(e){const n=e<0n?-e:e;if(n>887272n)throw new Error("Pool mean tick out of bounds.");let s=1n<<128n;for(let r=0;r<Dg.length;r++)n&1n<<BigInt(r)&&(s=s*Dg[r]>>128n);return e>0n&&(s=((1n<<256n)-1n)/s),(s>>32n)+(s%(1n<<32n)?1n:0n)}function ik(e,n,s){const r=sk(e);if(r<=(1n<<128n)-1n){const u=r*r;return s?u*n/(1n<<192n):(1n<<192n)*n/u}const l=r*r/(1n<<64n);return s?l*n/(1n<<128n):(1n<<128n)*n/l}function rk(e,n,s,r){const l=s+r;return l>=18?e*n/10n**BigInt(l-18):e*n*10n**BigInt(18-l)}function ok(e,n,s,r,l,u,f,m){if(e.length!==2||n.length!==2)throw new Error("Pool observations unreadable.");const p=BigInt.asIntN(56,e[1]-e[0]),y=BigInt.asUintN(160,n[1]-n[0]);if(!y)throw new Error("Pool liquidity observation is zero.");const b=s*((1n<<160n)-1n)/(y<<32n);if(b>=1n<<128n)throw new Error("Pool liquidity out of bounds.");const w=p/s-(p<0n&&p%s?1n:0n),g=ik(w,10n**BigInt(l),r);return{liquidity:b,price:rk(g,f,u,m)}}const xh=["Band","MaxAge","NoPoolAge","FreshCount","FreshHours","Hours","Dst","PoolWindow","PoolDeviation","FeedGas","PauseGas","PoolGas","BalanceGas","PayGas","MaxAssets","DirectLimit"],Bo=["band","maxAge","noPoolAge","freshCount","freshHours","hoursFrom / hoursTo","dst","poolWindow","poolDeviation","feedGas","pauseGas","poolGas","balanceGas","payGas","maxAssets","directLimit"],Kc=["2–100","3,600–2,592,000 seconds","3,600–2,592,000 seconds","0–10","1–48 hours","Seconds since Sunday 00:00 New York time; from < to ≤ 604,800, or both zero for always open","0 (US daylight saving rule), 1 (never daylight saving, UTC-5) or 2 (always daylight saving, UTC-4)","300–86,400 seconds","50–2,000 basis points","20,000–500,000","20,000–500,000","20,000–500,000","20,000–500,000 gas, and the vault's combined rules: maxAssets × (balanceGas + 60,000) ≤ 28,000,000 and directLimit × (balanceGas + payGas + 70,000) ≤ 28,000,000","20,000–500,000 gas, and the vault's combined rule: directLimit × (balanceGas + payGas + 70,000) ≤ 28,000,000","At least assetCount; maxAssets × (balanceGas + 60,000) ≤ 28,000,000","directLimit × (balanceGas + payGas + 70,000) ≤ 28,000,000; zero disables direct attempts"],Fc=28000000n;function Iv(e,n){if(!n||e!==12&&e!==13)return;const s=BigInt(n.maxAssets),r=BigInt(n.directLimit),l=BigInt(e===12?n.payGas:n.balanceGas);let u=500000n;return e===12&&s>0n&&Fc/s-60000n<u&&(u=Fc/s-60000n),r>0n&&Fc/r-70000n-l<u&&(u=Fc/r-70000n-l),u}const or=e=>BigInt(e).toLocaleString("en-US");function lk(e,n){if(e!==12&&e!==13)return Kc[e];if(!n)return`${Kc[e]}. Current maximum unreadable — Retry vault.`;const s=Iv(e,n),r=e===12?`maxAssets ${or(n.maxAssets)}, directLimit ${or(n.directLimit)}, payGas ${or(n.payGas)}`:`directLimit ${or(n.directLimit)}, balanceGas ${or(n.balanceGas)}`;return s<20000n?`${Kc[e]}. With the current ${r}, no value fits: lower ${e===12?"MaxAssets or DirectLimit":"DirectLimit"} first.`:`${Kc[e]}. Current maximum ${or(s)} (with the current ${r}).`}function ck(e){try{return bp(e,128)}catch{throw new ce("Minimum raw pool liquidity: enter an unsigned 128-bit whole number.")}}function Ug(e){const n=Xt(e.pool,!0),s=Xt(e.quoteFeed,!0),r=ck(e.minLiquidity);if(ge(n,Le)&&(!ge(s,Le)||r!==0n))throw new ce("No pool requires zero quote feed and zero liquidity.");if(!ge(n,Le)&&ge(s,Le))throw new ce("A pool requires its quote feed.");if(!ge(n,Le)&&r===0n)throw new ce("A pool requires a minLiquidity above zero (a zero floor never rejects a drained pool).");return[n,s,r]}const uk={kind:0,token:Le,target:Le,pool:Le,quoteFeed:Le,value:0n,value2:0n,setting:0},dk="Sunday 2:00-2:59 am New York is skipped on the spring-forward Sunday; choose another start.";function fk(e,n){return n===0n&&e>=7200n&&e<10800n}function Gv(e,n){const s=Number(e.setting??"0");if(!xh[s])throw new ce("Choose a setting.");if(s===5){const[l,u]=r9(e.from??"",e.to??"");if(fk(l,n?BigInt(n.dst):0n))throw new ce(dk);return[s,l,u]}const r=bp(e.value||"0");if(s===6&&r>2n)throw new ce("Dst is 0, 1 or 2.");return[s,r,0n]}function hk(e){const n=Xt(e);if(ge(n,It))throw new ce("The new owner must not be the vault.");return n}function pk(e){const n=Xt(e);if(ge(n,It))throw new ce("The new guardian must not be the vault.");return n}function mk(e){const n=Xt(e);if(ge(n,It))throw new ce("The fee recipient must not be the vault.");return n}function yk(e,n,s){const r={...uk,kind:e};switch(e){case 0:{const[l,u,f]=Ug(n);return{...r,token:Xt(n.token),target:Xt(n.feed),pool:l,quoteFeed:u,value:f}}case 1:return{...r,token:Xt(n.token),target:Xt(n.feed)};case 2:case 3:case 4:case 6:return{...r,token:Xt(n.token)};case 5:{const[l,u,f]=Ug(n);return{...r,token:Xt(n.token),pool:l,quoteFeed:u,value:f}}case 7:return{...r,target:pk(n.next)};case 8:return{...r,value:ll(n.cap)};case 9:return{...r,target:mk(n.recipient)};case 10:{const[l,u,f]=Gv(n,s);return{...r,setting:l,value:u,value2:f}}default:throw new ce("Choose a proposal kind.")}}function Fn(e,n,s){return Ne("propose",[yk(e,n,s)])}function bk(e,n){try{switch(Number(e.kind)){case 0:return`Feed ${e.target}; pool ${e.pool}; quote feed ${e.quoteFeed}; minimum liquidity ${e.value}`;case 1:return`New feed ${e.target}`;case 2:return"Re-centre the band at the feed answer at execution.";case 3:return"Reopen this stock for deposits.";case 4:return"Retire permanently; zero in deposit NAV, still paid on redemption.";case 5:return`Pool ${e.pool}; quote feed ${e.quoteFeed}; minimum liquidity ${e.value}`;case 6:return"Add positive excess to managed holdings. Keep deposits paused until executed and checked.";case 7:return`New guardian ${e.target}`;case 8:return`New size limit ${Zn(e.value)}`;case 9:return`Fee recipient ${e.target}. Fees begin when executed; the recipient can never be unset.`;case 10:{const s=Number(e.setting);return s===5?`hoursFrom / hoursTo = ${e.value} / ${e.value2}; ${Co(s,e.value,e.value2,n)}`:`${Bo[s]} = ${e.value}; ${Co(s,e.value,0n,n)}`}default:return"Unknown action. Retry."}}catch{return"Proposal data unreadable. Retry."}}const k0=In(["function token0() view returns (address)","function token1() view returns (address)","function observe(uint32[]) view returns (int56[], uint160[])"]);async function j0(e){const[n,s,r,l,u,f]=await Promise.all([Ie(cn(e.token,"symbol")),Ie(Ha(e.feed,"description")),Ie(Ha(e.feed,"latestRoundData")),Ie(Ha(e.feed,"decimals")),Ie(Ne("assetTokens")),Ie(Ne("settings"))]),m=u.some(M=>ge(M,e.token)),p=m?await Ie(Ne("asset",[e.token])):void 0;let y,b,w,g,S,T="No pool",x="No quote feed";if(!ge(e.pool,Le)){const[M,I,O]=await Promise.all([Ie({address:e.pool,abi:k0,functionName:"token0"}),Ie({address:e.pool,abi:k0,functionName:"token1"}),Ie(Ha(e.quoteFeed,"description"))]);if(!ge(M,e.token)&&!ge(I,e.token))throw new ce("The pool does not include this Stock Token.");T=(await Promise.all([Ie(cn(M,"symbol")),Ie(cn(I,"symbol"))])).join(" / "),x=uu(O);const A=BigInt(f.poolWindow),[z,C,Z,ee,J]=await Promise.all([Ie({address:e.pool,abi:k0,functionName:"observe",args:[[Number(A),0]]}),Ie(cn(e.token,"decimals")),Ie(cn(ge(M,e.token)?I:M,"decimals")),Ie(Ha(e.quoteFeed,"decimals")),Ie(Ha(e.quoteFeed,"latestRoundData"))]);if(r[1]<=0n||J[1]<=0n)throw new ce("Stock or quote feed answer is invalid.");const K=await nt.getBlock({blockTag:"latest"});if(J[3]>K.timestamp||K.timestamp-J[3]>BigInt(f.maxAge))throw new ce("Quote feed is stale or has a future timestamp.");const X=ok(z[0],z[1],A,ge(M,e.token),Number(C),Number(Z),J[1],Number(ee));y=X.liquidity,w=X.price;const oe=r[1]*10n**18n/10n**BigInt(l);if(!oe)throw new ce("Feed price normalizes to zero.");const he=w>oe?w-oe:oe-w;b=he*10000n/oe,y<e.minLiquidity&&(g=`${dp(A)} pool liquidity is under minLiquidity.`),he>oe*BigInt(f.poolDeviation)/10000n&&(g=(g?g+" ":"")+"Pool-vs-feed gap is over poolDeviation."),y*2n<e.minLiquidity*3n&&(S="Liquidity is under 1.5× minLiquidity.")}const j=uu(s,n);if(p){const M=["feed","pool","quoteFeed"].filter(I=>!ge(p[I],e[I]));p.minLiquidity!==e.minLiquidity&&M.push("minLiquidity"),M.length&&(g=`Already-listed row differs: ${M.join(", ")}. Correct the pasted line.`)}return{...e,symbol:n,liquidity:y,gapBps:b,poolPrice:w,error:g,warning:S,description:j,price:r[1],feedDecimals:Number(l),poolSymbols:T,quoteName:x,listed:m,marked:e.ticker!==n||!Rv(n,j),poolWindow:BigInt(f.poolWindow)}}const Pv=e=>`${e} hour${e===1n?"":"s"}`;function gk(e,n){return e===0n?"off: deposits stay open when prices stop":`at least ${e} listed stock price${e===1n?"":"s"} updated within the last ${n===void 0?"FreshHours hours":Pv(n)}; deposits close when prices stop (US market holidays) until one updates`}function Co(e,n,s=0n,r){return e===0?`centre /${n} to ×${n}`:[1,2,7].includes(e)?`${Number(n)/3600} hours (${n} s)`:e===8?`${Number(n)/100}% (${n} basis points)`:e===5?jv(n,s,r?BigInt(r.dst):0n):e===6?Nv[Number(n)]??"unknown daylight rule":e===15?`With at most ${n} held stocks, every leg is tried now; with more, every leg is owed for claims. Zero disables direct attempts.`:e===3?gk(n,r?BigInt(r.freshHours):void 0):e===4?`${Pv(n)}; deposits need FreshCount prices updated within this window, so they close when prices stop (US market holidays) until one updates`:e>=9&&e<=13?`${n} gas`:`${n} stocks`}function qt({title:e,description:n,fields:s=[],label:r,build:l,confirmation:u,role:f="owner",disabled:m=!1,disabledReason:p="Data missing. Complete setup or retry the vault.",folded:y=!0,preview:b,snapshot:w,wallet:g}){const[S,T]=D.useState({}),[x,j]=D.useState(!1),[M,I]=D.useState(""),[O,B]=D.useState(!1),A=D.useRef(!1),z=s.some(K=>K.type==="stock"&&!K.stocks?.some(X=>ge(X.token,S[K.key]))),C=s.some(K=>!(S[K.key]||"").trim()),Z=El(g,w,f)||(O?"Checking... Wait for this action.":z?"Choose a stock. If your previous stock disappeared, choose again.":C?"Complete the fields above.":u&&!x?"Read and confirm the consequence above.":m?p:"");D.useEffect(()=>{w.loading||T(K=>{const X={...K};let oe=!1;return s.filter(he=>he.type==="stock").forEach(he=>{X[he.key]&&!he.stocks?.some(ae=>ge(ae.token,X[he.key]))&&(X[he.key]="",oe=!0)}),oe?X:K})},[w.loadedAt]);const ee=e.toLowerCase().replace(/[^a-z0-9]/g,"-");async function J(K){if(K.preventDefault(),!(A.current||Z)){A.current=!0,I(""),B(!0);try{if(u&&!x)throw new Error("Confirm the stated consequence before continuing.");await g.send(await l(Object.fromEntries(s.map(X=>[X.key,S[X.key]??""]))),e,r)}catch(X){I(wt(X)),g.fail(e,wt(X)),K.target.querySelector("input, textarea, select")?.focus()}finally{B(!1),A.current=!1}}}return c.jsxs("details",{className:"panel action-panel",open:y?void 0:!0,children:[c.jsx("summary",{children:e}),n&&c.jsx("p",{children:n}),c.jsxs("form",{onSubmit:J,children:[s.map(K=>c.jsxs("label",{children:[K.label,K.type==="textarea"?c.jsx("textarea",{disabled:O||g.busy,"aria-label":K.label,rows:5,value:S[K.key]??"",onChange:X=>T({...S,[K.key]:X.target.value}),required:!0,"aria-describedby":`${ee}-error`}):K.type==="stock"?c.jsxs("select",{disabled:O||g.busy,"aria-label":K.label,value:K.stocks?.some(X=>ge(X.token,S[K.key]))?S[K.key]:"",onChange:X=>T({...S,[K.key]:X.target.value}),required:!0,"aria-describedby":`${ee}-error`,children:[c.jsx("option",{value:"",disabled:!0,children:"Choose a stock"}),K.stocks?.map(X=>c.jsxs("option",{value:X.token,children:[X.symbol,X.retired?" · retired":X.open?"":" · closed"]},X.token))]}):c.jsx("input",{disabled:O||g.busy,"aria-label":K.label,value:S[K.key]??"",onChange:X=>T({...S,[K.key]:X.target.value}),inputMode:K.type==="amount"?"decimal":"text",required:!0,"aria-describedby":`${ee}-error`,"aria-invalid":!!M})," ",K.hint&&c.jsx("small",{children:K.hint}),K.type==="stock"&&K.stocks?.some(X=>ge(X.token,S[K.key]))&&c.jsxs("span",{className:"chosen-stock",children:["Chosen:"," ",K.stocks.find(X=>ge(X.token,S[K.key]))?.symbol,c.jsx(qn,{value:S[K.key]})]})]},K.key)),u&&c.jsxs("label",{className:"confirm",children:[c.jsx("input",{type:"checkbox",checked:x,onChange:K=>j(K.target.checked),required:!0}),u]}),b&&c.jsx("p",{className:"setting-preview",children:b(S)}),c.jsx(ul,{role:f,snapshot:w}),c.jsx("button",{type:"submit",disabled:!!Z,children:O?`${r}…`:r}),c.jsx(Al,{reason:Z,wallet:g,snapshot:w}),c.jsx(ea,{wallet:g,scope:e}),c.jsx("p",{role:"alert",className:"error",id:`${ee}-error`,children:M})]})]})}function vk({rows:e}){return c.jsx("div",{className:"pairing-grid",children:e.map((n,s)=>c.jsxs("article",{className:"receipt",children:[c.jsxs("h3",{children:["Row ",s+1,": ",c.jsx("bdi",{children:n.symbol})]}),c.jsxs("p",{children:["Input line ",n.line]}),c.jsx(Hn,{value:n.token}),c.jsxs("p",{children:["Stock feed: ",c.jsx("bdi",{children:n.description})]}),c.jsx(Hn,{value:n.feed}),n.marked&&c.jsx("strong",{className:"pairing-warning",children:"check this pairing"}),c.jsxs("p",{children:["Feed price:"," ",n.price===void 0?"unreadable":"$"+pt(n.price,n.feedDecimals)]}),c.jsxs("p",{children:["Pool: ",c.jsx(qn,{value:n.pool}),"Pool tokens: ",c.jsx("bdi",{children:n.poolSymbols})]}),c.jsxs("p",{children:["Quote feed: ",c.jsx("bdi",{children:n.quoteName}),c.jsx(qn,{value:n.quoteFeed})]}),c.jsxs("p",{children:["minLiquidity: ",String(n.minLiquidity)]}),!ge(n.pool,Le)&&c.jsxs(c.Fragment,{children:[c.jsxs("p",{children:["Current"," ",n.poolWindow===void 0?"pool-window":dp(n.poolWindow)," ","liquidity:"," ",n.liquidity===void 0?"unreadable":String(n.liquidity)," ","·"," ",n.liquidity===void 0?"unreadable":n.minLiquidity===0n?"No minimum (0)":pt(n.liquidity*10000n/n.minLiquidity,4,4)+"× minLiquidity"]}),c.jsxs("p",{children:["Pool-vs-feed gap:"," ",n.gapBps===void 0?"unreadable":pt(n.gapBps,2,2)+"%"]})]}),c.jsx("strong",{children:n.error||n.marked?"Needs correction":n.listed?"Already listed; matches this line":"Ready to list"}),n.warning&&c.jsx("p",{className:"note warning",children:n.warning}),n.error&&c.jsx("p",{className:"error",children:n.error})]},n.token))})}function wk({snapshot:e,wallet:n,input:s,setInput:r}){const[l,u]=D.useState([]),[f,m]=D.useState(""),[p,y]=D.useState(""),[b,w]=D.useState(""),[g,S]=D.useState(!1),[T,x]=D.useState(!1),[j,M]=D.useState(""),I=D.useRef(!1);D.useEffect(()=>{let z=!0;return n.account&&ge(n.account,e.globals.owner)&&n.listingPending().then(C=>{z&&(M(""),C&&(y(""),x(!0)))}).catch(C=>{z&&M(wt(C))}),()=>{z=!1}},[n.account,e.loadedAt]);async function O(){m(""),y("");const z=yh(s),C=[],Z=await yp();if(!Z.complete)throw new ce("Listed stocks unreadable. Retry vault before checking.");for(let ee=0;ee<z.length;ee++){w(`Checking row ${ee+1} of ${z.length}`);let J;try{J=await j0(z[ee]),!J.listed&&Z.assets.some(K=>!K.retired&&ge(K.feed,J.feed))&&(J.error="Stock feed already used by an unretired stock."),!J.listed&&!J.error&&!J.marked&&await fp(Ne("listGenesis",[J.token,J.feed,J.pool,J.quoteFeed,J.minLiquidity]),e.globals.owner)}catch(K){J={...z[ee],symbol:z[ee].ticker,description:"unreadable",price:void 0,feedDecimals:0,poolSymbols:"unreadable",quoteName:"unreadable",listed:!1,marked:!1,error:`Row ${ee+1}, line ${z[ee].line} (${z[ee].ticker}): ${wt(K)}`}}C.push(J),u([...C])}return m(s),w(C.some(ee=>ee.error||ee.marked)?"Checks finished. Rows marked Needs correction cannot be listed.":"Checks finished. Pairings ready."),C}async function B(){if(!I.current){I.current=!0,S(!0);try{await O()}catch(z){y(wt(z))}finally{S(!1),I.current=!1}}}const A=El(n,e,"owner")||(g?"Checking or listing. Wait for the current row.":j||(f!==s&&!T?"Check pairings before listing.":s.trim()?l.some(z=>z.marked||z.error)?"Needs correction. Fix the marked rows, then check pairings again.":"":"Paste the stock rows above."));return c.jsxs("section",{className:"panel",children:[c.jsx("h3",{children:"List initial stocks"}),c.jsx("p",{children:"Paste one line per stock: TICKER token feed pool quoteFeed minLiquidity. For no pool, enter zero addresses for pool and quoteFeed, and 0 for minLiquidity."}),c.jsxs("label",{children:["Listing rows",c.jsx("textarea",{rows:5,value:s,disabled:g||n.busy,onChange:z=>{r(z.target.value),m(""),u([]),x(!1)},spellCheck:!1})]}),c.jsx("button",{onClick:B,disabled:g||e.loading||e.globals.genesisFinalized!==!1,children:"Check pairings / Retry"}),(g||e.loading||e.globals.genesisFinalized!==!1)&&c.jsx("p",{className:"disabled-reason",children:g||e.loading?"Reading... Wait for the check.":"Genesis must be readable and not finalized. Retry vault."}),c.jsx("p",{role:"status",children:b}),c.jsx(vk,{rows:l}),c.jsx(ul,{role:"owner",snapshot:e}),c.jsx("button",{disabled:!!A,onClick:async()=>{if(I.current)return;I.current=!0,S(!0),y("");let z="Listing",C=0;try{await n.listingPending();const Z=await O();if(Z.some(ee=>ee.marked||ee.error))throw new ce("Needs correction. Fix the marked rows before resuming.");for(let ee=0;ee<Z.length;ee++){const J=Z[ee];C=ee+1,z=`Row ${ee+1} of ${Z.length}: ${J.symbol}`,w(z),await n.listingPending();const K=await j0(J);if(K.marked||K.error)throw new ce(K.error||"check this pairing");if(K.listed)continue;await n.send(Ne("listGenesis",[J.token,J.feed,J.pool,J.quoteFeed,J.minLiquidity]),"listing",z);const X=await j0(J);if(!X.listed)throw new du("Not listed after the receipt.");if(X.error)throw new ce(X.error);u(oe=>oe.map(he=>ge(he.token,J.token)?X:he))}w("All rows listed and matched against chain."),x(!1)}catch(Z){if(Z instanceof du){const ee=`Row ${C}: the transaction was cancelled in the wallet; nothing was listed. Press Resume listing.`;y(ee),n.notice("listing",ee)}else y(`${z}: ${wt(Z)}`);x(!0);try{await n.listingPending()}catch(ee){M(wt(ee))}}finally{S(!1),I.current=!1}},children:T?"Resume listing":"List stocks"}),c.jsx(Al,{reason:A,wallet:n,snapshot:e}),j&&c.jsx("button",{disabled:g||n.busy,onClick:async()=>{S(!0);try{await n.waitPending(),M(""),y(""),x(!0)}catch(z){M(wt(z))}finally{S(!1)}},children:"Wait for pending transaction / Retry"}),c.jsx(ea,{wallet:n,scope:"listing"}),c.jsx("p",{role:"alert",className:"error",children:p})]})}function xk(e){const[n,s]=D.useState(0),r=e.snapshot.globals.settings,l=r?n===5?`${jv(BigInt(r.hoursFrom),BigInt(r.hoursTo),BigInt(r.dst))}; ${r.hoursFrom}-${r.hoursTo}`:n===6?`${Nv[Number(r.dst)]??"unknown"}; ${r.dst}`:`${r[Bo[n]]}; ${Co(n,BigInt(r[Bo[n]]),0n,r)}`:"unreadable — Retry vault",u=r&&BigInt(r.dst)!==0n?BigInt(r.dst):void 0;return c.jsxs("div",{className:"panel setting-panel",children:[c.jsx("h3",{children:"Setting"}),c.jsxs("label",{children:["Setting name",c.jsx("select",{"aria-label":"Setting name",value:n,onChange:f=>s(Number(f.target.value)),children:xh.map((f,m)=>c.jsx("option",{value:m,children:f},f))})]}),c.jsxs("p",{children:["Current ",Bo[n],":"," ",e.snapshot.loading?"Reading...":l]}),c.jsxs("p",{children:["Bounds: ",lk(n,r)]}),n===5&&c.jsxs("p",{children:['Hours are seconds since Sunday 00:00 New York time. Enter From and To as a weekday and New York time, e.g. "Monday 9:30 am" and "Friday 4:00 pm" (To may be "Saturday 24:00"), or "Always open" in both. The start is inclusive and the end exclusive.',u!==void 0&&` With the current Dst ${u}, the vault reads these times as ${mp(u)} all year, not New York time.`]}),n===6&&c.jsx("p",{children:"0 follows the US daylight saving rule; 1 never applies daylight saving (UTC-5); 2 always applies it (UTC-4)."}),(n===3||n===4)&&c.jsx("p",{children:"Deposits need at least FreshCount listed stock prices updated within the last FreshHours hours, so they close when prices stop (US market holidays) until one updates. FreshCount 0 turns this off."}),c.jsx(qt,{...e,title:`Set ${xh[n]}`,label:"Propose setting",fields:n===5?[{key:"from",label:"From (weekday and New York time, or Always open)"},{key:"to",label:"To (weekday and New York time; Saturday 24:00 allowed)"}]:[{key:"value",label:`New ${Bo[n]} value`,type:"amount"}],preview:f=>{try{const[,m,p]=Gv({...f,setting:String(n)},r),y=Iv(n,r);return n===5?`Proposed value ${m}, value2 ${p}; ${Co(n,m,p,r)}`:`Proposed raw value: ${m}; ${Co(n,m,0n,r)}`+(y!==void 0&&m>y?`. Over the current maximum ${y}: the vault would refuse it.`:"")}catch(m){return m instanceof ce?m.message:"Enter a proposed value to see its plain units."}},build:f=>Fn(10,{...f,setting:String(n)},r)},n)]})}function Sk({snapshot:e,wallet:n}){const[s,r]=D.useState(1n),[l,u]=D.useState([]),[f,m]=D.useState(""),[p,y]=D.useState(0),[b,w]=D.useState(!0);return D.useEffect(()=>{let g=!0;return w(!0),u([]),m(""),Ie(Ne("pendingProposals",[s,s+49n])).then(async S=>{const T=await Ln(S.map(x=>Ne("proposal",[x])));if(T.some(x=>!x.ok))throw new Error("proposal unreadable");g&&u(T.map((x,j)=>({...x.value[0],id:S[j]})))}).catch(()=>{g&&m("Pending proposals unreadable. Retry proposals.")}).finally(()=>{g&&w(!1)}),()=>{g=!1}},[s,e.loadedAt,p]),c.jsxs("section",{className:"owner-section panel",id:"owner-pending",tabIndex:-1,children:[c.jsxs("div",{className:"section-heading",children:[c.jsx("h2",{children:"Pending proposals"}),c.jsx("button",{onClick:()=>y(g=>g+1),disabled:b,children:b?"Reading...":f?"Retry proposals":"Refresh proposals"})]}),c.jsxs("p",{children:["Scanning IDs ",String(s),"–",String(s+49n)," of"," ",e.globals.proposalCount===void 0?"unreadable":String(e.globals.proposalCount),". Empty ranges may occur."]}),c.jsx("p",{role:"alert",className:"error",children:f}),b?c.jsx("p",{role:"status",children:"Reading proposals…"}):!f&&!l.length?c.jsx("p",{children:"No pending proposals in this range."}):null,c.jsx("div",{className:"two-col",children:l.map(g=>{const S=BigInt(Math.floor(Date.now()/1e3)),T=g.createdAt+2n*86400n,x=g.createdAt+9n*86400n,j=S>=T,M=S>=x,I=Number(g.action.kind),O=g.action.token,B=[4,6].includes(I);return c.jsxs("article",{className:"receipt",children:[c.jsxs("h3",{children:[Y4[I]," · Proposal ",String(g.id)]}),c.jsxs("p",{children:["Stock:"," ",ge(O,Le)?"Global setting":e.assets.find(A=>ge(A.token,O))?.symbol??"unlisted / symbol unreadable"]}),!ge(O,Le)&&c.jsx(qn,{value:O}),c.jsx("p",{className:"chain-text",children:bk(g.action,e.globals.settings)}),c.jsx("p",{children:j?`ready until just before ${ui(x,"end")}`:`waiting, executable from ${ui(T)}`}),B&&c.jsx(br,{warning:!0,children:"Keep deposits paused for execution."}),c.jsx(Xa,{snapshot:e,wallet:n,role:"owner",label:"Execute",scope:`Execute proposal ${g.id}`,disabled:!j||M||B&&e.globals.depositsPaused!==!0,disabledReason:M?"Proposal expired. Propose the change again.":j?"Pause deposits before executing this proposal.":`Wait until ${ui(T)}.`,getSpec:async()=>{if(B&&await Ie(Ne("depositsPaused"))!==!0)throw new ce("Pause deposits before executing Retire or Resync.");return Ne("execute",[g.id])}}),c.jsx(Xa,{snapshot:e,wallet:n,role:I===7?"owner":"operator",label:"Cancel proposal",scope:`Cancel proposal ${g.id}`,getSpec:()=>Ne("cancel",[g.id])})]},String(g.id))})}),Object.keys(n.progress).filter(g=>/^(Execute|Cancel) proposal /.test(g)).map(g=>c.jsx(ea,{wallet:n,scope:g},g)),c.jsxs("div",{className:"button-row",children:[c.jsx("button",{disabled:b||s===1n,onClick:()=>r(g=>g-50n),children:"Previous proposal page"}),c.jsx("button",{disabled:b||e.globals.proposalCount===void 0||s+50n>e.globals.proposalCount,onClick:()=>r(g=>g+50n),children:"Next proposal page"})]}),c.jsx("p",{className:"disabled-reason",children:b?"Reading...":`Pages show up to 50 proposal IDs. ${s===1n?"This is the first page.":""} ${e.globals.proposalCount===void 0?"Proposal count unreadable. Retry vault.":s+50n>e.globals.proposalCount?"This is the last page.":""}`})]})}const qg=[()=>sessionStorage,()=>localStorage],Lg="Paste the listing rows first so the page can check none is missing.";function Hg(e,n){const s=e.find(r=>ge(r.token,n.token));return!!s&&(!ge(s.feed,n.feed)||!ge(s.pool,n.pool)||!ge(s.quoteFeed,n.quoteFeed)||s.minLiquidity!==n.minLiquidity)}const N0=e=>`Listed with other values than the pasted lines: ${e.join(", ")}. Check pairings shows which field; paste the lines that were listed.`;function Ek(e){const{snapshot:n,wallet:s}=e,r=(x=n.assets)=>({key:"token",label:"Stock Token",type:"stock",stocks:x}),l=[{key:"pool",label:"Pool address (zero for no pool)"},{key:"quoteFeed",label:"Quote feed address (zero for no pool)"},{key:"minLiquidity",label:"Minimum raw pool liquidity",type:"amount"}],u={key:"feed",label:"Stock USD feed address"},f=n.assets.filter(x=>x.reason!==0),m=n.globals.genesisFinalized,[p,y]=D.useState(()=>{for(const x of qg)try{const j=x().getItem("basket-listing");if(j)return j}catch{}return""}),b=x=>{y(x);for(const j of qg)try{j().setItem("basket-listing",x)}catch{}};let w=[],g=[],S="";if(p.trim())try{const x=yh(p);w=x.filter(j=>!n.assets.some(M=>ge(M.token,j.token))).map(j=>j.ticker),g=x.filter(j=>Hg(n.assets,j)).map(j=>j.ticker)}catch(x){S=wt(x)}const T=x=>{const j=document.getElementById(`owner-${x}`);j?.scrollIntoView(),j?.focus({preventScroll:!0})};return c.jsxs(c.Fragment,{children:[c.jsx(Us,{eyebrow:"Behind the counter",title:"Owner",children:"All controls and proposals are visible to everyone. Only the wallet allowed by the vault can send each transaction."}),c.jsx("div",{className:"jump-links","aria-label":"Owner sections",children:["Launch","Pause","Pending","Immediate","Propose"].map(x=>c.jsx("button",{onClick:()=>T(x.toLowerCase()),children:x},x))}),c.jsxs("div",{className:"roles panel",children:[c.jsxs("div",{children:[c.jsx("strong",{children:"Owner"}),n.loading?"Reading...":c.jsx(qn,{value:n.globals.owner})]}),c.jsxs("div",{children:[c.jsx("strong",{children:"Guardian"}),n.loading?"Reading...":c.jsx(qn,{value:n.globals.guardian})]}),c.jsxs("div",{children:[c.jsx("strong",{children:"Pending owner"}),n.loading?"Reading...":ge(n.globals.pendingOwner,Le)?c.jsx("span",{children:"None"}):c.jsx(qn,{value:n.globals.pendingOwner})]}),c.jsxs("div",{children:[c.jsx("strong",{children:"Fee recipient"}),n.loading?"Reading...":n.globals.feeRecipient===void 0?c.jsx("span",{children:"unreadable"}):ge(n.globals.feeRecipient,Le)?c.jsx("span",{children:"None"}):c.jsx(qn,{value:n.globals.feeRecipient})]})]}),m?c.jsx("p",{className:"panel",id:"owner-launch",tabIndex:-1,children:"Launch done · Genesis finalized."}):c.jsxs("section",{className:"owner-section panel",id:"owner-launch",tabIndex:-1,children:[c.jsx("h2",{children:"Launch"}),c.jsx("p",{children:n.loading?"Reading...":m===void 0?"Genesis unreadable — Retry vault":m?"Genesis finalized":"Genesis not finalized"}),c.jsxs("div",{className:"two-col",children:[c.jsx(wk,{...e,input:p,setInput:b}),c.jsxs("div",{children:[c.jsx(qt,{...e,title:"Finalize genesis",folded:!1,disabledReason:p.trim()?S||(w.length?`Unlisted rows: ${w.join(", ")}. List them first.`:g.length?N0(g):"At least three readable stocks must pass every check. Correct failed stocks and retry vault."):Lg,label:"Finalize genesis",description:"At least three listed stocks must each have reason OK in allAssets().",disabled:m!==!1||!p.trim()||!!S||!!w.length||!!g.length||!n.aggregate||!n.complete||n.assets.length<3||!!f.length,confirmation:"I understand this is irreversible, deposits can start at once, and later stocks can only be added by a List proposal.",build:async()=>{if(!p.trim())throw new ce(Lg);await s.listingPending();const x=await yp(),j=yh(p),M=j.filter(O=>!x.assets.some(B=>ge(B.token,O.token)));if(M.length)throw new ce(`Unlisted rows: ${M.map(O=>O.ticker).join(", ")}. List them first.`);const I=j.filter(O=>Hg(x.assets,O));if(I.length)throw new ce(N0(I.map(O=>O.ticker)));if(!x.aggregate||!x.complete||x.assets.length<3||x.assets.some(O=>O.reason!==0))throw new ce("Finalization blocked: "+(x.assets.filter(O=>O.reason!==0).map(O=>`${O.symbol}: ${gi(O.reason,x.globals.settings)}`).join("; ")||"At least three readable stocks required."));return Ne("finalizeGenesis")}}),c.jsx("p",{children:n.loading?"Reading...":n.complete?`${n.assets.length} ${n.assets.length===1?"stock":"stocks"} listed: ${n.assets.map(x=>x.symbol).join(", ")||"None"}`:"Listed stocks unreadable · Retry vault"}),w.length>0&&c.jsxs("p",{className:"error",children:["Unlisted rows: ",w.join(", ")]}),g.length>0&&c.jsx("p",{className:"error",children:N0(g)}),S&&c.jsx("p",{className:"error",children:S}),f.map(x=>c.jsxs("p",{className:"error",children:[x.symbol,": ",gi(x.reason,n.globals.settings)]},x.token))]})]})]}),c.jsxs("section",{className:"owner-section panel",id:"owner-pause",tabIndex:-1,children:[c.jsx("h2",{children:"Deposit pause"}),c.jsx("p",{children:n.loading?"Reading...":n.globals.depositsPaused===void 0?"Pause state unreadable — Retry vault":n.globals.depositsPaused?"Paused":"Not paused"}),c.jsx(ul,{role:"operator",snapshot:n}),c.jsx(Xa,{...e,label:"Pause deposits",disabled:n.globals.depositsPaused!==!1,disabledReason:n.globals.depositsPaused?"Deposits are already paused.":"Pause state unreadable. Retry vault.",role:"operator",getSpec:()=>Ne("pauseDeposits")}),c.jsx(ul,{role:"owner",snapshot:n}),c.jsx(Xa,{...e,label:"Unpause deposits",disabled:n.globals.depositsPaused!==!0,disabledReason:n.globals.depositsPaused===!1?"Deposits are already unpaused.":"Pause state unreadable. Retry vault.",role:"owner",getSpec:()=>Ne("unpauseDeposits")})]}),c.jsx(Sk,{...e}),c.jsxs("section",{className:"owner-section panel",id:"owner-immediate",tabIndex:-1,children:[c.jsx("h2",{children:"Immediate controls"}),c.jsxs("div",{className:"two-col",children:[c.jsx(qt,{...e,title:"Close a stock",label:"Close stock",role:"operator",fields:[r()],build:x=>Ne("close",[Xt(x.token)])}),c.jsx(qt,{...e,title:"Lower size limit",label:"Lower NAV cap",description:"Acts at once and voids pending raises. Zero is allowed.",fields:[{key:"cap",label:"Lower limit in dollars",type:"amount"}],build:x=>Ne("lowerNAVCap",[ll(x.cap,!0)])}),c.jsx(qt,{...e,title:"Remove retired stock",label:"Remove retired",role:"anyone",description:"Only when managed and total owed are both zero. Removal changes assetTokens order.",fields:[r(n.assets.filter(x=>x.retired))],build:x=>Ne("removeRetired",[Xt(x.token)])}),c.jsx(qt,{...e,title:"Transfer ownership",label:"Start ownership transfer",description:"The new owner must accept from their own wallet and must not be the guardian.",fields:[{key:"next",label:"New owner address"}],build:async x=>{const j=hk(x.next);if(ge(j,await Ie(Ne("guardian"))))throw new ce("The new owner must not be the guardian.");return Ne("transferOwnership",[j])}}),c.jsx(qt,{...e,title:"Accept ownership",label:"Accept ownership",role:"pending",build:async()=>{if(ge(s.account,await Ie(Ne("guardian"))))throw new ce("The new owner must not be the guardian.");return Ne("acceptOwnership")}})]})]}),c.jsxs("section",{className:"owner-section panel",id:"owner-propose",tabIndex:-1,children:[c.jsx("h2",{children:"Propose a change"}),c.jsx("p",{children:"Changes wait two days. Only the owner can execute within the following seven days. The guardian can cancel, except its own replacement."}),c.jsxs("div",{className:"two-col",children:[c.jsx(qt,{...e,title:"List",label:"Propose List",fields:[{key:"token",label:"New Stock Token address"},u,...l],build:x=>Fn(0,x)}),c.jsx(qt,{...e,title:"Feed",label:"Propose Feed",fields:[r(),u],build:x=>Fn(1,x)}),c.jsx(qt,{...e,title:"Recentre",label:"Propose Recentre",description:"Re-centres the band on the feed answer at execution.",fields:[r()],build:x=>Fn(2,x)}),c.jsx(qt,{...e,title:"Reopen",label:"Propose Reopen",fields:[r(n.assets.filter(x=>!x.open&&!x.retired))],build:x=>Fn(3,x)}),c.jsx(qt,{...e,title:"Retire",label:"Propose Retire",description:"Pause deposits before execution.",fields:[r(n.assets.filter(x=>!x.open&&!x.retired))],confirmation:"I understand retirement is permanent: zero in deposit NAV, still paid out on redemption. New depositors take a share of its value from current holders.",build:x=>Fn(4,x)}),c.jsx(qt,{...e,title:"Pool",label:"Propose Pool",fields:[r(),...l],build:x=>Fn(5,x)}),c.jsx(qt,{...e,title:"Resync",label:"Propose Resync",description:"Pause deposits before proposing; unpause after it executes.",fields:[r()],build:async x=>{if(await Ie(Ne("depositsPaused"))!==!0)throw new ce("Pause deposits before proposing Resync.");return Fn(6,x)}}),c.jsx(qt,{...e,title:"Guardian",label:"Propose Guardian",fields:[{key:"next",label:"New guardian address"}],build:x=>Fn(7,x)}),c.jsx(qt,{...e,title:"RaiseCap",label:"Propose RaiseCap",description:`Current size limit: ${Zn(n.globals.NAV_CAP)}. Maximum $10 billion.`,fields:[{key:"cap",label:"New size limit in dollars",type:"amount"}],build:x=>Fn(8,x)}),c.jsx(qt,{...e,title:"FeeRecipient",label:"Propose FeeRecipient",description:"Never unset. Fees start once executed. Later recipient changes use the same waiting period.",fields:[{key:"recipient",label:"Fee recipient address"}],confirmation:"I understand fees begin once a recipient is set and the recipient can never be unset.",build:x=>Fn(9,x)}),c.jsx(xk,{...e})]})]})]})}const wp=1e9,Uu=86400,fu=4*365*Uu,Ak=365*Uu,Ig=1460*Uu,_s=[{share:49,amount:49e7,who:"BASK/USDG liquidity providers",terms:"Released over four years, with more rewards at the start"},{share:21,amount:21e7,who:"ITEM/ETH liquidity providers",terms:"Same schedule, same rules"},{share:10,amount:1e8,who:"ITEM/ETH launch pool",terms:"Paired with ETH at launch; where ITEM first trades"},{share:10,amount:1e8,who:"The IMD swarm that built and launched the contracts",terms:"Paid to IMD's members under IMD's own rules"},{share:5,amount:5e7,who:"Operations",terms:"Seeding the two pools and the first stakes; held by the owner wallet"},{share:4,amount:4e7,who:"Development, vested",terms:"Nothing for 12 months, 25% at month 12, the rest evenly to month 48; cannot be revoked or sped up"},{share:1,amount:1e7,who:"Development, unlocked",terms:"Sent once at launch"}],Wc=["ITEM's supply is 1,000,000,000, created once at launch. Nothing can mint more. It is a plain token: anyone can hold, send or trade it.","How the supply is divided:","What is available when. At launch, 260,000,000 ITEM (26% of the supply) is available through the launch pool, the swarm's share, operations and the unlocked development amount. The remaining 740,000,000 ITEM is released over four years: 700,000,000 as liquidity rewards and 40,000,000 through development vesting. The chart and table show this schedule with liquidity providers staked in both reward pools from launch throughout the four years.","The line shows the total ITEM available: the 260,000,000 available at launch plus the liquidity rewards and development tokens released by each date. The table shows the breakdown.","Where value flows. ITEM pays the people who make BASK and ITEM tradable: liquidity providers earn ITEM from the gauges. ITEM holders who stake earn the vault's fees, 0.5% of every deposit and 0.5% of every redemption, paid in BASK. Trading fees in the two Uniswap v2 pools stay with the liquidity providers of those pools. Trades in the launch pool carry a 1.25% fee set by IMD: 1% to the protocol's operations wallet and 0.25% to IMD.","What cannot change. The split above, the four-year gauge schedule, the 7-day fee stream and the vesting dates are constants in contracts with no owner. Nobody holds a key that can alter them."],Tk=["Share","ITEM","Who","Terms"],kk=["End of","Liquidity rewards released","Development unlocked","Total ITEM available"],jk={ITEM:An(Qe)?Qe.ITEM:null,ITEM_STAKING:An(Qe)?Qe.ITEM_STAKING:null,BASK_USDG_GAUGE:An(Qe)?Qe.BASK_USDG_GAUGE:null,ITEM_ETH_GAUGE:An(Qe)?Qe.ITEM_ETH_GAUGE:null,DEV_VESTING:An(Qe)?Qe.DEV_VESTING:null},Vv=_s[0].amount+_s[1].amount,Kv=_s[5].amount,xp=wp-Vv-Kv,Ka=e=>Math.round(e).toLocaleString("en-US"),Fv=(e,n=Vv)=>{const r=Math.max(0,Math.min(e,fu))/fu;return n*r*(2-r)},Yv=e=>e<Ak?0:Kv*Math.min(e,Ig)/Ig,Oo=e=>xp+Fv(e)+Yv(e),Zv=[1,2,3,4].map(e=>{const n=e*365*Uu;return{year:e,gauges:Fv(n),vested:Yv(n),outside:Oo(n),share:Math.round(Oo(n)/wp*1e3)/10}}),Nk=_s.map(e=>[e.share+"%",Ka(e.amount),e.who,e.terms]),Bk=Zv.map(e=>["Year "+e.year,Ka(e.gauges),Ka(e.vested),Ka(e.outside)+" ("+e.share+"%)"]),Rk=_s.map(e=>e.who+" "+e.share+"%").join(", "),Mk="Total ITEM available: "+Ka(xp)+" at launch, "+Zv.map(e=>Ka(e.outside)+" at year "+e.year).join(", ")+". Includes the launch allocation, liquidity rewards and unlocked development tokens, with liquidity providers staked in both reward pools throughout the four years.",Gg=["var(--royal)","var(--sky)","var(--sun)","var(--red)","var(--ink)","#93aaca","#dbe6f4"];function Pg({headers:e,rows:n,kind:s}){return c.jsxs("table",{className:"tm-table "+s,children:[c.jsx("thead",{children:c.jsx("tr",{children:e.map(r=>c.jsx("th",{scope:"col",children:r},r))})}),c.jsx("tbody",{children:n.map((r,l)=>c.jsx("tr",{children:r.map((u,f)=>f===0?c.jsx("th",{scope:"row","data-label":e[f],children:u},f):c.jsx("td",{"data-label":e[f],children:u},f))},l))})]})}function Ck(){return c.jsxs("figure",{className:"tm-chart tm-supply","aria-label":"How the supply is divided",children:[c.jsx("svg",{viewBox:"0 0 1000 48",preserveAspectRatio:"none",role:"img","aria-label":Rk,children:_s.map((e,n)=>c.jsx("rect",{x:_s.slice(0,n).reduce((s,r)=>s+r.share,0)*10,y:"0",width:e.share*10,height:"48",fill:Gg[n],stroke:"var(--paper)",strokeWidth:"2"},e.who))}),c.jsx("figcaption",{className:"tm-supply-legend",children:_s.map((e,n)=>c.jsxs("div",{children:[c.jsx("span",{className:"tm-key",style:{background:Gg[n]}}),c.jsx("span",{children:e.who}),c.jsxs("strong",{children:[e.share,"%"]})]},e.who))})]})}function Vg({width:e,height:n}){const f=e-44-12,m=n-12-28,p=g=>44+g/48*f,y=g=>12+m-g/1e9*m,b=[...Array.from({length:12},(g,S)=>S),11.999999,...Array.from({length:37},(g,S)=>S+12)],w=g=>b.map((S,T)=>`${T?"L":"M"}${p(S).toFixed(3)},${y(g(S/48*fu)).toFixed(3)}`).join(" ");return c.jsxs("svg",{viewBox:`0 0 ${e} ${n}`,role:"img","aria-label":Mk,children:[[0,250,500,750,1e3].map(g=>c.jsxs("g",{children:[c.jsx("line",{x1:44,x2:e-12,y1:y(g*1e6),y2:y(g*1e6),stroke:"var(--line)",strokeOpacity:".4"}),c.jsx("text",{x:36,y:y(g*1e6)+4,textAnchor:"end",children:Ka(g)})]},g)),[0,12,24,36,48].map(g=>c.jsx("text",{x:p(g),y:n-6,textAnchor:g===48?"end":"middle",children:g},g)),c.jsx("path",{d:`${w(Oo)} L${p(48)},${y(0)} L${p(0)},${y(0)} Z`,fill:"var(--royal)",fillOpacity:".05"}),c.jsx("path",{d:w(Oo),fill:"none",stroke:"var(--royal)",strokeWidth:"3"}),[12,24,36,48].map(g=>c.jsx("circle",{cx:p(g),cy:y(Oo(g/48*fu)),r:"3.5",fill:"var(--royal)"},g))]})}function Ok(){return c.jsxs("figure",{className:"tm-chart tm-release",children:[c.jsx("figcaption",{children:"Total ITEM available"}),c.jsx("div",{className:"tm-unit",children:"Million ITEM"}),c.jsx("div",{className:"tm-plot-wide",children:c.jsx(Vg,{width:1e3,height:310})}),c.jsx("div",{className:"tm-plot-phone",children:c.jsx(Vg,{width:248,height:228})}),c.jsx("div",{className:"tm-x-label",children:"Months after launch"}),c.jsx("div",{className:"tm-series",children:c.jsxs("span",{children:[c.jsx("i",{className:"tm-line outside"}),Ka(xp/1e6)," million at launch → ",Ka(wp/1e9)," billion by year four"]})})]})}const _k=In(["function totalSupply() view returns (uint256)","function released() view returns (uint256)","function remaining() view returns (uint256)","function totalStaked() view returns (uint256)","function vested() view returns (uint256)"]),Sh=e=>Object.values(e).every(n=>n!==null);async function zk(e,n=Ln){if(!Sh(e))return null;const s=[[e.ITEM,"totalSupply"],[e.BASK_USDG_GAUGE,"released"],[e.BASK_USDG_GAUGE,"remaining"],[e.BASK_USDG_GAUGE,"totalStaked"],[e.ITEM_ETH_GAUGE,"released"],[e.ITEM_ETH_GAUGE,"remaining"],[e.ITEM_ETH_GAUGE,"totalStaked"],[e.DEV_VESTING,"vested"],[e.DEV_VESTING,"released"],[e.ITEM_STAKING,"totalStaked"]];return(await n(s.map(([l,u])=>({address:l,abi:_k,functionName:u})))).map(l=>{if(!l.ok||typeof l.value!="bigint")throw new Error("Live figures unreadable.");return l.value})}const $k=["ITEM supply","BASK/USDG gauge: released","remaining","LP staked","ITEM/ETH gauge: released","remaining","LP staked","Development vesting: vested","released","ITEM staking: ITEM staked"],Dk=["ITEM","ITEM staking","BASK/USDG gauge","ITEM/ETH gauge","Development vesting"];function Uk(e,n=!1){const[s,r=""]=Pa(e,18).split("."),l=r.slice(0,n?18:6).replace(/0+$/,"");return e>0n&&s==="0"&&!l?"<0.000001":BigInt(s).toLocaleString("en-US")+(l?"."+l:"")}function qk({addresses:e=jk,reader:n=Ln}){const[s,r]=D.useState(null),[l,u]=D.useState(!1),[f,m]=D.useState(0);return D.useEffect(()=>{if(!Sh(e))return;let p=!0;return r(null),u(!1),zk(e,n).then(y=>{p&&r(y)}).catch(()=>{p&&u(!0)}),()=>{p=!1}},[e,n,f]),Sh(e)?c.jsxs("section",{className:"tm-live",children:[c.jsx("h3",{children:"Live figures"}),l?c.jsxs(c.Fragment,{children:[c.jsx("p",{children:"Live figures unreadable."}),c.jsx("button",{type:"button",onClick:()=>m(p=>p+1),children:"Retry"})]}):s&&c.jsxs(c.Fragment,{children:[c.jsx("dl",{children:s.map((p,y)=>c.jsxs("div",{children:[c.jsx("dt",{children:$k[y]}),c.jsx("dd",{children:Uk(p,y===3||y===6)})]},y))}),c.jsx("h3",{children:"Addresses"}),c.jsx("div",{className:"tm-addresses",children:Object.values(e).map((p,y)=>c.jsxs("div",{children:[c.jsxs("span",{children:[Dk[y]," "]}),c.jsx("a",{href:`https://robin.etherscan.io/address/${p}`,target:"_blank",rel:"noreferrer",children:p})]},p))})]})]}):null}function B0({index:e}){const n=Wc[e],s=n.indexOf(".")+1;return c.jsxs("p",{children:[c.jsx("strong",{children:n.slice(0,s)}),n.slice(s)]})}function Lk(){return c.jsxs("section",{id:"tokenomics",className:"panel tm-module",children:[c.jsx("h2",{children:"Tokenomics"}),c.jsx("p",{children:Wc[0]}),c.jsx("p",{children:Wc[1]}),c.jsx(Ck,{}),c.jsx(Pg,{headers:Tk,rows:Nk,kind:"tm-allocations"}),c.jsx(B0,{index:2}),c.jsx(Ok,{}),c.jsx(Pg,{headers:kk,rows:Bk,kind:"tm-releases"}),c.jsx("p",{children:Wc[3]}),c.jsx(B0,{index:4}),c.jsx(B0,{index:5}),c.jsx(qk,{})]})}const dl=10n**18n,Hk=10n**15n,Eh=200n;function Xv(e,n=!0){return n?e/Eh+(e%Eh===0n?0n:1n):0n}function Qa(e,n,s,r){const l=s+r;return e*n/10n**BigInt(l-18)}function Qv(e,n,s,r=!0){if(n!==0n&&s===0n)throw new Error("Zero NAV");const l=n===0n?e:e*n/s,u=Xv(l,r),f=n===0n?Hk:0n;if(l-u<=f)throw new Error("Zero shares");return{gross:l,fee:u,locked:f,received:l-u-f,supplyAfter:n+l,navAfter:s+e}}function Jv(e,n,s=!0){if(n===0n||e>n)throw new Error("Invalid supply");const r=Xv(e,s),l=e-r;return{fee:r,burned:l,supplyAfter:n-l}}function Wv(e,n,s,r,l){const u=n===null?e:n>s?n-s:0n;return(e<u?e:u)*r/l}function xe(e,n=18){const s=10n**BigInt(n),r=e/s,l=(e%s).toString().padStart(n,"0").replace(/0+$/,"");return r.toLocaleString("en-US")+(l?"."+l:"")}const Ht=e=>e*dl,fr={quantity:Ht(10n),price:Ht(100n)},e2=Qa(fr.quantity,fr.price,18,18),ca=Qv(e2,0n,0n),rn={quantity:Ht(5n),price:Ht(200n),nav:Ht(20000n),supply:Ht(10000n)},Ah=Qa(rn.quantity,rn.price,18,18),Ns=Qv(Ah,rn.supply,rn.nav),ln={submitted:Ht(1000n),supply:Ht(10000n),stocks:[{name:"Stock A",quantity:Ht(100n),price:Ht(80n)},{name:"Stock B",quantity:Ht(60n),price:Ht(200n)}]},Rs=Jv(ln.submitted,ln.supply),Ro=ln.stocks.map(e=>Wv(e.quantity,e.quantity,0n,Rs.burned,ln.supply)),R0=xe(Rs.burned*100n*dl/ln.supply)+"%",Ik=ln.stocks.reduce((e,n)=>e+Qa(n.quantity,n.price,18,18),0n),Gk=ln.stocks.reduce((e,n,s)=>e+Qa(Ro[s],n.price,18,18),0n),jo=xe(100n*dl/Eh)+"%",Lt={holdings:10n,risen:2n,quantity:Ht(100n),price:Ht(100n),risenPrice:Ht(110n),supply:Ht(100000n),bought:Ht(1000n)};Qa(Lt.quantity,Lt.price,18,18)*Lt.holdings;Qa(Lt.quantity,Lt.price,18,18)*(Lt.holdings-Lt.risen)+Qa(Lt.quantity,Lt.risenPrice,18,18)*Lt.risen;const Pk=Jv(Lt.bought,Lt.supply),t2=Wv(Lt.quantity,Lt.quantity,0n,Pk.burned,Lt.supply);Qa(t2,Lt.price,18,18);Qa(t2,Lt.risenPrice,18,18);const Vk="BASK represents a share of the Stock Tokens accounted for by the vault. Deposits create new BASK. Redemptions burn BASK and release a proportional amount of each stock. Its supply grows and shrinks with those actions; there is no fixed supply.",Kk=[{title:"What one BASK represents",blocks:[{kind:"p",text:"The vault's net asset value, or NAV, is the sum of each stock's managed quantity multiplied by its feed price. Dividing that value by the total BASK supply gives the feed-based backing per BASK. The total supply includes fee BASK and the permanently locked first-deposit amount. BASK's trading price can be different."},{kind:"formula",text:"NAV = sum of managed stock quantities × their feed prices"},{kind:"formula",text:"Backing per BASK = NAV ÷ BASK supply"},{kind:"p",text:"Managed quantities are the vault's accounted holdings. Stock already owed to earlier redeemers is kept separate. Direct donations are not counted until a Resync updates the accounting."}],examples:[]},{title:"Minting BASK",blocks:[{kind:"p",text:"You can deposit one or more eligible Stock Tokens. The vault values each amount using its feed price, then adds those values together. Your deposit receives the same backing per BASK as the existing supply, before the fee."},{kind:"formula",text:"Deposit value = sum of deposited quantities × their feed prices"},{kind:"formula",text:"Gross BASK = deposit value × BASK supply ÷ NAV before the deposit"},{kind:"formula",text:"BASK you receive = gross BASK − deposit fee"},{kind:"p",text:`The deposit fee is ${jo} of gross BASK. Fee BASK is minted to the fee recipient alongside the BASK minted to you. The Stock Tokens stay in the vault.`}],examples:[{title:"Example 1: the first deposit",blocks:[{kind:"p",text:`When the supply is zero, the first deposit creates 1 gross BASK per $1 of deposit value. It also locks ${xe(ca.locked)} BASK forever. That lock is taken only on the first deposit. Here, you deposit ${xe(fr.quantity)+" Stock A"} at a feed price of ${"$"+xe(fr.price)} each.`},{kind:"table",headers:["Step","Amount"],rows:[[`Deposit value: ${xe(fr.quantity)+" Stock A"} × ${"$"+xe(fr.price)}`,`$${xe(e2)}`],["Gross BASK created",`${xe(ca.gross)} BASK`],[`Deposit fee: ${xe(ca.gross)} × ${jo}`,`${xe(ca.fee)+" BASK"}`],["Permanently locked",`${xe(ca.locked)} BASK`],["You receive",`${xe(ca.received)} BASK`]]},{kind:"p",text:`The total supply is ${xe(ca.supplyAfter)} BASK: your ${xe(ca.received)}, ${"the "+xe(ca.fee)+" paid"} as the fee and the ${xe(ca.locked)} permanently locked.`}]},{title:"Example 2: adding to an existing basket",blocks:[{kind:"p",text:`Suppose the vault has $${xe(rn.nav)} of NAV and a total supply of ${xe(rn.supply)} BASK. Each BASK has ${"$"+xe(rn.nav*dl/rn.supply)} of feed-based backing. You deposit ${xe(rn.quantity)+" eligible"} Stock C at a feed price of ${"$"+xe(rn.price)} each, worth $${xe(Ah)} in total.`},{kind:"table",headers:["Step","Amount"],rows:[[`Gross BASK: $${xe(Ah)} × ${xe(rn.supply)} ÷ $${xe(rn.nav)}`,`${xe(Ns.gross)+" BASK"}`],[`Deposit fee: ${xe(Ns.gross)+" ×"} ${jo}`,`${xe(Ns.fee)} BASK`],["You receive",`${xe(Ns.received)} BASK`],["NAV after the deposit",`$${xe(Ns.navAfter)}`],["BASK supply after the deposit",`${xe(Ns.supplyAfter)} BASK`]]},{kind:"p",text:`At unchanged feed prices, $${xe(Ns.navAfter)} ÷ ${xe(Ns.supplyAfter)} is still ${"$"+xe(rn.nav*dl/rn.supply)} of backing per BASK. The fee changes how the new BASK is divided between you and the fee recipient.`}]}]},{title:"Redeeming BASK",blocks:[{kind:"p",text:`You submit BASK and receive a share of each stock in the vault. The ${jo} redemption fee is transferred in BASK to the fee recipient. The remaining BASK is burned.`},{kind:"formula",text:"BASK burned = BASK submitted − redemption fee"},{kind:"formula",text:"Your fraction = BASK burned ÷ BASK supply before the redemption"},{kind:"formula",text:"Each stock amount = that stock's redeemable quantity × your fraction"},{kind:"p",text:"For a readable balance, the redeemable quantity is the smaller of its managed quantity and the balance available after earlier claims are reserved. If the balance cannot be read, the calculation uses the managed quantity and an unsuccessful payment is queued. Redemption calculates quantities without using price feeds."}],examples:[{title:"Example 3: receiving both stocks",blocks:[{kind:"p",text:`Consider a separate basket with a total supply of ${xe(ln.supply)} BASK and the two stocks below. You redeem ${xe(ln.submitted)} BASK: ${xe(Rs.fee)+" BASK"} is the fee, ${xe(Rs.burned)} BASK is burned, and your fraction is ${xe(Rs.burned)} ÷ ${xe(ln.supply)} = ${R0}.`},{kind:"table",headers:["Stock","Redeemable quantity","Your fraction","You receive"],rows:[["Stock A",`${xe(ln.stocks[0].quantity)}`,`${R0}`,`${xe(Ro[0])+" Stock A"}`],["Stock B",`${xe(ln.stocks[1].quantity)}`,`${R0}`,`${xe(Ro[1])+" Stock B"}`]]},{kind:"p",text:`For illustration, if Stock A's feed price is ${"$"+xe(ln.stocks[0].price)} and Stock B's is ${"$"+xe(ln.stocks[1].price)}, the basket's NAV is $${xe(Ik)} and these stock amounts have a combined feed value of $${xe(Gk)}. Those prices explain the value; they are not inputs to the redemption calculation. The BASK supply becomes ${xe(Rs.supplyAfter)} because only the ${xe(Rs.burned)} BASK is burned; the ${xe(Rs.fee)+" fee"} BASK remains in circulation.`}]},{title:"Example 4: one stock is queued",blocks:[{kind:"p",text:"Use the same redemption, but suppose Stock B cannot be transferred and the basket is within the direct-payout limit. Stock A can still be paid. The receiver's claim to Stock B is recorded separately."},{kind:"table",headers:["Stock","Paid now","Owed to the receiver"],rows:[["Stock A",`${xe(Ro[0])+" Stock A"}`,"0"],["Stock B","0",`${xe(Ro[1])+" Stock B"}`]]},{kind:"p",text:"Only the receiver wallet can claim the queued stock. Choose a receiver you control. Claiming does not burn more BASK or charge another redemption fee; gas still applies. Payment depends on the token becoming transferable and the vault having an available balance. If the basket exceeds the direct-payout limit, all stock amounts are queued for claiming."}]}]},{title:"The arbitrage flywheel",blocks:[{kind:"p",text:"As the prices of the stocks inside BASK move, BASK’s market price can drift away from the value of the stocks it represents. That gap creates an opportunity for arbitrageurs:"},{kind:"p",text:"• BASK trades above its backing value: deposit stocks to mint BASK, then sell that BASK on the market."},{kind:"p",text:"• BASK trades below its backing value: buy BASK on the market, then redeem it for its share of the underlying stocks."},{kind:"p",text:"When the difference covers fees and trading costs, arbitrageurs can profit from closing the gap. Their trades help bring BASK’s market price closer to its backing value. Each mint or redemption pays a 0.5% fee in BASK to ITEM staking."},{kind:"formula",text:"Stock prices move → price gaps open → arbitrageurs mint or redeem → BASK fees flow to ITEM stakers."}],examples:[]},{title:"How TVL and liquidity support the flywheel",blocks:[{kind:"p",text:"TVL is the total value of the stocks held by the vault. As TVL and basket diversity grow, so does the potential for arbitrage: a larger basket provides more backing to trade against, while a wider mix of stocks creates more individual price movements that can open up opportunities."},{kind:"p",text:"Liquidity in the BASK/USDG pool helps turn those opportunities into trades. A deeper pool lets arbitrageurs buy and sell larger amounts of BASK with less price impact, making more price gaps practical to capture."},{kind:"p",text:"Together, a larger and more diverse basket and deeper BASK/USDG liquidity can create more arbitrage opportunities and support larger trades. Each opportunity captured through minting or redemption generates BASK fees for ITEM stakers."},{kind:"formula",text:"More backing + more stock diversity + deeper liquidity → more room for arbitrage → more minting and redemption activity → more BASK fees for ITEM stakers."}],examples:[{title:"A simple example: ten stocks in the basket",blocks:[{kind:"p",text:"The basket holds 10 stocks worth $10,000 each, for $100,000 total. With 100,000 BASK outstanding, each BASK represents $1 of backing."},{kind:"p",text:"Two stocks rise 10%. Those holdings are now worth $11,000 each, while the other eight remain worth $10,000 each."},{kind:"p",text:"The basket is now worth $102,000, or $1.02 per BASK. But BASK is still available on the market for $1."},{kind:"p",text:"An arbitrageur:"},{kind:"p",text:"1. Buys 1,000 BASK for $1,000."},{kind:"p",text:"2. Redeems it. The 0.5% fee sends 5 BASK to ITEM staking, and the remaining 995 BASK is burned."},{kind:"p",text:"3. Receives 0.995% of each stock holding:"},{kind:"table",headers:["Holding","Received"],rows:[["Eight unchanged stocks: $99.50 each","$796"],["Two stocks that rose: $109.45 each","$218.90"],["Total stock value received","$1,014.90"]]},{kind:"p",text:"4. Sells those stocks at the illustrated prices, capturing $14.90 before other trading costs and gas."},{kind:"p",text:"The arbitrageur captures the price difference, buying pressure helps move BASK’s market price toward its backing value, and ITEM stakers receive 5 BASK in fees."}]}]},{title:"Reading a real preview",blocks:[{kind:"p",text:`These are independent worked examples, with the ${jo} fee enabled and gas excluded. They are not live quotes. The contract charges the fee when a fee recipient is configured; otherwise it is zero.`},{kind:"p",text:"BASK has 18 decimals. The contract rounds the BASK fee up to the smallest BASK unit, gross minting down to the smallest BASK unit, and each redemption amount down to that stock's smallest unit. The examples use amounts that divide exactly."},{kind:"p",text:"Deposits must pass the vault's price, balance, availability and size-limit checks. A new deposit is rejected if the vault's NAV falls to zero. Your transaction also carries an expiry and minimum amounts: a deposit reverts if it would mint less BASK than your minimum, and a redemption reverts if a stock allocation falls below its supplied minimum. A queued allocation can still satisfy a redemption minimum; the minimum does not guarantee immediate delivery."},{kind:"p",text:"Use the Deposit or Redeem preview for the amounts calculated from the current vault state."}],examples:[]}];function n2({blocks:e}){return c.jsx(c.Fragment,{children:e.map((n,s)=>n.kind==="table"?c.jsxs("table",{className:"bg-table",children:[c.jsx("thead",{children:c.jsx("tr",{children:n.headers.map(r=>c.jsx("th",{scope:"col",children:r},r))})}),c.jsx("tbody",{children:n.rows.map((r,l)=>c.jsx("tr",{children:r.map((u,f)=>f===0?c.jsx("th",{scope:"row",children:u},f):c.jsx("td",{"data-label":n.headers[f],children:u},f))},l))})]},s):n.kind==="formula"?c.jsx("div",{className:"bg-formula",children:n.text},s):c.jsx("p",{children:n.text},s))})}function Fk({example:e}){return c.jsxs("article",{className:"bg-example",children:[c.jsx("h4",{children:e.title}),c.jsx(n2,{blocks:e.blocks})]})}function Yk(){return c.jsxs("section",{className:"panel bg-module","aria-labelledby":"bask-guide-heading",children:[c.jsx("h2",{id:"bask-guide-heading",children:"BASK"}),c.jsx("p",{className:"bg-intro",children:Vk}),Kk.map(e=>c.jsxs("section",{className:"bg-section",children:[c.jsx("h3",{children:e.title}),c.jsx(n2,{blocks:e.blocks}),e.examples.length>0&&c.jsx("div",{className:e.title==="Minting BASK"?"bg-examples bg-deposits":"bg-examples",children:e.examples.map(n=>c.jsx(Fk,{example:n},n.title))})]},e.title))]})}const a2=["ITEM token","ITEM staking","BASK/USDG gauge","ITEM/ETH gauge","Development vesting"];function Th({item:e=!1}){if(!An(Qe))return null;const n=e?`https://app.uniswap.org/positions/add/new?chain=robinhood&protocolVersion=v2¤cyA=NATIVE¤cyB=${Qe.ITEM}`:`https://app.uniswap.org/positions/add/new?chain=robinhood&protocolVersion=v2¤cyA=${Ge.BASK}¤cyB=${Ge.USDG}`;return c.jsx("a",{href:n,target:"_blank",rel:"noreferrer",children:"Add liquidity on Uniswap"})}function Zk(){return An(Qe)?c.jsxs("section",{className:"panel find-item",children:[c.jsx("h2",{children:"Find ITEM"}),gp.map((e,n)=>c.jsxs("p",{children:[a2[n],": ",c.jsx(Hn,{value:Qe[e]})]},e)),c.jsxs("p",{children:["BASK/USDG pool: ",c.jsx(Hn,{value:Ge.BASK_USDG_PAIR}),c.jsx("br",{}),c.jsx(Th,{})]}),c.jsxs("p",{children:["ITEM/ETH pool: ",c.jsx(Hn,{value:Qe.ITEM_WETH_PAIR}),c.jsx("br",{}),c.jsx(Th,{item:!0})]}),c.jsx("p",{children:"ITEM first trades in IMD's launch pool. Liquidity for ITEM rewards goes in the ITEM/ETH Uniswap v2 pool above."}),c.jsx("p",{children:c.jsx("a",{href:"#transparency",children:"Contracts and source on the Transparency page"})})]}):null}function Xk({onAddToWallet:e}){const[n,s]=D.useState(0),r=D.useRef([]);function l(u){const f=u.key==="Home"?0:u.key==="End"?2:u.key==="ArrowRight"?(n+1)%3:u.key==="ArrowLeft"?(n+2)%3:void 0;f!==void 0&&(u.preventDefault(),s(f),r.current[f]?.focus())}return c.jsxs(c.Fragment,{children:[c.jsx(Us,{eyebrow:"Know your basket",title:"Docs",children:"How Basket works, what it costs and what to watch for."}),c.jsx("div",{className:"docs-tabs",role:"tablist","aria-label":"Docs",children:["Docs","Tokenomics","BASK"].map((u,f)=>c.jsx("button",{ref:m=>{r.current[f]=m},type:"button",role:"tab",id:"docs-tab-"+f,"aria-controls":"docs-panel-"+f,"aria-selected":n===f,tabIndex:n===f?0:-1,onClick:()=>s(f),onKeyDown:l,children:u},u))}),c.jsx("div",{id:"docs-panel-0",role:"tabpanel","aria-labelledby":"docs-tab-0",hidden:n!==0,children:c.jsxs("div",{className:"docs-grid",children:[c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"What Basket is"}),c.jsx("p",{children:"One token, BASK, backed by a basket of Stock Tokens held in a vault on Robinhood Chain. Deposit one or more listed Stock Tokens at once and receive BASK. Redeeming BASK pays a share of every stock in the vault."}),c.jsx("p",{children:"The basket has no set weights. Any listed stock can be deposited, in any amount, as long as the vault’s checks pass and the vault stays under its size limit. So the mix is whatever holders have put in, and it changes with every deposit and redemption."}),c.jsx("p",{children:"BASK’s backing moves with every stock in the vault, so its market price can drift from the value behind it. Traders close that gap: they deposit stocks and sell BASK when it trades high, or buy BASK and redeem when it trades low. That keeps BASK near its backing."}),c.jsx("p",{children:"The 0.5% fee on each deposit and redemption goes to ITEM staking, so more trading through the vault means more fees for ITEM."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Deposits"}),c.jsx("p",{children:"Deposits open Sunday 8 pm to Friday 8 pm New York time, closed on US market holidays, redemptions always open"}),c.jsx("p",{children:"Each stock’s price comes from its on-chain feed. Deposits also need at least one listed stock price updated within the last hour, so they close when prices stop until one updates."}),c.jsx("p",{children:"Every stock deposited or held must pass a pool check: a 30-minute pool average within 3% of the feed and enough liquidity. With no pool, the feed must be under 26 hours old. These are the initial settings; the owner can propose changes."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Redemption"}),c.jsx("p",{children:"Always open, never paused. Redeeming BASK pays a share of every stock, retired ones included."}),c.jsxs("p",{children:["Anything not sent at once is kept as owed to the receiver. Only that wallet can claim it on the ",c.jsx("a",{href:"#redeem",children:"Redeem page"}),". Choose a receiver you control."]})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"FAQ"}),c.jsx("h3",{children:"What if a stock can’t be sent when I redeem?"}),c.jsx("p",{children:"Rarely, a stock can’t be sent at that moment (for example its issuer has paused transfers). The vault then keeps it for the receiver, who collects it later with Claim on the Redeem page. Only the receiver wallet can claim, so redeem to a wallet you control, not an exchange deposit address."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"NAV"}),c.jsx("p",{children:"Each unretired stock’s managed quantity times its feed price, added up using that token’s and feed’s decimals. Retired stocks count 0. The vault accounts for accepted deposits and payments; direct donations do not increase NAV until a Resync executes."}),c.jsx("p",{children:"NAV is indicative unless every held stock has price reason OK. It is a feed-based value and may lag the market."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Numbers"}),c.jsx("p",{children:"Fees are 0.5% in and 0.5% out, only once the owner sets a fee recipient through a proposal. Until then there are no fees. The first deposit locks 0.001 BASK forever."}),c.jsx("p",{children:"The size limit starts at $1,000,000, raisable to $10 billion. The initial configuration supports up to 250 stocks. Asset capacity is a setting constrained by the contract’s gas limits."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Safety"}),c.jsx("p",{children:"Owner changes wait 2 days. Only the owner executes them, within 7 days after they become ready. The guardian can cancel them, except its own replacement. Initial listings happen before genesis is finalized."}),c.jsx("p",{children:"Pause, close and a lower size limit act at once. Only the owner can unpause deposits. Ownership transfers in two steps."}),c.jsx("p",{children:"A retired stock counts 0 for new deposits but is still paid out. Retirement is permanent. A retired stock can be removed only with zero managed holdings and zero owed."}),c.jsx("p",{children:"Pause deposits before proposing Resync; unpause after it executes. Stock splits, donations and other balance increases can leave NAV understated until Resync."}),c.jsx("p",{children:"Anyone can flag a shortfall; it can be recognised 7 days later. No one can move the stocks outside the vault’s deposit and redemption rules, mint BASK outside deposits, change the fee rate or upgrade the vault."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"If a stock goes missing"}),c.jsx("p",{children:"The vault keeps its own count of each stock it holds. If the real balance ever falls below that count, for example because the issuer burned or took back tokens, that stock is short. While an unretired stock is short, deposits are paused. Redemptions keep working and pay from the real balance."}),c.jsxs("p",{children:["Anyone can correct the count on the"," ",c.jsx("a",{href:"#losses",children:"Losses page"}),", in two steps. Flag shortfall records the gap and starts a 7-day wait. After the wait, Recognise loss lowers the count by the recorded gap or the current gap, whichever is smaller, and deposits can open again. If the tokens come back during the wait, less or nothing is written off. If the gap grows, flagging again records the larger gap and starts a new 7-day wait."]}),c.jsx("p",{children:"This only corrects the records: the missing tokens were already gone, and redemptions were already paying from what is really there."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Risks"}),c.jsx("p",{children:"Feeds lag the market. The issuer can pause, block, burn or change Stock Tokens. One stock may be most of the vault. Thin pools can be pushed to stop deposits. Smart contracts can fail. Not for US persons."}),c.jsx("p",{children:"Redemption minimums follow the current stock order. Removing an empty retired stock can change that order before execution. Failed transfers remain owed; a permanently blocked stock may never become transferable."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"ITEM"}),c.jsx("p",{children:"ITEM is Basket's reward token. It has two jobs: it pays the people who provide liquidity for BASK and ITEM, and staking it earns the vault's fees. Its supply is fixed at 1,000,000,000 and its reward schedules are written into contracts that have no owner, no pause and no upgrade. Nobody can change the amounts, speed them up or stop them."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Earn ITEM by providing liquidity"}),c.jsxs("p",{children:["Add liquidity to one of the two Uniswap v2 pools, BASK/USDG or ITEM/ETH, and stake the pool token you receive on ",c.jsx("a",{href:"#earn",children:"the Earn page"}),". From that moment ITEM accrues to you every second, in proportion to your share of everything staked in that pool's gauge."]}),c.jsx("p",{children:"There is no lock and no minimum time. Stake more, withdraw some or all, and claim whenever you like, in any order. Claiming pays everything you have earned so far and resets nothing. Unclaimed ITEM stays yours. Withdrawing moves only your pool token, so it always works, even if a claim could not go through."}),c.jsx("p",{children:"The schedule is fixed and front loaded. Each gauge releases its allocation over four years, fastest at the start and slowing in a straight line to zero at the end. The clock only runs while at least one person is staked, so an empty gauge releases nothing and loses nothing."}),c.jsx("div",{className:"item-table",children:c.jsxs("table",{className:"item-gauges",children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Gauge"}),c.jsx("th",{children:"Total ITEM"}),c.jsx("th",{children:"Year 1"}),c.jsx("th",{children:"Year 2"}),c.jsx("th",{children:"Year 3"}),c.jsx("th",{children:"Year 4"})]})}),c.jsxs("tbody",{children:[c.jsxs("tr",{children:[c.jsx("th",{children:"BASK/USDG"}),c.jsx("td",{children:"490,000,000"}),c.jsx("td",{children:"43.75%"}),c.jsx("td",{children:"31.25%"}),c.jsx("td",{children:"18.75%"}),c.jsx("td",{children:"6.25%"})]}),c.jsxs("tr",{children:[c.jsx("th",{children:"ITEM/ETH"}),c.jsx("td",{children:"210,000,000"}),c.jsx("td",{children:"43.75%"}),c.jsx("td",{children:"31.25%"}),c.jsx("td",{children:"18.75%"}),c.jsx("td",{children:"6.25%"})]})]})]})}),c.jsx("p",{children:"Rewards are shared among everyone staked at the time. Fewer stakers means a larger share each; more stakers means a smaller one."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Earn BASK by staking ITEM"}),c.jsxs("p",{children:["The 0.5% fee on each deposit and redemption goes to ITEM staking, so more trading through the vault means more fees for ITEM. Stake ITEM on ",c.jsx("a",{href:"#earn",children:"the Earn page"})," and you receive those fees in BASK, in proportion to your stake."]}),c.jsx("p",{children:"Fees are not paid out the moment they arrive. Each batch is streamed to stakers evenly over 7 days, second by second, and you earn only for the time you are staked. This stops anyone from staking just before a large fee lands and leaving with it. While one stream is running, new fees wait and start their own 7-day stream when it ends."}),c.jsx("p",{children:"Stake and unstake at any time, with no lock or cooldown. Claim BASK pays the BASK you have earned so far. Unclaimed amounts stay owed to you. A reward token that cannot be transferred can never block staking or unstaking; it can only delay its own claim. BASK you claim can be redeemed for the Stock Tokens in the vault or sold in the BASK/USDG pool."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Rewards FAQ"}),c.jsx("h3",{children:"Can I claim whenever I want?"}),c.jsx("p",{children:"Yes. Every claim pays what has accrued to that second."}),c.jsx("h3",{children:"Is anything locked?"}),c.jsx("p",{children:"No. Staked pool tokens and staked ITEM can be withdrawn at any time."}),c.jsx("h3",{children:"What if nobody uses the vault?"}),c.jsx("p",{children:"Then no fees are collected and ITEM stakers earn nothing for that time. Liquidity rewards keep running as long as someone is staked. Nothing is lost either way."}),c.jsx("h3",{children:"Do rewards expire?"}),c.jsx("p",{children:"No. Unclaimed rewards wait for you."}),c.jsx("h3",{children:"Can the team change the rewards?"}),c.jsx("p",{children:"No. The allocations, schedules and the 7-day stream are fixed in the contracts."})]}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"ITEM risks"}),c.jsx("p",{children:"Rewards depend on use. Liquidity rewards fall every day by design, and fee rewards are zero when nobody deposits or redeems. Providing liquidity carries the usual pool risk: if the two tokens move apart in price, you can end up with less value than holding them. ITEM's price can fall. The contracts cannot be changed or paused, which also means a defect could not be fixed."})]}),n===0&&c.jsx(Zk,{}),c.jsxs("section",{className:"panel",children:[c.jsx("h2",{children:"Find Basket"}),c.jsx("p",{children:"BaskVault on Robinhood Chain:"}),c.jsx(Hn,{value:It}),c.jsx("p",{children:c.jsx("a",{href:"https://x.com/Basket_IMD",target:"_blank",rel:"noreferrer",children:"Basket Protocol on X"})}),c.jsx("p",{children:c.jsx("a",{href:"https://t.me/basket_protocol",target:"_blank",rel:"noreferrer",children:"Basket Protocol on Telegram"})}),c.jsx("p",{children:c.jsx("a",{href:"https://medium.com/@protocolbasket",target:"_blank",rel:"noreferrer",children:"Basket Protocol on Medium"})}),c.jsxs("p",{children:["Contact: ",c.jsx("a",{href:"mailto:protocolbasket@gmail.com",children:"protocolbasket@gmail.com"})]}),c.jsx("p",{children:c.jsx("button",{onClick:e,children:"Add BASK to MetaMask"})}),c.jsx("p",{children:"Asks your wallet to list BASK with its logo. No transaction."})]})]})}),c.jsx("div",{id:"docs-panel-1",role:"tabpanel","aria-labelledby":"docs-tab-1",hidden:n!==1,children:n===1&&c.jsx(Lk,{})}),c.jsx("div",{id:"docs-panel-2",role:"tabpanel","aria-labelledby":"docs-tab-2",hidden:n!==2,children:n===2&&c.jsx(Yk,{})})]})}function Qk({snapshot:e,wallet:n}){const s=e.assets.filter(m=>m.short&&m.balanceReadable),[r,l]=D.useState({}),[u,f]=D.useState(!1);return D.useEffect(()=>{let m=!0;return l({}),f(!0),Ln(s.flatMap(p=>[cn(p.token,"balanceOf",[It]),Ne("deficits",[p.token])])).then(p=>{if(!m)return;const y={};s.forEach((b,w)=>{const g=p[w*2],S=p[w*2+1],T=g.ok&&b.totalOwed!==void 0?g.value>b.totalOwed?g.value-b.totalOwed:0n:void 0;y[b.token]={shortfall:T!==void 0&&b.managed!==void 0?b.managed>T?b.managed-T:0n:void 0,amount:S.ok?S.value[0]:void 0,flaggedAt:S.ok?S.value[1]:void 0}}),l(y),f(!1)}),()=>{m=!1}},[e.loadedAt]),c.jsxs(c.Fragment,{children:[c.jsx(Us,{eyebrow:"Accounting health",title:"Losses",children:"Anyone can flag a shortfall and recognise a recorded loss after seven days. Retired stocks are included."}),c.jsx(br,{children:"Recognition reduces managed funds by the smaller of the recorded and current shortfall. An increased flag starts a new seven-day wait."}),!s.length&&c.jsx(vp,{title:e.loading?"Reading...":e.complete?"No readable stock shortfalls":"Stock shortfalls are unreadable",children:"Shortfalls appear here when a readable stock balance is below the vault’s managed amount after reserving outstanding claims."}),c.jsx("div",{className:"two-col",children:s.map(m=>{const p=r[m.token],y=p?.flaggedAt!==void 0&&p?.amount!==void 0&&p.amount>0n?p.flaggedAt+7n*86400n:void 0;return c.jsxs("article",{className:"panel",children:[c.jsxs("div",{className:"stock-top",children:[c.jsx("h2",{children:c.jsx("bdi",{children:m.symbol})}),c.jsx("span",{className:"badge",children:m.retired?"Retired · short":"Short"})]}),c.jsxs("dl",{children:[c.jsxs("div",{children:[c.jsx("dt",{children:"Current shortfall"}),c.jsx("dd",{children:u?"Reading...":pt(p?.shortfall,m.tokenDecimals)})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Recorded shortfall"}),c.jsx("dd",{children:u?"Reading...":pt(p?.amount,m.tokenDecimals)})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Recognition available"}),c.jsx("dd",{children:u?"Reading...":p?.amount===0n?"Not flagged; seven days after flagging":ui(y)})]})]}),c.jsx(ul,{role:"anyone",snapshot:e}),c.jsxs("div",{className:"button-row",children:[c.jsx(Xa,{wallet:n,snapshot:e,label:"Flag shortfall",scope:`Loss flag: ${m.symbol} · ${m.token}`,getSpec:()=>Ne("flagDeficit",[m.token])}),c.jsx(Xa,{wallet:n,snapshot:e,label:"Recognise loss",scope:`Loss recognition: ${m.symbol} · ${m.token}`,disabled:y===void 0||BigInt(Math.floor(Date.now()/1e3))<y,disabledReason:u?"Reading...":y===void 0?"No readable flag yet. Flag the shortfall first, or retry vault if unreadable.":`Wait until ${ui(y)} to recognise this loss.`,getSpec:()=>Ne("recognizeLoss",[m.token])})]})]},m.token)})}),Object.keys(n.progress).filter(m=>m.startsWith("Loss ")).map(m=>c.jsx(ea,{wallet:n,scope:m},m)),e.assets.filter(m=>!m.balanceReadable).map(m=>c.jsxs("p",{className:"error",children:[c.jsx("bdi",{children:m.symbol}),": shortfall unreadable. Refresh to retry."]},m.token))]})}function hu(e,n=BigInt(Math.floor(Date.now()/1e3))){return typeof e=="bigint"&&e>0n&&e<=n&&n-e<=26n*60n*60n}function Jk(e,n,s,r,l,u,f,m){if(!Array.isArray(e)||typeof e[0]!="bigint"||typeof e[1]!="bigint"||e[0]<=0n||e[1]<=0n||typeof n!="string"||!Array.isArray(u)||u.length!==5||!u.every(g=>typeof g=="bigint")||u[1]<=0n||!hu(u[3],m)||u[4]<u[0]||typeof f!="number"||!Number.isInteger(f)||f<0||f>255)return;const p=n.toLowerCase()===s.toLowerCase();if(!p&&n.toLowerCase()!==r.toLowerCase())return;const y=e[p?0:1],w=e[p?1:0]*u[1]*10n**36n/(y*10n**BigInt(l+f));return w>0n?w:void 0}function Wk(e,n=BigInt(Math.floor(Date.now()/1e3))){if(!e||e.loading||!e.loadedAt||!e.complete||n*1000n-BigInt(e.loadedAt)>26n*60n*60n*1000n)return;const s=e.globals.totalSupply;if(typeof s!="bigint"||s<=0n||e.assets.some(l=>l.managed!==0n&&(l.answer===void 0||l.answer<=0n||!hu(l.updatedAt,n))))return;const{nav:r}=Du(e.assets,e.complete);return r!==void 0&&r>=0n?r*10n**18n/s:void 0}function M0(e,n){if(e===void 0||e<0n)return"—";const s=10n**BigInt(18-n);if(e>0n&&e<s)return n===2?"<$0.01":"<$0.000001";const r=(e+s/2n)/s,l=10n**BigInt(n);return"$"+(r/l).toLocaleString("en-US")+"."+(r%l).toString().padStart(n,"0")}function qa(e,n=18,s=!1){const[r,l=""]=Pa(e,n).split("."),u=l.slice(0,s?n:6).replace(/0+$/,"");return e>0n&&BigInt(r)===0n&&!u?"<0.000001":BigInt(r).toLocaleString("en-US")+(u?"."+u:"")}function Yc(e){if(!/^(?:0|[1-9]\d*)(?:\.\d{1,18})?$/.test(e))return;const n=pv(e,18);return n>0n&&n<2n**256n?n:void 0}function ej(e,n){if(!n||!e)return"0%";const s=e*100n*10n**18n/n;return(s===0n?"<0.000001":qa(s))+"%"}function tj(e,n,s,r){if(n<=0n||s<=0n||r<=0n)throw new ce("Pool not seeded yet.");if(e<=0n||e>=2n**256n)throw new ce("Enter an amount.");const l=e*s/n,u=e*995n/1000n,f=l*995n/1000n;if(l<=0n||l>=2n**256n||u<=0n||f<=0n)throw new ce("Enter an amount.");const m=e*r/n,p=l*r/s;return{matched:l,minimumA:u,minimumB:f,poolTokens:m<p?m:p}}function C0(e,n){if(n<=0n||e===0n)return"0";const s=e/n;return s===0n&&e>0n?"<0.000001":qa(s)}function nj(e,n,s){if(n===void 0||s===void 0||s<=0n||n<0n||e<0n)return"Unavailable";const r=e*n,l=r/(s*10n**16n);return r>0n&&l===0n?"<$0.01":"$"+(l/100n).toLocaleString("en-US")+"."+(l%100n).toString().padStart(2,"0")}async function s2(e,n,s=Qe,r=Ln,l=u=>nt.getBalance({address:u})){if(!An(s))return null;const u=[],f=(b,w,g,S,T=[])=>u.push([b,{address:w,abi:g,functionName:S,args:T}]);for(const[b,w,g]of[["bask",s.BASK_USDG_GAUGE,Ge.BASK_USDG_PAIR],["eth",s.ITEM_ETH_GAUGE,s.ITEM_WETH_PAIR]]){for(const S of["started","pair","totalStaked","released","remaining","rate"])f(b+"."+S,w,Bs,S);if(n){for(const S of["staked","earned"])f(b+"."+S,w,Bs,S,[n]);f(b+".balance",g,Sn,"balanceOf",[n]),f(b+".allowance",g,Sn,"allowance",[n,w])}for(const S of["getReserves","token0","totalSupply"])f(b+"."+(S==="totalSupply"?"poolSupply":S),g,Cv,S)}if(f("staking.totalStaked",s.ITEM_STAKING,yr,"totalStaked"),f("staking.pot",Ge.BASK,Sn,"balanceOf",[s.ITEM_STAKING]),n){f("staking.staked",s.ITEM_STAKING,yr,"staked",[n]),f("staking.balance",s.ITEM,Sn,"balanceOf",[n]),f("staking.allowance",s.ITEM,Sn,"allowance",[n,s.ITEM_STAKING]),f("staking.BASK",s.ITEM_STAKING,yr,"earned",[n,Ge.BASK]);for(const[b,w,g]of[["bask","token",Ge.BASK],["bask","quote",Ge.USDG],["eth","token",s.ITEM]])g!==s.ITEM&&f(b+"."+w+"Balance",g,Sn,"balanceOf",[n]),f(b+"."+w+"Allowance",g,Sn,"allowance",[n,Ge.V2_ROUTER])}const[m,p]=await Promise.all([r(u.map(([,b])=>b)),n?l(n).catch(()=>{}):void 0]),y=Object.fromEntries(m.flatMap((b,w)=>{if(!b.ok)return[];const g=u[w][1].functionName;if(g==="getReserves"){if(!Array.isArray(b.value)||b.value.length!==3||typeof b.value[0]!="bigint"||typeof b.value[1]!="bigint"||typeof b.value[2]!="number")return[];const T=u[w][0].split(".")[0];return[[T+".reserve0",b.value[0]],[T+".reserve1",b.value[1]]]}const S=g==="started"||g==="funded"?"boolean":g==="pair"||g==="token0"?"string":"bigint";return typeof b.value!==S?[]:[[u[w][0],b.value]]}));if(n&&(typeof p=="bigint"&&(y["eth.quoteBalance"]=p),y["staking.balance"]!==void 0&&(y["eth.tokenBalance"]=y["staking.balance"])),!m.some(b=>b.ok))throw new Error("ITEM figures: unreadable. Retry.");return y}let No;function aj(e,n,s=e){const[r,l]=D.useState(null),[u,f]=D.useState(null),[m,p]=D.useState(!1),[y,b]=D.useState(!1),w=D.useRef(0),[g,S]=D.useState(""),T=e+":"+(n??"")+":"+s,x=D.useRef(T);D.useLayoutEffect(()=>(x.current=T,()=>{x.current=void 0}),[T]);const j=D.useCallback(async()=>{if(x.current!==e+":"+(n??"")+":"+s)return No===j?void 0:No?.();const M=++w.current;if(f(null),!!An()){b(!0),p(!1);try{const I=e==="earn"?await s2(e,n):null,O=await sj(e==="earn"?I??{}:void 0);w.current===M&&(l(I),f(O),S(e+":"+(n??"")+":"+s))}catch{w.current===M&&(p(!0),l(null),f(null))}finally{w.current===M&&b(!1)}}},[e,n,s]);return D.useLayoutEffect(()=>(No=j,()=>{No===j&&(No=void 0)}),[j]),D.useEffect(()=>(j(),()=>{w.current++}),[j]),{figures:g===T?r:null,prices:g===T?u:null,failed:m,loading:y,refresh:j}}async function sj(e,n=Qe,s=Ln,r=BigInt(Math.floor(Date.now()/1e3))){if(!An(n))return{};const l=[];for(const p of[Ge.BASK_USDG_PAIR,n.ITEM_WETH_PAIR])if(!e)for(const y of["getReserves","token0"])l.push({address:p,abi:Cv,functionName:y,args:[]});for(const p of[Cg.USDG,Cg.ETH])for(const y of["latestRoundData","decimals"])l.push(Ha(p,y));const u=await s(l).catch(()=>[]),f=p=>u[p]?.ok?u[p].value:void 0,m={};for(const[p,y,b,w,g,S]of[[0,"bask",Ge.BASK,Ge.USDG,6,"bask"],[1,"eth",n.ITEM,Ge.WETH,18,"item"]]){const T=e?[e[y+".reserve0"],e[y+".reserve1"]]:f(p*2),x=e?e[y+".token0"]:f(p*2+1),j=f((e?0:4)+p*2),M=f((e?0:4)+p*2+1);m[S]=Jk(T,x,b,w,g,j,M,r),m[S]!==void 0&&(m[S==="bask"?"baskUpdatedAt":"itemUpdatedAt"]=j[3])}return m}function O0({prefix:e,figures:n,wallet:s,refresh:r,snapshot:l}){const[u,f]=D.useState(""),[m,p]=D.useState(""),[y,b]=D.useState(""),[w,g]=D.useState(0),S=D.useRef([]),T=D.useRef(!1),x=D.useRef(0);D.useLayoutEffect(()=>()=>{x.current++},[s.account,s.chainId]);const[j,M]=D.useState(!1),[I,O]=D.useState(""),B=ye=>n[e+"."+ye],A=(...ye)=>ye.every(ke=>n[e+"."+ke]!==void 0),z="ITEM figures: unreadable. Retry.",C=e!=="staking",Z=C?["Add liquidity","Stake","Claim/Withdraw","Pool stats"]:["Stake","Claim/Withdraw","Staking stats"],ee=C?1:0,J=C?2:1,K=C?3:2;function X(ye){const ke=ye.key==="Home"?0:ye.key==="End"?Z.length-1:ye.key==="ArrowRight"||ye.key==="ArrowDown"?(w+1)%Z.length:ye.key==="ArrowLeft"||ye.key==="ArrowUp"?(w+Z.length-1)%Z.length:void 0;ke!==void 0&&(ye.preventDefault(),g(ke),S.current[ke]?.focus())}const oe=e==="bask"?"BASK/USDG pool":e==="eth"?"ITEM/ETH pool":"ITEM staking",he=e==="bask"?Ge.BASK_USDG_PAIR:Qe.ITEM_WETH_PAIR,ae=!C||A("started"),R=!C||n[e+".started"]===!0,V=C&&R&&A("pair")&&String(n[e+".pair"]).toLowerCase()!==he.toLowerCase(),Y=B("balance")??0n,se=B("staked")??0n,le=B("allowance")??0n,k=Yc(u),P=Yc(m),ie=s.account?s.chainId!==4663?"Switch to Robinhood Chain to continue.":s.busy||j||s.unresolved?"Another transaction is pending. Finish it in your wallet or wait for its receipt.":V?"This gauge's pool does not match the pool listed here. Staking is off.":"":"Connect a wallet to stake.",H=ie||(!ae||!A("balance","allowance")||C&&!A("pair")?z:R?k?k>Y?"More than your balance.":"":"Enter an amount.":"Rewards for this pool have not started yet."),W=ie||(A("staked")?P?P>se?"More than you have staked.":"":"Enter an amount.":z),ue=e==="staking"?"item":e,pe=l?Du(l.assets,l.complete):void 0,we=!C&&s.account?l?.loading?"Reading...":A("BASK")?nj(B("BASK"),pe?.nav,l?.globals.totalSupply):"Unavailable":"Unavailable",me=e==="bask"?"BASK":"ITEM",Oe=e==="bask"?"USDG":"ETH",Te=Yc(y),ct=C&&A("reserve0","reserve1","poolSupply","token0"),dt=ct&&B("reserve0")>0n&&B("reserve1")>0n&&B("poolSupply")>0n;function Je(ye,ke){const Ye=e==="bask"?Ge.BASK:Qe.ITEM,yt=e==="bask"?Ge.USDG:Ge.WETH,Ke=String(ye[e+".token0"]).toLowerCase();if(Ke!==Ye.toLowerCase()&&Ke!==yt.toLowerCase())throw new ce("ITEM figures: unreadable. Retry.");const at=Ke===Ye.toLowerCase();return tj(ke,ye[e+(at?".reserve0":".reserve1")],ye[e+(at?".reserve1":".reserve0")],ye[e+".poolSupply"])}let rt,Ot="";if(C&&dt&&Te)try{rt=Je(n,Te)}catch(ye){Ot=Qc(ye)}const Kt=s.account?ie||(!ct||!A("tokenBalance","quoteBalance","tokenAllowance")||e==="bask"&&!A("quoteAllowance")?z:dt?Te?Ot||(Te>B("tokenBalance")||(rt?.matched??0n)>B("quoteBalance")?"More than your balance.":""):"Enter an amount.":"Pool not seeded yet."):"Connect a wallet to add liquidity.",pn=!!Te&&B("tokenAllowance")<Te,Ft=e==="bask"&&!!rt&&B("quoteAllowance")<rt.matched;async function Bt(ye,ke){if(!T.current){T.current=!0,M(!0),O("");try{await s.send(bh(ye,ke),e,ye.includes("Approve")?"Approve":ye.includes("Unstake")?"Unstake":ye.includes("Withdraw")?"Withdraw":ye.includes("Stake")?"Stake":ye==="claimBask"?"Claim BASK":"Claim ITEM",r)}catch(Ye){O(Qc(Ye))}finally{T.current=!1,M(!1)}}}async function Pt(ye){if(T.current)return;const ke=x.current;T.current=!0,M(!0),O("");try{const Ye=s.account;if(!Ye)throw new ce("Connect a wallet to add liquidity.");const yt=Yc(y);if(!yt)throw new ce("Enter an amount.");const Ke=await s2("earn",Ye);if(ke!==x.current)return;if(!Ke)throw new ce("ITEM figures: unreadable. Retry.");if(!["started","pair","token0","reserve0","reserve1","poolSupply","tokenBalance","quoteBalance","tokenAllowance",...e==="bask"?["quoteAllowance"]:[]].every(de=>Ke[e+"."+de]!==void 0))throw new ce("ITEM figures: unreadable. Retry.");if(Ke[e+".started"]&&String(Ke[e+".pair"]).toLowerCase()!==he.toLowerCase())throw new ce("This gauge's pool does not match the pool listed here. Staking is off.");const at=Je(Ke,yt);if(yt>Ke[e+".tokenBalance"]||at.matched>Ke[e+".quoteBalance"])throw new ce("More than your balance.");if(ye==="add"&&at.matched!==rt?.matched)throw await r(),new ce("The request failed. Please retry.");const aa=ye==="token"?e==="bask"?"baskLiquidityApprove":"itemLiquidityApprove":ye==="quote"?"usdgLiquidityApprove":e==="bask"?"baskAddLiquidity":"ethAddLiquidity";if(ye==="add"&&(Ke[e+".tokenAllowance"]<yt||e==="bask"&&Ke[e+".quoteAllowance"]<at.matched))throw await r(),new ce("The request failed. Please retry.");const L=bh(aa,ye==="quote"?at.matched:yt,Qe,ye==="add"?{user:Ye,matched:at.matched,minimumA:at.minimumA,minimumB:at.minimumB,deadline:cl()}:void 0);await s.send(L,e,ye==="add"?"Add liquidity":"Approve "+(ye==="token"?me:Oe),r)}catch(Ye){O(Qc(Ye))}finally{T.current=!1,M(!1)}}const Tt=(ye,ke,Ye,yt=!1,Ke=18)=>c.jsxs("div",{children:[c.jsx("dt",{children:ye}),c.jsx("dd",{"data-figure":e+"."+ke,children:A(ke)?qa(B(ke),Ke,yt)+" "+Ye:"Unavailable"})]});return c.jsxs("section",{className:"panel earn-card refined-card refined-b3","data-item-card":e,children:[c.jsx("div",{className:"refined-heading",children:c.jsx("h3",{children:oe})}),ae&&!R&&c.jsx("p",{className:"note",children:"Rewards for this pool have not started yet."}),V&&c.jsx("p",{className:"note warning",children:"This gauge's pool does not match the pool listed here. Staking is off."}),s.account?c.jsxs("dl",{className:"item-figures refined-personal",children:[Tt("You have staked","staked",C?"pool tokens":"ITEM",C),C?Tt("Your ITEM earned","earned","ITEM"):Tt("Your BASK earned","BASK","BASK")]}):c.jsx("p",{className:"refined-empty",children:"Connect a wallet to view your position."}),c.jsxs("div",{className:"refined-workspace",children:[c.jsx("div",{className:"docs-tabs refined-tabs",role:"tablist","aria-label":oe,children:Z.map((ye,ke)=>c.jsx("button",{ref:Ye=>{S.current[ke]=Ye},type:"button",role:"tab",id:e+"-tab-"+ke,"aria-controls":e+"-panel-"+ke,"aria-selected":w===ke,tabIndex:w===ke?0:-1,onClick:()=>g(ke),onKeyDown:X,children:ye==="Claim/Withdraw"?c.jsxs(c.Fragment,{children:["Claim/",c.jsx("wbr",{}),"Withdraw"]}):ye},ye))}),c.jsxs("div",{className:"refined-panels",children:[C&&c.jsx("div",{className:"refined-tab-panel",id:e+"-panel-0",role:"tabpanel","aria-labelledby":e+"-tab-0",hidden:w!==0,children:c.jsxs("div",{className:"item-action","data-liquidity":e,children:[c.jsxs("p",{className:"refined-explainer",children:[c.jsxs("strong",{children:["This pool takes both ",me," and ",Oe,"."]})," Enter how much ",me," you want to add. The required ",Oe," amount is calculated automatically using the pool's current ratio. You must have enough of both tokens to continue."]}),c.jsxs("div",{className:"refined-token-pair",children:[c.jsxs("div",{className:"refined-token-entry",children:[c.jsxs("label",{htmlFor:e+"-add",children:[me," to add"]}),c.jsx("input",{id:e+"-add",inputMode:"decimal",value:y,onChange:ye=>b(ye.target.value),disabled:!!ie||!dt}),s.account&&c.jsx("dl",{className:"item-figures refined-balance",children:c.jsxs("div",{children:[c.jsxs("dt",{children:[me," in your wallet"]}),c.jsx("dd",{"data-figure":e+".tokenBalance",children:A("tokenBalance")?qa(B("tokenBalance"))+" "+me:"Unavailable"})]})}),c.jsx("button",{type:"button",className:"refined-max",onClick:()=>b(Pa(B("tokenBalance")??0n,18)),disabled:!!ie||!dt||!A("tokenBalance"),children:"Use full balance"})]}),c.jsxs("div",{className:"refined-token-entry",children:[c.jsx("dl",{className:"item-figures refined-matched",children:c.jsxs("div",{children:[c.jsxs("dt",{children:[Oe," required ",c.jsx("span",{children:"Calculated"})]}),c.jsxs("dd",{"data-figure":e+".matched",children:[qa(rt?.matched??0n,e==="bask"?6:18)," ",Oe]})]})}),s.account&&c.jsx("dl",{className:"item-figures refined-balance",children:c.jsxs("div",{children:[c.jsxs("dt",{children:[Oe," in your wallet"]}),c.jsx("dd",{"data-figure":e+".quoteBalance",children:A("quoteBalance")?qa(B("quoteBalance"),e==="bask"?6:18)+" "+Oe:"Unavailable"})]})})]})]}),c.jsx("dl",{className:"item-figures refined-estimate",children:c.jsxs("div",{children:[c.jsx("dt",{children:"You receive about"}),c.jsxs("dd",{"data-figure":e+".liquidityEstimate",children:[qa(rt?.poolTokens??0n,18,!0)," pool tokens"]})]})}),c.jsxs("div",{className:"item-buttons",children:[pn&&c.jsxs("button",{type:"button",disabled:!!Kt,onClick:()=>void Pt("token"),children:["Approve ",me]}),Ft&&c.jsx("button",{type:"button",disabled:!!Kt,onClick:()=>void Pt("quote"),children:"Approve USDG"}),c.jsx("button",{type:"button",className:"primary",disabled:!!Kt||pn||Ft,onClick:()=>void Pt("add"),children:"Add liquidity"})]}),Kt&&c.jsx("p",{className:"disabled-reason",children:Kt}),c.jsxs("details",{className:"refined-details",children:[c.jsx("summary",{children:"Details"}),c.jsx("p",{children:"Minimums 0.5% under these amounts; the add fails instead of filling at a worse ratio."}),c.jsx("div",{className:"item-pool",children:c.jsx(Th,{item:e==="eth"})})]})]})}),c.jsxs("div",{className:"refined-tab-panel",id:e+"-panel-"+ee,role:"tabpanel","aria-labelledby":e+"-tab-"+ee,hidden:w!==ee,children:[c.jsx("p",{className:"refined-explainer",children:C?"Stake your pool tokens to earn ITEM.":"Stake ITEM to earn BASK."}),s.account&&c.jsx("dl",{className:"item-figures refined-available",children:Tt(C?"Pool tokens in your wallet":"ITEM in your wallet","balance",C?"pool tokens":"ITEM",C)}),c.jsxs("div",{className:"item-action",children:[c.jsx("label",{htmlFor:e+"-stake",children:C?"Pool tokens to stake":"ITEM to stake"}),c.jsx("input",{id:e+"-stake",inputMode:"decimal",value:u,onChange:ye=>f(ye.target.value),disabled:!!ie||!R}),c.jsx("button",{type:"button",onClick:()=>f(Pa(Y,18)),disabled:!!ie||!R||!A("balance"),children:"Use full balance"}),c.jsxs("div",{className:"item-buttons",children:[(!k||le<k)&&c.jsx("button",{type:"button",disabled:!!H,onClick:()=>void Bt(ue+"Approve",k),children:"Approve"}),c.jsx("button",{type:"button",className:"primary",disabled:!!H||le<(k??0n),onClick:()=>void Bt(ue+"Stake",k),children:"Stake"})]}),H&&c.jsx("p",{className:"disabled-reason",children:H})]})]}),c.jsxs("div",{className:"refined-tab-panel",id:e+"-panel-"+J,role:"tabpanel","aria-labelledby":e+"-tab-"+J,hidden:w!==J,children:[c.jsxs("div",{className:"refined-rewards",children:[c.jsx("h4",{children:"Your rewards"}),s.account&&c.jsxs("dl",{className:"item-figures refined-manage-figures",children:[c.jsxs("div",{children:[c.jsx("dt",{children:"Your share"}),c.jsx("dd",{"data-figure":e+".share",children:A("staked","totalStaked")?ej(se,B("totalStaked")):"Unavailable"})]}),C?c.jsxs("div",{children:[c.jsx("dt",{children:"Your ITEM per day"}),c.jsx("dd",{"data-figure":e+".daily",children:A("rate","staked","totalStaked")?C0(B("rate")*86400n*se,B("totalStaked"))+" ITEM a day":"Unavailable"})]}):c.jsxs(c.Fragment,{children:[c.jsxs("div",{children:[c.jsx("dt",{children:"Your estimated BASK"}),c.jsx("dd",{"data-figure":"staking.estimatedBASK",children:A("pot","staked","totalStaked","BASK")?C0(B("pot")*se,B("totalStaked"))+" BASK (of which "+qa(B("BASK"))+" already earned)":"Unavailable"})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"Estimated value in USD"}),c.jsxs("dd",{"data-figure":"staking.USDValue",children:[we,pe?.indicative&&we!=="Unavailable"&&we!=="Reading..."?" (indicative)":""]})]})]})]}),!C&&s.account&&c.jsx("p",{className:"refined-caption",children:"Unclaimed rewards, paid in BASK. The USD estimate uses the vault's last read, not a sale price."}),c.jsx("div",{className:"item-claims",children:(C?[["Claim ITEM",ue+"Claim","earned"]]:[["Claim BASK","claimBask","BASK"]]).map(([ye,ke,Ye])=>c.jsxs("div",{children:[c.jsx("button",{type:"button",disabled:!!ie||!A(Ye)||!B(Ye),onClick:()=>void Bt(ke),children:ye}),!ie&&(A(Ye)?!B(Ye)&&c.jsx("p",{className:"disabled-reason",children:"Nothing to claim yet."}):c.jsx("p",{className:"disabled-reason",children:z}))]},ke))})]}),c.jsxs("details",{className:"refined-withdraw",children:[c.jsx("summary",{children:C?"Withdraw pool tokens":"Unstake ITEM"}),c.jsx("p",{className:"refined-caption",children:C?"Withdraw returns your pool tokens. Claim ITEM separately.":"Unstake returns your ITEM. Claim BASK separately."}),c.jsxs("div",{className:"item-action",children:[c.jsx("label",{htmlFor:e+"-withdraw",children:C?"Pool tokens to withdraw":"ITEM to unstake"}),c.jsx("input",{id:e+"-withdraw",inputMode:"decimal",value:m,onChange:ye=>p(ye.target.value),disabled:!!ie}),c.jsx("button",{type:"button",onClick:()=>p(Pa(se,18)),disabled:!!ie||!A("staked"),children:"Use full staked amount"}),c.jsx("div",{className:"item-buttons",children:c.jsx("button",{type:"button",disabled:!!W,onClick:()=>void Bt(ue+(C?"Withdraw":"Unstake"),P),children:C?"Withdraw":"Unstake"})}),W&&c.jsx("p",{className:"disabled-reason",children:W})]})]})]}),c.jsxs("div",{className:"refined-tab-panel",id:e+"-panel-"+K,role:"tabpanel","aria-labelledby":e+"-tab-"+K,hidden:w!==K,children:[c.jsx("h4",{children:C?"Global release":"Staking overview"}),c.jsxs("dl",{className:"item-figures refined-global",children:[C&&c.jsxs(c.Fragment,{children:[Tt("Released so far","released","ITEM"),Tt("Left to release","remaining","ITEM"),c.jsxs("div",{children:[c.jsx("dt",{children:"Released per day now"}),c.jsx("dd",{"data-figure":e+".rate",children:A("rate")?qa(B("rate")*86400n)+" ITEM a day":"Unavailable"})]}),c.jsxs("div",{children:[c.jsx("dt",{children:"ITEM per day per pool token"}),c.jsx("dd",{"data-figure":e+".dailyPerToken",children:A("rate","totalStaked")?C0(B("rate")*86400n*10n**18n,B("totalStaked"))+" ITEM a day":"Unavailable"})]})]}),Tt("Staked by everyone","totalStaked",C?"pool tokens":"ITEM",C),!C&&Tt("BASK in the fee pot","pot","BASK")]}),c.jsx("p",{className:"refined-caption",children:C?"The daily rate falls over the four years by design and is shared by everyone staked.":"Fees stream to stakers over 7 days; your share is applied to what is in the pot today."}),C&&c.jsx("div",{className:"item-pool refined-address",children:c.jsxs("p",{children:["Pool ",c.jsx(Hn,{value:he})]})})]})]})]}),c.jsx(ea,{wallet:s,scope:e}),c.jsx("p",{className:"error",role:"alert",children:I})]})}function ij({wallet:e,snapshot:n,data:s}){const[r,l]=D.useState("bask");return D.useLayoutEffect(()=>{e.itemPending()},[e.account]),c.jsxs(c.Fragment,{children:[c.jsx(Us,{eyebrow:"Rewards counter",title:"Earn",character:{kind:"earn",src:"art/character/earn.webp",width:453,height:1e3,alt:"Store worker waving goodbye with a big smile",line:"same time tomorrow?"},children:"Stake pool tokens to earn ITEM. Stake ITEM to earn the vault's fees in BASK."}),An()&&c.jsxs("div",{className:"item-refresh",children:[c.jsx("button",{type:"button",disabled:s.loading||e.busy,onClick:()=>{e.itemPending(),s.refresh(),n.retry?.()},children:s.failed?"Retry":"Refresh"}),s.loading&&c.jsx("p",{role:"status",children:"Reading..."}),s.failed&&c.jsx("p",{role:"alert",children:"ITEM figures: unreadable. Retry."})]}),c.jsxs("section",{className:"item-section refined-focused-section",children:[c.jsx("h2",{children:"Earn ITEM by providing liquidity"}),c.jsx("p",{children:"Add liquidity to a pool, then stake the pool tokens you receive. There is no lock: withdraw and claim whenever you like."}),s.figures&&c.jsxs(c.Fragment,{children:[c.jsxs("fieldset",{className:"refined-pool-picker pool-buttons",children:[c.jsx("legend",{className:"price-sr-only",children:"Pool"}),[["bask","BASK/USDG"],["eth","ITEM/ETH"]].map(([u,f])=>c.jsxs("label",{children:[c.jsx("input",{type:"radio",name:"earn-pool",value:u,checked:r===u,onChange:()=>l(u)}),c.jsx("span",{children:f})]},u))]}),c.jsxs("div",{className:"earn-gauges refined-gauges refined-focused-gauges",children:[c.jsx("div",{"data-pool-view":"bask",hidden:r!=="bask",children:c.jsx(O0,{prefix:"bask",figures:s.figures,wallet:e,refresh:s.refresh},"bask-"+e.account)}),c.jsx("div",{"data-pool-view":"eth",hidden:r!=="eth",children:c.jsx(O0,{prefix:"eth",figures:s.figures,wallet:e,refresh:s.refresh},"eth-"+e.account)})]})]})]}),c.jsxs("section",{className:"item-section",children:[c.jsx("h2",{children:"Earn BASK by staking ITEM"}),c.jsx("p",{children:"Fees reach stakers as a 7-day stream, second by second."}),s.figures&&c.jsx(O0,{prefix:"staking",figures:s.figures,wallet:e,refresh:s.refresh,snapshot:n},"staking-"+e.account)]}),c.jsxs("p",{className:"item-links",children:[c.jsx("a",{href:"#docs",children:"How rewards work"}),c.jsx("a",{href:"#transparency",children:"Contracts and source"})]})]})}function rj({prices:e,snapshot:n}){const s=hu(e?.baskUpdatedAt)?e?.bask:void 0,r=hu(e?.itemUpdatedAt)?e?.item:void 0;return c.jsxs("div",{className:"token-prices",children:[c.jsxs("div",{className:"token-price-values",children:[c.jsxs("span",{className:"token-price",children:[c.jsxs("svg",{role:"img","aria-label":"BASK",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",width:"1024",height:"1024",children:[c.jsx("rect",{width:"1024",height:"1024",fill:"#df2029"}),c.jsxs("g",{transform:"translate(176 218) scale(8.4)",fill:"none",stroke:"#ffdb29",strokeWidth:"7",strokeLinejoin:"round",strokeLinecap:"round",children:[c.jsx("path",{d:"M9 28h62L63 62H17L9 28Z"}),c.jsx("path",{d:"M23 28 35 8M57 28 45 8M28 39v12M40 39v12M52 39v12M6 28h68"})]})]}),c.jsx("b",{children:"BASK"}),c.jsxs("span",{children:["Pool ",c.jsx("strong",{"data-price":"bask-pool",children:M0(s,2)})," · NAV ",c.jsx("strong",{"data-price":"bask-nav",children:M0(e?Wk(n):void 0,2)})]})]}),c.jsxs("span",{className:"token-price",children:[c.jsx("svg",{role:"img","aria-label":"ITEM",xmlns:"http://www.w3.org/2000/svg",width:"1024",height:"1024",viewBox:"0 0 1024 1024",children:c.jsxs("g",{transform:"matrix(.65 0 0 .65 93.4 79.75)",children:[c.jsx("path",{fill:"#ffdb29",fillRule:"evenodd",d:"M682 187C714 152 755 137 803 143L1083 180C1129 186 1152 221 1158 259L1197 550C1202 590 1189 616 1162 641L547 1155C515 1182 481 1195 447 1190C421 1186 394 1175 374 1156L119 907C81 869 80 815 103 769C109 756 120 742 133 729ZM1022 392A69 69 0 1 0 884 392A69 69 0 1 0 1022 392Z"}),c.jsx("path",{fill:"#df2029",fillRule:"evenodd",d:"M722 224C743 207 764 198 793 203L1082 241C1097 243 1097 249 1099 261L1137 547C1142 572 1130 588 1110 605L511 1117C481 1141 450 1143 421 1124L167 875C141 849 140 815 162 786ZM1067 392A114 114 0 1 0 839 392A114 114 0 1 0 1067 392Z"}),c.jsx("circle",{cx:"534",cy:"602",r:"59",fill:"#ffdb29"}),c.jsx("circle",{cx:"786",cy:"666",r:"59",fill:"#ffdb29"}),c.jsx("path",{d:"M453 719C486 831 643 870 743 790",fill:"none",stroke:"#ffdb29",strokeWidth:"70",strokeLinecap:"round"})]})}),c.jsx("b",{children:"ITEM"}),c.jsx("strong",{"data-price":"item-pool",children:M0(r,6)})]})]}),c.jsx("p",{children:"Pool prices and BASK stock value, read at the last refresh."})]})}function oj({snapshot:e}){const n=r=>c.jsx(Hn,{value:r}),s=r=>e.loading?"Reading...":e.globals[r]?n(e.globals[r]):"unreadable";return c.jsxs(c.Fragment,{children:[c.jsx(Us,{eyebrow:"Open books",title:"Transparency",character:{kind:"transparency",src:"art/character/transparency.webp",width:400,height:1e3,alt:"Store worker looking at you through a magnifying glass",line:"go ahead and take a closer look"},children:"Contract addresses, protocol roles and source code."}),An(Qe)&&c.jsxs("section",{className:"panel item-source",children:[c.jsx("h2",{children:"Contracts and source"}),gp.map((r,l)=>c.jsxs("p",{children:[a2[l],": ",n(Qe[r])]},r)),c.jsxs("p",{children:["BASK/USDG pool: ",n(Ge.BASK_USDG_PAIR)]}),c.jsxs("p",{children:["ITEM/ETH pool: ",n(Qe.ITEM_WETH_PAIR)]}),c.jsxs("p",{"data-role":"dev",children:["Developer: ",n(Ge.DEV)]}),c.jsxs("p",{"data-role":"owner",children:["Vault owner: ",s("owner")]}),c.jsxs("p",{"data-role":"guardian",children:["Vault guardian: ",s("guardian")]}),c.jsxs("p",{children:["Source code: ",c.jsx("a",{href:Qe.ITEM_REPO,target:"_blank",rel:"noreferrer",children:Qe.ITEM_REPO})," at commit ",Qe.ITEM_COMMIT.slice(0,7)]})]})]})}const i2=["Vault","Deposit","Redeem","Earn","Docs"],lj=[...i2,"Owner","Losses","Transparency"];function Kg(){const e=location.hash.slice(1).toLowerCase();return lj.find(n=>n.toLowerCase()===e)??"Vault"}function cj(){const[e,n]=D.useState(Kg),[s,r]=D.useState(o9),[l,u]=D.useState(!0),[f,m]=D.useState(""),p=D.useRef(0),y=D.useCallback(async()=>{const x=++p.current;u(!0),m("");try{try{await Ev()}catch(M){x===p.current&&m(M.message)}const j=await yp();return x===p.current&&r(j),j}catch(j){throw x===p.current&&m("Vault data: unreadable. Retry vault."),j}finally{x===p.current&&u(!1)}},[]),b=w9(y),w=aj(e==="Earn"?"earn":"prices",e==="Earn"?b.account:void 0,e);D.useEffect(()=>{y().catch(()=>{})},[y]),D.useEffect(()=>{const x=()=>{n(Kg()),requestAnimationFrame(()=>document.querySelector("h1")?.focus()),window.scrollTo(0,0)};return window.addEventListener("hashchange",x),()=>window.removeEventListener("hashchange",x)},[]);const g={...s,loading:l,retry:()=>{y().catch(()=>{})}},[,S]=D.useState(0);D.useEffect(()=>{const x=setInterval(()=>S(j=>j+1),6e4);return()=>clearInterval(x)},[]);const T=s.assets.filter(x=>x.short&&!x.retired);return c.jsxs(c.Fragment,{children:[c.jsx("a",{className:"skip",href:"#main-content",onClick:x=>{x.preventDefault(),document.getElementById("main-content")?.focus()},children:"Skip to content"}),c.jsxs("div",{className:"restriction",children:[c.jsx("span",{className:"restriction-mark","aria-hidden":"true",children:"!"}),c.jsx("p",{children:"Not for US persons. Stock Tokens are not offered in the United States and are restricted in other countries. Basket Protocol is not affiliated with the issuer of Stock Tokens."})]}),c.jsxs("header",{children:[c.jsx(M9,{}),c.jsxs("div",{className:"header-inner",children:[c.jsxs("a",{href:"#vault",className:"brand","aria-label":"Basket Protocol home",children:[c.jsx(vh,{large:!0}),c.jsxs("span",{children:["Basket",c.jsx("span",{className:"brand-sub",children:"Protocol"})]})]}),c.jsxs("div",{className:"wallet-area",children:[c.jsxs("span",{className:"chain-label",children:[c.jsx("span",{"aria-hidden":"true",children:"●"})," Robinhood Chain"]}),b.account?c.jsxs(c.Fragment,{children:[c.jsxs("span",{className:"connected-address",title:b.account,children:[b.account.slice(0,6),"…",b.account.slice(-4)]}),c.jsx("button",{className:"disconnect",onClick:b.disconnect,disabled:b.busy,children:"Disconnect"}),b.chainId!==4663&&c.jsx("button",{onClick:b.switchChain,children:"Switch to chain 4663"})]}):c.jsxs("button",{onClick:b.connect,disabled:b.connecting,children:[b.connecting?"Connecting...":"Connect wallet"," ",c.jsx("span",{"aria-hidden":"true",children:"↗"})]})]})]}),c.jsx(rj,{prices:w.prices,snapshot:f?void 0:g}),c.jsx("nav",{"aria-label":"Primary navigation",children:c.jsx("div",{children:i2.map(x=>c.jsx("a",{href:"#"+x.toLowerCase(),"aria-current":x===e?"page":void 0,children:x},x))})})]}),c.jsx("div",{className:"shop-window",children:c.jsx(Ov,{})}),c.jsxs("main",{id:"main-content",tabIndex:-1,children:[c.jsxs("div",{className:"data-bar",children:[c.jsx("span",{role:"status",children:l?"Reading the vault…":s.loadedAt?"Read from chain · "+new Date(s.loadedAt).toLocaleTimeString("en-GB",{timeZone:"UTC"})+" UTC":"Vault data unreadable"}),c.jsxs("button",{className:"refresh",disabled:l,onClick:()=>{y().catch(()=>{}),w.refresh()},children:[l?"Reading...":f||s.errors.length?"Retry vault":"Refresh vault"," ",c.jsx("span",{"aria-hidden":"true",children:"↻"})]})]}),!window.ethereum&&c.jsxs("div",{className:"note wallet-help",children:["Open this page in your wallet app's browser",c.jsx("button",{onClick:async()=>{try{await navigator.clipboard.writeText(location.href),b.setMessage("Site link copied.")}catch{b.setMessage(`Copy this site link: ${location.href}`)}},children:"Copy site link"})]}),f&&c.jsx("div",{className:"note warning",role:"alert",children:f}),s.errors.length>0&&c.jsxs("details",{className:"read-errors",children:[c.jsxs("summary",{children:[s.errors.length," read issue",s.errors.length===1?"":"s"," · other data remains available"]}),s.errors.map((x,j)=>c.jsx("p",{children:x},j))]}),c.jsxs("div",{className:"wallet-status"+(Object.values(b.progress).some(x=>x.message===b.message)?" transaction-summary":""),role:"status",children:[b.message,b.hash&&c.jsxs(c.Fragment,{children:[" ",c.jsx("a",{href:`${fa.blockExplorers.default.url}/tx/${b.hash}`,target:"_blank",rel:"noreferrer",children:"View transaction"})]})]}),b.account&&b.chainId!==4663&&c.jsx("div",{className:"note warning",children:"Your wallet must be on Robinhood Chain (4663) to send. Public data remains available."}),(e==="Vault"||e==="Deposit")&&T.length>0&&c.jsxs("div",{className:"note warning",children:["Deposits are paused: the vault is short of"," ",c.jsx("bdi",{children:T.map(x=>x.symbol).join(", ")}),"."," ",c.jsx("a",{href:"#losses",children:"Anyone can start the fix."})]}),e==="Vault"?c.jsx(U9,{snapshot:g}):e==="Deposit"?c.jsx(tk,{snapshot:g,wallet:b}):e==="Redeem"?c.jsx(nk,{snapshot:g,wallet:b}):e==="Earn"?c.jsx(ij,{snapshot:g,wallet:b,data:w}):e==="Transparency"?c.jsx(oj,{snapshot:g}):e==="Owner"?c.jsx(Ek,{snapshot:g,wallet:b}):e==="Docs"?c.jsx(Xk,{onAddToWallet:b.addToWallet}):c.jsx(Qk,{snapshot:g,wallet:b}),c.jsx(D.Activity,{mode:e==="Redeem"?"visible":"hidden",children:c.jsx(ak,{snapshot:g,wallet:b},b.account)})]}),c.jsx("div",{className:"floor-strip","aria-hidden":"true"}),c.jsxs("footer",{children:[c.jsxs("div",{children:[c.jsx(vh,{}),c.jsx("strong",{children:"Basket Protocol"}),c.jsxs("span",{className:"footer-links",children:[c.jsx("a",{href:"#owner","aria-current":e==="Owner"?"page":void 0,children:"Owner controls"}),c.jsx("a",{href:"#transparency","aria-current":e==="Transparency"?"page":void 0,children:"Transparency"}),c.jsx("a",{href:"#docs",children:"Docs"}),c.jsx("a",{href:"https://x.com/Basket_IMD",target:"_blank",rel:"noreferrer",children:"Basket Protocol on X"}),c.jsx("a",{href:"https://t.me/basket_protocol",target:"_blank",rel:"noreferrer",children:"Basket Protocol on Telegram"}),c.jsx("a",{href:"https://medium.com/@protocolbasket",target:"_blank",rel:"noreferrer",children:"Basket Protocol on Medium"}),c.jsx("a",{href:"mailto:protocolbasket@gmail.com",children:"protocolbasket@gmail.com"})]})]}),c.jsxs("div",{children:[c.jsx("span",{children:"BaskVault · Chain 4663"}),c.jsx(Hn,{value:It})]})]})]})}Bx.createRoot(document.getElementById("root")).render(c.jsx(cj,{}));export{re as B,Mo as H,LE as a,ba as b,Bu as c,C6 as d,vi as e,pa as f,zh as g,Tu as i,Cu as l,Gt as s}; diff --git a/dist/assets/index-BfIl7glJ.css b/dist/assets/index-wqZRUeaL.css similarity index 67% rename from dist/assets/index-BfIl7glJ.css rename to dist/assets/index-wqZRUeaL.css index 86b8481..0667292 100644 --- a/dist/assets/index-BfIl7glJ.css +++ b/dist/assets/index-wqZRUeaL.css @@ -1 +1 @@ -@font-face{font-family:Flyer;src:url(./Anton-Byf51wtH.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Pixel;src:url(./VT323-wDgJuOC9.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}:root{--sky: #8ad1f2;--sun: #ffdb29;--red: #df2029;--royal: #174bc1;--ink: #142c54;--paper: #fff;--subtle: #edf5ff;--warning: #fff5c4;--error: #a01520;--line: #8091ae;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--sky);font-synthesis:none;line-height:1.5;font-size:16px;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{touch-action:manipulation}button{cursor:pointer;min-height:44px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);padding:9px 16px;font-weight:700;border-radius:3px}button:hover:not(:disabled){background:var(--subtle)}button.primary{background:var(--royal);color:var(--paper);border-color:var(--royal)}button:disabled{background:#e4e9f0;color:#53617a;cursor:not-allowed;border-color:#8c98ab}a{color:var(--royal);text-decoration-thickness:2px;text-underline-offset:3px}a:hover{text-decoration-thickness:3px}a,button,input,select,textarea,summary{outline-offset:4px}:focus-visible{outline:3px solid var(--ink);box-shadow:0 0 0 6px var(--sun)}[tabindex="-1"]:focus:not(:focus-visible){outline:none}h1,h2,h3{font-family:Flyer,Impact,sans-serif;font-weight:400;line-height:1.125;text-transform:uppercase;text-wrap:balance;margin:0 0 16px;letter-spacing:.01em}h1{font-size:clamp(40px,5.5vw,76px)}h2{font-size:32px}h3{font-size:25px}p{margin:0 0 16px;text-wrap:pretty}p:last-child{margin-bottom:0}small{font-size:14px;display:block}strong{font-weight:700}svg{display:block;max-width:100%}.skip{position:absolute;top:-100px;left:12px;z-index:5;padding:12px;background:var(--paper)}.skip:focus{top:8px}.restriction{display:flex;align-items:center;gap:12px;padding:12px max(20px,calc((100vw - 1200px)/2));background:var(--paper);font-size:14px;border-bottom:4px solid var(--red)}.restriction p{margin:0}.restriction-mark{border:2px solid var(--ink);border-radius:50%;min-width:26px;text-align:center;font-weight:700}header{background:var(--royal);border-block-end:7px solid var(--red)}.marquee{display:flex;background:var(--sun);color:var(--ink);border-bottom:4px solid var(--red);overflow:hidden}.marquee>div{flex:1;min-width:0;overflow:hidden;padding-block:9px;font-family:Pixel,monospace;font-size:24px;line-height:1}.marquee span{display:block;width:max-content}.header-inner{max-width:1200px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:32px;padding:26px 20px 30px;position:relative}.header-inner:before,.header-inner:after{content:"";height:5px;background:var(--paper);box-shadow:0 4px #6499de;position:absolute;top:10px;width:25%;pointer-events:none}.header-inner:before{left:4%}.header-inner:after{right:4%}.brand{display:flex;align-items:center;gap:18px;color:var(--paper);text-decoration:none;font:400 clamp(55px,7.5vw,90px) / 1 Flyer,Impact,sans-serif;text-transform:uppercase;letter-spacing:2px;padding:12px 22px;background:var(--red);border:5px solid var(--sun);box-shadow:6px 6px 0 var(--ink)}.brand-sub{display:block;font:18px/1.2 Pixel,monospace;letter-spacing:8px;text-align:center}.basket-art{width:95px;height:95px;color:var(--sun)}.basket-icon{width:32px;height:32px}.wallet-area{display:flex;flex-wrap:wrap;max-width:280px;justify-content:flex-end;align-items:center;gap:12px;color:var(--paper)}.chain-label{width:100%;text-align:right;font-size:14px}.connected-address{font-family:monospace}.disconnect{position:relative;min-height:24px;padding:0 8px;font-size:13px}.disconnect:after{content:"";position:absolute;inset:-12px 0}nav{max-width:900px;margin:auto;padding:0 24px 22px}nav>div{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}nav a{position:relative;background:var(--paper);border:4px solid var(--sun);box-shadow:3px 3px 0 var(--ink);color:var(--ink);font:28px/1.2 Flyer,sans-serif;text-transform:uppercase;text-align:center;text-decoration:none;padding:12px 4px;min-height:52px}nav a:before,nav a:after{content:"";width:3px;height:18px;background:var(--sun);position:absolute;top:-20px}nav a:before{left:20%}nav a:after{right:20%}nav a[aria-current=page]{background:var(--sun);border-color:var(--paper)}.shop-window{max-width:1200px;margin:20px auto 0;border:5px solid var(--sun);outline:3px solid var(--red)}main{max-width:1200px;margin:auto;padding:18px 20px 44px}.data-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--paper);padding:8px 14px;border:2px solid var(--ink);font-size:14px}.refresh{font-size:14px}.wallet-status:not(:empty),.read-errors{padding:16px;background:var(--paper);border:3px solid var(--ink);margin-top:12px;overflow-wrap:anywhere}.wallet-status:empty{display:none}.read-errors summary{min-height:44px;cursor:pointer}.page-title{border:7px solid var(--sun);outline:4px solid var(--red);background:var(--royal);color:var(--paper);padding:28px;margin:28px 0;position:relative;overflow:hidden}.page-title:after{content:"";display:block;height:12px;margin:22px -28px -28px;background:repeating-linear-gradient(90deg,var(--paper) 0 18px,var(--royal) 18px 36px);border-top:3px solid var(--sun)}.page-title>p:last-of-type{max-width:58ch}.eyebrow{font:22px/1.3 Pixel,monospace;text-transform:uppercase;letter-spacing:1px;margin-bottom:12px}.burst{display:flex;align-items:center;justify-content:center;background:var(--sun);color:var(--ink);font:28px Flyer,sans-serif;width:96px;height:96px;clip-path:polygon(50% 0,60% 17%,78% 5%,79% 26%,100% 25%,89% 45%,100% 57%,79% 65%,83% 88%,60% 83%,50% 100%,41% 82%,21% 95%,21% 72%,0 74%,12% 54%,0 39%,23% 33%,19% 12%,40% 19%);flex-shrink:0}.burst.small{width:70px;height:70px;font-size:20px}.panel{background:var(--paper);border:5px solid var(--sun);box-shadow:0 0 0 3px var(--red);padding:24px;margin-block:24px;min-width:0}.panel .panel{box-shadow:none;border:2px solid var(--royal);margin-block:0;padding:20px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.section-heading h2,.section-heading .eyebrow{margin:0}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px}.stats>div{border:2px solid var(--royal);padding:18px 14px;background:var(--paper)}.stats span{display:block;font-size:14px}.stats small{font-size:12px}.stats strong{font-size:26px;display:block;overflow-wrap:anywhere;line-height:1.4}.two-col,.flow-layout,.docs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.flow-layout{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start}.flow-layout>.panel,.docs-grid>.panel{margin-block:0 24px}.deposit-led-sign{display:block;width:176px;margin:0 0 12px;max-width:100%;height:auto;flex:0 0 auto}.deposit-led-border,.deposit-led-chase{fill:none;stroke:#296bcc;stroke-width:2.8px;stroke-linecap:round;stroke-dasharray:.1 7.9}.deposit-led-chase{stroke:#80b8ff;stroke-dasharray:.1 31.9;animation:deposit-led-chase 3.2s linear infinite}.deposit-led-letters{animation:deposit-led-glow 3.2s ease-in-out infinite}@keyframes deposit-led-chase{to{stroke-dashoffset:-32px}}@keyframes deposit-led-glow{0%,to{opacity:1}50%{opacity:.78}}@media(prefers-reduced-motion:reduce){.deposit-led-chase,.deposit-led-letters{animation:none}}.deposit-state{padding:16px;background:var(--subtle);border-left:4px solid var(--royal)}.deposit-state p{margin-block:8px 0}.deposit-notice{padding:0;border:0;background:none}.deposit-summary>.deposit-state{padding:0;border:0;background:none}.deposit-summary:empty{display:none}.deposit-summary>.deposit-state>strong{margin-right:8px}.deposit-summary>.deposit-state>p:first-of-type{display:inline;margin:0}.deposit-summary>.deposit-state>p:not(:first-of-type){display:none}.hours-tag{width:fit-content;max-width:100%;margin:0 0 16px;padding:5px 14px;background:var(--royal);color:var(--paper);border:2px solid var(--ink);border-radius:20px;font-size:15px;line-height:1.4;text-wrap:pretty}.hours-tag strong{white-space:normal}.hours-tag span{display:inline-block}.stock-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.stock-card{background:var(--paper);border:3px solid var(--royal);padding:18px;min-width:0}.stock-top{display:flex;align-items:start;justify-content:space-between;gap:12px}.stock-top h3{overflow-wrap:anywhere}.badge{font-size:13px;font-weight:700;padding:4px 8px;border:1px solid var(--ink);background:var(--subtle)}.chain-text,.address{overflow-wrap:anywhere;word-break:break-word}.address{font-family:monospace;font-size:13px;display:block;line-height:1.65}.address[href]{padding-block:10px;min-height:44px}dl{margin:12px 0}dl>div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #c2ccdc;padding:10px 0}dt{font-size:14px}dd{margin:0;text-align:right;font-weight:700;max-width:62%;overflow-wrap:anywhere}dd small{font-weight:400}.stock-card dl>div{display:block}.stock-card dd{text-align:left;max-width:100%;margin-top:4px}.stock-card summary{font-size:14px;padding-block:12px;min-height:44px;cursor:pointer}.pairing-warning{display:block;background:var(--warning);color:var(--error);border:2px solid var(--error);font-weight:700;padding:8px;font-size:14px}.note{padding:16px;border-left:4px solid var(--royal);background:var(--subtle);margin-block:16px}.warning{background:var(--warning);color:var(--ink);border-color:var(--error)}.error{color:var(--error);overflow-wrap:anywhere}.error:empty{display:none}.empty{padding:28px;background:var(--paper);border:2px dashed var(--royal);text-align:center;margin:20px 0}.empty svg{margin:0 auto 16px}.empty p{max-width:55ch;margin:auto}label{display:block;font-weight:700;margin-block:0 18px}input:not([type=checkbox]),textarea,select{display:block;min-width:0;width:100%;min-height:48px;padding:10px;border:2px solid var(--line);border-radius:3px;background:var(--paper);color:var(--ink);margin-top:6px;font-size:16px}textarea{resize:vertical}label small{font-weight:400;margin-top:6px}.confirm{display:flex;gap:12px;align-items:flex-start;font-weight:400;min-height:44px;padding:10px;background:var(--warning)}input[type=checkbox]{min-width:22px;height:22px;margin-top:2px;accent-color:var(--royal)}.receipt{border:2px solid var(--line);padding:18px;background:var(--paper);margin-block:18px;min-width:0}.button-row{display:flex;flex-wrap:wrap;gap:12px;align-items:start;margin-top:18px}.tx-control{margin-top:12px}.role-info{font-size:13px;margin-block:14px;color:var(--ink)}.roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.roles strong{display:block}.owner-section{margin-block:30px}.owner-section>p{max-width:75ch}.owner-section .two-col{align-items:start}.pairing-grid,.claim-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pairing-grid .receipt,.claim-grid .receipt{margin-block:14px 0}.setting-panel>h3{margin-top:0}.setting-panel .action-panel{border:0;padding:0}.floor-strip{height:30px;background:conic-gradient(var(--paper) 25%,var(--royal) 0 50%,var(--paper) 0 75%,var(--royal) 0) 0/30px 30px;border-block:5px solid var(--red)}footer{padding:32px max(20px,calc((100vw - 1160px)/2));background:var(--sun);border-top:4px solid var(--ink)}footer>div{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-block:8px}footer strong{font:27px Flyer,sans-serif;text-transform:uppercase}.footer-links{display:flex;gap:16px;flex-wrap:wrap;width:100%}.footer-links a{min-height:44px;padding-block:10px}.docs-grid p{max-width:70ch}.docs-grid h2{border-bottom:5px solid var(--sun);padding-bottom:12px}.muted{color:#485974}@media(prefers-reduced-motion:no-preference){button{transition:background-color .15s,color .15s}button:active:not(:disabled){box-shadow:inset 0 0 0 2px currentColor}}@media(max-width:960px){.stock-grid,.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col,.roles{grid-template-columns:1fr}.brand{font-size:64px}.basket-art{width:68px}.flow-layout{grid-template-columns:1fr 1fr}.pairing-grid{grid-template-columns:1fr}}@media(max-width:660px){.restriction{padding:10px 14px;font-size:13px;align-items:flex-start}.header-inner{display:block;padding:28px 18px}.brand{max-width:330px;font-size:62px;margin:auto;gap:14px;justify-content:center;padding:10px 14px}.brand-sub{font-size:16px}.basket-art{height:70px;width:70px}.wallet-area{max-width:none;justify-content:center;margin-top:22px;gap:10px}.chain-label{width:auto;text-align:center}nav{padding:2px 14px 18px}nav>div{gap:10px}nav a{font-size:21px;border-width:3px;padding:10px 1px}.shop-window{margin:14px 14px 0}main{padding:14px 16px 28px}.data-bar{align-items:flex-start;flex-wrap:wrap;padding:10px;font-size:13px;gap:6px}.refresh{width:100%}.page-title{padding:22px 18px;border-width:5px;margin-block:24px}.page-title:after{margin:20px -18px -22px}.page-title .eyebrow{font-size:20px}h1{font-size:45px;line-height:1.125}h2{font-size:30px}h3{font-size:24px}.panel{padding:18px 14px;border-width:5px;margin-block:24px}.panel .panel{padding:16px 12px}.flow-layout,.docs-grid,.two-col,.stock-grid,.roles,.claim-grid{grid-template-columns:1fr;gap:20px}.stats{gap:10px}.stats>div{padding:12px 10px}.stats strong{font-size:21px}.section-heading{align-items:flex-start;flex-wrap:wrap}.section-heading .eyebrow{font-size:18px}.stock-card{padding:16px}.stock-card dl>div{display:flex}.stock-card dd{text-align:right;max-width:60%;margin:0}.stock-card h3{font-size:27px}.owner-section .two-col{gap:18px}.receipt{padding:14px}.button-row>*{width:100%}.button-row button{width:100%}.role-info .address{font-size:12px}.eyebrow{font-size:20px}.docs-grid>.panel{margin-bottom:4px}footer{padding:22px 18px}.footer-links{gap:8px 16px}.address{font-size:12px}dd{max-width:58%}}@media(forced-colors:active){:focus-visible{outline:3px solid Highlight;box-shadow:none}.panel{border:3px solid CanvasText}.brand,nav a{border-color:CanvasText}}.docs-grid a:not(.address),.wallet-status a{display:inline-flex;align-items:center;min-height:44px}.panel>button,.panel>form+button{margin-top:12px}.marquee-track{display:grid;width:max-content}.marquee-half{grid-area:1 / 1;display:flex}.marquee-half+.marquee-half{transform:translate(100%)}.marquee-half>span{flex:none;white-space:pre}.marquee-half>span:nth-child(n+2){display:none}@media(min-width:721px){.marquee-half>span:nth-child(2){display:block}}@media(min-width:1441px){.marquee-half>span:nth-child(3){display:block}}@media(min-width:2161px){.marquee-half>span:nth-child(4){display:block}}@media(min-width:2881px){.marquee-half>span:nth-child(5){display:block}}@media(min-width:3601px){.marquee-half>span:nth-child(6){display:block}}@media(min-width:4321px){.marquee-half>span:nth-child(7){display:block}}@media(min-width:5041px){.marquee-half>span:nth-child(8){display:block}}button.primary:hover:not(:disabled),button.primary:focus-visible:not(:disabled),button.primary:active:not(:disabled){background:var(--ink);color:var(--paper);border-color:var(--ink)}button.primary:disabled{background:#e4e9f0;color:#53617a;border-color:#8c98ab}.stock-card dl>div{display:flex}.stock-card dd{text-align:right;margin:0;max-width:60%}summary{min-height:44px;padding-block:10px;cursor:pointer}.action-panel>summary{font:25px/1.3 Flyer,sans-serif;text-transform:uppercase}.action-panel[open]>summary{margin-bottom:14px}.action-status,.disabled-reason{margin:8px 0;font-size:14px;overflow-wrap:anywhere}.action-status a{display:inline-block;min-height:44px;padding-block:10px}.receiver{padding:12px;background:var(--subtle);margin-block:12px}.receiver .address,.chosen-stock .address{font-size:14px}.jump-links{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.owner-section{scroll-margin-top:16px}.flow-layout.one-column{grid-template-columns:minmax(0,1fr)}.wallet-connect{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:20px}.wallet-connect p{margin:0}.wallet-line{font-size:15px}.deposit-rows{margin-bottom:20px;border-bottom:1px solid var(--line)}.deposit-rows:empty{display:none}.deposit-row{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,4fr) auto auto;align-items:center;gap:10px 12px;padding-block:18px;border-top:1px solid var(--line)}.deposit-row label{margin:0;font:24px/1.15 Flyer,Impact,sans-serif;letter-spacing:.01em;text-transform:uppercase;overflow-wrap:anywhere}.deposit-row small{margin-top:2px;overflow-wrap:anywhere}.deposit-row small span{white-space:nowrap}.deposit-row input:not([type=checkbox]){margin-top:0;font-weight:700;text-overflow:ellipsis}button.quiet{padding-inline:12px;border-color:var(--line);font-size:14px}button.quiet.remove,button.quiet.small-toggle{border-color:transparent;background:none;color:var(--royal);text-decoration:underline;text-underline-offset:3px}button.quiet.remove:hover:not(:disabled),button.quiet.small-toggle:hover{text-decoration-thickness:2px}button.quiet.remove:disabled{color:#53617a;text-decoration:none}button.quiet.small-toggle{margin-bottom:8px;margin-left:-2px;padding-inline:0}.deposit-row.blocked label,.deposit-row.blocked small{color:#485974}.deposit-row.blocked input:not([type=checkbox]){background:#e4e9f0;border-color:#8c98ab;color:#53617a;-webkit-text-fill-color:#53617a;opacity:1}.row-note{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0;font-size:14px}.stock-search{max-width:420px;margin-block:12px}.stock-search input::placeholder{color:#53617a;opacity:1}.stock-matches{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px}.stock-matches:empty{display:block;margin:0}.stock-matches button{overflow-wrap:anywhere}.stock-matches p{margin:0;font-size:14px}.all-stocks summary{width:fit-content;color:var(--royal);font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:3px}.all-stocks summary:hover{text-decoration-thickness:2px}.all-stocks[open],.all-stocks.open-list{margin-bottom:20px}.all-stocks p{margin:6px 0 10px;font-size:14px}.all-stocks .list-title{margin:0;font-weight:700}.all-stocks ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:8px;margin:0;padding:0;list-style:none}.all-stocks li{min-width:0}.all-stocks li.wide{grid-column:span 2}.all-stocks ul button{width:100%;padding-inline:4px;overflow-wrap:anywhere}.deposit-total{margin-block:20px;padding-top:16px;border-top:1px solid var(--line);overflow-wrap:anywhere}.deposit-total p{margin-bottom:4px}.deposit-total strong{font-size:20px}.deposit-total small{margin-bottom:8px}.one-column form>.primary{margin-top:8px}.received{font-weight:700}.flow-steps{margin-block:14px}@media(min-width:661px){h1{font-size:64px}}@media(max-width:660px){.header-inner{padding:12px 14px}.header-inner:before,.header-inner:after{display:none}.brand{font-size:42px;padding:5px 12px;border-width:3px;max-width:280px}.brand-sub{font-size:16px;letter-spacing:6px}.basket-art{width:44px;height:50px}.wallet-area{margin-top:10px}.disconnect{padding-inline:4px;font-size:12px}nav{padding-bottom:10px}nav a{min-height:44px;padding-block:7px}nav a:before,nav a:after{display:none}.shop-window{margin-top:4px}main{padding-top:10px}.data-bar{align-items:center;flex-wrap:nowrap;padding:4px 8px}.refresh{width:auto;flex:none;font-size:12px;padding:4px 8px}.page-title{padding:14px;margin-block:16px}.page-title .eyebrow{margin-bottom:6px;font-size:20px}h1{font-size:36px;margin-bottom:8px;line-height:1.222222}.page-title:after{height:8px;margin:12px -14px -14px}.panel{margin-block:16px;padding:14px 12px}.empty{padding:16px;margin-block:12px}.address,.role-info .address{font-size:13px}.deposit-row{grid-template-columns:minmax(0,1fr) auto auto;gap:8px;padding-block:14px}.row-stock{grid-column:1 / -1}button.quiet{padding-inline:10px}}.page-title .eyebrow{font:700 14px/20px Arial,Helvetica,sans-serif;letter-spacing:1px}@media(max-width:660px){.wallet-status.transaction-summary{display:none}}.store-shelf{--food-size: 40px;--shelf-gap: 12px;--plank-size: 8px;--plank-edge: 2px;display:grid;width:100%;height:120px;overflow:hidden;background:#c4e7ff;margin-bottom:20px}.shop-window .store-shelf{margin:0}.shelf-row{position:relative;display:flex;align-items:flex-end;gap:var(--shelf-gap);padding-top:4px;padding-bottom:calc(var(--plank-size) + 4px);overflow:hidden}.shelf-row:after{content:"";position:absolute;inset:auto 0 0;height:var(--plank-size);background:var(--red);border-block:var(--plank-edge) solid var(--ink)}.shelf-row img{display:block;flex:0 0 var(--food-size);width:var(--food-size);height:var(--food-size);object-fit:contain}.character-picture{display:block;width:100%;height:320px;object-fit:contain;object-position:50% 100%}.speech-bubble{position:absolute;top:12px;left:12px;width:min(155px,calc(50% - 66px));margin:0;padding:10px;border:3px solid var(--ink);border-radius:18px;background:var(--paper);color:var(--ink);font:18px/1.4 Flyer,sans-serif;text-transform:none;overflow-wrap:break-word}.speech-bubble:after{content:"";position:absolute;right:-16px;top:22px;width:18px;height:20px;background:var(--paper);clip-path:polygon(0 0,100% 100%,0 75%)}.speech-bubble:before{content:"";position:absolute;right:-24px;top:20px;width:24px;height:28px;background:var(--ink);clip-path:polygon(0 0,100% 100%,0 85%)}@media(max-width:660px){.store-shelf{--food-size: 22px;--shelf-gap: 8px;--plank-size: 3px;--plank-edge: 1px;height:50px}.shelf-row{padding-block:0 var(--plank-size)}}.speech-bubble{overflow-wrap:normal;word-break:normal;hyphens:none}.wallet-help{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;text-wrap:pretty}.page-title.has-character>h1:first-child{margin-top:auto}@media(max-width:660px){.page-title.has-character>h1:first-child{margin-top:0}}.page-title.has-character{--h: 390px;--w: calc(var(--h) * var(--ratio));--pop: 48px;--stand: 13px;--bd: 7px;--pad: 28px;--bubble-font: 20px;--bw-vault: 170px;--zone: calc(var(--w) * var(--bx) + var(--bw));--zone-vault: calc(var(--h) * .38481 + var(--bw-vault));--gutter: 28px;--h1-max: 96px;--h2-max: 64px;position:relative;overflow:visible;container-type:inline-size;display:flex;flex-direction:column;min-height:calc(var(--stand) + var(--h) + var(--bd) - var(--pop));margin-top:calc(12px + var(--pop));padding-right:calc(var(--pad) + var(--zone) + var(--gutter))}.page-title.has-character:after{margin:22px calc(-1 * (var(--pad) + var(--zone) + var(--gutter))) calc(-1 * var(--pad)) calc(-1 * var(--pad))}.page-title.has-character>.eyebrow{margin-top:auto}.page-title.has-character>p:last-of-type{margin-bottom:auto;font-size:18px}.page-title.has-character h1{font-size:clamp(40px,max(min(100cqi / var(--em1),var(--h1-max)),min(100cqi / var(--em2),var(--h2-max))),var(--h1-max))}.page-title.character-vault{--ratio: .606;--bx: .635;--tx: .5;--mouth: .176;--bw: var(--bw-vault);--em1: 6.3;--em2: 3.3}.page-title.character-deposit{--ratio: .313;--bx: .94;--tx: .675;--mouth: .168;--bw: 124px;--em1: 8.78;--em2: 5.6}.page-title.character-redeem{--ratio: .484;--bx: .93;--tx: .775;--mouth: .18;--bw: 226px;--em1: 5.34;--em2: 3.1;--h1-max: 108px;--h2-max: 56px}.page-title.character-redeem h1{--vault-col: calc(100cqi + var(--zone) - var(--zone-vault));font-size:clamp(40px,min(max(min(100cqi / var(--em1),var(--h1-max)),min(100cqi / var(--em2),var(--h2-max))),1.2 * max(min(var(--vault-col) / 8.1,96px),min(var(--vault-col) / 4.45,64px))),var(--h1-max))}.page-title .title-character{--gx: 0px;--img-top: 0px;--tail: calc(var(--w) * (var(--bx) - var(--tx)) + 3px);position:absolute;z-index:1;right:var(--pad);bottom:var(--stand);width:var(--zone);height:var(--h)}.page-title .title-character .character-picture{position:absolute;left:var(--gx);bottom:0;width:var(--w);height:var(--h);object-fit:contain;object-position:50% 100%}.page-title .title-character .speech-bubble{--tip-drop: 9px;--drop: 6px;--base1: 12px;--base2: 36px;--fill-x: 7px;--fill-y: 6px;--fill-b1: 3.5px;--fill-b2: 5px;top:calc(var(--img-top) + var(--h) * var(--mouth) + var(--tip-drop) + var(--drop));left:calc(var(--gx) + var(--w) * var(--bx));right:auto;width:var(--bw);padding:6px 12px;font-size:var(--bubble-font);line-height:1.2;text-wrap:balance;text-align:center}.page-title .title-character .speech-bubble:before,.page-title .title-character .speech-bubble:after{top:calc(-9px - var(--drop));right:auto;left:calc(-1 * var(--tail));width:calc(var(--tail) + 3px);height:calc(var(--drop) + var(--base2) + 11px)}.page-title .title-character .speech-bubble:before{clip-path:polygon(0 6px,calc(100% - 3px) calc(var(--drop) + 9px + var(--base1)),calc(100% - 3px) calc(var(--drop) + 9px + var(--base2)))}.page-title .title-character .speech-bubble:after{clip-path:polygon(var(--fill-x) calc(6px + var(--fill-y)),100% calc(var(--drop) + 9px + var(--base1) + var(--fill-b1)),100% calc(var(--drop) + 9px + var(--base2) - var(--fill-b2)))}.page-title.character-vault .speech-bubble{--tip-drop: 3px;--drop: -5px;--fill-y: 4px;--fill-b1: 3px;--fill-b2: 4px}@media(max-width:999px){.page-title.has-character{--h: 340px;--pop: 42px;--bubble-font: 18px;--gutter: 22px;--bw-vault: 158px}.page-title.has-character>p:last-of-type{font-size:16px}.page-title.character-vault .speech-bubble{--drop: -9px}.page-title.character-deposit .speech-bubble{--drop: 2px;--tip-drop: 7px}.page-title.character-deposit{--bw: 114px}.page-title.character-redeem{--bw: 150px}}@media(max-width:660px){.page-title.has-character{--h: 300px;--pop: 34px;--bd: 5px;--pad: 14px;--bubble-font: 16px;--gutter: 0px;--bw-vault: 170px;--stage: calc(var(--h) - var(--pop) - var(--bd) - var(--pad));min-height:0;margin-top:calc(16px + var(--pop));padding-right:var(--pad)}.page-title.has-character:after{margin:20px calc(-1 * var(--pad)) calc(-1 * var(--pad))}.page-title.has-character>.eyebrow{margin-top:0}.page-title.has-character>p:last-of-type{margin-bottom:0}.page-title.has-character h1{font-size:36px}.page-title .title-character{--gx: max(0px, calc((100% - var(--zone)) / 2));--img-top: calc(-1 * (var(--pop) + var(--bd) + var(--pad)));position:relative;order:-1;right:auto;bottom:auto;width:auto;height:var(--stage);margin:0 0 17px}.page-title .title-character:after{content:"";position:absolute;left:calc(-1 * var(--pad));width:calc(var(--pad) + var(--gx) + var(--w) + 12px);bottom:-3px;height:3px;background:var(--sun)}.page-title.has-character .title-character .speech-bubble{--tip-drop: 0px;--drop: -9px;--base2: 32px;--fill-x: 6px;--fill-y: 2.5px;--fill-b1: 3px;--fill-b2: 3px;padding:6px 10px;line-height:1.15}.page-title.character-deposit{--bw: 150px}.page-title.character-redeem{--bw: 160px}.page-title.character-deposit,.page-title.character-redeem,.page-title.character-earn{--col-gap: 12px;display:grid;grid-template-columns:calc(var(--w) + var(--col-gap)) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto auto auto auto}.page-title.character-deposit .title-character,.page-title.character-redeem .title-character,.page-title.character-earn .title-character{--gx: 0px;grid-area:1 / 1 / 4 / 3}.page-title.character-deposit>.eyebrow,.page-title.character-redeem>.eyebrow,.page-title.character-earn>.eyebrow{grid-area:2 / 2}.page-title.character-deposit h1,.page-title.character-redeem h1,.page-title.character-earn h1{grid-area:3 / 2;margin-bottom:17px}.page-title.character-deposit>p:last-of-type,.page-title.character-redeem>p:last-of-type,.page-title.character-earn>p:last-of-type{grid-area:4 / 1 / 5 / 3}.page-title.character-deposit:after,.page-title.character-redeem:after,.page-title.character-earn:after{grid-area:5 / 1 / 6 / 3}}@media(max-width:359px){.page-title.has-character{--h: 270px;--pop: 26px;--bw-vault: 146px}.page-title.has-character.character-vault .speech-bubble{--drop: -12px}.page-title.character-deposit{--bw: 140px}.page-title.character-redeem{--bw: 138px;--col-gap: 8px}}.sa-section{--sa-gap: 14px;--sa-rail: 18px;--sa-lip: 5px;--sa-wall: #c4e7ff;--sa-muted: #33405a;--sa-stale: #525d75}.sa-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.sa-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px}.sa-filters{display:flex;flex-wrap:wrap;gap:8px}.sa-filters button{display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 14px;font-size:15px}.sa-filters button[aria-pressed=true]{background:var(--royal);border-color:var(--royal);color:var(--paper)}.sa-count{min-width:2.2ch;padding:0 5px;background:var(--sun);color:var(--ink);font:22px/1.05 Pixel,monospace;text-align:center;border-radius:2px}.sa-filters button[aria-pressed=false] .sa-count{background:var(--subtle)}.sa-search{display:flex;align-items:center;gap:10px;flex:0 1 380px;margin:0;font-size:15px;white-space:nowrap}.sa-search input:not([type=checkbox]){flex:1;min-width:0;min-height:44px;padding:8px 10px}.sa-note{margin:10px 0 12px;font-size:14px;color:var(--sa-muted)}.sa-reset{min-height:44px;margin:-12px 0;padding:0 2px;border:0;border-radius:0;background:none;color:var(--royal);font-size:inherit;font-weight:700;line-height:1.2;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;vertical-align:baseline}.sa-reset:hover:not(:disabled){background:none}.sa-reset:focus-visible{outline-offset:0;box-shadow:inset 0 0 0 3px var(--sun)}.sa-unit{--sa-post: 10px;position:relative;padding:0 var(--sa-post) 16px;background:var(--sa-wall);border:3px solid var(--ink);box-shadow:inset var(--sa-post) 0 0 var(--royal),inset calc(-1 * var(--sa-post)) 0 0 var(--royal),inset 0 -10px 0 var(--ink)}.sa-unit .store-shelf{height:auto;margin:0}.sa-unit .shelf-row+.shelf-row{display:none}.sa-unit .empty{margin:16px 6px 6px}.sa-signrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:16px calc(var(--sa-gap) / 2 + 2px) 2px}.sa-sign{display:inline-flex;align-items:center;gap:8px;margin:0;padding:4px 5px 3px 10px;background:var(--red);color:var(--paper);font:20px/1.1 Flyer,Impact,sans-serif;letter-spacing:.03em;text-transform:uppercase;border:2px solid var(--ink);border-radius:2px;box-shadow:3px 3px 0 var(--ink);transform:rotate(-1deg)}.sa-n{min-width:2ch;padding:1px 5px 0;background:var(--sun);color:var(--ink);font:22px/1 Pixel,monospace;letter-spacing:0;text-align:center;border-radius:2px}.sa-sub{margin:0;font-size:14px;line-height:1.35;color:var(--sa-muted)}.sa-emptyline{color:var(--ink);font-size:15px}.sa-shelves{display:grid;grid-template-columns:repeat(auto-fill,minmax(max(140px,18%),1fr));column-gap:var(--sa-gap);row-gap:18px;margin:0;padding:14px calc(var(--sa-gap) / 2) 0;list-style:none}.sa-shelves--mini{grid-template-columns:repeat(auto-fill,minmax(max(102px,12.5%),1fr))}.sa-slot{position:relative;display:flex;flex-direction:column;min-width:0;padding-top:7px;container:sa-slot / inline-size}.sa-slot:before{content:"";position:absolute;top:0;left:calc(var(--sa-gap) / -2 - 2px);right:calc(var(--sa-gap) / -2 - 2px);height:calc(var(--sa-rail) + var(--sa-lip));background:linear-gradient(var(--ink) 0 2px,var(--red) 2px calc(var(--sa-rail) - 2px),var(--ink) calc(var(--sa-rail) - 2px) var(--sa-rail),#88a8c5 var(--sa-rail))}.sa-slot--empty{min-height:40px}.sa-label{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;gap:2px;min-width:0;margin:0 3px;padding:10px 10px 0;background:var(--sun);color:var(--ink);border:2px solid var(--ink);border-radius:3px;box-shadow:0 3px #142c544d;transform-origin:50% -8px}.sa-label--mini{gap:1px;margin:0;padding:9px 7px 6px}.sa-clip{position:absolute;top:-10px;left:50%;width:26px;height:13px;margin-left:-13px;background:#e8eef6;border:2px solid var(--ink);border-radius:2px}.sa-main,.sa-figs{display:contents}.sa-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px}.sa-label h4{flex:1 1 auto;margin:0;font:24px/1.15 Flyer,Impact,sans-serif;letter-spacing:.01em;text-transform:uppercase;overflow-wrap:anywhere}.sa-label--mini h4{font-size:21px}.sa-price{margin:0;font:28px/1.1 Flyer,Impact,sans-serif;letter-spacing:.01em;color:var(--red);white-space:nowrap}.sa-label--mini .sa-price{font-size:26px}.sa-cur,.sa-cents{display:inline-block;font-size:max(14px,.56em);line-height:1;vertical-align:top;margin-top:.2em;color:var(--error)}.sa-cur{margin-right:1px}.sa-cents{margin-left:2px;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}.sa-price.is-stale,.sa-price.is-stale span{color:var(--sa-stale)}.sa-label .sa-price.is-unreadable{flex-basis:100%;font:700 14px/1.4 Arial,Helvetica,sans-serif;color:var(--ink);white-space:normal}.sa-age{flex-basis:100%;margin:0;font-size:14px;line-height:1.35;text-align:end;color:var(--sa-muted)}.sa-label--mini:not(.sa-label--chip) .sa-price{flex-basis:100%}.sa-old{display:inline-block;margin-right:2px;padding:0 5px;background:var(--paper);border:2px solid var(--error);border-radius:2px;color:var(--error);font-size:13px;font-weight:700;line-height:1.3}.sa-narrow{display:none}.sa-st{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2px 6px;margin:3px 0 0;font-size:14px;line-height:1.35}.sa-label--mini .sa-st{margin-top:auto;padding-top:2px}.sa-warn{color:var(--error)}.sa-mark{display:inline-block;width:11px;height:11px;margin-right:6px;vertical-align:-1px;background:var(--royal);border-radius:50%}.sa-label--closed .sa-mark{background:var(--error);border-radius:1px}.sa-label--paused .sa-mark{width:0;height:0;background:none;border-radius:0;border-inline:6px solid transparent;border-bottom:11px solid var(--error)}.sa-label--retired .sa-mark{background:transparent;border:2px solid var(--ink)}.sa-label--unknown .sa-mark{background:var(--ink);border-radius:1px;transform:rotate(45deg) scale(.85)}.sa-label--closed,.sa-label--paused{border-color:var(--error);box-shadow:inset 0 5px 0 var(--error),0 3px #142c544d}.sa-label--closed .sa-stw>b{color:var(--error)}.sa-label--retired{background:#e4e9f0}.sa-stamp{flex:none;align-self:center;padding:2px 6px 1px 7px;background:var(--paper);color:var(--red);border:2px solid var(--red);border-radius:4px;box-shadow:inset 0 0 0 1px var(--paper),inset 0 0 0 2px var(--red);font:15px/1.2 Flyer,Impact,sans-serif;letter-spacing:.12em;text-transform:uppercase;transform:rotate(-7deg);margin-block:-4px}.sa-chip{align-self:flex-start;max-width:100%;margin:1px 0 0;padding:0 8px;background:var(--paper);color:var(--error);border:2px solid var(--error);border-radius:12px;font-size:14px;font-weight:700;line-height:1.25}.sa-flag{margin:3px 0 0;padding:1px 6px;background:var(--error);color:var(--paper);font-size:14px;font-weight:700;line-height:1.35;border-radius:2px}.sa-share{display:flex;align-items:center;gap:8px;margin:8px 0 3px}.sa-pct{flex:none;padding:4px 7px 3px;font:21px/1 Flyer,Impact,sans-serif;font-weight:400;letter-spacing:.02em;background:var(--royal);color:var(--paper);border:2px solid var(--ink);border-radius:2px;box-shadow:2px 2px 0 var(--ink);transform:rotate(-3deg)}.sa-pct.is-zero{background:var(--paper);color:var(--ink)}.sa-meter{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.sa-of{font-size:14px;line-height:1.2;color:var(--sa-muted);white-space:nowrap}.sa-bar{height:13px;overflow:hidden;background:var(--paper);border:2px solid var(--ink);border-radius:2px}.sa-bar i{display:block;height:100%;background:var(--royal)}.sa-kv{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:0 6px;margin:0;font-size:14px;line-height:1.4}.sa-kv>span{color:var(--sa-muted)}.sa-kv b{margin-left:auto;text-align:end}.sa-kv--value b{font-size:15px}.sa-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding:5px 0}.sa-more{min-height:0;padding:2px 0;border:0;border-radius:0;background:none;color:var(--royal);font-size:14px;font-weight:700;line-height:1.35;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.sa-more:hover:not(:disabled){background:none}.sa-chev{display:inline-block;margin-left:5px;border-inline:5px solid transparent;border-top:6px solid currentColor;vertical-align:2px}.sa-more[aria-expanded=true] .sa-chev{border-top:0;border-bottom:6px solid currentColor}.sa-label--mini .sa-more{flex:none;display:inline-grid;place-items:center;width:22px;height:22px;margin-left:auto;padding:0;border:2px solid var(--royal);border-radius:50%;background:var(--paper)}.sa-label--mini .sa-more:hover:not(:disabled){background:var(--paper)}.sa-label--mini .sa-chev{margin:1px 0 0}.sa-label--mini .sa-more[aria-expanded=true] .sa-chev{margin:0 0 1px}.sa-more:after{content:"";position:absolute;inset:-12px -2px -2px;z-index:2;border-radius:3px}.sa-more:focus-visible{outline:none;box-shadow:none}.sa-more:focus-visible:after{outline:3px solid var(--ink);outline-offset:2px;box-shadow:0 0 0 2px var(--paper)}.sa-barcode{width:44px;height:14px;flex:none;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 5px,transparent 5px 7px,var(--ink) 7px 10px,transparent 10px 11px,var(--ink) 11px 12px,transparent 12px 15px);opacity:.8}.sa-label.is-open{outline:3px solid var(--royal);outline-offset:3px}@container sa-slot (min-width: 190px){.sa-label--full .sa-stamp{position:absolute;right:9px;bottom:7px}.sa-label--full.sa-label--closed .sa-barcode{visibility:hidden}}@container sa-slot (min-width: 360px){.sa-label--full.sa-label--chip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:1fr auto;column-gap:18px}.sa-label--chip .sa-main,.sa-label--chip .sa-figs{display:flex;flex-direction:column;gap:2px;min-width:0}.sa-label--chip .sa-figs .sa-share{margin-top:2px}.sa-label--chip .sa-foot{grid-column:1 / -1}}@container sa-slot (max-width: 189.98px){.sa-price{flex-basis:100%}.sa-age{text-align:start}.sa-wide{display:none}.sa-narrow{display:inline}.sa-pct{padding:3px 5px 2px;font-size:18px}}.sa-drawer{position:relative;grid-column:1 / -1;margin:2px 0 4px;padding:12px 16px 6px;background:var(--paper);border:3px solid var(--royal);box-shadow:0 4px #142c5440}.sa-drawer:before{content:"";position:absolute;top:-15px;left:calc((var(--sa-at) * 2 + 1) * 100% / (2 * var(--sa-cols)) + (var(--sa-at) * 2 - var(--sa-cols) + 1) * var(--sa-gap) / (2 * var(--sa-cols)) - 12px);border:12px solid transparent;border-top:0;border-bottom:12px solid var(--royal)}.sa-drawer-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.sa-drawer h5{margin:0;font:24px/1.15 Flyer,Impact,sans-serif;letter-spacing:.01em;text-transform:uppercase}.sa-drawer-status{margin:8px 0 0;padding:8px 10px;background:var(--warning);border-left:4px solid var(--error);font-size:14px}.sa-drawer dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0 24px;margin:4px 0 0}.sa-drawer .sa-addrs{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));margin:0 0 4px}.sa-drawer .sa-addrs>div{border-bottom:0}.sa-drawer dl>div{display:block;padding:8px 0;border-bottom:1px solid #c2ccdc}.sa-drawer dt{font-size:14px;color:var(--sa-muted)}.sa-drawer dd{max-width:none;margin:2px 0 0;text-align:left}.sa-drawer .sa-addrs dd{font-weight:400}.sa-drawer .address[href]{padding-block:6px}.sa-none{margin:0;padding:18px 8px 4px;font-weight:700}.sa-none button{margin-left:8px}@media(max-width:660px){.sa-section{--sa-gap: 8px;--sa-rail: 14px;--sa-lip: 4px}.sa-toolbar{display:block}.sa-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.sa-filters button{flex-direction:column;justify-content:center;gap:0;padding:3px 2px;font-size:14px;line-height:1.15}.sa-count{font-size:20px;line-height:1;background:none!important;color:inherit}.sa-search{margin-top:10px;font-size:14px}.sa-unit{--sa-post: 4px;border-width:2px;padding-bottom:12px;box-shadow:inset var(--sa-post) 0 0 var(--royal),inset calc(-1 * var(--sa-post)) 0 0 var(--royal),inset 0 -8px 0 var(--ink)}.sa-signrow{padding-top:14px}.sa-sign{font-size:18px}.sa-n{font-size:20px}.sa-shelves{row-gap:12px;padding-top:12px}.sa-label{margin:0;padding:9px 7px 0}.sa-label--mini{padding:9px 7px 6px}.sa-drawer{padding:10px 12px 4px}.sa-drawer h5{font-size:21px}.sa-drawer dl{grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:0 14px}}@media(max-width:539px){.sa-section{--sa-gap: 6px}.sa-unit{margin-inline:-10px}.sa-shelves{padding-inline:3px}.sa-shelves--mini{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.sa-label{padding:9px 6px 0}.sa-label--mini{padding:8px 5px 5px}.sa-label h4{font-size:21px}.sa-label--mini h4{font-size:20px}.sa-price{font-size:26px}.sa-label--mini .sa-price{font-size:24px}.sa-signrow{gap:4px 10px;padding:12px 5px 0}.sa-sign{gap:6px;padding:3px 4px 2px 8px;font-size:17px;letter-spacing:.02em}.sa-shelves{padding-top:11px}.sa-label--full{gap:1px}.sa-share{margin:6px 0 2px}.sa-foot{padding:3px 0 4px}}@media(prefers-reduced-motion:no-preference){.sa-label{transition:transform .15s ease-out,box-shadow .15s ease-out}.sa-label:active,.sa-label.is-open{transform:translateY(-4px)}.sa-label:has(.sa-more:focus-visible){transform:translateY(-4px)}.sa-drawer{animation:sa-open .16s ease-out}}@media(prefers-reduced-motion:no-preference)and (hover:hover){.sa-label:hover{transform:translateY(-4px);box-shadow:0 7px #142c5440}}@keyframes sa-open{0%{opacity:0;transform:translateY(-6px)}}@media(forced-colors:active){.sa-label,.sa-drawer,.sa-pct,.sa-sign,.sa-stamp,.sa-chip{border:2px solid CanvasText}.sa-slot:before,.sa-bar i,.sa-mark{background:CanvasText}}.page-title.character-vault>h1{margin-bottom:auto}@media(max-width:660px){.page-title.character-vault>h1{margin-bottom:0}}.docs-tabs{display:flex;gap:6px;margin:0 0 20px;border-bottom:2px solid var(--ink)}.docs-tabs [role=tab]{border:0;border-radius:0;background:transparent;color:var(--ink);padding:10px 20px;font-size:15px;font-weight:700;box-shadow:none}.docs-tabs [role=tab][aria-selected=true]{background:var(--sun)}.docs-tabs [role=tab]:focus-visible{outline:3px solid var(--royal);outline-offset:3px}[role=tabpanel][hidden]{display:none}.tm-module{grid-column:1 / -1}.tm-module>h2{border-bottom:5px solid var(--sun);padding-bottom:12px}.tm-module>p{max-width:100%;margin-bottom:20px}.tm-module>p:first-of-type{max-width:76ch;font-size:18px}.tm-table{width:100%;border-collapse:collapse;margin:22px 0 32px;font-size:15px;table-layout:fixed}.tm-table th,.tm-table td{padding:13px 12px;border-bottom:1px solid #c3ccdb;vertical-align:top;text-align:left;overflow-wrap:break-word}.tm-table thead{background:var(--subtle)}.tm-table thead th{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);font-size:13px}.tm-table tbody th{font-weight:700;color:var(--royal)}.tm-allocations th:nth-child(1){width:8%}.tm-allocations th:nth-child(2){width:15%}.tm-allocations th:nth-child(3){width:29%}.tm-allocations th:nth-child(4){width:48%}.tm-releases th:nth-child(1){width:12%}.tm-releases th:nth-child(2){width:26%}.tm-releases th:nth-child(3){width:20%}.tm-releases th:nth-child(4){width:42%}.tm-chart{margin:24px 0}.tm-supply>svg{width:100%;height:42px}.tm-supply-legend{display:grid;grid-template-columns:1fr 1fr;gap:10px 32px;margin-top:18px;font-size:14px}.tm-supply-legend>div{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:baseline}.tm-key{height:12px;width:12px;border:1px solid var(--line)}.tm-supply-legend strong{font-size:16px}.tm-release{padding:22px;background:var(--subtle);border:1px solid #c3ccdb}.tm-release>figcaption{font-family:Flyer,Impact,sans-serif;text-transform:uppercase;font-size:25px;margin-bottom:16px}.tm-unit{font-size:13px;font-weight:700;margin-bottom:4px}.tm-release svg{width:100%;overflow:visible}.tm-release svg text{font:12px Arial,Helvetica,sans-serif;fill:var(--ink)}.tm-x-label{text-align:center;font-size:13px;margin-top:5px}.tm-series{display:flex;flex-wrap:wrap;gap:8px 26px;font-size:13px;margin-top:20px}.tm-series>span{display:flex;align-items:center;gap:8px}.tm-line{display:inline-block;width:24px;border-top:3px solid var(--royal)}.tm-line.liquidity{border-color:var(--ink);border-top-style:dashed}.tm-line.vested{border-color:var(--red)}.tm-plot-phone{display:none}@media(max-width:660px){.tm-module{padding:16px 14px}.tm-module>p:first-of-type{font-size:16px}.tm-table{font-size:14px;margin-bottom:26px}.tm-table thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%)}.tm-table,.tm-table tbody,.tm-table tr,.tm-table td,.tm-table tbody th{display:block;width:100%}.tm-table tr{border-top:2px solid var(--ink);padding:12px 0}.tm-table td,.tm-table tbody th{border:0;padding:4px 0}.tm-table td:before{content:attr(data-label);display:block;font-size:12px;font-weight:700;color:#485974}.tm-table tbody th:nth-child(1){width:100%;font-size:20px}.tm-allocations tr{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.tm-allocations td:nth-child(2){text-align:right}.tm-allocations td:nth-child(n+3){grid-column:1 / -1}.tm-allocations td:nth-child(3){font-weight:700;font-size:16px}.tm-supply-legend{grid-template-columns:1fr;font-size:13px;gap:10px}.tm-release{padding:12px 8px}.tm-release>figcaption{font-size:23px}.tm-plot-wide{display:none}.tm-plot-phone{display:block}.tm-series{flex-direction:column;font-size:12px;gap:10px}.tm-series>span{align-items:baseline}.tm-line{flex-shrink:0}}.tm-live dl{display:grid;grid-template-columns:1fr auto;gap:8px 20px}.tm-live dd{margin:0}.tm-addresses{display:grid;gap:12px;overflow-wrap:anywhere}@media(min-width:661px)and (max-width:900px){.tm-table th,.tm-table td{padding-left:6px;padding-right:6px}.tm-allocations th:nth-child(1){width:9%}.tm-allocations th:nth-child(2){width:20%}.tm-allocations th:nth-child(3){width:27%}.tm-allocations th:nth-child(4){width:44%}}.bg-module{padding:28px}.bg-module>h2{border-bottom:6px solid var(--sun);padding-bottom:12px;margin-bottom:22px}.bg-intro{font-size:18px}.bg-section{margin-top:34px}.bg-section>h3{font-family:Flyer,Impact,sans-serif;text-transform:uppercase;font-size:29px;margin:0 0 16px}.bg-formula{padding:12px 16px;border-left:4px solid var(--royal);background:var(--subtle);font-weight:700;margin:8px 0;overflow-wrap:break-word}.bg-formula+p{margin-top:18px}.bg-examples{display:grid;gap:22px;margin-top:24px}.bg-deposits{grid-template-columns:repeat(2,minmax(0,1fr))}.bg-example{padding:20px;border:1px solid #c3ccdb;min-width:0}.bg-example h4{font-size:20px;line-height:1.25;color:var(--royal);margin:0 0 16px}.bg-example>p:last-child{margin-bottom:0}.bg-table{width:100%;border-collapse:collapse;margin:22px 0;font-size:14px}.bg-table th,.bg-table td{padding:12px 10px;border-bottom:1px solid #c3ccdb;vertical-align:top;text-align:left}.bg-table thead th{background:var(--subtle);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}.bg-table tbody th{font-weight:500}.bg-table td:last-child{font-weight:700;color:var(--royal)}.bg-deposits .bg-table td{min-width:105px}@media(max-width:900px){.bg-deposits{grid-template-columns:1fr}}@media(max-width:660px){.bg-module{padding:16px 14px}.bg-intro{font-size:16px}.bg-section>h3{font-size:26px}.bg-example{padding:14px 12px}.bg-formula{padding:10px 12px}.bg-table{font-size:14px}.bg-table th,.bg-table td{padding:10px 4px}.bg-deposits .bg-table td{min-width:0}.bg-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.bg-table,.bg-table tbody,.bg-table tr,.bg-table td,.bg-table tbody th{display:block;width:100%}.bg-table tr{padding:10px 0;border-top:2px solid var(--ink)}.bg-table td,.bg-table tbody th{border:0;padding:4px 0}.bg-table tbody th{font-weight:700}.bg-table td:before{content:attr(data-label);display:block;font-size:12px;color:#485974;font-weight:500}.docs-tabs button{padding-inline:14px}}@media(min-width:961px){.deposit-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:40px;align-items:start}.deposit-right .all-stocks ul{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}.deposit-right .all-stocks.open-list{margin-bottom:0}.deposit-notes{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}.deposit-notes h2{margin-top:0}}.deposit-main>button,.deposit-main>form+button{margin-top:12px}.item-table{overflow-x:auto;margin:16px 0}.item-gauges{width:100%;border-collapse:collapse;font-size:14px}.item-gauges th,.item-gauges td{padding:8px;text-align:left;white-space:nowrap;border-bottom:1px solid #c3ccdb}.item-gauges thead th{border-bottom:2px solid var(--ink);font-size:13px}.item-gauges tbody th{font-weight:700;color:var(--royal)}@media(max-width:660px){.page-title.has-character.character-vault{--bw: 138px}.page-title.character-vault .title-character{--gx: max( 0px, min( calc((100% - var(--w)) / 2), calc(100% + var(--pad) - 4px - var(--w) * var(--bx) - var(--bw)) ) )}.page-title.character-vault .title-character:after{right:calc(-1 * var(--pad));width:auto}.page-title.character-vault>h1{text-align:center}}@media(max-width:660px)and (forced-colors:none){.page-title.character-deposit:has(>h1:focus-visible) .title-character:after,.page-title.character-redeem:has(>h1:focus-visible) .title-character:after{bottom:-6px;width:calc(var(--pad) + var(--gx) + var(--w) + var(--col-gap) - 6px)}}.page-title.character-earn{--ratio: .453;--bx: .776;--tx: .57;--mouth: .173;--bw: 126px;--em1: 2.6;--em2: 2.6}.page-title.character-transparency{--ratio: .4;--bx: 1.035;--tx: .71;--mouth: .199;--bw: 182px;--em1: 8.3;--em2: 8.3}@media(max-width:660px){.page-title.character-earn{--bw: 102px;--bx: .83}.page-title.character-transparency{--bw: 147px;--bx: 1.035;--tx: .69}}.item-section{margin:28px 0}.item-section>h2{margin-bottom:12px}.earn-gauges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.earn-card{min-width:0}.item-pool{margin-bottom:20px}.item-pool .address{display:block}.item-figures,.item-setup{margin:16px 0}.item-figures>div,.item-setup>div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}.item-figures dt,.item-setup dt{min-width:0}.item-figures dd,.item-setup dd{margin:0;text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.item-action{margin-top:22px;padding-top:18px;border-top:2px solid var(--line)}.item-action label{display:block}.item-action input{width:100%;margin:8px 0}.item-buttons,.item-claims,.item-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}.item-refresh{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:18px 0}.item-source,.find-item,.transparency-balances{overflow-wrap:anywhere}.transparency-balances .item-table{max-width:100%;overflow-x:auto}.transparency-balances table{width:100%}.transparency-balances td,.transparency-balances th{padding:14px 12px;vertical-align:top}.transparency-balances small{display:block;margin-top:6px;font-size:.85em}.transparency-balances .address{display:block;min-width:12ch}@media(max-width:660px){.earn-gauges{grid-template-columns:minmax(0,1fr)}.item-figures>div{gap:10px}.transparency-balances table{min-width:660px}}nav>div{grid-template-columns:repeat(5,1fr)}.transparency-balances td:nth-child(2),.transparency-balances td:nth-child(3){white-space:nowrap}.transparency-balances th:first-child{min-width:14ch;overflow-wrap:normal}.docs-grid p a[href="#earn"]{display:inline;min-height:0}@media(max-width:359px){nav>div{gap:6px}nav a{font-size:18px;line-height:25.2px}}.refined-card{align-self:start;min-width:0}.refined-heading h3{margin:0}.refined-personal{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px;padding:18px 0 22px;margin:0}.refined-personal>div{display:block;border:0;padding:0}.refined-personal dt{font-size:13px;margin-bottom:7px}.refined-personal dd{text-align:left;max-width:none;font-size:21px;line-height:1.35}.refined-personal>div:first-child dd{font-size:15px}.refined-empty{margin:14px 0 22px;font-size:14px}.refined-workspace,.refined-panels,.refined-tab-panel{min-width:0}.refined-tabs{display:flex;gap:0;margin:0;border-bottom:2px solid var(--royal)}.refined-tabs [role=tab]{flex:1 1 0;min-width:0;padding:12px 6px;border:0;border-radius:0;background:transparent;font-size:14px;line-height:1.25}.refined-tabs [role=tab][aria-selected=true]{background:var(--sun);color:var(--ink)}.refined-card [hidden]{display:none!important}.refined-tab-panel{padding:22px 0 0}.refined-tab-panel h4{margin:0 0 14px;font-size:20px}.refined-explainer{font-size:14px;line-height:1.6;margin:0 0 22px}.refined-explainer strong{display:block;margin-bottom:4px}.refined-card .item-action{border:0;margin:0;padding:0}.refined-card .item-action label{font-weight:700;font-size:14px}.refined-card .item-action input{margin:8px 0;min-width:0;height:49px}.refined-token-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.refined-token-entry{min-width:0}.refined-matched{margin:0}.refined-matched>div{display:block;border:0;padding:0}.refined-matched dt{font-weight:700;line-height:1.5}.refined-matched dt span{font-size:11px;font-weight:400;margin-left:4px}.refined-matched dd{display:flex;align-items:center;text-align:left;max-width:none;min-height:49px;margin:8px 0;border:1px solid var(--line);background:var(--subtle);padding:10px 12px;font-size:18px;line-height:1.4}.refined-balance{margin:0;font-size:12px}.refined-balance>div{display:block;border:0;padding:0}.refined-balance dt{font-size:12px}.refined-balance dd{max-width:none;text-align:left;margin:2px 0 4px}.refined-card .refined-max{margin-top:5px;padding:5px 0;min-height:36px;border:0;background:transparent;color:var(--royal);font-size:13px;text-decoration:underline;text-underline-offset:3px}.refined-card .refined-max:disabled{color:#53617a}.refined-estimate{margin:20px 0 0;font-size:13px}.refined-estimate>div{display:block;padding:12px 0;border-top:1px solid var(--line);border-bottom:0}.refined-estimate dd{text-align:left;max-width:none;margin-top:4px}.refined-card .item-buttons{gap:8px;margin-top:14px}.refined-card .item-buttons button{padding:9px 12px}.refined-details{margin-top:18px;border-top:1px solid var(--line);padding-top:8px;font-size:13px}.refined-details summary,.refined-withdraw summary{cursor:pointer;padding:10px 0;color:var(--royal);font-weight:700}.refined-details .item-pool{margin:8px 0 0}.refined-card .refined-available{margin:0 0 18px;padding:12px;background:var(--subtle)}.refined-available>div{display:block;padding:0;border:0}.refined-available dd{text-align:left;max-width:none;margin-top:4px}.refined-card .item-claims{margin-top:16px}.refined-card .item-claims button{background:var(--royal);color:var(--paper);border-color:var(--royal)}.refined-card .item-claims button:disabled{background:#e4e9f0;color:#53617a;border-color:#8c98ab}.refined-manage-figures,.refined-global{font-size:14px;margin:0}.refined-global>div,.refined-manage-figures>div{padding:10px 0}.refined-caption{margin:14px 0 0;font-size:13px;line-height:1.6}.refined-withdraw{margin-top:24px;padding-top:8px;border-top:1px solid var(--line)}.refined-withdraw .refined-caption{margin:4px 0 18px}.refined-address{margin-top:22px;margin-bottom:0;font-size:13px}.refined-card>.error:empty{display:none}@media(max-width:660px){.refined-card{padding:16px 12px}.refined-tabs [role=tab]{font-size:12px;padding:11px 4px;min-height:52px}.refined-personal{gap:12px;padding-bottom:18px}.refined-personal dd{font-size:18px}.refined-personal>div:first-child dd{font-size:13px}.refined-tab-panel{padding-top:18px}.refined-token-pair{grid-template-columns:minmax(0,1fr);gap:18px}.refined-balance>div{display:flex;flex-wrap:wrap;gap:3px 8px;justify-content:space-between}.refined-balance dd{margin:0}.refined-explainer{margin-bottom:18px;font-size:13px}.refined-global>div{display:block}.refined-global dd{max-width:none;text-align:left;margin-top:3px}}.refined-pool-picker{display:flex;align-items:center;gap:16px;margin:24px 0 16px}.refined-pool-picker label{font-size:14px;font-weight:700}.refined-pool-picker select{width:240px;max-width:100%;margin:0}.refined-focused-gauges{grid-template-columns:minmax(0,1fr)}.refined-focused-gauges>[hidden]{display:none!important}.refined-focused-gauges>div{min-width:0}.refined-b3 .refined-workspace{max-width:960px;margin-inline:auto}.refined-b3 .refined-heading{margin-bottom:12px}.refined-b3 .refined-personal{grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-width:740px;padding-bottom:28px;gap:32px}.refined-b3 .refined-tabs [role=tab]{flex:0 1 auto;padding-inline:24px}.refined-b3 .refined-tab-panel{padding-top:28px}@media(min-width:901px){.refined-b3{padding:30px 36px}.refined-b3 .refined-heading{max-width:960px;margin:0 auto}.refined-b3 .refined-personal,.refined-b3 .refined-empty{max-width:960px;margin-inline:auto}.refined-b3 .refined-personal{padding-top:20px}.refined-b3 .item-action[data-liquidity]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:0 42px}.refined-b3 .item-action[data-liquidity]>.refined-explainer{grid-column:1;grid-row:1 / 7;font-size:15px;line-height:1.7;max-width:32ch;margin:0}.refined-b3 .item-action[data-liquidity]>.refined-explainer strong{font-size:18px;line-height:1.5;margin-bottom:12px}.refined-b3 .item-action[data-liquidity]>:not(.refined-explainer){grid-column:2}.refined-b3 .refined-tab-panel:not(:has([data-liquidity])){max-width:740px}.refined-b3 .refined-tab-panel:not(:has([data-liquidity])) .item-action{max-width:580px}}@media(max-width:660px){.refined-pool-picker{margin-top:20px;gap:12px}.refined-pool-picker select{flex:1;min-width:0;width:auto}.refined-b3 .refined-personal{gap:12px;padding-bottom:18px}.refined-b3 .refined-tabs [role=tab]{flex:1 1 0;padding-inline:4px}.refined-b3 .refined-tab-panel{padding-top:18px}}.refined-card .refined-token-entry label{margin-bottom:8px}@media(min-width:901px){.refined-b3>.note,.refined-b3>.action-status,.refined-b3>.error{max-width:960px;margin-inline:auto}}.token-prices{max-width:1160px;margin:0 auto 12px;padding:12px 16px;background:var(--subtle);color:var(--ink);border:1px solid var(--line);border-radius:3px}.token-price-values{display:flex;align-items:center;flex-wrap:wrap;gap:8px 32px;font-size:15px;line-height:24px}.token-price{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.token-price>span,.token-price strong{white-space:nowrap}.token-price svg{width:20px;height:20px;flex:none}.token-prices p{margin:6px 0 0;font-size:12px;line-height:18px}.price-sr-only,.pool-buttons input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pool-buttons{width:max-content;max-width:100%;padding:0;gap:0;border:2px solid var(--royal);border-radius:3px;min-width:0}.pool-buttons label{position:relative;margin:0;cursor:pointer}.pool-buttons label+label{border-left:2px solid var(--royal)}.pool-buttons label>span{display:block;min-height:48px;padding:12px 24px;background:var(--paper);font-size:14px;font-weight:700;text-align:center}.pool-buttons input:checked+span{background:var(--sun)}.pool-buttons input:focus-visible+span{outline:3px solid var(--ink);outline-offset:-4px}.refined-tabs [role=tab]{overflow-wrap:normal}@media(max-width:1200px){.token-prices{margin-inline:20px}}@media(max-width:660px){.token-prices{margin-inline:12px;padding:10px 12px}.token-price-values{font-size:13px;gap:8px 16px}.token-price{gap:6px}.token-prices p{font-size:11px}.pool-buttons{width:100%;gap:0}.pool-buttons label{flex:1}.pool-buttons label>span{padding:12px 10px}} +@font-face{font-family:Flyer;src:url(./Anton-Byf51wtH.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Pixel;src:url(./VT323-wDgJuOC9.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}:root{--sky: #8ad1f2;--sun: #ffdb29;--red: #df2029;--royal: #174bc1;--ink: #142c54;--paper: #fff;--subtle: #edf5ff;--warning: #fff5c4;--error: #a01520;--line: #8091ae;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--sky);font-synthesis:none;line-height:1.5;font-size:16px;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{touch-action:manipulation}button{cursor:pointer;min-height:44px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);padding:9px 16px;font-weight:700;border-radius:3px}button:hover:not(:disabled){background:var(--subtle)}button.primary{background:var(--royal);color:var(--paper);border-color:var(--royal)}button:disabled{background:#e4e9f0;color:#53617a;cursor:not-allowed;border-color:#8c98ab}a{color:var(--royal);text-decoration-thickness:2px;text-underline-offset:3px}a:hover{text-decoration-thickness:3px}a,button,input,select,textarea,summary{outline-offset:4px}:focus-visible{outline:3px solid var(--ink);box-shadow:0 0 0 6px var(--sun)}[tabindex="-1"]:focus:not(:focus-visible){outline:none}h1,h2,h3{font-family:Flyer,Impact,sans-serif;font-weight:400;line-height:1.125;text-transform:uppercase;text-wrap:balance;margin:0 0 16px;letter-spacing:.01em}h1{font-size:clamp(40px,5.5vw,76px)}h2{font-size:32px}h3{font-size:25px}p{margin:0 0 16px;text-wrap:pretty}p:last-child{margin-bottom:0}small{font-size:14px;display:block}strong{font-weight:700}svg{display:block;max-width:100%}.skip{position:absolute;top:-100px;left:12px;z-index:5;padding:12px;background:var(--paper)}.skip:focus{top:8px}.restriction{display:flex;align-items:center;gap:12px;padding:12px max(20px,calc((100vw - 1200px)/2));background:var(--paper);font-size:14px;border-bottom:4px solid var(--red)}.restriction p{margin:0}.restriction-mark{border:2px solid var(--ink);border-radius:50%;min-width:26px;text-align:center;font-weight:700}header{background:var(--royal);border-block-end:7px solid var(--red)}.marquee{display:flex;background:var(--sun);color:var(--ink);border-bottom:4px solid var(--red);overflow:hidden}.marquee>div{flex:1;min-width:0;overflow:hidden;padding-block:9px;font-family:Pixel,monospace;font-size:24px;line-height:1}.marquee span{display:block;width:max-content}.header-inner{max-width:1200px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:32px;padding:26px 20px 30px;position:relative}.header-inner:before,.header-inner:after{content:"";height:5px;background:var(--paper);box-shadow:0 4px #6499de;position:absolute;top:10px;width:25%;pointer-events:none}.header-inner:before{left:4%}.header-inner:after{right:4%}.brand{display:flex;align-items:center;gap:18px;color:var(--paper);text-decoration:none;font:400 clamp(55px,7.5vw,90px) / 1 Flyer,Impact,sans-serif;text-transform:uppercase;letter-spacing:2px;padding:12px 22px;background:var(--red);border:5px solid var(--sun);box-shadow:6px 6px 0 var(--ink)}.brand-sub{display:block;font:18px/1.2 Pixel,monospace;letter-spacing:8px;text-align:center}.basket-art{width:95px;height:95px;color:var(--sun)}.basket-icon{width:32px;height:32px}.wallet-area{display:flex;flex-wrap:wrap;max-width:280px;justify-content:flex-end;align-items:center;gap:12px;color:var(--paper)}.chain-label{width:100%;text-align:right;font-size:14px}.connected-address{font-family:monospace}.disconnect{position:relative;min-height:24px;padding:0 8px;font-size:13px}.disconnect:after{content:"";position:absolute;inset:-12px 0}nav{max-width:900px;margin:auto;padding:0 24px 22px}nav>div{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}nav a{position:relative;background:var(--paper);border:4px solid var(--sun);box-shadow:3px 3px 0 var(--ink);color:var(--ink);font:28px/1.2 Flyer,sans-serif;text-transform:uppercase;text-align:center;text-decoration:none;padding:12px 4px;min-height:52px}nav a:before,nav a:after{content:"";width:3px;height:18px;background:var(--sun);position:absolute;top:-20px}nav a:before{left:20%}nav a:after{right:20%}nav a[aria-current=page]{background:var(--sun);border-color:var(--paper)}.shop-window{max-width:1200px;margin:20px auto 0;border:5px solid var(--sun);outline:3px solid var(--red)}main{max-width:1200px;margin:auto;padding:18px 20px 44px}.data-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--paper);padding:8px 14px;border:2px solid var(--ink);font-size:14px}.refresh{font-size:14px}.wallet-status:not(:empty),.read-errors{padding:16px;background:var(--paper);border:3px solid var(--ink);margin-top:12px;overflow-wrap:anywhere}.wallet-status:empty{display:none}.read-errors summary{min-height:44px;cursor:pointer}.page-title{border:7px solid var(--sun);outline:4px solid var(--red);background:var(--royal);color:var(--paper);padding:28px;margin:28px 0;position:relative;overflow:hidden}.page-title:after{content:"";display:block;height:12px;margin:22px -28px -28px;background:repeating-linear-gradient(90deg,var(--paper) 0 18px,var(--royal) 18px 36px);border-top:3px solid var(--sun)}.page-title>p:last-of-type{max-width:58ch}.eyebrow{font:22px/1.3 Pixel,monospace;text-transform:uppercase;letter-spacing:1px;margin-bottom:12px}.burst{display:flex;align-items:center;justify-content:center;background:var(--sun);color:var(--ink);font:28px Flyer,sans-serif;width:96px;height:96px;clip-path:polygon(50% 0,60% 17%,78% 5%,79% 26%,100% 25%,89% 45%,100% 57%,79% 65%,83% 88%,60% 83%,50% 100%,41% 82%,21% 95%,21% 72%,0 74%,12% 54%,0 39%,23% 33%,19% 12%,40% 19%);flex-shrink:0}.burst.small{width:70px;height:70px;font-size:20px}.panel{background:var(--paper);border:5px solid var(--sun);box-shadow:0 0 0 3px var(--red);padding:24px;margin-block:24px;min-width:0}.panel .panel{box-shadow:none;border:2px solid var(--royal);margin-block:0;padding:20px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.section-heading h2,.section-heading .eyebrow{margin:0}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px}.stats>div{border:2px solid var(--royal);padding:18px 14px;background:var(--paper)}.stats span{display:block;font-size:14px}.stats small{font-size:12px}.stats strong{font-size:26px;display:block;overflow-wrap:anywhere;line-height:1.4}.two-col,.flow-layout,.docs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.flow-layout{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start}.flow-layout>.panel,.docs-grid>.panel{margin-block:0 24px}.deposit-led-sign{display:block;width:176px;margin:0 0 12px;max-width:100%;height:auto;flex:0 0 auto}.deposit-led-border,.deposit-led-chase{fill:none;stroke:#296bcc;stroke-width:2.8px;stroke-linecap:round;stroke-dasharray:.1 7.9}.deposit-led-chase{stroke:#80b8ff;stroke-dasharray:.1 31.9;animation:deposit-led-chase 3.2s linear infinite}.deposit-led-letters{animation:deposit-led-glow 3.2s ease-in-out infinite}@keyframes deposit-led-chase{to{stroke-dashoffset:-32px}}@keyframes deposit-led-glow{0%,to{opacity:1}50%{opacity:.78}}@media(prefers-reduced-motion:reduce){.deposit-led-chase,.deposit-led-letters{animation:none}}.deposit-state{padding:16px;background:var(--subtle);border-left:4px solid var(--royal)}.deposit-state p{margin-block:8px 0}.deposit-notice{padding:0;border:0;background:none}.deposit-summary>.deposit-state{padding:0;border:0;background:none}.deposit-summary:empty{display:none}.deposit-summary>.deposit-state>strong{margin-right:8px}.deposit-summary>.deposit-state>p:first-of-type{display:inline;margin:0}.deposit-summary>.deposit-state>p:not(:first-of-type){display:none}.hours-tag{width:fit-content;max-width:100%;margin:0 0 16px;padding:5px 14px;background:var(--royal);color:var(--paper);border:2px solid var(--ink);border-radius:20px;font-size:15px;line-height:1.4;text-wrap:pretty}.hours-tag strong{white-space:normal}.hours-tag span{display:inline-block}.stock-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.stock-card{background:var(--paper);border:3px solid var(--royal);padding:18px;min-width:0}.stock-top{display:flex;align-items:start;justify-content:space-between;gap:12px}.stock-top h3{overflow-wrap:anywhere}.badge{font-size:13px;font-weight:700;padding:4px 8px;border:1px solid var(--ink);background:var(--subtle)}.chain-text,.address{overflow-wrap:anywhere;word-break:break-word}.address{font-family:monospace;font-size:13px;display:block;line-height:1.65}.address[href]{padding-block:10px;min-height:44px}dl{margin:12px 0}dl>div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #c2ccdc;padding:10px 0}dt{font-size:14px}dd{margin:0;text-align:right;font-weight:700;max-width:62%;overflow-wrap:anywhere}dd small{font-weight:400}.stock-card dl>div{display:block}.stock-card dd{text-align:left;max-width:100%;margin-top:4px}.stock-card summary{font-size:14px;padding-block:12px;min-height:44px;cursor:pointer}.pairing-warning{display:block;background:var(--warning);color:var(--error);border:2px solid var(--error);font-weight:700;padding:8px;font-size:14px}.note{padding:16px;border-left:4px solid var(--royal);background:var(--subtle);margin-block:16px}.warning{background:var(--warning);color:var(--ink);border-color:var(--error)}.error{color:var(--error);overflow-wrap:anywhere}.error:empty{display:none}.empty{padding:28px;background:var(--paper);border:2px dashed var(--royal);text-align:center;margin:20px 0}.empty svg{margin:0 auto 16px}.empty p{max-width:55ch;margin:auto}label{display:block;font-weight:700;margin-block:0 18px}input:not([type=checkbox]),textarea,select{display:block;min-width:0;width:100%;min-height:48px;padding:10px;border:2px solid var(--line);border-radius:3px;background:var(--paper);color:var(--ink);margin-top:6px;font-size:16px}textarea{resize:vertical}label small{font-weight:400;margin-top:6px}.confirm{display:flex;gap:12px;align-items:flex-start;font-weight:400;min-height:44px;padding:10px;background:var(--warning)}input[type=checkbox]{min-width:22px;height:22px;margin-top:2px;accent-color:var(--royal)}.receipt{border:2px solid var(--line);padding:18px;background:var(--paper);margin-block:18px;min-width:0}.button-row{display:flex;flex-wrap:wrap;gap:12px;align-items:start;margin-top:18px}.tx-control{margin-top:12px}.role-info{font-size:13px;margin-block:14px;color:var(--ink)}.roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.roles strong{display:block}.owner-section{margin-block:30px}.owner-section>p{max-width:75ch}.owner-section .two-col{align-items:start}.pairing-grid,.claim-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pairing-grid .receipt,.claim-grid .receipt{margin-block:14px 0}.setting-panel>h3{margin-top:0}.setting-panel .action-panel{border:0;padding:0}.floor-strip{height:30px;background:conic-gradient(var(--paper) 25%,var(--royal) 0 50%,var(--paper) 0 75%,var(--royal) 0) 0/30px 30px;border-block:5px solid var(--red)}footer{padding:32px max(20px,calc((100vw - 1160px)/2));background:var(--sun);border-top:4px solid var(--ink)}footer>div{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-block:8px}footer strong{font:27px Flyer,sans-serif;text-transform:uppercase}.footer-links{display:flex;gap:16px;flex-wrap:wrap;width:100%}.footer-links a{min-height:44px;padding-block:10px}.docs-grid p{max-width:70ch}.docs-grid h2{border-bottom:5px solid var(--sun);padding-bottom:12px}.muted{color:#485974}@media(prefers-reduced-motion:no-preference){button{transition:background-color .15s,color .15s}button:active:not(:disabled){box-shadow:inset 0 0 0 2px currentColor}}@media(max-width:960px){.stock-grid,.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col,.roles{grid-template-columns:1fr}.brand{font-size:64px}.basket-art{width:68px}.flow-layout{grid-template-columns:1fr 1fr}.pairing-grid{grid-template-columns:1fr}}@media(max-width:660px){.restriction{padding:10px 14px;font-size:13px;align-items:flex-start}.header-inner{display:block;padding:28px 18px}.brand{max-width:330px;font-size:62px;margin:auto;gap:14px;justify-content:center;padding:10px 14px}.brand-sub{font-size:16px}.basket-art{height:70px;width:70px}.wallet-area{max-width:none;justify-content:center;margin-top:22px;gap:10px}.chain-label{width:auto;text-align:center}nav{padding:2px 14px 18px}nav>div{gap:10px}nav a{font-size:21px;border-width:3px;padding:10px 1px}.shop-window{margin:14px 14px 0}main{padding:14px 16px 28px}.data-bar{align-items:flex-start;flex-wrap:wrap;padding:10px;font-size:13px;gap:6px}.refresh{width:100%}.page-title{padding:22px 18px;border-width:5px;margin-block:24px}.page-title:after{margin:20px -18px -22px}.page-title .eyebrow{font-size:20px}h1{font-size:45px;line-height:1.125}h2{font-size:30px}h3{font-size:24px}.panel{padding:18px 14px;border-width:5px;margin-block:24px}.panel .panel{padding:16px 12px}.flow-layout,.docs-grid,.two-col,.stock-grid,.roles,.claim-grid{grid-template-columns:1fr;gap:20px}.stats{gap:10px}.stats>div{padding:12px 10px}.stats strong{font-size:21px}.section-heading{align-items:flex-start;flex-wrap:wrap}.section-heading .eyebrow{font-size:18px}.stock-card{padding:16px}.stock-card dl>div{display:flex}.stock-card dd{text-align:right;max-width:60%;margin:0}.stock-card h3{font-size:27px}.owner-section .two-col{gap:18px}.receipt{padding:14px}.button-row>*{width:100%}.button-row button{width:100%}.role-info .address{font-size:12px}.eyebrow{font-size:20px}.docs-grid>.panel{margin-bottom:4px}footer{padding:22px 18px}.footer-links{gap:8px 16px}.address{font-size:12px}dd{max-width:58%}}@media(forced-colors:active){:focus-visible{outline:3px solid Highlight;box-shadow:none}.panel{border:3px solid CanvasText}.brand,nav a{border-color:CanvasText}}.docs-grid a:not(.address),.wallet-status a{display:inline-flex;align-items:center;min-height:44px}.panel>button,.panel>form+button{margin-top:12px}.marquee-track{display:grid;width:max-content}.marquee-half{grid-area:1 / 1;display:flex}.marquee-half+.marquee-half{transform:translate(100%)}.marquee-half>span{flex:none;white-space:pre}.marquee-half>span:nth-child(n+2){display:none}@media(min-width:721px){.marquee-half>span:nth-child(2){display:block}}@media(min-width:1441px){.marquee-half>span:nth-child(3){display:block}}@media(min-width:2161px){.marquee-half>span:nth-child(4){display:block}}@media(min-width:2881px){.marquee-half>span:nth-child(5){display:block}}@media(min-width:3601px){.marquee-half>span:nth-child(6){display:block}}@media(min-width:4321px){.marquee-half>span:nth-child(7){display:block}}@media(min-width:5041px){.marquee-half>span:nth-child(8){display:block}}button.primary:hover:not(:disabled),button.primary:focus-visible:not(:disabled),button.primary:active:not(:disabled){background:var(--ink);color:var(--paper);border-color:var(--ink)}button.primary:disabled{background:#e4e9f0;color:#53617a;border-color:#8c98ab}.stock-card dl>div{display:flex}.stock-card dd{text-align:right;margin:0;max-width:60%}summary{min-height:44px;padding-block:10px;cursor:pointer}.action-panel>summary{font:25px/1.3 Flyer,sans-serif;text-transform:uppercase}.action-panel[open]>summary{margin-bottom:14px}.action-status,.disabled-reason{margin:8px 0;font-size:14px;overflow-wrap:anywhere}.action-status a{display:inline-block;min-height:44px;padding-block:10px}.receiver{padding:12px;background:var(--subtle);margin-block:12px}.receiver .address,.chosen-stock .address{font-size:14px}.jump-links{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.owner-section{scroll-margin-top:16px}.flow-layout.one-column{grid-template-columns:minmax(0,1fr)}.wallet-connect{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:20px}.wallet-connect p{margin:0}.wallet-line{font-size:15px}.deposit-rows{margin-bottom:20px;border-bottom:1px solid var(--line)}.deposit-rows:empty{display:none}.deposit-row{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,4fr) auto auto;align-items:center;gap:10px 12px;padding-block:18px;border-top:1px solid var(--line)}.deposit-row label{margin:0;font:24px/1.15 Flyer,Impact,sans-serif;letter-spacing:.01em;text-transform:uppercase;overflow-wrap:anywhere}.deposit-row small{margin-top:2px;overflow-wrap:anywhere}.deposit-row small span{white-space:nowrap}.deposit-row input:not([type=checkbox]){margin-top:0;font-weight:700;text-overflow:ellipsis}button.quiet{padding-inline:12px;border-color:var(--line);font-size:14px}button.quiet.remove,button.quiet.small-toggle{border-color:transparent;background:none;color:var(--royal);text-decoration:underline;text-underline-offset:3px}button.quiet.remove:hover:not(:disabled),button.quiet.small-toggle:hover{text-decoration-thickness:2px}button.quiet.remove:disabled{color:#53617a;text-decoration:none}button.quiet.small-toggle{margin-bottom:8px;margin-left:-2px;padding-inline:0}.deposit-row.blocked label,.deposit-row.blocked small{color:#485974}.deposit-row.blocked input:not([type=checkbox]){background:#e4e9f0;border-color:#8c98ab;color:#53617a;-webkit-text-fill-color:#53617a;opacity:1}.row-note{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0;font-size:14px}.stock-search{max-width:420px;margin-block:12px}.stock-search input::placeholder{color:#53617a;opacity:1}.stock-matches{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px}.stock-matches:empty{display:block;margin:0}.stock-matches button{overflow-wrap:anywhere}.stock-matches p{margin:0;font-size:14px}.all-stocks summary{width:fit-content;color:var(--royal);font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:3px}.all-stocks summary:hover{text-decoration-thickness:2px}.all-stocks[open],.all-stocks.open-list{margin-bottom:20px}.all-stocks p{margin:6px 0 10px;font-size:14px}.all-stocks .list-title{margin:0;font-weight:700}.all-stocks ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:8px;margin:0;padding:0;list-style:none}.all-stocks li{min-width:0}.all-stocks li.wide{grid-column:span 2}.all-stocks ul button{width:100%;padding-inline:4px;overflow-wrap:anywhere}.deposit-total{margin-block:20px;padding-top:16px;border-top:1px solid var(--line);overflow-wrap:anywhere}.deposit-total p{margin-bottom:4px}.deposit-total strong{font-size:20px}.deposit-total small{margin-bottom:8px}.one-column form>.primary{margin-top:8px}.received{font-weight:700}.flow-steps{margin-block:14px}@media(min-width:661px){h1{font-size:64px}}@media(max-width:660px){.header-inner{padding:12px 14px}.header-inner:before,.header-inner:after{display:none}.brand{font-size:42px;padding:5px 12px;border-width:3px;max-width:280px}.brand-sub{font-size:16px;letter-spacing:6px}.basket-art{width:44px;height:50px}.wallet-area{margin-top:10px}.disconnect{padding-inline:4px;font-size:12px}nav{padding-bottom:10px}nav a{min-height:44px;padding-block:7px}nav a:before,nav a:after{display:none}.shop-window{margin-top:4px}main{padding-top:10px}.data-bar{align-items:center;flex-wrap:nowrap;padding:4px 8px}.refresh{width:auto;flex:none;font-size:12px;padding:4px 8px}.page-title{padding:14px;margin-block:16px}.page-title .eyebrow{margin-bottom:6px;font-size:20px}h1{font-size:36px;margin-bottom:8px;line-height:1.222222}.page-title:after{height:8px;margin:12px -14px -14px}.panel{margin-block:16px;padding:14px 12px}.empty{padding:16px;margin-block:12px}.address,.role-info .address{font-size:13px}.deposit-row{grid-template-columns:minmax(0,1fr) auto auto;gap:8px;padding-block:14px}.row-stock{grid-column:1 / -1}button.quiet{padding-inline:10px}}.page-title .eyebrow{font:700 14px/20px Arial,Helvetica,sans-serif;letter-spacing:1px}@media(max-width:660px){.wallet-status.transaction-summary{display:none}}.store-shelf{--food-size: 40px;--shelf-gap: 12px;--plank-size: 8px;--plank-edge: 2px;display:grid;width:100%;height:120px;overflow:hidden;background:#c4e7ff;margin-bottom:20px}.shop-window .store-shelf{margin:0}.shelf-row{position:relative;display:flex;align-items:flex-end;gap:var(--shelf-gap);padding-top:4px;padding-bottom:calc(var(--plank-size) + 4px);overflow:hidden}.shelf-row:after{content:"";position:absolute;inset:auto 0 0;height:var(--plank-size);background:var(--red);border-block:var(--plank-edge) solid var(--ink)}.shelf-row img{display:block;flex:0 0 var(--food-size);width:var(--food-size);height:var(--food-size);object-fit:contain}.character-picture{display:block;width:100%;height:320px;object-fit:contain;object-position:50% 100%}.speech-bubble{position:absolute;top:12px;left:12px;width:min(155px,calc(50% - 66px));margin:0;padding:10px;border:3px solid var(--ink);border-radius:18px;background:var(--paper);color:var(--ink);font:18px/1.4 Flyer,sans-serif;text-transform:none;overflow-wrap:break-word}.speech-bubble:after{content:"";position:absolute;right:-16px;top:22px;width:18px;height:20px;background:var(--paper);clip-path:polygon(0 0,100% 100%,0 75%)}.speech-bubble:before{content:"";position:absolute;right:-24px;top:20px;width:24px;height:28px;background:var(--ink);clip-path:polygon(0 0,100% 100%,0 85%)}@media(max-width:660px){.store-shelf{--food-size: 22px;--shelf-gap: 8px;--plank-size: 3px;--plank-edge: 1px;height:50px}.shelf-row{padding-block:0 var(--plank-size)}}.speech-bubble{overflow-wrap:normal;word-break:normal;hyphens:none}.wallet-help{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;text-wrap:pretty}.page-title.has-character>h1:first-child{margin-top:auto}@media(max-width:660px){.page-title.has-character>h1:first-child{margin-top:0}}.page-title.has-character{--h: 390px;--w: calc(var(--h) * var(--ratio));--pop: 48px;--stand: 13px;--bd: 7px;--pad: 28px;--bubble-font: 20px;--bw-vault: 170px;--zone: calc(var(--w) * var(--bx) + var(--bw));--zone-vault: calc(var(--h) * .38481 + var(--bw-vault));--gutter: 28px;--h1-max: 96px;--h2-max: 64px;position:relative;overflow:visible;container-type:inline-size;display:flex;flex-direction:column;min-height:calc(var(--stand) + var(--h) + var(--bd) - var(--pop));margin-top:calc(12px + var(--pop));padding-right:calc(var(--pad) + var(--zone) + var(--gutter))}.page-title.has-character:after{margin:22px calc(-1 * (var(--pad) + var(--zone) + var(--gutter))) calc(-1 * var(--pad)) calc(-1 * var(--pad))}.page-title.has-character>.eyebrow{margin-top:auto}.page-title.has-character>p:last-of-type{margin-bottom:auto;font-size:18px}.page-title.has-character h1{font-size:clamp(40px,max(min(100cqi / var(--em1),var(--h1-max)),min(100cqi / var(--em2),var(--h2-max))),var(--h1-max))}.page-title.character-vault{--ratio: .606;--bx: .635;--tx: .5;--mouth: .176;--bw: var(--bw-vault);--em1: 6.3;--em2: 3.3}.page-title.character-deposit{--ratio: .313;--bx: .94;--tx: .675;--mouth: .168;--bw: 124px;--em1: 8.78;--em2: 5.6}.page-title.character-redeem{--ratio: .484;--bx: .93;--tx: .775;--mouth: .18;--bw: 226px;--em1: 5.34;--em2: 3.1;--h1-max: 108px;--h2-max: 56px}.page-title.character-redeem h1{--vault-col: calc(100cqi + var(--zone) - var(--zone-vault));font-size:clamp(40px,min(max(min(100cqi / var(--em1),var(--h1-max)),min(100cqi / var(--em2),var(--h2-max))),1.2 * max(min(var(--vault-col) / 8.1,96px),min(var(--vault-col) / 4.45,64px))),var(--h1-max))}.page-title .title-character{--gx: 0px;--img-top: 0px;--tail: calc(var(--w) * (var(--bx) - var(--tx)) + 3px);position:absolute;z-index:1;right:var(--pad);bottom:var(--stand);width:var(--zone);height:var(--h)}.page-title .title-character .character-picture{position:absolute;left:var(--gx);bottom:0;width:var(--w);height:var(--h);object-fit:contain;object-position:50% 100%}.page-title .title-character .speech-bubble{--tip-drop: 9px;--drop: 6px;--base1: 12px;--base2: 36px;--fill-x: 7px;--fill-y: 6px;--fill-b1: 3.5px;--fill-b2: 5px;top:calc(var(--img-top) + var(--h) * var(--mouth) + var(--tip-drop) + var(--drop));left:calc(var(--gx) + var(--w) * var(--bx));right:auto;width:var(--bw);padding:6px 12px;font-size:var(--bubble-font);line-height:1.2;text-wrap:balance;text-align:center}.page-title .title-character .speech-bubble:before,.page-title .title-character .speech-bubble:after{top:calc(-9px - var(--drop));right:auto;left:calc(-1 * var(--tail));width:calc(var(--tail) + 3px);height:calc(var(--drop) + var(--base2) + 11px)}.page-title .title-character .speech-bubble:before{clip-path:polygon(0 6px,calc(100% - 3px) calc(var(--drop) + 9px + var(--base1)),calc(100% - 3px) calc(var(--drop) + 9px + var(--base2)))}.page-title .title-character .speech-bubble:after{clip-path:polygon(var(--fill-x) calc(6px + var(--fill-y)),100% calc(var(--drop) + 9px + var(--base1) + var(--fill-b1)),100% calc(var(--drop) + 9px + var(--base2) - var(--fill-b2)))}.page-title.character-vault .speech-bubble{--tip-drop: 3px;--drop: -5px;--fill-y: 4px;--fill-b1: 3px;--fill-b2: 4px}@media(max-width:999px){.page-title.has-character{--h: 340px;--pop: 42px;--bubble-font: 18px;--gutter: 22px;--bw-vault: 158px}.page-title.has-character>p:last-of-type{font-size:16px}.page-title.character-vault .speech-bubble{--drop: -9px}.page-title.character-deposit .speech-bubble{--drop: 2px;--tip-drop: 7px}.page-title.character-deposit{--bw: 114px}.page-title.character-redeem{--bw: 150px}}@media(max-width:660px){.page-title.has-character{--h: 300px;--pop: 34px;--bd: 5px;--pad: 14px;--bubble-font: 16px;--gutter: 0px;--bw-vault: 170px;--stage: calc(var(--h) - var(--pop) - var(--bd) - var(--pad));min-height:0;margin-top:calc(16px + var(--pop));padding-right:var(--pad)}.page-title.has-character:after{margin:20px calc(-1 * var(--pad)) calc(-1 * var(--pad))}.page-title.has-character>.eyebrow{margin-top:0}.page-title.has-character>p:last-of-type{margin-bottom:0}.page-title.has-character h1{font-size:36px}.page-title .title-character{--gx: max(0px, calc((100% - var(--zone)) / 2));--img-top: calc(-1 * (var(--pop) + var(--bd) + var(--pad)));position:relative;order:-1;right:auto;bottom:auto;width:auto;height:var(--stage);margin:0 0 17px}.page-title .title-character:after{content:"";position:absolute;left:calc(-1 * var(--pad));width:calc(var(--pad) + var(--gx) + var(--w) + 12px);bottom:-3px;height:3px;background:var(--sun)}.page-title.has-character .title-character .speech-bubble{--tip-drop: 0px;--drop: -9px;--base2: 32px;--fill-x: 6px;--fill-y: 2.5px;--fill-b1: 3px;--fill-b2: 3px;padding:6px 10px;line-height:1.15}.page-title.character-deposit{--bw: 150px}.page-title.character-redeem{--bw: 160px}.page-title.character-deposit,.page-title.character-redeem,.page-title.character-earn{--col-gap: 12px;display:grid;grid-template-columns:calc(var(--w) + var(--col-gap)) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto auto auto auto}.page-title.character-deposit .title-character,.page-title.character-redeem .title-character,.page-title.character-earn .title-character{--gx: 0px;grid-area:1 / 1 / 4 / 3}.page-title.character-deposit>.eyebrow,.page-title.character-redeem>.eyebrow,.page-title.character-earn>.eyebrow{grid-area:2 / 2}.page-title.character-deposit h1,.page-title.character-redeem h1,.page-title.character-earn h1{grid-area:3 / 2;margin-bottom:17px}.page-title.character-deposit>p:last-of-type,.page-title.character-redeem>p:last-of-type,.page-title.character-earn>p:last-of-type{grid-area:4 / 1 / 5 / 3}.page-title.character-deposit:after,.page-title.character-redeem:after,.page-title.character-earn:after{grid-area:5 / 1 / 6 / 3}}@media(max-width:359px){.page-title.has-character{--h: 270px;--pop: 26px;--bw-vault: 146px}.page-title.has-character.character-vault .speech-bubble{--drop: -12px}.page-title.character-deposit{--bw: 140px}.page-title.character-redeem{--bw: 138px;--col-gap: 8px}}.sa-section{--sa-gap: 14px;--sa-rail: 18px;--sa-lip: 5px;--sa-wall: #c4e7ff;--sa-muted: #33405a;--sa-stale: #525d75}.sa-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.sa-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px}.sa-filters{display:flex;flex-wrap:wrap;gap:8px}.sa-filters button{display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 14px;font-size:15px}.sa-filters button[aria-pressed=true]{background:var(--royal);border-color:var(--royal);color:var(--paper)}.sa-count{min-width:2.2ch;padding:0 5px;background:var(--sun);color:var(--ink);font:22px/1.05 Pixel,monospace;text-align:center;border-radius:2px}.sa-filters button[aria-pressed=false] .sa-count{background:var(--subtle)}.sa-search{display:flex;align-items:center;gap:10px;flex:0 1 380px;margin:0;font-size:15px;white-space:nowrap}.sa-search input:not([type=checkbox]){flex:1;min-width:0;min-height:44px;padding:8px 10px}.sa-note{margin:10px 0 12px;font-size:14px;color:var(--sa-muted)}.sa-reset{min-height:44px;margin:-12px 0;padding:0 2px;border:0;border-radius:0;background:none;color:var(--royal);font-size:inherit;font-weight:700;line-height:1.2;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;vertical-align:baseline}.sa-reset:hover:not(:disabled){background:none}.sa-reset:focus-visible{outline-offset:0;box-shadow:inset 0 0 0 3px var(--sun)}.sa-unit{--sa-post: 10px;position:relative;padding:0 var(--sa-post) 16px;background:var(--sa-wall);border:3px solid var(--ink);box-shadow:inset var(--sa-post) 0 0 var(--royal),inset calc(-1 * var(--sa-post)) 0 0 var(--royal),inset 0 -10px 0 var(--ink)}.sa-unit .store-shelf{height:auto;margin:0}.sa-unit .shelf-row+.shelf-row{display:none}.sa-unit .empty{margin:16px 6px 6px}.sa-signrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:16px calc(var(--sa-gap) / 2 + 2px) 2px}.sa-sign{display:inline-flex;align-items:center;gap:8px;margin:0;padding:4px 5px 3px 10px;background:var(--red);color:var(--paper);font:20px/1.1 Flyer,Impact,sans-serif;letter-spacing:.03em;text-transform:uppercase;border:2px solid var(--ink);border-radius:2px;box-shadow:3px 3px 0 var(--ink);transform:rotate(-1deg)}.sa-n{min-width:2ch;padding:1px 5px 0;background:var(--sun);color:var(--ink);font:22px/1 Pixel,monospace;letter-spacing:0;text-align:center;border-radius:2px}.sa-sub{margin:0;font-size:14px;line-height:1.35;color:var(--sa-muted)}.sa-emptyline{color:var(--ink);font-size:15px}.sa-shelves{display:grid;grid-template-columns:repeat(auto-fill,minmax(max(140px,18%),1fr));column-gap:var(--sa-gap);row-gap:18px;margin:0;padding:14px calc(var(--sa-gap) / 2) 0;list-style:none}.sa-shelves--mini{grid-template-columns:repeat(auto-fill,minmax(max(102px,12.5%),1fr))}.sa-slot{position:relative;display:flex;flex-direction:column;min-width:0;padding-top:7px;container:sa-slot / inline-size}.sa-slot:before{content:"";position:absolute;top:0;left:calc(var(--sa-gap) / -2 - 2px);right:calc(var(--sa-gap) / -2 - 2px);height:calc(var(--sa-rail) + var(--sa-lip));background:linear-gradient(var(--ink) 0 2px,var(--red) 2px calc(var(--sa-rail) - 2px),var(--ink) calc(var(--sa-rail) - 2px) var(--sa-rail),#88a8c5 var(--sa-rail))}.sa-slot--empty{min-height:40px}.sa-label{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;gap:2px;min-width:0;margin:0 3px;padding:10px 10px 0;background:var(--sun);color:var(--ink);border:2px solid var(--ink);border-radius:3px;box-shadow:0 3px #142c544d;transform-origin:50% -8px}.sa-label--mini{gap:1px;margin:0;padding:9px 7px 6px}.sa-clip{position:absolute;top:-10px;left:50%;width:26px;height:13px;margin-left:-13px;background:#e8eef6;border:2px solid var(--ink);border-radius:2px}.sa-main,.sa-figs{display:contents}.sa-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px}.sa-label h4{flex:1 1 auto;margin:0;font:24px/1.15 Flyer,Impact,sans-serif;letter-spacing:.01em;text-transform:uppercase;overflow-wrap:anywhere}.sa-label--mini h4{font-size:21px}.sa-price{margin:0;font:28px/1.1 Flyer,Impact,sans-serif;letter-spacing:.01em;color:var(--red);white-space:nowrap}.sa-label--mini .sa-price{font-size:26px}.sa-cur,.sa-cents{display:inline-block;font-size:max(14px,.56em);line-height:1;vertical-align:top;margin-top:.2em;color:var(--error)}.sa-cur{margin-right:1px}.sa-cents{margin-left:2px;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}.sa-price.is-stale,.sa-price.is-stale span{color:var(--sa-stale)}.sa-label .sa-price.is-unreadable{flex-basis:100%;font:700 14px/1.4 Arial,Helvetica,sans-serif;color:var(--ink);white-space:normal}.sa-age{flex-basis:100%;margin:0;font-size:14px;line-height:1.35;text-align:end;color:var(--sa-muted)}.sa-label--mini:not(.sa-label--chip) .sa-price{flex-basis:100%}.sa-old{display:inline-block;margin-right:2px;padding:0 5px;background:var(--paper);border:2px solid var(--error);border-radius:2px;color:var(--error);font-size:13px;font-weight:700;line-height:1.3}.sa-narrow{display:none}.sa-st{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2px 6px;margin:3px 0 0;font-size:14px;line-height:1.35}.sa-label--mini .sa-st{margin-top:auto;padding-top:2px}.sa-warn{color:var(--error)}.sa-mark{display:inline-block;width:11px;height:11px;margin-right:6px;vertical-align:-1px;background:var(--royal);border-radius:50%}.sa-label--closed .sa-mark{background:var(--error);border-radius:1px}.sa-label--paused .sa-mark{width:0;height:0;background:none;border-radius:0;border-inline:6px solid transparent;border-bottom:11px solid var(--error)}.sa-label--retired .sa-mark{background:transparent;border:2px solid var(--ink)}.sa-label--unknown .sa-mark{background:var(--ink);border-radius:1px;transform:rotate(45deg) scale(.85)}.sa-label--closed,.sa-label--paused{border-color:var(--error);box-shadow:inset 0 5px 0 var(--error),0 3px #142c544d}.sa-label--closed .sa-stw>b{color:var(--error)}.sa-label--retired{background:#e4e9f0}.sa-stamp{flex:none;align-self:center;padding:2px 6px 1px 7px;background:var(--paper);color:var(--red);border:2px solid var(--red);border-radius:4px;box-shadow:inset 0 0 0 1px var(--paper),inset 0 0 0 2px var(--red);font:15px/1.2 Flyer,Impact,sans-serif;letter-spacing:.12em;text-transform:uppercase;transform:rotate(-7deg);margin-block:-4px}.sa-chip{align-self:flex-start;max-width:100%;margin:1px 0 0;padding:0 8px;background:var(--paper);color:var(--error);border:2px solid var(--error);border-radius:12px;font-size:14px;font-weight:700;line-height:1.25}.sa-flag{margin:3px 0 0;padding:1px 6px;background:var(--error);color:var(--paper);font-size:14px;font-weight:700;line-height:1.35;border-radius:2px}.sa-share{display:flex;align-items:center;gap:8px;margin:8px 0 3px}.sa-pct{flex:none;padding:4px 7px 3px;font:21px/1 Flyer,Impact,sans-serif;font-weight:400;letter-spacing:.02em;background:var(--royal);color:var(--paper);border:2px solid var(--ink);border-radius:2px;box-shadow:2px 2px 0 var(--ink);transform:rotate(-3deg)}.sa-pct.is-zero{background:var(--paper);color:var(--ink)}.sa-meter{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.sa-of{font-size:14px;line-height:1.2;color:var(--sa-muted);white-space:nowrap}.sa-bar{height:13px;overflow:hidden;background:var(--paper);border:2px solid var(--ink);border-radius:2px}.sa-bar i{display:block;height:100%;background:var(--royal)}.sa-kv{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:0 6px;margin:0;font-size:14px;line-height:1.4}.sa-kv>span{color:var(--sa-muted)}.sa-kv b{margin-left:auto;text-align:end}.sa-kv--value b{font-size:15px}.sa-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding:5px 0}.sa-more{min-height:0;padding:2px 0;border:0;border-radius:0;background:none;color:var(--royal);font-size:14px;font-weight:700;line-height:1.35;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.sa-more:hover:not(:disabled){background:none}.sa-chev{display:inline-block;margin-left:5px;border-inline:5px solid transparent;border-top:6px solid currentColor;vertical-align:2px}.sa-more[aria-expanded=true] .sa-chev{border-top:0;border-bottom:6px solid currentColor}.sa-label--mini .sa-more{flex:none;display:inline-grid;place-items:center;width:22px;height:22px;margin-left:auto;padding:0;border:2px solid var(--royal);border-radius:50%;background:var(--paper)}.sa-label--mini .sa-more:hover:not(:disabled){background:var(--paper)}.sa-label--mini .sa-chev{margin:1px 0 0}.sa-label--mini .sa-more[aria-expanded=true] .sa-chev{margin:0 0 1px}.sa-more:after{content:"";position:absolute;inset:-12px -2px -2px;z-index:2;border-radius:3px}.sa-more:focus-visible{outline:none;box-shadow:none}.sa-more:focus-visible:after{outline:3px solid var(--ink);outline-offset:2px;box-shadow:0 0 0 2px var(--paper)}.sa-barcode{width:44px;height:14px;flex:none;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 5px,transparent 5px 7px,var(--ink) 7px 10px,transparent 10px 11px,var(--ink) 11px 12px,transparent 12px 15px);opacity:.8}.sa-label.is-open{outline:3px solid var(--royal);outline-offset:3px}@container sa-slot (min-width: 190px){.sa-label--full .sa-stamp{position:absolute;right:9px;bottom:7px}.sa-label--full.sa-label--closed .sa-barcode{visibility:hidden}}@container sa-slot (min-width: 360px){.sa-label--full.sa-label--chip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:1fr auto;column-gap:18px}.sa-label--chip .sa-main,.sa-label--chip .sa-figs{display:flex;flex-direction:column;gap:2px;min-width:0}.sa-label--chip .sa-figs .sa-share{margin-top:2px}.sa-label--chip .sa-foot{grid-column:1 / -1}}@container sa-slot (max-width: 189.98px){.sa-price{flex-basis:100%}.sa-age{text-align:start}.sa-wide{display:none}.sa-narrow{display:inline}.sa-pct{padding:3px 5px 2px;font-size:18px}}.sa-drawer{position:relative;grid-column:1 / -1;margin:2px 0 4px;padding:12px 16px 6px;background:var(--paper);border:3px solid var(--royal);box-shadow:0 4px #142c5440}.sa-drawer:before{content:"";position:absolute;top:-15px;left:calc((var(--sa-at) * 2 + 1) * 100% / (2 * var(--sa-cols)) + (var(--sa-at) * 2 - var(--sa-cols) + 1) * var(--sa-gap) / (2 * var(--sa-cols)) - 12px);border:12px solid transparent;border-top:0;border-bottom:12px solid var(--royal)}.sa-drawer-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.sa-drawer h5{margin:0;font:24px/1.15 Flyer,Impact,sans-serif;letter-spacing:.01em;text-transform:uppercase}.sa-drawer-status{margin:8px 0 0;padding:8px 10px;background:var(--warning);border-left:4px solid var(--error);font-size:14px}.sa-drawer dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0 24px;margin:4px 0 0}.sa-drawer .sa-addrs{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));margin:0 0 4px}.sa-drawer .sa-addrs>div{border-bottom:0}.sa-drawer dl>div{display:block;padding:8px 0;border-bottom:1px solid #c2ccdc}.sa-drawer dt{font-size:14px;color:var(--sa-muted)}.sa-drawer dd{max-width:none;margin:2px 0 0;text-align:left}.sa-drawer .sa-addrs dd{font-weight:400}.sa-drawer .address[href]{padding-block:6px}.sa-none{margin:0;padding:18px 8px 4px;font-weight:700}.sa-none button{margin-left:8px}@media(max-width:660px){.sa-section{--sa-gap: 8px;--sa-rail: 14px;--sa-lip: 4px}.sa-toolbar{display:block}.sa-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.sa-filters button{flex-direction:column;justify-content:center;gap:0;padding:3px 2px;font-size:14px;line-height:1.15}.sa-count{font-size:20px;line-height:1;background:none!important;color:inherit}.sa-search{margin-top:10px;font-size:14px}.sa-unit{--sa-post: 4px;border-width:2px;padding-bottom:12px;box-shadow:inset var(--sa-post) 0 0 var(--royal),inset calc(-1 * var(--sa-post)) 0 0 var(--royal),inset 0 -8px 0 var(--ink)}.sa-signrow{padding-top:14px}.sa-sign{font-size:18px}.sa-n{font-size:20px}.sa-shelves{row-gap:12px;padding-top:12px}.sa-label{margin:0;padding:9px 7px 0}.sa-label--mini{padding:9px 7px 6px}.sa-drawer{padding:10px 12px 4px}.sa-drawer h5{font-size:21px}.sa-drawer dl{grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:0 14px}}@media(max-width:539px){.sa-section{--sa-gap: 6px}.sa-unit{margin-inline:-10px}.sa-shelves{padding-inline:3px}.sa-shelves--mini{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.sa-label{padding:9px 6px 0}.sa-label--mini{padding:8px 5px 5px}.sa-label h4{font-size:21px}.sa-label--mini h4{font-size:20px}.sa-price{font-size:26px}.sa-label--mini .sa-price{font-size:24px}.sa-signrow{gap:4px 10px;padding:12px 5px 0}.sa-sign{gap:6px;padding:3px 4px 2px 8px;font-size:17px;letter-spacing:.02em}.sa-shelves{padding-top:11px}.sa-label--full{gap:1px}.sa-share{margin:6px 0 2px}.sa-foot{padding:3px 0 4px}}@media(prefers-reduced-motion:no-preference){.sa-label{transition:transform .15s ease-out,box-shadow .15s ease-out}.sa-label:active,.sa-label.is-open{transform:translateY(-4px)}.sa-label:has(.sa-more:focus-visible){transform:translateY(-4px)}.sa-drawer{animation:sa-open .16s ease-out}}@media(prefers-reduced-motion:no-preference)and (hover:hover){.sa-label:hover{transform:translateY(-4px);box-shadow:0 7px #142c5440}}@keyframes sa-open{0%{opacity:0;transform:translateY(-6px)}}@media(forced-colors:active){.sa-label,.sa-drawer,.sa-pct,.sa-sign,.sa-stamp,.sa-chip{border:2px solid CanvasText}.sa-slot:before,.sa-bar i,.sa-mark{background:CanvasText}}.page-title.character-vault>h1{margin-bottom:auto}@media(max-width:660px){.page-title.character-vault>h1{margin-bottom:0}}.docs-tabs{display:flex;gap:6px;margin:0 0 20px;border-bottom:2px solid var(--ink)}.docs-tabs [role=tab]{border:0;border-radius:0;background:transparent;color:var(--ink);padding:10px 20px;font-size:15px;font-weight:700;box-shadow:none}.docs-tabs [role=tab][aria-selected=true]{background:var(--sun)}.docs-tabs [role=tab]:focus-visible{outline:3px solid var(--royal);outline-offset:3px}[role=tabpanel][hidden]{display:none}.tm-module{grid-column:1 / -1}.tm-module>h2{border-bottom:5px solid var(--sun);padding-bottom:12px}.tm-module>p{max-width:100%;margin-bottom:20px}.tm-module>p:first-of-type{max-width:76ch;font-size:18px}.tm-table{width:100%;border-collapse:collapse;margin:22px 0 32px;font-size:15px;table-layout:fixed}.tm-table th,.tm-table td{padding:13px 12px;border-bottom:1px solid #c3ccdb;vertical-align:top;text-align:left;overflow-wrap:break-word}.tm-table thead{background:var(--subtle)}.tm-table thead th{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);font-size:13px}.tm-table tbody th{font-weight:700;color:var(--royal)}.tm-allocations th:nth-child(1){width:8%}.tm-allocations th:nth-child(2){width:15%}.tm-allocations th:nth-child(3){width:29%}.tm-allocations th:nth-child(4){width:48%}.tm-releases th:nth-child(1){width:12%}.tm-releases th:nth-child(2){width:26%}.tm-releases th:nth-child(3){width:20%}.tm-releases th:nth-child(4){width:42%}.tm-chart{margin:24px 0}.tm-supply>svg{width:100%;height:42px}.tm-supply-legend{display:grid;grid-template-columns:1fr 1fr;gap:10px 32px;margin-top:18px;font-size:14px}.tm-supply-legend>div{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:baseline}.tm-key{height:12px;width:12px;border:1px solid var(--line)}.tm-supply-legend strong{font-size:16px}.tm-release{padding:22px;background:var(--subtle);border:1px solid #c3ccdb}.tm-release>figcaption{font-family:Flyer,Impact,sans-serif;text-transform:uppercase;font-size:25px;margin-bottom:16px}.tm-unit{font-size:13px;font-weight:700;margin-bottom:4px}.tm-release svg{width:100%;overflow:visible}.tm-release svg text{font:12px Arial,Helvetica,sans-serif;fill:var(--ink)}.tm-x-label{text-align:center;font-size:13px;margin-top:5px}.tm-series{display:flex;flex-wrap:wrap;gap:8px 26px;font-size:13px;margin-top:20px}.tm-series>span{display:flex;align-items:center;gap:8px}.tm-line{display:inline-block;width:24px;border-top:3px solid var(--royal)}.tm-line.liquidity{border-color:var(--ink);border-top-style:dashed}.tm-line.vested{border-color:var(--red)}.tm-plot-phone{display:none}@media(max-width:660px){.tm-module{padding:16px 14px}.tm-module>p:first-of-type{font-size:16px}.tm-table{font-size:14px;margin-bottom:26px}.tm-table thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%)}.tm-table,.tm-table tbody,.tm-table tr,.tm-table td,.tm-table tbody th{display:block;width:100%}.tm-table tr{border-top:2px solid var(--ink);padding:12px 0}.tm-table td,.tm-table tbody th{border:0;padding:4px 0}.tm-table td:before{content:attr(data-label);display:block;font-size:12px;font-weight:700;color:#485974}.tm-table tbody th:nth-child(1){width:100%;font-size:20px}.tm-allocations tr{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.tm-allocations td:nth-child(2){text-align:right}.tm-allocations td:nth-child(n+3){grid-column:1 / -1}.tm-allocations td:nth-child(3){font-weight:700;font-size:16px}.tm-supply-legend{grid-template-columns:1fr;font-size:13px;gap:10px}.tm-release{padding:12px 8px}.tm-release>figcaption{font-size:23px}.tm-plot-wide{display:none}.tm-plot-phone{display:block}.tm-series{flex-direction:column;font-size:12px;gap:10px}.tm-series>span{align-items:baseline}.tm-line{flex-shrink:0}}.tm-live dl{display:grid;grid-template-columns:1fr auto;gap:8px 20px}.tm-live dd{margin:0}.tm-addresses{display:grid;gap:12px;overflow-wrap:anywhere}@media(min-width:661px)and (max-width:900px){.tm-table th,.tm-table td{padding-left:6px;padding-right:6px}.tm-allocations th:nth-child(1){width:9%}.tm-allocations th:nth-child(2){width:20%}.tm-allocations th:nth-child(3){width:27%}.tm-allocations th:nth-child(4){width:44%}}.bg-module{padding:28px}.bg-module>h2{border-bottom:6px solid var(--sun);padding-bottom:12px;margin-bottom:22px}.bg-intro{font-size:18px}.bg-section{margin-top:34px}.bg-section>h3{font-family:Flyer,Impact,sans-serif;text-transform:uppercase;font-size:29px;margin:0 0 16px}.bg-formula{padding:12px 16px;border-left:4px solid var(--royal);background:var(--subtle);font-weight:700;margin:8px 0;overflow-wrap:break-word}.bg-formula+p{margin-top:18px}.bg-examples{display:grid;gap:22px;margin-top:24px}.bg-deposits{grid-template-columns:repeat(2,minmax(0,1fr))}.bg-example{padding:20px;border:1px solid #c3ccdb;min-width:0}.bg-example h4{font-size:20px;line-height:1.25;color:var(--royal);margin:0 0 16px}.bg-example>p:last-child{margin-bottom:0}.bg-table{width:100%;border-collapse:collapse;margin:22px 0;font-size:14px}.bg-table th,.bg-table td{padding:12px 10px;border-bottom:1px solid #c3ccdb;vertical-align:top;text-align:left}.bg-table thead th{background:var(--subtle);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}.bg-table tbody th{font-weight:500}.bg-table td:last-child{font-weight:700;color:var(--royal)}.bg-deposits .bg-table td{min-width:105px}@media(max-width:900px){.bg-deposits{grid-template-columns:1fr}}@media(max-width:660px){.bg-module{padding:16px 14px}.bg-intro{font-size:16px}.bg-section>h3{font-size:26px}.bg-example{padding:14px 12px}.bg-formula{padding:10px 12px}.bg-table{font-size:14px}.bg-table th,.bg-table td{padding:10px 4px}.bg-deposits .bg-table td{min-width:0}.bg-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.bg-table,.bg-table tbody,.bg-table tr,.bg-table td,.bg-table tbody th{display:block;width:100%}.bg-table tr{padding:10px 0;border-top:2px solid var(--ink)}.bg-table td,.bg-table tbody th{border:0;padding:4px 0}.bg-table tbody th{font-weight:700}.bg-table td:before{content:attr(data-label);display:block;font-size:12px;color:#485974;font-weight:500}.docs-tabs button{padding-inline:14px}}@media(min-width:961px){.deposit-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:40px;align-items:start}.deposit-right .all-stocks ul{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}.deposit-right .all-stocks.open-list{margin-bottom:0}.deposit-notes{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}.deposit-notes h2{margin-top:0}}.deposit-main>button,.deposit-main>form+button{margin-top:12px}.item-table{overflow-x:auto;margin:16px 0}.item-gauges{width:100%;border-collapse:collapse;font-size:14px}.item-gauges th,.item-gauges td{padding:8px;text-align:left;white-space:nowrap;border-bottom:1px solid #c3ccdb}.item-gauges thead th{border-bottom:2px solid var(--ink);font-size:13px}.item-gauges tbody th{font-weight:700;color:var(--royal)}@media(max-width:660px){.page-title.has-character.character-vault{--bw: 138px}.page-title.character-vault .title-character{--gx: max( 0px, min( calc((100% - var(--w)) / 2), calc(100% + var(--pad) - 4px - var(--w) * var(--bx) - var(--bw)) ) )}.page-title.character-vault .title-character:after{right:calc(-1 * var(--pad));width:auto}.page-title.character-vault>h1{text-align:center}}@media(max-width:660px)and (forced-colors:none){.page-title.character-deposit:has(>h1:focus-visible) .title-character:after,.page-title.character-redeem:has(>h1:focus-visible) .title-character:after,.page-title.character-earn:has(>h1:focus-visible) .title-character:after{bottom:-6px;width:calc(var(--pad) + var(--gx) + var(--w) + var(--col-gap) - 6px)}}.page-title.character-earn{--ratio: .453;--bx: .776;--tx: .57;--mouth: .173;--bw: 126px;--em1: 2.6;--em2: 2.6}.page-title.character-transparency{--ratio: .4;--bx: 1.035;--tx: .71;--mouth: .199;--bw: 182px;--em1: 8.3;--em2: 8.3}@media(max-width:660px){.page-title.character-earn{--bw: 102px;--bx: .83}.page-title.character-transparency{--bw: 147px;--bx: 1.035;--tx: .69}}.item-section{margin:28px 0}.item-section>h2{margin-bottom:12px}.earn-gauges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.earn-card{min-width:0}.item-pool{margin-bottom:20px}.item-pool .address{display:block}.item-figures,.item-setup{margin:16px 0}.item-figures>div,.item-setup>div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}.item-figures dt,.item-setup dt{min-width:0}.item-figures dd,.item-setup dd{margin:0;text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.item-action{margin-top:22px;padding-top:18px;border-top:2px solid var(--line)}.item-action label{display:block}.item-action input{width:100%;margin:8px 0}.item-buttons,.item-claims,.item-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}.item-refresh{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:18px 0}.item-source,.find-item,.transparency-balances{overflow-wrap:anywhere}.transparency-balances .item-table{max-width:100%;overflow-x:auto}.transparency-balances table{width:100%}.transparency-balances td,.transparency-balances th{padding:14px 12px;vertical-align:top}.transparency-balances small{display:block;margin-top:6px;font-size:.85em}.transparency-balances .address{display:block;min-width:12ch}@media(max-width:660px){.earn-gauges{grid-template-columns:minmax(0,1fr)}.item-figures>div{gap:10px}.transparency-balances table{min-width:660px}}nav>div{grid-template-columns:repeat(5,1fr)}.transparency-balances td:nth-child(2),.transparency-balances td:nth-child(3){white-space:nowrap}.transparency-balances th:first-child{min-width:14ch;overflow-wrap:normal}.docs-grid p a[href="#earn"]{display:inline;min-height:0}@media(max-width:359px){nav>div{gap:6px}nav a{font-size:18px;line-height:25.2px}}.refined-card{align-self:start;min-width:0}.refined-heading h3{margin:0}.refined-personal{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px;padding:18px 0 22px;margin:0}.refined-personal>div{display:block;border:0;padding:0}.refined-personal dt{font-size:13px;margin-bottom:7px}.refined-personal dd{text-align:left;max-width:none;font-size:21px;line-height:1.35}.refined-personal>div:first-child dd{font-size:15px}.refined-empty{margin:14px 0 22px;font-size:14px}.refined-workspace,.refined-panels,.refined-tab-panel{min-width:0}.refined-tabs{display:flex;gap:0;margin:0;border-bottom:2px solid var(--royal)}.refined-tabs [role=tab]{flex:1 1 0;min-width:0;padding:12px 6px;border:0;border-radius:0;background:transparent;font-size:14px;line-height:1.25}.refined-tabs [role=tab][aria-selected=true]{background:var(--sun);color:var(--ink)}.refined-card [hidden]{display:none!important}.refined-tab-panel{padding:22px 0 0}.refined-tab-panel h4{margin:0 0 14px;font-size:20px}.refined-explainer{font-size:14px;line-height:1.6;margin:0 0 22px}.refined-explainer strong{display:block;margin-bottom:4px}.refined-card .item-action{border:0;margin:0;padding:0}.refined-card .item-action label{font-weight:700;font-size:14px}.refined-card .item-action input{margin:8px 0;min-width:0;height:49px}.refined-token-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.refined-token-entry{min-width:0}.refined-matched{margin:0}.refined-matched>div{display:block;border:0;padding:0}.refined-matched dt{font-weight:700;line-height:1.5}.refined-matched dt span{font-size:11px;font-weight:400;margin-left:4px}.refined-matched dd{display:flex;align-items:center;text-align:left;max-width:none;min-height:49px;margin:8px 0;border:1px solid var(--line);background:var(--subtle);padding:10px 12px;font-size:18px;line-height:1.4}.refined-balance{margin:0;font-size:12px}.refined-balance>div{display:block;border:0;padding:0}.refined-balance dt{font-size:12px}.refined-balance dd{max-width:none;text-align:left;margin:2px 0 4px}.refined-card .refined-max{margin-top:5px;padding:5px 0;min-height:36px;border:0;background:transparent;color:var(--royal);font-size:13px;text-decoration:underline;text-underline-offset:3px}.refined-card .refined-max:disabled{color:#53617a}.refined-estimate{margin:20px 0 0;font-size:13px}.refined-estimate>div{display:block;padding:12px 0;border-top:1px solid var(--line);border-bottom:0}.refined-estimate dd{text-align:left;max-width:none;margin-top:4px}.refined-card .item-buttons{gap:8px;margin-top:14px}.refined-card .item-buttons button{padding:9px 12px}.refined-details{margin-top:18px;border-top:1px solid var(--line);padding-top:8px;font-size:13px}.refined-details summary,.refined-withdraw summary{cursor:pointer;padding:10px 0;color:var(--royal);font-weight:700}.refined-details .item-pool{margin:8px 0 0}.refined-card .refined-available{margin:0 0 18px;padding:12px;background:var(--subtle)}.refined-available>div{display:block;padding:0;border:0}.refined-available dd{text-align:left;max-width:none;margin-top:4px}.refined-card .item-claims{margin-top:16px}.refined-card .item-claims button{background:var(--royal);color:var(--paper);border-color:var(--royal)}.refined-card .item-claims button:disabled{background:#e4e9f0;color:#53617a;border-color:#8c98ab}.refined-manage-figures,.refined-global{font-size:14px;margin:0}.refined-global>div,.refined-manage-figures>div{padding:10px 0}.refined-caption{margin:14px 0 0;font-size:13px;line-height:1.6}.refined-withdraw{margin-top:24px;padding-top:8px;border-top:1px solid var(--line)}.refined-withdraw .refined-caption{margin:4px 0 18px}.refined-address{margin-top:22px;margin-bottom:0;font-size:13px}.refined-card>.error:empty{display:none}@media(max-width:660px){.refined-card{padding:16px 12px}.refined-tabs [role=tab]{font-size:12px;padding:11px 4px;min-height:52px}.refined-personal{gap:12px;padding-bottom:18px}.refined-personal dd{font-size:18px}.refined-personal>div:first-child dd{font-size:13px}.refined-tab-panel{padding-top:18px}.refined-token-pair{grid-template-columns:minmax(0,1fr);gap:18px}.refined-balance>div{display:flex;flex-wrap:wrap;gap:3px 8px;justify-content:space-between}.refined-balance dd{margin:0}.refined-explainer{margin-bottom:18px;font-size:13px}.refined-global>div{display:block}.refined-global dd{max-width:none;text-align:left;margin-top:3px}}.refined-pool-picker{display:flex;align-items:center;gap:16px;margin:24px 0 16px}.refined-pool-picker label{font-size:14px;font-weight:700}.refined-pool-picker select{width:240px;max-width:100%;margin:0}.refined-focused-gauges{grid-template-columns:minmax(0,1fr)}.refined-focused-gauges>[hidden]{display:none!important}.refined-focused-gauges>div{min-width:0}.refined-b3 .refined-workspace{max-width:960px;margin-inline:auto}.refined-b3 .refined-heading{margin-bottom:12px}.refined-b3 .refined-personal{grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-width:740px;padding-bottom:28px;gap:32px}.refined-b3 .refined-tabs [role=tab]{flex:0 1 auto;padding-inline:24px}.refined-b3 .refined-tab-panel{padding-top:28px}@media(min-width:901px){.refined-b3{padding:30px 36px}.refined-b3 .refined-heading{max-width:960px;margin:0 auto}.refined-b3 .refined-personal,.refined-b3 .refined-empty{max-width:960px;margin-inline:auto}.refined-b3 .refined-personal{padding-top:20px}.refined-b3 .item-action[data-liquidity]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:0 42px}.refined-b3 .item-action[data-liquidity]>.refined-explainer{grid-column:1;grid-row:1 / 7;font-size:15px;line-height:1.7;max-width:32ch;margin:0}.refined-b3 .item-action[data-liquidity]>.refined-explainer strong{font-size:18px;line-height:1.5;margin-bottom:12px}.refined-b3 .item-action[data-liquidity]>:not(.refined-explainer){grid-column:2}.refined-b3 .refined-tab-panel:not(:has([data-liquidity])){max-width:740px}.refined-b3 .refined-tab-panel:not(:has([data-liquidity])) .item-action{max-width:580px}}@media(max-width:660px){.refined-pool-picker{margin-top:20px;gap:12px}.refined-pool-picker select{flex:1;min-width:0;width:auto}.refined-b3 .refined-personal{gap:12px;padding-bottom:18px}.refined-b3 .refined-tabs [role=tab]{flex:1 1 0;padding-inline:4px}.refined-b3 .refined-tab-panel{padding-top:18px}}.refined-card .refined-token-entry label{margin-bottom:8px}@media(min-width:901px){.refined-b3>.note,.refined-b3>.action-status,.refined-b3>.error{max-width:960px;margin-inline:auto}}.token-prices{max-width:1160px;margin:0 auto 12px;padding:12px 16px;background:var(--subtle);color:var(--ink);border:1px solid var(--line);border-radius:3px}.token-price-values{display:flex;align-items:center;flex-wrap:wrap;gap:8px 32px;font-size:15px;line-height:24px}.token-price{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.token-price>span,.token-price strong{white-space:nowrap}.token-price svg{width:20px;height:20px;flex:none}.token-prices p{margin:6px 0 0;font-size:12px;line-height:18px}.price-sr-only,.pool-buttons input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pool-buttons{width:max-content;max-width:100%;padding:0;gap:0;border:2px solid var(--royal);border-radius:3px;min-width:0}.pool-buttons label{position:relative;margin:0;cursor:pointer}.pool-buttons label+label{border-left:2px solid var(--royal)}.pool-buttons label>span{display:block;min-height:48px;padding:12px 24px;background:var(--paper);font-size:14px;font-weight:700;text-align:center}.pool-buttons input:checked+span{background:var(--sun)}.pool-buttons input:focus-visible+span{outline:3px solid var(--ink);outline-offset:-4px}.refined-tabs [role=tab]{overflow-wrap:normal}@media(max-width:1200px){.token-prices{margin-inline:20px}}@media(max-width:660px){.token-prices{margin-inline:12px;padding:10px 12px}.token-price-values{font-size:13px;gap:8px 16px}.token-price{gap:6px}.token-prices p{font-size:11px}.pool-buttons{width:100%;gap:0}.pool-buttons label{flex:1}.pool-buttons label>span{padding:12px 10px}}.vault-view-tabs{background:var(--paper);border:2px solid var(--ink);padding:4px 4px 0}.vault-view-tabs [role=tab]{min-height:44px}.basket-vault-stats{--vault-muted: #485974;--vault-border: #bacbe0;--vault-blue: var(--royal);--vault-green: #12715a;min-width:0;.vault-stats-intro{margin:0 0 18px}.vault-stats-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 22px;padding:10px 14px;background:var(--paper);border:2px solid var(--ink);font-size:14px}.vault-stats-toolbar>:first-child{min-width:0}.vault-stats-toolbar button{flex-shrink:0}.vault-stats-error,.vault-stats-loading{padding:22px;background:var(--paper);border:3px solid var(--ink);margin-bottom:24px}.vault-page{min-width:0}.vault-page .small{font-size:14px}.vault-page .muted{color:var(--vault-muted)}.vault-page .card{min-width:0;padding:26px;border:3px solid var(--ink);border-radius:3px;background:var(--paper);box-shadow:5px 5px 0 var(--royal)}.vault-page .section{margin-top:34px}.section-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:6px 18px;margin-bottom:14px}.section-head h2{margin:0;font-size:clamp(25px,3vw,32px)}.section-head p{margin:0}.vault-intro{max-width:700px;margin-bottom:22px}:where(.vault-page) dl>div{padding:0;border:0;min-width:0}.vault-page dd{margin:0;max-width:none;text-align:left}.vault-hero-top{display:flex;align-items:center;justify-content:space-between;gap:28px}.vault-hero-top>div{min-width:0}.vault-label{display:inline-block;margin:0;padding:5px 10px;background:var(--sun);color:var(--ink);font:24px/1.2 Pixel,monospace;text-transform:uppercase;border:2px solid var(--ink)}.vault-big-value{margin:14px 0 8px;color:var(--royal);font:400 clamp(42px,6.5vw,78px)/1 Flyer,Impact,sans-serif;letter-spacing:-.02em;overflow-wrap:anywhere}.vault-reference{margin:0 0 3px;font-weight:700;font-size:15px}.vault-reference.below{color:#8b4810}.vault-reference.above{color:var(--vault-green)}.vault-reference-detail{margin:0;color:var(--vault-muted);font-size:13px}.vault-price-definition{max-width:280px;margin:0;padding-left:18px;border-left:4px solid var(--sun);color:var(--vault-muted);font-size:15px}.vault-summary,.vault-flow-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:26px 0}.vault-summary>div,.vault-flow-metrics>div{display:block;padding:14px 16px;background:var(--subtle);border:2px solid var(--royal)}.vault-summary dt,.vault-flow-metrics dt{font-size:13px;font-weight:700;margin-bottom:7px}.vault-summary dd,.vault-flow-metrics dd{font:32px/1.05 Pixel,monospace}.vault-summary .vault-metric-note,.vault-flow-metrics .vault-metric-note{color:var(--vault-muted);font:12px/1.45 Arial,Helvetica,sans-serif;margin-top:7px}.vault-chart-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px}.vault-chart-heading h3{margin:0;font-size:24px}.vault-ranges{display:flex;flex-shrink:0;gap:3px;margin:0;padding:3px;background:var(--subtle);border:2px solid var(--ink);border-radius:3px}.vault-ranges a{display:grid;place-items:center;min-width:44px;min-height:44px;padding:5px 12px;background:transparent;color:var(--ink);border:0;border-radius:1px;box-shadow:none;font:22px/1 Pixel,monospace;text-transform:uppercase;text-decoration:none}.vault-ranges a:before,.vault-ranges a:after{content:none}.vault-ranges a:hover{background:var(--sun)}.vault-ranges a[aria-current=page]{color:var(--paper);background:var(--royal)}.vault-chart{display:block;width:100%;height:auto;margin:14px 0 0}.vault-series{fill:none;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.vault-series.sample{stroke:var(--vault-green)}.vault-series.replay{stroke:var(--vault-blue)}.vault-point.sample{fill:var(--vault-green)}.vault-point.replay{fill:var(--vault-blue)}.vault-reference-line{stroke:#9a6a09;stroke-width:1.2;stroke-dasharray:5 5}.vault-axis{fill:var(--vault-muted);font:12px Arial,Helvetica,sans-serif}.vault-axis-line{stroke:var(--vault-border)}.vault-chart-dates{display:flex;justify-content:space-between;gap:12px;margin:-4px 6% 0;color:var(--vault-muted);font-size:12px}.vault-chart-range{margin:10px 0;font-size:13px;color:var(--vault-muted)}.vault-legend{display:flex;flex-wrap:wrap;gap:10px 22px;font-size:13px;margin:14px 0 10px}.vault-legend span{display:inline-flex;align-items:center;gap:8px}.vault-legend span:before{content:"";width:22px;height:3px;background:var(--vault-blue)}.vault-legend .sample:before{background:var(--vault-green)}.vault-chart-caption{margin:8px 0 0}.vault-empty-chart{padding:48px 16px;text-align:center;background:var(--subtle);margin-top:16px}.vault-empty-chart p{margin:8px auto 0;max-width:420px}.vault-freshness{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px;margin:20px 3px 0;color:var(--vault-muted);font-size:13px}.vault-freshness p{margin:0}.vault-freshness strong{display:block;color:var(--ink);margin-bottom:3px}.vault-notice{padding:14px 16px;background:var(--warning);border:2px solid var(--ink);border-left:7px solid var(--sun);margin:18px 0;font-size:14px}.vault-caution{margin:14px 3px 0;color:#71420d}.vault-holdings-head,.vault-holdings>li{display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,.7fr) minmax(100px,1fr);gap:20px;align-items:center}.vault-holdings-head{padding:10px 0;color:var(--vault-muted);font-size:12px;text-transform:uppercase;font-weight:700}.vault-holdings{list-style:none;margin:0;padding:0}.vault-holdings>li{padding:17px 0;border-top:1px solid var(--vault-border)}.vault-holdings strong{font:25px/1.2 Pixel,monospace}.vault-holdings small{display:block;font-size:12px;color:var(--vault-muted);margin-top:3px}.vault-holding-value{font-weight:700;overflow-wrap:anywhere}.vault-weight{display:grid;grid-template-columns:62px minmax(0,1fr);gap:12px;align-items:center;font-size:14px}.vault-weight meter{display:block;width:100%;height:12px;border:0;border-radius:0;background:var(--subtle)}.vault-weight meter::-webkit-meter-bar{border:1px solid var(--ink);border-radius:0;background:var(--subtle)}.vault-weight meter::-webkit-meter-optimum-value{background:var(--royal)}.vault-weight meter::-moz-meter-bar{background:var(--royal)}.vault-drivers,.vault-bridge{border-top:2px solid var(--ink);margin-top:16px;padding-top:22px}.vault-drivers h3,.vault-bridge h3{margin-bottom:12px;font-size:25px}.vault-driver-list{list-style:none;padding:0;margin:16px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 32px;font-size:14px}.vault-driver-list li{display:flex;gap:12px;justify-content:space-between}.vault-driver-list span{text-align:right}.vault-driver-help{margin:14px 0 0}.vault-attribution-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 32px;margin:18px 0 0;padding-top:16px;border-top:1px solid var(--vault-border)}.vault-attribution-totals>div{display:flex;justify-content:space-between;gap:12px;font-size:13px}.vault-attribution-totals dt{color:var(--vault-muted);font-size:13px}.vault-attribution-totals dd{text-align:right}.vault-tvl-figure{margin:0;border-top:1px solid var(--vault-border);padding-top:20px}.vault-tvl-figure figcaption{font:24px/1.2 Flyer,Impact,sans-serif;text-transform:uppercase}.vault-bridge dl{max-width:680px;margin:16px 0}.vault-bridge dl>div{display:flex;gap:20px;justify-content:space-between;padding:8px 0}.vault-bridge dd{text-align:right;font-size:14px}.vault-bridge .vault-bridge-total{border-top:2px solid var(--ink);padding-top:12px;margin-top:6px;font-weight:700}.vault-bridge>p{max-width:800px}.vault-details{border-top:1px solid var(--vault-border);margin-top:18px}.vault-details>summary{padding:17px 0;font-size:15px;font-weight:700}& summary::marker{color:var(--royal)}.vault-records>h2{font-size:clamp(25px,3vw,32px)}.vault-records>.card{padding-block:5px}.vault-records>.card>.vault-details{margin:0}.vault-records>.card>.vault-details:first-child{border-top:0}.vault-table-wrap{overflow-x:auto;max-width:100%;margin-bottom:16px;overscroll-behavior-x:contain}.vault-page table{border-collapse:collapse;width:100%;text-align:left;font-size:13px}.vault-page table td,.vault-page table th{padding:12px 16px 12px 10px;border-bottom:1px solid var(--vault-border);min-width:115px;vertical-align:top}.vault-page thead th{background:var(--subtle);color:var(--ink);font-weight:700}.vault-page tbody th{font-weight:400}.vault-page table small{color:var(--vault-muted);font-size:12px;margin-top:4px}.vault-exact{font-size:12px;color:var(--vault-muted);overflow-wrap:anywhere;max-width:190px;margin-top:4px}.vault-exact summary{padding-block:6px;min-height:34px;color:var(--royal)}.vault-close-changes{margin:0 0 16px}.vault-close-changes>div{display:grid;grid-template-columns:160px minmax(0,1fr);gap:20px;padding:12px 0;font-size:14px}.vault-close-changes small{color:var(--vault-muted);font-size:13px;margin-top:4px}.vault-glossary{max-width:900px;margin:0 0 16px}.vault-glossary>div{display:grid;grid-template-columns:160px minmax(0,1fr);gap:20px;padding:10px 0;font-size:14px}.vault-glossary dt{font-weight:700}.vault-glossary dd{color:var(--vault-muted);font-weight:400}.vault-activity{list-style:none;margin:0;padding:0}.vault-activity>li+li{border-top:1px solid var(--vault-border)}.vault-transaction>summary{display:grid;grid-template-columns:115px minmax(0,1fr) auto;gap:5px 20px;padding:18px 0;align-items:center;font-size:14px;list-style:none}.vault-transaction>summary::-webkit-details-marker{display:none}.vault-kind{display:inline-block;justify-self:start;background:var(--subtle);border:1px solid var(--royal);color:var(--royal);padding:3px 8px;font:21px/1.2 Pixel,monospace;text-transform:uppercase}.vault-kind.redemption{background:var(--warning);color:#71420d;border-color:#9a6a09}.vault-activity-when{color:var(--vault-muted);font-size:13px}.vault-transaction>summary strong{text-align:right;font:27px/1.2 Pixel,monospace}.vault-activity-shares{grid-column:2;font-size:13px}.vault-activity-status{grid-column:2;font-size:12px;color:var(--vault-muted)}.vault-expand{grid-column:3;grid-row:2 / 4;text-align:right;font-size:13px;color:var(--royal)}.vault-expand:after{content:" +"}.vault-transaction[open] .vault-expand:after{content:" −"}.vault-transaction-body{background:var(--subtle);border:1px solid var(--vault-border);padding:16px 18px;margin-bottom:18px;font-size:14px}.vault-transaction-body ul{padding-left:20px;margin:10px 0 14px}.vault-transaction-body li{margin-bottom:6px}.vault-transaction-body small{color:var(--vault-muted);font-size:12px}.vault-transaction-body p{margin-bottom:8px}.vault-hash{display:block;font:12px/1.6 monospace;overflow-wrap:anywhere;margin-top:5px}.vault-footer{background:transparent;border-top:2px solid var(--ink);margin-top:32px;padding:18px 0 0;font-size:13px}@media(max-width:700px){.vault-page .card{padding:18px;box-shadow:4px 4px 0 var(--royal)}.vault-hero-top{display:block}.vault-price-definition{max-width:none;margin-top:18px;font-size:14px}.vault-summary,.vault-flow-metrics{gap:10px}.vault-summary>div,.vault-flow-metrics>div{padding:12px}.vault-summary dd,.vault-flow-metrics dd{font-size:28px}.vault-freshness,.vault-driver-list,.vault-attribution-totals{grid-template-columns:minmax(0,1fr)}.vault-holdings-head,.vault-holdings>li{grid-template-columns:minmax(0,1fr) minmax(72px,.8fr) minmax(62px,.7fr);gap:10px}.vault-holding-value{font-size:14px}.vault-weight{grid-template-columns:minmax(0,1fr);gap:5px}.vault-weight meter{height:8px}.vault-glossary>div{grid-template-columns:minmax(0,1fr);gap:5px}.vault-close-changes>div{grid-template-columns:110px minmax(0,1fr);gap:12px}.vault-transaction>summary{grid-template-columns:100px minmax(0,1fr);gap:6px 12px}.vault-transaction>summary strong{grid-column:2;grid-row:1}.vault-activity-when{grid-column:1 / -1;grid-row:3}.vault-activity-shares{grid-column:2;grid-row:2;text-align:right}.vault-activity-status{grid-column:1 / -1;grid-row:4}.vault-expand{grid-column:1;grid-row:2;text-align:left}.vault-records>.card{padding-block:4px}}@media(max-width:480px){.vault-axis{font-size:24px}.vault-page .card{padding-inline:14px}.vault-stats-toolbar{flex-wrap:wrap}.vault-stats-toolbar>:first-child{flex:1 1 160px}.vault-summary,.vault-flow-metrics{grid-template-columns:minmax(0,1fr);gap:8px;margin-block:22px}.vault-summary>div,.vault-flow-metrics>div{padding:12px 14px}.vault-summary dt,.vault-flow-metrics dt{margin-bottom:4px}.vault-summary .vault-metric-note,.vault-flow-metrics .vault-metric-note{margin-top:4px}.vault-chart-heading h3{font-size:22px}.vault-holdings-head{font-size:10px}.vault-holdings small{font-size:11px}.vault-holding-value,.vault-weight{font-size:12px}.vault-holdings>li{align-items:start}.vault-transaction-body{padding:12px}.vault-close-changes>div{grid-template-columns:minmax(0,1fr);gap:4px}}} diff --git a/dist/index.html b/dist/index.html index a37eff5..d29b844 100644 --- a/dist/index.html +++ b/dist/index.html @@ -27,8 +27,8 @@ <meta name="twitter:card" content="summary_large_image" /> <link rel="icon" type="image/svg+xml" href="./favicon.svg" /> <title>Basket Protocol - - + +

diff --git a/web/scripts/check-bundle.mjs b/web/scripts/check-bundle.mjs index 75c48f9..30fee95 100644 --- a/web/scripts/check-bundle.mjs +++ b/web/scripts/check-bundle.mjs @@ -10,7 +10,9 @@ const changed=git(['diff','--name-only','HEAD']).trim().split('\n').filter(Boole // check-calldata independently pins each reviewed source and freezes every other. // ITEM prompt rule 7: this exact source list replaces only the old v22 source-scope pin (v17 to v22 are HEAD's own now; rebased onto v22's commit 3038c97b on 2026-10-17). // Owner approval 2026-10-14 adds only Tokenomics.tsx's formatLive body; the gate pins every other byte. -const itemSource=["main.tsx","Earn.tsx","itemReads.ts","itemFormat.ts","itemConstants.ts","styles.css"].map(f=>'web/src/'+f); +// 2026-10-20, vault stats build (v25): Vault.tsx (the three VaultViews wrapper pieces), styles.css (the Earn focus corner +// and the appended stats block) and the two new stats sources join the scope; check-calldata restores the two and pins the new ones. +const itemSource=["main.tsx","Earn.tsx","itemReads.ts","itemFormat.ts","itemConstants.ts","styles.css","Vault.tsx","VaultStats.tsx","vaultStatsReport.tsx"].map(f=>'web/src/'+f); const itemPublic=["web/public/art/character/earn.webp","web/public/art/character/transparency.webp"]; // Owner-requested LF repair only: original Anton licence text is pinned after CRLF normalization. const licenceFile='web/public/fonts/Anton-OFL.txt'; @@ -45,7 +47,9 @@ for(const p of changed){ } // v20: no new source and no new public asset. const untracked=git(['ls-files','--others','--exclude-standard','--','web/src','web/public']).trim().split('\n').filter(Boolean); -assert.deepEqual(untracked.sort(),[],'v24 adds no runtime source or public asset'); +// v25: its two new stats sources are accepted tracked or untracked (git apply with or without --index); nothing else is new. +const V25_NEW=['web/src/VaultStats.tsx','web/src/vaultStatsReport.tsx']; +assert.deepEqual(untracked.filter(p=>!V25_NEW.includes(p)).sort(),[],'v25 adds no runtime source or public asset beyond its two stats sources'); assert.equal(sha256('web/index.html'),SHELL_SHA256,'exact v12 source shell'); for(const p of ['web/public/share-card.jpg','dist/share-card.jpg']) { assert.equal(sha256(p),SHARE_SHA256,'exact v12 link picture: '+p); @@ -86,7 +90,7 @@ for(const p of files.filter(p=>p.startsWith('artifacts/')&&p.endsWith('.json')&& if(Buffer.byteLength(after)p.startsWith('dist/'))){const b=fs.readFileSync(path.join(root,p));productionFiles[p]={bytes:b.length,sha256:createHash('sha256').update(b).digest('hex')};} -const result={limitBytes:8388608,uncompressedDeliveryBytes:0,fileCount:files.length,productionExportBytes:Object.values(productionFiles).reduce((a,b)=>a+b.bytes,0),productionFiles,accounting:'Complete candidate file contents including tracked lib sources and this report. Excludes Git metadata, removed task inputs and disposable test/scratch. No Git metadata was modified.',checks:['Protected configuration, dependencies, root contracts, web/pinned, build configuration and validation fixtures unchanged; ITEM and BASK source scope independently pinned; exact share shell and both share JPEG copies pinned; both favicon copies unchanged','No git submodules or nested dependency/cache/archive payloads','24 required empty/25-stock screenshots retained: sixteen quality-18 JPEGs and exactly eight full Docs/Owner lossless WebPs with independent browser/Pillow pixel equality; only the exact named ITEM walk JPEGs are added','Both copies of all 37 original manifest assets and the two exact approved ITEM pictures included']}; +const result={limitBytes:8388608,uncompressedDeliveryBytes:0,fileCount:files.length,productionExportBytes:Object.values(productionFiles).reduce((a,b)=>a+b.bytes,0),productionFiles,accounting:'Complete candidate file contents including tracked lib sources and this report. Excludes Git metadata, removed task inputs and disposable test/scratch. No Git metadata was modified.',checks:['Protected configuration, dependencies, root contracts, web/pinned, build configuration and validation fixtures unchanged; ITEM and BASK source scope independently pinned; exact share shell and both share JPEG copies pinned; both favicon copies unchanged','v25: source scope adds Vault.tsx, the two new stats sources and no public asset','No git submodules or nested dependency/cache/archive payloads','24 required empty/25-stock screenshots retained: sixteen quality-18 JPEGs and exactly eight full Docs/Owner lossless WebPs with independent browser/Pillow pixel equality; only the exact named ITEM walk JPEGs are added','Both copies of all 37 original manifest assets and the two exact approved ITEM pictures included']}; const report=path.join(root,'artifacts/bundle-check.json'); for(let i=0;i<4;i++){fs.writeFileSync(report,JSON.stringify(result,null,2)+'\n');result.uncompressedDeliveryBytes=files.reduce((sum,p)=>sum+fs.statSync(path.join(root,p)).size,0);} fs.writeFileSync(report,JSON.stringify(result,null,2)+'\n');assert.ok(result.uncompressedDeliveryBytes<=result.limitBytes,"Over the 8 MiB budget (if the 24 screenshots are still an older set, run scripts/run-browser.mjs first: it rewrites them at quality 18): "+JSON.stringify(result));console.log('PASS complete bundle',result.uncompressedDeliveryBytes,'/',result.limitBytes,'bytes; lib included'); diff --git a/web/scripts/check-calldata.mjs b/web/scripts/check-calldata.mjs index a542fbf..5d65511 100644 --- a/web/scripts/check-calldata.mjs +++ b/web/scripts/check-calldata.mjs @@ -11,11 +11,14 @@ const root=process.env.BASKET_SOURCE_ROOT||path.resolve('..'); const git=args=>execFileSync('git',args,{cwd:root,encoding:'utf8'}); // v24 retains every v23/v22 transaction comparison after exact generated restoration. import {checkV24Sources, restoreV24} from './check-v24-source.mjs'; +// 2026-10-20, vault stats build (v25) on the live v24 site: HEAD is the v24 commit; the v25 pieces of Vault.tsx and +// styles.css are put back first (v25-restore.mjs), then v24's, before every inherited comparison below. +import {restoreV25, V25_BASE, V25_NEW_SOURCES} from './v25-restore.mjs'; checkV24Sources(root); const BASE='736affca69ad6aefe27b27d7e0ceeb405c236a96', LEGACY='3038c97b30503df69fd4760381e208df2ba54f34'; -assert.equal(git(['rev-parse','HEAD']).trim(),BASE,'exact ITEM base commit'); +assert.equal(git(['rev-parse','HEAD']).trim(),V25_BASE,'exact v25 base commit (the live v24 site)'); const baseline=p=>git(['show',LEGACY+':'+p]); -const rawRead=p=>restoreV24(p,fs.readFileSync(path.join(root,p),'utf8')); +const rawRead=p=>restoreV24(p,restoreV25(p,fs.readFileSync(path.join(root,p),'utf8'))); const read=p=>restoreApproved(p,rawRead(p)); const sha256=s=>createHash('sha256').update(s).digest('hex'); // ITEM pages on HEAD=v22 (3038c97b, the live site since 2026-10-17; the ITEM work was rebased from v16 onto v20 on @@ -196,7 +199,49 @@ for(const f of protectedFiles) assert.equal(read('web/src/'+f),baseline('web/src const NEW_SOURCES=ITEM_NEW_SOURCES; const MODULE_SOURCES=['Tokenomics.tsx','tokenomicsData.ts','BaskGuide.tsx','baskGuideData.ts']; const allSources=fs.readdirSync(path.join(root,'web/src'),{recursive:true}).filter(p=>fs.statSync(path.join(root,'web/src',p)).isFile()).map(p=>p.replaceAll('\\','/')).sort(); -assert.deepEqual(allSources,[...git(['ls-tree','-r','--name-only',LEGACY,'web/src']).trim().split('\n').map(p=>p.slice('web/src/'.length)),...NEW_SOURCES].sort(),'no new source'); +assert.deepEqual(allSources,[...git(['ls-tree','-r','--name-only',LEGACY,'web/src']).trim().split('\n').map(p=>p.slice('web/src/'.length)),...NEW_SOURCES,...V25_NEW_SOURCES].sort(),'no new source beyond the ITEM files and the two v25 stats sources'); +// 2026-10-20, vault stats build (v25) on the live v24 site: the Vault page gains Overview/Stats child tabs under its +// title and the Earn title joins the v15 phone focus-corner rule. Vault.tsx differs from v24 by exactly three pieces +// (the VaultViews import, the wrapper's opening and closing tags) and styles.css by two (the comment and the added Earn +// selector) plus the stats styles appended after the v24 text under one marker, formerly a separate stylesheet, kept in +// styles.css like every earlier module's rules so that no component imports CSS; v25-restore.mjs cuts that block (pinned +// by digest) and puts the pieces back before every inherited comparison, so Vault.tsx still equals LEGACY and the CSS +// prefix/tail pins hold. The two new sources are pinned by independent digests and scanned here: the only network +// use v25 adds to the site is one credential-free GET of the public stats report from VaultStats.tsx; the report is +// rebuilt as React elements from an allowlist (never inserted as HTML); no wallet, storage, send or chain read is touched. +for(const f of ['Vault.tsx','styles.css'])assert.equal(restoreV25('web/src/'+f,fs.readFileSync(path.join(root,'web/src/'+f),'utf8')),git(['show',V25_BASE+':web/src/'+f]),f+': equals the live v24 text once the v25 pieces are put back'); +const V25_PINS={ + "VaultStats.tsx": "2a0f85f2c3494234204a20bdd83a6f0b713860e09cb84270215c097355f61d5c", + "vaultStatsReport.tsx": "826a6871ec25257580eb9924d135d5a0371ad152c097cceb3fef2ac7ad6c68e7" +}; +for(const [f,digest] of Object.entries(V25_PINS))assert.equal(sha256(fs.readFileSync(path.join(root,'web/src/'+f),'utf8')),digest,'independent reviewed v25 source pin: '+f); +const V25_ENDPOINT='https://monitor-production-2eae.up.railway.app/api/vault-stats'; +{ + const stats=fs.readFileSync(path.join(root,'web/src/VaultStats.tsx'),'utf8'),report=fs.readFileSync(path.join(root,'web/src/vaultStatsReport.tsx'),'utf8'),stylesText=fs.readFileSync(path.join(root,'web/src/styles.css'),'utf8'); + const css=stylesText.slice(stylesText.indexOf('\n/* v25: Vault stats')); + assert.equal(sha256(css),'844ee92940f9a8b1347bc165282256bf9bca5d7e140cf07a2a4669af08433fe8','styles.css: the appended v25 stats block is the reviewed one'); + const imports=s=>[...s.matchAll(/^import [^;]* from "([^"]+)";$/gm)].map(m=>m[1]).concat([...s.matchAll(/^import "([^"]+)";$/gm)].map(m=>m[1])); + // Names, not prose: every identifier (also property names), every string and every dynamic import of the two files. + const names=s=>{const tree=ts.createSourceFile('v25.tsx',s,ts.ScriptTarget.Latest,true,ts.ScriptKind.TSX),out={identifiers:new Set(),strings:new Set(),dynamicImports:0,requestCalls:0};(function v(n){if(ts.isIdentifier(n)||ts.isPrivateIdentifier(n))out.identifiers.add(n.text);if(ts.isCallExpression(n)&&ts.isPropertyAccessExpression(n.expression)&&n.expression.name.text==='request')out.requestCalls++;if(ts.isStringLiteral(n)||ts.isNoSubstitutionTemplateLiteral(n))out.strings.add(n.text);if(ts.isTemplateExpression(n))out.strings.add(n.head.text+n.templateSpans.map(x=>x.literal.text).join(''));if(ts.isCallExpression(n)&&n.expression.kind===ts.SyntaxKind.ImportKeyword)out.dynamicImports++;ts.forEachChild(n,v);})(tree);return out;}; + const SINK_NAMES=new Set(['ethereum','localStorage','sessionStorage','indexedDB','sendTransaction','writeContract','sendRawTransaction','XMLHttpRequest','WebSocket','EventSource','sendBeacon','importScripts','Worker','SharedWorker','serviceWorker','dangerouslySetInnerHTML','innerHTML','outerHTML','insertAdjacentHTML','eval','Function','Reflect','globalThis','window','self','document','location','history','navigator','postMessage','cookie']); + for(const [f,s] of [['VaultStats.tsx',stats],['vaultStatsReport.tsx',report]]){ + const n=names(s); + assert.deepEqual([...n.identifiers].filter(x=>SINK_NAMES.has(x)),[],f+': no wallet, storage, send, raw-HTML, global-object, navigation or worker name'); + assert.deepEqual([...n.strings].filter(x=>/^(?:eth_|wallet_|personal_)|sendTransaction|writeContract|javascript:/i.test(x)),[],f+': no wallet method or script string'); + assert.equal(n.dynamicImports,0,f+': no dynamic import'); + assert.equal(n.requestCalls,0,f+': no provider-style .request() call'); + } + assert.deepEqual(imports(stats),['react','./vaultStatsReport'],'VaultStats.tsx imports only React and the report module'); + assert.deepEqual(imports(report),['react'],'vaultStatsReport.tsx imports only React'); + assert.equal((stats.match(/\bfetch\s*\(/g)??[]).length,1,'VaultStats.tsx: exactly one fetch'); + assert.ok(stats.includes('void fetch(url, { signal: controller.signal, credentials: "omit", cache: "no-store", referrerPolicy: "no-referrer" })'),'VaultStats.tsx: the one fetch is a plain GET without credentials or referrer'); + assert.ok(stats.includes('const endpoint = (import.meta as ImportMeta & { env?: Record }).env?.VITE_VAULT_STATS_URL || "'+V25_ENDPOINT+'";'),'VaultStats.tsx: the production stats endpoint, overridable only at build time'); + assert.deepEqual([...stats.matchAll(/https?:\/\/[^\s"'`]+/g)].map(m=>m[0]),[V25_ENDPOINT],'VaultStats.tsx: the stats endpoint is its only address'); + assert.ok(stats.includes('const url = new URL(endpoint); url.searchParams.set("period", period);'),'VaultStats.tsx: the request carries only the period'); + assert.equal((report.match(/\bfetch\b/g)??[]).length,0,'vaultStatsReport.tsx: no network use'); + assert.ok(report.includes('else if (/^https:\\/\\/robin\\.etherscan\\.io\\/tx\\/0x[0-9a-fA-F]{64}$/.test(href)) {')&&report.includes('props.href = href; props.target = "_blank"; props.rel = "noopener noreferrer";')&&report.includes('if (period) { props.href = "#vault";')&&report.includes('else return createElement("span", { key }, el.textContent);'),'vaultStatsReport.tsx: a link is kept only as a Robinhood explorer transaction (new tab, noopener) or a #vault period switch; any other link becomes plain text'); + assert.doesNotMatch(css,/url\(|@import/,'the v25 stats styles load nothing'); +} const modulePins={ "Tokenomics.tsx": "6d57c2f9d8629f7207368b6d00618da9351e72aba0de52fcff225490be47c85a", "tokenomicsData.ts": "8e2cfc45c8055f2dbfdc7a7610e57856809845d52dd103712dd8398f3b11a99a", @@ -356,7 +401,7 @@ function localDeclarations(file,text,fn,list){ return out; } const sources=git(['ls-tree','-r','--name-only',LEGACY,'web/src']).trim().split('\n').filter(p=>/\.tsx?$/.test(p)).map(p=>p.slice(8)); -assert.deepEqual(git(['ls-files','--cached','--others','--exclude-standard','web/src']).trim().split('\n').filter(p=>/\.tsx?$/.test(p)).map(p=>p.slice(8)).sort(),[...sources,...NEW_SOURCES].sort(),'No source file added or removed'); +assert.deepEqual(git(['ls-files','--cached','--others','--exclude-standard','web/src']).trim().split('\n').filter(p=>/\.tsx?$/.test(p)).map(p=>p.slice(8)).sort(),[...sources,...NEW_SOURCES,...V25_NEW_SOURCES.filter(f=>/\.tsx?$/.test(f))].sort(),'No source file added or removed beyond the ITEM files and the v25 stats sources'); // Every source is either frozen (byte-identical to HEAD) or a v16 file with its documented pieces (above). assert.deepEqual([...sources].sort(),[...protectedFiles,...Object.keys(editedFiles)].filter(f=>/\.tsx?$/.test(f)).sort(),'every web/src source is frozen or an ITEM file with documented pieces (v22\'s three files are HEAD\'s own)'); const scans={},facts={attributes:{},guarded:{},calls:{}}; @@ -1291,7 +1336,7 @@ console.log('PASS ITEM gate',expectedActions.length,'actions;',itemEncodingCases // The report. The delivery is close to its size limit, so each piece is recorded by length and SHA-256, not repeated. const pieceRecord=([v12,head])=>({v12:{length:v12.length,sha256:sha256(v12)},head:{length:head.length,sha256:sha256(head)}}); const brief=x=>x.length>120?{start:x.slice(0,80),length:x.length,sha256:sha256(x)}:x; -fs.writeFileSync('../artifacts/calldata-comparison.json',JSON.stringify({result:'PASS',item:{mode:process.env.BASKET_ITEM_FINAL==='1'?'final':'null-or-filled',actions:expectedActions,encodingCases:itemEncodingCases,nullSlotCases:nullCases,nullActionCases,reads:itemReads,nativeRpcMethods:itemMethodsAdded,vaultNoValueBuilders,safety:itemSafety,independentRawSourcePins:ITEM_REVIEWED_PINS,legacyNormalization:'Exact approved pieces restored to base before unchanged legacy assertions'},baseline:git(['rev-parse','HEAD']).trim(),protectedFiles,editedFiles:Object.fromEntries(Object.entries(editedFiles).map(([f,x])=>[f,x.length+' documented pieces [v12, HEAD]'])),v12Pieces:Object.fromEntries(Object.entries(editedFiles).map(([f,x])=>[f,x.map(pieceRecord)])),counts, +fs.writeFileSync('../artifacts/calldata-comparison.json',JSON.stringify({result:'PASS',v25:{base:V25_BASE,restoredBeforeInheritedChecks:['Vault.tsx','styles.css'],newSources:V25_NEW_SOURCES,independentRawSourcePins:V25_PINS,endpoint:V25_ENDPOINT},item:{mode:process.env.BASKET_ITEM_FINAL==='1'?'final':'null-or-filled',actions:expectedActions,encodingCases:itemEncodingCases,nullSlotCases:nullCases,nullActionCases,reads:itemReads,nativeRpcMethods:itemMethodsAdded,vaultNoValueBuilders,safety:itemSafety,independentRawSourcePins:ITEM_REVIEWED_PINS,legacyNormalization:'Exact approved pieces restored to base before unchanged legacy assertions'},baseline:git(['rev-parse','HEAD']).trim(),protectedFiles,editedFiles:Object.fromEntries(Object.entries(editedFiles).map(([f,x])=>[f,x.length+' documented pieces [v12, HEAD]'])),v12Pieces:Object.fromEntries(Object.entries(editedFiles).map(([f,x])=>[f,x.map(pieceRecord)])),counts, documentedGuardedCallChanges:expected,documentedAttributeChanges:Object.fromEntries(Object.entries(attributeChanges).map(([f,a])=>[f,{removed:a.removed.map(x=>'<'+x[0]+'> '+x[1]),added:a.added.map(x=>'<'+x[0]+'> '+x[1]),why:'each has its why in scripts/check-calldata.mjs'}])), documentedCallChanges:Object.fromEntries(Object.entries(callChanges).map(([f,c])=>[f,{why:c.why,piecesPutBackInsideCalls:c.pieces.map(pieceRecord),removed:c.removed.map(brief),newUsesOfWatchedNames:c.uses.map(([x,where])=>[brief(x),where])}])), vaultStockShelves:{attributes:vaultAttributes,handlers:vaultHandlers},pinnedFunctions,walletHookReturn:{equalToHead:true,text:HOOK_RETURN_HEAD}, @@ -1310,6 +1355,7 @@ fs.writeFileSync('../artifacts/calldata-comparison.json',JSON.stringify({result: 'All protected wallet functions, flow effects, transaction buttons and handlers are byte-identical to HEAD; declaration and wrapper-scope checks prevent name rebinding', 'Provider methods and uses, browser storage and network sinks equal HEAD; page loads equal HEAD; Disconnect makes no request; components retains the same single wallet.send', 'The differential encoding corpus, six-clock send builders, parser declarations, pinned v9 decisions and imported bindings retain every prior assertion', - 'Only approved v12 source files change; shell and share-card bytes are separately pinned by check-bundle.mjs' + 'Only approved v12 source files change; shell and share-card bytes are separately pinned by check-bundle.mjs', + 'v25: Vault.tsx and styles.css equal the live v24 text once their five pieces and the appended stats block are put back; the two new stats sources are pinned by independent digests, import only React and each other, add one credential-free GET of the public stats report as the only new network use, rebuild the report from an allowlist and keep only explorer transaction links' ]},null,2)+'\n'); console.log('PASS baseline call-expression comparison',counts,'differential encoding',tally,'send builders',sends); diff --git a/web/scripts/check-v24-source.mjs b/web/scripts/check-v24-source.mjs index 81a4140..a201614 100644 --- a/web/scripts/check-v24-source.mjs +++ b/web/scripts/check-v24-source.mjs @@ -7,6 +7,9 @@ import ts from 'typescript'; const pieces=JSON.parse(fs.readFileSync(new URL('./v24-pieces.json',import.meta.url),'utf8')); // Digests are independent of generated restoration pieces. const pins=JSON.parse(fs.readFileSync(new URL('./v24-pins.json',import.meta.url),'utf8')); +// 2026-10-20, vault stats build (v25): the Vault wrapper and Earn focus-corner pieces are put back before the v24 +// digests and the v23 restoration below, which are unchanged; the two new stats sources are the only additions. +import {restoreV25, V25_NEW_SOURCES} from './v25-restore.mjs'; export function restoreV24(file,text){ for(const [now,old] of pieces[file.replace(/^web\/src\//,'')]??[]){assert.equal(text.split(now).length,2,file+': one exact v24 piece');text=text.replace(now,old);} return text; @@ -17,9 +20,9 @@ export function checkV24Sources(root){ const names=['Earn.tsx','itemConstants.ts','itemFormat.ts','itemReads.ts','main.tsx','styles.css']; assert.deepEqual(Object.keys(pieces).sort(),names);assert.deepEqual(Object.keys(pins).sort(),names); const sources=git(['ls-tree','-r','--name-only',base,'web/src']).trim().split('\n'); - assert.deepEqual(git(['ls-files','--cached','--others','--exclude-standard','web/src']).trim().split('\n').sort(),sources.sort(),'No source added or removed'); + assert.deepEqual(git(['ls-files','--cached','--others','--exclude-standard','web/src']).trim().split('\n').sort(),[...sources,...V25_NEW_SOURCES.map(f=>'web/src/'+f)].sort(),'No source added or removed beyond the two v25 stats sources'); for(const file of sources){ - const text=fs.readFileSync(path.join(root,file),'utf8'),name=path.basename(file),old=git(['show',base+':'+file]); + const text=restoreV25(file,fs.readFileSync(path.join(root,file),'utf8')),name=path.basename(file),old=git(['show',base+':'+file]); if(pins[name]) assert.equal(createHash('sha256').update(text).digest('hex'),pins[name],file+': independently pinned v24 source'); assert.equal(restoreV24(file,text),old,file+': v23 byte equality after exact v24 restoration'); } @@ -31,5 +34,5 @@ export function checkV24Sources(root){ assert.match(actual('Earn.tsx'),/type="radio" name="earn-pool"/); assert.match(actual('main.tsx'),/useItemFigures\(page === "Earn" \? "earn" : "prices", page === "Earn" \? wallet.account : undefined, page\)/); assert.doesNotMatch(actual('itemReads.ts'),/setInterval|setTimeout|localStorage|sessionStorage|wallet\./); - console.log('PASS v24 source gate: six independently pinned display/read sources; exact v23 restoration; unchanged sends, approvals, liquidity quotes and original Earn reads'); + console.log('PASS v24 source gate (after exact v25 restoration of Vault.tsx and styles.css): six independently pinned display/read sources; exact v23 restoration; unchanged sends, approvals, liquidity quotes and original Earn reads'); } diff --git a/web/scripts/check-vault-stats-source.mjs b/web/scripts/check-vault-stats-source.mjs new file mode 100644 index 0000000..bf3fc3d --- /dev/null +++ b/web/scripts/check-vault-stats-source.mjs @@ -0,0 +1,99 @@ +import assert from "node:assert/strict"; +import fs from "node:fs"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import { execFileSync } from "node:child_process"; +import { createHash } from "node:crypto"; + +// A new, independently pinned gate. The existing source gates remain untouched. +const baseline = "66bf0100cbc5b333b6184cd9b87071886d04742e"; +const root = path.resolve(fileURLToPath(new URL("../..", import.meta.url))); +const git = (...args) => execFileSync("git", args, { cwd: root, maxBuffer: 16 << 20 }); +const paths = (prefix) => git("ls-tree", "-r", "--name-only", baseline, ...(prefix ? [prefix] : [])).toString().trim().split("\n").filter(Boolean); +// cat-file --filters applies the repository's checkout line endings. It permits +// Windows CRLF checkouts while still comparing every checked-out byte exactly. +const original = (file) => git("cat-file", "--filters", `${baseline}:${file}`); +const actual = (file) => fs.readFileSync(path.join(root, file)); +const equal = (file, expected = original(file)) => assert.ok(actual(file).equals(expected), `${file}: exact baseline checkout bytes`); + +const sources = paths("web/src"); +const added = ["web/src/VaultStats.tsx", "web/src/vaultStatsReport.tsx"]; +const walk = (directory) => fs.readdirSync(path.join(root, directory), { withFileTypes: true }).flatMap(entry => { + const name = `${directory}/${entry.name}`; + return entry.isDirectory() ? walk(name) : [name]; +}); +assert.deepEqual(walk("web/src").sort(), [...sources, ...added].sort(), "Only the two reviewed stats sources may be added; no original source may be removed"); +for (const file of sources) if (!["web/src/Vault.tsx", "web/src/styles.css"].includes(file)) equal(file); + +const vault = "web/src/Vault.tsx"; +let expectedVault = original(vault).toString("utf8"); +const newline = expectedVault.includes("\r\n") ? "\r\n" : "\n"; +const edits = [ + [ + 'import { PageTitle, AddressLink, Note, Empty } from "./components";', + `import { PageTitle, AddressLink, Note, Empty } from "./components";${newline}import { VaultViews } from "./VaultStats";`, + ], + [ + ` />${newline}
`, + ` />${newline} ${newline}
`, + ], + [ + ' ', + ` ${newline} `, + ], +]; +for (const [before, after] of edits) { + assert.equal(expectedVault.split(before).length, 2, `One exact integration point: ${before.split(newline)[0]}`); + expectedVault = expectedVault.replace(before, after); +} +equal(vault, Buffer.from(expectedVault)); + +const styles = "web/src/styles.css"; +let expectedStyles = original(styles).toString("utf8"); +const stylesNewline = expectedStyles.includes("\r\n") ? "\r\n" : "\n"; +const stylesEdits = [ + [ + "/* v15: Deposit and Redeem on phones. iPhone browsers draw the focus marker", + "/* Deposit, Redeem and Earn on phones. iPhone browsers draw the focus marker", + ], + [ + " .page-title.character-redeem:has(> h1:focus-visible) .title-character:after {", + ` .page-title.character-redeem:has(> h1:focus-visible) .title-character:after,${stylesNewline} .page-title.character-earn:has(> h1:focus-visible) .title-character:after {`, + ], +]; +for (const [before, after] of stylesEdits) { + assert.equal(expectedStyles.split(before).length, 2, `One exact Earn focus-corner edit: ${before}`); + expectedStyles = expectedStyles.replace(before, after); +} +// 2026-10-20, release: the stats styles (formerly a separate stylesheet) are appended after the edited v24 text under one +// marker, like every earlier module's rules, so that no component imports CSS; the block is pinned by its digest. +const stylesActual = actual(styles).toString("utf8"), marker = `${stylesNewline}/* v25: Vault stats`; +assert.equal(stylesActual.split(marker).length, 2, "styles.css: one appended v25 stats block"); +assert.ok(stylesActual.startsWith(expectedStyles) && stylesActual.indexOf(marker) === expectedStyles.length, "styles.css: exactly the edited v24 text precedes the v25 stats block"); +assert.equal(createHash("sha256").update(stylesActual.slice(expectedStyles.length)).digest("hex"), "844ee92940f9a8b1347bc165282256bf9bca5d7e140cf07a2a4669af08433fe8", "styles.css: the appended v25 stats block is the reviewed one"); + +const protectedPaths = paths("").filter(file => + /(^|\/)(package(?:-lock)?\.json|(?:npm|pnpm|yarn|bun)\.lockb?|pnpm-lock\.yaml)$/.test(file) || + file.startsWith("web/scripts/") || + ["web/tsconfig.json", "web/vite.config.ts", "foundry.toml", "remappings.txt"].includes(file) +); +// 2026-10-20, release: four inherited check scripts are narrowly extended for this build (v25-restore.mjs puts the +// Vault.tsx and styles.css pieces back before their inherited comparisons, the two new sources are allowed and +// pinned, and the phone visibility check measures the Vault tab bar's displacement). They are reviewed by hand and +// listed here rather than byte-pinned; every other dependency, configuration and check file equals the baseline. +const extendedChecks = ["web/scripts/check-calldata.mjs", "web/scripts/check-v24-source.mjs", "web/scripts/check-bundle.mjs", "web/scripts/check-visibility.mjs"]; +for (const file of protectedPaths) if (!extendedChecks.includes(file)) equal(file); +// 2026-10-20, release review: the built export must carry the pinned production endpoint and nothing else for it. A +// build-time override (VITE_VAULT_STATS_URL from a web/.env* file or the environment) would otherwise reach the export +// unseen by the source pins: no env file may exist under web/, and the one built module script must resolve the +// endpoint through the pinned fallback exactly once, with no override value and no other Railway address. +const ENDPOINT = "https://monitor-production-2eae.up.railway.app/api/vault-stats"; +assert.deepEqual(fs.readdirSync(path.join(root, "web")).filter(name => /^\.env/.test(name)), [], "no env file under web/"); +const shell = fs.readFileSync(path.join(root, "dist/index.html"), "utf8"); +const scripts = [...shell.matchAll(/]*\ssrc="([^"]+)"/g)].map(m => m[1].replace(/^\.?\//, "")); +assert.equal(scripts.length, 1, "one built module script"); +const built = fs.readFileSync(path.join(root, "dist", scripts[0]), "utf8"); +assert.equal(built.split('VITE_VAULT_STATS_URL||"' + ENDPOINT + '"').length, 2, "the built script resolves the endpoint through the pinned fallback exactly once"); +assert.equal((built.match(/VITE_VAULT_STATS_URL/g) ?? []).length, 1, "no build-time endpoint override reached the export"); +assert.deepEqual([...built.matchAll(/https?:\/\/[^"'`\s)]*railway\.app[^"'`\s)]*/g)].map(m => m[0]), [ENDPOINT], "the stats endpoint is the only Railway address in the export"); +console.log(`PASS stats source preservation: ${sources.length - 2} original sources byte-identical (including main.tsx), Vault.tsx has exactly three approved import/wrapper edits, styles.css has exactly two approved Earn focus-corner replacements and the appended v25 stats block, two new stats sources, and ${protectedPaths.length - extendedChecks.length} dependency/configuration/legacy-check files unchanged against ${baseline} (the four narrowly extended check scripts are listed in this gate); the built export carries the pinned stats endpoint only, with no env file under web/.`); diff --git a/web/scripts/check-visibility.mjs b/web/scripts/check-visibility.mjs index 408933d..e7c9966 100644 --- a/web/scripts/check-visibility.mjs +++ b/web/scripts/check-visibility.mjs @@ -304,7 +304,7 @@ try { for(const statusCase of ['normal','closed','weekend']) for(const variant of ['no-wallet','connected']) for(const name of (statusCase==='weekend'?['deposit']:statusCase==='closed'?['vault','deposit']:['vault','deposit','redeem','docs','owner','losses'])) { statusFixture=statusCase==='weekend'?3:statusCase==='closed'?14:0; const beforeFixtureReads=statusFixtureReads,beforeBlocks=weekendBlockReads; - const snapshots=[],layout=[],headerChanges=[]; + const snapshots=[],layout=[],headerChanges=[];let vaultTabs=null; for(const ver of ['old','new']) { await page.goto(`${base}/${ver}/?${variant}#${name}`); await page.evaluate(()=>document.fonts.ready); @@ -313,23 +313,42 @@ try { for(let quiet=0;quiet<2;){await page.waitForTimeout(100);quiet=inflight===0?quiet+1:0;} await page.waitForFunction(()=>![...document.querySelectorAll('main p, main small, main button')].some(e=>/Reading\.\.\.|Reading your wallet/.test(e.textContent))); await page.evaluate(()=>scrollTo(0,0)); - // v24 placement B: verify the actual added strip and its exact displacement, - // then hide only that strip for the unchanged v23 page geometry comparison. - if(ver==='new'){ - const delta=await page.evaluate(()=>{ - const el=document.querySelector('.token-prices'),header=document.querySelector('header'),nav=document.querySelector('nav'),main=document.querySelector('main'); - const before={header:header.getBoundingClientRect().height,nav:nav.getBoundingClientRect().top,main:main.getBoundingClientRect().top}; + // v24 placement B proved the added strip's displacement and hid it for the v23 comparison. 2026-10-20, v25: the + // strip is part of the v24 baseline now, so it is measured on both versions and compared below (same words, + // logos, place, size and gap, no overflow) instead of being hidden; the header-height pin covers the rest. + { + const strip=await page.evaluate(()=>{ + const el=document.querySelector('.token-prices'); const r=el.getBoundingClientRect(),gap=parseFloat(getComputedStyle(el).marginBottom),caption=el.querySelector('p').textContent; const logos=[...el.querySelectorAll('svg')].map(e=>({name:e.getAttribute('aria-label'),width:e.getBoundingClientRect().width,height:e.getBoundingClientRect().height})); - const overflow=document.documentElement.scrollWidth>innerWidth; - el.style.display='none'; - return {height:r.height,gap,caption,logos,overflow,header:before.header-header.getBoundingClientRect().height,nav:before.nav-nav.getBoundingClientRect().top,main:before.main-main.getBoundingClientRect().top}; + return {top:r.top,height:r.height,gap,caption,logos,overflow:document.documentElement.scrollWidth>innerWidth}; }); - assert.equal(delta.caption,'Pool prices and BASK stock value, read at the last refresh.'); - assert.deepEqual(delta.logos,[{name:'BASK',width:20,height:20},{name:'ITEM',width:20,height:20}]); - assert.equal(delta.overflow,false,'real shared header fits the phone'); - for(const key of ['header','nav','main'])assert.ok(near(delta[key],delta.height+delta.gap),'only the measured strip displaces '+key); - headerChanges.push(delta); + assert.equal(strip.caption,'Pool prices and BASK stock value, read at the last refresh.'); + assert.deepEqual(strip.logos,[{name:'BASK',width:20,height:20},{name:'ITEM',width:20,height:20}]); + assert.equal(strip.overflow,false,'real shared header fits the phone'); + headerChanges.push({version:ver,...strip}); + } + // 2026-10-20, vault stats build (v25): the Vault page carries Overview/Stats child tabs right under its title. + // Verify the actual added tab bar (two tabs of at least 44 px, Overview selected, the Stats panel hidden and no + // stats report mounted) and its exact displacement of the overview content below it, then hide only that bar + // for the unchanged v24 page geometry comparison, as the price strip above. + if(ver==='new'&&name==='vault'){ + vaultTabs=await page.evaluate(()=>{ + const bar=document.querySelector('main .vault-view-tabs'),title=document.querySelector('main .page-title'),panel=document.querySelector('#vault-view-panel-0'),first=panel?.querySelector(':scope > section.panel'); + if(!bar||!title||!panel||!first)return null; + const tabs=[...bar.querySelectorAll('[role="tab"]')].map(b=>({text:b.textContent.trim(),selected:b.getAttribute('aria-selected'),tabIndex:b.tabIndex,height:b.getBoundingClientRect().height})); + const r=bar.getBoundingClientRect(),cs=getComputedStyle(bar),before={first:first.getBoundingClientRect().top,panel:panel.getBoundingClientRect().top}; + const stats=document.querySelectorAll('.basket-vault-stats').length,hiddenPanel=document.querySelector('#vault-view-panel-1')?.hidden??null; + bar.style.display='none'; + return {role:bar.getAttribute('role'),label:bar.getAttribute('aria-label'),tabs,top:r.top,height:r.height,gap:parseFloat(cs.marginBottom),titleBottom:title.getBoundingClientRect().bottom,stats,hiddenPanel,first:before.first-first.getBoundingClientRect().top,panel:before.panel-panel.getBoundingClientRect().top}; + }); + assert.ok(vaultTabs,'v25: the Vault view tab bar, its Overview panel and the first overview panel exist'); + assert.deepEqual([vaultTabs.role,vaultTabs.label],['tablist','Vault view'],'v25: the child tabs are one labelled tablist'); + assert.deepEqual(vaultTabs.tabs.map(t=>[t.text,t.selected,t.tabIndex]),[['Overview','true',0],['Stats','false',-1]],'v25: exactly Overview and Stats, Overview selected by default with the roving tab stop'); + assert.ok(vaultTabs.tabs.every(t=>t.height>=44),'v25: each child tab is at least 44 px tall'); + assert.deepEqual([vaultTabs.stats,vaultTabs.hiddenPanel],[0,true],'v25: no stats report is mounted and the Stats panel is hidden while Overview shows'); + assert.ok(vaultTabs.top>=vaultTabs.titleBottom-0.5,'v25: the tab bar sits below the Vault title, not inside it'); + assert.ok(vaultTabs.height>0&&near(vaultTabs.first,vaultTabs.height+vaultTabs.gap)&&near(vaultTabs.panel,vaultTabs.height+vaultTabs.gap),'v25: only the measured tab bar displaces the overview content: '+JSON.stringify(vaultTabs)); } // All underlying page positions and words still compare exactly with v23. snapshots.push(await page.locator('main p, main input, main button, main select, main textarea, main summary, main .empty, main .note').evaluateAll(elementSnapshots)); @@ -339,6 +358,7 @@ try { if(name==='vault')layout.at(-1).capacity=await page.locator('.stats > div').nth(3).evaluate(e=>({label:e.querySelector(':scope > span').firstChild.textContent.trim(),value:e.querySelector(':scope > strong').textContent})); } const [old,now]=snapshots,[oldLayout,newLayout]=layout,regressions=[],checks=[],exceptions=[]; + assert.ok(near(headerChanges[0].top,headerChanges[1].top)&&near(headerChanges[0].height,headerChanges[1].height)&&near(headerChanges[0].gap,headerChanges[1].gap),name+': v25: the price strip equals the baseline in place, size and gap'); // Decision A: only Earn is added; existing header and every first-screen vertical position stay pinned below. assert.deepEqual(oldLayout.nav.map(x=>x.text),['Vault','Deposit','Redeem','Earn','Docs'],'baseline navigation'); assert.deepEqual(newLayout.nav.map(x=>x.text),['Vault','Deposit','Redeem','Earn','Docs'],'ITEM navigation'); @@ -475,7 +495,7 @@ try { } // Original slogan-strip and title-character assertions, with explicit header // height and overflow pins added. No exception applies to these parts. - checks.push('header grows only by the measured approved price strip; header and every underlying element equal v23 with that strip alone hidden'); + checks.push('the v24 price strip equals the baseline in words, logos, place, size and gap; header and every underlying element equal v24'); if(!near(newLayout.header.top,oldLayout.header.top)||!near(newLayout.header.height,oldLayout.header.height))regressions.push({tag:'HEADER',text:'header',old:oldLayout.header,now:newLayout.header}); checks.push('slogan strip in the same place and size, still and full under reduced motion'); {const o=oldLayout.strip,n=newLayout.strip;if(Math.abs(n.top-o.top)>0.01||Math.abs(n.height-o.height)>0.01||n.animations!==0||!n.still)regressions.push({tag:'DIV',text:'slogan strip',old:o,now:n});} @@ -488,6 +508,7 @@ try { // assertion, while the report retains the prior elements and measured deltas. results.push({statusCase,variant,name,prior,hintGrowth,checks,exceptions,regressions,headerChanges, headerHeights:[oldLayout.header.height,newLayout.header.height], + ...(name==='vault'?{vaultTabs}:{}), ...(name==='docs'?{docsAddedHeight:docsGrowth}:{}), }); } @@ -592,6 +613,6 @@ try { assert.deepEqual(routingErrors,[],'Only local files and allowed public RPC reads; fixture account reads stay synthetic'); for(const r of results)if(r.regressions.length)throw Error(JSON.stringify({variant:r.variant,name:r.name,regressions:r.regressions})); - console.log('PASS 375x812 baseline visibility: six pages, no-wallet and connected;',results.reduce((n,r)=>n+r.prior.length,0),'previous first-screen elements unchanged after the exact measured header-strip displacement; the three title panels equal to the baseline across the panel, the Vault title in its v15 placing; header height, slogan strip and character assertions retained'); + console.log('PASS 375x812 baseline visibility: six pages, no-wallet and connected;',results.reduce((n,r)=>n+r.prior.length,0),'previous first-screen elements unchanged with the v24 price strip compared (not hidden) and, on Vault, the measured v25 Overview/Stats tab-bar displacement; the three title panels equal to the baseline across the panel, the Vault title in its v15 placing; header height, slogan strip and character assertions retained'); fs.writeFileSync('../artifacts/phone-visibility.json',JSON.stringify(results,null,2)+'\n'); }finally{await b.close();await new Promise(r=>server.close(r));} diff --git a/web/scripts/v25-restore.mjs b/web/scripts/v25-restore.mjs new file mode 100644 index 0000000..6e46b63 --- /dev/null +++ b/web/scripts/v25-restore.mjs @@ -0,0 +1,41 @@ +import assert from 'node:assert/strict'; +import {createHash} from 'node:crypto'; +// 2026-10-20, vault stats build (v25) on the live v24 site 66bf0100. Two existing sources change: Vault.tsx gains the +// VaultViews import and wraps its overview content (three pieces); styles.css adds the Earn title to the v15 phone +// focus-corner rule, rewords its comment (two pieces) and carries the stats styles appended after the v24 text under +// one marker (pinned by digest), so that no component imports a stylesheet. restoreV25 cuts that block and puts the +// pieces back, so every inherited gate (check-v24-source.mjs, then check-calldata.mjs's v23/v22 comparisons) still +// sees the exact v24 text. The two new sources are listed here and pinned by independent digests and scanned in +// check-calldata.mjs; this file restores nothing in them. check-vault-stats-source.mjs holds its own independent copy +// of these edits, byte-compared forward. +export const V25_BASE='66bf0100cbc5b333b6184cd9b87071886d04742e'; +export const V25_NEW_SOURCES=['VaultStats.tsx','vaultStatsReport.tsx']; +export const V25_STYLES_MARKER='\n/* v25: Vault stats'; +export const V25_STYLES_BLOCK_SHA256='844ee92940f9a8b1347bc165282256bf9bca5d7e140cf07a2a4669af08433fe8'; +const pieces={ + 'Vault.tsx':[ + ['import { PageTitle, AddressLink, Note, Empty } from "./components";\nimport { VaultViews } from "./VaultStats";\n', + 'import { PageTitle, AddressLink, Note, Empty } from "./components";\n'], + [' />\n \n
\n', + ' />\n
\n'], + [' \n \n', + ' \n'], + ], + 'styles.css':[ + ['/* Deposit, Redeem and Earn on phones. iPhone browsers draw the focus marker', + '/* v15: Deposit and Redeem on phones. iPhone browsers draw the focus marker'], + [' .page-title.character-redeem:has(> h1:focus-visible) .title-character:after,\n .page-title.character-earn:has(> h1:focus-visible) .title-character:after {', + ' .page-title.character-redeem:has(> h1:focus-visible) .title-character:after {'], + ], +}; +export function restoreV25(file,text){ + const name=file.replace(/^web\/src\//,''); + if(name==='styles.css'){ + assert.equal(text.split(V25_STYLES_MARKER).length,2,file+': one appended v25 stats block'); + const at=text.indexOf(V25_STYLES_MARKER); + assert.equal(createHash('sha256').update(text.slice(at)).digest('hex'),V25_STYLES_BLOCK_SHA256,file+': the appended v25 stats block is the reviewed one'); + text=text.slice(0,at); + } + for(const [now,old] of pieces[name]??[]){assert.equal(text.split(now).length,2,file+': one exact v25 piece');text=text.replace(now,old);} + return text; +} diff --git a/web/src/Vault.tsx b/web/src/Vault.tsx index b270c95..578f818 100644 --- a/web/src/Vault.tsx +++ b/web/src/Vault.tsx @@ -19,6 +19,7 @@ import { type Snapshot, } from "./model"; import { PageTitle, AddressLink, Note, Empty } from "./components"; +import { VaultViews } from "./VaultStats"; import { StoreShelf } from "./Scenery"; import { countdown, @@ -206,6 +207,7 @@ export function VaultPage({ snapshot: s }: { snapshot: Snapshot }) { line: "I was hoping you would come through my aisle", }} /> +

Inside the basket

@@ -264,6 +266,7 @@ export function VaultPage({ snapshot: s }: { snapshot: Snapshot }) {
+
); } diff --git a/web/src/VaultStats.tsx b/web/src/VaultStats.tsx new file mode 100644 index 0000000..6dd84d1 --- /dev/null +++ b/web/src/VaultStats.tsx @@ -0,0 +1,64 @@ +import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent, type ReactNode } from "react"; +import { readStatsReport, renderStatsReport, type StatsPeriod, type StatsReport } from "./vaultStatsReport"; + +const endpoint = (import.meta as ImportMeta & { env?: Record }).env?.VITE_VAULT_STATS_URL || "https://monitor-production-2eae.up.railway.app/api/vault-stats"; +export function VaultViews({ children }: { children: ReactNode }) { + const [tab, setTab] = useState(0); + const buttons = useRef<(HTMLButtonElement | null)[]>([]); + function move(event: KeyboardEvent) { + const next = event.key === "Home" ? 0 : event.key === "End" ? 1 : event.key === "ArrowRight" || event.key === "ArrowLeft" ? 1 - tab : undefined; + if (next === undefined) return; + event.preventDefault(); + setTab(next); + buttons.current[next]?.focus(); + } + return <> +
+ {["Overview", "Stats"].map((label, index) => )} +
+ + + ; +} + +export function VaultStatsPage() { + const [period, setPeriod] = useState("all"); + const [report, setReport] = useState(); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(""); + const [attempt, setAttempt] = useState(0); + const generation = useRef(0); + useEffect(() => { + const request = ++generation.current; + const controller = new AbortController(); + const timeout = setTimeout(() => controller.abort(), 20000); + setLoading(true); setError(""); + const url = new URL(endpoint); url.searchParams.set("period", period); + void fetch(url, { signal: controller.signal, credentials: "omit", cache: "no-store", referrerPolicy: "no-referrer" }) + .then(async response => { + if (!response.ok) throw new Error("Stats unavailable"); + if (Number(response.headers.get("content-length") || 0) > 2_097_152) throw new Error("Stats too large"); // 2026-10-20 review: the adapter's own 2 MiB envelope bound, applied before the body is read. + const result = readStatsReport(await response.json(), period); + if (generation.current === request) setReport(result); + }) + .catch(() => { if (generation.current === request) { setReport(undefined); setError("Vault stats are unavailable right now. Please try again."); } }) + .finally(() => { clearTimeout(timeout); if (generation.current === request) setLoading(false); }); + return () => { ++generation.current; clearTimeout(timeout); controller.abort(); }; + }, [period, attempt]); + const choosePeriod = useCallback((next: StatsPeriod) => setPeriod(next), []); + const content = useMemo(() => { + if (!report) return null; + try { return renderStatsReport(report.html, choosePeriod); } + catch { return
Vault stats could not be displayed. Please try again.
; } // 2026-10-20 review: never unmount the page over a bad report. + }, [report, choosePeriod]); + return
+

The vault holds tokens linked to stock prices. BASK represents a share of that basket.

+
+ {loading ? "Reading vault stats…" : report ? (report.preview ? "Preview · captured monitor readings" : "Report updated " + new Date(report.generatedAt).toLocaleString("en-US", { timeZone: "America/New_York", month: "short", day: "numeric", hour: "numeric", minute: "2-digit" }) + " New York") : "Stats connection unavailable"} + +
+ {report?.preview &&

Design preview using captured readings from the reference monitor. These figures are not live.

} + {error &&
{error}
} +
{content || (loading ?

Reading BASK value, holdings and history…

: null)}
+
; +} diff --git a/web/src/styles.css b/web/src/styles.css index de6ee47..633948c 100644 --- a/web/src/styles.css +++ b/web/src/styles.css @@ -3016,13 +3016,14 @@ button.quiet.small-toggle { text-align: center; } } -/* v15: Deposit and Redeem on phones. iPhone browsers draw the focus marker +/* Deposit, Redeem and Earn on phones. iPhone browsers draw the focus marker around the heading after a tab is tapped. While it is drawn, her shelf line sits 3px lower and ends at the marker's outer edge, so the line runs into the marker's lower left corner as one line. */ @media (max-width: 660px) and (forced-colors: none) { .page-title.character-deposit:has(> h1:focus-visible) .title-character:after, - .page-title.character-redeem:has(> h1:focus-visible) .title-character:after { + .page-title.character-redeem:has(> h1:focus-visible) .title-character:after, + .page-title.character-earn:has(> h1:focus-visible) .title-character:after { bottom: -6px; width: calc(var(--pad) + var(--gx) + var(--w) + var(--col-gap) - 6px); } @@ -3213,3 +3214,316 @@ nav > div { grid-template-columns: repeat(5, 1fr); } .pool-buttons label { flex: 1; } .pool-buttons label > span { padding: 12px 10px; } } + +/* v25: Vault stats (2026-10-20). The Overview/Stats child tabs under the Vault title and the stats report, in + the site's own look. Kept here, after every earlier module's rules, so that no component imports a stylesheet. */ +/* Local views below the existing Vault title; the main navigation is unchanged. */ +.vault-view-tabs { background: var(--paper); border: 2px solid var(--ink); padding: 4px 4px 0; } +.vault-view-tabs [role="tab"] { min-height: 44px; } + +/* Scoped nesting keeps the original report semantics in Basket's visual language. */ +.basket-vault-stats { + --vault-muted: #485974; + --vault-border: #bacbe0; + --vault-blue: var(--royal); + --vault-green: #12715a; + min-width: 0; + & .vault-stats-intro { margin: 0 0 18px; } + & .vault-stats-toolbar { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + margin: 0 0 22px; + padding: 10px 14px; + background: var(--paper); + border: 2px solid var(--ink); + font-size: 14px; + } + & .vault-stats-toolbar > :first-child { min-width: 0; } + & .vault-stats-toolbar button { flex-shrink: 0; } + & .vault-stats-error, + & .vault-stats-loading { + padding: 22px; + background: var(--paper); + border: 3px solid var(--ink); + margin-bottom: 24px; + } + & .vault-page { min-width: 0; } + & .vault-page .small { font-size: 14px; } + & .vault-page .muted { color: var(--vault-muted); } + & .vault-page .card { + min-width: 0; + padding: 26px; + border: 3px solid var(--ink); + border-radius: 3px; + background: var(--paper); + box-shadow: 5px 5px 0 var(--royal); + } + & .vault-page .section { margin-top: 34px; } + & .section-head { + display: flex; + align-items: baseline; + justify-content: space-between; + flex-wrap: wrap; + gap: 6px 18px; + margin-bottom: 14px; + } + & .section-head h2 { margin: 0; font-size: clamp(25px, 3vw, 32px); } + & .section-head p { margin: 0; } + & .vault-intro { max-width: 700px; margin-bottom: 22px; } + & :where(.vault-page) dl > div { padding: 0; border: 0; min-width: 0; } + & .vault-page dd { margin: 0; max-width: none; text-align: left; } + & .vault-hero-top { + display: flex; + align-items: center; + justify-content: space-between; + gap: 28px; + } + & .vault-hero-top > div { min-width: 0; } + & .vault-label { + display: inline-block; + margin: 0; + padding: 5px 10px; + background: var(--sun); + color: var(--ink); + font: 24px/1.2 Pixel, monospace; + text-transform: uppercase; + border: 2px solid var(--ink); + } + & .vault-big-value { + margin: 14px 0 8px; + color: var(--royal); + font: 400 clamp(42px, 6.5vw, 78px)/1 Flyer, Impact, sans-serif; + letter-spacing: -.02em; + overflow-wrap: anywhere; + } + & .vault-reference { margin: 0 0 3px; font-weight: 700; font-size: 15px; } + & .vault-reference.below { color: #8b4810; } + & .vault-reference.above { color: var(--vault-green); } + & .vault-reference-detail { margin: 0; color: var(--vault-muted); font-size: 13px; } + & .vault-price-definition { + max-width: 280px; + margin: 0; + padding-left: 18px; + border-left: 4px solid var(--sun); + color: var(--vault-muted); + font-size: 15px; + } + & .vault-summary, + & .vault-flow-metrics { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 14px; + margin: 26px 0; + } + & .vault-summary > div, + & .vault-flow-metrics > div { + display: block; + padding: 14px 16px; + background: var(--subtle); + border: 2px solid var(--royal); + } + & .vault-summary dt, + & .vault-flow-metrics dt { font-size: 13px; font-weight: 700; margin-bottom: 7px; } + & .vault-summary dd, + & .vault-flow-metrics dd { font: 32px/1.05 Pixel, monospace; } + & .vault-summary .vault-metric-note, + & .vault-flow-metrics .vault-metric-note { + color: var(--vault-muted); + font: 12px/1.45 Arial, Helvetica, sans-serif; + margin-top: 7px; + } + & .vault-chart-heading { + display: flex; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + gap: 14px; + } + & .vault-chart-heading h3 { margin: 0; font-size: 24px; } + & .vault-ranges { + display: flex; + flex-shrink: 0; + gap: 3px; + margin: 0; + padding: 3px; + background: var(--subtle); + border: 2px solid var(--ink); + border-radius: 3px; + } + & .vault-ranges a { + display: grid; + place-items: center; + min-width: 44px; + min-height: 44px; + padding: 5px 12px; + background: transparent; + color: var(--ink); + border: 0; + border-radius: 1px; + box-shadow: none; + font: 22px/1 Pixel, monospace; + text-transform: uppercase; + text-decoration: none; + } + & .vault-ranges a::before, + & .vault-ranges a::after { content: none; } + & .vault-ranges a:hover { background: var(--sun); } + & .vault-ranges a[aria-current="page"] { color: var(--paper); background: var(--royal); } + & .vault-chart { display: block; width: 100%; height: auto; margin: 14px 0 0; } + & .vault-series { fill: none; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; } + & .vault-series.sample { stroke: var(--vault-green); } + & .vault-series.replay { stroke: var(--vault-blue); } + & .vault-point.sample { fill: var(--vault-green); } + & .vault-point.replay { fill: var(--vault-blue); } + & .vault-reference-line { stroke: #9a6a09; stroke-width: 1.2; stroke-dasharray: 5 5; } + & .vault-axis { fill: var(--vault-muted); font: 12px Arial, Helvetica, sans-serif; } + & .vault-axis-line { stroke: var(--vault-border); } + & .vault-chart-dates { + display: flex; + justify-content: space-between; + gap: 12px; + margin: -4px 6% 0; + color: var(--vault-muted); + font-size: 12px; + } + & .vault-chart-range { margin: 10px 0; font-size: 13px; color: var(--vault-muted); } + & .vault-legend { display: flex; flex-wrap: wrap; gap: 10px 22px; font-size: 13px; margin: 14px 0 10px; } + & .vault-legend span { display: inline-flex; align-items: center; gap: 8px; } + & .vault-legend span::before { content: ""; width: 22px; height: 3px; background: var(--vault-blue); } + & .vault-legend .sample::before { background: var(--vault-green); } + & .vault-chart-caption { margin: 8px 0 0; } + & .vault-empty-chart { padding: 48px 16px; text-align: center; background: var(--subtle); margin-top: 16px; } + & .vault-empty-chart p { margin: 8px auto 0; max-width: 420px; } + & .vault-freshness { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 28px; margin: 20px 3px 0; color: var(--vault-muted); font-size: 13px; } + & .vault-freshness p { margin: 0; } + & .vault-freshness strong { display: block; color: var(--ink); margin-bottom: 3px; } + & .vault-notice { padding: 14px 16px; background: var(--warning); border: 2px solid var(--ink); border-left: 7px solid var(--sun); margin: 18px 0; font-size: 14px; } + & .vault-caution { margin: 14px 3px 0; color: #71420d; } + & .vault-holdings-head, + & .vault-holdings > li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(90px, .7fr) minmax(100px, 1fr); gap: 20px; align-items: center; } + & .vault-holdings-head { padding: 10px 0; color: var(--vault-muted); font-size: 12px; text-transform: uppercase; font-weight: 700; } + & .vault-holdings { list-style: none; margin: 0; padding: 0; } + & .vault-holdings > li { padding: 17px 0; border-top: 1px solid var(--vault-border); } + & .vault-holdings strong { font: 25px/1.2 Pixel, monospace; } + & .vault-holdings small { display: block; font-size: 12px; color: var(--vault-muted); margin-top: 3px; } + & .vault-holding-value { font-weight: 700; overflow-wrap: anywhere; } + & .vault-weight { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 12px; align-items: center; font-size: 14px; } + & .vault-weight meter { display: block; width: 100%; height: 12px; border: 0; border-radius: 0; background: var(--subtle); } + & .vault-weight meter::-webkit-meter-bar { border: 1px solid var(--ink); border-radius: 0; background: var(--subtle); } + & .vault-weight meter::-webkit-meter-optimum-value { background: var(--royal); } + & .vault-weight meter::-moz-meter-bar { background: var(--royal); } + & .vault-drivers, + & .vault-bridge { border-top: 2px solid var(--ink); margin-top: 16px; padding-top: 22px; } + & .vault-drivers h3, + & .vault-bridge h3 { margin-bottom: 12px; font-size: 25px; } + & .vault-driver-list { list-style: none; padding: 0; margin: 16px 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 32px; font-size: 14px; } + & .vault-driver-list li { display: flex; gap: 12px; justify-content: space-between; } + & .vault-driver-list span { text-align: right; } + & .vault-driver-help { margin: 14px 0 0; } + & .vault-attribution-totals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 32px; margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--vault-border); } + & .vault-attribution-totals > div { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; } + & .vault-attribution-totals dt { color: var(--vault-muted); font-size: 13px; } + & .vault-attribution-totals dd { text-align: right; } + & .vault-tvl-figure { margin: 0; border-top: 1px solid var(--vault-border); padding-top: 20px; } + & .vault-tvl-figure figcaption { font: 24px/1.2 Flyer, Impact, sans-serif; text-transform: uppercase; } + & .vault-bridge dl { max-width: 680px; margin: 16px 0; } + & .vault-bridge dl > div { display: flex; gap: 20px; justify-content: space-between; padding: 8px 0; } + & .vault-bridge dd { text-align: right; font-size: 14px; } + & .vault-bridge .vault-bridge-total { border-top: 2px solid var(--ink); padding-top: 12px; margin-top: 6px; font-weight: 700; } + & .vault-bridge > p { max-width: 800px; } + & .vault-details { border-top: 1px solid var(--vault-border); margin-top: 18px; } + & .vault-details > summary { padding: 17px 0; font-size: 15px; font-weight: 700; } + & summary::marker { color: var(--royal); } + & .vault-records > h2 { font-size: clamp(25px, 3vw, 32px); } + & .vault-records > .card { padding-block: 5px; } + & .vault-records > .card > .vault-details { margin: 0; } + & .vault-records > .card > .vault-details:first-child { border-top: 0; } + & .vault-table-wrap { overflow-x: auto; max-width: 100%; margin-bottom: 16px; overscroll-behavior-x: contain; } + & .vault-page table { border-collapse: collapse; width: 100%; text-align: left; font-size: 13px; } + & .vault-page table td, + & .vault-page table th { padding: 12px 16px 12px 10px; border-bottom: 1px solid var(--vault-border); min-width: 115px; vertical-align: top; } + & .vault-page thead th { background: var(--subtle); color: var(--ink); font-weight: 700; } + & .vault-page tbody th { font-weight: 400; } + & .vault-page table small { color: var(--vault-muted); font-size: 12px; margin-top: 4px; } + & .vault-exact { font-size: 12px; color: var(--vault-muted); overflow-wrap: anywhere; max-width: 190px; margin-top: 4px; } + & .vault-exact summary { padding-block: 6px; min-height: 34px; color: var(--royal); } + & .vault-close-changes { margin: 0 0 16px; } + & .vault-close-changes > div { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 20px; padding: 12px 0; font-size: 14px; } + & .vault-close-changes small { color: var(--vault-muted); font-size: 13px; margin-top: 4px; } + & .vault-glossary { max-width: 900px; margin: 0 0 16px; } + & .vault-glossary > div { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 20px; padding: 10px 0; font-size: 14px; } + & .vault-glossary dt { font-weight: 700; } + & .vault-glossary dd { color: var(--vault-muted); font-weight: 400; } + & .vault-activity { list-style: none; margin: 0; padding: 0; } + & .vault-activity > li + li { border-top: 1px solid var(--vault-border); } + & .vault-transaction > summary { display: grid; grid-template-columns: 115px minmax(0, 1fr) auto; gap: 5px 20px; padding: 18px 0; align-items: center; font-size: 14px; list-style: none; } + & .vault-transaction > summary::-webkit-details-marker { display: none; } + & .vault-kind { display: inline-block; justify-self: start; background: var(--subtle); border: 1px solid var(--royal); color: var(--royal); padding: 3px 8px; font: 21px/1.2 Pixel, monospace; text-transform: uppercase; } + & .vault-kind.redemption { background: var(--warning); color: #71420d; border-color: #9a6a09; } + & .vault-activity-when { color: var(--vault-muted); font-size: 13px; } + & .vault-transaction > summary strong { text-align: right; font: 27px/1.2 Pixel, monospace; } + & .vault-activity-shares { grid-column: 2; font-size: 13px; } + & .vault-activity-status { grid-column: 2; font-size: 12px; color: var(--vault-muted); } + & .vault-expand { grid-column: 3; grid-row: 2 / 4; text-align: right; font-size: 13px; color: var(--royal); } + & .vault-expand::after { content: " +"; } + & .vault-transaction[open] .vault-expand::after { content: " −"; } + & .vault-transaction-body { background: var(--subtle); border: 1px solid var(--vault-border); padding: 16px 18px; margin-bottom: 18px; font-size: 14px; } + & .vault-transaction-body ul { padding-left: 20px; margin: 10px 0 14px; } + & .vault-transaction-body li { margin-bottom: 6px; } + & .vault-transaction-body small { color: var(--vault-muted); font-size: 12px; } + & .vault-transaction-body p { margin-bottom: 8px; } + & .vault-hash { display: block; font: 12px/1.6 monospace; overflow-wrap: anywhere; margin-top: 5px; } + & .vault-footer { background: transparent; border-top: 2px solid var(--ink); margin-top: 32px; padding: 18px 0 0; font-size: 13px; } + @media (max-width: 700px) { + & .vault-page .card { padding: 18px; box-shadow: 4px 4px 0 var(--royal); } + & .vault-hero-top { display: block; } + & .vault-price-definition { max-width: none; margin-top: 18px; font-size: 14px; } + & .vault-summary, + & .vault-flow-metrics { gap: 10px; } + & .vault-summary > div, + & .vault-flow-metrics > div { padding: 12px; } + & .vault-summary dd, + & .vault-flow-metrics dd { font-size: 28px; } + & .vault-freshness, + & .vault-driver-list, + & .vault-attribution-totals { grid-template-columns: minmax(0, 1fr); } + & .vault-holdings-head, + & .vault-holdings > li { grid-template-columns: minmax(0, 1fr) minmax(72px, .8fr) minmax(62px, .7fr); gap: 10px; } + & .vault-holding-value { font-size: 14px; } + & .vault-weight { grid-template-columns: minmax(0, 1fr); gap: 5px; } + & .vault-weight meter { height: 8px; } + & .vault-glossary > div { grid-template-columns: minmax(0, 1fr); gap: 5px; } + & .vault-close-changes > div { grid-template-columns: 110px minmax(0, 1fr); gap: 12px; } + & .vault-transaction > summary { grid-template-columns: 100px minmax(0, 1fr); gap: 6px 12px; } + & .vault-transaction > summary strong { grid-column: 2; grid-row: 1; } + & .vault-activity-when { grid-column: 1 / -1; grid-row: 3; } + & .vault-activity-shares { grid-column: 2; grid-row: 2; text-align: right; } + & .vault-activity-status { grid-column: 1 / -1; grid-row: 4; } + & .vault-expand { grid-column: 1; grid-row: 2; text-align: left; } + & .vault-records > .card { padding-block: 4px; } + } + @media (max-width: 480px) { + & .vault-axis { font-size: 24px; } + & .vault-page .card { padding-inline: 14px; } + & .vault-stats-toolbar { flex-wrap: wrap; } + & .vault-stats-toolbar > :first-child { flex: 1 1 160px; } + & .vault-summary, + & .vault-flow-metrics { grid-template-columns: minmax(0, 1fr); gap: 8px; margin-block: 22px; } + & .vault-summary > div, + & .vault-flow-metrics > div { padding: 12px 14px; } + & .vault-summary dt, + & .vault-flow-metrics dt { margin-bottom: 4px; } + & .vault-summary .vault-metric-note, + & .vault-flow-metrics .vault-metric-note { margin-top: 4px; } + & .vault-chart-heading h3 { font-size: 22px; } + & .vault-holdings-head { font-size: 10px; } + & .vault-holdings small { font-size: 11px; } + & .vault-holding-value, + & .vault-weight { font-size: 12px; } + & .vault-holdings > li { align-items: start; } + & .vault-transaction-body { padding: 12px; } + & .vault-close-changes > div { grid-template-columns: minmax(0, 1fr); gap: 4px; } + } +} diff --git a/web/src/vaultStatsReport.tsx b/web/src/vaultStatsReport.tsx new file mode 100644 index 0000000..8ac36e4 --- /dev/null +++ b/web/src/vaultStatsReport.tsx @@ -0,0 +1,56 @@ +import { createElement, type ReactNode } from "react"; + +export const statsPeriods = ["1d", "7d", "30d", "all"] as const; +export type StatsPeriod = (typeof statsPeriods)[number]; +export type StatsReport = { schemaVersion: 1; period: StatsPeriod; generatedAt: string; html: string; preview?: boolean }; + +export function readStatsReport(value: unknown, period: StatsPeriod): StatsReport { + if (!value || typeof value !== "object") throw new Error("Invalid stats response"); + const v = value as Partial; + if (v.schemaVersion !== 1 || v.period !== period || typeof v.generatedAt !== "string" || + !Number.isFinite(Date.parse(v.generatedAt)) || typeof v.html !== "string" || v.html.length > 1_000_000 || + !v.html.includes('class="vault-page"')) throw new Error("Invalid stats response"); + const doc = new DOMParser().parseFromString(v.html, "text/html"); + // 2026-10-20 review: a bounded node count keeps a hostile report from exhausting the renderer below. + if (!doc.querySelector("div.vault-page") || doc.querySelectorAll("*").length > 50_000) throw new Error("Invalid stats report"); + return { schemaVersion: 1, period, generatedAt: v.generatedAt, html: v.html, preview: v.preview === true }; +} + +// Reconstruct an inert report as React elements. Never insert remotely supplied HTML. +// The server owns the exact integer arithmetic; this adapter accepts only presentation. +const tags = new Set("div section aside p h2 h3 dl dt dd nav a svg line text polyline circle title span strong ul li small meter figure figcaption details summary table thead tr th tbody td ol br".split(" ")); +const attrs = new Set("class id role aria-label aria-labelledby aria-current scope viewBox x y x1 x2 y1 y2 cx cy r points text-anchor min max value".split(" ")); +const names: Record = { class: "className", "text-anchor": "textAnchor" }; +export function renderStatsReport(html: string, choosePeriod: (period: StatsPeriod) => void): ReactNode { + const doc = new DOMParser().parseFromString(html, "text/html"); + const root = doc.querySelector(".vault-page"); + if (!root) throw new Error("Missing stats report"); + // 2026-10-20 review: is kept only inside SVG (React 19 would hoist a stray one into the document head), + // and children are passed as one keyed array, never spread, so a wide element cannot overflow the call. + const render = (node: Node, key: string, inSvg = false): ReactNode => { + if (node.nodeType === Node.TEXT_NODE) return node.textContent; + if (node.nodeType !== Node.ELEMENT_NODE) return null; + const el = node as Element, tag = el.tagName.toLowerCase(); + if (!tags.has(tag) || el.classList.contains("vault-intro") || (tag === "title" && !inSvg)) return null; + const props: Record<string, unknown> = { key }; + for (const a of Array.from(el.attributes)) { + if (!attrs.has(a.name)) continue; + if (a.name === "id") props.id = "stats-" + a.value; + else if (a.name === "aria-labelledby") props[a.name] = a.value.split(/\s+/).map(v => "stats-" + v).join(" "); + else if (a.name === "class") props.className = a.value.split(/\s+/).filter(v => /^(vault-[a-z-]+|card|section|section-head|small|muted|below|above|replay|sample|deposit|redemption)$/.test(v)).join(" "); + else props[names[a.name] || a.name] = a.value; + } + if (tag === "svg") { props.viewBox = el.getAttribute("viewBox") || "0 0 760 240"; props.role = "img"; } + if (tag === "a") { + const href = el.getAttribute("href") || ""; + const period = /^\/vault\?period=(1d|7d|30d|all)$/.exec(href)?.[1] as StatsPeriod | undefined; + if (period) { props.href = "#vault"; props.onClick = (event: { preventDefault: () => void }) => { event.preventDefault(); choosePeriod(period); }; } + else if (/^https:\/\/robin\.etherscan\.io\/tx\/0x[0-9a-fA-F]{64}$/.test(href)) { + props.href = href; props.target = "_blank"; props.rel = "noopener noreferrer"; + } else return createElement("span", { key }, el.textContent); + } + if (tag === "br") return createElement(tag, props); + return createElement(tag, props, Array.from(el.childNodes).map((child, i) => render(child, key + "." + i, inSvg || tag === "svg"))); + }; + return render(root, "report"); +} diff --git a/web/validation/README.md b/web/validation/README.md index 29b4c76..999c247 100644 --- a/web/validation/README.md +++ b/web/validation/README.md @@ -1,5 +1,15 @@ # Website checks +## v25: Vault stats child tabs and the Earn phone corner + +Base: `66bf0100cbc5b333b6184cd9b87071886d04742e` (the live v24 site). This display update uses the same static and read-only check list as v24, plus `node scripts/check-vault-stats-source.mjs`. Do not run either fork walk; the existing fork evidence is historical. Set `BASKET_BASELINE_DIST` to the untouched v24 export for art and visibility. + +The Vault page keeps its title, character and main navigation (Vault, Deposit, Redeem, Earn and Docs). Beneath the title sit two child tabs, Overview and Stats (one labelled tablist with a roving tab stop and arrow, Home and End keys); Overview opens by default with the unchanged overview figures and Stock shelves, both views stay at `#vault`, and the stats report mounts only while Stats is selected. Stats fetches the public report from `https://monitor-production-2eae.up.railway.app/api/vault-stats` with one plain GET per opening, period change (1D, 7D, 30D, All) or Refresh, without credentials, referrer or polling; superseded responses are ignored and unmount aborts the request. The response is validated (schema 1, the requested period, a `.vault-page` root) and rebuilt as React elements from a tag, attribute and class allowlist, never inserted as HTML; period links become `#vault` switches, Robinhood Etherscan transaction links open in a new tab with `noopener`, and any other link becomes plain text. A failed request clears the figures and offers Retry. Defensive bounds from the pre-release review: a declared response size above 2 MiB is refused before the body is read, a report with more than 50,000 elements is refused at validation, a `<title>` is kept only inside SVG (React 19 would hoist a stray one into the document head), children are passed as one keyed array rather than spread, and a rendering failure shows a notice instead of unmounting the page. The monitor owns every financial calculation and exact figure. On phones, the Earn title's yellow shelf line now joins the focused EARN heading's bottom-left corner through the existing v15 Deposit/Redeem rule. + +Sources: `Vault.tsx` changes by exactly three pieces (the `VaultViews` import and the wrapper's opening and closing tags); `styles.css` by two pieces (the Earn selector and its comment) plus the stats styles appended after the v24 text under one marker, kept there like every earlier module's rules so that no component imports a stylesheet; `VaultStats.tsx` and `vaultStatsReport.tsx` are new. `main.tsx` and every other source are byte-identical to v24. + +Gates: `check-vault-stats-source.mjs` compares every source forward with the base checkout (the five exact pieces, the pinned appended block, the two new files, every baseline dependency, configuration and check file except the four scripts it names, and the built export carrying the pinned endpoint only). `v25-restore.mjs` cuts the appended block and puts the five pieces back before `check-v24-source.mjs` (unchanged v24 digests and v23 restoration) and before every inherited v23/v22 comparison in `check-calldata.mjs`, which also pins the two new sources by independent digests and scans their names and strings: no wallet, storage, send, raw-HTML, global-object, navigation or worker name, no provider `.request()`, no dynamic import, imports limited to React and each other, exactly one `fetch` with the pinned options and the pinned endpoint as the only address, and the link rules above. `check-bundle.mjs` adds `Vault.tsx` and the two new sources to its scope and accepts the new files tracked or untracked. `check-visibility.mjs` verifies the actual Vault tab bar (two tabs of at least 44 px, Overview selected, the Stats panel hidden, no report mounted) and its exact displacement of the overview content, then hides only that bar for the unchanged v24 page geometry comparison; the v24 price strip is part of the baseline now, so it is compared (words, logos, place, size, gap) instead of hidden. Every other assertion is unchanged. + ## v24: shared prices and Earn controls Base: `736affca69ad6aefe27b27d7e0ceeb405c236a96`. This display update uses the static and read-only checks below. Do not run either fork walk for this update; the existing fork evidence is historical v23 evidence.