solc-0.8.36-doubleshift20 0xdac17f958d2ee523a2206206994597c13d831ec7 via-ir-low-runs
4851 bytes
60806040526004361015610011575f80fd5b5f5f3560e01c806306fdde0314610f585780630753c30c14610edc578063095ea7b314610db55780630e136b1914610d8f5780630ecb93c014610d1757806318160ddd14610cfc57806323b872dd14610ad357806326976e3f14610aaa57806327e235e314610a71578063313ce56714610a535780633539071414610a355780633eaaf86b14610a175780633f4ba83a146109b857806359bf1abe1461030a5780635c658165146109655780635c975abb1461094057806370a082311461091c5780638456cb59146108b8578063893d20e8146108915780638da5cb5b1461089157806395d89b4114610788578063a9059cbb14610596578063c0324c77146104f2578063cc872b6614610438578063db006a751461039c578063dd62ed3e14610367578063dd644f7214610349578063e47d60601461030a578063e4997dc514610295578063e5b5019a14610279578063f2fde38b146102265763f3bdc2281461017a575f80fd5b34610223576020366003190112610223576101936110ad565b81546001600160a01b03163303610221576001600160a01b0381168083526006602052604083205490919060ff161561021d577f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c6916101f3604092611196565b8185526002602052848381205561020c816001546111ff565b60015582519182526020820152a180f35b8280fd5b505b80fd5b5034610223576020366003190112610223576102406110ad565b8154906001600160a01b038216330361021d576001600160a01b03169081610266578280f35b6001600160a01b0319161781555f808280f35b503461022357806003193601126102235760206040515f198152f35b5034610223576020366003190112610223576102af6110ad565b81546001600160a01b03163303610221576001600160a01b0316808252600660209081526040808420805460ff19169055519182527fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c91a180f35b50346102235760203660031901126102235760209060ff906040906001600160a01b036103356110ad565b168152600684522054166040519015158152f35b50346102235780600319360112610223576020600354604051908152f35b50346102235760403660031901126102235760206103946103866110ad565b61038e6110c3565b9061120c565b604051908152f35b50346102235760203660031901126102235780546001600160a01b03166004353382900361021d576001549080821061043457828452600260205280604085205410610434577f702d5967f45f6513a38ffc42d6ba9bf230bd40e8f53b16363c7eb4fd2deb9a4492610410826020946111ff565b600155845260028252604084206104288282546111ff565b9055604051908152a180f35b8380fd5b5034610223576020366003190112610223578054600435906001600160a01b03163381900361021d5760015461046e83826110d9565b111561021d57808352600260205261048a8260408520546110d9565b81845260026020526040842054101561021d577fcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a91602091845260028252604084206104d78282546110d9565b90556104e5816001546110d9565b600155604051908152a180f35b503461022357604036600319011261022357805460043590602435906001600160a01b0316330361021d57601482101561021d57603281101561021d5781600355600954604d811161058257916105706040927fb044a1e409eac5c48e5af22d4af52670dd1a99059537a78b31b48c6500a6354e94600a0a906112aa565b8060045582519182526020820152a180f35b634e487b7160e01b84526011600452602484fd5b503461022357604036600319011261022357806105b16110ad565b6024359060ff835460a01c1661078457338352600660205260ff60408420541661078457600a5460a01c60ff161561064f57600a546001600160a01b031691823b1561064a5761061b9284928360405180968195829463370c4c0560e11b845233600485016110fa565b03925af1801561063f5761062e57505080f35b816106389161104c565b6102235780f35b6040513d84823e3d90fd5b505050fd5b91506044361061021d57612710610668600354836112aa565b049160045480841161077c575b506106828284111561128f565b6106ae61068f84846111ff565b92338652600260205260408620546106a98183111561128f565b6111ff565b3385526002602052604085205560018060a01b031691828452600260205260408420546106e76106de84836110d9565b9182101561128f565b8385526002602052604085205580610717575b506040519081525f5160206112d35f395f51905f5260203392a380f35b83546001600160a01b0316808552600260205260408520549061074661073d84846110d9565b9283101561128f565b85526002602052604085205560018060a01b03845416906040519081525f5160206112d35f395f51905f5260203392a35f6106fa565b92505f610675565b5050fd5b50346102235780600319360112610223576040519080600854908160011c91600181168015610887575b6020841081146108735783865290811561084c57506001146107ef575b6107eb846107df8186038261104c565b60405191829182611083565b0390f35b600881527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3939250905b808210610832575090915081016020016107df826107cf565b919260018160209254838588010152019101909291610819565b60ff191660208087019190915292151560051b850190920192506107df91508390506107cf565b634e487b7160e01b83526022600452602483fd5b92607f16926107b2565b5034610223578060031936011261022357546040516001600160a01b039091168152602090f35b503461022357806003193601126102235780546001600160a01b03811633036102215760ff8160a01c166102215760ff60a01b1916600160a01b1781557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6258180a180f35b503461022357602036600319011261022357602061039461093b6110ad565b611196565b503461022357806003193601126102235760ff6020915460a01c166040519015158152f35b50346102235760403660031901126102235760406109816110ad565b9161098a6110c3565b9260018060a01b031681526005602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461022357806003193601126102235780546001600160a01b03811633036102215760ff8160a01c16156102215760ff60a01b191681557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b338180a180f35b50346102235780600319360112610223576020600154604051908152f35b50346102235780600319360112610223576020600454604051908152f35b50346102235780600319360112610223576020600954604051908152f35b5034610223576020366003190112610223576020906040906001600160a01b03610a996110ad565b168152600283522054604051908152f35b5034610223578060031936011261022357600a546040516001600160a01b039091168152602090f35b50346102235760603660031901126102235780610aee6110ad565b610af66110c3565b6044359160ff845460a01c1661064a576001600160a01b03168084526006602052604084205490919060ff1661064a57600a5460a01c60ff1615610b9157600a546001600160a01b0316803b15610b8d578492836084926040519687958694638b477adb60e01b8652336004870152602486015260018060a01b0316604485015260648401525af1801561063f5761062e57505080f35b8480fd5b925090606436106104345781845260056020526040842060018060a01b0333165f5260205260405f205492612710610bcb600354846112aa565b0493600454808611610cf3575b50916020915f5160206112d35f395f51905f5293825f198210610cbf575b610c03915087111561128f565b610c29610c1087846111ff565b928689526002855260408920546106a98183111561128f565b85885260028452604088205560018060a01b031694858752600283526040872054610c576106de84836110d9565b86885260028452604088205580610c74575b50604051908152a380f35b86546001600160a01b031680885260028452604088205490610c9961073d84846110d9565b885260028452604088205584848460018060a01b038a541693604051908152a35f610c69565b816106a9610ccf9383111561128f565b858852600584526040882060018060a01b0333165f52845260405f20555f82610bf6565b94506020610bd8565b5034610223578060031936011261022357602061039461111c565b503461022357602036600319011261022357610d316110ad565b81546001600160a01b03163303610221576001600160a01b0316808252600660209081526040808420805460ff19166001179055519182527f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc91a180f35b5034610223578060031936011261022357602060ff600a5460a01c166040519015158152f35b5034610e4c576040366003190112610e4c57610dcf6110ad565b6024359060443610610e4c57600a5460a01c60ff1615610e5057600a546001600160a01b031691823b15610e4c57610e21925f928360405180968195829463aee92d3360e01b845233600485016110fa565b03925af18015610e4157610e33575080f35b610e3f91505f9061104c565b005b6040513d5f823e3d90fd5b5f80fd5b81151580610eb5575b610e4c57335f52600560205260405f2060018060a01b0382165f526020528160405f205560405191825260018060a01b0316907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a380f35b50335f52600560205260405f2060018060a01b0382165f5260205260405f20541515610e59565b34610e4c576020366003190112610e4c57610ef56110ad565b5f546001600160a01b03163303610e4c57600a80546001600160a81b0319166001600160a01b03909216918217600160a01b1790556040519081527fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e90602090a1005b34610e4c575f366003190112610e4c576040515f6007548060011c90600181168015611042575b60208310811461102e5782855290811561100a5750600114610fac575b6107eb836107df8185038261104c565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610ff0575090915081016020016107df610f9c565b919260018160209254838588010152019101909291610fd8565b60ff191660208086019190915291151560051b840190910191506107df9050610f9c565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610f7f565b601f909101601f19168101906001600160401b0382119082101761106f57604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b0382168203610e4c57565b602435906001600160a01b0382168203610e4c57565b919082018092116110e657565b634e487b7160e01b5f52601160045260245ffd5b6001600160a01b03918216815291166020820152604081019190915260600190565b600a5460ff8160a01c165f1461118f576040516318160ddd60e01b815290602090829060049082906001600160a01b03165afa908115610e41575f91611160575090565b90506020813d602011611187575b8161117b6020938361104c565b81010312610e4c575190565b3d915061116e565b5060015490565b600a549060ff8260a01c165f146111e3576040516370a0823160e01b81526001600160a01b0391821660048201529160209183916024918391165afa908115610e41575f91611160575090565b6001600160a01b03165f90815260026020526040902054919050565b919082039182116110e657565b90600a549160ff8360a01c165f1461126357604051636eb1769f60e11b81526001600160a01b0391821660048201529181166024830152909160209183916044918391165afa908115610e41575f91611160575090565b6001600160a01b039081165f908152600560209081526040808320939094168252919091522054919050565b1561129657565b634e487b7160e01b5f52600160045260245ffd5b9081156112cc57808202918204908181036110e6576112c9911461128f565b90565b50505f9056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef